<?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>151885</bug_id>
          
          <creation_ts>2015-12-04 14:35:23 -0800</creation_ts>
          <short_desc>Make showModalDialog a runtime enabled (on-by-default) feature</short_desc>
          <delta_ts>2022-07-23 14:17:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>243099</dup_id>
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=84635</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=199447</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Domenic Denicola">d</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>craig+webkit</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>falken</cc>
    
    <cc>hyungwook.lee</cc>
    
    <cc>japhet</cc>
    
    <cc>jberlin</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mathias</cc>
    
    <cc>mike</cc>
    
    <cc>mitz</cc>
    
    <cc>msaboff</cc>
    
    <cc>ntim</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zcorpan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1146408</commentid>
    <comment_count>0</comment_count>
    <who name="Domenic Denicola">d</who>
    <bug_when>2015-12-04 14:35:23 -0800</bug_when>
    <thetext>showModalDialog has been deprecated in the HTML spec and we would like to remove it: https://github.com/whatwg/html/pull/374 and https://www.w3.org/Bugs/Public/show_bug.cgi?id=26437.

The only modern user agents that support it are desktop Safari and desktop Firefox. (It has been completely removed from Chrome and Edge, and mobile Safari and mobile Firefox both do not support it.)

The corresponding Gecko bug is https://bugzilla.mozilla.org/show_bug.cgi?id=981796.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159762</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-28 10:23:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/16747181&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159846</commentid>
    <comment_count>2</comment_count>
      <attachid>270140</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-28 13:02:07 -0800</bug_when>
    <thetext>Created attachment 270140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159852</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-01-28 13:11:32 -0800</bug_when>
    <thetext>Whaaaat?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159855</commentid>
    <comment_count>4</comment_count>
      <attachid>270140</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-01-28 13:12:20 -0800</bug_when>
    <thetext>Comment on attachment 270140
Patch

I don&apos;t think we should remove this feature until dialog element is supported.  There are a lot of enterprise websites that rely on this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159874</commentid>
    <comment_count>5</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-28 14:16:11 -0800</bug_when>
    <thetext>Dialog element work is documented under Bug 84635, but nobody appears to be working on it at present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159896</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-01-28 14:54:36 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 270140 [details]
&gt; Patch
&gt; 
&gt; I don&apos;t think we should remove this feature until dialog element is
&gt; supported.  There are a lot of enterprise websites that rely on this feature.

Really? Chrome&apos;s usage data says less than 0.006% of page visits use this feature.

Can you list any sites that you think would be affected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1160486</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-01-30 11:06:04 -0800</bug_when>
    <thetext>In the past there were many web apps in corporate environments, not ones out on the &quot;open internet&quot;, that depended on this, web apps that were designed with IE in mind. For example, at one time SAP products used inside Apple relied on it. In 2003, we did not have support for showModalDialog and multiple enterprise software developers including SAP asked us to add support for it, and that’s why I originally implemented the feature in 2005. People inside Apple can see the some of that background in &lt;rdar://problem/3166090&gt;.

I have never seen much use of the feature on &quot;normal internet websites&quot;.

I have no idea how much enterprise web apps may have changed in the intervening 10 years since we added this. From a &quot;what web browsers are used on these intranet web apps&quot; point of view, it&apos;s not all that interesting that Chrome has removed it, because many of those enterprises may require the use of IE on Windows and Safari on Mac and would not support use of Chrome, but it is interesting that Edge has removed it. Those corporations are likely able to use IE rather than Edge for a while, but longer term they will have to change their products.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1218762</commentid>
    <comment_count>8</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-08-09 10:43:07 -0700</bug_when>
    <thetext>Firefox has removed showModalDialog.  I think we should, too.
https://www.fxsitecompat.com/en-CA/docs/2016/window-showmodaldialog-has-been-removed/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219630</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-08-12 11:50:56 -0700</bug_when>
    <thetext>Back when I implemented showModalDialog, the SAP apps using it included apps from SAP that did *not* support Firefox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1252966</commentid>
    <comment_count>10</comment_count>
      <attachid>295226</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-18 17:04:35 -0800</bug_when>
    <thetext>Created attachment 295226
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253012</commentid>
    <comment_count>11</comment_count>
      <attachid>295226</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-18 19:16:08 -0800</bug_when>
    <thetext>Comment on attachment 295226
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Make showModalDialog an option (off-by-default) feature

I still do not think we should disable showModalDialog() until we support the HTML dialog element. Yes, other browsers have dropped this API but they support the dialog element and suggest it as an alternative. There are also polyfills based on the dialog element.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253962</commentid>
    <comment_count>12</comment_count>
      <attachid>295523</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-28 13:34:13 -0800</bug_when>
    <thetext>Created attachment 295523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253963</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-28 13:35:22 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Comment on attachment 295226 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=295226&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Make showModalDialog an option (off-by-default) feature
&gt; 
&gt; I still do not think we should disable showModalDialog() until we support
&gt; the HTML dialog element. Yes, other browsers have dropped this API but they
&gt; support the dialog element and suggest it as an alternative. There are also
&gt; polyfills based on the dialog element.

Would you support the current change if the default state was &quot;on&quot;? Then we could at least make the decision to toggle it off more easily.

This bug would then become&quot; make &apos;showModalDialog&apos; a runtime-enabled feature&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253965</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-28 13:39:03 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #11)
&gt; &gt; Comment on attachment 295226 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=295226&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; &gt; +        Make showModalDialog an option (off-by-default) feature
&gt; &gt; 
&gt; &gt; I still do not think we should disable showModalDialog() until we support
&gt; &gt; the HTML dialog element. Yes, other browsers have dropped this API but they
&gt; &gt; support the dialog element and suggest it as an alternative. There are also
&gt; &gt; polyfills based on the dialog element.
&gt; 
&gt; Would you support the current change if the default state was &quot;on&quot;? Then we
&gt; could at least make the decision to toggle it off more easily.
&gt; 
&gt; This bug would then become&quot; make &apos;showModalDialog&apos; a runtime-enabled
&gt; feature&apos;.

Definitely. And if other people feel strongly about disabling showModalDialog despite the fact we still do not support the HTML dialog element then I obviously won&apos;t stop you. I personally do not think this would be a good situation to be in though. It is always good to have a have an alternative we can suggest to Web authors when we drop a web-facing feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1253975</commentid>
    <comment_count>15</comment_count>
      <attachid>295526</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-28 13:48:47 -0800</bug_when>
    <thetext>Created attachment 295526
Revised to leave &apos;showModalDialog&apos; on by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254023</commentid>
    <comment_count>16</comment_count>
    <who name="">mitz</who>
    <bug_when>2016-11-28 14:33:24 -0800</bug_when>
    <thetext>Isn’t the feature already runtime-enabled and effectively off by default? I think that unless the client chooses to implement -webView:createWebViewModalDialogWithRequest: and -webViewRunModal:, the feature is off.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254024</commentid>
    <comment_count>17</comment_count>
      <attachid>295526</attachid>
    <who name="">mitz</who>
    <bug_when>2016-11-28 14:34:43 -0800</bug_when>
    <thetext>Comment on attachment 295526
Revised to leave &apos;showModalDialog&apos; on by default.

r- because I believe this is redundant. Feel free to change back to r? if I am mistaken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254033</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-11-28 14:51:34 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; Comment on attachment 295526 [details]
&gt; Revised to leave &apos;showModalDialog&apos; on by default.
&gt; 
&gt; r- because I believe this is redundant. Feel free to change back to r? if I
&gt; am mistaken.

Mitz is right that there is some overlap. It looks like we call a client would need to implement WKPageUIClient.runModal for showModalDialog() to do anything. However, one issue is that even when showModalDialog() does nothing, it is still exposed to the Web via window.showModalDialog.

I think that ideally, window.showModalDialog would be exposed only when the client actually implements runModal (i.e. ChromeClient::canRunModal() returns true).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254283</commentid>
    <comment_count>19</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-11-29 08:56:33 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; Comment on attachment 295526 [details]
&gt; &gt; Revised to leave &apos;showModalDialog&apos; on by default.
&gt; &gt; 
&gt; &gt; r- because I believe this is redundant. Feel free to change back to r? if I
&gt; &gt; am mistaken.
&gt; 
&gt; Mitz is right that there is some overlap. It looks like we call a client
&gt; would need to implement WKPageUIClient.runModal for showModalDialog() to do
&gt; anything. However, one issue is that even when showModalDialog() does
&gt; nothing, it is still exposed to the Web via window.showModalDialog.
&gt; 
&gt; I think that ideally, window.showModalDialog would be exposed only when the
&gt; client actually implements runModal (i.e. ChromeClient::canRunModal()
&gt; returns true).

Right. Currently, &apos;showModalDialog&apos; will appear as a valid JavaScript property, even if the User Agent does not implement the delegate methods. The existence of &apos;showModalDialog&apos; might be enough to prevent sites from using polyfills, which is one of the things we wanted to test by adding this flag.

In fact, since it is effectively off by default, perhaps my original plan of having the feature flag off by default is actually correct, and I should revert to the &quot;off-by-default&quot; version of my patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1254287</commentid>
    <comment_count>20</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-11-29 09:01:52 -0800</bug_when>
    <thetext>I believe Dan’s point is that this feature is already off by default; it does not use the feature flags system to turn it on, but rather client function, which turns into a delegate call on Cocoa platforms.

I suggest we investigate making the existing mechanism work more thoroughly so the JavaScript property is not even present when the feature is off. Making that refinement would be preferable to adding a new runtime switch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1844264</commentid>
    <comment_count>21</comment_count>
      <attachid>452745</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-02-21 10:27:26 -0800</bug_when>
    <thetext>Created attachment 452745
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1886273</commentid>
    <comment_count>22</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-07-23 14:17:51 -0700</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 243099 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270140</attachid>
            <date>2016-01-28 13:02:07 -0800</date>
            <delta_ts>2016-11-18 17:04:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151885-20160128130141.patch</filename>
            <type>text/plain</type>
            <size>95967</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE5NTY4
OCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE2LTAx
LTI4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBzaG93TW9kYWxEaWFsb2cKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MTg4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBBUEkgaGFz
IGJlZW4gZGVwcmVjYXRlZCBmb3IgeWVhcnMsIGFuZCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQg
ZnJvbQorICAgICAgICBhbGwgb3RoZXIgYnJvd3NlcnMuIFRpbWUgdG8gZ28hCisKKyAgICAgICAg
QmFzZWQgb24gY2hhbmdlcyBmcm9tIEJsaW5rIChwYXRjaCBieSA8amFtZXNyQGNocm9taXVtLm9y
Zz4pOgorICAgICAgICA8aHR0cHM6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3
PXJldiZyZXZpc2lvbj0xNjc3MzY+CisKKworICAgICAgICAqIE1hbnVhbFRlc3RzL21vZGFsLWRp
YWxvZy1hcmd1bWVudHMuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNYW51YWxUZXN0cy9tb2Rh
bC1kaWFsb2ctYmx1ci1zZWxmY2xvc2UuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNYW51YWxU
ZXN0cy9tb2RhbC1kaWFsb2ctYmx1ci5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRl
c3RzL21vZGFsLWRpYWxvZy5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIE1hbnVhbFRlc3RzL3No
b3ctbW9kYWwtZGlhbG9nLXRlc3QuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBNYW51YWxUZXN0
cy9zaG93TW9kYWxEaWFsb2ctcmV0dXJuVmFsdWUuaHRtbDogUmVtb3ZlZC4KKwogMjAxNi0wMS0y
NyAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUg
RU5BQkxFX0NVUlJFTlRTUkMKSW5kZXg6IE1hbnVhbFRlc3RzL21vZGFsLWRpYWxvZy1hcmd1bWVu
dHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBNYW51YWxUZXN0cy9tb2RhbC1kaWFsb2ctYXJndW1lbnRz
Lmh0bWwJKHJldmlzaW9uIDE5NTY4OCkKKysrIE1hbnVhbFRlc3RzL21vZGFsLWRpYWxvZy1hcmd1
bWVudHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxOSArMCwwIEBACi08aHRtbD4KLTxzY3Jp
cHQ+Ci1mdW5jdGlvbiBydW5UZXN0KCkgewotICAgIHZhciBvID0geyB9OwotICAgIHNob3dNb2Rh
bERpYWxvZygiZGF0YTp0ZXh0L2h0bWwsPHNjciIgKyAiaXB0PmRpYWxvZ0FyZ3VtZW50c1sncmVz
dWx0J10gPSAnUEFTUyc7IHdpbmRvdy5jbG9zZSgpIDwvc2NyIiArICJpcHQ+Iiwgbyk7Ci0gICAg
Ci0gICAgaWYgKG8ucmVzdWx0ID09ICdQQVNTJykKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICdTVUNDRVNTJzsKLX0KLQotPC9zY3JpcHQ+Ci08
Ym9keT4KLTxkaXY+Ci1UaGlzIHRlc3RzIHRoYXQgbW9kYWwgZGlhbG9nIGFyZ3VtZW50cyBnZXQg
cGFzc2VkIGFyb3VuZCBjb3JyZWN0bHkuIENsaWNrIHRoZSBidXR0b24gYmVsb3cgdG8gdGVzdC4g
VGhlIHRleHQgIlNVQ0NFU1MiIHdpbGwgYmUgc2hvd24gYmVsb3cgaWYgdGhlIHRlc3Qgd2FzIHN1
Y2Nlc3NmdWwuCi08L2Rpdj4KLTxidXR0b24gb25jbGljaz0icnVuVGVzdCgpIj5DbGljayBNZSE8
L2J1dHRvbj4KLTxkaXYgaWQ9InJlc3VsdCI+Ci08L2Rpdj4KLTwvaHRtbD4KSW5kZXg6IE1hbnVh
bFRlc3RzL21vZGFsLWRpYWxvZy1ibHVyLXNlbGZjbG9zZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIE1h
bnVhbFRlc3RzL21vZGFsLWRpYWxvZy1ibHVyLXNlbGZjbG9zZS5odG1sCShyZXZpc2lvbiAxOTU2
ODgpCisrKyBNYW51YWxUZXN0cy9tb2RhbC1kaWFsb2ctYmx1ci1zZWxmY2xvc2UuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSwzICswLDAgQEAKLTxzY3JpcHQ+Ci13aW5kb3cuY2xvc2UoKQotPC9z
Y3JpcHQ+CkluZGV4OiBNYW51YWxUZXN0cy9tb2RhbC1kaWFsb2ctYmx1ci5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIE1hbnVhbFRlc3RzL21vZGFsLWRpYWxvZy1ibHVyLmh0bWwJKHJldmlzaW9uIDE5NTY4
OCkKKysrIE1hbnVhbFRlc3RzL21vZGFsLWRpYWxvZy1ibHVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPjx0aXRsZT4K
LVRlc3RzIGJsdXIvZm9jdXMgZXZlbnRzIHdpdGggbW9kYWwgZGlhbG9ncwotPC90aXRsZT48L2hl
YWQ+Ci08c2NyaXB0PgotdmFyIGZhaWxlZCA9ICIiOwotZnVuY3Rpb24gZmFpbEJsdXIoKSB7Ci0g
IGZhaWxlZCA9ICJibHVyIjsKLX0KLWZ1bmN0aW9uIGZhaWxGb2N1cygpIHsKLSAgZmFpbGVkID0g
ImZvY3VzIjsKLX0KLQotdmFyIGlucHV0RWxlbWVudDsKLQotZnVuY3Rpb24gdGVzdCgpIHsKLSAg
aW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImkiKQotICBpbnB1dEVsZW1l
bnQuZm9jdXMoKTsKLSAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLCBmYWls
Qmx1ciwgZmFsc2UpOwotICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLCBm
YWlsRm9jdXMsIGZhbHNlKTsKLSAgd2luZG93LnNob3dNb2RhbERpYWxvZygibW9kYWwtZGlhbG9n
LWJsdXItc2VsZmNsb3NlLmh0bWwiKTsKLSAgaWYgKGZhaWxlZCkgewotICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJzdGF0dXMiKS5pbm5lckhUTUwgPSAiRkFJTCwgIiArIGZhaWxlZDsKLSAg
fSBlbHNlIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzIikuaW5uZXJIVE1M
ID0gIlNVQ0NFU1MiOwotICB9Ci19Ci08L3NjcmlwdD4KLTxib2R5IG9ubG9hZD0idGVzdCgpIj4K
LTxpbnB1dCBpZD0iaSI+PC9pbnB1dD4KLTxkaXYgaWQ9InN0YXR1cyI+UlVOTklORy4uLjwvZGl2
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTWFudWFsVGVzdHMvbW9kYWwtZGlhbG9nLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTWFudWFsVGVzdHMvbW9kYWwtZGlhbG9nLmh0bWwJKHJldmlzaW9uIDE5
NTY4OCkKKysrIE1hbnVhbFRlc3RzL21vZGFsLWRpYWxvZy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDI3ICswLDAgQEAKLTxoZWFkPgotPHNjcmlwdD4KLWZ1bmN0aW9uIHRpbWVyRmlyZWQoKQot
ewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aW1lclJlc3VsdCIpLmZpcnN0Q2hpbGQu
ZGF0YSA9ICJUaW1lciBmaXJlZCEiOwotfQotCi1mdW5jdGlvbiBjbG9zZU1vZGFsKCkgewotICAg
d2luZG93LnJldHVyblZhbHVlID0gZG9jdW1lbnQuZm9ybS50b1dpbmRvdy52YWx1ZTsKLSAgIHdp
bmRvdy5jbG9zZSgpOwotfQotCi1mdW5jdGlvbiBpbml0KCkKLXsKLSAgICBkb2N1bWVudC5mb3Jt
LmZyb21XaW5kb3cudmFsdWUgPSB3aW5kb3cuZGlhbG9nQXJndW1lbnRzOwotfQotPC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9ImluaXQoKSI+Ci08Zm9ybSBuYW1lPSJmb3JtIj4KLTxw
PkhlcmUgaXMgdGhlIHRleHQgZnJvbSB0aGUgbWFpbiB3aW5kb3c6IDxpbnB1dCBuYW1lPSJmcm9t
V2luZG93Ij48L3A+Ci08cD5UeXBlIHRleHQgaGVyZSB0byBiZSBzZW50IGJhY2sgdG8gdGhlIG1h
aW4gd2luZG93OiA8aW5wdXQgbmFtZT0idG9XaW5kb3ciIHZhbHVlPSJmcm9tIG1vZGFsIHdpbmRv
dyI+PC9wPgotPHA+VGhlbiwgcHVzaCB0aGlzIGJ1dHRvbjogPGlucHV0IHR5cGU9ImJ1dHRvbiIg
dmFsdWU9IkNsb3NlIiBvbkNsaWNrPSJjbG9zZU1vZGFsKCkiPjwvcD4KLTxwPlB1c2ggdGhpcyBi
dXR0b24gdG8gdGVzdCB0aW1lcjogPGlucHV0IHR5cGU9ImJ1dHRvbiIgdmFsdWU9IlRlc3QgVGlt
ZXIiIG9uQ2xpY2s9InNldFRpbWVvdXQodGltZXJGaXJlZCwgMCkiPjwvcD4KLTxwIGlkPSJ0aW1l
clJlc3VsdCI+VGltZXIgZGlkIG5vdCBmaXJlIHlldC48L3A+Ci08L2Zvcm0+Ci08L2JvZHk+Cklu
ZGV4OiBNYW51YWxUZXN0cy9zaG93LW1vZGFsLWRpYWxvZy10ZXN0Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTWFudWFsVGVzdHMvc2hvdy1tb2RhbC1kaWFsb2ctdGVzdC5odG1sCShyZXZpc2lvbiAxOTU2
ODgpCisrKyBNYW51YWxUZXN0cy9zaG93LW1vZGFsLWRpYWxvZy10ZXN0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMTUgKzAsMCBAQAotPHNjcmlwdD4KLWZ1bmN0aW9uIHNob3dNb2RhbCgpIHsK
LSAgICBkb2N1bWVudC5mb3JtLmZyb21Nb2RhbC52YWx1ZSA9Ci0gICAgICAgIHNob3dNb2RhbERp
YWxvZygibW9kYWwtZGlhbG9nLmh0bWwiLAotICAgICAgICAgICAgZG9jdW1lbnQuZm9ybS50b01v
ZGFsLnZhbHVlLAotICAgICAgICAgICAgImRpYWxvZ0hlaWdodDoyODBweCxkaWFsb2dXaWR0aDo0
MDBweCIpOwotfQotPC9zY3JpcHQ+Ci08Zm9ybSBuYW1lPSJmb3JtIj4KLTxwPlR5cGUgdGV4dCBo
ZXJlIHRvIGJlIHNlbnQgdG8gdGhlIG1vZGFsIHdpbmRvdyBhbmQgcHJlc3MgdGhlIGJ1dHRvbjoK
LTxpbnB1dCBuYW1lPSJ0b01vZGFsIiB2YWx1ZT0iZnJvbSBtYWluIHdpbmRvdyI+Ci08aW5wdXQg
dHlwZT0iYnV0dG9uIiB2YWx1ZT0iU2hvdyBNb2RhbCIgb25DbGljaz0ic2hvd01vZGFsKCkiPjwv
cD4KLTxoeT4KLTxwPlRleHQgd2lsbCBhcHBlYXIgaGVyZSBmcm9tIHRoZSBtb2RhbCB3aW5kb3c6
IDxpbnB1dCBuYW1lPSJmcm9tTW9kYWwiPgotPC9mb3JtPgpJbmRleDogTWFudWFsVGVzdHMvc2hv
d01vZGFsRGlhbG9nLXJldHVyblZhbHVlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTWFudWFsVGVzdHMv
c2hvd01vZGFsRGlhbG9nLXJldHVyblZhbHVlLmh0bWwJKHJldmlzaW9uIDE5NTY4OCkKKysrIE1h
bnVhbFRlc3RzL3Nob3dNb2RhbERpYWxvZy1yZXR1cm5WYWx1ZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDEzICswLDAgQEAKLVRoaXMgdGVzdCBtYWtlcyBzdXJlIHdlIGRvbid0IGNyYXNoIHdo
ZW4gc3RvcmluZyB0aGUgcmV0dXJuIHZhbHVlIGZyb20gc2hvd01vZGFsRGlhbG9nLiAgUG9wdXAg
YmxvY2tpbmcgbmVlZHMgdG8gYmUgZGlzYWJsZWQgZm9yIHRoaXMgdGVzdCB0byBydW4uPGJyPgot
PHNjcmlwdD4KLWlmIChzaG93TW9kYWxEaWFsb2coImRhdGE6dGV4dC9odG1sLDxzY3JpcHQ+cmV0
dXJuVmFsdWU9e3ZhbHVlOidQQVNTJ307IGNsb3NlKCk8LyIrInNjcmlwdD4iKS52YWx1ZSA9PSAi
UEFTUyIpCi0gICAgZG9jdW1lbnQud3JpdGUoIjxzcGFuIHN0eWxlPSdjb2xvcjpncmVlbic+VGVz
dCBwYXNzZWQuPGJyPiIpOwotZWxzZQotICAgIGRvY3VtZW50LndyaXRlKCI8c3BhbiBzdHlsZT0n
Y29sb3I6cmVkJz5UZXN0IGZhaWxlZCBkdWUgdG8gaW5jb3JyZWN0IHJlc3VsdC48YnI+Iik7Ci12
YWx1ZSA9IHNob3dNb2RhbERpYWxvZygiZGF0YTp0ZXh0L2h0bWwsPHNjcmlwdD5jbG9zZSgpPC8i
KyJzY3JpcHQ+Iik7Ci1pZiAoIXZhbHVlKQotICAgIGRvY3VtZW50LndyaXRlKCI8c3BhbiBzdHls
ZT0nY29sb3I6Z3JlZW4nPlRlc3QgcGFzc2VkLjxicj4iKTsKLWVsc2UKLSAgICBkb2N1bWVudC53
cml0ZSgiPHNwYW4gc3R5bGU9J2NvbG9yOnJlZCc+VGVzdCBmYWlsZWQgZHVlIHRvIGluY29ycmVj
dCByZXN1bHQuPGJyPiIpOwotCi08L3NjcmlwdD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBA
QAorMjAxNi0wMS0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZW1vdmUgc2hvd01vZGFsRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NzQ3
MTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgQVBJIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHllYXJzLCBhbmQgaGFzIGFscmVhZHkgYmVl
biByZW1vdmVkIGZyb20KKyAgICAgICAgYWxsIG90aGVyIGJyb3dzZXJzLiBUaW1lIHRvIGdvIQor
CisgICAgICAgICogcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oOiBHZXQgcmlkIG9mIHRoZSBz
aG93TW9kYWxEaWFsb2cgcmVmZXJlbmNlLgorCiAyMDE2LTAxLTI3ICBGaWxpcCBQaXpsbyAgPGZw
aXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgQWlyOjpUbXBXaWR0aCB1c2VzIGEgc3RhbGUgcG9p
bnRlciBpbnRvIGl0cyBIYXNoTWFwIGFmdGVyIGl0IGNhbGxzIGFkZCgpCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25JZGVudGlmaWVycy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmgJKHJldmlz
aW9uIDE5NTY4OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vbklkZW50
aWZpZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4NCw3ICsxODQsNiBAQAogICAgIG1hY3JvKHNl
Y29uZCkgXAogICAgIG1hY3JvKHNlbnNpdGl2aXR5KSBcCiAgICAgbWFjcm8oc2V0KSBcCi0gICAg
bWFjcm8oc2hvd01vZGFsRGlhbG9nKSBcCiAgICAgbWFjcm8oc2l6ZSkgXAogICAgIG1hY3JvKHNs
aWNlKSBcCiAgICAgbWFjcm8oc291cmNlKSBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTU2
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwzNyBAQAorMjAxNi0wMS0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgc2hvd01vZGFsRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzE2NzQ3MTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgQVBJIGhhcyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHllYXJzLCBhbmQgaGFzIGFscmVh
ZHkgYmVlbiByZW1vdmVkIGZyb20KKyAgICAgICAgYWxsIG90aGVyIGJyb3dzZXJzLiBUaW1lIHRv
IGdvIQorCisgICAgICAgIEJhc2VkIG9uIGNoYW5nZXMgZnJvbSBCbGluayAocGF0Y2ggYnkgPGph
bWVzckBjaHJvbWl1bS5vcmc+KToKKyAgICAgICAgPGh0dHBzOi8vc3JjLmNocm9taXVtLm9yZy92
aWV3dmMvYmxpbms/dmlldz1yZXYmcmV2aXNpb249MTY3NzM2PgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5k
b3c6OmdldE93blByb3BlcnR5U2xvdCk6IFJlbW92ZSAnc2hvd01vZGFsRGlhbG9nJy4KKyAgICAg
ICAgKFdlYkNvcmU6OkRpYWxvZ0hhbmRsZXI6OkRpYWxvZ0hhbmRsZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6RGlhbG9nSGFuZGxlcjo6ZGlhbG9nQ3JlYXRlZCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEaWFsb2dIYW5kbGVyOjpyZXR1cm5WYWx1ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6IFJlbW92ZSAncnVuTW9kYWwvY2FuUnVu
TW9kYWwnLgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9tZTo6Y2FuUnVuTW9kYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpy
dW5Nb2RhbCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBw
YWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2luZG93KTogUmVtb3ZlICdwcmVwYXJlRGlh
bG9nRnVuY3Rpb24nIGFyZ3VtZW50LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpjYW5T
aG93TW9kYWxEaWFsb2cpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpj
YW5TaG93TW9kYWxEaWFsb2dOb3cpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2lu
ZG93OjpzaG93TW9kYWxEaWFsb2cpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
Lmg6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOiBSZW1vdmUgJ3Nob3dNb2RhbERpYWxv
ZycgQVBJLgorCiAyMDE2LTAxLTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIEFkZCBBUEkgdG8gYWNjZXNzIGNsb3NlZCBzaGFkb3dSb290IGluIEluamVjdGVk
QnVuZGxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDEwLCAyMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTE3NiwxMSArMTc2
LDYgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTTwogICAgIH0gZWxz
ZSBpZiAocHJvcGVydHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wb3N0TWVzc2FnZSkg
ewogICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxl
dGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzRE9NV2luZG93
UHJvdG90eXBlRnVuY3Rpb25Qb3N0TWVzc2FnZSwgMj4pOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9IGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuc2hv
d01vZGFsRGlhbG9nKSB7Ci0gICAgICAgIGlmICghRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFs
b2codGhpc09iamVjdC0+d3JhcHBlZCgpLmZyYW1lKCkpKSB7Ci0gICAgICAgICAgICBzbG90LnNl
dFVuZGVmaW5lZCgpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9
IGVsc2UgaWYgKHByb3BlcnR5TmFtZSA9PSBleGVjLT5wcm9wZXJ0eU5hbWVzKCkudG9TdHJpbmcp
IHsKICAgICAgICAgLy8gQWxsb3cgYWNjZXNzIHRvIHRvU3RyaW5nKCkgY3Jvc3MtZG9tYWluLCBi
dXQgYWx3YXlzIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuCiAgICAgICAgIGlmICghYWxsb3dz
QWNjZXNzKSB7CkBAIC01MzcsNjUgKzUzMiw2IEBAIEpTVmFsdWUgSlNET01XaW5kb3c6Om9wZW4o
RXhlY1N0YXRlJiBzdGEKICAgICByZXR1cm4gdG9KUygmc3RhdGUsIG9wZW5lZFdpbmRvdy5nZXQo
KSk7CiB9CiAKLWNsYXNzIERpYWxvZ0hhbmRsZXIgewotcHVibGljOgotICAgIGV4cGxpY2l0IERp
YWxvZ0hhbmRsZXIoRXhlY1N0YXRlJiBleGVjKQotICAgICAgICA6IG1fZXhlYyhleGVjKQotICAg
IHsKLSAgICB9Ci0KLSAgICB2b2lkIGRpYWxvZ0NyZWF0ZWQoRE9NV2luZG93Jik7Ci0gICAgSlNW
YWx1ZSByZXR1cm5WYWx1ZSgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIEV4ZWNTdGF0ZSYgbV9l
eGVjOwotICAgIFJlZlB0cjxGcmFtZT4gbV9mcmFtZTsKLX07Ci0KLWlubGluZSB2b2lkIERpYWxv
Z0hhbmRsZXI6OmRpYWxvZ0NyZWF0ZWQoRE9NV2luZG93JiBkaWFsb2cpCi17Ci0gICAgbV9mcmFt
ZSA9IGRpYWxvZy5mcmFtZSgpOwotICAgIAotICAgIC8vIEZJWE1FOiBUaGlzIGxvb2tzIGxpa2Ug
YSBsZWFrIGJldHdlZW4gdGhlIG5vcm1hbCB3b3JsZCBhbmQgYW4gaXNvbGF0ZWQKLSAgICAvLyAg
ICAgICAgd29ybGQgaWYgZGlhbG9nQXJndW1lbnRzIGNvbWVzIGZyb20gYW4gaXNvbGF0ZWQgd29y
bGQuCi0gICAgSlNET01XaW5kb3cqIGdsb2JhbE9iamVjdCA9IHRvSlNET01XaW5kb3cobV9mcmFt
ZS5nZXQoKSwgbm9ybWFsV29ybGQobV9leGVjLnZtKCkpKTsKLSAgICBpZiAoSlNWYWx1ZSBkaWFs
b2dBcmd1bWVudHMgPSBtX2V4ZWMuYXJndW1lbnQoMSkpCi0gICAgICAgIGdsb2JhbE9iamVjdC0+
cHV0RGlyZWN0KG1fZXhlYy52bSgpLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZtX2V4ZWMsICJk
aWFsb2dBcmd1bWVudHMiKSwgZGlhbG9nQXJndW1lbnRzKTsKLX0KLQotaW5saW5lIEpTVmFsdWUg
RGlhbG9nSGFuZGxlcjo6cmV0dXJuVmFsdWUoKSBjb25zdAotewotICAgIEpTRE9NV2luZG93KiBn
bG9iYWxPYmplY3QgPSB0b0pTRE9NV2luZG93KG1fZnJhbWUuZ2V0KCksIG5vcm1hbFdvcmxkKG1f
ZXhlYy52bSgpKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotICAgIElkZW50aWZpZXIgaWRlbnRpZmllciA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJm1fZXhlYywgInJldHVyblZhbHVlIik7Ci0gICAgUHJvcGVydHlTbG90IHNsb3QoZ2xv
YmFsT2JqZWN0KTsKLSAgICBpZiAoIUpTR2xvYmFsT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
Z2xvYmFsT2JqZWN0LCAmbV9leGVjLCBpZGVudGlmaWVyLCBzbG90KSkKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0gICAgcmV0dXJuIHNsb3QuZ2V0VmFsdWUoJm1fZXhlYywgaWRlbnRp
Zmllcik7Ci19Ci0KLUpTVmFsdWUgSlNET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyhFeGVjU3Rh
dGUmIHN0YXRlKQotewotICAgIGlmIChVTkxJS0VMWShzdGF0ZS5hcmd1bWVudENvdW50KCkgPCAx
KSkKLSAgICAgICAgcmV0dXJuIHN0YXRlLnZtKCkudGhyb3dFeGNlcHRpb24oJnN0YXRlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcigmc3RhdGUpKTsKLQotICAgIFN0cmluZyB1cmxTdHJp
bmcgPSB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENoZWNrKCZzdGF0ZSwgc3RhdGUu
YXJndW1lbnQoMCkpOwotICAgIGlmIChzdGF0ZS5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgU3RyaW5nIGRpYWxvZ0ZlYXR1cmVzU3RyaW5nID0gdmFs
dWVUb1N0cmluZ1dpdGhVbmRlZmluZWRPck51bGxDaGVjaygmc3RhdGUsIHN0YXRlLmFyZ3VtZW50
KDIpKTsKLSAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotCi0gICAgRGlhbG9nSGFuZGxlciBoYW5kbGVyKHN0YXRlKTsKLQotICAgIHdy
YXBwZWQoKS5zaG93TW9kYWxEaWFsb2codXJsU3RyaW5nLCBkaWFsb2dGZWF0dXJlc1N0cmluZywg
YWN0aXZlRE9NV2luZG93KCZzdGF0ZSksIGZpcnN0RE9NV2luZG93KCZzdGF0ZSksIFsmaGFuZGxl
cl0oRE9NV2luZG93JiBkaWFsb2cpIHsKLSAgICAgICAgaGFuZGxlci5kaWFsb2dDcmVhdGVkKGRp
YWxvZyk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gaGFuZGxlci5yZXR1cm5WYWx1ZSgpOwotfQot
CiBzdGF0aWMgSlNWYWx1ZSBoYW5kbGVQb3N0TWVzc2FnZShET01XaW5kb3cmIGltcGwsIEV4ZWNT
dGF0ZSYgc3RhdGUpCiB7CiAgICAgTWVzc2FnZVBvcnRBcnJheSBtZXNzYWdlUG9ydHM7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCShyZXZpc2lvbiAxOTU2ODgpCisrKyBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IEVyaWMgU2VpZGVsIChlcmljQHdl
YmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMiwgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgtMjAxMiwgMjAxNS0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBO
b2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CkBAIC04Nyw5ICs4Nyw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNob3coKSBvdmVycmlkZSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBj
YW5SdW5Nb2RhbCgpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lk
IHJ1bk1vZGFsKCkgb3ZlcnJpZGUgeyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNW
aXNpYmxlKGJvb2wpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2li
bGUoKSBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
LCAyMDA3LCAyMDA5LCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDA3LCAyMDA5LCAyMDExLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCwgMjAxMCBOb2tpYSBDb3Jwb3Jh
dGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqIENvcHlyaWdodCAoQykgMjAxMiwg
U2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC0yMDgsMjEg
KzIwOCw2IEBAIHZvaWQgQ2hyb21lOjpzaG93KCkgY29uc3QKICAgICBtX2NsaWVudC5zaG93KCk7
CiB9CiAKLWJvb2wgQ2hyb21lOjpjYW5SdW5Nb2RhbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
Y2xpZW50LmNhblJ1bk1vZGFsKCk7Ci19Ci0KLXZvaWQgQ2hyb21lOjpydW5Nb2RhbCgpIGNvbnN0
Ci17Ci0gICAgLy8gRGVmZXIgY2FsbGJhY2tzIGluIGFsbCB0aGUgb3RoZXIgcGFnZXMgaW4gdGhp
cyBncm91cCwgc28gd2UgZG9uJ3QgdHJ5IHRvIHJ1biBKYXZhU2NyaXB0Ci0gICAgLy8gaW4gYSB3
YXkgdGhhdCBjb3VsZCBpbnRlcmFjdCB3aXRoIHRoaXMgdmlldy4KLSAgICBQYWdlR3JvdXBMb2Fk
RGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCBmYWxzZSk7Ci0KLSAgICBUaW1lckJhc2U6OmZpcmVU
aW1lcnNJbk5lc3RlZEV2ZW50TG9vcCgpOwotICAgIG1fY2xpZW50LnJ1bk1vZGFsKCk7Ci19Ci0K
IHZvaWQgQ2hyb21lOjpzZXRUb29sYmFyc1Zpc2libGUoYm9vbCBiKSBjb25zdAogewogICAgIG1f
Y2xpZW50LnNldFRvb2xiYXJzVmlzaWJsZShiKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkocmV2
aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2LTIwMDksIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKS4KICAqIENvcHlyaWdodCAoQykgMjAxMiwgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCkBAIC0xMTksOSArMTE5LDYgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNob3coKSBjb25zdDsKIAotICAgIGJvb2wgY2Fu
UnVuTW9kYWwoKSBjb25zdDsKLSAgICB2b2lkIHJ1bk1vZGFsKCkgY29uc3Q7Ci0KICAgICB2b2lk
IHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBjb25zdDsKICAgICBib29sIHRvb2xiYXJzVmlzaWJs
ZSgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9u
IDE5NTY4OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExLCAyMDEyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxMiwgMjAxNiBBcHBsZSwgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5n
IEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKQEAgLTEzMyw5ICsxMzMsNiBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOwogCi0gICAgdmlydHVh
bCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpID0g
MDsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSA9IDA7CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTAsIDIwMTMsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzcwLDI2ICszNzAsNiBAQCBib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgp
CiAgICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcChtX2ZyYW1lKTsKIH0KIAotYm9vbCBE
T01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSogZnJhbWUpCi17Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJl
dHVybiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpOwotfQotCi1ib29sIERPTVdpbmRvdzo6
Y2FuU2hvd01vZGFsRGlhbG9nTm93KGNvbnN0IEZyYW1lKiBmcmFtZSkKLXsKLSAgICBpZiAoIWZy
YW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdl
KCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIHBh
Z2UtPmNocm9tZSgpLmNhblJ1bk1vZGFsKCk7Ci19Ci0KIERPTVdpbmRvdzo6RE9NV2luZG93KERv
Y3VtZW50KiBkb2N1bWVudCkKICAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyKGRvY3Vt
ZW50KQogICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50LT5mcmFtZSgpKQpA
QCAtMjA5NCw3ICsyMDc0LDcgQEAgYm9vbCBET01XaW5kb3c6OmlzSW5zZWN1cmVTY3JpcHRBY2Nl
c3MoRAogICAgIHJldHVybiB0cnVlOwogfQogCi1SZWZQdHI8RnJhbWU+IERPTVdpbmRvdzo6Y3Jl
YXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBET01XaW5kb3cm
IGFjdGl2ZVdpbmRvdywgRnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1lJiBvcGVuZXJGcmFtZSwgc3Rk
OjpmdW5jdGlvbjx2b2lkIChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0aW9uKQorUmVm
UHRyPEZyYW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3
aW5kb3dGZWF0dXJlcywgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1l
LCBGcmFtZSYgb3BlbmVyRnJhbWUpCiB7CiAgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gYWN0aXZl
V2luZG93LmZyYW1lKCk7CiAgICAgaWYgKCFhY3RpdmVGcmFtZSkKQEAgLTIxMzEsOSArMjExMSw2
IEBAIFJlZlB0cjxGcmFtZT4gRE9NV2luZG93OjpjcmVhdGVXaW5kb3coY28KICAgICBpZiAobmV3
RnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpLT5pc0luc2VjdXJlU2NyaXB0QWNjZXNzKGFj
dGl2ZVdpbmRvdywgY29tcGxldGVkVVJMKSkKICAgICAgICAgcmV0dXJuIG5ld0ZyYW1lOwogCi0g
ICAgaWYgKHByZXBhcmVEaWFsb2dGdW5jdGlvbikKLSAgICAgICAgcHJlcGFyZURpYWxvZ0Z1bmN0
aW9uKCpuZXdGcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpOwotCiAgICAgaWYgKGNyZWF0
ZWQpIHsKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlc291cmNlUmVxdWVzdChjb21wbGV0ZWRV
UkwsIHJlZmVycmVyLCBVc2VQcm90b2NvbENhY2hlUG9saWN5KTsKICAgICAgICAgRnJhbWVMb2Fk
UmVxdWVzdCBmcmFtZVJlcXVlc3QoYWN0aXZlV2luZG93LmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIHJlc291cmNlUmVxdWVzdCwgIl9zZWxmIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFj
a0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52
YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIGFjdGl2ZURvY3VtZW50
LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSk7CkBAIC0yMjIyLDM2
ICsyMTk5LDYgQEAgUGFzc1JlZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3BlbihjbwogICAg
IHJldHVybiByZXN1bHQgPyByZXN1bHQtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpIDogbnVsbHB0
cjsKIH0KIAotdm9pZCBET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVy
bFN0cmluZywgY29uc3QgU3RyaW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgRE9NV2luZG93JiBh
Y3RpdmVXaW5kb3csIERPTVdpbmRvdyYgZmlyc3RXaW5kb3csIHN0ZDo6ZnVuY3Rpb248dm9pZCAo
RE9NV2luZG93Jik+IHByZXBhcmVEaWFsb2dGdW5jdGlvbikKLXsKLSAgICBpZiAoIWlzQ3VycmVu
dGx5RGlzcGxheWVkSW5GcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0gICAgRnJhbWUqIGFjdGl2
ZUZyYW1lID0gYWN0aXZlV2luZG93LmZyYW1lKCk7Ci0gICAgaWYgKCFhY3RpdmVGcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBmaXJzdEZyYW1lID0gZmlyc3RXaW5kb3cuZnJhbWUo
KTsKLSAgICBpZiAoIWZpcnN0RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8qIHBh
Z2UgPSBtX2ZyYW1lLT5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBpZiAoIXBhZ2UtPmFyZVByb21wdHNBbGxvd2VkKCkpIHsKLSAgICAgICAgcHJpbnRFcnJv
ck1lc3NhZ2UoIlVzZSBvZiB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIGlzIG5vdCBhbGxvd2VkIHdo
aWxlIHVubG9hZGluZyBhIHBhZ2UuIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBp
ZiAoIWNhblNob3dNb2RhbERpYWxvZ05vdyhtX2ZyYW1lKSB8fCAhZmlyc3RXaW5kb3cuYWxsb3dQ
b3BVcCgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXaW5kb3dGZWF0dXJlcyB3aW5kb3dGZWF0
dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52
aWV3KCkpKTsKLSAgICBSZWZQdHI8RnJhbWU+IGRpYWxvZ0ZyYW1lID0gY3JlYXRlV2luZG93KHVy
bFN0cmluZywgZW1wdHlBdG9tLCB3aW5kb3dGZWF0dXJlcywgYWN0aXZlV2luZG93LCAqZmlyc3RG
cmFtZSwgKm1fZnJhbWUsIFdURk1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7Ci0gICAgaWYg
KCFkaWFsb2dGcmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGRpYWxvZ0ZyYW1lLT5wYWdlKCkt
PmNocm9tZSgpLnJ1bk1vZGFsKCk7Ci19Ci0KIHZvaWQgRE9NV2luZG93OjplbmFibGVTdWRkZW5U
ZXJtaW5hdGlvbigpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA3LCAyMDA5LTIwMTAsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMTM0LDggKzEzNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAg
ICBib29sIGFsbG93UG9wVXAoKTsgLy8gQ2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQg
d2luZG93LgogICAgICAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lKiBmaXJzdEZyYW1l
KTsKLSAgICAgICAgc3RhdGljIGJvb2wgY2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKik7
Ci0gICAgICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZ05vdyhjb25zdCBGcmFtZSop
OwogCiAgICAgICAgIC8vIERPTSBMZXZlbCAwCiAKQEAgLTE2OCw4ICsxNjYsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIFdFQkNPUkVfRVhQT1JUIFBhc3NSZWZQdHI8RE9NV2luZG93
PiBvcGVuKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZyYW1l
TmFtZSwgY29uc3QgU3RyaW5nJiB3aW5kb3dGZWF0dXJlc1N0cmluZywKICAgICAgICAgICAgIERP
TVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZpcnN0V2luZG93KTsKIAotICAgICAg
ICB2b2lkIHNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkaWFsb2dGZWF0dXJlc1N0cmluZywgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdp
bmRvdyYgZmlyc3RXaW5kb3csIHN0ZDo6ZnVuY3Rpb248dm9pZCAoRE9NV2luZG93Jik+IHByZXBh
cmVEaWFsb2dGdW5jdGlvbik7Ci0KICAgICAgICAgdm9pZCBhbGVydChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogICAgICAgICBib29sIGNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKICAg
ICAgICAgU3RyaW5nIHByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlKTsKQEAgLTM1Myw3ICszNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0K
ICAgICAgICAgdmlydHVhbCB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVm
KCk7IH0KIAotICAgICAgICBzdGF0aWMgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBGcmFtZSYgZmlyc3RGcmFt
ZSwgRnJhbWUmIG9wZW5lckZyYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKERPTVdpbmRvdyYpPiBw
cmVwYXJlRGlhbG9nRnVuY3Rpb24gPSBudWxscHRyKTsKKyAgICAgICAgc3RhdGljIFJlZlB0cjxG
cmFtZT4gY3JlYXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNT
dHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBET01XaW5kb3cmIGFjdGl2
ZVdpbmRvdywgRnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1lJiBvcGVuZXJGcmFtZSk7CiAgICAgICAg
IGJvb2wgaXNJbnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwogCiAgICAgICAgIHZvaWQgcmVzZXRET01XaW5kb3dQcm9w
ZXJ0aWVzKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAxOTU2
ODgpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAy
MDA5LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNi0yMDA5LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dApAQCAtNzAsMTAgKzcwLDYgQEAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBET01TdHJpbmcgbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25hbCBE
T01TdHJpbmcgb3B0aW9ucyk7CiAKLSAgICBbQ3VzdG9tXSBhbnkgc2hvd01vZGFsRGlhbG9nKERP
TVN0cmluZyB1cmwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRp
b25hbCBhbnkgZGlhbG9nQXJncywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG9wdGlvbmFsIERPTVN0cmluZyBmZWF0dXJlQXJncyk7Ci0KICAgICB2b2lkIGFsZXJ0KFtE
ZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG1lc3NhZ2UpOwogICAgIGJvb2xl
YW4gY29uZmlybShbRGVmYXVsdD1VbmRlZmluZWRdIG9wdGlvbmFsIERPTVN0cmluZyBtZXNzYWdl
KTsKICAgICBbVHJlYXRSZXR1cm5lZE51bGxTdHJpbmdBcz1OdWxsXSBET01TdHJpbmcgcHJvbXB0
KFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgRE9NU3RyaW5nIG1lc3NhZ2UsCkluZGV4OiBT
b3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAxNi0w
MS0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1v
dmUgc2hvd01vZGFsRGlhbG9nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTE4ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2NzQ3MTgxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgQVBJIGhh
cyBiZWVuIGRlcHJlY2F0ZWQgZm9yIHllYXJzLCBhbmQgaGFzIGFscmVhZHkgYmVlbiByZW1vdmVk
IGZyb20KKyAgICAgICAgYWxsIG90aGVyIGJyb3dzZXJzLiBUaW1lIHRvIGdvIQorCisgICAgICAg
ICogVXNlckludGVyZmFjZS9FeHRlcm5hbC9FU0xpbnQvZXNsaW50LmpzOiBSZW1vdmUgcmVmZXJl
bmNlIHRvIHNob3dNb2RhbERpYWxvZy4KKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL01vZGVscy9O
YXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanM6IERpdHRvLgorCiAyMDE2LTAxLTI2ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVtb3ZlIHVudXNlZCBGcmFtZXNMYXJnZS5wbmcgdmFyaWFudHMsIG9ubHkgdGhlIHNtYWxsZXIg
RnJhbWVzIGljb24gaXMgdXNlZCBmb3IgdGhlIFJlbmRlcmluZyBGcmFtZXMgdGltZWxpbmUKSW5k
ZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VTTGludC9l
c2xpbnQuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvRXh0ZXJuYWwvRVNMaW50L2VzbGludC5qcwkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRVNMaW50L2VzbGludC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTk2LDcgKzE5Niw2IEBAIG1vZHVsZS5leHBvcnRzPXsKICAgICAg
ICAgICAgICJzZXRJbnRlcnZhbCI6IGZhbHNlLAogICAgICAgICAgICAgInNldFRpbWVvdXQiOiBm
YWxzZSwKICAgICAgICAgICAgICJTaGFyZWRXb3JrZXIiOiBmYWxzZSwKLSAgICAgICAgICAgICJz
aG93TW9kYWxEaWFsb2ciOiBmYWxzZSwKICAgICAgICAgICAgICJzdG9wIjogZmFsc2UsCiAgICAg
ICAgICAgICAiU1ZHQUVsZW1lbnQiOiBmYWxzZSwKICAgICAgICAgICAgICJTVkdBbHRHbHlwaERl
ZkVsZW1lbnQiOiBmYWxzZSwKSW5kZXg6IFNvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy9OYXRpdmVGdW5jdGlvblBhcmFtZXRlcnMuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFy
YW1ldGVycy5qcwkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvTW9kZWxzL05hdGl2ZUZ1bmN0aW9uUGFyYW1ldGVycy5qcwkod29ya2luZyBj
b3B5KQpAQCAtNDE3LDcgKzQxNyw2IEBAIFdlYkluc3BlY3Rvci5OYXRpdmVQcm90b3R5cGVGdW5j
dGlvblBhcmEKICAgICAgICAgc2Nyb2xsVG86ICJbeF0sIFt5XSIsCiAgICAgICAgIHNldEludGVy
dmFsOiAiZnVuYywgW2RlbGF5XSwgWy4uLnBhcmFtc10iLAogICAgICAgICBzZXRUaW1lb3V0OiAi
ZnVuYywgW2RlbGF5XSwgWy4uLnBhcmFtc10iLAotICAgICAgICBzaG93TW9kYWxEaWFsb2c6ICJ1
cmwsIFthcmd1bWVudHNdLCBbb3B0aW9uc10iLAogICAgICAgICBfX3Byb3RvX186IG51bGwsCiAg
ICAgfSwKIApJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTk1NzAzKQorKysgU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTYtMDEtMjgg
IEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNo
b3dNb2RhbERpYWxvZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUxODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIEFQSSBoYXMgYmVl
biBkZXByZWNhdGVkIGZvciB5ZWFycywgYW5kIGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9t
CisgICAgICAgIGFsbCBvdGhlciBicm93c2Vycy4gVGltZSB0byBnbyEKKworICAgICAgICAqIFNo
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKTogUmVtb3ZlICdjYW5SdW5Nb2RhbCcgZmxh
Zy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKTog
RGl0dG8uCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6CisgICAgICAgIChBUEk6OlVJQ2xp
ZW50OjpjYW5SdW5Nb2RhbCk6IERlbGV0ZWQuCisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpydW5N
b2RhbCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6Cisg
ICAgICAgIChmaXhVcEJvdGNoZWRQYWdlVUlDbGllbnQpOiBEZXByZWNhdGUgJ3J1bk1vZGFsJwor
ICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xpZW50KTogUmVtb3ZlICdjYW5SdW5Nb2RhbCcgYW5k
ICdydW5Nb2RhbCcgbWV0aG9kcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlD
bGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRVSUNsaWVudCk6IERvbid0IGNhbGwgJ3NldENhblJ1
bk1vZGFsJyBhbnltb3JlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNyZWF0aW9u
UGFyYW1ldGVycyk6IE5vIGxvbmdlciBzZXQgJ2NhblJ1bk1vZGFsJyBmbGFnLgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnJ1bk1vZGFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzZXRDYW5SdW5Nb2RhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y2FuUnVuTW9kYWwpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluOiBSZW1vdmUgJ1J1bk1vZGFsJyBtZXNzYWdlLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5Nb2RhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6cnVuTW9kYWwpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpXZWJQYWdl
KTogRG9uJ3QgaW5pdGlhbGl6ZSAnbV9jYW5SdW5Nb2RhbCcgb3IgJ21faXNSdW5uaW5nTW9kYWwn
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNsb3NlKTogUmVtb3ZlICdydW4gbW9kYWwnIGxv
Z2ljLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpydW5Nb2RhbCk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6Y2FuUnVuTW9kYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRDYW5SdW5Nb2RhbCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW46IFJlbW92ZSAnU2V0Q2FuUnVuTW9kYWwnIG1lc3NhZ2UuCisKIDIw
MTYtMDEtMjcgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgV2ViS2l0QWRkaXRpb25zIGV4dGVuc2lvbiBwb2ludHMgdG8gV2ViQ29yZSwgV2ViS2l0
IGFuZCBXZWJLaXRMZWdhY3kKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMTEsIDIwMTUtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDYgQEAgdm9pZCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVuY29kZXIgPDwgdmlzaXRlZExpbmtUYWJs
ZUlEOwogICAgIGVuY29kZXIgPDwgd2Vic2l0ZURhdGFTdG9yZUlEOwogICAgIGVuY29kZXIgPDwg
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsOwotICAgIGVuY29kZXIgPDwgY2FuUnVuTW9k
YWw7CiAgICAgZW5jb2RlciA8PCBkZXZpY2VTY2FsZUZhY3RvcjsKICAgICBlbmNvZGVyIDw8IHZp
ZXdTY2FsZUZhY3RvcjsKICAgICBlbmNvZGVyIDw8IHRvcENvbnRlbnRJbnNldDsKQEAgLTEzMiw4
ICsxMzEsNiBAQCBib29sIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5jYW5SdW5Nb2RhbCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuZGV2aWNlU2Nh
bGVGYWN0b3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLnZpZXdTY2FsZUZhY3RvcikpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDE5NTY4OCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDYgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgewogICAgIHVpbnQ2NF90IHZpc2l0ZWRMaW5rVGFibGVJRDsKICAgICB1aW50NjRfdCB3
ZWJzaXRlRGF0YVN0b3JlSUQ7CiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWw7Ci0gICAgYm9vbCBjYW5SdW5Nb2RhbDsKIAogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
OwogICAgIGZsb2F0IHZpZXdTY2FsZUZhY3RvcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTUtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxMSwgMjAxNS0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAx
MiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTU5Nyw3ICs1OTcsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0VUlDbGllbnQoc3Rk
Ojp1bmlxCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6U2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKG1fdWlDbGllbnQtPmNh
blJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpKSwgbV9wYWdlSUQpOwotICAgIHNldENhblJ1
bk1vZGFsKG1fdWlDbGllbnQtPmNhblJ1bk1vZGFsKCkpOwogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0RmluZENsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGaW5kQ2xpZW50PiBmaW5kQ2xp
ZW50KQpAQCAtNTEzNCw3ICs1MTMzLDYgQEAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBXZWJQ
YWdlUHJveHk6OgogICAgIHBhcmFtZXRlcnMudmlzaXRlZExpbmtUYWJsZUlEID0gbV92aXNpdGVk
TGlua1N0b3JlLT5pZGVudGlmaWVyKCk7CiAgICAgcGFyYW1ldGVycy53ZWJzaXRlRGF0YVN0b3Jl
SUQgPSBtX3dlYnNpdGVEYXRhU3RvcmUtPmlkZW50aWZpZXIoKTsKICAgICBwYXJhbWV0ZXJzLmNh
blJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCA9IG1fdWlDbGllbnQtPmNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpOwotICAgIHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwgPSBtX2NhblJ1
bk1vZGFsOwogICAgIHBhcmFtZXRlcnMuZGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZh
Y3RvcigpOwogICAgIHBhcmFtZXRlcnMudmlld1NjYWxlRmFjdG9yID0gbV92aWV3U2NhbGVGYWN0
b3I7CiAgICAgcGFyYW1ldGVycy50b3BDb250ZW50SW5zZXQgPSBtX3RvcENvbnRlbnRJbnNldDsK
QEAgLTUzNjYsMjAgKzUzNjQsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZHJhd0Zvb3RlcihXZWJG
cmFtZVByCiAgICAgbV91aUNsaWVudC0+ZHJhd0Zvb3Rlcih0aGlzLCBmcmFtZSwgcmVjdCk7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpydW5Nb2RhbCgpCi17Ci0gICAgLy8gU2luY2UgcnVuTW9k
YWwoKSBjYW4gKGFuZCBwcm9iYWJseSB3aWxsKSBzcGluIGEgbmVzdGVkIHJ1biBsb29wIHdlIG5l
ZWQgdG8gdHVybiBvZmYgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyLgotICAgIG1fcHJvY2Vzcy0+
cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0b3AoKTsKLQotICAgIC8vIE91ciBDb25uZWN0aW9uJ3Mg
cnVuIGxvb3AgbWlnaHQgaGF2ZSBtb3JlIG1lc3NhZ2VzIHdhaXRpbmcgdG8gYmUgaGFuZGxlZCBh
ZnRlciB0aGlzIFJ1bk1vZGFsIG1lc3NhZ2UuCi0gICAgLy8gVG8gbWFrZSBzdXJlIHRoZXkgYXJl
IGhhbmRsZWQgaW5zaWRlIG9mIHRoZSB0aGUgbmVzdGVkIG1vZGFsIHJ1biBsb29wIHdlIG11c3Qg
Zmlyc3Qgc2lnbmFsIHRoZSBDb25uZWN0aW9uJ3MKLSAgICAvLyBydW4gbG9vcCBzbyB3ZSdyZSBn
dWFyYW50ZWVkIHRoYXQgaXQgaGFzIGEgY2hhbmNlIHRvIHdha2UgdXAuCi0gICAgLy8gU2VlIGh0
dHA6Ly93ZWJraXQub3JnL2IvODk1OTAgZm9yIG1vcmUgZGlzY3Vzc2lvbi4KLSAgICBtX3Byb2Nl
c3MtPmNvbm5lY3Rpb24oKS0+d2FrZVVwUnVuTG9vcCgpOwotCi0gICAgbV91aUNsaWVudC0+cnVu
TW9kYWwodGhpcyk7Ci19Ci0KIHZvaWQgV2ViUGFnZVByb3h5Ojpub3RpZnlTY3JvbGxlclRodW1i
SXNWaXNpYmxlSW5SZWN0KGNvbnN0IEludFJlY3QmIHNjcm9sbGVyVGh1bWIpCiB7CiAgICAgbV92
aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QgPSBzY3JvbGxlclRodW1iOwpAQCAtNTQ2MiwyMyArNTQ0
Niw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpiYWNrRm9yd2FyZFJlbW92ZWRJdGUKICAgICBtX3By
b2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlbW92ZUJhY2tGb3J3YXJkSXRlbShp
dGVtSUQpLCBtX3BhZ2VJRCk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpzZXRDYW5SdW5Nb2Rh
bChib29sIGNhblJ1bk1vZGFsKQotewotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICAvLyBJdCdzIG9ubHkgcG9zc2libGUgdG8gY2hhbmdlIHRoZSBzdGF0ZSBmb3Ig
YSBXZWJQYWdlIHdoaWNoCi0gICAgLy8gYWxyZWFkeSBxdWFsaWZpZXMgZm9yIHJ1bm5pbmcgbW9k
YWwgY2hpbGQgd2ViIHBhZ2VzLCBvdGhlcndpc2UKLSAgICAvLyB0aGVyZSdzIG5vIG90aGVyIHBv
c3NpYmlsaXR5IHRoYW4gbm90IGFsbG93aW5nIGl0LgotICAgIG1fY2FuUnVuTW9kYWwgPSBtX3Vp
Q2xpZW50LT5jYW5SdW5Nb2RhbCgpICYmIGNhblJ1bk1vZGFsOwotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0Q2FuUnVuTW9kYWwobV9jYW5SdW5Nb2RhbCksIG1fcGFn
ZUlEKTsKLX0KLQotYm9vbCBXZWJQYWdlUHJveHk6OmNhblJ1bk1vZGFsKCkKLXsKLSAgICByZXR1
cm4gaXNWYWxpZCgpID8gbV9jYW5SdW5Nb2RhbCA6IGZhbHNlOwotfQotCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6YmVnaW5QcmludGluZyhXZWJGcmFtZVByb3h5KiBmcmFtZSwgY29uc3QgUHJpbnRJbmZv
JiBwcmludEluZm8pCiB7CiAgICAgaWYgKG1faXNJblByaW50aW5nTW9kZSkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTQtMjAxNSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAx
MSwgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODgyLDkgKzg4Miw2IEBAIHB1YmxpYzoKICAgICBTdHJp
bmcgYWNjZXNzaWJpbGl0eVBsdWdJRCgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzaWJpbGl0eVBs
dWdJRDsgfQogI2VuZGlmCiAKLSAgICB2b2lkIHNldENhblJ1bk1vZGFsKGJvb2wpOwotICAgIGJv
b2wgY2FuUnVuTW9kYWwoKTsKLQogICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJGcmFtZVByb3h5
KiwgY29uc3QgUHJpbnRJbmZvJik7CiAgICAgdm9pZCBlbmRQcmludGluZygpOwogICAgIHZvaWQg
Y29tcHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYs
IFBhc3NSZWZQdHI8Q29tcHV0ZWRQYWdlc0NhbGxiYWNrPik7CkBAIC0xMTk1LDcgKzExOTIsNiBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1
aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgU3RyaW5nIG9yaWdpbklkZW50
aWZpZXIsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhdWRpb0RldmljZVVJRHMsIGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB2aWRlb0RldmljZVVJRHMpOwogICAgIHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJt
aXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFN0
cmluZyBvcmlnaW5JZGVudGlmaWVyKTsKIAotICAgIHZvaWQgcnVuTW9kYWwoKTsKICAgICB2b2lk
IG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpOwogICAgIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90
IG5ld1N0eWxlKTsKICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbGJhcnNGb3JNYWluRnJhbWUoYm9v
bCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyLCBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbgkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMg
Q29weXJpZ2h0IChDKSAyMDEwLTIwMTEsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03Myw3ICs3Myw2IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUGFnZURpZFNjcm9sbCgpCiAgICAgUnVuT3BlblBh
bmVsKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdz
IHBhcmFtZXRlcnMpCiAgICAgUHJpbnRGcmFtZSh1aW50NjRfdCBmcmFtZUlEKSAtPiAoKQotICAg
IFJ1bk1vZGFsKCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNv
cmU6OkludFJlY3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKGludDMyX3QgbmV3U3R5bGUpCiAgICAgRGlkQ2hhbmdlU2Nyb2xsYmFyc0Zvck1h
aW5GcmFtZShib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIsIGJvb2wgaGFzVmVydGljYWxTY3Jv
bGxiYXIpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5o
CShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTE0Myw5ICsxNDMsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIGRyYXdGb290ZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkqLCBXZWJLaXQ6OldlYkZy
YW1lUHJveHkqLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdlYktpdDo6V2ViRnJhbWVQcm94
eSopIHsgfQogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSB7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVy
KFdlYktpdDo6V2ViUGFnZVByb3h5KiwgY29uc3QgV1RGOjpTdHJpbmcmLCBjb25zdCBXVEY6OlN0
cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJiwgQVBJOjpEYXRhKikgeyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGlubmVkU3RhdGVEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCShyZXZpc2lvbiAx
OTU2ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIw
MTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEw
LCAyMDE1LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0xNDExLDggKzE0MTEsOCBAQCBzdGF0aWMgdm9pZCBmaXhV
cEJvdGNoZWRQYWdlVUlDbGllbnQoV0tQCiAgICAgICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsK
ICAgICAgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOwogICAgICAgICBXS1BhZ2VQcmludEZyYW1l
Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50
RnJhbWU7Ci0gICAgICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7Ci0gICAgICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUK
KyAgICAgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIHJ1bk1vZGFsCisgICAg
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJh
bmRGb3JNYWluRnJhbWUKICAgICAgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0Zv
bGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxv
YWRzRm9sZGVyOwogICAgICAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHRf
dW5hdmFpbGFibGU7CiAKQEAgLTE0NzUsOCArMTQ3NSw4IEBAIHN0YXRpYyB2b2lkIGZpeFVwQm90
Y2hlZFBhZ2VVSUNsaWVudChXS1AKICAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC5kcmF3SGVh
ZGVyLAogICAgICAgICBib3RjaGVkUGFnZVVJQ2xpZW50LmRyYXdGb290ZXIsCiAgICAgICAgIGJv
dGNoZWRQYWdlVUlDbGllbnQucHJpbnRGcmFtZSwKLSAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVu
dC5ydW5Nb2RhbCwKICAgICAgICAgYm90Y2hlZFBhZ2VVSUNsaWVudC51bnVzZWQxLAorICAgICAg
ICBib3RjaGVkUGFnZVVJQ2xpZW50LnVudXNlZDIsCiAgICAgICAgIGJvdGNoZWRQYWdlVUlDbGll
bnQuc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlciwKICAgICAgICAgYm90Y2hlZFBhZ2VV
SUNsaWVudC5zaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlLAogICAgICAgICBi
b3RjaGVkUGFnZVVJQ2xpZW50LmNyZWF0ZU5ld1BhZ2UsCkBAIC0yMDc2LDE5ICsyMDc2LDYgQEAg
dm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZwogICAgICAgICAgICAgbV9j
bGllbnQucHJpbnRGcmFtZSh0b0FQSShwYWdlKSwgdG9BUEkoZnJhbWUpLCBtX2NsaWVudC5iYXNl
LmNsaWVudEluZm8pOwogICAgICAgICB9CiAKLSAgICAgICAgdmlydHVhbCBib29sIGNhblJ1bk1v
ZGFsKCkgY29uc3Qgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIG1fY2xp
ZW50LnJ1bk1vZGFsOwotICAgICAgICB9Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFs
KFdlYlBhZ2VQcm94eSogcGFnZSkgb3ZlcnJpZGUKLSAgICAgICAgewotICAgICAgICAgICAgaWYg
KCFtX2NsaWVudC5ydW5Nb2RhbCkKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ICAgIG1fY2xpZW50LnJ1bk1vZGFsKHRvQVBJKHBhZ2UpLCBtX2NsaWVudC5iYXNlLmNsaWVudElu
Zm8pOwotICAgICAgICB9Ci0KICAgICAgICAgdmlydHVhbCB2b2lkIHNhdmVEYXRhVG9GaWxlSW5E
b3dubG9hZHNGb2xkZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBTdHJpbmcmIHN1Z2dlc3Rl
ZEZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmF0
aW5nVVJMU3RyaW5nLCBBUEk6OkRhdGEqIGRhdGEpIG92ZXJyaWRlCiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmICghbV9jbGllbnQuc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcikKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VVSUNsaWVudC5o
CShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlVUlDbGllbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEzLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTU5LDggKzE1OSw4IEBAIHR5cGVkZWYgc3Ry
dWN0IFdLUGFnZVVJQ2xpZW50VjAgewogICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKICAgICBX
S1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRyYXdGb290ZXI7CiAgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOwotICAgIFdL
UGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcnVuTW9kYWw7Ci0gICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJl
IGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQorICAgIHZvaWQqICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2Vk
MTsgLy8gVXNlZCB0byBiZSBydW5Nb2RhbAorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNl
ZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKICAgICBXS1BhZ2VTYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
IHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xkZXI7CiAgICAgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRJ
bnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxlOwogfSBXS1BhZ2VVSUNsaWVudFYwOwpAQCAt
MjA0LDggKzIwNCw4IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjEgewogICAgIFdL
UGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZHJhd0hlYWRlcjsKICAgICBXS1BhZ2VEcmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdGb290ZXI7CiAgICAgV0tQ
YWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwcmludEZyYW1lOwotICAgIFdLUGFnZVVJQ2xpZW50Q2FsbGJhY2sgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVuTW9kYWw7Ci0gICAgdm9pZCog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5G
cmFtZQorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBydW5Nb2RhbAorICAg
IHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW51c2VkMjsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRG
b3JNYWluRnJhbWUKICAgICBXS1BhZ2VTYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgIHNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNGb2xk
ZXI7CiAgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0X3VuYXZhaWxhYmxl
OwogCkBAIC0yNTUsOCArMjU1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgV0tQYWdlVUlDbGllbnRWMiB7
CiAgICAgV0tQYWdlRHJhd0hlYWRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBkcmF3SGVhZGVyOwogICAgIFdLUGFnZURyYXdGb290ZXJDYWxsYmFj
ayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0Zvb3RlcjsK
ICAgICBXS1BhZ2VQcmludEZyYW1lQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHByaW50RnJhbWU7Ci0gICAgV0tQYWdlVUlDbGllbnRDYWxsYmFjayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5Nb2RhbDsKLSAg
ICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5k
Rm9yTWFpbkZyYW1lCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIHJ1bk1v
ZGFsCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZENvbXBsZXRlUnVi
YmVyQmFuZEZvck1haW5GcmFtZQogICAgIFdLUGFnZVNhdmVEYXRhVG9GaWxlSW5Eb3dubG9hZHNG
b2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2ZURhdGFUb0ZpbGVJbkRvd25s
b2Fkc0ZvbGRlcjsKICAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVycnVwdEphdmFTY3JpcHRfdW5h
dmFpbGFibGU7CiAKQEAgLTMxMSw4ICszMTEsOCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNs
aWVudFYzIHsKICAgICBXS1BhZ2VEcmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFkZXI7CiAgICAgV0tQYWdlRHJhd0Zvb3Rl
ckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3
Rm9vdGVyOwogICAgIFdLUGFnZVByaW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFtZTsKLSAgICBXS1BhZ2VVSUNsaWVudENh
bGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1v
ZGFsOwotICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1
YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8g
YmUgcnVuTW9kYWwKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDI7IC8vIFVzZWQgdG8gYmUgZGlkQ29t
cGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCiAgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRv
d25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmls
ZUluRG93bmxvYWRzRm9sZGVyOwogICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNj
cmlwdF91bmF2YWlsYWJsZTsKIApAQCAtMzcwLDggKzM3MCw4IEBAIHR5cGVkZWYgc3RydWN0IFdL
UGFnZVVJQ2xpZW50VjQgewogICAgIFdLUGFnZURyYXdIZWFkZXJDYWxsYmFjayAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhd0hlYWRlcjsKICAgICBXS1BhZ2VE
cmF3Rm9vdGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdGb290ZXI7CiAgICAgV0tQYWdlUHJpbnRGcmFtZUNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludEZyYW1lOwotICAgIFdLUGFnZVVJ
Q2xpZW50Q2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcnVuTW9kYWw7Ci0gICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQxOyAvLyBVc2VkIHRvIGJlIGRpZENv
bXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZS4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDE7IC8v
IFVzZWQgdG8gYmUgcnVuTW9kYWwKKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDI7IC8vIFVzZWQgdG8g
YmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lLgogICAgIFdLUGFnZVNhdmVEYXRh
VG9GaWxlSW5Eb3dubG9hZHNGb2xkZXJDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgc2F2
ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcjsKICAgICB2b2lkKiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHRfdW5hdmFpbGFibGU7CiAKQEAgLTM5MCw5ICszOTAsOSBAQCB0eXBlZGVm
IHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY0IHsKICAgICBXS1BhZ2VQaW5uZWRTdGF0ZURpZENoYW5n
ZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpbm5lZFN0YXRlRGlk
Q2hhbmdlOwogCiAgICAgLy8gVmVyc2lvbiA0LgotICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMjsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCi0gICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgotICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNDsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMzsgLy8g
VXNlZCB0byBiZSBkaWRCZWdpblRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAg
dm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJlIGRpZFJlY29nbml6ZUxvbmdNb3VzZVBy
ZXNzLgorICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdW51c2VkNTsgLy8gVXNlZCB0byBiZSBkaWRDYW5jZWxUcmFj
a2luZ1BvdGVudGlhbExvbmdNb3VzZVByZXNzLgogICAgIFdLUGFnZUlzUGxheWluZ0F1ZGlvRGlk
Q2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGF5aW5nQXVk
aW9EaWRDaGFuZ2U7CiB9IFdLUGFnZVVJQ2xpZW50VjQ7CiAKQEAgLTQzNSw4ICs0MzUsOCBAQCB0
eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY1IHsKICAgICBXS1BhZ2VEcmF3SGVhZGVyQ2Fs
bGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRyYXdIZWFk
ZXI7CiAgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOwogICAgIFdLUGFnZVByaW50RnJhbWVDYWxs
YmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRGcmFt
ZTsKLSAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwotICAgIHZvaWQqICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW51c2VkMTsgLy8g
VXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUKKyAgICB2b2lkKiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgcnVuTW9kYWwKKyAgICB2b2lkKiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNl
ZDI7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFpbkZyYW1lCiAgICAg
V0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOwogICAgIHZvaWQqICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKIApAQCAtNDU1LDkgKzQ1
NSw5IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjUgewogICAgIFdLUGFnZVBpbm5l
ZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGlubmVkU3RhdGVEaWRDaGFuZ2U7CiAKICAgICAvLyBWZXJzaW9uIDQuCi0gICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcy4KLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3MuCi0gICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAvLyBVc2VkIHRvIGJl
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3RlbnRpYWxMb25nTW91
c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8gYmUgZGlkUmVjb2du
aXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OyAvLyBVc2VkIHRvIGJl
IGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCiAgICAgV0tQYWdlSXNQ
bGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKIAogICAgIC8vIFZlcnNpb24gNS4KQEAgLTUwOCw4
ICs1MDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBXS1BhZ2VVSUNsaWVudFY2IHsKICAgICBXS1BhZ2VE
cmF3SGVhZGVyQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGRyYXdIZWFkZXI7CiAgICAgV0tQYWdlRHJhd0Zvb3RlckNhbGxiYWNrICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmF3Rm9vdGVyOwogICAgIFdLUGFnZVBy
aW50RnJhbWVDYWxsYmFjayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpbnRGcmFtZTsKLSAgICBXS1BhZ2VVSUNsaWVudENhbGxiYWNrICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bk1vZGFsOwotICAgIHZvaWQqICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW51c2VkMTsgLy8gVXNlZCB0byBiZSBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJhbWUK
KyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVudXNlZDE7IC8vIFVzZWQgdG8gYmUgcnVuTW9kYWwKKyAgICB2b2lk
KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVudXNlZDI7IC8vIFVzZWQgdG8gYmUgZGlkQ29tcGxldGVSdWJiZXJCYW5kRm9yTWFp
bkZyYW1lCiAgICAgV0tQYWdlU2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlckNhbGxiYWNr
ICAgICAgICAgICAgICAgICAgICAgICBzYXZlRGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyOwog
ICAgIHZvaWQqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdF91bmF2YWlsYWJsZTsKIApA
QCAtNTI4LDkgKzUyOCw5IEBAIHR5cGVkZWYgc3RydWN0IFdLUGFnZVVJQ2xpZW50VjYgewogICAg
IFdLUGFnZVBpbm5lZFN0YXRlRGlkQ2hhbmdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGlubmVkU3RhdGVEaWRDaGFuZ2U7CiAKICAgICAvLyBWZXJzaW9uIDQuCi0g
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQyOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcy4KLSAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDM7IC8vIFVzZWQgdG8g
YmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCi0gICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ0OyAv
LyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCisg
ICAgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnVzZWQzOyAvLyBVc2VkIHRvIGJlIGRpZEJlZ2luVHJhY2tpbmdQb3Rl
bnRpYWxMb25nTW91c2VQcmVzcy4KKyAgICB2b2lkKiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVudXNlZDQ7IC8vIFVzZWQgdG8g
YmUgZGlkUmVjb2duaXplTG9uZ01vdXNlUHJlc3MuCisgICAgdm9pZCogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnVzZWQ1OyAv
LyBVc2VkIHRvIGJlIGRpZENhbmNlbFRyYWNraW5nUG90ZW50aWFsTG9uZ01vdXNlUHJlc3MuCiAg
ICAgV0tQYWdlSXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2VDYWxsYmFjayAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZTsKIAogICAgIC8vIFZlcnNpb24g
NS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTAsIDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDEwLTIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKS4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI0MiwxNiArMjQyLDYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNob3coKQogICAgIG1fcGFnZS0+c2hvdygpOwogfQogCi1ib29sIFdl
YkNocm9tZUNsaWVudDo6Y2FuUnVuTW9kYWwoKQotewotICAgIHJldHVybiBtX3BhZ2UtPmNhblJ1
bk1vZGFsKCk7Ci19Ci0KLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5Nb2RhbCgpCi17Ci0gICAg
bV9wYWdlLT5ydW5Nb2RhbCgpOwotfQotCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbGJh
cnNWaXNpYmxlKGJvb2wgdG9vbGJhcnNBcmVWaXNpYmxlKQogewogICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUb29sYmFyc0FyZVZpc2libGUodG9vbGJhcnNBcmVW
aXNpYmxlKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHJldmlzaW9uIDE5NTY4OCkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDEwLCAyMDExLCAyMDEyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxMC0yMDEyLCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNp
ZGlhcnkoLWllcykuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC03Myw5ICs3Myw2IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgb3ZlcnJpZGU7CiAg
ICAgdmlydHVhbCB2b2lkIHNob3coKSBvdmVycmlkZTsKICAgICAKLSAgICB2aXJ0dWFsIGJvb2wg
Y2FuUnVuTW9kYWwoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoKSBvdmVy
cmlkZTsKLSAgICAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSBvdmVycmlkZTsKICAg
ICAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAsIDIwMTEsIDIwMTIsIDIwMTMtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgpAQCAtMzA5LDggKzMwOSw2IEBA
IFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICNlbmRpZgogICAgICwg
bV9wYWdlU2Nyb2xsZWRIeXN0ZXJlc2lzKFt0aGlzXShIeXN0ZXJlc2lzU3RhdGUgc3RhdGUpIHsg
aWYgKHN0YXRlID09IEh5c3RlcmVzaXNTdGF0ZTo6U3RvcHBlZCkgcGFnZVN0b3BwZWRTY3JvbGxp
bmcoKTsgfSwgcGFnZVNjcm9sbEh5c3RlcmVzaXNTZWNvbmRzKQogICAgICwgbV9jYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwocGFyYW1ldGVycy5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwpCi0gICAgLCBtX2NhblJ1bk1vZGFsKHBhcmFtZXRlcnMuY2FuUnVuTW9kYWwpCi0gICAg
LCBtX2lzUnVubmluZ01vZGFsKGZhbHNlKQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
LCBtX2lzU3RhcnRpbmdEcmFnKGZhbHNlKQogI2VuZGlmCkBAIC0xMDAyLDE2ICsxMDAwLDEwIEBA
IHZvaWQgV2ViUGFnZTo6Y2xvc2UoKQogICAgIG1fcGFnZSA9IG51bGxwdHI7CiAgICAgbV9kcmF3
aW5nQXJlYSA9IG51bGxwdHI7CiAKLSAgICBib29sIGlzUnVubmluZ01vZGFsID0gbV9pc1J1bm5p
bmdNb2RhbDsKLSAgICBtX2lzUnVubmluZ01vZGFsID0gZmFsc2U7Ci0KICAgICAvLyBUaGUgV2Vi
UGFnZSBjYW4gYmUgZGVzdHJveWVkIGJ5IHRoaXMgY2FsbC4KICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5yZW1vdmVXZWJQYWdlKG1fcGFnZUlEKTsKIAogICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnVwZGF0ZUFjdGl2ZVBhZ2VzKCk7Ci0KLSAgICBpZiAoaXNSdW5uaW5nTW9kYWwpCi0g
ICAgICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7CiB9CiAKIHZvaWQgV2ViUGFnZTo6dHJ5Q2xv
c2UoKQpAQCAtNDA5NiwyMiArNDA4OCw2IEBAIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRNZWRp
YVdoZW5JbldpbmQKICAgICAgICAgbV9zZXRDYW5TdGFydE1lZGlhVGltZXIuc3RhcnRPbmVTaG90
KDApOwogfQogCi12b2lkIFdlYlBhZ2U6OnJ1bk1vZGFsKCkKLXsKLSAgICBpZiAobV9pc0Nsb3Nl
ZCkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChtX2lzUnVubmluZ01vZGFsKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBtX2lzUnVubmluZ01vZGFsID0gdHJ1ZTsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bk1vZGFsKCkpOwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICBS
ZWY8V2ViUGFnZT4gcHJvdGVjdG9yKCp0aGlzKTsKLSNlbmRpZgotICAgIFJ1bkxvb3A6OnJ1bigp
OwotICAgIEFTU0VSVCghbV9pc1J1bm5pbmdNb2RhbCk7Ci19Ci0KIGJvb2wgV2ViUGFnZTo6Y2Fu
SGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7
CiAgICAgaWYgKFNjaGVtZVJlZ2lzdHJ5OjpzaG91bGRMb2FkVVJMU2NoZW1lQXNFbXB0eURvY3Vt
ZW50KHJlcXVlc3QudXJsKCkucHJvdG9jb2woKSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDE5NTY4OCkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExLCAyMDEzIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDExLCAyMDEz
LCAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtNzU2LDExICs3NTYsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBjb25zdCB7IHJldHVybiBtX2NhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbDsgfQogICAgIHZvaWQgc2V0Q2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKSB7IG1fY2FuUnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsID0gY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
OyB9CiAKLSAgICBib29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4gbV9jYW5SdW5Nb2Rh
bDsgfQotICAgIHZvaWQgc2V0Q2FuUnVuTW9kYWwoYm9vbCBjYW5SdW5Nb2RhbCkgeyBtX2NhblJ1
bk1vZGFsID0gY2FuUnVuTW9kYWw7IH0KLQotICAgIHZvaWQgcnVuTW9kYWwoKTsKLQogICAgIHZv
aWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCShyZXZpc2lvbiAxOTU2ODgpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkod29ya2lu
ZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEwLTIwMTEsIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMTgsNyArMzE4LDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgRHVtbXkoKSAtPiAoYm9vbCBkdW1teVJldHVybikKIAogICAgIFNldENhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbCkKLSAgICBTZXRDYW5SdW5Nb2RhbChib29sIGNhblJ1bk1vZGFsKQogCiAjaWYgUExBVEZP
Uk0oRUZMKQogICAgIFNldFRoZW1lUGF0aChTdHJpbmcgdGhlbWVQYXRoKQpJbmRleDogU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTYtMDEtMjggIEJyZW50IEZ1bGdo
YW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHNob3dNb2RhbERpYWxv
ZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODg1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIEFQSSBoYXMgYmVlbiBkZXByZWNhdGVk
IGZvciB5ZWFycywgYW5kIGhhcyBhbHJlYWR5IGJlZW4gcmVtb3ZlZCBmcm9tCisgICAgICAgIGFs
bCBvdGhlciBicm93c2Vycy4gVGltZSB0byBnbyEKKworICAgICAgICBCYXNlZCBvbiBjaGFuZ2Vz
IGZyb20gQmxpbmsgKHBhdGNoIGJ5IDxqYW1lc3JAY2hyb21pdW0ub3JnPik6CisgICAgICAgIDxo
dHRwczovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2JnJldmlzaW9uPTE2
NzczNj4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Y2FuUnVuTW9kYWwpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpydW5Nb2RhbCk6IERlbGV0ZWQuCisKIDIwMTYtMDEtMjcgIEFsZXhleSBQcm9za3VyeWFr
b3YgIDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEVOQUJMRV9DVVJSRU5UU1JDCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTYyLDkgKzYyLDYgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6
OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgY2FuUnVuTW9kYWwoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoKSBv
dmVycmlkZTsKLQogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpIG92ZXJyaWRlOwogICAg
IApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQkocmV2aXNpb24gMTk1Njg4KQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
MCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMDgsIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0zMDQsMTYgKzMwNCw2IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzaG93KCkKICAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
d1Nob3c6bV93ZWJWaWV3XTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bk1vZGFs
KCkKLXsKLSAgICByZXR1cm4gW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3Rvcih3ZWJWaWV3UnVuTW9kYWw6KV07Ci19Ci0KLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpydW5Nb2RhbCgpCi17Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0
b3Iod2ViVmlld1J1bk1vZGFsOikpOwotfQotCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9v
bGJhcnNWaXNpYmxlKGJvb2wgYikKIHsKICAgICBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzptX3dlYlZpZXcgc2V0VG9vbGJhcnNWaXNpYmxlOmJdOwpJbmRleDogVG9v
bHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk1
Nzc4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMTYtMDEtMjggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIHNob3dNb2RhbERpYWxvZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4
MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlz
IEFQSSBoYXMgYmVlbiBkZXByZWNhdGVkIGZvciB5ZWFycywgYW5kIGhhcyBhbHJlYWR5IGJlZW4g
cmVtb3ZlZCBmcm9tCisgICAgICAgIGFsbCBvdGhlciBicm93c2Vycy4gVGltZSB0byBnbyEKKwor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V1RSOjpUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQYWdlKTogRG8gbm90IGJpbmQgdG8gJ3J1
bk1vZGFsJyBXSzIgZGVsZWdhdGUuCisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpjcmVh
dGVXZWJWaWV3V2l0aE9wdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OnJ1bk1vZGFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmg6CisKIDIwMTYtMDEtMjggIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkZml4IGFmdGVyIHIxOTU3NDMuCklu
ZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
MTk1Njg4KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwLCAy
MDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEwLCAyMDE0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNzAsMTQgKzE3MCw2IEBAIHN0YXRpYyBib29s
IHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgKICAgICByZXR1cm4gVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmJlZm9yZVVubG9hZFJldHVyblZhbHVlKCk7CiB9CiAKLXZvaWQgVGVzdENv
bnRyb2xsZXI6OnJ1bk1vZGFsKFdLUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZv
KQotewotICAgIFBsYXRmb3JtV2ViVmlldyogdmlldyA9IHN0YXRpY19jYXN0PFBsYXRmb3JtV2Vi
Vmlldyo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLSAgICB2aWV3LT5zZXRXaW5k
b3dJc0tleShmYWxzZSk7Ci0gICAgcnVuTW9kYWwodmlldyk7Ci0gICAgdmlldy0+c2V0V2luZG93
SXNLZXkodHJ1ZSk7Ci19Ci0KIHN0YXRpYyB2b2lkIGNsb3NlT3RoZXJQYWdlKFdLUGFnZVJlZiBw
YWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFdLUGFnZUNsb3NlKHBhZ2UpOwpA
QCAtMjU5LDcgKzI1MSw3IEBAIFdLUGFnZVJlZiBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlT3RoZXJQ
YWcKICAgICAgICAgMCwgLy8gZHJhd0hlYWRlcgogICAgICAgICAwLCAvLyBkcmF3Rm9vdGVyCiAg
ICAgICAgIDAsIC8vIHByaW50RnJhbWUKLSAgICAgICAgcnVuTW9kYWwsCisgICAgICAgIDAsIC8v
IHJ1bk1vZGFsLAogICAgICAgICAwLCAvLyBkaWRDb21wbGV0ZVJ1YmJlckJhbmRGb3JNYWluRnJh
bWUKICAgICAgICAgMCwgLy8gc2F2ZURhdGFUb0ZpbGVJbkRvd25sb2Fkc0ZvbGRlcgogICAgICAg
ICAwLCAvLyBzaG91bGRJbnRlcnJ1cHRKYXZhU2NyaXB0CkBAIC01MjIsNyArNTE0LDcgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6Y3JlYXRlV2ViVmlld1dpdGhPcAogICAgICAgICAwLCAvLyBkcmF3
SGVhZGVyCiAgICAgICAgIDAsIC8vIGRyYXdGb290ZXIKICAgICAgICAgMCwgLy8gcHJpbnRGcmFt
ZQotICAgICAgICBydW5Nb2RhbCwKKyAgICAgICAgMCwgLy8gcnVuTW9kYWwsCiAgICAgICAgIDAs
IC8vIGRpZENvbXBsZXRlUnViYmVyQmFuZEZvck1haW5GcmFtZQogICAgICAgICAwLCAvLyBzYXZl
RGF0YVRvRmlsZUluRG93bmxvYWRzRm9sZGVyCiAgICAgICAgIDAsIC8vIHNob3VsZEludGVycnVw
dEphdmFTY3JpcHQKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJ
KHJldmlzaW9uIDE5NTY4OCkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMjQwLDcgKzI0MCw2IEBAIHByaXZhdGU6CiAKICAgICBz
dGF0aWMgV0tQYWdlUmVmIGNyZWF0ZU90aGVyUGFnZShXS1BhZ2VSZWYsIFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYsIFdLTmF2aWdhdGlvbkFjdGlvblJlZiwgV0tXaW5kb3dGZWF0dXJlc1JlZiwgY29u
c3Qgdm9pZCopOwogCi0gICAgc3RhdGljIHZvaWQgcnVuTW9kYWwoV0tQYWdlUmVmLCBjb25zdCB2
b2lkKiBjbGllbnRJbmZvKTsKICAgICBzdGF0aWMgdm9pZCBydW5Nb2RhbChQbGF0Zm9ybVdlYlZp
ZXcqKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBsaWJyYXJ5UGF0aEZvclRlc3RpbmcoKTsK
SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDE5NTY4OCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTAxLTI4ICBCcmVudCBGdWxnaGFtICA8
YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzaG93TW9kYWxEaWFsb2cKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBBUEkgaGFzIGJlZW4gZGVwcmVjYXRlZCBmb3Ig
eWVhcnMsIGFuZCBoYXMgYWxyZWFkeSBiZWVuIHJlbW92ZWQgZnJvbQorICAgICAgICBhbGwgb3Ro
ZXIgYnJvd3NlcnMuIFRpbWUgdG8gZ28hCisKKyAgICAgICAgQmFzZWQgb24gY2hhbmdlcyBmcm9t
IEJsaW5rIChwYXRjaCBieSA8amFtZXNyQGNocm9taXVtLm9yZz4pOgorICAgICAgICA8aHR0cHM6
Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldiZyZXZpc2lvbj0xNjc3MzY+
CisKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJp
bmctbW9kYWwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sOiBSZW1vdmVkLgorICAg
ICAgICAqIGZhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1taW4tc2l6ZS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXpl
Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9XaW5k
b3dQcm9wZXJ0aWVzLmpzOgorICAgICAgICAqIGZhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2lu
ZG93LXByb3BlcnRpZXMuanM6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3Nob3dNb2RhbERp
YWxvZy1tYW5kYXRvcnktcGFyYW1ldGVyLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAg
KiBmYXN0L2RvbS9XaW5kb3cvc2hvd01vZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXIuaHRt
bDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWZ1bmN0aW9uLWZy
YW1lLWdldHRlci1wcmVjZWRlbmNlLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1mdW5jdGlvbi1uYW1lLWdldHRlci1wcmVjZWRlbmNlLmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS5odG1sOgorICAgICAgICAqIGZh
c3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sOgor
ICAgICAgICAqIGZhc3QvZG9tL3Jlc291cmNlcy93cmFwcGVyLWlkZW50aXR5LWJhc2UuanM6Cisg
ICAgICAgICogZmFzdC9kb20vd3JhcHBlci1pZGVudGl0eS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9ldmVudHMvc2Nyb2xsLWV2ZW50LWR1cmluZy1tb2RhbC1kaWFsb2ctZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcm9sbC1ldmVudC1kdXJpbmct
bW9kYWwtZGlhbG9nLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvc2hvdy1t
b2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIGZhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlhbG9nLW9uYmx1ci1vbmZvY3VzLmh0bWw6IFJl
bW92ZWQuCisgICAgICAgICogZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLWV4cGVjdGVk
LnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cu
aHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1jYWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jYWxsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXQuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3ItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mt
ZnJhbWUtYWNjZXNzLWdldE93blByb3BlcnR5RGVzY3JpcHRvci5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWw6
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZy
YW1lLWZvci1wdXQtdGVzdC5odG1sOgorICAgICAgICAqIGpzL2RvbS9mdW5jdGlvbi1sZW5ndGgt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9mdW5jdGlvbi1sZW5ndGguaHRtbDoKKyAg
ICAgICAgKiBqcy9kb20vZ2xvYmFsLWZ1bmN0aW9uLXJlc29sdmUtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvZ2xvYmFsLWZ1bmN0aW9uLXJlc29sdmUuanM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTYtMDEtMjcgIEJyYWR5IEVpZHNvbiAgPGJl
aWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIExheW91dFRlc3QgZmFzdC9sb2FkZXIvc3RhdGVv
YmplY3RzL3JlcGxhY2VzdGF0ZS1mcmVxdWVuY3ktaWZyYW1lLmh0bWwgaXMgZmxha3kgb24gRWwg
Q2FwLCBhbHdheXMgdGltZXMgb3V0IG9uIFlvc2VtaXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTU2ODgp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
dXJpbmctbW9kYWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEzICswLDAgQEAK
LVRlc3RzIHRoYXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrcyBhcmUgbm90IGludm9r
ZWQgd2hpbGUgbW9kYWwgZGlhbG9ncyBhcmUgZGlzcGxheWVkLgotCi1PbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCi0KLQotU2V0dGluZyBjYWxsYmFjawotU2hvd2luZyBtb2RhbCBkaWFsb2cKLVJl
dHVybmVkIGZyb20gbW9kYWwgZGlhbG9nCi1DYWxsYmFjayBmaXJlZAotUEFTUyBzdWNjZXNzZnVs
bHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw0MiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1s
PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+
Ci08Ym9keT4KLQotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQotICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLQotZGVzY3Jp
cHRpb24oJ1Rlc3RzIHRoYXQgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIGNhbGxiYWNrcyBhcmUgbm90
IGludm9rZWQgd2hpbGUgbW9kYWwgZGlhbG9ncyBhcmUgZGlzcGxheWVkLicpOwotCi1vbmxvYWQg
PSBmdW5jdGlvbigpCi17Ci0gICAgZGVidWcoJ1NldHRpbmcgY2FsbGJhY2snKTsKLSAgICB3aW5k
b3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeyBkZWJ1ZygnQ2FsbGJhY2sgZmly
ZWQnKTsgfSwgZG9jdW1lbnQuYm9keSk7Ci0gICAgZGVidWcoJ1Nob3dpbmcgbW9kYWwgZGlhbG9n
Jyk7Ci0gICAgdmFyIHNyYyA9ICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHsnICsKLSAgICAgICAg
ICAgICAgJyAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsnICsKLSAgICAgICAgICAgICAgJyAgICB3
aW5kb3cuY2xvc2UoKTsnICsKLSAgICAgICAgICAgICAgJ30gZWxzZSB7JysKLSAgICAgICAgICAg
ICAgJyAgICB3aW5kb3cuc2V0VGltZW91dCh3aW5kb3cuY2xvc2UsIDEwKTsnKwotICAgICAgICAg
ICAgICAnfSc7Ci0gICAgc2hvd01vZGFsRGlhbG9nKCdkYXRhOnRleHQvaHRtbCw8c2NyaXB0Picg
KyBzcmMgKyAnPC8nICsgJ3NjcmlwdD4nKTsKLSAgICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2Rh
bCBkaWFsb2cnKTsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHs7Ci0gICAgICAgIHRlc3RS
dW5uZXIuZGlzcGxheSgpOwotICAgIH0KLX0KLQotaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi1zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewot
ICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQot
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0sIDIwMCk7Ci0KLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS93cmFwcGVyLWlk
ZW50aXR5LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS93
cmFwcGVyLWlkZW50aXR5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5b3V0
VGVzdHMvZmFzdC9kb20vd3JhcHBlci1pZGVudGl0eS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OCw3ICsxNjgsNiBAQCBQQVNTIHZhciBvYmplY3QgPSB3aW5kb3dbJ3Njcm9sbGJh
cnMnXTsgCiBQQVNTIHZhciBvYmplY3QgPSB3aW5kb3dbJ3NlbGYnXTsgaXNFcXVhbEpTKG9iamVj
dCwgb2JqZWN0KTsgaXMgdHJ1ZQogUEFTUyB2YXIgb2JqZWN0ID0gd2luZG93WydzZXRJbnRlcnZh
bCddOyBpc0VxdWFsSlMob2JqZWN0LCBvYmplY3QpOyBpcyB0cnVlCiBQQVNTIHZhciBvYmplY3Qg
PSB3aW5kb3dbJ3NldFRpbWVvdXQnXTsgaXNFcXVhbEpTKG9iamVjdCwgb2JqZWN0KTsgaXMgdHJ1
ZQotUEFTUyB2YXIgb2JqZWN0ID0gd2luZG93WydzaG93TW9kYWxEaWFsb2cnXTsgaXNFcXVhbEpT
KG9iamVjdCwgb2JqZWN0KTsgaXMgdHJ1ZQogUEFTUyB2YXIgb2JqZWN0ID0gd2luZG93WydzdGF0
dXMnXTsgaXNFcXVhbEpTKG9iamVjdCwgb2JqZWN0KTsgaXMgdHJ1ZQogUEFTUyB2YXIgb2JqZWN0
ID0gd2luZG93WydzdGF0dXNiYXInXTsgaXNFcXVhbEpTKG9iamVjdCwgb2JqZWN0KTsgaXMgdHJ1
ZQogUEFTUyB2YXIgb2JqZWN0ID0gd2luZG93WydzdG9wJ107IGlzRXF1YWxKUyhvYmplY3QsIG9i
amVjdCk7IGlzIHRydWUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdp
bmRvdy1taW4tc2l6ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MTk1Njg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1z
aXplLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICswLDAgQEAKLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotUEFTUyAxMDAgaXMgPj0g
MTAwCi1QQVNTIDEwMCBpcyA+PSAxMDAKLVBBU1MgMTAwIGlzID49IDEwMAotUEFTUyAxMDAgaXMg
Pj0gMTAwCi0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcGVuLXdpbmRvdy1t
aW4tc2l6ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9v
cGVuLXdpbmRvdy1taW4tc2l6ZS5odG1sCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWluLXNpemUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwzNCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZnVuY3Rpb24g
dmFsaWRhdGUobXNnKSB7Ci0gICAgc2hvdWxkQmVHcmVhdGVyVGhhbk9yRXF1YWwobXNnWyJ3aWR0
aCJdLnRvU3RyaW5nKCksICIxMDAiKTsKLSAgICBzaG91bGRCZUdyZWF0ZXJUaGFuT3JFcXVhbCht
c2dbImhlaWdodCJdLnRvU3RyaW5nKCksICIxMDAiKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpIHsK
LSAgICB2YXIgZGF0YSA9IHdpbmRvdy5zaG93TW9kYWxEaWFsb2coInJlc291cmNlcy9yZXBvcnQt
c2l6ZS1hbmQtY2xvc2UuaHRtbCIsICIiLCAiZGlhbG9nV2lkdGg6MTA7IGRpYWxvZ0hlaWdodDox
MCIpOwotICAgIHZhbGlkYXRlKGRhdGEpOwotCi0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIo
J21lc3NhZ2UnLCBmdW5jdGlvbihlKSB7Ci0gICAgICAgIHZhbGlkYXRlKGUuZGF0YSk7Ci0gICAg
ICAgIGUuc291cmNlLmNsb3NlKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwot
ICAgIH0sIGZhbHNlKTsKLSAgICB3aW5kb3cub3BlbigicmVzb3VyY2VzL3JlcG9ydC1zaXplLWFu
ZC1jbG9zZS5odG1sIiwgIm5vbi1lbXB0eS1hcmd1bWVudCIsICJ3aWR0aD0xMCwgaGVpZ2h0PTEw
Iik7Ci19Ci0KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIu
c2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICB0ZXN0UnVubmVyLnNldENsb3NlUmVtYWluaW5nV2lu
ZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKLX0KLQotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvc2hvd01vZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXItZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zaG93TW9k
YWxEaWFsb2ctbWFuZGF0b3J5LXBhcmFtZXRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NTY4
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9zaG93TW9kYWxEaWFsb2ctbWFuZGF0
b3J5LXBhcmFtZXRlci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzAsMCBA
QAotQ2hlY2tzIHRoYXQgdGhlIGZpcnN0IHBhcmFtZXRlciB0byB3aW5kb3cuc2hvd01vZGFsRGlh
bG9nKCkgaXMgbWFuZGF0b3J5Ci0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNT
IHdpbmRvdy5zaG93TW9kYWxEaWFsb2coKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVT
VCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2hvd01vZGFs
RGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvc2hvd01vZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXIuaHRt
bAkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Nob3dN
b2RhbERpYWxvZy1tYW5kYXRvcnktcGFyYW1ldGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJDaGVj
a3MgdGhhdCB0aGUgZmlyc3QgcGFyYW1ldGVyIHRvIHdpbmRvdy5zaG93TW9kYWxEaWFsb2coKSBp
cyBtYW5kYXRvcnkiKTsKLQotc2hvdWxkVGhyb3coIndpbmRvdy5zaG93TW9kYWxEaWFsb2coKSIs
ICInVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cyciKTsKLTwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1mdW5jdGlvbi1mcmFtZS1nZXR0
ZXItcHJlY2VkZW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctZnVuY3Rpb24tZnJhbWUtZ2V0dGVyLXByZWNlZGVuY2UuaHRtbAkocmV2aXNp
b24gMTk1Njg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1mdW5jdGlv
bi1mcmFtZS1nZXR0ZXItcHJlY2VkZW5jZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMyAr
MzgsNyBAQAogICAgICAgICAgICAgaWZyYW1lLm5hbWUgPSBmdW5jdGlvbk5hbWU7CiAgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CiAKLSAgICAgICAgICAgIC8v
IHNob3dNb2RhbERpYWxvZyBvbmx5IHdvcmtzIG9uIG1hYyBpbiB0aGUgRFJULiAgU28gcnVuIHRo
aXMgdGVzdCBvbmx5IGlmIGl0cyBkZWZpbmVkIGFuZCBwcmludCBvdXRwdXQgb25seSBvbiBmYWls
dXJlLgotICAgICAgICAgICAgLy8gVGhpcydsbCBrZWVwIHRoZSBvdXRwdXQgY29uc2lzdGVudCBv
biBhbGwgcGxhdGZvcm1zLgotICAgICAgICAgICAgaWYgKGZ1bmN0aW9uTmFtZSA9PSAic2hvd01v
ZGFsRGlhbG9nIikgewotICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuc2hvd01vZGFsRGlhbG9n
ICE9IHVuZGVmaW5lZCkKLSAgICAgICAgICAgICAgICAgICAgc2hvdWxkQmUoInR5cGVvZiB3aW5k
b3cuIiArIGZ1bmN0aW9uTmFtZSwgImZ1bmN0aW9uIiwgdHJ1ZSk7Ci0gICAgICAgICAgICB9IGVs
c2UKLSAgICAgICAgICAgICAgICBzaG91bGRCZSgidHlwZW9mIHdpbmRvdy4iICsgZnVuY3Rpb25O
YW1lLCAiZnVuY3Rpb24iKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Ygd2luZG93LiIg
KyBmdW5jdGlvbk5hbWUsICJmdW5jdGlvbiIpOwogCiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5
LnJlbW92ZUNoaWxkKGlmcmFtZSk7CiAgICAgICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy93aW5kb3ctZnVuY3Rpb24tbmFtZS1nZXR0ZXItcHJlY2VkZW5jZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctZnVuY3Rpb24t
bmFtZS1nZXR0ZXItcHJlY2VkZW5jZS5odG1sCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LWZ1bmN0aW9uLW5hbWUtZ2V0dGVyLXByZWNlZGVu
Y2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTMgKzM3LDcgQEAKICAgICAgICAgICAgIGVs
ZW1lbnQuaWQgPSBmdW5jdGlvbk5hbWU7CiAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGVsZW1lbnQpOwogCi0gICAgICAgICAgICAvLyBzaG93TW9kYWxEaWFsb2cgb25seSB3
b3JrcyBvbiBtYWMgaW4gdGhlIERSVC4gIFNvIHJ1biB0aGlzIHRlc3Qgb25seSBpZiBpdHMgZGVm
aW5lZCBhbmQgcHJpbnQgb3V0cHV0IG9ubHkgb24gZmFpbHVyZS4KLSAgICAgICAgICAgIC8vIFRo
aXMnbGwga2VlcCB0aGUgb3V0cHV0IGNvbnNpc3RlbnQgb24gYWxsIHBsYXRmb3Jtcy4KLSAgICAg
ICAgICAgIGlmIChmdW5jdGlvbk5hbWUgPT0gInNob3dNb2RhbERpYWxvZyIpIHsKLSAgICAgICAg
ICAgICAgICBpZiAod2luZG93LnNob3dNb2RhbERpYWxvZyAhPSB1bmRlZmluZWQpCi0gICAgICAg
ICAgICAgICAgICAgIHNob3VsZEJlKCJ0eXBlb2Ygd2luZG93LiIgKyBmdW5jdGlvbk5hbWUsICJm
dW5jdGlvbiIsIHRydWUpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgc2hv
dWxkQmUoInR5cGVvZiB3aW5kb3cuIiArIGZ1bmN0aW9uTmFtZSwgImZ1bmN0aW9uIik7CisgICAg
ICAgICAgICBzaG91bGRCZSgidHlwZW9mIHdpbmRvdy4iICsgZnVuY3Rpb25OYW1lLCAiZnVuY3Rp
b24iKTsKIAogICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChlbGVtZW50KTsK
ICAgICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29r
dXAtcHJlY2VkZW5jZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dp
bmRvdy93aW5kb3ctbG9va3VwLXByZWNlZGVuY2UuaHRtbAkocmV2aXNpb24gMTk1Njg4KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1sb29rdXAtcHJlY2VkZW5jZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw2IEBAIGZ1bmN0aW9uIGNoZWNrVmFsdWUobmFt
ZSwgb3JpZ2luYWwpIHsKIGZ1bmN0aW9uIGNoZWNrKHByb3ApIHsKICAgICB2YXIgbmFtZSA9IHBy
b3BbMF07CiAgICAgdmFyIG9yaWdpbmFsID0gd2luW25hbWVdOwotICAgIC8vIHNob3dNb2RhbERp
YWxvZyBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVkIGluIER1bXBSZW5kZXJUcmVlIGZvciBh
bGwgcGxhdGZvcm1zLgotICAgIGlmIChuYW1lID09ICJzaG93TW9kYWxEaWFsb2ciKQotICAgICAg
cmV0dXJuOwogICAgIGlmIChuYW1lICE9ICJsb2NhdGlvbiIpIHsgLy8gQXZvaWQgbmF2aWdhdGlu
ZyB0aGUgc3ViZnJhbWUuCiAgICAgICAvLyBDaGVjayBzdWJmcmFtZSBwcmVjZWRlbmNlLgogICAg
ICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDE5NTY4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVy
dHktc2hhZG93aW5nLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsNiBA
QCBQQVNTOiBjYXB0dXJlRXZlbnRzIHN1Y2Nlc3NmdWxseSBzaGFkb3dlCiBQQVNTOiByZWxlYXNl
RXZlbnRzIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogYWRkRXZlbnRMaXN0ZW5lciBzdWNj
ZXNzZnVsbHkgc2hhZG93ZWQKIFBBU1M6IHJlbW92ZUV2ZW50TGlzdGVuZXIgc3VjY2Vzc2Z1bGx5
IHNoYWRvd2VkCi1QQVNTOiBzaG93TW9kYWxEaWFsb2cgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkCiBQ
QVNTOiBmaW5kIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZAogUEFTUzogc3RvcCBzdWNjZXNzZnVsbHkg
c2hhZG93ZWQKIFBBU1M6IEltYWdlIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZApJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0eS1zaGFkb3dpbmcuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnR5LXNo
YWRvd2luZy5odG1sCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvd2luZG93LXByb3BlcnR5LXNoYWRvd2luZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzUsOCArMTM1LDYgQEAKICAgICAgICAgbG9nKGFkZEV2ZW50TGlzdGVuZXIgPT0gMSA/ICJQQVNT
OiBhZGRFdmVudExpc3RlbmVyIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogYWRkRXZl
bnRMaXN0ZW5lciB3YXMgbm90IHNoYWRvd2VkIik7CiAgICAgICAgIHZhciByZW1vdmVFdmVudExp
c3RlbmVyID0gMTsKICAgICAgICAgbG9nKHJlbW92ZUV2ZW50TGlzdGVuZXIgPT0gMSA/ICJQQVNT
OiByZW1vdmVFdmVudExpc3RlbmVyIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogcmVt
b3ZlRXZlbnRMaXN0ZW5lciB3YXMgbm90IHNoYWRvd2VkIik7Ci0gICAgICAgIHZhciBzaG93TW9k
YWxEaWFsb2cgPSAxOwotICAgICAgICBsb2coc2hvd01vZGFsRGlhbG9nID09IDEgPyAiUEFTUzog
c2hvd01vZGFsRGlhbG9nIHN1Y2Nlc3NmdWxseSBzaGFkb3dlZCIgOiAiRkFJTDogc2hvd01vZGFs
RGlhbG9nIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIGZpbmQgPSAxOwogICAgICAg
ICBsb2coZmluZCA9PSAxID8gIlBBU1M6IGZpbmQgc3VjY2Vzc2Z1bGx5IHNoYWRvd2VkIiA6ICJG
QUlMOiBmaW5kIHdhcyBub3Qgc2hhZG93ZWQiKTsKICAgICAgICAgdmFyIHN0b3AgPSAxOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291cmNlcy9XaW5kb3dQcm9wZXJ0aWVz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMv
V2luZG93UHJvcGVydGllcy5qcwkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L3Jlc291cmNlcy9XaW5kb3dQcm9wZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw3ICszMiw2IEBAIHZhciB3aW5kb3dGdW5jdGlvbnMgPSBbCiAgICAgImNsZWFySW50
ZXJ2YWwiLAogICAgICJhZGRFdmVudExpc3RlbmVyIiwKICAgICAicmVtb3ZlRXZlbnRMaXN0ZW5l
ciIsCi0gICAgInNob3dNb2RhbERpYWxvZyIsCiAgICAgImNhcHR1cmVFdmVudHMiLAogICAgICJy
ZWxlYXNlRXZlbnRzIiwKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jlc291
cmNlcy93aW5kb3ctcHJvcGVydGllcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9wZXJ0aWVzLmpzCShyZXZpc2lvbiAxOTU2
ODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1wcm9w
ZXJ0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBAIHZhciBwcm9wZXJ0eUlu
Zm8gPSBbCiAgICAgWyJzY3JvbGxUbyIsICJmdW5jdGlvbiJdLAogICAgIFsic2V0SW50ZXJ2YWwi
LCAiZnVuY3Rpb24iXSwKICAgICBbInNldFRpbWVvdXQiLCAiZnVuY3Rpb24iXSwKLSAgICBbInNo
b3dNb2RhbERpYWxvZyIsICJmdW5jdGlvbiJdLAogICAgIFsic3RvcCIsICJmdW5jdGlvbiJdLAog
ICAgIFsidG9TdHJpbmciLCAiZnVuY3Rpb24iXSwKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9k
b20vcmVzb3VyY2VzL3dyYXBwZXItaWRlbnRpdHktYmFzZS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvd3JhcHBlci1pZGVudGl0eS1iYXNlLmpzCShyZXZp
c2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9yZXNvdXJjZXMvd3JhcHBlci1p
ZGVudGl0eS1iYXNlLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDYgQEAgdmFyIHN0
YXRpY1dpbmRvd1Byb3BlcnRpZXMgPSBbCiAgICAgJ3NlbGYnLAogICAgICdzZXRJbnRlcnZhbCcs
CiAgICAgJ3NldFRpbWVvdXQnLAotICAgICdzaG93TW9kYWxEaWFsb2cnLAogICAgICdzdGF0dXMn
LAogICAgICdzdGF0dXNiYXInLAogICAgICdzdG9wJywKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3Njcm9sbC1ldmVudC1kdXJpbmctbW9kYWwtZGlhbG9nLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtZXZlbnQtZHVyaW5nLW1v
ZGFsLWRpYWxvZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NTY4OCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3Njcm9sbC1ldmVudC1kdXJpbmctbW9kYWwtZGlhbG9nLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMyArMCwwIEBACi1UZXN0cyB0aGF0IHNjcm9sbCBldmVu
dHMgYXJlIG5vdCBmaXJlZCB3aGlsZSBtb2RhbCBkaWFsb2dzIGFyZSBkaXNwbGF5ZWQuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1TY3JvbGxpbmcgd2luZG93Ci1TaG93aW5nIG1v
ZGFsIGRpYWxvZwotUmV0dXJuZWQgZnJvbSBtb2RhbCBkaWFsb2cKLVNjcm9sbCBoYW5kbGVyIGZp
cmVkCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWV2ZW50LWR1cmluZy1tb2RhbC1k
aWFsb2cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwt
ZXZlbnQtZHVyaW5nLW1vZGFsLWRpYWxvZy5odG1sCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtZXZlbnQtZHVyaW5nLW1vZGFsLWRpYWxvZy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLTxodG1sPgotPHNjcmlwdCBzcmM9Ii4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08Ym9keSBzdHlsZT0ibWlu
LWhlaWdodDogMjAwMHB4Ij4gCi0KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7
Ci0KLWRlc2NyaXB0aW9uKCdUZXN0cyB0aGF0IHNjcm9sbCBldmVudHMgYXJlIG5vdCBmaXJlZCB3
aGlsZSBtb2RhbCBkaWFsb2dzIGFyZSBkaXNwbGF5ZWQuJyk7Ci0KLXZhciB0cmlnZ2VyZWRDYXB0
dXJlTGlzdGVuZXIgPSBmYWxzZTsKLXZhciB0cmlnZ2VyZWRCdWJibGVMaXN0ZW5lciA9IGZhbHNl
OwotCi1vbnNjcm9sbCA9IGZ1bmN0aW9uKCkKLXsKLSAgICBkZWJ1ZygnU2Nyb2xsIGhhbmRsZXIg
ZmlyZWQnKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0KLQotb25sb2FkID0gZnVuY3Rpb24oKQot
ewotICAgIGRlYnVnKCdTY3JvbGxpbmcgd2luZG93Jyk7Ci0gICAgd2luZG93LnNjcm9sbFRvKDIw
MCwgMjAwKTsKLSAgICBkZWJ1ZygnU2hvd2luZyBtb2RhbCBkaWFsb2cnKTsKLSAgICBzaG93TW9k
YWxEaWFsb2coJ3Jlc291cmNlcy9zY3JvbGwtZXZlbnQtbW9kYWwtZGlhbG9nLmh0bWwnKTsKLSAg
ICBkZWJ1ZygnUmV0dXJuZWQgZnJvbSBtb2RhbCBkaWFsb2cnKTsKLX0KLXZhciBqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKLTwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlh
bG9nLW9uYmx1ci1vbmZvY3VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzAsMCBAQAotUG9wIHVwIGEgbW9kYWwg
ZGlhbG9nLiBWZXJpZmllcyB0aGF0IGZvY3VzIGV2ZW50cyBhcmUgbm90IGZpcmVkIHdoaWxlIGlu
c2lkZSB0aGUgbWVzc2FnZSBsb29wLgotCi0KLVlvdSBuZWVkIHRvIGRpc2FibGUgcG9wLXVwIGJs
b2NrZXIgZm9yIHRoaXMgdGVzdCB0byBydW4gc3VjY2Vzc2Z1bGx5IGluIHRoZSBicm93c2VyLgot
Ci1vbmJsdXIgZmlyZWQuIFNob3VsZCBzZWUgdGhpcyBleGFjdGx5IG9uY2UuCi1Nb2RhbCBkaWFs
b2cgY2xvc2luZy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nob3ctbW9kYWwtZGlh
bG9nLW9uYmx1ci1vbmZvY3VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMuaHRtbAkocmV2aXNpb24gMTk1
Njg4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVy
LW9uZm9jdXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw0NyArMCwwIEBACi08aHRtbD4KLTxo
ZWFkPgotPHNjcmlwdD4KLSAgICBmdW5jdGlvbiBydW5UZXN0cygpCi0gICAgewotICAgICAgICB3
aW5kb3cub25mb2N1cyA9IG9uRm9jdXNGdW5jOwotICAgICAgICB3aW5kb3cub25ibHVyID0gb25C
bHVyRnVuYzsKLSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotCi0g
ICAgICAgICAgICAvLyBEdW1wUmVuZGVyVHJlZVdpbmRvdyBkb2VzIG5vdCByZXNwb25kIHRvIGZv
Y3VzIGV2ZW50cy4gIEZvcmNpbmcgb25ibHVyIGV2ZW50IHNvCi0gICAgICAgICAgICAvLyB0aGF0
IHRoZSByZXN1bHRzIG1hdGNoZXMgd2hhdCB5b3UnbGwgc2VlIGluIHRoZSBicm93c2VyLgotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5zZXRXaW5kb3dJc0tleShmYWxzZSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgc2hvd01vZGFsRGlhbG9nKCJyZXNvdXJjZXMvbW9kYWwtZGlhbG9nLmh0bWwiKTsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIHZhciBjb25z
b2xlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKTsKLSAgICAgICAgdmFyIGxp
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGkiKTsKLSAgICAgICAgdmFyIHRleHQgPSBkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKTsKLSAgICAKLSAgICAgICAgY29uc29sZS5hcHBl
bmRDaGlsZChsaSk7Ci0gICAgICAgIGxpLmFwcGVuZENoaWxkKHRleHQpOwotICAgIH0KLQotICAg
IGZ1bmN0aW9uIG9uQmx1ckZ1bmMoKQotICAgIHsKLSAgICAgICAgbG9nKCJvbmJsdXIgZmlyZWQu
ICBTaG91bGQgc2VlIHRoaXMgZXhhY3RseSBvbmNlLiIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IG9uRm9jdXNGdW5jKCkKLSAgICB7Ci0gICAgICAgIGxvZygiRVJST1I6IG9uZm9jdXMgZmlyZWQu
Iik7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxib2R5IG9ubG9hZD0icnVuVGVzdHMo
KSI+Ci0gICAgPHA+UG9wIHVwIGEgbW9kYWwgZGlhbG9nLiAgVmVyaWZpZXMgdGhhdCBmb2N1cyBl
dmVudHMgYXJlIG5vdCBmaXJlZCB3aGlsZSBpbnNpZGUgdGhlIG1lc3NhZ2UgbG9vcC48L3A+PGJy
Lz4KLSAgICA8cD5Zb3UgbmVlZCB0byBkaXNhYmxlIHBvcC11cCBibG9ja2VyIGZvciB0aGlzIHRl
c3QgdG8gcnVuIHN1Y2Nlc3NmdWxseSBpbiB0aGUgYnJvd3Nlci48L3A+Ci0gICAgPHVsIGlkPSJj
b25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9o
YXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2ctZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFs
b2ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzAsMCBAQAotVGhpcyB0ZXN0
IHZlcmlmaWVzIHRoYXQgc2hvd01vZGFsRGlhbG9nIGltcGxlbWVudGF0aW9uIGluIERSVCB3b3Jr
cy4KLQotWW91IG5lZWQgdG8gZGlzYWJsZSBwb3AtdXAgYmxvY2tlciBmb3IgdGhpcyB0ZXN0IHRv
IHJ1biBzdWNjZXNzZnVsbHkuCi0KLU1vZGFsIGRpYWxvZyBjbG9zaW5nLgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Nob3ctbW9kYWwtZGlhbG9nLmh0bWwJKHJldmlzaW9u
IDE5NTY4OCkKKysrIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLTxodG1sPgotPGhlYWQ+Ci08c2Ny
aXB0PgotICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgICAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7Ci0gICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgfQotICAgICAgICBzaG93TW9kYWxEaWFs
b2coInJlc291cmNlcy9tb2RhbC1kaWFsb2cuaHRtbCIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9u
IGxvZyhtZXNzYWdlKQotICAgIHsKLSAgICAgICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgiY29uc29sZSIpOwotICAgICAgICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJsaSIpOwotICAgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KG1lc3NhZ2UpOwotICAgIAotICAgICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGxpKTsKLSAgICAg
ICAgbGkuYXBwZW5kQ2hpbGQodGV4dCk7Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci0KLTxi
b2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+Ci0gICAgPHA+VGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQg
c2hvd01vZGFsRGlhbG9nIGltcGxlbWVudGF0aW9uIGluIERSVCB3b3Jrcy4KLSAgICA8cD5Zb3Ug
bmVlZCB0byBkaXNhYmxlIHBvcC11cCBibG9ja2VyIGZvciB0aGlzIHRlc3QgdG8gcnVuIHN1Y2Nl
c3NmdWxseS48L3A+Ci0gICAgPHVsIGlkPSJjb25zb2xlIj48L3VsPgotPC9ib2R5PgotPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtY2FsbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2FsbC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDE5NTY4OCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUt
YWNjZXNzLWNhbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBA
IENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBCbG9ja2VkIGEgZnJhbWUKIENPTlNPTEUgTUVTU0FH
RTogbGluZSAxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRjaC4KIENPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMgbXVzdCBtYXRj
aC4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBCbG9ja2VkIGEgZnJhbWUgd2l0aCBvcmlnaW4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3aXRoIG9yaWdp
biAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBhbmQgcG9ydHMg
bXVzdCBtYXRjaC4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBCbG9ja2VkIGEgZnJhbWUgd2l0
aCBvcmlnaW4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIgZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSB3
aXRoIG9yaWdpbiAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIi4gUHJvdG9jb2xzLCBkb21haW5zLCBh
bmQgcG9ydHMgbXVzdCBtYXRjaC4KIAogCiAtLS0tLSB0ZXN0cyBmb3IgY2FsbGluZyBtZXRob2Rz
IG9mIGFub3RoZXIgZnJhbWUgdXNpbmcgRnVuY3Rpb24uY2FsbCAtLS0tLQpAQCAtNTgsNyArNTcs
NiBAQCBQQVNTOiB3aW5kb3cubW92ZUJ5LmNhbGwodGFyZ2V0V2luZG93LCAwCiBQQVNTOiB3aW5k
b3cubW92ZVRvLmNhbGwodGFyZ2V0V2luZG93LCAwLCAwKTsgc2hvdWxkIGJlICd1bmRlZmluZWQn
IGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5yZXNpemVCeS5jYWxsKHRhcmdldFdpbmRvdywgMCwgMCk7
IHNob3VsZCBiZSAndW5kZWZpbmVkJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cucmVzaXplVG8uY2Fs
bCh0YXJnZXRXaW5kb3csIDAsIDApOyBzaG91bGQgYmUgJ3VuZGVmaW5lZCcgYW5kIGlzLgotUEFT
Uzogd2luZG93LnNob3dNb2RhbERpYWxvZy5jYWxsKHRhcmdldFdpbmRvdyk7IHNob3VsZCBiZSAn
dW5kZWZpbmVkJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuZXZhbC5jYWxsKHRhcmdldFdpbmRvdywg
JzErMicpOyBzaG91bGQgYmUgJzMnIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5sb2NhdGlvbi50b1N0
cmluZy5jYWxsKHRhcmdldFdpbmRvdy5sb2NhdGlvbikgc2hvdWxkIGJlICd1bmRlZmluZWQnIGFu
ZCBpcy4KIFBBU1M6IGhpc3RvcnkucHVzaFN0YXRlLmNhbGwodGFyZ2V0V2luZG93Lmhpc3Rvcnks
IHt9LCAnJywgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9mb29iYXInKSBzaG91bGQgYmUgJ3VuZGVm
aW5lZCcgYW5kIGlzLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtY2FsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNhbGwuaHRtbAkocmV2aXNpb24gMTk1
Njg4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtY2FsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw2IEBAIHdpbmRvdy5vbmxv
YWQgPSBmdW5jdGlvbigpCiAgICAgc2hvdWxkQmUoIndpbmRvdy5tb3ZlVG8uY2FsbCh0YXJnZXRX
aW5kb3csIDAsIDApOyIsICJ1bmRlZmluZWQiKTsKICAgICBzaG91bGRCZSgid2luZG93LnJlc2l6
ZUJ5LmNhbGwodGFyZ2V0V2luZG93LCAwLCAwKTsiLCAidW5kZWZpbmVkIik7CiAgICAgc2hvdWxk
QmUoIndpbmRvdy5yZXNpemVUby5jYWxsKHRhcmdldFdpbmRvdywgMCwgMCk7IiwgInVuZGVmaW5l
ZCIpOwotICAgIHNob3VsZEJlKCJ3aW5kb3cuc2hvd01vZGFsRGlhbG9nLmNhbGwodGFyZ2V0V2lu
ZG93KTsiLCAidW5kZWZpbmVkIik7CiAKICAgICAvLyBUaHJvd3MgYW4gRXZhbEVycm9yIGFuZCBs
b2dzIHRvIHRoZSBlcnJvciBjb25zb2xlCiAgICAgc2hvdWxkQmUoIndpbmRvdy5ldmFsLmNhbGwo
dGFyZ2V0V2luZG93LCAnMSsyJyk7IiwgJzMnKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3Mt
Z2V0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQ2LDcgKzM0Niw2IEBAIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LnNj
cm9sbEJ5Jykgc2gKIFBBU1M6IGNhbkdldCgndGFyZ2V0V2luZG93LnNjcm9sbFRvJykgc2hvdWxk
IGJlICdmYWxzZScgYW5kIGlzLgogUEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuc2V0SW50ZXJ2
YWwnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXQoJ3RhcmdldFdpbmRv
dy5zZXRUaW1lb3V0Jykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgotUEFTUzogY2FuR2V0KCd0
YXJnZXRXaW5kb3cuc2hvd01vZGFsRGlhbG9nJykgc2hvdWxkIGJlICdmYWxzZScgYW5kIGlzLgog
UEFTUzogY2FuR2V0KCd0YXJnZXRXaW5kb3cuc3RvcCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBp
cy4KIAogLS0tLS0gdGVzdHMgZm9yIGdldHRpbmcgb2Ygbm90IGFsbG93ZWQgQXR0cmlidXRlcyAt
LS0tLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZ2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0Lmh0bWwJKHJldmlzaW9uIDE5NTY4OCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWdldC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMzIsNyArMTMyLDYgQEAKICAgICAgICAgICAgICJzY3JvbGxU
byIsIAogICAgICAgICAgICAgInNldEludGVydmFsIiwgCiAgICAgICAgICAgICAic2V0VGltZW91
dCIsIAotICAgICAgICAgICAgInNob3dNb2RhbERpYWxvZyIsCiAgICAgICAgICAgICAic3RvcCIK
ICAgICAgICAgXTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxOTU2
ODgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xODYsNyArMTg2LDYgQEAgUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdz
YwogUEFTUzogY2FuR2V0RGVzY3JpcHRvcih0YXJnZXRXaW5kb3csICdzY3JvbGxUbycpIHNob3Vs
ZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93
LCAnc2V0SW50ZXJ2YWwnKSBzaG91bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCiBQQVNTOiBjYW5HZXRE
ZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ3NldFRpbWVvdXQnKSBzaG91bGQgYmUgJ2ZhbHNlJyBh
bmQgaXMuCi1QQVNTOiBjYW5HZXREZXNjcmlwdG9yKHRhcmdldFdpbmRvdywgJ3Nob3dNb2RhbERp
YWxvZycpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3Io
dGFyZ2V0V2luZG93LCAnc3RvcCcpIHNob3VsZCBiZSAnZmFsc2UnIGFuZCBpcy4KIFBBU1M6IGNh
bkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnYmx1cicpIHNob3VsZCBiZSAnZmFsc2UnIGFu
ZCBpcy4KIFBBU1M6IGNhbkdldERlc2NyaXB0b3IodGFyZ2V0V2luZG93LCAnY2xvc2UnKSBzaG91
bGQgYmUgJ2ZhbHNlJyBhbmQgaXMuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuaHRtbAkocmV2aXNpb24gMTk1Njg4KQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsNiBA
QAogICAgICAgICAgICAgInNjcm9sbFRvIiwgCiAgICAgICAgICAgICAic2V0SW50ZXJ2YWwiLCAK
ICAgICAgICAgICAgICJzZXRUaW1lb3V0IiwgCi0gICAgICAgICAgICAic2hvd01vZGFsRGlhbG9n
IiwgCiAgICAgICAgICAgICAic3RvcCIsCiAgICAgICAgICAgICAiYmx1ciIsCiAgICAgICAgICAg
ICAiY2xvc2UiLApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtcHV0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1wdXQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xODMsNyAr
MTgzLDYgQEAgQUxFUlQ6IFBBU1M6IHdpbmRvdy5zY3JvbGxCeSBzaG91bGQgYmUgJwogQUxFUlQ6
IFBBU1M6IHdpbmRvdy5zY3JvbGxUbyBzaG91bGQgYmUgJ2Z1bmN0aW9uIHNjcm9sbFRvKCkgeyAg
ICBbbmF0aXZlIGNvZGVdfScgYW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5zZXRJbnRlcnZh
bCBzaG91bGQgYmUgJ2Z1bmN0aW9uIHNldEludGVydmFsKCkgeyAgICBbbmF0aXZlIGNvZGVdfScg
YW5kIGlzLgogQUxFUlQ6IFBBU1M6IHdpbmRvdy5zZXRUaW1lb3V0IHNob3VsZCBiZSAnZnVuY3Rp
b24gc2V0VGltZW91dCgpIHsgICAgW25hdGl2ZSBjb2RlXX0nIGFuZCBpcy4KLUFMRVJUOiBQQVNT
OiB3aW5kb3cuc2hvd01vZGFsRGlhbG9nIG1hdGNoZWQgdGhlIGV4cGVjdGVkIHZhbHVlLgogQUxF
UlQ6IFBBU1M6IHdpbmRvdy5zdG9wIHNob3VsZCBiZSAnZnVuY3Rpb24gc3RvcCgpIHsgICAgW25h
dGl2ZSBjb2RlXX0nIGFuZCBpcy4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAzODogQmxvY2tlZCBh
IGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiIGZyb20gYWNjZXNzaW5n
IGEgZnJhbWUgd2l0aCBvcmlnaW4gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIuIFByb3RvY29scywg
ZG9tYWlucywgYW5kIHBvcnRzIG11c3QgbWF0Y2guCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgMzk6
IEJsb2NrZWQgYSBmcmFtZSB3aXRoIG9yaWdpbiAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiBmcm9t
IGFjY2Vzc2luZyBhIGZyYW1lIHdpdGggb3JpZ2luICJodHRwOi8vbG9jYWxob3N0OjgwMDAiLiBQ
cm90b2NvbHMsIGRvbWFpbnMsIGFuZCBwb3J0cyBtdXN0IG1hdGNoLgpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHV0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nl
c3MtcHV0Lmh0bWwJKHJldmlzaW9uIDE5NTY4OCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXB1dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
MjksNyArMjI5LDYgQEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBzZXRGb3JiaWRkZW5Qcm9wZXJ0
eSh0YXJnZXRXaW5kb3csICJzY3JvbGxUbyIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgInNldEludGVydmFsIik7CiAgICAgc2V0Rm9yYmlkZGVuUHJvcGVydHkodGFy
Z2V0V2luZG93LCAic2V0VGltZW91dCIpOwotICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRhcmdl
dFdpbmRvdywgInNob3dNb2RhbERpYWxvZyIpOwogICAgIHNldEZvcmJpZGRlblByb3BlcnR5KHRh
cmdldFdpbmRvdywgInN0b3AiKTsKIAogICAgIC8vIGxvZyh0YXJnZXRXaW5kb3cuZm9jdXMuX19w
cm90b19fKTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUt
Zm9yLXB1dC10ZXN0Lmh0bWwJKHJldmlzaW9uIDE5NTY4OCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItcHV0LXRlc3Qu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjM2LDcgKzIzNiw2IEBACiAgICAgICAgIHZhciBzY3Jv
bGxUb09sZCA9IHdpbmRvdy5zY3JvbGxUbzsKICAgICAgICAgdmFyIHNldEludGVydmFsT2xkID0g
d2luZG93LnNldEludGVydmFsOwogICAgICAgICB2YXIgc2V0VGltZW91dE9sZCA9IHdpbmRvdy5z
ZXRUaW1lb3V0OwotICAgICAgICB2YXIgc2hvd01vZGFsRGlhbG9nT2xkID0gd2luZG93LnNob3dN
b2RhbERpYWxvZzsKICAgICAgICAgdmFyIHN0b3BPbGQgPSB3aW5kb3cuc3RvcDsKIAogICAgICAg
ICAvLyBUaGUgdGVzdCBydW5zIG9uIGEgdGltZXIgYW5kIG5vdCBpbiBhIGxvYWQgZXZlbnQgaGFu
ZGxlciBiZWNhdXNlIHdlIHdhbnQgYm90aApAQCAtNDQ3LDkgKzQ0Niw2IEBACiAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LnNjcm9sbFRvIiwgInNjcm9sbFRvT2xkIik7CiAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93LnNldEludGVydmFsIiwgInNldEludGVydmFsT2xkIik7CiAgICAg
ICAgICAgICBzaG91bGRCZSgid2luZG93LnNldFRpbWVvdXQiLCAic2V0VGltZW91dE9sZCIpOwot
Ci0gICAgICAgICAgICAvLyBzaG93TW9kYWxEaWFsb2cgaXMgbm90IGltcGxlbWVudGVkIG9uIGFs
bCBwbGF0Zm9ybXMgZm9yIER1bXBSZW5kZXJUcmVlLiAgU28gZG9uJ3QgZGlzcGxheSB0aGUgdmFs
dWVzLgotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5zaG93TW9kYWxEaWFsb2ciLCAic2hv
d01vZGFsRGlhbG9nT2xkIiwgdHJ1ZSk7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LnN0
b3AiLCAic3RvcE9sZCIpOwogICAgICAgICB9LCAwKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6IExh
eW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1sZW5ndGgtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1sZW5ndGgtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZnVuY3Rpb24tbGVuZ3RoLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDYgQEAgT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiBQQVNTIHdpbmRvdy5jb25maXJtLmxlbmd0aCBpcyAw
CiBQQVNTIHdpbmRvdy5vcGVuLmxlbmd0aCBpcyAyCi1QQVNTIHdpbmRvdy5zaG93TW9kYWxEaWFs
b2cubGVuZ3RoIGlzIDEKIFBBU1Mgd2luZG93LnNldFRpbWVvdXQubGVuZ3RoIGlzIDEKIFBBU1Mg
d2luZG93LmNsZWFyVGltZW91dC5sZW5ndGggaXMgMAogUEFTUyB3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lci5sZW5ndGggaXMgMgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9uLWxlbmd0
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9mdW5jdGlvbi1sZW5ndGgu
aHRtbAkocmV2aXNpb24gMTk1Njg4KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2Z1bmN0aW9uLWxl
bmd0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDcgKzksNiBAQCBkZXNjcmlwdGlvbigiVGhp
cyB0ZXN0cyB0aGUgbGVuZ3RoIHByb3BlCiAKIHNob3VsZEJlKCd3aW5kb3cuY29uZmlybS5sZW5n
dGgnLCAnMCcpOwogc2hvdWxkQmUoJ3dpbmRvdy5vcGVuLmxlbmd0aCcsICcyJyk7Ci1zaG91bGRC
ZSgnd2luZG93LnNob3dNb2RhbERpYWxvZy5sZW5ndGgnLCAnMScpOwogc2hvdWxkQmUoJ3dpbmRv
dy5zZXRUaW1lb3V0Lmxlbmd0aCcsICcxJyk7CiBzaG91bGRCZSgnd2luZG93LmNsZWFyVGltZW91
dC5sZW5ndGgnLCAnMCcpOwogc2hvdWxkQmUoJ3dpbmRvdy5hZGRFdmVudExpc3RlbmVyLmxlbmd0
aCcsICcyJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vZ2xvYmFsLWZ1bmN0aW9uLXJlc29s
dmUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9nbG9iYWwt
ZnVuY3Rpb24tcmVzb2x2ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5NTY4OCkKKysrIExheW91
dFRlc3RzL2pzL2RvbS9nbG9iYWwtZnVuY3Rpb24tcmVzb2x2ZS1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTEwOSwxNCArMTA5LDEyIEBAIFBBU1MgY2FjaGVkRnVuY3Rpb25zWzUxXSgp
IGlzIHNldEludGVydmEKIFBBU1MgY2FjaGVkRnVuY3Rpb25zWzUxXSgpIGlzIHNldEludGVydmFs
CiBQQVNTIGNhY2hlZEZ1bmN0aW9uc1s1Ml0oKSBpcyBzZXRUaW1lb3V0CiBQQVNTIGNhY2hlZEZ1
bmN0aW9uc1s1Ml0oKSBpcyBzZXRUaW1lb3V0Ci1QQVNTIGNhY2hlZEZ1bmN0aW9uc1s1M10oKSBp
cyBzaG93TW9kYWxEaWFsb2cKLVBBU1MgY2FjaGVkRnVuY3Rpb25zWzUzXSgpIGlzIHNob3dNb2Rh
bERpYWxvZwotUEFTUyBjYWNoZWRGdW5jdGlvbnNbNTRdKCkgaXMgc3RhdHVzCi1QQVNTIGNhY2hl
ZEZ1bmN0aW9uc1s1NF0oKSBpcyBzdGF0dXMKLVBBU1MgY2FjaGVkRnVuY3Rpb25zWzU1XSgpIGlz
IHN0b3AKLVBBU1MgY2FjaGVkRnVuY3Rpb25zWzU1XSgpIGlzIHN0b3AKLVBBU1MgY2FjaGVkRnVu
Y3Rpb25zWzU2XSgpIGlzIHdpbmRvdwotUEFTUyBjYWNoZWRGdW5jdGlvbnNbNTZdKCkgaXMgd2lu
ZG93CitQQVNTIGNhY2hlZEZ1bmN0aW9uc1s1M10oKSBpcyBzdGF0dXMKK1BBU1MgY2FjaGVkRnVu
Y3Rpb25zWzUzXSgpIGlzIHN0YXR1cworUEFTUyBjYWNoZWRGdW5jdGlvbnNbNTRdKCkgaXMgc3Rv
cAorUEFTUyBjYWNoZWRGdW5jdGlvbnNbNTRdKCkgaXMgc3RvcAorUEFTUyBjYWNoZWRGdW5jdGlv
bnNbNTVdKCkgaXMgd2luZG93CitQQVNTIGNhY2hlZEZ1bmN0aW9uc1s1NV0oKSBpcyB3aW5kb3cK
IFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDog
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9nbG9iYWwtZnVuY3Rpb24tcmVzb2x2ZS5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2dsb2JhbC1m
dW5jdGlvbi1yZXNvbHZlLmpzCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2dsb2JhbC1mdW5jdGlvbi1yZXNvbHZlLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC01NCw3ICs1NCw2IEBAIHZhciBmdW5jdGlvbk5hbWVzID0gWwogICAgICdzY3JvbGxZJywK
ICAgICAnc2V0SW50ZXJ2YWwnLAogICAgICdzZXRUaW1lb3V0JywKLSAgICAnc2hvd01vZGFsRGlh
bG9nJywKICAgICAnc3RhdHVzJywKICAgICAnc3RvcCcsCiAgICAgJ3dpbmRvdycsCkluZGV4OiBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTk1Njg4
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcg
Y29weSkKQEAgLTMwMyw4ICszMDMsNiBAQCBodHRwL3Rlc3RzL3BvaW50ZXItbG9jay8KIAogd2Vi
a2l0Lm9yZy9iLzgyNzYzIGZhc3QvZm9ybXMvdGV4dGFyZWEtcGxhY2Vob2xkZXItc2V0LWF0dHJp
YnV0ZS5odG1sCiAKLXdlYmtpdC5vcmcvYi8xMDIyNTcgZmFzdC9kb20vV2luZG93L29wZW4td2lu
ZG93LW1pbi1zaXplLmh0bWwKLQogIyBGYWlscyBiZWNhdXNlIE11dGF0aW9uT2JzZXJ2ZXJzIGFy
ZSBub3Qgbm90aWZpZWQgYXQgZW5kLW9mLXRhc2sKIHdlYmtpdC5vcmcvYi83ODI5MCBmYXN0L2Rv
bS9NdXRhdGlvbk9ic2VydmVyL2VuZC1vZi10YXNrLWRlbGl2ZXJ5Lmh0bWwgWyBGYWlsdXJlIF0K
IApAQCAtMzM3LDggKzMzNSw2IEBAIHdlYmtpdC5vcmcvYi84MjY2NSB3ZWJhcmNoaXZlL3Rlc3Qt
Y3NzLXUKIAogd2Via2l0Lm9yZy9iLzgyNjcyIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmFu
Z2UtdGVzdC5odG1sIFsgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzgyNzYyIGZhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCi0KIHdl
YmtpdC5vcmcvYi84MjgwNSBmYXN0L2NhbnZhcy93ZWJnbC9mcmFtZWJ1ZmZlci1vYmplY3QtYXR0
YWNobWVudC5odG1sIFsgRmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi84Mjk3MiBwbHVnaW5zL2tl
eWJvYXJkLWV2ZW50cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KQEAgLTM2OSw3ICszNjUsNiBAQCB3
ZWJraXQub3JnL2IvODY0ODAgcGx1Z2lucy9ucHJ1bnRpbWUvZGVsCiB3ZWJraXQub3JnL2IvODk4
NDUgZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0bWwgWyBQYXNzIEZh
aWx1cmUgXQogCiAjIDxyZGFyOi8vcHJvYmxlbS8xMTIyNDE2MD4gRm9jdXMgbm90IHRyYW5zZmVy
cmluZyBwcm9wZXJseSBpbiBEdW1wUmVuZGVyVHJlZSBpbiBNb3VudGFpbiBMaW9uCi1mYXN0L2V2
ZW50cy9zaG93LW1vZGFsLWRpYWxvZy1vbmJsdXItb25mb2N1cy5odG1sIFsgU2tpcCBdCiBmYXN0
L2Zvcm1zL2xpc3Rib3gtc2Nyb2xsYmFyLWhpdC10ZXN0Lmh0bWwgWyBGYWlsdXJlIF0KIHBsYXRm
b3JtL21hYy9mYXN0L292ZXJmbG93L292ZXJmbG93LXNjcm9sbGJhci1oaXQtdGVzdC5odG1sIFsg
RmFpbHVyZSBdCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCShyZXZpc2lvbiAxOTU2ODgpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4
cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSw2IEBAIGZhc3QvZW5jb2Rp
bmcvaWRuLXNlY3VyaXR5Lmh0bWwKIAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRlc3RSdW5u
ZXIuYWJvcnRNb2RhbAogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY5NTQ4PgotZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVyLW9uZm9jdXMuaHRt
bAogZmFzdC9ldmVudHMvYmVmb3JldW5sb2FkLXNob3dNb2RhbERpYWxvZy5odG1sCiBmYXN0L2V2
ZW50cy9wYWdlaGlkZS1zaG93TW9kYWxEaWFsb2cuaHRtbAogZmFzdC9ldmVudHMvdW5sb2FkLXNo
b3dNb2RhbERpYWxvZy5odG1sCkBAIC0yODIsMTAgKzI4MSw2IEBAIG1hdGhtbC9tYXRobWwtaW4t
ZGFzaGJvYXJkLmh0bWwgWyBTa2lwIF0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0ZXN0UnVu
bmVyLmFkZFVSTFRvUmVkaXJlY3QKIGh0dHAvdGVzdHMvbG9hZGluZy9jcm9zcy1vcmlnaW4tWEhS
LXdpbGxMb2FkUmVxdWVzdC5odG1sCiAKLSMgV2ViS2l0MiBuZWVkcyBzaG93TW9kYWxEaWFsb2cK
LWZhc3QvZXZlbnRzL3Njcm9sbC1ldmVudC1kdXJpbmctbW9kYWwtZGlhbG9nLmh0bWwKLWZhc3Qv
aGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCi0KICMgV2ViS2l0MiBuZWVkcyB0byBzdXBw
b3J0IHN5bmNocm9ub3VzIGNyZWF0aW9uIG9mIGFib3V0OmJsYW5rL2RhdGE6dXJsIGZyYW1lcwog
ZmFzdC9kb20vSFRNTERvY3VtZW50L2hhc0ZvY3VzLmh0bWwKIGZhc3QvZnJhbWVzL3NhbmRib3hl
ZC1pZnJhbWUtbmF2aWdhdGlvbi10YXJnZXRsaW5rLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295226</attachid>
            <date>2016-11-18 17:04:35 -0800</date>
            <delta_ts>2016-11-28 13:34:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151885-20161118170428.patch</filename>
            <type>text/plain</type>
            <size>15573</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODg2OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTExLTE4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2hvd01vZGFsRGlh
