<?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>168975</bug_id>
          
          <creation_ts>2017-02-28 10:35:51 -0800</creation_ts>
          <short_desc>[WebRTC] Activate ICE candidate privacy policy</short_desc>
          <delta_ts>2017-03-02 08:23:31 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1281794</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-28 10:35:51 -0800</bug_when>
    <thetext>We should activate ICE candidate privacy policy by default and find a way to disable it when needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281839</commentid>
    <comment_count>1</comment_count>
      <attachid>302956</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-28 11:35:31 -0800</bug_when>
    <thetext>Created attachment 302956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281840</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-02-28 11:37:02 -0800</bug_when>
    <thetext>This patch is a second step towards implementing privacy policy.
We should add tests and probably reactivate filtering in some cases.
For instance when access is being revoked from the address bar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281990</commentid>
    <comment_count>3</comment_count>
      <attachid>302956</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-02-28 15:17:09 -0800</bug_when>
    <thetext>Comment on attachment 302956
Patch

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

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:209
&gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; +    m_page.process().send(Messages::WebPage::DisableICECandidateFiltering(), m_page.pageID());
&gt; +#endif

I don&apos;t think this should be done here, because it will disable filtering if the user accepts one stream and denies another. Instead, I think it should be in UserMediaProcessManager::willCreateMediaStream and UserMediaProcessManager::endedCaptureSession.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282309</commentid>
    <comment_count>4</comment_count>
      <attachid>303074</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-01 09:54:02 -0800</bug_when>
    <thetext>Created attachment 303074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282310</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-01 09:56:18 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 302956 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302956&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:209
&gt; &gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; &gt; +    m_page.process().send(Messages::WebPage::DisableICECandidateFiltering(), m_page.pageID());
&gt; &gt; +#endif
&gt; 
&gt; I don&apos;t think this should be done here, because it will disable filtering if
&gt; the user accepts one stream and denies another. Instead, I think it should
&gt; be in UserMediaProcessManager::willCreateMediaStream and
&gt; UserMediaProcessManager::endedCaptureSession.

Thanks for the feedback.
I updated patch accordingly.
I also added a layout test for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282363</commentid>
    <comment_count>6</comment_count>
      <attachid>303074</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-03-01 11:25:56 -0800</bug_when>
    <thetext>Comment on attachment 303074
Patch

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

&gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:205
&gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; +    m_page.process().send(Messages::WebPage::DisableICECandidateFiltering(), m_page.pageID());
&gt; +#endif

Don&apos;t you want to remove this?

&gt; Source/WebKit2/UIProcess/UserMediaProcessManager.cpp:159
&gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; +    if (currentExtensions == ProcessState::SandboxExtensionsGranted::None)
&gt; +        proxy.page().process().send(Messages::WebPage::DisableICECandidateFiltering(), proxy.page().pageID());
&gt; +#endif

Shouldn&apos;t this be in UserMediaProcessManager::endedCaptureSession?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282536</commentid>
    <comment_count>7</comment_count>
      <attachid>303143</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-01 17:05:17 -0800</bug_when>
    <thetext>Created attachment 303143
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282539</commentid>
    <comment_count>8</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-01 17:06:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 303074 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=303074&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/UserMediaPermissionRequestManagerProxy.cpp:205
&gt; &gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; &gt; +    m_page.process().send(Messages::WebPage::DisableICECandidateFiltering(), m_page.pageID());
&gt; &gt; +#endif
&gt; 
&gt; Don&apos;t you want to remove this?

Right

&gt; &gt; Source/WebKit2/UIProcess/UserMediaProcessManager.cpp:159
&gt; &gt; +#if ENABLE(WEB_RTC) &amp;&amp; USE(LIBWEBRTC)
&gt; &gt; +    if (currentExtensions == ProcessState::SandboxExtensionsGranted::None)
&gt; &gt; +        proxy.page().process().send(Messages::WebPage::DisableICECandidateFiltering(), proxy.page().pageID());
&gt; &gt; +#endif
&gt; 
&gt; Shouldn&apos;t this be in UserMediaProcessManager::endedCaptureSession?

We want to disable filtering when capture is authorised, so I think this is ok like this. I reworked a bit the way this is handled to ensure we got good coverage here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282541</commentid>
    <comment_count>9</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-03-01 17:08:41 -0800</bug_when>
    <thetext>Eric, could you check that the granting/revocation goes well with the disable/enable filtering?
Alex, one thing to consider is that we probably do not want these preferences to stay persistent WebKit launch after WebKit launch. Maybe more a Safari issue though but this may be the two-only preferences that act like this currently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282731</commentid>
    <comment_count>10</comment_count>
      <attachid>303143</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-02 08:23:27 -0800</bug_when>
    <thetext>Comment on attachment 303143
Patch

Clearing flags on attachment: 303143

Committed r213283: &lt;http://trac.webkit.org/changeset/213283&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1282732</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-02 08:23:31 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302956</attachid>
            <date>2017-02-28 11:35:31 -0800</date>
            <delta_ts>2017-03-01 09:53:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168975-20170228113234.patch</filename>
            <type>text/plain</type>
            <size>5357</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTJmNzA5MTc5ZmY0NTA0
NGU0YWMwZjQ0MzJmYjRhZjlmOTQzNTU3ZS4uYzJkOGI1MzkyMmYwODY0NmRkNDIyNTU4N2EzNTIx
ZGIwYWYyMmU1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBACiAyMDE3LTAyLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAorICAgICAgICBbV2ViUlRDXSBBY3RpdmF0
ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IG1hbnVhbCB0ZXN0cy4KKworICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6
SW50ZXJuYWxzKTogRGlzYWJsaW5nIElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIGJ5IGRlZmF1bHQg
Zm9yIHJ3dC4KKyAgICAgICAgV2Ugc2hvdWxkIGFkZCBhbiBBUEkgdG8gZW5hYmxlL2Rpc2FibGUg
dGhpcyBmaWx0ZXJpbmcuCisKKzIwMTctMDItMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBw
bGUuY29tPgorCiAgICAgICAgIFtXZWJSVENdIExpbWl0IGxpYndlYnJ0YyBsb2dnaW5nIGluIERl
YnVnIGJ1aWxkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjg5NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdmY2UyNGJjN2JhMzAxNGYyMzFkNGY1YWNlYzYzM2Y1
Yzg5NmI4N2MuLjlkMWNhY2RlZjA2YWIyZWZjMjRjZDNkOWIxYTEwMGRlYTc3YzlkMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwyNSBAQAogMjAxNy0wMi0yOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dlYlJUQ10gQWN0aXZhdGUgSUNFIGNhbmRpZGF0ZSBw
cml2YWN5IHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY4OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRGlzYWJsaW5nIG5ldHdvcmsgZW51bWVyYXRpb24gYnkgZGVmYXVsdC4KKyAgICAgICAg
RW5hYmxpbmcgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYnkgZGVmYXVsdC4KKyAgICAgICAgQ2hh
bmluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBhY2NvcmRpbmcgdXNlck1lZGlhQWNjZXNzIHBv
bGljeToKKyAgICAgICAgLSBJZiBhY2Nlc3MgaXMgZGVuaWVkLCBmaWx0ZXJpbmcgaXMgb24uCisg
ICAgICAgIC0gSWYgYWNjZXNzIGlzIGdyYW50ZWQsIGZpbHRlcmluZyBpcyBvZmYuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0Ojp0b1dlYkNvcmUpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6dXNlck1lZGlhQWNjZXNzV2FzRGVuaWVk
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFy
YW1ldGVycyk6CisKKzIwMTctMDItMjggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgorCiAgICAgICAgIFtXZWJSVENdIExpbWl0IGxpYndlYnJ0YyBsb2dnaW5nIGluIERlYnVnIGJ1
aWxkCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5
NzQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGQ2OWIyYzliMjIxMDcz
NTk5MWY1YzViYzVhMjVjMWJmN2UxZjMxNjIuLjlmYTU5NjAxODhkMjFlN2MxOTA1OWMwYWVhMDlh
N2M3MjQ1YTk0ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ1OSw2
ICs0NTksMTMgQEAgSW50ZXJuYWxzOjpJbnRlcm5hbHMoRG9jdW1lbnQmIGRvY3VtZW50KQogI2lm
IEVOQUJMRShXRUJfUlRDKQogICAgIGVuYWJsZU1vY2tNZWRpYUVuZHBvaW50KCk7CiAgICAgdXNl
TW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeShTdHJpbmcoKSk7CisjaWYgVVNFKExJQldFQlJU
QykKKyAgICAvLyBGSVhNRTogQWRkIGFuIGludGVybmFsIEFQSSB0byBlbmFibGUvZGlzYWJsZSB0
aGlzIGZpbHRlcmluZy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjg5NzUuCisgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBkb2N1bWVudC5w
YWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpOworICAgICAgICBkb2N1bWVudC5wYWdlKCktPnJ0Y0NvbnRyb2xsZXIoKS5kaXNh
YmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmNwcAppbmRleCBhZjU4NGRjNDlmZWY5ZGU4MTJkMWVlNDVlYjY5MmI4MTNmZTFj
NzUzLi4zYmU2YTE4YjBhN2Y2NmQxMzQ3YmM3MzliYTM3ZDg0ODNkNTZlZDc1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0aWMg
dWludDY0X3QgdG9XZWJDb3JlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJN
ZWRpYUFjY2Vzc0RlbmlhbAogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFVz
ZXJNZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUpOwog
ICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFVzZXJNZWRpYVJlcXVlc3Q6Ok1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUpOwogfQpAQCAtMTY4LDYgKzE2OCwxMCBA
QCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFB
Y2Nlc3NXYXNEZW5pZWQodWludDY0X3QgdQogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuOwogCisjaWYgRU5BQkxFKFdFQl9SVEMpICYmIFVTRShMSUJXRUJSVEMpCisg
ICAgbV9wYWdlLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpFbmFibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyNlbmRpZgorCiAgICAgYXV0byBy
ZXF1ZXN0ID0gbV9wZW5kaW5nVXNlck1lZGlhUmVxdWVzdHMudGFrZSh1c2VyTWVkaWFJRCk7CiAg
ICAgaWYgKCFyZXF1ZXN0KQogICAgICAgICByZXR1cm47CkBAIC0yMDAsNiArMjA0LDEwIEBAIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vz
c1dhc0dyYW50ZWQodWludDY0X3QKICAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCiAgICAgICAg
IHJldHVybjsKIAorI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIG1f
cGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlzYWJsZUlDRUNhbmRpZGF0
ZUZpbHRlcmluZygpLCBtX3BhZ2UucGFnZUlEKCkpOworI2VuZGlmCisKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogICAgIGF1dG8gcmVxdWVzdCA9IG1fcGVuZGluZ1VzZXJNZWRpYVJlcXVlc3Rz
LnRha2UodXNlck1lZGlhSUQpOwogICAgIGlmICghcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNjM5MjM2MDI1ZTgzZWIwNTIwNGJkZTVlODhk
OTA0NjYxMmM1OTAzNC4uYTdmMzgyMmEyMTY4NDg3NDQzOGM5ZmYxMjkwOTk1ZWVjOGZkNTZiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTU1NjUsMTUg
KzU1NjUsNiBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRp
b25QYXJhbWV0ZXJzKCkKICAgICBwYXJhbWV0ZXJzLm9ic2VydmVkTGF5b3V0TWlsZXN0b25lcyA9
IG1fb2JzZXJ2ZWRMYXlvdXRNaWxlc3RvbmVzOwogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVDb250
ZW50U2VjdXJpdHlQb2xpY3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogCi0j
aWYgRU5BQkxFKFdFQl9SVEMpCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB0aWUgSUNFIGZpbHRl
cmluZyB3aXRoIGdldFVzZXJNZWRpYSBwZXJtaXNzaW9uLgotICAgIHBhcmFtZXRlcnMuZGlzYWJs
ZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyA9IHRydWU7Ci0jaWYgVVNFKExJQldFQlJUQykKLSAgICAv
LyBGSVhNRTogVHVybiBkb3duIG5ldHdvcmsgaW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1
bHQuCi0gICAgcGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
ID0gdHJ1ZTsKLSNlbmRpZgotI2VuZGlmCi0KICAgICByZXR1cm4gcGFyYW1ldGVyczsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303074</attachid>
            <date>2017-03-01 09:54:02 -0800</date>
            <delta_ts>2017-03-01 17:05:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168975-20170301095104.patch</filename>
            <type>text/plain</type>
            <size>23765</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlhYjExMzNlYzY1NDdl
