<?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>168676</bug_id>
          
          <creation_ts>2017-02-21 14:38:41 -0800</creation_ts>
          <short_desc>Refactor WebViewImpl creation in preparation for supporting multiple WebsiteDataStores</short_desc>
          <delta_ts>2017-02-28 15:11:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit 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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=168983</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>168710</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>andersca</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1279538</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 14:38:41 -0800</bug_when>
    <thetext>Refactor WebViewImpl creation in preparation for supporting multiple WebsiteDataStores

Currently no behavior change in practice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279544</commentid>
    <comment_count>1</comment_count>
      <attachid>302311</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 14:44:32 -0800</bug_when>
    <thetext>Created attachment 302311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279559</commentid>
    <comment_count>2</comment_count>
      <attachid>302316</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 15:01:45 -0800</bug_when>
    <thetext>Created attachment 302316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279633</commentid>
    <comment_count>3</comment_count>
      <attachid>302316</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-02-21 16:30:07 -0800</bug_when>
    <thetext>Comment on attachment 302316
Patch

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1239
&gt; +    return std::unique_ptr&lt;WebViewImpl&gt;(new WebViewImpl(view, WTFMove(pageClient), *webPage, processPool));

std::make_unique</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279634</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-21 16:30:34 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; Refactor WebViewImpl creation in preparation for supporting multiple
&gt; WebsiteDataStores

What do you mean by supporting multiple WebsiteDataStores?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279637</commentid>
    <comment_count>5</comment_count>
      <attachid>302316</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-21 16:33:16 -0800</bug_when>
    <thetext>Comment on attachment 302316
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;[WKWebView _initializeWithConfiguration:] failed to create a new WebProcess&quot;];

Given that _initializeWithConfiguration is an implementation detail, it seems like a bad thing to put in an exception that can be consumed by third parties.

&gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:908
&gt; +    _data-&gt;_impl = WebViewImpl::maybeCreate(self, nullptr, processPool, WTFMove(configuration));

Under what scenarios does this fail?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279650</commentid>
    <comment_count>6</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 16:56:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #0)
&gt; &gt; Refactor WebViewImpl creation in preparation for supporting multiple
&gt; &gt; WebsiteDataStores
&gt; 
&gt; What do you mean by supporting multiple WebsiteDataStores?

Currently there&apos;s no concept of more than one non-default, persistent WKWebsiteDataStore in the Cocoa API. There&apos;s about to be!

(In reply to comment #5)
&gt; Comment on attachment 302316 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302316&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; &gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;[WKWebView _initializeWithConfiguration:] failed to create a new WebProcess&quot;];
&gt; 
&gt; Given that _initializeWithConfiguration is an implementation detail, it
&gt; seems like a bad thing to put in an exception that can be consumed by third
&gt; parties.

Good point.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:908
&gt; &gt; +    _data-&gt;_impl = WebViewImpl::maybeCreate(self, nullptr, processPool, WTFMove(configuration));
&gt; 
&gt; Under what scenarios does this fail?

If we attempt to make a WK(Web)View with a non-default data store but we&apos;re at the process cap.

e.g. - In practice, it won&apos;t.

Note: This seemingly artificial limitation is being imposed because too much of the data store types are currently WebProcess-global instead of being per-WK(Web)View.

It can be unwound in the future after more refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279653</commentid>
    <comment_count>7</comment_count>
      <attachid>302341</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 16:57:43 -0800</bug_when>
    <thetext>Created attachment 302341
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279689</commentid>
    <comment_count>8</comment_count>
      <attachid>302341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-21 17:36:59 -0800</bug_when>
    <thetext>Comment on attachment 302341
Patch

Clearing flags on attachment: 302341

Committed r212786: &lt;http://trac.webkit.org/changeset/212786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279690</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-21 17:37:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279763</commentid>
    <comment_count>10</comment_count>
      <attachid>302341</attachid>
    <who name="">mitz</who>
    <bug_when>2017-02-21 20:56:19 -0800</bug_when>
    <thetext>Comment on attachment 302341
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;WKWebView initialization failed. Unable to create a new WebProcess.&quot;];

Is it normal to raise an exception on resource exhaustion? Maybe this is OK because the programmer set the resource limits?

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:760
&gt; +    // If a non-default WebsiteDataStore was passed in and we couldn&apos;t make a new web process for it,
&gt; +    // we should not return an existing process.

Is it impossible that there is an existing Web process with the same non-default data store?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279779</commentid>
    <comment_count>11</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-21 22:10:56 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 302341 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302341&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; &gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;WKWebView initialization failed. Unable to create a new WebProcess.&quot;];
&gt; 
&gt; Is it normal to raise an exception on resource exhaustion? Maybe this is OK
&gt; because the programmer set the resource limits?

That&apos;s the goal - programmer set the limits - and will be tested.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:760
&gt; &gt; +    // If a non-default WebsiteDataStore was passed in and we couldn&apos;t make a new web process for it,
&gt; &gt; +    // we should not return an existing process.
&gt; 
&gt; Is it impossible that there is an existing Web process with the same
&gt; non-default data store?

It is possible, and that can certainly be an enhancement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279795</commentid>
    <comment_count>12</comment_count>
      <attachid>302341</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-21 23:23:06 -0800</bug_when>
    <thetext>Comment on attachment 302341
Patch

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:762
&gt; +    // If a non-default WebsiteDataStore was passed in and we couldn&apos;t make a new web process for it,
&gt; +    // we should not return an existing process.
&gt; +    if (websiteDataStore &amp;&amp; websiteDataStore != &amp;API::WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore())
&gt; +        return nullptr;

This has broken GTK+ port, because we never use the API::WebsiteDataStore::defaultDataStore(). We always use WebsiteDataStore::create() passing a configuration for persistent data stores and WebsiteDataStore::createNonPersistentDataStore() for ephemeral.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279796</commentid>
    <comment_count>13</comment_count>
      <attachid>302341</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-21 23:27:04 -0800</bug_when>
    <thetext>Comment on attachment 302341
Patch

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:542
&gt; +WebProcessProxy&amp; WebProcessPool::createNewWebProcess(WebsiteDataStore* websiteDataStore)

Why are we passing the data store here? It&apos;s not actually used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279797</commentid>
    <comment_count>14</comment_count>
      <attachid>302341</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-21 23:35:18 -0800</bug_when>
    <thetext>Comment on attachment 302341
Patch

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:800
&gt; +        process = maybeCreateNewWebProcessRespectingProcessCountLimit(&amp;pageConfiguration-&gt;websiteDataStore()-&gt;websiteDataStore());
&gt;  
&gt;      return process-&gt;createWebPage(pageClient, WTFMove(pageConfiguration));

This is a problem too, maybeCreateNewWebProcessRespectingProcessCountLimit cna return nullptr now, but process is used without any null check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279799</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-02-21 23:42:11 -0800</bug_when>
    <thetext>I was thinking about a possible workaround for GTK+, but our bots are exiting early, so I&apos;m going to roll it out while we think of a better fix for all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279801</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-21 23:43:18 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 168710</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279889</commentid>
    <comment_count>17</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-02-22 08:27:14 -0800</bug_when>
    <thetext>It seems that this change may have also caused API test failures, so we should look into that too before landing again:

https://build.webkit.org/builders/Apple%20Sierra%20Release%20WK2%20%28Tests%29/builds/3786</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1279990</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-22 12:23:07 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #4)
&gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; Refactor WebViewImpl creation in preparation for supporting multiple
&gt; &gt; &gt; WebsiteDataStores
&gt; &gt; 
&gt; &gt; What do you mean by supporting multiple WebsiteDataStores?
&gt; 
&gt; Currently there&apos;s no concept of more than one non-default, persistent
&gt; WKWebsiteDataStore in the Cocoa API. There&apos;s about to be!
&gt; 
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 302316 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=302316&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; &gt; &gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;[WKWebView _initializeWithConfiguration:] failed to create a new WebProcess&quot;];
&gt; &gt; 
&gt; &gt; Given that _initializeWithConfiguration is an implementation detail, it
&gt; &gt; seems like a bad thing to put in an exception that can be consumed by third
&gt; &gt; parties.
&gt; 
&gt; Good point.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:908
&gt; &gt; &gt; +    _data-&gt;_impl = WebViewImpl::maybeCreate(self, nullptr, processPool, WTFMove(configuration));
&gt; &gt; 
&gt; &gt; Under what scenarios does this fail?
&gt; 
&gt; If we attempt to make a WK(Web)View with a non-default data store but we&apos;re
&gt; at the process cap.
&gt; 
&gt; e.g. - In practice, it won&apos;t.
&gt; 
&gt; Note: This seemingly artificial limitation is being imposed because too much
&gt; of the data store types are currently WebProcess-global instead of being
&gt; per-WK(Web)View.
&gt; 
&gt; It can be unwound in the future after more refactoring.

It seems like bumping past the limit would probably be better than throwing, if this will be fixed in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281582</commentid>
    <comment_count>19</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-27 16:12:27 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Comment on attachment 302341 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302341&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:762
&gt; &gt; +    // If a non-default WebsiteDataStore was passed in and we couldn&apos;t make a new web process for it,
&gt; &gt; +    // we should not return an existing process.
&gt; &gt; +    if (websiteDataStore &amp;&amp; websiteDataStore != &amp;API::WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore())
&gt; &gt; +        return nullptr;
&gt; 
&gt; This has broken GTK+ port, because we never use the
&gt; API::WebsiteDataStore::defaultDataStore(). We always use
&gt; WebsiteDataStore::create() passing a configuration for persistent data
&gt; stores and WebsiteDataStore::createNonPersistentDataStore() for ephemeral.

Ugh. Bummer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281588</commentid>
    <comment_count>20</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-27 16:15:51 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; Comment on attachment 302341 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302341&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:542
&gt; &gt; +WebProcessProxy&amp; WebProcessPool::createNewWebProcess(WebsiteDataStore* websiteDataStore)
&gt; 
&gt; Why are we passing the data store here? It&apos;s not actually used.

Part of a multi-stage refactor - That&apos;s going to be used in the patch for https://bugs.webkit.org/show_bug.cgi?id=168696</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281592</commentid>
    <comment_count>21</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-27 16:22:58 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #6)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (In reply to comment #0)
