<?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>240461</bug_id>
          
          <creation_ts>2022-05-16 09:46:05 -0700</creation_ts>
          <short_desc>[Commit-Queue] Forbid ChangeLog modification</short_desc>
          <delta_ts>2022-05-19 14:13:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=237368</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=240402</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=239413</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=240256</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=240684</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1869280</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-16 09:46:05 -0700</bug_when>
    <thetext>Commit-Queue should only allow commit messages and forbid ChangeLog modification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869281</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-16 09:46:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/93351783&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869286</commentid>
    <comment_count>2</comment_count>
      <attachid>459431</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-16 09:51:29 -0700</bug_when>
    <thetext>Created attachment 459431
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869311</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 10:39:09 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869329</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 11:05:55 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869333</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 11:14:24 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869359</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 12:03:28 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869364</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 12:08:02 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869368</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-16 12:11:14 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459431</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869379</commentid>
    <comment_count>9</comment_count>
      <attachid>459449</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-16 12:42:44 -0700</bug_when>
    <thetext>Created attachment 459449
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869488</commentid>
    <comment_count>10</comment_count>
      <attachid>459449</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-05-16 16:33:58 -0700</bug_when>
    <thetext>Comment on attachment 459449
Patch

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

&gt; Tools/CISupport/ews-build/config.json:338
&gt; +      &quot;workernames&quot;: [&quot;webkit-cq-01&quot;, &quot;webkit-cq-02&quot;, &quot;webkit-cq-03&quot;, &quot;ews151&quot;]

seems like this is for debugging

&gt; Tools/CISupport/ews-build/factories.py:309
&gt; +        self.addStep(ShowCommitMessage())

why do we need ShowCommitMessage?

&gt; Tools/CISupport/ews-build/steps.py:882
&gt; +        if not patch:

Should remove this fallback. If the patch is not found, there is something seriously wrong, we shouldn&apos;t automatically try to fix that. Better to explicitly fail.

&gt; Tools/CISupport/ews-build/steps.py:893
&gt; +    def hideStepIf(self, results, step):

Nit: should move this next to showStepIf

&gt; Tools/CISupport/ews-build/steps.py:898
&gt; +            return {&apos;step&apos;: &quot;Skipping creating commitsince patch_id isn&apos;t provided&quot;}

Better not to have custom skipped message, it wouldn&apos;t be displayed anyways based on hideStepIf

&gt; Tools/CISupport/ews-build/steps.py:900
&gt; +            return {&apos;step&apos;: &apos;git am failed to apply patch to trunk&apos;}

Nit: &quot;git am&quot; =&gt; &quot;git&quot;, am is technial details, better to tell user high-level and easy to understand thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869639</commentid>
    <comment_count>11</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-05-17 04:54:19 -0700</bug_when>
    <thetext>rs=me with these changes and unit-test fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869665</commentid>
    <comment_count>12</comment_count>
      <attachid>459495</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 06:57:27 -0700</bug_when>
    <thetext>Created attachment 459495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869667</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-17 07:03:58 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869669</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-17 07:07:12 -0700</bug_when>
    <thetext>Unable to find any modified ChangeLog in Attachment 459495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869670</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 07:08:16 -0700</bug_when>
    <thetext>https://ews-build.webkit-uat.org/#/builders/26/builds/2095 shows that we are adding the author to the commit message correctly</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869673</commentid>
    <comment_count>16</comment_count>
      <attachid>459496</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 07:42:52 -0700</bug_when>
    <thetext>Created attachment 459496
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869692</commentid>
    <comment_count>17</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2022-05-17 08:32:33 -0700</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869693</commentid>
    <comment_count>18</comment_count>
      <attachid>459500</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 08:37:13 -0700</bug_when>
    <thetext>Created attachment 459500
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869701</commentid>
    <comment_count>19</comment_count>
      <attachid>459503</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 09:18:07 -0700</bug_when>
    <thetext>Created attachment 459503
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869714</commentid>
    <comment_count>20</comment_count>
      <attachid>459505</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 09:49:35 -0700</bug_when>
    <thetext>Created attachment 459505
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869726</commentid>
    <comment_count>21</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-17 10:36:36 -0700</bug_when>
    <thetext>Committed r294327 (250647@main): &lt;https://commits.webkit.org/250647@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459505.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869738</commentid>
    <comment_count>22</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 11:01:21 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869739</commentid>
    <comment_count>23</comment_count>
      <attachid>459508</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-17 11:01:22 -0700</bug_when>
    <thetext>Created attachment 459508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869776</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-17 13:12:01 -0700</bug_when>
    <thetext>Committed r294336 (250655@main): &lt;https://commits.webkit.org/250655@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459508.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870051</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-18 10:08:50 -0700</bug_when>
    <thetext>Re-opening for pull request https://github.com/WebKit/WebKit/pull/732</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870054</commentid>
    <comment_count>26</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2022-05-18 10:17:41 -0700</bug_when>
    <thetext>Pull request: https://github.com/apple/WebKit/pull/7</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1870059</commentid>
    <comment_count>27</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-18 10:27:16 -0700</bug_when>
    <thetext>Committed r294403 (250697@main): &lt;https://commits.webkit.org/250697@main&gt;

Reviewed commits have been landed. Closing PR #732 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459431</attachid>
            <date>2022-05-16 09:51:29 -0700</date>
            <delta_ts>2022-05-16 12:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240461-20220516095128.patch</filename>
            <type>text/plain</type>
            <size>7584</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSAyYmFkNGZlMzBhODRlZGRlZWVkN2U2NzUzZGRjNGQwOGM1NzQxNTY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDE2IE1heSAyMDIyIDA5OjQ5OjA4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly9wcm9ibGVtLzkzMzUxNzgz
PgoKV0lQCgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9jb25maWcuanNvbjoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmll
cy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6CiogVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKToKKF9faW5pdF9fKToKKGRvU3RlcElmKToK
KF9nZXRfcGF0Y2gpOgoocnVuKToKKGhpZGVTdGVwSWYpOgooZ2V0UmVzdWx0U3VtbWFyeSk6CihS
ZXNldEdpdFN2bi5nZXRSZXN1bHRTdW1tYXJ5KToKKFNob3dDb21taXRNZXNzYWdlKToKKFNob3dD
b21taXRNZXNzYWdlLl9faW5pdF9fKToKKFNob3dDb21taXRNZXNzYWdlLmdldFJlc3VsdFN1bW1h
cnkpOgotLS0KIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24gIHwgIDIgKy0K
IFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5IHwgMTkgKysrKystLQogVG9v
bHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSAgICAgfCA2OSArKysrKysrKysrKysrKysr
KysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9u
cygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24g
Yi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2NvbmZpZy5qc29uCmluZGV4IDljOWUyZWI0YWI5
NS4uMzgxMTI0YmExZDlmIDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2Nv
bmZpZy5qc29uCisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24KQEAg
LTMzNSw3ICszMzUsNyBAQAogICAgICAgIm5hbWUiOiAiQ29tbWl0LVF1ZXVlIiwgInNob3J0bmFt
ZSI6ICJjb21taXQiLCAiaWNvbiI6ICJidWlsZEFuZFRlc3QiLAogICAgICAgImZhY3RvcnkiOiAi
Q29tbWl0UXVldWVGYWN0b3J5IiwgInBsYXRmb3JtIjogIm1hYy1iaWdzdXIiLAogICAgICAgImNv
bmZpZ3VyYXRpb24iOiAicmVsZWFzZSIsICJhcmNoaXRlY3R1cmVzIjogWyJ4ODZfNjQiXSwKLSAg
ICAgICJ3b3JrZXJuYW1lcyI6IFsid2Via2l0LWNxLTAxIiwgIndlYmtpdC1jcS0wMiIsICJ3ZWJr
aXQtY3EtMDMiXQorICAgICAgIndvcmtlcm5hbWVzIjogWyJ3ZWJraXQtY3EtMDEiLCAid2Via2l0
LWNxLTAyIiwgIndlYmtpdC1jcS0wMyIsICJld3MxNTEiXQogICAgIH0sCiAgICAgewogICAgICAg
Im5hbWUiOiAiTWVyZ2UtUXVldWUiLCAic2hvcnRuYW1lIjogIm1lcmdlIiwgImljb24iOiAiYnVp
bGRBbmRUZXN0IiwKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9y
aWVzLnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkKaW5kZXggYjY3
ZTVjNTNkMTA0Li4xY2JlOWZhNGFhNTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvZmFjdG9yaWVzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9y
aWVzLnB5CkBAIC0yNCw3ICsyNCw3IEBACiBmcm9tIGJ1aWxkYm90LnByb2Nlc3MgaW1wb3J0IGZh
Y3RvcnkKIGZyb20gYnVpbGRib3Quc3RlcHMgaW1wb3J0IHRyaWdnZXIKIAotZnJvbSBzdGVwcyBp
bXBvcnQgKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3Nh
Z2UsIEFkZFJldmlld2VyVG9DaGFuZ2VMb2csIEFwcGx5UGF0Y2gsIEFwcGx5V2F0Y2hMaXN0LCBD
YW5vbmljYWxpemUsCitmcm9tIHN0ZXBzIGltcG9ydCAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdl
LCBBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NoYW5nZUxvZywgQXBw
bHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIENhbm9uaWNhbGl6ZSwgQ29tbWl0UGF0Y2gsCiAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tPdXRQdWxsUmVxdWVzdCwgQ2hlY2tPdXRTb3VyY2UsIENoZWNr
T3V0U3BlY2lmaWNSZXZpc2lvbiwgQ2hlY2tDaGFuZ2VSZWxldmFuY2UsCiAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tQYXRjaFN0YXR1c09uRVdTUXVldWVzLCBDaGVja1N0eWxlLCBDbGVhbkdpdFJl
cG8sIENvbXBpbGVKU0MsIENvbXBpbGVXZWJLaXQsIENvbmZpZ3VyZUJ1aWxkLCBDcmVhdGVMb2Nh
bEdJVENvbW1pdCwKICAgICAgICAgICAgICAgICAgICBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRXh0
cmFjdEJ1aWx0UHJvZHVjdCwgRmV0Y2hCcmFuY2hlcywgRmluZE1vZGlmaWVkQ2hhbmdlTG9ncywg
RmluZE1vZGlmaWVkTGF5b3V0VGVzdHMsIEdpdFN2bkZldGNoLApAQCAtMzQsNyArMzQsNyBAQCBm
cm9tIHN0ZXBzIGltcG9ydCAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRv
Q29tbWl0TWVzc2FnZSwgQWRkUmV2aQogICAgICAgICAgICAgICAgICAgIFJ1bldlYktpdFB5UHl0
aG9uM1Rlc3RzLCBSdW5XZWJLaXRUZXN0cywgUnVuV2ViS2l0VGVzdHNSZWRUcmVlLCBSdW5XZWJL
aXRUZXN0c0luU3RyZXNzTW9kZSwgUnVuV2ViS2l0VGVzdHNJblN0cmVzc0d1YXJkbWFsbG9jTW9k
ZSwKICAgICAgICAgICAgICAgICAgICBTZXRCdWlsZFN1bW1hcnksIFNob3dJZGVudGlmaWVyLCBU
cmlnZ2VyQ3Jhc2hMb2dTdWJtaXNzaW9uLCBVcGRhdGVXb3JraW5nRGlyZWN0b3J5LAogICAgICAg
ICAgICAgICAgICAgIFZhbGlkYXRlQ29tbWl0TWVzc2FnZSwgVmFsaWRhdGVDaGFuZ2UsIFZhbGlk
YXRlQ2hhbmdlTG9nQW5kUmV2aWV3ZXIsIFZhbGlkYXRlQ29tbWl0dGVyQW5kUmV2aWV3ZXIsIFdh
aXRGb3JDcmFzaENvbGxlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgSW5zdGFsbEJ1aWx0UHJv
ZHVjdCwgVmVyaWZ5R2l0SHViSW50ZWdyaXR5LCBWYWxpZGF0ZVNxdWFzaGVkKQorICAgICAgICAg
ICAgICAgICAgIEluc3RhbGxCdWlsdFByb2R1Y3QsIFZlcmlmeUdpdEh1YkludGVncml0eSwgVmFs
aWRhdGVTcXVhc2hlZCwgU2hvd0NvbW1pdE1lc3NhZ2UpCiAKIAogY2xhc3MgRmFjdG9yeShmYWN0
b3J5LkJ1aWxkRmFjdG9yeSk6CkBAIC0yOTgsOSArMjk4LDE4IEBAIGNsYXNzIENvbW1pdFF1ZXVl
RmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAgICAgICAgIHNlbGYuYWRkU3RlcChTaG93
SWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmVyaWZ5R2l0SHViSW50ZWdyaXR5
KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCkpCi0gICAg
ICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChWYWxp
ZGF0ZUNoYW5nZUxvZ0FuZFJldmlld2VyKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChGaW5kTW9k
aWZpZWRDaGFuZ2VMb2dzKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChDb21taXRQYXRjaCgpKQor
CisgICAgICAgIHNlbGYuYWRkU3RlcChTaG93Q29tbWl0TWVzc2FnZSgpKQorICAgICAgICBzZWxm
LmFkZFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoU2hvd0Nv
bW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKEFkZFJldmlld2VyVG9Db21taXRN
ZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChTaG93Q29tbWl0TWVzc2FnZSgpKQorICAg
ICAgICBzZWxmLmFkZFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCisgICAgICAgIHNl
bGYuYWRkU3RlcChTaG93Q29tbWl0TWVzc2FnZSgpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoVmFs
aWRhdGVDb21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChTaG93Q29tbWl0TWVz
c2FnZSgpKQorCiAgICAgICAgIHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkpCiAgICAg
ICAgIHNlbGYuYWRkU3RlcChDb21waWxlV2ViS2l0KHNraXBVcGxvYWQ9VHJ1ZSkpCiAgICAgICAg
IHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkpCmRpZmYgLS1naXQgYS9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVw
cy5weQppbmRleCAzNDJmY2E5ZmMwYWIuLjIyMGIzNmJhYTMyNCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1
aWxkL3N0ZXBzLnB5CkBAIC04NDUsNiArODQ1LDU4IEBAIGNsYXNzIEFwcGx5UGF0Y2goc2hlbGwu
U2hlbGxDb21tYW5kLCBDb21wb3NpdGVTdGVwTWl4aW4sIFNoZWxsTWl4aW4pOgogICAgICAgICBy
ZXR1cm4gcmMKIAogCitjbGFzcyBDb21taXRQYXRjaChzdGVwcy5TaGVsbFNlcXVlbmNlLCBDb21w
b3NpdGVTdGVwTWl4aW4sIFNoZWxsTWl4aW4pOgorICAgIG5hbWUgPSAnY29tbWl0LXBhdGNoJwor
ICAgIGRlc2NyaXB0aW9uID0gWydjb21taXQtcGF0Y2gnXQorICAgIGRlc2NyaXB0aW9uRG9uZSA9
IFsnQ3JlYXRlZCBjb21taXQgZnJvbSBwYXRjaCddCisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUK
KyAgICBGSUxURVJfQlJBTkNIX1BST0dSQU0gPSAnJydpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKwor
bGluZXMgPSBbbCBmb3IgbCBpbiBzeXMuc3RkaW5dCitmb3IgcyBpbiByZS5zcGxpdChyJyAoTmVl
ZCB0aGUgYnVnIFVSTCBcKE9PUFMhXCkuKXwoXFMrOlwvXC9cUyspJywgbGluZXNbMF0ucnN0cmlw
KCkpOgorICAgIGlmIHMgYW5kIHMgIT0gJyAnOgorICAgICAgICBwcmludChzKQorZm9yIGwgaW4g
bGluZXNbMTpdOgorICAgIHN5cy5zdGRvdXQud3JpdGUobCkKKycnJworCisgICAgZGVmIF9faW5p
dF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoQ29tbWl0UGF0Y2gsIHNlbGYpLl9f
aW5pdF9fKHRpbWVvdXQ9MTAgKiA2MCwgbG9nRW52aXJvbj1GYWxzZSwgKiprd2FyZ3MpCisKKyAg
ICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6CisgICAgICAgIHJldHVybiBzZWxmLmdldFByb3Bl
cnR5KCdwYXRjaF9pZCcsIEZhbHNlKQorCisgICAgZGVmIF9nZXRfcGF0Y2goc2VsZik6CisgICAg
ICAgIHNvdXJjZXN0YW1wID0gc2VsZi5idWlsZC5nZXRTb3VyY2VTdGFtcChzZWxmLmdldFByb3Bl
cnR5KCdjb2RlYmFzZScsICcnKSkKKyAgICAgICAgaWYgbm90IHNvdXJjZXN0YW1wIG9yIG5vdCBz
b3VyY2VzdGFtcC5wYXRjaDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVy
biBzb3VyY2VzdGFtcC5wYXRjaFsxXQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgY29t
bWFuZHMgPSBbXQorICAgICAgICBpZiBub3QgcGF0Y2g6CisgICAgICAgICAgICBjb21tYW5kICs9
IFsnY3VybCcsICctTCcsICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9p
ZD17fScuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJycpKSwgJy1vJywgJy5i
dWlsZGJvdC1kaWZmJ10KKyAgICAgICAgY29tbWFuZCArPSBbCisgICAgICAgICAgICAnZ2l0Jywg
J2FtJywgJy5idWlsZGJvdC1kaWZmJywKKyAgICAgICAgICAgICdnaXQnLCAnZmlsdGVyLWJyYW5j
aCcsICctZicsICctLW1zZy1maWx0ZXInLCAncHl0aG9uMyAtYyAie30iJy5mb3JtYXQoc2VsZi5G
SUxURVJfQlJBTkNIX1BST0dSQU0pLCAnSEVBRC4uLkhFQUR+MScsCisgICAgICAgIF0KKyAgICAg
ICAgZm9yIGNvbW1hbmQgaW4gY29tbWFuZHM6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFw
cGVuZCh1dGlsLlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFtZT0nc3RkaW8nLCBoYWx0
T25GYWlsdXJlPVRydWUpKQorCisgICAgICAgIHJldHVybiBzdXBlcihDb21taXRQYXRjaCwgc2Vs
ZikucnVuKCkKKworICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgorICAg
ICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkgb3IgKHJlc3VsdHMgPT0gU1VDQ0VT
UyBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgnc2Vuc2l0aXZlJywgRmFsc2UpKQorCisgICAgZGVmIGdl
dFJlc3VsdFN1bW1hcnkoc2VsZik6CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBTS0lQUEVE
OgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICJTa2lwcGluZyBjcmVhdGluZyBjb21taXRz
aW5jZSBwYXRjaF9pZCBpc24ndCBwcm92aWRlZCJ9CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyAh
PSBTVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdnaXQgYW0gZmFpbGVkIHRv
IGFwcGx5IHBhdGNoIHRvIHRydW5rJ30KKyAgICAgICAgcmV0dXJuIHN1cGVyKENvbW1pdFBhdGNo
LCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworCiBjbGFzcyBDaGVja091dFB1bGxSZXF1ZXN0
KHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5hbWUgPSAnY2hlY2tvdXQt
cHVsbC1yZXF1ZXN0JwogICAgIGRlc2NyaXB0aW9uID0gWydjaGVja2luZy1vdXQtcHVsbC1yZXF1
ZXN0J10KQEAgLTUyNDYsMyArNTI5OCwyMCBAQCBjbGFzcyBSZXNldEdpdFN2bihzaGVsbC5TaGVs
bENvbW1hbmQpOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToKICAgICAgICAg
ICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIHJlbW92ZSBnaXQtc3ZuIHJlZmVyZW5jZXMn
fQogICAgICAgICByZXR1cm4gc3VwZXIoR2l0U3ZuRmV0Y2gsIHNlbGYpLmdldFJlc3VsdFN1bW1h
cnkoKQorCisKK2NsYXNzIFNob3dDb21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCk6Cisg
ICAgbmFtZSA9ICdzaG93LWNvbW1pdC1tZXNzYWdlJworICAgIGhhbHRPbkZhaWx1cmUgPSBGYWxz
ZQorICAgIGZsdW5rT25GYWlsdXJlID0gRmFsc2UKKyAgICBjb21tYW5kID0gWydybScsICctcmYn
LCAnLmdpdC9zdm4nXQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAg
ICAgc3VwZXIoUmVzZXRHaXRTdm4sIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRp
bWVvdXQ9MzAwLCAqKmt3YXJncykKKworICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgor
ICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gU1VDQ0VTUzoKKyAgICAgICAgICAgIHJldHVybiB7
J3N0ZXAnOiAnUmVtb3ZlZCBnaXQtc3ZuIHJlZmVyZW5jZXMnfQorICAgICAgICBpZiBzZWxmLnJl
c3VsdHMgPT0gRkFJTFVSRToKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRv
IHJlbW92ZSBnaXQtc3ZuIHJlZmVyZW5jZXMnfQorICAgICAgICByZXR1cm4gc3VwZXIoR2l0U3Zu
RmV0Y2gsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQotLSAKMi4zMi4wIChBcHBsZSBHaXQtMTMy
KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459449</attachid>
            <date>2022-05-16 12:42:44 -0700</date>
            <delta_ts>2022-05-17 06:57:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240461-20220516124244.patch</filename>
            <type>text/plain</type>
            <size>15530</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBiYjY0OWRkMzNmZDhjMzkxZDE0ZDk3NTIwYjdlMWJiOTY5YmQ5NGNlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDE2IE1heSAyMDIyIDEyOjQwOjQzIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV0lQCgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
Y29uZmlnLmpzb246CiogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHk6CihD
b21taXRRdWV1ZUZhY3RvcnkuX19pbml0X18pOgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
c3RlcHMucHk6CihDb21taXRQYXRjaCk6CihfX2luaXRfXyk6Cihkb1N0ZXBJZik6CihfZ2V0X3Bh
dGNoKToKKHJ1bik6CihoaWRlU3RlcElmKToKKGdldFJlc3VsdFN1bW1hcnkpOgooUHVzaENvbW1p
dFRvV2ViS2l0UmVwby5ldmFsdWF0ZUNvbW1hbmQpOgooVmFsaWRhdGVTcXVhc2hlZC5zdGFydCk6
CihWYWxpZGF0ZVNxdWFzaGVkLmV2YWx1YXRlQ29tbWFuZCk6CihBZGRSZXZpZXdlclRvQ29tbWl0
TWVzc2FnZS5zdGFydCk6CihBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZS5kb1N0ZXBJZik6CihB
ZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2Uuc3RhcnQpOgooQWRkQXV0aG9yVG9Db21taXRNZXNzYWdl
LmRvU3RlcElmKToKKFZhbGlkYXRlQ29tbWl0TWVzc2FnZS5ydW4pOgooVmFsaWRhdGVDb21taXRN
ZXNzYWdlLmdldFJlc3VsdFN1bW1hcnkpOgooQ2Fub25pY2FsaXplLnJ1bik6CihSZXNldEdpdFN2
bi5nZXRSZXN1bHRTdW1tYXJ5KToKKFNob3dDb21taXRNZXNzYWdlKToKKFNob3dDb21taXRNZXNz
YWdlLl9faW5pdF9fKToKKFZhbGlkYXRlU3F1YXNoZWQuZG9TdGVwSWYpOiBEZWxldGVkLgooVmFs
aWRhdGVTcXVhc2hlZC5oaWRlU3RlcElmKTogRGVsZXRlZC4KKFZhbGlkYXRlQ29tbWl0TWVzc2Fn
ZS5kb1N0ZXBJZik6IERlbGV0ZWQuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuaGlkZVN0ZXBJZik6
IERlbGV0ZWQuCi0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9jb25maWcuanNvbiAgfCAg
IDIgKy0KIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5IHwgIDI4ICsrKy0t
LQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSAgICAgfCAxMjUgKysrKysrKysr
KysrKysrKysrLS0tLS0tLQogMyBmaWxlcyBjaGFuZ2VkLCAxMDcgaW5zZXJ0aW9ucygrKSwgNDgg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9jb25m
aWcuanNvbiBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvY29uZmlnLmpzb24KaW5kZXggOWM5
ZTJlYjRhYjk1Li4zODExMjRiYTFkOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvY29uZmlnLmpzb24KKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9jb25maWcu
anNvbgpAQCAtMzM1LDcgKzMzNSw3IEBACiAgICAgICAibmFtZSI6ICJDb21taXQtUXVldWUiLCAi
c2hvcnRuYW1lIjogImNvbW1pdCIsICJpY29uIjogImJ1aWxkQW5kVGVzdCIsCiAgICAgICAiZmFj
dG9yeSI6ICJDb21taXRRdWV1ZUZhY3RvcnkiLCAicGxhdGZvcm0iOiAibWFjLWJpZ3N1ciIsCiAg
ICAgICAiY29uZmlndXJhdGlvbiI6ICJyZWxlYXNlIiwgImFyY2hpdGVjdHVyZXMiOiBbIng4Nl82
NCJdLAotICAgICAgIndvcmtlcm5hbWVzIjogWyJ3ZWJraXQtY3EtMDEiLCAid2Via2l0LWNxLTAy
IiwgIndlYmtpdC1jcS0wMyJdCisgICAgICAid29ya2VybmFtZXMiOiBbIndlYmtpdC1jcS0wMSIs
ICJ3ZWJraXQtY3EtMDIiLCAid2Via2l0LWNxLTAzIiwgImV3czE1MSJdCiAgICAgfSwKICAgICB7
CiAgICAgICAibmFtZSI6ICJNZXJnZS1RdWV1ZSIsICJzaG9ydG5hbWUiOiAibWVyZ2UiLCAiaWNv
biI6ICJidWlsZEFuZFRlc3QiLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9mYWN0b3JpZXMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQpp
bmRleCBiNjdlNWM1M2QxMDQuLjdhNmM3NjljOGQ4YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBw
b3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9mYWN0b3JpZXMucHkKQEAgLTI0LDcgKzI0LDcgQEAKIGZyb20gYnVpbGRib3QucHJvY2VzcyBp
bXBvcnQgZmFjdG9yeQogZnJvbSBidWlsZGJvdC5zdGVwcyBpbXBvcnQgdHJpZ2dlcgogCi1mcm9t
IHN0ZXBzIGltcG9ydCAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ29t
bWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NoYW5nZUxvZywgQXBwbHlQYXRjaCwgQXBwbHlXYXRj
aExpc3QsIENhbm9uaWNhbGl6ZSwKK2Zyb20gc3RlcHMgaW1wb3J0IChBZGRBdXRob3JUb0NvbW1p
dE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ2hhbmdl
TG9nLCBBcHBseVBhdGNoLCBBcHBseVdhdGNoTGlzdCwgQ2Fub25pY2FsaXplLCBDb21taXRQYXRj
aCwKICAgICAgICAgICAgICAgICAgICBDaGVja091dFB1bGxSZXF1ZXN0LCBDaGVja091dFNvdXJj
ZSwgQ2hlY2tPdXRTcGVjaWZpY1JldmlzaW9uLCBDaGVja0NoYW5nZVJlbGV2YW5jZSwKICAgICAg
ICAgICAgICAgICAgICBDaGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsIENs
ZWFuR2l0UmVwbywgQ29tcGlsZUpTQywgQ29tcGlsZVdlYktpdCwgQ29uZmlndXJlQnVpbGQsIENy
ZWF0ZUxvY2FsR0lUQ29tbWl0LAogICAgICAgICAgICAgICAgICAgIERvd25sb2FkQnVpbHRQcm9k
dWN0LCBFeHRyYWN0QnVpbHRQcm9kdWN0LCBGZXRjaEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFu
Z2VMb2dzLCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cywgR2l0U3ZuRmV0Y2gsCkBAIC0zNCw3ICsz
NCw3IEBAIGZyb20gc3RlcHMgaW1wb3J0IChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UsIEFkZFJl
dmlld2VyVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpCiAgICAgICAgICAgICAgICAgICAgUnVuV2Vi
S2l0UHlQeXRob24zVGVzdHMsIFJ1bldlYktpdFRlc3RzLCBSdW5XZWJLaXRUZXN0c1JlZFRyZWUs
IFJ1bldlYktpdFRlc3RzSW5TdHJlc3NNb2RlLCBSdW5XZWJLaXRUZXN0c0luU3RyZXNzR3VhcmRt
YWxsb2NNb2RlLAogICAgICAgICAgICAgICAgICAgIFNldEJ1aWxkU3VtbWFyeSwgU2hvd0lkZW50
aWZpZXIsIFRyaWdnZXJDcmFzaExvZ1N1Ym1pc3Npb24sIFVwZGF0ZVdvcmtpbmdEaXJlY3Rvcnks
CiAgICAgICAgICAgICAgICAgICAgVmFsaWRhdGVDb21taXRNZXNzYWdlLCBWYWxpZGF0ZUNoYW5n
ZSwgVmFsaWRhdGVDaGFuZ2VMb2dBbmRSZXZpZXdlciwgVmFsaWRhdGVDb21taXR0ZXJBbmRSZXZp
ZXdlciwgV2FpdEZvckNyYXNoQ29sbGVjdGlvbiwKLSAgICAgICAgICAgICAgICAgICBJbnN0YWxs
QnVpbHRQcm9kdWN0LCBWZXJpZnlHaXRIdWJJbnRlZ3JpdHksIFZhbGlkYXRlU3F1YXNoZWQpCisg
ICAgICAgICAgICAgICAgICAgSW5zdGFsbEJ1aWx0UHJvZHVjdCwgVmVyaWZ5R2l0SHViSW50ZWdy
aXR5LCBWYWxpZGF0ZVNxdWFzaGVkLCBTaG93Q29tbWl0TWVzc2FnZSkKIAogCiBjbGFzcyBGYWN0
b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKQEAgLTI5MiwxNSArMjkyLDIyIEBAIGNsYXNzIENv
bW1pdFF1ZXVlRmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAgICAgICAgIHNlbGYuYWRk
U3RlcChWYWxpZGF0ZUNoYW5nZSh2ZXJpZnljcXBsdXM9VHJ1ZSkpCiAgICAgICAgIHNlbGYuYWRk
U3RlcChWYWxpZGF0ZUNvbW1pdHRlckFuZFJldmlld2VyKCkpCiAgICAgICAgIHNlbGYuYWRkU3Rl
cChQcmludENvbmZpZ3VyYXRpb24oKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKENsZWFuR2l0UmVw
byhkZWZhdWx0X2JyYW5jaD0nbWFzdGVyJykpCi0gICAgICAgIHNlbGYuYWRkU3RlcChDaGVja091
dFNvdXJjZShyZXBvdXJsPSdodHRwczovL2dpdC53ZWJraXQub3JnL2dpdC9XZWJLaXQtaHR0cHMn
KSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKENsZWFuR2l0UmVwbygpKQorICAgICAgICBzZWxmLmFk
ZFN0ZXAoQ2hlY2tPdXRTb3VyY2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKEdpdFN2bkZldGNo
KCkpICAjIEZJWE1FOiBSZW1vdmUgd2hlbiBtaWdyYXRpbmcgdG8gcHVyZSBnaXQKICAgICAgICAg
c2VsZi5hZGRTdGVwKEZldGNoQnJhbmNoZXMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dJ
ZGVudGlmaWVyKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChWZXJpZnlHaXRIdWJJbnRlZ3JpdHko
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFVwZGF0ZVdvcmtpbmdEaXJlY3RvcnkoKSkKLSAgICAg
ICAgc2VsZi5hZGRTdGVwKEFwcGx5UGF0Y2goKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlk
YXRlQ2hhbmdlTG9nQW5kUmV2aWV3ZXIoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKEZpbmRNb2Rp
ZmllZENoYW5nZUxvZ3MoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKENvbW1pdFBhdGNoKCkpCisK
KyAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlU3F1YXNoZWQoKSkKKyAgICAgICAgc2VsZi5h
ZGRTdGVwKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3Rl
cChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dD
b21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNvbW1pdE1lc3Nh
Z2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dDb21taXRNZXNzYWdlKCkpCisKICAgICAg
ICAgc2VsZi5hZGRTdGVwKEtpbGxPbGRQcm9jZXNzZXMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVw
KENvbXBpbGVXZWJLaXQoc2tpcFVwbG9hZD1UcnVlKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEtp
bGxPbGRQcm9jZXNzZXMoKSkKQEAgLTMwOCwxMSArMzE1LDggQEAgY2xhc3MgQ29tbWl0UXVldWVG
YWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKICAgICAgICAgc2VsZi5hZGRTdGVwKENoZWNr
UGF0Y2hTdGF0dXNPbkVXU1F1ZXVlcygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuV2ViS2l0
VGVzdHMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFs
c2UsIHZlcmlmeWNxcGx1cz1UcnVlKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0U291
cmNlKHJlcG91cmw9J2h0dHBzOi8vZ2l0LndlYmtpdC5vcmcvZ2l0L1dlYktpdC1odHRwcycpKQot
ICAgICAgICBzZWxmLmFkZFN0ZXAoU2hvd0lkZW50aWZpZXIoKSkKLSAgICAgICAgc2VsZi5hZGRT
dGVwKFVwZGF0ZVdvcmtpbmdEaXJlY3RvcnkoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKEFwcGx5
UGF0Y2goKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKENyZWF0ZUxvY2FsR0lUQ29tbWl0KCkpCisK
KyAgICAgICAgc2VsZi5hZGRTdGVwKENhbm9uaWNhbGl6ZSgpKQogICAgICAgICBzZWxmLmFkZFN0
ZXAoUHVzaENvbW1pdFRvV2ViS2l0UmVwbygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoU2V0QnVp
bGRTdW1tYXJ5KCkpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CmluZGV4IDM0MmZjYTlm
YzBhYi4uNTg0OTE4OTRjNzNkIDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKQEAgLTg0
NSw2ICs4NDUsNjIgQEAgY2xhc3MgQXBwbHlQYXRjaChzaGVsbC5TaGVsbENvbW1hbmQsIENvbXBv
c2l0ZVN0ZXBNaXhpbiwgU2hlbGxNaXhpbik6CiAgICAgICAgIHJldHVybiByYwogCiAKK2NsYXNz
IENvbW1pdFBhdGNoKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIENvbXBvc2l0ZVN0ZXBNaXhpbiwgU2hl
bGxNaXhpbik6CisgICAgbmFtZSA9ICdjb21taXQtcGF0Y2gnCisgICAgZGVzY3JpcHRpb24gPSBb
J2NvbW1pdC1wYXRjaCddCisgICAgZGVzY3JpcHRpb25Eb25lID0gWydDcmVhdGVkIGNvbW1pdCBm
cm9tIHBhdGNoJ10KKyAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQorICAgIGVudiA9IGRpY3QoRklM
VEVSX0JSQU5DSF9TUVVFTENIX1dBUk5JTkc9JzEnKQorICAgIEZJTFRFUl9CUkFOQ0hfUFJPR1JB
TSA9ICcnJ2ltcG9ydCByZQoraW1wb3J0IHN5cworCitsaW5lcyA9IFtsIGZvciBsIGluIHN5cy5z
dGRpbl0KK2ZvciBzIGluIHJlLnNwbGl0KHInIChOZWVkIHRoZSBidWcgVVJMIFwoT09QUyFcKS4p
fChcUys6XC9cL1xTKyknLCBsaW5lc1swXS5yc3RyaXAoKSk6CisgICAgaWYgcyBhbmQgcyAhPSAn
ICc6CisgICAgICAgIHByaW50KHMpCitmb3IgbCBpbiBsaW5lc1sxOl06CisgICAgc3lzLnN0ZG91
dC53cml0ZShsKQorJycnCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorICAg
ICAgICBzdXBlcihDb21taXRQYXRjaCwgc2VsZikuX19pbml0X18odGltZW91dD0xMCAqIDYwLCBs
b2dFbnZpcm9uPUZhbHNlLCAqKmt3YXJncykKKworICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVw
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgRmFsc2UpCisK
KyAgICBkZWYgX2dldF9wYXRjaChzZWxmKToKKyAgICAgICAgc291cmNlc3RhbXAgPSBzZWxmLmJ1
aWxkLmdldFNvdXJjZVN0YW1wKHNlbGYuZ2V0UHJvcGVydHkoJ2NvZGViYXNlJywgJycpKQorICAg
ICAgICBpZiBub3Qgc291cmNlc3RhbXAgb3Igbm90IHNvdXJjZXN0YW1wLnBhdGNoOgorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNvdXJjZXN0YW1wLnBhdGNoWzFdCisK
KyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLmNvbW1hbmRzID0gW10KKyAgICAgICAg
cGF0Y2ggPSBzZWxmLl9nZXRfcGF0Y2goKQorCisgICAgICAgIGNvbW1hbmRzID0gW10KKyAgICAg
ICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgY29tbWFuZHMgKz0gW1snY3VybCcsICctTCcs
ICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD17fScuZm9ybWF0KHNl
bGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJycpKSwgJy1vJywgJy5idWlsZGJvdC1kaWZmJ11d
CisgICAgICAgIGNvbW1hbmRzICs9IFsKKyAgICAgICAgICAgIFsnZ2l0JywgJ2FtJywgJy5idWls
ZGJvdC1kaWZmJ10sCisgICAgICAgICAgICBbJ2dpdCcsICdmaWx0ZXItYnJhbmNoJywgJy1mJywg
Jy0tbXNnLWZpbHRlcicsICdweXRob24zIC1jICJ7fSInLmZvcm1hdChzZWxmLkZJTFRFUl9CUkFO
Q0hfUFJPR1JBTSksICdIRUFELi4uSEVBRH4xJ10sCisgICAgICAgIF0KKyAgICAgICAgZm9yIGNv
bW1hbmQgaW4gY29tbWFuZHM6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVuZCh1dGls
LlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFtZT0nc3RkaW8nLCBoYWx0T25GYWlsdXJl
PVRydWUpKQorCisgICAgICAgIHJldHVybiBzdXBlcihDb21taXRQYXRjaCwgc2VsZikucnVuKCkK
KworICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgorICAgICAgICByZXR1
cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkgb3IgKHJlc3VsdHMgPT0gU1VDQ0VTUyBhbmQgc2Vs
Zi5nZXRQcm9wZXJ0eSgnc2Vuc2l0aXZlJywgRmFsc2UpKQorCisgICAgZGVmIGdldFJlc3VsdFN1
bW1hcnkoc2VsZik6CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyA9PSBTS0lQUEVEOgorICAgICAg
ICAgICAgcmV0dXJuIHsnc3RlcCc6ICJTa2lwcGluZyBjcmVhdGluZyBjb21taXRzaW5jZSBwYXRj
aF9pZCBpc24ndCBwcm92aWRlZCJ9CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyAhPSBTVUNDRVNT
OgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdnaXQgYW0gZmFpbGVkIHRvIGFwcGx5IHBh
dGNoIHRvIHRydW5rJ30KKyAgICAgICAgcmV0dXJuIHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5n
ZXRSZXN1bHRTdW1tYXJ5KCkKKworCiBjbGFzcyBDaGVja091dFB1bGxSZXF1ZXN0KHN0ZXBzLlNo
ZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5hbWUgPSAnY2hlY2tvdXQtcHVsbC1yZXF1
ZXN0JwogICAgIGRlc2NyaXB0aW9uID0gWydjaGVja2luZy1vdXQtcHVsbC1yZXF1ZXN0J10KQEAg
LTQ1NzYsMTIgKzQ2MzIsMTcgQEAgY2xhc3MgUHVzaENvbW1pdFRvV2ViS2l0UmVwbyhzaGVsbC5T
aGVsbENvbW1hbmQpOgogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRT
dGVwKFsKLSAgICAgICAgICAgICAgICAgICAgICAgIEdpdFJlc2V0SGFyZCgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0
Lm9yZy9naXQvV2ViS2l0LWh0dHBzJyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNldEdp
dFN2bigpLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYW5HaXRSZXBvKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICBDaGVja091dFNvdXJjZSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgR2l0U3ZuRmV0Y2goKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFNob3dJZGVudGlmaWVy
KCksCiAgICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBBcHBseVBhdGNoKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICBDcmVhdGVMb2NhbEdJVENvbW1pdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29t
bWl0UGF0Y2goKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFkZFJldmlld2VyVG9Db21taXRN
ZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgICBBZGRBdXRob3JUb0NvbW1pdE1lc3Nh
Z2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFs
c2UsIHZlcmlmeWNxcGx1cz1UcnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbm9uaWNh
bGl6ZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgUHVzaENvbW1pdFRvV2ViS2l0UmVwbygp
LAogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgIHJldHVybiByYwpAQCAt
NDc2Miw4ICs0ODIzLDggQEAgY2xhc3MgVmFsaWRhdGVTcXVhc2hlZChzaGVsbC5TaGVsbENvbW1h
bmQpOgogICAgICAgICBzdXBlcihWYWxpZGF0ZVNxdWFzaGVkLCBzZWxmKS5fX2luaXRfXyhsb2dF
bnZpcm9uPUZhbHNlLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmLCBCdWZmZXJMb2dP
YnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFz
ZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5D
SCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYn
LCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVh
ZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAgICAg
ICAgIHNlbGYuY29tbWFuZCA9IFsnZ2l0JywgJ2xvZycsICctLW9uZWxpbmUnLCBoZWFkX3JlZiwg
Zidee2Jhc2VfcmVmfScsICctLW1heC1jb3VudD0yJ10KIAogICAgICAgICBzZWxmLmxvZ19vYnNl
cnZlciA9IEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3Mod2FudFN0ZGVycj1UcnVlKQpAQCAtNDc4OCwx
MiArNDg0OSw2IEBAIGNsYXNzIFZhbGlkYXRlU3F1YXNoZWQoc2hlbGwuU2hlbGxDb21tYW5kKToK
ICAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCiAgICAgICAgIHJldHVybiBGQUlMVVJFCiAKLSAg
ICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldFByb3Bl
cnR5KCdnaXRodWIubnVtYmVyJykKLQotICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMs
IHN0ZXApOgotICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFz
cyBBZGRSZXZpZXdlck1peGluKG9iamVjdCk6CiAgICAgTk9CT0RZX1NFRCA9ICdzL05PQk9EWSAo
T08qUFAqUyEqKS97fS9nJwpAQCAtNDgzMSw4ICs0ODg2LDggQEAgY2xhc3MgQWRkUmV2aWV3ZXJU
b0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKICAg
ICAgICAgc3VwZXIoQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxv
Z0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNl
bGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIp
OgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZics
IERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dp
dGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAgICBiYXNlX3JlZiA9IHNlbGYu
Z2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIGYnb3JpZ2luL3tERUZBVUxUX0JSQU5DSH0n
KQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZics
ICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9n
bXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAgICAgIGRhdGUgPSBmJ3tpbnQodGltZS50aW1l
KCkpfSB7Z210b2Zmc2V0fScKQEAgLTQ4NTYsNyArNDkxMSw3IEBAIGNsYXNzIEFkZFJldmlld2Vy
VG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3ZXJNaXhpbik6CiAg
ICAgICAgIHJldHVybiBzdXBlcihBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuZ2V0
UmVzdWx0U3VtbWFyeSgpCiAKICAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAg
IHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJykgYW5kIHNlbGYuZ2V0UHJv
cGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJv
cGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKIAogICAgIGRlZiBoaWRlU3RlcElmKHNlbGYs
IHJlc3VsdHMsIHN0ZXApOgogICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkK
QEAgLTQ4ODYsOCArNDk0MSw4IEBAIGNsYXNzIEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShzaGVs
bC5TaGVsbENvbW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgogICAgICAgICByZXR1cm4gTm9uZSwg
Tm9uZQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFk
X3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNI
KQorICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZics
IGYnb3JpZ2luL3tERUZBVUxUX0JSQU5DSH0nKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQg
PSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAg
ICAgIHRpbWVzdGFtcCA9IGYne2ludCh0aW1lLnRpbWUoKSl9IHtnbXRvZmZzZXR9JwpAQCAtNDkx
Niw5ICs0OTcxLDYgQEAgY2xhc3MgQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxs
Q29tbWFuZCwgQWRkUmV2aWV3ZXJNaXhpbik6CiAgICAgICAgIHJldHVybiBzdXBlcihBZGRBdXRo
b3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCiAgICAgZGVmIGRv
U3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICBpZiBub3Qgc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0
aHViLm51bWJlcicpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KICAgICAgICAgbmFtZSwg
ZW1haWwgPSBzZWxmLmF1dGhvcigpCiAgICAgICAgIHJldHVybiBuYW1lIGFuZCBlbWFpbAogCkBA
IC00OTkxLDggKzUwNDMsOCBAQCBjbGFzcyBWYWxpZGF0ZUNvbW1pdE1lc3NhZ2Uoc3RlcHMuU2hl
bGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAKICAgICBAZGVmZXIuaW5saW5lQ2FsbGJhY2tzCiAg
ICAgZGVmIHJ1bihzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZl
ckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRo
dWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdl
dFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFz
ZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVG
QVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRo
dWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAKICAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCiAgICAg
ICAgIGNvbW1hbmRzID0gWwpAQCAtNTAyNyw3ICs1MDc5LDcgQEAgY2xhc3MgVmFsaWRhdGVDb21t
aXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAgICBpZiBy
YyA9PSBGQUlMVVJFOgogICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29tbWVudF90ZXh0
JywgZiJ7c2VsZi5zdW1tYXJ5fSwgYmxvY2tpbmcgUFIgI3tzZWxmLmdldFByb3BlcnR5KCdnaXRo
dWIubnVtYmVyJyl9IikKICAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2J1aWxkX2Zpbmlz
aF9zdW1tYXJ5JywgJ0NvbW1pdCBtZXNzYWdlIHZhbGlkYXRpb24gZmFpbGVkJykKLSAgICAgICAg
ICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFtMZWF2ZUNvbW1lbnQoKSwg
IEJsb2NrUHVsbFJlcXVlc3QoKV0pCisgICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0
ZXJDdXJyZW50U3RlcChbTGVhdmVDb21tZW50KCksIFNldENvbW1pdFF1ZXVlTWludXNGbGFnT25Q
YXRjaCgpLCBCbG9ja1B1bGxSZXF1ZXN0KCldKQogICAgICAgICByZXR1cm4gcmMKIAogICAgIGRl
ZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgpAQCAtNTAzNSwxMiArNTA4Nyw2IEBAIGNsYXNzIFZh
bGlkYXRlQ29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAg
ICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBzZWxmLnN1bW1hcnl9CiAgICAgICAgIHJldHVybiBz
dXBlcihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCi0g
ICAgZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9w
ZXJ0eSgnZ2l0aHViLm51bWJlcicpCi0KLSAgICBkZWYgaGlkZVN0ZXBJZihzZWxmLCByZXN1bHRz
LCBzdGVwKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElmKHN0ZXApCi0KIAogY2xh
c3MgQ2Fub25pY2FsaXplKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5h
bWUgPSAnY2Fub25pY2FsaXplLWNvbW1pdCcKQEAgLTUwNTYsMTUgKzUxMDIsMTQgQEAgY2xhc3Mg
Q2Fub25pY2FsaXplKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAgICBz
ZWxmLmNvbW1hbmRzID0gW10KIAogICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHko
J2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNl
bGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAg
ICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIE5vbmUpCiAK
ICAgICAgICAgY29tbWFuZHMgPSBbXQogICAgICAgICBpZiBzZWxmLnJlYmFzZV9lbmFibGVkOgot
ICAgICAgICAgICAgY29tbWFuZHMgPSBbCi0gICAgICAgICAgICAgICAgWydnaXQnLCAncHVsbCcs
ICdvcmlnaW4nLCBiYXNlX3JlZiwgJy0tcmViYXNlJ10sCi0gICAgICAgICAgICAgICAgWydnaXQn
LCAnYnJhbmNoJywgJy1mJywgYmFzZV9yZWYsIGhlYWRfcmVmXSwKLSAgICAgICAgICAgICAgICBb
J2dpdCcsICdjaGVja291dCcsIGJhc2VfcmVmXSwKLSAgICAgICAgICAgIF0KKyAgICAgICAgICAg
IGNvbW1hbmRzID0gW1snZ2l0JywgJ3B1bGwnLCAnb3JpZ2luJywgYmFzZV9yZWYsICctLXJlYmFz
ZSddXQorICAgICAgICAgICAgaWYgaGVhZF9yZWY6CisgICAgICAgICAgICAgICAgY29tbWFuZHMg
Kz0gW1snZ2l0JywgJ2JyYW5jaCcsICctZicsIGJhc2VfcmVmLCBoZWFkX3JlZl1dCisgICAgICAg
ICAgICBjb21tYW5kcyArPSBbWydnaXQnLCAnY2hlY2tvdXQnLCBiYXNlX3JlZl1dCiAgICAgICAg
IGNvbW1hbmRzLmFwcGVuZChbJ3B5dGhvbjMnLCAnVG9vbHMvU2NyaXB0cy9naXQtd2Via2l0Jywg
J2Nhbm9uaWNhbGl6ZScsICctbicsICcxJyBpZiBzZWxmLnJlYmFzZV9lbmFibGVkIGVsc2UgJzMn
XSkKIAogICAgICAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoKQEAgLTUyNDYsMyArNTI5MSwx
MyBAQCBjbGFzcyBSZXNldEdpdFN2bihzaGVsbC5TaGVsbENvbW1hbmQpOgogICAgICAgICBpZiBz
ZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToKICAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFp
bGVkIHRvIHJlbW92ZSBnaXQtc3ZuIHJlZmVyZW5jZXMnfQogICAgICAgICByZXR1cm4gc3VwZXIo
R2l0U3ZuRmV0Y2gsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQorCisKK2NsYXNzIFNob3dDb21t
aXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCk6CisgICAgbmFtZSA9ICdzaG93LWNvbW1pdC1t
ZXNzYWdlJworICAgIGhhbHRPbkZhaWx1cmUgPSBGYWxzZQorICAgIGZsdW5rT25GYWlsdXJlID0g
RmFsc2UKKyAgICBjb21tYW5kID0gWydnaXQnLCAnbG9nJywgJy0xJ10KKworICAgIGRlZiBfX2lu
aXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFNob3dDb21taXRNZXNzYWdlLCBz
ZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCB0aW1lb3V0PTMwMCwgKiprd2FyZ3MpCi0t
IAoyLjMyLjAgKEFwcGxlIEdpdC0xMzIpCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459495</attachid>
            <date>2022-05-17 06:57:27 -0700</date>
            <delta_ts>2022-05-17 07:42:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240461-20220517065726.patch</filename>
            <type>text/plain</type>
            <size>29782</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBmMTA0OGM1MDdkMTU2ZWY4MzM2MzJjNjc0YTFhMDIwM2FlNzQzNzI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDA2OjUxOjQ1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rv
cmllcy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6IE9ubHkgYWNjZXB0IHBhdGNo
ZXMgd2l0aCBjb21taXQgbWVzc2FnZXMsCnJlc3BlY3QgdGhvc2UgY29tbWl0IG1lc3NhZ2VzLgoo
TWVyZ2VRdWV1ZUZhY3RvcnlCYXNlLl9faW5pdF9fKTogVXNlIGNvbW1pdCBhdXRob3IgaW4gY29t
bWl0LgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5Ogoo
VGVzdEV4cGVjdGVkQnVpbGRTdGVwcy50ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyk6CiogVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKTogQWRkIHN0ZXAgd2hp
Y2ggY29tbWl0cyBhIHBhdGNoLCBpbmNsdWRpbmcgaXQncyBjb21taXQgbWVzc2FnZS4KKFB1c2hD
b21taXRUb1dlYktpdFJlcG8uZXZhbHVhdGVDb21tYW5kKTogVXNlIEdpdEh1YiBjaGVja291dCBv
biBDb21taXQtUXVldWUuCihWYWxpZGF0ZVNxdWFzaGVkLnN0YXJ0KTogU3VwcG9ydCBjb21taXR0
ZWQgcGF0Y2hlcy4KKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLnN0YXJ0KTogRGl0dG8uCihE
ZXRlcm1pbmVBdXRob3IpOiBFeHRyYWN0IGF1dGhvciBmcm9tIGxvY2FsIGNvbW1pdC4KKEFkZEF1
dGhvclRvQ29tbWl0TWVzc2FnZSk6IFVzZSAnYXV0aG9yJyBwcm9wZXJ0eSBhcyBzZXQgYnkgJ0Rl
dGVybWluZUF1dGhvcicuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UucnVuKTogU3VwcG9ydCBjb21t
aXR0ZWQgcGF0Y2hlcy4KKFZhbGlkYXRlQ29tbWl0TWVzc2FnZS5nZXRSZXN1bHRTdW1tYXJ5KTog
U3VwcG9ydCBwYXRjaGVzLgooQ2Fub25pY2FsaXplLnJ1bik6IFN1cHBvcnQgY29tbWl0dGVkIHBh
dGNoZXMuCihWYWxpZGF0ZVNxdWFzaGVkLmRvU3RlcElmKTogRGVsZXRlZC4KKFZhbGlkYXRlU3F1
YXNoZWQuaGlkZVN0ZXBJZik6IERlbGV0ZWQuCihBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UuYXV0
aG9yKTogRGVsZXRlZC4KKFZhbGlkYXRlQ29tbWl0TWVzc2FnZS5kb1N0ZXBJZik6IERlbGV0ZWQu
CihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuaGlkZVN0ZXBJZik6IERlbGV0ZWQuCiogVG9vbHMvQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weToKLS0tCiBUb29scy9DSVN1cHBvcnQv
ZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weSAgICAgICAgfCAgMzIgKy0tCiAuLi4vQ0lTdXBwb3J0L2V3
cy1idWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkgfCAgMjEgKy0KIFRvb2xzL0NJU3VwcG9ydC9l
d3MtYnVpbGQvc3RlcHMucHkgICAgICAgICAgICB8IDE4OSArKysrKysrKysrKystLS0tLS0KIFRv
b2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkgICB8ICA2OSArKysrLS0t
CiA0IGZpbGVzIGNoYW5nZWQsIDIwNCBpbnNlcnRpb25zKCspLCAxMDcgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkgYi9Ub29s
cy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQppbmRleCBiNjdlNWM1M2QxMDQuLjkz
MjJkZDUxNWQ2YSAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3Jp
ZXMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkKQEAgLTI0
LDE3ICsyNCwxNyBAQAogZnJvbSBidWlsZGJvdC5wcm9jZXNzIGltcG9ydCBmYWN0b3J5CiBmcm9t
IGJ1aWxkYm90LnN0ZXBzIGltcG9ydCB0cmlnZ2VyCiAKLWZyb20gc3RlcHMgaW1wb3J0IChBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBBZGRSZXZp
ZXdlclRvQ2hhbmdlTG9nLCBBcHBseVBhdGNoLCBBcHBseVdhdGNoTGlzdCwgQ2Fub25pY2FsaXpl
LAorZnJvbSBzdGVwcyBpbXBvcnQgKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3
ZXJUb0NvbW1pdE1lc3NhZ2UsIEFkZFJldmlld2VyVG9DaGFuZ2VMb2csIEFwcGx5UGF0Y2gsIEFw
cGx5V2F0Y2hMaXN0LCBDYW5vbmljYWxpemUsIENvbW1pdFBhdGNoLAogICAgICAgICAgICAgICAg
ICAgIENoZWNrT3V0UHVsbFJlcXVlc3QsIENoZWNrT3V0U291cmNlLCBDaGVja091dFNwZWNpZmlj
UmV2aXNpb24sIENoZWNrQ2hhbmdlUmVsZXZhbmNlLAogICAgICAgICAgICAgICAgICAgIENoZWNr
UGF0Y2hTdGF0dXNPbkVXU1F1ZXVlcywgQ2hlY2tTdHlsZSwgQ2xlYW5HaXRSZXBvLCBDb21waWxl
SlNDLCBDb21waWxlV2ViS2l0LCBDb25maWd1cmVCdWlsZCwgQ3JlYXRlTG9jYWxHSVRDb21taXQs
Ci0gICAgICAgICAgICAgICAgICAgRG93bmxvYWRCdWlsdFByb2R1Y3QsIEV4dHJhY3RCdWlsdFBy
b2R1Y3QsIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmll
ZExheW91dFRlc3RzLCBHaXRTdm5GZXRjaCwKKyAgICAgICAgICAgICAgICAgICBEZXRlcm1pbmVB
dXRob3IsIERvd25sb2FkQnVpbHRQcm9kdWN0LCBFeHRyYWN0QnVpbHRQcm9kdWN0LCBGZXRjaEJy
YW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzLCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cywg
R2l0U3ZuRmV0Y2gsCiAgICAgICAgICAgICAgICAgICAgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywg
SW5zdGFsbFdwZURlcGVuZGVuY2llcywgS2lsbE9sZFByb2Nlc3NlcywgUHJpbnRDb25maWd1cmF0
aW9uLCBQdXNoQ29tbWl0VG9XZWJLaXRSZXBvLAogICAgICAgICAgICAgICAgICAgIFJ1bkFQSVRl
c3RzLCBSdW5CaW5kaW5nc1Rlc3RzLCBSdW5CdWlsZFdlYktpdE9yZ1VuaXRUZXN0cywgUnVuQnVp
bGRib3RDaGVja0NvbmZpZ0ZvckJ1aWxkV2ViS2l0LCBSdW5CdWlsZGJvdENoZWNrQ29uZmlnRm9y
RVdTLAogICAgICAgICAgICAgICAgICAgIFJ1bkVXU1VuaXRUZXN0cywgUnVuUmVzdWx0c2RicHlU
ZXN0cywgUnVuSmF2YVNjcmlwdENvcmVUZXN0cywgUnVuV2ViS2l0MVRlc3RzLCBSdW5XZWJLaXRQ
ZXJsVGVzdHMsIFJ1bldlYktpdFB5UHl0aG9uMlRlc3RzLAogICAgICAgICAgICAgICAgICAgIFJ1
bldlYktpdFB5UHl0aG9uM1Rlc3RzLCBSdW5XZWJLaXRUZXN0cywgUnVuV2ViS2l0VGVzdHNSZWRU
cmVlLCBSdW5XZWJLaXRUZXN0c0luU3RyZXNzTW9kZSwgUnVuV2ViS2l0VGVzdHNJblN0cmVzc0d1
YXJkbWFsbG9jTW9kZSwKICAgICAgICAgICAgICAgICAgICBTZXRCdWlsZFN1bW1hcnksIFNob3dJ
ZGVudGlmaWVyLCBUcmlnZ2VyQ3Jhc2hMb2dTdWJtaXNzaW9uLCBVcGRhdGVXb3JraW5nRGlyZWN0
b3J5LAogICAgICAgICAgICAgICAgICAgIFZhbGlkYXRlQ29tbWl0TWVzc2FnZSwgVmFsaWRhdGVD
aGFuZ2UsIFZhbGlkYXRlQ2hhbmdlTG9nQW5kUmV2aWV3ZXIsIFZhbGlkYXRlQ29tbWl0dGVyQW5k
UmV2aWV3ZXIsIFdhaXRGb3JDcmFzaENvbGxlY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgSW5z
dGFsbEJ1aWx0UHJvZHVjdCwgVmVyaWZ5R2l0SHViSW50ZWdyaXR5LCBWYWxpZGF0ZVNxdWFzaGVk
KQorICAgICAgICAgICAgICAgICAgIEluc3RhbGxCdWlsdFByb2R1Y3QsIFZlcmlmeUdpdEh1Yklu
dGVncml0eSwgVmFsaWRhdGVTcXVhc2hlZCwgU2hvd0NvbW1pdE1lc3NhZ2UpCiAKIAogY2xhc3Mg
RmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CkBAIC0yOTIsMTUgKzI5MiwyMyBAQCBjbGFz
cyBDb21taXRRdWV1ZUZhY3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgogICAgICAgICBzZWxm
LmFkZFN0ZXAoVmFsaWRhdGVDaGFuZ2UodmVyaWZ5Y3FwbHVzPVRydWUpKQogICAgICAgICBzZWxm
LmFkZFN0ZXAoVmFsaWRhdGVDb21taXR0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBzZWxmLmFk
ZFN0ZXAoUHJpbnRDb25maWd1cmF0aW9uKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChDbGVhbkdp
dFJlcG8oZGVmYXVsdF9icmFuY2g9J21hc3RlcicpKQotICAgICAgICBzZWxmLmFkZFN0ZXAoQ2hl
Y2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9yZy9naXQvV2ViS2l0LWh0
dHBzJykpCisgICAgICAgIHNlbGYuYWRkU3RlcChDbGVhbkdpdFJlcG8oKSkKKyAgICAgICAgc2Vs
Zi5hZGRTdGVwKENoZWNrT3V0U291cmNlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChHaXRTdm5G
ZXRjaCgpKSAgIyBGSVhNRTogUmVtb3ZlIHdoZW4gbWlncmF0aW5nIHRvIHB1cmUgZ2l0CiAgICAg
ICAgIHNlbGYuYWRkU3RlcChGZXRjaEJyYW5jaGVzKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChT
aG93SWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmVyaWZ5R2l0SHViSW50ZWdy
aXR5KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCkpCi0g
ICAgICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChW
YWxpZGF0ZUNoYW5nZUxvZ0FuZFJldmlld2VyKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChGaW5k
TW9kaWZpZWRDaGFuZ2VMb2dzKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChDb21taXRQYXRjaCgp
KQorCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZVNxdWFzaGVkKCkpCisgICAgICAgIHNl
bGYuYWRkU3RlcChBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSgpKQorICAgICAgICBzZWxmLmFk
ZFN0ZXAoRGV0ZXJtaW5lQXV0aG9yKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChBZGRBdXRob3JU
b0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dDb21taXRNZXNzYWdl
KCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UoKSkKKyAgICAg
ICAgc2VsZi5hZGRTdGVwKFNob3dDb21taXRNZXNzYWdlKCkpCisKICAgICAgICAgc2VsZi5hZGRT
dGVwKEtpbGxPbGRQcm9jZXNzZXMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKENvbXBpbGVXZWJL
aXQoc2tpcFVwbG9hZD1UcnVlKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEtpbGxPbGRQcm9jZXNz
ZXMoKSkKQEAgLTMwOCwxMSArMzE2LDggQEAgY2xhc3MgQ29tbWl0UXVldWVGYWN0b3J5KGZhY3Rv
cnkuQnVpbGRGYWN0b3J5KToKICAgICAgICAgc2VsZi5hZGRTdGVwKENoZWNrUGF0Y2hTdGF0dXNP
bkVXU1F1ZXVlcygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUnVuV2ViS2l0VGVzdHMoKSkKICAg
ICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFsc2UsIHZlcmlmeWNx
cGx1cz1UcnVlKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0U291cmNlKHJlcG91cmw9
J2h0dHBzOi8vZ2l0LndlYmtpdC5vcmcvZ2l0L1dlYktpdC1odHRwcycpKQotICAgICAgICBzZWxm
LmFkZFN0ZXAoU2hvd0lkZW50aWZpZXIoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKFVwZGF0ZVdv
cmtpbmdEaXJlY3RvcnkoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKEFwcGx5UGF0Y2goKSkKLSAg
ICAgICAgc2VsZi5hZGRTdGVwKENyZWF0ZUxvY2FsR0lUQ29tbWl0KCkpCisKKyAgICAgICAgc2Vs
Zi5hZGRTdGVwKENhbm9uaWNhbGl6ZSgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUHVzaENvbW1p
dFRvV2ViS2l0UmVwbygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoU2V0QnVpbGRTdW1tYXJ5KCkp
CiAKQEAgLTMzNCw2ICszMzksNyBAQCBjbGFzcyBNZXJnZVF1ZXVlRmFjdG9yeUJhc2UoZmFjdG9y
eS5CdWlsZEZhY3RvcnkpOgogICAgICAgICBzZWxmLmFkZFN0ZXAoQ2hlY2tPdXRQdWxsUmVxdWVz
dCgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQogICAgICAgICBz
ZWxmLmFkZFN0ZXAoQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5h
ZGRTdGVwKERldGVybWluZUF1dGhvcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoQWRkQXV0aG9y
VG9Db21taXRNZXNzYWdlKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChBZGRSZXZpZXdlclRvQ2hh
bmdlTG9nKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UoKSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0
LnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkKaW5k
ZXggMzNiMDRlYjFkMmNlLi43ZmFhNjQ2MGUxMTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9y
dC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9l
d3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5CkBAIC02MDQsMTMgKzYwNCwxOSBAQCBjbGFz
cyBUZXN0RXhwZWN0ZWRCdWlsZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAg
ICdjb25maWd1cmF0aW9uJywKICAgICAgICAgICAgICdjbGVhbi11cC1naXQtcmVwbycsCiAgICAg
ICAgICAgICAnY2xlYW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCisgICAgICAgICAg
ICAnZ2l0LXN2bi1mZXRjaCcsCiAgICAgICAgICAgICAnZmV0Y2gtYnJhbmNoLXJlZmVyZW5jZXMn
LAogICAgICAgICAgICAgJ3Nob3ctaWRlbnRpZmllcicsCiAgICAgICAgICAgICAndmVyaWZ5LWdp
dGh1Yi1pbnRlZ3JpdHknLAogICAgICAgICAgICAgJ3VwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScs
Ci0gICAgICAgICAgICAnYXBwbHktcGF0Y2gnLAotICAgICAgICAgICAgJ3ZhbGlkYXRlLWNoYW5n
ZWxvZy1hbmQtcmV2aWV3ZXInLAotICAgICAgICAgICAgJ2ZpbmQtbW9kaWZpZWQtY2hhbmdlbG9n
cycsCisgICAgICAgICAgICAnY29tbWl0LXBhdGNoJywKKyAgICAgICAgICAgICd2YWxpZGF0ZS1z
cXVhc2hlZCcsCisgICAgICAgICAgICAnYWRkLXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywK
KyAgICAgICAgICAgICdkZXRlcm1pbmUtYXV0aG9yJywKKyAgICAgICAgICAgICdhZGQtYXV0aG9y
LXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAgICdzaG93LWNvbW1pdC1tZXNzYWdlJywK
KyAgICAgICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCisgICAgICAgICAgICAnc2hv
dy1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAna2lsbC1vbGQtcHJvY2Vzc2VzJywKICAg
ICAgICAgICAgICdjb21waWxlLXdlYmtpdCcsCiAgICAgICAgICAgICAna2lsbC1vbGQtcHJvY2Vz
c2VzJywKQEAgLTYxOCwxMSArNjI0LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRTdGVwcyh1
bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY2hlY2stc3RhdHVzLW9uLW90aGVyLWV3
c2VzJywKICAgICAgICAgICAgICdsYXlvdXQtdGVzdHMnLAogICAgICAgICAgICAgJ3ZhbGlkYXRl
LWNoYW5nZScsCi0gICAgICAgICAgICAnY2xlYW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9y
eScsCi0gICAgICAgICAgICAnc2hvdy1pZGVudGlmaWVyJywKLSAgICAgICAgICAgICd1cGRhdGUt
d29ya2luZy1kaXJlY3RvcnknLAotICAgICAgICAgICAgJ2FwcGx5LXBhdGNoJywKLSAgICAgICAg
ICAgICdjcmVhdGUtbG9jYWwtZ2l0LWNvbW1pdCcsCisgICAgICAgICAgICAnY2Fub25pY2FsaXpl
LWNvbW1pdCcsCiAgICAgICAgICAgICAncHVzaC1jb21taXQtdG8td2Via2l0LXJlcG8nLAogICAg
ICAgICAgICAgJ3NldC1idWlsZC1zdW1tYXJ5JwogICAgICAgICBdLApAQCAtNjQxLDYgKzY0Myw3
IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxkU3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICAgICAgJ2NoZWNrb3V0LXB1bGwtcmVxdWVzdCcsCiAgICAgICAgICAgICAndmFsaWRhdGUt
c3F1YXNoZWQnLAogICAgICAgICAgICAgJ2FkZC1yZXZpZXdlci10by1jb21taXQtbWVzc2FnZScs
CisgICAgICAgICAgICAnZGV0ZXJtaW5lLWF1dGhvcicsCiAgICAgICAgICAgICAnYWRkLWF1dGhv
ci10by1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAnYWRkLXJldmlld2VyLXRvLWNoYW5n
ZWxvZycsCiAgICAgICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLApAQCAtNjY4LDYg
KzY3MSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxkU3RlcHModW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAgICAgJ2NoZWNrb3V0LXB1bGwtcmVxdWVzdCcsCiAgICAgICAgICAgICAndmFs
aWRhdGUtc3F1YXNoZWQnLAogICAgICAgICAgICAgJ2FkZC1yZXZpZXdlci10by1jb21taXQtbWVz
c2FnZScsCisgICAgICAgICAgICAnZGV0ZXJtaW5lLWF1dGhvcicsCiAgICAgICAgICAgICAnYWRk
LWF1dGhvci10by1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAnYWRkLXJldmlld2VyLXRv
LWNoYW5nZWxvZycsCiAgICAgICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLApAQCAt
Njg1LDYgKzY4OSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxkU3RlcHModW5pdHRlc3QuVGVz
dENhc2UpOgogICAgICAgICBsb2FkQ29uZmlnLmxvYWRCdWlsZGVyQ29uZmlnKHNlbGYuY29uZmln
LCBpc190ZXN0X21vZGVfZW5hYmxlZD1UcnVlLCBtYXN0ZXJfcHJlZml4X3BhdGg9Y3dkKQogCiAg
ICAgZGVmIHRlc3RfYWxsX2V4cGVjdGVkX3N0ZXBzKHNlbGYpOgorICAgICAgICBzZWxmLm1heERp
ZmYgPSBOb25lCiAgICAgICAgIGZvciBidWlsZGVyIGluIHNlbGYuY29uZmlnWydidWlsZGVycydd
OgogICAgICAgICAgICAgYnVpbGRTdGVwcyA9IFtdCiAgICAgICAgICAgICBmb3Igc3RlcCBpbiBi
dWlsZGVyWydmYWN0b3J5J10uc3RlcHM6CmRpZmYgLS1naXQgYS9Ub29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL3N0ZXBzLnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQppbmRl
eCAzNDJmY2E5ZmMwYWIuLjVjN2I2MTdmMWM1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0
L2V3cy1idWlsZC9zdGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBz
LnB5CkBAIC04NDUsNiArODQ1LDYyIEBAIGNsYXNzIEFwcGx5UGF0Y2goc2hlbGwuU2hlbGxDb21t
YW5kLCBDb21wb3NpdGVTdGVwTWl4aW4sIFNoZWxsTWl4aW4pOgogICAgICAgICByZXR1cm4gcmMK
IAogCitjbGFzcyBDb21taXRQYXRjaChzdGVwcy5TaGVsbFNlcXVlbmNlLCBDb21wb3NpdGVTdGVw
TWl4aW4sIFNoZWxsTWl4aW4pOgorICAgIG5hbWUgPSAnY29tbWl0LXBhdGNoJworICAgIGRlc2Ny
aXB0aW9uID0gWydjb21taXQtcGF0Y2gnXQorICAgIGRlc2NyaXB0aW9uRG9uZSA9IFsnQ3JlYXRl
ZCBjb21taXQgZnJvbSBwYXRjaCddCisgICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKyAgICBlbnYg
PSBkaWN0KEZJTFRFUl9CUkFOQ0hfU1FVRUxDSF9XQVJOSU5HPScxJykKKyAgICBGSUxURVJfQlJB
TkNIX1BST0dSQU0gPSAnJydpbXBvcnQgcmUKK2ltcG9ydCBzeXMKKworbGluZXMgPSBbbCBmb3Ig
bCBpbiBzeXMuc3RkaW5dCitmb3IgcyBpbiByZS5zcGxpdChyJyAoTmVlZCB0aGUgYnVnIFVSTCBc
KE9PUFMhXCkuKXwoXFMrOlwvXC9cUyspJywgbGluZXNbMF0ucnN0cmlwKCkpOgorICAgIGlmIHMg
YW5kIHMgIT0gJyAnOgorICAgICAgICBwcmludChzKQorZm9yIGwgaW4gbGluZXNbMTpdOgorICAg
IHN5cy5zdGRvdXQud3JpdGUobCkKKycnJworCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dh
cmdzKToKKyAgICAgICAgc3VwZXIoQ29tbWl0UGF0Y2gsIHNlbGYpLl9faW5pdF9fKHRpbWVvdXQ9
MTAgKiA2MCwgbG9nRW52aXJvbj1GYWxzZSwgKiprd2FyZ3MpCisKKyAgICBkZWYgZG9TdGVwSWYo
c2VsZiwgc3RlcCk6CisgICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdwYXRjaF9pZCcs
IEZhbHNlKQorCisgICAgZGVmIF9nZXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNvdXJjZXN0YW1w
ID0gc2VsZi5idWlsZC5nZXRTb3VyY2VTdGFtcChzZWxmLmdldFByb3BlcnR5KCdjb2RlYmFzZScs
ICcnKSkKKyAgICAgICAgaWYgbm90IHNvdXJjZXN0YW1wIG9yIG5vdCBzb3VyY2VzdGFtcC5wYXRj
aDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5w
YXRjaFsxXQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtd
CisgICAgICAgIHBhdGNoID0gc2VsZi5fZ2V0X3BhdGNoKCkKKworICAgICAgICBjb21tYW5kcyA9
IFtdCisgICAgICAgIGlmIG5vdCBwYXRjaDoKKyAgICAgICAgICAgIGNvbW1hbmRzICs9IFtbJ2N1
cmwnLCAnLUwnLCAnaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVudC5jZ2k/aWQ9e30n
LmZvcm1hdChzZWxmLmdldFByb3BlcnR5KCdwYXRjaF9pZCcsICcnKSksICctbycsICcuYnVpbGRi
b3QtZGlmZiddXQorICAgICAgICBjb21tYW5kcyArPSBbCisgICAgICAgICAgICBbJ2dpdCcsICdh
bScsICcuYnVpbGRib3QtZGlmZiddLAorICAgICAgICAgICAgWydnaXQnLCAnZmlsdGVyLWJyYW5j
aCcsICctZicsICctLW1zZy1maWx0ZXInLCAncHl0aG9uMyAtYyAie30iJy5mb3JtYXQoc2VsZi5G
SUxURVJfQlJBTkNIX1BST0dSQU0pLCAnSEVBRC4uLkhFQUR+MSddLAorICAgICAgICBdCisgICAg
ICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRzOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kcy5h
cHBlbmQodXRpbC5TaGVsbEFyZyhjb21tYW5kPWNvbW1hbmQsIGxvZ25hbWU9J3N0ZGlvJywgaGFs
dE9uRmFpbHVyZT1UcnVlKSkKKworICAgICAgICByZXR1cm4gc3VwZXIoQ29tbWl0UGF0Y2gsIHNl
bGYpLnJ1bigpCisKKyAgICBkZWYgaGlkZVN0ZXBJZihzZWxmLCByZXN1bHRzLCBzdGVwKToKKyAg
ICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElmKHN0ZXApIG9yIChyZXN1bHRzID09IFNVQ0NF
U1MgYW5kIHNlbGYuZ2V0UHJvcGVydHkoJ3NlbnNpdGl2ZScsIEZhbHNlKSkKKworICAgIGRlZiBn
ZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gU0tJUFBF
RDoKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAiU2tpcHBpbmcgY3JlYXRpbmcgY29tbWl0
c2luY2UgcGF0Y2hfaWQgaXNuJ3QgcHJvdmlkZWQifQorICAgICAgICBpZiBzZWxmLnJlc3VsdHMg
IT0gU1VDQ0VTUzoKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnZ2l0IGFtIGZhaWxlZCB0
byBhcHBseSBwYXRjaCB0byB0cnVuayd9CisgICAgICAgIHJldHVybiBzdXBlcihDb21taXRQYXRj
aCwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCisKKwogY2xhc3MgQ2hlY2tPdXRQdWxsUmVxdWVz
dChzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICBuYW1lID0gJ2NoZWNrb3V0
LXB1bGwtcmVxdWVzdCcKICAgICBkZXNjcmlwdGlvbiA9IFsnY2hlY2tpbmctb3V0LXB1bGwtcmVx
dWVzdCddCkBAIC00NTc2LDEyICs0NjMyLDE3IEBAIGNsYXNzIFB1c2hDb21taXRUb1dlYktpdFJl
cG8oc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAg
ICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0
ZXJDdXJyZW50U3RlcChbCi0gICAgICAgICAgICAgICAgICAgICAgICBHaXRSZXNldEhhcmQoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrT3V0U291cmNlKHJlcG91cmw9J2h0dHBzOi8v
Z2l0LndlYmtpdC5vcmcvZ2l0L1dlYktpdC1odHRwcycpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgUmVzZXRHaXRTdm4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENsZWFuR2l0UmVwbygp
LAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2UoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIEdpdFN2bkZldGNoKCksCiAgICAgICAgICAgICAgICAgICAgICAgICBTaG93
SWRlbnRpZmllcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlV29ya2luZ0RpcmVj
dG9yeSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgQXBwbHlQYXRjaCgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgQ3JlYXRlTG9jYWxHSVRDb21taXQoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIENvbW1pdFBhdGNoKCksCisgICAgICAgICAgICAgICAgICAgICAgICBBZGRSZXZpZXdl
clRvQ29tbWl0TWVzc2FnZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgQWRkQXV0aG9yVG9D
b21taXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0ZUNoYW5nZShh
ZGRVUkxzPUZhbHNlLCB2ZXJpZnljcXBsdXM9VHJ1ZSksCisgICAgICAgICAgICAgICAgICAgICAg
ICBDYW5vbmljYWxpemUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFB1c2hDb21taXRUb1dl
YktpdFJlcG8oKSwKICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAgICByZXR1
cm4gcmMKQEAgLTQ3NjIsOCArNDgyMyw4IEBAIGNsYXNzIFZhbGlkYXRlU3F1YXNoZWQoc2hlbGwu
U2hlbGxDb21tYW5kKToKICAgICAgICAgc3VwZXIoVmFsaWRhdGVTcXVhc2hlZCwgc2VsZikuX19p
bml0X18obG9nRW52aXJvbj1GYWxzZSwgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RhcnQoc2VsZiwg
QnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcz1sb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6Ci0g
ICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgREVG
QVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHVi
LmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQ
cm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgZidvcmlnaW4ve0RFRkFVTFRfQlJBTkNIfScpCisg
ICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ0hF
QUQnKQogICAgICAgICBzZWxmLmNvbW1hbmQgPSBbJ2dpdCcsICdsb2cnLCAnLS1vbmVsaW5lJywg
aGVhZF9yZWYsIGYnXntiYXNlX3JlZn0nLCAnLS1tYXgtY291bnQ9MiddCiAKICAgICAgICAgc2Vs
Zi5sb2dfb2JzZXJ2ZXIgPSBCdWZmZXJMb2dPYnNlcnZlckNsYXNzKHdhbnRTdGRlcnI9VHJ1ZSkK
QEAgLTQ3ODgsMTIgKzQ4NDksNiBAQCBjbGFzcyBWYWxpZGF0ZVNxdWFzaGVkKHNoZWxsLlNoZWxs
Q29tbWFuZCk6CiAgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUwogICAgICAgICByZXR1cm4gRkFJ
TFVSRQogCi0gICAgZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICByZXR1cm4gc2Vs
Zi5nZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicpCi0KLSAgICBkZWYgaGlkZVN0ZXBJZihzZWxm
LCByZXN1bHRzLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElmKHN0ZXAp
Ci0KIAogY2xhc3MgQWRkUmV2aWV3ZXJNaXhpbihvYmplY3QpOgogICAgIE5PQk9EWV9TRUQgPSAn
cy9OT0JPRFkgKE9PKlBQKlMhKikve30vZycKQEAgLTQ4MzEsOCArNDg4Niw4IEBAIGNsYXNzIEFk
ZFJldmlld2VyVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3ZXJN
aXhpbik6CiAgICAgICAgIHN1cGVyKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBzZWxmKS5f
X2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCB0aW1lb3V0PTYwLCAqKmt3YXJncykKIAogICAgIGRl
ZiBzdGFydChzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxv
Z09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIu
YmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFBy
b3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9y
ZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVM
VF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIu
aGVhZC5yZWYnLCAnSEVBRCcpCiAKICAgICAgICAgZ210b2Zmc2V0ID0gaW50KHRpbWUubG9jYWx0
aW1lKCkudG1fZ210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAgICAgICBkYXRlID0gZid7aW50
KHRpbWUudGltZSgpKX0ge2dtdG9mZnNldH0nCkBAIC00ODU2LDQ0ICs0OTExLDY3IEBAIGNsYXNz
IEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3
ZXJNaXhpbik6CiAgICAgICAgIHJldHVybiBzdXBlcihBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2Fn
ZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKICAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3Rl
cCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJykgYW5k
IHNlbGYuZ2V0UHJvcGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKKyAgICAgICAgcmV0dXJu
IHNlbGYuZ2V0UHJvcGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKIAogICAgIGRlZiBoaWRl
U3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgogICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9T
dGVwSWYoc3RlcCkKIAogCi1jbGFzcyBBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hl
bGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKLSAgICBuYW1lID0gJ2FkZC1hdXRob3ItdG8t
Y29tbWl0LW1lc3NhZ2UnCitjbGFzcyBEZXRlcm1pbmVBdXRob3Ioc2hlbGwuU2hlbGxDb21tYW5k
LCBTaGVsbE1peGluKToKKyAgICBuYW1lID0gJ2RldGVybWluZS1hdXRob3InCiAgICAgaGFsdE9u
RmFpbHVyZSA9IFRydWUKKyAgICBBVVRIT1JfUkUgPSByZS5jb21waWxlKHInQXV0aG9yOlxzKC4r
IDwuKz4pJykKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHN1
cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1G
YWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCisgICAgICAgIHN1cGVyKERldGVybWluZUF1dGhv
ciwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3Mp
CiAKLSAgICBkZWYgYXV0aG9yKHNlbGYpOgotICAgICAgICBjb250cmlidXRvcnMsIF8gPSBDb250
cmlidXRvcnMubG9hZCgpCi0gICAgICAgIHVzZXJuYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0
aHViLmhlYWQudXNlci5sb2dpbicpCi0gICAgICAgIG93bmVycyA9IHNlbGYuZ2V0UHJvcGVydHko
J293bmVycycsIFtOb25lXSkKLSAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBbdXNlcm5hbWUsIG93
bmVyc1swXV06Ci0gICAgICAgICAgICBpZiBub3QgY2FuZGlkYXRlOgotICAgICAgICAgICAgICAg
IGNvbnRpbnVlCisgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9n
b2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgorICAgICAgICBzZWxmLmNvbW1hbmQgPSBzZWxm
LnNoZWxsX2NvbW1hbmQoImdpdCBsb2cgLTEgfCBncmVwICdeQXV0aG9yOiciKQorCisgICAgICAg
IHNlbGYubG9nX29ic2VydmVyID0gQnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcyh3YW50U3RkZXJyPVRy
dWUpCisgICAgICAgIHNlbGYuYWRkTG9nT2JzZXJ2ZXIoJ3N0ZGlvJywgc2VsZi5sb2dfb2JzZXJ2
ZXIpCisKKyAgICAgICAgcmV0dXJuIHN1cGVyKERldGVybWluZUF1dGhvciwgc2VsZikuc3RhcnQo
KQogCi0gICAgICAgICAgICBuYW1lID0gY29udHJpYnV0b3JzLmdldChjYW5kaWRhdGUubG93ZXIo
KSwge30pLmdldCgnbmFtZScsIE5vbmUpCi0gICAgICAgICAgICBlbWFpbCA9IGNvbnRyaWJ1dG9y
cy5nZXQoY2FuZGlkYXRlLmxvd2VyKCksIHt9KS5nZXQoJ2VtYWlsJywgTm9uZSkKKyAgICBkZWYg
Z2V0UmVzdWx0U3VtbWFyeShzZWxmKToKKyAgICAgICAgbmFtZSA9IHNlbGYuZ2V0UHJvcGVydHko
J2F1dGhvcicpCisgICAgICAgIGlmIG5vdCBuYW1lIG9yIHNlbGYucmVzdWx0cyA9PSBGQUlMVVJF
OgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQgdG8gZmluZCBhdXRob3InfQor
ICAgICAgICBlbGlmIHNlbGYucmVzdWx0cyA9PSBTVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJu
IHsnc3RlcCc6IGYiQXV0aG9yIGlze25hbWV9In0KKyAgICAgICAgcmV0dXJuIHN1cGVyKERldGVy
bWluZUF1dGhvciwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKLSAgICAgICAgICAgIGlmIG5h
bWUgYW5kIGVtYWlsOgotICAgICAgICAgICAgICAgIHJldHVybiBuYW1lLCBlbWFpbAorICAgIGRl
ZiBldmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKToKKyAgICAgICAgcmMgPSBzdXBlcihEZXRlcm1p
bmVBdXRob3IsIHNlbGYpLmV2YWx1YXRlQ29tbWFuZChzZWxmLCBjbWQpCisgICAgICAgIGlmIHJj
ICE9IFNVQ0NFU1M6CisgICAgICAgICAgICByZXR1cm4gcmMKIAotICAgICAgICByZXR1cm4gTm9u
ZSwgTm9uZQorICAgICAgICBsb2dfdGV4dCA9IHNlbGYubG9nX29ic2VydmVyLmdldFN0ZG91dCgp
CisgICAgICAgIGxpbmVzID0gbG9nX3RleHQuc3BsaXRsaW5lcygpCisgICAgICAgIGlmIGxlbihs
aW5lcykgIT0gMToKKyAgICAgICAgICAgIHJldHVybiBGQUlMVVJFCisgICAgICAgIG1hdGNoID0g
c2VsZi5BVVRIT1JfUkUubWF0Y2gobGluZXNbMF0pCisgICAgICAgIGlmIG1hdGNoOgorICAgICAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnYXV0aG9yJywgbWF0Y2guZ3JvdXAoMSkpCisgICAgICAg
ICAgICByZXR1cm4gU1VDQ0VTUworICAgICAgICByZXR1cm4gRkFJTFVSRQorCitjbGFzcyBBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGlu
KToKKyAgICBuYW1lID0gJ2FkZC1hdXRob3ItdG8tY29tbWl0LW1lc3NhZ2UnCisgICAgaGFsdE9u
RmFpbHVyZSA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAg
ICAgIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0X18obG9nRW52
aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RhcnQoc2VsZik6
Ci0gICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywg
REVGQVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0
aHViLmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGJhc2VfcmVmID0gc2VsZi5n
ZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgZidvcmlnaW4ve0RFRkFVTFRfQlJBTkNIfScp
CisgICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywg
J0hFQUQnKQogCiAgICAgICAgIGdtdG9mZnNldCA9IGludCh0aW1lLmxvY2FsdGltZSgpLnRtX2dt
dG9mZiAqIDEwMCAvICg2MCAqIDYwKSkKICAgICAgICAgdGltZXN0YW1wID0gZid7aW50KHRpbWUu
dGltZSgpKX0ge2dtdG9mZnNldH0nCiAKLSAgICAgICAgbmFtZSwgZW1haWwgPSBzZWxmLmF1dGhv
cigpCi0gICAgICAgIHBhdGNoX2J5ID0gZiJQYXRjaCBieSB7bmFtZX0gPHtlbWFpbH0+IG9uIHtk
YXRlLnRvZGF5KCkuc3RyZnRpbWUoJyVZLSVtLSVkJyl9IgorICAgICAgICBhdXRob3IgPSBzZWxm
LmdldFByb3BlcnR5KCdhdXRob3InKQorICAgICAgICBwYXRjaF9ieSA9IGYiUGF0Y2ggYnkge2F1
dGhvcn0gb24ge2RhdGUudG9kYXkoKS5zdHJmdGltZSgnJVktJW0tJWQnKX0iCiAKICAgICAgICAg
c2VsZi5jb21tYW5kID0gWwogICAgICAgICAgICAgJ2dpdCcsICdmaWx0ZXItYnJhbmNoJywgJy1m
JywKQEAgLTQ5MTEsMTYgKzQ5ODksMTIgQEAgY2xhc3MgQWRkQXV0aG9yVG9Db21taXRNZXNzYWdl
KHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3ZXJNaXhpbik6CiAgICAgICAgIGlmIHNlbGYu
cmVzdWx0cyA9PSBGQUlMVVJFOgogICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdGYWlsZWQg
dG8gYWRkIGF1dGhvciB0byBjb21taXQgbWVzc2FnZSd9CiAgICAgICAgIGVsaWYgc2VsZi5yZXN1
bHRzID09IFNVQ0NFU1M6Ci0gICAgICAgICAgICBuYW1lLCBfID0gc2VsZi5hdXRob3IoKQotICAg
ICAgICAgICAgcmV0dXJuIHsnc3RlcCc6IGYiQWRkZWQge25hbWV9IGFzIGF1dGhvciJ9CisgICAg
ICAgICAgICBhdXRob3IgPSBzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKQorICAgICAgICAgICAg
cmV0dXJuIHsnc3RlcCc6IGYiQWRkZWQge2F1dGhvcn0gYXMgYXV0aG9yIn0KICAgICAgICAgcmV0
dXJuIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFy
eSgpCiAKICAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAgIGlmIG5vdCBzZWxm
LmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJyk6Ci0gICAgICAgICAgICByZXR1cm4gRmFsc2UK
LQotICAgICAgICBuYW1lLCBlbWFpbCA9IHNlbGYuYXV0aG9yKCkKLSAgICAgICAgcmV0dXJuIG5h
bWUgYW5kIGVtYWlsCisgICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKQog
CiAgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3RlcCk6CiAgICAgICAgIHJldHVy
biBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKQpAQCAtNDk5MSw4ICs1MDY1LDggQEAgY2xhc3MgVmFs
aWRhdGVDb21taXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogCiAg
ICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcwogICAgIGRlZiBydW4oc2VsZiwgQnVmZmVyTG9nT2Jz
ZXJ2ZXJDbGFzcz1sb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZlcik6Ci0gICAgICAgIGJhc2Vf
cmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgREVGQVVMVF9CUkFOQ0gp
Ci0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywg
REVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0
aHViLmJhc2UucmVmJywgZidvcmlnaW4ve0RFRkFVTFRfQlJBTkNIfScpCisgICAgICAgIGhlYWRf
cmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ0hFQUQnKQogCiAgICAg
ICAgIHNlbGYuY29tbWFuZHMgPSBbXQogICAgICAgICBjb21tYW5kcyA9IFsKQEAgLTUwMjcsNyAr
NTEwMSw3IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNl
LCBTaGVsbE1peGluKToKICAgICAgICAgaWYgcmMgPT0gRkFJTFVSRToKICAgICAgICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ2NvbW1lbnRfdGV4dCcsIGYie3NlbGYuc3VtbWFyeX0sIGJsb2NraW5n
IFBSICN7c2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicpfSIpCiAgICAgICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdidWlsZF9maW5pc2hfc3VtbWFyeScsICdDb21taXQgbWVzc2FnZSB2
YWxpZGF0aW9uIGZhaWxlZCcpCi0gICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJD
dXJyZW50U3RlcChbTGVhdmVDb21tZW50KCksICBCbG9ja1B1bGxSZXF1ZXN0KCldKQorICAgICAg
ICAgICAgc2VsZi5idWlsZC5hZGRTdGVwc0FmdGVyQ3VycmVudFN0ZXAoW0xlYXZlQ29tbWVudCgp
LCBTZXRDb21taXRRdWV1ZU1pbnVzRmxhZ09uUGF0Y2goKSwgQmxvY2tQdWxsUmVxdWVzdCgpXSkK
ICAgICAgICAgcmV0dXJuIHJjCiAKICAgICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKQEAg
LTUwMzUsMTIgKzUxMDksNiBAQCBjbGFzcyBWYWxpZGF0ZUNvbW1pdE1lc3NhZ2Uoc3RlcHMuU2hl
bGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAgICAgICAgICAgICByZXR1cm4geydzdGVwJzogc2Vs
Zi5zdW1tYXJ5fQogICAgICAgICByZXR1cm4gc3VwZXIoVmFsaWRhdGVDb21taXRNZXNzYWdlLCBz
ZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAotICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToK
LSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInKQotCi0gICAg
ZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3RlcCk6Ci0gICAgICAgIHJldHVybiBub3Qg
c2VsZi5kb1N0ZXBJZihzdGVwKQotCiAKIGNsYXNzIENhbm9uaWNhbGl6ZShzdGVwcy5TaGVsbFNl
cXVlbmNlLCBTaGVsbE1peGluKToKICAgICBuYW1lID0gJ2Nhbm9uaWNhbGl6ZS1jb21taXQnCkBA
IC01MDU2LDE1ICs1MTI0LDE0IEBAIGNsYXNzIENhbm9uaWNhbGl6ZShzdGVwcy5TaGVsbFNlcXVl
bmNlLCBTaGVsbE1peGluKToKICAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCiAKICAgICAgICAg
YmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JS
QU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5y
ZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5
KCdnaXRodWIuaGVhZC5yZWYnLCBOb25lKQogCiAgICAgICAgIGNvbW1hbmRzID0gW10KICAgICAg
ICAgaWYgc2VsZi5yZWJhc2VfZW5hYmxlZDoKLSAgICAgICAgICAgIGNvbW1hbmRzID0gWwotICAg
ICAgICAgICAgICAgIFsnZ2l0JywgJ3B1bGwnLCAnb3JpZ2luJywgYmFzZV9yZWYsICctLXJlYmFz
ZSddLAotICAgICAgICAgICAgICAgIFsnZ2l0JywgJ2JyYW5jaCcsICctZicsIGJhc2VfcmVmLCBo
ZWFkX3JlZl0sCi0gICAgICAgICAgICAgICAgWydnaXQnLCAnY2hlY2tvdXQnLCBiYXNlX3JlZl0s
Ci0gICAgICAgICAgICBdCisgICAgICAgICAgICBjb21tYW5kcyA9IFtbJ2dpdCcsICdwdWxsJywg
J29yaWdpbicsIGJhc2VfcmVmLCAnLS1yZWJhc2UnXV0KKyAgICAgICAgICAgIGlmIGhlYWRfcmVm
OgorICAgICAgICAgICAgICAgIGNvbW1hbmRzICs9IFtbJ2dpdCcsICdicmFuY2gnLCAnLWYnLCBi
YXNlX3JlZiwgaGVhZF9yZWZdXQorICAgICAgICAgICAgY29tbWFuZHMgKz0gW1snZ2l0JywgJ2No
ZWNrb3V0JywgYmFzZV9yZWZdXQogICAgICAgICBjb21tYW5kcy5hcHBlbmQoWydweXRob24zJywg
J1Rvb2xzL1NjcmlwdHMvZ2l0LXdlYmtpdCcsICdjYW5vbmljYWxpemUnLCAnLW4nLCAnMScgaWYg
c2VsZi5yZWJhc2VfZW5hYmxlZCBlbHNlICczJ10pCiAKICAgICAgICAgZm9yIGNvbW1hbmQgaW4g
Y29tbWFuZHM6CkBAIC01MjQ2LDMgKzUzMTMsMTMgQEAgY2xhc3MgUmVzZXRHaXRTdm4oc2hlbGwu
U2hlbGxDb21tYW5kKToKICAgICAgICAgaWYgc2VsZi5yZXN1bHRzID09IEZBSUxVUkU6CiAgICAg
ICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxlZCB0byByZW1vdmUgZ2l0LXN2biByZWZlcmVu
Y2VzJ30KICAgICAgICAgcmV0dXJuIHN1cGVyKEdpdFN2bkZldGNoLCBzZWxmKS5nZXRSZXN1bHRT
dW1tYXJ5KCkKKworCitjbGFzcyBTaG93Q29tbWl0TWVzc2FnZShzaGVsbC5TaGVsbENvbW1hbmQp
OgorICAgIG5hbWUgPSAnc2hvdy1jb21taXQtbWVzc2FnZScKKyAgICBoYWx0T25GYWlsdXJlID0g
RmFsc2UKKyAgICBmbHVua09uRmFpbHVyZSA9IEZhbHNlCisgICAgY29tbWFuZCA9IFsnZ2l0Jywg
J2xvZycsICctMSddCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorICAgICAg
ICBzdXBlcihTaG93Q29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxz
ZSwgdGltZW91dD0zMDAsICoqa3dhcmdzKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3Rl
cHNfdW5pdHRlc3QucHkKaW5kZXggODdjOWFhZDMzN2QyLi5hN2U0MmQwOWM2NmMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKKysrIGIvVG9v
bHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQpAQCAtNTgyNywxMCArNTgy
NywxOCBAQCBjbGFzcyBUZXN0VmFsaWRhdGVTcXVhc2hlZChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9u
cywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAg
cmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9w
YXRjaChzZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5zZXR1
cFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdwYXRj
aF9pZCcsICcxMjM0JykKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TS0lQUEVE
LCBzdGF0ZV9zdHJpbmc9J2ZpbmlzaGVkIChza2lwcGVkKScpCisgICAgICAgIHNlbGYuZXhwZWN0
UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBlY3RTaGVsbCh3b3JrZGlyPSd3a2Rpcics
CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dFbnZpcm9uPUZhbHNlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgY29tbWFuZD1bJ2dpdCcsICdsb2cnLCAnLS1vbmVsaW5lJywgJ0hFQUQnLCAn
Xm9yaWdpbi9tYWluJywgJy0tbWF4LWNvdW50PTInXSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICkKKyAgICAgICAgICAgICsgMAorICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlv
Jywgc3Rkb3V0PSdlMWViMjQ2MDM0OTMgKEhFQUQgLT4gZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gp
IEZpcnN0IGxpbmUgb2YgY29tbWl0XG4nKSwKKyAgICAgICAgKQorICAgICAgICBzZWxmLmV4cGVj
dE91dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nVmVyaWZpZWQgYnJhbmNoIGlz
IHNxdWFzaGVkJykKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAgICBkZWYgdGVz
dF9zdWNjZXNzKHNlbGYpOgpAQCAtNTk4OSw5ICs1OTk3LDggQEAgY2xhc3MgVGVzdEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENh
c2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRv
d25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9wYXRjaChzZWxmKToKKyAgICBk
ZWYgdGVzdF9za2lwcGVkX25vX2F1dGhvcihzZWxmKToKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAo
QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3Bh
dGNoX2lkJywgJzEyMzQnKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQ
RUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykKICAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCiAKQEAgLTYwMDIsMTEgKzYwMDksMTAgQEAgY2xhc3MgVGVzdEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENh
c2UpOgogICAgICAgICB0aW1lLnRpbWUgPSBsYW1iZGE6IGZpeGVkX3RpbWUKIAogICAgICAgICBz
ZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAgICAgICAgc2VsZi5z
ZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0JykKICAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdnaXRodWIuaGVhZC5yZWYnLCAnZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnKQotICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC51c2VyLmxvZ2luJywgJ3dlYmtpdC1yZXZpZXdl
cicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ293bmVycycsIFsnd2Via2l0LWNvbW1pdC1x
dWV1ZSddKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdhdXRob3InLCAnV2ViS2l0IFJldmll
d2VyIDxyZXZpZXdlckBhcHBsZS5jb20+JykKICAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21t
YW5kcygKICAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKICAgICAgICAg
ICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCkBAIC02MDIxLDM2ICs2MDI3LDM1IEBA
IGNsYXNzIFRlc3RBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoQnVpbGRTdGVwTWl4aW5BZGRpdGlv
bnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICsgMAogICAgICAgICAgICAgKyBF
eHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ3JlZnMvaGVhZHMvZW5nL3B1bGwt
cmVxdWVzdC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIpLAogICAgICAgICApCi0gICAgICAgIHNl
bGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdBZGRlZCBXZWJL
aXQgUmV2aWV3ZXIgYXMgYXV0aG9yJykKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3Vs
dD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBSZXZpZXdlciA8cmV2aWV3ZXJA
YXBwbGUuY29tPiBhcyBhdXRob3InKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAot
ICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfZmFsbGJhY2soc2VsZik6CisgICAgZGVmIHRlc3Rfc3VjY2Vz
c19wYXRjaChzZWxmKToKICAgICAgICAgZ210b2Zmc2V0ID0gaW50KHRpbWUubG9jYWx0aW1lKCku
dG1fZ210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAgICAgICBmaXhlZF90aW1lID0gaW50KHRp
bWUudGltZSgpKQogICAgICAgICB0aW1lc3RhbXAgPSBmJ3tpbnQodGltZS50aW1lKCkpfSB7Z210
b2Zmc2V0fScKICAgICAgICAgdGltZS50aW1lID0gbGFtYmRhOiBmaXhlZF90aW1lCiAKICAgICAg
ICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInLCAnMTIzNCcpCi0gICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsICdtYWluJykKLSAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNoJykKLSAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQudXNlci5sb2dpbicsICd1bnJlZ2lzdGVy
ZWQtYXV0aG9yJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnb3duZXJzJywgWyd3ZWJraXQt
Y29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhvcicsICdXZWJL
aXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQogICAgICAgICBzZWxmLmV4cGVjdFJl
bW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAog
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVudj1zZWxmLkVOViwKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9
NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZGljdCgKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHSVRfQ09NTUlUVEVSX0VNQUlMPSdld3NAd2Via2l0Lm9yZycsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR0lUX0NPTU1JVFRFUl9OQU1FPSdFV1MnLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEZJTFRFUl9CUkFOQ0hfU1FVRUxDSF9XQVJOSU5HPScxJywKKyAg
ICAgICAgICAgICAgICAgICAgICAgICksIHRpbWVvdXQ9NjAsCiAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tYW5kPVsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2l0JywgJ2ZpbHRl
ci1icmFuY2gnLCAnLWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWVudi1maWx0
ZXInLCBmIkdJVF9BVVRIT1JfREFURT0ne3RpbWVzdGFtcH0nO0dJVF9DT01NSVRURVJfREFURT0n
e3RpbWVzdGFtcH0nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1tc2ctZmlsdGVy
JywgZidzZWQgIjEsL14kLyBzL14kL1xcblBhdGNoIGJ5IFdlYktpdCBDb21taXR0ZXIgPGNvbW1p
dHRlckB3ZWJraXQub3JnPiBvbiB7ZGF0ZS50b2RheSgpLnN0cmZ0aW1lKCIlWS0lbS0lZCIpfS9n
IicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNo
Li4ubWFpbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbXNnLWZpbHRlcicsIGYn
c2VkICIxLC9eJC8gcy9eJC9cXG5QYXRjaCBieSBXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFw
cGxlLmNvbT4gb24ge2RhdGUudG9kYXkoKS5zdHJmdGltZSgiJVktJW0tJWQiKX0vZyInLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICdIRUFELi4ub3JpZ2luL21haW4nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICsgMAotICAgICAgICAgICAgKyBFeHBlY3RT
aGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ3JlZnMvaGVhZHMvZW5nL3B1bGwtcmVxdWVz
dC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIpLAorICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5s
b2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ21haW4nIHdhcyByZXdyaXR0ZW5cbiIpLAogICAgICAg
ICApCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3Ry
aW5nPSdBZGRlZCBXZWJLaXQgQ29tbWl0dGVyIGFzIGF1dGhvcicpCisgICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdBZGRlZCBXZWJLaXQgUmV2
aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4gYXMgYXV0aG9yJykKICAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCiAKICAgICBkZWYgdGVzdF9mYWlsdXJlKHNlbGYpOgpAQCAtNjA2MCwxMSAr
NjA2NSwxMCBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxkU3RlcE1p
eGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRpbWUudGltZSA9IGxh
bWJkYTogZml4ZWRfdGltZQogCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1dGhvclRvQ29t
bWl0TWVzc2FnZSgpKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJywg
JzEyMzQnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCAnbWFp
bicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdlbmcvcHVs
bC1yZXF1ZXN0LWJyYW5jaCcpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFk
LnVzZXIubG9naW4nLCAnd2Via2l0LWNvbW1pdC1xdWV1ZScpCiAgICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ293bmVycycsIFsnd2Via2l0LWNvbW1pdC1xdWV1ZSddKQorICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdhdXRob3InLCAnV2ViS2l0IENvbW1pdHRlciA8Y29tbWl0dGVyQHdlYmtpdC5v
cmc+JykKICAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKICAgICAgICAgICAgIEV4
cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vu
dmlyb249RmFsc2UsCkBAIC02MDgyLDEzICs2MDg2LDYgQEAgY2xhc3MgVGVzdEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PUZBSUxVUkUsIHN0YXRlX3N0cmlu
Zz0nRmFpbGVkIHRvIGFkZCBhdXRob3IgdG8gY29tbWl0IG1lc3NhZ2UnKQogICAgICAgICByZXR1
cm4gc2VsZi5ydW5TdGVwKCkKIAotICAgIGRlZiB0ZXN0X25vX293bmVyKHNlbGYpOgotICAgICAg
ICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0JykKLSAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQotICAgICAgICBzZWxmLmV4cGVjdE91
dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykK
LSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCi0KIAogY2xhc3MgVGVzdEFkZFJldmlld2Vy
VG9DaGFuZ2VMb2coQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICBFTlYgPSBkaWN0KApAQCAtNjIxMywxMCArNjIxMCwyMiBAQCBjbGFzcyBUZXN0VmFsaWRh
dGVDb21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93
bkJ1aWxkU3RlcCgpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNlbGYpOgorICAgIGRl
ZiB0ZXN0X3BhdGNoKHNlbGYpOgogICAgICAgICBzZWxmLnNldHVwU3RlcChWYWxpZGF0ZUNvbW1p
dE1lc3NhZ2UoKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcp
Ci0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwgc3RhdGVfc3RyaW5n
PSdmaW5pc2hlZCAoc2tpcHBlZCknKQorICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRz
KAorICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAgICAg
ICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRp
bWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcsICct
YycsICJnaXQgbG9nIEhFQUQgXm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAnT08qUFAqUyEnICYmIGVj
aG8gJ0NvbW1pdCBtZXNzYWdlIGNvbnRhaW5zIChPT1BTISknIHx8IHRlc3QgJD8gLWVxIDEiXSkK
KyAgICAgICAgICAgICsgMCwgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAg
ICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcs
ICctYycsICJnaXQgbG9nIEhFQUQgXm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAnXFwoUmV2aWV3ZWQg
YnlcXHxVbnJldmlld2VkXFx8UnViYmVyLXN0YW1wZWQgYnlcXHxSdWJiZXIgc3RhbXBlZCBieVxc
KScgfHwgZWNobyAnTm8gcmV2aWV3ZXIgaW5mb3JtYXRpb24gaW4gY29tbWl0IG1lc3NhZ2UnIl0p
CisgICAgICAgICAgICArIDAKKyAgICAgICAgICAgICsgRXhwZWN0U2hlbGwubG9nKCdzdGRpbycs
IHN0ZG91dD0nJyksCisgICAgICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3Vs
dD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J1ZhbGlkYXRlZCBjb21taXQgbWVzc2FnZScpCiAgICAg
ICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCiAgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmKToK
LS0gCjIuMzAuMSAoQXBwbGUgR2l0LTEzMCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459496</attachid>
            <date>2022-05-17 07:42:52 -0700</date>
            <delta_ts>2022-05-17 08:37:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240461-20220517074252.patch</filename>
            <type>text/plain</type>
            <size>31163</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBkN2NkYjg1YTM3Nzg5Njk1NDRkMGJmODBmYWM2OTg1YjQ2MWVmY2NiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDA3OjM5OjM4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rv
cmllcy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6IE9ubHkgYWNjZXB0IHBhdGNo
ZXMgd2l0aCBjb21taXQgbWVzc2FnZXMsCnJlc3BlY3QgdGhvc2UgY29tbWl0IG1lc3NhZ2VzLgoo
TWVyZ2VRdWV1ZUZhY3RvcnlCYXNlLl9faW5pdF9fKTogVXNlIGNvbW1pdCBhdXRob3IgaW4gY29t
bWl0LgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5Ogoo
VGVzdEV4cGVjdGVkQnVpbGRTdGVwcy50ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyk6CiogQ0lTdXBw
b3J0L2V3cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKTogQWRkIHN0ZXAgd2hpY2ggY29t
bWl0cyBhIHBhdGNoLCBpbmNsdWRpbmcgaXQncyBjb21taXQgbWVzc2FnZS4KKFB1c2hDb21taXRU
b1dlYktpdFJlcG8uZXZhbHVhdGVDb21tYW5kKTogVXNlIEdpdEh1YiBjaGVja291dCBvbiBDb21t
aXQtUXVldWUuCihWYWxpZGF0ZVNxdWFzaGVkLnN0YXJ0KTogU3VwcG9ydCBjb21taXR0ZWQgcGF0
Y2hlcy4KKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLnN0YXJ0KTogRGl0dG8uCihEZXRlcm1p
bmVBdXRob3IpOiBFeHRyYWN0IGF1dGhvciBmcm9tIGxvY2FsIGNvbW1pdC4KKEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZSk6IFVzZSAnYXV0aG9yJyBwcm9wZXJ0eSBhcyBzZXQgYnkgJ0RldGVybWlu
ZUF1dGhvcicuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuX2ZpbGVzKTogU3VwcG9ydCBwYXRjaGVz
LgooVmFsaWRhdGVDb21taXRNZXNzYWdlLnJ1bik6IFN1cHBvcnQgY29tbWl0dGVkIHBhdGNoZXMu
CihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZ2V0UmVzdWx0U3VtbWFyeSk6IFN1cHBvcnQgcGF0Y2hl
cy4KKENhbm9uaWNhbGl6ZS5ydW4pOiBTdXBwb3J0IGNvbW1pdHRlZCBwYXRjaGVzLgooVmFsaWRh
dGVTcXVhc2hlZC5kb1N0ZXBJZik6IERlbGV0ZWQuCihWYWxpZGF0ZVNxdWFzaGVkLmhpZGVTdGVw
SWYpOiBEZWxldGVkLgooQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLmF1dGhvcik6IERlbGV0ZWQu
CihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZG9TdGVwSWYpOiBEZWxldGVkLgooVmFsaWRhdGVDb21t
aXRNZXNzYWdlLmhpZGVTdGVwSWYpOiBEZWxldGVkLgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHNfdW5pdHRlc3QucHk6Ci0tLQogVG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgIDMyICsrKwogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0
b3JpZXMucHkgICAgICAgIHwgIDI4ICstLQogLi4uL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9y
aWVzX3VuaXR0ZXN0LnB5IHwgIDE5ICstCiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBz
LnB5ICAgICAgICAgICAgfCAxODcgKysrKysrKysrKysrLS0tLS0tCiBUb29scy9DSVN1cHBvcnQv
ZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5ICAgfCAgNjkgKysrKy0tLQogNSBmaWxlcyBjaGFu
Z2VkLCAyMjkgaW5zZXJ0aW9ucygrKSwgMTA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyY2QyN2E4OWFmMDIuLmEzYmVm
NDIzOGZmYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTA1LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJk
QGFwcGxlLmNvbT4KKworICAgICAgICBbQ29tbWl0LVF1ZXVlXSBGb3JiaWQgQ2hhbmdlTG9nIG1v
ZGlmaWNhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjQwNDYxCisgICAgICAgIDxyZGFyOi8vOTMzNTE3ODM+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisgICAgCisgICAgICAgICogQ0lTdXBwb3J0L2V3cy1idWlsZC9m
YWN0b3JpZXMucHk6CisgICAgICAgIChDb21taXRRdWV1ZUZhY3RvcnkuX19pbml0X18pOiBPbmx5
IGFjY2VwdCBwYXRjaGVzIHdpdGggY29tbWl0IG1lc3NhZ2VzLAorICAgICAgICByZXNwZWN0IHRo
b3NlIGNvbW1pdCBtZXNzYWdlcy4KKyAgICAgICAgKE1lcmdlUXVldWVGYWN0b3J5QmFzZS5fX2lu
aXRfXyk6IFVzZSBjb21taXQgYXV0aG9yIGluIGNvbW1pdC4KKyAgICAgICAgKiBDSVN1cHBvcnQv
ZXdzLWJ1aWxkL2ZhY3Rvcmllc191bml0dGVzdC5weToKKyAgICAgICAgKFRlc3RFeHBlY3RlZEJ1
aWxkU3RlcHMudGVzdF9hbGxfZXhwZWN0ZWRfc3RlcHMpOgorICAgICAgICAqIENJU3VwcG9ydC9l
d3MtYnVpbGQvc3RlcHMucHk6CisgICAgICAgIChDb21taXRQYXRjaCk6IEFkZCBzdGVwIHdoaWNo
IGNvbW1pdHMgYSBwYXRjaCwgaW5jbHVkaW5nIGl0J3MgY29tbWl0IG1lc3NhZ2UuCisgICAgICAg
IChQdXNoQ29tbWl0VG9XZWJLaXRSZXBvLmV2YWx1YXRlQ29tbWFuZCk6IFVzZSBHaXRIdWIgY2hl
Y2tvdXQgb24gQ29tbWl0LVF1ZXVlLgorICAgICAgICAoVmFsaWRhdGVTcXVhc2hlZC5zdGFydCk6
IFN1cHBvcnQgY29tbWl0dGVkIHBhdGNoZXMuCisgICAgICAgIChBZGRSZXZpZXdlclRvQ29tbWl0
TWVzc2FnZS5zdGFydCk6IERpdHRvLgorICAgICAgICAoRGV0ZXJtaW5lQXV0aG9yKTogRXh0cmFj
dCBhdXRob3IgZnJvbSBsb2NhbCBjb21taXQuCisgICAgICAgIChBZGRBdXRob3JUb0NvbW1pdE1l
c3NhZ2UpOiBVc2UgJ2F1dGhvcicgcHJvcGVydHkgYXMgc2V0IGJ5ICdEZXRlcm1pbmVBdXRob3In
LgorICAgICAgICAoVmFsaWRhdGVDb21taXRNZXNzYWdlLl9maWxlcyk6IFN1cHBvcnQgcGF0Y2hl
cy4KKyAgICAgICAgKFZhbGlkYXRlQ29tbWl0TWVzc2FnZS5ydW4pOiBTdXBwb3J0IGNvbW1pdHRl
ZCBwYXRjaGVzLgorICAgICAgICAoVmFsaWRhdGVDb21taXRNZXNzYWdlLmdldFJlc3VsdFN1bW1h
cnkpOiBTdXBwb3J0IHBhdGNoZXMuCisgICAgICAgIChDYW5vbmljYWxpemUucnVuKTogU3VwcG9y
dCBjb21taXR0ZWQgcGF0Y2hlcy4KKyAgICAgICAgKFZhbGlkYXRlU3F1YXNoZWQuZG9TdGVwSWYp
OiBEZWxldGVkLgorICAgICAgICAoVmFsaWRhdGVTcXVhc2hlZC5oaWRlU3RlcElmKTogRGVsZXRl
ZC4KKyAgICAgICAgKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZS5hdXRob3IpOiBEZWxldGVkLgor
ICAgICAgICAoVmFsaWRhdGVDb21taXRNZXNzYWdlLmRvU3RlcElmKTogRGVsZXRlZC4KKyAgICAg
ICAgKFZhbGlkYXRlQ29tbWl0TWVzc2FnZS5oaWRlU3RlcElmKTogRGVsZXRlZC4KKyAgICAgICAg
KiBDSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5OgorCiAyMDIyLTA1LTE2ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIERlbW90ZSAt
W1dLV2ViVmlldyByZXRyaWV2ZUFjY2Vzc2liaWxpdHlUcmVlRGF0YTpdIHRvIFNQSQpkaWZmIC0t
Z2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkgYi9Ub29scy9DSVN1
cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQppbmRleCBlODg0YzMyYTA2YzAuLjE4ZDlmZDhm
MGE4NyAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkK
KysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkKQEAgLTI0LDEwICsy
NCwxMCBAQAogZnJvbSBidWlsZGJvdC5wcm9jZXNzIGltcG9ydCBmYWN0b3J5CiBmcm9tIGJ1aWxk
Ym90LnN0ZXBzIGltcG9ydCB0cmlnZ2VyCiAKLWZyb20gc3RlcHMgaW1wb3J0IChBZGRBdXRob3JU
b0NvbW1pdE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBBcHBseVBhdGNoLCBB
cHBseVdhdGNoTGlzdCwgQ2Fub25pY2FsaXplLAorZnJvbSBzdGVwcyBpbXBvcnQgKEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UsIEFwcGx5UGF0Y2gs
IEFwcGx5V2F0Y2hMaXN0LCBDYW5vbmljYWxpemUsIENvbW1pdFBhdGNoLAogICAgICAgICAgICAg
ICAgICAgIENoZWNrT3V0UHVsbFJlcXVlc3QsIENoZWNrT3V0U291cmNlLCBDaGVja091dFNwZWNp
ZmljUmV2aXNpb24sIENoZWNrQ2hhbmdlUmVsZXZhbmNlLAogICAgICAgICAgICAgICAgICAgIENo
ZWNrUGF0Y2hTdGF0dXNPbkVXU1F1ZXVlcywgQ2hlY2tTdHlsZSwgQ2xlYW5HaXRSZXBvLCBDb21w
aWxlSlNDLCBDb21waWxlV2ViS2l0LCBDb25maWd1cmVCdWlsZCwgQ3JlYXRlTG9jYWxHSVRDb21t
aXQsCi0gICAgICAgICAgICAgICAgICAgRG93bmxvYWRCdWlsdFByb2R1Y3QsIEV4dHJhY3RCdWls
dFByb2R1Y3QsIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2Rp
ZmllZExheW91dFRlc3RzLCBHaXRTdm5GZXRjaCwKKyAgICAgICAgICAgICAgICAgICBEZXRlcm1p
bmVBdXRob3IsIERvd25sb2FkQnVpbHRQcm9kdWN0LCBFeHRyYWN0QnVpbHRQcm9kdWN0LCBGZXRj
aEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzLCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0
cywgR2l0U3ZuRmV0Y2gsCiAgICAgICAgICAgICAgICAgICAgSW5zdGFsbEd0a0RlcGVuZGVuY2ll
cywgSW5zdGFsbFdwZURlcGVuZGVuY2llcywgS2lsbE9sZFByb2Nlc3NlcywgUHJpbnRDb25maWd1
cmF0aW9uLCBQdXNoQ29tbWl0VG9XZWJLaXRSZXBvLAogICAgICAgICAgICAgICAgICAgIFJ1bkFQ
SVRlc3RzLCBSdW5CaW5kaW5nc1Rlc3RzLCBSdW5CdWlsZFdlYktpdE9yZ1VuaXRUZXN0cywgUnVu
QnVpbGRib3RDaGVja0NvbmZpZ0ZvckJ1aWxkV2ViS2l0LCBSdW5CdWlsZGJvdENoZWNrQ29uZmln
Rm9yRVdTLAogICAgICAgICAgICAgICAgICAgIFJ1bkVXU1VuaXRUZXN0cywgUnVuUmVzdWx0c2Ri
cHlUZXN0cywgUnVuSmF2YVNjcmlwdENvcmVUZXN0cywgUnVuV2ViS2l0MVRlc3RzLCBSdW5XZWJL
aXRQZXJsVGVzdHMsIFJ1bldlYktpdFB5UHl0aG9uMlRlc3RzLApAQCAtMjkyLDE1ICsyOTIsMjEg
QEAgY2xhc3MgQ29tbWl0UXVldWVGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKICAgICAg
ICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ2hhbmdlKHZlcmlmeWNxcGx1cz1UcnVlKSkKICAgICAg
ICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ29tbWl0dGVyQW5kUmV2aWV3ZXIoKSkKICAgICAgICAg
c2VsZi5hZGRTdGVwKFByaW50Q29uZmlndXJhdGlvbigpKQotICAgICAgICBzZWxmLmFkZFN0ZXAo
Q2xlYW5HaXRSZXBvKGRlZmF1bHRfYnJhbmNoPSdtYXN0ZXInKSkKLSAgICAgICAgc2VsZi5hZGRT
dGVwKENoZWNrT3V0U291cmNlKHJlcG91cmw9J2h0dHBzOi8vZ2l0LndlYmtpdC5vcmcvZ2l0L1dl
YktpdC1odHRwcycpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoQ2xlYW5HaXRSZXBvKCkpCisgICAg
ICAgIHNlbGYuYWRkU3RlcChDaGVja091dFNvdXJjZSgpKQorICAgICAgICBzZWxmLmFkZFN0ZXAo
R2l0U3ZuRmV0Y2goKSkgICMgRklYTUU6IFJlbW92ZSB3aGVuIG1pZ3JhdGluZyB0byBwdXJlIGdp
dAogICAgICAgICBzZWxmLmFkZFN0ZXAoRmV0Y2hCcmFuY2hlcygpKQogICAgICAgICBzZWxmLmFk
ZFN0ZXAoU2hvd0lkZW50aWZpZXIoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFZlcmlmeUdpdEh1
YkludGVncml0eSgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVXBkYXRlV29ya2luZ0RpcmVjdG9y
eSgpKQotICAgICAgICBzZWxmLmFkZFN0ZXAoQXBwbHlQYXRjaCgpKQotICAgICAgICBzZWxmLmFk
ZFN0ZXAoVmFsaWRhdGVDaGFuZ2VMb2dBbmRSZXZpZXdlcigpKQotICAgICAgICBzZWxmLmFkZFN0
ZXAoRmluZE1vZGlmaWVkQ2hhbmdlTG9ncygpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoQ29tbWl0
UGF0Y2goKSkKKworICAgICAgICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQorICAg
ICAgICBzZWxmLmFkZFN0ZXAoQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAg
c2VsZi5hZGRTdGVwKERldGVybWluZUF1dGhvcigpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoQWRk
QXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNv
bW1pdE1lc3NhZ2UoKSkKKwogICAgICAgICBzZWxmLmFkZFN0ZXAoS2lsbE9sZFByb2Nlc3Nlcygp
KQogICAgICAgICBzZWxmLmFkZFN0ZXAoQ29tcGlsZVdlYktpdChza2lwVXBsb2FkPVRydWUpKQog
ICAgICAgICBzZWxmLmFkZFN0ZXAoS2lsbE9sZFByb2Nlc3NlcygpKQpAQCAtMzA4LDExICszMTQs
OCBAQCBjbGFzcyBDb21taXRRdWV1ZUZhY3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgogICAg
ICAgICBzZWxmLmFkZFN0ZXAoQ2hlY2tQYXRjaFN0YXR1c09uRVdTUXVldWVzKCkpCiAgICAgICAg
IHNlbGYuYWRkU3RlcChSdW5XZWJLaXRUZXN0cygpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmFs
aWRhdGVDaGFuZ2UoYWRkVVJMcz1GYWxzZSwgdmVyaWZ5Y3FwbHVzPVRydWUpKQotICAgICAgICBz
ZWxmLmFkZFN0ZXAoQ2hlY2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9y
Zy9naXQvV2ViS2l0LWh0dHBzJykpCi0gICAgICAgIHNlbGYuYWRkU3RlcChTaG93SWRlbnRpZmll
cigpKQotICAgICAgICBzZWxmLmFkZFN0ZXAoVXBkYXRlV29ya2luZ0RpcmVjdG9yeSgpKQotICAg
ICAgICBzZWxmLmFkZFN0ZXAoQXBwbHlQYXRjaCgpKQotICAgICAgICBzZWxmLmFkZFN0ZXAoQ3Jl
YXRlTG9jYWxHSVRDb21taXQoKSkKKworICAgICAgICBzZWxmLmFkZFN0ZXAoQ2Fub25pY2FsaXpl
KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChQdXNoQ29tbWl0VG9XZWJLaXRSZXBvKCkpCiAgICAg
ICAgIHNlbGYuYWRkU3RlcChTZXRCdWlsZFN1bW1hcnkoKSkKIApAQCAtMzM0LDYgKzMzNyw3IEBA
IGNsYXNzIE1lcmdlUXVldWVGYWN0b3J5QmFzZShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAgICAg
ICAgIHNlbGYuYWRkU3RlcChDaGVja091dFB1bGxSZXF1ZXN0KCkpCiAgICAgICAgIHNlbGYuYWRk
U3RlcChWYWxpZGF0ZVNxdWFzaGVkKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChBZGRSZXZpZXdl
clRvQ29tbWl0TWVzc2FnZSgpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoRGV0ZXJtaW5lQXV0aG9y
KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKICAg
ICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ29tbWl0TWVzc2FnZSgpKQogCmRpZmYgLS1naXQg
YS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllc191bml0dGVzdC5weSBiL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5CmluZGV4IDlmN2I2N2U0
MDRlZS4uNDZiY2YxM2FiZDE2IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L2ZhY3Rvcmllc191bml0dGVzdC5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2Zh
Y3Rvcmllc191bml0dGVzdC5weQpAQCAtNjA0LDEzICs2MDQsMTcgQEAgY2xhc3MgVGVzdEV4cGVj
dGVkQnVpbGRTdGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY29uZmlndXJh
dGlvbicsCiAgICAgICAgICAgICAnY2xlYW4tdXAtZ2l0LXJlcG8nLAogICAgICAgICAgICAgJ2Ns
ZWFuLWFuZC11cGRhdGUtd29ya2luZy1kaXJlY3RvcnknLAorICAgICAgICAgICAgJ2dpdC1zdm4t
ZmV0Y2gnLAogICAgICAgICAgICAgJ2ZldGNoLWJyYW5jaC1yZWZlcmVuY2VzJywKICAgICAgICAg
ICAgICdzaG93LWlkZW50aWZpZXInLAogICAgICAgICAgICAgJ3ZlcmlmeS1naXRodWItaW50ZWdy
aXR5JywKICAgICAgICAgICAgICd1cGRhdGUtd29ya2luZy1kaXJlY3RvcnknLAotICAgICAgICAg
ICAgJ2FwcGx5LXBhdGNoJywKLSAgICAgICAgICAgICd2YWxpZGF0ZS1jaGFuZ2Vsb2ctYW5kLXJl
dmlld2VyJywKLSAgICAgICAgICAgICdmaW5kLW1vZGlmaWVkLWNoYW5nZWxvZ3MnLAorICAgICAg
ICAgICAgJ2NvbW1pdC1wYXRjaCcsCisgICAgICAgICAgICAndmFsaWRhdGUtc3F1YXNoZWQnLAor
ICAgICAgICAgICAgJ2FkZC1yZXZpZXdlci10by1jb21taXQtbWVzc2FnZScsCisgICAgICAgICAg
ICAnZGV0ZXJtaW5lLWF1dGhvcicsCisgICAgICAgICAgICAnYWRkLWF1dGhvci10by1jb21taXQt
bWVzc2FnZScsCisgICAgICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLAogICAgICAg
ICAgICAgJ2tpbGwtb2xkLXByb2Nlc3NlcycsCiAgICAgICAgICAgICAnY29tcGlsZS13ZWJraXQn
LAogICAgICAgICAgICAgJ2tpbGwtb2xkLXByb2Nlc3NlcycsCkBAIC02MTgsMTEgKzYyMiw3IEBA
IGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxkU3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAg
ICAgICAgJ2NoZWNrLXN0YXR1cy1vbi1vdGhlci1ld3NlcycsCiAgICAgICAgICAgICAnbGF5b3V0
LXRlc3RzJywKICAgICAgICAgICAgICd2YWxpZGF0ZS1jaGFuZ2UnLAotICAgICAgICAgICAgJ2Ns
ZWFuLWFuZC11cGRhdGUtd29ya2luZy1kaXJlY3RvcnknLAotICAgICAgICAgICAgJ3Nob3ctaWRl
bnRpZmllcicsCi0gICAgICAgICAgICAndXBkYXRlLXdvcmtpbmctZGlyZWN0b3J5JywKLSAgICAg
ICAgICAgICdhcHBseS1wYXRjaCcsCi0gICAgICAgICAgICAnY3JlYXRlLWxvY2FsLWdpdC1jb21t
aXQnLAorICAgICAgICAgICAgJ2Nhbm9uaWNhbGl6ZS1jb21taXQnLAogICAgICAgICAgICAgJ3B1
c2gtY29tbWl0LXRvLXdlYmtpdC1yZXBvJywKICAgICAgICAgICAgICdzZXQtYnVpbGQtc3VtbWFy
eScKICAgICAgICAgXSwKQEAgLTY0MSw2ICs2NDEsNyBAQCBjbGFzcyBUZXN0RXhwZWN0ZWRCdWls
ZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdjaGVja291dC1wdWxsLXJl
cXVlc3QnLAogICAgICAgICAgICAgJ3ZhbGlkYXRlLXNxdWFzaGVkJywKICAgICAgICAgICAgICdh
ZGQtcmV2aWV3ZXItdG8tY29tbWl0LW1lc3NhZ2UnLAorICAgICAgICAgICAgJ2RldGVybWluZS1h
dXRob3InLAogICAgICAgICAgICAgJ2FkZC1hdXRob3ItdG8tY29tbWl0LW1lc3NhZ2UnLAogICAg
ICAgICAgICAgJ3ZhbGlkYXRlLWNvbW1pdC1tZXNzYWdlJywKICAgICAgICAgICAgICdraWxsLW9s
ZC1wcm9jZXNzZXMnLApAQCAtNjY2LDYgKzY2Nyw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxk
U3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2NoZWNrb3V0LXB1bGwtcmVx
dWVzdCcsCiAgICAgICAgICAgICAndmFsaWRhdGUtc3F1YXNoZWQnLAogICAgICAgICAgICAgJ2Fk
ZC1yZXZpZXdlci10by1jb21taXQtbWVzc2FnZScsCisgICAgICAgICAgICAnZGV0ZXJtaW5lLWF1
dGhvcicsCiAgICAgICAgICAgICAnYWRkLWF1dGhvci10by1jb21taXQtbWVzc2FnZScsCiAgICAg
ICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLAogICAgICAgICAgICAgJ3ZhbGlkYXRl
LWNoYW5nZScsCkBAIC02ODEsNiArNjgzLDcgQEAgY2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRTdGVw
cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIGxvYWRDb25maWcubG9hZEJ1aWxkZXJDb25m
aWcoc2VsZi5jb25maWcsIGlzX3Rlc3RfbW9kZV9lbmFibGVkPVRydWUsIG1hc3Rlcl9wcmVmaXhf
cGF0aD1jd2QpCiAKICAgICBkZWYgdGVzdF9hbGxfZXhwZWN0ZWRfc3RlcHMoc2VsZik6CisgICAg
ICAgIHNlbGYubWF4RGlmZiA9IE5vbmUKICAgICAgICAgZm9yIGJ1aWxkZXIgaW4gc2VsZi5jb25m
aWdbJ2J1aWxkZXJzJ106CiAgICAgICAgICAgICBidWlsZFN0ZXBzID0gW10KICAgICAgICAgICAg
IGZvciBzdGVwIGluIGJ1aWxkZXJbJ2ZhY3RvcnknXS5zdGVwczoKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzLnB5CmluZGV4IDE5MmY2YzIwNTc1YS4uYjU1NDJkOWMxZDU2IDEwMDY0NAotLS0gYS9U
b29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9l
d3MtYnVpbGQvc3RlcHMucHkKQEAgLTg0NSw2ICs4NDUsNjIgQEAgY2xhc3MgQXBwbHlQYXRjaChz
aGVsbC5TaGVsbENvbW1hbmQsIENvbXBvc2l0ZVN0ZXBNaXhpbiwgU2hlbGxNaXhpbik6CiAgICAg
ICAgIHJldHVybiByYwogCiAKK2NsYXNzIENvbW1pdFBhdGNoKHN0ZXBzLlNoZWxsU2VxdWVuY2Us
IENvbXBvc2l0ZVN0ZXBNaXhpbiwgU2hlbGxNaXhpbik6CisgICAgbmFtZSA9ICdjb21taXQtcGF0
Y2gnCisgICAgZGVzY3JpcHRpb24gPSBbJ2NvbW1pdC1wYXRjaCddCisgICAgZGVzY3JpcHRpb25E
b25lID0gWydDcmVhdGVkIGNvbW1pdCBmcm9tIHBhdGNoJ10KKyAgICBoYWx0T25GYWlsdXJlID0g
VHJ1ZQorICAgIGVudiA9IGRpY3QoRklMVEVSX0JSQU5DSF9TUVVFTENIX1dBUk5JTkc9JzEnKQor
ICAgIEZJTFRFUl9CUkFOQ0hfUFJPR1JBTSA9ICcnJ2ltcG9ydCByZQoraW1wb3J0IHN5cworCits
aW5lcyA9IFtsIGZvciBsIGluIHN5cy5zdGRpbl0KK2ZvciBzIGluIHJlLnNwbGl0KHInIChOZWVk
IHRoZSBidWcgVVJMIFwoT09QUyFcKS4pfChcUys6XC9cL1xTKyknLCBsaW5lc1swXS5yc3RyaXAo
KSk6CisgICAgaWYgcyBhbmQgcyAhPSAnICc6CisgICAgICAgIHByaW50KHMpCitmb3IgbCBpbiBs
aW5lc1sxOl06CisgICAgc3lzLnN0ZG91dC53cml0ZShsKQorJycnCisKKyAgICBkZWYgX19pbml0
X18oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihDb21taXRQYXRjaCwgc2VsZikuX19p
bml0X18odGltZW91dD0xMCAqIDYwLCBsb2dFbnZpcm9uPUZhbHNlLCAqKmt3YXJncykKKworICAg
IGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVy
dHkoJ3BhdGNoX2lkJywgRmFsc2UpCisKKyAgICBkZWYgX2dldF9wYXRjaChzZWxmKToKKyAgICAg
ICAgc291cmNlc3RhbXAgPSBzZWxmLmJ1aWxkLmdldFNvdXJjZVN0YW1wKHNlbGYuZ2V0UHJvcGVy
dHkoJ2NvZGViYXNlJywgJycpKQorICAgICAgICBpZiBub3Qgc291cmNlc3RhbXAgb3Igbm90IHNv
dXJjZXN0YW1wLnBhdGNoOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJu
IHNvdXJjZXN0YW1wLnBhdGNoWzFdCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxm
LmNvbW1hbmRzID0gW10KKyAgICAgICAgcGF0Y2ggPSBzZWxmLl9nZXRfcGF0Y2goKQorCisgICAg
ICAgIGNvbW1hbmRzID0gW10KKyAgICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgY29t
bWFuZHMgKz0gW1snY3VybCcsICctTCcsICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2ht
ZW50LmNnaT9pZD17fScuZm9ybWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJycpKSwg
Jy1vJywgJy5idWlsZGJvdC1kaWZmJ11dCisgICAgICAgIGNvbW1hbmRzICs9IFsKKyAgICAgICAg
ICAgIFsnZ2l0JywgJ2FtJywgJy5idWlsZGJvdC1kaWZmJ10sCisgICAgICAgICAgICBbJ2dpdCcs
ICdmaWx0ZXItYnJhbmNoJywgJy1mJywgJy0tbXNnLWZpbHRlcicsICdweXRob24zIC1jICJ7fSIn
LmZvcm1hdChzZWxmLkZJTFRFUl9CUkFOQ0hfUFJPR1JBTSksICdIRUFELi4uSEVBRH4xJ10sCisg
ICAgICAgIF0KKyAgICAgICAgZm9yIGNvbW1hbmQgaW4gY29tbWFuZHM6CisgICAgICAgICAgICBz
ZWxmLmNvbW1hbmRzLmFwcGVuZCh1dGlsLlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFt
ZT0nc3RkaW8nLCBoYWx0T25GYWlsdXJlPVRydWUpKQorCisgICAgICAgIHJldHVybiBzdXBlcihD
b21taXRQYXRjaCwgc2VsZikucnVuKCkKKworICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3Vs
dHMsIHN0ZXApOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkgb3IgKHJl
c3VsdHMgPT0gU1VDQ0VTUyBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgnc2Vuc2l0aXZlJywgRmFsc2Up
KQorCisgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CisgICAgICAgIGlmIHNlbGYucmVz
dWx0cyA9PSBTS0lQUEVEOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICJTa2lwcGluZyBj
cmVhdGluZyBjb21taXRzaW5jZSBwYXRjaF9pZCBpc24ndCBwcm92aWRlZCJ9CisgICAgICAgIGlm
IHNlbGYucmVzdWx0cyAhPSBTVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdn
aXQgYW0gZmFpbGVkIHRvIGFwcGx5IHBhdGNoIHRvIHRydW5rJ30KKyAgICAgICAgcmV0dXJuIHN1
cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworCiBjbGFzcyBDaGVj
a091dFB1bGxSZXF1ZXN0KHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5h
bWUgPSAnY2hlY2tvdXQtcHVsbC1yZXF1ZXN0JwogICAgIGRlc2NyaXB0aW9uID0gWydjaGVja2lu
Zy1vdXQtcHVsbC1yZXF1ZXN0J10KQEAgLTQ1NzUsMTIgKzQ2MzEsMTcgQEAgY2xhc3MgUHVzaENv
bW1pdFRvV2ViS2l0UmVwbyhzaGVsbC5TaGVsbENvbW1hbmQpOgogICAgICAgICAgICAgICAgICAg
ICBdKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnVp
bGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFsKLSAgICAgICAgICAgICAgICAgICAgICAgIEdp
dFJlc2V0SGFyZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2UocmVw
b3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9yZy9naXQvV2ViS2l0LWh0dHBzJyksCisgICAgICAg
ICAgICAgICAgICAgICAgICBSZXNldEdpdFN2bigpLAorICAgICAgICAgICAgICAgICAgICAgICAg
Q2xlYW5HaXRSZXBvKCksCisgICAgICAgICAgICAgICAgICAgICAgICBDaGVja091dFNvdXJjZSgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgR2l0U3ZuRmV0Y2goKSwKICAgICAgICAgICAgICAg
ICAgICAgICAgIFNob3dJZGVudGlmaWVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICBVcGRh
dGVXb3JraW5nRGlyZWN0b3J5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICBBcHBseVBhdGNo
KCksCi0gICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVMb2NhbEdJVENvbW1pdCgpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgQ29tbWl0UGF0Y2goKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICBBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZh
bGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFsc2UsIHZlcmlmeWNxcGx1cz1UcnVlKSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgIENhbm9uaWNhbGl6ZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
UHVzaENvbW1pdFRvV2ViS2l0UmVwbygpLAogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAg
ICAgICAgICAgIHJldHVybiByYwpAQCAtNDc2MSw4ICs0ODIyLDggQEAgY2xhc3MgVmFsaWRhdGVT
cXVhc2hlZChzaGVsbC5TaGVsbENvbW1hbmQpOgogICAgICAgICBzdXBlcihWYWxpZGF0ZVNxdWFz
aGVkLCBzZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCAqKmt3YXJncykKIAogICAgIGRl
ZiBzdGFydChzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxv
Z09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIu
YmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFBy
b3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9y
ZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVM
VF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIu
aGVhZC5yZWYnLCAnSEVBRCcpCiAgICAgICAgIHNlbGYuY29tbWFuZCA9IFsnZ2l0JywgJ2xvZycs
ICctLW9uZWxpbmUnLCBoZWFkX3JlZiwgZidee2Jhc2VfcmVmfScsICctLW1heC1jb3VudD0yJ10K
IAogICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3Mod2Fu
dFN0ZGVycj1UcnVlKQpAQCAtNDc4NywxMiArNDg0OCw2IEBAIGNsYXNzIFZhbGlkYXRlU3F1YXNo
ZWQoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCiAgICAg
ICAgIHJldHVybiBGQUlMVVJFCiAKLSAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAg
ICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJykKLQotICAgIGRlZiBo
aWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgotICAgICAgICByZXR1cm4gbm90IHNlbGYu
ZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFzcyBBZGRSZXZpZXdlck1peGluKG9iamVjdCk6CiAgICAg
Tk9CT0RZX1NFRCA9ICdzL05PQk9EWSAoT08qUFAqUyEqKS97fS9nJwpAQCAtNDgzMCw4ICs0ODg1
LDggQEAgY2xhc3MgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5k
LCBBZGRSZXZpZXdlck1peGluKToKICAgICAgICAgc3VwZXIoQWRkUmV2aWV3ZXJUb0NvbW1pdE1l
c3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoqa3dh
cmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9nb2Jz
ZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJv
cGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3Jl
ZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQor
ICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIGYn
b3JpZ2luL3tERUZBVUxUX0JSQU5DSH0nKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJv
cGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQgPSBp
bnQodGltZS5sb2NhbHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAgICAg
IGRhdGUgPSBmJ3tpbnQodGltZS50aW1lKCkpfSB7Z210b2Zmc2V0fScKQEAgLTQ4NTUsNDQgKzQ5
MTAsNjcgQEAgY2xhc3MgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21t
YW5kLCBBZGRSZXZpZXdlck1peGluKToKICAgICAgICAgcmV0dXJuIHN1cGVyKEFkZFJldmlld2Vy
VG9Db21taXRNZXNzYWdlLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAogICAgIGRlZiBkb1N0
ZXBJZihzZWxmLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1
Yi5udW1iZXInKSBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMnKQor
ICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMnKQog
CiAgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3RlcCk6CiAgICAgICAgIHJldHVy
biBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKQogCiAKLWNsYXNzIEFkZEF1dGhvclRvQ29tbWl0TWVz
c2FnZShzaGVsbC5TaGVsbENvbW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgotICAgIG5hbWUgPSAn
YWRkLWF1dGhvci10by1jb21taXQtbWVzc2FnZScKK2NsYXNzIERldGVybWluZUF1dGhvcihzaGVs
bC5TaGVsbENvbW1hbmQsIFNoZWxsTWl4aW4pOgorICAgIG5hbWUgPSAnZGV0ZXJtaW5lLWF1dGhv
cicKICAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQorICAgIEFVVEhPUl9SRSA9IHJlLmNvbXBpbGUo
cidBdXRob3I6XHMrKC4rIDwuKz4pJykKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJn
cyk6Ci0gICAgICAgIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0
X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCisgICAgICAgIHN1cGVy
KERldGVybWluZUF1dGhvciwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91
dD02MCwgKiprd2FyZ3MpCiAKLSAgICBkZWYgYXV0aG9yKHNlbGYpOgotICAgICAgICBjb250cmli
dXRvcnMsIF8gPSBDb250cmlidXRvcnMubG9hZCgpCi0gICAgICAgIHVzZXJuYW1lID0gc2VsZi5n
ZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQudXNlci5sb2dpbicpCi0gICAgICAgIG93bmVycyA9IHNl
bGYuZ2V0UHJvcGVydHkoJ293bmVycycsIFtOb25lXSkKLSAgICAgICAgZm9yIGNhbmRpZGF0ZSBp
biBbdXNlcm5hbWUsIG93bmVyc1swXV06Ci0gICAgICAgICAgICBpZiBub3QgY2FuZGlkYXRlOgot
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxvZ09i
c2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgorICAgICAgICBzZWxm
LmNvbW1hbmQgPSBzZWxmLnNoZWxsX2NvbW1hbmQoImdpdCBsb2cgLTEgfCBncmVwICdeQXV0aG9y
OiciKQogCi0gICAgICAgICAgICBuYW1lID0gY29udHJpYnV0b3JzLmdldChjYW5kaWRhdGUubG93
ZXIoKSwge30pLmdldCgnbmFtZScsIE5vbmUpCi0gICAgICAgICAgICBlbWFpbCA9IGNvbnRyaWJ1
dG9ycy5nZXQoY2FuZGlkYXRlLmxvd2VyKCksIHt9KS5nZXQoJ2VtYWlsJywgTm9uZSkKKyAgICAg
ICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBCdWZmZXJMb2dPYnNlcnZlckNsYXNzKHdhbnRTdGRlcnI9
VHJ1ZSkKKyAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNl
cnZlcikKIAotICAgICAgICAgICAgaWYgbmFtZSBhbmQgZW1haWw6Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIG5hbWUsIGVtYWlsCisgICAgICAgIHJldHVybiBzdXBlcihEZXRlcm1pbmVBdXRob3Is
IHNlbGYpLnN0YXJ0KCkKIAotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgIGRlZiBnZXRS
ZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAgICAgICBuYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0
aG9yJykKKyAgICAgICAgaWYgbm90IG5hbWUgb3Igc2VsZi5yZXN1bHRzID09IEZBSUxVUkU6Cisg
ICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxlZCB0byBmaW5kIGF1dGhvcid9CisgICAg
ICAgIGVsaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6CisgICAgICAgICAgICByZXR1cm4geydz
dGVwJzogZiJBdXRob3IgaXN7bmFtZX0ifQorICAgICAgICByZXR1cm4gc3VwZXIoRGV0ZXJtaW5l
QXV0aG9yLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworICAgIGRlZiBldmFsdWF0ZUNvbW1h
bmQoc2VsZiwgY21kKToKKyAgICAgICAgcmMgPSBzdXBlcihEZXRlcm1pbmVBdXRob3IsIHNlbGYp
LmV2YWx1YXRlQ29tbWFuZChjbWQpCisgICAgICAgIGlmIHJjICE9IFNVQ0NFU1M6CisgICAgICAg
ICAgICByZXR1cm4gcmMKKworICAgICAgICBsb2dfdGV4dCA9IHNlbGYubG9nX29ic2VydmVyLmdl
dFN0ZG91dCgpCisgICAgICAgIGxpbmVzID0gbG9nX3RleHQuc3BsaXRsaW5lcygpCisgICAgICAg
IGlmIGxlbihsaW5lcykgIT0gMToKKyAgICAgICAgICAgIHJldHVybiBGQUlMVVJFCisgICAgICAg
IG1hdGNoID0gc2VsZi5BVVRIT1JfUkUubWF0Y2gobGluZXNbMF0pCisgICAgICAgIGlmIG1hdGNo
OgorICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnYXV0aG9yJywgbWF0Y2guZ3JvdXAoMSkp
CisgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUworICAgICAgICByZXR1cm4gRkFJTFVSRQorCitj
bGFzcyBBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZp
ZXdlck1peGluKToKKyAgICBuYW1lID0gJ2FkZC1hdXRob3ItdG8tY29tbWl0LW1lc3NhZ2UnCisg
ICAgaGFsdE9uRmFpbHVyZSA9IFRydWUKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJn
cyk6CisgICAgICAgIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0
X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCiAKICAgICBkZWYgc3Rh
cnQoc2VsZik6Ci0gICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJh
c2UucmVmJywgREVGQVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9w
ZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGJhc2VfcmVm
ID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgZidvcmlnaW4ve0RFRkFVTFRf
QlJBTkNIfScpCisgICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhl
YWQucmVmJywgJ0hFQUQnKQogCiAgICAgICAgIGdtdG9mZnNldCA9IGludCh0aW1lLmxvY2FsdGlt
ZSgpLnRtX2dtdG9mZiAqIDEwMCAvICg2MCAqIDYwKSkKICAgICAgICAgdGltZXN0YW1wID0gZid7
aW50KHRpbWUudGltZSgpKX0ge2dtdG9mZnNldH0nCiAKLSAgICAgICAgbmFtZSwgZW1haWwgPSBz
ZWxmLmF1dGhvcigpCi0gICAgICAgIHBhdGNoX2J5ID0gZiJQYXRjaCBieSB7bmFtZX0gPHtlbWFp
bH0+IG9uIHtkYXRlLnRvZGF5KCkuc3RyZnRpbWUoJyVZLSVtLSVkJyl9IgorICAgICAgICBhdXRo
b3IgPSBzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKQorICAgICAgICBwYXRjaF9ieSA9IGYiUGF0
Y2ggYnkge2F1dGhvcn0gb24ge2RhdGUudG9kYXkoKS5zdHJmdGltZSgnJVktJW0tJWQnKX0iCiAK
ICAgICAgICAgc2VsZi5jb21tYW5kID0gWwogICAgICAgICAgICAgJ2dpdCcsICdmaWx0ZXItYnJh
bmNoJywgJy1mJywKQEAgLTQ5MTAsMTYgKzQ5ODgsMTIgQEAgY2xhc3MgQWRkQXV0aG9yVG9Db21t
aXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3ZXJNaXhpbik6CiAgICAgICAg
IGlmIHNlbGYucmVzdWx0cyA9PSBGQUlMVVJFOgogICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6
ICdGYWlsZWQgdG8gYWRkIGF1dGhvciB0byBjb21taXQgbWVzc2FnZSd9CiAgICAgICAgIGVsaWYg
c2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6Ci0gICAgICAgICAgICBuYW1lLCBfID0gc2VsZi5hdXRo
b3IoKQotICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6IGYiQWRkZWQge25hbWV9IGFzIGF1dGhv
ciJ9CisgICAgICAgICAgICBhdXRob3IgPSBzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKQorICAg
ICAgICAgICAgcmV0dXJuIHsnc3RlcCc6IGYiQWRkZWQge2F1dGhvcn0gYXMgYXV0aG9yIn0KICAg
ICAgICAgcmV0dXJuIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuZ2V0UmVz
dWx0U3VtbWFyeSgpCiAKICAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAgIGlm
IG5vdCBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJyk6Ci0gICAgICAgICAgICByZXR1
cm4gRmFsc2UKLQotICAgICAgICBuYW1lLCBlbWFpbCA9IHNlbGYuYXV0aG9yKCkKLSAgICAgICAg
cmV0dXJuIG5hbWUgYW5kIGVtYWlsCisgICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdh
dXRob3InKQogCiAgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3RlcCk6CiAgICAg
ICAgIHJldHVybiBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKQpAQCAtNDkzNiw2ICs1MDEwLDcgQEAg
Y2xhc3MgVmFsaWRhdGVDb21taXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4
aW4pOgogICAgICAgICAnUnViYmVyLXN0YW1wZWQgYnknLAogICAgICAgICAnUnViYmVyIHN0YW1w
ZWQgYnknLAogICAgICkKKyAgICBSRV9DSEFOR0VMT0cgPSBicideKFwrXCtcKylccysoLipDaGFu
Z2VMb2cuKiknCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICBz
dXBlcihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFs
c2UsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKQpAQCAtNDk0NCwxMiArNTAxOSwxOSBAQCBjbGFzcyBW
YWxpZGF0ZUNvbW1pdE1lc3NhZ2Uoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAg
ICAgICAgIHNvdXJjZXN0YW1wID0gc2VsZi5idWlsZC5nZXRTb3VyY2VTdGFtcChzZWxmLmdldFBy
b3BlcnR5KCdjb2RlYmFzZScsICcnKSkKICAgICAgICAgaWYgc291cmNlc3RhbXAgYW5kIHNvdXJj
ZXN0YW1wLmNoYW5nZXM6CiAgICAgICAgICAgICByZXR1cm4gc291cmNlc3RhbXAuY2hhbmdlc1sw
XS5maWxlcworICAgICAgICBpZiBzb3VyY2VzdGFtcCBhbmQgc291cmNlc3RhbXAucGF0Y2g6Cisg
ICAgICAgICAgICBmaWxlcyA9IFtdCisgICAgICAgICAgICBmb3IgbGluZSBpbiBwYXRjaC5zcGxp
dGxpbmVzKCk6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5zZWFyY2goc2VsZi5SRV9DSEFO
R0VMT0csIGxpbmUpCisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAg
ICAgIGZpbGVzLmFwcGVuZChtYXRjaC5ncm91cCgxKSkKKyAgICAgICAgICAgIHJldHVybiBmaWxl
cwogICAgICAgICByZXR1cm4gW10KIAogICAgIEBkZWZlci5pbmxpbmVDYWxsYmFja3MKICAgICBk
ZWYgcnVuKHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIuQnVmZmVyTG9n
T2JzZXJ2ZXIpOgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5i
YXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJv
cGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAgICBiYXNlX3Jl
ZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIGYnb3JpZ2luL3tERUZBVUxU
X0JSQU5DSH0nKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5o
ZWFkLnJlZicsICdIRUFEJykKIAogICAgICAgICBzZWxmLmNvbW1hbmRzID0gW10KICAgICAgICAg
Y29tbWFuZHMgPSBbCkBAIC00OTg3LDcgKzUwNjksNyBAQCBjbGFzcyBWYWxpZGF0ZUNvbW1pdE1l
c3NhZ2Uoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAgICAgICAgIGlmIHJjID09
IEZBSUxVUkU6CiAgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdjb21tZW50X3RleHQnLCBm
IntzZWxmLnN1bW1hcnl9LCBibG9ja2luZyBQUiAje3NlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5u
dW1iZXInKX0iKQogICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnYnVpbGRfZmluaXNoX3N1
bW1hcnknLCAnQ29tbWl0IG1lc3NhZ2UgdmFsaWRhdGlvbiBmYWlsZWQnKQotICAgICAgICAgICAg
c2VsZi5idWlsZC5hZGRTdGVwc0FmdGVyQ3VycmVudFN0ZXAoW0xlYXZlQ29tbWVudCgpLCAgQmxv
Y2tQdWxsUmVxdWVzdCgpXSkKKyAgICAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1
cnJlbnRTdGVwKFtMZWF2ZUNvbW1lbnQoKSwgU2V0Q29tbWl0UXVldWVNaW51c0ZsYWdPblBhdGNo
KCksIEJsb2NrUHVsbFJlcXVlc3QoKV0pCiAgICAgICAgIHJldHVybiByYwogCiAgICAgZGVmIGdl
dFJlc3VsdFN1bW1hcnkoc2VsZik6CkBAIC00OTk1LDEyICs1MDc3LDYgQEAgY2xhc3MgVmFsaWRh
dGVDb21taXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAg
ICAgICAgcmV0dXJuIHsnc3RlcCc6IHNlbGYuc3VtbWFyeX0KICAgICAgICAgcmV0dXJuIHN1cGVy
KFZhbGlkYXRlQ29tbWl0TWVzc2FnZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKLSAgICBk
ZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5
KCdnaXRodWIubnVtYmVyJykKLQotICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0
ZXApOgotICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFzcyBD
YW5vbmljYWxpemUoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAgICAgbmFtZSA9
ICdjYW5vbmljYWxpemUtY29tbWl0JwpAQCAtNTAxNiwxNSArNTA5MiwxNCBAQCBjbGFzcyBDYW5v
bmljYWxpemUoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAgICAgICAgIHNlbGYu
Y29tbWFuZHMgPSBbXQogCiAgICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0
aHViLmJhc2UucmVmJywgREVGQVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5n
ZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGhl
YWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgTm9uZSkKIAogICAg
ICAgICBjb21tYW5kcyA9IFtdCiAgICAgICAgIGlmIHNlbGYucmViYXNlX2VuYWJsZWQ6Ci0gICAg
ICAgICAgICBjb21tYW5kcyA9IFsKLSAgICAgICAgICAgICAgICBbJ2dpdCcsICdwdWxsJywgJ29y
aWdpbicsIGJhc2VfcmVmLCAnLS1yZWJhc2UnXSwKLSAgICAgICAgICAgICAgICBbJ2dpdCcsICdi
cmFuY2gnLCAnLWYnLCBiYXNlX3JlZiwgaGVhZF9yZWZdLAotICAgICAgICAgICAgICAgIFsnZ2l0
JywgJ2NoZWNrb3V0JywgYmFzZV9yZWZdLAotICAgICAgICAgICAgXQorICAgICAgICAgICAgY29t
bWFuZHMgPSBbWydnaXQnLCAncHVsbCcsICdvcmlnaW4nLCBiYXNlX3JlZiwgJy0tcmViYXNlJ11d
CisgICAgICAgICAgICBpZiBoZWFkX3JlZjoKKyAgICAgICAgICAgICAgICBjb21tYW5kcyArPSBb
WydnaXQnLCAnYnJhbmNoJywgJy1mJywgYmFzZV9yZWYsIGhlYWRfcmVmXV0KKyAgICAgICAgICAg
IGNvbW1hbmRzICs9IFtbJ2dpdCcsICdjaGVja291dCcsIGJhc2VfcmVmXV0KICAgICAgICAgY29t
bWFuZHMuYXBwZW5kKFsncHl0aG9uMycsICdUb29scy9TY3JpcHRzL2dpdC13ZWJraXQnLCAnY2Fu
b25pY2FsaXplJywgJy1uJywgJzEnIGlmIHNlbGYucmViYXNlX2VuYWJsZWQgZWxzZSAnMyddKQog
CiAgICAgICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKaW5kZXggNDJmNDRjNjM1OWExLi41MjgxZThlZjM5N2Qg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkK
KysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQpAQCAtNTgy
NywxMCArNTgyNywxOCBAQCBjbGFzcyBUZXN0VmFsaWRhdGVTcXVhc2hlZChCdWlsZFN0ZXBNaXhp
bkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rf
c2tpcHBlZF9wYXRjaChzZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChzZWxmKToKICAgICAgICAg
c2VsZi5zZXR1cFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQogICAgICAgICBzZWxmLnNldFByb3Bl
cnR5KCdwYXRjaF9pZCcsICcxMjM0JykKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3Vs
dD1TS0lQUEVELCBzdGF0ZV9zdHJpbmc9J2ZpbmlzaGVkIChza2lwcGVkKScpCisgICAgICAgIHNl
bGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBlY3RTaGVsbCh3b3JrZGly
PSd3a2RpcicsCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dFbnZpcm9uPUZhbHNlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1bJ2dpdCcsICdsb2cnLCAnLS1vbmVsaW5lJywg
J0hFQUQnLCAnXm9yaWdpbi9tYWluJywgJy0tbWF4LWNvdW50PTInXSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICkKKyAgICAgICAgICAgICsgMAorICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5s
b2coJ3N0ZGlvJywgc3Rkb3V0PSdlMWViMjQ2MDM0OTMgKEhFQUQgLT4gZW5nL3B1bGwtcmVxdWVz
dC1icmFuY2gpIEZpcnN0IGxpbmUgb2YgY29tbWl0XG4nKSwKKyAgICAgICAgKQorICAgICAgICBz
ZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nVmVyaWZpZWQg
YnJhbmNoIGlzIHNxdWFzaGVkJykKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAg
ICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgpAQCAtNTk4OSw5ICs1OTk3LDggQEAgY2xhc3MgVGVz
dEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRl
c3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgcmV0dXJuIHNl
bGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9wYXRjaChzZWxm
KToKKyAgICBkZWYgdGVzdF9za2lwcGVkX25vX2F1dGhvcihzZWxmKToKICAgICAgICAgc2VsZi5z
ZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAgICAgIHNlbGYuc2V0UHJv
cGVydHkoJ3BhdGNoX2lkJywgJzEyMzQnKQogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVz
dWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykKICAgICAgICAg
cmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKQEAgLTYwMDIsMTEgKzYwMDksMTAgQEAgY2xhc3MgVGVz
dEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRl
c3QuVGVzdENhc2UpOgogICAgICAgICB0aW1lLnRpbWUgPSBsYW1iZGE6IGZpeGVkX3RpbWUKIAog
ICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0JykKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQogICAgICAgICBzZWxmLnNl
dFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnKQot
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC51c2VyLmxvZ2luJywgJ3dlYmtp
dC1yZXZpZXdlcicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ293bmVycycsIFsnd2Via2l0
LWNvbW1pdC1xdWV1ZSddKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdhdXRob3InLCAnV2Vi
S2l0IFJldmlld2VyIDxyZXZpZXdlckBhcHBsZS5jb20+JykKICAgICAgICAgc2VsZi5leHBlY3RS
ZW1vdGVDb21tYW5kcygKICAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywK
ICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCkBAIC02MDIxLDM2ICs2
MDI3LDM1IEBAIGNsYXNzIFRlc3RBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoQnVpbGRTdGVwTWl4
aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICsgMAogICAgICAg
ICAgICAgKyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ3JlZnMvaGVhZHMv
ZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIpLAogICAgICAgICApCi0g
ICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdB
ZGRlZCBXZWJLaXQgUmV2aWV3ZXIgYXMgYXV0aG9yJykKKyAgICAgICAgc2VsZi5leHBlY3RPdXRj
b21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBSZXZpZXdlciA8
cmV2aWV3ZXJAYXBwbGUuY29tPiBhcyBhdXRob3InKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5T
dGVwKCkKIAotICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfZmFsbGJhY2soc2VsZik6CisgICAgZGVmIHRl
c3Rfc3VjY2Vzc19wYXRjaChzZWxmKToKICAgICAgICAgZ210b2Zmc2V0ID0gaW50KHRpbWUubG9j
YWx0aW1lKCkudG1fZ210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAgICAgICBmaXhlZF90aW1l
ID0gaW50KHRpbWUudGltZSgpKQogICAgICAgICB0aW1lc3RhbXAgPSBmJ3tpbnQodGltZS50aW1l
KCkpfSB7Z210b2Zmc2V0fScKICAgICAgICAgdGltZS50aW1lID0gbGFtYmRhOiBmaXhlZF90aW1l
CiAKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0g
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInLCAnMTIzNCcpCi0gICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsICdtYWluJykKLSAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNo
JykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQudXNlci5sb2dpbicsICd1
bnJlZ2lzdGVyZWQtYXV0aG9yJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnb3duZXJzJywg
Wyd3ZWJraXQtY29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhv
cicsICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQogICAgICAgICBzZWxm
LmV4cGVjdFJlbW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0n
d2tkaXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGVudj1zZWxmLkVOViwKLSAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBlbnY9ZGljdCgKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHSVRfQ09NTUlUVEVSX0VNQUlMPSdld3NAd2Via2l0Lm9yZycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lUX0NPTU1JVFRFUl9OQU1FPSdFV1MnLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTFRFUl9CUkFOQ0hfU1FVRUxDSF9XQVJOSU5H
PScxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICksIHRpbWVvdXQ9NjAsCiAgICAgICAgICAg
ICAgICAgICAgICAgICBjb21tYW5kPVsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2l0
JywgJ2ZpbHRlci1icmFuY2gnLCAnLWYnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICct
LWVudi1maWx0ZXInLCBmIkdJVF9BVVRIT1JfREFURT0ne3RpbWVzdGFtcH0nO0dJVF9DT01NSVRU
RVJfREFURT0ne3RpbWVzdGFtcH0nIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1t
c2ctZmlsdGVyJywgZidzZWQgIjEsL14kLyBzL14kL1xcblBhdGNoIGJ5IFdlYktpdCBDb21taXR0
ZXIgPGNvbW1pdHRlckB3ZWJraXQub3JnPiBvbiB7ZGF0ZS50b2RheSgpLnN0cmZ0aW1lKCIlWS0l
bS0lZCIpfS9nIicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VuZy9wdWxsLXJlcXVl
c3QtYnJhbmNoLi4ubWFpbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0tbXNnLWZp
bHRlcicsIGYnc2VkICIxLC9eJC8gcy9eJC9cXG5QYXRjaCBieSBXZWJLaXQgUmV2aWV3ZXIgPHJl
dmlld2VyQGFwcGxlLmNvbT4gb24ge2RhdGUudG9kYXkoKS5zdHJmdGltZSgiJVktJW0tJWQiKX0v
ZyInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdIRUFELi4ub3JpZ2luL21haW4nLAog
ICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICsgMAotICAgICAgICAgICAg
KyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ3JlZnMvaGVhZHMvZW5nL3B1
bGwtcmVxdWVzdC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIpLAorICAgICAgICAgICAgKyBFeHBl
Y3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ21haW4nIHdhcyByZXdyaXR0ZW5cbiIp
LAogICAgICAgICApCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywg
c3RhdGVfc3RyaW5nPSdBZGRlZCBXZWJLaXQgQ29tbWl0dGVyIGFzIGF1dGhvcicpCisgICAgICAg
IHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdBZGRlZCBX
ZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4gYXMgYXV0aG9yJykKICAgICAgICAg
cmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAgICBkZWYgdGVzdF9mYWlsdXJlKHNlbGYpOgpAQCAt
NjA2MCwxMSArNjA2NSwxMCBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1
aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRpbWUu
dGltZSA9IGxhbWJkYTogZml4ZWRfdGltZQogCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1
dGhvclRvQ29tbWl0TWVzc2FnZSgpKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIu
bnVtYmVyJywgJzEyMzQnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5y
ZWYnLCAnbWFpbicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZics
ICdlbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dp
dGh1Yi5oZWFkLnVzZXIubG9naW4nLCAnd2Via2l0LWNvbW1pdC1xdWV1ZScpCiAgICAgICAgIHNl
bGYuc2V0UHJvcGVydHkoJ293bmVycycsIFsnd2Via2l0LWNvbW1pdC1xdWV1ZSddKQorICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdhdXRob3InLCAnV2ViS2l0IENvbW1pdHRlciA8Y29tbWl0dGVy
QHdlYmtpdC5vcmc+JykKICAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKICAgICAg
ICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKICAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ0Vudmlyb249RmFsc2UsCkBAIC02MDgyLDEzICs2MDg2LDYgQEAgY2xhc3MgVGVzdEFk
ZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3Qu
VGVzdENhc2UpOgogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PUZBSUxVUkUsIHN0
YXRlX3N0cmluZz0nRmFpbGVkIHRvIGFkZCBhdXRob3IgdG8gY29tbWl0IG1lc3NhZ2UnKQogICAg
ICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAotICAgIGRlZiB0ZXN0X25vX293bmVyKHNlbGYp
OgotICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0JykKLSAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQotICAgICAgICBzZWxm
LmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNr
aXBwZWQpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCi0KIAogY2xhc3MgVGVzdFZh
bGlkYXRlQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVz
dENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTYwOTgsMTAgKzYwOTUsMjIgQEAgY2xh
c3MgVGVzdFZhbGlkYXRlQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9wYXRjaChz
ZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAo
VmFsaWRhdGVDb21taXRNZXNzYWdlKCkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNo
X2lkJywgJzEyMzQnKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQs
IHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykKKyAgICAgICAgc2VsZi5leHBlY3RS
ZW1vdGVDb21tYW5kcygKKyAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywK
KyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lb3V0PTYwLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1b
Jy9iaW4vc2gnLCAnLWMnLCAiZ2l0IGxvZyBIRUFEIF5vcmlnaW4vbWFpbiB8IGdyZXAgLXEgJ09P
KlBQKlMhJyAmJiBlY2hvICdDb21taXQgbWVzc2FnZSBjb250YWlucyAoT09QUyEpJyB8fCB0ZXN0
ICQ/IC1lcSAxIl0pCisgICAgICAgICAgICArIDAsIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGly
JywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICB0aW1lb3V0PTYwLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFu
ZD1bJy9iaW4vc2gnLCAnLWMnLCAiZ2l0IGxvZyBIRUFEIF5vcmlnaW4vbWFpbiB8IGdyZXAgLXEg
J1xcKFJldmlld2VkIGJ5XFx8VW5yZXZpZXdlZFxcfFJ1YmJlci1zdGFtcGVkIGJ5XFx8UnViYmVy
IHN0YW1wZWQgYnlcXCknIHx8IGVjaG8gJ05vIHJldmlld2VyIGluZm9ybWF0aW9uIGluIGNvbW1p
dCBtZXNzYWdlJyJdKQorICAgICAgICAgICAgKyAwCisgICAgICAgICAgICArIEV4cGVjdFNoZWxs
LmxvZygnc3RkaW8nLCBzdGRvdXQ9JycpLAorICAgICAgICApCisgICAgICAgIHNlbGYuZXhwZWN0
T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdWYWxpZGF0ZWQgY29tbWl0IG1l
c3NhZ2UnKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X3N1
Y2Nlc3Moc2VsZik6Ci0tIAoyLjMwLjEgKEFwcGxlIEdpdC0xMzApCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459500</attachid>
            <date>2022-05-17 08:37:13 -0700</date>
            <delta_ts>2022-05-17 09:18:04 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-240461-20220517083712.patch</filename>
            <type>text/plain</type>
            <size>34534</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSA5OGI0YjFjNjIzZjU4OTk1YjlkMWJmODYyYzAxOTNjODQ4NGQ5MDk3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDA4OjM1OjQ3IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJ1YmJl
ci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2Zh
Y3Rvcmllcy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6IE9ubHkgYWNjZXB0IHBh
dGNoZXMgd2l0aCBjb21taXQgbWVzc2FnZXMsCnJlc3BlY3QgdGhvc2UgY29tbWl0IG1lc3NhZ2Vz
LgooTWVyZ2VRdWV1ZUZhY3RvcnlCYXNlLl9faW5pdF9fKTogVXNlIGNvbW1pdCBhdXRob3IgaW4g
Y29tbWl0LgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5
OgooVGVzdEV4cGVjdGVkQnVpbGRTdGVwcy50ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyk6CiogQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKTogQWRkIHN0ZXAgd2hpY2gg
Y29tbWl0cyBhIHBhdGNoLCBpbmNsdWRpbmcgaXQncyBjb21taXQgbWVzc2FnZS4KKFB1c2hDb21t
aXRUb1dlYktpdFJlcG8uZXZhbHVhdGVDb21tYW5kKTogVXNlIEdpdEh1YiBjaGVja291dCBvbiBD
b21taXQtUXVldWUuCihWYWxpZGF0ZVNxdWFzaGVkLnN0YXJ0KTogU3VwcG9ydCBjb21taXR0ZWQg
cGF0Y2hlcy4KKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLnN0YXJ0KTogRGl0dG8uCihEZXRl
cm1pbmVBdXRob3IpOiBFeHRyYWN0IGF1dGhvciBmcm9tIGxvY2FsIGNvbW1pdC4KKEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZSk6IFVzZSAnYXV0aG9yJyBwcm9wZXJ0eSBhcyBzZXQgYnkgJ0RldGVy
bWluZUF1dGhvcicuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuX2ZpbGVzKTogU3VwcG9ydCBwYXRj
aGVzLgooVmFsaWRhdGVDb21taXRNZXNzYWdlLnJ1bik6IFN1cHBvcnQgY29tbWl0dGVkIHBhdGNo
ZXMuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZ2V0UmVzdWx0U3VtbWFyeSk6IFN1cHBvcnQgcGF0
Y2hlcy4KKENhbm9uaWNhbGl6ZS5ydW4pOiBTdXBwb3J0IGNvbW1pdHRlZCBwYXRjaGVzLgooVmFs
aWRhdGVTcXVhc2hlZC5kb1N0ZXBJZik6IERlbGV0ZWQuCihWYWxpZGF0ZVNxdWFzaGVkLmhpZGVT
dGVwSWYpOiBEZWxldGVkLgooQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLmF1dGhvcik6IERlbGV0
ZWQuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZG9TdGVwSWYpOiBEZWxldGVkLgooVmFsaWRhdGVD
b21taXRNZXNzYWdlLmhpZGVTdGVwSWYpOiBEZWxldGVkLgoqIFRvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6Ci0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9m
YWN0b3JpZXMucHkgICAgICAgIHwgIDI4ICstLQogLi4uL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFj
dG9yaWVzX3VuaXR0ZXN0LnB5IHwgIDE5ICstCiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzLnB5ICAgICAgICAgICAgfCAxODUgKysrKysrKysrKysrLS0tLS0tCiBUb29scy9DSVN1cHBv
cnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5ICAgfCAxNjUgKysrKysrKysrKysrKy0tLQog
NCBmaWxlcyBjaGFuZ2VkLCAyODkgaW5zZXJ0aW9ucygrKSwgMTA4IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5IGIvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXMucHkKaW5kZXggZTg4NGMzMmEwNmMwLi4xOGQ5
ZmQ4ZjBhODcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVz
LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5CkBAIC0yNCwx
MCArMjQsMTAgQEAKIGZyb20gYnVpbGRib3QucHJvY2VzcyBpbXBvcnQgZmFjdG9yeQogZnJvbSBi
dWlsZGJvdC5zdGVwcyBpbXBvcnQgdHJpZ2dlcgogCi1mcm9tIHN0ZXBzIGltcG9ydCAoQWRkQXV0
aG9yVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgQXBwbHlQYXRj
aCwgQXBwbHlXYXRjaExpc3QsIENhbm9uaWNhbGl6ZSwKK2Zyb20gc3RlcHMgaW1wb3J0IChBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBBcHBseVBh
dGNoLCBBcHBseVdhdGNoTGlzdCwgQ2Fub25pY2FsaXplLCBDb21taXRQYXRjaCwKICAgICAgICAg
ICAgICAgICAgICBDaGVja091dFB1bGxSZXF1ZXN0LCBDaGVja091dFNvdXJjZSwgQ2hlY2tPdXRT
cGVjaWZpY1JldmlzaW9uLCBDaGVja0NoYW5nZVJlbGV2YW5jZSwKICAgICAgICAgICAgICAgICAg
ICBDaGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsIENsZWFuR2l0UmVwbywg
Q29tcGlsZUpTQywgQ29tcGlsZVdlYktpdCwgQ29uZmlndXJlQnVpbGQsIENyZWF0ZUxvY2FsR0lU
Q29tbWl0LAotICAgICAgICAgICAgICAgICAgIERvd25sb2FkQnVpbHRQcm9kdWN0LCBFeHRyYWN0
QnVpbHRQcm9kdWN0LCBGZXRjaEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzLCBGaW5k
TW9kaWZpZWRMYXlvdXRUZXN0cywgR2l0U3ZuRmV0Y2gsCisgICAgICAgICAgICAgICAgICAgRGV0
ZXJtaW5lQXV0aG9yLCBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwg
RmV0Y2hCcmFuY2hlcywgRmluZE1vZGlmaWVkQ2hhbmdlTG9ncywgRmluZE1vZGlmaWVkTGF5b3V0
VGVzdHMsIEdpdFN2bkZldGNoLAogICAgICAgICAgICAgICAgICAgIEluc3RhbGxHdGtEZXBlbmRl
bmNpZXMsIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMsIEtpbGxPbGRQcm9jZXNzZXMsIFByaW50Q29u
ZmlndXJhdGlvbiwgUHVzaENvbW1pdFRvV2ViS2l0UmVwbywKICAgICAgICAgICAgICAgICAgICBS
dW5BUElUZXN0cywgUnVuQmluZGluZ3NUZXN0cywgUnVuQnVpbGRXZWJLaXRPcmdVbml0VGVzdHMs
IFJ1bkJ1aWxkYm90Q2hlY2tDb25maWdGb3JCdWlsZFdlYktpdCwgUnVuQnVpbGRib3RDaGVja0Nv
bmZpZ0ZvckVXUywKICAgICAgICAgICAgICAgICAgICBSdW5FV1NVbml0VGVzdHMsIFJ1blJlc3Vs
dHNkYnB5VGVzdHMsIFJ1bkphdmFTY3JpcHRDb3JlVGVzdHMsIFJ1bldlYktpdDFUZXN0cywgUnVu
V2ViS2l0UGVybFRlc3RzLCBSdW5XZWJLaXRQeVB5dGhvbjJUZXN0cywKQEAgLTI5MiwxNSArMjky
LDIxIEBAIGNsYXNzIENvbW1pdFF1ZXVlRmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAg
ICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNoYW5nZSh2ZXJpZnljcXBsdXM9VHJ1ZSkpCiAg
ICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNvbW1pdHRlckFuZFJldmlld2VyKCkpCiAgICAg
ICAgIHNlbGYuYWRkU3RlcChQcmludENvbmZpZ3VyYXRpb24oKSkKLSAgICAgICAgc2VsZi5hZGRT
dGVwKENsZWFuR2l0UmVwbyhkZWZhdWx0X2JyYW5jaD0nbWFzdGVyJykpCi0gICAgICAgIHNlbGYu
YWRkU3RlcChDaGVja091dFNvdXJjZShyZXBvdXJsPSdodHRwczovL2dpdC53ZWJraXQub3JnL2dp
dC9XZWJLaXQtaHR0cHMnKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKENsZWFuR2l0UmVwbygpKQor
ICAgICAgICBzZWxmLmFkZFN0ZXAoQ2hlY2tPdXRTb3VyY2UoKSkKKyAgICAgICAgc2VsZi5hZGRT
dGVwKEdpdFN2bkZldGNoKCkpICAjIEZJWE1FOiBSZW1vdmUgd2hlbiBtaWdyYXRpbmcgdG8gcHVy
ZSBnaXQKICAgICAgICAgc2VsZi5hZGRTdGVwKEZldGNoQnJhbmNoZXMoKSkKICAgICAgICAgc2Vs
Zi5hZGRTdGVwKFNob3dJZGVudGlmaWVyKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChWZXJpZnlH
aXRIdWJJbnRlZ3JpdHkoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFVwZGF0ZVdvcmtpbmdEaXJl
Y3RvcnkoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKEFwcGx5UGF0Y2goKSkKLSAgICAgICAgc2Vs
Zi5hZGRTdGVwKFZhbGlkYXRlQ2hhbmdlTG9nQW5kUmV2aWV3ZXIoKSkKLSAgICAgICAgc2VsZi5h
ZGRTdGVwKEZpbmRNb2RpZmllZENoYW5nZUxvZ3MoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKENv
bW1pdFBhdGNoKCkpCisKKyAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlU3F1YXNoZWQoKSkK
KyAgICAgICAgc2VsZi5hZGRTdGVwKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKCkpCisgICAg
ICAgIHNlbGYuYWRkU3RlcChEZXRlcm1pbmVBdXRob3IoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVw
KEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQorICAgICAgICBzZWxmLmFkZFN0ZXAoVmFsaWRh
dGVDb21taXRNZXNzYWdlKCkpCisKICAgICAgICAgc2VsZi5hZGRTdGVwKEtpbGxPbGRQcm9jZXNz
ZXMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKENvbXBpbGVXZWJLaXQoc2tpcFVwbG9hZD1UcnVl
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEtpbGxPbGRQcm9jZXNzZXMoKSkKQEAgLTMwOCwxMSAr
MzE0LDggQEAgY2xhc3MgQ29tbWl0UXVldWVGYWN0b3J5KGZhY3RvcnkuQnVpbGRGYWN0b3J5KToK
ICAgICAgICAgc2VsZi5hZGRTdGVwKENoZWNrUGF0Y2hTdGF0dXNPbkVXU1F1ZXVlcygpKQogICAg
ICAgICBzZWxmLmFkZFN0ZXAoUnVuV2ViS2l0VGVzdHMoKSkKICAgICAgICAgc2VsZi5hZGRTdGVw
KFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFsc2UsIHZlcmlmeWNxcGx1cz1UcnVlKSkKLSAgICAg
ICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0U291cmNlKHJlcG91cmw9J2h0dHBzOi8vZ2l0LndlYmtp
dC5vcmcvZ2l0L1dlYktpdC1odHRwcycpKQotICAgICAgICBzZWxmLmFkZFN0ZXAoU2hvd0lkZW50
aWZpZXIoKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKFVwZGF0ZVdvcmtpbmdEaXJlY3RvcnkoKSkK
LSAgICAgICAgc2VsZi5hZGRTdGVwKEFwcGx5UGF0Y2goKSkKLSAgICAgICAgc2VsZi5hZGRTdGVw
KENyZWF0ZUxvY2FsR0lUQ29tbWl0KCkpCisKKyAgICAgICAgc2VsZi5hZGRTdGVwKENhbm9uaWNh
bGl6ZSgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoUHVzaENvbW1pdFRvV2ViS2l0UmVwbygpKQog
ICAgICAgICBzZWxmLmFkZFN0ZXAoU2V0QnVpbGRTdW1tYXJ5KCkpCiAKQEAgLTMzNCw2ICszMzcs
NyBAQCBjbGFzcyBNZXJnZVF1ZXVlRmFjdG9yeUJhc2UoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgog
ICAgICAgICBzZWxmLmFkZFN0ZXAoQ2hlY2tPdXRQdWxsUmVxdWVzdCgpKQogICAgICAgICBzZWxm
LmFkZFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoQWRkUmV2
aWV3ZXJUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKERldGVybWluZUF1
dGhvcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkp
CiAgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UoKSkKIApkaWZmIC0t
Z2l0IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkgYi9U
b29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllc191bml0dGVzdC5weQppbmRleCA5Zjdi
NjdlNDA0ZWUuLjQ2YmNmMTNhYmQxNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWls
ZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkKQEAgLTYwNCwxMyArNjA0LDE3IEBAIGNsYXNzIFRlc3RF
eHBlY3RlZEJ1aWxkU3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2NvbmZp
Z3VyYXRpb24nLAogICAgICAgICAgICAgJ2NsZWFuLXVwLWdpdC1yZXBvJywKICAgICAgICAgICAg
ICdjbGVhbi1hbmQtdXBkYXRlLXdvcmtpbmctZGlyZWN0b3J5JywKKyAgICAgICAgICAgICdnaXQt
c3ZuLWZldGNoJywKICAgICAgICAgICAgICdmZXRjaC1icmFuY2gtcmVmZXJlbmNlcycsCiAgICAg
ICAgICAgICAnc2hvdy1pZGVudGlmaWVyJywKICAgICAgICAgICAgICd2ZXJpZnktZ2l0aHViLWlu
dGVncml0eScsCiAgICAgICAgICAgICAndXBkYXRlLXdvcmtpbmctZGlyZWN0b3J5JywKLSAgICAg
ICAgICAgICdhcHBseS1wYXRjaCcsCi0gICAgICAgICAgICAndmFsaWRhdGUtY2hhbmdlbG9nLWFu
ZC1yZXZpZXdlcicsCi0gICAgICAgICAgICAnZmluZC1tb2RpZmllZC1jaGFuZ2Vsb2dzJywKKyAg
ICAgICAgICAgICdjb21taXQtcGF0Y2gnLAorICAgICAgICAgICAgJ3ZhbGlkYXRlLXNxdWFzaGVk
JywKKyAgICAgICAgICAgICdhZGQtcmV2aWV3ZXItdG8tY29tbWl0LW1lc3NhZ2UnLAorICAgICAg
ICAgICAgJ2RldGVybWluZS1hdXRob3InLAorICAgICAgICAgICAgJ2FkZC1hdXRob3ItdG8tY29t
bWl0LW1lc3NhZ2UnLAorICAgICAgICAgICAgJ3ZhbGlkYXRlLWNvbW1pdC1tZXNzYWdlJywKICAg
ICAgICAgICAgICdraWxsLW9sZC1wcm9jZXNzZXMnLAogICAgICAgICAgICAgJ2NvbXBpbGUtd2Vi
a2l0JywKICAgICAgICAgICAgICdraWxsLW9sZC1wcm9jZXNzZXMnLApAQCAtNjE4LDExICs2MjIs
NyBAQCBjbGFzcyBUZXN0RXhwZWN0ZWRCdWlsZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAg
ICAgICAgICAgICdjaGVjay1zdGF0dXMtb24tb3RoZXItZXdzZXMnLAogICAgICAgICAgICAgJ2xh
eW91dC10ZXN0cycsCiAgICAgICAgICAgICAndmFsaWRhdGUtY2hhbmdlJywKLSAgICAgICAgICAg
ICdjbGVhbi1hbmQtdXBkYXRlLXdvcmtpbmctZGlyZWN0b3J5JywKLSAgICAgICAgICAgICdzaG93
LWlkZW50aWZpZXInLAotICAgICAgICAgICAgJ3VwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCi0g
ICAgICAgICAgICAnYXBwbHktcGF0Y2gnLAotICAgICAgICAgICAgJ2NyZWF0ZS1sb2NhbC1naXQt
Y29tbWl0JywKKyAgICAgICAgICAgICdjYW5vbmljYWxpemUtY29tbWl0JywKICAgICAgICAgICAg
ICdwdXNoLWNvbW1pdC10by13ZWJraXQtcmVwbycsCiAgICAgICAgICAgICAnc2V0LWJ1aWxkLXN1
bW1hcnknCiAgICAgICAgIF0sCkBAIC02NDEsNiArNjQxLDcgQEAgY2xhc3MgVGVzdEV4cGVjdGVk
QnVpbGRTdGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY2hlY2tvdXQtcHVs
bC1yZXF1ZXN0JywKICAgICAgICAgICAgICd2YWxpZGF0ZS1zcXVhc2hlZCcsCiAgICAgICAgICAg
ICAnYWRkLXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAgICdkZXRlcm1p
bmUtYXV0aG9yJywKICAgICAgICAgICAgICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1tZXNzYWdlJywK
ICAgICAgICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAna2ls
bC1vbGQtcHJvY2Vzc2VzJywKQEAgLTY2Niw2ICs2NjcsNyBAQCBjbGFzcyBUZXN0RXhwZWN0ZWRC
dWlsZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdjaGVja291dC1wdWxs
LXJlcXVlc3QnLAogICAgICAgICAgICAgJ3ZhbGlkYXRlLXNxdWFzaGVkJywKICAgICAgICAgICAg
ICdhZGQtcmV2aWV3ZXItdG8tY29tbWl0LW1lc3NhZ2UnLAorICAgICAgICAgICAgJ2RldGVybWlu
ZS1hdXRob3InLAogICAgICAgICAgICAgJ2FkZC1hdXRob3ItdG8tY29tbWl0LW1lc3NhZ2UnLAog
ICAgICAgICAgICAgJ3ZhbGlkYXRlLWNvbW1pdC1tZXNzYWdlJywKICAgICAgICAgICAgICd2YWxp
ZGF0ZS1jaGFuZ2UnLApAQCAtNjgxLDYgKzY4Myw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxk
U3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBsb2FkQ29uZmlnLmxvYWRCdWlsZGVy
Q29uZmlnKHNlbGYuY29uZmlnLCBpc190ZXN0X21vZGVfZW5hYmxlZD1UcnVlLCBtYXN0ZXJfcHJl
Zml4X3BhdGg9Y3dkKQogCiAgICAgZGVmIHRlc3RfYWxsX2V4cGVjdGVkX3N0ZXBzKHNlbGYpOgor
ICAgICAgICBzZWxmLm1heERpZmYgPSBOb25lCiAgICAgICAgIGZvciBidWlsZGVyIGluIHNlbGYu
Y29uZmlnWydidWlsZGVycyddOgogICAgICAgICAgICAgYnVpbGRTdGVwcyA9IFtdCiAgICAgICAg
ICAgICBmb3Igc3RlcCBpbiBidWlsZGVyWydmYWN0b3J5J10uc3RlcHM6CmRpZmYgLS1naXQgYS9U
b29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5IGIvVG9vbHMvQ0lTdXBwb3J0L2V3cy1i
dWlsZC9zdGVwcy5weQppbmRleCAxOTJmNmMyMDU3NWEuLjBkZDI0NmE4NmExNCAxMDA2NDQKLS0t
IGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weQorKysgYi9Ub29scy9DSVN1cHBv
cnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CkBAIC04NDUsNiArODQ1LDYwIEBAIGNsYXNzIEFwcGx5UGF0
Y2goc2hlbGwuU2hlbGxDb21tYW5kLCBDb21wb3NpdGVTdGVwTWl4aW4sIFNoZWxsTWl4aW4pOgog
ICAgICAgICByZXR1cm4gcmMKIAogCitjbGFzcyBDb21taXRQYXRjaChzdGVwcy5TaGVsbFNlcXVl
bmNlLCBDb21wb3NpdGVTdGVwTWl4aW4sIFNoZWxsTWl4aW4pOgorICAgIG5hbWUgPSAnY29tbWl0
LXBhdGNoJworICAgIGRlc2NyaXB0aW9uID0gWydjb21taXQtcGF0Y2gnXQorICAgIGRlc2NyaXB0
aW9uRG9uZSA9IFsnQ3JlYXRlZCBjb21taXQgZnJvbSBwYXRjaCddCisgICAgaGFsdE9uRmFpbHVy
ZSA9IFRydWUKKyAgICBlbnYgPSBkaWN0KEZJTFRFUl9CUkFOQ0hfU1FVRUxDSF9XQVJOSU5HPScx
JykKKyAgICBGSUxURVJfQlJBTkNIX1BST0dSQU0gPSAnJydpbXBvcnQgcmUKK2ltcG9ydCBzeXMK
KworbGluZXMgPSBbbCBmb3IgbCBpbiBzeXMuc3RkaW5dCitmb3IgcyBpbiByZS5zcGxpdChyJyAo
TmVlZCB0aGUgYnVnIFVSTCBcKE9PUFMhXCkuKXwoXFMrOlwvXC9cUyspJywgbGluZXNbMF0ucnN0
cmlwKCkpOgorICAgIGlmIHMgYW5kIHMgIT0gJyAnOgorICAgICAgICBwcmludChzKQorZm9yIGwg
aW4gbGluZXNbMTpdOgorICAgIHN5cy5zdGRvdXQud3JpdGUobCkKKycnJworCisgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoQ29tbWl0UGF0Y2gsIHNlbGYp
Ll9faW5pdF9fKHRpbWVvdXQ9MTAgKiA2MCwgbG9nRW52aXJvbj1GYWxzZSwgKiprd2FyZ3MpCisK
KyAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6CisgICAgICAgIHJldHVybiBzZWxmLmdldFBy
b3BlcnR5KCdwYXRjaF9pZCcsIEZhbHNlKQorCisgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVz
dWx0cywgc3RlcCk6CisgICAgICAgIHJldHVybiBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKSBvciAo
cmVzdWx0cyA9PSBTVUNDRVNTIGFuZCBzZWxmLmdldFByb3BlcnR5KCdzZW5zaXRpdmUnLCBGYWxz
ZSkpCisKKyAgICBkZWYgX2dldF9wYXRjaChzZWxmKToKKyAgICAgICAgc291cmNlc3RhbXAgPSBz
ZWxmLmJ1aWxkLmdldFNvdXJjZVN0YW1wKHNlbGYuZ2V0UHJvcGVydHkoJ2NvZGViYXNlJywgJycp
KQorICAgICAgICBpZiBub3Qgc291cmNlc3RhbXAgb3Igbm90IHNvdXJjZXN0YW1wLnBhdGNoOgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgcmV0dXJuIHNvdXJjZXN0YW1wLnBhdGNo
WzFdCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLmNvbW1hbmRzID0gW10KKyAg
ICAgICAgcGF0Y2ggPSBzZWxmLl9nZXRfcGF0Y2goKQorCisgICAgICAgIGNvbW1hbmRzID0gW10K
KyAgICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgY29tbWFuZHMgKz0gW1snY3VybCcs
ICctTCcsICdodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9hdHRhY2htZW50LmNnaT9pZD17fScuZm9y
bWF0KHNlbGYuZ2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJycpKSwgJy1vJywgJy5idWlsZGJvdC1k
aWZmJ11dCisgICAgICAgIGNvbW1hbmRzICs9IFsKKyAgICAgICAgICAgIFsnZ2l0JywgJ2FtJywg
Jy5idWlsZGJvdC1kaWZmJ10sCisgICAgICAgICAgICBbJ2dpdCcsICdmaWx0ZXItYnJhbmNoJywg
Jy1mJywgJy0tbXNnLWZpbHRlcicsICdweXRob24zIC1jICJ7fSInLmZvcm1hdChzZWxmLkZJTFRF
Ul9CUkFOQ0hfUFJPR1JBTSksICdIRUFELi4uSEVBRH4xJ10sCisgICAgICAgIF0KKyAgICAgICAg
Zm9yIGNvbW1hbmQgaW4gY29tbWFuZHM6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVu
ZCh1dGlsLlNoZWxsQXJnKGNvbW1hbmQ9Y29tbWFuZCwgbG9nbmFtZT0nc3RkaW8nLCBoYWx0T25G
YWlsdXJlPVRydWUpKQorCisgICAgICAgIHJldHVybiBzdXBlcihDb21taXRQYXRjaCwgc2VsZiku
cnVuKCkKKworICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAgICAgICBpZiBzZWxm
LnJlc3VsdHMgIT0gU1VDQ0VTUzoKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnZ2l0IGZh
aWxlZCB0byBhcHBseSBwYXRjaCB0byB0cnVuayd9CisgICAgICAgIHJldHVybiBzdXBlcihDb21t
aXRQYXRjaCwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCisKKwogY2xhc3MgQ2hlY2tPdXRQdWxs
UmVxdWVzdChzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICBuYW1lID0gJ2No
ZWNrb3V0LXB1bGwtcmVxdWVzdCcKICAgICBkZXNjcmlwdGlvbiA9IFsnY2hlY2tpbmctb3V0LXB1
bGwtcmVxdWVzdCddCkBAIC00NTc1LDEyICs0NjI5LDE3IEBAIGNsYXNzIFB1c2hDb21taXRUb1dl
YktpdFJlcG8oc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICAgICAgICAgICAgICAgICAgXSkKICAg
ICAgICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0
ZXBzQWZ0ZXJDdXJyZW50U3RlcChbCi0gICAgICAgICAgICAgICAgICAgICAgICBHaXRSZXNldEhh
cmQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgIENoZWNrT3V0U291cmNlKHJlcG91cmw9J2h0
dHBzOi8vZ2l0LndlYmtpdC5vcmcvZ2l0L1dlYktpdC1odHRwcycpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgUmVzZXRHaXRTdm4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENsZWFuR2l0
UmVwbygpLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2UoKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIEdpdFN2bkZldGNoKCksCiAgICAgICAgICAgICAgICAgICAgICAg
ICBTaG93SWRlbnRpZmllcigpLAogICAgICAgICAgICAgICAgICAgICAgICAgVXBkYXRlV29ya2lu
Z0RpcmVjdG9yeSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgQXBwbHlQYXRjaCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgQ3JlYXRlTG9jYWxHSVRDb21taXQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIENvbW1pdFBhdGNoKCksCisgICAgICAgICAgICAgICAgICAgICAgICBBZGRS
ZXZpZXdlclRvQ29tbWl0TWVzc2FnZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgQWRkQXV0
aG9yVG9Db21taXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgICBWYWxpZGF0ZUNo
YW5nZShhZGRVUkxzPUZhbHNlLCB2ZXJpZnljcXBsdXM9VHJ1ZSksCisgICAgICAgICAgICAgICAg
ICAgICAgICBDYW5vbmljYWxpemUoKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFB1c2hDb21t
aXRUb1dlYktpdFJlcG8oKSwKICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gcmMKQEAgLTQ3NjEsOCArNDgyMCw4IEBAIGNsYXNzIFZhbGlkYXRlU3F1YXNoZWQo
c2hlbGwuU2hlbGxDb21tYW5kKToKICAgICAgICAgc3VwZXIoVmFsaWRhdGVTcXVhc2hlZCwgc2Vs
ZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgKiprd2FyZ3MpCiAKICAgICBkZWYgc3RhcnQo
c2VsZiwgQnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcz1sb2dvYnNlcnZlci5CdWZmZXJMb2dPYnNlcnZl
cik6Ci0gICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVm
JywgREVGQVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgn
Z2l0aHViLmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAgIGJhc2VfcmVmID0gc2Vs
Zi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgZidvcmlnaW4ve0RFRkFVTFRfQlJBTkNI
fScpCisgICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVm
JywgJ0hFQUQnKQogICAgICAgICBzZWxmLmNvbW1hbmQgPSBbJ2dpdCcsICdsb2cnLCAnLS1vbmVs
aW5lJywgaGVhZF9yZWYsIGYnXntiYXNlX3JlZn0nLCAnLS1tYXgtY291bnQ9MiddCiAKICAgICAg
ICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBCdWZmZXJMb2dPYnNlcnZlckNsYXNzKHdhbnRTdGRlcnI9
VHJ1ZSkKQEAgLTQ3ODcsMTIgKzQ4NDYsNiBAQCBjbGFzcyBWYWxpZGF0ZVNxdWFzaGVkKHNoZWxs
LlNoZWxsQ29tbWFuZCk6CiAgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUwogICAgICAgICByZXR1
cm4gRkFJTFVSRQogCi0gICAgZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICByZXR1
cm4gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicpCi0KLSAgICBkZWYgaGlkZVN0ZXBJ
ZihzZWxmLCByZXN1bHRzLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElm
KHN0ZXApCi0KIAogY2xhc3MgQWRkUmV2aWV3ZXJNaXhpbihvYmplY3QpOgogICAgIE5PQk9EWV9T
RUQgPSAncy9OT0JPRFkgKE9PKlBQKlMhKikve30vZycKQEAgLTQ4MzAsOCArNDg4Myw4IEBAIGNs
YXNzIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2
aWV3ZXJNaXhpbik6CiAgICAgICAgIHN1cGVyKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBz
ZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCB0aW1lb3V0PTYwLCAqKmt3YXJncykKIAog
ICAgIGRlZiBzdGFydChzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1
ZmZlckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxm
LmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAg
YmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97
REVGQVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAKICAgICAgICAgZ210b2Zmc2V0ID0gaW50KHRpbWUu
bG9jYWx0aW1lKCkudG1fZ210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAgICAgICBkYXRlID0g
Zid7aW50KHRpbWUudGltZSgpKX0ge2dtdG9mZnNldH0nCkBAIC00ODU1LDQ0ICs0OTA4LDY3IEBA
IGNsYXNzIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRk
UmV2aWV3ZXJNaXhpbik6CiAgICAgICAgIHJldHVybiBzdXBlcihBZGRSZXZpZXdlclRvQ29tbWl0
TWVzc2FnZSwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCiAKICAgICBkZWYgZG9TdGVwSWYoc2Vs
Ziwgc3RlcCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVy
JykgYW5kIHNlbGYuZ2V0UHJvcGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKKyAgICAgICAg
cmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ3Jldmlld2Vyc19mdWxsX25hbWVzJykKIAogICAgIGRl
ZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgogICAgICAgICByZXR1cm4gbm90IHNl
bGYuZG9TdGVwSWYoc3RlcCkKIAogCi1jbGFzcyBBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2Uoc2hl
bGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKLSAgICBuYW1lID0gJ2FkZC1hdXRo
b3ItdG8tY29tbWl0LW1lc3NhZ2UnCitjbGFzcyBEZXRlcm1pbmVBdXRob3Ioc2hlbGwuU2hlbGxD
b21tYW5kLCBTaGVsbE1peGluKToKKyAgICBuYW1lID0gJ2RldGVybWluZS1hdXRob3InCiAgICAg
aGFsdE9uRmFpbHVyZSA9IFRydWUKKyAgICBBVVRIT1JfUkUgPSByZS5jb21waWxlKHInQXV0aG9y
OlxzKyguKyA8Lis+KScpCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgotICAg
ICAgICBzdXBlcihBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxvZ0Vu
dmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKQorICAgICAgICBzdXBlcihEZXRlcm1p
bmVBdXRob3IsIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoq
a3dhcmdzKQogCi0gICAgZGVmIGF1dGhvcihzZWxmKToKLSAgICAgICAgY29udHJpYnV0b3JzLCBf
ID0gQ29udHJpYnV0b3JzLmxvYWQoKQotICAgICAgICB1c2VybmFtZSA9IHNlbGYuZ2V0UHJvcGVy
dHkoJ2dpdGh1Yi5oZWFkLnVzZXIubG9naW4nKQotICAgICAgICBvd25lcnMgPSBzZWxmLmdldFBy
b3BlcnR5KCdvd25lcnMnLCBbTm9uZV0pCi0gICAgICAgIGZvciBjYW5kaWRhdGUgaW4gW3VzZXJu
YW1lLCBvd25lcnNbMF1dOgotICAgICAgICAgICAgaWYgbm90IGNhbmRpZGF0ZToKLSAgICAgICAg
ICAgICAgICBjb250aW51ZQorICAgIGRlZiBzdGFydChzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNs
YXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVyKToKKyAgICAgICAgc2VsZi5jb21tYW5k
ID0gc2VsZi5zaGVsbF9jb21tYW5kKCJnaXQgbG9nIC0xIHwgZ3JlcCAnXkF1dGhvcjonIikKKwor
ICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3Mod2FudFN0
ZGVycj1UcnVlKQorICAgICAgICBzZWxmLmFkZExvZ09ic2VydmVyKCdzdGRpbycsIHNlbGYubG9n
X29ic2VydmVyKQorCisgICAgICAgIHJldHVybiBzdXBlcihEZXRlcm1pbmVBdXRob3IsIHNlbGYp
LnN0YXJ0KCkKKworICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAgICAgICBuYW1l
ID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykKKyAgICAgICAgaWYgbm90IG5hbWUgb3Igc2Vs
Zi5yZXN1bHRzID09IEZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxl
ZCB0byBmaW5kIGF1dGhvcid9CisgICAgICAgIGVsaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6
CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogZiJBdXRob3IgaXMge25hbWV9In0KKyAgICAg
ICAgcmV0dXJuIHN1cGVyKERldGVybWluZUF1dGhvciwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgp
CiAKLSAgICAgICAgICAgIG5hbWUgPSBjb250cmlidXRvcnMuZ2V0KGNhbmRpZGF0ZS5sb3dlcigp
LCB7fSkuZ2V0KCduYW1lJywgTm9uZSkKLSAgICAgICAgICAgIGVtYWlsID0gY29udHJpYnV0b3Jz
LmdldChjYW5kaWRhdGUubG93ZXIoKSwge30pLmdldCgnZW1haWwnLCBOb25lKQorICAgIGRlZiBl
dmFsdWF0ZUNvbW1hbmQoc2VsZiwgY21kKToKKyAgICAgICAgcmMgPSBzdXBlcihEZXRlcm1pbmVB
dXRob3IsIHNlbGYpLmV2YWx1YXRlQ29tbWFuZChjbWQpCisgICAgICAgIGlmIHJjICE9IFNVQ0NF
U1M6CisgICAgICAgICAgICByZXR1cm4gcmMKKworICAgICAgICBsb2dfdGV4dCA9IHNlbGYubG9n
X29ic2VydmVyLmdldFN0ZG91dCgpCisgICAgICAgIGxpbmVzID0gbG9nX3RleHQuc3BsaXRsaW5l
cygpCisgICAgICAgIGlmIGxlbihsaW5lcykgIT0gMToKKyAgICAgICAgICAgIHJldHVybiBGQUlM
VVJFCisgICAgICAgIG1hdGNoID0gc2VsZi5BVVRIT1JfUkUubWF0Y2gobGluZXNbMF0pCisgICAg
ICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnYXV0aG9yJywgbWF0
Y2guZ3JvdXAoMSkpCisgICAgICAgICAgICByZXR1cm4gU1VDQ0VTUworICAgICAgICByZXR1cm4g
RkFJTFVSRQogCi0gICAgICAgICAgICBpZiBuYW1lIGFuZCBlbWFpbDoKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbmFtZSwgZW1haWwKK2NsYXNzIEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShzaGVs
bC5TaGVsbENvbW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgorICAgIG5hbWUgPSAnYWRkLWF1dGhv
ci10by1jb21taXQtbWVzc2FnZScKKyAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQogCi0gICAgICAg
IHJldHVybiBOb25lLCBOb25lCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKKyAg
ICAgICAgc3VwZXIoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLCBzZWxmKS5fX2luaXRfXyhsb2dF
bnZpcm9uPUZhbHNlLCB0aW1lb3V0PTYwLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxm
KToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYn
LCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9yZWYgPSBzZWxm
LmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVMVF9CUkFOQ0h9
JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYn
LCAnSEVBRCcpCiAKICAgICAgICAgZ210b2Zmc2V0ID0gaW50KHRpbWUubG9jYWx0aW1lKCkudG1f
Z210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAgICAgICB0aW1lc3RhbXAgPSBmJ3tpbnQodGlt
ZS50aW1lKCkpfSB7Z210b2Zmc2V0fScKIAotICAgICAgICBuYW1lLCBlbWFpbCA9IHNlbGYuYXV0
aG9yKCkKLSAgICAgICAgcGF0Y2hfYnkgPSBmIlBhdGNoIGJ5IHtuYW1lfSA8e2VtYWlsfT4gb24g
e2RhdGUudG9kYXkoKS5zdHJmdGltZSgnJVktJW0tJWQnKX0iCisgICAgICAgIGF1dGhvciA9IHNl
bGYuZ2V0UHJvcGVydHkoJ2F1dGhvcicpCisgICAgICAgIHBhdGNoX2J5ID0gZiJQYXRjaCBieSB7
YXV0aG9yfSBvbiB7ZGF0ZS50b2RheSgpLnN0cmZ0aW1lKCclWS0lbS0lZCcpfSIKIAogICAgICAg
ICBzZWxmLmNvbW1hbmQgPSBbCiAgICAgICAgICAgICAnZ2l0JywgJ2ZpbHRlci1icmFuY2gnLCAn
LWYnLApAQCAtNDkxMCwxNiArNDk4NiwxMiBAQCBjbGFzcyBBZGRBdXRob3JUb0NvbW1pdE1lc3Nh
Z2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKICAgICAgICAgaWYgc2Vs
Zi5yZXN1bHRzID09IEZBSUxVUkU6CiAgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxl
ZCB0byBhZGQgYXV0aG9yIHRvIGNvbW1pdCBtZXNzYWdlJ30KICAgICAgICAgZWxpZiBzZWxmLnJl
c3VsdHMgPT0gU1VDQ0VTUzoKLSAgICAgICAgICAgIG5hbWUsIF8gPSBzZWxmLmF1dGhvcigpCi0g
ICAgICAgICAgICByZXR1cm4geydzdGVwJzogZiJBZGRlZCB7bmFtZX0gYXMgYXV0aG9yIn0KKyAg
ICAgICAgICAgIGF1dGhvciA9IHNlbGYuZ2V0UHJvcGVydHkoJ2F1dGhvcicpCisgICAgICAgICAg
ICByZXR1cm4geydzdGVwJzogZiJBZGRlZCB7YXV0aG9yfSBhcyBhdXRob3IifQogICAgICAgICBy
ZXR1cm4gc3VwZXIoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLCBzZWxmKS5nZXRSZXN1bHRTdW1t
YXJ5KCkKIAogICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToKLSAgICAgICAgaWYgbm90IHNl
bGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInKToKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQotCi0gICAgICAgIG5hbWUsIGVtYWlsID0gc2VsZi5hdXRob3IoKQotICAgICAgICByZXR1cm4g
bmFtZSBhbmQgZW1haWwKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2F1dGhvcicp
CiAKICAgICBkZWYgaGlkZVN0ZXBJZihzZWxmLCByZXN1bHRzLCBzdGVwKToKICAgICAgICAgcmV0
dXJuIG5vdCBzZWxmLmRvU3RlcElmKHN0ZXApCkBAIC00OTM2LDYgKzUwMDgsNyBAQCBjbGFzcyBW
YWxpZGF0ZUNvbW1pdE1lc3NhZ2Uoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6CiAg
ICAgICAgICdSdWJiZXItc3RhbXBlZCBieScsCiAgICAgICAgICdSdWJiZXIgc3RhbXBlZCBieScs
CiAgICAgKQorICAgIFJFX0NIQU5HRUxPRyA9IGJyJ14oXCtcK1wrKVxzKyguKkNoYW5nZUxvZy4q
KScKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIHN1cGVyKFZh
bGlkYXRlQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGlt
ZW91dD02MCwgKiprd2FyZ3MpCkBAIC00OTQ0LDEyICs1MDE3LDE5IEBAIGNsYXNzIFZhbGlkYXRl
Q29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICAgICAg
c291cmNlc3RhbXAgPSBzZWxmLmJ1aWxkLmdldFNvdXJjZVN0YW1wKHNlbGYuZ2V0UHJvcGVydHko
J2NvZGViYXNlJywgJycpKQogICAgICAgICBpZiBzb3VyY2VzdGFtcCBhbmQgc291cmNlc3RhbXAu
Y2hhbmdlczoKICAgICAgICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5jaGFuZ2VzWzBdLmZpbGVz
CisgICAgICAgIGlmIHNvdXJjZXN0YW1wIGFuZCBzb3VyY2VzdGFtcC5wYXRjaDoKKyAgICAgICAg
ICAgIGZpbGVzID0gW10KKyAgICAgICAgICAgIGZvciBsaW5lIGluIHNvdXJjZXN0YW1wLnBhdGNo
WzFdLnNwbGl0bGluZXMoKToKKyAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLnNlYXJjaChzZWxm
LlJFX0NIQU5HRUxPRywgbGluZSkKKyAgICAgICAgICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAg
ICAgICAgICAgICAgZmlsZXMuYXBwZW5kKG1hdGNoLmdyb3VwKDEpKQorICAgICAgICAgICAgcmV0
dXJuIGZpbGVzCiAgICAgICAgIHJldHVybiBbXQogCiAgICAgQGRlZmVyLmlubGluZUNhbGxiYWNr
cwogICAgIGRlZiBydW4oc2VsZiwgQnVmZmVyTG9nT2JzZXJ2ZXJDbGFzcz1sb2dvYnNlcnZlci5C
dWZmZXJMb2dPYnNlcnZlcik6Ci0gICAgICAgIGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgn
Z2l0aHViLmJhc2UucmVmJywgREVGQVVMVF9CUkFOQ0gpCi0gICAgICAgIGhlYWRfcmVmID0gc2Vs
Zi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgREVGQVVMVF9CUkFOQ0gpCisgICAgICAg
IGJhc2VfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgZidvcmlnaW4v
e0RFRkFVTFRfQlJBTkNIfScpCisgICAgICAgIGhlYWRfcmVmID0gc2VsZi5nZXRQcm9wZXJ0eSgn
Z2l0aHViLmhlYWQucmVmJywgJ0hFQUQnKQogCiAgICAgICAgIHNlbGYuY29tbWFuZHMgPSBbXQog
ICAgICAgICBjb21tYW5kcyA9IFsKQEAgLTQ5ODcsNyArNTA2Nyw3IEBAIGNsYXNzIFZhbGlkYXRl
Q29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICAgICAg
aWYgcmMgPT0gRkFJTFVSRToKICAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2NvbW1lbnRf
dGV4dCcsIGYie3NlbGYuc3VtbWFyeX0sIGJsb2NraW5nIFBSICN7c2VsZi5nZXRQcm9wZXJ0eSgn
Z2l0aHViLm51bWJlcicpfSIpCiAgICAgICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdidWlsZF9m
aW5pc2hfc3VtbWFyeScsICdDb21taXQgbWVzc2FnZSB2YWxpZGF0aW9uIGZhaWxlZCcpCi0gICAg
ICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChbTGVhdmVDb21tZW50
KCksICBCbG9ja1B1bGxSZXF1ZXN0KCldKQorICAgICAgICAgICAgc2VsZi5idWlsZC5hZGRTdGVw
c0FmdGVyQ3VycmVudFN0ZXAoW0xlYXZlQ29tbWVudCgpLCBTZXRDb21taXRRdWV1ZU1pbnVzRmxh
Z09uUGF0Y2goKSwgQmxvY2tQdWxsUmVxdWVzdCgpXSkKICAgICAgICAgcmV0dXJuIHJjCiAKICAg
ICBkZWYgZ2V0UmVzdWx0U3VtbWFyeShzZWxmKToKQEAgLTQ5OTUsMTIgKzUwNzUsNiBAQCBjbGFz
cyBWYWxpZGF0ZUNvbW1pdE1lc3NhZ2Uoc3RlcHMuU2hlbGxTZXF1ZW5jZSwgU2hlbGxNaXhpbik6
CiAgICAgICAgICAgICByZXR1cm4geydzdGVwJzogc2VsZi5zdW1tYXJ5fQogICAgICAgICByZXR1
cm4gc3VwZXIoVmFsaWRhdGVDb21taXRNZXNzYWdlLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkK
IAotICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInKQotCi0gICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVz
dWx0cywgc3RlcCk6Ci0gICAgICAgIHJldHVybiBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKQotCiAK
IGNsYXNzIENhbm9uaWNhbGl6ZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAg
ICBuYW1lID0gJ2Nhbm9uaWNhbGl6ZS1jb21taXQnCkBAIC01MDE2LDE1ICs1MDkwLDE0IEBAIGNs
YXNzIENhbm9uaWNhbGl6ZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICAg
ICAgc2VsZi5jb21tYW5kcyA9IFtdCiAKICAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3Bl
cnR5KCdnaXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYg
PSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAg
ICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBOb25l
KQogCiAgICAgICAgIGNvbW1hbmRzID0gW10KICAgICAgICAgaWYgc2VsZi5yZWJhc2VfZW5hYmxl
ZDoKLSAgICAgICAgICAgIGNvbW1hbmRzID0gWwotICAgICAgICAgICAgICAgIFsnZ2l0JywgJ3B1
bGwnLCAnb3JpZ2luJywgYmFzZV9yZWYsICctLXJlYmFzZSddLAotICAgICAgICAgICAgICAgIFsn
Z2l0JywgJ2JyYW5jaCcsICctZicsIGJhc2VfcmVmLCBoZWFkX3JlZl0sCi0gICAgICAgICAgICAg
ICAgWydnaXQnLCAnY2hlY2tvdXQnLCBiYXNlX3JlZl0sCi0gICAgICAgICAgICBdCisgICAgICAg
ICAgICBjb21tYW5kcyA9IFtbJ2dpdCcsICdwdWxsJywgJ29yaWdpbicsIGJhc2VfcmVmLCAnLS1y
ZWJhc2UnXV0KKyAgICAgICAgICAgIGlmIGhlYWRfcmVmOgorICAgICAgICAgICAgICAgIGNvbW1h
bmRzICs9IFtbJ2dpdCcsICdicmFuY2gnLCAnLWYnLCBiYXNlX3JlZiwgaGVhZF9yZWZdXQorICAg
ICAgICAgICAgY29tbWFuZHMgKz0gW1snZ2l0JywgJ2NoZWNrb3V0JywgYmFzZV9yZWZdXQogICAg
ICAgICBjb21tYW5kcy5hcHBlbmQoWydweXRob24zJywgJ1Rvb2xzL1NjcmlwdHMvZ2l0LXdlYmtp
dCcsICdjYW5vbmljYWxpemUnLCAnLW4nLCAnMScgaWYgc2VsZi5yZWJhc2VfZW5hYmxlZCBlbHNl
ICczJ10pCiAKICAgICAgICAgZm9yIGNvbW1hbmQgaW4gY29tbWFuZHM6CmRpZmYgLS1naXQgYS9U
b29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvQ0lTdXBw
b3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weQppbmRleCA0MmY0NGM2MzU5YTEuLjAwYzQ4
MGUzNzdkMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0
dGVzdC5weQorKysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5
CkBAIC00NSw5ICs0NSw5IEBAIGltcG9ydCBzZW5kX2VtYWlsCiBmcm9tIHN0ZXBzIGltcG9ydCAo
QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgQW5h
bHl6ZUFQSVRlc3RzUmVzdWx0cywgQW5hbHl6ZUNvbXBpbGVXZWJLaXRSZXN1bHRzLAogICAgICAg
ICAgICAgICAgICAgIEFuYWx5emVKU0NUZXN0c1Jlc3VsdHMsIEFuYWx5emVMYXlvdXRUZXN0c1Jl
c3VsdHMsIEFwcGx5UGF0Y2gsIEFwcGx5V2F0Y2hMaXN0LCBBcmNoaXZlQnVpbHRQcm9kdWN0LCBB
cmNoaXZlVGVzdFJlc3VsdHMsIEJ1Z3ppbGxhTWl4aW4sCiAgICAgICAgICAgICAgICAgICAgQ2Fu
b25pY2FsaXplLCBDaGVja091dFB1bGxSZXF1ZXN0LCBDaGVja091dFNvdXJjZSwgQ2hlY2tPdXRT
cGVjaWZpY1JldmlzaW9uLCBDaGVja0NoYW5nZVJlbGV2YW5jZSwgQ2hlY2tQYXRjaFN0YXR1c09u
RVdTUXVldWVzLCBDaGVja1N0eWxlLAotICAgICAgICAgICAgICAgICAgIENsZWFuQnVpbGQsIENs
ZWFuVXBHaXRJbmRleExvY2ssIENsZWFuR2l0UmVwbywgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5LCBD
bG9zZVB1bGxSZXF1ZXN0LCBDb21waWxlSlNDLCBDb21waWxlSlNDV2l0aG91dENoYW5nZSwKKyAg
ICAgICAgICAgICAgICAgICBDbGVhbkJ1aWxkLCBDbGVhblVwR2l0SW5kZXhMb2NrLCBDbGVhbkdp
dFJlcG8sIENsZWFuV29ya2luZ0RpcmVjdG9yeSwgQ2xvc2VQdWxsUmVxdWVzdCwgQ29tcGlsZUpT
QywgQ29tbWl0UGF0Y2gsIENvbXBpbGVKU0NXaXRob3V0Q2hhbmdlLAogICAgICAgICAgICAgICAg
ICAgIENvbXBpbGVXZWJLaXQsIENvbXBpbGVXZWJLaXRXaXRob3V0Q2hhbmdlLCBDb25maWd1cmVC
dWlsZCwgQ29uZmlndXJlQnVpbGQsIENvbnRyaWJ1dG9ycywgQ3JlYXRlTG9jYWxHSVRDb21taXQs
Ci0gICAgICAgICAgICAgICAgICAgRGV0ZXJtaW5lTGFuZGVkSWRlbnRpZmllciwgRG93bmxvYWRC
dWlsdFByb2R1Y3QsIERvd25sb2FkQnVpbHRQcm9kdWN0RnJvbU1hc3RlciwgRVdTX0JVSUxEX0hP
U1ROQU1FLCBFeHRyYWN0QnVpbHRQcm9kdWN0LCBFeHRyYWN0VGVzdFJlc3VsdHMsCisgICAgICAg
ICAgICAgICAgICAgRGV0ZXJtaW5lQXV0aG9yLCBEZXRlcm1pbmVMYW5kZWRJZGVudGlmaWVyLCBE
b3dubG9hZEJ1aWx0UHJvZHVjdCwgRG93bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyLCBFV1Nf
QlVJTERfSE9TVE5BTUUsIEV4dHJhY3RCdWlsdFByb2R1Y3QsIEV4dHJhY3RUZXN0UmVzdWx0cywK
ICAgICAgICAgICAgICAgICAgICBGZXRjaEJyYW5jaGVzLCBGaW5kTW9kaWZpZWRDaGFuZ2VMb2dz
LCBGaW5kTW9kaWZpZWRMYXlvdXRUZXN0cywgR2l0SHViLCBHaXRSZXNldEhhcmQsIEdpdFN2bkZl
dGNoLAogICAgICAgICAgICAgICAgICAgIEluc3RhbGxCdWlsdFByb2R1Y3QsIEluc3RhbGxHdGtE
ZXBlbmRlbmNpZXMsIEluc3RhbGxXcGVEZXBlbmRlbmNpZXMsCiAgICAgICAgICAgICAgICAgICAg
S2lsbE9sZFByb2Nlc3NlcywgUHJpbnRDb25maWd1cmF0aW9uLCBQdXNoQ29tbWl0VG9XZWJLaXRS
ZXBvLCBQdXNoUHVsbFJlcXVlc3RCcmFuY2gsIFJlUnVuQVBJVGVzdHMsIFJlUnVuV2ViS2l0UGVy
bFRlc3RzLApAQCAtNTgyNywxMCArNTgyNywxOCBAQCBjbGFzcyBUZXN0VmFsaWRhdGVTcXVhc2hl
ZChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0
ZWFyRG93bihzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQog
Ci0gICAgZGVmIHRlc3Rfc2tpcHBlZF9wYXRjaChzZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChz
ZWxmKToKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoVmFsaWRhdGVTcXVhc2hlZCgpKQogICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdwYXRjaF9pZCcsICcxMjM0JykKLSAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1TS0lQUEVELCBzdGF0ZV9zdHJpbmc9J2ZpbmlzaGVkIChza2lwcGVk
KScpCisgICAgICAgIHNlbGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBl
Y3RTaGVsbCh3b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgICAgICAgICBsb2dFbnZp
cm9uPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1bJ2dpdCcsICdsb2cn
LCAnLS1vbmVsaW5lJywgJ0hFQUQnLCAnXm9yaWdpbi9tYWluJywgJy0tbWF4LWNvdW50PTInXSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICsgMAorICAgICAgICAgICAg
KyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSdlMWViMjQ2MDM0OTMgKEhFQUQgLT4g
ZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gpIEZpcnN0IGxpbmUgb2YgY29tbWl0XG4nKSwKKyAgICAg
ICAgKQorICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0
cmluZz0nVmVyaWZpZWQgYnJhbmNoIGlzIHNxdWFzaGVkJykKICAgICAgICAgcmV0dXJuIHNlbGYu
cnVuU3RlcCgpCiAKICAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgpAQCAtNTk4OSw5ICs1OTk3
LDggQEAgY2xhc3MgVGVzdEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFk
ZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAg
ICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tp
cHBlZF9wYXRjaChzZWxmKToKKyAgICBkZWYgdGVzdF9za2lwcGVkX25vX2F1dGhvcihzZWxmKToK
ICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAg
ICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJzEyMzQnKQogICAgICAgICBzZWxmLmV4
cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBw
ZWQpJykKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKQEAgLTYwMDIsMTEgKzYwMDks
MTAgQEAgY2xhc3MgVGVzdEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFk
ZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICB0aW1lLnRpbWUgPSBsYW1iZGE6
IGZpeGVkX3RpbWUKIAogICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1l
c3NhZ2UoKSkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0
JykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQog
ICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnZW5nL3B1bGwtcmVx
dWVzdC1icmFuY2gnKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC51c2Vy
LmxvZ2luJywgJ3dlYmtpdC1yZXZpZXdlcicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ293
bmVycycsIFsnd2Via2l0LWNvbW1pdC1xdWV1ZSddKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdhdXRob3InLCAnV2ViS2l0IFJldmlld2VyIDxyZXZpZXdlckBhcHBsZS5jb20+JykKICAgICAg
ICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKICAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdv
cmtkaXI9J3drZGlyJywKICAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2Us
CkBAIC02MDIxLDM2ICs2MDI3LDM1IEBAIGNsYXNzIFRlc3RBZGRBdXRob3JUb0NvbW1pdE1lc3Nh
Z2UoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
ICAgICsgMAogICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJS
ZWYgJ3JlZnMvaGVhZHMvZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIp
LAogICAgICAgICApCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywg
c3RhdGVfc3RyaW5nPSdBZGRlZCBXZWJLaXQgUmV2aWV3ZXIgYXMgYXV0aG9yJykKKyAgICAgICAg
c2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdl
YktpdCBSZXZpZXdlciA8cmV2aWV3ZXJAYXBwbGUuY29tPiBhcyBhdXRob3InKQogICAgICAgICBy
ZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAotICAgIGRlZiB0ZXN0X3N1Y2Nlc3NfZmFsbGJhY2soc2Vs
Zik6CisgICAgZGVmIHRlc3Rfc3VjY2Vzc19wYXRjaChzZWxmKToKICAgICAgICAgZ210b2Zmc2V0
ID0gaW50KHRpbWUubG9jYWx0aW1lKCkudG1fZ210b2ZmICogMTAwIC8gKDYwICogNjApKQogICAg
ICAgICBmaXhlZF90aW1lID0gaW50KHRpbWUudGltZSgpKQogICAgICAgICB0aW1lc3RhbXAgPSBm
J3tpbnQodGltZS50aW1lKCkpfSB7Z210b2Zmc2V0fScKICAgICAgICAgdGltZS50aW1lID0gbGFt
YmRhOiBmaXhlZF90aW1lCiAKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21t
aXRNZXNzYWdlKCkpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInLCAn
MTIzNCcpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsICdtYWlu
JykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ2VuZy9wdWxs
LXJlcXVlc3QtYnJhbmNoJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQu
dXNlci5sb2dpbicsICd1bnJlZ2lzdGVyZWQtYXV0aG9yJykKLSAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgnb3duZXJzJywgWyd3ZWJraXQtY29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2F1dGhvcicsICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4n
KQogICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhwZWN0
U2hlbGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJv
bj1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGVudj1zZWxmLkVOViwKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBlbnY9
ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSVRfQ09NTUlUVEVSX0VNQUlMPSdl
d3NAd2Via2l0Lm9yZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0lUX0NPTU1JVFRF
Ul9OQU1FPSdFV1MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZJTFRFUl9CUkFOQ0hf
U1FVRUxDSF9XQVJOSU5HPScxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICksIHRpbWVvdXQ9
NjAsCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZ2l0JywgJ2ZpbHRlci1icmFuY2gnLCAnLWYnLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICctLWVudi1maWx0ZXInLCBmIkdJVF9BVVRIT1JfREFURT0ne3RpbWVzdGFt
cH0nO0dJVF9DT01NSVRURVJfREFURT0ne3RpbWVzdGFtcH0nIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnLS1tc2ctZmlsdGVyJywgZidzZWQgIjEsL14kLyBzL14kL1xcblBhdGNoIGJ5
IFdlYktpdCBDb21taXR0ZXIgPGNvbW1pdHRlckB3ZWJraXQub3JnPiBvbiB7ZGF0ZS50b2RheSgp
LnN0cmZ0aW1lKCIlWS0lbS0lZCIpfS9nIicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
J2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNoLi4ubWFpbicsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJy0tbXNnLWZpbHRlcicsIGYnc2VkICIxLC9eJC8gcy9eJC9cXG5QYXRjaCBieSBXZWJL
aXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4gb24ge2RhdGUudG9kYXkoKS5zdHJmdGlt
ZSgiJVktJW0tJWQiKX0vZyInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdIRUFELi4u
b3JpZ2luL21haW4nLAogICAgICAgICAgICAgICAgICAgICAgICAgXSkKICAgICAgICAgICAgICsg
MAotICAgICAgICAgICAgKyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ3Jl
ZnMvaGVhZHMvZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnIHdhcyByZXdyaXR0ZW5cbiIpLAorICAg
ICAgICAgICAgKyBFeHBlY3RTaGVsbC5sb2coJ3N0ZGlvJywgc3Rkb3V0PSJSZWYgJ21haW4nIHdh
cyByZXdyaXR0ZW5cbiIpLAogICAgICAgICApCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShy
ZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdBZGRlZCBXZWJLaXQgQ29tbWl0dGVyIGFzIGF1
dGhvcicpCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVf
c3RyaW5nPSdBZGRlZCBXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4gYXMgYXV0
aG9yJykKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKICAgICBkZWYgdGVzdF9mYWls
dXJlKHNlbGYpOgpAQCAtNjA2MCwxMSArNjA2NSwxMCBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9D
b21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgICAgIHRpbWUudGltZSA9IGxhbWJkYTogZml4ZWRfdGltZQogCiAgICAgICAgIHNlbGYu
c2V0dXBTdGVwKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQotICAgICAgICBzZWxmLnNldFBy
b3BlcnR5KCdnaXRodWIubnVtYmVyJywgJzEyMzQnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5
KCdnaXRodWIuYmFzZS5yZWYnLCAnbWFpbicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dp
dGh1Yi5oZWFkLnJlZicsICdlbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcpCi0gICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnVzZXIubG9naW4nLCAnd2Via2l0LWNvbW1pdC1xdWV1
ZScpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ293bmVycycsIFsnd2Via2l0LWNvbW1pdC1x
dWV1ZSddKQorICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdhdXRob3InLCAnV2ViS2l0IENvbW1p
dHRlciA8Y29tbWl0dGVyQHdlYmtpdC5vcmc+JykKICAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVD
b21tYW5kcygKICAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKICAgICAg
ICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCkBAIC02MDgyLDEzICs2MDg2LDYg
QEAgY2xhc3MgVGVzdEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0
aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVz
dWx0PUZBSUxVUkUsIHN0YXRlX3N0cmluZz0nRmFpbGVkIHRvIGFkZCBhdXRob3IgdG8gY29tbWl0
IG1lc3NhZ2UnKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAotICAgIGRlZiB0ZXN0
X25vX293bmVyKHNlbGYpOgotICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1p
dE1lc3NhZ2UoKSkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcx
MjM0JykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4n
KQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmlu
Zz0nZmluaXNoZWQgKHNraXBwZWQpJykKLSAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCi0K
IAogY2xhc3MgVGVzdFZhbGlkYXRlQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9u
cywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTYwOTgsMTAg
KzYwOTUsMjIgQEAgY2xhc3MgVGVzdFZhbGlkYXRlQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhp
bkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToK
ICAgICAgICAgcmV0dXJuIHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rf
c2tpcHBlZF9wYXRjaChzZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChzZWxmKToKICAgICAgICAg
c2VsZi5zZXR1cFN0ZXAoVmFsaWRhdGVDb21taXRNZXNzYWdlKCkpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ3BhdGNoX2lkJywgJzEyMzQnKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUo
cmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykKKyAgICAg
ICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKKyAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdv
cmtkaXI9J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTYwLAorICAgICAgICAgICAgICAgICAg
ICAgICAgY29tbWFuZD1bJy9iaW4vc2gnLCAnLWMnLCAiZ2l0IGxvZyBIRUFEIF5vcmlnaW4vbWFp
biB8IGdyZXAgLXEgJ09PKlBQKlMhJyAmJiBlY2hvICdDb21taXQgbWVzc2FnZSBjb250YWlucyAo
T09QUyEpJyB8fCB0ZXN0ICQ/IC1lcSAxIl0pCisgICAgICAgICAgICArIDAsIEV4cGVjdFNoZWxs
KHdvcmtkaXI9J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTYwLAorICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWFuZD1bJy9iaW4vc2gnLCAnLWMnLCAiZ2l0IGxvZyBIRUFEIF5vcmlnaW4v
bWFpbiB8IGdyZXAgLXEgJ1xcKFJldmlld2VkIGJ5XFx8VW5yZXZpZXdlZFxcfFJ1YmJlci1zdGFt
cGVkIGJ5XFx8UnViYmVyIHN0YW1wZWQgYnlcXCknIHx8IGVjaG8gJ05vIHJldmlld2VyIGluZm9y
bWF0aW9uIGluIGNvbW1pdCBtZXNzYWdlJyJdKQorICAgICAgICAgICAgKyAwCisgICAgICAgICAg
ICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9JycpLAorICAgICAgICApCisgICAg
ICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdWYWxp
ZGF0ZWQgY29tbWl0IG1lc3NhZ2UnKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAog
ICAgIGRlZiB0ZXN0X3N1Y2Nlc3Moc2VsZik6CkBAIC02NjE2LDUgKzY2MjUsOTcgQEAgY2xhc3Mg
VGVzdFJlc2V0R2l0U3ZuKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2Fz
ZSk6CiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCiAKK2NsYXNzIFRlc3RDb21taXRQ
YXRjaChCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRl
ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5sb25nTWVzc2FnZSA9IFRydWUKKyAgICAgICAg
cmV0dXJuIHNlbGYuc2V0VXBCdWlsZFN0ZXAoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgor
ICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCisKKyAgICBkZWYgdGVzdF9z
dWNjZXNzKHNlbGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChDb21taXRQYXRjaCgpKQorICAg
ICAgICBDb21taXRQYXRjaC5fZ2V0X3BhdGNoID0gbGFtYmRhIHM6ICdQQVRDSCcKKyAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcpCisgICAgICAgIHNlbGYuZXhwZWN0
UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAgICAg
ICB3b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgdGltZW91dD02MDAsCisgICAgICAg
ICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICBlbnY9ZGljdChGSUxU
RVJfQlJBTkNIX1NRVUVMQ0hfV0FSTklORz0nMScpLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9
WydnaXQnLCAnYW0nLCAnLmJ1aWxkYm90LWRpZmYnXSwKKyAgICAgICAgICAgICkgKyAwLCBFeHBl
Y3RTaGVsbCgKKyAgICAgICAgICAgICAgICB3b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAg
ICAgdGltZW91dD02MDAsCisgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAg
ICAgICAgICAgICBlbnY9ZGljdChGSUxURVJfQlJBTkNIX1NRVUVMQ0hfV0FSTklORz0nMScpLAor
ICAgICAgICAgICAgICAgIGNvbW1hbmQ9WydnaXQnLCAnZmlsdGVyLWJyYW5jaCcsICctZicsICct
LW1zZy1maWx0ZXInLCAncHl0aG9uMyAtYyAie30iJy5mb3JtYXQoQ29tbWl0UGF0Y2guRklMVEVS
X0JSQU5DSF9QUk9HUkFNKSwgJ0hFQUQuLi5IRUFEfjEnXSwKKyAgICAgICAgICAgICkgKyAwLAor
ICAgICAgICApCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3Rh
dGVfc3RyaW5nPSdDcmVhdGVkIGNvbW1pdCBmcm9tIHBhdGNoJykKKyAgICAgICAgcmV0dXJuIHNl
bGYucnVuU3RlcCgpCisKKyAgICBkZWYgdGVzdF9mYWlsdXJlKHNlbGYpOgorICAgICAgICBzZWxm
LnNldHVwU3RlcChDb21taXRQYXRjaCgpKQorICAgICAgICBDb21taXRQYXRjaC5fZ2V0X3BhdGNo
ID0gbGFtYmRhIHM6ICdQQVRDSCcKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfaWQn
LCAnMTIzNCcpCisgICAgICAgIHNlbGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAg
ICBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAgICAgICB3b3JrZGlyPSd3a2RpcicsCisgICAgICAg
ICAgICAgICAgdGltZW91dD02MDAsCisgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwK
KyAgICAgICAgICAgICAgICBlbnY9ZGljdChGSUxURVJfQlJBTkNIX1NRVUVMQ0hfV0FSTklORz0n
MScpLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9WydnaXQnLCAnYW0nLCAnLmJ1aWxkYm90LWRp
ZmYnXSwKKyAgICAgICAgICAgICkgKyAwLCBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAgICAgICB3
b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgdGltZW91dD02MDAsCisgICAgICAgICAg
ICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICBlbnY9ZGljdChGSUxURVJf
QlJBTkNIX1NRVUVMQ0hfV0FSTklORz0nMScpLAorICAgICAgICAgICAgICAgIGNvbW1hbmQ9Wydn
aXQnLCAnZmlsdGVyLWJyYW5jaCcsICctZicsICctLW1zZy1maWx0ZXInLCAncHl0aG9uMyAtYyAi
e30iJy5mb3JtYXQoQ29tbWl0UGF0Y2guRklMVEVSX0JSQU5DSF9QUk9HUkFNKSwgJ0hFQUQuLi5I
RUFEfjEnXSwKKyAgICAgICAgICAgICkgKyAxLAorICAgICAgICApCisgICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdnaXQgZmFpbGVkIHRvIGFw
cGx5IHBhdGNoIHRvIHRydW5rJykKKyAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCisKKwor
Y2xhc3MgVGVzdERldGVybWluZUF1dGhvcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRl
c3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5sb25nTWVz
c2FnZSA9IFRydWUKKyAgICAgICAgcmV0dXJuIHNlbGYuc2V0VXBCdWlsZFN0ZXAoKQorCisgICAg
ZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3Rl
cCgpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgorICAgICAgICBzZWxmLnNldHVwU3Rl
cChEZXRlcm1pbmVBdXRob3IoKSkKKyAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygK
KyAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1l
b3V0PTYwLAorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1bJy9iaW4vc2gnLCAnLWMn
LCAiZ2l0IGxvZyAtMSB8IGdyZXAgJ15BdXRob3I6JyJdKQorICAgICAgICAgICAgKyAwCisgICAg
ICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9J0F1dGhvcjogV2ViS2l0
IFJldmlld2VyIDxyZXZpZXdlckBhcHBsZS5jb20+JyksCisgICAgICAgICkKKyAgICAgICAgc2Vs
Zi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0F1dGhvciBpcyBX
ZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQorICAgICAgICByYyA9IHNlbGYu
cnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9wZXJ0eSgnYXV0
aG9yJyksICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQorICAgICAgICBy
ZXR1cm4gcmMKKworICAgIGRlZiB0ZXN0X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIHNlbGYuc2V0
dXBTdGVwKERldGVybWluZUF1dGhvcigpKQorICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1h
bmRzKAorICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAg
ICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcs
ICctYycsICJnaXQgbG9nIC0xIHwgZ3JlcCAnXkF1dGhvcjonIl0pCisgICAgICAgICAgICArIDEK
KyAgICAgICAgICAgICsgRXhwZWN0U2hlbGwubG9nKCdzdGRpbycsIHN0ZG91dD0nJyksCisgICAg
ICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9z
dHJpbmc9J0ZhaWxlZCB0byBmaW5kIGF1dGhvcicpCisgICAgICAgIHJjID0gc2VsZi5ydW5TdGVw
KCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKSwg
Tm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoK
ICAgICB1bml0dGVzdC5tYWluKCkKLS0gCjIuMzAuMSAoQXBwbGUgR2l0LTEzMCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459503</attachid>
            <date>2022-05-17 09:18:07 -0700</date>
            <delta_ts>2022-05-17 09:49:34 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-240461-20220517091806.patch</filename>
            <type>text/plain</type>
            <size>32506</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBlYWFmZDNlYTczZWU3MjI0MmQ2MThmODM1ODcxYWI3NDhkNWM1ZDUwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDA5OjE3OjEwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJ1YmJl
ci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2Zh
Y3Rvcmllcy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6IE9ubHkgYWNjZXB0IHBh
dGNoZXMgd2l0aCBjb21taXQgbWVzc2FnZXMsCnJlc3BlY3QgdGhvc2UgY29tbWl0IG1lc3NhZ2Vz
LgooTWVyZ2VRdWV1ZUZhY3RvcnlCYXNlLl9faW5pdF9fKTogVXNlIGNvbW1pdCBhdXRob3IgaW4g
Y29tbWl0LgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5
OgooVGVzdEV4cGVjdGVkQnVpbGRTdGVwcy50ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyk6CiogQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKTogQWRkIHN0ZXAgd2hpY2gg
Y29tbWl0cyBhIHBhdGNoLCBpbmNsdWRpbmcgaXQncyBjb21taXQgbWVzc2FnZS4KKFB1c2hDb21t
aXRUb1dlYktpdFJlcG8uZXZhbHVhdGVDb21tYW5kKTogVXNlIEdpdEh1YiBjaGVja291dCBvbiBD
b21taXQtUXVldWUuCihWYWxpZGF0ZVNxdWFzaGVkLnN0YXJ0KTogU3VwcG9ydCBjb21taXR0ZWQg
cGF0Y2hlcy4KKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLnN0YXJ0KTogRGl0dG8uCihEZXRl
cm1pbmVBdXRob3IpOiBFeHRyYWN0IGF1dGhvciBmcm9tIGxvY2FsIGNvbW1pdC4KKEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZSk6IFVzZSAnYXV0aG9yJyBwcm9wZXJ0eSBhcyBzZXQgYnkgJ0RldGVy
bWluZUF1dGhvcicuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuX2ZpbGVzKTogU3VwcG9ydCBwYXRj
aGVzLgooVmFsaWRhdGVDb21taXRNZXNzYWdlLnJ1bik6IFN1cHBvcnQgY29tbWl0dGVkIHBhdGNo
ZXMuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZ2V0UmVzdWx0U3VtbWFyeSk6IFN1cHBvcnQgcGF0
Y2hlcy4KKENhbm9uaWNhbGl6ZS5ydW4pOiBTdXBwb3J0IGNvbW1pdHRlZCBwYXRjaGVzLgooVmFs
aWRhdGVTcXVhc2hlZC5kb1N0ZXBJZik6IERlbGV0ZWQuCihWYWxpZGF0ZVNxdWFzaGVkLmhpZGVT
dGVwSWYpOiBEZWxldGVkLgooQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLmF1dGhvcik6IERlbGV0
ZWQuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZG9TdGVwSWYpOiBEZWxldGVkLgooVmFsaWRhdGVD
b21taXRNZXNzYWdlLmhpZGVTdGVwSWYpOiBEZWxldGVkLgoqIFRvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6Ci0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9m
YWN0b3JpZXMucHkgICAgICAgIHwgIDI4ICstLQogLi4uL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFj
dG9yaWVzX3VuaXR0ZXN0LnB5IHwgIDE5ICstCiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzLnB5ICAgICAgICAgICAgfCAxODggKysrKysrKysrKysrLS0tLS0tCiBUb29scy9DSVN1cHBv
cnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5ICAgfCAxMTIgKysrKysrKystLS0KIDQgZmls
ZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weSBiL1Rvb2xzL0NJU3Vw
cG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5CmluZGV4IGU4ODRjMzJhMDZjMC4uMThkOWZkOGYw
YTg3IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQor
KysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQpAQCAtMjQsMTAgKzI0
LDEwIEBACiBmcm9tIGJ1aWxkYm90LnByb2Nlc3MgaW1wb3J0IGZhY3RvcnkKIGZyb20gYnVpbGRi
b3Quc3RlcHMgaW1wb3J0IHRyaWdnZXIKIAotZnJvbSBzdGVwcyBpbXBvcnQgKEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UsIEFwcGx5UGF0Y2gsIEFw
cGx5V2F0Y2hMaXN0LCBDYW5vbmljYWxpemUsCitmcm9tIHN0ZXBzIGltcG9ydCAoQWRkQXV0aG9y
VG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgQXBwbHlQYXRjaCwg
QXBwbHlXYXRjaExpc3QsIENhbm9uaWNhbGl6ZSwgQ29tbWl0UGF0Y2gsCiAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tPdXRQdWxsUmVxdWVzdCwgQ2hlY2tPdXRTb3VyY2UsIENoZWNrT3V0U3BlY2lm
aWNSZXZpc2lvbiwgQ2hlY2tDaGFuZ2VSZWxldmFuY2UsCiAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tQYXRjaFN0YXR1c09uRVdTUXVldWVzLCBDaGVja1N0eWxlLCBDbGVhbkdpdFJlcG8sIENvbXBp
bGVKU0MsIENvbXBpbGVXZWJLaXQsIENvbmZpZ3VyZUJ1aWxkLCBDcmVhdGVMb2NhbEdJVENvbW1p
dCwKLSAgICAgICAgICAgICAgICAgICBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRXh0cmFjdEJ1aWx0
UHJvZHVjdCwgRmV0Y2hCcmFuY2hlcywgRmluZE1vZGlmaWVkQ2hhbmdlTG9ncywgRmluZE1vZGlm
aWVkTGF5b3V0VGVzdHMsIEdpdFN2bkZldGNoLAorICAgICAgICAgICAgICAgICAgIERldGVybWlu
ZUF1dGhvciwgRG93bmxvYWRCdWlsdFByb2R1Y3QsIEV4dHJhY3RCdWlsdFByb2R1Y3QsIEZldGNo
QnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExheW91dFRlc3Rz
LCBHaXRTdm5GZXRjaCwKICAgICAgICAgICAgICAgICAgICBJbnN0YWxsR3RrRGVwZW5kZW5jaWVz
LCBJbnN0YWxsV3BlRGVwZW5kZW5jaWVzLCBLaWxsT2xkUHJvY2Vzc2VzLCBQcmludENvbmZpZ3Vy
YXRpb24sIFB1c2hDb21taXRUb1dlYktpdFJlcG8sCiAgICAgICAgICAgICAgICAgICAgUnVuQVBJ
VGVzdHMsIFJ1bkJpbmRpbmdzVGVzdHMsIFJ1bkJ1aWxkV2ViS2l0T3JnVW5pdFRlc3RzLCBSdW5C
dWlsZGJvdENoZWNrQ29uZmlnRm9yQnVpbGRXZWJLaXQsIFJ1bkJ1aWxkYm90Q2hlY2tDb25maWdG
b3JFV1MsCiAgICAgICAgICAgICAgICAgICAgUnVuRVdTVW5pdFRlc3RzLCBSdW5SZXN1bHRzZGJw
eVRlc3RzLCBSdW5KYXZhU2NyaXB0Q29yZVRlc3RzLCBSdW5XZWJLaXQxVGVzdHMsIFJ1bldlYktp
dFBlcmxUZXN0cywgUnVuV2ViS2l0UHlQeXRob24yVGVzdHMsCkBAIC0yOTIsMTUgKzI5MiwyMSBA
QCBjbGFzcyBDb21taXRRdWV1ZUZhY3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgogICAgICAg
ICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDaGFuZ2UodmVyaWZ5Y3FwbHVzPVRydWUpKQogICAgICAg
ICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDb21taXR0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBz
ZWxmLmFkZFN0ZXAoUHJpbnRDb25maWd1cmF0aW9uKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChD
bGVhbkdpdFJlcG8oZGVmYXVsdF9icmFuY2g9J21hc3RlcicpKQotICAgICAgICBzZWxmLmFkZFN0
ZXAoQ2hlY2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9yZy9naXQvV2Vi
S2l0LWh0dHBzJykpCisgICAgICAgIHNlbGYuYWRkU3RlcChDbGVhbkdpdFJlcG8oKSkKKyAgICAg
ICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0U291cmNlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChH
aXRTdm5GZXRjaCgpKSAgIyBGSVhNRTogUmVtb3ZlIHdoZW4gbWlncmF0aW5nIHRvIHB1cmUgZ2l0
CiAgICAgICAgIHNlbGYuYWRkU3RlcChGZXRjaEJyYW5jaGVzKCkpCiAgICAgICAgIHNlbGYuYWRk
U3RlcChTaG93SWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmVyaWZ5R2l0SHVi
SW50ZWdyaXR5KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5
KCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRk
U3RlcChWYWxpZGF0ZUNoYW5nZUxvZ0FuZFJldmlld2VyKCkpCi0gICAgICAgIHNlbGYuYWRkU3Rl
cChGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChDb21taXRQ
YXRjaCgpKQorCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZVNxdWFzaGVkKCkpCisgICAg
ICAgIHNlbGYuYWRkU3RlcChBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSgpKQorICAgICAgICBz
ZWxmLmFkZFN0ZXAoRGV0ZXJtaW5lQXV0aG9yKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ29t
bWl0TWVzc2FnZSgpKQorCiAgICAgICAgIHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkp
CiAgICAgICAgIHNlbGYuYWRkU3RlcChDb21waWxlV2ViS2l0KHNraXBVcGxvYWQ9VHJ1ZSkpCiAg
ICAgICAgIHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkpCkBAIC0zMDgsMTEgKzMxNCw4
IEBAIGNsYXNzIENvbW1pdFF1ZXVlRmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAgICAg
ICAgIHNlbGYuYWRkU3RlcChDaGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMoKSkKICAgICAgICAg
c2VsZi5hZGRTdGVwKFJ1bldlYktpdFRlc3RzKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChWYWxp
ZGF0ZUNoYW5nZShhZGRVUkxzPUZhbHNlLCB2ZXJpZnljcXBsdXM9VHJ1ZSkpCi0gICAgICAgIHNl
bGYuYWRkU3RlcChDaGVja091dFNvdXJjZShyZXBvdXJsPSdodHRwczovL2dpdC53ZWJraXQub3Jn
L2dpdC9XZWJLaXQtaHR0cHMnKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dJZGVudGlmaWVy
KCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCkpCi0gICAg
ICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChDcmVh
dGVMb2NhbEdJVENvbW1pdCgpKQorCisgICAgICAgIHNlbGYuYWRkU3RlcChDYW5vbmljYWxpemUo
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFB1c2hDb21taXRUb1dlYktpdFJlcG8oKSkKICAgICAg
ICAgc2VsZi5hZGRTdGVwKFNldEJ1aWxkU3VtbWFyeSgpKQogCkBAIC0zMzQsNiArMzM3LDcgQEAg
Y2xhc3MgTWVyZ2VRdWV1ZUZhY3RvcnlCYXNlKGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKICAgICAg
ICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0UHVsbFJlcXVlc3QoKSkKICAgICAgICAgc2VsZi5hZGRT
dGVwKFZhbGlkYXRlU3F1YXNoZWQoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEFkZFJldmlld2Vy
VG9Db21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChEZXRlcm1pbmVBdXRob3Io
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQogICAg
ICAgICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDb21taXRNZXNzYWdlKCkpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkKaW5kZXggOWY3YjY3ZTQw
NGVlLi40NmJjZjEzYWJkMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
ZmFjdG9yaWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFj
dG9yaWVzX3VuaXR0ZXN0LnB5CkBAIC02MDQsMTMgKzYwNCwxNyBAQCBjbGFzcyBUZXN0RXhwZWN0
ZWRCdWlsZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdjb25maWd1cmF0
aW9uJywKICAgICAgICAgICAgICdjbGVhbi11cC1naXQtcmVwbycsCiAgICAgICAgICAgICAnY2xl
YW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCisgICAgICAgICAgICAnZ2l0LXN2bi1m
ZXRjaCcsCiAgICAgICAgICAgICAnZmV0Y2gtYnJhbmNoLXJlZmVyZW5jZXMnLAogICAgICAgICAg
ICAgJ3Nob3ctaWRlbnRpZmllcicsCiAgICAgICAgICAgICAndmVyaWZ5LWdpdGh1Yi1pbnRlZ3Jp
dHknLAogICAgICAgICAgICAgJ3VwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCi0gICAgICAgICAg
ICAnYXBwbHktcGF0Y2gnLAotICAgICAgICAgICAgJ3ZhbGlkYXRlLWNoYW5nZWxvZy1hbmQtcmV2
aWV3ZXInLAotICAgICAgICAgICAgJ2ZpbmQtbW9kaWZpZWQtY2hhbmdlbG9ncycsCisgICAgICAg
ICAgICAnY29tbWl0LXBhdGNoJywKKyAgICAgICAgICAgICd2YWxpZGF0ZS1zcXVhc2hlZCcsCisg
ICAgICAgICAgICAnYWRkLXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAg
ICdkZXRlcm1pbmUtYXV0aG9yJywKKyAgICAgICAgICAgICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1t
ZXNzYWdlJywKKyAgICAgICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCiAgICAgICAg
ICAgICAna2lsbC1vbGQtcHJvY2Vzc2VzJywKICAgICAgICAgICAgICdjb21waWxlLXdlYmtpdCcs
CiAgICAgICAgICAgICAna2lsbC1vbGQtcHJvY2Vzc2VzJywKQEAgLTYxOCwxMSArNjIyLDcgQEAg
Y2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRTdGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICAnY2hlY2stc3RhdHVzLW9uLW90aGVyLWV3c2VzJywKICAgICAgICAgICAgICdsYXlvdXQt
dGVzdHMnLAogICAgICAgICAgICAgJ3ZhbGlkYXRlLWNoYW5nZScsCi0gICAgICAgICAgICAnY2xl
YW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCi0gICAgICAgICAgICAnc2hvdy1pZGVu
dGlmaWVyJywKLSAgICAgICAgICAgICd1cGRhdGUtd29ya2luZy1kaXJlY3RvcnknLAotICAgICAg
ICAgICAgJ2FwcGx5LXBhdGNoJywKLSAgICAgICAgICAgICdjcmVhdGUtbG9jYWwtZ2l0LWNvbW1p
dCcsCisgICAgICAgICAgICAnY2Fub25pY2FsaXplLWNvbW1pdCcsCiAgICAgICAgICAgICAncHVz
aC1jb21taXQtdG8td2Via2l0LXJlcG8nLAogICAgICAgICAgICAgJ3NldC1idWlsZC1zdW1tYXJ5
JwogICAgICAgICBdLApAQCAtNjQxLDYgKzY0MSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxk
U3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2NoZWNrb3V0LXB1bGwtcmVx
dWVzdCcsCiAgICAgICAgICAgICAndmFsaWRhdGUtc3F1YXNoZWQnLAogICAgICAgICAgICAgJ2Fk
ZC1yZXZpZXdlci10by1jb21taXQtbWVzc2FnZScsCisgICAgICAgICAgICAnZGV0ZXJtaW5lLWF1
dGhvcicsCiAgICAgICAgICAgICAnYWRkLWF1dGhvci10by1jb21taXQtbWVzc2FnZScsCiAgICAg
ICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLAogICAgICAgICAgICAgJ2tpbGwtb2xk
LXByb2Nlc3NlcycsCkBAIC02NjYsNiArNjY3LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRT
dGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY2hlY2tvdXQtcHVsbC1yZXF1
ZXN0JywKICAgICAgICAgICAgICd2YWxpZGF0ZS1zcXVhc2hlZCcsCiAgICAgICAgICAgICAnYWRk
LXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAgICdkZXRlcm1pbmUtYXV0
aG9yJywKICAgICAgICAgICAgICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1tZXNzYWdlJywKICAgICAg
ICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAndmFsaWRhdGUt
Y2hhbmdlJywKQEAgLTY4MSw2ICs2ODMsNyBAQCBjbGFzcyBUZXN0RXhwZWN0ZWRCdWlsZFN0ZXBz
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgbG9hZENvbmZpZy5sb2FkQnVpbGRlckNvbmZp
ZyhzZWxmLmNvbmZpZywgaXNfdGVzdF9tb2RlX2VuYWJsZWQ9VHJ1ZSwgbWFzdGVyX3ByZWZpeF9w
YXRoPWN3ZCkKIAogICAgIGRlZiB0ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyhzZWxmKToKKyAgICAg
ICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBmb3IgYnVpbGRlciBpbiBzZWxmLmNvbmZp
Z1snYnVpbGRlcnMnXToKICAgICAgICAgICAgIGJ1aWxkU3RlcHMgPSBbXQogICAgICAgICAgICAg
Zm9yIHN0ZXAgaW4gYnVpbGRlclsnZmFjdG9yeSddLnN0ZXBzOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
c3RlcHMucHkKaW5kZXggMTkyZjZjMjA1NzVhLi4wMmRlYmYwYjliYmYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwcy5weQpAQCAtODQ1LDYgKzg0NSw2MyBAQCBjbGFzcyBBcHBseVBhdGNoKHNo
ZWxsLlNoZWxsQ29tbWFuZCwgQ29tcG9zaXRlU3RlcE1peGluLCBTaGVsbE1peGluKToKICAgICAg
ICAgcmV0dXJuIHJjCiAKIAorY2xhc3MgQ29tbWl0UGF0Y2goc3RlcHMuU2hlbGxTZXF1ZW5jZSwg
Q29tcG9zaXRlU3RlcE1peGluLCBTaGVsbE1peGluKToKKyAgICBuYW1lID0gJ2NvbW1pdC1wYXRj
aCcKKyAgICBkZXNjcmlwdGlvbiA9IFsnY29tbWl0LXBhdGNoJ10KKyAgICBkZXNjcmlwdGlvbkRv
bmUgPSBbJ0NyZWF0ZWQgY29tbWl0IGZyb20gcGF0Y2gnXQorICAgIGhhbHRPbkZhaWx1cmUgPSBU
cnVlCisgICAgZW52ID0gZGljdChGSUxURVJfQlJBTkNIX1NRVUVMQ0hfV0FSTklORz0nMScpCisg
ICAgRklMVEVSX0JSQU5DSF9QUk9HUkFNID0gJycnaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKK2xp
bmVzID0gW2wgZm9yIGwgaW4gc3lzLnN0ZGluXQorZm9yIHMgaW4gcmUuc3BsaXQocicgKE5lZWQg
dGhlIGJ1ZyBVUkwgXChPT1BTIVwpLil8KFxTKzpcL1wvXFMrKScsIGxpbmVzWzBdLnJzdHJpcCgp
KToKKyAgICBpZiBzIGFuZCBzICE9ICcgJzoKKyAgICAgICAgcHJpbnQocykKK2ZvciBsIGluIGxp
bmVzWzE6XToKKyAgICBzeXMuc3Rkb3V0LndyaXRlKGwpCisnJycKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5fX2lu
aXRfXyh0aW1lb3V0PTEwICogNjAsIGxvZ0Vudmlyb249RmFsc2UsICoqa3dhcmdzKQorCisgICAg
ZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgorICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0
eSgncGF0Y2hfaWQnLCBGYWxzZSkKKworICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMs
IHN0ZXApOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkgb3IgKHJlc3Vs
dHMgPT0gU1VDQ0VTUyBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgnc2Vuc2l0aXZlJywgRmFsc2UpKQor
CisgICAgZGVmIF9nZXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNvdXJjZXN0YW1wID0gc2VsZi5i
dWlsZC5nZXRTb3VyY2VTdGFtcChzZWxmLmdldFByb3BlcnR5KCdjb2RlYmFzZScsICcnKSkKKyAg
ICAgICAgaWYgbm90IHNvdXJjZXN0YW1wIG9yIG5vdCBzb3VyY2VzdGFtcC5wYXRjaDoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5wYXRjaFsxXQor
CisgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAg
IHNlbGYuY29tbWFuZHMgPSBbXQorICAgICAgICBwYXRjaCA9IHNlbGYuX2dldF9wYXRjaCgpCisK
KyAgICAgICAgY29tbWFuZHMgPSBbXQorICAgICAgICBpZiBub3QgcGF0Y2g6CisgICAgICAgICAg
ICBjb21tYW5kcyArPSBbWydjdXJsJywgJy1MJywgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0
dGFjaG1lbnQuY2dpP2lkPXt9Jy5mb3JtYXQoc2VsZi5nZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAn
JykpLCAnLW8nLCAnLmJ1aWxkYm90LWRpZmYnXV0KKyAgICAgICAgY29tbWFuZHMgKz0gWworICAg
ICAgICAgICAgWydnaXQnLCAnYW0nLCAnLmJ1aWxkYm90LWRpZmYnXSwKKyAgICAgICAgICAgIFsn
Z2l0JywgJ2ZpbHRlci1icmFuY2gnLCAnLWYnLCAnLS1tc2ctZmlsdGVyJywgJ3B5dGhvbjMgLWMg
Int9IicuZm9ybWF0KHNlbGYuRklMVEVSX0JSQU5DSF9QUk9HUkFNKSwgJ0hFQUQuLi5IRUFEfjEn
XSwKKyAgICAgICAgXQorICAgICAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoKKyAgICAgICAg
ICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKHV0aWwuU2hlbGxBcmcoY29tbWFuZD1jb21tYW5kLCBs
b2duYW1lPSdzdGRpbycsIGhhbHRPbkZhaWx1cmU9VHJ1ZSkpCisKKyAgICAgICAgeWllbGQgc2Vs
Zi5kb3dubG9hZEZpbGVDb250ZW50VG9Xb3JrZXIoJy5idWlsZGJvdC1kaWZmJywgcGF0Y2gpCisK
KyAgICAgICAgcmV0dXJuIHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5ydW4oKQorCisgICAgZGVm
IGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CisgICAgICAgIGlmIHNlbGYucmVzdWx0cyAhPSBTVUND
RVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3RlcCc6ICdnaXQgZmFpbGVkIHRvIGFwcGx5IHBh
dGNoIHRvIHRydW5rJ30KKyAgICAgICAgcmV0dXJuIHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5n
ZXRSZXN1bHRTdW1tYXJ5KCkKKworCiBjbGFzcyBDaGVja091dFB1bGxSZXF1ZXN0KHN0ZXBzLlNo
ZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5hbWUgPSAnY2hlY2tvdXQtcHVsbC1yZXF1
ZXN0JwogICAgIGRlc2NyaXB0aW9uID0gWydjaGVja2luZy1vdXQtcHVsbC1yZXF1ZXN0J10KQEAg
LTQ1NzUsMTIgKzQ2MzIsMTcgQEAgY2xhc3MgUHVzaENvbW1pdFRvV2ViS2l0UmVwbyhzaGVsbC5T
aGVsbENvbW1hbmQpOgogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgIGVs
c2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRT
dGVwKFsKLSAgICAgICAgICAgICAgICAgICAgICAgIEdpdFJlc2V0SGFyZCgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0
Lm9yZy9naXQvV2ViS2l0LWh0dHBzJyksCisgICAgICAgICAgICAgICAgICAgICAgICBSZXNldEdp
dFN2bigpLAorICAgICAgICAgICAgICAgICAgICAgICAgQ2xlYW5HaXRSZXBvKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICBDaGVja091dFNvdXJjZSgpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgR2l0U3ZuRmV0Y2goKSwKICAgICAgICAgICAgICAgICAgICAgICAgIFNob3dJZGVudGlmaWVy
KCksCiAgICAgICAgICAgICAgICAgICAgICAgICBVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICBBcHBseVBhdGNoKCksCi0gICAgICAgICAgICAgICAgICAg
ICAgICBDcmVhdGVMb2NhbEdJVENvbW1pdCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgQ29t
bWl0UGF0Y2goKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIEFkZFJldmlld2VyVG9Db21taXRN
ZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAgICAgICBBZGRBdXRob3JUb0NvbW1pdE1lc3Nh
Z2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFs
c2UsIHZlcmlmeWNxcGx1cz1UcnVlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIENhbm9uaWNh
bGl6ZSgpLAogICAgICAgICAgICAgICAgICAgICAgICAgUHVzaENvbW1pdFRvV2ViS2l0UmVwbygp
LAogICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgICAgIHJldHVybiByYwpAQCAt
NDc2MSw4ICs0ODIzLDggQEAgY2xhc3MgVmFsaWRhdGVTcXVhc2hlZChzaGVsbC5TaGVsbENvbW1h
bmQpOgogICAgICAgICBzdXBlcihWYWxpZGF0ZVNxdWFzaGVkLCBzZWxmKS5fX2luaXRfXyhsb2dF
bnZpcm9uPUZhbHNlLCAqKmt3YXJncykKIAogICAgIGRlZiBzdGFydChzZWxmLCBCdWZmZXJMb2dP
YnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFz
ZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5D
SCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYn
LCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVh
ZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAgICAg
ICAgIHNlbGYuY29tbWFuZCA9IFsnZ2l0JywgJ2xvZycsICctLW9uZWxpbmUnLCBoZWFkX3JlZiwg
Zidee2Jhc2VfcmVmfScsICctLW1heC1jb3VudD0yJ10KIAogICAgICAgICBzZWxmLmxvZ19vYnNl
cnZlciA9IEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3Mod2FudFN0ZGVycj1UcnVlKQpAQCAtNDc4Nywx
MiArNDg0OSw2IEBAIGNsYXNzIFZhbGlkYXRlU3F1YXNoZWQoc2hlbGwuU2hlbGxDb21tYW5kKToK
ICAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCiAgICAgICAgIHJldHVybiBGQUlMVVJFCiAKLSAg
ICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0gICAgICAgIHJldHVybiBzZWxmLmdldFByb3Bl
cnR5KCdnaXRodWIubnVtYmVyJykKLQotICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMs
IHN0ZXApOgotICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFz
cyBBZGRSZXZpZXdlck1peGluKG9iamVjdCk6CiAgICAgTk9CT0RZX1NFRCA9ICdzL05PQk9EWSAo
T08qUFAqUyEqKS97fS9nJwpAQCAtNDgzMCw4ICs0ODg2LDggQEAgY2xhc3MgQWRkUmV2aWV3ZXJU
b0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKICAg
ICAgICAgc3VwZXIoQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxv
Z0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNl
bGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIp
OgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZics
IERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dp
dGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAgICBiYXNlX3JlZiA9IHNlbGYu
Z2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIGYnb3JpZ2luL3tERUZBVUxUX0JSQU5DSH0n
KQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZics
ICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9n
bXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAgICAgIGRhdGUgPSBmJ3tpbnQodGltZS50aW1l
KCkpfSB7Z210b2Zmc2V0fScKQEAgLTQ4NTUsNDQgKzQ5MTEsNjcgQEAgY2xhc3MgQWRkUmV2aWV3
ZXJUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21tYW5kLCBBZGRSZXZpZXdlck1peGluKToK
ICAgICAgICAgcmV0dXJuIHN1cGVyKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBzZWxmKS5n
ZXRSZXN1bHRTdW1tYXJ5KCkKIAogICAgIGRlZiBkb1N0ZXBJZihzZWxmLCBzdGVwKToKLSAgICAg
ICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInKSBhbmQgc2VsZi5nZXRQ
cm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMnKQorICAgICAgICByZXR1cm4gc2VsZi5nZXRQ
cm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMnKQogCiAgICAgZGVmIGhpZGVTdGVwSWYoc2Vs
ZiwgcmVzdWx0cywgc3RlcCk6CiAgICAgICAgIHJldHVybiBub3Qgc2VsZi5kb1N0ZXBJZihzdGVw
KQogCiAKLWNsYXNzIEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShzaGVsbC5TaGVsbENvbW1hbmQs
IEFkZFJldmlld2VyTWl4aW4pOgotICAgIG5hbWUgPSAnYWRkLWF1dGhvci10by1jb21taXQtbWVz
c2FnZScKK2NsYXNzIERldGVybWluZUF1dGhvcihzaGVsbC5TaGVsbENvbW1hbmQsIFNoZWxsTWl4
aW4pOgorICAgIG5hbWUgPSAnZGV0ZXJtaW5lLWF1dGhvcicKICAgICBoYWx0T25GYWlsdXJlID0g
VHJ1ZQorICAgIEFVVEhPUl9SRSA9IHJlLmNvbXBpbGUocidBdXRob3I6XHMrKC4rIDwuKz4pJykK
IAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6Ci0gICAgICAgIHN1cGVyKEFkZEF1
dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGlt
ZW91dD02MCwgKiprd2FyZ3MpCisgICAgICAgIHN1cGVyKERldGVybWluZUF1dGhvciwgc2VsZiku
X19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCiAKLSAgICBk
ZWYgYXV0aG9yKHNlbGYpOgotICAgICAgICBjb250cmlidXRvcnMsIF8gPSBDb250cmlidXRvcnMu
bG9hZCgpCi0gICAgICAgIHVzZXJuYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQu
dXNlci5sb2dpbicpCi0gICAgICAgIG93bmVycyA9IHNlbGYuZ2V0UHJvcGVydHkoJ293bmVycycs
IFtOb25lXSkKLSAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBbdXNlcm5hbWUsIG93bmVyc1swXV06
Ci0gICAgICAgICAgICBpZiBub3QgY2FuZGlkYXRlOgotICAgICAgICAgICAgICAgIGNvbnRpbnVl
CisgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIu
QnVmZmVyTG9nT2JzZXJ2ZXIpOgorICAgICAgICBzZWxmLmNvbW1hbmQgPSBzZWxmLnNoZWxsX2Nv
bW1hbmQoImdpdCBsb2cgLTEgfCBncmVwICdeQXV0aG9yOiciKQogCi0gICAgICAgICAgICBuYW1l
ID0gY29udHJpYnV0b3JzLmdldChjYW5kaWRhdGUubG93ZXIoKSwge30pLmdldCgnbmFtZScsIE5v
bmUpCi0gICAgICAgICAgICBlbWFpbCA9IGNvbnRyaWJ1dG9ycy5nZXQoY2FuZGlkYXRlLmxvd2Vy
KCksIHt9KS5nZXQoJ2VtYWlsJywgTm9uZSkKKyAgICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBC
dWZmZXJMb2dPYnNlcnZlckNsYXNzKHdhbnRTdGRlcnI9VHJ1ZSkKKyAgICAgICAgc2VsZi5hZGRM
b2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19vYnNlcnZlcikKIAotICAgICAgICAgICAgaWYg
bmFtZSBhbmQgZW1haWw6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG5hbWUsIGVtYWlsCisgICAg
ICAgIHJldHVybiBzdXBlcihEZXRlcm1pbmVBdXRob3IsIHNlbGYpLnN0YXJ0KCkKIAotICAgICAg
ICByZXR1cm4gTm9uZSwgTm9uZQorICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAg
ICAgICBuYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykKKyAgICAgICAgaWYgbm90IG5h
bWUgb3Igc2VsZi5yZXN1bHRzID09IEZBSUxVUkU6CisgICAgICAgICAgICByZXR1cm4geydzdGVw
JzogJ0ZhaWxlZCB0byBmaW5kIGF1dGhvcid9CisgICAgICAgIGVsaWYgc2VsZi5yZXN1bHRzID09
IFNVQ0NFU1M6CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogZiJBdXRob3IgaXMge25hbWV9
In0KKyAgICAgICAgcmV0dXJuIHN1cGVyKERldGVybWluZUF1dGhvciwgc2VsZikuZ2V0UmVzdWx0
U3VtbWFyeSgpCisKKyAgICBkZWYgZXZhbHVhdGVDb21tYW5kKHNlbGYsIGNtZCk6CisgICAgICAg
IHJjID0gc3VwZXIoRGV0ZXJtaW5lQXV0aG9yLCBzZWxmKS5ldmFsdWF0ZUNvbW1hbmQoY21kKQor
ICAgICAgICBpZiByYyAhPSBTVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHJjCisKKyAgICAg
ICAgbG9nX3RleHQgPSBzZWxmLmxvZ19vYnNlcnZlci5nZXRTdGRvdXQoKQorICAgICAgICBsaW5l
cyA9IGxvZ190ZXh0LnNwbGl0bGluZXMoKQorICAgICAgICBpZiBsZW4obGluZXMpICE9IDE6Cisg
ICAgICAgICAgICByZXR1cm4gRkFJTFVSRQorICAgICAgICBtYXRjaCA9IHNlbGYuQVVUSE9SX1JF
Lm1hdGNoKGxpbmVzWzBdKQorICAgICAgICBpZiBtYXRjaDoKKyAgICAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2F1dGhvcicsIG1hdGNoLmdyb3VwKDEpKQorICAgICAgICAgICAgcmV0dXJuIFNV
Q0NFU1MKKyAgICAgICAgcmV0dXJuIEZBSUxVUkUKKworY2xhc3MgQWRkQXV0aG9yVG9Db21taXRN
ZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRkUmV2aWV3ZXJNaXhpbik6CisgICAgbmFtZSA9
ICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1tZXNzYWdlJworICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVl
CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRp
bWVvdXQ9NjAsICoqa3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYpOgotICAgICAgICBiYXNl
X3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNI
KQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZics
IERFRkFVTFRfQlJBTkNIKQorICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dp
dGh1Yi5iYXNlLnJlZicsIGYnb3JpZ2luL3tERUZBVUxUX0JSQU5DSH0nKQorICAgICAgICBoZWFk
X3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdIRUFEJykKIAogICAg
ICAgICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAo
NjAgKiA2MCkpCiAgICAgICAgIHRpbWVzdGFtcCA9IGYne2ludCh0aW1lLnRpbWUoKSl9IHtnbXRv
ZmZzZXR9JwogCi0gICAgICAgIG5hbWUsIGVtYWlsID0gc2VsZi5hdXRob3IoKQotICAgICAgICBw
YXRjaF9ieSA9IGYiUGF0Y2ggYnkge25hbWV9IDx7ZW1haWx9PiBvbiB7ZGF0ZS50b2RheSgpLnN0
cmZ0aW1lKCclWS0lbS0lZCcpfSIKKyAgICAgICAgYXV0aG9yID0gc2VsZi5nZXRQcm9wZXJ0eSgn
YXV0aG9yJykKKyAgICAgICAgcGF0Y2hfYnkgPSBmIlBhdGNoIGJ5IHthdXRob3J9IG9uIHtkYXRl
LnRvZGF5KCkuc3RyZnRpbWUoJyVZLSVtLSVkJyl9IgogCiAgICAgICAgIHNlbGYuY29tbWFuZCA9
IFsKICAgICAgICAgICAgICdnaXQnLCAnZmlsdGVyLWJyYW5jaCcsICctZicsCkBAIC00OTEwLDE2
ICs0OTg5LDEyIEBAIGNsYXNzIEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShzaGVsbC5TaGVsbENv
bW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgogICAgICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJ
TFVSRToKICAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiAnRmFpbGVkIHRvIGFkZCBhdXRob3Ig
dG8gY29tbWl0IG1lc3NhZ2UnfQogICAgICAgICBlbGlmIHNlbGYucmVzdWx0cyA9PSBTVUNDRVNT
OgotICAgICAgICAgICAgbmFtZSwgXyA9IHNlbGYuYXV0aG9yKCkKLSAgICAgICAgICAgIHJldHVy
biB7J3N0ZXAnOiBmIkFkZGVkIHtuYW1lfSBhcyBhdXRob3IifQorICAgICAgICAgICAgYXV0aG9y
ID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykKKyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAn
OiBmIkFkZGVkIHthdXRob3J9IGFzIGF1dGhvciJ9CiAgICAgICAgIHJldHVybiBzdXBlcihBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCiAgICAgZGVm
IGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICBpZiBub3Qgc2VsZi5nZXRQcm9wZXJ0eSgn
Z2l0aHViLm51bWJlcicpOgotICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgbmFt
ZSwgZW1haWwgPSBzZWxmLmF1dGhvcigpCi0gICAgICAgIHJldHVybiBuYW1lIGFuZCBlbWFpbAor
ICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykKIAogICAgIGRlZiBoaWRl
U3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgogICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9T
dGVwSWYoc3RlcCkKQEAgLTQ5MzYsNiArNTAxMSw3IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0TWVz
c2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICAgICAgJ1J1YmJlci1z
dGFtcGVkIGJ5JywKICAgICAgICAgJ1J1YmJlciBzdGFtcGVkIGJ5JywKICAgICApCisgICAgUkVf
Q0hBTkdFTE9HID0gYnInXihcK1wrXCspXHMrKC4qQ2hhbmdlTG9nLiopJwogCiAgICAgZGVmIF9f
aW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoVmFsaWRhdGVDb21taXRNZXNz
YWdlLCBzZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCB0aW1lb3V0PTYwLCAqKmt3YXJn
cykKQEAgLTQ5NDQsMTIgKzUwMjAsMTkgQEAgY2xhc3MgVmFsaWRhdGVDb21taXRNZXNzYWdlKHN0
ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAgICBzb3VyY2VzdGFtcCA9IHNl
bGYuYnVpbGQuZ2V0U291cmNlU3RhbXAoc2VsZi5nZXRQcm9wZXJ0eSgnY29kZWJhc2UnLCAnJykp
CiAgICAgICAgIGlmIHNvdXJjZXN0YW1wIGFuZCBzb3VyY2VzdGFtcC5jaGFuZ2VzOgogICAgICAg
ICAgICAgcmV0dXJuIHNvdXJjZXN0YW1wLmNoYW5nZXNbMF0uZmlsZXMKKyAgICAgICAgaWYgc291
cmNlc3RhbXAgYW5kIHNvdXJjZXN0YW1wLnBhdGNoOgorICAgICAgICAgICAgZmlsZXMgPSBbXQor
ICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNlc3RhbXAucGF0Y2hbMV0uc3BsaXRsaW5lcygp
OgorICAgICAgICAgICAgICAgIG1hdGNoID0gcmUuc2VhcmNoKHNlbGYuUkVfQ0hBTkdFTE9HLCBs
aW5lKQorICAgICAgICAgICAgICAgIGlmIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICBmaWxl
cy5hcHBlbmQobWF0Y2guZ3JvdXAoMSkpCisgICAgICAgICAgICByZXR1cm4gZmlsZXMKICAgICAg
ICAgcmV0dXJuIFtdCiAKICAgICBAZGVmZXIuaW5saW5lQ2FsbGJhY2tzCiAgICAgZGVmIHJ1bihz
ZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVy
KToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYn
LCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdn
aXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFzZV9yZWYgPSBzZWxm
LmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVGQVVMVF9CUkFOQ0h9
JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYn
LCAnSEVBRCcpCiAKICAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCiAgICAgICAgIGNvbW1hbmRz
ID0gWwpAQCAtNDk4Nyw3ICs1MDcwLDcgQEAgY2xhc3MgVmFsaWRhdGVDb21taXRNZXNzYWdlKHN0
ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAgICBpZiByYyA9PSBGQUlMVVJF
OgogICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnY29tbWVudF90ZXh0JywgZiJ7c2VsZi5z
dW1tYXJ5fSwgYmxvY2tpbmcgUFIgI3tzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJyl9
IikKICAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2J1aWxkX2ZpbmlzaF9zdW1tYXJ5Jywg
J0NvbW1pdCBtZXNzYWdlIHZhbGlkYXRpb24gZmFpbGVkJykKLSAgICAgICAgICAgIHNlbGYuYnVp
bGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFtMZWF2ZUNvbW1lbnQoKSwgIEJsb2NrUHVsbFJl
cXVlc3QoKV0pCisgICAgICAgICAgICBzZWxmLmJ1aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3Rl
cChbTGVhdmVDb21tZW50KCksIFNldENvbW1pdFF1ZXVlTWludXNGbGFnT25QYXRjaCgpLCBCbG9j
a1B1bGxSZXF1ZXN0KCldKQogICAgICAgICByZXR1cm4gcmMKIAogICAgIGRlZiBnZXRSZXN1bHRT
dW1tYXJ5KHNlbGYpOgpAQCAtNDk5NSwxMiArNTA3OCw2IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0
TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVsbE1peGluKToKICAgICAgICAgICAgIHJl
dHVybiB7J3N0ZXAnOiBzZWxmLnN1bW1hcnl9CiAgICAgICAgIHJldHVybiBzdXBlcihWYWxpZGF0
ZUNvbW1pdE1lc3NhZ2UsIHNlbGYpLmdldFJlc3VsdFN1bW1hcnkoKQogCi0gICAgZGVmIGRvU3Rl
cElmKHNlbGYsIHN0ZXApOgotICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHVi
Lm51bWJlcicpCi0KLSAgICBkZWYgaGlkZVN0ZXBJZihzZWxmLCByZXN1bHRzLCBzdGVwKToKLSAg
ICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElmKHN0ZXApCi0KIAogY2xhc3MgQ2Fub25pY2Fs
aXplKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgIG5hbWUgPSAnY2Fub25p
Y2FsaXplLWNvbW1pdCcKQEAgLTUwMTYsMTUgKzUwOTMsMTQgQEAgY2xhc3MgQ2Fub25pY2FsaXpl
KHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAgICAgICBzZWxmLmNvbW1hbmRz
ID0gW10KIAogICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNl
LnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVy
dHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAgICBoZWFkX3JlZiA9
IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIE5vbmUpCiAKICAgICAgICAgY29t
bWFuZHMgPSBbXQogICAgICAgICBpZiBzZWxmLnJlYmFzZV9lbmFibGVkOgotICAgICAgICAgICAg
Y29tbWFuZHMgPSBbCi0gICAgICAgICAgICAgICAgWydnaXQnLCAncHVsbCcsICdvcmlnaW4nLCBi
YXNlX3JlZiwgJy0tcmViYXNlJ10sCi0gICAgICAgICAgICAgICAgWydnaXQnLCAnYnJhbmNoJywg
Jy1mJywgYmFzZV9yZWYsIGhlYWRfcmVmXSwKLSAgICAgICAgICAgICAgICBbJ2dpdCcsICdjaGVj
a291dCcsIGJhc2VfcmVmXSwKLSAgICAgICAgICAgIF0KKyAgICAgICAgICAgIGNvbW1hbmRzID0g
W1snZ2l0JywgJ3B1bGwnLCAnb3JpZ2luJywgYmFzZV9yZWYsICctLXJlYmFzZSddXQorICAgICAg
ICAgICAgaWYgaGVhZF9yZWY6CisgICAgICAgICAgICAgICAgY29tbWFuZHMgKz0gW1snZ2l0Jywg
J2JyYW5jaCcsICctZicsIGJhc2VfcmVmLCBoZWFkX3JlZl1dCisgICAgICAgICAgICBjb21tYW5k
cyArPSBbWydnaXQnLCAnY2hlY2tvdXQnLCBiYXNlX3JlZl1dCiAgICAgICAgIGNvbW1hbmRzLmFw
cGVuZChbJ3B5dGhvbjMnLCAnVG9vbHMvU2NyaXB0cy9naXQtd2Via2l0JywgJ2Nhbm9uaWNhbGl6
ZScsICctbicsICcxJyBpZiBzZWxmLnJlYmFzZV9lbmFibGVkIGVsc2UgJzMnXSkKIAogICAgICAg
ICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9l
d3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDQyZjQ0YzYzNTlhMS4uOGRmYmQwZmY4NzE2IDEwMDY0NAot
LS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rv
b2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTQ1LDkgKzQ1LDkg
QEAgaW1wb3J0IHNlbmRfZW1haWwKIGZyb20gc3RlcHMgaW1wb3J0IChBZGRBdXRob3JUb0NvbW1p
dE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLCBBbmFseXplQVBJVGVzdHNSZXN1
bHRzLCBBbmFseXplQ29tcGlsZVdlYktpdFJlc3VsdHMsCiAgICAgICAgICAgICAgICAgICAgQW5h
bHl6ZUpTQ1Rlc3RzUmVzdWx0cywgQW5hbHl6ZUxheW91dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRj
aCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWlsdFByb2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0
cywgQnVnemlsbGFNaXhpbiwKICAgICAgICAgICAgICAgICAgICBDYW5vbmljYWxpemUsIENoZWNr
T3V0UHVsbFJlcXVlc3QsIENoZWNrT3V0U291cmNlLCBDaGVja091dFNwZWNpZmljUmV2aXNpb24s
IENoZWNrQ2hhbmdlUmVsZXZhbmNlLCBDaGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNr
U3R5bGUsCi0gICAgICAgICAgICAgICAgICAgQ2xlYW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9j
aywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtpbmdEaXJlY3RvcnksIENsb3NlUHVsbFJlcXVlc3Qs
IENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0Q2hhbmdlLAorICAgICAgICAgICAgICAgICAg
IENsZWFuQnVpbGQsIENsZWFuVXBHaXRJbmRleExvY2ssIENsZWFuR2l0UmVwbywgQ2xlYW5Xb3Jr
aW5nRGlyZWN0b3J5LCBDbG9zZVB1bGxSZXF1ZXN0LCBDb21waWxlSlNDLCBDb21taXRQYXRjaCwg
Q29tcGlsZUpTQ1dpdGhvdXRDaGFuZ2UsCiAgICAgICAgICAgICAgICAgICAgQ29tcGlsZVdlYktp
dCwgQ29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2UsIENvbmZpZ3VyZUJ1aWxkLCBDb25maWd1cmVC
dWlsZCwgQ29udHJpYnV0b3JzLCBDcmVhdGVMb2NhbEdJVENvbW1pdCwKLSAgICAgICAgICAgICAg
ICAgICBEZXRlcm1pbmVMYW5kZWRJZGVudGlmaWVyLCBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRG93
bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyLCBFV1NfQlVJTERfSE9TVE5BTUUsIEV4dHJhY3RC
dWlsdFByb2R1Y3QsIEV4dHJhY3RUZXN0UmVzdWx0cywKKyAgICAgICAgICAgICAgICAgICBEZXRl
cm1pbmVBdXRob3IsIERldGVybWluZUxhbmRlZElkZW50aWZpZXIsIERvd25sb2FkQnVpbHRQcm9k
dWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21NYXN0ZXIsIEVXU19CVUlMRF9IT1NUTkFNRSwg
RXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRlc3RSZXN1bHRzLAogICAgICAgICAgICAgICAg
ICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExh
eW91dFRlc3RzLCBHaXRIdWIsIEdpdFJlc2V0SGFyZCwgR2l0U3ZuRmV0Y2gsCiAgICAgICAgICAg
ICAgICAgICAgSW5zdGFsbEJ1aWx0UHJvZHVjdCwgSW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5z
dGFsbFdwZURlcGVuZGVuY2llcywKICAgICAgICAgICAgICAgICAgICBLaWxsT2xkUHJvY2Vzc2Vz
LCBQcmludENvbmZpZ3VyYXRpb24sIFB1c2hDb21taXRUb1dlYktpdFJlcG8sIFB1c2hQdWxsUmVx
dWVzdEJyYW5jaCwgUmVSdW5BUElUZXN0cywgUmVSdW5XZWJLaXRQZXJsVGVzdHMsCkBAIC01ODI3
LDEwICs1ODI3LDE4IEBAIGNsYXNzIFRlc3RWYWxpZGF0ZVNxdWFzaGVkKEJ1aWxkU3RlcE1peGlu
QWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgog
ICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKLSAgICBkZWYgdGVzdF9z
a2lwcGVkX3BhdGNoKHNlbGYpOgorICAgIGRlZiB0ZXN0X3BhdGNoKHNlbGYpOgogICAgICAgICBz
ZWxmLnNldHVwU3RlcChWYWxpZGF0ZVNxdWFzaGVkKCkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ3BhdGNoX2lkJywgJzEyMzQnKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0
PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNoZWQgKHNraXBwZWQpJykKKyAgICAgICAgc2Vs
Zi5leHBlY3RSZW1vdGVDb21tYW5kcygKKyAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9
J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnZ2l0JywgJ2xvZycsICctLW9uZWxpbmUnLCAn
SEVBRCcsICdeb3JpZ2luL21haW4nLCAnLS1tYXgtY291bnQ9MiddLAorICAgICAgICAgICAgICAg
ICAgICAgICAgKQorICAgICAgICAgICAgKyAwCisgICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxv
Zygnc3RkaW8nLCBzdGRvdXQ9J2UxZWIyNDYwMzQ5MyAoSEVBRCAtPiBlbmcvcHVsbC1yZXF1ZXN0
LWJyYW5jaCkgRmlyc3QgbGluZSBvZiBjb21taXRcbicpLAorICAgICAgICApCisgICAgICAgIHNl
bGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdWZXJpZmllZCBi
cmFuY2ggaXMgc3F1YXNoZWQnKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAg
IGRlZiB0ZXN0X3N1Y2Nlc3Moc2VsZik6CkBAIC01OTg5LDkgKzU5OTcsOCBAQCBjbGFzcyBUZXN0
QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICByZXR1cm4gc2Vs
Zi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNlbGYp
OgorICAgIGRlZiB0ZXN0X3NraXBwZWRfbm9fYXV0aG9yKHNlbGYpOgogICAgICAgICBzZWxmLnNl
dHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAgICAgICAgc2VsZi5zZXRQcm9w
ZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcpCiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1
bHQ9U0tJUFBFRCwgc3RhdGVfc3RyaW5nPSdmaW5pc2hlZCAoc2tpcHBlZCknKQogICAgICAgICBy
ZXR1cm4gc2VsZi5ydW5TdGVwKCkKIApAQCAtNjAwMiwxMSArNjAwOSwxMCBAQCBjbGFzcyBUZXN0
QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVz
dC5UZXN0Q2FzZSk6CiAgICAgICAgIHRpbWUudGltZSA9IGxhbWJkYTogZml4ZWRfdGltZQogCiAg
ICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQotICAgICAg
ICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJywgJzEyMzQnKQogICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCAnbWFpbicpCiAgICAgICAgIHNlbGYuc2V0
UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdlbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcpCi0g
ICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnVzZXIubG9naW4nLCAnd2Via2l0
LXJldmlld2VyJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnb3duZXJzJywgWyd3ZWJraXQt
Y29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhvcicsICdXZWJL
aXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQogICAgICAgICBzZWxmLmV4cGVjdFJl
bW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAog
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKQEAgLTYwMjEsMzYgKzYw
MjcsMzUgQEAgY2xhc3MgVGVzdEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhp
bkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgKyAwCiAgICAgICAg
ICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9IlJlZiAncmVmcy9oZWFkcy9l
bmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcgd2FzIHJld3JpdHRlblxuIiksCiAgICAgICAgICkKLSAg
ICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0Fk
ZGVkIFdlYktpdCBSZXZpZXdlciBhcyBhdXRob3InKQorICAgICAgICBzZWxmLmV4cGVjdE91dGNv
bWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmluZz0nQWRkZWQgV2ViS2l0IFJldmlld2VyIDxy
ZXZpZXdlckBhcHBsZS5jb20+IGFzIGF1dGhvcicpCiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0
ZXAoKQogCi0gICAgZGVmIHRlc3Rfc3VjY2Vzc19mYWxsYmFjayhzZWxmKToKKyAgICBkZWYgdGVz
dF9zdWNjZXNzX3BhdGNoKHNlbGYpOgogICAgICAgICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2Nh
bHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAgICAgIGZpeGVkX3RpbWUg
PSBpbnQodGltZS50aW1lKCkpCiAgICAgICAgIHRpbWVzdGFtcCA9IGYne2ludCh0aW1lLnRpbWUo
KSl9IHtnbXRvZmZzZXR9JwogICAgICAgICB0aW1lLnRpbWUgPSBsYW1iZGE6IGZpeGVkX3RpbWUK
IAogICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicsICcxMjM0JykKLSAgICAgICAg
c2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2UucmVmJywgJ21haW4nKQotICAgICAgICBzZWxm
LnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gn
KQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC51c2VyLmxvZ2luJywgJ3Vu
cmVnaXN0ZXJlZC1hdXRob3InKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdvd25lcnMnLCBb
J3dlYmtpdC1jb21taXQtcXVldWUnXSkKKyAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnYXV0aG9y
JywgJ1dlYktpdCBSZXZpZXdlciA8cmV2aWV3ZXJAYXBwbGUuY29tPicpCiAgICAgICAgIHNlbGYu
ZXhwZWN0UmVtb3RlQ29tbWFuZHMoCiAgICAgICAgICAgICBFeHBlY3RTaGVsbCh3b3JrZGlyPSd3
a2RpcicsCiAgICAgICAgICAgICAgICAgICAgICAgICBsb2dFbnZpcm9uPUZhbHNlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgZW52PXNlbGYuRU5WLAotICAgICAgICAgICAgICAgICAgICAgICAg
dGltZW91dD02MCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudj1kaWN0KAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdJVF9DT01NSVRURVJfRU1BSUw9J2V3c0B3ZWJraXQub3JnJywK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSVRfQ09NTUlUVEVSX05BTUU9J0VXUycsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgRklMVEVSX0JSQU5DSF9TUVVFTENIX1dBUk5JTkc9
JzEnLAorICAgICAgICAgICAgICAgICAgICAgICAgKSwgdGltZW91dD02MCwKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbW1hbmQ9WwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICdnaXQn
LCAnZmlsdGVyLWJyYW5jaCcsICctZicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJy0t
ZW52LWZpbHRlcicsIGYiR0lUX0FVVEhPUl9EQVRFPSd7dGltZXN0YW1wfSc7R0lUX0NPTU1JVFRF
Ul9EQVRFPSd7dGltZXN0YW1wfSciLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLW1z
Zy1maWx0ZXInLCBmJ3NlZCAiMSwvXiQvIHMvXiQvXFxuUGF0Y2ggYnkgV2ViS2l0IENvbW1pdHRl
ciA8Y29tbWl0dGVyQHdlYmtpdC5vcmc+IG9uIHtkYXRlLnRvZGF5KCkuc3RyZnRpbWUoIiVZLSVt
LSVkIil9L2ciJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW5nL3B1bGwtcmVxdWVz
dC1icmFuY2guLi5tYWluJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1tc2ctZmls
dGVyJywgZidzZWQgIjEsL14kLyBzL14kL1xcblBhdGNoIGJ5IFdlYktpdCBSZXZpZXdlciA8cmV2
aWV3ZXJAYXBwbGUuY29tPiBvbiB7ZGF0ZS50b2RheSgpLnN0cmZ0aW1lKCIlWS0lbS0lZCIpfS9n
IicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0hFQUQuLi5vcmlnaW4vbWFpbicsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBdKQogICAgICAgICAgICAgKyAwCi0gICAgICAgICAgICAr
IEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9IlJlZiAncmVmcy9oZWFkcy9lbmcvcHVs
bC1yZXF1ZXN0LWJyYW5jaCcgd2FzIHJld3JpdHRlblxuIiksCisgICAgICAgICAgICArIEV4cGVj
dFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9IlJlZiAnbWFpbicgd2FzIHJld3JpdHRlblxuIiks
CiAgICAgICAgICkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBz
dGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBDb21taXR0ZXIgYXMgYXV0aG9yJykKKyAgICAgICAg
c2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdl
YktpdCBSZXZpZXdlciA8cmV2aWV3ZXJAYXBwbGUuY29tPiBhcyBhdXRob3InKQogICAgICAgICBy
ZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X2ZhaWx1cmUoc2VsZik6CkBAIC02
MDYwLDExICs2MDY1LDEwIEBAIGNsYXNzIFRlc3RBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoQnVp
bGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgdGltZS50
aW1lID0gbGFtYmRhOiBmaXhlZF90aW1lCiAKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0
aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5u
dW1iZXInLCAnMTIzNCcpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJl
ZicsICdtYWluJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywg
J2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNoJykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0
aHViLmhlYWQudXNlci5sb2dpbicsICd3ZWJraXQtY29tbWl0LXF1ZXVlJykKICAgICAgICAgc2Vs
Zi5zZXRQcm9wZXJ0eSgnb3duZXJzJywgWyd3ZWJraXQtY29tbWl0LXF1ZXVlJ10pCisgICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhvcicsICdXZWJLaXQgQ29tbWl0dGVyIDxjb21taXR0ZXJA
d2Via2l0Lm9yZz4nKQogICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAogICAgICAg
ICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAg
ICAgbG9nRW52aXJvbj1GYWxzZSwKQEAgLTYwODIsMTMgKzYwODYsNiBAQCBjbGFzcyBUZXN0QWRk
QXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3Rh
dGVfc3RyaW5nPSdGYWlsZWQgdG8gYWRkIGF1dGhvciB0byBjb21taXQgbWVzc2FnZScpCiAgICAg
ICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfbm9fb3duZXIoc2VsZik6
Ci0gICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQotICAg
ICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJywgJzEyMzQnKQotICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCAnbWFpbicpCi0gICAgICAgIHNlbGYu
ZXhwZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwgc3RhdGVfc3RyaW5nPSdmaW5pc2hlZCAoc2tp
cHBlZCknKQotICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKLQogCiBjbGFzcyBUZXN0VmFs
aWRhdGVDb21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0
Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgpAQCAtNjA5OCwxMCArNjA5NSwyMiBAQCBjbGFz
cyBUZXN0VmFsaWRhdGVDb21taXRNZXNzYWdlKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICByZXR1cm4g
c2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNl
bGYpOgorICAgIGRlZiB0ZXN0X3BhdGNoKHNlbGYpOgogICAgICAgICBzZWxmLnNldHVwU3RlcChW
YWxpZGF0ZUNvbW1pdE1lc3NhZ2UoKSkKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hf
aWQnLCAnMTIzNCcpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwg
c3RhdGVfc3RyaW5nPSdmaW5pc2hlZCAoc2tpcHBlZCknKQorICAgICAgICBzZWxmLmV4cGVjdFJl
bW90ZUNvbW1hbmRzKAorICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAor
ICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsn
L2Jpbi9zaCcsICctYycsICJnaXQgbG9nIEhFQUQgXm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAnT08q
UFAqUyEnICYmIGVjaG8gJ0NvbW1pdCBtZXNzYWdlIGNvbnRhaW5zIChPT1BTISknIHx8IHRlc3Qg
JD8gLWVxIDEiXSkKKyAgICAgICAgICAgICsgMCwgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXIn
LAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5k
PVsnL2Jpbi9zaCcsICctYycsICJnaXQgbG9nIEhFQUQgXm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAn
XFwoUmV2aWV3ZWQgYnlcXHxVbnJldmlld2VkXFx8UnViYmVyLXN0YW1wZWQgYnlcXHxSdWJiZXIg
c3RhbXBlZCBieVxcKScgfHwgZWNobyAnTm8gcmV2aWV3ZXIgaW5mb3JtYXRpb24gaW4gY29tbWl0
IG1lc3NhZ2UnIl0pCisgICAgICAgICAgICArIDAKKyAgICAgICAgICAgICsgRXhwZWN0U2hlbGwu
bG9nKCdzdGRpbycsIHN0ZG91dD0nJyksCisgICAgICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RP
dXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J1ZhbGlkYXRlZCBjb21taXQgbWVz
c2FnZScpCiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCiAgICAgZGVmIHRlc3Rfc3Vj
Y2VzcyhzZWxmKToKQEAgLTY2MTYsNSArNjYyNSw0NCBAQCBjbGFzcyBUZXN0UmVzZXRHaXRTdm4o
QnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0
dXJuIHNlbGYucnVuU3RlcCgpCiAKIAorY2xhc3MgVGVzdERldGVybWluZUF1dGhvcihCdWlsZFN0
ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxm
KToKKyAgICAgICAgc2VsZi5sb25nTWVzc2FnZSA9IFRydWUKKyAgICAgICAgcmV0dXJuIHNlbGYu
c2V0VXBCdWlsZFN0ZXAoKQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICByZXR1
cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCisKKyAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYp
OgorICAgICAgICBzZWxmLnNldHVwU3RlcChEZXRlcm1pbmVBdXRob3IoKSkKKyAgICAgICAgc2Vs
Zi5leHBlY3RSZW1vdGVDb21tYW5kcygKKyAgICAgICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9
J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTYwLAorICAgICAgICAgICAgICAgICAgICAgICAg
Y29tbWFuZD1bJy9iaW4vc2gnLCAnLWMnLCAiZ2l0IGxvZyAtMSB8IGdyZXAgJ15BdXRob3I6JyJd
KQorICAgICAgICAgICAgKyAwCisgICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8n
LCBzdGRvdXQ9J0F1dGhvcjogV2ViS2l0IFJldmlld2VyIDxyZXZpZXdlckBhcHBsZS5jb20+Jyks
CisgICAgICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBz
dGF0ZV9zdHJpbmc9J0F1dGhvciBpcyBXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNv
bT4nKQorICAgICAgICByYyA9IHNlbGYucnVuU3RlcCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJyksICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2Vy
QGFwcGxlLmNvbT4nKQorICAgICAgICByZXR1cm4gcmMKKworICAgIGRlZiB0ZXN0X2ZhaWx1cmUo
c2VsZik6CisgICAgICAgIHNlbGYuc2V0dXBTdGVwKERldGVybWluZUF1dGhvcigpKQorICAgICAg
ICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAorICAgICAgICAgICAgRXhwZWN0U2hlbGwod29y
a2Rpcj0nd2tkaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tYW5kPVsnL2Jpbi9zaCcsICctYycsICJnaXQgbG9nIC0xIHwgZ3JlcCAnXkF1dGhv
cjonIl0pCisgICAgICAgICAgICArIDEKKyAgICAgICAgICAgICsgRXhwZWN0U2hlbGwubG9nKCdz
dGRpbycsIHN0ZG91dD0nJyksCisgICAgICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21l
KHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9J0ZhaWxlZCB0byBmaW5kIGF1dGhvcicpCisg
ICAgICAgIHJjID0gc2VsZi5ydW5TdGVwKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
LmdldFByb3BlcnR5KCdhdXRob3InKSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIHJjCisKKwogaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkKLS0gCjIuMzAuMSAo
QXBwbGUgR2l0LTEzMCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459505</attachid>
            <date>2022-05-17 09:49:35 -0700</date>
            <delta_ts>2022-05-17 10:36:38 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-240461-20220517094934.patch</filename>
            <type>text/plain</type>
            <size>32533</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBhOWM0YTE5OWY0ZTkwODAxMmQ5MmVkYWYyYTQ2NGFjNjE2MjZjZmRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDA5OjQ4OjM1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24KIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDA0NjEgPHJkYXI6Ly85MzM1MTc4Mz4KClJ1YmJl
ci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgoKKiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2Zh
Y3Rvcmllcy5weToKKENvbW1pdFF1ZXVlRmFjdG9yeS5fX2luaXRfXyk6IE9ubHkgYWNjZXB0IHBh
dGNoZXMgd2l0aCBjb21taXQgbWVzc2FnZXMsCnJlc3BlY3QgdGhvc2UgY29tbWl0IG1lc3NhZ2Vz
LgooTWVyZ2VRdWV1ZUZhY3RvcnlCYXNlLl9faW5pdF9fKTogVXNlIGNvbW1pdCBhdXRob3IgaW4g
Y29tbWl0LgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5
OgooVGVzdEV4cGVjdGVkQnVpbGRTdGVwcy50ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyk6CiogQ0lT
dXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weToKKENvbW1pdFBhdGNoKTogQWRkIHN0ZXAgd2hpY2gg
Y29tbWl0cyBhIHBhdGNoLCBpbmNsdWRpbmcgaXQncyBjb21taXQgbWVzc2FnZS4KKFB1c2hDb21t
aXRUb1dlYktpdFJlcG8uZXZhbHVhdGVDb21tYW5kKTogVXNlIEdpdEh1YiBjaGVja291dCBvbiBD
b21taXQtUXVldWUuCihWYWxpZGF0ZVNxdWFzaGVkLnN0YXJ0KTogU3VwcG9ydCBjb21taXR0ZWQg
cGF0Y2hlcy4KKEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlLnN0YXJ0KTogRGl0dG8uCihEZXRl
cm1pbmVBdXRob3IpOiBFeHRyYWN0IGF1dGhvciBmcm9tIGxvY2FsIGNvbW1pdC4KKEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZSk6IFVzZSAnYXV0aG9yJyBwcm9wZXJ0eSBhcyBzZXQgYnkgJ0RldGVy
bWluZUF1dGhvcicuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuX2ZpbGVzKTogU3VwcG9ydCBwYXRj
aGVzLgooVmFsaWRhdGVDb21taXRNZXNzYWdlLnJ1bik6IFN1cHBvcnQgY29tbWl0dGVkIHBhdGNo
ZXMuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZ2V0UmVzdWx0U3VtbWFyeSk6IFN1cHBvcnQgcGF0
Y2hlcy4KKENhbm9uaWNhbGl6ZS5ydW4pOiBTdXBwb3J0IGNvbW1pdHRlZCBwYXRjaGVzLgooVmFs
aWRhdGVTcXVhc2hlZC5kb1N0ZXBJZik6IERlbGV0ZWQuCihWYWxpZGF0ZVNxdWFzaGVkLmhpZGVT
dGVwSWYpOiBEZWxldGVkLgooQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlLmF1dGhvcik6IERlbGV0
ZWQuCihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UuZG9TdGVwSWYpOiBEZWxldGVkLgooVmFsaWRhdGVD
b21taXRNZXNzYWdlLmhpZGVTdGVwSWYpOiBEZWxldGVkLgoqIFRvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHNfdW5pdHRlc3QucHk6Ci0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9m
YWN0b3JpZXMucHkgICAgICAgIHwgIDI4ICstLQogLi4uL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFj
dG9yaWVzX3VuaXR0ZXN0LnB5IHwgIDE5ICstCiBUb29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0
ZXBzLnB5ICAgICAgICAgICAgfCAxODggKysrKysrKysrKysrLS0tLS0tCiBUb29scy9DSVN1cHBv
cnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5ICAgfCAxMTIgKysrKysrKystLS0KIDQgZmls
ZXMgY2hhbmdlZCwgMjM5IGluc2VydGlvbnMoKyksIDEwOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weSBiL1Rvb2xzL0NJU3Vw
cG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzLnB5CmluZGV4IGU4ODRjMzJhMDZjMC4uMThkOWZkOGYw
YTg3IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQor
KysgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL2ZhY3Rvcmllcy5weQpAQCAtMjQsMTAgKzI0
LDEwIEBACiBmcm9tIGJ1aWxkYm90LnByb2Nlc3MgaW1wb3J0IGZhY3RvcnkKIGZyb20gYnVpbGRi
b3Quc3RlcHMgaW1wb3J0IHRyaWdnZXIKIAotZnJvbSBzdGVwcyBpbXBvcnQgKEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZSwgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2UsIEFwcGx5UGF0Y2gsIEFw
cGx5V2F0Y2hMaXN0LCBDYW5vbmljYWxpemUsCitmcm9tIHN0ZXBzIGltcG9ydCAoQWRkQXV0aG9y
VG9Db21taXRNZXNzYWdlLCBBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSwgQXBwbHlQYXRjaCwg
QXBwbHlXYXRjaExpc3QsIENhbm9uaWNhbGl6ZSwgQ29tbWl0UGF0Y2gsCiAgICAgICAgICAgICAg
ICAgICAgQ2hlY2tPdXRQdWxsUmVxdWVzdCwgQ2hlY2tPdXRTb3VyY2UsIENoZWNrT3V0U3BlY2lm
aWNSZXZpc2lvbiwgQ2hlY2tDaGFuZ2VSZWxldmFuY2UsCiAgICAgICAgICAgICAgICAgICAgQ2hl
Y2tQYXRjaFN0YXR1c09uRVdTUXVldWVzLCBDaGVja1N0eWxlLCBDbGVhbkdpdFJlcG8sIENvbXBp
bGVKU0MsIENvbXBpbGVXZWJLaXQsIENvbmZpZ3VyZUJ1aWxkLCBDcmVhdGVMb2NhbEdJVENvbW1p
dCwKLSAgICAgICAgICAgICAgICAgICBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRXh0cmFjdEJ1aWx0
UHJvZHVjdCwgRmV0Y2hCcmFuY2hlcywgRmluZE1vZGlmaWVkQ2hhbmdlTG9ncywgRmluZE1vZGlm
aWVkTGF5b3V0VGVzdHMsIEdpdFN2bkZldGNoLAorICAgICAgICAgICAgICAgICAgIERldGVybWlu
ZUF1dGhvciwgRG93bmxvYWRCdWlsdFByb2R1Y3QsIEV4dHJhY3RCdWlsdFByb2R1Y3QsIEZldGNo
QnJhbmNoZXMsIEZpbmRNb2RpZmllZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExheW91dFRlc3Rz
LCBHaXRTdm5GZXRjaCwKICAgICAgICAgICAgICAgICAgICBJbnN0YWxsR3RrRGVwZW5kZW5jaWVz
LCBJbnN0YWxsV3BlRGVwZW5kZW5jaWVzLCBLaWxsT2xkUHJvY2Vzc2VzLCBQcmludENvbmZpZ3Vy
YXRpb24sIFB1c2hDb21taXRUb1dlYktpdFJlcG8sCiAgICAgICAgICAgICAgICAgICAgUnVuQVBJ
VGVzdHMsIFJ1bkJpbmRpbmdzVGVzdHMsIFJ1bkJ1aWxkV2ViS2l0T3JnVW5pdFRlc3RzLCBSdW5C
dWlsZGJvdENoZWNrQ29uZmlnRm9yQnVpbGRXZWJLaXQsIFJ1bkJ1aWxkYm90Q2hlY2tDb25maWdG
b3JFV1MsCiAgICAgICAgICAgICAgICAgICAgUnVuRVdTVW5pdFRlc3RzLCBSdW5SZXN1bHRzZGJw
eVRlc3RzLCBSdW5KYXZhU2NyaXB0Q29yZVRlc3RzLCBSdW5XZWJLaXQxVGVzdHMsIFJ1bldlYktp
dFBlcmxUZXN0cywgUnVuV2ViS2l0UHlQeXRob24yVGVzdHMsCkBAIC0yOTIsMTUgKzI5MiwyMSBA
QCBjbGFzcyBDb21taXRRdWV1ZUZhY3RvcnkoZmFjdG9yeS5CdWlsZEZhY3RvcnkpOgogICAgICAg
ICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDaGFuZ2UodmVyaWZ5Y3FwbHVzPVRydWUpKQogICAgICAg
ICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDb21taXR0ZXJBbmRSZXZpZXdlcigpKQogICAgICAgICBz
ZWxmLmFkZFN0ZXAoUHJpbnRDb25maWd1cmF0aW9uKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChD
bGVhbkdpdFJlcG8oZGVmYXVsdF9icmFuY2g9J21hc3RlcicpKQotICAgICAgICBzZWxmLmFkZFN0
ZXAoQ2hlY2tPdXRTb3VyY2UocmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9yZy9naXQvV2Vi
S2l0LWh0dHBzJykpCisgICAgICAgIHNlbGYuYWRkU3RlcChDbGVhbkdpdFJlcG8oKSkKKyAgICAg
ICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0U291cmNlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChH
aXRTdm5GZXRjaCgpKSAgIyBGSVhNRTogUmVtb3ZlIHdoZW4gbWlncmF0aW5nIHRvIHB1cmUgZ2l0
CiAgICAgICAgIHNlbGYuYWRkU3RlcChGZXRjaEJyYW5jaGVzKCkpCiAgICAgICAgIHNlbGYuYWRk
U3RlcChTaG93SWRlbnRpZmllcigpKQogICAgICAgICBzZWxmLmFkZFN0ZXAoVmVyaWZ5R2l0SHVi
SW50ZWdyaXR5KCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5
KCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRk
U3RlcChWYWxpZGF0ZUNoYW5nZUxvZ0FuZFJldmlld2VyKCkpCi0gICAgICAgIHNlbGYuYWRkU3Rl
cChGaW5kTW9kaWZpZWRDaGFuZ2VMb2dzKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChDb21taXRQ
YXRjaCgpKQorCisgICAgICAgIHNlbGYuYWRkU3RlcChWYWxpZGF0ZVNxdWFzaGVkKCkpCisgICAg
ICAgIHNlbGYuYWRkU3RlcChBZGRSZXZpZXdlclRvQ29tbWl0TWVzc2FnZSgpKQorICAgICAgICBz
ZWxmLmFkZFN0ZXAoRGV0ZXJtaW5lQXV0aG9yKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKKyAgICAgICAgc2VsZi5hZGRTdGVwKFZhbGlkYXRlQ29t
bWl0TWVzc2FnZSgpKQorCiAgICAgICAgIHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkp
CiAgICAgICAgIHNlbGYuYWRkU3RlcChDb21waWxlV2ViS2l0KHNraXBVcGxvYWQ9VHJ1ZSkpCiAg
ICAgICAgIHNlbGYuYWRkU3RlcChLaWxsT2xkUHJvY2Vzc2VzKCkpCkBAIC0zMDgsMTEgKzMxNCw4
IEBAIGNsYXNzIENvbW1pdFF1ZXVlRmFjdG9yeShmYWN0b3J5LkJ1aWxkRmFjdG9yeSk6CiAgICAg
ICAgIHNlbGYuYWRkU3RlcChDaGVja1BhdGNoU3RhdHVzT25FV1NRdWV1ZXMoKSkKICAgICAgICAg
c2VsZi5hZGRTdGVwKFJ1bldlYktpdFRlc3RzKCkpCiAgICAgICAgIHNlbGYuYWRkU3RlcChWYWxp
ZGF0ZUNoYW5nZShhZGRVUkxzPUZhbHNlLCB2ZXJpZnljcXBsdXM9VHJ1ZSkpCi0gICAgICAgIHNl
bGYuYWRkU3RlcChDaGVja091dFNvdXJjZShyZXBvdXJsPSdodHRwczovL2dpdC53ZWJraXQub3Jn
L2dpdC9XZWJLaXQtaHR0cHMnKSkKLSAgICAgICAgc2VsZi5hZGRTdGVwKFNob3dJZGVudGlmaWVy
KCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChVcGRhdGVXb3JraW5nRGlyZWN0b3J5KCkpCi0gICAg
ICAgIHNlbGYuYWRkU3RlcChBcHBseVBhdGNoKCkpCi0gICAgICAgIHNlbGYuYWRkU3RlcChDcmVh
dGVMb2NhbEdJVENvbW1pdCgpKQorCisgICAgICAgIHNlbGYuYWRkU3RlcChDYW5vbmljYWxpemUo
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKFB1c2hDb21taXRUb1dlYktpdFJlcG8oKSkKICAgICAg
ICAgc2VsZi5hZGRTdGVwKFNldEJ1aWxkU3VtbWFyeSgpKQogCkBAIC0zMzQsNiArMzM3LDcgQEAg
Y2xhc3MgTWVyZ2VRdWV1ZUZhY3RvcnlCYXNlKGZhY3RvcnkuQnVpbGRGYWN0b3J5KToKICAgICAg
ICAgc2VsZi5hZGRTdGVwKENoZWNrT3V0UHVsbFJlcXVlc3QoKSkKICAgICAgICAgc2VsZi5hZGRT
dGVwKFZhbGlkYXRlU3F1YXNoZWQoKSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEFkZFJldmlld2Vy
VG9Db21taXRNZXNzYWdlKCkpCisgICAgICAgIHNlbGYuYWRkU3RlcChEZXRlcm1pbmVBdXRob3Io
KSkKICAgICAgICAgc2VsZi5hZGRTdGVwKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSgpKQogICAg
ICAgICBzZWxmLmFkZFN0ZXAoVmFsaWRhdGVDb21taXRNZXNzYWdlKCkpCiAKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFjdG9yaWVzX3VuaXR0ZXN0LnB5IGIvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9mYWN0b3JpZXNfdW5pdHRlc3QucHkKaW5kZXggOWY3YjY3ZTQw
NGVlLi40NmJjZjEzYWJkMTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
ZmFjdG9yaWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvZmFj
dG9yaWVzX3VuaXR0ZXN0LnB5CkBAIC02MDQsMTMgKzYwNCwxNyBAQCBjbGFzcyBUZXN0RXhwZWN0
ZWRCdWlsZFN0ZXBzKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICdjb25maWd1cmF0
aW9uJywKICAgICAgICAgICAgICdjbGVhbi11cC1naXQtcmVwbycsCiAgICAgICAgICAgICAnY2xl
YW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCisgICAgICAgICAgICAnZ2l0LXN2bi1m
ZXRjaCcsCiAgICAgICAgICAgICAnZmV0Y2gtYnJhbmNoLXJlZmVyZW5jZXMnLAogICAgICAgICAg
ICAgJ3Nob3ctaWRlbnRpZmllcicsCiAgICAgICAgICAgICAndmVyaWZ5LWdpdGh1Yi1pbnRlZ3Jp
dHknLAogICAgICAgICAgICAgJ3VwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCi0gICAgICAgICAg
ICAnYXBwbHktcGF0Y2gnLAotICAgICAgICAgICAgJ3ZhbGlkYXRlLWNoYW5nZWxvZy1hbmQtcmV2
aWV3ZXInLAotICAgICAgICAgICAgJ2ZpbmQtbW9kaWZpZWQtY2hhbmdlbG9ncycsCisgICAgICAg
ICAgICAnY29tbWl0LXBhdGNoJywKKyAgICAgICAgICAgICd2YWxpZGF0ZS1zcXVhc2hlZCcsCisg
ICAgICAgICAgICAnYWRkLXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAg
ICdkZXRlcm1pbmUtYXV0aG9yJywKKyAgICAgICAgICAgICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1t
ZXNzYWdlJywKKyAgICAgICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCiAgICAgICAg
ICAgICAna2lsbC1vbGQtcHJvY2Vzc2VzJywKICAgICAgICAgICAgICdjb21waWxlLXdlYmtpdCcs
CiAgICAgICAgICAgICAna2lsbC1vbGQtcHJvY2Vzc2VzJywKQEAgLTYxOCwxMSArNjIyLDcgQEAg
Y2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRTdGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAg
ICAgICAnY2hlY2stc3RhdHVzLW9uLW90aGVyLWV3c2VzJywKICAgICAgICAgICAgICdsYXlvdXQt
dGVzdHMnLAogICAgICAgICAgICAgJ3ZhbGlkYXRlLWNoYW5nZScsCi0gICAgICAgICAgICAnY2xl
YW4tYW5kLXVwZGF0ZS13b3JraW5nLWRpcmVjdG9yeScsCi0gICAgICAgICAgICAnc2hvdy1pZGVu
dGlmaWVyJywKLSAgICAgICAgICAgICd1cGRhdGUtd29ya2luZy1kaXJlY3RvcnknLAotICAgICAg
ICAgICAgJ2FwcGx5LXBhdGNoJywKLSAgICAgICAgICAgICdjcmVhdGUtbG9jYWwtZ2l0LWNvbW1p
dCcsCisgICAgICAgICAgICAnY2Fub25pY2FsaXplLWNvbW1pdCcsCiAgICAgICAgICAgICAncHVz
aC1jb21taXQtdG8td2Via2l0LXJlcG8nLAogICAgICAgICAgICAgJ3NldC1idWlsZC1zdW1tYXJ5
JwogICAgICAgICBdLApAQCAtNjQxLDYgKzY0MSw3IEBAIGNsYXNzIFRlc3RFeHBlY3RlZEJ1aWxk
U3RlcHModW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2NoZWNrb3V0LXB1bGwtcmVx
dWVzdCcsCiAgICAgICAgICAgICAndmFsaWRhdGUtc3F1YXNoZWQnLAogICAgICAgICAgICAgJ2Fk
ZC1yZXZpZXdlci10by1jb21taXQtbWVzc2FnZScsCisgICAgICAgICAgICAnZGV0ZXJtaW5lLWF1
dGhvcicsCiAgICAgICAgICAgICAnYWRkLWF1dGhvci10by1jb21taXQtbWVzc2FnZScsCiAgICAg
ICAgICAgICAndmFsaWRhdGUtY29tbWl0LW1lc3NhZ2UnLAogICAgICAgICAgICAgJ2tpbGwtb2xk
LXByb2Nlc3NlcycsCkBAIC02NjYsNiArNjY3LDcgQEAgY2xhc3MgVGVzdEV4cGVjdGVkQnVpbGRT
dGVwcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAnY2hlY2tvdXQtcHVsbC1yZXF1
ZXN0JywKICAgICAgICAgICAgICd2YWxpZGF0ZS1zcXVhc2hlZCcsCiAgICAgICAgICAgICAnYWRk
LXJldmlld2VyLXRvLWNvbW1pdC1tZXNzYWdlJywKKyAgICAgICAgICAgICdkZXRlcm1pbmUtYXV0
aG9yJywKICAgICAgICAgICAgICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1tZXNzYWdlJywKICAgICAg
ICAgICAgICd2YWxpZGF0ZS1jb21taXQtbWVzc2FnZScsCiAgICAgICAgICAgICAndmFsaWRhdGUt
Y2hhbmdlJywKQEAgLTY4MSw2ICs2ODMsNyBAQCBjbGFzcyBUZXN0RXhwZWN0ZWRCdWlsZFN0ZXBz
KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgbG9hZENvbmZpZy5sb2FkQnVpbGRlckNvbmZp
ZyhzZWxmLmNvbmZpZywgaXNfdGVzdF9tb2RlX2VuYWJsZWQ9VHJ1ZSwgbWFzdGVyX3ByZWZpeF9w
YXRoPWN3ZCkKIAogICAgIGRlZiB0ZXN0X2FsbF9leHBlY3RlZF9zdGVwcyhzZWxmKToKKyAgICAg
ICAgc2VsZi5tYXhEaWZmID0gTm9uZQogICAgICAgICBmb3IgYnVpbGRlciBpbiBzZWxmLmNvbmZp
Z1snYnVpbGRlcnMnXToKICAgICAgICAgICAgIGJ1aWxkU3RlcHMgPSBbXQogICAgICAgICAgICAg
Zm9yIHN0ZXAgaW4gYnVpbGRlclsnZmFjdG9yeSddLnN0ZXBzOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
Q0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQv
c3RlcHMucHkKaW5kZXggMTkyZjZjMjA1NzVhLi43NmVhZjYzZWVjN2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkKKysrIGIvVG9vbHMvQ0lTdXBwb3J0L2V3
cy1idWlsZC9zdGVwcy5weQpAQCAtODQ1LDYgKzg0NSw2MyBAQCBjbGFzcyBBcHBseVBhdGNoKHNo
ZWxsLlNoZWxsQ29tbWFuZCwgQ29tcG9zaXRlU3RlcE1peGluLCBTaGVsbE1peGluKToKICAgICAg
ICAgcmV0dXJuIHJjCiAKIAorY2xhc3MgQ29tbWl0UGF0Y2goc3RlcHMuU2hlbGxTZXF1ZW5jZSwg
Q29tcG9zaXRlU3RlcE1peGluLCBTaGVsbE1peGluKToKKyAgICBuYW1lID0gJ2NvbW1pdC1wYXRj
aCcKKyAgICBkZXNjcmlwdGlvbiA9IFsnY29tbWl0LXBhdGNoJ10KKyAgICBkZXNjcmlwdGlvbkRv
bmUgPSBbJ0NyZWF0ZWQgY29tbWl0IGZyb20gcGF0Y2gnXQorICAgIGhhbHRPbkZhaWx1cmUgPSBU
cnVlCisgICAgZW52ID0gZGljdChGSUxURVJfQlJBTkNIX1NRVUVMQ0hfV0FSTklORz0nMScpCisg
ICAgRklMVEVSX0JSQU5DSF9QUk9HUkFNID0gJycnaW1wb3J0IHJlCitpbXBvcnQgc3lzCisKK2xp
bmVzID0gW2wgZm9yIGwgaW4gc3lzLnN0ZGluXQorZm9yIHMgaW4gcmUuc3BsaXQocicgKE5lZWQg
dGhlIGJ1ZyBVUkwgXChPT1BTIVwpLil8KFxTKzpcL1wvXFMrKScsIGxpbmVzWzBdLnJzdHJpcCgp
KToKKyAgICBpZiBzIGFuZCBzICE9ICcgJzoKKyAgICAgICAgcHJpbnQocykKK2ZvciBsIGluIGxp
bmVzWzE6XToKKyAgICBzeXMuc3Rkb3V0LndyaXRlKGwpCisnJycKKworICAgIGRlZiBfX2luaXRf
XyhzZWxmLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5fX2lu
aXRfXyh0aW1lb3V0PTEwICogNjAsIGxvZ0Vudmlyb249RmFsc2UsICoqa3dhcmdzKQorCisgICAg
ZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgorICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0
eSgncGF0Y2hfaWQnLCBGYWxzZSkKKworICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMs
IHN0ZXApOgorICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkgb3IgKHJlc3Vs
dHMgPT0gU1VDQ0VTUyBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgnc2Vuc2l0aXZlJywgRmFsc2UpKQor
CisgICAgZGVmIF9nZXRfcGF0Y2goc2VsZik6CisgICAgICAgIHNvdXJjZXN0YW1wID0gc2VsZi5i
dWlsZC5nZXRTb3VyY2VTdGFtcChzZWxmLmdldFByb3BlcnR5KCdjb2RlYmFzZScsICcnKSkKKyAg
ICAgICAgaWYgbm90IHNvdXJjZXN0YW1wIG9yIG5vdCBzb3VyY2VzdGFtcC5wYXRjaDoKKyAgICAg
ICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVybiBzb3VyY2VzdGFtcC5wYXRjaFsxXQor
CisgICAgQGRlZmVyLmlubGluZUNhbGxiYWNrcworICAgIGRlZiBydW4oc2VsZik6CisgICAgICAg
IHNlbGYuY29tbWFuZHMgPSBbXQorICAgICAgICBwYXRjaCA9IHNlbGYuX2dldF9wYXRjaCgpCisK
KyAgICAgICAgY29tbWFuZHMgPSBbXQorICAgICAgICBpZiBub3QgcGF0Y2g6CisgICAgICAgICAg
ICBjb21tYW5kcyArPSBbWydjdXJsJywgJy1MJywgJ2h0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0
dGFjaG1lbnQuY2dpP2lkPXt9Jy5mb3JtYXQoc2VsZi5nZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAn
JykpLCAnLW8nLCAnLmJ1aWxkYm90LWRpZmYnXV0KKyAgICAgICAgY29tbWFuZHMgKz0gWworICAg
ICAgICAgICAgWydnaXQnLCAnYW0nLCAnLmJ1aWxkYm90LWRpZmYnXSwKKyAgICAgICAgICAgIFsn
Z2l0JywgJ2ZpbHRlci1icmFuY2gnLCAnLWYnLCAnLS1tc2ctZmlsdGVyJywgJ3B5dGhvbjMgLWMg
Int9IicuZm9ybWF0KHNlbGYuRklMVEVSX0JSQU5DSF9QUk9HUkFNKSwgJ0hFQUQuLi5IRUFEfjEn
XSwKKyAgICAgICAgXQorICAgICAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoKKyAgICAgICAg
ICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKHV0aWwuU2hlbGxBcmcoY29tbWFuZD1jb21tYW5kLCBs
b2duYW1lPSdzdGRpbycsIGhhbHRPbkZhaWx1cmU9VHJ1ZSkpCisKKyAgICAgICAgXyA9IHlpZWxk
IHNlbGYuZG93bmxvYWRGaWxlQ29udGVudFRvV29ya2VyKCcuYnVpbGRib3QtZGlmZicsIHBhdGNo
KQorICAgICAgICByZXMgPSB5aWVsZCBzdXBlcihDb21taXRQYXRjaCwgc2VsZikucnVuKCkKKyAg
ICAgICAgcmV0dXJuIHJlcworCisgICAgZGVmIGdldFJlc3VsdFN1bW1hcnkoc2VsZik6CisgICAg
ICAgIGlmIHNlbGYucmVzdWx0cyAhPSBTVUNDRVNTOgorICAgICAgICAgICAgcmV0dXJuIHsnc3Rl
cCc6ICdnaXQgZmFpbGVkIHRvIGFwcGx5IHBhdGNoIHRvIHRydW5rJ30KKyAgICAgICAgcmV0dXJu
IHN1cGVyKENvbW1pdFBhdGNoLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKKworCiBjbGFzcyBD
aGVja091dFB1bGxSZXF1ZXN0KHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4pOgogICAg
IG5hbWUgPSAnY2hlY2tvdXQtcHVsbC1yZXF1ZXN0JwogICAgIGRlc2NyaXB0aW9uID0gWydjaGVj
a2luZy1vdXQtcHVsbC1yZXF1ZXN0J10KQEAgLTQ1NzUsMTIgKzQ2MzIsMTcgQEAgY2xhc3MgUHVz
aENvbW1pdFRvV2ViS2l0UmVwbyhzaGVsbC5TaGVsbENvbW1hbmQpOgogICAgICAgICAgICAgICAg
ICAgICBdKQogICAgICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYu
YnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFsKLSAgICAgICAgICAgICAgICAgICAgICAg
IEdpdFJlc2V0SGFyZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgQ2hlY2tPdXRTb3VyY2Uo
cmVwb3VybD0naHR0cHM6Ly9naXQud2Via2l0Lm9yZy9naXQvV2ViS2l0LWh0dHBzJyksCisgICAg
ICAgICAgICAgICAgICAgICAgICBSZXNldEdpdFN2bigpLAorICAgICAgICAgICAgICAgICAgICAg
ICAgQ2xlYW5HaXRSZXBvKCksCisgICAgICAgICAgICAgICAgICAgICAgICBDaGVja091dFNvdXJj
ZSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgR2l0U3ZuRmV0Y2goKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgIFNob3dJZGVudGlmaWVyKCksCiAgICAgICAgICAgICAgICAgICAgICAgICBV
cGRhdGVXb3JraW5nRGlyZWN0b3J5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICBBcHBseVBh
dGNoKCksCi0gICAgICAgICAgICAgICAgICAgICAgICBDcmVhdGVMb2NhbEdJVENvbW1pdCgpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWl0UGF0Y2goKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIEFkZFJldmlld2VyVG9Db21taXRNZXNzYWdlKCksCisgICAgICAgICAgICAgICAgICAg
ICAgICBBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoKSwKKyAgICAgICAgICAgICAgICAgICAgICAg
IFZhbGlkYXRlQ2hhbmdlKGFkZFVSTHM9RmFsc2UsIHZlcmlmeWNxcGx1cz1UcnVlKSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgIENhbm9uaWNhbGl6ZSgpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgUHVzaENvbW1pdFRvV2ViS2l0UmVwbygpLAogICAgICAgICAgICAgICAgICAgICBdKQogICAg
ICAgICAgICAgICAgIHJldHVybiByYwpAQCAtNDc2MSw4ICs0ODIzLDggQEAgY2xhc3MgVmFsaWRh
dGVTcXVhc2hlZChzaGVsbC5TaGVsbENvbW1hbmQpOgogICAgICAgICBzdXBlcihWYWxpZGF0ZVNx
dWFzaGVkLCBzZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9uPUZhbHNlLCAqKmt3YXJncykKIAogICAg
IGRlZiBzdGFydChzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxvZ29ic2VydmVyLkJ1ZmZl
ckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRo
dWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdl
dFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5DSCkKKyAgICAgICAgYmFz
ZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBmJ29yaWdpbi97REVG
QVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRo
dWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAgICAgICAgIHNlbGYuY29tbWFuZCA9IFsnZ2l0JywgJ2xv
ZycsICctLW9uZWxpbmUnLCBoZWFkX3JlZiwgZidee2Jhc2VfcmVmfScsICctLW1heC1jb3VudD0y
J10KIAogICAgICAgICBzZWxmLmxvZ19vYnNlcnZlciA9IEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3Mo
d2FudFN0ZGVycj1UcnVlKQpAQCAtNDc4NywxMiArNDg0OSw2IEBAIGNsYXNzIFZhbGlkYXRlU3F1
YXNoZWQoc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICAgICAgICAgIHJldHVybiBTVUNDRVNTCiAg
ICAgICAgIHJldHVybiBGQUlMVVJFCiAKLSAgICBkZWYgZG9TdGVwSWYoc2VsZiwgc3RlcCk6Ci0g
ICAgICAgIHJldHVybiBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIubnVtYmVyJykKLQotICAgIGRl
ZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgotICAgICAgICByZXR1cm4gbm90IHNl
bGYuZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFzcyBBZGRSZXZpZXdlck1peGluKG9iamVjdCk6CiAg
ICAgTk9CT0RZX1NFRCA9ICdzL05PQk9EWSAoT08qUFAqUyEqKS97fS9nJwpAQCAtNDgzMCw4ICs0
ODg2LDggQEAgY2xhc3MgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxDb21t
YW5kLCBBZGRSZXZpZXdlck1peGluKToKICAgICAgICAgc3VwZXIoQWRkUmV2aWV3ZXJUb0NvbW1p
dE1lc3NhZ2UsIHNlbGYpLl9faW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoq
a3dhcmdzKQogCiAgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxvZ09ic2VydmVyQ2xhc3M9bG9n
b2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFk
X3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNI
KQorICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZics
IGYnb3JpZ2luL3tERUZBVUxUX0JSQU5DSH0nKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQg
PSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAg
ICAgIGRhdGUgPSBmJ3tpbnQodGltZS50aW1lKCkpfSB7Z210b2Zmc2V0fScKQEAgLTQ4NTUsNDQg
KzQ5MTEsNjcgQEAgY2xhc3MgQWRkUmV2aWV3ZXJUb0NvbW1pdE1lc3NhZ2Uoc2hlbGwuU2hlbGxD
b21tYW5kLCBBZGRSZXZpZXdlck1peGluKToKICAgICAgICAgcmV0dXJuIHN1cGVyKEFkZFJldmll
d2VyVG9Db21taXRNZXNzYWdlLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAogICAgIGRlZiBk
b1N0ZXBJZihzZWxmLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2dp
dGh1Yi5udW1iZXInKSBhbmQgc2VsZi5nZXRQcm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMn
KQorICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0eSgncmV2aWV3ZXJzX2Z1bGxfbmFtZXMn
KQogCiAgICAgZGVmIGhpZGVTdGVwSWYoc2VsZiwgcmVzdWx0cywgc3RlcCk6CiAgICAgICAgIHJl
dHVybiBub3Qgc2VsZi5kb1N0ZXBJZihzdGVwKQogCiAKLWNsYXNzIEFkZEF1dGhvclRvQ29tbWl0
TWVzc2FnZShzaGVsbC5TaGVsbENvbW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgotICAgIG5hbWUg
PSAnYWRkLWF1dGhvci10by1jb21taXQtbWVzc2FnZScKK2NsYXNzIERldGVybWluZUF1dGhvcihz
aGVsbC5TaGVsbENvbW1hbmQsIFNoZWxsTWl4aW4pOgorICAgIG5hbWUgPSAnZGV0ZXJtaW5lLWF1
dGhvcicKICAgICBoYWx0T25GYWlsdXJlID0gVHJ1ZQorICAgIEFVVEhPUl9SRSA9IHJlLmNvbXBp
bGUocidBdXRob3I6XHMrKC4rIDwuKz4pJykKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3
YXJncyk6Ci0gICAgICAgIHN1cGVyKEFkZEF1dGhvclRvQ29tbWl0TWVzc2FnZSwgc2VsZikuX19p
bml0X18obG9nRW52aXJvbj1GYWxzZSwgdGltZW91dD02MCwgKiprd2FyZ3MpCisgICAgICAgIHN1
cGVyKERldGVybWluZUF1dGhvciwgc2VsZikuX19pbml0X18obG9nRW52aXJvbj1GYWxzZSwgdGlt
ZW91dD02MCwgKiprd2FyZ3MpCiAKLSAgICBkZWYgYXV0aG9yKHNlbGYpOgotICAgICAgICBjb250
cmlidXRvcnMsIF8gPSBDb250cmlidXRvcnMubG9hZCgpCi0gICAgICAgIHVzZXJuYW1lID0gc2Vs
Zi5nZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQudXNlci5sb2dpbicpCi0gICAgICAgIG93bmVycyA9
IHNlbGYuZ2V0UHJvcGVydHkoJ293bmVycycsIFtOb25lXSkKLSAgICAgICAgZm9yIGNhbmRpZGF0
ZSBpbiBbdXNlcm5hbWUsIG93bmVyc1swXV06Ci0gICAgICAgICAgICBpZiBub3QgY2FuZGlkYXRl
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgZGVmIHN0YXJ0KHNlbGYsIEJ1ZmZlckxv
Z09ic2VydmVyQ2xhc3M9bG9nb2JzZXJ2ZXIuQnVmZmVyTG9nT2JzZXJ2ZXIpOgorICAgICAgICBz
ZWxmLmNvbW1hbmQgPSBzZWxmLnNoZWxsX2NvbW1hbmQoImdpdCBsb2cgLTEgfCBncmVwICdeQXV0
aG9yOiciKQogCi0gICAgICAgICAgICBuYW1lID0gY29udHJpYnV0b3JzLmdldChjYW5kaWRhdGUu
bG93ZXIoKSwge30pLmdldCgnbmFtZScsIE5vbmUpCi0gICAgICAgICAgICBlbWFpbCA9IGNvbnRy
aWJ1dG9ycy5nZXQoY2FuZGlkYXRlLmxvd2VyKCksIHt9KS5nZXQoJ2VtYWlsJywgTm9uZSkKKyAg
ICAgICAgc2VsZi5sb2dfb2JzZXJ2ZXIgPSBCdWZmZXJMb2dPYnNlcnZlckNsYXNzKHdhbnRTdGRl
cnI9VHJ1ZSkKKyAgICAgICAgc2VsZi5hZGRMb2dPYnNlcnZlcignc3RkaW8nLCBzZWxmLmxvZ19v
YnNlcnZlcikKIAotICAgICAgICAgICAgaWYgbmFtZSBhbmQgZW1haWw6Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIG5hbWUsIGVtYWlsCisgICAgICAgIHJldHVybiBzdXBlcihEZXRlcm1pbmVBdXRo
b3IsIHNlbGYpLnN0YXJ0KCkKIAotICAgICAgICByZXR1cm4gTm9uZSwgTm9uZQorICAgIGRlZiBn
ZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgorICAgICAgICBuYW1lID0gc2VsZi5nZXRQcm9wZXJ0eSgn
YXV0aG9yJykKKyAgICAgICAgaWYgbm90IG5hbWUgb3Igc2VsZi5yZXN1bHRzID09IEZBSUxVUkU6
CisgICAgICAgICAgICByZXR1cm4geydzdGVwJzogJ0ZhaWxlZCB0byBmaW5kIGF1dGhvcid9Cisg
ICAgICAgIGVsaWYgc2VsZi5yZXN1bHRzID09IFNVQ0NFU1M6CisgICAgICAgICAgICByZXR1cm4g
eydzdGVwJzogZiJBdXRob3IgaXMge25hbWV9In0KKyAgICAgICAgcmV0dXJuIHN1cGVyKERldGVy
bWluZUF1dGhvciwgc2VsZikuZ2V0UmVzdWx0U3VtbWFyeSgpCisKKyAgICBkZWYgZXZhbHVhdGVD
b21tYW5kKHNlbGYsIGNtZCk6CisgICAgICAgIHJjID0gc3VwZXIoRGV0ZXJtaW5lQXV0aG9yLCBz
ZWxmKS5ldmFsdWF0ZUNvbW1hbmQoY21kKQorICAgICAgICBpZiByYyAhPSBTVUNDRVNTOgorICAg
ICAgICAgICAgcmV0dXJuIHJjCisKKyAgICAgICAgbG9nX3RleHQgPSBzZWxmLmxvZ19vYnNlcnZl
ci5nZXRTdGRvdXQoKQorICAgICAgICBsaW5lcyA9IGxvZ190ZXh0LnNwbGl0bGluZXMoKQorICAg
ICAgICBpZiBsZW4obGluZXMpICE9IDE6CisgICAgICAgICAgICByZXR1cm4gRkFJTFVSRQorICAg
ICAgICBtYXRjaCA9IHNlbGYuQVVUSE9SX1JFLm1hdGNoKGxpbmVzWzBdKQorICAgICAgICBpZiBt
YXRjaDoKKyAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhvcicsIG1hdGNoLmdyb3Vw
KDEpKQorICAgICAgICAgICAgcmV0dXJuIFNVQ0NFU1MKKyAgICAgICAgcmV0dXJuIEZBSUxVUkUK
KworY2xhc3MgQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKHNoZWxsLlNoZWxsQ29tbWFuZCwgQWRk
UmV2aWV3ZXJNaXhpbik6CisgICAgbmFtZSA9ICdhZGQtYXV0aG9yLXRvLWNvbW1pdC1tZXNzYWdl
JworICAgIGhhbHRPbkZhaWx1cmUgPSBUcnVlCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKipr
d2FyZ3MpOgorICAgICAgICBzdXBlcihBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLl9f
aW5pdF9fKGxvZ0Vudmlyb249RmFsc2UsIHRpbWVvdXQ9NjAsICoqa3dhcmdzKQogCiAgICAgZGVm
IHN0YXJ0KHNlbGYpOgotICAgICAgICBiYXNlX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1
Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0
UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRfQlJBTkNIKQorICAgICAgICBiYXNl
X3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIGYnb3JpZ2luL3tERUZB
VUxUX0JSQU5DSH0nKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1
Yi5oZWFkLnJlZicsICdIRUFEJykKIAogICAgICAgICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2Nh
bHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAgKiA2MCkpCiAgICAgICAgIHRpbWVzdGFtcCA9
IGYne2ludCh0aW1lLnRpbWUoKSl9IHtnbXRvZmZzZXR9JwogCi0gICAgICAgIG5hbWUsIGVtYWls
ID0gc2VsZi5hdXRob3IoKQotICAgICAgICBwYXRjaF9ieSA9IGYiUGF0Y2ggYnkge25hbWV9IDx7
ZW1haWx9PiBvbiB7ZGF0ZS50b2RheSgpLnN0cmZ0aW1lKCclWS0lbS0lZCcpfSIKKyAgICAgICAg
YXV0aG9yID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykKKyAgICAgICAgcGF0Y2hfYnkgPSBm
IlBhdGNoIGJ5IHthdXRob3J9IG9uIHtkYXRlLnRvZGF5KCkuc3RyZnRpbWUoJyVZLSVtLSVkJyl9
IgogCiAgICAgICAgIHNlbGYuY29tbWFuZCA9IFsKICAgICAgICAgICAgICdnaXQnLCAnZmlsdGVy
LWJyYW5jaCcsICctZicsCkBAIC00OTEwLDE2ICs0OTg5LDEyIEBAIGNsYXNzIEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZShzaGVsbC5TaGVsbENvbW1hbmQsIEFkZFJldmlld2VyTWl4aW4pOgogICAg
ICAgICBpZiBzZWxmLnJlc3VsdHMgPT0gRkFJTFVSRToKICAgICAgICAgICAgIHJldHVybiB7J3N0
ZXAnOiAnRmFpbGVkIHRvIGFkZCBhdXRob3IgdG8gY29tbWl0IG1lc3NhZ2UnfQogICAgICAgICBl
bGlmIHNlbGYucmVzdWx0cyA9PSBTVUNDRVNTOgotICAgICAgICAgICAgbmFtZSwgXyA9IHNlbGYu
YXV0aG9yKCkKLSAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBmIkFkZGVkIHtuYW1lfSBhcyBh
dXRob3IifQorICAgICAgICAgICAgYXV0aG9yID0gc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJykK
KyAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBmIkFkZGVkIHthdXRob3J9IGFzIGF1dGhvciJ9
CiAgICAgICAgIHJldHVybiBzdXBlcihBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UsIHNlbGYpLmdl
dFJlc3VsdFN1bW1hcnkoKQogCiAgICAgZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAg
ICBpZiBub3Qgc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicpOgotICAgICAgICAgICAg
cmV0dXJuIEZhbHNlCi0KLSAgICAgICAgbmFtZSwgZW1haWwgPSBzZWxmLmF1dGhvcigpCi0gICAg
ICAgIHJldHVybiBuYW1lIGFuZCBlbWFpbAorICAgICAgICByZXR1cm4gc2VsZi5nZXRQcm9wZXJ0
eSgnYXV0aG9yJykKIAogICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0ZXApOgog
ICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkKQEAgLTQ5MzYsNiArNTAxMSw3
IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBTaGVs
bE1peGluKToKICAgICAgICAgJ1J1YmJlci1zdGFtcGVkIGJ5JywKICAgICAgICAgJ1J1YmJlciBz
dGFtcGVkIGJ5JywKICAgICApCisgICAgUkVfQ0hBTkdFTE9HID0gYnInXihcK1wrXCspXHMrKC4q
Q2hhbmdlTG9nLiopJwogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsICoqa3dhcmdzKToKICAgICAg
ICAgc3VwZXIoVmFsaWRhdGVDb21taXRNZXNzYWdlLCBzZWxmKS5fX2luaXRfXyhsb2dFbnZpcm9u
PUZhbHNlLCB0aW1lb3V0PTYwLCAqKmt3YXJncykKQEAgLTQ5NDQsMTIgKzUwMjAsMTkgQEAgY2xh
c3MgVmFsaWRhdGVDb21taXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4p
OgogICAgICAgICBzb3VyY2VzdGFtcCA9IHNlbGYuYnVpbGQuZ2V0U291cmNlU3RhbXAoc2VsZi5n
ZXRQcm9wZXJ0eSgnY29kZWJhc2UnLCAnJykpCiAgICAgICAgIGlmIHNvdXJjZXN0YW1wIGFuZCBz
b3VyY2VzdGFtcC5jaGFuZ2VzOgogICAgICAgICAgICAgcmV0dXJuIHNvdXJjZXN0YW1wLmNoYW5n
ZXNbMF0uZmlsZXMKKyAgICAgICAgaWYgc291cmNlc3RhbXAgYW5kIHNvdXJjZXN0YW1wLnBhdGNo
OgorICAgICAgICAgICAgZmlsZXMgPSBbXQorICAgICAgICAgICAgZm9yIGxpbmUgaW4gc291cmNl
c3RhbXAucGF0Y2hbMV0uc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgICAgIG1hdGNoID0gcmUu
c2VhcmNoKHNlbGYuUkVfQ0hBTkdFTE9HLCBsaW5lKQorICAgICAgICAgICAgICAgIGlmIG1hdGNo
OgorICAgICAgICAgICAgICAgICAgICBmaWxlcy5hcHBlbmQobWF0Y2guZ3JvdXAoMSkpCisgICAg
ICAgICAgICByZXR1cm4gZmlsZXMKICAgICAgICAgcmV0dXJuIFtdCiAKICAgICBAZGVmZXIuaW5s
aW5lQ2FsbGJhY2tzCiAgICAgZGVmIHJ1bihzZWxmLCBCdWZmZXJMb2dPYnNlcnZlckNsYXNzPWxv
Z29ic2VydmVyLkJ1ZmZlckxvZ09ic2VydmVyKToKLSAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdl
dFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYnLCBERUZBVUxUX0JSQU5DSCkKLSAgICAgICAgaGVh
ZF9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCBERUZBVUxUX0JSQU5D
SCkKKyAgICAgICAgYmFzZV9yZWYgPSBzZWxmLmdldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYn
LCBmJ29yaWdpbi97REVGQVVMVF9CUkFOQ0h9JykKKyAgICAgICAgaGVhZF9yZWYgPSBzZWxmLmdl
dFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYnLCAnSEVBRCcpCiAKICAgICAgICAgc2VsZi5jb21t
YW5kcyA9IFtdCiAgICAgICAgIGNvbW1hbmRzID0gWwpAQCAtNDk4Nyw3ICs1MDcwLDcgQEAgY2xh
c3MgVmFsaWRhdGVDb21taXRNZXNzYWdlKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4aW4p
OgogICAgICAgICBpZiByYyA9PSBGQUlMVVJFOgogICAgICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0
eSgnY29tbWVudF90ZXh0JywgZiJ7c2VsZi5zdW1tYXJ5fSwgYmxvY2tpbmcgUFIgI3tzZWxmLmdl
dFByb3BlcnR5KCdnaXRodWIubnVtYmVyJyl9IikKICAgICAgICAgICAgIHNlbGYuc2V0UHJvcGVy
dHkoJ2J1aWxkX2ZpbmlzaF9zdW1tYXJ5JywgJ0NvbW1pdCBtZXNzYWdlIHZhbGlkYXRpb24gZmFp
bGVkJykKLSAgICAgICAgICAgIHNlbGYuYnVpbGQuYWRkU3RlcHNBZnRlckN1cnJlbnRTdGVwKFtM
ZWF2ZUNvbW1lbnQoKSwgIEJsb2NrUHVsbFJlcXVlc3QoKV0pCisgICAgICAgICAgICBzZWxmLmJ1
aWxkLmFkZFN0ZXBzQWZ0ZXJDdXJyZW50U3RlcChbTGVhdmVDb21tZW50KCksIFNldENvbW1pdFF1
ZXVlTWludXNGbGFnT25QYXRjaCgpLCBCbG9ja1B1bGxSZXF1ZXN0KCldKQogICAgICAgICByZXR1
cm4gcmMKIAogICAgIGRlZiBnZXRSZXN1bHRTdW1tYXJ5KHNlbGYpOgpAQCAtNDk5NSwxMiArNTA3
OCw2IEBAIGNsYXNzIFZhbGlkYXRlQ29tbWl0TWVzc2FnZShzdGVwcy5TaGVsbFNlcXVlbmNlLCBT
aGVsbE1peGluKToKICAgICAgICAgICAgIHJldHVybiB7J3N0ZXAnOiBzZWxmLnN1bW1hcnl9CiAg
ICAgICAgIHJldHVybiBzdXBlcihWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UsIHNlbGYpLmdldFJlc3Vs
dFN1bW1hcnkoKQogCi0gICAgZGVmIGRvU3RlcElmKHNlbGYsIHN0ZXApOgotICAgICAgICByZXR1
cm4gc2VsZi5nZXRQcm9wZXJ0eSgnZ2l0aHViLm51bWJlcicpCi0KLSAgICBkZWYgaGlkZVN0ZXBJ
ZihzZWxmLCByZXN1bHRzLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIG5vdCBzZWxmLmRvU3RlcElm
KHN0ZXApCi0KIAogY2xhc3MgQ2Fub25pY2FsaXplKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxs
TWl4aW4pOgogICAgIG5hbWUgPSAnY2Fub25pY2FsaXplLWNvbW1pdCcKQEAgLTUwMTYsMTUgKzUw
OTMsMTQgQEAgY2xhc3MgQ2Fub25pY2FsaXplKHN0ZXBzLlNoZWxsU2VxdWVuY2UsIFNoZWxsTWl4
aW4pOgogICAgICAgICBzZWxmLmNvbW1hbmRzID0gW10KIAogICAgICAgICBiYXNlX3JlZiA9IHNl
bGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsIERFRkFVTFRfQlJBTkNIKQotICAgICAg
ICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsIERFRkFVTFRf
QlJBTkNIKQorICAgICAgICBoZWFkX3JlZiA9IHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFk
LnJlZicsIE5vbmUpCiAKICAgICAgICAgY29tbWFuZHMgPSBbXQogICAgICAgICBpZiBzZWxmLnJl
YmFzZV9lbmFibGVkOgotICAgICAgICAgICAgY29tbWFuZHMgPSBbCi0gICAgICAgICAgICAgICAg
WydnaXQnLCAncHVsbCcsICdvcmlnaW4nLCBiYXNlX3JlZiwgJy0tcmViYXNlJ10sCi0gICAgICAg
ICAgICAgICAgWydnaXQnLCAnYnJhbmNoJywgJy1mJywgYmFzZV9yZWYsIGhlYWRfcmVmXSwKLSAg
ICAgICAgICAgICAgICBbJ2dpdCcsICdjaGVja291dCcsIGJhc2VfcmVmXSwKLSAgICAgICAgICAg
IF0KKyAgICAgICAgICAgIGNvbW1hbmRzID0gW1snZ2l0JywgJ3B1bGwnLCAnb3JpZ2luJywgYmFz
ZV9yZWYsICctLXJlYmFzZSddXQorICAgICAgICAgICAgaWYgaGVhZF9yZWY6CisgICAgICAgICAg
ICAgICAgY29tbWFuZHMgKz0gW1snZ2l0JywgJ2JyYW5jaCcsICctZicsIGJhc2VfcmVmLCBoZWFk
X3JlZl1dCisgICAgICAgICAgICBjb21tYW5kcyArPSBbWydnaXQnLCAnY2hlY2tvdXQnLCBiYXNl
X3JlZl1dCiAgICAgICAgIGNvbW1hbmRzLmFwcGVuZChbJ3B5dGhvbjMnLCAnVG9vbHMvU2NyaXB0
cy9naXQtd2Via2l0JywgJ2Nhbm9uaWNhbGl6ZScsICctbicsICcxJyBpZiBzZWxmLnJlYmFzZV9l
bmFibGVkIGVsc2UgJzMnXSkKIAogICAgICAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kczoKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkgYi9U
b29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CmluZGV4IDQyZjQ0YzYz
NTlhMS4uOGRmYmQwZmY4NzE2IDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxk
L3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNf
dW5pdHRlc3QucHkKQEAgLTQ1LDkgKzQ1LDkgQEAgaW1wb3J0IHNlbmRfZW1haWwKIGZyb20gc3Rl
cHMgaW1wb3J0IChBZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UsIEFkZFJldmlld2VyVG9Db21taXRN
ZXNzYWdlLCBBbmFseXplQVBJVGVzdHNSZXN1bHRzLCBBbmFseXplQ29tcGlsZVdlYktpdFJlc3Vs
dHMsCiAgICAgICAgICAgICAgICAgICAgQW5hbHl6ZUpTQ1Rlc3RzUmVzdWx0cywgQW5hbHl6ZUxh
eW91dFRlc3RzUmVzdWx0cywgQXBwbHlQYXRjaCwgQXBwbHlXYXRjaExpc3QsIEFyY2hpdmVCdWls
dFByb2R1Y3QsIEFyY2hpdmVUZXN0UmVzdWx0cywgQnVnemlsbGFNaXhpbiwKICAgICAgICAgICAg
ICAgICAgICBDYW5vbmljYWxpemUsIENoZWNrT3V0UHVsbFJlcXVlc3QsIENoZWNrT3V0U291cmNl
LCBDaGVja091dFNwZWNpZmljUmV2aXNpb24sIENoZWNrQ2hhbmdlUmVsZXZhbmNlLCBDaGVja1Bh
dGNoU3RhdHVzT25FV1NRdWV1ZXMsIENoZWNrU3R5bGUsCi0gICAgICAgICAgICAgICAgICAgQ2xl
YW5CdWlsZCwgQ2xlYW5VcEdpdEluZGV4TG9jaywgQ2xlYW5HaXRSZXBvLCBDbGVhbldvcmtpbmdE
aXJlY3RvcnksIENsb3NlUHVsbFJlcXVlc3QsIENvbXBpbGVKU0MsIENvbXBpbGVKU0NXaXRob3V0
Q2hhbmdlLAorICAgICAgICAgICAgICAgICAgIENsZWFuQnVpbGQsIENsZWFuVXBHaXRJbmRleExv
Y2ssIENsZWFuR2l0UmVwbywgQ2xlYW5Xb3JraW5nRGlyZWN0b3J5LCBDbG9zZVB1bGxSZXF1ZXN0
LCBDb21waWxlSlNDLCBDb21taXRQYXRjaCwgQ29tcGlsZUpTQ1dpdGhvdXRDaGFuZ2UsCiAgICAg
ICAgICAgICAgICAgICAgQ29tcGlsZVdlYktpdCwgQ29tcGlsZVdlYktpdFdpdGhvdXRDaGFuZ2Us
IENvbmZpZ3VyZUJ1aWxkLCBDb25maWd1cmVCdWlsZCwgQ29udHJpYnV0b3JzLCBDcmVhdGVMb2Nh
bEdJVENvbW1pdCwKLSAgICAgICAgICAgICAgICAgICBEZXRlcm1pbmVMYW5kZWRJZGVudGlmaWVy
LCBEb3dubG9hZEJ1aWx0UHJvZHVjdCwgRG93bmxvYWRCdWlsdFByb2R1Y3RGcm9tTWFzdGVyLCBF
V1NfQlVJTERfSE9TVE5BTUUsIEV4dHJhY3RCdWlsdFByb2R1Y3QsIEV4dHJhY3RUZXN0UmVzdWx0
cywKKyAgICAgICAgICAgICAgICAgICBEZXRlcm1pbmVBdXRob3IsIERldGVybWluZUxhbmRlZElk
ZW50aWZpZXIsIERvd25sb2FkQnVpbHRQcm9kdWN0LCBEb3dubG9hZEJ1aWx0UHJvZHVjdEZyb21N
YXN0ZXIsIEVXU19CVUlMRF9IT1NUTkFNRSwgRXh0cmFjdEJ1aWx0UHJvZHVjdCwgRXh0cmFjdFRl
c3RSZXN1bHRzLAogICAgICAgICAgICAgICAgICAgIEZldGNoQnJhbmNoZXMsIEZpbmRNb2RpZmll
ZENoYW5nZUxvZ3MsIEZpbmRNb2RpZmllZExheW91dFRlc3RzLCBHaXRIdWIsIEdpdFJlc2V0SGFy
ZCwgR2l0U3ZuRmV0Y2gsCiAgICAgICAgICAgICAgICAgICAgSW5zdGFsbEJ1aWx0UHJvZHVjdCwg
SW5zdGFsbEd0a0RlcGVuZGVuY2llcywgSW5zdGFsbFdwZURlcGVuZGVuY2llcywKICAgICAgICAg
ICAgICAgICAgICBLaWxsT2xkUHJvY2Vzc2VzLCBQcmludENvbmZpZ3VyYXRpb24sIFB1c2hDb21t
aXRUb1dlYktpdFJlcG8sIFB1c2hQdWxsUmVxdWVzdEJyYW5jaCwgUmVSdW5BUElUZXN0cywgUmVS
dW5XZWJLaXRQZXJsVGVzdHMsCkBAIC01ODI3LDEwICs1ODI3LDE4IEBAIGNsYXNzIFRlc3RWYWxp
ZGF0ZVNxdWFzaGVkKEJ1aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6
CiAgICAgZGVmIHRlYXJEb3duKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1
aWxkU3RlcCgpCiAKLSAgICBkZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNlbGYpOgorICAgIGRlZiB0
ZXN0X3BhdGNoKHNlbGYpOgogICAgICAgICBzZWxmLnNldHVwU3RlcChWYWxpZGF0ZVNxdWFzaGVk
KCkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJzEyMzQnKQotICAgICAg
ICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0cmluZz0nZmluaXNo
ZWQgKHNraXBwZWQpJykKKyAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKKyAgICAg
ICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsn
Z2l0JywgJ2xvZycsICctLW9uZWxpbmUnLCAnSEVBRCcsICdeb3JpZ2luL21haW4nLCAnLS1tYXgt
Y291bnQ9MiddLAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKyAwCisg
ICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9J2UxZWIyNDYwMzQ5
MyAoSEVBRCAtPiBlbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCkgRmlyc3QgbGluZSBvZiBjb21taXRc
bicpLAorICAgICAgICApCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U1VDQ0VT
Uywgc3RhdGVfc3RyaW5nPSdWZXJpZmllZCBicmFuY2ggaXMgc3F1YXNoZWQnKQogICAgICAgICBy
ZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRlZiB0ZXN0X3N1Y2Nlc3Moc2VsZik6CkBAIC01
OTg5LDkgKzU5OTcsOCBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxk
U3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlYXJEb3du
KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKLSAgICBk
ZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNlbGYpOgorICAgIGRlZiB0ZXN0X3NraXBwZWRfbm9fYXV0
aG9yKHNlbGYpOgogICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRBdXRob3JUb0NvbW1pdE1lc3Nh
Z2UoKSkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcpCiAgICAg
ICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwgc3RhdGVfc3RyaW5nPSdmaW5p
c2hlZCAoc2tpcHBlZCknKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIApAQCAtNjAw
MiwxMSArNjAwOSwxMCBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxk
U3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHRpbWUudGlt
ZSA9IGxhbWJkYTogZml4ZWRfdGltZQogCiAgICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1dGhv
clRvQ29tbWl0TWVzc2FnZSgpKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIubnVt
YmVyJywgJzEyMzQnKQogICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5yZWYn
LCAnbWFpbicpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5oZWFkLnJlZicsICdl
bmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcpCi0gICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1
Yi5oZWFkLnVzZXIubG9naW4nLCAnd2Via2l0LXJldmlld2VyJykKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnb3duZXJzJywgWyd3ZWJraXQtY29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2F1dGhvcicsICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNv
bT4nKQogICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhw
ZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52
aXJvbj1GYWxzZSwKQEAgLTYwMjEsMzYgKzYwMjcsMzUgQEAgY2xhc3MgVGVzdEFkZEF1dGhvclRv
Q29tbWl0TWVzc2FnZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAgICAgKyAwCiAgICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8n
LCBzdGRvdXQ9IlJlZiAncmVmcy9oZWFkcy9lbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcgd2FzIHJl
d3JpdHRlblxuIiksCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3Vs
dD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBSZXZpZXdlciBhcyBhdXRob3In
KQorICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNVQ0NFU1MsIHN0YXRlX3N0cmlu
Zz0nQWRkZWQgV2ViS2l0IFJldmlld2VyIDxyZXZpZXdlckBhcHBsZS5jb20+IGFzIGF1dGhvcicp
CiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc3VjY2Vzc19m
YWxsYmFjayhzZWxmKToKKyAgICBkZWYgdGVzdF9zdWNjZXNzX3BhdGNoKHNlbGYpOgogICAgICAg
ICBnbXRvZmZzZXQgPSBpbnQodGltZS5sb2NhbHRpbWUoKS50bV9nbXRvZmYgKiAxMDAgLyAoNjAg
KiA2MCkpCiAgICAgICAgIGZpeGVkX3RpbWUgPSBpbnQodGltZS50aW1lKCkpCiAgICAgICAgIHRp
bWVzdGFtcCA9IGYne2ludCh0aW1lLnRpbWUoKSl9IHtnbXRvZmZzZXR9JwogICAgICAgICB0aW1l
LnRpbWUgPSBsYW1iZGE6IGZpeGVkX3RpbWUKIAogICAgICAgICBzZWxmLnNldHVwU3RlcChBZGRB
dXRob3JUb0NvbW1pdE1lc3NhZ2UoKSkKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHVi
Lm51bWJlcicsICcxMjM0JykKLSAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmJhc2Uu
cmVmJywgJ21haW4nKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuaGVhZC5yZWYn
LCAnZW5nL3B1bGwtcmVxdWVzdC1icmFuY2gnKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdn
aXRodWIuaGVhZC51c2VyLmxvZ2luJywgJ3VucmVnaXN0ZXJlZC1hdXRob3InKQotICAgICAgICBz
ZWxmLnNldFByb3BlcnR5KCdvd25lcnMnLCBbJ3dlYmtpdC1jb21taXQtcXVldWUnXSkKKyAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgnYXV0aG9yJywgJ1dlYktpdCBSZXZpZXdlciA8cmV2aWV3ZXJA
YXBwbGUuY29tPicpCiAgICAgICAgIHNlbGYuZXhwZWN0UmVtb3RlQ29tbWFuZHMoCiAgICAgICAg
ICAgICBFeHBlY3RTaGVsbCh3b3JrZGlyPSd3a2RpcicsCiAgICAgICAgICAgICAgICAgICAgICAg
ICBsb2dFbnZpcm9uPUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgZW52PXNlbGYuRU5W
LAotICAgICAgICAgICAgICAgICAgICAgICAgdGltZW91dD02MCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVudj1kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdJVF9DT01NSVRU
RVJfRU1BSUw9J2V3c0B3ZWJraXQub3JnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
SVRfQ09NTUlUVEVSX05BTUU9J0VXUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgRklM
VEVSX0JSQU5DSF9TUVVFTENIX1dBUk5JTkc9JzEnLAorICAgICAgICAgICAgICAgICAgICAgICAg
KSwgdGltZW91dD02MCwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQ9WwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICdnaXQnLCAnZmlsdGVyLWJyYW5jaCcsICctZicsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJy0tZW52LWZpbHRlcicsIGYiR0lUX0FVVEhPUl9EQVRF
PSd7dGltZXN0YW1wfSc7R0lUX0NPTU1JVFRFUl9EQVRFPSd7dGltZXN0YW1wfSciLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICctLW1zZy1maWx0ZXInLCBmJ3NlZCAiMSwvXiQvIHMvXiQv
XFxuUGF0Y2ggYnkgV2ViS2l0IENvbW1pdHRlciA8Y29tbWl0dGVyQHdlYmtpdC5vcmc+IG9uIHtk
YXRlLnRvZGF5KCkuc3RyZnRpbWUoIiVZLSVtLSVkIil9L2ciJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnZW5nL3B1bGwtcmVxdWVzdC1icmFuY2guLi5tYWluJywKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnLS1tc2ctZmlsdGVyJywgZidzZWQgIjEsL14kLyBzL14kL1xcblBh
dGNoIGJ5IFdlYktpdCBSZXZpZXdlciA8cmV2aWV3ZXJAYXBwbGUuY29tPiBvbiB7ZGF0ZS50b2Rh
eSgpLnN0cmZ0aW1lKCIlWS0lbS0lZCIpfS9nIicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0hFQUQuLi5vcmlnaW4vbWFpbicsCiAgICAgICAgICAgICAgICAgICAgICAgICBdKQogICAg
ICAgICAgICAgKyAwCi0gICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRv
dXQ9IlJlZiAncmVmcy9oZWFkcy9lbmcvcHVsbC1yZXF1ZXN0LWJyYW5jaCcgd2FzIHJld3JpdHRl
blxuIiksCisgICAgICAgICAgICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9IlJl
ZiAnbWFpbicgd2FzIHJld3JpdHRlblxuIiksCiAgICAgICAgICkKLSAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBDb21t
aXR0ZXIgYXMgYXV0aG9yJykKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUND
RVNTLCBzdGF0ZV9zdHJpbmc9J0FkZGVkIFdlYktpdCBSZXZpZXdlciA8cmV2aWV3ZXJAYXBwbGUu
Y29tPiBhcyBhdXRob3InKQogICAgICAgICByZXR1cm4gc2VsZi5ydW5TdGVwKCkKIAogICAgIGRl
ZiB0ZXN0X2ZhaWx1cmUoc2VsZik6CkBAIC02MDYwLDExICs2MDY1LDEwIEBAIGNsYXNzIFRlc3RB
ZGRBdXRob3JUb0NvbW1pdE1lc3NhZ2UoQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0ZXN0
LlRlc3RDYXNlKToKICAgICAgICAgdGltZS50aW1lID0gbGFtYmRhOiBmaXhlZF90aW1lCiAKICAg
ICAgICAgc2VsZi5zZXR1cFN0ZXAoQWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKCkpCi0gICAgICAg
IHNlbGYuc2V0UHJvcGVydHkoJ2dpdGh1Yi5udW1iZXInLCAnMTIzNCcpCiAgICAgICAgIHNlbGYu
c2V0UHJvcGVydHkoJ2dpdGh1Yi5iYXNlLnJlZicsICdtYWluJykKICAgICAgICAgc2VsZi5zZXRQ
cm9wZXJ0eSgnZ2l0aHViLmhlYWQucmVmJywgJ2VuZy9wdWxsLXJlcXVlc3QtYnJhbmNoJykKLSAg
ICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnZ2l0aHViLmhlYWQudXNlci5sb2dpbicsICd3ZWJraXQt
Y29tbWl0LXF1ZXVlJykKICAgICAgICAgc2VsZi5zZXRQcm9wZXJ0eSgnb3duZXJzJywgWyd3ZWJr
aXQtY29tbWl0LXF1ZXVlJ10pCisgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ2F1dGhvcicsICdX
ZWJLaXQgQ29tbWl0dGVyIDxjb21taXR0ZXJAd2Via2l0Lm9yZz4nKQogICAgICAgICBzZWxmLmV4
cGVjdFJlbW90ZUNvbW1hbmRzKAogICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tk
aXInLAogICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKQEAgLTYwODIs
MTMgKzYwODYsNiBAQCBjbGFzcyBUZXN0QWRkQXV0aG9yVG9Db21taXRNZXNzYWdlKEJ1aWxkU3Rl
cE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHNlbGYuZXhwZWN0
T3V0Y29tZShyZXN1bHQ9RkFJTFVSRSwgc3RhdGVfc3RyaW5nPSdGYWlsZWQgdG8gYWRkIGF1dGhv
ciB0byBjb21taXQgbWVzc2FnZScpCiAgICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCi0g
ICAgZGVmIHRlc3Rfbm9fb3duZXIoc2VsZik6Ci0gICAgICAgIHNlbGYuc2V0dXBTdGVwKEFkZEF1
dGhvclRvQ29tbWl0TWVzc2FnZSgpKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIu
bnVtYmVyJywgJzEyMzQnKQotICAgICAgICBzZWxmLnNldFByb3BlcnR5KCdnaXRodWIuYmFzZS5y
ZWYnLCAnbWFpbicpCi0gICAgICAgIHNlbGYuZXhwZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwg
c3RhdGVfc3RyaW5nPSdmaW5pc2hlZCAoc2tpcHBlZCknKQotICAgICAgICByZXR1cm4gc2VsZi5y
dW5TdGVwKCkKLQogCiBjbGFzcyBUZXN0VmFsaWRhdGVDb21taXRNZXNzYWdlKEJ1aWxkU3RlcE1p
eGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHNldFVwKHNlbGYpOgpA
QCAtNjA5OCwxMCArNjA5NSwyMiBAQCBjbGFzcyBUZXN0VmFsaWRhdGVDb21taXRNZXNzYWdlKEJ1
aWxkU3RlcE1peGluQWRkaXRpb25zLCB1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlYXJE
b3duKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCiAKLSAg
ICBkZWYgdGVzdF9za2lwcGVkX3BhdGNoKHNlbGYpOgorICAgIGRlZiB0ZXN0X3BhdGNoKHNlbGYp
OgogICAgICAgICBzZWxmLnNldHVwU3RlcChWYWxpZGF0ZUNvbW1pdE1lc3NhZ2UoKSkKICAgICAg
ICAgc2VsZi5zZXRQcm9wZXJ0eSgncGF0Y2hfaWQnLCAnMTIzNCcpCi0gICAgICAgIHNlbGYuZXhw
ZWN0T3V0Y29tZShyZXN1bHQ9U0tJUFBFRCwgc3RhdGVfc3RyaW5nPSdmaW5pc2hlZCAoc2tpcHBl
ZCknKQorICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAorICAgICAgICAgICAgRXhw
ZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9nRW52
aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcsICctYycsICJnaXQgbG9nIEhFQUQg
Xm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAnT08qUFAqUyEnICYmIGVjaG8gJ0NvbW1pdCBtZXNzYWdl
IGNvbnRhaW5zIChPT1BTISknIHx8IHRlc3QgJD8gLWVxIDEiXSkKKyAgICAgICAgICAgICsgMCwg
RXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgbG9n
RW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVvdXQ9NjAsCisgICAg
ICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcsICctYycsICJnaXQgbG9nIEhF
QUQgXm9yaWdpbi9tYWluIHwgZ3JlcCAtcSAnXFwoUmV2aWV3ZWQgYnlcXHxVbnJldmlld2VkXFx8
UnViYmVyLXN0YW1wZWQgYnlcXHxSdWJiZXIgc3RhbXBlZCBieVxcKScgfHwgZWNobyAnTm8gcmV2
aWV3ZXIgaW5mb3JtYXRpb24gaW4gY29tbWl0IG1lc3NhZ2UnIl0pCisgICAgICAgICAgICArIDAK
KyAgICAgICAgICAgICsgRXhwZWN0U2hlbGwubG9nKCdzdGRpbycsIHN0ZG91dD0nJyksCisgICAg
ICAgICkKKyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9z
dHJpbmc9J1ZhbGlkYXRlZCBjb21taXQgbWVzc2FnZScpCiAgICAgICAgIHJldHVybiBzZWxmLnJ1
blN0ZXAoKQogCiAgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxmKToKQEAgLTY2MTYsNSArNjYyNSw0
NCBAQCBjbGFzcyBUZXN0UmVzZXRHaXRTdm4oQnVpbGRTdGVwTWl4aW5BZGRpdGlvbnMsIHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcmV0dXJuIHNlbGYucnVuU3RlcCgpCiAKIAorY2xhc3Mg
VGVzdERldGVybWluZUF1dGhvcihCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5pdHRlc3QuVGVz
dENhc2UpOgorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5sb25nTWVzc2FnZSA9
IFRydWUKKyAgICAgICAgcmV0dXJuIHNlbGYuc2V0VXBCdWlsZFN0ZXAoKQorCisgICAgZGVmIHRl
YXJEb3duKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50ZWFyRG93bkJ1aWxkU3RlcCgpCisK
KyAgICBkZWYgdGVzdF9zdWNjZXNzKHNlbGYpOgorICAgICAgICBzZWxmLnNldHVwU3RlcChEZXRl
cm1pbmVBdXRob3IoKSkKKyAgICAgICAgc2VsZi5leHBlY3RSZW1vdGVDb21tYW5kcygKKyAgICAg
ICAgICAgIEV4cGVjdFNoZWxsKHdvcmtkaXI9J3drZGlyJywKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ0Vudmlyb249RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICB0aW1lb3V0PTYw
LAorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZD1bJy9iaW4vc2gnLCAnLWMnLCAiZ2l0
IGxvZyAtMSB8IGdyZXAgJ15BdXRob3I6JyJdKQorICAgICAgICAgICAgKyAwCisgICAgICAgICAg
ICArIEV4cGVjdFNoZWxsLmxvZygnc3RkaW8nLCBzdGRvdXQ9J0F1dGhvcjogV2ViS2l0IFJldmll
d2VyIDxyZXZpZXdlckBhcHBsZS5jb20+JyksCisgICAgICAgICkKKyAgICAgICAgc2VsZi5leHBl
Y3RPdXRjb21lKHJlc3VsdD1TVUNDRVNTLCBzdGF0ZV9zdHJpbmc9J0F1dGhvciBpcyBXZWJLaXQg
UmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQorICAgICAgICByYyA9IHNlbGYucnVuU3Rl
cCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5nZXRQcm9wZXJ0eSgnYXV0aG9yJyks
ICdXZWJLaXQgUmV2aWV3ZXIgPHJldmlld2VyQGFwcGxlLmNvbT4nKQorICAgICAgICByZXR1cm4g
cmMKKworICAgIGRlZiB0ZXN0X2ZhaWx1cmUoc2VsZik6CisgICAgICAgIHNlbGYuc2V0dXBTdGVw
KERldGVybWluZUF1dGhvcigpKQorICAgICAgICBzZWxmLmV4cGVjdFJlbW90ZUNvbW1hbmRzKAor
ICAgICAgICAgICAgRXhwZWN0U2hlbGwod29ya2Rpcj0nd2tkaXInLAorICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVv
dXQ9NjAsCisgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kPVsnL2Jpbi9zaCcsICctYycs
ICJnaXQgbG9nIC0xIHwgZ3JlcCAnXkF1dGhvcjonIl0pCisgICAgICAgICAgICArIDEKKyAgICAg
ICAgICAgICsgRXhwZWN0U2hlbGwubG9nKCdzdGRpbycsIHN0ZG91dD0nJyksCisgICAgICAgICkK
KyAgICAgICAgc2VsZi5leHBlY3RPdXRjb21lKHJlc3VsdD1GQUlMVVJFLCBzdGF0ZV9zdHJpbmc9
J0ZhaWxlZCB0byBmaW5kIGF1dGhvcicpCisgICAgICAgIHJjID0gc2VsZi5ydW5TdGVwKCkKKyAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmdldFByb3BlcnR5KCdhdXRob3InKSwgTm9uZSkK
KyAgICAgICAgcmV0dXJuIHJjCisKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1
bml0dGVzdC5tYWluKCkKLS0gCjIuMzAuMSAoQXBwbGUgR2l0LTEzMCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459508</attachid>
            <date>2022-05-17 11:01:22 -0700</date>
            <delta_ts>2022-05-17 13:12:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-240461-20220517110122.patch</filename>
            <type>text/plain</type>
            <size>2881</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">RnJvbSBlZGZjODc2ZGZlYmY3NzJiNTI3NDFiMDBiMDhiZDU0Zjc0MDExMDM1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBCZWRhcmQgPGpiZWRhcmRAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDE3IE1heSAyMDIyIDEwOjU3OjIwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0Nv
bW1pdC1RdWV1ZV0gRm9yYmlkIENoYW5nZUxvZyBtb2RpZmljYXRpb24gKEZvbGxvdy11cCBmaXgp
CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwNDYxIDxyZGFyOi8v
OTMzNTE3ODM+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClJ1biBDYW5vbmljYWxpemUg
b24gY29tbWl0dGVkIHBhdGNoZXMuCgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMu
cHk6CihDYW5vbmljYWxpemUuZG9TdGVwSWYpOiBEZWxldGVkLgooQ2Fub25pY2FsaXplLmhpZGVT
dGVwSWYpOiBEZWxldGVkLgoqIFRvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRl
c3QucHk6Ci0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwcy5weSAgICAgICAgICB8
ICA2IC0tLS0tLQogVG9vbHMvQ0lTdXBwb3J0L2V3cy1idWlsZC9zdGVwc191bml0dGVzdC5weSB8
IDIzICsrKysrKysrKysrKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAyMSBpbnNlcnRpb25z
KCspLCA4IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVp
bGQvc3RlcHMucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzLnB5CmluZGV4IDc2
ZWFmNjNlZWM3Zi4uOGY2M2FlODYyMDkyIDEwMDY0NAotLS0gYS9Ub29scy9DSVN1cHBvcnQvZXdz
LWJ1aWxkL3N0ZXBzLnB5CisrKyBiL1Rvb2xzL0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHMucHkK
QEAgLTUxMTYsMTIgKzUxMTYsNiBAQCBjbGFzcyBDYW5vbmljYWxpemUoc3RlcHMuU2hlbGxTZXF1
ZW5jZSwgU2hlbGxNaXhpbik6CiAgICAgICAgICAgICByZXR1cm4geydzdGVwJzogZidGYWlsZWQg
dG8gY2Fub25pY2FsaXplIHtjb21taXRfcGx1cmFsaXplZH0nfQogICAgICAgICByZXR1cm4gc3Vw
ZXIoQ2Fub25pY2FsaXplLCBzZWxmKS5nZXRSZXN1bHRTdW1tYXJ5KCkKIAotICAgIGRlZiBkb1N0
ZXBJZihzZWxmLCBzdGVwKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0UHJvcGVydHkoJ2dpdGh1
Yi5udW1iZXInLCBGYWxzZSkKLQotICAgIGRlZiBoaWRlU3RlcElmKHNlbGYsIHJlc3VsdHMsIHN0
ZXApOgotICAgICAgICByZXR1cm4gbm90IHNlbGYuZG9TdGVwSWYoc3RlcCkKLQogCiBjbGFzcyBQ
dXNoUHVsbFJlcXVlc3RCcmFuY2goc2hlbGwuU2hlbGxDb21tYW5kKToKICAgICBuYW1lID0gJ3B1
c2gtcHVsbC1yZXF1ZXN0LWJyYW5jaCcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NJU3VwcG9ydC9ld3Mt
YnVpbGQvc3RlcHNfdW5pdHRlc3QucHkgYi9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBz
X3VuaXR0ZXN0LnB5CmluZGV4IDhkZmJkMGZmODcxNi4uMmEyZDBlYjA5MzY5IDEwMDY0NAotLS0g
YS9Ub29scy9DSVN1cHBvcnQvZXdzLWJ1aWxkL3N0ZXBzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xz
L0NJU3VwcG9ydC9ld3MtYnVpbGQvc3RlcHNfdW5pdHRlc3QucHkKQEAgLTYyMDYsMTAgKzYyMDYs
MjkgQEAgY2xhc3MgVGVzdENhbm9uaWNhbGl6ZShCdWlsZFN0ZXBNaXhpbkFkZGl0aW9ucywgdW5p
dHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZWFyRG93bihzZWxmKToKICAgICAgICAgcmV0dXJu
IHNlbGYudGVhckRvd25CdWlsZFN0ZXAoKQogCi0gICAgZGVmIHRlc3Rfc2tpcHBlZF9wYXRjaChz
ZWxmKToKKyAgICBkZWYgdGVzdF9wYXRjaChzZWxmKToKICAgICAgICAgc2VsZi5zZXR1cFN0ZXAo
Q2Fub25pY2FsaXplKCkpCiAgICAgICAgIHNlbGYuc2V0UHJvcGVydHkoJ3BhdGNoX2lkJywgJzEy
MzQnKQotICAgICAgICBzZWxmLmV4cGVjdE91dGNvbWUocmVzdWx0PVNLSVBQRUQsIHN0YXRlX3N0
cmluZz0nQ2Fub25pY2FsaXplIENvbW1pdCAoc2tpcHBlZCknKQorCisgICAgICAgIHNlbGYuZXhw
ZWN0UmVtb3RlQ29tbWFuZHMoCisgICAgICAgICAgICBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAg
ICAgICB3b3JrZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgdGltZW91dD0zMDAsCisgICAg
ICAgICAgICAgICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICBjb21tYW5kPVsn
Z2l0JywgJ3B1bGwnLCAnb3JpZ2luJywgJ21haW4nLCAnLS1yZWJhc2UnXSwKKyAgICAgICAgICAg
ICkgKyAwLCBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAgICAgICB3b3JrZGlyPSd3a2RpcicsCisg
ICAgICAgICAgICAgICAgdGltZW91dD0zMDAsCisgICAgICAgICAgICAgICAgbG9nRW52aXJvbj1G
YWxzZSwKKyAgICAgICAgICAgICAgICBjb21tYW5kPVsnZ2l0JywgJ2NoZWNrb3V0JywgJ21haW4n
XSwKKyAgICAgICAgICAgICkgKyAwLCBFeHBlY3RTaGVsbCgKKyAgICAgICAgICAgICAgICB3b3Jr
ZGlyPSd3a2RpcicsCisgICAgICAgICAgICAgICAgdGltZW91dD0zMDAsCisgICAgICAgICAgICAg
ICAgbG9nRW52aXJvbj1GYWxzZSwKKyAgICAgICAgICAgICAgICBjb21tYW5kPVsncHl0aG9uMycs
ICdUb29scy9TY3JpcHRzL2dpdC13ZWJraXQnLCAnY2Fub25pY2FsaXplJywgJy1uJywgJzEnXSwK
KyAgICAgICAgICAgICkgKyAwLAorICAgICAgICApCisgICAgICAgIHNlbGYuZXhwZWN0T3V0Y29t
ZShyZXN1bHQ9U1VDQ0VTUywgc3RhdGVfc3RyaW5nPSdDYW5vbmljYWxpemVkIGNvbW1pdCcpCiAg
ICAgICAgIHJldHVybiBzZWxmLnJ1blN0ZXAoKQogCiAgICAgZGVmIHRlc3Rfc3VjY2VzcyhzZWxm
KToKLS0gCjIuMzAuMSAoQXBwbGUgR2l0LTEzMCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>