bG9nIGFuIG9wdGlvbiAob2ZmLWJ5LWRlZmF1bHQpIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIHN1aXRlLgorCisgICAgICAgICogYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnJlc2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hvd01vZGFsRGlhbG9nRW5hYmxlZCk6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpj
YW5TaG93TW9kYWxEaWFsb2cpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzaG93TW9k
YWxEaWFsb2cpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxNi0xMS0xNyAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIw
ODY3Mj8pOiBBU1NFUlRJT04gRkFJTEVEOiBpc01haW5UaHJlYWQoKSBpbiBXZWJDb3JlOjpOb2Rl
OjpyZWYoKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCShyZXZpc2lvbiAyMDg4NjApCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnJlc2V0KCkKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIG1fY3NzR3Jp
ZExheW91dEVuYWJsZWQgPSB0cnVlOwogI2VuZGlmCi0KKyAgICBtX3Nob3dNb2RhbERpYWxvZ0Vu
YWJsZWQgPSBmYWxzZTsKIH0KIAogUnVudGltZUVuYWJsZWRGZWF0dXJlcyYgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgJKHJldmlz
aW9uIDIwODg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzAsNiArMjMwLDkgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0TW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQoYm9vbCBhcmVFbmFibGVk
KSB7IG1fYXJlTW9kZXJuTWVkaWFDb250cm9sc0VuYWJsZWQgPSBhcmVFbmFibGVkOyB9CiAgICAg
Ym9vbCBtb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fYXJlTW9k
ZXJuTWVkaWFDb250cm9sc0VuYWJsZWQ7IH0KIAorICAgIHZvaWQgc2V0U2hvd01vZGFsRGlhbG9n
RW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX3Nob3dNb2RhbERpYWxvZ0VuYWJsZWQgPSBpc0Vu
YWJsZWQ7IH0KKyAgICBib29sIHNob3dNb2RhbERpYWxvZ0VuYWJsZWQoKSBjb25zdCB7IHJldHVy
biBtX3Nob3dNb2RhbERpYWxvZ0VuYWJsZWQ7IH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzJiBzaGFyZWRGZWF0dXJlcygpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXNldCgpOwpAQCAtMzQ0LDYgKzM0Nyw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2Nzc0dyaWRMYXlvdXRFbmFibGVkOwogI2VuZGlmCiAKKyAgICBib29sIG1fc2hvd01v
ZGFsRGlhbG9nRW5hYmxlZCB7IGZhbHNlIH07CisKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZl
ckRlc3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDIwODg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMDgsIDIwMTAsIDIwMTIt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0zNzgsNiArMzc4LDkgQEAgYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAo
KQogCiBib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKiBmcmFt
ZSkKIHsKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2hvd01vZGFsRGlhbG9nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBp
ZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTIyMzksNiArMjI0Miw5IEBA
IFJlZlB0cjxET01XaW5kb3c+IERPTVdpbmRvdzo6b3Blbihjb25zdCAKIAogdm9pZCBET01XaW5k
b3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5n
JiBkaWFsb2dGZWF0dXJlc1N0cmluZywgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIERPTVdpbmRv
dyYgZmlyc3RXaW5kb3csIHN0ZDo6ZnVuY3Rpb248dm9pZCAoRE9NV2luZG93Jik+IHByZXBhcmVE
aWFsb2dGdW5jdGlvbikKIHsKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2hvd01vZGFsRGlhbG9nRW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisK
ICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47
CiAgICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gYWN0aXZlV2luZG93LmZyYW1lKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyMDg4NjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTY4LDcgKzY4LDcgQEAK
IAogICAgIFtDdXN0b21dIERPTVdpbmRvdyBvcGVuKG9wdGlvbmFsIFVTVlN0cmluZyB1cmwgPSAi
YWJvdXQ6YmxhbmsiLCBvcHRpb25hbCBET01TdHJpbmcgdGFyZ2V0ID0gIl9ibGFuayIsIFtUcmVh
dE51bGxBcz1FbXB0eVN0cmluZ10gb3B0aW9uYWwgRE9NU3RyaW5nIGZlYXR1cmVzID0gIiIpOwog
Ci0gICAgW0N1c3RvbV0gYW55IHNob3dNb2RhbERpYWxvZyhET01TdHJpbmcgdXJsLCBvcHRpb25h
bCBhbnkgZGlhbG9nQXJncywgb3B0aW9uYWwgRE9NU3RyaW5nIGZlYXR1cmVBcmdzKTsKKyAgICBb
RW5hYmxlZEF0UnVudGltZT1zaG93TW9kYWxEaWFsb2csIEN1c3RvbV0gYW55IHNob3dNb2RhbERp
YWxvZyhET01TdHJpbmcgdXJsLCBvcHRpb25hbCBhbnkgZGlhbG9nQXJncywgb3B0aW9uYWwgRE9N
U3RyaW5nIGZlYXR1cmVBcmdzKTsKIAogICAgIHZvaWQgYWxlcnQoKTsKICAgICB2b2lkIGFsZXJ0
KERPTVN0cmluZyBtZXNzYWdlKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODg2MCkKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBA
CisyMDE2LTExLTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAg
ICAgIE1ha2Ugc2hvd01vZGFsRGlhbG9nIGFuIG9wdGlvbiAob2ZmLWJ5LWRlZmF1bHQpIGZlYXR1
cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4
NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBhbGxvdyBX
ZWJLaXQyIHRvIHRvZ2dsZSAnc2hvd01vZGFsRGlhbG9nJyBhdmFpbGFiaWxpdHkuCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZvclRlc3RSdW5uZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE2LTExLTE3ICBTYWFtIEJhcmF0
aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhc3luYy9hd2FpdCBjb21w
aWxlIHRpbWUgZmxhZyBhbmQgZW5hYmxlIHRlc3RzCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHJldmlzaW9uIDIwODg2MCkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgJKHdv
cmtpbmcgY29weSkKQEAgLTIzNiw2ICsyMzYsNyBAQAogICAgIG1hY3JvKE5lZWRzU3RvcmFnZUFj
Y2Vzc0Zyb21GaWxlVVJMc1F1aXJrLCBuZWVkc1N0b3JhZ2VBY2Nlc3NGcm9tRmlsZVVSTHNRdWly
aywgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oQXN5bmNJbWFnZURlY29k
aW5nRW5hYmxlZCwgYXN5bmNJbWFnZURlY29kaW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwg
IiIsICIiKSBcCiAgICAgbWFjcm8oQ3VzdG9tRWxlbWVudHNFbmFibGVkLCBjdXN0b21FbGVtZW50
c0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAorICAgIG1hY3JvKFNob3dNb2Rh
bERpYWxvZ0VuYWJsZWQsIHNob3dNb2RhbERpYWxvZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNl
LCAiIiwgIiIpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVG
RVJFTkNFKG1hY3JvKSBcCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMjA4
ODYwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Nyw2ICsxOTcsOSBAQCB2b2lkIEluamVj
dGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIldl
YktpdERPTUl0ZXJhdG9yRW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuc2V0RE9NSXRlcmF0b3JFbmFibGVkKGVuYWJsZWQpOwogCisgICAg
aWYgKHByZWZlcmVuY2UgPT0gIldlYktpdFNob3dNb2RhbERpYWxvZ0VuYWJsZWQiKQorICAgICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNob3dNb2RhbERp
YWxvZ0VuYWJsZWQoZW5hYmxlZCk7CisKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAg
IGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIpCiAgICAgICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91
dEVuYWJsZWQoZW5hYmxlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyMDg4NjApCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyMDgsNiAr
MzIwOCw4IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKIAogICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RE9NSXRlcmF0b3JF
bmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tSXRl
cmF0b3JFbmFibGVkS2V5KCkpKTsKIAorICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVG
b3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3dNb2RhbERpYWxvZ0VuYWJsZWRLZXkoKSkpOwor
CiAgICAgLy8gRXhwZXJpbWVudGFsIEZlYXR1cmVzLgogCiAjaWYgRU5BQkxFKENTU19HUklEX0xB
WU9VVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODg2MCkKKysrIFNvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2
LTExLTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1h
a2Ugc2hvd01vZGFsRGlhbG9nIGFuIG9wdGlvbiAob2ZmLWJ5LWRlZmF1bHQpIGZlYXR1cmUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBhbGxvdyBXZWJLaXQx
IHRvIHRvZ2dsZSAnc2hvd01vZGFsRGlhbG9nJyBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNob3dNb2RhbERpYWxv
Z0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd01vZGFsRGlhbG9n
RW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVy
ZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE2LTExLTE2ICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtDU1MgUGFyc2VyXSBBZGQgQHN1cHBvcnRzLCBAa2V5ZnJhbWUgYW5k
IG1lZGlhIHF1ZXJ5IHBhcnNpbmcgb3B0aW9ucwpJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDg4
NjApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsNiArMTcxLDcgQEAKICNkZWZpbmUgV2ViS2l0Q1NT
R3JpZExheW91dEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJs
ZWQiCiAjZGVmaW5lIFdlYktpdFZpc3VhbFZpZXdwb3J0RW5hYmxlZFByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRWaXN1YWxWaWV3cG9ydEVuYWJsZWQiCiAjZGVmaW5lIFdlYktpdE1vZGVybk1lZGlhQ29u
dHJvbHNFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdE1vZGVybk1lZGlhQ29udHJvbHNFbmFi
bGVkIgorI2RlZmluZSBXZWJLaXRTaG93TW9kYWxEaWFsb2dFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdFNob3dNb2RhbERpYWxvZ0VuYWJsZWQiCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQog
Ly8gVGhlc2UgYXJlIHByaXZhdGUgYm90aCBiZWNhdXNlIGNhbGxlcnMgc2hvdWxkIGJlIHVzaW5n
IHRoZSBjb3ZlciBtZXRob2RzIGFuZCBiZWNhdXNlIHRoZQpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyMDg4NjApCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yODM5LDYgKzI4MzksMTcgQEAgLSAodm9pZClzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxl
ZDooQgogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0TW9kZXJuTWVk
aWFDb250cm9sc0VuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoQk9PTClzaG93TW9kYWxE
aWFsb2dFbmFibGVkCit7CisgICAgcmV0dXJuIFtzZWxmIF9ib29sVmFsdWVGb3JLZXk6V2ViS2l0
U2hvd01vZGFsRGlhbG9nRW5hYmxlZFByZWZlcmVuY2VLZXldOworfQorCistICh2b2lkKXNldFNo
b3dNb2RhbERpYWxvZ0VuYWJsZWQ6KEJPT0wpZmxhZworeworICAgIFtzZWxmIF9zZXRCb29sVmFs
dWU6ZmxhZyBmb3JLZXk6V2ViS2l0U2hvd01vZGFsRGlhbG9nRW5hYmxlZFByZWZlcmVuY2VLZXld
OworfQorCisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYlByZWZlcmVuY2VzIChXZWJJbnRl
cm5hbCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAkocmV2aXNpb24gMjA4ODYwKQorKysgU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTA5LDYgKzUw
OSw5IEBAIEBpbnRlcmZhY2UgV2ViUHJlZmVyZW5jZXMgKFdlYlByaXZhdGUpCiAtICh2b2lkKXNl
dE1vZGVybk1lZGlhQ29udHJvbHNFbmFibGVkOihCT09MKWZsYWc7CiAtIChCT09MKW1vZGVybk1l
ZGlhQ29udHJvbHNFbmFibGVkOwogCistICh2b2lkKXNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQ6
KEJPT0wpZmxhZzsKKy0gKEJPT0wpc2hvd01vZGFsRGlhbG9nRW5hYmxlZDsKKwogQHByb3BlcnR5
IChub25hdG9taWMpIEJPT0wgdmlzdWFsVmlld3BvcnRFbmFibGVkOwogQHByb3BlcnR5IChub25h
dG9taWMpIEJPT0wgYXN5bmNJbWFnZURlY29kaW5nRW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIGphdmFTY3JpcHRNYXJrdXBFbmFibGVkOwpJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQkocmV2aXNpb24gMjA4ODYwKQorKysgU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yODM2LDYgKzI4MzYsOSBAQCAt
ICh2b2lkKV9wcmVmZXJlbmNlc0NoYW5nZWQ6KFdlYlByZWZlcmVuCiAKICAgICBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEN1c3RvbUVsZW1lbnRzRW5hYmxlZChb
cHJlZmVyZW5jZXMgY3VzdG9tRWxlbWVudHNFbmFibGVkXSk7CiAKKyAgICBSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQoW3By
ZWZlcmVuY2VzIHNob3dNb2RhbERpYWxvZ0VuYWJsZWRdKTsKKworCiAjaWYgRU5BQkxFKEZFVENI
X0FQSSkKICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldEZl
dGNoQVBJRW5hYmxlZChbcHJlZmVyZW5jZXMgZmV0Y2hBUElFbmFibGVkXSk7CiAjZW5kaWYKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwODkwOSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIxIEBACisyMDE2LTExLTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2Ugc2hvd01vZGFsRGlhbG9nIGFuIG9wdGlvbiAob2ZmLWJ5LWRlZmF1bHQp
IGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MTg4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVHVybiB0aGUgb3B0aW9uYWwgJ3No
b3dNb2RhbERpYWxvZycgZmVhdHVyZSBvbiBmb3IgdGVzdGluZy4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViUHJlZmVy
ZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZTo6YmVnaW5UZXN0aW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpzZXRTaG93
TW9kYWxEaWFsb2dFbmFibGVkKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaDoKKwogMjAxNi0xMS0xOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBBUEkgdGVzdCBhZnRlciByMjA4
OTAyCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShy
ZXZpc2lvbiAyMDg4NjApCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0JKHdvcmtpbmcgY29weSkKQEAgLTk5OSw2ICs5OTksOCBAQCBzdGF0aWMgdm9pZCByZXNl
dFdlYlByZWZlcmVuY2VzVG9Db25zaXN0CiAgICAgW3ByZWZlcmVuY2VzIHNldEhpZGRlblBhZ2VE
T01UaW1lclRocm90dGxpbmdFbmFibGVkOk5PXTsKICAgICBbcHJlZmVyZW5jZXMgc2V0SGlkZGVu
UGFnZUNTU0FuaW1hdGlvblN1c3BlbnNpb25FbmFibGVkOk5PXTsKIAorICAgIFtwcmVmZXJlbmNl
cyBzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkOllFU107CisKICAgICBbV2ViUHJlZmVyZW5jZXMg
X2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwogICAgIFtXZWJQcmVmZXJlbmNlcyBfc2V0Q3Vy
cmVudE5ldHdvcmtMb2FkZXJTZXNzaW9uQ29va2llQWNjZXB0UG9saWN5Ok5TSFRUUENvb2tpZUFj
Y2VwdFBvbGljeU9ubHlGcm9tTWFpbkRvY3VtZW50RG9tYWluXTsKIH0KSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGUuY3BwCShyZXZpc2lvbiAyMDg4NjApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMwLDYgKzMz
MCw4IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyhXS0RpY3QKIAogICAgIG1f
dGVzdFJ1bm5lci0+c2V0RVM2TW9kdWxlc0VuYWJsZWQodHJ1ZSk7CiAKKyAgICBtX3Rlc3RSdW5u
ZXItPnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQodHJ1ZSk7CisKICAgICBtX3Rlc3RSdW5uZXIt
PnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShmYWxzZSk7CiAgICAgbV90ZXN0
UnVubmVyLT5zZXRBY2NlcHRzRWRpdGluZyh0cnVlKTsKICAgICBtX3Rlc3RSdW5uZXItPnNldFRh
YktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24g
MjA4ODYwKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ3LDYgKzM0NywxMyBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldFNoYWRvd0RPTUVuYWJsZWQoYm9vCiAgICAgV0tCdW5kbGVPdmVycmlkZUJvb2xQcmVm
ZXJlbmNlRm9yVGVzdFJ1bm5lcihpbmplY3RlZEJ1bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5k
bGUucGFnZUdyb3VwKCksIGtleS5nZXQoKSwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgVGVzdFJ1bm5l
cjo6c2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgV0tSZXRh
aW5QdHI8V0tTdHJpbmdSZWY+IGtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiV2ViS2l0U2hvd01vZGFsRGlhbG9nRW5hYmxlZCIpKTsKKyAgICBhdXRvJiBpbmplY3Rl
ZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBXS0J1bmRsZU92ZXJy
aWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVkQnVuZGxlLmJ1bmRsZSgpLCBp
bmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5LmdldCgpLCBlbmFibGVkKTsKK30KKwogdm9p
ZCBUZXN0UnVubmVyOjpzZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewog
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIldlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxlZCIpKTsKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CShyZXZpc2lvbiAyMDg4NjApCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL1Rlc3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldERvd25sb2FkQXR0cmlidXRlRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogICAgIHZvaWQgc2V0RVM2TW9kdWxl
c0VuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkKGJvb2wp
OwogCiAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgogICAgIHZvaWQgY2xlYXJCYWNrRm9y
d2FyZExpc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295523</attachid>
            <date>2016-11-28 13:34:13 -0800</date>
            <delta_ts>2016-11-28 13:48:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151885-20161128133349.patch</filename>
            <type>text/plain</type>
            <size>15554</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTExLTE4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2hvd01vZGFsRGlh
