<?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>191227</bug_id>
          
          <creation_ts>2018-11-03 08:27:13 -0700</creation_ts>
          <short_desc>[MediaStream] User should not be prompted again after denying getDisplayMedia request</short_desc>
          <delta_ts>2018-11-06 12:12:51 -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>WebRTC</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>191270</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>fujii</cc>
    
    <cc>jlewis3</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1474785</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-03 08:27:13 -0700</bug_when>
    <thetext>As is the case with camera and microphone access, a user should not be prompted again if they deny a page&apos;s request for screen capture.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474786</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-03 08:28:01 -0700</bug_when>
    <thetext>&lt;rdar://problem/45784512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474787</commentid>
    <comment_count>2</comment_count>
      <attachid>353773</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-03 08:32:58 -0700</bug_when>
    <thetext>Created attachment 353773
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474788</commentid>
    <comment_count>3</comment_count>
      <attachid>353773</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2018-11-03 08:54:23 -0700</bug_when>
    <thetext>Comment on attachment 353773
Patch

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

&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:289
&gt; +        bool requestingScreenCapture = localUserRequest.type == MediaStreamRequest::Type::DisplayMedia &amp;&amp; !videoDevices.isEmpty();

Do we need !videoDevices.isEmpty()?
I would have believed the following:
bool requestingScreenCapture = localUserRequest.type == MediaStreamRequest::Type::DisplayMedia;

&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:290
&gt; +        bool requestingCamera = !requestingScreenCapture &amp;&amp; !videoDevices.isEmpty();

It seems we should also introduce:
requestingMicrophone = !requestingScreenCapture &amp;&amp; !audioDevices.isEmpty();

I wonder whether we should introduce a new utility function that would return whether the request is denied, granted or requires prompt.
Then we could write this method as:
if (localUserRequest.type == MediaStreamRequest::Type::DisplayMedia)
    return Prompt;
...


Another possibility would to make it return an std::optional&lt;DeniedOrGranted&gt;.
We would then write:
if (localUserRequest.type == MediaStreamRequest::Type::DisplayMedia)
    return { };
...

And in the caller:
if (auto decision = checkRequestDecision(...)) {
    // deny or grant
    return;
}
// Do the prompt dance.

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:161
&gt; +    int m_denialCount { 0 };

s/int/unsigned/

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:184
&gt; +    promptForCapture(@&quot;{ video: true }&quot;, false);

Should we set shoulDeny = false here or maybe in the callback that is checking it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474876</commentid>
    <comment_count>4</comment_count>
      <attachid>353773</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-04 07:15:10 -0800</bug_when>
    <thetext>Comment on attachment 353773
Patch

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

&gt;&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:289
&gt;&gt; +        bool requestingScreenCapture = localUserRequest.type == MediaStreamRequest::Type::DisplayMedia &amp;&amp; !videoDevices.isEmpty();
&gt; 
&gt; Do we need !videoDevices.isEmpty()?
&gt; I would have believed the following:
&gt; bool requestingScreenCapture = localUserRequest.type == MediaStreamRequest::Type::DisplayMedia;

True, we shouldn&apos;t get this far if there are not capable video devices. Added and ASSERT.

&gt;&gt; Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:290
&gt;&gt; +        bool requestingCamera = !requestingScreenCapture &amp;&amp; !videoDevices.isEmpty();
&gt; 
&gt; It seems we should also introduce:
&gt; requestingMicrophone = !requestingScreenCapture &amp;&amp; !audioDevices.isEmpty();
&gt; 
&gt; I wonder whether we should introduce a new utility function that would return whether the request is denied, granted or requires prompt.
&gt; Then we could write this method as:
&gt; if (localUserRequest.type == MediaStreamRequest::Type::DisplayMedia)
&gt;     return Prompt;
&gt; ...
&gt; 
&gt; 
&gt; Another possibility would to make it return an std::optional&lt;DeniedOrGranted&gt;.
&gt; We would then write:
&gt; if (localUserRequest.type == MediaStreamRequest::Type::DisplayMedia)
&gt;     return { };
&gt; ...
&gt; 
&gt; And in the caller:
&gt; if (auto decision = checkRequestDecision(...)) {
&gt;     // deny or grant
&gt;     return;
&gt; }
&gt; // Do the prompt dance.

Good idea, I added a helper function.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:161
&gt;&gt; +    int m_denialCount { 0 };
&gt; 
&gt; s/int/unsigned/

Fixed.

&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:184
&gt;&gt; +    promptForCapture(@&quot;{ video: true }&quot;, false);
&gt; 
&gt; Should we set shoulDeny = false here or maybe in the callback that is checking it?

Great suggestion, changed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474877</commentid>
    <comment_count>5</comment_count>
      <attachid>353773</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-04 07:19:49 -0800</bug_when>
    <thetext>Comment on attachment 353773
Patch

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

&gt;&gt;&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:161
&gt;&gt;&gt; +    int m_denialCount { 0 };
&gt;&gt; 
&gt;&gt; s/int/unsigned/
&gt; 
&gt; Fixed.

This variable isn&apos;t actually needed with the change suggested below, removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474878</commentid>
    <comment_count>6</comment_count>
      <attachid>353804</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-04 07:22:54 -0800</bug_when>
    <thetext>Created attachment 353804
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474887</commentid>
    <comment_count>7</comment_count>
      <attachid>353804</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-04 08:04:27 -0800</bug_when>
    <thetext>Comment on attachment 353804
Patch for landing.

Clearing flags on attachment: 353804

Committed r237784: &lt;https://trac.webkit.org/changeset/237784&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474888</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-04 08:04:29 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474938</commentid>
    <comment_count>9</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-11-04 19:52:07 -0800</bug_when>
    <thetext>Some ports not ENABLE(MEDIA_STREAM) can&apos;t build.

https://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release%20Ubuntu%20LTS%20%28Build%29/builds/16960