MDljYWE3NmFkZjBjMzlhNjFhNWU5ZDI3Zi4uNmU5OGZhNTQ3NjVjMzk0OWZkN2MzOWIxNzEwMzU2
YjU1YjU3N2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAyLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBY3RpdmF0
ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWlj
ZS1jYW5kaWRhdGUuaHRtbAorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOiBEaXNhYmxpbmcgSUNFIGNhbmRp
ZGF0ZSBmaWx0ZXJpbmcgYnkgZGVmYXVsdCBmb3Igcnd0LgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpzZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE3LTAyLTI4
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
cmVzc2luZyBwb3N0LXJldmlldyBjb21tZW50cyBvbiByMjEzMTYzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZDQ3OWQ4YzQ5YzhlNzIyZGE1NmZjYWE0MjJhNGJhMmQ1MGMxMDA5OC4uYTY4ZDVmNjQ5NTFm
YzgyNjQ4ZGYxNWZmMWQ3YWE4ZjQ2MGJkOTM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE3LTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViUlRDXSBBY3RpdmF0ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgZW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0RW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0SWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3LTAyLTI3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmVnaW4gZW5hYmxp
bmcgV2ViUlRDIG9uIDY0LWJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU4OWY3MWI1YmYyMTMxZmI3M2VhZGVi
N2E3NjE0MzE0NzY0Y2Y2OTYuLjg5NGMyMDFlZDA0NWVjY2I2NjBiN2NkYWI5ZjYzYTI2NWQzZjY2
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0wMi0yOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gQWN0aXZhdGUgSUNFIGNh
bmRpZGF0ZSBwcml2YWN5IHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGlzYWJsaW5nIG5ldHdvcmsgZW51bWVyYXRpb24gYnkgZGVmYXVsdC4K
KyAgICAgICAgRW5hYmxpbmcgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYnkgZGVmYXVsdC4KKyAg
ICAgICAgQ2hhbmluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBhY2NvcmRpbmcgdXNlck1lZGlh
QWNjZXNzIHBvbGljeToKKyAgICAgICAgLSBJZiBhY2Nlc3MgaXMgZGVuaWVkLCBmaWx0ZXJpbmcg
aXMgb24uCisgICAgICAgIC0gSWYgYWNjZXNzIGlzIGdyYW50ZWQsIGZpbHRlcmluZyBpcyBvZmYu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0RW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcjo6d2lsbENyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmVuZGVkQ2FwdHVyZVNlc3Npb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorCiAyMDE3LTAyLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjg4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyMWU3NGYz
ZjNjYmIwN2Q1ZGU0YTNhYTU5YTdmNzkxOTA2NTgxMGY2Li4zMzk2OTBkNGViYTNlNDc3Y2M4ODQ5
ZTEwNmY2NzkxZGQzOTBkYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC00NjAsNiArNDYwLDEyIEBAIEludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVu
dCkKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBlbmFibGVNb2NrTWVkaWFFbmRwb2ludCgpOwog
ICAgIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoU3RyaW5nKCkpOworI2lmIFVTRShM
SUJXRUJSVEMpCisgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBkb2N1bWVudC5w
YWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpOworICAgICAgICBkb2N1bWVudC5wYWdlKCktPnJ0Y0NvbnRyb2xsZXIoKS5kaXNh
YmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC0xMTU3LDYgKzExNjMsMTkgQEAg
dm9pZCBJbnRlcm5hbHM6OnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoY29uc3QgU3Ry
aW5nJiB0ZXN0Q2FzZSkKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0SUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBj
b250ZXh0RG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvJiBydGNDb250cm9sbGVyID0g
cGFnZS0+cnRjQ29udHJvbGxlcigpOworICAgIGlmIChlbmFibGVkKQorICAgICAgICBydGNDb250
cm9sbGVyLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIGVsc2UKKyAgICAgICAg
cnRjQ29udHJvbGxlci5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDNkYzQ1ZjZlYjkxY2VkMTAxMTkwMTA2Mjc5MjNkODE4NTFiZGJhYjAuLmZjZjg4YjQw
YzI2YTM1NjkwODRkZGUzYzA4Y2ViYTgxYWNlZWI0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZU1vY2tS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKTsKICAgICB2b2lkIGVtdWxhdGVSVENQZWVyQ29ubmVj
dGlvblBsYXRmb3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIGFjdGlv
bik7CiAgICAgdm9pZCB1c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKGJvb2wpOwogI2VuZGlmCiAK
ICAgICBTdHJpbmcgZ2V0SW1hZ2VTb3VyY2VVUkwoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCmluZGV4IDEwMjQ4NDJmMDNjYWNjZDZlY2Q2MmNiMjg4OTI2NGNiOTQx
MjcyMGQuLjFhNTZhNGZiOTRkYzA4NDdiMTU2ZWM5OThkOTMyMjA2ZTJlOGJmNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ0MSw4ICs0NDEsMTAgQEAgZW51bSBFdmVu
dFRocm90dGxpbmdCZWhhdmlvciB7CiAgICAgW0NvbmRpdGlvbmFsPVdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVF0gdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9v
bGVhbiBlbmFibGVkKTsKICAgICBbQ29uZGl0aW9uYWw9V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
clN0YXRlKERPTVN0cmluZyBkZXZpY2VOYW1lLCBET01TdHJpbmcgZGV2aWNlU3RhdGUpOwogICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgc2V0TW9ja01lZGlhQ2FwdHVyZURldmlj
ZXNFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dm9pZCBlbXVsYXRlUlRDUGVlckNvbm5lY3Rpb25QbGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0
aW9uIGNvbm5lY3Rpb24sIERPTVN0cmluZyBhY3Rpb24pOwogICAgIFtDb25kaXRpb25hbD1XRUJf
UlRDXSB2b2lkIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoRE9NU3RyaW5nIHRlc3RD
YXNlKTsKKyAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdm9pZCBzZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoYm9vbGVhbiBlbmFibGVkKTsKIAogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBz
aW11bGF0ZVN5c3RlbVNsZWVwKCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIHNpbXVs
YXRlU3lzdGVtV2FrZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggOTgzYjUxOTYwODJkZTU4NDAxYjVmYTU4YTI3
N2RjOWIyYjZjODdiOC4uY2FhNTBmYzdkNDJiM2RlYjhjZWUwMGQzNGU0OGIzODY2OWUwZTEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0yMjEsNiArMjIxLDggQEAKICNkZWZpbmUgV2ViS2l0RW5hYmxlSW5oZXJp
dFVSSVF1ZXJ5Q29tcG9uZW50UHJlZmVyZW5jZUtleSBAIldlYktpdEVuYWJsZUluaGVyaXRVUklR
dWVyeUNvbXBvbmVudCIKICNkZWZpbmUgV2ViS2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
UHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSIKICNkZWZp
bmUgV2ViS2l0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRN
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkIgorI2RlZmluZSBXZWJLaXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0SUNFQ2FuZGlkYXRlRmls
dGVyaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b25QcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uIgogI2RlZmluZSBXZWJLaXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRJbnRlcnNl
Y3Rpb25PYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KaW5kZXggMzI0NWQ5ZGFlOGNiYWFkYjRmNTZjNGJhNzdkN2ZjNjA5NmI1NDQ3OS4uMjFhZmE0
ZDQzODYwNDcwMzdhOTUxMjcwMjA2NmFkODVjOTE3NjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0yODM0LDYgKzI4MzQsMjYgQEAgc3RhdGlj
IE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFs
dWU6ZmxhZyBmb3JLZXk6V2ViS2l0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZFByZWZlcmVuY2VL
ZXldOwogfQogCistIChCT09MKWVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVk
Cit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0RW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClz
ZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDooQk9PTClmbGFnCit7Cisg
ICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKWljZUNh
bmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZv
cktleTpXZWJLaXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKKy0gKHZvaWQpc2V0SWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDooQk9PTClmbGFnCit7
CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRJQ0VDYW5kaWRhdGVG
aWx0ZXJpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6V2ViS2l0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uUHJlZmVyZW5j
ZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCA3OTU2M2E3ZjIxYzE5ZjAzYTdhMjkzMzNhNDMzOGI3NDdiYjNkNWFlLi45
NGUyODlmNDRlMTBiZGFiY2Q5YzEyODBjMTFjNGE2MjgzMWVjZDczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQ5Niw2ICs0
OTYsMTIgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2Vk
SW50ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZDsKIAorLSAo
dm9pZClzZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDooQk9PTClmbGFn
OworLSAoQk9PTCllbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDsKKworLSAo
dm9pZClzZXRJY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOihCT09MKWZsYWc7CistIChCT09M
KWljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ7CisKIC0gKHZvaWQpc2V0TWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uOihCT09MKWZsYWc7CiAtIChCT09MKW1lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFiNDUxYjgwZDZjNjgzZjQ1
MDk2ZmUxNGY3MTc4YzUwNmI5MzU3ZDIuLjE0MjkyZjk5YTcyYmNkNzc4ZWFlOGU3MzY5NmU5NzMx
ZWZjYTYwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIuZW5jb2RlRW51bShvYnNlcnZlZExheW91dE1pbGVzdG9uZXMpOwogICAgIGVuY29kZXIgPDwg
b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAg
ZW5jb2RlciA8PCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nOworICAgIGVuY29kZXIgPDwg
aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGVu
Y29kZXIgPDwgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlczsKKyAgICBlbmNv
ZGVyIDw8IGVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkOwogI2VuZGlmCiAj
ZW5kaWYKIH0KQEAgLTIyMiwxMCArMjIyLDEwIEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggNWJlZDNmYjYxZjYzMTQyYmEyY2VlOWE4MjgyMDhhZTQ4YzJm
ODk2Zi4uMjA4MWIwNzkzMTU4NjMxOGY5NTViYWJkOTdjYzRmMWNhYjEzZDM3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0x
NDcsOSArMTQ3LDkgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFN0
cmluZyBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIAogI2lmIEVOQUJMRShXRUJfUlRD
KQotICAgIGJvb2wgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyB7IGZhbHNlIH07CisgICAg
Ym9vbCBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkIHsgdHJ1ZSB9OwogI2lmIFVTRShMSUJX
RUJSVEMpCi0gICAgYm9vbCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsg
ZmFsc2UgfTsKKyAgICBib29sIGVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVk
IHsgZmFsc2UgfTsKICNlbmRpZgogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggZDE2MTM0ZDlhMzIyOWYyOGZm
NDkyOGVjZGRkYTc0M2ViYTM1YjdmYi4uODc0MWI1ZjE4ODk3MzNkMTM3NWY1ZDAyOTFiZTBkYTRm
ZDBkNGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCkBAIC0yMjQsNiArMjI0LDggQEAKICAgICBtYWNybyhIVFRQRXF1aXZFbmFi
bGVkLCBodHRwRXF1aXZFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBt
YWNybyhNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkLCBtb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oTWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uLCBtZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24sIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAorICAgIG1hY3JvKEVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXNFbmFibGVkLCBlbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAorICAgIG1hY3JvKElDRUNhbmRp
ZGF0ZUZpbHRlcmluZ0VuYWJsZWQsIGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKFNoYWRvd0RPTUVuYWJsZWQsIHNoYWRv
d0RPTUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJTaGFkb3cgRE9NIiwgIkhUTUwgU2hhZG93
IERPTSBwcm90b3R5cGUiKSBcCiAgICAgbWFjcm8oRmV0Y2hBUElFbmFibGVkLCBmZXRjaEFQSUVu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZCwgZG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkLCBCb29sLCBib29sLCB0cnVl
LCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCAxMzk5MWYxOTFlOTJkMzk1M2NiZmIxYjZlZjk5NWFjNTIxODRjZmZk
Li5iNTRiMTFjMWI1ZGIxODUxYzA3N2NlNTk5YmEwOWRmOTkyOTExYmJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTQxLDYg
KzE1NDEsMjYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQ
cmVmZXJlbmNlc1NldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jv
b2wgV0tQcmVmZXJlbmNlc0dldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCgpOworfQorCit2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQoZW5h
YmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEVudW1lcmF0aW5nQWxsTmV0d29ya0lu
dGVyZmFjZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAg
cmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXNFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGVuYWJsZWQpCiB7CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0TWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRl
eCAzYzc3NTNlYjFjZGU5NTM5N2NjNWYzOTg4ODI5OTQ2MGM3NTMyNmI3Li5jNjMxOGZmYjZhODJk
NDc3NjI1NjQ5YWUxMjNiMmEyNWIwMzA3NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDIyLDYg
KzQyMiwxNCBAQCBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKQogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAK
IC8vIERlZmF1bHRzIHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SUNF
Q2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VY
UE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYpOworCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
KworLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV0tQcmVmZXJlbmNlc1JlZiwgYm9v
bCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKFdLUHJlZmVyZW5jZXNSZWYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAppbmRleCBhZjU4NGRjNDlmZWY5ZGU4MTJkMWVlNDVlYjY5MmI4MTNm
ZTFjNzUzLi45MWRlNTJiN2VhNDRiOTdiNTI1ODJhMWY1NTVlZjNmODJkNmFjNTUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0
aWMgdWludDY0X3QgdG9XZWJDb3JlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbAogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KFVzZXJNZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUp
OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFVzZXJNZWRpYVJlcXVlc3Q6Ok1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUpOwogfQpAQCAtMjAwLDYgKzIwMCwx
MCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojp1c2VyTWVk
aWFBY2Nlc3NXYXNHcmFudGVkKHVpbnQ2NF90CiAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykgJiYgVVNFKExJQldFQlJUQykK
KyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpc2FibGVJQ0VD
YW5kaWRhdGVGaWx0ZXJpbmcoKSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyNlbmRpZgorCiAjaWYgRU5B
QkxFKE1FRElBX1NUUkVBTSkKICAgICBhdXRvIHJlcXVlc3QgPSBtX3BlbmRpbmdVc2VyTWVkaWFS
ZXF1ZXN0cy50YWtlKHVzZXJNZWRpYUlEKTsKICAgICBpZiAoIXJlcXVlc3QpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcAppbmRl
eCBhMGFmODVmNmVmYzIyODQ0NGQzZWY1ZjU1NzcwMmEyNWI1M2RhYjQzLi5lOWQ4YzdjZjFmMWNl
NDBlN2QzZGY2MjgxOTM4NWEwMzUwOTc5MDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKQEAgLTE1Myw2ICsxNTMsMTAg
QEAgdm9pZCBVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6d2lsbENyZWF0ZU1lZGlhU3RyZWFtKFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWEKICAgICAgICAgcHJveHkucGFnZSgpLnByb2Nlc3Mo
KS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHcmFudFVzZXJNZWRpYURldmljZVNhbmRib3hFeHRl
bnNpb25zKE1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMoaWRzLCBXVEZNb3ZlKGhhbmRsZXMp
KSksIHByb3h5LnBhZ2UoKS5wYWdlSUQoKSk7CiAgICAgfQogI2VuZGlmCisjaWYgRU5BQkxFKFdF
Ql9SVEMpICYmIFVTRShMSUJXRUJSVEMpCisgICAgaWYgKGN1cnJlbnRFeHRlbnNpb25zID09IFBy
b2Nlc3NTdGF0ZTo6U2FuZGJveEV4dGVuc2lvbnNHcmFudGVkOjpOb25lKQorICAgICAgICBwcm94
eS5wYWdlKCkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpc2FibGVJQ0VDYW5k
aWRhdGVGaWx0ZXJpbmcoKSwgcHJveHkucGFnZSgpLnBhZ2VJRCgpKTsKKyNlbmRpZgogfQogCiB2
b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjpzdGFydGVkQ2FwdHVyZVNlc3Npb24oVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkmIHByb3h5KQpAQCAtMTkyLDYgKzE5Niwx
MSBAQCB2b2lkIFVzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyOjplbmRlZENhcHR1cmVTZXNzaW9uKFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIGlmIChwYXJhbXMuaXNFbXB0eSgpKQog
ICAgICAgICByZXR1cm47CiAKKyNpZiBFTkFCTEUoV0VCX1JUQykgJiYgVVNFKExJQldFQlJUQykK
KyAgICBpZiAocHJveHkucGFnZSgpLnByZWZlcmVuY2VzKCkuaWNlQ2FuZGlkYXRlRmlsdGVyaW5n
RW5hYmxlZCgpKQorICAgICAgICBwcm94eS5wYWdlKCkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBwcm94eS5wYWdlKCkucGFn
ZUlEKCkpOworI2VuZGlmCisKICAgICBzdGF0ZS5zZXRTYW5kYm94RXh0ZW5zaW9uc0dyYW50ZWQo
Y3VycmVudEV4dGVuc2lvbnMpOwogICAgIHByb3h5LnBhZ2UoKS5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6UmV2b2tlVXNlck1lZGlhRGV2aWNlU2FuZGJveEV4dGVuc2lvbnMocGFy
YW1zKSwgcHJveHkucGFnZSgpLnBhZ2VJRCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5YzdmZDRkZmEyZDM4ZDBkNzdiNjQwYjgzYmQx
ZjM1N2VmYjVlNmI0Li5hNjgyZTgyNzliNjEzYjRjZmFlOWIyNDE4OGIxYjU4MjVlNGQ4MmQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNTU2NiwxMSAr
NTU2Niw5IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlv
blBhcmFtZXRlcnMoKQogICAgIHBhcmFtZXRlcnMub3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xp
Y3kgPSBtX292ZXJyaWRlQ29udGVudFNlY3VyaXR5UG9saWN5OwogCiAjaWYgRU5BQkxFKFdFQl9S
VEMpCi0gICAgLy8gRklYTUU6IFdlIHNob3VsZCB0aWUgSUNFIGZpbHRlcmluZyB3aXRoIGdldFVz
ZXJNZWRpYSBwZXJtaXNzaW9uLgotICAgIHBhcmFtZXRlcnMuZGlzYWJsZUlDRUNhbmRpZGF0ZUZp
bHRlcmluZyA9IHRydWU7CisgICAgcGFyYW1ldGVycy5pY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFi
bGVkID0gbV9wcmVmZXJlbmNlcy0+aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCgpOwogI2lm
IFVTRShMSUJXRUJSVEMpCi0gICAgLy8gRklYTUU6IFR1cm4gZG93biBuZXR3b3JrIGludGVyZmFj
ZSBlbnVtZXJhdGlvbiBieSBkZWZhdWx0LgotICAgIHBhcmFtZXRlcnMuZW5hYmxlRW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlcyA9IHRydWU7CisgICAgcGFyYW1ldGVycy5lbnVtZXJhdGlu
Z0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCA9IG1fcHJlZmVyZW5jZXMtPmVudW1lcmF0aW5n
QWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkKCk7CiAjZW5kaWYKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzJmMjU0YTQz
NzQ5ZTJmZTExMmIzZTJkNDhjNzcxMWMwNjFjMGJhYy4uMmJlOTg0NjBhZmFlNjM2OTI1ZjE4MmRi
ODEzZDA3NTVjZTljZTUwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNTUzLDEwICs1NTMsMTAgQEAgV2ViUGFnZTo6V2ViUGFnZSh1aW50
NjRfdCBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoV0VCX1JUQykKLSAgICBpZiAocGFyYW1ldGVycy5kaXNhYmxlSUNF
Q2FuZGlkYXRlRmlsdGVyaW5nKQorICAgIGlmICghcGFyYW1ldGVycy5pY2VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKQogICAgICAgICBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CiAj
aWYgVVNFKExJQldFQlJUQykKLSAgICBpZiAocGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzKQorICAgIGlmIChwYXJhbWV0ZXJzLmVudW1lcmF0aW5nQWxsTmV0
d29ya0ludGVyZmFjZXNFbmFibGVkKQogICAgICAgICBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdv
cmtJbnRlcmZhY2VzKCk7CiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExNmUwY2E1OGVhOWJjOTQ5
MGE2NTMwNWYxYWM3MGNmMTcwODAzMmQuLjIzZWQ1NWIyYTc2ZWNkNDExM2I5ODUzNzFjOWU3MGQz
MGVjZjczZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wMy0wMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gQWN0aXZhdGUgSUNFIGNh
bmRpZGF0ZSBwcml2YWN5IHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWljZS1jYW5kaWRhdGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVy
LWljZS1jYW5kaWRhdGUuaHRtbDogQWRkZWQuCisKIDIwMTctMDItMjggIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjLXdrMV0gTGF5b3V0VGVzdCBtZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtY29udGFpbmVycy1zdHlsZXMu
aHRtbCBpcyBhIGZsYWt5IHRpbWVvdXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9k
YXRhY2hhbm5lbC9maWx0ZXItaWNlLWNhbmRpZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWljZS1jYW5kaWRhdGUtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjlhZGM4MWRiOTJkOGYzNDJlYzcwNmJkNzg3MDU1ZTg3OTY4OTc5YWMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWljZS1j
YW5kaWRhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIEdhdGhlcmluZyBJ
Q0UgY2FuZGlkYXRlcyBmcm9tIGEgZGF0YSBjaGFubmVsIHBlZXIgY29ubmVjdGlvbiB3aXRoIElD
RSBjYW5kaWRhdGUgZmlsdGVyaW5nIG9mZiAKK1BBU1MgR2F0aGVyaW5nIElDRSBjYW5kaWRhdGVz
IGZyb20gYSBkYXRhIGNoYW5uZWwgcGVlciBjb25uZWN0aW9uIHdpdGggSUNFIGNhbmRpZGF0ZSBm
aWx0ZXJpbmcgb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5l
bC9maWx0ZXItaWNlLWNhbmRpZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFu
bmVsL2ZpbHRlci1pY2UtY2FuZGlkYXRlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2NlNDM0Mzc0YzUzNDk2
NDM3ZjNlNTI3MmFlNTBjMjUxZGRmNjBmOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3dlYnJ0Yy9kYXRhY2hhbm5lbC9maWx0ZXItaWNlLWNhbmRpZGF0ZS5odG1sCkBAIC0wLDAgKzEs
NjEgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgIDxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+VGVzdGluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyB3
aGVuIHVzaW5nIGRhdGEgY2hhbm5lbDwvdGl0bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgIDwvaGVhZD4KKyAg
PGJvZHk+CisgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4geworICAgICAgICB2YXIgY291bnRl
ciA9IDA7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICBpbnRl
cm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSgiT25lUmVhbFBlZXJDb25uZWN0
aW9uIik7CisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKGZh
bHNlKTsKKyAgICAgICAgfQorICAgICAgICB2YXIgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgICAgICAgcGMuY3JlYXRlRGF0YUNoYW5uZWwoJ3NlbmREYXRhQ2hhbm5lbCcpOworICAg
ICAgICBwYy5vbmljZWNhbmRpZGF0ZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2
ZW50LmNhbmRpZGF0ZSkgeworICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY291bnRlciAhPT0g
MCkKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgcmVqZWN0KCJIb3N0IGNhbmRpZGF0ZXMgc2hvdWxkIGJlIGZvdW5kIik7CisgICAg
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMu
c2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKHRydWUpOworICAgICAgICAgICAgcmVzb2x2ZSgpOwor
ICAgICAgICB9OworICAgICAgICBwYy5jcmVhdGVPZmZlcigpLnRoZW4oKG9mZmVyKSA9PiB7IHBj
LnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOyB9KTsKKyAgICB9KQorfSwgIkdhdGhlcmluZyBJ
Q0UgY2FuZGlkYXRlcyBmcm9tIGEgZGF0YSBjaGFubmVsIHBlZXIgY29ubmVjdGlvbiB3aXRoIElD
RSBjYW5kaWRhdGUgZmlsdGVyaW5nIG9mZiIpOworCitwcm9taXNlX3Rlc3QoZnVuY3Rpb24oKSB7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKKyAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMudXNlTW9ja1JUQ1Bl
ZXJDb25uZWN0aW9uRmFjdG9yeSgiT25lUmVhbFBlZXJDb25uZWN0aW9uIik7CisgICAgICAgIHZh
ciBjb3VudGVyID0gMDsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAg
ICBpbnRlcm5hbHMudXNlTW9ja1JUQ1BlZXJDb25uZWN0aW9uRmFjdG9yeSgiT25lUmVhbFBlZXJD
b25uZWN0aW9uIik7CisgICAgICAgIHZhciBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgICAgICBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgnc2VuZERhdGFDaGFubmVsJyk7CisgICAgICAg
IHBjLm9uaWNlY2FuZGlkYXRlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7CisgICAgICAgICAgICAgICAgY291bnRlcisrOworICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIChjb3VudGVyID09PSAwKQor
ICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICByZWplY3QoIk5vIGNhbmRpZGF0ZSBzaG91bGQgYmUgZm91bmQiKTsKKyAgICAgICAgfTsK
KyAgICAgICAgcGMuY3JlYXRlT2ZmZXIoKS50aGVuKChvZmZlcikgPT4geyBwYy5zZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKTsgfSk7CisgICAgfSk7Cit9LCAiR2F0aGVyaW5nIElDRSBjYW5kaWRh
dGVzIGZyb20gYSBkYXRhIGNoYW5uZWwgcGVlciBjb25uZWN0aW9uIHdpdGggSUNFIGNhbmRpZGF0
ZSBmaWx0ZXJpbmcgb24iKTsKKyAgICA8L3NjcmlwdD4KKyAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>303143</attachid>
            <date>2017-03-01 17:05:17 -0800</date>
            <delta_ts>2017-03-02 08:23:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168975-20170301170516.patch</filename>
            <type>text/plain</type>
            <size>23392</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEzMjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjlhYjExMzNlYzY1NDdl
MDljYWE3NmFkZjBjMzlhNjFhNWU5ZDI3Zi4uNmU5OGZhNTQ3NjVjMzk0OWZkN2MzOWIxNzEwMzU2
YjU1YjU3N2FhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE3LTAyLTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBY3RpdmF0
ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiB3ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWlj
ZS1jYW5kaWRhdGUuaHRtbAorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpJbnRlcm5hbHMpOiBEaXNhYmxpbmcgSUNFIGNhbmRp
ZGF0ZSBmaWx0ZXJpbmcgYnkgZGVmYXVsdCBmb3Igcnd0LgorICAgICAgICAoV2ViQ29yZTo6SW50
ZXJuYWxzOjpzZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpOgorICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDE3LTAyLTI4
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
cmVzc2luZyBwb3N0LXJldmlldyBjb21tZW50cyBvbiByMjEzMTYzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5k
ZXggZDQ3OWQ4YzQ5YzhlNzIyZGE1NmZjYWE0MjJhNGJhMmQ1MGMxMDA5OC4uYTY4ZDVmNjQ5NTFm
YzgyNjQ4ZGYxNWZmMWQ3YWE4ZjQ2MGJkOTM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDE3LTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbV2ViUlRDXSBBY3RpdmF0ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgZW51bWVyYXRpbmdBbGxOZXR3b3Jr
SW50ZXJmYWNlc0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0RW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0SWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDpdKToKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorCiAyMDE3LTAyLTI3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmVnaW4gZW5hYmxp
bmcgV2ViUlRDIG9uIDY0LWJpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU4OWY3MWI1YmYyMTMxZmI3M2VhZGVi
N2E3NjE0MzE0NzY0Y2Y2OTYuLjg5NGMyMDFlZDA0NWVjY2I2NjBiN2NkYWI5ZjYzYTI2NWQzZjY2
MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxNy0wMi0yOCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYlJUQ10gQWN0aXZhdGUgSUNFIGNh
bmRpZGF0ZSBwcml2YWN5IHBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY4OTc1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRGlzYWJsaW5nIG5ldHdvcmsgZW51bWVyYXRpb24gYnkgZGVmYXVsdC4K
KyAgICAgICAgRW5hYmxpbmcgSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgYnkgZGVmYXVsdC4KKyAg
ICAgICAgQ2hhbmluZyBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBhY2NvcmRpbmcgdXNlck1lZGlh
QWNjZXNzIHBvbGljeToKKyAgICAgICAgLSBJZiBhY2Nlc3MgaXMgZGVuaWVkLCBmaWx0ZXJpbmcg
aXMgb24uCisgICAgICAgIC0gSWYgYWNjZXNzIGlzIGdyYW50ZWQsIGZpbHRlcmluZyBpcyBvZmYu
CisKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICog
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZCk6CisgICAgICAgIChXS1ByZWZlcmVuY2VzR2V0RW51bWVy
YXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUmVmUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Vc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OnRvV2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5Ojp1c2VyTWVkaWFBY2Nlc3NXYXNHcmFudGVkKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQcm9jZXNzTWFuYWdlcjo6d2lsbENyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmVuZGVkQ2FwdHVyZVNlc3Npb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorCiAyMDE3LTAyLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjg4OTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAyMWU3NGYz
ZjNjYmIwN2Q1ZGU0YTNhYTU5YTdmNzkxOTA2NTgxMGY2Li4zMzk2OTBkNGViYTNlNDc3Y2M4ODQ5
ZTEwNmY2NzkxZGQzOTBkYzRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC00NjAsNiArNDYwLDEyIEBAIEludGVybmFsczo6SW50ZXJuYWxzKERvY3VtZW50JiBkb2N1bWVu
dCkKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBlbmFibGVNb2NrTWVkaWFFbmRwb2ludCgpOwog
ICAgIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoU3RyaW5nKCkpOworI2lmIFVTRShM
SUJXRUJSVEMpCisgICAgaWYgKGRvY3VtZW50LnBhZ2UoKSkgeworICAgICAgICBkb2N1bWVudC5w
YWdlKCktPmxpYldlYlJUQ1Byb3ZpZGVyKCkuZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50
ZXJmYWNlcygpOworICAgICAgICBkb2N1bWVudC5wYWdlKCktPnJ0Y0NvbnRyb2xsZXIoKS5kaXNh
YmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7CisgICAgfQorI2VuZGlmCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC0xMTU3LDYgKzExNjMsMTkgQEAg
dm9pZCBJbnRlcm5hbHM6OnVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoY29uc3QgU3Ry
aW5nJiB0ZXN0Q2FzZSkKICNlbmRpZgogfQogCit2b2lkIEludGVybmFsczo6c2V0SUNFQ2FuZGlk
YXRlRmlsdGVyaW5nKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBj
b250ZXh0RG9jdW1lbnQoKTsKKyAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybjsKKyAgICBhdXRvJiBydGNDb250cm9sbGVyID0g
cGFnZS0+cnRjQ29udHJvbGxlcigpOworICAgIGlmIChlbmFibGVkKQorICAgICAgICBydGNDb250
cm9sbGVyLmVuYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpOworICAgIGVsc2UKKyAgICAgICAg
cnRjQ29udHJvbGxlci5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKCk7Cit9CisKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDNkYzQ1ZjZlYjkxY2VkMTAxMTkwMTA2Mjc5MjNkODE4NTFiZGJhYjAuLmZjZjg4YjQw
YzI2YTM1NjkwODRkZGUzYzA4Y2ViYTgxYWNlZWI0YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtMzk5LDYgKzM5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGVuYWJsZU1vY2tS
VENQZWVyQ29ubmVjdGlvbkhhbmRsZXIoKTsKICAgICB2b2lkIGVtdWxhdGVSVENQZWVyQ29ubmVj
dGlvblBsYXRmb3JtRXZlbnQoUlRDUGVlckNvbm5lY3Rpb24mLCBjb25zdCBTdHJpbmcmIGFjdGlv
bik7CiAgICAgdm9pZCB1c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KGNvbnN0IFN0cmlu
ZyYpOworICAgIHZvaWQgc2V0SUNFQ2FuZGlkYXRlRmlsdGVyaW5nKGJvb2wpOwogI2VuZGlmCiAK
ICAgICBTdHJpbmcgZ2V0SW1hZ2VTb3VyY2VVUkwoRWxlbWVudCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCmluZGV4IDEwMjQ4NDJmMDNjYWNjZDZlY2Q2MmNiMjg4OTI2NGNiOTQx
MjcyMGQuLjFhNTZhNGZiOTRkYzA4NDdiMTU2ZWM5OThkOTMyMjA2ZTJlOGJmNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ0MSw4ICs0NDEsMTAgQEAgZW51bSBFdmVu
dFRocm90dGxpbmdCZWhhdmlvciB7CiAgICAgW0NvbmRpdGlvbmFsPVdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVF0gdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9v
bGVhbiBlbmFibGVkKTsKICAgICBbQ29uZGl0aW9uYWw9V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VU
LCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tl
clN0YXRlKERPTVN0cmluZyBkZXZpY2VOYW1lLCBET01TdHJpbmcgZGV2aWNlU3RhdGUpOwogICAg
IFtDb25kaXRpb25hbD1NRURJQV9TVFJFQU1dIHZvaWQgc2V0TW9ja01lZGlhQ2FwdHVyZURldmlj
ZXNFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CisKICAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10g
dm9pZCBlbXVsYXRlUlRDUGVlckNvbm5lY3Rpb25QbGF0Zm9ybUV2ZW50KFJUQ1BlZXJDb25uZWN0
aW9uIGNvbm5lY3Rpb24sIERPTVN0cmluZyBhY3Rpb24pOwogICAgIFtDb25kaXRpb25hbD1XRUJf
UlRDXSB2b2lkIHVzZU1vY2tSVENQZWVyQ29ubmVjdGlvbkZhY3RvcnkoRE9NU3RyaW5nIHRlc3RD
YXNlKTsKKyAgICBbQ29uZGl0aW9uYWw9V0VCX1JUQ10gdm9pZCBzZXRJQ0VDYW5kaWRhdGVGaWx0
ZXJpbmcoYm9vbGVhbiBlbmFibGVkKTsKIAogICAgIFtDb25kaXRpb25hbD1WSURFT10gdm9pZCBz
aW11bGF0ZVN5c3RlbVNsZWVwKCk7CiAgICAgW0NvbmRpdGlvbmFsPVZJREVPXSB2b2lkIHNpbXVs
YXRlU3lzdGVtV2FrZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggOTgzYjUxOTYwODJkZTU4NDAxYjVmYTU4YTI3
N2RjOWIyYjZjODdiOC4uY2FhNTBmYzdkNDJiM2RlYjhjZWUwMGQzNGU0OGIzODY2OWUwZTEyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCkBAIC0yMjEsNiArMjIxLDggQEAKICNkZWZpbmUgV2ViS2l0RW5hYmxlSW5oZXJp
dFVSSVF1ZXJ5Q29tcG9uZW50UHJlZmVyZW5jZUtleSBAIldlYktpdEVuYWJsZUluaGVyaXRVUklR
dWVyeUNvbXBvbmVudCIKICNkZWZpbmUgV2ViS2l0TWVkaWFEYXRhTG9hZHNBdXRvbWF0aWNhbGx5
UHJlZmVyZW5jZUtleSBAIldlYktpdE1lZGlhRGF0YUxvYWRzQXV0b21hdGljYWxseSIKICNkZWZp
bmUgV2ViS2l0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRN
b2NrQ2FwdHVyZURldmljZXNFbmFibGVkIgorI2RlZmluZSBXZWJLaXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRFbnVtZXJhdGluZ0Fs
bE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0SUNFQ2FuZGlkYXRlRmls
dGVyaW5nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdF
bmFibGVkIgogI2RlZmluZSBXZWJLaXRNZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b25QcmVmZXJlbmNlS2V5IEAiV2ViS2l0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0
aW9uIgogI2RlZmluZSBXZWJLaXRBdHRhY2htZW50RWxlbWVudEVuYWJsZWRQcmVmZXJlbmNlS2V5
IEAiV2ViS2l0QXR0YWNobWVudEVsZW1lbnRFbmFibGVkIgogI2RlZmluZSBXZWJLaXRJbnRlcnNl
Y3Rpb25PYnNlcnZlckVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0SW50ZXJzZWN0aW9uT2Jz
ZXJ2ZXJFbmFibGVkIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMu
bW0KaW5kZXggMzI0NWQ5ZGFlOGNiYWFkYjRmNTZjNGJhNzdkN2ZjNjA5NmI1NDQ3OS4uMjFhZmE0
ZDQzODYwNDcwMzdhOTUxMjcwMjA2NmFkODVjOTE3NjAzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0yODM0LDYgKzI4MzQsMjYgQEAgc3RhdGlj
IE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFs
dWU6ZmxhZyBmb3JLZXk6V2ViS2l0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZFByZWZlcmVuY2VL
ZXldOwogfQogCistIChCT09MKWVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVk
Cit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0RW51bWVyYXRpbmdB
bGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKK30KKworLSAodm9pZClz
ZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDooQk9PTClmbGFnCit7Cisg
ICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRFbnVtZXJhdGluZ0FsbE5l
dHdvcmtJbnRlcmZhY2VzRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistIChCT09MKWljZUNh
bmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZv
cktleTpXZWJLaXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CisKKy0gKHZvaWQpc2V0SWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDooQk9PTClmbGFnCit7
CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRJQ0VDYW5kaWRhdGVG
aWx0ZXJpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKEJPT0wpbWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uCiB7CiAgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVG
b3JLZXk6V2ViS2l0TWVkaWFDYXB0dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uUHJlZmVyZW5j
ZUtleV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAppbmRleCA3OTU2M2E3ZjIxYzE5ZjAzYTdhMjkzMzNhNDMzOGI3NDdiYjNkNWFlLi45
NGUyODlmNDRlMTBiZGFiY2Q5YzEyODBjMTFjNGE2MjgzMWVjZDczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQ5Niw2ICs0
OTYsMTIgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NhY2hlTW9kZWxDaGFuZ2Vk
SW50ZXJuYWxOb3RpZmljYXRpb247CiAtICh2b2lkKXNldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJs
ZWQ6KEJPT0wpZmxhZzsKIC0gKEJPT0wpbW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxlZDsKIAorLSAo
dm9pZClzZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDooQk9PTClmbGFn
OworLSAoQk9PTCllbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZDsKKworLSAo
dm9pZClzZXRJY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkOihCT09MKWZsYWc7CistIChCT09M
KWljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQ7CisKIC0gKHZvaWQpc2V0TWVkaWFDYXB0dXJl
UmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uOihCT09MKWZsYWc7CiAtIChCT09MKW1lZGlhQ2FwdHVy
ZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IGFiNDUxYjgwZDZjNjgzZjQ1
MDk2ZmUxNGY3MTc4YzUwNmI5MzU3ZDIuLjE0MjkyZjk5YTcyYmNkNzc4ZWFlOGU3MzY5NmU5NzMx
ZWZjYTYwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5jcHAKQEAgLTk0LDkgKzk0LDkgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIuZW5jb2RlRW51bShvYnNlcnZlZExheW91dE1pbGVzdG9uZXMpOwogICAgIGVuY29kZXIgPDwg
b3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQb2xpY3k7CiAjaWYgRU5BQkxFKFdFQl9SVEMpCi0gICAg
ZW5jb2RlciA8PCBkaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nOworICAgIGVuY29kZXIgPDwg
aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZDsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGVu
Y29kZXIgPDwgZW5hYmxlRW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlczsKKyAgICBlbmNv
ZGVyIDw8IGVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkOwogI2VuZGlmCiAj
ZW5kaWYKIH0KQEAgLTIyMiwxMCArMjIyLDEwIEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgV2ViUGFnZUNyZWF0aW9uUGFyCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocGFyYW1ldGVycy5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuaWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5h
YmxlZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJ
bnRlcmZhY2VzKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZW51bWVyYXRp
bmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAj
ZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmgKaW5kZXggNWJlZDNmYjYxZjYzMTQyYmEyY2VlOWE4MjgyMDhhZTQ4YzJm
ODk2Zi4uMjA4MWIwNzkzMTU4NjMxOGY5NTViYWJkOTdjYzRmMWNhYjEzZDM3MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0x
NDcsOSArMTQ3LDkgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIFN0
cmluZyBvdmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeTsKIAogI2lmIEVOQUJMRShXRUJfUlRD
KQotICAgIGJvb2wgZGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZyB7IGZhbHNlIH07CisgICAg
Ym9vbCBpY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkIHsgdHJ1ZSB9OwogI2lmIFVTRShMSUJX
RUJSVEMpCi0gICAgYm9vbCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzIHsg
ZmFsc2UgfTsKKyAgICBib29sIGVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVk
IHsgZmFsc2UgfTsKICNlbmRpZgogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggZDE2MTM0ZDlhMzIyOWYyOGZm
NDkyOGVjZGRkYTc0M2ViYTM1YjdmYi4uODc0MWI1ZjE4ODk3MzNkMTM3NWY1ZDAyOTFiZTBkYTRm
ZDBkNGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
RGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZpbml0aW9ucy5oCkBAIC0yMjQsNiArMjI0LDggQEAKICAgICBtYWNybyhIVFRQRXF1aXZFbmFi
bGVkLCBodHRwRXF1aXZFbmFibGVkLCBCb29sLCBib29sLCB0cnVlLCAiIiwgIiIpIFwKICAgICBt
YWNybyhNb2NrQ2FwdHVyZURldmljZXNFbmFibGVkLCBtb2NrQ2FwdHVyZURldmljZXNFbmFibGVk
LCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oTWVkaWFDYXB0dXJlUmVx
dWlyZXNTZWN1cmVDb25uZWN0aW9uLCBtZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rp
b24sIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAorICAgIG1hY3JvKEVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXNFbmFibGVkLCBlbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UsICIiLCAiIikgXAorICAgIG1hY3JvKElDRUNhbmRp
ZGF0ZUZpbHRlcmluZ0VuYWJsZWQsIGljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQsIEJvb2ws
IGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKFNoYWRvd0RPTUVuYWJsZWQsIHNoYWRv
d0RPTUVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICJTaGFkb3cgRE9NIiwgIkhUTUwgU2hhZG93
IERPTSBwcm90b3R5cGUiKSBcCiAgICAgbWFjcm8oRmV0Y2hBUElFbmFibGVkLCBmZXRjaEFQSUVu
YWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAogICAgIG1hY3JvKERvd25sb2FkQXR0
cmlidXRlRW5hYmxlZCwgZG93bmxvYWRBdHRyaWJ1dGVFbmFibGVkLCBCb29sLCBib29sLCB0cnVl
LCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcAppbmRleCAxMzk5MWYxOTFlOTJkMzk1M2NiZmIxYjZlZjk5NWFjNTIxODRjZmZk
Li5iNTRiMTFjMWI1ZGIxODUxYzA3N2NlNTk5YmEwOWRmOTkyOTExYmJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xNTQxLDYg
KzE1NDEsMjYgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TW9ja0NhcHR1cmVEZXZpY2VzRW5hYmxl
ZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQogICAgIHJldHVybiB0b0ltcGwocHJl
ZmVyZW5jZXNSZWYpLT5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCk7CiB9CiAKK3ZvaWQgV0tQ
cmVmZXJlbmNlc1NldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJlbmNlc1Jl
ZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jv
b2wgV0tQcmVmZXJlbmNlc0dldElDRUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sKKyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2Vz
UmVmKS0+aWNlQ2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZCgpOworfQorCit2b2lkIFdLUHJlZmVy
ZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChXS1ByZWZlcmVu
Y2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQpCit7CisgICAgdG9JbXBsKHByZWZl
cmVuY2VzUmVmKS0+c2V0RW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQoZW5h
YmxlZCk7Cit9CisKK2Jvb2wgV0tQcmVmZXJlbmNlc0dldEVudW1lcmF0aW5nQWxsTmV0d29ya0lu
dGVyZmFjZXNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAg
cmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVy
ZmFjZXNFbmFibGVkKCk7Cit9CisKIHZvaWQgV0tQcmVmZXJlbmNlc1NldE1lZGlhQ2FwdHVyZVJl
cXVpcmVzU2VjdXJlQ29ubmVjdGlvbihXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBi
b29sIGVuYWJsZWQpCiB7CiAgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0TWVkaWFDYXB0
dXJlUmVxdWlyZXNTZWN1cmVDb25uZWN0aW9uKGVuYWJsZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAppbmRl
eCAzYzc3NTNlYjFjZGU5NTM5N2NjNWYzOTg4ODI5OTQ2MGM3NTMyNmI3Li5jNjMxOGZmYjZhODJk
NDc3NjI1NjQ5YWUxMjNiMmEyNWIwMzA3NTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtNDIyLDYg
KzQyMiwxNCBAQCBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0TW9ja0NhcHR1cmVEZXZp
Y2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKQogV0tfRVhQT1JUIGJvb2wgV0tQcmVm
ZXJlbmNlc0dldE1vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZik7CiAK
IC8vIERlZmF1bHRzIHRvIHRydWUuCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0SUNF
Q2FuZGlkYXRlRmlsdGVyaW5nRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VY
UE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYpOworCisvLyBEZWZhdWx0cyB0byBmYWxzZS4KK1dLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmLCBib29sKTsKK1dLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRF
bnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmKTsK
KworLy8gRGVmYXVsdHMgdG8gdHJ1ZS4KIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRN
ZWRpYUNhcHR1cmVSZXF1aXJlc1NlY3VyZUNvbm5lY3Rpb24oV0tQcmVmZXJlbmNlc1JlZiwgYm9v
bCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TWVkaWFDYXB0dXJlUmVxdWlyZXNT
ZWN1cmVDb25uZWN0aW9uKFdLUHJlZmVyZW5jZXNSZWYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcAppbmRleCBhZjU4NGRjNDlmZWY5ZGU4MTJkMWVlNDVlYjY5MmI4MTNm
ZTFjNzUzLi4zOWM5MmM0OTZhZjAxYjEwMmFmYzFmZDY0M2VkYTE3NmZkMWYzODU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBzdGF0
aWMgdWludDY0X3QgdG9XZWJDb3JlKFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbAogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+
KFVzZXJNZWRpYVJlcXVlc3Q6Ok1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUp
OwogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dWludDY0X3Q+KFVzZXJNZWRpYVJlcXVlc3Q6Ok1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Vc2VyTWVkaWFQcm9jZXNzTWFuYWdlci5jcHAKaW5kZXggYTBh
Zjg1ZjZlZmMyMjg0NDRkM2VmNWY1NTc3MDJhMjViNTNkYWI0My4uYWMyMjIyYzc4ZWU2Yzk3ZTky
ZjlkNDM2YTIyODU5ZGRjNzM1ZGIyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1VzZXJNZWRpYVByb2Nlc3NNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvVXNlck1lZGlhUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0xMjgsNiArMTI4LDEyIEBAIHZv
aWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OndpbGxDcmVhdGVNZWRpYVN0cmVhbShVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hCiAgICAgfQogCiAgICAgdW5zaWduZWQgY3VycmVudEV4dGVu
c2lvbnMgPSBzdGF0ZS5zYW5kYm94RXh0ZW5zaW9uc0dyYW50ZWQoKTsKKworI2lmIEVOQUJMRShX
RUJfUlRDKSAmJiBVU0UoTElCV0VCUlRDKQorICAgIGlmIChjdXJyZW50RXh0ZW5zaW9ucyA9PSBQ
cm9jZXNzU3RhdGU6OlNhbmRib3hFeHRlbnNpb25zR3JhbnRlZDo6Tm9uZSAmJiAod2l0aEF1ZGlv
IHx8IHdpdGhWaWRlbykpCisgICAgICAgIHByb3h5LnBhZ2UoKS5wcm9jZXNzKCkuc2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGlzYWJsZUlDRUNhbmRpZGF0ZUZpbHRlcmluZygpLCBwcm94eS5wYWdl
KCkucGFnZUlEKCkpOworI2VuZGlmCisKICAgICBpZiAoIShyZXF1aXJlZEV4dGVuc2lvbnMgJiBj
dXJyZW50RXh0ZW5zaW9ucykpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJy
YXkgaGFuZGxlczsKICAgICAgICAgaGFuZGxlcy5hbGxvY2F0ZShleHRlbnNpb25Db3VudCk7CkBA
IC0xOTIsNiArMTk4LDExIEBAIHZvaWQgVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OmVuZGVkQ2Fw
dHVyZVNlc3Npb24oVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hCiAgICAgaWYgKHBhcmFt
cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIEVOQUJMRShXRUJfUlRDKSAmJiBV
U0UoTElCV0VCUlRDKQorICAgIGlmIChjdXJyZW50RXh0ZW5zaW9ucyA9PSBQcm9jZXNzU3RhdGU6
OlNhbmRib3hFeHRlbnNpb25zR3JhbnRlZDo6Tm9uZSAmJiBwcm94eS5wYWdlKCkucHJlZmVyZW5j
ZXMoKS5pY2VDYW5kaWRhdGVGaWx0ZXJpbmdFbmFibGVkKCkpCisgICAgICAgIHByb3h5LnBhZ2Uo
KS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RW5hYmxlSUNFQ2FuZGlkYXRlRmls
dGVyaW5nKCksIHByb3h5LnBhZ2UoKS5wYWdlSUQoKSk7CisjZW5kaWYKKwogICAgIHN0YXRlLnNl
dFNhbmRib3hFeHRlbnNpb25zR3JhbnRlZChjdXJyZW50RXh0ZW5zaW9ucyk7CiAgICAgcHJveHku
cGFnZSgpLnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpSZXZva2VVc2VyTWVkaWFE
ZXZpY2VTYW5kYm94RXh0ZW5zaW9ucyhwYXJhbXMpLCBwcm94eS5wYWdlKCkucGFnZUlEKCkpOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDlj
N2ZkNGRmYTJkMzhkMGQ3N2I2NDBiODNiZDFmMzU3ZWZiNWU2YjQuLmE2ODJlODI3OWI2MTNiNGNm
YWU5YjI0MTg4YjFiNTgyNWU0ZDgyZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC01NTY2LDExICs1NTY2LDkgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyBXZWJQYWdlUHJveHk6OmNyZWF0aW9uUGFyYW1ldGVycygpCiAgICAgcGFyYW1ldGVycy5v
dmVycmlkZUNvbnRlbnRTZWN1cml0eVBvbGljeSA9IG1fb3ZlcnJpZGVDb250ZW50U2VjdXJpdHlQ
b2xpY3k7CiAKICNpZiBFTkFCTEUoV0VCX1JUQykKLSAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHRp
ZSBJQ0UgZmlsdGVyaW5nIHdpdGggZ2V0VXNlck1lZGlhIHBlcm1pc3Npb24uCi0gICAgcGFyYW1l
dGVycy5kaXNhYmxlSUNFQ2FuZGlkYXRlRmlsdGVyaW5nID0gdHJ1ZTsKKyAgICBwYXJhbWV0ZXJz
LmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQgPSBtX3ByZWZlcmVuY2VzLT5pY2VDYW5kaWRh
dGVGaWx0ZXJpbmdFbmFibGVkKCk7CiAjaWYgVVNFKExJQldFQlJUQykKLSAgICAvLyBGSVhNRTog
VHVybiBkb3duIG5ldHdvcmsgaW50ZXJmYWNlIGVudW1lcmF0aW9uIGJ5IGRlZmF1bHQuCi0gICAg
cGFyYW1ldGVycy5lbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzID0gdHJ1ZTsK
KyAgICBwYXJhbWV0ZXJzLmVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXNFbmFibGVkID0g
bV9wcmVmZXJlbmNlcy0+ZW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQoKTsK
ICNlbmRpZgogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBjMmYyNTRhNDM3NDllMmZlMTEyYjNlMmQ0OGM3NzExYzA2MWMwYmFj
Li4yYmU5ODQ2MGFmYWU2MzY5MjVmMTgyZGI4MTNkMDc1NWNlOWNlNTBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC01NTMsMTAgKzU1Mywx
MCBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShXRUJfUlRDKQotICAg
IGlmIChwYXJhbWV0ZXJzLmRpc2FibGVJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcpCisgICAgaWYgKCFw
YXJhbWV0ZXJzLmljZUNhbmRpZGF0ZUZpbHRlcmluZ0VuYWJsZWQpCiAgICAgICAgIGRpc2FibGVJ
Q0VDYW5kaWRhdGVGaWx0ZXJpbmcoKTsKICNpZiBVU0UoTElCV0VCUlRDKQotICAgIGlmIChwYXJh
bWV0ZXJzLmVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMpCisgICAgaWYgKHBh
cmFtZXRlcnMuZW51bWVyYXRpbmdBbGxOZXR3b3JrSW50ZXJmYWNlc0VuYWJsZWQpCiAgICAgICAg
IGVuYWJsZUVudW1lcmF0aW5nQWxsTmV0d29ya0ludGVyZmFjZXMoKTsKICNlbmRpZgogI2VuZGlm
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggMTE2ZTBjYTU4ZWE5YmM5NDkwYTY1MzA1ZjFhYzcwY2YxNzA4MDMyZC4uMjNlZDU1
YjJhNzZlY2Q0MTEzYjk4NTM3MWM5ZTcwZDMwZWNmNzNkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDE3LTAzLTAxICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBbV2ViUlRDXSBBY3RpdmF0ZSBJQ0UgY2FuZGlkYXRlIHByaXZhY3kgcG9saWN5CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg5NzUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYnJ0Yy9kYXRhY2hh
bm5lbC9maWx0ZXItaWNlLWNhbmRpZGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IHdlYnJ0Yy9kYXRhY2hhbm5lbC9maWx0ZXItaWNlLWNhbmRpZGF0ZS5odG1sOiBBZGRlZC4KKwog
MjAxNy0wMi0yOCAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAg
IFttYWMtd2sxXSBMYXlvdXRUZXN0IG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1m
dWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMt
YnV0dG9ucy1jb250YWluZXJzLXN0eWxlcy5odG1sIGlzIGEgZmxha3kgdGltZW91dApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2ZpbHRlci1pY2UtY2FuZGlkYXRl
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9maWx0ZXItaWNl
LWNhbmRpZGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFkYzgxZGI5MmQ4ZjM0MmVjNzA2
YmQ3ODcwNTVlODc5Njg5NzlhYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC9maWx0ZXItaWNlLWNhbmRpZGF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw0IEBACisKK1BBU1MgR2F0aGVyaW5nIElDRSBjYW5kaWRhdGVzIGZyb20gYSBkYXRhIGNoYW5u
ZWwgcGVlciBjb25uZWN0aW9uIHdpdGggSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgb2ZmIAorUEFT
UyBHYXRoZXJpbmcgSUNFIGNhbmRpZGF0ZXMgZnJvbSBhIGRhdGEgY2hhbm5lbCBwZWVyIGNvbm5l
Y3Rpb24gd2l0aCBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBvbiAKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2ZpbHRlci1pY2UtY2FuZGlkYXRlLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJydGMvZGF0YWNoYW5uZWwvZmlsdGVyLWljZS1jYW5kaWRhdGUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zY2U0MzQzNzRjNTM0OTY0MzdmM2U1MjcyYWU1MGMyNTFkZGY2MGY4Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2VicnRjL2RhdGFjaGFubmVsL2ZpbHRlci1pY2Ut
Y2FuZGlkYXRlLmh0bWwKQEAgLTAsMCArMSw2MSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4K
KyAgPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5UZXN0aW5n
IElDRSBjYW5kaWRhdGUgZmlsdGVyaW5nIHdoZW4gdXNpbmcgZGF0YSBjaGFubmVsPC90aXRsZT4K
KyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKyAgPC9oZWFkPgorICA8Ym9keT4KKyAgICA8c2NyaXB0PgorcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uKCkgeworICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0
KSA9PiB7CisgICAgICAgIHZhciBjb3VudGVyID0gMDsKKyAgICAgICAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICAgICAgICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25G
YWN0b3J5KCJPbmVSZWFsUGVlckNvbm5lY3Rpb24iKTsKKyAgICAgICAgICAgIGludGVybmFscy5z
ZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcoZmFsc2UpOworICAgICAgICB9CisgICAgICAgIHZhciBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgICAgICBwYy5jcmVhdGVEYXRhQ2hhbm5l
bCgnc2VuZERhdGFDaGFubmVsJyk7CisgICAgICAgIHBjLm9uaWNlY2FuZGlkYXRlID0gKGV2ZW50
KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICAgICAgICAg
ICAgY291bnRlcisrOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGlmIChjb3VudGVyICE9PSAwKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsK
KyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICByZWplY3QoIkhvc3QgY2FuZGlkYXRl
cyBzaG91bGQgYmUgZm91bmQiKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgICAgICAgICAgICAgIGludGVybmFscy5zZXRJQ0VDYW5kaWRhdGVGaWx0ZXJpbmcodHJ1ZSk7
CisgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgICAgIHBjLmNyZWF0ZU9m
ZmVyKCkudGhlbigob2ZmZXIpID0+IHsgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7IH0p
OworICAgIH0pCit9LCAiR2F0aGVyaW5nIElDRSBjYW5kaWRhdGVzIGZyb20gYSBkYXRhIGNoYW5u
ZWwgcGVlciBjb25uZWN0aW9uIHdpdGggSUNFIGNhbmRpZGF0ZSBmaWx0ZXJpbmcgb2ZmIik7CisK
K3Byb21pc2VfdGVzdChmdW5jdGlvbigpIHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUsIHJlamVjdCkgPT4geworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAg
ICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5lY3Rpb25GYWN0b3J5KCJPbmVSZWFsUGVl
ckNvbm5lY3Rpb24iKTsKKyAgICAgICAgdmFyIGNvdW50ZXIgPSAwOworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy51c2VNb2NrUlRDUGVlckNvbm5l
Y3Rpb25GYWN0b3J5KCJPbmVSZWFsUGVlckNvbm5lY3Rpb24iKTsKKyAgICAgICAgdmFyIHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgICAgIHBjLmNyZWF0ZURhdGFDaGFubmVsKCdz
ZW5kRGF0YUNoYW5uZWwnKTsKKyAgICAgICAgcGMub25pY2VjYW5kaWRhdGUgPSAoZXZlbnQpID0+
IHsKKyAgICAgICAgICAgIGlmIChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgICAgICAgICAgICBj
b3VudGVyKys7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgaWYgKGNvdW50ZXIgPT09IDApCisgICAgICAgICAgICAgICAgcmVzb2x2ZSgpOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlamVjdCgiTm8gY2FuZGlkYXRlIHNob3Vs
ZCBiZSBmb3VuZCIpOworICAgICAgICB9OworICAgICAgICBwYy5jcmVhdGVPZmZlcigpLnRoZW4o
KG9mZmVyKSA9PiB7IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOyB9KTsKKyAgICB9KTsK
K30sICJHYXRoZXJpbmcgSUNFIGNhbmRpZGF0ZXMgZnJvbSBhIGRhdGEgY2hhbm5lbCBwZWVyIGNv
bm5lY3Rpb24gd2l0aCBJQ0UgY2FuZGlkYXRlIGZpbHRlcmluZyBvbiIpOworICAgIDwvc2NyaXB0
PgorICA8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>