bG9nIGFuIG9wdGlvbiAob2ZmLWJ5LWRlZmF1bHQpIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGVzdGVkIGJ5IGV4aXN0aW5nIHN1aXRlLgorCisgICAgICAgICogYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnJlc2V0KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hvd01vZGFsRGlhbG9nRW5hYmxlZCk6CisgICAg
ICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpj
YW5TaG93TW9kYWxEaWFsb2cpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzaG93TW9k
YWxEaWFsb2cpOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxNi0xMS0yOCAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEZJUlNU
X0xJTkVfSU5IRVJJVEVEIGZha2UgcHNldWRvIHN0eWxlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHAJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBA
CiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTEyLDYgKzExMiw3
IEBAIHZvaWQgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6cmVzZXQoKQogI2lmIEVOQUJMRShJTlRF
UlNFQ1RJT05fT0JTRVJWRVIpCiAgICAgbV9pbnRlcnNlY3Rpb25PYnNlcnZlckVuYWJsZWQgPSBm
YWxzZTsKICNlbmRpZgorICAgIG1fc2hvd01vZGFsRGlhbG9nRW5hYmxlZCA9IGZhbHNlOwogfQog
CiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVF
bmFibGVkRmVhdHVyZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAkocmV2aXNpb24gMjA4OTk5KQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBlbmNyeXB0
ZWRNZWRpYUFQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuY3J5cHRlZE1lZGlhQVBJRW5h
YmxlZDsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQoYm9v
bCBpc0VuYWJsZWQpIHsgbV9zaG93TW9kYWxEaWFsb2dFbmFibGVkID0gaXNFbmFibGVkOyB9Cisg
ICAgYm9vbCBzaG93TW9kYWxEaWFsb2dFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zaG93TW9k
YWxEaWFsb2dFbmFibGVkOyB9CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVzKCk7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlc2V0KCk7CkBAIC0zNjEsNiArMzY0LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUo
SU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgIGJvb2wgbV9pbnRlcnNlY3Rpb25PYnNlcnZlckVu
YWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgCisgICAgYm9vbCBtX3Nob3dNb2RhbERpYWxv
Z0VuYWJsZWQgeyBmYWxzZSB9OwogCiAgICAgZnJpZW5kIGNsYXNzIFdURjo6TmV2ZXJEZXN0cm95
ZWQ8UnVudGltZUVuYWJsZWRGZWF0dXJlcz47CiB9OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAwOCwgMjAxMCwgMjAxMi0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBD
b3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
QEAgLTM4MSw2ICszODEsOSBAQCBib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgpCiAKIGJvb2wg
RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUqIGZyYW1lKQogeworICAg
IGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zaG93TW9kYWxE
aWFsb2dFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtMjI2OSw2ICsyMjcyLDkgQEAgUmVmUHRyPERP
TVdpbmRvdz4gRE9NV2luZG93OjpvcGVuKGNvbnN0IAogCiB2b2lkIERPTVdpbmRvdzo6c2hvd01v
ZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0Zl
YXR1cmVzU3RyaW5nLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93JiBmaXJzdFdp
bmRvdywgc3RkOjpmdW5jdGlvbjx2b2lkIChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0
aW9uKQogeworICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zaG93TW9kYWxEaWFsb2dFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmICgh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKICAgICBGcmFt
ZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5pZGwJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNjgsNyArNjgsNyBAQAogCiAgICAgW0N1
c3RvbV0gRE9NV2luZG93IG9wZW4ob3B0aW9uYWwgVVNWU3RyaW5nIHVybCA9ICJhYm91dDpibGFu
ayIsIG9wdGlvbmFsIERPTVN0cmluZyB0YXJnZXQgPSAiX2JsYW5rIiwgW1RyZWF0TnVsbEFzPUVt
cHR5U3RyaW5nXSBvcHRpb25hbCBET01TdHJpbmcgZmVhdHVyZXMgPSAiIik7CiAKLSAgICBbQ3Vz
dG9tXSBhbnkgc2hvd01vZGFsRGlhbG9nKERPTVN0cmluZyB1cmwsIG9wdGlvbmFsIGFueSBkaWFs
b2dBcmdzLCBvcHRpb25hbCBET01TdHJpbmcgZmVhdHVyZUFyZ3MpOworICAgIFtFbmFibGVkQXRS
dW50aW1lPXNob3dNb2RhbERpYWxvZywgQ3VzdG9tXSBhbnkgc2hvd01vZGFsRGlhbG9nKERPTVN0
cmluZyB1cmwsIG9wdGlvbmFsIGFueSBkaWFsb2dBcmdzLCBvcHRpb25hbCBET01TdHJpbmcgZmVh
dHVyZUFyZ3MpOwogCiAgICAgdm9pZCBhbGVydCgpOwogICAgIHZvaWQgYWxlcnQoRE9NU3RyaW5n
IG1lc3NhZ2UpOwpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMTEt
MTggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBz
aG93TW9kYWxEaWFsb2cgYW4gb3B0aW9uIChvZmYtYnktZGVmYXVsdCkgZmVhdHVyZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODg1CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIGFsbG93IFdlYktpdDIgdG8g
dG9nZ2xlICdzaG93TW9kYWxEaWFsb2cnIGF2YWlsYWJpbGl0eS4KKworICAgICAgICAqIFNoYXJl
ZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVk
QnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTYtMTEtMjcgIERlYW4gSmFja3NvbiAgPGRpbm9A
YXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgYSBXVEZMb2dBbHdheXMgSSBsZWZ0IGluIHdp
dGggYSByZWNlbnQgY29tbWl0LgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZl
cmVuY2VzRGVmaW5pdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMDg5OTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yMzgsNiArMjM4LDcgQEAKICAgICBtYWNybyhDdXN0b21FbGVtZW50c0VuYWJsZWQsIGN1
c3RvbUVsZW1lbnRzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAgbWFj
cm8oRW5jcnlwdGVkTWVkaWFBUElFbmFibGVkLCBlbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQsIEJv
b2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhJbnRlcnNlY3Rpb25PYnNlcnZl
ckVuYWJsZWQsIGludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2Us
ICJJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIiLCAiRW5hYmxlIEludGVyc2VjdGlvbiBPYnNlcnZlciBz
dXBwb3J0IikgXAorICAgIG1hY3JvKFNob3dNb2RhbERpYWxvZ0VuYWJsZWQsIHNob3dNb2RhbERp
YWxvZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBcCiAKICNkZWZp
bmUgRk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTE5Nyw2ICsxOTcsOSBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVm
ZXJlCiAgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdERPTUl0ZXJhdG9yRW5hYmxlZCIpCiAg
ICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0RE9NSXRl
cmF0b3JFbmFibGVkKGVuYWJsZWQpOwogCisgICAgaWYgKHByZWZlcmVuY2UgPT0gIldlYktpdFNo
b3dNb2RhbERpYWxvZ0VuYWJsZWQiKQorICAgICAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQoZW5hYmxlZCk7CisKICNp
ZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgIGlmIChwcmVmZXJlbmNlID09ICJXZWJLaXRD
U1NHcmlkTGF5b3V0RW5hYmxlZCIpCiAgICAgICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoZW5hYmxlZCk7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lv
biAyMDg5OTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNjIsNiArMzE2Miw4IEBAIHZvaWQgV2ViUGFnZTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2UKIAogICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuc2V0RE9NSXRlcmF0b3JFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6ZG9tSXRlcmF0b3JFbmFibGVkS2V5KCkpKTsKIAorICAg
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2hvd01vZGFsRGlh
bG9nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNo
b3dNb2RhbERpYWxvZ0VuYWJsZWRLZXkoKSkpOworCiAgICAgLy8gRXhwZXJpbWVudGFsIEZlYXR1
cmVzLgogCiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE2LTExLTE4ICBCcmVudCBGdWxnaGFtICA8YmZ1
bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2hvd01vZGFsRGlhbG9nIGFuIG9wdGlv
biAob2ZmLWJ5LWRlZmF1bHQpIGZlYXR1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTY3NDcx
ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGEgcHJlZmVyZW5jZSB0byBhbGxvdyBXZWJLaXQxIHRvIHRvZ2dsZSAnc2hvd01vZGFsRGlhbG9n
JyBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgt
W1dlYlByZWZlcmVuY2VzIHNob3dNb2RhbERpYWxvZ0VuYWJsZWRdKToKKyAgICAgICAgKC1bV2Vi
UHJlZmVyZW5jZXMgc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZDpdKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorCiAyMDE2LTEx
LTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtX
VEZdIEltcG9ydCBzdGQ6Om9wdGlvbmFsIHJlZmVyZW5jZSBpbXBsZW1lbnRhdGlvbiBhcyBXVEY6
Ok9wdGlvbmFsCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTE3Miw2ICsxNzIsNyBAQAogI2RlZmluZSBXZWJLaXRWaXN1YWxWaWV3cG9ydEVuYWJsZWRQ
cmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFibGVkIgogI2RlZmluZSBXZWJL
aXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRNb2Rlcm5N
ZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0UG9pbnRlckxvY2tFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdFBvaW50ZXJMb2NrRW5hYmxlZCIKKyNkZWZpbmUgV2ViS2l0U2hv
d01vZGFsRGlhbG9nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJLaXRTaG93TW9kYWxEaWFsb2dF
bmFibGVkIgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIC8vIFRoZXNlIGFyZSBwcml2YXRlIGJv
dGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0aGUgY292ZXIgbWV0aG9kcyBhbmQg
YmVjYXVzZSB0aGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjg1OSw2ICsyODU5LDE1IEBAIC0g
KHZvaWQpc2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkOigKICAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZFByZWZl
cmVuY2VLZXldOwogfQogCistIChCT09MKXNob3dNb2RhbERpYWxvZ0VuYWJsZWQKK3sKKyAgICBy
ZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRTaG93TW9kYWxEaWFsb2dFbmFibGVk
UHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZDoo
Qk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktleTpXZWJLaXRT
aG93TW9kYWxEaWFsb2dFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CiBAZW5kCiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgJKHJldmlzaW9uIDIw
ODk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIsOSBAQCBAaW50ZXJmYWNlIFdlYlByZWZl
cmVuY2VzIChXZWJQcml2YXRlKQogLSAodm9pZClzZXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxl
ZDooQk9PTClmbGFnOwogLSAoQk9PTCltb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZDsKIAorLSAo
dm9pZClzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkOihCT09MKWZsYWc7CistIChCT09MKXNob3dN
b2RhbERpYWxvZ0VuYWJsZWQ7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIHZpc3VhbFZp
ZXdwb3J0RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBCT09MIGFzeW5jSW1hZ2VEZWNv
ZGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9PTCBqYXZhU2NyaXB0TWFya3Vw
RW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0JKHJldmlzaW9u
IDIwODk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjg0MCw2ICsyODQwLDkgQEAgLSAodm9pZClfcHJlZmVyZW5jZXNDaGFuZ2Vk
OihXZWJQcmVmZXJlbgogCiAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS5zZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoW3ByZWZlcmVuY2VzIGN1c3RvbUVsZW1lbnRz
RW5hYmxlZF0pOwogCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkKFtwcmVmZXJlbmNlcyBzaG93TW9kYWxEaWFsb2dF
bmFibGVkXSk7CisKKwogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoW3ByZWZlcmVuY2Vz
IGZldGNoQVBJRW5hYmxlZF0pOwogI2VuZGlmCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDg5OTkpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxNi0xMS0xOCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHNob3dNb2RhbERp
YWxvZyBhbiBvcHRpb24gKG9mZi1ieS1kZWZhdWx0KSBmZWF0dXJlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4ODUKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzE2NzQ3MTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFR1cm4gdGhlIG9wdGlvbmFsICdzaG93TW9kYWxEaWFsb2cnIGZlYXR1cmUgb24g
Zm9yIHRlc3RpbmcuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW06CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6c2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZCk6CisgICAg
ICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisKIDIw
MTYtMTEtMTggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHNvbWUgcGVyZm9ybWFuY2UgdGVzdHMgZm9yIHZhcmlvdXMgYXNwZWN0cyBvZiBtZWRpYSBsb2Fk
aW5nIGFuZCBwbGF5YmFjay4KSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0JKHJldmlzaW9uIDIwODk5OSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9EdW1wUmVuZGVyVHJlZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTAwMCw2ICsxMDAwLDggQEAg
c3RhdGljIHZvaWQgcmVzZXRXZWJQcmVmZXJlbmNlc1RvQ29uc2lzdAogICAgIFtwcmVmZXJlbmNl
cyBzZXRIaWRkZW5QYWdlRE9NVGltZXJUaHJvdHRsaW5nRW5hYmxlZDpOT107CiAgICAgW3ByZWZl
cmVuY2VzIHNldEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxlZDpOT107CiAK
KyAgICBbcHJlZmVyZW5jZXMgc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZDpZRVNdOworCiAgICAg
cHJlZmVyZW5jZXMuaW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkID0gb3B0aW9ucy5lbmFibGVJ
bnRlcnNlY3Rpb25PYnNlcnZlcjsKIAogICAgIFtXZWJQcmVmZXJlbmNlcyBfY2xlYXJOZXR3b3Jr
TG9hZGVyU2Vzc2lvbl07CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gMjA4OTk5KQor
KysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw2ICszMzIsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpiZWdpblRlc3RpbmcoV0tEaWN0CiAKICAgICBtX3Rlc3RSdW5uZXItPnNldEVuY3J5cHRlZE1l
ZGlhQVBJRW5hYmxlZCh0cnVlKTsKIAorICAgIG1fdGVzdFJ1bm5lci0+c2V0U2hvd01vZGFsRGlh
bG9nRW5hYmxlZCh0cnVlKTsKKwogICAgIG1fdGVzdFJ1bm5lci0+c2V0Q2xvc2VSZW1haW5pbmdX
aW5kb3dzV2hlbkNvbXBsZXRlKGZhbHNlKTsKICAgICBtX3Rlc3RSdW5uZXItPnNldEFjY2VwdHNF
ZGl0aW5nKHRydWUpOwogICAgIG1fdGVzdFJ1bm5lci0+c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVs
ZW1lbnRzKHRydWUpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAyMDg5OTkpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDcsNiArMzQ3LDEzIEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U2hhZG93RE9NRW5h
YmxlZChib28KICAgICBXS0J1bmRsZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVy
KGluamVjdGVkQnVuZGxlLmJ1bmRsZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5
LmdldCgpLCBlbmFibGVkKTsKIH0KIAordm9pZCBUZXN0UnVubmVyOjpzZXRTaG93TW9kYWxEaWFs
b2dFbmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
a2V5KEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJXZWJLaXRTaG93TW9k
YWxEaWFsb2dFbmFibGVkIikpOworICAgIGF1dG8mIGluamVjdGVkQnVuZGxlID0gSW5qZWN0ZWRC
dW5kbGU6OnNpbmdsZXRvbigpOworICAgIFdLQnVuZGxlT3ZlcnJpZGVCb29sUHJlZmVyZW5jZUZv
clRlc3RSdW5uZXIoaW5qZWN0ZWRCdW5kbGUuYnVuZGxlKCksIGluamVjdGVkQnVuZGxlLnBhZ2VH
cm91cCgpLCBrZXkuZ2V0KCksIGVuYWJsZWQpOworfQorCiB2b2lkIFRlc3RSdW5uZXI6OnNldEN1
c3RvbUVsZW1lbnRzRW5hYmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiV2Vi
S2l0Q3VzdG9tRWxlbWVudHNFbmFibGVkIikpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDIwODk5OSkK
KysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjksNiArMTI5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0QWxs
b3dzQW55U1NMQ2VydGlmaWNhdGUoYm9vbCk7CiAgICAgdm9pZCBzZXRFUzZNb2R1bGVzRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldEVuY3J5cHRlZE1lZGlhQVBJRW5hYmxlZChib29sKTsKKyAg
ICB2b2lkIHNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQoYm9vbCk7CiAKICAgICAvLyBTcGVjaWFs
IERPTSBmdW5jdGlvbnMuCiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295526</attachid>
            <date>2016-11-28 13:48:47 -0800</date>
            <delta_ts>2022-02-21 10:27:26 -0800</delta_ts>
            <desc>Revised to leave &apos;showModalDialog&apos; on by default.</desc>
            <filename>bug-151885-20161128134823.patch</filename>
            <type>text/plain</type>
            <size>15579</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE2LTExLTE4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2Ugc2hvd01vZGFsRGlh
