<?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>218296</bug_id>
          
          <creation_ts>2020-10-28 11:03:39 -0700</creation_ts>
          <short_desc>[GPUProcess] Override GPUProcess defaults for API testing</short_desc>
          <delta_ts>2020-11-12 12:00:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1702391</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 11:03:39 -0700</bug_when>
    <thetext>There are a few reasons we may not want to do this, but I want the change up so it can be discussed, at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702392</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-28 11:03:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/70771368&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702399</commentid>
    <comment_count>2</comment_count>
      <attachid>412548</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 11:23:38 -0700</bug_when>
    <thetext>Created attachment 412548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702452</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-28 12:43:38 -0700</bug_when>
    <thetext>I am not sure this will do what you want in all cases. Default values in WebPreferencesDefaultValues.cpp are expected to be consistent for all environments, meaning they shouldn&apos;t depend on external factors that might be different depending on which process they are run in. This means you probably don&apos;t want to use environment variables, as they won&apos;t necessarily have the same value in the UIProcess and WebProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702458</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-10-28 12:52:35 -0700</bug_when>
    <thetext>An alternative strategy you could employ if you want this result would be to move the preferences you would like an alternative default for to WebPreferencesDebug.yaml (really, we should merge WebPreferencesDebug.yaml and WebPreferencesInternal.yaml and make this true for all internal features), and then, at least on cocoa platforms, you can use [[NSUserDefaults standardUserDefaults] setObject:@YES forKey:@&quot;WebKit2.&lt;key name here&gt;&quot;] (I think that is the syntax, it has been a while).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702483</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-28 14:00:29 -0700</bug_when>
    <thetext>I think Sam’s right that environment variables aren’t going to make their way across all the processes they way you’d want.

We definitely want to do this with some feature of the &quot;settings for testing&quot; machinery, not with another mechanism (environment variables). It seems OK to me to have it be a command line option various test runners.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702505</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 14:46:50 -0700</bug_when>
    <thetext>The central issue here is that API tests don&apos;t have the machinery to turn features on and off because each individual test sets specific features from the WebKit defaults. One of the reasons I didn&apos;t mark the original patch for review is because the fact that API tests work this way make it unclear that allowing contributors to enable a feature via the test harness is even correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702506</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-28 14:50:44 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #6)
&gt; The central issue here is that API tests don&apos;t have the machinery to turn
&gt; features on and off because each individual test sets specific features from
&gt; the WebKit defaults.

You left out one key word here.

Each individual test *can* set specific features from WebKit defaults. Many do not.

&gt; One of the reasons I didn&apos;t mark the original patch for
&gt; review is because the fact that API tests work this way make it unclear that
&gt; allowing contributors to enable a feature via the test harness is even
&gt; correct.

I don’t agree with this line of thinking.

Preferences have default values. Tests can override those defaults to turn features on for testing, even when they are not yet on across the board. And I think we can let command line arguments get in between those two levels, overriding the default value, but still allowing the test to override what the command line said.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702507</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 15:00:11 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; (In reply to Jonathan Bedard from comment #6)
&gt; &gt; The central issue here is that API tests don&apos;t have the machinery to turn
&gt; &gt; features on and off because each individual test sets specific features from
&gt; &gt; the WebKit defaults.
&gt; 
&gt; You left out one key word here.
&gt; 
&gt; Each individual test *can* set specific features from WebKit defaults. Many
&gt; do not.
&gt; 
&gt; &gt; One of the reasons I didn&apos;t mark the original patch for
&gt; &gt; review is because the fact that API tests work this way make it unclear that
&gt; &gt; allowing contributors to enable a feature via the test harness is even
&gt; &gt; correct.
&gt; 
&gt; I don’t agree with this line of thinking.
&gt; 
&gt; Preferences have default values. Tests can override those defaults to turn
&gt; features on for testing, even when they are not yet on across the board. And
&gt; I think we can let command line arguments get in between those two levels,
&gt; overriding the default value, but still allowing the test to override what
&gt; the command line said.

We could let command line arguments override default values, yes, it&apos;s just not obvious that supporting this for API tests is valuable. Whatever we do, it should be something inside WebKit, unless we want the test runner to have a shared generator that gives API tests a different set of defaults than WebKit (my understanding is that such a system is very undesirable for the way API tests are written and used).

The UserDefaults approach does seem better than the environment variable approach, I&apos;m still not convinced we want even that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702508</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-28 15:02:19 -0700</bug_when>
    <thetext>I am really confused about the uncertainty here.

Of course we must have a way to turn on new features so we can test them.

Are you saying that you’re thinking API tests should sick with a way for *tests* a way to turn them on so that the *command line* does not need to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702514</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-28 15:08:20 -0700</bug_when>
    <thetext>(Having been privy to some of the other discussions about this). Some of the confusion comes from the fact that this hasn&apos;t been done before; there&apos;s no precedent (as far as any of us have found) for having globally-adjustable features enabled globally in API tests (we were all a bit surprised). So the fact that we&apos;ve managed large architectural off-by-default features without this before (enabling it in tests for the feature itself) leads to the &quot;well why didn&apos;t we need it before?!&quot; question (say, for accelerated drawing, or UI-side compositing, or PSON).

I think the WebPreferences-based approach is probably a decent one, though, and sufficiently noninvasive to be worth it (especially if run-api-tests gains a command line param to set an arbitrary set of WebPreferencesDebug-backed defaults).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1702517</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-10-28 15:17:50 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; I am really confused about the uncertainty here.
&gt; 
&gt; Of course we must have a way to turn on new features so we can test them.
&gt; 
&gt; Are you saying that you’re thinking API tests should sick with a way for
&gt; *tests* a way to turn them on so that the *command line* does not need to?

This has essentially been the logic API tests have used thus far (that is, if you would like to test a specific feature, write a new test for that feature, rather than running all existing tests for the new feature, like we would with layout tests)

If we&apos;re saying we want a way to change which features are enabled or disabled by default, as a general statement (that is, not just for the GPU process), we either need something like isFeatureFlagEnabled(...) that pulls from a file or UserDefaults or we need a kind of configuration generator in the API testing binary that can set a different set of defaults.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705326</commentid>
    <comment_count>12</comment_count>
      <attachid>413453</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 11:34:07 -0800</bug_when>
    <thetext>Created attachment 413453
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705340</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 12:02:53 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #12)
&gt; Created attachment 413453 [details]
&gt; Patch

New patch uses `defaults write` in run-api-tests, which I think is cleaner than trying to strip arguments out of argv before passing them to gtest. We&apos;re obviously enabling GPU Process for any API tests running in parallel with us, but API tests already break if you run them that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705349</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-06 12:08:11 -0800</bug_when>
    <thetext>Does this mean that if you hit Control-C part-way through, you end up in GPU Process mode? If so, is that limited to the API tests binary, without affecting Safari, MiniBrowser, WebKitTestRunner, or DumpRenderTree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705353</commentid>
    <comment_count>15</comment_count>
      <attachid>413453</attachid>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2020-11-06 12:14:19 -0800</bug_when>
    <thetext>Comment on attachment 413453
Patch

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

&gt; Tools/Scripts/webkitpy/api_tests/run_api_tests.py:144
&gt; +                             help=&apos;Enable the GPU process through defaults write&apos;),

I think this help test was supposed to be &quot;Disable the GPU process...&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705356</commentid>
    <comment_count>16</comment_count>
      <attachid>413453</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-06 12:19:04 -0800</bug_when>
    <thetext>Comment on attachment 413453
Patch

I think rather than using &apos;defaults write&apos; externally and persistently, you want to use one of the volatile domains.