&gt; &gt; &gt; &gt; Refactor WebViewImpl creation in preparation for supporting multiple
&gt; &gt; &gt; &gt; WebsiteDataStores
&gt; &gt; &gt; 
&gt; &gt; &gt; What do you mean by supporting multiple WebsiteDataStores?
&gt; &gt; 
&gt; &gt; Currently there&apos;s no concept of more than one non-default, persistent
&gt; &gt; WKWebsiteDataStore in the Cocoa API. There&apos;s about to be!
&gt; &gt; 
&gt; &gt; (In reply to comment #5)
&gt; &gt; &gt; Comment on attachment 302316 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=302316&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:554
&gt; &gt; &gt; &gt; +        [NSException raise:NSInternalInconsistencyException format:@&quot;[WKWebView _initializeWithConfiguration:] failed to create a new WebProcess&quot;];
&gt; &gt; &gt; 
&gt; &gt; &gt; Given that _initializeWithConfiguration is an implementation detail, it
&gt; &gt; &gt; seems like a bad thing to put in an exception that can be consumed by third
&gt; &gt; &gt; parties.
&gt; &gt; 
&gt; &gt; Good point.
&gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebKit2/UIProcess/API/mac/WKView.mm:908
&gt; &gt; &gt; &gt; +    _data-&gt;_impl = WebViewImpl::maybeCreate(self, nullptr, processPool, WTFMove(configuration));
&gt; &gt; &gt; 
&gt; &gt; &gt; Under what scenarios does this fail?
&gt; &gt; 
&gt; &gt; If we attempt to make a WK(Web)View with a non-default data store but we&apos;re
&gt; &gt; at the process cap.
&gt; &gt; 
&gt; &gt; e.g. - In practice, it won&apos;t.
&gt; &gt; 
&gt; &gt; Note: This seemingly artificial limitation is being imposed because too much
&gt; &gt; of the data store types are currently WebProcess-global instead of being
&gt; &gt; per-WK(Web)View.
&gt; &gt; 
&gt; &gt; It can be unwound in the future after more refactoring.
&gt; 
&gt; It seems like bumping past the limit would probably be better than throwing,
&gt; if this will be fixed in the future.

I&apos;ll play with this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281609</commentid>
    <comment_count>22</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-27 16:39:11 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; (In reply to comment #18)
&gt; &gt; (In reply to comment #6)
&gt; &gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; It can be unwound in the future after more refactoring.
&gt; &gt; 
&gt; &gt; It seems like bumping past the limit would probably be better than throwing,
&gt; &gt; if this will be fixed in the future.
&gt; 
&gt; I&apos;ll play with this

This was a clear win for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281613</commentid>
    <comment_count>23</comment_count>
      <attachid>302891</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-27 16:42:58 -0800</bug_when>
    <thetext>Created attachment 302891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281784</commentid>
    <comment_count>24</comment_count>
      <attachid>302943</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 10:01:28 -0800</bug_when>
    <thetext>Created attachment 302943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281786</commentid>
    <comment_count>25</comment_count>
      <attachid>302945</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 10:08:55 -0800</bug_when>
    <thetext>Created attachment 302945
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281833</commentid>
    <comment_count>26</comment_count>
      <attachid>302945</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-02-28 11:28:05 -0800</bug_when>
    <thetext>Comment on attachment 302945
Patch

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

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:696
&gt; +    createNewWebProcess(nullptr);

Instead of nullptr, should this pass WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore()? If you did that, could you pass around the dataStores by reference?

&gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:778
&gt; +#if PLATFORM(COCOA)
&gt; +    bool goOverLimit = websiteDataStore &amp;&amp; websiteDataStore != &amp;API::WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore();
&gt; +#else
&gt; +    bool goOverLimit = false;
&gt; +#endif

This could probably use a comment / bug link for it&apos;s removal.  Otherwise, patch looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281874</commentid>
    <comment_count>27</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 12:40:01 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:760
&gt; &gt; +    // If a non-default WebsiteDataStore was passed in and we couldn&apos;t make a new web process for it,
&gt; &gt; +    // we should not return an existing process.
&gt; 
&gt; Is it impossible that there is an existing Web process with the same
&gt; non-default data store?

Checking for reusing processes with the same WebsiteDataStore is what was necessary to resolve the API tests!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281875</commentid>
    <comment_count>28</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 12:40:50 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; Comment on attachment 302945 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302945&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:696
&gt; &gt; +    createNewWebProcess(nullptr);
&gt; 
&gt; Instead of nullptr, should this pass
&gt; WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore()? If you did that,
&gt; could you pass around the dataStores by reference?

Apparently GTK doesn&apos;t do this.

There&apos;s definitely a near-future here where that will be achieved, though.

&gt; &gt; Source/WebKit2/UIProcess/WebProcessPool.cpp:778
&gt; &gt; +#if PLATFORM(COCOA)
&gt; &gt; +    bool goOverLimit = websiteDataStore &amp;&amp; websiteDataStore != &amp;API::WebsiteDataStore::defaultDataStore()-&gt;websiteDataStore();
&gt; &gt; +#else
&gt; &gt; +    bool goOverLimit = false;
&gt; &gt; +#endif
&gt; 
&gt; This could probably use a comment / bug link for it&apos;s removal.  Otherwise,
&gt; patch looks good.

kk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281880</commentid>
    <comment_count>29</comment_count>
      <attachid>302969</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 12:48:31 -0800</bug_when>
    <thetext>Created attachment 302969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281907</commentid>
    <comment_count>30</comment_count>
      <attachid>302969</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-28 13:26:43 -0800</bug_when>
    <thetext>Comment on attachment 302969
Patch

Clearing flags on attachment: 302969

Committed r213168: &lt;http://trac.webkit.org/changeset/213168&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281908</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-28 13:26:47 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281961</commentid>
    <comment_count>32</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-02-28 14:35:41 -0800</bug_when>
    <thetext>(In reply to comment #30)
&gt; Comment on attachment 302969 [details]
&gt; Patch
&gt; 
&gt; Clearing flags on attachment: 302969
&gt; 
&gt; Committed r213168: &lt;http://trac.webkit.org/changeset/213168&gt;

This change appears to have caused API test WKUserContentController.ScriptMessageHandlerMultipleHandlerRemoval to crash.

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.WebKit              	0x000000010a7f97a2 WebKit::WebProcessPool::createNewWebProcessRespectingProcessCountLimit(WebKit::WebsiteDataStore*) + 314 (WebProcessPool.cpp:803)
1   com.apple.WebKit              	0x000000010a7f993c WebKit::WebProcessPool::createWebPage(WebKit::PageClient&amp;, WTF::Ref&lt;API::PageConfiguration&gt;&amp;&amp;) + 364 (WebProcessPool.cpp:832)
2   com.apple.WebKit              	0x000000010a833187 WebKit::WebViewImpl::WebViewImpl(NSView&lt;WebViewImplDelegate&gt;*, WKWebView*, WebKit::WebProcessPool&amp;, WTF::Ref&lt;API::PageConfiguration&gt;&amp;&amp;) + 95 (WebViewImpl.mm:1235)
3   com.apple.WebKit              	0x000000010a89103d -[WKWebView _initializeWithConfiguration:] + 3246 (WKWebView.mm:553)
4   com.apple.WebKit              	0x000000010a8916ad -[WKWebView initWithFrame:configuration:] + 109 (WKWebView.mm:607)
5   TestWebKitAPI                 	0x0000000108ea0e47 webViewForScriptMessageHandlerMultipleHandlerRemovalTest(WKWebViewConfiguration*) + 402 (UserContentController.mm:228)
6   TestWebKitAPI                 	0x0000000108ea09c7 WKUserContentController_ScriptMessageHandlerMultipleHandlerRemoval_Test::TestBody() + 271 (UserContentController.mm:246)
7   TestWebKitAPI                 	0x0000000108f032cc testing::Test::Run() + 92
8   TestWebKitAPI                 	0x0000000108f03970 testing::internal::TestInfoImpl::Run() + 178
9   TestWebKitAPI                 	0x0000000108f03d68 testing::TestCase::Run() + 188
10  TestWebKitAPI                 	0x0000000108f073f1 testing::internal::UnitTestImpl::RunAllTests() + 581
11  TestWebKitAPI                 	0x0000000108e24611 TestWebKitAPI::TestsController::run(int, char**) + 131 (TestsController.cpp:80)
12  TestWebKitAPI                 	0x0000000108efb93b main + 349 (mainMac.mm:52)
13  libdyld.dylib                 	0x7fff9d9ba5ad start + 1 (/BuildRoot/Library/Caches/com.apple.xbs/Sources/libdyld/dyld-360.22/src/start_glue.s:47)


https://build.webkit.org/builders/Apple%20El%20Capitan%20Release%20WK2%20(Tests)/builds/13567</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281986</commentid>
    <comment_count>33</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2017-02-28 15:11:01 -0800</bug_when>
    <thetext>(In reply to comment #32)
&gt; (In reply to comment #30)
&gt; &gt; Comment on attachment 302969 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 302969
&gt; &gt; 
&gt; &gt; Committed r213168: &lt;http://trac.webkit.org/changeset/213168&gt;
&gt; 
&gt; This change appears to have caused API test
&gt; WKUserContentController.ScriptMessageHandlerMultipleHandlerRemoval to crash.
&gt; 
&gt; Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
&gt; 0   com.apple.WebKit              	0x000000010a7f97a2
&gt; WebKit::WebProcessPool::
&gt; createNewWebProcessRespectingProcessCountLimit(WebKit::WebsiteDataStore*) +
&gt; 314 (WebProcessPool.cpp:803)
&gt; 1   com.apple.WebKit              	0x000000010a7f993c
&gt; WebKit::WebProcessPool::createWebPage(WebKit::PageClient&amp;,
&gt; WTF::Ref&lt;API::PageConfiguration&gt;&amp;&amp;) + 364 (WebProcessPool.cpp:832)
&gt; 2   com.apple.WebKit              	0x000000010a833187
&gt; WebKit::WebViewImpl::WebViewImpl(NSView&lt;WebViewImplDelegate&gt;*, WKWebView*,
&gt; WebKit::WebProcessPool&amp;, WTF::Ref&lt;API::PageConfiguration&gt;&amp;&amp;) + 95
&gt; (WebViewImpl.mm:1235)
&gt; 3   com.apple.WebKit              	0x000000010a89103d -[WKWebView
&gt; _initializeWithConfiguration:] + 3246 (WKWebView.mm:553)
&gt; 4   com.apple.WebKit              	0x000000010a8916ad -[WKWebView
&gt; initWithFrame:configuration:] + 109 (WKWebView.mm:607)
&gt; 5   TestWebKitAPI                 	0x0000000108ea0e47
&gt; webViewForScriptMessageHandlerMultipleHandlerRemovalTest(WKWebViewConfigurati
&gt; on*) + 402 (UserContentController.mm:228)
&gt; 6   TestWebKitAPI                 	0x0000000108ea09c7
&gt; WKUserContentController_ScriptMessageHandlerMultipleHandlerRemoval_Test::
&gt; TestBody() + 271 (UserContentController.mm:246)
&gt; 7   TestWebKitAPI                 	0x0000000108f032cc testing::Test::Run() +
&gt; 92
&gt; 8   TestWebKitAPI                 	0x0000000108f03970
&gt; testing::internal::TestInfoImpl::Run() + 178
&gt; 9   TestWebKitAPI                 	0x0000000108f03d68
&gt; testing::TestCase::Run() + 188
&gt; 10  TestWebKitAPI                 	0x0000000108f073f1
&gt; testing::internal::UnitTestImpl::RunAllTests() + 581
&gt; 11  TestWebKitAPI                 	0x0000000108e24611
&gt; TestWebKitAPI::TestsController::run(int, char**) + 131
&gt; (TestsController.cpp:80)
&gt; 12  TestWebKitAPI                 	0x0000000108efb93b main + 349
&gt; (mainMac.mm:52)
&gt; 13  libdyld.dylib                 	0x7fff9d9ba5ad start + 1
&gt; (/BuildRoot/Library/Caches/com.apple.xbs/Sources/libdyld/dyld-360.22/src/
&gt; start_glue.s:47)
&gt; 
&gt; 
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20Release%20WK2%20(Tests)/builds/13567


Was resolved in https://trac.webkit.org/changeset/213181</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302311</attachid>
            <date>2017-02-21 14:44:32 -0800</date>
            <delta_ts>2017-02-21 15:01:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170221144146.patch</filename>
            <type>text/plain</type>
            <size>12712</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGE2MjdkNmNhNGI2ZDg4
ODllZGMyMzQ1ZDExNDI5OWNkYmQxZjc2Yi4uZTZmYTI1MWFiYjgxYjAwZDg2MGIyMjMwYzNlYTAw
Y2NmMzk2MGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAyLTIxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBXZWJWaWV3
SW1wbCBjcmVhdGlvbiBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBtdWx0aXBsZSBXZWJz
aXRlRGF0YVN0b3Jlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBBbGxvdyBmb3IgV2ViVmll
d0ltcGwgY3JlYXRpb24gdG8gZmFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29u
ZmlndXJhdGlvbjpdKTogRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptYXliZUNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzcyk6IE5ldyBXZWJQcm9jZXNzIGNyZWF0aW9uIG1pZ2h0IGZhaWwuIEhhbmRsZSBpdC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6bWF5YmVDcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3ND
b3VudExpbWl0KTogVGhpcyBjYW4gbm93IGZhaWwKKyAgICAgICAgICBpZiB0aGUgcHJvY2VzcyB3
aWxsIGhhdmUgYSBub24tZGVmYXVsdCBXZWJzaXRlRGF0YVN0b3JlIGJ1dCB3ZSd2ZSBhbHJlYWR5
IHJlYWNoZWQgdGhlIHByb2Nlc3MgY2FwLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVh
dGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAxNy0wMi0xNSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBiYWNraW5nIHVwIGxv
Y2FsU3RvcmFnZSBkYXRhYmFzZXMgdG8gaUNsb3VkIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDY4NDY4OTE4M2Zl
MGI0ZjAwNTcyYTA2MWRiY2FkMGNmYjYzNWFiODcuLjJmYjdiOGQ2OGU2YmQyNWUwOGViMDAyMDEw
YWFjNTc4MjJkZmY1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC01NDksNyArNTQ5LDEyIEBAIC0gKHZvaWQpX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24K
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIF9pbXBsID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXQ6OldlYlZpZXdJbXBsPihzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgV1RGTW92ZShw
YWdlQ29uZmlndXJhdGlvbikpOworICAgIF9pbXBsID0gV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWF5
YmVDcmVhdGUoc2VsZiwgc2VsZiwgcHJvY2Vzc1Bvb2wsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKKyAgICBpZiAoIV9pbXBsKSB7CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJbV0tXZWJWaWV3IF9pbml0aWFs
aXplV2l0aENvbmZpZ3VyYXRpb246XSBmYWlsZWQgdG8gY3JlYXRlIGEgbmV3IFdlYlByb2Nlc3Mi
XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIF9wYWdlID0gJl9pbXBsLT5wYWdlKCk7
CiAKICAgICBfaW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKHRydWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGMwM2E4
YzM3MTFmNWFkYjc4NDc0NTBkNmNlMjU3YzJiZDY5MTAzZDMuLjIwNzNkZjg2MmE1NmQ0YTA4Y2Yz
OGU3M2I1OTY5MDI5MGE2NDgwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTkwNCw3ICs5MDQsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
RnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3MK
ICAgICBJbml0aWFsaXplV2ViS2l0MigpOwogCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxs
b2NdIGluaXRdOwotICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0lt
cGw+KHNlbGYsIG51bGxwdHIsIHByb2Nlc3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsK
KworICAgIF9kYXRhLT5faW1wbCA9IFdlYlZpZXdJbXBsOjptYXliZUNyZWF0ZShzZWxmLCBudWxs
cHRyLCBwcm9jZXNzUG9vbCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgaWYgKCFfZGF0
YS0+X2ltcGwpIHsKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNp
c3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9v
bDpjb25maWd1cmF0aW9uOl0gZmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBXZWJQcm9jZXNzIl07Cisg
ICAgICAgIHJldHVybiBuaWw7CisgICAgfQogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNvbkxv
YWRpbmdDbGllbnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCmluZGV4IDY5MmE5MjRhY2Y0YmQ5ZjFkN2NkYjFhOGQ1ZDg5Yjc2YmJmMzNhNGUuLjZk
MDc5NWI2MDNjMWI4OTNjOTg2NzNkOTYzMDZmMmIyMTJlMTE0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0xMjAsNyArMTIwLDcgQEAgY2xh
c3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoKLSAgICBXZWJWaWV3SW1wbChO
U1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBX
ZWJQcm9jZXNzUG9vbCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlZpZXdJbXBsPiBtYXliZUNyZWF0ZShOU1ZpZXcgPFdlYlZp
ZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNzUG9v
bCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIH5XZWJWaWV3SW1wbCgp
OwogCkBAIC01MjMsNiArNTIzLDggQEAgcHVibGljOgogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFS
KQogCiBwcml2YXRlOgorICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0
ZT4gKiwgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmLCBSZWY8V2ViUGFnZVByb3h5
PiYmLCBXZWJQcm9jZXNzUG9vbCYpOworCiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9pZCBz
ZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwogICAgIHZvaWQgdXBkYXRlVGV4dFRvdWNo
QmFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggZWNhOWVhNGZkNTc1YWM1OTY0MTY1YTNjYmQ4MDA2MjI2YjgzZmY3MC4uMjVlYjFiNzNl
OTU5OWY3MmI5NGZmN2Q1ZDRmY2MzNzE3Y2I2ZThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTIyOSwxMCArMTIyOSwyMCBAQCBzdGF0
aWMgTlNUcmFja2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogICAgIHJldHVy
biBvcHRpb25zOwogfQogCi1XZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3
SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYlZpZXcsIFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXJh
dGlvbikKK3N0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4gV2ViVmlld0ltcGw6Om1heWJlQ3Jl
YXRlKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJX
ZWJWaWV3LCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwYWdlQ2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KTsKKyAgICBhdXRv
IHdlYlBhZ2UgPSBwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpwYWdlQ2xpZW50LCBXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4obmV3IFdlYlZp
ZXdJbXBsKHZpZXcsIFdURk1vdmUocGFnZUNsaWVudCksICp3ZWJQYWdlLCBwcm9jZXNzUG9vbCkp
OworfQorCitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVn
YXRlPiAqdmlldywgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmIHBhZ2VDbGllbnQs
IFJlZjxXZWJQYWdlUHJveHk+JiYgcGFnZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQog
ICAgIDogbV92aWV3KHZpZXcpCi0gICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQ
YWdlQ2xpZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KSkKLSAgICAsIG1fcGFnZShwcm9jZXNz
UG9vbC5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikp
KQorICAgICwgbV9wYWdlQ2xpZW50KFdURk1vdmUocGFnZUNsaWVudCkpCisgICAgLCBtX3BhZ2Uo
V1RGTW92ZShwYWdlKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbmVl
ZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVn
aW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtlKE5T
Vmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBk
YjkwYTJiZDljYzUwMDNlMDJmY2M4NjUwZi4uMGRhMjNhMjNhOGZhZjdhYWVkNzJjMjdiZTgyMjcy
YWI4ZWIzNDcyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTcxOSw4ICs3MTksMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9j
ZXNzKCkKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJv
Y2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNz
LT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50
TGltaXQoKTsKKyAgICBhdXRvKiBuZXdQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgp
Lm1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChtX3dl
YnNpdGVEYXRhU3RvcmUucHRyKCkpOworICAgIGlmICghbmV3UHJvY2VzcykgeworICAgICAgICBX
VEZMb2dBbHdheXMoIiVzOiBDb3VsZG4ndCByZWF0dGFjaCB0byBhIG5ldyB3ZWIgcHJvY2Vzc1xu
IiwgZ2V0cHJvZ25hbWUoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBtX3Byb2Nl
c3MgPSAqbmV3UHJvY2VzczsKICAgICBBU1NFUlQobV9wcm9jZXNzLT5zdGF0ZSgpICE9IENoaWxk
UHJvY2Vzc1Byb3h5OjpTdGF0ZTo6VGVybWluYXRlZCk7CiAgICAgaWYgKG1fcHJvY2Vzcy0+c3Rh
dGUoKSA9PSBDaGlsZFByb2Nlc3NQcm94eTo6U3RhdGU6OlJ1bm5pbmcpCiAgICAgICAgIHByb2Nl
c3NEaWRGaW5pc2hMYXVuY2hpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCmluZGV4IDJhZmZjZmRiZTk2OGQ5NjUyZmQ1MzBiMjkyMzk0NDg3YWQzMmUx
N2YuLmU0ODQ1ODMzZjZkODNlNDg3YWZhMzAyMGU2MGU0MmVhZWYzYWZiYzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtNTM5LDcgKzUzOSw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkK
ICAgICBwbGF0Zm9ybVJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7CiB9CiAKLVdl
YlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQorV2Vi
UHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRl
RGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNz
KCk7CiAKQEAgLTY3NSw3ICs2NzUsNyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlh
bFByb2Nlc3MoKQogICAgIGlmIChtX3Byb2Nlc3Nlcy5zaXplKCkgPj0gbWF4aW11bU51bWJlck9m
UHJvY2Vzc2VzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNyZWF0ZU5ld1dlYlByb2Nlc3Mo
KTsKKyAgICBjcmVhdGVOZXdXZWJQcm9jZXNzKG51bGxwdHIpOwogICAgIG1faGF2ZUluaXRpYWxF
bXB0eVByb2Nlc3MgPSB0cnVlOwogfQogCkBAIC03NTEsMjAgKzc1MSwyNSBAQCB2b2lkIFdlYlBy
b2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAj
ZW5kaWYKIH0KIAotV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2Vi
UHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgpCitXZWJQcm9jZXNzUHJveHkqIFdl
YlByb2Nlc3NQb29sOjptYXliZUNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0Nv
dW50TGltaXQoV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSkKIHsKICAgICBpZiAo
bV9wcm9jZXNzZXMuc2l6ZSgpIDwgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCi0gICAgICAg
IHJldHVybiBjcmVhdGVOZXdXZWJQcm9jZXNzKCk7CisgICAgICAgIHJldHVybiAmY3JlYXRlTmV3
V2ViUHJvY2Vzcyh3ZWJzaXRlRGF0YVN0b3JlKTsKKworICAgIC8vIElmIGEgbm9uLWRlZmF1bHQg
V2Vic2l0ZURhdGFTdG9yZSB3YXMgcGFzc2VkIGluIGFuZCB3ZSBjb3VsZG4ndCBtYWtlIGEgbmV3
IHdlYiBwcm9jZXNzIGZvciBpdCwKKyAgICAvLyB3ZSBzaG91bGQgbm90IHJldHVybiBhbiBleGlz
dGluZyBwcm9jZXNzLgorICAgIGlmICh3ZWJzaXRlRGF0YVN0b3JlICYmIHdlYnNpdGVEYXRhU3Rv
cmUgIT0gJkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT53ZWJzaXRl
RGF0YVN0b3JlKCkpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2hvb3NlIHRo
ZSBwcm9jZXNzIHdpdGggZmV3ZXN0IHBhZ2VzLgogICAgIGF1dG8mIHByb2Nlc3MgPSAqc3RkOjpt
aW5fZWxlbWVudChtX3Byb2Nlc3Nlcy5iZWdpbigpLCBtX3Byb2Nlc3Nlcy5lbmQoKSwgW10oY29u
c3QgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4mIGEsIGNvbnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+JiBiKSB7CiAgICAgICAgIHJldHVybiBhLT5wYWdlQ291bnQoKSA8IGItPnBhZ2VDb3VudCgp
OwogICAgIH0pOwogCi0gICAgcmV0dXJuICpwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzLmdl
dCgpOwogfQogCi1SZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFn
ZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBw
YWdlQ29uZmlndXJhdGlvbikKK1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpj
cmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmIHBhZ2VDb25maWd1cmF0aW9uKQogewogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRp
b24tPnBhZ2VHcm91cCgpKQogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3Vw
KG1fZGVmYXVsdFBhZ2VHcm91cC5wdHIoKSk7CkBAIC03NzQsMjEgKzc3OSwyMyBAQCBSZWY8V2Vi
UGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdl
Q2xpZW50LCBSZWY8QVBJOgogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0VXNlckNvbnRl
bnRDb250cm9sbGVyKCZwYWdlQ29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnVzZXJDb250ZW50
Q29udHJvbGxlcigpKTsKICAgICBpZiAoIXBhZ2VDb25maWd1cmF0aW9uLT52aXNpdGVkTGlua1N0
b3JlKCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRWaXNpdGVkTGlua1N0b3JlKG1f
dmlzaXRlZExpbmtTdG9yZS5wdHIoKSk7Ci0gICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+d2Vi
c2l0ZURhdGFTdG9yZSgpKSB7CisKKyAgICBib29sIHBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlID0g
cGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKTsKKyAgICBpZiAoIXBhZ2VIYXNX
ZWJzaXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIEFTU0VSVCghcGFnZUNvbmZpZ3VyYXRpb24tPnNl
c3Npb25JRCgpLmlzVmFsaWQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJz
aXRlRGF0YVN0b3JlKG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKSk7CiAgICAgICAgIHBhZ2VDb25m
aWd1cmF0aW9uLT5zZXRTZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCkt
PnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Np
b25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIFJl
ZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3M7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxFbXB0
eVByb2Nlc3MpIHsKKyAgICBpZiAobV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyAmJiAhcGFnZUhh
c1dlYnNpdGVEYXRhU3RvcmUpIHsKICAgICAgICAgcHJvY2VzcyA9IG1fcHJvY2Vzc2VzLmxhc3Qo
KTsKICAgICAgICAgbV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyA9IGZhbHNlOwogICAgIH0gZWxz
ZSBpZiAocGFnZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCkpIHsKICAgICAgICAgLy8gU2hh
cmluZyBwcm9jZXNzZXMsIGUuZy4gd2hlbiBjcmVhdGluZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9w
ZW4oKS4KICAgICAgICAgcHJvY2VzcyA9ICZwYWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2Uo
KS0+cHJvY2VzcygpOwogICAgIH0gZWxzZQotICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dl
YlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKKyAgICAgICAgcHJvY2VzcyA9
IG1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgmcGFn
ZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsK
IAogICAgIHJldHVybiBwcm9jZXNzLT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUo
cGFnZUNvbmZpZ3VyYXRpb24pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKaW5kZXggYjc5MzQ5OGQ0ZTg2Nzk5YzQ5Yzk3Y2MwY2FhN2JiMmJmNjQ5OWI4NC4u
OTNhNjNmNmI3YTUwOTg3NDFhZjc5MjNjZGQ4OWRhMjkxMzA5NzY1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6
CiAKICAgICBBUEk6OldlYnNpdGVEYXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUoKSBjb25zdCB7
IHJldHVybiBtX3dlYnNpdGVEYXRhU3RvcmUuZ2V0KCk7IH0KIAotICAgIFJlZjxXZWJQYWdlUHJv
eHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmKTsKKyAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQm
LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAKICAgICBjb25zdCBTdHJpbmcmIGlu
amVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi0+aW5qZWN0
ZWRCdW5kbGVQYXRoKCk7IH0KIApAQCAtMjYyLDcgKzI2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmlj
YXRlSW5mbyosIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAKLSAgICBXZWJQcm9jZXNzUHJveHkmIGNy
ZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsgLy8gV2lsbCBy
ZXR1cm4gYW4gZXhpc3Rpbmcgb25lIGlmIGxpbWl0IGlzIG1ldC4KKyAgICBXZWJQcm9jZXNzUHJv
eHkqIG1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChX
ZWJzaXRlRGF0YVN0b3JlKik7IC8vIFdpbGwgcmV0dXJuIGFuIGV4aXN0aW5nIG9uZSBpZiBsaW1p
dCBpcyBtZXQuCiAgICAgdm9pZCB3YXJtSW5pdGlhbFByb2Nlc3MoKTsKIAogICAgIGJvb2wgc2hv
dWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopOwpAQCAtNDAyLDcgKzQwMiw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsK
IAotICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJvY2VzcygpOworICAgIFdlYlBy
b2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKik7CiAKICAg
ICB2b2lkIHJlcXVlc3RXZWJDb250ZW50U3RhdGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwog
ICAgIHZvaWQgcmVxdWVzdE5ldHdvcmtpbmdTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302316</attachid>
            <date>2017-02-21 15:01:45 -0800</date>
            <delta_ts>2017-02-21 16:57:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170221145900.patch</filename>
            <type>text/plain</type>
            <size>12691</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGE2MjdkNmNhNGI2ZDg4
ODllZGMyMzQ1ZDExNDI5OWNkYmQxZjc2Yi4uZTZmYTI1MWFiYjgxYjAwZDg2MGIyMjMwYzNlYTAw
Y2NmMzk2MGRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAyLTIxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBXZWJWaWV3
SW1wbCBjcmVhdGlvbiBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBtdWx0aXBsZSBXZWJz
aXRlRGF0YVN0b3Jlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfaW5pdGlhbGl6ZVdpdGhDb25maWd1cmF0aW9uOl0pOiBBbGxvdyBmb3IgV2ViVmll
d0ltcGwgY3JlYXRpb24gdG8gZmFpbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29u
ZmlndXJhdGlvbjpdKTogRGl0dG8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptYXliZUNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzcyk6IE5ldyBXZWJQcm9jZXNzIGNyZWF0aW9uIG1pZ2h0IGZhaWwuIEhhbmRsZSBpdC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQcm9jZXNzUG9vbDo6bWF5YmVDcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3ND
b3VudExpbWl0KTogVGhpcyBjYW4gbm93IGZhaWwKKyAgICAgICAgICBpZiB0aGUgcHJvY2VzcyB3
aWxsIGhhdmUgYSBub24tZGVmYXVsdCBXZWJzaXRlRGF0YVN0b3JlIGJ1dCB3ZSd2ZSBhbHJlYWR5
IHJlYWNoZWQgdGhlIHByb2Nlc3MgY2FwLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVh
dGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KTogRGVsZXRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaDoKKwogMjAxNy0wMi0xNSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBiYWNraW5nIHVwIGxv
Y2FsU3RvcmFnZSBkYXRhYmFzZXMgdG8gaUNsb3VkIGJ5IGRlZmF1bHQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDY4NDY4OTE4M2Zl
MGI0ZjAwNTcyYTA2MWRiY2FkMGNmYjYzNWFiODcuLjJmYjdiOGQ2OGU2YmQyNWUwOGViMDAyMDEw
YWFjNTc4MjJkZmY1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCkBAIC01NDksNyArNTQ5LDEyIEBAIC0gKHZvaWQpX2luaXRpYWxpemVX
aXRoQ29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24K
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIF9pbXBsID0gc3RkOjptYWtlX3VuaXF1
ZTxXZWJLaXQ6OldlYlZpZXdJbXBsPihzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgV1RGTW92ZShw
YWdlQ29uZmlndXJhdGlvbikpOworICAgIF9pbXBsID0gV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWF5
YmVDcmVhdGUoc2VsZiwgc2VsZiwgcHJvY2Vzc1Bvb2wsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRp
b24pKTsKKyAgICBpZiAoIV9pbXBsKSB7CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0lu
dGVybmFsSW5jb25zaXN0ZW5jeUV4Y2VwdGlvbiBmb3JtYXQ6QCJbV0tXZWJWaWV3IF9pbml0aWFs
aXplV2l0aENvbmZpZ3VyYXRpb246XSBmYWlsZWQgdG8gY3JlYXRlIGEgbmV3IFdlYlByb2Nlc3Mi
XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIF9wYWdlID0gJl9pbXBsLT5wYWdlKCk7
CiAKICAgICBfaW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKHRydWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGMwM2E4
YzM3MTFmNWFkYjc4NDc0NTBkNmNlMjU3YzJiZDY5MTAzZDMuLjIwNzNkZjg2MmE1NmQ0YTA4Y2Yz
OGU3M2I1OTY5MDI5MGE2NDgwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KQEAgLTkwNCw3ICs5MDQsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
RnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3MK
ICAgICBJbml0aWFsaXplV2ViS2l0MigpOwogCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxs
b2NdIGluaXRdOwotICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0lt
cGw+KHNlbGYsIG51bGxwdHIsIHByb2Nlc3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsK
KworICAgIF9kYXRhLT5faW1wbCA9IFdlYlZpZXdJbXBsOjptYXliZUNyZWF0ZShzZWxmLCBudWxs
cHRyLCBwcm9jZXNzUG9vbCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgaWYgKCFfZGF0
YS0+X2ltcGwpIHsKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNp
c3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIltXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9v
bDpjb25maWd1cmF0aW9uOl0gZmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBXZWJQcm9jZXNzIl07Cisg
ICAgICAgIHJldHVybiBuaWw7CisgICAgfQogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNvbkxv
YWRpbmdDbGllbnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCmluZGV4IDY5MmE5MjRhY2Y0YmQ5ZjFkN2NkYjFhOGQ1ZDg5Yjc2YmJmMzNhNGUuLjZk
MDc5NWI2MDNjMWI4OTNjOTg2NzNkOTYzMDZmMmIyMTJlMTE0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0xMjAsNyArMTIwLDcgQEAgY2xh
c3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoKLSAgICBXZWJWaWV3SW1wbChO
U1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBX
ZWJQcm9jZXNzUG9vbCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBzdGF0
aWMgc3RkOjp1bmlxdWVfcHRyPFdlYlZpZXdJbXBsPiBtYXliZUNyZWF0ZShOU1ZpZXcgPFdlYlZp
ZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNzUG9v
bCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIH5XZWJWaWV3SW1wbCgp
OwogCkBAIC01MjMsNiArNTIzLDggQEAgcHVibGljOgogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFS
KQogCiBwcml2YXRlOgorICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0
ZT4gKiwgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmLCBSZWY8V2ViUGFnZVByb3h5
PiYmLCBXZWJQcm9jZXNzUG9vbCYpOworCiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9pZCBz
ZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwogICAgIHZvaWQgdXBkYXRlVGV4dFRvdWNo
QmFyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggZWNhOWVhNGZkNTc1YWM1OTY0MTY1YTNjYmQ4MDA2MjI2YjgzZmY3MC4uMjVlYjFiNzNl
OTU5OWY3MmI5NGZmN2Q1ZDRmY2MzNzE3Y2I2ZThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTIyOSwxMCArMTIyOSwyMCBAQCBzdGF0
aWMgTlNUcmFja2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogICAgIHJldHVy
biBvcHRpb25zOwogfQogCi1XZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3
SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYlZpZXcsIFdlYlByb2Nlc3NQ
b29sJiBwcm9jZXNzUG9vbCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXJh
dGlvbikKK3N0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4gV2ViVmlld0ltcGw6Om1heWJlQ3Jl
YXRlKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJX
ZWJWaWV3LCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZjxBUEk6OlBhZ2VDb25maWd1
cmF0aW9uPiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwYWdlQ2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KTsKKyAgICBhdXRv
IHdlYlBhZ2UgPSBwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpwYWdlQ2xpZW50LCBXVEZNb3Zl
KGNvbmZpZ3VyYXRpb24pKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4obmV3IFdlYlZp
ZXdJbXBsKHZpZXcsIFdURk1vdmUocGFnZUNsaWVudCksICp3ZWJQYWdlLCBwcm9jZXNzUG9vbCkp
OworfQorCitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVn
YXRlPiAqdmlldywgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmIHBhZ2VDbGllbnQs
IFJlZjxXZWJQYWdlUHJveHk+JiYgcGFnZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQog
ICAgIDogbV92aWV3KHZpZXcpCi0gICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQ
YWdlQ2xpZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KSkKLSAgICAsIG1fcGFnZShwcm9jZXNz
UG9vbC5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikp
KQorICAgICwgbV9wYWdlQ2xpZW50KFdURk1vdmUocGFnZUNsaWVudCkpCisgICAgLCBtX3BhZ2Uo
V1RGTW92ZShwYWdlKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbmVl
ZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVn
aW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtlKE5T
Vmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBk
YjkwYTJiZDljYzUwMDNlMDJmY2M4NjUwZi4uMGY3ZjNlNmExYWVkMmViYjU4ODUzMDJjNGE0MDNl
NjI1OTA1NDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTcxOSw4ICs3MTksMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9j
ZXNzKCkKICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJv
Y2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlSUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNz
LT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50
TGltaXQoKTsKKyAgICBhdXRvKiBuZXdQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgp
Lm1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChtX3dl
YnNpdGVEYXRhU3RvcmUucHRyKCkpOworICAgIGlmICghbmV3UHJvY2VzcykgeworICAgICAgICBX
VEZMb2dBbHdheXMoIkNvdWxkbid0IHJlYXR0YWNoIHRvIGEgbmV3IHdlYiBwcm9jZXNzIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CiAKKyAgICBtX3Byb2Nlc3MgPSAqbmV3UHJvY2VzczsKICAg
ICBBU1NFUlQobV9wcm9jZXNzLT5zdGF0ZSgpICE9IENoaWxkUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6
VGVybWluYXRlZCk7CiAgICAgaWYgKG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBDaGlsZFByb2Nlc3NQ
cm94eTo6U3RhdGU6OlJ1bm5pbmcpCiAgICAgICAgIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmco
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJh
ZmZjZmRiZTk2OGQ5NjUyZmQ1MzBiMjkyMzk0NDg3YWQzMmUxN2YuLmU0ODQ1ODMzZjZkODNlNDg3
YWZhMzAyMGU2MGU0MmVhZWYzYWZiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcApAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnJlc29sdmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKICAgICBwbGF0Zm9ybVJlc29sdmVQ
YXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCk7CiB9CiAKLVdlYlByb2Nlc3NQcm94eSYgV2ViUHJv
Y2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQorV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9j
ZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0
YVN0b3JlKQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CiAKQEAgLTY3NSw3ICs2NzUs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MoKQogICAgIGlmICht
X3Byb2Nlc3Nlcy5zaXplKCkgPj0gbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGNyZWF0ZU5ld1dlYlByb2Nlc3MoKTsKKyAgICBjcmVhdGVOZXdXZWJQ
cm9jZXNzKG51bGxwdHIpOwogICAgIG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSB0cnVlOwog
fQogCkBAIC03NTEsMjAgKzc1MSwyNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0
UHJvY2VzcyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAjZW5kaWYKIH0KIAotV2ViUHJvY2Vz
c1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9j
ZXNzQ291bnRMaW1pdCgpCitXZWJQcm9jZXNzUHJveHkqIFdlYlByb2Nlc3NQb29sOjptYXliZUNy
ZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoV2Vic2l0ZURhdGFT
dG9yZSogd2Vic2l0ZURhdGFTdG9yZSkKIHsKICAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpIDwg
bWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVOZXdXZWJQ
cm9jZXNzKCk7CisgICAgICAgIHJldHVybiAmY3JlYXRlTmV3V2ViUHJvY2Vzcyh3ZWJzaXRlRGF0
YVN0b3JlKTsKKworICAgIC8vIElmIGEgbm9uLWRlZmF1bHQgV2Vic2l0ZURhdGFTdG9yZSB3YXMg
cGFzc2VkIGluIGFuZCB3ZSBjb3VsZG4ndCBtYWtlIGEgbmV3IHdlYiBwcm9jZXNzIGZvciBpdCwK
KyAgICAvLyB3ZSBzaG91bGQgbm90IHJldHVybiBhbiBleGlzdGluZyBwcm9jZXNzLgorICAgIGlm
ICh3ZWJzaXRlRGF0YVN0b3JlICYmIHdlYnNpdGVEYXRhU3RvcmUgIT0gJkFQSTo6V2Vic2l0ZURh
dGFTdG9yZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkpCisgICAgICAg
IHJldHVybiBudWxscHRyOwogCiAgICAgLy8gQ2hvb3NlIHRoZSBwcm9jZXNzIHdpdGggZmV3ZXN0
IHBhZ2VzLgogICAgIGF1dG8mIHByb2Nlc3MgPSAqc3RkOjptaW5fZWxlbWVudChtX3Byb2Nlc3Nl
cy5iZWdpbigpLCBtX3Byb2Nlc3Nlcy5lbmQoKSwgW10oY29uc3QgUmVmUHRyPFdlYlByb2Nlc3NQ
cm94eT4mIGEsIGNvbnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+JiBiKSB7CiAgICAgICAgIHJl
dHVybiBhLT5wYWdlQ291bnQoKSA8IGItPnBhZ2VDb3VudCgpOwogICAgIH0pOwogCi0gICAgcmV0
dXJuICpwcm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzLmdldCgpOwogfQogCi1SZWY8V2ViUGFn
ZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xp
ZW50LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBwYWdlQ29uZmlndXJhdGlvbikKK1Jl
ZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmIHBhZ2VDb25maWd1
cmF0aW9uKQogewogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpKQogICAg
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKG1fZGVmYXVsdFBhZ2VHcm91cC5w
dHIoKSk7CkBAIC03NzQsMjEgKzc3OSwyMyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNz
UG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAg
ICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKCZwYWdlQ29u
ZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnVzZXJDb250ZW50Q29udHJvbGxlcigpKTsKICAgICBp
ZiAoIXBhZ2VDb25maWd1cmF0aW9uLT52aXNpdGVkTGlua1N0b3JlKCkpCiAgICAgICAgIHBhZ2VD
b25maWd1cmF0aW9uLT5zZXRWaXNpdGVkTGlua1N0b3JlKG1fdmlzaXRlZExpbmtTdG9yZS5wdHIo
KSk7Ci0gICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CisK
KyAgICBib29sIHBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlID0gcGFnZUNvbmZpZ3VyYXRpb24tPndl
YnNpdGVEYXRhU3RvcmUoKTsKKyAgICBpZiAoIXBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlKSB7CiAg
ICAgICAgIEFTU0VSVCghcGFnZUNvbmZpZ3VyYXRpb24tPnNlc3Npb25JRCgpLmlzVmFsaWQoKSk7
CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJzaXRlRGF0YVN0b3JlKG1fd2Vic2l0
ZURhdGFTdG9yZS5nZXQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRTZXNzaW9u
SUQocGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpk
ZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+
IHByb2Nlc3M7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MpIHsKKyAgICBpZiAo
bV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyAmJiAhcGFnZUhhc1dlYnNpdGVEYXRhU3RvcmUpIHsK
ICAgICAgICAgcHJvY2VzcyA9IG1fcHJvY2Vzc2VzLmxhc3QoKTsKICAgICAgICAgbV9oYXZlSW5p
dGlhbEVtcHR5UHJvY2VzcyA9IGZhbHNlOwogICAgIH0gZWxzZSBpZiAocGFnZUNvbmZpZ3VyYXRp
b24tPnJlbGF0ZWRQYWdlKCkpIHsKICAgICAgICAgLy8gU2hhcmluZyBwcm9jZXNzZXMsIGUuZy4g
d2hlbiBjcmVhdGluZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9wZW4oKS4KICAgICAgICAgcHJvY2Vz
cyA9ICZwYWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2UoKS0+cHJvY2VzcygpOwogICAgIH0g
ZWxzZQotICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJv
Y2Vzc0NvdW50TGltaXQoKTsKKyAgICAgICAgcHJvY2VzcyA9IG1heWJlQ3JlYXRlTmV3V2ViUHJv
Y2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgmcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNp
dGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIHJldHVybiBwcm9jZXNz
LT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYjc5MzQ5
OGQ0ZTg2Nzk5YzQ5Yzk3Y2MwY2FhN2JiMmJmNjQ5OWI4NC4uOTNhNjNmNmI3YTUwOTg3NDFhZjc5
MjNjZGQ4OWRhMjkxMzA5NzY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAKICAgICBBUEk6OldlYnNpdGVE
YXRhU3RvcmUqIHdlYnNpdGVEYXRhU3RvcmUoKSBjb25zdCB7IHJldHVybiBtX3dlYnNpdGVEYXRh
U3RvcmUuZ2V0KCk7IH0KIAotICAgIFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFn
ZUNsaWVudCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBSZWZQdHI8V2Vi
UGFnZVByb3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmLCBSZWY8QVBJOjpQYWdlQ29uZmln
dXJhdGlvbj4mJik7CiAKICAgICBjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29uZmlndXJhdGlvbi0+aW5qZWN0ZWRCdW5kbGVQYXRoKCk7IH0KIApA
QCAtMjYyLDcgKzI2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBT
Q2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNvbnN0IFN0cmlu
ZyYgaG9zdCk7CiAKLSAgICBXZWJQcm9jZXNzUHJveHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNw
ZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsgLy8gV2lsbCByZXR1cm4gYW4gZXhpc3Rpbmcgb25l
IGlmIGxpbWl0IGlzIG1ldC4KKyAgICBXZWJQcm9jZXNzUHJveHkqIG1heWJlQ3JlYXRlTmV3V2Vi
UHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChXZWJzaXRlRGF0YVN0b3JlKik7IC8v
IFdpbGwgcmV0dXJuIGFuIGV4aXN0aW5nIG9uZSBpZiBsaW1pdCBpcyBtZXQuCiAgICAgdm9pZCB3
YXJtSW5pdGlhbFByb2Nlc3MoKTsKIAogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nl
c3NQcm94eSopOwpAQCAtNDAyLDcgKzQwMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9y
bUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAg
ICB2b2lkIHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsKIAotICAgIFdlYlByb2Nlc3NQcm94
eSYgY3JlYXRlTmV3V2ViUHJvY2VzcygpOworICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3
V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKik7CiAKICAgICB2b2lkIHJlcXVlc3RXZWJDb250
ZW50U3RhdGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwogICAgIHZvaWQgcmVxdWVzdE5ldHdv
cmtpbmdTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302341</attachid>
            <date>2017-02-21 16:57:43 -0800</date>
            <delta_ts>2017-02-27 16:42:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170221165457.patch</filename>
            <type>text/plain</type>
            <size>12685</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyNTU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMGE2MjdkNmNhNGI2ZDg4
ODllZGMyMzQ1ZDExNDI5OWNkYmQxZjc2Yi4uNGI2OWVhOTQxN2ZkMDRmYmY3NGRlNWY5ZmNiNWI1
ZjY4MWY5Mzc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTAyLTIxICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBSZWZhY3RvciBXZWJWaWV3
SW1wbCBjcmVhdGlvbiBpbiBwcmVwYXJhdGlvbiBmb3Igc3VwcG9ydGluZyBtdWx0aXBsZSBXZWJz
aXRlRGF0YVN0b3Jlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE2ODY3NgorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IF9pbml0aWFsaXplV2l0aENvbmZpZ3VyYXRpb246XSk6IEFsbG93IGZvciBXZWJW
aWV3SW1wbCBjcmVhdGlvbiB0byBmYWlsLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpj
b25maWd1cmF0aW9uOl0pOiBEaXR0by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1heWJlQ3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9X
ZWJQcm9jZXNzKTogTmV3IFdlYlByb2Nlc3MgY3JlYXRpb24gbWlnaHQgZmFpbC4gSGFuZGxlIGl0
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NQb29sOjptYXliZUNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vz
c0NvdW50TGltaXQpOiBUaGlzIGNhbiBub3cgZmFpbAorICAgICAgICAgIGlmIHRoZSBwcm9jZXNz
IHdpbGwgaGF2ZSBhIG5vbi1kZWZhdWx0IFdlYnNpdGVEYXRhU3RvcmUgYnV0IHdlJ3ZlIGFscmVh
ZHkgcmVhY2hlZCB0aGUgcHJvY2VzcyBjYXAuCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQ
b29sOjpjcmVhdGVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE3LTAyLTE1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBTdG9wIGJhY2tpbmcgdXAg
bG9jYWxTdG9yYWdlIGRhdGFiYXNlcyB0byBpQ2xvdWQgYnkgZGVmYXVsdC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNjg0Njg5MTgz
ZmUwYjRmMDA1NzJhMDYxZGJjYWQwY2ZiNjM1YWI4Ny4uNzFiZWJiNzAxNjQyNmQ5ODA2YzFjMmE5
N2E4ZjkyOTIzZmZmNmMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0KQEAgLTU0OSw3ICs1NDksMTIgQEAgLSAodm9pZClfaW5pdGlhbGl6
ZVdpdGhDb25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW9uICopY29uZmlndXJhdGlv
bgogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgX2ltcGwgPSBzdGQ6Om1ha2VfdW5p
cXVlPFdlYktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIHNlbGYsIHByb2Nlc3NQb29sLCBXVEZNb3Zl
KHBhZ2VDb25maWd1cmF0aW9uKSk7CisgICAgX2ltcGwgPSBXZWJLaXQ6OldlYlZpZXdJbXBsOjpt
YXliZUNyZWF0ZShzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgV1RGTW92ZShwYWdlQ29uZmlndXJh
dGlvbikpOworICAgIGlmICghX2ltcGwpIHsKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW50ZXJuYWxJbmNvbnNpc3RlbmN5RXhjZXB0aW9uIGZvcm1hdDpAIldLV2ViVmlldyBpbml0aWFs
aXphdGlvbiBmYWlsZWQuIFVuYWJsZSB0byBjcmVhdGUgYSBuZXcgV2ViUHJvY2Vzcy4iXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIF9wYWdlID0gJl9pbXBsLT5wYWdlKCk7CiAKICAg
ICBfaW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKHRydWUpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGMwM2E4YzM3MTFm
NWFkYjc4NDc0NTBkNmNlMjU3YzJiZDY5MTAzZDMuLjIwNzNkZjg2MmE1NmQ0YTA4Y2YzOGU3M2I1
OTY5MDI5MGE2NDgwYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTkwNCw3ICs5MDQsMTIgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSBwcm9jZXNzUG9vbDooV2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3MKICAgICBJ
bml0aWFsaXplV2ViS2l0MigpOwogCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGlu
aXRdOwotICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0ltcGw+KHNl
bGYsIG51bGxwdHIsIHByb2Nlc3NQb29sLCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKworICAg
IF9kYXRhLT5faW1wbCA9IFdlYlZpZXdJbXBsOjptYXliZUNyZWF0ZShzZWxmLCBudWxscHRyLCBw
cm9jZXNzUG9vbCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisgICAgaWYgKCFfZGF0YS0+X2lt
cGwpIHsKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW50ZXJuYWxJbmNvbnNpc3RlbmN5
RXhjZXB0aW9uIGZvcm1hdDpAIltXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25m
aWd1cmF0aW9uOl0gZmFpbGVkIHRvIGNyZWF0ZSBhIG5ldyBXZWJQcm9jZXNzIl07CisgICAgICAg
IHJldHVybiBuaWw7CisgICAgfQogCiAgICAgW3NlbGYgbWF5YmVJbnN0YWxsSWNvbkxvYWRpbmdD
bGllbnRdOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CmluZGV4IDY5MmE5MjRhY2Y0YmQ5ZjFkN2NkYjFhOGQ1ZDg5Yjc2YmJmMzNhNGUuLjZkMDc5NWI2
MDNjMWI4OTNjOTg2NzNkOTYzMDZmMmIyMTJlMTE0MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0xMjAsNyArMTIwLDcgQEAgY2xhc3MgV2Vi
Vmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoKLSAgICBXZWJWaWV3SW1wbChOU1ZpZXcg
PFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9j
ZXNzUG9vbCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBzdGF0aWMgc3Rk
Ojp1bmlxdWVfcHRyPFdlYlZpZXdJbXBsPiBtYXliZUNyZWF0ZShOU1ZpZXcgPFdlYlZpZXdJbXBs
RGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNzUG9vbCYsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIH5XZWJWaWV3SW1wbCgpOwogCkBA
IC01MjMsNiArNTIzLDggQEAgcHVibGljOgogI2VuZGlmIC8vIEhBVkUoVE9VQ0hfQkFSKQogCiBw
cml2YXRlOgorICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKiwg
c3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmLCBSZWY8V2ViUGFnZVByb3h5PiYmLCBX
ZWJQcm9jZXNzUG9vbCYpOworCiAjaWYgSEFWRShUT1VDSF9CQVIpCiAgICAgdm9pZCBzZXRVcFRl
eHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwogICAgIHZvaWQgdXBkYXRlVGV4dFRvdWNoQmFyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXgg
ZWNhOWVhNGZkNTc1YWM1OTY0MTY1YTNjYmQ4MDA2MjI2YjgzZmY3MC4uMjVlYjFiNzNlOTU5OWY3
MmI5NGZmN2Q1ZDRmY2MzNzE3Y2I2ZThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTIyOSwxMCArMTIyOSwyMCBAQCBzdGF0aWMgTlNU
cmFja2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogICAgIHJldHVybiBvcHRp
b25zOwogfQogCi1XZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERl
bGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYlZpZXcsIFdlYlByb2Nlc3NQb29sJiBw
cm9jZXNzUG9vbCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYgY29uZmlndXJhdGlvbikK
K3N0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4gV2ViVmlld0ltcGw6Om1heWJlQ3JlYXRlKE5T
VmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3
LCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9u
PiYmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgYXV0byBwYWdlQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxQYWdlQ2xpZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KTsKKyAgICBhdXRvIHdlYlBh
Z2UgPSBwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpwYWdlQ2xpZW50LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4obmV3IFdlYlZpZXdJbXBs
KHZpZXcsIFdURk1vdmUocGFnZUNsaWVudCksICp3ZWJQYWdlLCBwcm9jZXNzUG9vbCkpOworfQor
CitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAq
dmlldywgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiYmIHBhZ2VDbGllbnQsIFJlZjxX
ZWJQYWdlUHJveHk+JiYgcGFnZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQogICAgIDog
bV92aWV3KHZpZXcpCi0gICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xp
ZW50SW1wbD4odmlldywgb3V0ZXJXZWJWaWV3KSkKLSAgICAsIG1fcGFnZShwcm9jZXNzUG9vbC5j
cmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURk1vdmUoY29uZmlndXJhdGlvbikpKQorICAg
ICwgbV9wYWdlQ2xpZW50KFdURk1vdmUocGFnZUNsaWVudCkpCisgICAgLCBtX3BhZ2UoV1RGTW92
ZShwYWdlKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKICAgICAsIG1fbmVlZHNWaWV3
RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVnaW5zRW5h
YmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtlKE5TVmlld05v
SW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjNkNjQ4MWNmZWMxMzBkYjkwYTJi
ZDljYzUwMDNlMDJmY2M4NjUwZi4uMGY3ZjNlNmExYWVkMmViYjU4ODUzMDJjNGE0MDNlNjI1OTA1
NDVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcx
OSw4ICs3MTksMTMgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKCkK
ICAgICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+
cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgbV9wYWdlSUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9j
ZXNzUG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQo
KTsKKyAgICBhdXRvKiBuZXdQcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLm1heWJl
Q3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChtX3dlYnNpdGVE
YXRhU3RvcmUucHRyKCkpOworICAgIGlmICghbmV3UHJvY2VzcykgeworICAgICAgICBXVEZMb2dB
bHdheXMoIkNvdWxkbid0IHJlYXR0YWNoIHRvIGEgbmV3IHdlYiBwcm9jZXNzIik7CisgICAgICAg
IHJldHVybjsKKyAgICB9CiAKKyAgICBtX3Byb2Nlc3MgPSAqbmV3UHJvY2VzczsKICAgICBBU1NF
UlQobV9wcm9jZXNzLT5zdGF0ZSgpICE9IENoaWxkUHJvY2Vzc1Byb3h5OjpTdGF0ZTo6VGVybWlu
YXRlZCk7CiAgICAgaWYgKG1fcHJvY2Vzcy0+c3RhdGUoKSA9PSBDaGlsZFByb2Nlc3NQcm94eTo6
U3RhdGU6OlJ1bm5pbmcpCiAgICAgICAgIHByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDJhZmZjZmRi
ZTk2OGQ5NjUyZmQ1MzBiMjkyMzk0NDg3YWQzMmUxN2YuLmU0ODQ1ODMzZjZkODNlNDg3YWZhMzAy
MGU2MGU0MmVhZWYzYWZiYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnJlc29s
dmVQYXRoc0ZvclNhbmRib3hFeHRlbnNpb25zKCkKICAgICBwbGF0Zm9ybVJlc29sdmVQYXRoc0Zv
clNhbmRib3hFeHRlbnNpb25zKCk7CiB9CiAKLVdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bv
b2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoKQorV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlTmV3V2ViUHJvY2VzcyhXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3Jl
KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CiAKQEAgLTY3NSw3ICs2NzUsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MoKQogICAgIGlmIChtX3Byb2Nl
c3Nlcy5zaXplKCkgPj0gbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGNyZWF0ZU5ld1dlYlByb2Nlc3MoKTsKKyAgICBjcmVhdGVOZXdXZWJQcm9jZXNz
KG51bGxwdHIpOwogICAgIG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSB0cnVlOwogfQogCkBA
IC03NTEsMjAgKzc1MSwyNSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2Vz
cyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAjZW5kaWYKIH0KIAotV2ViUHJvY2Vzc1Byb3h5
JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291
bnRMaW1pdCgpCitXZWJQcm9jZXNzUHJveHkqIFdlYlByb2Nlc3NQb29sOjptYXliZUNyZWF0ZU5l
d1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoV2Vic2l0ZURhdGFTdG9yZSog
d2Vic2l0ZURhdGFTdG9yZSkKIHsKICAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgpIDwgbWF4aW11
bU51bWJlck9mUHJvY2Vzc2VzKCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVOZXdXZWJQcm9jZXNz
KCk7CisgICAgICAgIHJldHVybiAmY3JlYXRlTmV3V2ViUHJvY2Vzcyh3ZWJzaXRlRGF0YVN0b3Jl
KTsKKworICAgIC8vIElmIGEgbm9uLWRlZmF1bHQgV2Vic2l0ZURhdGFTdG9yZSB3YXMgcGFzc2Vk
IGluIGFuZCB3ZSBjb3VsZG4ndCBtYWtlIGEgbmV3IHdlYiBwcm9jZXNzIGZvciBpdCwKKyAgICAv
LyB3ZSBzaG91bGQgbm90IHJldHVybiBhbiBleGlzdGluZyBwcm9jZXNzLgorICAgIGlmICh3ZWJz
aXRlRGF0YVN0b3JlICYmIHdlYnNpdGVEYXRhU3RvcmUgIT0gJkFQSTo6V2Vic2l0ZURhdGFTdG9y
ZTo6ZGVmYXVsdERhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkpCisgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgLy8gQ2hvb3NlIHRoZSBwcm9jZXNzIHdpdGggZmV3ZXN0IHBhZ2Vz
LgogICAgIGF1dG8mIHByb2Nlc3MgPSAqc3RkOjptaW5fZWxlbWVudChtX3Byb2Nlc3Nlcy5iZWdp
bigpLCBtX3Byb2Nlc3Nlcy5lbmQoKSwgW10oY29uc3QgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4m
IGEsIGNvbnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+JiBiKSB7CiAgICAgICAgIHJldHVybiBh
LT5wYWdlQ291bnQoKSA8IGItPnBhZ2VDb3VudCgpOwogICAgIH0pOwogCi0gICAgcmV0dXJuICpw
cm9jZXNzOworICAgIHJldHVybiBwcm9jZXNzLmdldCgpOwogfQogCi1SZWY8V2ViUGFnZVByb3h5
PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBS
ZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBwYWdlQ29uZmlndXJhdGlvbikKK1JlZlB0cjxX
ZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBh
Z2VDbGllbnQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmIHBhZ2VDb25maWd1cmF0aW9u
KQogewogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpKQogICAgICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKG1fZGVmYXVsdFBhZ2VHcm91cC5wdHIoKSk7
CkBAIC03NzQsMjEgKzc3OSwyMyBAQCBSZWY8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6
Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOgogICAgICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+c2V0VXNlckNvbnRlbnRDb250cm9sbGVyKCZwYWdlQ29uZmlndXJh
dGlvbi0+cGFnZUdyb3VwKCktPnVzZXJDb250ZW50Q29udHJvbGxlcigpKTsKICAgICBpZiAoIXBh
Z2VDb25maWd1cmF0aW9uLT52aXNpdGVkTGlua1N0b3JlKCkpCiAgICAgICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5zZXRWaXNpdGVkTGlua1N0b3JlKG1fdmlzaXRlZExpbmtTdG9yZS5wdHIoKSk7Ci0g
ICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpKSB7CisKKyAgICBi
b29sIHBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlID0gcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVE
YXRhU3RvcmUoKTsKKyAgICBpZiAoIXBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlKSB7CiAgICAgICAg
IEFTU0VSVCghcGFnZUNvbmZpZ3VyYXRpb24tPnNlc3Npb25JRCgpLmlzVmFsaWQoKSk7CiAgICAg
ICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJzaXRlRGF0YVN0b3JlKG1fd2Vic2l0ZURhdGFT
dG9yZS5nZXQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRTZXNzaW9uSUQocGFn
ZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnByaXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/
IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25JRCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0
U2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nl
c3M7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MpIHsKKyAgICBpZiAobV9oYXZl
SW5pdGlhbEVtcHR5UHJvY2VzcyAmJiAhcGFnZUhhc1dlYnNpdGVEYXRhU3RvcmUpIHsKICAgICAg
ICAgcHJvY2VzcyA9IG1fcHJvY2Vzc2VzLmxhc3QoKTsKICAgICAgICAgbV9oYXZlSW5pdGlhbEVt
cHR5UHJvY2VzcyA9IGZhbHNlOwogICAgIH0gZWxzZSBpZiAocGFnZUNvbmZpZ3VyYXRpb24tPnJl
bGF0ZWRQYWdlKCkpIHsKICAgICAgICAgLy8gU2hhcmluZyBwcm9jZXNzZXMsIGUuZy4gd2hlbiBj
cmVhdGluZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9wZW4oKS4KICAgICAgICAgcHJvY2VzcyA9ICZw
YWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2UoKS0+cHJvY2VzcygpOwogICAgIH0gZWxzZQot
ICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0Nv
dW50TGltaXQoKTsKKyAgICAgICAgcHJvY2VzcyA9IG1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vzc1Jl
c3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgmcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRh
U3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIHJldHVybiBwcm9jZXNzLT5jcmVh
dGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYjc5MzQ5OGQ0ZTg2
Nzk5YzQ5Yzk3Y2MwY2FhN2JiMmJmNjQ5OWI4NC4uOTNhNjNmNmI3YTUwOTg3NDFhZjc5MjNjZGQ4
OWRhMjkxMzA5NzY1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmgKQEAgLTE3Miw3ICsxNzIsNyBAQCBwdWJsaWM6CiAKICAgICBBUEk6OldlYnNpdGVEYXRhU3Rv
cmUqIHdlYnNpdGVEYXRhU3RvcmUoKSBjb25zdCB7IHJldHVybiBtX3dlYnNpdGVEYXRhU3RvcmUu
Z2V0KCk7IH0KIAotICAgIFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVu
dCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBSZWZQdHI8V2ViUGFnZVBy
b3h5PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4mJik7CiAKICAgICBjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fY29uZmlndXJhdGlvbi0+aW5qZWN0ZWRCdW5kbGVQYXRoKCk7IH0KIApAQCAtMjYy
LDcgKzI2Miw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlm
aWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRpZmljYXRlSW5mbyosIGNvbnN0IFN0cmluZyYgaG9z
dCk7CiAKLSAgICBXZWJQcm9jZXNzUHJveHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5n
UHJvY2Vzc0NvdW50TGltaXQoKTsgLy8gV2lsbCByZXR1cm4gYW4gZXhpc3Rpbmcgb25lIGlmIGxp
bWl0IGlzIG1ldC4KKyAgICBXZWJQcm9jZXNzUHJveHkqIG1heWJlQ3JlYXRlTmV3V2ViUHJvY2Vz
c1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChXZWJzaXRlRGF0YVN0b3JlKik7IC8vIFdpbGwg
cmV0dXJuIGFuIGV4aXN0aW5nIG9uZSBpZiBsaW1pdCBpcyBtZXQuCiAgICAgdm9pZCB3YXJtSW5p
dGlhbFByb2Nlc3MoKTsKIAogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94
eSopOwpAQCAtNDAyLDcgKzQwMiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lk
IHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsKIAotICAgIFdlYlByb2Nlc3NQcm94eSYgY3Jl
YXRlTmV3V2ViUHJvY2VzcygpOworICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJv
Y2VzcyhXZWJzaXRlRGF0YVN0b3JlKik7CiAKICAgICB2b2lkIHJlcXVlc3RXZWJDb250ZW50U3Rh
dGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwogICAgIHZvaWQgcmVxdWVzdE5ldHdvcmtpbmdT
dGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302891</attachid>
            <date>2017-02-27 16:42:58 -0800</date>
            <delta_ts>2017-02-28 10:01:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170227164003.patch</filename>
            <type>text/plain</type>
            <size>5357</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmUwYWQ3NWMxMzQzOTMw
YWEwNmRjMDdjOTkyNmVkNWM5NmQ3MzBmMy4uZWI2MzM0Mzc1ZjI5ZThkODgxY2I5NWI0OGM4NTM1
NTFlM2VhNGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTI3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKyAgICAgICAgCisgICAgICAgIFJlZmFjdG9y
IFdlYlZpZXdJbXBsIGNyZWF0aW9uIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIG11bHRp
cGxlIFdlYnNpdGVEYXRhU3RvcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nl
c3NDb3VudExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE3LTAy
LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGwgb3V0IHIyMTMwNjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAppbmRleCA4ZGE0ZDI5YzQxNDc5Njk1NzQ5OGI1MmNjYTM3ODM0NDUy
YjJhNGJmLi5mN2E2Y2RlZjI1ZTA4OTBlNDEwYjU1ZDUyMTEyMjQ2NDcwMTk1MzIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTU1Nyw3ICs1NTcs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9u
cygpCiAgICAgcGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOwogfQog
Ci1XZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKCkK
K1dlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vi
c2l0ZURhdGFTdG9yZSopCiB7CiAgICAgZW5zdXJlTmV0d29ya1Byb2Nlc3MoKTsKIApAQCAtNjkz
LDcgKzY5Myw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2VzcygpCiAg
ICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSA+PSBtYXhpbXVtTnVtYmVyT2ZQcm9jZXNzZXMoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgY3JlYXRlTmV3V2ViUHJvY2VzcygpOworICAgIGNyZWF0
ZU5ld1dlYlByb2Nlc3MobnVsbHB0cik7CiAgICAgbV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyA9
IHRydWU7CiB9CiAKQEAgLTc2OSwxMCArNzY5LDE2IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmRp
c2Nvbm5lY3RQcm9jZXNzKFdlYlByb2Nlc3NQcm94eSogcHJvY2VzcykKICNlbmRpZgogfQogCi1X
ZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVj
dGluZ1Byb2Nlc3NDb3VudExpbWl0KCkKK1dlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoV2Vic2l0ZURh
dGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSkKIHsKLSAgICBpZiAobV9wcm9jZXNzZXMuc2l6ZSgp
IDwgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVOZXdX
ZWJQcm9jZXNzKCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgYm9vbCBnb092ZXJMaW1pdCA9
IHdlYnNpdGVEYXRhU3RvcmUgJiYgd2Vic2l0ZURhdGFTdG9yZSAhPSAmQVBJOjpXZWJzaXRlRGF0
YVN0b3JlOjpkZWZhdWx0RGF0YVN0b3JlKCktPndlYnNpdGVEYXRhU3RvcmUoKTsKKyNlbGlmCisg
ICAgYm9vbCBnb092ZXJMaW1pdCA9IGZhbHNlOworI2VuZGlmCisKKyAgICBpZiAobV9wcm9jZXNz
ZXMuc2l6ZSgpIDwgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkgfHwgZ29PdmVyTGltaXQpCisg
ICAgICAgIHJldHVybiBjcmVhdGVOZXdXZWJQcm9jZXNzKHdlYnNpdGVEYXRhU3RvcmUpOwogCiAg
ICAgLy8gQ2hvb3NlIHRoZSBwcm9jZXNzIHdpdGggZmV3ZXN0IHBhZ2VzLgogICAgIGF1dG8mIHBy
b2Nlc3MgPSAqc3RkOjptaW5fZWxlbWVudChtX3Byb2Nlc3Nlcy5iZWdpbigpLCBtX3Byb2Nlc3Nl
cy5lbmQoKSwgW10oY29uc3QgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4mIGEsIGNvbnN0IFJlZlB0
cjxXZWJQcm9jZXNzUHJveHk+JiBiKSB7CkBAIC03OTIsMjEgKzc5OCwyMyBAQCBSZWY8V2ViUGFn
ZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xp
ZW50LCBSZWY8QVBJOgogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0VXNlckNvbnRlbnRD
b250cm9sbGVyKCZwYWdlQ29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnVzZXJDb250ZW50Q29u
dHJvbGxlcigpKTsKICAgICBpZiAoIXBhZ2VDb25maWd1cmF0aW9uLT52aXNpdGVkTGlua1N0b3Jl
KCkpCiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRWaXNpdGVkTGlua1N0b3JlKG1fdmlz
aXRlZExpbmtTdG9yZS5wdHIoKSk7Ci0gICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0
ZURhdGFTdG9yZSgpKSB7CisKKyAgICBib29sIHBhZ2VIYXNXZWJzaXRlRGF0YVN0b3JlID0gcGFn
ZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKTsKKyAgICBpZiAoIXBhZ2VIYXNXZWJz
aXRlRGF0YVN0b3JlKSB7CiAgICAgICAgIEFTU0VSVCghcGFnZUNvbmZpZ3VyYXRpb24tPnNlc3Np
b25JRCgpLmlzVmFsaWQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1cmF0aW9uLT5zZXRXZWJzaXRl
RGF0YVN0b3JlKG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKSk7CiAgICAgICAgIHBhZ2VDb25maWd1
cmF0aW9uLT5zZXRTZXNzaW9uSUQocGFnZUNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCktPnBy
aXZhdGVCcm93c2luZ0VuYWJsZWQoKSA/IFNlc3Npb25JRDo6bGVnYWN5UHJpdmF0ZVNlc3Npb25J
RCgpIDogU2Vzc2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpOwogICAgIH0KIAogICAgIFJlZlB0
cjxXZWJQcm9jZXNzUHJveHk+IHByb2Nlc3M7Ci0gICAgaWYgKG1faGF2ZUluaXRpYWxFbXB0eVBy
b2Nlc3MpIHsKKyAgICBpZiAobV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyAmJiAhcGFnZUhhc1dl
YnNpdGVEYXRhU3RvcmUpIHsKICAgICAgICAgcHJvY2VzcyA9IG1fcHJvY2Vzc2VzLmxhc3QoKTsK
ICAgICAgICAgbV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcyA9IGZhbHNlOwogICAgIH0gZWxzZSBp
ZiAocGFnZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCkpIHsKICAgICAgICAgLy8gU2hhcmlu
ZyBwcm9jZXNzZXMsIGUuZy4gd2hlbiBjcmVhdGluZyB0aGUgcGFnZSB2aWEgd2luZG93Lm9wZW4o
KS4KICAgICAgICAgcHJvY2VzcyA9ICZwYWdlQ29uZmlndXJhdGlvbi0+cmVsYXRlZFBhZ2UoKS0+
cHJvY2VzcygpOwogICAgIH0gZWxzZQotICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlBy
b2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKKyAgICAgICAgcHJvY2VzcyA9ICZj
cmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KCZwYWdlQ29uZmln
dXJhdGlvbi0+d2Vic2l0ZURhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCkpOwogCiAgICAg
cmV0dXJuIHByb2Nlc3MtPmNyZWF0ZVdlYlBhZ2UocGFnZUNsaWVudCwgV1RGTW92ZShwYWdlQ29u
ZmlndXJhdGlvbikpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAppbmRleCBhOWY2NTZhYjgwYzdiYzc1MWY2MWRhNzczYzIzNzAxNjI2NTg0NjA3Li4zYzM2ZWY3
YjRlM2Y0ZjEwOGYxNmIyNTgwMzZmZWJmOTNhM2IxMGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjU4LDcgKzI1OCw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWxsb3dTcGVjaWZpY0hUVFBTQ2VydGlmaWNhdGVGb3JIb3N0KGNvbnN0IFdlYkNlcnRp
ZmljYXRlSW5mbyosIGNvbnN0IFN0cmluZyYgaG9zdCk7CiAKLSAgICBXZWJQcm9jZXNzUHJveHkm
IGNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsgLy8gV2ls
bCByZXR1cm4gYW4gZXhpc3Rpbmcgb25lIGlmIGxpbWl0IGlzIG1ldC4KKyAgICBXZWJQcm9jZXNz
UHJveHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoV2Vi
c2l0ZURhdGFTdG9yZSopOyAvLyBXaWxsIHJldHVybiBhbiBleGlzdGluZyBvbmUgaWYgbGltaXQg
aXMgbWV0LgogICAgIHZvaWQgd2FybUluaXRpYWxQcm9jZXNzKCk7CiAKICAgICBib29sIHNob3Vs
ZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKTsKQEAgLTM5Nyw3ICszOTcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGVDb250ZXh0KCk7CiAK
LSAgICBXZWJQcm9jZXNzUHJveHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3MoKTsKKyAgICBXZWJQcm9j
ZXNzUHJveHkmIGNyZWF0ZU5ld1dlYlByb2Nlc3MoV2Vic2l0ZURhdGFTdG9yZSopOwogCiAgICAg
dm9pZCByZXF1ZXN0V2ViQ29udGVudFN0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqKTsKICAg
ICB2b2lkIHJlcXVlc3ROZXR3b3JraW5nU3RhdGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302943</attachid>
            <date>2017-02-28 10:01:28 -0800</date>
            <delta_ts>2017-02-28 10:08:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170228095832.patch</filename>
            <type>text/plain</type>
            <size>6198</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmUwYWQ3NWMxMzQzOTMw
YWEwNmRjMDdjOTkyNmVkNWM5NmQ3MzBmMy4uZWI2MzM0Mzc1ZjI5ZThkODgxY2I5NWI0OGM4NTM1
NTFlM2VhNGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTI3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKyAgICAgICAgCisgICAgICAgIFJlZmFjdG9y
IFdlYlZpZXdJbXBsIGNyZWF0aW9uIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIG11bHRp
cGxlIFdlYnNpdGVEYXRhU3RvcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nl
c3NDb3VudExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE3LTAy
LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGwgb3V0IHIyMTMwNjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDYzOTIzNjAyNWU4M2ViMDUyMDRiZGU1ZTg4ZDkwNDY2MTJjNTkw
MzQuLjljN2ZkNGRmYTJkMzhkMGQ3N2I2NDBiODNiZDFmMzU3ZWZiNWU2YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKCkKICAgICBtX3Byb2Nlc3MtPnJl
bW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
SUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5l
d1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKKyAgICBtX3Byb2Nlc3Mg
PSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQ
cm9jZXNzQ291bnRMaW1pdChtX3dlYnNpdGVEYXRhU3RvcmUucHRyKCkpOwogCiAgICAgQVNTRVJU
KG1fcHJvY2Vzcy0+c3RhdGUoKSAhPSBDaGlsZFByb2Nlc3NQcm94eTo6U3RhdGU6OlRlcm1pbmF0
ZWQpOwogICAgIGlmIChtX3Byb2Nlc3MtPnN0YXRlKCkgPT0gQ2hpbGRQcm9jZXNzUHJveHk6OlN0
YXRlOjpSdW5uaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggOGRhNGQyOWM0MTQ3OTY5NTc0OThiNTJjY2EzNzgzNDQ1MmIyYTRiZi4uZjdhNmNk
ZWYyNWUwODkwZTQxMGI1NWQ1MjExMjI0NjQ3MDE5NTMyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NTcsNyArNTU3LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogICAgIHBsYXRm
b3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIH0KIAotV2ViUHJvY2Vzc1By
b3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCitXZWJQcm9jZXNzUHJv
eHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUq
KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CiAKQEAgLTY5Myw3ICs2OTMsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MoKQogICAgIGlmIChtX3Byb2Nl
c3Nlcy5zaXplKCkgPj0gbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGNyZWF0ZU5ld1dlYlByb2Nlc3MoKTsKKyAgICBjcmVhdGVOZXdXZWJQcm9jZXNz
KG51bGxwdHIpOwogICAgIG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSB0cnVlOwogfQogCkBA
IC03NjksMTAgKzc2OSwxNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2Vz
cyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAjZW5kaWYKIH0KIAotV2ViUHJvY2Vzc1Byb3h5
JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291
bnRMaW1pdCgpCitXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQ
cm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNp
dGVEYXRhU3RvcmUpCiB7Ci0gICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSA8IG1heGltdW1OdW1i
ZXJPZlByb2Nlc3NlcygpKQotICAgICAgICByZXR1cm4gY3JlYXRlTmV3V2ViUHJvY2VzcygpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgZ29PdmVyTGltaXQgPSB3ZWJzaXRlRGF0YVN0
b3JlICYmIHdlYnNpdGVEYXRhU3RvcmUgIT0gJkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVs
dERhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCk7CisjZWxpZgorICAgIGJvb2wgZ29PdmVy
TGltaXQgPSBmYWxzZTsKKyNlbmRpZgorCisgICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSA8IG1h
eGltdW1OdW1iZXJPZlByb2Nlc3NlcygpIHx8IGdvT3ZlckxpbWl0KQorICAgICAgICByZXR1cm4g
Y3JlYXRlTmV3V2ViUHJvY2Vzcyh3ZWJzaXRlRGF0YVN0b3JlKTsKIAogICAgIC8vIENob29zZSB0
aGUgcHJvY2VzcyB3aXRoIGZld2VzdCBwYWdlcy4KICAgICBhdXRvJiBwcm9jZXNzID0gKnN0ZDo6
bWluX2VsZW1lbnQobV9wcm9jZXNzZXMuYmVnaW4oKSwgbV9wcm9jZXNzZXMuZW5kKCksIFtdKGNv
bnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+JiBhLCBjb25zdCBSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiYgYikgewpAQCAtNzkyLDIxICs3OTgsMjMgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJv
Y2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToK
ICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250ZW50Q29udHJvbGxlcigmcGFn
ZUNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSk7CiAg
ICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+dmlzaXRlZExpbmtTdG9yZSgpKQogICAgICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+c2V0VmlzaXRlZExpbmtTdG9yZShtX3Zpc2l0ZWRMaW5rU3RvcmUu
cHRyKCkpOwotICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSkg
eworCisgICAgYm9vbCBwYWdlSGFzV2Vic2l0ZURhdGFTdG9yZSA9IHBhZ2VDb25maWd1cmF0aW9u
LT53ZWJzaXRlRGF0YVN0b3JlKCk7CisgICAgaWYgKCFwYWdlSGFzV2Vic2l0ZURhdGFTdG9yZSkg
ewogICAgICAgICBBU1NFUlQoIXBhZ2VDb25maWd1cmF0aW9uLT5zZXNzaW9uSUQoKS5pc1ZhbGlk
KCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0V2Vic2l0ZURhdGFTdG9yZShtX3dl
YnNpdGVEYXRhU3RvcmUuZ2V0KCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0U2Vz
c2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiBwcm9jZXNzOwotICAgIGlmIChtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzKSB7CisgICAg
aWYgKG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgJiYgIXBhZ2VIYXNXZWJzaXRlRGF0YVN0b3Jl
KSB7CiAgICAgICAgIHByb2Nlc3MgPSBtX3Byb2Nlc3Nlcy5sYXN0KCk7CiAgICAgICAgIG1faGF2
ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSBmYWxzZTsKICAgICB9IGVsc2UgaWYgKHBhZ2VDb25maWd1
cmF0aW9uLT5yZWxhdGVkUGFnZSgpKSB7CiAgICAgICAgIC8vIFNoYXJpbmcgcHJvY2Vzc2VzLCBl
LmcuIHdoZW4gY3JlYXRpbmcgdGhlIHBhZ2UgdmlhIHdpbmRvdy5vcGVuKCkuCiAgICAgICAgIHBy
b2Nlc3MgPSAmcGFnZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCktPnByb2Nlc3MoKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgcHJvY2VzcyA9ICZjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGlu
Z1Byb2Nlc3NDb3VudExpbWl0KCk7CisgICAgICAgIHByb2Nlc3MgPSAmY3JlYXRlTmV3V2ViUHJv
Y2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgmcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNp
dGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIHJldHVybiBwcm9jZXNz
LT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYTlmNjU2
YWI4MGM3YmM3NTFmNjFkYTc3M2MyMzcwMTYyNjU4NDYwNy4uM2MzNmVmN2I0ZTNmNGYxMDhmMTZi
MjU4MDM2ZmViZjkzYTNiMTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKQEAgLTI1OCw3ICsyNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBj
b25zdCBTdHJpbmcmIGhvc3QpOwogCi0gICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVOZXdXZWJQ
cm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KCk7IC8vIFdpbGwgcmV0dXJuIGFuIGV4
aXN0aW5nIG9uZSBpZiBsaW1pdCBpcyBtZXQuCisgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVO
ZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KFdlYnNpdGVEYXRhU3RvcmUq
KTsgLy8gV2lsbCByZXR1cm4gYW4gZXhpc3Rpbmcgb25lIGlmIGxpbWl0IGlzIG1ldC4KICAgICB2
b2lkIHdhcm1Jbml0aWFsUHJvY2VzcygpOwogCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2Vi
UHJvY2Vzc1Byb3h5Kik7CkBAIC0zOTcsNyArMzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYp
OwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogCi0gICAgV2ViUHJvY2Vz
c1Byb3h5JiBjcmVhdGVOZXdXZWJQcm9jZXNzKCk7CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVh
dGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqKTsKIAogICAgIHZvaWQgcmVxdWVzdFdl
YkNvbnRlbnRTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7CiAgICAgdm9pZCByZXF1ZXN0
TmV0d29ya2luZ1N0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302945</attachid>
            <date>2017-02-28 10:08:55 -0800</date>
            <delta_ts>2017-02-28 12:48:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170228100558.patch</filename>
            <type>text/plain</type>
            <size>6198</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmUwYWQ3NWMxMzQzOTMw
YWEwNmRjMDdjOTkyNmVkNWM5NmQ3MzBmMy4uZWI2MzM0Mzc1ZjI5ZThkODgxY2I5NWI0OGM4NTM1
NTFlM2VhNGFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTI3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKyAgICAgICAgCisgICAgICAgIFJlZmFjdG9y
IFdlYlZpZXdJbXBsIGNyZWF0aW9uIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIG11bHRp
cGxlIFdlYnNpdGVEYXRhU3RvcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2Vzcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nl
c3NDb3VudExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdl
YlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorCiAyMDE3LTAy
LTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGwgb3V0IHIyMTMwNjUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IDYzOTIzNjAyNWU4M2ViMDUyMDRiZGU1ZTg4ZDkwNDY2MTJjNTkw
MzQuLjljN2ZkNGRmYTJkMzhkMGQ3N2I2NDBiODNiZDFmMzU3ZWZiNWU2YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTUsNyArNzE1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKCkKICAgICBtX3Byb2Nlc3MtPnJl
bW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
SUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZU5l
d1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsKKyAgICBtX3Byb2Nlc3Mg
PSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQ
cm9jZXNzQ291bnRMaW1pdChtX3dlYnNpdGVEYXRhU3RvcmUucHRyKCkpOwogCiAgICAgQVNTRVJU
KG1fcHJvY2Vzcy0+c3RhdGUoKSAhPSBDaGlsZFByb2Nlc3NQcm94eTo6U3RhdGU6OlRlcm1pbmF0
ZWQpOwogICAgIGlmIChtX3Byb2Nlc3MtPnN0YXRlKCkgPT0gQ2hpbGRQcm9jZXNzUHJveHk6OlN0
YXRlOjpSdW5uaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKaW5kZXggOGRhNGQyOWM0MTQ3OTY5NTc0OThiNTJjY2EzNzgzNDQ1MmIyYTRiZi4uZTNiMzZl
ZGZmZjk5ZjRiZjQ1NDNjMzc4YzVjZmVmYjc0M2IxMDVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NTcsNyArNTU3LDcgQEAgdm9pZCBXZWJQ
cm9jZXNzUG9vbDo6cmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQogICAgIHBsYXRm
b3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKTsKIH0KIAotV2ViUHJvY2Vzc1By
b3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2VzcygpCitXZWJQcm9jZXNzUHJv
eHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUq
KQogewogICAgIGVuc3VyZU5ldHdvcmtQcm9jZXNzKCk7CiAKQEAgLTY5Myw3ICs2OTMsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjp3YXJtSW5pdGlhbFByb2Nlc3MoKQogICAgIGlmIChtX3Byb2Nl
c3Nlcy5zaXplKCkgPj0gbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGNyZWF0ZU5ld1dlYlByb2Nlc3MoKTsKKyAgICBjcmVhdGVOZXdXZWJQcm9jZXNz
KG51bGxwdHIpOwogICAgIG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSB0cnVlOwogfQogCkBA
IC03NjksMTAgKzc2OSwxNiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpkaXNjb25uZWN0UHJvY2Vz
cyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAjZW5kaWYKIH0KIAotV2ViUHJvY2Vzc1Byb3h5
JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291
bnRMaW1pdCgpCitXZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQ
cm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNp
dGVEYXRhU3RvcmUpCiB7Ci0gICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSA8IG1heGltdW1OdW1i
ZXJPZlByb2Nlc3NlcygpKQotICAgICAgICByZXR1cm4gY3JlYXRlTmV3V2ViUHJvY2VzcygpOwor
I2lmIFBMQVRGT1JNKENPQ09BKQorICAgIGJvb2wgZ29PdmVyTGltaXQgPSB3ZWJzaXRlRGF0YVN0
b3JlICYmIHdlYnNpdGVEYXRhU3RvcmUgIT0gJkFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVs
dERhdGFTdG9yZSgpLT53ZWJzaXRlRGF0YVN0b3JlKCk7CisjZWxzZQorICAgIGJvb2wgZ29PdmVy
TGltaXQgPSBmYWxzZTsKKyNlbmRpZgorCisgICAgaWYgKG1fcHJvY2Vzc2VzLnNpemUoKSA8IG1h
eGltdW1OdW1iZXJPZlByb2Nlc3NlcygpIHx8IGdvT3ZlckxpbWl0KQorICAgICAgICByZXR1cm4g
Y3JlYXRlTmV3V2ViUHJvY2Vzcyh3ZWJzaXRlRGF0YVN0b3JlKTsKIAogICAgIC8vIENob29zZSB0
aGUgcHJvY2VzcyB3aXRoIGZld2VzdCBwYWdlcy4KICAgICBhdXRvJiBwcm9jZXNzID0gKnN0ZDo6
bWluX2VsZW1lbnQobV9wcm9jZXNzZXMuYmVnaW4oKSwgbV9wcm9jZXNzZXMuZW5kKCksIFtdKGNv
bnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+JiBhLCBjb25zdCBSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiYgYikgewpAQCAtNzkyLDIxICs3OTgsMjMgQEAgUmVmPFdlYlBhZ2VQcm94eT4gV2ViUHJv
Y2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwgUmVmPEFQSToK
ICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFVzZXJDb250ZW50Q29udHJvbGxlcigmcGFn
ZUNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpLT51c2VyQ29udGVudENvbnRyb2xsZXIoKSk7CiAg
ICAgaWYgKCFwYWdlQ29uZmlndXJhdGlvbi0+dmlzaXRlZExpbmtTdG9yZSgpKQogICAgICAgICBw
YWdlQ29uZmlndXJhdGlvbi0+c2V0VmlzaXRlZExpbmtTdG9yZShtX3Zpc2l0ZWRMaW5rU3RvcmUu
cHRyKCkpOwotICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNpdGVEYXRhU3RvcmUoKSkg
eworCisgICAgYm9vbCBwYWdlSGFzV2Vic2l0ZURhdGFTdG9yZSA9IHBhZ2VDb25maWd1cmF0aW9u
LT53ZWJzaXRlRGF0YVN0b3JlKCk7CisgICAgaWYgKCFwYWdlSGFzV2Vic2l0ZURhdGFTdG9yZSkg
ewogICAgICAgICBBU1NFUlQoIXBhZ2VDb25maWd1cmF0aW9uLT5zZXNzaW9uSUQoKS5pc1ZhbGlk
KCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0V2Vic2l0ZURhdGFTdG9yZShtX3dl
YnNpdGVEYXRhU3RvcmUuZ2V0KCkpOwogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0U2Vz
c2lvbklEKHBhZ2VDb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpLT5wcml2YXRlQnJvd3NpbmdF
bmFibGVkKCkgPyBTZXNzaW9uSUQ6OmxlZ2FjeVByaXZhdGVTZXNzaW9uSUQoKSA6IFNlc3Npb25J
RDo6ZGVmYXVsdFNlc3Npb25JRCgpKTsKICAgICB9CiAKICAgICBSZWZQdHI8V2ViUHJvY2Vzc1By
b3h5PiBwcm9jZXNzOwotICAgIGlmIChtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzKSB7CisgICAg
aWYgKG1faGF2ZUluaXRpYWxFbXB0eVByb2Nlc3MgJiYgIXBhZ2VIYXNXZWJzaXRlRGF0YVN0b3Jl
KSB7CiAgICAgICAgIHByb2Nlc3MgPSBtX3Byb2Nlc3Nlcy5sYXN0KCk7CiAgICAgICAgIG1faGF2
ZUluaXRpYWxFbXB0eVByb2Nlc3MgPSBmYWxzZTsKICAgICB9IGVsc2UgaWYgKHBhZ2VDb25maWd1
cmF0aW9uLT5yZWxhdGVkUGFnZSgpKSB7CiAgICAgICAgIC8vIFNoYXJpbmcgcHJvY2Vzc2VzLCBl
LmcuIHdoZW4gY3JlYXRpbmcgdGhlIHBhZ2UgdmlhIHdpbmRvdy5vcGVuKCkuCiAgICAgICAgIHBy
b2Nlc3MgPSAmcGFnZUNvbmZpZ3VyYXRpb24tPnJlbGF0ZWRQYWdlKCktPnByb2Nlc3MoKTsKICAg
ICB9IGVsc2UKLSAgICAgICAgcHJvY2VzcyA9ICZjcmVhdGVOZXdXZWJQcm9jZXNzUmVzcGVjdGlu
Z1Byb2Nlc3NDb3VudExpbWl0KCk7CisgICAgICAgIHByb2Nlc3MgPSAmY3JlYXRlTmV3V2ViUHJv
Y2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgmcGFnZUNvbmZpZ3VyYXRpb24tPndlYnNp
dGVEYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpKTsKIAogICAgIHJldHVybiBwcm9jZXNz
LT5jcmVhdGVXZWJQYWdlKHBhZ2VDbGllbnQsIFdURk1vdmUocGFnZUNvbmZpZ3VyYXRpb24pKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggYTlmNjU2
YWI4MGM3YmM3NTFmNjFkYTc3M2MyMzcwMTYyNjU4NDYwNy4uM2MzNmVmN2I0ZTNmNGYxMDhmMTZi
MjU4MDM2ZmViZjkzYTNiMTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmgKQEAgLTI1OCw3ICsyNTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFsbG93U3Bl
Y2lmaWNIVFRQU0NlcnRpZmljYXRlRm9ySG9zdChjb25zdCBXZWJDZXJ0aWZpY2F0ZUluZm8qLCBj
b25zdCBTdHJpbmcmIGhvc3QpOwogCi0gICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVOZXdXZWJQ
cm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KCk7IC8vIFdpbGwgcmV0dXJuIGFuIGV4
aXN0aW5nIG9uZSBpZiBsaW1pdCBpcyBtZXQuCisgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVhdGVO
ZXdXZWJQcm9jZXNzUmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KFdlYnNpdGVEYXRhU3RvcmUq
KTsgLy8gV2lsbCByZXR1cm4gYW4gZXhpc3Rpbmcgb25lIGlmIGxpbWl0IGlzIG1ldC4KICAgICB2
b2lkIHdhcm1Jbml0aWFsUHJvY2VzcygpOwogCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2Vi
UHJvY2Vzc1Byb3h5Kik7CkBAIC0zOTcsNyArMzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBs
YXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYp
OwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpOwogCi0gICAgV2ViUHJvY2Vz
c1Byb3h5JiBjcmVhdGVOZXdXZWJQcm9jZXNzKCk7CisgICAgV2ViUHJvY2Vzc1Byb3h5JiBjcmVh
dGVOZXdXZWJQcm9jZXNzKFdlYnNpdGVEYXRhU3RvcmUqKTsKIAogICAgIHZvaWQgcmVxdWVzdFdl
YkNvbnRlbnRTdGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7CiAgICAgdm9pZCByZXF1ZXN0
TmV0d29ya2luZ1N0YXRpc3RpY3MoU3RhdGlzdGljc1JlcXVlc3QqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302969</attachid>
            <date>2017-02-28 12:48:31 -0800</date>
            <delta_ts>2017-02-28 13:26:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168676-20170228124535.patch</filename>
            <type>text/plain</type>
            <size>10713</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmUwYWQ3NWMxMzQzOTMw
YWEwNmRjMDdjOTkyNmVkNWM5NmQ3MzBmMy4uNTIwNDUzZjZlZTE0NmJiMzVkNWVjYjMwOGZlYTEz
ZDYwM2RkMTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3LTAyLTI3ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKyAgICAgICAgCisgICAgICAgIFJlZmFjdG9y
IFdlYlZpZXdJbXBsIGNyZWF0aW9uIGluIHByZXBhcmF0aW9uIGZvciBzdXBwb3J0aW5nIG11bHRp
cGxlIFdlYnNpdGVEYXRhU3RvcmVzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4Njc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3Rl
bnNlbiBhbmQgU2FtIFdlaW5pZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9j
ZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Ondhcm1Jbml0aWFsUHJvY2Vz
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNz
UmVzcGVjdGluZ1Byb2Nlc3NDb3VudExpbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vz
c1Bvb2w6OmNyZWF0ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oOgorCiAyMDE3LTAyLTI3ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGwgb3V0IHIyMTMwNjUuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDYzOTIzNjAyNWU4M2ViMDUyMDRiZGU1
ZTg4ZDkwNDY2MTJjNTkwMzQuLjljN2ZkNGRmYTJkMzhkMGQ3N2I2NDBiODNiZDFmMzU3ZWZiNWU2
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MTUs
NyArNzE1LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzKCkKICAg
ICBtX3Byb2Nlc3MtPnJlbW92ZVdlYlBhZ2UobV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVt
b3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9wYWdlSUQpOwogCi0gICAgbV9wcm9jZXNzID0gbV9wcm9jZXNzLT5wcm9jZXNz
UG9vbCgpLmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50TGltaXQoKTsK
KyAgICBtX3Byb2Nlc3MgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlTmV3V2ViUHJv
Y2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChtX3dlYnNpdGVEYXRhU3RvcmUucHRyKCkp
OwogCiAgICAgQVNTRVJUKG1fcHJvY2Vzcy0+c3RhdGUoKSAhPSBDaGlsZFByb2Nlc3NQcm94eTo6
U3RhdGU6OlRlcm1pbmF0ZWQpOwogICAgIGlmIChtX3Byb2Nlc3MtPnN0YXRlKCkgPT0gQ2hpbGRQ
cm9jZXNzUHJveHk6OlN0YXRlOjpSdW5uaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggOGRhNGQyOWM0MTQ3OTY5NTc0OThiNTJjY2EzNzgzNDQ1
MmIyYTRiZi4uZWNjNzE4YjkxOTY5NmI2ZjM2YmRjYjdhZmY4ODAwMDFlYjUzOGY3NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC01NTcsMTEgKzU1
NywxMSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpyZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5z
aW9ucygpCiAgICAgcGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpOwog
fQogCi1XZWJQcm9jZXNzUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVOZXdXZWJQcm9jZXNz
KCkKK1dlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3Mo
V2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURhdGFTdG9yZSkKIHsKICAgICBlbnN1cmVOZXR3b3Jr
UHJvY2VzcygpOwogCi0gICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gcHJvY2VzcyA9IFdlYlByb2Nl
c3NQcm94eTo6Y3JlYXRlKCp0aGlzKTsKKyAgICBSZWY8V2ViUHJvY2Vzc1Byb3h5PiBwcm9jZXNz
ID0gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoKnRoaXMsIHdlYnNpdGVEYXRhU3RvcmUpOwogCiAg
ICAgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogCkBAIC02OTMsNyAr
NjkzLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6d2FybUluaXRpYWxQcm9jZXNzKCkKICAgICBp
ZiAobV9wcm9jZXNzZXMuc2l6ZSgpID49IG1heGltdW1OdW1iZXJPZlByb2Nlc3NlcygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBjcmVhdGVOZXdXZWJQcm9jZXNzKCk7CisgICAgY3JlYXRlTmV3
V2ViUHJvY2VzcyhudWxscHRyKTsKICAgICBtX2hhdmVJbml0aWFsRW1wdHlQcm9jZXNzID0gdHJ1
ZTsKIH0KIApAQCAtNzY5LDEzICs3NjksMzQgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6ZGlzY29u
bmVjdFByb2Nlc3MoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogI2VuZGlmCiB9CiAKLVdlYlBy
b2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5n
UHJvY2Vzc0NvdW50TGltaXQoKQorV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3Jl
YXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChXZWJzaXRlRGF0YVN0
b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKQogeworICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4Njc2CisgICAgLy8gT25jZSBXZWJzaXRlRGF0YVN0
b3JlcyBhcmUgbm90IHBlci1wcm9jZXNzLCByZW1vdmUgdGhpcyBub25zZW5zZS4KKworI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIGJvb2wgbXVzdE1hdGNoRGF0YVN0b3JlID0gd2Vic2l0ZURhdGFT
dG9yZSAmJiB3ZWJzaXRlRGF0YVN0b3JlICE9ICZBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1
bHREYXRhU3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpOworI2Vsc2UKKyAgICBib29sIG11c3RN
YXRjaERhdGFTdG9yZSA9IGZhbHNlOworI2VuZGlmCisKICAgICBpZiAobV9wcm9jZXNzZXMuc2l6
ZSgpIDwgbWF4aW11bU51bWJlck9mUHJvY2Vzc2VzKCkpCi0gICAgICAgIHJldHVybiBjcmVhdGVO
ZXdXZWJQcm9jZXNzKCk7CisgICAgICAgIHJldHVybiBjcmVhdGVOZXdXZWJQcm9jZXNzKHdlYnNp
dGVEYXRhU3RvcmUpOworCisgICAgVmVjdG9yPFJlZlB0cjxXZWJQcm9jZXNzUHJveHk+PiBwcm9j
ZXNzZXNNYXRjaGluZ0RhdGFTdG9yZTsKKyAgICBpZiAobXVzdE1hdGNoRGF0YVN0b3JlKSB7Cisg
ICAgICAgIGZvciAoYXV0byYgcHJvY2VzcyA6IG1fcHJvY2Vzc2VzKSB7CisgICAgICAgICAgICBp
ZiAocHJvY2Vzcy0+d2Vic2l0ZURhdGFTdG9yZSgpID09IHdlYnNpdGVEYXRhU3RvcmUpCisgICAg
ICAgICAgICAgICAgcHJvY2Vzc2VzTWF0Y2hpbmdEYXRhU3RvcmUuYXBwZW5kKHByb2Nlc3MpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKHByb2Nlc3Nlc01hdGNoaW5nRGF0YVN0b3JlLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiBjcmVhdGVOZXdXZWJQcm9jZXNzKHdlYnNpdGVEYXRh
U3RvcmUpOworICAgIH0KIAogICAgIC8vIENob29zZSB0aGUgcHJvY2VzcyB3aXRoIGZld2VzdCBw
YWdlcy4KLSAgICBhdXRvJiBwcm9jZXNzID0gKnN0ZDo6bWluX2VsZW1lbnQobV9wcm9jZXNzZXMu
YmVnaW4oKSwgbV9wcm9jZXNzZXMuZW5kKCksIFtdKGNvbnN0IFJlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+JiBhLCBjb25zdCBSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiYgYikgeworICAgIGF1dG8qIHBy
b2Nlc3NlcyA9IG11c3RNYXRjaERhdGFTdG9yZSA/ICZtX3Byb2Nlc3NlcyA6ICZwcm9jZXNzZXNN
YXRjaGluZ0RhdGFTdG9yZTsKKyAgICBhdXRvJiBwcm9jZXNzID0gKnN0ZDo6bWluX2VsZW1lbnQo
cHJvY2Vzc2VzLT5iZWdpbigpLCBwcm9jZXNzZXMtPmVuZCgpLCBbXShjb25zdCBSZWZQdHI8V2Vi
UHJvY2Vzc1Byb3h5PiYgYSwgY29uc3QgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4mIGIpIHsKICAg
ICAgICAgcmV0dXJuIGEtPnBhZ2VDb3VudCgpIDwgYi0+cGFnZUNvdW50KCk7CiAgICAgfSk7CiAK
QEAgLTc5MiwyMSArODEzLDIzIEBAIFJlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpj
cmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6CiAgICAgICAgIHBh
Z2VDb25maWd1cmF0aW9uLT5zZXRVc2VyQ29udGVudENvbnRyb2xsZXIoJnBhZ2VDb25maWd1cmF0
aW9uLT5wYWdlR3JvdXAoKS0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkpOwogICAgIGlmICghcGFn
ZUNvbmZpZ3VyYXRpb24tPnZpc2l0ZWRMaW5rU3RvcmUoKSkKICAgICAgICAgcGFnZUNvbmZpZ3Vy
YXRpb24tPnNldFZpc2l0ZWRMaW5rU3RvcmUobV92aXNpdGVkTGlua1N0b3JlLnB0cigpKTsKLSAg
ICBpZiAoIXBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3JlKCkpIHsKKworICAgIGJv
b2wgcGFnZUhhc1dlYnNpdGVEYXRhU3RvcmUgPSBwYWdlQ29uZmlndXJhdGlvbi0+d2Vic2l0ZURh
dGFTdG9yZSgpOworICAgIGlmICghcGFnZUhhc1dlYnNpdGVEYXRhU3RvcmUpIHsKICAgICAgICAg
QVNTRVJUKCFwYWdlQ29uZmlndXJhdGlvbi0+c2Vzc2lvbklEKCkuaXNWYWxpZCgpKTsKICAgICAg
ICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFdlYnNpdGVEYXRhU3RvcmUobV93ZWJzaXRlRGF0YVN0
b3JlLmdldCgpKTsKICAgICAgICAgcGFnZUNvbmZpZ3VyYXRpb24tPnNldFNlc3Npb25JRChwYWdl
Q29uZmlndXJhdGlvbi0+cHJlZmVyZW5jZXMoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpID8g
U2Vzc2lvbklEOjpsZWdhY3lQcml2YXRlU2Vzc2lvbklEKCkgOiBTZXNzaW9uSUQ6OmRlZmF1bHRT
ZXNzaW9uSUQoKSk7CiAgICAgfQogCiAgICAgUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcHJvY2Vz
czsKLSAgICBpZiAobV9oYXZlSW5pdGlhbEVtcHR5UHJvY2VzcykgeworICAgIGlmIChtX2hhdmVJ
bml0aWFsRW1wdHlQcm9jZXNzICYmICFwYWdlSGFzV2Vic2l0ZURhdGFTdG9yZSkgewogICAgICAg
ICBwcm9jZXNzID0gbV9wcm9jZXNzZXMubGFzdCgpOwogICAgICAgICBtX2hhdmVJbml0aWFsRW1w
dHlQcm9jZXNzID0gZmFsc2U7CiAgICAgfSBlbHNlIGlmIChwYWdlQ29uZmlndXJhdGlvbi0+cmVs
YXRlZFBhZ2UoKSkgewogICAgICAgICAvLyBTaGFyaW5nIHByb2Nlc3NlcywgZS5nLiB3aGVuIGNy
ZWF0aW5nIHRoZSBwYWdlIHZpYSB3aW5kb3cub3BlbigpLgogICAgICAgICBwcm9jZXNzID0gJnBh
Z2VDb25maWd1cmF0aW9uLT5yZWxhdGVkUGFnZSgpLT5wcm9jZXNzKCk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIHByb2Nlc3MgPSAmY3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291
bnRMaW1pdCgpOworICAgICAgICBwcm9jZXNzID0gJmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0
aW5nUHJvY2Vzc0NvdW50TGltaXQoJnBhZ2VDb25maWd1cmF0aW9uLT53ZWJzaXRlRGF0YVN0b3Jl
KCktPndlYnNpdGVEYXRhU3RvcmUoKSk7CiAKICAgICByZXR1cm4gcHJvY2Vzcy0+Y3JlYXRlV2Vi
UGFnZShwYWdlQ2xpZW50LCBXVEZNb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IGE5ZjY1NmFiODBjN2JjNzUx
ZjYxZGE3NzNjMjM3MDE2MjY1ODQ2MDcuLjNjMzZlZjdiNGUzZjRmMTA4ZjE2YjI1ODAzNmZlYmY5
M2EzYjEwZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBA
IC0yNTgsNyArMjU4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhbGxvd1NwZWNpZmljSFRUUFND
ZXJ0aWZpY2F0ZUZvckhvc3QoY29uc3QgV2ViQ2VydGlmaWNhdGVJbmZvKiwgY29uc3QgU3RyaW5n
JiBob3N0KTsKIAotICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3Bl
Y3RpbmdQcm9jZXNzQ291bnRMaW1pdCgpOyAvLyBXaWxsIHJldHVybiBhbiBleGlzdGluZyBvbmUg
aWYgbGltaXQgaXMgbWV0LgorICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJvY2Vz
c1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdChXZWJzaXRlRGF0YVN0b3JlKik7IC8vIFdpbGwg
cmV0dXJuIGFuIGV4aXN0aW5nIG9uZSBpZiBsaW1pdCBpcyBtZXQuCiAgICAgdm9pZCB3YXJtSW5p
dGlhbFByb2Nlc3MoKTsKIAogICAgIGJvb2wgc2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94
eSopOwpAQCAtMzk3LDcgKzM5Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2b2lk
IHBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKTsKIAotICAgIFdlYlByb2Nlc3NQcm94eSYgY3Jl
YXRlTmV3V2ViUHJvY2VzcygpOworICAgIFdlYlByb2Nlc3NQcm94eSYgY3JlYXRlTmV3V2ViUHJv
Y2VzcyhXZWJzaXRlRGF0YVN0b3JlKik7CiAKICAgICB2b2lkIHJlcXVlc3RXZWJDb250ZW50U3Rh
dGlzdGljcyhTdGF0aXN0aWNzUmVxdWVzdCopOwogICAgIHZvaWQgcmVxdWVzdE5ldHdvcmtpbmdT
dGF0aXN0aWNzKFN0YXRpc3RpY3NSZXF1ZXN0Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdjOTRkNWI1M2IwYmVlMzE3MjIyN2JjYmRhZDAz
ZWE3NTA1MDg3OTQuLmY2MzMwMjZiMmJhY2JjNmU3ZDkwMjM0NTdhOWEzMGVhMGQ1MmMxZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC04OSwx
MiArODksMTIgQEAgc3RhdGljIFdlYlByb2Nlc3NQcm94eTo6V2ViUGFnZVByb3h5TWFwJiBnbG9i
YWxQYWdlTWFwKCkKICAgICByZXR1cm4gcGFnZU1hcDsKIH0KIAotUmVmPFdlYlByb2Nlc3NQcm94
eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKQor
UmVmPFdlYlByb2Nlc3NQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGUoV2ViUHJvY2Vzc1Bv
b2wmIHByb2Nlc3NQb29sLCBXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlByb2Nlc3NQcm94eShwcm9jZXNzUG9vbCwgd2Vi
c2l0ZURhdGFTdG9yZSkpOwogfQogCi1XZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQcm94eShX
ZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wpCitXZWJQcm9jZXNzUHJveHk6OldlYlByb2Nlc3NQ
cm94eShXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFdlYnNpdGVEYXRhU3RvcmUqIHdlYnNp
dGVEYXRhU3RvcmUpCiAgICAgOiBDaGlsZFByb2Nlc3NQcm94eShwcm9jZXNzUG9vbC5hbHdheXNS
dW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkoKSkKICAgICAsIG1fcmVzcG9uc2l2ZW5lc3NUaW1lcigq
dGhpcykKICAgICAsIG1fcHJvY2Vzc1Bvb2wocHJvY2Vzc1Bvb2wpCkBAIC0xMDQsNiArMTA0LDcg
QEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wmIHByb2Nl
c3NQb29sKQogICAgICwgbV9pc1Jlc3BvbnNpdmUoTm9Pck1heWJlOjpNYXliZSkKICAgICAsIG1f
dmlzaWJsZVBhZ2VDb3VudGVyKFt0aGlzXShSZWZDb3VudGVyRXZlbnQpIHsgdXBkYXRlQmFja2dy
b3VuZFJlc3BvbnNpdmVuZXNzVGltZXIoKTsgfSkKICAgICAsIG1fYmFja2dyb3VuZFJlc3BvbnNp
dmVuZXNzVGltZXIoc3RkOjptYWtlX3VuaXF1ZTxCYWNrZ3JvdW5kUHJvY2Vzc1Jlc3BvbnNpdmVu
ZXNzVGltZXI+KCp0aGlzKSkKKyAgICAsIG1fd2Vic2l0ZURhdGFTdG9yZSh3ZWJzaXRlRGF0YVN0
b3JlKQogewogICAgIFdlYlBhc3RlYm9hcmRQcm94eTo6c2luZ2xldG9uKCkuYWRkV2ViUHJvY2Vz
c1Byb3h5KCp0aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5oCmluZGV4IGFkN2M2NDhhZTEyODJiNDRjNzI2Y2Y1NzkzNTEyZGM3MjY3OTg5YTYuLmMzNTk3
NjM1Yzc0NzRkNWYxNjdkY2Y3NDY4MjI2Zjk1Y2EzZTM1MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAgLTU5LDYgKzU5LDcgQEAgY2xhc3MgTmV0d29y
a1Byb2Nlc3NQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJQ
YWdlR3JvdXA7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK2NsYXNzIFdlYnNpdGVEYXRhU3RvcmU7
CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0
b3JlOwogc3RydWN0IFdlYnNpdGVEYXRhOwpAQCAtNzAsMTMgKzcxLDE2IEBAIHB1YmxpYzoKICAg
ICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFdlYlBhZ2VQcm94eSo+IFdlYlBhZ2VQcm94eU1h
cDsKICAgICB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxBUEk6OlVzZXJJbml0aWF0
ZWRBY3Rpb24+PiBVc2VySW5pdGlhdGVkQWN0aW9uTWFwOwogCi0gICAgc3RhdGljIFJlZjxXZWJQ
cm9jZXNzUHJveHk+IGNyZWF0ZShXZWJQcm9jZXNzUG9vbCYpOworICAgIHN0YXRpYyBSZWY8V2Vi
UHJvY2Vzc1Byb3h5PiBjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wmLCBXZWJzaXRlRGF0YVN0b3JlKik7
CiAgICAgfldlYlByb2Nlc3NQcm94eSgpOwogCiAgICAgV2ViQ29ubmVjdGlvbiogd2ViQ29ubmVj
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fd2ViQ29ubmVjdGlvbi5nZXQoKTsgfQogCiAgICAgV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sKCkgeyByZXR1cm4gbV9wcm9jZXNzUG9vbDsgfQogCisg
ICAgLy8gRklYTUU6IFdlYnNpdGVEYXRhU3RvcmVzIHNob3VsZCBiZSBtYWRlIHBlci1XZWJQYWdl
UHJveHkgdGhyb3VnaG91dCBXZWJLaXQyCisgICAgV2Vic2l0ZURhdGFTdG9yZSogd2Vic2l0ZURh
dGFTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsgfQorCiAg
ICAgc3RhdGljIFdlYlBhZ2VQcm94eSogd2ViUGFnZSh1aW50NjRfdCBwYWdlSUQpOwogICAgIFJl
ZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYsIFJlZjxBUEk6OlBhZ2VD
b25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIGFkZEV4aXN0aW5nV2ViUGFnZShXZWJQYWdlUHJv
eHkqLCB1aW50NjRfdCBwYWdlSUQpOwpAQCAtMTU1LDcgKzE1OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFJlY2VpdmVNYWluVGhyZWFkUGluZygpOwogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0
IFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYpOworICAgIGV4cGxpY2l0IFdlYlByb2Nl
c3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUqKTsKIAogICAgIC8vIEZy
b20gQ2hpbGRQcm9jZXNzUHJveHkKICAgICB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJikgb3ZlcnJpZGU7CkBAIC0yNTYsNiArMjYwLDkgQEAgcHJp
dmF0ZToKIAogICAgIFZpc2libGVXZWJQYWdlQ291bnRlciBtX3Zpc2libGVQYWdlQ291bnRlcjsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2dyb3VuZFByb2Nlc3NSZXNwb25zaXZlbmVzc1RpbWVy
PiBtX2JhY2tncm91bmRSZXNwb25zaXZlbmVzc1RpbWVyOworCisgICAgLy8gRklYTUU6IFdlYnNp
dGVEYXRhU3RvcmVzIHNob3VsZCBiZSBtYWRlIHBlci1XZWJQYWdlUHJveHkgdGhyb3VnaG91dCBX
ZWJLaXQyLiBHZXQgcmlkIG9mIHRoaXMgbWVtYmVyLgorICAgIFJlZlB0cjxXZWJzaXRlRGF0YVN0
b3JlPiBtX3dlYnNpdGVEYXRhU3RvcmU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>