bG9nIGEgcnVudGltZSBlbmFibGVkIChvbi1ieS1kZWZhdWx0KSBmZWF0dXJlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE4ODUKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzE2NzQ3MTgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RlZCBieSBleGlzdGluZyBzdWl0ZS4KKworICAgICAgICAqIGJp
bmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpyZXNldCk6CisgICAgICAgICogYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChXZWJDb3JlOjpSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNob3dNb2RhbERpYWxvZ0VuYWJsZWQp
OgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
c2hvd01vZGFsRGlhbG9nKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5pZGw6CisKIDIwMTYt
MTEtMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92
ZSBGSVJTVF9MSU5FX0lOSEVSSVRFRCBmYWtlIHBzZXVkbyBzdHlsZQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuY3BwCShyZXZpc2lvbiAyMDg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMy0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTExMiw2
ICsxMTIsNyBAQCB2b2lkIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnJlc2V0KCkKICNpZiBFTkFC
TEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgIG1faW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFi
bGVkID0gZmFsc2U7CiAjZW5kaWYKKyAgICBtX3Nob3dNb2RhbERpYWxvZ0VuYWJsZWQgPSB0cnVl
OwogfQogCiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1
bnRpbWVFbmFibGVkRmVhdHVyZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaAkocmV2aXNpb24gMjA4OTk5KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MCw2ICsyNDAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBl
bmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2VuY3J5cHRlZE1lZGlh
QVBJRW5hYmxlZDsgfQogI2VuZGlmCiAKKyAgICB2b2lkIHNldFNob3dNb2RhbERpYWxvZ0VuYWJs
ZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9zaG93TW9kYWxEaWFsb2dFbmFibGVkID0gaXNFbmFibGVk
OyB9CisgICAgYm9vbCBzaG93TW9kYWxEaWFsb2dFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9z
aG93TW9kYWxEaWFsb2dFbmFibGVkOyB9CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMmIHNoYXJlZEZlYXR1cmVzKCk7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlc2V0KCk7CkBAIC0zNjEsNiArMzY0LDggQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoSU5URVJTRUNUSU9OX09CU0VSVkVSKQogICAgIGJvb2wgbV9pbnRlcnNlY3Rpb25PYnNl
cnZlckVuYWJsZWQgeyBmYWxzZSB9OwogI2VuZGlmCisgICAgCisgICAgYm9vbCBtX3Nob3dNb2Rh
bERpYWxvZ0VuYWJsZWQgeyB0cnVlIH07CiAKICAgICBmcmllbmQgY2xhc3MgV1RGOjpOZXZlckRl
c3Ryb3llZDxSdW50aW1lRW5hYmxlZEZlYXR1cmVzPjsKIH07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCShyZXZpc2lvbiAyMDg5OTkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDA4LCAyMDEwLCAyMDEyLTIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5v
a2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dApAQCAtMzgxLDYgKzM4MSw5IEBAIGJvb2wgRE9NV2luZG93OjphbGxvd1BvcFVwKCkKIAog
Ym9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSogZnJhbWUpCiB7
CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNob3dN
b2RhbERpYWxvZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFm
cmFtZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0yMjY5LDYgKzIyNzIsOSBAQCBSZWZQ
dHI8RE9NV2luZG93PiBET01XaW5kb3c6Om9wZW4oY29uc3QgCiAKIHZvaWQgRE9NV2luZG93Ojpz
aG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlh
bG9nRmVhdHVyZXNTdHJpbmcsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBET01XaW5kb3cmIGZp
cnN0V2luZG93LCBzdGQ6OmZ1bmN0aW9uPHZvaWQgKERPTVdpbmRvdyYpPiBwcmVwYXJlRGlhbG9n
RnVuY3Rpb24pCiB7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLnNob3dNb2RhbERpYWxvZ0VuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
aWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogICAg
IEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2ZVdpbmRvdy5mcmFtZSgpOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmlkbAkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC02OCw3ICs2OCw3IEBACiAKICAg
ICBbQ3VzdG9tXSBET01XaW5kb3cgb3BlbihvcHRpb25hbCBVU1ZTdHJpbmcgdXJsID0gImFib3V0
OmJsYW5rIiwgb3B0aW9uYWwgRE9NU3RyaW5nIHRhcmdldCA9ICJfYmxhbmsiLCBbVHJlYXROdWxs
QXM9RW1wdHlTdHJpbmddIG9wdGlvbmFsIERPTVN0cmluZyBmZWF0dXJlcyA9ICIiKTsKIAotICAg
IFtDdXN0b21dIGFueSBzaG93TW9kYWxEaWFsb2coRE9NU3RyaW5nIHVybCwgb3B0aW9uYWwgYW55
IGRpYWxvZ0FyZ3MsIG9wdGlvbmFsIERPTVN0cmluZyBmZWF0dXJlQXJncyk7CisgICAgW0VuYWJs
ZWRBdFJ1bnRpbWU9c2hvd01vZGFsRGlhbG9nLCBDdXN0b21dIGFueSBzaG93TW9kYWxEaWFsb2co
RE9NU3RyaW5nIHVybCwgb3B0aW9uYWwgYW55IGRpYWxvZ0FyZ3MsIG9wdGlvbmFsIERPTVN0cmlu
ZyBmZWF0dXJlQXJncyk7CiAKICAgICB2b2lkIGFsZXJ0KCk7CiAgICAgdm9pZCBhbGVydChET01T
dHJpbmcgbWVzc2FnZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDg5OTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAx
Ni0xMS0xOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAgICBN
YWtlIHNob3dNb2RhbERpYWxvZyBhIHJ1bnRpbWUgZW5hYmxlZCAob24tYnktZGVmYXVsdCkgZmVh
dHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUx
ODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4MT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBwcmVmZXJlbmNlIHRvIGFsbG93
IFdlYktpdDIgdG8gdG9nZ2xlICdzaG93TW9kYWxEaWFsb2cnIGF2YWlsYWJpbGl0eS4KKworICAg
ICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTYtMTEtMjcgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgYSBXVEZMb2dBbHdheXMg
SSBsZWZ0IGluIHdpdGggYSByZWNlbnQgY29tbWl0LgpJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCShyZXZpc2lvbiAyMDg5OTkp
CisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMzgsNiArMjM4LDcgQEAKICAgICBtYWNybyhDdXN0b21FbGVtZW50
c0VuYWJsZWQsIGN1c3RvbUVsZW1lbnRzRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIi
KSBcCiAgICAgbWFjcm8oRW5jcnlwdGVkTWVkaWFBUElFbmFibGVkLCBlbmNyeXB0ZWRNZWRpYUFQ
SUVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhJbnRlcnNl
Y3Rpb25PYnNlcnZlckVuYWJsZWQsIGludGVyc2VjdGlvbk9ic2VydmVyRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgZmFsc2UsICJJbnRlcnNlY3Rpb24gT2JzZXJ2ZXIiLCAiRW5hYmxlIEludGVyc2VjdGlv
biBPYnNlcnZlciBzdXBwb3J0IikgXAorICAgIG1hY3JvKFNob3dNb2RhbERpYWxvZ0VuYWJsZWQs
IHNob3dNb2RhbERpYWxvZ0VuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUsICIiLCAiIikgXAogICAg
IFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiAyMDg5OTkpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTk3LDYgKzE5Nyw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Om92ZXJy
aWRlQm9vbFByZWZlcmUKICAgICBpZiAocHJlZmVyZW5jZSA9PSAiV2ViS2l0RE9NSXRlcmF0b3JF
bmFibGVkIikKICAgICAgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5zZXRET01JdGVyYXRvckVuYWJsZWQoZW5hYmxlZCk7CiAKKyAgICBpZiAocHJlZmVyZW5jZSA9
PSAiV2ViS2l0U2hvd01vZGFsRGlhbG9nRW5hYmxlZCIpCisgICAgICAgIFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZChlbmFi
bGVkKTsKKwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgaWYgKHByZWZlcmVuY2Ug
PT0gIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIikKICAgICAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChlbmFibGVk
KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE2Miw2ICszMTYyLDggQEAgdm9pZCBX
ZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZQogCiAgICAgUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRET01JdGVyYXRvckVuYWJsZWQoc3RvcmUuZ2V0
Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpkb21JdGVyYXRvckVuYWJsZWRLZXko
KSkpOwogCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRT
aG93TW9kYWxEaWFsb2dFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJl
bmNlc0tleTo6c2hvd01vZGFsRGlhbG9nRW5hYmxlZEtleSgpKSk7CisKICAgICAvLyBFeHBlcmlt
ZW50YWwgRmVhdHVyZXMuCiAKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQpJbmRleDogU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTYtMTEtMTggIEJyZW50IEZ1
bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBzaG93TW9kYWxEaWFs
b2cgYSBydW50aW1lIGVuYWJsZWQgKG9uLWJ5LWRlZmF1bHQpIGZlYXR1cmUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTg4NQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTY3NDcxODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgcHJlZmVyZW5jZSB0byBhbGxvdyBXZWJLaXQxIHRvIHRvZ2ds
ZSAnc2hvd01vZGFsRGlhbG9nJyBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXMubW06CisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNob3dNb2RhbERpYWxvZ0VuYWJsZWRd
KToKKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZDpd
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkOl0pOgorCiAyMDE2LTExLTI2ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwu
Y29tPgogCiAgICAgICAgIFtXVEZdIEltcG9ydCBzdGQ6Om9wdGlvbmFsIHJlZmVyZW5jZSBpbXBs
ZW1lbnRhdGlvbiBhcyBXVEY6Ok9wdGlvbmFsCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgJKHJldmlzaW9uIDIwODk5
OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE3Miw2ICsxNzIsNyBAQAogI2RlZmluZSBXZWJLaXRWaXN1
YWxWaWV3cG9ydEVuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0VmlzdWFsVmlld3BvcnRFbmFi
bGVkIgogI2RlZmluZSBXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRNb2Rlcm5NZWRpYUNvbnRyb2xzRW5hYmxlZCIKICNkZWZpbmUgV2ViS2l0UG9p
bnRlckxvY2tFbmFibGVkUHJlZmVyZW5jZUtleSBAIldlYktpdFBvaW50ZXJMb2NrRW5hYmxlZCIK
KyNkZWZpbmUgV2ViS2l0U2hvd01vZGFsRGlhbG9nRW5hYmxlZFByZWZlcmVuY2VLZXkgQCJXZWJL
aXRTaG93TW9kYWxEaWFsb2dFbmFibGVkIgogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKIC8vIFRo
ZXNlIGFyZSBwcml2YXRlIGJvdGggYmVjYXVzZSBjYWxsZXJzIHNob3VsZCBiZSB1c2luZyB0aGUg
Y292ZXIgbWV0aG9kcyBhbmQgYmVjYXVzZSB0aGUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkocmV2aXNpb24gMjA4OTk5KQorKysgU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjg1
OSw2ICsyODU5LDE1IEBAIC0gKHZvaWQpc2V0SW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbmFibGVkOigK
ICAgICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEludGVyc2VjdGlvbk9i
c2VydmVyRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChCT09MKXNob3dNb2RhbERpYWxv
Z0VuYWJsZWQKK3sKKyAgICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRTaG93
TW9kYWxEaWFsb2dFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9CisKKy0gKHZvaWQpc2V0U2hvd01v
ZGFsRGlhbG9nRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpm
bGFnIGZvcktleTpXZWJLaXRTaG93TW9kYWxEaWFsb2dFbmFibGVkUHJlZmVyZW5jZUtleV07Cit9
CiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJQcmVmZXJlbmNlcyAoV2ViSW50ZXJuYWwpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmgJKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxMiw2ICs1MTIsOSBAQCBA
aW50ZXJmYWNlIFdlYlByZWZlcmVuY2VzIChXZWJQcml2YXRlKQogLSAodm9pZClzZXRNb2Rlcm5N
ZWRpYUNvbnRyb2xzRW5hYmxlZDooQk9PTClmbGFnOwogLSAoQk9PTCltb2Rlcm5NZWRpYUNvbnRy
b2xzRW5hYmxlZDsKIAorLSAodm9pZClzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkOihCT09MKWZs
YWc7CistIChCT09MKXNob3dNb2RhbERpYWxvZ0VuYWJsZWQ7CisKIEBwcm9wZXJ0eSAobm9uYXRv
bWljKSBCT09MIHZpc3VhbFZpZXdwb3J0RW5hYmxlZDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBC
T09MIGFzeW5jSW1hZ2VEZWNvZGluZ0VuYWJsZWQ7CiBAcHJvcGVydHkgKG5vbmF0b21pYykgQk9P
TCBqYXZhU2NyaXB0TWFya3VwRW5hYmxlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0JKHJldmlzaW9uIDIwODk5OSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjg0MCw2ICsyODQwLDkgQEAgLSAodm9pZClf
cHJlZmVyZW5jZXNDaGFuZ2VkOihXZWJQcmVmZXJlbgogCiAgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoW3ByZWZlcmVu
Y2VzIGN1c3RvbUVsZW1lbnRzRW5hYmxlZF0pOwogCisgICAgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5zZXRTaG93TW9kYWxEaWFsb2dFbmFibGVkKFtwcmVmZXJlbmNl
cyBzaG93TW9kYWxEaWFsb2dFbmFibGVkXSk7CisKKwogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAg
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVu
YWJsZWQoW3ByZWZlcmVuY2VzIGZldGNoQVBJRW5hYmxlZF0pOwogI2VuZGlmCkluZGV4OiBUb29s
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDg5
OTkpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAor
MjAxNi0xMS0xOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KKworICAgICAg
ICBNYWtlIHNob3dNb2RhbERpYWxvZyBhIHJ1bnRpbWUgZW5hYmxlZCAob24tYnktZGVmYXVsdCkg
ZmVhdHVyZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUxODg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNjc0NzE4MT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUdXJuIHRoZSBvcHRpb25hbCAnc2hv
d01vZGFsRGlhbG9nJyBmZWF0dXJlIG9uIGZvciB0ZXN0aW5nLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXRXZWJQcmVmZXJl
bmNlc1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlOjpiZWdpblRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNldFNob3dN
b2RhbERpYWxvZ0VuYWJsZWQpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDE2LTExLTE4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzb21lIHBlcmZvcm1hbmNlIHRlc3RzIGZvciB2YXJp
b3VzIGFzcGVjdHMgb2YgbWVkaWEgbG9hZGluZyBhbmQgcGxheWJhY2suCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCShyZXZpc2lvbiAyMDg5OTkpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEwMDAsNiArMTAwMCw4IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNU
b0NvbnNpc3QKICAgICBbcHJlZmVyZW5jZXMgc2V0SGlkZGVuUGFnZURPTVRpbWVyVGhyb3R0bGlu
Z0VuYWJsZWQ6Tk9dOwogICAgIFtwcmVmZXJlbmNlcyBzZXRIaWRkZW5QYWdlQ1NTQW5pbWF0aW9u
U3VzcGVuc2lvbkVuYWJsZWQ6Tk9dOwogCisgICAgW3ByZWZlcmVuY2VzIHNldFNob3dNb2RhbERp
YWxvZ0VuYWJsZWQ6WUVTXTsKKwogICAgIHByZWZlcmVuY2VzLmludGVyc2VjdGlvbk9ic2VydmVy
RW5hYmxlZCA9IG9wdGlvbnMuZW5hYmxlSW50ZXJzZWN0aW9uT2JzZXJ2ZXI7CiAKICAgICBbV2Vi
UHJlZmVyZW5jZXMgX2NsZWFyTmV0d29ya0xvYWRlclNlc3Npb25dOwpJbmRleDogVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRs
ZS5jcHAJKHJldmlzaW9uIDIwODk5OSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMy
LDggQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6YmVnaW5UZXN0aW5nKFdLRGljdAogCiAgICAgbV90
ZXN0UnVubmVyLT5zZXRFbmNyeXB0ZWRNZWRpYUFQSUVuYWJsZWQodHJ1ZSk7CiAKKyAgICBtX3Rl
c3RSdW5uZXItPnNldFNob3dNb2RhbERpYWxvZ0VuYWJsZWQodHJ1ZSk7CisKICAgICBtX3Rlc3RS
dW5uZXItPnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShmYWxzZSk7CiAgICAg
bV90ZXN0UnVubmVyLT5zZXRBY2NlcHRzRWRpdGluZyh0cnVlKTsKICAgICBtX3Rlc3RSdW5uZXIt
PnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyh0cnVlKTsKSW5kZXg6IFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2
aXNpb24gMjA4OTk5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQ3LDYgKzM0NywxMyBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFNoYWRvd0RPTUVuYWJsZWQoYm9vCiAgICAgV0tCdW5kbGVPdmVycmlkZUJv
b2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcihpbmplY3RlZEJ1bmRsZS5idW5kbGUoKSwgaW5qZWN0
ZWRCdW5kbGUucGFnZUdyb3VwKCksIGtleS5nZXQoKSwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgVGVz
dFJ1bm5lcjo6c2V0U2hvd01vZGFsRGlhbG9nRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGtleShBZG9wdFdLLCBXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiV2ViS2l0U2hvd01vZGFsRGlhbG9nRW5hYmxlZCIpKTsKKyAgICBhdXRvJiBp
bmplY3RlZEJ1bmRsZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKTsKKyAgICBXS0J1bmRs
ZU92ZXJyaWRlQm9vbFByZWZlcmVuY2VGb3JUZXN0UnVubmVyKGluamVjdGVkQnVuZGxlLmJ1bmRs
ZSgpLCBpbmplY3RlZEJ1bmRsZS5wYWdlR3JvdXAoKSwga2V5LmdldCgpLCBlbmFibGVkKTsKK30K
Kwogdm9pZCBUZXN0UnVubmVyOjpzZXRDdXN0b21FbGVtZW50c0VuYWJsZWQoYm9vbCBlbmFibGVk
KQogewogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBrZXkoQWRvcHRXSywgV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIldlYktpdEN1c3RvbUVsZW1lbnRzRW5hYmxlZCIpKTsKSW5k
ZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCShyZXZpc2lvbiAyMDg5OTkpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDYgKzEyOSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNldEFsbG93c0FueVNTTENlcnRpZmljYXRlKGJvb2wpOwogICAg
IHZvaWQgc2V0RVM2TW9kdWxlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRFbmNyeXB0ZWRN
ZWRpYUFQSUVuYWJsZWQoYm9vbCk7CisgICAgdm9pZCBzZXRTaG93TW9kYWxEaWFsb2dFbmFibGVk
KGJvb2wpOwogCiAgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgogICAgIHZvaWQgY2xlYXJC
YWNrRm9yd2FyZExpc3QoKTsK
</data>
<flag name="review"
          id="318088"
          type_id="1"
          status="-"
          setter="mitz"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>452745</attachid>
            <date>2022-02-21 10:27:26 -0800</date>
            <delta_ts>2022-02-21 12:14:30 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>showModalDialog.diff</filename>
            <type>text/plain</type>
            <size>10440</size>
            <attacher name="Tim Nguyen (:ntim)">ntim</attacher>
            
              <data encoding="base64">Y29tbWl0IGZmZmFiM2NlNGU4MzFmYjkzY2QzYjI5ZWJmM2E5MzA1YTZkODZlMmUKQXV0aG9yOiBU