I can&apos;t recall how we made TestWebKitAPI, so it may be possible to use the NSArgumentDomain and just pass the defaults directly on the command line, or you may need to modify the test runner binary itself to set the defaults non-persistently. If you look for &quot;[NSUserDefaults standardUserDefaults] setVolatileDomain:...&quot; in DumpRenderTree, I think you can find an example where the binary was changed to do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705364</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-06 12:24:12 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #13)
&gt; (In reply to Jonathan Bedard from comment #12)
&gt; &gt; Created attachment 413453 [details]
&gt; &gt; Patch
&gt; 
&gt; New patch uses `defaults write` in run-api-tests, which I think is cleaner
&gt; than trying to strip arguments out of argv before passing them to gtest.
&gt; We&apos;re obviously enabling GPU Process for any API tests running in parallel
&gt; with us, but API tests already break if you run them that way.

Do you have to strip them out? Does gtest break if it sees arguments it doesn&apos;t understand? I seem to remember that it would actually return the arguments it doesn&apos;t understand, though that could be old knowledge.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705376</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 12:45:30 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; (In reply to Jonathan Bedard from comment #13)
&gt; &gt; (In reply to Jonathan Bedard from comment #12)
&gt; &gt; &gt; Created attachment 413453 [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; New patch uses `defaults write` in run-api-tests, which I think is cleaner
&gt; &gt; than trying to strip arguments out of argv before passing them to gtest.
&gt; &gt; We&apos;re obviously enabling GPU Process for any API tests running in parallel
&gt; &gt; with us, but API tests already break if you run them that way.
&gt; 
&gt; Do you have to strip them out? Does gtest break if it sees arguments it
&gt; doesn&apos;t understand? I seem to remember that it would actually return the
&gt; arguments it doesn&apos;t understand, though that could be old knowledge.

I assumed I did, but maybe that assumption is wrong.

If we wanted to do this inside the test binary, we would also need to reset the values before exiting, as far as I can tell, which isn&apos;t an easy thing to do consistently since we could crash when running a test. And TestWebKitAPI would still be respecting `defaults write` anyways, so I&apos;m not sure what benefit we would be getting to changing those setting inside the binary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705378</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-11-06 12:48:08 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #18)
&gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; (In reply to Jonathan Bedard from comment #13)
&gt; &gt; &gt; (In reply to Jonathan Bedard from comment #12)
&gt; &gt; &gt; &gt; Created attachment 413453 [details]
&gt; &gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; New patch uses `defaults write` in run-api-tests, which I think is cleaner
&gt; &gt; &gt; than trying to strip arguments out of argv before passing them to gtest.
&gt; &gt; &gt; We&apos;re obviously enabling GPU Process for any API tests running in parallel
&gt; &gt; &gt; with us, but API tests already break if you run them that way.
&gt; &gt; 
&gt; &gt; Do you have to strip them out? Does gtest break if it sees arguments it
&gt; &gt; doesn&apos;t understand? I seem to remember that it would actually return the
&gt; &gt; arguments it doesn&apos;t understand, though that could be old knowledge.
&gt; 
&gt; I assumed I did, but maybe that assumption is wrong.
&gt; 
&gt; If we wanted to do this inside the test binary, we would also need to reset
&gt; the values before exiting, as far as I can tell, which isn&apos;t an easy thing
&gt; to do consistently since we could crash when running a test. And
&gt; TestWebKitAPI would still be respecting `defaults write` anyways, so I&apos;m not
&gt; sure what benefit we would be getting to changing those setting inside the
&gt; binary.

No need to reset them when exiting if you use the volatile domain. The whole point of it is that they don&apos;t persist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705381</commentid>
    <comment_count>20</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 12:54:54 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #14)
&gt; Does this mean that if you hit Control-C part-way through, you end up in GPU
&gt; Process mode? If so, is that limited to the API tests binary, without
&gt; affecting Safari, MiniBrowser, WebKitTestRunner, or DumpRenderTree?

It&apos;s possible to find yourself in this state (although, it would only be effecting TestWebKitAPI and TestWTF, no other applications, since it&apos;s keyed to them specifically), but a Control-C wouldn&apos;t be sufficient to put you in this state because we&apos;re re-setting those values in the finally block, which runs as exceptions are raised. You would need to kill the script to find yourself in that state.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705386</commentid>
    <comment_count>21</comment_count>
      <attachid>413471</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 13:06:56 -0800</bug_when>
    <thetext>Created attachment 413471
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705390</commentid>
    <comment_count>22</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-11-06 13:17:27 -0800</bug_when>
    <thetext>TestWebKitAPI uses the volatile domain too, see mainMac.mm.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705424</commentid>
    <comment_count>23</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 14:32:47 -0800</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #22)
&gt; TestWebKitAPI uses the volatile domain too, see mainMac.mm.

Looking at this now, will have a patch up soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705465</commentid>
    <comment_count>24</comment_count>
      <attachid>413496</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 16:21:25 -0800</bug_when>
    <thetext>Created attachment 413496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705466</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-06 16:22:44 -0800</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #24)
&gt; Created attachment 413496 [details]
&gt; Patch

Turns out gtest does ignore command line options it doesn&apos;t recognize. Which makes this pretty easy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706956</commentid>
    <comment_count>26</comment_count>
      <attachid>413496</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-12 11:48:48 -0800</bug_when>
    <thetext>Comment on attachment 413496
Patch

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

&gt; Source/WTF/Scripts/Preferences/WebPreferencesDebug.yaml:35
&gt; +CaptureAudioInGPUProcessEnabled:

I think, unfortunately, that moving them here means the switches in Safari and MiniBrowser are gone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706958</commentid>
    <comment_count>27</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-11-12 11:53:12 -0800</bug_when>
    <thetext>(In reply to Tim Horton from comment #26)
&gt; Comment on attachment 413496 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413496&amp;action=review
&gt; 
&gt; &gt; Source/WTF/Scripts/Preferences/WebPreferencesDebug.yaml:35
&gt; &gt; +CaptureAudioInGPUProcessEnabled:
&gt; 
&gt; I think, unfortunately, that moving them here means the switches in Safari
&gt; and MiniBrowser are gone?

Yes.

Not really sure there is another way to go, though, unless we make all debug preferences show up as switches there (which seems reasonable to me, but I&apos;m no expert here)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>412548</attachid>
            <date>2020-10-28 11:23:38 -0700</date>
            <delta_ts>2020-11-06 11:34:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218296-20201028112337.patch</filename>
            <type>text/plain</type>
            <size>6886</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjkwNzgpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIwLTEwLTI4ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJp
ZGUgR1BVUHJvY2VzcyBkZWZhdWx0cyBmb3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzA3NzEzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCBlbmFibGVzIGV4aXN0aW5nIHRlc3RzIHdpdGggbmV3IGNv
bmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aXNHUFVQcm9jZXNzRW5hYmxlZEZvclRlc3Rpbmcp
OiBBbGxvdyBFTkFCTEVfR1BVX1BST0NFU1NfRk9SX1RFU1RJTkcgdG8gb3ZlcnJpZGUgZmVhdHVy
ZQorICAgICAgICBkZWZhdWx0cyBmb3IgdGhlIEdQVSBwcm9jZXNzIG9uIGRlYnVnIGJ1aWxkcy4K
KyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5k
ZXJpbmdFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JN
ZWRpYUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zvcldl
YkdMRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRDYXB0dXJlQXVkaW9JbkdQVVBy
b2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdENhcHR1cmVBdWRpb0luVUlQ
cm9jZXNzRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OmRlZmF1bHRDYXB0dXJlVmlkZW9JbkdQ
VVByb2Nlc3NFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6ZGVmYXVsdFdlYlJUQ0NvZGVjc0lu
R1BVUHJvY2Vzcyk6CisKIDIwMjAtMTAtMjcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBbR1BVUHJvY2Vzc10gVXNlIGFzeW5jIElQQyBmb3IgUmVtb3RlQXVkaW9E
ZXN0aW5hdGlvbk1hbmFnZXIncyBTdGFydEF1ZGlvRGVzdGluYXRpb24gLyBTdG9wQXVkaW9EZXN0
aW5hdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0
VmFsdWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlc0RlZmF1bHRWYWx1ZXMuY3BwCShyZXZpc2lvbiAyNjkwNzgpCisrKyBTb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDYsMTMgKzEwNiwzNiBAQCBib29sIGRlZmF1bHRBc3luY092ZXJmbG93U2Nyb2xsaW5nRW5h
YmxlCiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAKKyNpZm5kZWYgTkRFQlVHCisKKy8vIEZJ
WE1FOiBPbmNlIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdCwgcmVtb3ZlIHRoaXMg
Y2hlY2sKK3N0YXRpYyBib29sIGlzR1BVUHJvY2Vzc0VuYWJsZWRGb3JUZXN0aW5nKCkKK3sKKyAg
ICBjaGFyKiB2YXJpYWJsZSA9IGdldGVudigiRU5BQkxFX0dQVV9QUk9DRVNTX0ZPUl9URVNUSU5H
Iik7CisgICAgaWYgKCF2YXJpYWJsZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBzdHJsZW4odmFyaWFibGUpOyArK2kpCisgICAgICAgIHZhcmlh
YmxlW2ldID0gdG9BU0NJSVVwcGVyKHZhcmlhYmxlW2ldKTsKKworICAgIGlmIChzdHJzdHIodmFy
aWFibGUsICJOTyIpIHx8IHN0cnN0cih2YXJpYWJsZSwgIkZBTFNFIikgfHwgIXN0cmNtcCh2YXJp
YWJsZSwgIjAiKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9
CisjZW5kaWYKKwogYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0Vu
YWJsZWQoKQogewogI2lmIEhBVkUoU1lTVEVNX0ZFQVRVUkVfRkxBR1MpCiAgICAgcmV0dXJuIGlz
RmVhdHVyZUZsYWdFbmFibGVkKCJncHVfcHJvY2Vzc19jYW52YXNfcmVuZGVyaW5nIik7CiAjZW5k
aWYKIAorI2lmbmRlZiBOREVCVUcKKyAgICByZXR1cm4gaXNHUFVQcm9jZXNzRW5hYmxlZEZvclRl
c3RpbmcoKTsKKyNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiB9CiAKIGJvb2wgZGVm
YXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkKCkKQEAgLTEyMSw3ICsxNDQs
MTEgQEAgYm9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZwogICAgIHJldHVy
biBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfZG9tX3JlbmRlcmluZyIpOwogI2Vu
ZGlmCiAKKyNpZm5kZWYgTkRFQlVHCisgICAgcmV0dXJuIGlzR1BVUHJvY2Vzc0VuYWJsZWRGb3JU
ZXN0aW5nKCk7CisjZWxzZQogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBib29sIGRl
ZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkKQEAgLTEzMCw3ICsxNTcsMTEgQEAg
Ym9vbCBkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZAogICAgIHJldHVybiBpc0Zl
YXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3NfbWVkaWEiKTsKICNlbmRpZgogCisjaWZuZGVm
IE5ERUJVRworICAgIHJldHVybiBpc0dQVVByb2Nlc3NFbmFibGVkRm9yVGVzdGluZygpOworI2Vs
c2UKICAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKIH0KIAogYm9vbCBkZWZhdWx0VXNlR1BVUHJv
Y2Vzc0ZvcldlYkdMRW5hYmxlZCgpCkBAIC0xMzksNyArMTcwLDExIEBAIGJvb2wgZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQKICAgICByZXR1cm4gaXNGZWF0dXJlRmxhZ0VuYWJs
ZWQoImdwdV9wcm9jZXNzX3dlYmdsIik7CiAjZW5kaWYKIAorI2lmbmRlZiBOREVCVUcKKyAgICBy
ZXR1cm4gaXNHUFVQcm9jZXNzRW5hYmxlZEZvclRlc3RpbmcoKTsKKyNlbHNlCiAgICAgcmV0dXJu
IGZhbHNlOworI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCkBAIC0x
NTYsNyArMTkxLDExIEBAIGJvb2wgZGVmYXVsdENhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWIK
ICNlbmRpZgogI2VuZGlmCiAKKyNpZm5kZWYgTkRFQlVHCisgICAgcmV0dXJuIGlzR1BVUHJvY2Vz
c0VuYWJsZWRGb3JUZXN0aW5nKCk7CisjZWxzZQogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgog
fQogCiBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsZWQoKQpAQCAtMTY1
LDcgKzIwNCwxMSBAQCBib29sIGRlZmF1bHRDYXB0dXJlQXVkaW9JblVJUHJvY2Vzc0VuYWJsCiAg
ICAgcmV0dXJuICFkZWZhdWx0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpOwogI2Vu
ZGlmCiAKKyNpZm5kZWYgTkRFQlVHCisgICAgcmV0dXJuIGlzR1BVUHJvY2Vzc0VuYWJsZWRGb3JU
ZXN0aW5nKCk7CisjZWxzZQogICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBib29sIGRl
ZmF1bHRDYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkKCkKQEAgLTE3NCw3ICsyMTcsMTEg
QEAgYm9vbCBkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYgogICAgIHJldHVybiBp
c0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3Byb2Nlc3Nfd2VicnRjIik7CiAjZW5kaWYKIAorI2lm
bmRlZiBOREVCVUcKKyAgICByZXR1cm4gaXNHUFVQcm9jZXNzRW5hYmxlZEZvclRlc3RpbmcoKTsK
KyNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUo
TUVESUFfU1RSRUFNKQpAQCAtMTg3LDcgKzIzNCwxMSBAQCBib29sIGRlZmF1bHRXZWJSVENDb2Rl
Y3NJbkdQVVByb2Nlc3MoKQogICAgIHJldHVybiBpc0ZlYXR1cmVGbGFnRW5hYmxlZCgiZ3B1X3By
b2Nlc3Nfd2VicnRjIik7CiAjZW5kaWYKIAorI2lmbmRlZiBOREVCVUcKKyAgICByZXR1cm4gaXNH
UFVQcm9jZXNzRW5hYmxlZEZvclRlc3RpbmcoKTsKKyNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwor
I2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX1JUQykKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2OTEwOSkKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTEw
LTI4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BV
UHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJvY2VzcyBkZWZhdWx0cyBmb3IgQVBJIHRlc3RpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI5NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NzEzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5f
YXBpX3Rlc3RzLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6IEFkZCAtLWdwdS1wcm9jZXNzCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHk6CisgICAgICAgIChQb3J0LmVu
dmlyb25tZW50X2Zvcl9hcGlfdGVzdHMpOiBTZXQgRU5BQkxFX0dQVV9QUk9DRVNTX0ZPUl9URVNU
SU5HIHdoZW4gLS1ncHUtcHJvY2VzcyBpcyBwYXNzZWQuCisKIDIwMjAtMTAtMjggIEFha2FzaCBK
YWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtld3NdIEVuc3VyZSB0aGF0
IHVhdCBpbnN0YW5jZSBkb2Vzbid0IHNlbmQgZW1haWxzCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bl9hcGlfdGVzdHMucHkJKHJldmlzaW9uIDI2OTA3
OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bl9hcGlfdGVzdHMucHkJ
KHdvcmtpbmcgY29weSkKQEAgLTEzOCw2ICsxMzgsOSBAQCBkZWYgcGFyc2VfYXJncyhhcmdzKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nUnVuIGFsbCB0ZXN0cywgZXZlbiBE
SVNBQkxFRCB0ZXN0cycpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1hZGRpdGlv
bmFsLWVudi12YXInLCB0eXBlPSdzdHJpbmcnLCBhY3Rpb249J2FwcGVuZCcsIGRlZmF1bHQ9W10s
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1Bhc3NlcyB0aGF0IGVudmlyb25t
ZW50IHZhcmlhYmxlIHRvIHRoZSB0ZXN0cyAoLS1hZGRpdGlvbmFsLWVudi12YXI9TkFNRT1WQUxV
RSknKSwKKworICAgICAgICAjIEZJWE1FOiBPbmNlIEdQVSBwcm9jZXNzIGlzIGVuYWJsZWQgYnkg
ZGVmYXVsdCwgcmVtb3ZlIHRoaXMgb3B0aW9uCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9u
KCctLWdwdS1wcm9jZXNzJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVmYXVsdD1GYWxzZSwgaGVs
cD0nUnVuIEFQSSB0ZXN0cyB3aXRoIHRoZSBHUFUgcHJvY2VzcyBlbmFibGVkJyksCiAgICAgXSkp
CiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25zLmFwcGVuZCgoJ1VwbG9hZCBPcHRpb25zJywg
dXBsb2FkX29wdGlvbnMoKSkpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9i
YXNlLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
CShyZXZpc2lvbiAyNjkwNzgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5w
eQkod29ya2luZyBjb3B5KQpAQCAtMjU2LDYgKzI1NiwxMyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6
CiAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgZW52aXJvbm1lbnRfZm9yX2FwaV90ZXN0
cyhzZWxmKToKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIo
KQorCisgICAgICAgICMgRklYTUU6IE9uY2UgR1BVIHByb2Nlc3MgaXMgZW5hYmxlZCBieSBkZWZh
dWx0LCByZW1vdmUgdGhpcyBvcHRpb24KKyAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCdncHVf
cHJvY2VzcycpOgorICAgICAgICAgICAgX2xvZy53YXJuaW5nKCInRU5BQkxFX0dQVV9QUk9DRVNT
X0ZPUl9URVNUSU5HJyB3aWxsIG9ubHkgZW5hYmxlIHRoZSBHUFUgUHJvY2VzcyBvbiBEZWJ1ZyBi
dWlsZHMiKQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uKCdyZXN1bHRfcmVwb3J0X2ZsYXZv
cicsICdncHVwcm9jZXNzJykKKyAgICAgICAgICAgIHJlc3VsdFsnRU5BQkxFX0dQVV9QUk9DRVNT
X0ZPUl9URVNUSU5HJ10gPSAnWUVTJwogICAgICAgICByZXR1cm4gc2VsZi5zZXR1cF9lbnZpcm9u
X2Zvcl9zZXJ2ZXIoKQogCiAgICAgZGVmIF9jaGVja19kcml2ZXIoc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413453</attachid>
            <date>2020-11-06 11:34:07 -0800</date>
            <delta_ts>2020-11-06 13:06:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218296-20201106113406.patch</filename>
            <type>text/plain</type>
            <size>16946</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJv
Y2VzcyBkZWZhdWx0cyBmb3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
NzEzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWxsb3cgR1BVIFByb2Nlc3MgcHJlZmVyZW5jZXMgdG8gYmUgY29udHJvbGxlZCBieSBgZGVmYXVs
dHMgd3JpdGVgCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RGVidWcueWFtbDogTW92ZWQgR1BVIHByb2Nlc3MgZnJvbSBXZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWw6IE1vdmVkIEdQWSBwcm9jZXNzIHRvIFdlYlByZWZlcmVuY2VzRGVidWcueWFtbC4K
KwogMjAyMC0xMS0wNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYmFjayBzd2FwKCkgZnJlZSBmdW5jdGlvbiBmb3IgUmVmUHRyCkluZGV4OiBTb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWwJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDI4
IEBAIEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAKK0NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6IGJv
b2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVkaW8gQ2FwdHVyZSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNhcHR1cmUgaW4gR1BVIFBy
b2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpCisKK0NhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2FwdHVyZSIK
KyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gR1BV
IFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpCisKICMgRklYTUU6IFdlYktpdCBoYXMgYW4gYWx0ZXJuYXRlIG5hbWUg
Zm9yIHRoaXMgY2FsbGVkICdTaG93RGVidWdCb3JkZXJzJy4gV2Ugc2hvdWxkIHN0YW5kYXJkaXpl
IG9uIG9uZSBuYW1lLgogQ29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZToKICAgdHlwZTogYm9vbApA
QCAtMTc3LDYgKzE5OSw1MCBAQCBUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6CiAgICAg
V2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1VzZUdQVVByb2Nlc3NGb3JDYW52YXNS
ZW5kZXJpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiR1BV
IFByb2Nlc3M6IENhbnZhcyBSZW5kZXJpbmciCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBjYW52YXMgcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNzIgorICB3ZWJjb3JlQmluZGlu
Zzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhwb3NlZDogWyBX
ZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZGVm
YXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKKworVXNlR1BVUHJv
Y2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJHUFUgUHJvY2VzczogRE9NIFJlbmRlcmluZyIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIERPTSByZW5kZXJpbmcgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVC
aW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2Vk
OiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0
OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQorCitVc2VHUFVQ
cm9jZXNzRm9yTWVkaWFFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiR1BVIFByb2Nlc3M6IE1lZGlhIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJEbyBh
bGwgbWVkaWEgbG9hZGluZyBhbmQgcGxheWJhY2sgaW4gdGhlIEdQVSBQcm9jZXNzIgorICB3ZWJj
b3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhw
b3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVm
YXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKQorCitVc2VHUFVQcm9j
ZXNzRm9yV2ViR0xFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAi
R1BVIFByb2Nlc3M6IFdlYkdMIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
V2ViR0wgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlv
bjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zv
cldlYkdMRW5hYmxlZCgpCisKIFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgogICB0eXBlOiB1
aW50MzJfdAogICB3ZWJjb3JlVHlwZTogRGVidWdPdmVybGF5UmVnaW9ucwpJbmRleDogU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDQsMTcgKzE0NCw2IEBAIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJs
ZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVk
aW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNh
cHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNvbmRpdGlv
bjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0
VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUgYXVkaW8g
aW4gVUkgUHJvY2VzcyIKQEAgLTE2NiwxNyArMTU1LDYgQEAgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3NFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IFdlYktpdDo6ZGVmYXVsdENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiAKLUNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2Vz
czogVmlkZW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZp
ZGVvIGNhcHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNv
bmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBk
ZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVWaWRlb0luVUlQcm9j
ZXNzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUg
dmlkZW8gaW4gVUkgUHJvY2VzcyIKQEAgLTY5MCw1MCArNjY4LDYgQEAgVW5kb01hbmFnZXJBUElF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1Vc2VHUFVQcm9j
ZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRh
YmxlTmFtZTogIkdQVSBQcm9jZXNzOiBDYW52YXMgUmVuZGVyaW5nIgotICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgY2FudmFzIHJlbmRlcmluZyBpbiBHUFUgUHJvY2VzcyIKLSAg
d2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BST0NFU1MpCi0g
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdDoKLSAgICAg
IGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCgp
Ci0KLVVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkOgotICB0eXBlOiBib29sCi0g
IGh1bWFuUmVhZGFibGVOYW1lOiAiR1BVIFByb2Nlc3M6IERPTSBSZW5kZXJpbmciCi0gIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBET00gcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNz
IgotICB3ZWJjb3JlQmluZGluZzogbm9uZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VT
UykKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0Ogot
ICAgICAgZGVmYXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVk
KCkKLQotVXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1h
blJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBNZWRpYSIKLSAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRG8gYWxsIG1lZGlhIGxvYWRpbmcgYW5kIHBsYXliYWNrIGluIHRoZSBHUFUgUHJv
Y2VzcyIKLSAgd2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BS
T0NFU1MpCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktp
dDoKLSAgICAgIGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkK
LQotVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJl
YWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBXZWJHTCIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIFdlYkdMIGluIEdQVSBQcm9jZXNzIgotICB3ZWJjb3JlQmluZGluZzogbm9u
ZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgZXhwb3NlZDogWyBXZWJLaXQg
XQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKQotCiBXZWJBUElTdGF0aXN0aWNzRW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIldlYiBBUEkgU3RhdGlzdGljcyIK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTUyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJvY2VzcyBkZWZhdWx0cyBm
b3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NzEzNjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5OgorICAgICAgICAoTWFuYWdlci5ydW4pOiBTZXQgZGVm
YXVsdHMgZm9yIEFQSSB0ZXN0cywgc2V0IGdwdXByb2Nlc3MgYXMgZmxhdm9yIGZvciByZXBvcnRp
bmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5w
eToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOiBBZGQgb3B0aW9ucyB0byBleHBsaWNpdGx5IGVuYWJs
ZSBvciBkaXNhYmxlIHRoZSBHUFUgcHJvY2VzcyBkdXJpbmcgdGVzdGluZy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuY29tbWl0c19mb3Jf
dXBsb2FkKToKKyAgICAgICAgKFBvcnQpOgorICAgICAgICAoUG9ydC5zZXRfZGVmYXVsdHMpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHk6CisgICAgICAgIChEYXJ3
aW5Qb3J0KToKKyAgICAgICAgKERhcndpblBvcnQuc2V0X2RlZmF1bHRzKTogV3JpdGUgYXBwbGlj
YXRpb24gZGVmYXVsdHMgYW5kIHRoZW4gcmVzZXQgdGhlbSBmb3Igc29tZSBjb250ZXh0LgorCiAy
MDIwLTExLTA2ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjk0ODYuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNzUsMzggKzE3
NSw0MSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gTWFuYWdl
ci5GQUlMRURfQlVJTERfQ0hFQ0sKIAogICAgICAgICBzZWxmLl9pbml0aWFsaXplX2RldmljZXMo
KQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3VzZV9ncHVfcHJvY2VzcycpOgor
ICAgICAgICAgICAgc2VsZi5fcG9ydC5zZXRfb3B0aW9uKCdyZXN1bHRfcmVwb3J0X2ZsYXZvcics
ICdncHVwcm9jZXNzJykKIAotICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdDb2xs
ZWN0aW5nIHRlc3RzIC4uLicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRlc3RfbmFtZXMg
PSBzZWxmLl9jb2xsZWN0X3Rlc3RzKGFyZ3MpCi0gICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvcjoK
LSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZWxuKCdGYWlsZWQgdG8gY29sbGVjdCB0ZXN0
cycpCi0gICAgICAgICAgICByZXR1cm4gTWFuYWdlci5GQUlMRURfQ09MTEVDVF9URVNUUwotICAg
ICAgICBzZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdGb3VuZCB7fSB0ZXN0cycuZm9ybWF0KGxl
bih0ZXN0X25hbWVzKSkpCi0gICAgICAgIGlmIGxlbih0ZXN0X25hbWVzKSA9PSAwOgotICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLndyaXRlbG4oJ05vIHRlc3RzIGZvdW5kJykKLSAgICAgICAgICAg
IHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCi0KLSAgICAgICAgaWYgc2VsZi5f
cG9ydC5nZXRfb3B0aW9uKCdkdW1wJyk6Ci0gICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X25h
bWVzOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZWxuKHRlc3QpCi0gICAgICAg
ICAgICByZXR1cm4gTWFuYWdlci5TVUNDRVNTCisgICAgICAgIHdpdGggc2VsZi5fcG9ydC5zZXRf
ZGVmYXVsdHMoJ2NvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSScpLCBzZWxmLl9wb3J0LnNl
dF9kZWZhdWx0cygnY29tLmFwcGxlLldlYktpdC5UZXN0V1RGJyk6CisgICAgICAgICAgICBzZWxm
Ll9zdHJlYW0ud3JpdGVfdXBkYXRlKCdDb2xsZWN0aW5nIHRlc3RzIC4uLicpCisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9uYW1lcyA9IHNlbGYuX2NvbGxlY3RfdGVzdHMo
YXJncykKKyAgICAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvcjoKKyAgICAgICAgICAgICAgICBz
ZWxmLl9zdHJlYW0ud3JpdGVsbignRmFpbGVkIHRvIGNvbGxlY3QgdGVzdHMnKQorICAgICAgICAg
ICAgICAgIHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCisgICAgICAgICAgICBz
ZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdGb3VuZCB7fSB0ZXN0cycuZm9ybWF0KGxlbih0ZXN0
X25hbWVzKSkpCisgICAgICAgICAgICBpZiBsZW4odGVzdF9uYW1lcykgPT0gMDoKKyAgICAgICAg
ICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVsbignTm8gdGVzdHMgZm91bmQnKQorICAgICAgICAg
ICAgICAgIHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCisKKyAgICAgICAgICAg
IGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignZHVtcCcpOgorICAgICAgICAgICAgICAgIGZvciB0
ZXN0IGluIHRlc3RfbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0
ZWxuKHRlc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmFnZXIuU1VDQ0VTUworCisgICAg
ICAgICAgICB0ZXN0X25hbWVzID0gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1lcyBmb3IgXyBp
biByYW5nZShzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoKV0KKyAgICAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMucmVwZWF0X2VhY2ggIT0gMToKKyAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdS
ZXBlYXRpbmcgZWFjaCB0ZXN0IHt9IHRpbWVzJy5mb3JtYXQoc2VsZi5fb3B0aW9ucy5pdGVyYXRp
b25zKSkKIAotICAgICAgICB0ZXN0X25hbWVzID0gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1l
cyBmb3IgXyBpbiByYW5nZShzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoKV0KLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5yZXBlYXRfZWFjaCAhPSAxOgotICAgICAgICAgICAgX2xvZy5kZWJ1Zygn
UmVwZWF0aW5nIGVhY2ggdGVzdCB7fSB0aW1lcycuZm9ybWF0KHNlbGYuX29wdGlvbnMuaXRlcmF0
aW9ucykpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX2xvZy5pbmZvKCdSdW5uaW5nIHRl
c3RzJykKLSAgICAgICAgICAgIHJ1bm5lciA9IFJ1bm5lcihzZWxmLl9wb3J0LCBzZWxmLl9zdHJl
YW0pCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLl9vcHRpb25zLml0ZXJhdGlvbnMp
OgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ1xuSXRlcmF0aW9uIHt9Jy5mb3JtYXQoaSAr
IDEpKQotICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4odGVzdF9uYW1lcywgaW50KHNlbGYuX29w
dGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSBpZiBzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyBl
bHNlIHNlbGYuX3BvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoKSkKLSAgICAgICAgZXhjZXB0
IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgIyBJZiB3ZSByZWNlaXZlIGEgS2V5Ym9h
cmRJbnRlcnJ1cHQsIHByaW50IHJlc3VsdHMuCi0gICAgICAgICAgICBzZWxmLl9zdHJlYW0ud3Jp
dGVsbignJykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ1J1
bm5pbmcgdGVzdHMnKQorICAgICAgICAgICAgICAgIHJ1bm5lciA9IFJ1bm5lcihzZWxmLl9wb3J0
LCBzZWxmLl9zdHJlYW0pCisgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fb3B0
aW9ucy5pdGVyYXRpb25zKToKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnXG5JdGVy
YXRpb24ge30nLmZvcm1hdChpICsgMSkpCisgICAgICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4o
dGVzdF9uYW1lcywgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSBpZiBzZWxmLl9v
cHRpb25zLmNoaWxkX3Byb2Nlc3NlcyBlbHNlIHNlbGYuX3BvcnQuZGVmYXVsdF9jaGlsZF9wcm9j
ZXNzZXMoKSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAg
ICAgICAgICAjIElmIHdlIHJlY2VpdmUgYSBLZXlib2FyZEludGVycnVwdCwgcHJpbnQgcmVzdWx0
cy4KKyAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVsbignJykKIAotICAgICAgICBl
bmRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgp
CiAKICAgICAgICAgc3VjY2Vzc2Z1bCA9IHJ1bm5lci5yZXN1bHRfbWFwX2J5X3N0YXR1cyhydW5u
ZXIuU1RBVFVTX1BBU1NFRCkKICAgICAgICAgZGlzYWJsZWQgPSBsZW4ocnVubmVyLnJlc3VsdF9t
YXBfYnlfc3RhdHVzKHJ1bm5lci5TVEFUVVNfRElTQUJMRUQpKQpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CShyZXZpc2lvbiAy
Njk0OTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3Rz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEzOCw2ICsxMzgsMTAgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1J1biBhbGwgdGVzdHMsIGV2ZW4gRElTQUJMRUQg
dGVzdHMnKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tYWRkaXRpb25hbC1lbnYt
dmFyJywgdHlwZT0nc3RyaW5nJywgYWN0aW9uPSdhcHBlbmQnLCBkZWZhdWx0PVtdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdQYXNzZXMgdGhhdCBlbnZpcm9ubWVudCB2YXJp
YWJsZSB0byB0aGUgdGVzdHMgKC0tYWRkaXRpb25hbC1lbnYtdmFyPU5BTUU9VkFMVUUpJyksCisg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWdwdS1wcm9jZXNzJywgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVzdD0ndXNlX2dwdV9wcm9jZXNzJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdFbmFibGUgdGhlIEdQVSBwcm9jZXNzIHRocm91Z2gg
ZGVmYXVsdHMgd3JpdGUnKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8tZ3B1
LXByb2Nlc3MnLCBhY3Rpb249J3N0b3JlX2ZhbHNlJywgZGVzdD0ndXNlX2dwdV9wcm9jZXNzJywg
ZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdFbmFibGUg
dGhlIEdQVSBwcm9jZXNzIHRocm91Z2ggZGVmYXVsdHMgd3JpdGUnKSwKICAgICBdKSkKICAgICBv
cHRpb25fZ3JvdXBfZGVmaW5pdGlvbnMuYXBwZW5kKCgnVXBsb2FkIE9wdGlvbnMnLCB1cGxvYWRf
b3B0aW9ucygpKSkKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlz
aW9uIDI2OTQ5MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogIyBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMgQ29weXJpZ2h0IChDKSAyMDEzLTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCkBAIC0zMSw2ICszMSw3IEBACiB0ZXN0IGluZnJhc3RydWN0dXJlICh0aGUgUG9ydCBhbmQg
RHJpdmVyIGNsYXNzZXMpLiIiIgogCiBpbXBvcnQgYXJncGFyc2UKK2ltcG9ydCBjb250ZXh0bGli
CiBpbXBvcnQgZGlmZmxpYgogaW1wb3J0IGpzb24KIGltcG9ydCBsb2dnaW5nCkBAIC0xNjM1LDMg
KzE2MzYsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgYnJhbmNoPXVz
ZWRfYnJhbmNoLAogICAgICAgICAgICAgKSkKICAgICAgICAgcmV0dXJuIGNvbW1pdHMKKworICAg
IEBjb250ZXh0bGliLmNvbnRleHRtYW5hZ2VyCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmLCBh
cHBsaWNhdGlvbiwgaG9zdHM9Tm9uZSk6CisgICAgICAgIHBhc3MKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Rhcndpbi5weQkocmV2aXNpb24gMjY5NDkwKQorKysgVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9wb3J0L2Rhcndpbi5weQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAK
LSMgQ29weXJpZ2h0IChDKSAyMDE0LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDYgKzIwLDcgQEAKICMgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAoraW1wb3J0IGNvbnRleHRsaWIKIGlt
cG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MKIGltcG9ydCB0aW1lCkBAIC0zNyw4ICszOCw4IEBAIF9s
b2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIAogCiBjbGFzcyBEYXJ3aW5Qb3J0KEFw
cGxlUG9ydCk6Ci0KICAgICBDVVJSRU5UX1ZFUlNJT04gPSBOb25lCisgICAgREVGQVVMVFMgPSAn
L3Vzci9iaW4vZGVmYXVsdHMnCiAgICAgU0RLID0gTm9uZQogCiAgICAgZGVmIF9faW5pdF9fKHNl
bGYsIGhvc3QsIHBvcnRfbmFtZSwgKiprd2FyZ3MpOgpAQCAtMjc5LDMgKzI4MCw0NCBAQCBjbGFz
cyBEYXJ3aW5Qb3J0KEFwcGxlUG9ydCk6CiAgICAgICAgIGZvciBuYW1lIGluIFsnRFlMRF9MSUJS
QVJZX1BBVEgnLCAnX19YUENfRFlMRF9MSUJSQVJZX1BBVEgnLCAnRFlMRF9GUkFNRVdPUktfUEFU
SCcsICdfX1hQQ19EWUxEX0ZSQU1FV09SS19QQVRIJ106CiAgICAgICAgICAgICBzZWxmLl9hcHBl
bmRfdmFsdWVfY29sb25fc2VwYXJhdGVkKGVudmlyb25tZW50LCBuYW1lLCBidWlsZF9yb290X3Bh
dGgpCiAgICAgICAgIHJldHVybiBlbnZpcm9ubWVudAorCisgICAgQGNvbnRleHRsaWIuY29udGV4
dG1hbmFnZXIKKyAgICBkZWYgc2V0X2RlZmF1bHRzKHNlbGYsIGFwcGxpY2F0aW9uLCBob3N0cz1O
b25lKToKKyAgICAgICAgaWYgbm90IGhvc3RzOgorICAgICAgICAgICAgaG9zdHMgPSBbc2VsZi5o
b3N0XQorICAgICAgICBvcmlnaW5hbF9kZWZhdWx0cyA9IFtkaWN0KCkgZm9yIF8gaW4gaG9zdHNd
CisgICAgICAgIHNldF9kZWZhdWx0cyA9IGRpY3QoKQorCisgICAgICAgIGdwdV9wcm9jZXNzID0g
c2VsZi5nZXRfb3B0aW9uKCd1c2VfZ3B1X3Byb2Nlc3MnKQorICAgICAgICBpZiBncHVfcHJvY2Vz
cyBpbiBbVHJ1ZSwgRmFsc2VdOgorICAgICAgICAgICAgZm9yIGtleSBpbiBbCisgICAgICAgICAg
ICAgICAgJ1dlYktpdDIuQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCcsCisgICAgICAg
ICAgICAgICAgJ1dlYktpdDIuQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCcsCisgICAg
ICAgICAgICAgICAgJ1dlYktpdDIuVXNlR1BVUHJvY2Vzc0ZvckNhbnZhc1JlbmRlcmluZ0VuYWJs
ZWQnLAorICAgICAgICAgICAgICAgICdXZWJLaXQyLlVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJp
bmdFbmFibGVkJywKKyAgICAgICAgICAgICAgICAnV2ViS2l0Mi5Vc2VHUFVQcm9jZXNzRm9yTWVk
aWFFbmFibGVkJywKKyAgICAgICAgICAgICAgICAnV2ViS2l0Mi5Vc2VHUFVQcm9jZXNzRm9yV2Vi
R0xFbmFibGVkJywKKyAgICAgICAgICAgIF06CisgICAgICAgICAgICAgICAgc2V0X2RlZmF1bHRz
W2tleV0gPSAnWWVzJyBpZiBncHVfcHJvY2VzcyBlbHNlICdObycKKworICAgICAgICBmb3IgaW5k
ZXggaW4gcmFuZ2UobGVuKGhvc3RzKSk6CisgICAgICAgICAgICBmb3Iga2V5IGluIHNldF9kZWZh
dWx0cy5rZXlzKCk6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgPSBob3N0c1tpbmRleF0uZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtzZWxmLkRFRkFVTFRT
LCAncmVhZCcsIGFwcGxpY2F0aW9uLCBrZXldKQorICAgICAgICAgICAgICAgICAgICBvcmlnaW5h
bF9kZWZhdWx0c1tpbmRleF1ba2V5XSA9IG91dHB1dAorICAgICAgICAgICAgICAgIGV4Y2VwdCBT
Y3JpcHRFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2luYWxfZGVmYXVsdHNbaW5kZXhd
W2tleV0gPSBOb25lCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIGhvc3QgaW4gaG9z
dHM6CisgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2V0X2RlZmF1bHRzLml0ZW1z
KCk6CisgICAgICAgICAgICAgICAgICAgIGhvc3QuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKFtzZWxm
LkRFRkFVTFRTLCAnd3JpdGUnLCBhcHBsaWNhdGlvbiwga2V5LCB2YWx1ZV0pCisKKyAgICAgICAg
ICAgIHlpZWxkCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBmb3IgaW5kZXggaW4gcmFu
Z2UobGVuKGhvc3RzKSk6CisgICAgICAgICAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gb3JpZ2lu
YWxfZGVmYXVsdHNbaW5kZXhdLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGlmIHZhbHVl
OgorICAgICAgICAgICAgICAgICAgICAgICAgaG9zdHNbaW5kZXhdLmV4ZWN1dGl2ZS5ydW5fY29t
bWFuZChbc2VsZi5ERUZBVUxUUywgJ3dyaXRlJywgYXBwbGljYXRpb24sIGtleSwgdmFsdWVdKQor
ICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgaG9zdHNb
aW5kZXhdLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbc2VsZi5ERUZBVUxUUywgJ2RlbGV0ZScsIGFw
cGxpY2F0aW9uLCBrZXldKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413471</attachid>
            <date>2020-11-06 13:06:56 -0800</date>
            <delta_ts>2020-11-06 16:21:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218296-20201106130654.patch</filename>
            <type>text/plain</type>
            <size>16947</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJv
Y2VzcyBkZWZhdWx0cyBmb3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
NzEzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWxsb3cgR1BVIFByb2Nlc3MgcHJlZmVyZW5jZXMgdG8gYmUgY29udHJvbGxlZCBieSBgZGVmYXVs
dHMgd3JpdGVgCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RGVidWcueWFtbDogTW92ZWQgR1BVIHByb2Nlc3MgZnJvbSBXZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWw6IE1vdmVkIEdQWSBwcm9jZXNzIHRvIFdlYlByZWZlcmVuY2VzRGVidWcueWFtbC4K
KwogMjAyMC0xMS0wNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYmFjayBzd2FwKCkgZnJlZSBmdW5jdGlvbiBmb3IgUmVmUHRyCkluZGV4OiBTb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWwJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDI4
IEBAIEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAKK0NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6IGJv
b2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVkaW8gQ2FwdHVyZSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNhcHR1cmUgaW4gR1BVIFBy
b2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpCisKK0NhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2FwdHVyZSIK
KyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gR1BV
IFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpCisKICMgRklYTUU6IFdlYktpdCBoYXMgYW4gYWx0ZXJuYXRlIG5hbWUg
Zm9yIHRoaXMgY2FsbGVkICdTaG93RGVidWdCb3JkZXJzJy4gV2Ugc2hvdWxkIHN0YW5kYXJkaXpl
IG9uIG9uZSBuYW1lLgogQ29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZToKICAgdHlwZTogYm9vbApA
QCAtMTc3LDYgKzE5OSw1MCBAQCBUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6CiAgICAg
V2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1VzZUdQVVByb2Nlc3NGb3JDYW52YXNS
ZW5kZXJpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiR1BV
IFByb2Nlc3M6IENhbnZhcyBSZW5kZXJpbmciCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBjYW52YXMgcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNzIgorICB3ZWJjb3JlQmluZGlu
Zzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhwb3NlZDogWyBX
ZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZGVm
YXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKKworVXNlR1BVUHJv
Y2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJHUFUgUHJvY2VzczogRE9NIFJlbmRlcmluZyIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIERPTSByZW5kZXJpbmcgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVC
aW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2Vk
OiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0
OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQorCitVc2VHUFVQ
cm9jZXNzRm9yTWVkaWFFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiR1BVIFByb2Nlc3M6IE1lZGlhIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJEbyBh
bGwgbWVkaWEgbG9hZGluZyBhbmQgcGxheWJhY2sgaW4gdGhlIEdQVSBQcm9jZXNzIgorICB3ZWJj
b3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhw
b3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVm
YXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKQorCitVc2VHUFVQcm9j
ZXNzRm9yV2ViR0xFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAi
R1BVIFByb2Nlc3M6IFdlYkdMIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
V2ViR0wgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlv
bjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zv
cldlYkdMRW5hYmxlZCgpCisKIFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgogICB0eXBlOiB1
aW50MzJfdAogICB3ZWJjb3JlVHlwZTogRGVidWdPdmVybGF5UmVnaW9ucwpJbmRleDogU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDQsMTcgKzE0NCw2IEBAIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJs
ZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVk
aW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNh
cHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNvbmRpdGlv
bjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0
VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUgYXVkaW8g
aW4gVUkgUHJvY2VzcyIKQEAgLTE2NiwxNyArMTU1LDYgQEAgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3NFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IFdlYktpdDo6ZGVmYXVsdENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiAKLUNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2Vz
czogVmlkZW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZp
ZGVvIGNhcHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNv
bmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBk
ZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVWaWRlb0luVUlQcm9j
ZXNzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUg
dmlkZW8gaW4gVUkgUHJvY2VzcyIKQEAgLTY5MCw1MCArNjY4LDYgQEAgVW5kb01hbmFnZXJBUElF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1Vc2VHUFVQcm9j
ZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRh
YmxlTmFtZTogIkdQVSBQcm9jZXNzOiBDYW52YXMgUmVuZGVyaW5nIgotICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgY2FudmFzIHJlbmRlcmluZyBpbiBHUFUgUHJvY2VzcyIKLSAg
d2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BST0NFU1MpCi0g
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdDoKLSAgICAg
IGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCgp
Ci0KLVVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkOgotICB0eXBlOiBib29sCi0g
IGh1bWFuUmVhZGFibGVOYW1lOiAiR1BVIFByb2Nlc3M6IERPTSBSZW5kZXJpbmciCi0gIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBET00gcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNz
IgotICB3ZWJjb3JlQmluZGluZzogbm9uZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VT
UykKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0Ogot
ICAgICAgZGVmYXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVk
KCkKLQotVXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1h
blJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBNZWRpYSIKLSAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRG8gYWxsIG1lZGlhIGxvYWRpbmcgYW5kIHBsYXliYWNrIGluIHRoZSBHUFUgUHJv
Y2VzcyIKLSAgd2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BS
T0NFU1MpCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktp
dDoKLSAgICAgIGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkK
LQotVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJl
YWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBXZWJHTCIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIFdlYkdMIGluIEdQVSBQcm9jZXNzIgotICB3ZWJjb3JlQmluZGluZzogbm9u
ZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgZXhwb3NlZDogWyBXZWJLaXQg
XQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKQotCiBXZWJBUElTdGF0aXN0aWNzRW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIldlYiBBUEkgU3RhdGlzdGljcyIK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTUyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJvY2VzcyBkZWZhdWx0cyBm
b3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NzEzNjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5OgorICAgICAgICAoTWFuYWdlci5ydW4pOiBTZXQgZGVm
YXVsdHMgZm9yIEFQSSB0ZXN0cywgc2V0IGdwdXByb2Nlc3MgYXMgZmxhdm9yIGZvciByZXBvcnRp
bmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5w
eToKKyAgICAgICAgKHBhcnNlX2FyZ3MpOiBBZGQgb3B0aW9ucyB0byBleHBsaWNpdGx5IGVuYWJs
ZSBvciBkaXNhYmxlIHRoZSBHUFUgcHJvY2VzcyBkdXJpbmcgdGVzdGluZy4KKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuY29tbWl0c19mb3Jf
dXBsb2FkKToKKyAgICAgICAgKFBvcnQpOgorICAgICAgICAoUG9ydC5zZXRfZGVmYXVsdHMpOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHk6CisgICAgICAgIChEYXJ3
aW5Qb3J0KToKKyAgICAgICAgKERhcndpblBvcnQuc2V0X2RlZmF1bHRzKTogV3JpdGUgYXBwbGlj
YXRpb24gZGVmYXVsdHMgYW5kIHRoZW4gcmVzZXQgdGhlbSBmb3Igc29tZSBjb250ZXh0LgorCiAy
MDIwLTExLTA2ICBUcnVpdHQgU2F2ZWxsICA8dHNhdmVsbEBhcHBsZS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjk0ODYuCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL21hbmFnZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTEs
NCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE4LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xNzUsMzggKzE3
NSw0MSBAQCBjbGFzcyBNYW5hZ2VyKG9iamVjdCk6CiAgICAgICAgICAgICByZXR1cm4gTWFuYWdl
ci5GQUlMRURfQlVJTERfQ0hFQ0sKIAogICAgICAgICBzZWxmLl9pbml0aWFsaXplX2RldmljZXMo
KQorICAgICAgICBpZiBzZWxmLl9wb3J0LmdldF9vcHRpb24oJ3VzZV9ncHVfcHJvY2VzcycpOgor
ICAgICAgICAgICAgc2VsZi5fcG9ydC5zZXRfb3B0aW9uKCdyZXN1bHRfcmVwb3J0X2ZsYXZvcics
ICdncHVwcm9jZXNzJykKIAotICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdDb2xs
ZWN0aW5nIHRlc3RzIC4uLicpCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIHRlc3RfbmFtZXMg
PSBzZWxmLl9jb2xsZWN0X3Rlc3RzKGFyZ3MpCi0gICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvcjoK
LSAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZWxuKCdGYWlsZWQgdG8gY29sbGVjdCB0ZXN0
cycpCi0gICAgICAgICAgICByZXR1cm4gTWFuYWdlci5GQUlMRURfQ09MTEVDVF9URVNUUwotICAg
ICAgICBzZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdGb3VuZCB7fSB0ZXN0cycuZm9ybWF0KGxl
bih0ZXN0X25hbWVzKSkpCi0gICAgICAgIGlmIGxlbih0ZXN0X25hbWVzKSA9PSAwOgotICAgICAg
ICAgICAgc2VsZi5fc3RyZWFtLndyaXRlbG4oJ05vIHRlc3RzIGZvdW5kJykKLSAgICAgICAgICAg
IHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCi0KLSAgICAgICAgaWYgc2VsZi5f
cG9ydC5nZXRfb3B0aW9uKCdkdW1wJyk6Ci0gICAgICAgICAgICBmb3IgdGVzdCBpbiB0ZXN0X25h
bWVzOgotICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZWxuKHRlc3QpCi0gICAgICAg
ICAgICByZXR1cm4gTWFuYWdlci5TVUNDRVNTCisgICAgICAgIHdpdGggc2VsZi5fcG9ydC5zZXRf
ZGVmYXVsdHMoJ2NvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSScpLCBzZWxmLl9wb3J0LnNl
dF9kZWZhdWx0cygnY29tLmFwcGxlLldlYktpdC5UZXN0V1RGJyk6CisgICAgICAgICAgICBzZWxm
Ll9zdHJlYW0ud3JpdGVfdXBkYXRlKCdDb2xsZWN0aW5nIHRlc3RzIC4uLicpCisgICAgICAgICAg
ICB0cnk6CisgICAgICAgICAgICAgICAgdGVzdF9uYW1lcyA9IHNlbGYuX2NvbGxlY3RfdGVzdHMo
YXJncykKKyAgICAgICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvcjoKKyAgICAgICAgICAgICAgICBz
ZWxmLl9zdHJlYW0ud3JpdGVsbignRmFpbGVkIHRvIGNvbGxlY3QgdGVzdHMnKQorICAgICAgICAg
ICAgICAgIHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCisgICAgICAgICAgICBz
ZWxmLl9zdHJlYW0ud3JpdGVfdXBkYXRlKCdGb3VuZCB7fSB0ZXN0cycuZm9ybWF0KGxlbih0ZXN0
X25hbWVzKSkpCisgICAgICAgICAgICBpZiBsZW4odGVzdF9uYW1lcykgPT0gMDoKKyAgICAgICAg
ICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVsbignTm8gdGVzdHMgZm91bmQnKQorICAgICAgICAg
ICAgICAgIHJldHVybiBNYW5hZ2VyLkZBSUxFRF9DT0xMRUNUX1RFU1RTCisKKyAgICAgICAgICAg
IGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbignZHVtcCcpOgorICAgICAgICAgICAgICAgIGZvciB0
ZXN0IGluIHRlc3RfbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuX3N0cmVhbS53cml0
ZWxuKHRlc3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIE1hbmFnZXIuU1VDQ0VTUworCisgICAg
ICAgICAgICB0ZXN0X25hbWVzID0gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1lcyBmb3IgXyBp
biByYW5nZShzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoKV0KKyAgICAgICAgICAgIGlmIHNlbGYu
X29wdGlvbnMucmVwZWF0X2VhY2ggIT0gMToKKyAgICAgICAgICAgICAgICBfbG9nLmRlYnVnKCdS
ZXBlYXRpbmcgZWFjaCB0ZXN0IHt9IHRpbWVzJy5mb3JtYXQoc2VsZi5fb3B0aW9ucy5pdGVyYXRp
b25zKSkKIAotICAgICAgICB0ZXN0X25hbWVzID0gW3Rlc3QgZm9yIHRlc3QgaW4gdGVzdF9uYW1l
cyBmb3IgXyBpbiByYW5nZShzZWxmLl9vcHRpb25zLnJlcGVhdF9lYWNoKV0KLSAgICAgICAgaWYg
c2VsZi5fb3B0aW9ucy5yZXBlYXRfZWFjaCAhPSAxOgotICAgICAgICAgICAgX2xvZy5kZWJ1Zygn
UmVwZWF0aW5nIGVhY2ggdGVzdCB7fSB0aW1lcycuZm9ybWF0KHNlbGYuX29wdGlvbnMuaXRlcmF0
aW9ucykpCi0KLSAgICAgICAgdHJ5OgotICAgICAgICAgICAgX2xvZy5pbmZvKCdSdW5uaW5nIHRl
c3RzJykKLSAgICAgICAgICAgIHJ1bm5lciA9IFJ1bm5lcihzZWxmLl9wb3J0LCBzZWxmLl9zdHJl
YW0pCi0gICAgICAgICAgICBmb3IgaSBpbiByYW5nZShzZWxmLl9vcHRpb25zLml0ZXJhdGlvbnMp
OgotICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ1xuSXRlcmF0aW9uIHt9Jy5mb3JtYXQoaSAr
IDEpKQotICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4odGVzdF9uYW1lcywgaW50KHNlbGYuX29w
dGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSBpZiBzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyBl
bHNlIHNlbGYuX3BvcnQuZGVmYXVsdF9jaGlsZF9wcm9jZXNzZXMoKSkKLSAgICAgICAgZXhjZXB0
IEtleWJvYXJkSW50ZXJydXB0OgotICAgICAgICAgICAgIyBJZiB3ZSByZWNlaXZlIGEgS2V5Ym9h
cmRJbnRlcnJ1cHQsIHByaW50IHJlc3VsdHMuCi0gICAgICAgICAgICBzZWxmLl9zdHJlYW0ud3Jp
dGVsbignJykKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ1J1
bm5pbmcgdGVzdHMnKQorICAgICAgICAgICAgICAgIHJ1bm5lciA9IFJ1bm5lcihzZWxmLl9wb3J0
LCBzZWxmLl9zdHJlYW0pCisgICAgICAgICAgICAgICAgZm9yIGkgaW4gcmFuZ2Uoc2VsZi5fb3B0
aW9ucy5pdGVyYXRpb25zKToKKyAgICAgICAgICAgICAgICAgICAgX2xvZy5kZWJ1ZygnXG5JdGVy
YXRpb24ge30nLmZvcm1hdChpICsgMSkpCisgICAgICAgICAgICAgICAgICAgIHJ1bm5lci5ydW4o
dGVzdF9uYW1lcywgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2VzKSBpZiBzZWxmLl9v
cHRpb25zLmNoaWxkX3Byb2Nlc3NlcyBlbHNlIHNlbGYuX3BvcnQuZGVmYXVsdF9jaGlsZF9wcm9j
ZXNzZXMoKSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAg
ICAgICAgICAjIElmIHdlIHJlY2VpdmUgYSBLZXlib2FyZEludGVycnVwdCwgcHJpbnQgcmVzdWx0
cy4KKyAgICAgICAgICAgICAgICBzZWxmLl9zdHJlYW0ud3JpdGVsbignJykKIAotICAgICAgICBl
bmRfdGltZSA9IHRpbWUudGltZSgpCisgICAgICAgICAgICBlbmRfdGltZSA9IHRpbWUudGltZSgp
CiAKICAgICAgICAgc3VjY2Vzc2Z1bCA9IHJ1bm5lci5yZXN1bHRfbWFwX2J5X3N0YXR1cyhydW5u
ZXIuU1RBVFVTX1BBU1NFRCkKICAgICAgICAgZGlzYWJsZWQgPSBsZW4ocnVubmVyLnJlc3VsdF9t
YXBfYnlfc3RhdHVzKHJ1bm5lci5TVEFUVVNfRElTQUJMRUQpKQpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9hcGlfdGVzdHMvcnVuX2FwaV90ZXN0cy5weQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CShyZXZpc2lvbiAy
Njk0OTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3Rz
LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEzOCw2ICsxMzgsMTAgQEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J1J1biBhbGwgdGVzdHMsIGV2ZW4gRElTQUJMRUQg
dGVzdHMnKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tYWRkaXRpb25hbC1lbnYt
dmFyJywgdHlwZT0nc3RyaW5nJywgYWN0aW9uPSdhcHBlbmQnLCBkZWZhdWx0PVtdLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdQYXNzZXMgdGhhdCBlbnZpcm9ubWVudCB2YXJp
YWJsZSB0byB0aGUgdGVzdHMgKC0tYWRkaXRpb25hbC1lbnYtdmFyPU5BTUU9VkFMVUUpJyksCisg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWdwdS1wcm9jZXNzJywgYWN0aW9uPSdzdG9y
ZV90cnVlJywgZGVzdD0ndXNlX2dwdV9wcm9jZXNzJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdFbmFibGUgdGhlIEdQVSBwcm9jZXNzIHRocm91Z2gg
ZGVmYXVsdHMgd3JpdGUnKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8tZ3B1
LXByb2Nlc3MnLCBhY3Rpb249J3N0b3JlX2ZhbHNlJywgZGVzdD0ndXNlX2dwdV9wcm9jZXNzJywg
ZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdEaXNhYmxl
IHRoZSBHUFUgcHJvY2VzcyB0aHJvdWdoIGRlZmF1bHRzIHdyaXRlJyksCiAgICAgXSkpCiAgICAg
b3B0aW9uX2dyb3VwX2RlZmluaXRpb25zLmFwcGVuZCgoJ1VwbG9hZCBPcHRpb25zJywgdXBsb2Fk
X29wdGlvbnMoKSkpCiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CShyZXZp
c2lvbiAyNjk0OTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKICMgQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIENvcHlyaWdodCAoQykgMjAxMy0yMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAyMDEzLTIwMjAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQpAQCAtMzEsNiArMzEsNyBAQAogdGVzdCBpbmZyYXN0cnVjdHVyZSAodGhlIFBvcnQgYW5k
IERyaXZlciBjbGFzc2VzKS4iIiIKIAogaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQgY29udGV4dGxp
YgogaW1wb3J0IGRpZmZsaWIKIGltcG9ydCBqc29uCiBpbXBvcnQgbG9nZ2luZwpAQCAtMTYzNSwz
ICsxNjM2LDcgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICAgICAgICAgIGJyYW5jaD11
c2VkX2JyYW5jaCwKICAgICAgICAgICAgICkpCiAgICAgICAgIHJldHVybiBjb21taXRzCisKKyAg
ICBAY29udGV4dGxpYi5jb250ZXh0bWFuYWdlcgorICAgIGRlZiBzZXRfZGVmYXVsdHMoc2VsZiwg
YXBwbGljYXRpb24sIGhvc3RzPU5vbmUpOgorICAgICAgICBwYXNzCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvZGFyd2luLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kYXJ3aW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBA
Ci0jIENvcHlyaWdodCAoQykgMjAxNC0yMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyMgQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMCw2ICsyMCw3IEBACiAjIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBjb250ZXh0bGliCiBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zCiBpbXBvcnQgdGltZQpAQCAtMzcsOCArMzgsOCBAQCBf
bG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCiAKIAogY2xhc3MgRGFyd2luUG9ydChB
cHBsZVBvcnQpOgotCiAgICAgQ1VSUkVOVF9WRVJTSU9OID0gTm9uZQorICAgIERFRkFVTFRTID0g
Jy91c3IvYmluL2RlZmF1bHRzJwogICAgIFNESyA9IE5vbmUKIAogICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBob3N0LCBwb3J0X25hbWUsICoqa3dhcmdzKToKQEAgLTI3OSwzICsyODAsNDQgQEAgY2xh
c3MgRGFyd2luUG9ydChBcHBsZVBvcnQpOgogICAgICAgICBmb3IgbmFtZSBpbiBbJ0RZTERfTElC
UkFSWV9QQVRIJywgJ19fWFBDX0RZTERfTElCUkFSWV9QQVRIJywgJ0RZTERfRlJBTUVXT1JLX1BB
VEgnLCAnX19YUENfRFlMRF9GUkFNRVdPUktfUEFUSCddOgogICAgICAgICAgICAgc2VsZi5fYXBw
ZW5kX3ZhbHVlX2NvbG9uX3NlcGFyYXRlZChlbnZpcm9ubWVudCwgbmFtZSwgYnVpbGRfcm9vdF9w
YXRoKQogICAgICAgICByZXR1cm4gZW52aXJvbm1lbnQKKworICAgIEBjb250ZXh0bGliLmNvbnRl
eHRtYW5hZ2VyCisgICAgZGVmIHNldF9kZWZhdWx0cyhzZWxmLCBhcHBsaWNhdGlvbiwgaG9zdHM9
Tm9uZSk6CisgICAgICAgIGlmIG5vdCBob3N0czoKKyAgICAgICAgICAgIGhvc3RzID0gW3NlbGYu
aG9zdF0KKyAgICAgICAgb3JpZ2luYWxfZGVmYXVsdHMgPSBbZGljdCgpIGZvciBfIGluIGhvc3Rz
XQorICAgICAgICBzZXRfZGVmYXVsdHMgPSBkaWN0KCkKKworICAgICAgICBncHVfcHJvY2VzcyA9
IHNlbGYuZ2V0X29wdGlvbigndXNlX2dwdV9wcm9jZXNzJykKKyAgICAgICAgaWYgZ3B1X3Byb2Nl
c3MgaW4gW1RydWUsIEZhbHNlXToKKyAgICAgICAgICAgIGZvciBrZXkgaW4gWworICAgICAgICAg
ICAgICAgICdXZWJLaXQyLkNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQnLAorICAgICAg
ICAgICAgICAgICdXZWJLaXQyLkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQnLAorICAg
ICAgICAgICAgICAgICdXZWJLaXQyLlVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFi
bGVkJywKKyAgICAgICAgICAgICAgICAnV2ViS2l0Mi5Vc2VHUFVQcm9jZXNzRm9yRE9NUmVuZGVy
aW5nRW5hYmxlZCcsCisgICAgICAgICAgICAgICAgJ1dlYktpdDIuVXNlR1BVUHJvY2Vzc0Zvck1l
ZGlhRW5hYmxlZCcsCisgICAgICAgICAgICAgICAgJ1dlYktpdDIuVXNlR1BVUHJvY2Vzc0Zvcldl
YkdMRW5hYmxlZCcsCisgICAgICAgICAgICBdOgorICAgICAgICAgICAgICAgIHNldF9kZWZhdWx0
c1trZXldID0gJ1llcycgaWYgZ3B1X3Byb2Nlc3MgZWxzZSAnTm8nCisKKyAgICAgICAgZm9yIGlu
ZGV4IGluIHJhbmdlKGxlbihob3N0cykpOgorICAgICAgICAgICAgZm9yIGtleSBpbiBzZXRfZGVm
YXVsdHMua2V5cygpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
b3V0cHV0ID0gaG9zdHNbaW5kZXhdLmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbc2VsZi5ERUZBVUxU
UywgJ3JlYWQnLCBhcHBsaWNhdGlvbiwga2V5XSkKKyAgICAgICAgICAgICAgICAgICAgb3JpZ2lu
YWxfZGVmYXVsdHNbaW5kZXhdW2tleV0gPSBvdXRwdXQKKyAgICAgICAgICAgICAgICBleGNlcHQg
U2NyaXB0RXJyb3I6CisgICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsX2RlZmF1bHRzW2luZGV4
XVtrZXldID0gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBob3N0IGluIGhv
c3RzOgorICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIHNldF9kZWZhdWx0cy5pdGVt
cygpOgorICAgICAgICAgICAgICAgICAgICBob3N0LmV4ZWN1dGl2ZS5ydW5fY29tbWFuZChbc2Vs
Zi5ERUZBVUxUUywgJ3dyaXRlJywgYXBwbGljYXRpb24sIGtleSwgdmFsdWVdKQorCisgICAgICAg
ICAgICB5aWVsZAorICAgICAgICBmaW5hbGx5OgorICAgICAgICAgICAgZm9yIGluZGV4IGluIHJh
bmdlKGxlbihob3N0cykpOgorICAgICAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIG9yaWdp
bmFsX2RlZmF1bHRzW2luZGV4XS5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBpZiB2YWx1
ZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGhvc3RzW2luZGV4XS5leGVjdXRpdmUucnVuX2Nv
bW1hbmQoW3NlbGYuREVGQVVMVFMsICd3cml0ZScsIGFwcGxpY2F0aW9uLCBrZXksIHZhbHVlXSkK
KyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGhvc3Rz
W2luZGV4XS5leGVjdXRpdmUucnVuX2NvbW1hbmQoW3NlbGYuREVGQVVMVFMsICdkZWxldGUnLCBh
cHBsaWNhdGlvbiwga2V5XSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413496</attachid>
            <date>2020-11-06 16:21:25 -0800</date>
            <delta_ts>2020-11-06 16:22:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-218296-20201106162124.patch</filename>
            <type>text/plain</type>
            <size>14130</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxq
YmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJv
Y2VzcyBkZWZhdWx0cyBmb3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3
NzEzNjg+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWxsb3cgR1BVIFByb2Nlc3MgcHJlZmVyZW5jZXMgdG8gYmUgY29udHJvbGxlZCBieSBgZGVmYXVs
dHMgd3JpdGVgCisKKyAgICAgICAgKiBTY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2Vz
RGVidWcueWFtbDogTW92ZWQgR1BVIHByb2Nlc3MgZnJvbSBXZWJQcmVmZXJlbmNlc0ludGVybmFs
LnlhbWwuCisgICAgICAgICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0ludGVy
bmFsLnlhbWw6IE1vdmVkIEdQWSBwcm9jZXNzIHRvIFdlYlByZWZlcmVuY2VzRGVidWcueWFtbC4K
KwogMjAyMC0xMS0wNSAgU2FhbSBCYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBZGQgYmFjayBzd2FwKCkgZnJlZSBmdW5jdGlvbiBmb3IgUmVmUHRyCkluZGV4OiBTb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNEZWJ1Zy55YW1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0RlYnVn
LnlhbWwJKHJldmlzaW9uIDI2OTQ5MCkKKysrIFNvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNl
cy9XZWJQcmVmZXJlbmNlc0RlYnVnLnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDI4
IEBAIEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQ6CiAgICAgV2ViQ29yZToKICAgICAgIGRlZmF1
bHQ6IGZhbHNlCiAKK0NhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6IGJv
b2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVkaW8gQ2FwdHVyZSIKKyAg
aHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNhcHR1cmUgaW4gR1BVIFBy
b2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1FRElB
X1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2Vi
S2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZUF1ZGlvSW5HUFVQcm9j
ZXNzRW5hYmxlZCgpCisKK0NhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQ6CisgIHR5cGU6
IGJvb2wKKyAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogVmlkZW8gQ2FwdHVyZSIK
KyAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZpZGVvIGNhcHR1cmUgaW4gR1BV
IFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKE1F
RElBX1NUUkVBTSkKKyAgZXhwb3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAg
V2ViS2l0OgorICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVyZVZpZGVvSW5HUFVQ
cm9jZXNzRW5hYmxlZCgpCisKICMgRklYTUU6IFdlYktpdCBoYXMgYW4gYWx0ZXJuYXRlIG5hbWUg
Zm9yIHRoaXMgY2FsbGVkICdTaG93RGVidWdCb3JkZXJzJy4gV2Ugc2hvdWxkIHN0YW5kYXJkaXpl
IG9uIG9uZSBuYW1lLgogQ29tcG9zaXRpbmdCb3JkZXJzVmlzaWJsZToKICAgdHlwZTogYm9vbApA
QCAtMTc3LDYgKzE5OSw1MCBAQCBUaWxlZFNjcm9sbGluZ0luZGljYXRvclZpc2libGU6CiAgICAg
V2ViQ29yZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1VzZUdQVVByb2Nlc3NGb3JDYW52YXNS
ZW5kZXJpbmdFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiR1BV
IFByb2Nlc3M6IENhbnZhcyBSZW5kZXJpbmciCisgIGh1bWFuUmVhZGFibGVEZXNjcmlwdGlvbjog
IkVuYWJsZSBjYW52YXMgcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNzIgorICB3ZWJjb3JlQmluZGlu
Zzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhwb3NlZDogWyBX
ZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDogZGVm
YXVsdFVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFibGVkKCkKKworVXNlR1BVUHJv
Y2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5SZWFkYWJs
ZU5hbWU6ICJHUFUgUHJvY2VzczogRE9NIFJlbmRlcmluZyIKKyAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRW5hYmxlIERPTSByZW5kZXJpbmcgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVC
aW5kaW5nOiBub25lCisgIGNvbmRpdGlvbjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2Vk
OiBbIFdlYktpdCBdCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0
OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQoKQorCitVc2VHUFVQ
cm9jZXNzRm9yTWVkaWFFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1l
OiAiR1BVIFByb2Nlc3M6IE1lZGlhIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJEbyBh
bGwgbWVkaWEgbG9hZGluZyBhbmQgcGxheWJhY2sgaW4gdGhlIEdQVSBQcm9jZXNzIgorICB3ZWJj
b3JlQmluZGluZzogbm9uZQorICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgZXhw
b3NlZDogWyBXZWJLaXQgXQorICBkZWZhdWx0VmFsdWU6CisgICAgV2ViS2l0OgorICAgICAgZGVm
YXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQoKQorCitVc2VHUFVQcm9j
ZXNzRm9yV2ViR0xFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAi
R1BVIFByb2Nlc3M6IFdlYkdMIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
V2ViR0wgaW4gR1BVIFByb2Nlc3MiCisgIHdlYmNvcmVCaW5kaW5nOiBub25lCisgIGNvbmRpdGlv
bjogRU5BQkxFKEdQVV9QUk9DRVNTKQorICBleHBvc2VkOiBbIFdlYktpdCBdCisgIGRlZmF1bHRW
YWx1ZToKKyAgICBXZWJLaXQ6CisgICAgICBkZWZhdWx0OiBkZWZhdWx0VXNlR1BVUHJvY2Vzc0Zv
cldlYkdMRW5hYmxlZCgpCisKIFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgogICB0eXBlOiB1
aW50MzJfdAogICB3ZWJjb3JlVHlwZTogRGVidWdPdmVybGF5UmVnaW9ucwpJbmRleDogU291cmNl
L1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzSW50ZXJuYWwueWFtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJ
bnRlcm5hbC55YW1sCShyZXZpc2lvbiAyNjk0OTApCisrKyBTb3VyY2UvV1RGL1NjcmlwdHMvUHJl
ZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNJbnRlcm5hbC55YW1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
NDQsMTcgKzE0NCw2IEBAIENTU09NVmlld1Njcm9sbGluZ0FQSUVuYWJsZWQ6CiAgICAgV2ViQ29y
ZToKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKLUNhcHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJs
ZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2VzczogQXVk
aW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIGF1ZGlvIGNh
cHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNvbmRpdGlv
bjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0
VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0Q2FwdHVy
ZUF1ZGlvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVBdWRpb0luVUlQcm9jZXNzRW5h
YmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUgYXVkaW8g
aW4gVUkgUHJvY2VzcyIKQEAgLTE2NiwxNyArMTU1LDYgQEAgQ2FwdHVyZUF1ZGlvSW5VSVByb2Nl
c3NFbmFibGVkOgogICAgIFdlYktpdDoKICAgICAgIGRlZmF1bHQ6IFdlYktpdDo6ZGVmYXVsdENh
cHR1cmVBdWRpb0luVUlQcm9jZXNzRW5hYmxlZCgpCiAKLUNhcHR1cmVWaWRlb0luR1BVUHJvY2Vz
c0VuYWJsZWQ6Ci0gIHR5cGU6IGJvb2wKLSAgaHVtYW5SZWFkYWJsZU5hbWU6ICJHUFUgUHJvY2Vz
czogVmlkZW8gQ2FwdHVyZSIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0aW9uOiAiRW5hYmxlIHZp
ZGVvIGNhcHR1cmUgaW4gR1BVIFByb2Nlc3MiCi0gIHdlYmNvcmVCaW5kaW5nOiBub25lCi0gIGNv
bmRpdGlvbjogRU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBk
ZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogV2ViS2l0OjpkZWZhdWx0
Q2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzRW5hYmxlZCgpCi0KIENhcHR1cmVWaWRlb0luVUlQcm9j
ZXNzRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIkNhcHR1cmUg
dmlkZW8gaW4gVUkgUHJvY2VzcyIKQEAgLTY5MCw1MCArNjY4LDYgQEAgVW5kb01hbmFnZXJBUElF
bmFibGVkOgogICAgIFdlYkNvcmU6CiAgICAgICBkZWZhdWx0OiBmYWxzZQogCi1Vc2VHUFVQcm9j
ZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJlYWRh
YmxlTmFtZTogIkdQVSBQcm9jZXNzOiBDYW52YXMgUmVuZGVyaW5nIgotICBodW1hblJlYWRhYmxl
RGVzY3JpcHRpb246ICJFbmFibGUgY2FudmFzIHJlbmRlcmluZyBpbiBHUFUgUHJvY2VzcyIKLSAg
d2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BST0NFU1MpCi0g
IGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktpdDoKLSAgICAg
IGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5hYmxlZCgp
Ci0KLVVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkOgotICB0eXBlOiBib29sCi0g
IGh1bWFuUmVhZGFibGVOYW1lOiAiR1BVIFByb2Nlc3M6IERPTSBSZW5kZXJpbmciCi0gIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBET00gcmVuZGVyaW5nIGluIEdQVSBQcm9jZXNz
IgotICB3ZWJjb3JlQmluZGluZzogbm9uZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VT
UykKLSAgZXhwb3NlZDogWyBXZWJLaXQgXQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0Ogot
ICAgICAgZGVmYXVsdDogZGVmYXVsdFVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVk
KCkKLQotVXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1h
blJlYWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBNZWRpYSIKLSAgaHVtYW5SZWFkYWJsZURlc2Ny
aXB0aW9uOiAiRG8gYWxsIG1lZGlhIGxvYWRpbmcgYW5kIHBsYXliYWNrIGluIHRoZSBHUFUgUHJv
Y2VzcyIKLSAgd2ViY29yZUJpbmRpbmc6IG5vbmUKLSAgY29uZGl0aW9uOiBFTkFCTEUoR1BVX1BS
T0NFU1MpCi0gIGV4cG9zZWQ6IFsgV2ViS2l0IF0KLSAgZGVmYXVsdFZhbHVlOgotICAgIFdlYktp
dDoKLSAgICAgIGRlZmF1bHQ6IGRlZmF1bHRVc2VHUFVQcm9jZXNzRm9yTWVkaWFFbmFibGVkKCkK
LQotVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZDoKLSAgdHlwZTogYm9vbAotICBodW1hblJl
YWRhYmxlTmFtZTogIkdQVSBQcm9jZXNzOiBXZWJHTCIKLSAgaHVtYW5SZWFkYWJsZURlc2NyaXB0
aW9uOiAiRW5hYmxlIFdlYkdMIGluIEdQVSBQcm9jZXNzIgotICB3ZWJjb3JlQmluZGluZzogbm9u
ZQotICBjb25kaXRpb246IEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgZXhwb3NlZDogWyBXZWJLaXQg
XQotICBkZWZhdWx0VmFsdWU6Ci0gICAgV2ViS2l0OgotICAgICAgZGVmYXVsdDogZGVmYXVsdFVz
ZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQoKQotCiBXZWJBUElTdGF0aXN0aWNzRW5hYmxlZDoK
ICAgdHlwZTogYm9vbAogICBodW1hblJlYWRhYmxlTmFtZTogIldlYiBBUEkgU3RhdGlzdGljcyIK
SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2OTU0NykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTExLTA2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbR1BVUHJvY2Vzc10gT3ZlcnJpZGUgR1BVUHJvY2VzcyBkZWZhdWx0cyBm
b3IgQVBJIHRlc3RpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxODI5NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzA3NzEzNjg+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9tYW5hZ2VyLnB5OgorICAgICAgICAoTWFuYWdlci5ydW4pOiBTZXQgZ3B1
cHJvY2VzcyBhcyBmbGF2b3IgZm9yIHJlcG9ydGluZy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5OgorICAgICAgICAocGFyc2VfYXJncyk6IEFk
ZCBvcHRpb25zIHRvIGV4cGxpY2l0bHkgZW5hYmxlIG9yIGRpc2FibGUgdGhlIEdQVSBwcm9jZXNz
IGR1cmluZyB0ZXN0aW5nLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1
bm5lci5weToKKyAgICAgICAgKF9Xb3JrZXIuX3J1bl9zaW5nbGVfdGVzdCk6IFBhc3MgLS1ncHUt
cHJvY2VzcyBmbGFncyB0byB0ZXN0IGJpbmFyeS4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lv
cy9tYWluSU9TLm1tOgorICAgICAgICAobWFpbik6IFNldCB1c2VyIGRlZmF1bHRzIGZvciB0aGUg
R1BVIHByb2Nlc3MuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9tYWMvbWFpbk1hYy5tbToKKyAg
ICAgICAgKG1haW4pOiBEaXR0by4KKwogMjAyMC0xMS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ29uY3VycmVudCBkaXNwbGF5IGxpc3RzXSBB
ZGQgQVBJIHRlc3RzIGZvciBXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RGlzcGxheUxpc3QgYW5kIHJl
bGF0ZWQgY2xhc3NlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvbWFu
YWdlci5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9t
YW5hZ2VyLnB5CShyZXZpc2lvbiAyNjk0OTApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Fw
aV90ZXN0cy9tYW5hZ2VyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENv
cHlyaWdodCAoQykgMjAxOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTc1LDYgKzE3NSw4IEBAIGNsYXNzIE1hbmFn
ZXIob2JqZWN0KToKICAgICAgICAgICAgIHJldHVybiBNYW5hZ2VyLkZBSUxFRF9CVUlMRF9DSEVD
SwogCiAgICAgICAgIHNlbGYuX2luaXRpYWxpemVfZGV2aWNlcygpCisgICAgICAgIGlmIHNlbGYu
X3BvcnQuZ2V0X29wdGlvbigndXNlX2dwdV9wcm9jZXNzJyk6CisgICAgICAgICAgICBzZWxmLl9w
b3J0LnNldF9vcHRpb24oJ3Jlc3VsdF9yZXBvcnRfZmxhdm9yJywgJ2dwdXByb2Nlc3MnKQogCiAg
ICAgICAgIHNlbGYuX3N0cmVhbS53cml0ZV91cGRhdGUoJ0NvbGxlY3RpbmcgdGVzdHMgLi4uJykK
ICAgICAgICAgdHJ5OgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9hcGlfdGVzdHMvcnVu
X2FwaV90ZXN0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90
ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CShyZXZpc2lvbiAyNjk0OTApCisrKyBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5fYXBpX3Rlc3RzLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMTgtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzOCw2ICsxMzgsMTAg
QEAgZGVmIHBhcnNlX2FyZ3MoYXJncyk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhl
bHA9J1J1biBhbGwgdGVzdHMsIGV2ZW4gRElTQUJMRUQgdGVzdHMnKSwKICAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oJy0tYWRkaXRpb25hbC1lbnYtdmFyJywgdHlwZT0nc3RyaW5nJywgYWN0
aW9uPSdhcHBlbmQnLCBkZWZhdWx0PVtdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBo
ZWxwPSdQYXNzZXMgdGhhdCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byB0aGUgdGVzdHMgKC0tYWRk
aXRpb25hbC1lbnYtdmFyPU5BTUU9VkFMVUUpJyksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0
aW9uKCctLWdwdS1wcm9jZXNzJywgYWN0aW9uPSdzdG9yZV90cnVlJywgZGVzdD0ndXNlX2dwdV9w
cm9jZXNzJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSdFbmFibGUgdGhlIEdQVSBwcm9jZXNzIHRocm91Z2ggZGVmYXVsdHMgd3JpdGUnKSwKKyAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8tZ3B1LXByb2Nlc3MnLCBhY3Rpb249J3N0b3Jl
X2ZhbHNlJywgZGVzdD0ndXNlX2dwdV9wcm9jZXNzJywgZGVmYXVsdD1Ob25lLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBoZWxwPSdEaXNhYmxlIHRoZSBHUFUgcHJvY2VzcyB0aHJvdWdo
IGRlZmF1bHRzIHdyaXRlJyksCiAgICAgXSkpCiAgICAgb3B0aW9uX2dyb3VwX2RlZmluaXRpb25z
LmFwcGVuZCgoJ1VwbG9hZCBPcHRpb25zJywgdXBsb2FkX29wdGlvbnMoKSkpCiAKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bm5lci5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHkJKHJldmlzaW9uIDI2OTQ5
MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYXBpX3Rlc3RzL3J1bm5lci5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMTU4LDkgKzE1OCwxNSBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAg
ICAgIHJldHVybiByZXN1bHQKIAogICAgIGRlZiBfcnVuX3NpbmdsZV90ZXN0KHNlbGYsIGJpbmFy
eV9uYW1lLCB0ZXN0KToKKyAgICAgICAgY29tbWFuZCA9IFtzZWxmLl9wb3J0Ll9idWlsZF9wYXRo
KGJpbmFyeV9uYW1lKSwgJy0tZ3Rlc3RfZmlsdGVyPXt9Jy5mb3JtYXQodGVzdCldCisgICAgICAg
IGlmIHNlbGYuX3BvcnQuZ2V0X29wdGlvbigndXNlX2dwdV9wcm9jZXNzJyk6CisgICAgICAgICAg
ICBjb21tYW5kLmFwcGVuZCgnLS1ncHUtcHJvY2VzcycpCisgICAgICAgIGVsaWYgc2VsZi5fcG9y
dC5nZXRfb3B0aW9uKCd1c2VfZ3B1X3Byb2Nlc3MnKSBpcyBGYWxzZToKKyAgICAgICAgICAgIGNv
bW1hbmQuYXBwZW5kKCctLW5vLWdwdS1wcm9jZXNzJykKKwogICAgICAgICBzZXJ2ZXJfcHJvY2Vz
cyA9IFNlcnZlclByb2Nlc3MoCiAgICAgICAgICAgICBzZWxmLl9wb3J0LCBiaW5hcnlfbmFtZSwK
LSAgICAgICAgICAgIFJ1bm5lci5jb21tYW5kX2Zvcl9wb3J0KHNlbGYuX3BvcnQsIFtzZWxmLl9w
b3J0Ll9idWlsZF9wYXRoKGJpbmFyeV9uYW1lKSwgJy0tZ3Rlc3RfZmlsdGVyPXt9Jy5mb3JtYXQo
dGVzdCldKSwKKyAgICAgICAgICAgIFJ1bm5lci5jb21tYW5kX2Zvcl9wb3J0KHNlbGYuX3BvcnQs
IGNvbW1hbmQpLAogICAgICAgICAgICAgZW52PXNlbGYuX3BvcnQuZW52aXJvbm1lbnRfZm9yX2Fw
aV90ZXN0cygpKQogCiAgICAgICAgIHN0YXR1cyA9IFJ1bm5lci5TVEFUVVNfUlVOTklORwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvbWFpbklPUy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCShyZXZpc2lvbiAyNjk0OTApCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL2lvcy9tYWluSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM5LDYgKzM5LDI1
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBpZiAoIWFyZ3VtZW50RG9t
YWluKQogICAgICAgICBhcmd1bWVudERvbWFpbiA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxv
Y10gaW5pdF07CiAKKyAgICBOU051bWJlciogZ3B1UHJvY2VzcyA9IG5pbDsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGFyZ2M7ICsraSkgeworICAgICAgICBpZiAoIXN0cmNtcCgiLS1ncHUtcHJv
Y2VzcyIsIGFyZ3ZbaV0pKQorICAgICAgICAgICAgZ3B1UHJvY2VzcyA9IEBZRVM7CisgICAgICAg
IGlmICghc3RyY21wKCItLW5vLWdwdS1wcm9jZXNzIiwgYXJndltpXSkpCisgICAgICAgICAgICBn
cHVQcm9jZXNzID0gQE5POworICAgIH0KKyAgICBpZiAoZ3B1UHJvY2VzcykgeworICAgICAgICBO
U0RpY3Rpb25hcnkgKmdwdVByb2Nlc3NEaWN0ID0gQHsKKyAgICAgICAgICAgIEAiV2ViS2l0Mi5D
YXB0dXJlQXVkaW9JbkdQVVByb2Nlc3NFbmFibGVkIjogZ3B1UHJvY2VzcywKKyAgICAgICAgICAg
IEAiV2ViS2l0Mi5DYXB0dXJlVmlkZW9JbkdQVVByb2Nlc3NFbmFibGVkIjogZ3B1UHJvY2VzcywK
KyAgICAgICAgICAgIEAiV2ViS2l0Mi5Vc2VHUFVQcm9jZXNzRm9yQ2FudmFzUmVuZGVyaW5nRW5h
YmxlZCI6IGdwdVByb2Nlc3MsCisgICAgICAgICAgICBAIldlYktpdDIuVXNlR1BVUHJvY2Vzc0Zv
ckRPTVJlbmRlcmluZ0VuYWJsZWQiOiBncHVQcm9jZXNzLAorICAgICAgICAgICAgQCJXZWJLaXQy
LlVzZUdQVVByb2Nlc3NGb3JNZWRpYUVuYWJsZWQiOiBncHVQcm9jZXNzLAorICAgICAgICAgICAg
QCJXZWJLaXQyLlVzZUdQVVByb2Nlc3NGb3JXZWJHTEVuYWJsZWQiOiBncHVQcm9jZXNzLAorICAg
ICAgICB9OworICAgICAgICBbYXJndW1lbnREb21haW4gYWRkRW50cmllc0Zyb21EaWN0aW9uYXJ5
OmdwdVByb2Nlc3NEaWN0XTsKKyAgICB9CisKICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBzZXRWb2xhdGlsZURvbWFpbjphcmd1bWVudERvbWFpbiBmb3JOYW1lOk5T
QXJndW1lbnREb21haW5dOwogCiAjaWZuZGVmIEJVSUxESU5HX1RFU1RfV1RGCkluZGV4OiBUb29s
cy9UZXN0V2ViS2l0QVBJL21hYy9tYWluTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL21haW5NYWMubW0JKHJldmlzaW9uIDI2OTQ5MCkKKysrIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvbWFjL21haW5NYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTAsOCArNTAsMjggQEAgaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgICAgICBAIk5TT3ZlcmxheVNjcm9sbGVy
c0VuYWJsZWQiOiBATk8sCiAgICAgICAgIEAiQXBwbGVTaG93U2Nyb2xsQmFycyI6IEAiQWx3YXlz
IiwKICAgICB9OwotCiAgICAgW2FyZ3VtZW50RG9tYWluIGFkZEVudHJpZXNGcm9tRGljdGlvbmFy
eTpkaWN0XTsKKworICAgIE5TTnVtYmVyKiBncHVQcm9jZXNzID0gbmlsOworICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgYXJnYzsgKytpKSB7CisgICAgICAgIGlmICghc3RyY21wKCItLWdwdS1wcm9j
ZXNzIiwgYXJndltpXSkpCisgICAgICAgICAgICBncHVQcm9jZXNzID0gQFlFUzsKKyAgICAgICAg
aWYgKCFzdHJjbXAoIi0tbm8tZ3B1LXByb2Nlc3MiLCBhcmd2W2ldKSkKKyAgICAgICAgICAgIGdw
dVByb2Nlc3MgPSBATk87CisgICAgfQorICAgIGlmIChncHVQcm9jZXNzKSB7CisgICAgICAgIE5T
RGljdGlvbmFyeSAqZ3B1UHJvY2Vzc0RpY3QgPSBAeworICAgICAgICAgICAgQCJXZWJLaXQyLkNh
cHR1cmVBdWRpb0luR1BVUHJvY2Vzc0VuYWJsZWQiOiBncHVQcm9jZXNzLAorICAgICAgICAgICAg
QCJXZWJLaXQyLkNhcHR1cmVWaWRlb0luR1BVUHJvY2Vzc0VuYWJsZWQiOiBncHVQcm9jZXNzLAor
ICAgICAgICAgICAgQCJXZWJLaXQyLlVzZUdQVVByb2Nlc3NGb3JDYW52YXNSZW5kZXJpbmdFbmFi
bGVkIjogZ3B1UHJvY2VzcywKKyAgICAgICAgICAgIEAiV2ViS2l0Mi5Vc2VHUFVQcm9jZXNzRm9y
RE9NUmVuZGVyaW5nRW5hYmxlZCI6IGdwdVByb2Nlc3MsCisgICAgICAgICAgICBAIldlYktpdDIu
VXNlR1BVUHJvY2Vzc0Zvck1lZGlhRW5hYmxlZCI6IGdwdVByb2Nlc3MsCisgICAgICAgICAgICBA
IldlYktpdDIuVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCI6IGdwdVByb2Nlc3MsCisgICAg
ICAgIH07CisgICAgICAgIFthcmd1bWVudERvbWFpbiBhZGRFbnRyaWVzRnJvbURpY3Rpb25hcnk6
Z3B1UHJvY2Vzc0RpY3RdOworICAgIH0KKworICAgIAogICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHNldFZvbGF0aWxlRG9tYWluOmFyZ3VtZW50RG9tYWluIGZvck5h
bWU6TlNBcmd1bWVudERvbWFpbl07CiAKICNpZm5kZWYgQlVJTERJTkdfVEVTVF9XVEYK
</data>
<flag name="review"
          id="430100"
          type_id="1"
          status="?"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>