&gt; FAILED: /usr/lib/ccache/clang++  (...) -c DerivedSources/WebKit/unified-sources/UnifiedSource26.cpp
&gt; In file included from DerivedSources/WebKit/unified-sources/UnifiedSource26.cpp:6:
&gt; ../../Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:275:9: error: use of undeclared identifier &apos;wasRequestDenied&apos;
&gt;     if (wasRequestDenied(frameID, userMediaDocumentOrigin, topLevelDocumentOrigin, requestingMicrophone, requestingCamera, requestingScreenCapture))
&gt;         ^
&gt; ../../Source/WebKit/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:281:12: error: use of undeclared identifier &apos;searchForGrantedRequest&apos;
&gt;     return searchForGrantedRequest(frameID, userMediaDocumentOrigin, topLevelDocumentOrigin, requestingMicrophone, requestingCamera) ? RequestAction::Grant : RequestAction::Prompt;
&gt;            ^
&gt; 2 errors generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1474942</commentid>
    <comment_count>10</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-11-04 20:29:55 -0800</bug_when>
    <thetext>Committed r237788: &lt;https://trac.webkit.org/changeset/237788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475067</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-05 06:50:43 -0800</bug_when>
    <thetext>(In reply to Fujii Hironori from comment #10)
&gt; Committed r237788: &lt;https://trac.webkit.org/changeset/237788&gt;

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475131</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-11-05 09:39:50 -0800</bug_when>
    <thetext>(In reply to WebKit Commit Bot from comment #7)
&gt; Committed r237784: &lt;https://trac.webkit.org/changeset/237784&gt;

The following layout tests are failing after this change:
fast/mediastream/getUserMedia-deny-persistency.html
fast/mediastream/getUserMedia-deny-persistency2.html
fast/mediastream/getUserMedia-deny-persistency3.html

--- /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/fast/mediastream/getUserMedia-deny-persistency-expected.txt
+++ /Volumes/Data/slave/sierra-release-tests-wk2/build/layout-test-results/fast/mediastream/getUserMedia-deny-persistency-actual.txt
@@ -1,3 +1,3 @@
 
-PASS Testing same page getUserMedia deny persistency with audio denied 
+FAIL Testing same page getUserMedia deny persistency with audio denied assert_equals: expected &quot;NotAllowedError&quot; but got &quot;TypeError&quot;
 
https://build.webkit.org/results/Apple%20Sierra%20Release%20WK2%20(Tests)/r237785%20(12559)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475148</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-05 10:01:35 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 191270</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475601</commentid>
    <comment_count>14</comment_count>
      <attachid>353981</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-11-06 11:46:14 -0800</bug_when>
    <thetext>Created attachment 353981
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475613</commentid>
    <comment_count>15</comment_count>
      <attachid>353981</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-06 12:12:49 -0800</bug_when>
    <thetext>Comment on attachment 353981
Updated patch

Clearing flags on attachment: 353981

Committed r237879: &lt;https://trac.webkit.org/changeset/237879&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475614</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-06 12:12:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353773</attachid>
            <date>2018-11-03 08:32:58 -0700</date>
            <delta_ts>2018-11-04 07:22:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-191227-20181103103257.patch</filename>
            <type>text/plain</type>
            <size>11551</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2ZGY0MTYyNGQ0OWMyMGYy
NGUwNmQ5Y2ZjNGIxOTFhYTEzNmJhYzguLjUwYWUyYzllMTg0ZDk0NjQ3YTcwMTFhOWVmYzg1YmZk
M2FkYmQzYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMDMgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBV
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gYWZ0ZXIgZGVueWluZyBnZXREaXNwbGF5
TWVkaWEgcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTc4NDUxMj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NX
YXNEZW5pZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6d2FzUmVxdWVzdERlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lv
bkZvckZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkuaDoKKwogMjAxOC0xMC0zMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIFtQU09OXSBXaGVuIHByb2Nlc3Mtc3dhcHBpbmcgZm9yIGEgUE9T
VCByZXF1ZXN0IHRoZSBIVFRQIGJvZHkgZ2V0cyBkcm9wcGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAKaW5kZXggNjI3NzRjOWFiNmZjYzI1NDAxYWY1NTk4NWVjMDFiNTQ0OWMw
ZmM4Ny4uMmU0YWEzOWVkZDE1Njk0ZWY1OWY1M2JlNTdhMjZmOGFmNWU0ODM2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIHZvaWQgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0Rl
bmllZCh1aW50NjRfdCB1CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZWFzb24gPT0gVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
OjpQZXJtaXNzaW9uRGVuaWVkKQotICAgICAgICBtX2RlbmllZFJlcXVlc3RzLmFwcGVuZChEZW5p
ZWRSZXF1ZXN0IHsgcmVxdWVzdC0+bWFpbkZyYW1lSUQoKSwgcmVxdWVzdC0+dXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdC0+cmVxdWlyZXNBdWRpb0NhcHR1cmUoKSwgcmVxdWVzdC0+cmVxdWly
ZXNWaWRlb0NhcHR1cmUoKSB9KTsKKyAgICAgICAgbV9kZW5pZWRSZXF1ZXN0cy5hcHBlbmQoRGVu
aWVkUmVxdWVzdCB7IHJlcXVlc3QtPm1haW5GcmFtZUlEKCksIHJlcXVlc3QtPnVzZXJNZWRpYURv
Y3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5
T3JpZ2luKCksIHJlcXVlc3QtPnJlcXVpcmVzQXVkaW9DYXB0dXJlKCksIHJlcXVlc3QtPnJlcXVp
cmVzVmlkZW9DYXB0dXJlKCksIHJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSB9KTsK
IAogICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlELCByZWFzb24sIGVtcHR5U3RyaW5nKCkpOwog
fQpAQCAtMjEzLDcgKzIxMyw3IEBAIGNvbnN0IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJv
eHkqIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpzCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKLWJvb2wgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6Ondhc1JlcXVlc3REZW5pZWQodWludDY0X3QgbWFpbkZyYW1lSUQsIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGJvb2wgbmVlZHNBdWRpbywgYm9vbCBuZWVkc1ZpZGVvKQor
Ym9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzUmVxdWVzdERl
bmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9y
aWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5D
YXB0dXJlKQogewogICAgIGZvciAoY29uc3QgYXV0byYgZGVuaWVkUmVxdWVzdCA6IG1fZGVuaWVk
UmVxdWVzdHMpIHsKICAgICAgICAgaWYgKCFkZW5pZWRSZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50
T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCkBA
IC0yMjYsNiArMjI2LDggQEAgYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWUKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICBpZiAoZGVuaWVkUmVxdWVzdC5pc1ZpZGVvRGVuaWVkICYmIG5l
ZWRzVmlkZW8pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKGRlbmllZFJl
cXVlc3QuaXNTY3JlZW5DYXB0dXJlRGVuaWVkICYmIG5lZWRzU2NyZWVuQ2FwdHVyZSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0yODQs
MjQgKzI4NiwyOSBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpyZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHdhc1JlcXVlc3REZW5pZWQobV9wYWdlLm1haW5G
cmFtZSgpLT5mcmFtZUlEKCksIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSwgIXZpZGVvRGV2
aWNlcy5pc0VtcHR5KCkpKSB7CisgICAgICAgIGJvb2wgcmVxdWVzdGluZ1NjcmVlbkNhcHR1cmUg
PSBsb2NhbFVzZXJSZXF1ZXN0LnR5cGUgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBlOjpEaXNw
bGF5TWVkaWEgJiYgIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCk7CisgICAgICAgIGJvb2wgcmVxdWVz
dGluZ0NhbWVyYSA9ICFyZXF1ZXN0aW5nU2NyZWVuQ2FwdHVyZSAmJiAhdmlkZW9EZXZpY2VzLmlz
RW1wdHkoKTsKKyAgICAgICAgaWYgKHdhc1JlcXVlc3REZW5pZWQobV9wYWdlLm1haW5GcmFtZSgp
LT5mcmFtZUlEKCksIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luLmdldCgpLCAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSwgcmVxdWVzdGluZ0NhbWVy
YSwgcmVxdWVzdGluZ1NjcmVlbkNhcHR1cmUpKSB7CiAgICAgICAgICAgICBkZW55UmVxdWVzdCh1
c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNj
ZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBlbXB0eVN0cmluZygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGF1dG8qIGdyYW50ZWRSZXF1ZXN0
ID0gc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4uZ2V0KCksIHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCksICFhdWRpb0RldmljZXMuaXNF
bXB0eSgpLCAhdmlkZW9EZXZpY2VzLmlzRW1wdHkoKSk7Ci0gICAgICAgIGlmIChncmFudGVkUmVx
dWVzdCkgewotICAgICAgICAgICAgaWYgKG1fcGFnZS5pc1ZpZXdWaXNpYmxlKCkpIHsKLSAgICAg
ICAgICAgIC8vIFdlIHNlbGVjdCB0aGUgZmlyc3QgYXZhaWxhYmxlIGRldmljZXMsIGJ1dCB0aGUg
Y3VycmVudCBjbGllbnQgQVBJIGFsbG93cyBjbGllbnQgdG8gc2VsZWN0IHdoaWNoIGRldmljZSB0
byBwaWNrLgotICAgICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGUgcG9zc2libGl0eSBmb3Ig
dGhlIGNsaWVudCB0byBkbyB0aGUgZGV2aWNlIHNlbGVjdGlvbi4KLSAgICAgICAgICAgICAgICBh
dXRvIGF1ZGlvRGV2aWNlID0gIWF1ZGlvRGV2aWNlcy5pc0VtcHR5KCkgPyBhdWRpb0RldmljZXNb
MF0gOiBDYXB0dXJlRGV2aWNlKCk7Ci0gICAgICAgICAgICAgICAgYXV0byB2aWRlb0RldmljZSA9
ICF2aWRlb0RldmljZXMuaXNFbXB0eSgpID8gdmlkZW9EZXZpY2VzWzBdIDogQ2FwdHVyZURldmlj
ZSgpOwotICAgICAgICAgICAgICAgIGdyYW50QWNjZXNzKHVzZXJNZWRpYUlELCBXVEZNb3ZlKGF1
ZGlvRGV2aWNlKSwgV1RGTW92ZSh2aWRlb0RldmljZSksIGdyYW50ZWRSZXF1ZXN0LT5kZXZpY2VJ
ZGVudGlmaWVySGFzaFNhbHQoKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAg
ICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5hcHBlbmQoY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodXNl
ck1lZGlhSUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBmcmFtZUlELCBXVEZNb3Zl
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KSwgV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFN0cmluZyhn
cmFudGVkUmVxdWVzdC0+ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KCkpLCBXVEZNb3ZlKGxvY2Fs
VXNlclJlcXVlc3QpKSk7CisgICAgICAgIGlmICghcmVxdWVzdGluZ1NjcmVlbkNhcHR1cmUpIHsK
KyAgICAgICAgICAgIGF1dG8qIGdyYW50ZWRSZXF1ZXN0ID0gc2VhcmNoRm9yR3JhbnRlZFJlcXVl
c3QoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4uZ2V0KCksIHRvcExldmVsRG9jdW1l
bnRPcmlnaW4uZ2V0KCksICFhdWRpb0RldmljZXMuaXNFbXB0eSgpLCAhdmlkZW9EZXZpY2VzLmlz
RW1wdHkoKSk7CisgICAgICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAg
ICAgICBpZiAobV9wYWdlLmlzVmlld1Zpc2libGUoKSkgeworICAgICAgICAgICAgICAgICAgICAv
LyBXZSBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2VzLCBidXQgdGhlIGN1cnJlbnQg
Y2xpZW50IEFQSSBhbGxvd3MgY2xpZW50IHRvIHNlbGVjdCB3aGljaCBkZXZpY2UgdG8gcGljay4K
KyAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGUgcG9zc2libGl0eSBmb3Ig
dGhlIGNsaWVudCB0byBkbyB0aGUgZGV2aWNlIHNlbGVjdGlvbi4KKyAgICAgICAgICAgICAgICAg
ICAgYXV0byBhdWRpb0RldmljZSA9ICFhdWRpb0RldmljZXMuaXNFbXB0eSgpID8gYXVkaW9EZXZp
Y2VzWzBdIDogQ2FwdHVyZURldmljZSgpOworICAgICAgICAgICAgICAgICAgICBhdXRvIHZpZGVv
RGV2aWNlID0gIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCkgPyB2aWRlb0RldmljZXNbMF0gOiBDYXB0
dXJlRGV2aWNlKCk7CisgICAgICAgICAgICAgICAgICAgIGdyYW50QWNjZXNzKHVzZXJNZWRpYUlE
LCBXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgV1RGTW92ZSh2aWRlb0RldmljZSksIGdyYW50ZWRSZXF1
ZXN0LT5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSk7CisgICAgICAgICAgICAgICAgfSBlbHNl
CisgICAgICAgICAgICAgICAgICAgIG1fcHJlZ3JhbnRlZFJlcXVlc3RzLmFwcGVuZChjcmVhdGVQ
ZXJtaXNzaW9uUmVxdWVzdCh1c2VyTWVkaWFJRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlE
KCksIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRv
cExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlk
ZW9EZXZpY2VzKSwgU3RyaW5nKGdyYW50ZWRSZXF1ZXN0LT5kZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQoKSksIFdURk1vdmUobG9jYWxVc2VyUmVxdWVzdCkpKTsKIAotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQorCiAg
ICAgICAgIGF1dG8gdXNlck1lZGlhT3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpKTsKICAgICAgICAgYXV0byB0b3BMZXZlbE9y
aWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LmdldCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKaW5kZXggZWUxZWE2MmY4
N2JkZWI2ODhjYTVjZGI1MThhYzU3YjAwYTk4MTMwNi4uY2YyMWMxNDgwNjZhYzZhNzMyNDQ5OWYz
YTY0NDQzYzIyZDRhMzI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCkBAIC03
Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBncmFudEFjY2Vzcyh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBhdWRpb0RldmljZSwgY29uc3Qg
V2ViQ29yZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgY29uc3QgU3RyaW5nJiBkZXZpY2VJ
ZGVudGlmaWVySGFzaFNhbHQpOwogCiAgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVk
c0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmll
ZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pOwor
ICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1
ZGlvLCBib29sIG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKICNlbmRpZgog
ICAgIHZvaWQgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgdXNlck1lZGlhSUQs
IHVpbnQ2NF90IGZyYW1lSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0
aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKTsKIApAQCAtOTYsNiArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBSZWY8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4+IHRvcExldmVsRG9jdW1lbnRPcmlnaW47CiAgICAgICAgIGJv
b2wgaXNBdWRpb0RlbmllZDsKICAgICAgICAgYm9vbCBpc1ZpZGVvRGVuaWVkOworICAgICAgICBi
b29sIGlzU2NyZWVuQ2FwdHVyZURlbmllZDsKICAgICB9OwogICAgIFZlY3RvcjxEZW5pZWRSZXF1
ZXN0PiBtX2RlbmllZFJlcXVlc3RzOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggMTRkYjIzOTM1MTI2ZmNiMWZmNWRlMTRkNGRmNWMxMGE4NzJl
ODJjMi4uOGRlMDFmZmI4NDBmODE3MDFkYjFmNDYxN2ZmYTI2NjhkM2JiYmFhMCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDE4LTExLTAzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisg
ICAgICAgIFtNZWRpYVN0cmVhbV0gVXNlciBzaG91bGQgbm90IGJlIHByb21wdGVkIGFnYWluIGFm
dGVyIGRlbnlpbmcgZ2V0RGlzcGxheU1lZGlhIHJlcXVlc3QKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTIyNworICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNDU3ODQ1MTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5t
bToKKyAgICAgICAgKC1bR2V0RGlzcGxheU1lZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0
VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lv
bkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpHZXREaXNwbGF5TWVkaWFUZXN0
Ojpwcm9tcHRGb3JDYXB0dXJlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisK
IDIwMTgtMTAtMzEgIEd1aWxsYXVtZSBFbW9udCAgPGd1aWplbW9udEBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIERvbid0IHJ1biBKSVQgdGVzdHMgb24gMzItYml0IHBsYXRmb3JtcwpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRp
YS5tbQppbmRleCBhZGY4NDM5MGU4YzBhNWVhNmUxM2ExZWZhNTEyNWE4NGVlMzU0YmMwLi42MjUw
M2I0NGUxOGY5MjY1MWIwMmE4NTViMmUxMjhkYmNmMjI1ZmY5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbQorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbQpA
QCAtMzgsNiArMzgsOCBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24u
aD4KIAogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKKworc3RhdGljIGJvb2wgc2hv
dWxkRGVueSA9IGZhbHNlOwogc3RhdGljIF9XS0NhcHR1cmVEZXZpY2VzIHJlcXVlc3RlZERldmlj
ZXMgPSAwOwogc3RhdGljIGJvb2wgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CiBzdGF0
aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1lc3NhZ2U7CkBAIC02NCw2
ICs2NiwxMSBAQCBzdGF0aWMgUmV0YWluUHRyPFdLU2NyaXB0TWVzc2FnZT4gbGFzdFNjcmlwdE1l
c3NhZ2U7CiB7CiAgICAgd2FzUHJvbXB0ZWQgPSB0cnVlOwogCisgICAgaWYgKHNob3VsZERlbnkp
IHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKE5PKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIHJlcXVlc3RlZERldmljZXMgPSBkZXZpY2VzOwogICAgIEJPT0wgbmVlZHNNaWNyb3Bo
b25lQXV0aG9yaXphdGlvbiA9ICEhKHJlcXVlc3RlZERldmljZXMgJiBfV0tDYXB0dXJlRGV2aWNl
TWljcm9waG9uZSk7CiAgICAgQk9PTCBuZWVkc0NhbWVyYUF1dGhvcml6YXRpb24gPSAhIShyZXF1
ZXN0ZWREZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYSk7CkBAIC0xNDAsMTMgKzE0Nywx
OCBAQCBwdWJsaWM6CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBFWFBFQ1RfU1RSRVEo
WyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3RyaW5nXSwgImRlbmll
ZCIpOwogICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGF2ZVN0cmVhbShmYWxzZSkpOwotICAgICAg
ICAgICAgRVhQRUNUX0ZBTFNFKHdhc1Byb21wdGVkKTsKKyAgICAgICAgICAgIGlmIChzaG91bGRE
ZW55ICYmICFtX2RlbmlhbENvdW50KQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHdhc1By
b21wdGVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFMU0Uo
d2FzUHJvbXB0ZWQpOworICAgICAgICAgICAgKyttX2RlbmlhbENvdW50OwogICAgICAgICB9CiAg
ICAgfQogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJh
dGlvbjsKICAgICBSZXRhaW5QdHI8R2V0RGlzcGxheU1lZGlhVUlEZWxlZ2F0ZT4gbV91aURlbGVn
YXRlOwogICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiBtX3dlYlZpZXc7CisgICAgaW50IG1f
ZGVuaWFsQ291bnQgeyAwIH07CiB9OwogCiBURVNUX0YoR2V0RGlzcGxheU1lZGlhVGVzdCwgQmFz
aWNQcm9tcHQpCkBAIC0xNjUsNiArMTc3LDE1IEBAIFRFU1RfRihHZXREaXNwbGF5TWVkaWFUZXN0
LCBDb25zdHJhaW50cykKICAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2aWRlbzoge3dpZHRoOiB7
IGV4YWN0OiA2NDB9IH0gfSIsIGZhbHNlKTsKIH0KIAorVEVTVF9GKEdldERpc3BsYXlNZWRpYVRl
c3QsIFByb21wdE9uY2VBZnRlckRlbmlhbCkKK3sKKyAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2
aWRlbzogdHJ1ZSB9IiwgdHJ1ZSk7CisgICAgc2hvdWxkRGVueSA9IHRydWU7CisgICAgcHJvbXB0
Rm9yQ2FwdHVyZShAInsgdmlkZW86IHRydWUgfSIsIGZhbHNlKTsKKyAgICBwcm9tcHRGb3JDYXB0
dXJlKEAieyB2aWRlbzogdHJ1ZSB9IiwgZmFsc2UpOworICAgIHByb21wdEZvckNhcHR1cmUoQCJ7
IHZpZGVvOiB0cnVlIH0iLCBmYWxzZSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353804</attachid>
            <date>2018-11-04 07:22:54 -0800</date>
            <delta_ts>2018-11-06 11:46:12 -0800</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-191227-20181104092253.patch</filename>
            <type>text/plain</type>
            <size>13500</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3NjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY2ZGY0MTYyNGQ0OWMyMGYy
NGUwNmQ5Y2ZjNGIxOTFhYTEzNmJhYzguLjFjNjA3MmZlYWEyNTNkOGZiNjY2ZTg0ODVlNWFmOTFl
NGZhNzhlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMTEtMDMgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBV
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gYWZ0ZXIgZGVueWluZyBnZXREaXNwbGF5
TWVkaWEgcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTc4NDUxMj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dh
c0RlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oOgorCiAyMDE4LTEwLTMxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgW1BTT05dIFdoZW4gcHJvY2Vzcy1zd2FwcGluZyBmb3IgYSBQT1NU
IHJlcXVlc3QgdGhlIEhUVFAgYm9keSBnZXRzIGRyb3BwZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAppbmRleCA2Mjc3NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBm
Yzg3Li5hZjBjY2Y0YTQ3ODczNTdkMDVmMzkzYzk4ODdjODRlOTRlNzYyOTc5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVu
aWVkKHVpbnQ2NF90IHUKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJlYXNvbiA9PSBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246
OlBlcm1pc3Npb25EZW5pZWQpCi0gICAgICAgIG1fZGVuaWVkUmVxdWVzdHMuYXBwZW5kKERlbmll
ZFJlcXVlc3QgeyByZXF1ZXN0LT5tYWluRnJhbWVJRCgpLCByZXF1ZXN0LT51c2VyTWVkaWFEb2N1
bWVudFNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QtPnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9y
aWdpbigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpLCByZXF1ZXN0LT5yZXF1aXJl
c1ZpZGVvQ2FwdHVyZSgpIH0pOworICAgICAgICBtX2RlbmllZFJlcXVlc3RzLmFwcGVuZChEZW5p
ZWRSZXF1ZXN0IHsgcmVxdWVzdC0+bWFpbkZyYW1lSUQoKSwgcmVxdWVzdC0+dXNlck1lZGlhRG9j
dW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdC0+cmVxdWlyZXNBdWRpb0NhcHR1cmUoKSwgcmVxdWVzdC0+cmVxdWly
ZXNWaWRlb0NhcHR1cmUoKSwgcmVxdWVzdC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpIH0pOwog
CiAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwgZW1wdHlTdHJpbmcoKSk7CiB9
CkBAIC0yMTMsNyArMjEzLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSogVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9w
TGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pCiti
b29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVu
aWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3Jp
Z2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNh
cHR1cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDogbV9kZW5pZWRS
ZXF1ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRP
cmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKQEAg
LTIyNiw2ICsyMjYsOCBAQCBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclBy
b3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGlmIChkZW5pZWRSZXF1ZXN0LmlzVmlkZW9EZW5pZWQgJiYgbmVl
ZHNWaWRlbykKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGVuaWVkUmVx
dWVzdC5pc1NjcmVlbkNhcHR1cmVEZW5pZWQgJiYgbmVlZHNTY3JlZW5DYXB0dXJlKQorICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTI1OSw2
ICsyNjEsMjYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
c2NoZWR1bGVOZXh0UmVqZWN0aW9uKCkKICAgICAgICAgbV9yZWplY3Rpb25UaW1lci5zdGFydE9u
ZVNob3QoU2Vjb25kcyhtaW1pbXVtRGVsYXlCZWZvcmVSZXBseWluZyArIHJhbmRvbU51bWJlcigp
KSk7CiB9CiAKK1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpSZXF1ZXN0
QWN0aW9uIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpnZXRSZXF1ZXN0
QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIFNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgU2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IE1l
ZGlhU3RyZWFtUmVxdWVzdCYgdXNlclJlcXVlc3QsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgYXVk
aW9EZXZpY2VzLCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcykKK3sKKyAgICBp
ZiAodmlkZW9EZXZpY2VzLmlzRW1wdHkoKSAmJiBhdWRpb0RldmljZXMuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gUmVxdWVzdEFjdGlvbjo6RGVueTsKKworICAgIGJvb2wgcmVxdWVzdGluZ1Nj
cmVlbkNhcHR1cmUgPSB1c2VyUmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlw
ZTo6RGlzcGxheU1lZGlhOworICAgIEFTU0VSVCghKHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlICYm
IHZpZGVvRGV2aWNlcy5pc0VtcHR5KCkpKTsKKyAgICBBU1NFUlQoIShyZXF1ZXN0aW5nU2NyZWVu
Q2FwdHVyZSAmJiAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSkpOworICAgIGJvb2wgcmVxdWVzdGlu
Z0NhbWVyYSA9ICFyZXF1ZXN0aW5nU2NyZWVuQ2FwdHVyZSAmJiAhdmlkZW9EZXZpY2VzLmlzRW1w
dHkoKTsKKyAgICBib29sIHJlcXVlc3RpbmdNaWNyb3Bob25lID0gIWF1ZGlvRGV2aWNlcy5pc0Vt
cHR5KCk7CisKKyAgICBpZiAod2FzUmVxdWVzdERlbmllZChmcmFtZUlELCB1c2VyTWVkaWFEb2N1
bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgcmVxdWVzdGluZ01pY3JvcGhvbmUs
IHJlcXVlc3RpbmdDYW1lcmEsIHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlKSkKKyAgICAgICAgcmV0
dXJuIFJlcXVlc3RBY3Rpb246OkRlbnk7CisKKyAgICBpZiAodXNlclJlcXVlc3QudHlwZSA9PSBN
ZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSkKKyAgICAgICAgcmV0dXJuIFJl
cXVlc3RBY3Rpb246OlByb21wdDsKKworICAgIHJldHVybiBzZWFyY2hGb3JHcmFudGVkUmVxdWVz
dChmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdp
biwgcmVxdWVzdGluZ01pY3JvcGhvbmUsIHJlcXVlc3RpbmdDYW1lcmEpID8gUmVxdWVzdEFjdGlv
bjo6R3JhbnQgOiBSZXF1ZXN0QWN0aW9uOjpQcm9tcHQ7Cit9CisKIHZvaWQgVXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IE1lZGlhU3RyZWFtUmVxdWVzdCYgdXNlclJl
cXVlc3QpCiB7CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKQEAgLTI3OSwzMiArMzAxLDI5IEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2Vy
TWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUoCiAgICAgICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSB8
fCAhbV9wYWdlLm1haW5GcmFtZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlm
ICh2aWRlb0RldmljZXMuaXNFbXB0eSgpICYmIGF1ZGlvRGV2aWNlcy5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgYXV0byBhY3Rpb24gPSBnZXRSZXF1ZXN0QWN0aW9uKG1fcGFnZS5tYWluRnJhbWUoKS0+
ZnJhbWVJRCgpLCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbi5nZXQoKSwgbG9jYWxVc2VyUmVxdWVzdCwgYXVkaW9EZXZpY2VzLCB2aWRlb0Rldmlj
ZXMpOworICAgICAgICBpZiAoYWN0aW9uID09IFJlcXVlc3RBY3Rpb246OkRlbnkpIHsKICAgICAg
ICAgICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246Ok5vQ29uc3RyYWludHMsIGVtcHR5
U3RyaW5nKCkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYg
KHdhc1JlcXVlc3REZW5pZWQobV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgpLCAhYXVk
aW9EZXZpY2VzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCkpKSB7Ci0gICAgICAg
ICAgICBkZW55UmVxdWVzdCh1c2VyTWVkaWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQ
cm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9uRGVuaWVkLCBlbXB0
eVN0cmluZygpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgICAgICBpZiAo
YWN0aW9uID09IFJlcXVlc3RBY3Rpb246OkdyYW50KSB7CisgICAgICAgICAgICBBU1NFUlQobG9j
YWxVc2VyUmVxdWVzdC50eXBlICE9IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1l
ZGlhKTsKIAotICAgICAgICBhdXRvKiBncmFudGVkUmVxdWVzdCA9IHNlYXJjaEZvckdyYW50ZWRS
ZXF1ZXN0KGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLmdldCgpLCAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNl
cy5pc0VtcHR5KCkpOwotICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QpIHsKICAgICAgICAgICAg
IGlmIChtX3BhZ2UuaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBzZWxlY3Qg
dGhlIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2VzLCBidXQgdGhlIGN1cnJlbnQgY2xpZW50IEFQSSBh
bGxvd3MgY2xpZW50IHRvIHNlbGVjdCB3aGljaCBkZXZpY2UgdG8gcGljay4KLSAgICAgICAgICAg
IC8vIEZJWE1FOiBSZW1vdmUgdGhlIHBvc3NpYmxpdHkgZm9yIHRoZSBjbGllbnQgdG8gZG8gdGhl
IGRldmljZSBzZWxlY3Rpb24uCisgICAgICAgICAgICAgICAgLy8gV2Ugc2VsZWN0IHRoZSBmaXJz
dCBhdmFpbGFibGUgZGV2aWNlcywgYnV0IHRoZSBjdXJyZW50IGNsaWVudCBBUEkgYWxsb3dzIGNs
aWVudCB0byBzZWxlY3Qgd2hpY2ggZGV2aWNlIHRvIHBpY2suCisgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGUgcG9zc2libGl0eSBmb3IgdGhlIGNsaWVudCB0byBkbyB0aGUgZGV2
aWNlIHNlbGVjdGlvbi4KICAgICAgICAgICAgICAgICBhdXRvIGF1ZGlvRGV2aWNlID0gIWF1ZGlv
RGV2aWNlcy5pc0VtcHR5KCkgPyBhdWRpb0RldmljZXNbMF0gOiBDYXB0dXJlRGV2aWNlKCk7CiAg
ICAgICAgICAgICAgICAgYXV0byB2aWRlb0RldmljZSA9ICF2aWRlb0RldmljZXMuaXNFbXB0eSgp
ID8gdmlkZW9EZXZpY2VzWzBdIDogQ2FwdHVyZURldmljZSgpOwotICAgICAgICAgICAgICAgIGdy
YW50QWNjZXNzKHVzZXJNZWRpYUlELCBXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgV1RGTW92ZSh2aWRl
b0RldmljZSksIGdyYW50ZWRSZXF1ZXN0LT5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSk7Cisg
ICAgICAgICAgICAgICAgZ3JhbnRBY2Nlc3ModXNlck1lZGlhSUQsIFdURk1vdmUoYXVkaW9EZXZp
Y2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFzaFNh
bHQpKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG1fcHJlZ3JhbnRlZFJl
cXVlc3RzLmFwcGVuZChjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1c2VyTWVkaWFJRCwgbV9wYWdl
Lm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlv
RGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2VzKSwgU3RyaW5nKGdyYW50ZWRSZXF1ZXN0LT5k
ZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSksIFdURk1vdmUobG9jYWxVc2VyUmVxdWVzdCkpKTsK
KyAgICAgICAgICAgICAgICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5hcHBlbmQoY3JlYXRlUGVybWlz
c2lvblJlcXVlc3QodXNlck1lZGlhSUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBm
cmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZl
bERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2
aWNlcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwgV1RGTW92ZShsb2NhbFVz
ZXJSZXF1ZXN0KSkpOwogCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKwogICAgICAg
ICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAgICAgICAgIGF1dG8gdG9wTGV2ZWxPcmlnaW4g
PSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQo
KSk7Ci0KICAgICAgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGNyZWF0ZVBlcm1pc3Npb25SZXF1
ZXN0KHVzZXJNZWRpYUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJhbWVJRCwg
V1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVu
dE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRlb0RldmljZXMpLCBX
VEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1vdmUobG9jYWxVc2VyUmVxdWVz
dCkpOwogCiAgICAgICAgIGlmIChtX3BhZ2UuaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGVlMWVhNjJmODdiZGViNjg4Y2E1
Y2RiNTE4YWM1N2IwMGE5ODEzMDYuLjhjYjgyNThmYmNkZjliMTIyMTA0MTMzNTM5ZjQwZjVhYmNm
MDVjMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNzMsMTAgKzczLDE3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBncmFudEFjY2Vzcyh1aW50NjRfdCB1c2VyTWVkaWFJRCwg
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBhdWRpb0RldmljZSwgY29uc3QgV2ViQ29yZTo6
Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVy
SGFzaFNhbHQpOwogCiAgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSog
c2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBi
b29sIG5lZWRzVmlkZW8pIGNvbnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50NjRf
dCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pOworICAgIGJvb2wg
d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29s
IG5lZWRzVmlkZW8sIGJvb2wgbmVlZHNTY3JlZW5DYXB0dXJlKTsKICNlbmRpZgogICAgIHZvaWQg
Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90
IGZyYW1lSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxl
ciYmLCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
KTsKIAorICAgIGVudW0gY2xhc3MgUmVxdWVzdEFjdGlvbiB7CisgICAgICAgIERlbnksCisgICAg
ICAgIEdyYW50LAorICAgICAgICBQcm9tcHQgICAgICAgIAorICAgIH07CisgICAgUmVxdWVzdEFj
dGlvbiBnZXRSZXF1ZXN0QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVz
dCYsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8
V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcyk7CisKICAgICB2b2lkIHdhdGNo
ZG9nVGltZXJGaXJlZCgpOwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+PiBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0czsKQEAg
LTk2LDYgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgICAgIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4gdG9wTGV2ZWxEb2N1bWVudE9yaWdpbjsKICAgICAgICAgYm9vbCBpc0F1ZGlvRGVuaWVk
OwogICAgICAgICBib29sIGlzVmlkZW9EZW5pZWQ7CisgICAgICAgIGJvb2wgaXNTY3JlZW5DYXB0
dXJlRGVuaWVkOwogICAgIH07CiAgICAgVmVjdG9yPERlbmllZFJlcXVlc3Q+IG1fZGVuaWVkUmVx
dWVzdHM7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAxNGRiMjM5MzUxMjZmY2IxZmY1ZGUxNGQ0ZGY1YzEwYTg3MmU4MmMyLi40N2Y5YTU0YjYw
YmI2ODEzMjZjYjgxMDE4ZTAyNzMzNDQ4OGI5ZGFjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTgtMTEtMDMgIEVy
aWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3Ry
ZWFtXSBVc2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gYWZ0ZXIgZGVueWluZyBnZXRE
aXNwbGF5TWVkaWEgcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxMjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTc4NDUxMj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW06CisgICAgICAgICgtW0dl
dERpc3BsYXlNZWRpYVVJRGVsZWdhdGUgX3dlYlZpZXc6cmVxdWVzdFVzZXJNZWRpYUF1dGhvcml6
YXRpb25Gb3JEZXZpY2VzOnVybDptYWluRnJhbWVVUkw6ZGVjaXNpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6R2V0RGlzcGxheU1lZGlhVGVzdDo6cHJvbXB0Rm9yQ2FwdHVy
ZSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorCiAyMDE4LTEwLTMxICBHdWls
bGF1bWUgRW1vbnQgIDxndWlqZW1vbnRAaWdhbGlhLmNvbT4KIAogICAgICAgICBEb24ndCBydW4g
SklUIHRlc3RzIG9uIDMyLWJpdCBwbGF0Zm9ybXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2V0RGlzcGxheU1lZGlhLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KaW5kZXggYWRmODQz
OTBlOGMwYTVlYTZlMTNhMWVmYTUxMjVhODRlZTM1NGJjMC4uMTRlOWJiMjdhMTViZWRjYTg4OTY3
YTU1NmUzZTM0Y2NhOTNhZjM1NyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CiAKIHN0YXRpYyBib29s
IHdhc1Byb21wdGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCBzaG91bGREZW55ID0gZmFsc2U7CiBz
dGF0aWMgX1dLQ2FwdHVyZURldmljZXMgcmVxdWVzdGVkRGV2aWNlcyA9IDA7CiBzdGF0aWMgYm9v
bCByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKIHN0YXRpYyBSZXRhaW5QdHI8V0tTY3Jp
cHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKQEAgLTY0LDYgKzY1LDExIEBAIHN0YXRpYyBS
ZXRhaW5QdHI8V0tTY3JpcHRNZXNzYWdlPiBsYXN0U2NyaXB0TWVzc2FnZTsKIHsKICAgICB3YXNQ
cm9tcHRlZCA9IHRydWU7CiAKKyAgICBpZiAoc2hvdWxkRGVueSkgeworICAgICAgICBkZWNpc2lv
bkhhbmRsZXIoTk8pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgcmVxdWVzdGVkRGV2
aWNlcyA9IGRldmljZXM7CiAgICAgQk9PTCBuZWVkc01pY3JvcGhvbmVBdXRob3JpemF0aW9uID0g
ISEocmVxdWVzdGVkRGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VNaWNyb3Bob25lKTsKICAgICBC
T09MIG5lZWRzQ2FtZXJhQXV0aG9yaXphdGlvbiA9ICEhKHJlcXVlc3RlZERldmljZXMgJiBfV0tD
YXB0dXJlRGV2aWNlQ2FtZXJhKTsKQEAgLTE0MCw3ICsxNDYsMTAgQEAgcHVibGljOgogICAgICAg
ICB9IGVsc2UgewogICAgICAgICAgICAgRVhQRUNUX1NUUkVRKFsoTlNTdHJpbmcgKilbbGFzdFNj
cmlwdE1lc3NhZ2UgYm9keV0gVVRGOFN0cmluZ10sICJkZW5pZWQiKTsKICAgICAgICAgICAgIEVY
UEVDVF9UUlVFKGhhdmVTdHJlYW0oZmFsc2UpKTsKLSAgICAgICAgICAgIEVYUEVDVF9GQUxTRSh3
YXNQcm9tcHRlZCk7CisgICAgICAgICAgICBpZiAoc2hvdWxkRGVueSkKKyAgICAgICAgICAgICAg
ICBFWFBFQ1RfVFJVRSh3YXNQcm9tcHRlZCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgRVhQRUNUX0ZBTFNFKHdhc1Byb21wdGVkKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
MTY1LDYgKzE3NCwxNiBAQCBURVNUX0YoR2V0RGlzcGxheU1lZGlhVGVzdCwgQ29uc3RyYWludHMp
CiAgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgdmlkZW86IHt3aWR0aDogeyBleGFjdDogNjQwfSB9
IH0iLCBmYWxzZSk7CiB9CiAKK1RFU1RfRihHZXREaXNwbGF5TWVkaWFUZXN0LCBQcm9tcHRPbmNl
QWZ0ZXJEZW5pYWwpCit7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgdmlkZW86IHRydWUgfSIs
IHRydWUpOworICAgIHNob3VsZERlbnkgPSB0cnVlOworICAgIHByb21wdEZvckNhcHR1cmUoQCJ7
IHZpZGVvOiB0cnVlIH0iLCBmYWxzZSk7CisgICAgc2hvdWxkRGVueSA9IGZhbHNlOworICAgIHBy
b21wdEZvckNhcHR1cmUoQCJ7IHZpZGVvOiB0cnVlIH0iLCBmYWxzZSk7CisgICAgcHJvbXB0Rm9y
Q2FwdHVyZShAInsgdmlkZW86IHRydWUgfSIsIGZhbHNlKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353981</attachid>
            <date>2018-11-06 11:46:14 -0800</date>
            <delta_ts>2018-11-06 12:12:49 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-191227-20181106114613.patch</filename>
            <type>text/plain</type>
            <size>13713</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3ODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhYzNkOGYwMDM0ZjY0OTYy
NDJlMGU2NTBmYjY3N2NhNTc2ZDdhY2IuLjQwMzFkMGZjMzkyNmZhOTdkN2Q3MDM2YjE3NGZhMjY4
MmNhOGMyNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTgtMTEtMDYgIEVyaWMgQ2Fy
bHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlhU3RyZWFtXSBV
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgYWdhaW4gYWZ0ZXIgZGVueWluZyBnZXREaXNwbGF5
TWVkaWEgcmVxdWVzdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTkxMjI3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NTc4NDUxMj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dh
c0RlbmllZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVkKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9u
Rm9yRnJhbWUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oOgorCisyMDE4LTExLTA2ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3Jp
LkZ1amlpQHNvbnkuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVhbV0gVXNlciBzaG91bGQgbm90
IGJlIHByb21wdGVkIGFnYWluIGFmdGVyIGRlbnlpbmcgZ2V0RGlzcGxheU1lZGlhIHJlcXVlc3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MTIyNwor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDU3ODQ1MTI+CisKKyAgICAgICAgVW5yZXZpZXdlZCBi
dWlsZCBmaXggb2YgcG9ydHMgbm90IEVOQUJMRShNRURJQV9TVFJFQU0pLgorCisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDogRGVm
aW5lIGdldFJlcXVlc3RBY3Rpb24gb25seSBpZiBFTkFCTEUoTUVESUFfU1RSRUFNKS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaDog
RGl0dG8uCisKIDIwMTgtMTEtMDUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtXUEVdIFJlbW92ZSBCYWNraW5nU3RvcmUsIEJhY2tpbmdTdG9yZUNhaXJv
IGltcGxlbWVudGF0aW9uIGZpbGVzIGZyb20gYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdl
clByb3h5LmNwcAppbmRleCA2Mjc3NGM5YWI2ZmNjMjU0MDFhZjU1OTg1ZWMwMWI1NDQ5YzBmYzg3
Li44YmRhMGM3M2MzYzdhZjFhOWUxNzlkOGQyMjlmNzJiZGRiMGEwZjYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgdm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVk
KHVpbnQ2NF90IHUKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHJlYXNvbiA9PSBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBl
cm1pc3Npb25EZW5pZWQpCi0gICAgICAgIG1fZGVuaWVkUmVxdWVzdHMuYXBwZW5kKERlbmllZFJl
cXVlc3QgeyByZXF1ZXN0LT5tYWluRnJhbWVJRCgpLCByZXF1ZXN0LT51c2VyTWVkaWFEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QtPnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdp
bigpLCByZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpLCByZXF1ZXN0LT5yZXF1aXJlc1Zp
ZGVvQ2FwdHVyZSgpIH0pOworICAgICAgICBtX2RlbmllZFJlcXVlc3RzLmFwcGVuZChEZW5pZWRS
ZXF1ZXN0IHsgcmVxdWVzdC0+bWFpbkZyYW1lSUQoKSwgcmVxdWVzdC0+dXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmln
aW4oKSwgcmVxdWVzdC0+cmVxdWlyZXNBdWRpb0NhcHR1cmUoKSwgcmVxdWVzdC0+cmVxdWlyZXNW
aWRlb0NhcHR1cmUoKSwgcmVxdWVzdC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpIH0pOwogCiAg
ICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwgZW1wdHlTdHJpbmcoKSk7CiB9CkBA
IC0yMTMsNyArMjEzLDcgQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICByZXR1cm4gbnVs
bHB0cjsKIH0KIAotYm9vbCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6
d2FzUmVxdWVzdERlbmllZCh1aW50NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pCitib29s
IFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp3YXNSZXF1ZXN0RGVuaWVk
KHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2lu
LCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1
cmUpCiB7CiAgICAgZm9yIChjb25zdCBhdXRvJiBkZW5pZWRSZXF1ZXN0IDogbV9kZW5pZWRSZXF1
ZXN0cykgewogICAgICAgICBpZiAoIWRlbmllZFJlcXVlc3QudXNlck1lZGlhRG9jdW1lbnRPcmln
aW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSkKQEAgLTIy
Niw2ICsyMjYsOCBAQCBib29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
Ojp3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGlmIChkZW5pZWRSZXF1ZXN0LmlzVmlkZW9EZW5pZWQgJiYgbmVlZHNW
aWRlbykKICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICBpZiAoZGVuaWVkUmVxdWVz
dC5pc1NjcmVlbkNhcHR1cmVEZW5pZWQgJiYgbmVlZHNTY3JlZW5DYXB0dXJlKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KQEAgLTI1OSw2ICsy
NjEsMjUgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6c2No
ZWR1bGVOZXh0UmVqZWN0aW9uKCkKICAgICAgICAgbV9yZWplY3Rpb25UaW1lci5zdGFydE9uZVNo
b3QoU2Vjb25kcyhtaW1pbXVtRGVsYXlCZWZvcmVSZXBseWluZyArIHJhbmRvbU51bWJlcigpKSk7
CiB9CiAKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQorVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmdldFJlcXVlc3RBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiB1c2VyUmVxdWVzdCwgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
dmlkZW9EZXZpY2VzKQoreworICAgIGJvb2wgcmVxdWVzdGluZ1NjcmVlbkNhcHR1cmUgPSB1c2Vy
UmVxdWVzdC50eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhOwor
ICAgIEFTU0VSVCghKHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlICYmIHZpZGVvRGV2aWNlcy5pc0Vt
cHR5KCkpKTsKKyAgICBBU1NFUlQoIShyZXF1ZXN0aW5nU2NyZWVuQ2FwdHVyZSAmJiAhYXVkaW9E
ZXZpY2VzLmlzRW1wdHkoKSkpOworICAgIGJvb2wgcmVxdWVzdGluZ0NhbWVyYSA9ICFyZXF1ZXN0
aW5nU2NyZWVuQ2FwdHVyZSAmJiAhdmlkZW9EZXZpY2VzLmlzRW1wdHkoKTsKKyAgICBib29sIHJl
cXVlc3RpbmdNaWNyb3Bob25lID0gIWF1ZGlvRGV2aWNlcy5pc0VtcHR5KCk7CisKKyAgICBpZiAo
d2FzUmVxdWVzdERlbmllZChmcmFtZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2
ZWxEb2N1bWVudE9yaWdpbiwgcmVxdWVzdGluZ01pY3JvcGhvbmUsIHJlcXVlc3RpbmdDYW1lcmEs
IHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlKSkKKyAgICAgICAgcmV0dXJuIFJlcXVlc3RBY3Rpb246
OkRlbnk7CisKKyAgICBpZiAodXNlclJlcXVlc3QudHlwZSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6
OlR5cGU6OkRpc3BsYXlNZWRpYSkKKyAgICAgICAgcmV0dXJuIFJlcXVlc3RBY3Rpb246OlByb21w
dDsKKworICAgIHJldHVybiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChmcmFtZUlELCB1c2VyTWVk
aWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgcmVxdWVzdGluZ01pY3Jv
cGhvbmUsIHJlcXVlc3RpbmdDYW1lcmEpID8gUmVxdWVzdEFjdGlvbjo6R3JhbnQgOiBSZXF1ZXN0
QWN0aW9uOjpQcm9tcHQ7Cit9CisjZW5kaWYKKwogdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50
NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiB1c2VyUmVxdWVzdCkKIHsK
ICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQpAQCAtMjg0LDI3ICszMDUsMjkgQEAgdm9pZCBVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1p
c3Npb25Gb3JGcmFtZSgKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAg
IGlmICh3YXNSZXF1ZXN0RGVuaWVkKG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCB1c2Vy
TWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSwg
IWF1ZGlvRGV2aWNlcy5pc0VtcHR5KCksICF2aWRlb0RldmljZXMuaXNFbXB0eSgpKSkgeworICAg
ICAgICBhdXRvIGFjdGlvbiA9IGdldFJlcXVlc3RBY3Rpb24obV9wYWdlLm1haW5GcmFtZSgpLT5m
cmFtZUlEKCksIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50
T3JpZ2luLmdldCgpLCBsb2NhbFVzZXJSZXF1ZXN0LCBhdWRpb0RldmljZXMsIHZpZGVvRGV2aWNl
cyk7CisgICAgICAgIGlmIChhY3Rpb24gPT0gUmVxdWVzdEFjdGlvbjo6RGVueSkgewogICAgICAg
ICAgICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1w
dHlTdHJpbmcoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBh
dXRvKiBncmFudGVkUmVxdWVzdCA9IHNlYXJjaEZvckdyYW50ZWRSZXF1ZXN0KGZyYW1lSUQsIHVz
ZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgp
LCAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSwgIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCkpOwotICAg
ICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QpIHsKKyAgICAgICAgaWYgKGFjdGlvbiA9PSBSZXF1ZXN0
QWN0aW9uOjpHcmFudCkgeworICAgICAgICAgICAgQVNTRVJUKGxvY2FsVXNlclJlcXVlc3QudHlw
ZSAhPSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSk7CisKICAgICAgICAg
ICAgIGlmIChtX3BhZ2UuaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgICAgICAvLyBXZSBzZWxl
Y3QgdGhlIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2VzLCBidXQgdGhlIGN1cnJlbnQgY2xpZW50IEFQ
SSBhbGxvd3MgY2xpZW50IHRvIHNlbGVjdCB3aGljaCBkZXZpY2UgdG8gcGljay4KLSAgICAgICAg
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlIHBvc3NpYmxpdHkgZm9yIHRoZSBjbGllbnQgdG8gZG8g
dGhlIGRldmljZSBzZWxlY3Rpb24uCisgICAgICAgICAgICAgICAgLy8gV2Ugc2VsZWN0IHRoZSBm
aXJzdCBhdmFpbGFibGUgZGV2aWNlcywgYnV0IHRoZSBjdXJyZW50IGNsaWVudCBBUEkgYWxsb3dz
IGNsaWVudCB0byBzZWxlY3Qgd2hpY2ggZGV2aWNlIHRvIHBpY2suCisgICAgICAgICAgICAgICAg
Ly8gRklYTUU6IFJlbW92ZSB0aGUgcG9zc2libGl0eSBmb3IgdGhlIGNsaWVudCB0byBkbyB0aGUg
ZGV2aWNlIHNlbGVjdGlvbi4KICAgICAgICAgICAgICAgICBhdXRvIGF1ZGlvRGV2aWNlID0gIWF1
ZGlvRGV2aWNlcy5pc0VtcHR5KCkgPyBhdWRpb0RldmljZXNbMF0gOiBDYXB0dXJlRGV2aWNlKCk7
CiAgICAgICAgICAgICAgICAgYXV0byB2aWRlb0RldmljZSA9ICF2aWRlb0RldmljZXMuaXNFbXB0
eSgpID8gdmlkZW9EZXZpY2VzWzBdIDogQ2FwdHVyZURldmljZSgpOwotICAgICAgICAgICAgICAg
IGdyYW50QWNjZXNzKHVzZXJNZWRpYUlELCBXVEZNb3ZlKGF1ZGlvRGV2aWNlKSwgV1RGTW92ZSh2
aWRlb0RldmljZSksIGdyYW50ZWRSZXF1ZXN0LT5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSk7
CisgICAgICAgICAgICAgICAgZ3JhbnRBY2Nlc3ModXNlck1lZGlhSUQsIFdURk1vdmUoYXVkaW9E
ZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShkZXZpY2VJZGVudGlmaWVySGFz
aFNhbHQpKTsKICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIG1fcHJlZ3JhbnRl
ZFJlcXVlc3RzLmFwcGVuZChjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1c2VyTWVkaWFJRCwgbV9w
YWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9j
dW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1
ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2VzKSwgU3RyaW5nKGdyYW50ZWRSZXF1ZXN0
LT5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSksIFdURk1vdmUobG9jYWxVc2VyUmVxdWVzdCkp
KTsKKyAgICAgICAgICAgICAgICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5hcHBlbmQoY3JlYXRlUGVy
bWlzc2lvblJlcXVlc3QodXNlck1lZGlhSUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgp
LCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BM
ZXZlbERvY3VtZW50T3JpZ2luKSwgV1RGTW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVv
RGV2aWNlcyksIFdURk1vdmUoZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0KSwgV1RGTW92ZShsb2Nh
bFVzZXJSZXF1ZXN0KSkpOwogCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKwogICAg
ICAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAgICAgICAgIGF1dG8gdG9wTGV2ZWxPcmln
aW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5n
ZXQoKSk7Ci0KICAgICAgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IGNyZWF0ZVBlcm1pc3Npb25S
ZXF1ZXN0KHVzZXJNZWRpYUlELCBtX3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgZnJhbWVJ
RCwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1
bWVudE9yaWdpbiksIFdURk1vdmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRlb0RldmljZXMp
LCBXVEZNb3ZlKGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCksIFdURk1vdmUobG9jYWxVc2VyUmVx
dWVzdCkpOwogCiAgICAgICAgIGlmIChtX3BhZ2UuaXNDb250cm9sbGVkQnlBdXRvbWF0aW9uKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oCmluZGV4IGVlMWVhNjJmODdiZGViNjg4
Y2E1Y2RiNTE4YWM1N2IwMGE5ODEzMDYuLmJmZmUzNTNjNWRjNjFjNDliMWFkNDk5ODc0OGUzM2E4
ODE4OTk3OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaApAQCAtNzMsMTAgKzcz
LDE4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBncmFudEFjY2Vzcyh1aW50NjRfdCB1c2VyTWVkaWFJ
RCwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBhdWRpb0RldmljZSwgY29uc3QgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZSB2aWRlb0RldmljZSwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlm
aWVySGFzaFNhbHQpOwogCiAgICAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94
eSogc2VhcmNoRm9yR3JhbnRlZFJlcXVlc3QodWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlv
LCBib29sIG5lZWRzVmlkZW8pIGNvbnN0OwotICAgIGJvb2wgd2FzUmVxdWVzdERlbmllZCh1aW50
NjRfdCBtYWluRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHVzZXJNZWRp
YURvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgYm9vbCBuZWVkc0F1ZGlvLCBib29sIG5lZWRzVmlkZW8pOwotI2VuZGlm
CisgICAgYm9vbCB3YXNSZXF1ZXN0RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRz
QXVkaW8sIGJvb2wgbmVlZHNWaWRlbywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOworCiAgICAg
dm9pZCBnZXRVc2VyTWVkaWFQZXJtaXNzaW9uSW5mbyh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWlu
dDY0X3QgZnJhbWVJRCwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OkNvbXBsZXRpb25I
YW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pOwogCisgICAgZW51bSBjbGFzcyBSZXF1ZXN0QWN0aW9uIHsKKyAgICAgICAgRGVueSwK
KyAgICAgICAgR3JhbnQsCisgICAgICAgIFByb21wdAorICAgIH07CisgICAgUmVxdWVzdEFjdGlv
biBnZXRSZXF1ZXN0QWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVzdCYs
IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8V2Vi
Q29yZTo6Q2FwdHVyZURldmljZT4mIHZpZGVvRGV2aWNlcyk7CisjZW5kaWYKKwogICAgIHZvaWQg
d2F0Y2hkb2dUaW1lckZpcmVkKCk7CiAKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4+IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3Rz
OwpAQCAtOTYsNiArMTA0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiB0b3BMZXZlbERvY3VtZW50T3JpZ2luOwogICAgICAgICBib29sIGlzQXVkaW9E
ZW5pZWQ7CiAgICAgICAgIGJvb2wgaXNWaWRlb0RlbmllZDsKKyAgICAgICAgYm9vbCBpc1NjcmVl
bkNhcHR1cmVEZW5pZWQ7CiAgICAgfTsKICAgICBWZWN0b3I8RGVuaWVkUmVxdWVzdD4gbV9kZW5p
ZWRSZXF1ZXN0czsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbQppbmRleCBhZGY4NDM5MGU4YzBhNWVhNmUxM2Ex
ZWZhNTEyNWE4NGVlMzU0YmMwLi4xNGU5YmIyN2ExNWJlZGNhODg5NjdhNTU2ZTNlMzRjY2E5M2Fm
MzU3IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dl
dERpc3BsYXlNZWRpYS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0dldERpc3BsYXlNZWRpYS5tbQpAQCAtMzgsNiArMzgsNyBAQAogI2ltcG9ydCA8V2ViS2l0
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KIAogc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBm
YWxzZTsKK3N0YXRpYyBib29sIHNob3VsZERlbnkgPSBmYWxzZTsKIHN0YXRpYyBfV0tDYXB0dXJl
RGV2aWNlcyByZXF1ZXN0ZWREZXZpY2VzID0gMDsKIHN0YXRpYyBib29sIHJlY2VpdmVkU2NyaXB0
TWVzc2FnZSA9IGZhbHNlOwogc3RhdGljIFJldGFpblB0cjxXS1NjcmlwdE1lc3NhZ2U+IGxhc3RT
Y3JpcHRNZXNzYWdlOwpAQCAtNjQsNiArNjUsMTEgQEAgc3RhdGljIFJldGFpblB0cjxXS1Njcmlw
dE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOwogewogICAgIHdhc1Byb21wdGVkID0gdHJ1ZTsK
IAorICAgIGlmIChzaG91bGREZW55KSB7CisgICAgICAgIGRlY2lzaW9uSGFuZGxlcihOTyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICByZXF1ZXN0ZWREZXZpY2VzID0gZGV2aWNlczsK
ICAgICBCT09MIG5lZWRzTWljcm9waG9uZUF1dGhvcml6YXRpb24gPSAhIShyZXF1ZXN0ZWREZXZp
Y2VzICYgX1dLQ2FwdHVyZURldmljZU1pY3JvcGhvbmUpOwogICAgIEJPT0wgbmVlZHNDYW1lcmFB
dXRob3JpemF0aW9uID0gISEocmVxdWVzdGVkRGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1l
cmEpOwpAQCAtMTQwLDcgKzE0NiwxMCBAQCBwdWJsaWM6CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBFWFBFQ1RfU1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0U2NyaXB0TWVzc2FnZSBib2R5
XSBVVEY4U3RyaW5nXSwgImRlbmllZCIpOwogICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGF2ZVN0
cmVhbShmYWxzZSkpOwotICAgICAgICAgICAgRVhQRUNUX0ZBTFNFKHdhc1Byb21wdGVkKTsKKyAg
ICAgICAgICAgIGlmIChzaG91bGREZW55KQorICAgICAgICAgICAgICAgIEVYUEVDVF9UUlVFKHdh
c1Byb21wdGVkKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBFWFBFQ1RfRkFM
U0Uod2FzUHJvbXB0ZWQpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNjUsNiArMTc0LDE2IEBA
IFRFU1RfRihHZXREaXNwbGF5TWVkaWFUZXN0LCBDb25zdHJhaW50cykKICAgICBwcm9tcHRGb3JD
YXB0dXJlKEAieyB2aWRlbzoge3dpZHRoOiB7IGV4YWN0OiA2NDB9IH0gfSIsIGZhbHNlKTsKIH0K
IAorVEVTVF9GKEdldERpc3BsYXlNZWRpYVRlc3QsIFByb21wdE9uY2VBZnRlckRlbmlhbCkKK3sK
KyAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2aWRlbzogdHJ1ZSB9IiwgdHJ1ZSk7CisgICAgc2hv
dWxkRGVueSA9IHRydWU7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgdmlkZW86IHRydWUgfSIs
IGZhbHNlKTsKKyAgICBzaG91bGREZW55ID0gZmFsc2U7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShA
InsgdmlkZW86IHRydWUgfSIsIGZhbHNlKTsKKyAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2aWRl
bzogdHJ1ZSB9IiwgZmFsc2UpOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNlMjY3ZDJhYzQyOWFkMmY2
MzFjMjRlMjRhODVmYjBmOWFlNzgzZWQuLmQ4Y2NiNTI3NGYyZmI0YTIyYzc5YjRkYmFkYjJmZTFj
MjRmNGM5OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMS0wMyAgRXJpYyBDYXJsc29u
ICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIFVzZXIg
c2hvdWxkIG5vdCBiZSBwcm9tcHRlZCBhZ2FpbiBhZnRlciBkZW55aW5nIGdldERpc3BsYXlNZWRp
YSByZXF1ZXN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTEyMjcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ1Nzg0NTEyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0dldERpc3BsYXlNZWRpYS5tbToKKyAgICAgICAgKC1bR2V0RGlzcGxheU1l
ZGlhVUlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXM6dXJsOm1haW5GcmFtZVVSTDpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgIChUZXN0
V2ViS2l0QVBJOjpHZXREaXNwbGF5TWVkaWFUZXN0Ojpwcm9tcHRGb3JDYXB0dXJlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisKIDIwMTgtMTEtMDYgIFRoaWJhdWx0IFNhdW5p
ZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHU3RyZWFtZXJdW1dlYlJUQ10g
SW1wbGVtZW50IGJsYWNrIGZyYW1lIGdlbmVyYXRpb24K
</data>

          </attachment>
      

    </bug>

</bugzilla>