aW0gTmd1eWVuIDxudGltQGFwcGxlLmNvbT4KRGF0ZTogICBNb24gRmViIDIxIDE5OjI1OjAyIDIw
MjIgKzAxMDAKCiAgICBzaG93TW9kYWxEaWFsb2cKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2V4ZWNDb21tYW5kL3Nob3ctbW9kYWwtZGlhbG9nLWR1cmluZy1leGVjQ29tbWFuZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zaG93LW1vZGFsLWRpYWxvZy1k
dXJpbmctZXhlY0NvbW1hbmQuaHRtbAppbmRleCA3ZGIzNTgxZGE3MjMuLjg0YWUxM2FmYjcwNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9leGVjQ29tbWFuZC9zaG93LW1vZGFsLWRp
YWxvZy1kdXJpbmctZXhlY0NvbW1hbmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2V4
ZWNDb21tYW5kL3Nob3ctbW9kYWwtZGlhbG9nLWR1cmluZy1leGVjQ29tbWFuZC5odG1sCkBAIC0x
LDMgKzEsNCBAQAorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBTaG93TW9kYWxEaWFsb2dEaXNh
YmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiAKIDxoZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
dXJpbmctbW9kYWwuaHRtbAppbmRleCAxMTY1NzE2NmM4OTQuLjFlODUyZjcwNGQ5NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
ZHVyaW5nLW1vZGFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZHVyaW5nLW1vZGFsLmh0bWwKQEAgLTEsMyArMSw0IEBACis8IS0t
IHdlYmtpdC10ZXN0LXJ1bm5lciBbIFNob3dNb2RhbERpYWxvZ0Rpc2FibGVkPWZhbHNlIF0gLS0+
CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvZm9yYmlkLXNob3dNb2RhbERpYWxvZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L2ZvcmJpZC1zaG93TW9kYWxEaWFsb2cuaHRtbAppbmRleCA3NDk4MWRlOWJmZjgu
LjQ2ZGIzNWFhNjgzOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L2Zv
cmJpZC1zaG93TW9kYWxEaWFsb2cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5k
b3cvZm9yYmlkLXNob3dNb2RhbERpYWxvZy5odG1sCkBAIC0xLDMgKzEsNCBAQAorPCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBTaG93TW9kYWxEaWFsb2dEaXNhYmxlZD1mYWxzZSBdIC0tPgogPCFE
T0NUWVBFIGh0bWw+CiA8aHRtbD4KIDxib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vV2luZG93L29wZW4td2luZG93LW1pbi1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvb3Blbi13aW5kb3ctbWluLXNpemUuaHRtbAppbmRleCA1YThlMGE1MWI2YTYu
LmQ5Yjk2NzFmNjg1MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29w
ZW4td2luZG93LW1pbi1zaXplLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93
L29wZW4td2luZG93LW1pbi1zaXplLmh0bWwKQEAgLTEsMyArMSw0IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIFNob3dNb2RhbERpYWxvZ0Rpc2FibGVkPWZhbHNlIF0gLS0+CiA8aHRtbD4K
IDxoZWFkPgogPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2hvd01v
ZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9zaG93TW9kYWxEaWFsb2ctbWFuZGF0b3J5LXBhcmFtZXRlci5odG1sCmluZGV4IDll
NDFiM2JjYWQ0Ni4uZjE1YmYyZGU4YzM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9XaW5kb3cvc2hvd01vZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJhbWV0ZXIuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvc2hvd01vZGFsRGlhbG9nLW1hbmRhdG9yeS1wYXJh
bWV0ZXIuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgU2hv
d01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVsbC1wYWdlLXNob3ctbW9k
YWwtZGlhbG9nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9udWxsLXBhZ2Utc2hv
dy1tb2RhbC1kaWFsb2ctY3Jhc2guaHRtbAppbmRleCA5MWE2ZDM0OTA2M2UuLjFlNzViYjRlMjM3
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVsbC1wYWdlLXNob3ctbW9kYWwt
ZGlhbG9nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbnVsbC1wYWdlLXNo
b3ctbW9kYWwtZGlhbG9nLWNyYXNoLmh0bWwKQEAgLTEsMyArMSw0IEBACis8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIFNob3dNb2RhbERpYWxvZ0Rpc2FibGVkPWZhbHNlIF0gLS0+CiBUaGlzIGlz
IGEgdGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NTQxIj5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk1NDE8
L2E+IAogUkJ1ZyAxOTU0MTogTnVsbCBwb2ludGVyIGluIHNob3dNb2RhbERpYWxvZygpCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JlZm9yZXVubG9hZC1zaG93TW9kYWxE
aWFsb2cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JlZm9yZXVubG9hZC1zaG93TW9k
YWxEaWFsb2cuaHRtbAppbmRleCBlZThmMzUyNDg2NGMuLmU3YTUzODY5YzQwZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvYmVmb3JldW5sb2FkLXNob3dNb2RhbERpYWxvZy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2JlZm9yZXVubG9hZC1zaG93TW9kYWxE
aWFsb2cuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgU2hv
d01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3BhZ2VoaWRlLXNob3dNb2RhbERpYWxvZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvcGFnZWhpZGUtc2hvd01vZGFsRGlhbG9nLmh0bWwKaW5kZXgg
YTk4Yzg0OTk0MzgyLi4wZWM3NzkxOThiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3BhZ2VoaWRlLXNob3dNb2RhbERpYWxvZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3BhZ2VoaWRlLXNob3dNb2RhbERpYWxvZy5odG1sCkBAIC0xLDMgKzEsNCBAQAor
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBTaG93TW9kYWxEaWFsb2dEaXNhYmxlZD1mYWxzZSBd
IC0tPgogPHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xs
LWV2ZW50LWR1cmluZy1tb2RhbC1kaWFsb2cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3Njcm9sbC1ldmVudC1kdXJpbmctbW9kYWwtZGlhbG9nLmh0bWwKaW5kZXggMjAwMmE0MjQ5Yzdj
Li42MTgyOGJlMzU3MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bC1ldmVudC1kdXJpbmctbW9kYWwtZGlhbG9nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2Nyb2xsLWV2ZW50LWR1cmluZy1tb2RhbC1kaWFsb2cuaHRtbApAQCAtMSwzICsxLDQg
QEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgU2hvd01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFs
c2UgXSAtLT4KIDxodG1sPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+CiA8Ym9keSBzdHlsZT0ibWluLWhlaWdodDogMjAwMHB4Ij4gCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zaG93LW1vZGFsLWRpYWxvZy1vbmJsdXIt
b25mb2N1cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ct
b25ibHVyLW9uZm9jdXMuaHRtbAppbmRleCA5NWQzZDlmMWFjYmYuLmNlMWYyMmIxZmIyYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2hvdy1tb2RhbC1kaWFsb2ctb25ibHVy
LW9uZm9jdXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zaG93LW1vZGFsLWRp
YWxvZy1vbmJsdXItb25mb2N1cy5odG1sCkBAIC0xLDMgKzEsNCBAQAorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBTaG93TW9kYWxEaWFsb2dEaXNhYmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiA8
aGVhZD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy91bmxv
YWQtc2hvd01vZGFsRGlhbG9nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy91bmxvYWQt
c2hvd01vZGFsRGlhbG9nLmh0bWwKaW5kZXggZTY1OWZlZWE0YzE4Li4yYmIxMzg3ZDY2MzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3VubG9hZC1zaG93TW9kYWxEaWFsb2cu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy91bmxvYWQtc2hvd01vZGFsRGlhbG9n
Lmh0bWwKQEAgLTEsMyArMSw0IEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFNob3dNb2Rh
bERpYWxvZ0Rpc2FibGVkPWZhbHNlIF0gLS0+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvaGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCmluZGV4IDllY2Q4ODE0ZGZkMC4uOTYy
MmY1NDliMDdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2Rh
bC1kaWFsb2cuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1k
aWFsb2cuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgU2hv
d01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL2RvY3VtZW50LWNv
b2tpZS1hZnRlci1zaG93TW9kYWxEaWFsb2cuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9kb2N1bWVudC1jb29raWUtYWZ0ZXItc2hvd01vZGFsRGlhbG9nLmh0bWwKaW5kZXgg
YTZmNWZkNWI5ZTAzLi4xM2M0ZGFhMWY1MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY29va2llcy9kb2N1bWVudC1jb29raWUtYWZ0ZXItc2hvd01vZGFsRGlhbG9nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jb29raWVzL2RvY3VtZW50LWNvb2tpZS1hZnRl
ci1zaG93TW9kYWxEaWFsb2cuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgU2hvd01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBo
dG1sPgogPGh0bWw+CiA8aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
Y29va2llcy9kb2N1bWVudC1jb29raWUtZHVyaW5nLWlmcmFtZS1wYXJzaW5nLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLWR1cmluZy1pZnJhbWUt
cGFyc2luZy5odG1sCmluZGV4IDkxMTkzMTk1N2M4Yy4uZWJlYzllMmY5MzY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nvb2tpZXMvZG9jdW1lbnQtY29va2llLWR1cmluZy1p
ZnJhbWUtcGFyc2luZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY29va2llcy9k
b2N1bWVudC1jb29raWUtZHVyaW5nLWlmcmFtZS1wYXJzaW5nLmh0bWwKQEAgLTEsMyArMSw0IEBA
Cis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFNob3dNb2RhbERpYWxvZ0Rpc2FibGVkPWZhbHNl
IF0gLS0+CiA8IURPQ1RZUEUgaHRtbD4KIDxodG1sPgogPGhlYWQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1tb2RhbC1kaWFsb2ctYmFz
ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbW9k
YWwtZGlhbG9nLWJhc2UuaHRtbAppbmRleCAzMzQxMmNjODQ0MDEuLmM1YTRmZjliZTIxYSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4tbW9k
YWwtZGlhbG9nLWJhc2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi1tb2RhbC1kaWFsb2ctYmFzZS5odG1sCkBAIC0xLDMgKzEsNCBAQAorPCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBTaG93TW9kYWxEaWFsb2dEaXNhYmxlZD1mYWxzZSBdIC0t
PgogPCFET0NUWVBFIGh0bWw+CiA8aHRtbCBsYW5nPSJlbiI+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVk
LXBhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hl
bi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbAppbmRleCBlNGQ1YjM0YjVhODQuLjAwNTJmMjk4
Y2NlOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uYXZpZ2F0
ZS13aGVuLXJlc3RvcmluZy1jYWNoZWQtcGFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbmF2aWdhdGUtd2hlbi1yZXN0b3JpbmctY2FjaGVkLXBhZ2UuaHRtbApA
QCAtMSw0ICsxLDQgQEAKLTwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgVXNlc0JhY2tGb3J3YXJk
Q2FjaGU9dHJ1ZSBdIC0tPgorPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBTaG93TW9kYWxEaWFs
b2dEaXNhYmxlZD1mYWxzZSBVc2VzQmFja0ZvcndhcmRDYWNoZT10cnVlIF0gLS0+CiA8IURPQ1RZ
UEUgaHRtbD4KIDxodG1sPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3Nob3dNb2RhbERpYWxvZy1zeW5jLWNyb3NzLW9yaWdpbi1wYWdlLWxvYWQu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2hvd01vZGFsRGlhbG9nLXN5
bmMtY3Jvc3Mtb3JpZ2luLXBhZ2UtbG9hZC5odG1sCmluZGV4IDdjZWVjMTdkNGY1YS4uMDA5NTlj
NWVkODYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Nob3dN
b2RhbERpYWxvZy1zeW5jLWNyb3NzLW9yaWdpbi1wYWdlLWxvYWQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Nob3dNb2RhbERpYWxvZy1zeW5jLWNyb3NzLW9yaWdp
bi1wYWdlLWxvYWQuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgU2hvd01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgog
PGh0bWw+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvc2hvd01vZGFsRGlhbG9nLXN5bmMtY3Jvc3Mtb3JpZ2luLXBhZ2UtbG9hZDIuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvc2hvd01vZGFsRGlhbG9nLXN5bmMtY3Jvc3Mt
b3JpZ2luLXBhZ2UtbG9hZDIuaHRtbAppbmRleCAxMzdkYjkyMDE1ZWQuLjZkYzJhYzkwNzhkNCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9zaG93TW9kYWxEaWFs
b2ctc3luYy1jcm9zcy1vcmlnaW4tcGFnZS1sb2FkMi5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvc2hvd01vZGFsRGlhbG9nLXN5bmMtY3Jvc3Mtb3JpZ2luLXBhZ2Ut
bG9hZDIuaHRtbApAQCAtMSwzICsxLDQgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgU2hv
d01vZGFsRGlhbG9nRGlzYWJsZWQ9ZmFsc2UgXSAtLT4KIDwhRE9DVFlQRSBodG1sPgogPGh0bWw+
CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZ2xv
YmFsLWZ1bmN0aW9uLXJlc29sdmUuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2dsb2JhbC1mdW5jdGlvbi1yZXNvbHZlLmpzCmluZGV4IDMxNWI5NzQyZDk0Mi4uODhjNTM1NDhm
MmNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2dsb2JhbC1m
dW5jdGlvbi1yZXNvbHZlLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
Z2xvYmFsLWZ1bmN0aW9uLXJlc29sdmUuanMKQEAgLTUzLDcgKzUzLDYgQEAgdmFyIGZ1bmN0aW9u
TmFtZXMgPSBbCiAgICAgJ3Njcm9sbFknLAogICAgICdzZXRJbnRlcnZhbCcsCiAgICAgJ3NldFRp
bWVvdXQnLAotICAgICdzaG93TW9kYWxEaWFsb2cnLAogICAgICdzdGF0dXMnLAogICAgICdzdG9w
JywKICAgICAnd2luZG93JywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJl
bmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sIGIvU291cmNlL1dURi9TY3JpcHRz
L1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwKaW5kZXggMzc2Mzg1
ODI4MDAwLi5jY2M1NDE4NTczNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVm
ZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCisrKyBiL1NvdXJjZS9XVEYv
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sCkBAIC0x
MzA4LDYgKzEzMDgsMTggQEAgU2hvdWxkRGVmZXJBc3luY2hyb25vdXNTY3JpcHRzVW50aWxBZnRl
ckRvY3VtZW50TG9hZE9yRmlyc3RQYWludDoKICAgICBXZWJDb3JlOgogICAgICAgZGVmYXVsdDog
dHJ1ZQogCitTaG93TW9kYWxEaWFsb2dEaXNhYmxlZDoKKyAgdHlwZTogYm9vbAorICBodW1hblJl
YWRhYmxlTmFtZTogIkRpc2FibGUgc2hvd01vZGFsRGlhbG9nKCkgQVBJIgorICBodW1hblJlYWRh
YmxlRGVzY3JpcHRpb246ICJEaXNhYmxlIHNob3dNb2RhbERpYWxvZygpIEFQSSIKKyAgZGVmYXVs
dFZhbHVlOgorICAgIFdlYktpdExlZ2FjeToKKyAgICAgIGRlZmF1bHQ6IHRydWUKKyAgICBXZWJL
aXQ6CisgICAgICBkZWZhdWx0OiB0cnVlCisgICAgV2ViQ29yZToKKyAgICAgIGRlZmF1bHQ6IHRy
dWUKKwogU3BlZWNoUmVjb2duaXRpb25FbmFibGVkOgogICB0eXBlOiBib29sCiAgIGh1bWFuUmVh
ZGFibGVOYW1lOiAiU3BlZWNoUmVjb2duaXRpb24gQVBJIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
Y3BwCmluZGV4IDk5ZDQyYzFkNWI4Mi4uNmIzMGJhMzFhMzkzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC0zNjQsNiArMzY0LDkgQEAgYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAo
KQogCiBib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lJiBmcmFt
ZSkKIHsKKyAgICBpZiAoZnJhbWUuc2V0dGluZ3MoKS5zaG93TW9kYWxEaWFsb2dEaXNhYmxlZCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICAvLyBPdmVycmlkZSBzdXBwb3J0IGZvciBs
YXlvdXQgdGVzdGluZyBwdXJwb3Nlcy4KICAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS5k
b2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2lu
ZG93KCkpIHsK
</data>
<flag name="commit-queue"
          id="479895"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>