<?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>213487</bug_id>
          
          <creation_ts>2020-06-22 13:41:51 -0700</creation_ts>
          <short_desc>run-javascriptcore-tests: Support Apple Silicon running x86 processes</short_desc>
          <delta_ts>2020-06-29 07:27:01 -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=213727</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>guijemont</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zhifei_fang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1665159</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-22 13:41:51 -0700</bug_when>
    <thetext>We should be able to run JavaScriptCore tests under Rosetta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665160</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-22 13:42:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/64606667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665163</commentid>
    <comment_count>2</comment_count>
      <attachid>402508</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-22 13:45:35 -0700</bug_when>
    <thetext>Created attachment 402508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665170</commentid>
    <comment_count>3</comment_count>
      <attachid>402508</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-22 13:54:57 -0700</bug_when>
    <thetext>Comment on attachment 402508
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:720
&gt; +        &quot;-j&quot;, jscPath($productDir), &quot;-o&quot;, $jscStressResultsDir, &quot;--arch&quot;, $archs);

as annoying as this is, to use `--arch`, you&apos;ll either need to make all our tests recognize arm64e separately, or introduce a new option.

&gt; Tools/Scripts/run-jsc-stress-tests:569
&gt; +        [&quot;/usr/bin/arch&quot;, &quot;-&quot; + $architecture,  pathToVM.to_s]

does this forward along all the CLI options properly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665184</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-22 14:30:01 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt; Comment on attachment 402508 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402508&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:720
&gt; &gt; +        &quot;-j&quot;, jscPath($productDir), &quot;-o&quot;, $jscStressResultsDir, &quot;--arch&quot;, $archs);
&gt; 
&gt; as annoying as this is, to use `--arch`, you&apos;ll either need to make all our
&gt; tests recognize arm64e separately, or introduce a new option.

I&apos;m not sure what the concern here is. All we were using --archs for before was enabling/disabling the JIT and determining if the platform has FTL enabled. This patch just passes the user specified architecture to `arch` if the request architecture doesn&apos;t match the output of uname.

&gt; 
&gt; &gt; Tools/Scripts/run-jsc-stress-tests:569
&gt; &gt; +        [&quot;/usr/bin/arch&quot;, &quot;-&quot; + $architecture,  pathToVM.to_s]
&gt; 
&gt; does this forward along all the CLI options properly?

As far as I can tell, yes. But a big part of the problem with run-jsc-stress-tests is that it&apos;s not clear all of the places that jsc is actually run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665244</commentid>
    <comment_count>5</comment_count>
      <attachid>402508</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-06-22 18:09:18 -0700</bug_when>
    <thetext>Comment on attachment 402508
Patch

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

&gt; Tools/Scripts/webkitdirs.pm:361
&gt; +    $nativeArchitecture = &quot;arm64e&quot; if ($nativeArchitecture =~ /^eperm/);

This should not be necessary. If you really need it, please send me a quick email to discuss.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665391</commentid>
    <comment_count>6</comment_count>
      <attachid>402561</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-23 08:28:05 -0700</bug_when>
    <thetext>Created attachment 402561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665459</commentid>
    <comment_count>7</comment_count>
      <attachid>402573</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-23 11:18:18 -0700</bug_when>
    <thetext>Created attachment 402573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666083</commentid>
    <comment_count>8</comment_count>
      <attachid>402747</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-25 10:29:57 -0700</bug_when>
    <thetext>Created attachment 402747
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666177</commentid>
    <comment_count>9</comment_count>
      <attachid>402747</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-06-25 12:53:29 -0700</bug_when>
    <thetext>Comment on attachment 402747
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:494
&gt; +    # Fallback is x86_64, which we replace with the native architecture if the native architecture is in the provided build
&gt; +    $archs = &quot;x86_64&quot;;
&gt; +    $archs = nativeArchitecture() if index($archsInBuild, nativeArchitecture()) != -1;

what are we trying to solve here? I feel like we should always default to native architecture unless one is specified

&gt; Tools/Scripts/run-jsc-stress-tests:571
&gt; +def vmCommand
&gt; +    if ($forceArchitecture)
&gt; +        [&quot;/usr/bin/arch&quot;, &quot;-&quot; + $forceArchitecture,  pathToVM.to_s]
&gt; +    else
&gt; +        [pathToVM.to_s]
&gt; +    end
&gt; +end

does this work if you tar up the tests and run via &quot;sh runscript&quot;? If not, maybe let&apos;s only allow this if we&apos;re running locally

&gt; Tools/Scripts/webkitdirs.pm:1056
&gt; +    return $nativeArchitecture;

can you assert we don&apos;t get arm64e here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666178</commentid>
    <comment_count>10</comment_count>
      <attachid>402747</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-25 12:59:50 -0700</bug_when>
    <thetext>Comment on attachment 402747
Patch

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

&gt;&gt; Tools/Scripts/run-javascriptcore-tests:494
&gt;&gt; +    $archs = nativeArchitecture() if index($archsInBuild, nativeArchitecture()) != -1;
&gt; 
&gt; what are we trying to solve here? I feel like we should always default to native architecture unless one is specified

Unless the build you were provided is only x86_64 and you&apos;re on Apple Silicon and provided no arguments. In that case, you ARE running x86_64, we don&apos;t want any reporting logic to say otherwise.

&gt;&gt; Tools/Scripts/webkitdirs.pm:1056
&gt;&gt; +    return $nativeArchitecture;
&gt; 
&gt; can you assert we don&apos;t get arm64e here?

Will actually be in determineNativeArchitecture, but sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666276</commentid>
    <comment_count>11</comment_count>
      <attachid>402828</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-25 16:37:46 -0700</bug_when>
    <thetext>Created attachment 402828
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666510</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-26 10:18:47 -0700</bug_when>
    <thetext>Committed r263569: &lt;https://trac.webkit.org/changeset/263569&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402828.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667057</commentid>
    <comment_count>13</comment_count>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2020-06-29 04:42:26 -0700</bug_when>
    <thetext>This patch breaks the $architecture variable for cross-compiling remote-running linux EWS/buildbots (currently that means the armv7 and mips pre-commit and post-commit bots), which tests rely on to be skipped, with comments like:

  //@ skip if $architecture == &quot;arm&quot;

Right now, I suspect we end up having $architecture==x86_64 in that case. I thought this could be worked around by using the --architecture option of run-javascriptcore-tests, but this is what I get with a cross-compiled arm build and passing &quot;--architecture arm&quot;:

arm not supported by the provided binary, which supports &apos;&apos; at /home/guijemont/dev/metrological/buildroot-jsc/rpi3-buildbot/build/jsconly-custom/Tools/Scripts/run-javascriptcore-tests line 490.
Command exited with non-zero status 29</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667074</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-29 06:41:47 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #13)
&gt; This patch breaks the $architecture variable for cross-compiling
&gt; remote-running linux EWS/buildbots (currently that means the armv7 and mips
&gt; pre-commit and post-commit bots), which tests rely on to be skipped, with
&gt; comments like:
&gt; 
&gt;   //@ skip if $architecture == &quot;arm&quot;
&gt; 
&gt; Right now, I suspect we end up having $architecture==x86_64 in that case. I
&gt; thought this could be worked around by using the --architecture option of
&gt; run-javascriptcore-tests, but this is what I get with a cross-compiled arm
&gt; build and passing &quot;--architecture arm&quot;:
&gt; 
&gt; arm not supported by the provided binary, which supports &apos;&apos; at
&gt; /home/guijemont/dev/metrological/buildroot-jsc/rpi3-buildbot/build/jsconly-
&gt; custom/Tools/Scripts/run-javascriptcore-tests line 490.
&gt; Command exited with non-zero status 29

I think the quickest way to resolve this is going to be to fix nativeArchitecture() so that it picks up the native architecture of the remotely targeted machine.

The assert isn&apos;t hard to fix, but if we change the assert, we need to resolve the use of arch, which would bring us back to. nativeArchitecture().

Which options trigger the remote targeting?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667075</commentid>
    <comment_count>15</comment_count>
      <attachid>402828</attachid>
    <who name="Guillaume Emont">guijemont</who>
    <bug_when>2020-06-29 07:05:28 -0700</bug_when>
    <thetext>Comment on attachment 402828
Patch

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

&gt; Tools/Scripts/run-javascriptcore-tests:494
&gt; +    # Fallback is x86_64, which we replace with the native architecture if the native architecture is in the provided build
&gt; +    $archs = &quot;x86_64&quot;;
&gt; +    $archs = nativeArchitecture() if index($archsInBuild, nativeArchitecture()) != -1;

This always sets $archs to x86_64 on our cross-compiling bots that run tests on a remote device of a different architecture.

&gt; Tools/Scripts/run-javascriptcore-tests:733
&gt; +        &quot;-j&quot;, jscPath($productDir), &quot;-o&quot;, $jscStressResultsDir, &quot;--arch&quot;, $archs);

On our cross-compiling remote-test-running bots, this passes &quot;--arch x86_64&quot;. This means that tests that have //@ headers checking $architecture get a wrong value when running on the remote device (x86_64 instead of arm or mips).

&gt; Tools/Scripts/run-javascriptcore-tests:737
&gt; +        push(@jscStressDriverCmd, &quot;--force-architecture&quot;);
&gt; +        push(@jscStressDriverCmd, $archs);

The behavior of --force-architecture seems to only be implemented for a specific emulation on macOS. Thus if we fix $archs in this script for cross-compilation cases, we should either avoid passing that argument, or fix its implementation in run-jsc-stress-tests.

&gt; Tools/Scripts/webkitdirs.pm:844
&gt; +    # Most ports don&apos;t have emulation, assume that the user gave us an accurate architecture

This comment is inaccurate. Though we don&apos;t currently use it on bots, we do use qemu for development on armv7 and mips on linux. I guess you mean a specific kind of emulation from macOS?

&gt; Tools/Scripts/webkitdirs.pm:846
&gt; +        return determineArchitecture();

I think you mean &quot;return architecture()&quot;, since determineArchitecture() does not return anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667076</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-29 07:11:43 -0700</bug_when>
    <thetext>(In reply to Guillaume Emont from comment #15)
&gt; Comment on attachment 402828 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402828&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:494
&gt; &gt; +    # Fallback is x86_64, which we replace with the native architecture if the native architecture is in the provided build
&gt; &gt; +    $archs = &quot;x86_64&quot;;
&gt; &gt; +    $archs = nativeArchitecture() if index($archsInBuild, nativeArchitecture()) != -1;
&gt; 
&gt; This always sets $archs to x86_64 on our cross-compiling bots that run tests
&gt; on a remote device of a different architecture.

I didn&apos;t consider the remotely running case, seems like nativeArchitecture needs to target a remote host if one is provided.

&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:733
&gt; &gt; +        &quot;-j&quot;, jscPath($productDir), &quot;-o&quot;, $jscStressResultsDir, &quot;--arch&quot;, $archs);
&gt; 
&gt; On our cross-compiling remote-test-running bots, this passes &quot;--arch
&gt; x86_64&quot;. This means that tests that have //@ headers checking $architecture
&gt; get a wrong value when running on the remote device (x86_64 instead of arm
&gt; or mips).
&gt; 
&gt; &gt; Tools/Scripts/run-javascriptcore-tests:737
&gt; &gt; +        push(@jscStressDriverCmd, &quot;--force-architecture&quot;);
&gt; &gt; +        push(@jscStressDriverCmd, $archs);
&gt; 
&gt; The behavior of --force-architecture seems to only be implemented for a
&gt; specific emulation on macOS. Thus if we fix $archs in this script for
&gt; cross-compilation cases, we should either avoid passing that argument, or
&gt; fix its implementation in run-jsc-stress-tests.

If the nativeArchitecture matches the specified architecture, we won&apos;t pass the option. Which is why I think the bug is that we&apos;re getting the nativeArchitecture wrong.

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:844
&gt; &gt; +    # Most ports don&apos;t have emulation, assume that the user gave us an accurate architecture
&gt; 
&gt; This comment is inaccurate. Though we don&apos;t currently use it on bots, we do
&gt; use qemu for development on armv7 and mips on linux. I guess you mean a
&gt; specific kind of emulation from macOS?

I have Rosetta in mind. If there is another kind of emulation that also makes sense, we could add it (just not aware of how it might work on other ports and if it&apos;s even valuable to test.

&gt; 
&gt; &gt; Tools/Scripts/webkitdirs.pm:846
&gt; &gt; +        return determineArchitecture();
&gt; 
&gt; I think you mean &quot;return architecture()&quot;, since determineArchitecture() does
&gt; not return anything.

Looks like I did mess that up, I will land a fix for that one right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667078</commentid>
    <comment_count>17</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-29 07:22:07 -0700</bug_when>
    <thetext>Committed r263660: &lt;https://trac.webkit.org/changeset/263660&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1667080</commentid>
    <comment_count>18</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-29 07:27:01 -0700</bug_when>
    <thetext>Most urgently, we need https://bugs.webkit.org/show_bug.cgi?id=213727. May be some work to support emulation on other platforms, but I don&apos;t this that is a practical concern at the moment.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402508</attachid>
            <date>2020-06-22 13:45:35 -0700</date>
            <delta_ts>2020-06-23 08:28:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213487-20200622134534.patch</filename>
            <type>text/plain</type>
            <size>12763</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA2LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2ls
aWNvbiBydW5uaW5nIHg4NiBwcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ2MDY2
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKyAgICAgICAgKGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQpOiBBZGQgLS1hcmNoaXRlY3R1cmUgZmxhZy4KKyAgICAgICAgKHJ1blRlc3QpOiBS
dW4gdGVzdCBzdWl0ZSB3aXRoIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKHJ1bkpT
Q1N0cmVzc1Rlc3RzKTogUGFzcyBhcmNoaXRlY3R1cmUgdG8gcnVuLWpzYy1zdHJlc3MtdGVzdHMu
CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRlcm1pbmVOYXRpdmVBcmNoaXRlY3R1cmUp
OiBBZGQgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIG1hY2hpbmUncyBuYXRpdmUgYXJjaGl0ZWN0dXJl
LgorICAgICAgICAoZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKTogTGV2ZXJhZ2UgdGhlIG5hdGl2ZUFy
Y2hpdGVjdHVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIHNpbXVsYXRvcgorICAgICAgICBhcmNo
aXRlY3R1cmVzLgorICAgICAgICAobmF0aXZlQXJjaGl0ZWN0dXJlKTogUmV0dXJuIG5hdGl2ZUFy
Y2hpdGVjdHVyZS4KKwogMjAyMC0wNi0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBUEkgVGVzdCBXZWFrTGlua2luZy5XZWFrSW1wb3J0IGZhaWxz
IG9uIGFybTY0CkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwkocmV2
aXNpb24gMjYzMzYyKQorKysgVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRo
ID0gIi91c3IvbGliL2xpYmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9z
dCA9IDA7CiBteSAkbW9kZWwgPSAwOworbXkgJGFyY2hzID0gbmF0aXZlQXJjaGl0ZWN0dXJlKCk7
CiBteSAkdmVyc2lvbjsKIG15ICR2ZXJzaW9uTmFtZTsKIG15ICRzZGs7CkBAIC0yMzEsNiArMjMy
LDcgQEAgbXkgJGZpbHRlcjsKIG15ICR1c2FnZSA9IDw8RU9GOwogVXNhZ2U6ICRwcm9ncmFtTmFt
ZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0taGVscCAg
ICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UKKyAgLS1hcmNoaXRl
Y3R1cmUgICAgICAgICAgICAgICAgQXR0ZW1wdCB0byBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2hp
dGVjdHVyZSBvZiBhIG1hY2hpbmUuCiAgIC0tcm9vdD0gICAgICAgICAgICAgICAgICAgICAgIFBh
dGggdG8gcHJlLWJ1aWx0IHJvb3QgY29udGFpbmluZyBqc2MKICAgLS1bbm8tXWZ0bC1qaXQgICAg
ICAgICAgICAgICAgVHVybiB0aGUgRlRMIEpJVCBvbiBvciBvZmYKICAgLS1bbm8tXWJ1aWxkICAg
ICAgICAgICAgICAgICAgQ2hlY2sgKG9yIGRvbid0IGNoZWNrKSB0byBzZWUgaWYgdGhlIGpzYyBi
dWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0OiAkYnVpbGRKU0NEZWZhdWx0KQpAQCAtMzI3LDYg
KzMyOSw3IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ2FyY2hpdGVjdHVyZT1zJyA9PiBcJGFyY2hzLAogICAgICd2ZXJzaW9uPXMnID0+
IFwkdmVyc2lvbiwKICAgICAndmVyc2lvbi1uYW1lPXMnID0+IFwkdmVyc2lvbk5hbWUsCiAgICAg
J3Nkaz1zJyA9PiBcJHNkaywKQEAgLTM1MCw2ICszNTMsOSBAQCBHZXRPcHRpb25zKAogICAgICdi
dWlsZGJvdC13b3JrZXI9cycgPT4gXCRidWlsZGJvdFdvcmtlciwKICk7CiAKK2lmICgkYXJjaHMg
bmUgbmF0aXZlQXJjaGl0ZWN0dXJlKCkgJiYgKG5hdGl2ZUFyY2hpdGVjdHVyZSgpIG5lICJhcm02
NGUiIHx8ICFpc0FwcGxlTWFjV2ViS2l0KCkpKSB7CisgICAgZGllICJDYW5ub3QgcnVuIHRlc3Rz
IHdpdGggJGFyY2hzIG9uIHRoaXMgbWFjaGluZSI7Cit9CiAKIG15ICRzcGVjaWZpY1Rlc3RzU3Bl
Y2lmaWVkID0gMDsKIGlmICgkcnVuVGVzdE1hc20gPT0gRE9fUlVOCkBAIC00NDcsNyArNDUzLDcg
QEAgc3ViIGNvbmZpZ3VyYXRpb25Gb3JVcGxvYWQoKQogCiAgICAgbXkgJHJlc3VsdCA9IHsKICAg
ICAgICAgcGxhdGZvcm0gPT4gJHBsYXRmb3JtLAotICAgICAgICBhcmNoaXRlY3R1cmUgPT4gYXJj
aGl0ZWN0dXJlKCksCisgICAgICAgIGFyY2hpdGVjdHVyZSA9PiAkYXJjaHMsCiAgICAgICAgIGlz
X3NpbXVsYXRvciA9PiAkc2ltdWxhdG9yLAogICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0
aW9uKCkpLAogICAgICAgICB2ZXJzaW9uID0+ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+
e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1pbm9yfSIsCkBAIC01NDksNiArNTU1LDcgQEAgc3ViIHJ1
blRlc3QgewogICAgIGNoZGlyKCRwcm9kdWN0RGlyKSBvciBkaWUgIkZhaWxlZCB0byBzd2l0Y2gg
ZGlyZWN0b3J5IHRvICckcHJvZHVjdERpcidcbiI7CiAgICAgbXkgQGNvbW1hbmQgPSAodGVzdFBh
dGgoJHByb2R1Y3REaXIsICR0ZXN0TmFtZSkpOwogICAgIHVuc2hpZnQgQGNvbW1hbmQsICgieGNy
dW4iLCAiLXNkayIsIHhjb2RlU0RLKCksICJzaW0iKSBpZiB3aWxsVXNlSU9TU2ltdWxhdG9yU0RL
KCk7CisgICAgdW5zaGlmdCBAY29tbWFuZCwgKCIvdXNyL2Jpbi9hcmNoIiwgIi0kYXJjaHMiKSBp
ZiAkYXJjaHMgbmUgbmF0aXZlQXJjaGl0ZWN0dXJlKCk7CiAgICAgdW5zaGlmdCBAY29tbWFuZCwg
d3JhcHBlclByZWZpeElmTmVlZGVkKCkgaWYgaXNHdGsoKSBvciBpc1dQRSgpOwogCiAgICAgaWYg
KCRlbnZWYXJzIG5lICIiKSB7CkBAIC03MTAsNyArNzE3LDcgQEAgc3ViIHJ1bkpTQ1N0cmVzc1Rl
c3RzCiAgICAgJEVOVntMQU5HfT0iZW5fVVMuVVRGLTgiOwogICAgIG15IEBqc2NTdHJlc3NEcml2
ZXJDbWQgPSAoCiAgICAgICAgICIvdXNyL2Jpbi9lbnYiLCAicnVieSIsICJUb29scy9TY3JpcHRz
L3J1bi1qc2Mtc3RyZXNzLXRlc3RzIiwKLSAgICAgICAgIi1qIiwganNjUGF0aCgkcHJvZHVjdERp
ciksICItbyIsICRqc2NTdHJlc3NSZXN1bHRzRGlyKTsKKyAgICAgICAgIi1qIiwganNjUGF0aCgk
cHJvZHVjdERpciksICItbyIsICRqc2NTdHJlc3NSZXN1bHRzRGlyLCAiLS1hcmNoIiwgJGFyY2hz
KTsKIAogICAgIHB1c2goQGpzY1N0cmVzc0RyaXZlckNtZCwgQHRlc3RMaXN0KTsKIApJbmRleDog
VG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCShyZXZpc2lvbiAyNjMzNjIpCisrKyBUb29scy9T
Y3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0
LDcgQEAgJHRlc3RSdW5uZXJUeXBlID0gbmlsCiAkdGVzdFdyaXRlciA9ICJkZWZhdWx0IgogJHJl
bW90ZUhvc3RzID0gW10KICRhcmNoaXRlY3R1cmUgPSBuaWwKKyR1c2luZ05hdGl2ZUFyY2hpdGVj
dHVyZSA9IHRydWUKICRob3N0T1MgPSBuaWwKICRtb2RlbCA9IG5pbAogJGZpbHRlciA9IG5pbApA
QCAtNDgxLDYgKzQ4MiwxMCBAQCBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgJGppdFRl
c3RzID0gZmFsc2UKIGVuZAogCitpZiBgdW5hbWUgLW1gLmNob21wICE9ICRhcmNoaXRlY3R1cmUK
KyAgICAkdXNpbmdOYXRpdmVBcmNoaXRlY3R1cmUgPSBmYWxzZQorZW5kCisKIGRlZiBpc0ZUTEVu
YWJsZWQKICAgICAkaml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KIGVuZApAQCAtNTU3LDYgKzU2
MiwxNCBAQCBkZWYgcGF0aFRvVk0KICAgICBwYXRoVG9CdW5kbGVSZXNvdXJjZUZyb21CZW5jaG1h
cmtEaXJlY3RvcnkoJGpzY1BhdGgpCiBlbmQKIAorZGVmIHZtQ29tbWFuZAorICAgIGlmICgkdXNp
bmdOYXRpdmVBcmNoaXRlY3R1cmUpCisgICAgICAgIFtwYXRoVG9WTS50b19zXQorICAgIGVsc2UK
KyAgICAgICAgWyIvdXNyL2Jpbi9hcmNoIiwgIi0iICsgJGFyY2hpdGVjdHVyZSwgIHBhdGhUb1ZN
LnRvX3NdCisgICAgZW5kCitlbmQKKwogZGVmIHBhdGhUb0hlbHBlcnMKICAgICBwYXRoVG9CdW5k
bGVSZXNvdXJjZUZyb21CZW5jaG1hcmtEaXJlY3RvcnkoIi5oZWxwZXJzIikKIGVuZApAQCAtNjQz
LDExICs2NTYsMTEgQEAgZGVmIHJlcXVpcmVPcHRpb25zKCpvcHRpb25zKQogZW5kCiAKIGRlZiBy
dW5XaXRoT3V0cHV0SGFuZGxlcihraW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBh
ZGRSdW5Db21tYW5kKGtpbmQsIFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0
U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91
dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQs
IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMg
KyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9y
SGFuZGxlcikKIGVuZAogCiBkZWYgcnVuV2l0aE91dHB1dEhhbmRsZXJXaXRob3V0QmFzZU9wdGlv
bihraW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQs
IFtwYXRoVG9WTS50b19zXSArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25z
ICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikK
KyAgICBhZGRSdW5Db21tYW5kKGtpbmQsIHZtQ29tbWFuZCArICR0ZXN0U3BlY2lmaWNSZXF1aXJl
ZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNp
bXBsZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuKGtpbmQsICpvcHRpb25zKQpAQCAtOTcz
LDEyICs5ODYsMTIgQEAgZGVmIHJ1blByb2ZpbGVyCiBlbmQKIAogZGVmIHJ1bkV4Y2VwdGlvbkZ1
enoKLSAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKFtwYXRoVG9WTS50b19zLCAiLS11c2VEb2xs
YXJWTT10cnVlIiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkK
KyAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10
cnVlIiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKICAgICBh
ZGRSdW5Db21tYW5kKCJleGNlcHRpb24tZnV6eiIsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsg
ImpzLWV4Y2VwdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRs
ZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6KG5hbWUsICpvcHRpb25zKQotICAgIHN1YkNvbW1hbmQgPSBlc2NhcGVBbGwoW3BhdGhU
b1ZNLnRvX3MsICItLXVzZURvbGxhclZNPXRydWUiLCAkYmVuY2htYXJrLnRvX3NdICsgb3B0aW9u
cykKKyAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJW
TT10cnVlIiwgJGJlbmNobWFyay50b19zXSArIG9wdGlvbnMpCiAgICAgYWRkUnVuQ29tbWFuZCgi
ZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1enotIiArIG5hbWUsIFsicGVybCIsIChwYXRoVG9IZWxw
ZXJzICsgImpzLWV4ZWN1dGFibGUtYWxsb2NhdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0s
IHNpbGVudE91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCkBAIC0xMDI3
LDcgKzEwNDAsNyBAQCBkZWYgcnVuVGVzdDI2Mihtb2RlLCBleGNlcHRpb24sIGluY2x1ZGVGCiAK
ICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGluY2x1ZGVGaWxlcy5tYXAgeyB8ZnwgIi4u
LyIgKyBmIH0sICRjb2xsZWN0aW9uKQogCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJB
U0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMKKyAgICBhcmdzID0gdm1D
b21tYW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucwogICAg
IGFyZ3MgPDwgIi0tZXhjZXB0aW9uPSIgKyBleGNlcHRpb24gaWYgZmFpbHNXaXRoRXhjZXB0aW9u
CiAgICAgYXJncyA8PCAiLS10ZXN0MjYyLWFzeW5jIiBpZiBpc0FzeW5jCiAgICAgYXJncyArPSBp
bmNsdWRlRmlsZXMKQEAgLTEwNjksNyArMTA4Miw3IEBAIGRlZiBwcmVwYXJlVGVzdDI2MkZpeHR1
cmUKIGVuZAogCiBkZWYgcnVuRVM2KG1vZGUpCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSAr
IEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBbJGJlbmNobWFy
ay50b19zXQorICAgIGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNp
ZmljUmVxdWlyZWRPcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10KICAgICBjYXNlIG1vZGUKICAg
ICB3aGVuIDpub3JtYWwKICAgICAgICAgZXJyb3JIYW5kbGVyID0gc2ltcGxlRXJyb3JIYW5kbGVy
CkBAIC0xMjY3LDcgKzEyODAsNyBAQCBkZWYgcnVuQ2hha3JhKG1vZGUsIGV4Y2VwdGlvbiwgYmFz
ZWxpbmVGCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhDSEFLUkFURVNUU19QQVRILCBb
ImpzYy1saWIuanMiXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMu
bWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKIAotICAgIGFyZ3MgPSBbcGF0aFRv
Vk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zCisg
ICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJl
ZE9wdGlvbnMKICAgICBhcmdzICs9IEZUTF9PUFRJT05TIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAg
YXJncyArPSBFQUdFUl9PUFRJT05TCiAgICAgYXJncyA8PCAiLS1leGNlcHRpb249IiArIGV4Y2Vw
dGlvbiBpZiBmYWlsc1dpdGhFeGNlcHRpb24KQEAgLTEzMDgsNyArMTMyMSw3IEBAIGRlZiBydW5M
YXlvdXRUZXN0KGtpbmQsICpvcHRpb25zKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMo
WyIuLi8je3Rlc3ROYW1lfS1leHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKICAg
ICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKExBWU9VVFRFU1RTX1BBVEgsIFsicmVzb3VyY2Vz
L3N0YW5kYWxvbmUtcHJlLmpzIiwgInJlc291cmNlcy9zdGFuZGFsb25lLXBvc3QuanMiXSkKIAot
ICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmlj
UmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0Vf
T1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsKICAgICAg
ICAgWyhQYXRobmFtZS5uZXcoInJlc291cmNlcyIpICsgInN0YW5kYWxvbmUtcHJlLmpzIikudG9f
cywKICAgICAgICAgICRiZW5jaG1hcmsudG9fcywKICAgICAgICAgIChQYXRobmFtZS5uZXcoInJl
c291cmNlcyIpICsgInN0YW5kYWxvbmUtcG9zdC5qcyIpLnRvX3NdCkBAIC0xNDQ4LDcgKzE0NjEs
NyBAQCBlbmQKIGRlZiBydW5Db21wbGV4VGVzdChiZWZvcmUsIGFmdGVyLCBhZGRpdGlvbmFsRW52
LCAqb3B0aW9ucykKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGJlZm9yZS5tYXB7fHZ8
IChQYXRobmFtZSgiLi4iKSArIHYpLnRvX3N9LCAkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0
cmFSZWxhdGl2ZUZpbGVzKGFmdGVyLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30s
ICRjb2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMg
KyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8
IHYudG9fc30gKyBbJGJlbmNobWFyay50b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQorICAg
IGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRP
cHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50
b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQogICAgIGFkZFJ1bkNvbW1hbmQoImNvbXBsZXgi
LCBhcmdzLCBub2lzeU91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlciwgKmFkZGl0aW9u
YWxFbnYpCiBlbmQKIApAQCAtMTQ1OSw3ICsxNDcyLDcgQEAgZGVmIHJ1bk1vemlsbGFUZXN0KGtp
bmQsIG1vZGUsIGV4dHJhRmlsZQogICAgICAgICBraW5kID0gIm1vemlsbGEiCiAgICAgZW5kCiAg
ICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLm1hcHt8dnwgKFBhdGhuYW1l
KCIuLiIpICsgdikudG9fc30sICRjb2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9f
c10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9u
cyArIGV4dHJhRmlsZXMubWFwe3x2fCB2LnRvX3N9ICsgWyRiZW5jaG1hcmsudG9fc10KKyAgICBh
cmdzID0gdm1Db21tYW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0
aW9ucyArIG9wdGlvbnMgKyBleHRyYUZpbGVzLm1hcHt8dnwgdi50b19zfSArIFskYmVuY2htYXJr
LnRvX3NdCiAgICAgY2FzZSBtb2RlCiAgICAgd2hlbiA6bm9ybWFsCiAgICAgICAgIGVycm9ySGFu
ZGxlciA9IG1vemlsbGFFcnJvckhhbmRsZXIKQEAgLTE1MjksNyArMTU0Miw3IEBAIGRlZiBkZWZh
dWx0UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmkKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0
SW1wbChraW5kLCBvcHRpb25zLCBhZGRpdGlvbmFsRW52KQotICAgIGFkZFJ1bkNvbW1hbmQoa2lu
ZCwgW3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVk
T3B0aW9ucyArIG9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXSwgbm9pc3lPdXRwdXRIYW5kbGVy
LCBub2lzeUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCisgICAgYWRkUnVuQ29tbWFuZChr
aW5kLCB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRp
b25zICsgb3B0aW9ucyArIFskYmVuY2htYXJrLnRvX3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5v
aXN5RXJyb3JIYW5kbGVyLCAqYWRkaXRpb25hbEVudikKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0
KGtpbmQsICpvcHRpb25zKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjYzMzYyKQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiAr
MTI4LDcgQEAgdXNlIGNvbnN0YW50IElPU19ERVZFTE9QTUVOVF9DRVJUSUZJQ0FURQogb3VyIEBF
WFBPUlRfT0s7CiAKIG15ICRhcmNoaXRlY3R1cmU7CitteSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwog
bXkgJGFzYW5Jc0VuYWJsZWQ7CiBteSAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKIG15ICRjb3Zl
cmFnZUlzRW5hYmxlZDsKQEAgLTM1MCwxNCArMzUxLDI0IEBAIHN1YiBkZXRlcm1pbmVDb25maWd1
cmF0aW9uCiAgICAgfQogfQogCitzdWIgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlCit7Cisg
ICAgcmV0dXJuIGlmIGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVjdHVyZTsKKyAgICAkbmF0aXZlQXJj
aGl0ZWN0dXJlID0gYHVuYW1lIC1tYDsKKyAgICBjaG9tcCAkbmF0aXZlQXJjaGl0ZWN0dXJlOwor
CisgICAgJG5hdGl2ZUFyY2hpdGVjdHVyZSA9ICJ4ODZfNjQiIGlmIChub3QgZGVmaW5lZCAkbmF0
aXZlQXJjaGl0ZWN0dXJlKTsKKyAgICAkbmF0aXZlQXJjaGl0ZWN0dXJlID0gImFybTY0ZSIgaWYg
KCRuYXRpdmVBcmNoaXRlY3R1cmUgPX4gL15lcGVybS8pOworfQorCiBzdWIgZGV0ZXJtaW5lQXJj
aGl0ZWN0dXJlCiB7CiAgICAgcmV0dXJuIGlmIGRlZmluZWQgJGFyY2hpdGVjdHVyZTsKLSAgICAj
IG1ha2Ugc3VyZSAkYXJjaGl0ZWN0dXJlIGlzIGRlZmluZWQgaW4gYWxsIGNhc2VzCi0gICAgJGFy
Y2hpdGVjdHVyZSA9ICIiOwogCiAgICAgZGV0ZXJtaW5lQmFzZVByb2R1Y3REaXIoKTsKICAgICBk
ZXRlcm1pbmVYY29kZVNESygpOworICAgIGRldGVybWluZU5hdGl2ZUFyY2hpdGVjdHVyZSgpOwor
ICAgICRhcmNoaXRlY3R1cmUgPSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwogCiAgICAgaWYgKGlzQXBw
bGVDb2NvYVdlYktpdCgpKSB7CiAgICAgICAgIGlmIChvcGVuIEFSQ0hJVEVDVFVSRSwgIiRiYXNl
UHJvZHVjdERpci9BcmNoaXRlY3R1cmUiKSB7CkBAIC0zNjcsMjAgKzM3OCwxMiBAQCBzdWIgZGV0
ZXJtaW5lQXJjaGl0ZWN0dXJlCiAgICAgICAgIGlmICgkYXJjaGl0ZWN0dXJlKSB7CiAgICAgICAg
ICAgICBjaG9tcCAkYXJjaGl0ZWN0dXJlOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
aWYgKG5vdCBkZWZpbmVkICR4Y29kZVNESyBvciAkeGNvZGVTREsgPX4gL14oXC8kfG1hY29zeCkv
KSB7Ci0gICAgICAgICAgICAgICAgbXkgJHN1cHBvcnRzNjRCaXQgPSBgc3lzY3RsIC1uIGh3Lm9w
dGlvbmFsLng4Nl82NGA7Ci0gICAgICAgICAgICAgICAgY2hvbXAgJHN1cHBvcnRzNjRCaXQ7Ci0g
ICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICd4ODZfNjQnIGlmICRzdXBwb3J0czY0Qml0
OwotICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9eaXBob25lc2ltdWxhdG9yLykg
ewotICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSAneDg2XzY0JzsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCR4Y29kZVNESyA9fiAvXmlwaG9uZW9zLykgeworICAgICAgICAgICAgaWYgKCR4
Y29kZVNESyA9fiAvXmlwaG9uZW9zLykgewogICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUg
PSAnYXJtNjQnOwogICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9ed2F0Y2hzaW11
bGF0b3IvKSB7CiAgICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICdpMzg2JzsKICAgICAg
ICAgICAgIH0gZWxzaWYgKCR4Y29kZVNESyA9fiAvXndhdGNob3MvKSB7CiAgICAgICAgICAgICAg
ICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NF8zMiBhcm02NGUgYXJtdjdrJzsKLSAgICAgICAgICAg
IH0gZWxzaWYgKCR4Y29kZVNESyA9fiAvXmFwcGxldHZzaW11bGF0b3IvKSB7Ci0gICAgICAgICAg
ICAgICAgJGFyY2hpdGVjdHVyZSA9ICd4ODZfNjQnOwogICAgICAgICAgICAgfSBlbHNpZiAoJHhj
b2RlU0RLID1+IC9eYXBwbGV0dm9zLykgewogICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUg
PSAnYXJtNjQnOwogICAgICAgICAgICAgfQpAQCAtNDAzLDE0ICs0MDYsNiBAQCBzdWIgZGV0ZXJt
aW5lQXJjaGl0ZWN0dXJlCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIWlzQW55V2luZG93
cygpKSB7Ci0gICAgICAgIGlmICghJGFyY2hpdGVjdHVyZSkgewotICAgICAgICAgICAgIyBGYWxs
IGJhY2sgdG8gb3V0cHV0IG9mIGB1bmFtZSAtbScsIGlmIGl0IGlzIHByZXNlbnQuCi0gICAgICAg
ICAgICAkYXJjaGl0ZWN0dXJlID0gYHVuYW1lIC1tYDsKLSAgICAgICAgICAgIGNob21wICRhcmNo
aXRlY3R1cmU7Ci0gICAgICAgIH0KLSAgICB9Ci0KICAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82
NCcgaWYgJGFyY2hpdGVjdHVyZSA9fiAvYW1kNjQvaTsKICAgICAkYXJjaGl0ZWN0dXJlID0gJ2Fy
bTY0JyBpZiAkYXJjaGl0ZWN0dXJlID1+IC9hYXJjaDY0L2k7CiB9CkBAIC0xMDQwLDYgKzEwMzUs
MTIgQEAgc3ViIHBhc3NlZEFyY2hpdGVjdHVyZQogICAgIHJldHVybiAkcGFzc2VkQXJjaGl0ZWN0
dXJlOwogfQogCitzdWIgbmF0aXZlQXJjaGl0ZWN0dXJlKCkKK3sKKyAgICBkZXRlcm1pbmVOYXRp
dmVBcmNoaXRlY3R1cmUoKTsKKyAgICByZXR1cm4gJG5hdGl2ZUFyY2hpdGVjdHVyZTsKK30KKwog
c3ViIGFyY2hpdGVjdHVyZSgpCiB7CiAgICAgZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402561</attachid>
            <date>2020-06-23 08:28:05 -0700</date>
            <delta_ts>2020-06-23 11:18:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213487-20200623082804.patch</filename>
            <type>text/plain</type>
            <size>13272</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA2LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2ls
aWNvbiBydW5uaW5nIHg4NiBwcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ2MDY2
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKyAgICAgICAgKGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQpOiBBZGQgLS1hcmNoaXRlY3R1cmUgZmxhZy4KKyAgICAgICAgKHJ1blRlc3QpOiBS
dW4gdGVzdCBzdWl0ZSB3aXRoIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKHJ1bkpT
Q1N0cmVzc1Rlc3RzKTogUGFzcyBhcmNoaXRlY3R1cmUgdG8gcnVuLWpzYy1zdHJlc3MtdGVzdHMu
CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRlcm1pbmVOYXRpdmVBcmNoaXRlY3R1cmUp
OiBBZGQgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIG1hY2hpbmUncyBuYXRpdmUgYXJjaGl0ZWN0dXJl
LgorICAgICAgICAoZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKTogTGV2ZXJhZ2UgdGhlIG5hdGl2ZUFy
Y2hpdGVjdHVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIHNpbXVsYXRvcgorICAgICAgICBhcmNo
aXRlY3R1cmVzLgorICAgICAgICAobmF0aXZlQXJjaGl0ZWN0dXJlKTogUmV0dXJuIG5hdGl2ZUFy
Y2hpdGVjdHVyZS4KKwogMjAyMC0wNi0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBUEkgVGVzdCBXZWFrTGlua2luZy5XZWFrSW1wb3J0IGZhaWxz
IG9uIGFybTY0CkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwkocmV2
aXNpb24gMjYzMzYyKQorKysgVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRo
ID0gIi91c3IvbGliL2xpYmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9z
dCA9IDA7CiBteSAkbW9kZWwgPSAwOworbXkgJGFyY2hzID0gbmF0aXZlQXJjaGl0ZWN0dXJlKCk7
CiBteSAkdmVyc2lvbjsKIG15ICR2ZXJzaW9uTmFtZTsKIG15ICRzZGs7CkBAIC0yMzEsNiArMjMy
LDcgQEAgbXkgJGZpbHRlcjsKIG15ICR1c2FnZSA9IDw8RU9GOwogVXNhZ2U6ICRwcm9ncmFtTmFt
ZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0taGVscCAg
ICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UKKyAgLS1hcmNoaXRl
Y3R1cmUgICAgICAgICAgICAgICAgQXR0ZW1wdCB0byBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2hp
dGVjdHVyZSBvZiBhIG1hY2hpbmUuCiAgIC0tcm9vdD0gICAgICAgICAgICAgICAgICAgICAgIFBh
dGggdG8gcHJlLWJ1aWx0IHJvb3QgY29udGFpbmluZyBqc2MKICAgLS1bbm8tXWZ0bC1qaXQgICAg
ICAgICAgICAgICAgVHVybiB0aGUgRlRMIEpJVCBvbiBvciBvZmYKICAgLS1bbm8tXWJ1aWxkICAg
ICAgICAgICAgICAgICAgQ2hlY2sgKG9yIGRvbid0IGNoZWNrKSB0byBzZWUgaWYgdGhlIGpzYyBi
dWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0OiAkYnVpbGRKU0NEZWZhdWx0KQpAQCAtMzI3LDYg
KzMyOSw3IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ2FyY2hpdGVjdHVyZT1zJyA9PiBcJGFyY2hzLAogICAgICd2ZXJzaW9uPXMnID0+
IFwkdmVyc2lvbiwKICAgICAndmVyc2lvbi1uYW1lPXMnID0+IFwkdmVyc2lvbk5hbWUsCiAgICAg
J3Nkaz1zJyA9PiBcJHNkaywKQEAgLTM1MCw2ICszNTMsMTEgQEAgR2V0T3B0aW9ucygKICAgICAn
YnVpbGRib3Qtd29ya2VyPXMnID0+IFwkYnVpbGRib3RXb3JrZXIsCiApOwogCisjIEZvciBydW5u
aW5nIHRlc3RzLCBhcm02NGUgc2hvdWxkIG1hcCB0byBhcm02NAorJGFyY2hzID0gImFybTY0IiBp
ZiAkYXJjaHMgZXEgImFybTY0ZSI7CitpZiAoJGFyY2hzIG5lIG5hdGl2ZUFyY2hpdGVjdHVyZSgp
ICYmIChuYXRpdmVBcmNoaXRlY3R1cmUoKSBuZSAiYXJtNjQiIHx8ICFpc0FwcGxlTWFjV2ViS2l0
KCkpKSB7CisgICAgZGllICJDYW5ub3QgcnVuIHRlc3RzIHdpdGggJGFyY2hzIG9uIHRoaXMgbWFj
aGluZSI7Cit9CiAKIG15ICRzcGVjaWZpY1Rlc3RzU3BlY2lmaWVkID0gMDsKIGlmICgkcnVuVGVz
dE1hc20gPT0gRE9fUlVOCkBAIC00NDcsNyArNDU1LDcgQEAgc3ViIGNvbmZpZ3VyYXRpb25Gb3JV
cGxvYWQoKQogCiAgICAgbXkgJHJlc3VsdCA9IHsKICAgICAgICAgcGxhdGZvcm0gPT4gJHBsYXRm
b3JtLAotICAgICAgICBhcmNoaXRlY3R1cmUgPT4gYXJjaGl0ZWN0dXJlKCksCisgICAgICAgIGFy
Y2hpdGVjdHVyZSA9PiAkYXJjaHMsCiAgICAgICAgIGlzX3NpbXVsYXRvciA9PiAkc2ltdWxhdG9y
LAogICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0aW9uKCkpLAogICAgICAgICB2ZXJzaW9u
ID0+ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1p
bm9yfSIsCkBAIC01NDksNiArNTU3LDcgQEAgc3ViIHJ1blRlc3QgewogICAgIGNoZGlyKCRwcm9k
dWN0RGlyKSBvciBkaWUgIkZhaWxlZCB0byBzd2l0Y2ggZGlyZWN0b3J5IHRvICckcHJvZHVjdERp
cidcbiI7CiAgICAgbXkgQGNvbW1hbmQgPSAodGVzdFBhdGgoJHByb2R1Y3REaXIsICR0ZXN0TmFt
ZSkpOwogICAgIHVuc2hpZnQgQGNvbW1hbmQsICgieGNydW4iLCAiLXNkayIsIHhjb2RlU0RLKCks
ICJzaW0iKSBpZiB3aWxsVXNlSU9TU2ltdWxhdG9yU0RLKCk7CisgICAgdW5zaGlmdCBAY29tbWFu
ZCwgKCIvdXNyL2Jpbi9hcmNoIiwgIi0kYXJjaHMiKSBpZiAkYXJjaHMgbmUgbmF0aXZlQXJjaGl0
ZWN0dXJlKCk7CiAgICAgdW5zaGlmdCBAY29tbWFuZCwgd3JhcHBlclByZWZpeElmTmVlZGVkKCkg
aWYgaXNHdGsoKSBvciBpc1dQRSgpOwogCiAgICAgaWYgKCRlbnZWYXJzIG5lICIiKSB7CkBAIC03
MTAsNyArNzE5LDcgQEAgc3ViIHJ1bkpTQ1N0cmVzc1Rlc3RzCiAgICAgJEVOVntMQU5HfT0iZW5f
VVMuVVRGLTgiOwogICAgIG15IEBqc2NTdHJlc3NEcml2ZXJDbWQgPSAoCiAgICAgICAgICIvdXNy
L2Jpbi9lbnYiLCAicnVieSIsICJUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIiwK
LSAgICAgICAgIi1qIiwganNjUGF0aCgkcHJvZHVjdERpciksICItbyIsICRqc2NTdHJlc3NSZXN1
bHRzRGlyKTsKKyAgICAgICAgIi1qIiwganNjUGF0aCgkcHJvZHVjdERpciksICItbyIsICRqc2NT
dHJlc3NSZXN1bHRzRGlyLCAiLS1hcmNoIiwgJGFyY2hzKTsKIAogICAgIHB1c2goQGpzY1N0cmVz
c0RyaXZlckNtZCwgQHRlc3RMaXN0KTsKIApJbmRleDogVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCShyZXZpc2lvbiAyNjMzNjIpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDcgQEAgJHRlc3RSdW5uZXJUeXBlID0g
bmlsCiAkdGVzdFdyaXRlciA9ICJkZWZhdWx0IgogJHJlbW90ZUhvc3RzID0gW10KICRhcmNoaXRl
Y3R1cmUgPSBuaWwKKyR1c2luZ05hdGl2ZUFyY2hpdGVjdHVyZSA9IHRydWUKICRob3N0T1MgPSBu
aWwKICRtb2RlbCA9IG5pbAogJGZpbHRlciA9IG5pbApAQCAtNDczLDYgKzQ3NCwxMiBAQCBlbmQK
IAogJGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0g
ZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCisKKyMgRm9yIHJ1bm5p
bmcgdGVzdHMsIGFybTY0ZSBzaG91bGQgbWFwIHRvIGFybTY0CitpZiAkYXJjaGl0ZWN0dXJlID09
ICJhcm02NGUiCisgICAgJGFyY2hpdGVjdHVyZSA9ICJhcm02NCIKK2VuZAorCiAkaXNGVExQbGF0
Zm9ybSA9ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0i
IHx8ICRhcmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRob3N0T1MgPT0gIndpbmRvd3MiIHx8ICRo
b3N0T1MgPT0gInBsYXlzdGF0aW9uIikKIAogaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IgpAQCAt
NDgxLDYgKzQ4OCwxMCBAQCBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgJGppdFRlc3Rz
ID0gZmFsc2UKIGVuZAogCitpZiBgdW5hbWUgLW1gLmNob21wICE9ICRhcmNoaXRlY3R1cmUKKyAg
ICAkdXNpbmdOYXRpdmVBcmNoaXRlY3R1cmUgPSBmYWxzZQorZW5kCisKIGRlZiBpc0ZUTEVuYWJs
ZWQKICAgICAkaml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KIGVuZApAQCAtNTU3LDYgKzU2OCwx
NCBAQCBkZWYgcGF0aFRvVk0KICAgICBwYXRoVG9CdW5kbGVSZXNvdXJjZUZyb21CZW5jaG1hcmtE
aXJlY3RvcnkoJGpzY1BhdGgpCiBlbmQKIAorZGVmIHZtQ29tbWFuZAorICAgIGlmICgkdXNpbmdO
YXRpdmVBcmNoaXRlY3R1cmUpCisgICAgICAgIFtwYXRoVG9WTS50b19zXQorICAgIGVsc2UKKyAg
ICAgICAgWyIvdXNyL2Jpbi9hcmNoIiwgIi0iICsgJGFyY2hpdGVjdHVyZSwgIHBhdGhUb1ZNLnRv
X3NdCisgICAgZW5kCitlbmQKKwogZGVmIHBhdGhUb0hlbHBlcnMKICAgICBwYXRoVG9CdW5kbGVS
ZXNvdXJjZUZyb21CZW5jaG1hcmtEaXJlY3RvcnkoIi5oZWxwZXJzIikKIGVuZApAQCAtNjQzLDEx
ICs2NjIsMTEgQEAgZGVmIHJlcXVpcmVPcHRpb25zKCpvcHRpb25zKQogZW5kCiAKIGRlZiBydW5X
aXRoT3V0cHV0SGFuZGxlcihraW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRS
dW5Db21tYW5kKGtpbmQsIFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3Bl
Y2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1
dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQsIHZt
Q29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBv
cHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFu
ZGxlcikKIGVuZAogCiBkZWYgcnVuV2l0aE91dHB1dEhhbmRsZXJXaXRob3V0QmFzZU9wdGlvbihr
aW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtw
YXRoVG9WTS50b19zXSArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsg
WyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAg
ICBhZGRSdW5Db21tYW5kKGtpbmQsIHZtQ29tbWFuZCArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9w
dGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBs
ZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuKGtpbmQsICpvcHRpb25zKQpAQCAtOTczLDEy
ICs5OTIsMTIgQEAgZGVmIHJ1blByb2ZpbGVyCiBlbmQKIAogZGVmIHJ1bkV4Y2VwdGlvbkZ1enoK
LSAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKFtwYXRoVG9WTS50b19zLCAiLS11c2VEb2xsYXJW
TT10cnVlIiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKKyAg
ICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVl
IiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKICAgICBhZGRS
dW5Db21tYW5kKCJleGNlcHRpb24tZnV6eiIsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpz
LWV4Y2VwdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIs
IHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6KG5hbWUsICpvcHRpb25zKQotICAgIHN1YkNvbW1hbmQgPSBlc2NhcGVBbGwoW3BhdGhUb1ZN
LnRvX3MsICItLXVzZURvbGxhclZNPXRydWUiLCAkYmVuY2htYXJrLnRvX3NdICsgb3B0aW9ucykK
KyAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10
cnVlIiwgJGJlbmNobWFyay50b19zXSArIG9wdGlvbnMpCiAgICAgYWRkUnVuQ29tbWFuZCgiZXhl
Y3V0YWJsZS1hbGxvY2F0aW9uLWZ1enotIiArIG5hbWUsIFsicGVybCIsIChwYXRoVG9IZWxwZXJz
ICsgImpzLWV4ZWN1dGFibGUtYWxsb2NhdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNp
bGVudE91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCkBAIC0xMDI3LDcg
KzEwNDYsNyBAQCBkZWYgcnVuVGVzdDI2Mihtb2RlLCBleGNlcHRpb24sIGluY2x1ZGVGCiAKICAg
ICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGluY2x1ZGVGaWxlcy5tYXAgeyB8ZnwgIi4uLyIg
KyBmIH0sICRjb2xsZWN0aW9uKQogCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0Vf
T1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMKKyAgICBhcmdzID0gdm1Db21t
YW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucwogICAgIGFy
Z3MgPDwgIi0tZXhjZXB0aW9uPSIgKyBleGNlcHRpb24gaWYgZmFpbHNXaXRoRXhjZXB0aW9uCiAg
ICAgYXJncyA8PCAiLS10ZXN0MjYyLWFzeW5jIiBpZiBpc0FzeW5jCiAgICAgYXJncyArPSBpbmNs
dWRlRmlsZXMKQEAgLTEwNjksNyArMTA4OCw3IEBAIGRlZiBwcmVwYXJlVGVzdDI2MkZpeHR1cmUK
IGVuZAogCiBkZWYgcnVuRVM2KG1vZGUpCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJB
U0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBbJGJlbmNobWFyay50
b19zXQorICAgIGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmlj
UmVxdWlyZWRPcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10KICAgICBjYXNlIG1vZGUKICAgICB3
aGVuIDpub3JtYWwKICAgICAgICAgZXJyb3JIYW5kbGVyID0gc2ltcGxlRXJyb3JIYW5kbGVyCkBA
IC0xMjY3LDcgKzEyODYsNyBAQCBkZWYgcnVuQ2hha3JhKG1vZGUsIGV4Y2VwdGlvbiwgYmFzZWxp
bmVGCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhDSEFLUkFURVNUU19QQVRILCBbImpz
Yy1saWIuanMiXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMubWFw
IHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKIAotICAgIGFyZ3MgPSBbcGF0aFRvVk0u
dG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zCisgICAg
YXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9w
dGlvbnMKICAgICBhcmdzICs9IEZUTF9PUFRJT05TIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgYXJn
cyArPSBFQUdFUl9PUFRJT05TCiAgICAgYXJncyA8PCAiLS1leGNlcHRpb249IiArIGV4Y2VwdGlv
biBpZiBmYWlsc1dpdGhFeGNlcHRpb24KQEAgLTEzMDgsNyArMTMyNyw3IEBAIGRlZiBydW5MYXlv
dXRUZXN0KGtpbmQsICpvcHRpb25zKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIu
Li8je3Rlc3ROYW1lfS1leHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKICAgICBw
cmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKExBWU9VVFRFU1RTX1BBVEgsIFsicmVzb3VyY2VzL3N0
YW5kYWxvbmUtcHJlLmpzIiwgInJlc291cmNlcy9zdGFuZGFsb25lLXBvc3QuanMiXSkKIAotICAg
IGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVx
dWlyZWRPcHRpb25zICsgb3B0aW9ucyArCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BU
SU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsKICAgICAgICAg
WyhQYXRobmFtZS5uZXcoInJlc291cmNlcyIpICsgInN0YW5kYWxvbmUtcHJlLmpzIikudG9fcywK
ICAgICAgICAgICRiZW5jaG1hcmsudG9fcywKICAgICAgICAgIChQYXRobmFtZS5uZXcoInJlc291
cmNlcyIpICsgInN0YW5kYWxvbmUtcG9zdC5qcyIpLnRvX3NdCkBAIC0xNDQ4LDcgKzE0NjcsNyBA
QCBlbmQKIGRlZiBydW5Db21wbGV4VGVzdChiZWZvcmUsIGFmdGVyLCBhZGRpdGlvbmFsRW52LCAq
b3B0aW9ucykKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGJlZm9yZS5tYXB7fHZ8IChQ
YXRobmFtZSgiLi4iKSArIHYpLnRvX3N9LCAkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFS
ZWxhdGl2ZUZpbGVzKGFmdGVyLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRj
b2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAk
dGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYu
dG9fc30gKyBbJGJlbmNobWFyay50b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQorICAgIGFy
Z3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRp
b25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50b19z
XSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQogICAgIGFkZFJ1bkNvbW1hbmQoImNvbXBsZXgiLCBh
cmdzLCBub2lzeU91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxF
bnYpCiBlbmQKIApAQCAtMTQ1OSw3ICsxNDc4LDcgQEAgZGVmIHJ1bk1vemlsbGFUZXN0KGtpbmQs
IG1vZGUsIGV4dHJhRmlsZQogICAgICAgICBraW5kID0gIm1vemlsbGEiCiAgICAgZW5kCiAgICAg
cHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLm1hcHt8dnwgKFBhdGhuYW1lKCIu
LiIpICsgdikudG9fc30sICRjb2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10g
KyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyAr
IGV4dHJhRmlsZXMubWFwe3x2fCB2LnRvX3N9ICsgWyRiZW5jaG1hcmsudG9fc10KKyAgICBhcmdz
ID0gdm1Db21tYW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9u
cyArIG9wdGlvbnMgKyBleHRyYUZpbGVzLm1hcHt8dnwgdi50b19zfSArIFskYmVuY2htYXJrLnRv
X3NdCiAgICAgY2FzZSBtb2RlCiAgICAgd2hlbiA6bm9ybWFsCiAgICAgICAgIGVycm9ySGFuZGxl
ciA9IG1vemlsbGFFcnJvckhhbmRsZXIKQEAgLTE1MjksNyArMTU0OCw3IEBAIGRlZiBkZWZhdWx0
UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmkKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0SW1w
bChraW5kLCBvcHRpb25zLCBhZGRpdGlvbmFsRW52KQotICAgIGFkZFJ1bkNvbW1hbmQoa2luZCwg
W3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0
aW9ucyArIG9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXSwgbm9pc3lPdXRwdXRIYW5kbGVyLCBu
b2lzeUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCisgICAgYWRkUnVuQ29tbWFuZChraW5k
LCB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25z
ICsgb3B0aW9ucyArIFskYmVuY2htYXJrLnRvX3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5vaXN5
RXJyb3JIYW5kbGVyLCAqYWRkaXRpb25hbEVudikKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0KGtp
bmQsICpvcHRpb25zKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjYzMzYyKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4
LDcgQEAgdXNlIGNvbnN0YW50IElPU19ERVZFTE9QTUVOVF9DRVJUSUZJQ0FURQogb3VyIEBFWFBP
UlRfT0s7CiAKIG15ICRhcmNoaXRlY3R1cmU7CitteSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwogbXkg
JGFzYW5Jc0VuYWJsZWQ7CiBteSAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKIG15ICRjb3ZlcmFn
ZUlzRW5hYmxlZDsKQEAgLTM1MCwxNCArMzUxLDI0IEBAIHN1YiBkZXRlcm1pbmVDb25maWd1cmF0
aW9uCiAgICAgfQogfQogCitzdWIgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlCit7CisgICAg
cmV0dXJuIGlmIGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVjdHVyZTsKKyAgICAkbmF0aXZlQXJjaGl0
ZWN0dXJlID0gYHVuYW1lIC1tYDsKKyAgICBjaG9tcCAkbmF0aXZlQXJjaGl0ZWN0dXJlOworCisg
ICAgJG5hdGl2ZUFyY2hpdGVjdHVyZSA9ICJ4ODZfNjQiIGlmIChub3QgZGVmaW5lZCAkbmF0aXZl
QXJjaGl0ZWN0dXJlKTsKKyAgICAkbmF0aXZlQXJjaGl0ZWN0dXJlID0gImFybTY0IiBpZiAoJG5h
dGl2ZUFyY2hpdGVjdHVyZSA9fiAvXmVwZXJtLyk7Cit9CisKIHN1YiBkZXRlcm1pbmVBcmNoaXRl
Y3R1cmUKIHsKICAgICByZXR1cm4gaWYgZGVmaW5lZCAkYXJjaGl0ZWN0dXJlOwotICAgICMgbWFr
ZSBzdXJlICRhcmNoaXRlY3R1cmUgaXMgZGVmaW5lZCBpbiBhbGwgY2FzZXMKLSAgICAkYXJjaGl0
ZWN0dXJlID0gIiI7CiAKICAgICBkZXRlcm1pbmVCYXNlUHJvZHVjdERpcigpOwogICAgIGRldGVy
bWluZVhjb2RlU0RLKCk7CisgICAgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlKCk7CisgICAg
JGFyY2hpdGVjdHVyZSA9ICRuYXRpdmVBcmNoaXRlY3R1cmU7CiAKICAgICBpZiAoaXNBcHBsZUNv
Y29hV2ViS2l0KCkpIHsKICAgICAgICAgaWYgKG9wZW4gQVJDSElURUNUVVJFLCAiJGJhc2VQcm9k
dWN0RGlyL0FyY2hpdGVjdHVyZSIpIHsKQEAgLTM2NywyMCArMzc4LDEyIEBAIHN1YiBkZXRlcm1p
bmVBcmNoaXRlY3R1cmUKICAgICAgICAgaWYgKCRhcmNoaXRlY3R1cmUpIHsKICAgICAgICAgICAg
IGNob21wICRhcmNoaXRlY3R1cmU7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAo
bm90IGRlZmluZWQgJHhjb2RlU0RLIG9yICR4Y29kZVNESyA9fiAvXihcLyR8bWFjb3N4KS8pIHsK
LSAgICAgICAgICAgICAgICBteSAkc3VwcG9ydHM2NEJpdCA9IGBzeXNjdGwgLW4gaHcub3B0aW9u
YWwueDg2XzY0YDsKLSAgICAgICAgICAgICAgICBjaG9tcCAkc3VwcG9ydHM2NEJpdDsKLSAgICAg
ICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCcgaWYgJHN1cHBvcnRzNjRCaXQ7Ci0g
ICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsgPX4gL15pcGhvbmVzaW11bGF0b3IvKSB7Ci0g
ICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICd4ODZfNjQnOwotICAgICAgICAgICAgfSBl
bHNpZiAoJHhjb2RlU0RLID1+IC9eaXBob25lb3MvKSB7CisgICAgICAgICAgICBpZiAoJHhjb2Rl
U0RLID1+IC9eaXBob25lb3MvKSB7CiAgICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICdh
cm02NCc7CiAgICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsgPX4gL153YXRjaHNpbXVsYXRv
ci8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2kzODYnOwogICAgICAgICAg
ICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9ed2F0Y2hvcy8pIHsKICAgICAgICAgICAgICAgICAk
YXJjaGl0ZWN0dXJlID0gJ2FybTY0XzMyIGFybTY0ZSBhcm12N2snOwotICAgICAgICAgICAgfSBl
bHNpZiAoJHhjb2RlU0RLID1+IC9eYXBwbGV0dnNpbXVsYXRvci8pIHsKLSAgICAgICAgICAgICAg
ICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCc7CiAgICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVT
REsgPX4gL15hcHBsZXR2b3MvKSB7CiAgICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICdh
cm02NCc7CiAgICAgICAgICAgICB9CkBAIC00MDMsMTQgKzQwNiw2IEBAIHN1YiBkZXRlcm1pbmVB
cmNoaXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghaXNBbnlXaW5kb3dzKCkp
IHsKLSAgICAgICAgaWYgKCEkYXJjaGl0ZWN0dXJlKSB7Ci0gICAgICAgICAgICAjIEZhbGwgYmFj
ayB0byBvdXRwdXQgb2YgYHVuYW1lIC1tJywgaWYgaXQgaXMgcHJlc2VudC4KLSAgICAgICAgICAg
ICRhcmNoaXRlY3R1cmUgPSBgdW5hbWUgLW1gOwotICAgICAgICAgICAgY2hvbXAgJGFyY2hpdGVj
dHVyZTsKLSAgICAgICAgfQotICAgIH0KLQogICAgICRhcmNoaXRlY3R1cmUgPSAneDg2XzY0JyBp
ZiAkYXJjaGl0ZWN0dXJlID1+IC9hbWQ2NC9pOwogICAgICRhcmNoaXRlY3R1cmUgPSAnYXJtNjQn
IGlmICRhcmNoaXRlY3R1cmUgPX4gL2FhcmNoNjQvaTsKIH0KQEAgLTEwNDAsNiArMTAzNSwxMiBA
QCBzdWIgcGFzc2VkQXJjaGl0ZWN0dXJlCiAgICAgcmV0dXJuICRwYXNzZWRBcmNoaXRlY3R1cmU7
CiB9CiAKK3N1YiBuYXRpdmVBcmNoaXRlY3R1cmUoKQoreworICAgIGRldGVybWluZU5hdGl2ZUFy
Y2hpdGVjdHVyZSgpOworICAgIHJldHVybiAkbmF0aXZlQXJjaGl0ZWN0dXJlOworfQorCiBzdWIg
YXJjaGl0ZWN0dXJlKCkKIHsKICAgICBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402573</attachid>
            <date>2020-06-23 11:18:18 -0700</date>
            <delta_ts>2020-06-25 10:29:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213487-20200623111817.patch</filename>
            <type>text/plain</type>
            <size>13199</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzM2MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA2LTIyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2ls
aWNvbiBydW5uaW5nIHg4NiBwcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ2MDY2
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKyAgICAgICAgKGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQpOiBBZGQgLS1hcmNoaXRlY3R1cmUgZmxhZy4KKyAgICAgICAgKHJ1blRlc3QpOiBS
dW4gdGVzdCBzdWl0ZSB3aXRoIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKHJ1bkpT
Q1N0cmVzc1Rlc3RzKTogUGFzcyBhcmNoaXRlY3R1cmUgdG8gcnVuLWpzYy1zdHJlc3MtdGVzdHMu
CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRlcm1pbmVOYXRpdmVBcmNoaXRlY3R1cmUp
OiBBZGQgZnVuY3Rpb24gdG8gZGV0ZXJtaW5lIG1hY2hpbmUncyBuYXRpdmUgYXJjaGl0ZWN0dXJl
LgorICAgICAgICAoZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKTogTGV2ZXJhZ2UgdGhlIG5hdGl2ZUFy
Y2hpdGVjdHVyZSBpbnN0ZWFkIG9mIGhhcmQtY29kaW5nIHNpbXVsYXRvcgorICAgICAgICBhcmNo
aXRlY3R1cmVzLgorICAgICAgICAobmF0aXZlQXJjaGl0ZWN0dXJlKTogUmV0dXJuIG5hdGl2ZUFy
Y2hpdGVjdHVyZS4KKwogMjAyMC0wNi0yMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBUEkgVGVzdCBXZWFrTGlua2luZy5XZWFrSW1wb3J0IGZhaWxz
IG9uIGFybTY0CkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwkocmV2
aXNpb24gMjYzMzYyKQorKysgVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJ
KHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsNyBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRo
ID0gIi91c3IvbGliL2xpYmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9z
dCA9IDA7CiBteSAkbW9kZWwgPSAwOworbXkgJGFyY2hzID0gbmF0aXZlQXJjaGl0ZWN0dXJlKCk7
CiBteSAkdmVyc2lvbjsKIG15ICR2ZXJzaW9uTmFtZTsKIG15ICRzZGs7CkBAIC0yMzEsNiArMjMy
LDcgQEAgbXkgJGZpbHRlcjsKIG15ICR1c2FnZSA9IDw8RU9GOwogVXNhZ2U6ICRwcm9ncmFtTmFt
ZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0byBidWlsZCBzeXN0ZW1dCiAgIC0taGVscCAg
ICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhpcyBoZWxwIG1lc3NhZ2UKKyAgLS1hcmNoaXRl
Y3R1cmUgICAgICAgICAgICAgICAgQXR0ZW1wdCB0byBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2hp
dGVjdHVyZSBvZiBhIG1hY2hpbmUuCiAgIC0tcm9vdD0gICAgICAgICAgICAgICAgICAgICAgIFBh
dGggdG8gcHJlLWJ1aWx0IHJvb3QgY29udGFpbmluZyBqc2MKICAgLS1bbm8tXWZ0bC1qaXQgICAg
ICAgICAgICAgICAgVHVybiB0aGUgRlRMIEpJVCBvbiBvciBvZmYKICAgLS1bbm8tXWJ1aWxkICAg
ICAgICAgICAgICAgICAgQ2hlY2sgKG9yIGRvbid0IGNoZWNrKSB0byBzZWUgaWYgdGhlIGpzYyBi
dWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0OiAkYnVpbGRKU0NEZWZhdWx0KQpAQCAtMzI3LDYg
KzMyOSw3IEBAIEdldE9wdGlvbnMoCiAgICAgJ3RhcmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGws
CiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhvc3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9k
ZWwsCisgICAgJ2FyY2hpdGVjdHVyZT1zJyA9PiBcJGFyY2hzLAogICAgICd2ZXJzaW9uPXMnID0+
IFwkdmVyc2lvbiwKICAgICAndmVyc2lvbi1uYW1lPXMnID0+IFwkdmVyc2lvbk5hbWUsCiAgICAg
J3Nkaz1zJyA9PiBcJHNkaywKQEAgLTM1MCw2ICszNTMsMTEgQEAgR2V0T3B0aW9ucygKICAgICAn
YnVpbGRib3Qtd29ya2VyPXMnID0+IFwkYnVpbGRib3RXb3JrZXIsCiApOwogCisjIEZvciBydW5u
aW5nIHRlc3RzLCBhcm02NGUgc2hvdWxkIG1hcCB0byBhcm02NAorJGFyY2hzID0gImFybTY0IiBp
ZiAkYXJjaHMgZXEgImFybTY0ZSI7CitpZiAoJGFyY2hzIG5lIG5hdGl2ZUFyY2hpdGVjdHVyZSgp
ICYmIChuYXRpdmVBcmNoaXRlY3R1cmUoKSBuZSAiYXJtNjQiIHx8ICFpc0FwcGxlTWFjV2ViS2l0
KCkpKSB7CisgICAgZGllICJDYW5ub3QgcnVuIHRlc3RzIHdpdGggJGFyY2hzIG9uIHRoaXMgbWFj
aGluZSI7Cit9CiAKIG15ICRzcGVjaWZpY1Rlc3RzU3BlY2lmaWVkID0gMDsKIGlmICgkcnVuVGVz
dE1hc20gPT0gRE9fUlVOCkBAIC00NDcsNyArNDU1LDcgQEAgc3ViIGNvbmZpZ3VyYXRpb25Gb3JV
cGxvYWQoKQogCiAgICAgbXkgJHJlc3VsdCA9IHsKICAgICAgICAgcGxhdGZvcm0gPT4gJHBsYXRm
b3JtLAotICAgICAgICBhcmNoaXRlY3R1cmUgPT4gYXJjaGl0ZWN0dXJlKCksCisgICAgICAgIGFy
Y2hpdGVjdHVyZSA9PiAkYXJjaHMsCiAgICAgICAgIGlzX3NpbXVsYXRvciA9PiAkc2ltdWxhdG9y
LAogICAgICAgICBzdHlsZSA9PiBsYyhjb25maWd1cmF0aW9uKCkpLAogICAgICAgICB2ZXJzaW9u
ID0+ICIkdmVyc2lvbi0+e21ham9yfS4kdmVyc2lvbi0+e21pbm9yfS4kdmVyc2lvbi0+e3N1Ym1p
bm9yfSIsCkBAIC01NDksNiArNTU3LDcgQEAgc3ViIHJ1blRlc3QgewogICAgIGNoZGlyKCRwcm9k
dWN0RGlyKSBvciBkaWUgIkZhaWxlZCB0byBzd2l0Y2ggZGlyZWN0b3J5IHRvICckcHJvZHVjdERp
cidcbiI7CiAgICAgbXkgQGNvbW1hbmQgPSAodGVzdFBhdGgoJHByb2R1Y3REaXIsICR0ZXN0TmFt
ZSkpOwogICAgIHVuc2hpZnQgQGNvbW1hbmQsICgieGNydW4iLCAiLXNkayIsIHhjb2RlU0RLKCks
ICJzaW0iKSBpZiB3aWxsVXNlSU9TU2ltdWxhdG9yU0RLKCk7CisgICAgdW5zaGlmdCBAY29tbWFu
ZCwgKCIvdXNyL2Jpbi9hcmNoIiwgIi0kYXJjaHMiKSBpZiAkYXJjaHMgbmUgbmF0aXZlQXJjaGl0
ZWN0dXJlKCk7CiAgICAgdW5zaGlmdCBAY29tbWFuZCwgd3JhcHBlclByZWZpeElmTmVlZGVkKCkg
aWYgaXNHdGsoKSBvciBpc1dQRSgpOwogCiAgICAgaWYgKCRlbnZWYXJzIG5lICIiKSB7CkBAIC03
MTAsNyArNzE5LDcgQEAgc3ViIHJ1bkpTQ1N0cmVzc1Rlc3RzCiAgICAgJEVOVntMQU5HfT0iZW5f
VVMuVVRGLTgiOwogICAgIG15IEBqc2NTdHJlc3NEcml2ZXJDbWQgPSAoCiAgICAgICAgICIvdXNy
L2Jpbi9lbnYiLCAicnVieSIsICJUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzIiwK
LSAgICAgICAgIi1qIiwganNjUGF0aCgkcHJvZHVjdERpciksICItbyIsICRqc2NTdHJlc3NSZXN1
bHRzRGlyKTsKKyAgICAgICAgIi1qIiwganNjUGF0aCgkcHJvZHVjdERpciksICItbyIsICRqc2NT
dHJlc3NSZXN1bHRzRGlyLCAiLS1hcmNoIiwgJGFyY2hzKTsKIAogICAgIHB1c2goQGpzY1N0cmVz
c0RyaXZlckNtZCwgQHRlc3RMaXN0KTsKIApJbmRleDogVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0
cmVzcy10ZXN0cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCShyZXZpc2lvbiAyNjMzNjIpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRl
c3RzCSh3b3JraW5nIGNvcHkpCkBAIC0xMTQsNiArMTE0LDcgQEAgJHRlc3RSdW5uZXJUeXBlID0g
bmlsCiAkdGVzdFdyaXRlciA9ICJkZWZhdWx0IgogJHJlbW90ZUhvc3RzID0gW10KICRhcmNoaXRl
Y3R1cmUgPSBuaWwKKyR1c2luZ05hdGl2ZUFyY2hpdGVjdHVyZSA9IHRydWUKICRob3N0T1MgPSBu
aWwKICRtb2RlbCA9IG5pbAogJGZpbHRlciA9IG5pbApAQCAtNDczLDYgKzQ3NCwxMiBAQCBlbmQK
IAogJGhvc3RPUyA9IGRldGVybWluZU9TIHVubGVzcyAkaG9zdE9TCiAkYXJjaGl0ZWN0dXJlID0g
ZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlIHVubGVzcyAkYXJjaGl0ZWN0dXJlCisKKyMgRm9yIHJ1bm5p
bmcgdGVzdHMsIGFybTY0ZSBzaG91bGQgbWFwIHRvIGFybTY0CitpZiAkYXJjaGl0ZWN0dXJlID09
ICJhcm02NGUiCisgICAgJGFyY2hpdGVjdHVyZSA9ICJhcm02NCIKK2VuZAorCiAkaXNGVExQbGF0
Zm9ybSA9ICEoJGFyY2hpdGVjdHVyZSA9PSAieDg2IiB8fCAkYXJjaGl0ZWN0dXJlID09ICJhcm0i
IHx8ICRhcmNoaXRlY3R1cmUgPT0gIm1pcHMiIHx8ICRob3N0T1MgPT0gIndpbmRvd3MiIHx8ICRo
b3N0T1MgPT0gInBsYXlzdGF0aW9uIikKIAogaWYgJGFyY2hpdGVjdHVyZSA9PSAieDg2IgpAQCAt
NDgxLDYgKzQ4OCwxMCBAQCBpZiAkYXJjaGl0ZWN0dXJlID09ICJ4ODYiCiAgICAgJGppdFRlc3Rz
ID0gZmFsc2UKIGVuZAogCitpZiBgdW5hbWUgLW1gLmNob21wICE9ICRhcmNoaXRlY3R1cmUKKyAg
ICAkdXNpbmdOYXRpdmVBcmNoaXRlY3R1cmUgPSBmYWxzZQorZW5kCisKIGRlZiBpc0ZUTEVuYWJs
ZWQKICAgICAkaml0VGVzdHMgJiYgJGlzRlRMUGxhdGZvcm0KIGVuZApAQCAtNTU3LDYgKzU2OCwx
NCBAQCBkZWYgcGF0aFRvVk0KICAgICBwYXRoVG9CdW5kbGVSZXNvdXJjZUZyb21CZW5jaG1hcmtE
aXJlY3RvcnkoJGpzY1BhdGgpCiBlbmQKIAorZGVmIHZtQ29tbWFuZAorICAgIGlmICgkdXNpbmdO
YXRpdmVBcmNoaXRlY3R1cmUpCisgICAgICAgIFtwYXRoVG9WTS50b19zXQorICAgIGVsc2UKKyAg
ICAgICAgWyIvdXNyL2Jpbi9hcmNoIiwgIi0iICsgJGFyY2hpdGVjdHVyZSwgIHBhdGhUb1ZNLnRv
X3NdCisgICAgZW5kCitlbmQKKwogZGVmIHBhdGhUb0hlbHBlcnMKICAgICBwYXRoVG9CdW5kbGVS
ZXNvdXJjZUZyb21CZW5jaG1hcmtEaXJlY3RvcnkoIi5oZWxwZXJzIikKIGVuZApAQCAtNjQzLDEx
ICs2NjIsMTEgQEAgZGVmIHJlcXVpcmVPcHRpb25zKCpvcHRpb25zKQogZW5kCiAKIGRlZiBydW5X
aXRoT3V0cHV0SGFuZGxlcihraW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRS
dW5Db21tYW5kKGtpbmQsIFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3Bl
Y2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1
dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQsIHZt
Q29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBv
cHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFu
ZGxlcikKIGVuZAogCiBkZWYgcnVuV2l0aE91dHB1dEhhbmRsZXJXaXRob3V0QmFzZU9wdGlvbihr
aW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtw
YXRoVG9WTS50b19zXSArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsg
WyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAg
ICBhZGRSdW5Db21tYW5kKGtpbmQsIHZtQ29tbWFuZCArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9w
dGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBs
ZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuKGtpbmQsICpvcHRpb25zKQpAQCAtOTczLDEy
ICs5OTIsMTIgQEAgZGVmIHJ1blByb2ZpbGVyCiBlbmQKIAogZGVmIHJ1bkV4Y2VwdGlvbkZ1enoK
LSAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKFtwYXRoVG9WTS50b19zLCAiLS11c2VEb2xsYXJW
TT10cnVlIiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKKyAg
ICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVl
IiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKICAgICBhZGRS
dW5Db21tYW5kKCJleGNlcHRpb24tZnV6eiIsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpz
LWV4Y2VwdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIs
IHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6KG5hbWUsICpvcHRpb25zKQotICAgIHN1YkNvbW1hbmQgPSBlc2NhcGVBbGwoW3BhdGhUb1ZN
LnRvX3MsICItLXVzZURvbGxhclZNPXRydWUiLCAkYmVuY2htYXJrLnRvX3NdICsgb3B0aW9ucykK
KyAgICBzdWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10
cnVlIiwgJGJlbmNobWFyay50b19zXSArIG9wdGlvbnMpCiAgICAgYWRkUnVuQ29tbWFuZCgiZXhl
Y3V0YWJsZS1hbGxvY2F0aW9uLWZ1enotIiArIG5hbWUsIFsicGVybCIsIChwYXRoVG9IZWxwZXJz
ICsgImpzLWV4ZWN1dGFibGUtYWxsb2NhdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNp
bGVudE91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCkBAIC0xMDI3LDcg
KzEwNDYsNyBAQCBkZWYgcnVuVGVzdDI2Mihtb2RlLCBleGNlcHRpb24sIGluY2x1ZGVGCiAKICAg
ICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGluY2x1ZGVGaWxlcy5tYXAgeyB8ZnwgIi4uLyIg
KyBmIH0sICRjb2xsZWN0aW9uKQogCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0Vf
T1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMKKyAgICBhcmdzID0gdm1Db21t
YW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucwogICAgIGFy
Z3MgPDwgIi0tZXhjZXB0aW9uPSIgKyBleGNlcHRpb24gaWYgZmFpbHNXaXRoRXhjZXB0aW9uCiAg
ICAgYXJncyA8PCAiLS10ZXN0MjYyLWFzeW5jIiBpZiBpc0FzeW5jCiAgICAgYXJncyArPSBpbmNs
dWRlRmlsZXMKQEAgLTEwNjksNyArMTA4OCw3IEBAIGRlZiBwcmVwYXJlVGVzdDI2MkZpeHR1cmUK
IGVuZAogCiBkZWYgcnVuRVM2KG1vZGUpCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJB
U0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBbJGJlbmNobWFyay50
b19zXQorICAgIGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmlj
UmVxdWlyZWRPcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10KICAgICBjYXNlIG1vZGUKICAgICB3
aGVuIDpub3JtYWwKICAgICAgICAgZXJyb3JIYW5kbGVyID0gc2ltcGxlRXJyb3JIYW5kbGVyCkBA
IC0xMjY3LDcgKzEyODYsNyBAQCBkZWYgcnVuQ2hha3JhKG1vZGUsIGV4Y2VwdGlvbiwgYmFzZWxp
bmVGCiAgICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhDSEFLUkFURVNUU19QQVRILCBbImpz
Yy1saWIuanMiXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMubWFw
IHsgfGZ8ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKIAotICAgIGFyZ3MgPSBbcGF0aFRvVk0u
dG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zCisgICAg
YXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9w
dGlvbnMKICAgICBhcmdzICs9IEZUTF9PUFRJT05TIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgYXJn
cyArPSBFQUdFUl9PUFRJT05TCiAgICAgYXJncyA8PCAiLS1leGNlcHRpb249IiArIGV4Y2VwdGlv
biBpZiBmYWlsc1dpdGhFeGNlcHRpb24KQEAgLTEzMDgsNyArMTMyNyw3IEBAIGRlZiBydW5MYXlv
dXRUZXN0KGtpbmQsICpvcHRpb25zKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIu
Li8je3Rlc3ROYW1lfS1leHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKICAgICBw
cmVwYXJlRXh0cmFBYnNvbHV0ZUZpbGVzKExBWU9VVFRFU1RTX1BBVEgsIFsicmVzb3VyY2VzL3N0
YW5kYWxvbmUtcHJlLmpzIiwgInJlc291cmNlcy9zdGFuZGFsb25lLXBvc3QuanMiXSkKIAotICAg
IGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVx
dWlyZWRPcHRpb25zICsgb3B0aW9ucyArCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BU
SU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsKICAgICAgICAg
WyhQYXRobmFtZS5uZXcoInJlc291cmNlcyIpICsgInN0YW5kYWxvbmUtcHJlLmpzIikudG9fcywK
ICAgICAgICAgICRiZW5jaG1hcmsudG9fcywKICAgICAgICAgIChQYXRobmFtZS5uZXcoInJlc291
cmNlcyIpICsgInN0YW5kYWxvbmUtcG9zdC5qcyIpLnRvX3NdCkBAIC0xNDQ4LDcgKzE0NjcsNyBA
QCBlbmQKIGRlZiBydW5Db21wbGV4VGVzdChiZWZvcmUsIGFmdGVyLCBhZGRpdGlvbmFsRW52LCAq
b3B0aW9ucykKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGJlZm9yZS5tYXB7fHZ8IChQ
YXRobmFtZSgiLi4iKSArIHYpLnRvX3N9LCAkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFS
ZWxhdGl2ZUZpbGVzKGFmdGVyLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRj
b2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAk
dGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYu
dG9fc30gKyBbJGJlbmNobWFyay50b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQorICAgIGFy
Z3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRp
b25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50b19z
XSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQogICAgIGFkZFJ1bkNvbW1hbmQoImNvbXBsZXgiLCBh
cmdzLCBub2lzeU91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxF
bnYpCiBlbmQKIApAQCAtMTQ1OSw3ICsxNDc4LDcgQEAgZGVmIHJ1bk1vemlsbGFUZXN0KGtpbmQs
IG1vZGUsIGV4dHJhRmlsZQogICAgICAgICBraW5kID0gIm1vemlsbGEiCiAgICAgZW5kCiAgICAg
cHJlcGFyZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLm1hcHt8dnwgKFBhdGhuYW1lKCIu
LiIpICsgdikudG9fc30sICRjb2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10g
KyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyAr
IGV4dHJhRmlsZXMubWFwe3x2fCB2LnRvX3N9ICsgWyRiZW5jaG1hcmsudG9fc10KKyAgICBhcmdz
ID0gdm1Db21tYW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9u
cyArIG9wdGlvbnMgKyBleHRyYUZpbGVzLm1hcHt8dnwgdi50b19zfSArIFskYmVuY2htYXJrLnRv
X3NdCiAgICAgY2FzZSBtb2RlCiAgICAgd2hlbiA6bm9ybWFsCiAgICAgICAgIGVycm9ySGFuZGxl
ciA9IG1vemlsbGFFcnJvckhhbmRsZXIKQEAgLTE1MjksNyArMTU0OCw3IEBAIGRlZiBkZWZhdWx0
UnVuTW96aWxsYVRlc3QobW9kZSwgKmV4dHJhRmkKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0SW1w
bChraW5kLCBvcHRpb25zLCBhZGRpdGlvbmFsRW52KQotICAgIGFkZFJ1bkNvbW1hbmQoa2luZCwg
W3BhdGhUb1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0
aW9ucyArIG9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXSwgbm9pc3lPdXRwdXRIYW5kbGVyLCBu
b2lzeUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCisgICAgYWRkUnVuQ29tbWFuZChraW5k
LCB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25z
ICsgb3B0aW9ucyArIFskYmVuY2htYXJrLnRvX3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5vaXN5
RXJyb3JIYW5kbGVyLCAqYWRkaXRpb25hbEVudikKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0KGtp
bmQsICpvcHRpb25zKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjYzMzYyKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4
LDcgQEAgdXNlIGNvbnN0YW50IElPU19ERVZFTE9QTUVOVF9DRVJUSUZJQ0FURQogb3VyIEBFWFBP
UlRfT0s7CiAKIG15ICRhcmNoaXRlY3R1cmU7CitteSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwogbXkg
JGFzYW5Jc0VuYWJsZWQ7CiBteSAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKIG15ICRjb3ZlcmFn
ZUlzRW5hYmxlZDsKQEAgLTM1MCwxNCArMzUxLDIzIEBAIHN1YiBkZXRlcm1pbmVDb25maWd1cmF0
aW9uCiAgICAgfQogfQogCitzdWIgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlCit7CisgICAg
cmV0dXJuIGlmIGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVjdHVyZTsKKyAgICAkbmF0aXZlQXJjaGl0
ZWN0dXJlID0gYHVuYW1lIC1tYDsKKyAgICBjaG9tcCAkbmF0aXZlQXJjaGl0ZWN0dXJlOworCisg
ICAgJG5hdGl2ZUFyY2hpdGVjdHVyZSA9ICJ4ODZfNjQiIGlmIChub3QgZGVmaW5lZCAkbmF0aXZl
QXJjaGl0ZWN0dXJlKTsKK30KKwogc3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQogewogICAgIHJl
dHVybiBpZiBkZWZpbmVkICRhcmNoaXRlY3R1cmU7Ci0gICAgIyBtYWtlIHN1cmUgJGFyY2hpdGVj
dHVyZSBpcyBkZWZpbmVkIGluIGFsbCBjYXNlcwotICAgICRhcmNoaXRlY3R1cmUgPSAiIjsKIAog
ICAgIGRldGVybWluZUJhc2VQcm9kdWN0RGlyKCk7CiAgICAgZGV0ZXJtaW5lWGNvZGVTREsoKTsK
KyAgICBkZXRlcm1pbmVOYXRpdmVBcmNoaXRlY3R1cmUoKTsKKyAgICAkYXJjaGl0ZWN0dXJlID0g
JG5hdGl2ZUFyY2hpdGVjdHVyZTsKIAogICAgIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewog
ICAgICAgICBpZiAob3BlbiBBUkNISVRFQ1RVUkUsICIkYmFzZVByb2R1Y3REaXIvQXJjaGl0ZWN0
dXJlIikgewpAQCAtMzY3LDIwICszNzcsMTIgQEAgc3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQog
ICAgICAgICBpZiAoJGFyY2hpdGVjdHVyZSkgewogICAgICAgICAgICAgY2hvbXAgJGFyY2hpdGVj
dHVyZTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChub3QgZGVmaW5lZCAkeGNv
ZGVTREsgb3IgJHhjb2RlU0RLID1+IC9eKFwvJHxtYWNvc3gpLykgewotICAgICAgICAgICAgICAg
IG15ICRzdXBwb3J0czY0Qml0ID0gYHN5c2N0bCAtbiBody5vcHRpb25hbC54ODZfNjRgOwotICAg
ICAgICAgICAgICAgIGNob21wICRzdXBwb3J0czY0Qml0OwotICAgICAgICAgICAgICAgICRhcmNo
aXRlY3R1cmUgPSAneDg2XzY0JyBpZiAkc3VwcG9ydHM2NEJpdDsKLSAgICAgICAgICAgIH0gZWxz
aWYgKCR4Y29kZVNESyA9fiAvXmlwaG9uZXNpbXVsYXRvci8pIHsKLSAgICAgICAgICAgICAgICAk
YXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCc7Ci0gICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsg
PX4gL15pcGhvbmVvcy8pIHsKKyAgICAgICAgICAgIGlmICgkeGNvZGVTREsgPX4gL15pcGhvbmVv
cy8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybTY0JzsKICAgICAgICAg
ICAgIH0gZWxzaWYgKCR4Y29kZVNESyA9fiAvXndhdGNoc2ltdWxhdG9yLykgewogICAgICAgICAg
ICAgICAgICRhcmNoaXRlY3R1cmUgPSAnaTM4Nic7CiAgICAgICAgICAgICB9IGVsc2lmICgkeGNv
ZGVTREsgPX4gL153YXRjaG9zLykgewogICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSAn
YXJtNjRfMzIgYXJtNjRlIGFybXY3ayc7Ci0gICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsg
PX4gL15hcHBsZXR2c2ltdWxhdG9yLykgewotICAgICAgICAgICAgICAgICRhcmNoaXRlY3R1cmUg
PSAneDg2XzY0JzsKICAgICAgICAgICAgIH0gZWxzaWYgKCR4Y29kZVNESyA9fiAvXmFwcGxldHZv
cy8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybTY0JzsKICAgICAgICAg
ICAgIH0KQEAgLTQwMywxNCArNDA1LDYgQEAgc3ViIGRldGVybWluZUFyY2hpdGVjdHVyZQogICAg
ICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFpc0FueVdpbmRvd3MoKSkgewotICAgICAgICBpZiAo
ISRhcmNoaXRlY3R1cmUpIHsKLSAgICAgICAgICAgICMgRmFsbCBiYWNrIHRvIG91dHB1dCBvZiBg
dW5hbWUgLW0nLCBpZiBpdCBpcyBwcmVzZW50LgotICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9
IGB1bmFtZSAtbWA7Ci0gICAgICAgICAgICBjaG9tcCAkYXJjaGl0ZWN0dXJlOwotICAgICAgICB9
Ci0gICAgfQotCiAgICAgJGFyY2hpdGVjdHVyZSA9ICd4ODZfNjQnIGlmICRhcmNoaXRlY3R1cmUg
PX4gL2FtZDY0L2k7CiAgICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NCcgaWYgJGFyY2hpdGVjdHVy
ZSA9fiAvYWFyY2g2NC9pOwogfQpAQCAtMTA0MCw2ICsxMDM0LDEyIEBAIHN1YiBwYXNzZWRBcmNo
aXRlY3R1cmUKICAgICByZXR1cm4gJHBhc3NlZEFyY2hpdGVjdHVyZTsKIH0KIAorc3ViIG5hdGl2
ZUFyY2hpdGVjdHVyZSgpCit7CisgICAgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlKCk7Cisg
ICAgcmV0dXJuICRuYXRpdmVBcmNoaXRlY3R1cmU7Cit9CisKIHN1YiBhcmNoaXRlY3R1cmUoKQog
ewogICAgIGRldGVybWluZUFyY2hpdGVjdHVyZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402747</attachid>
            <date>2020-06-25 10:29:57 -0700</date>
            <delta_ts>2020-06-25 16:37:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213487-20200625102956.patch</filename>
            <type>text/plain</type>
            <size>15654</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzUwNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA2LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2ls
aWNvbiBydW5uaW5nIHg4NiBwcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ2MDY2
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKyAgICAgICAgKGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQpOiBBZGQgLS1hcmNoaXRlY3R1cmUgZmxhZy4KKyAgICAgICAgKHJ1blRlc3QpOiBS
dW4gdGVzdCBzdWl0ZSB3aXRoIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKHJ1bkpT
Q1N0cmVzc1Rlc3RzKTogUGFzcyBhcmNoaXRlY3R1cmUgdG8gcnVuLWpzYy1zdHJlc3MtdGVzdHMu
CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogQWRkIC0tZm9yY2UtYXJj
aGl0ZWN0dXJlIGZsYWcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAg
ICAoZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlKTogQWRkIGZ1bmN0aW9uIHRvIGRldGVybWlu
ZSBtYWNoaW5lJ3MgbmF0aXZlIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKGRldGVybWluZUFyY2hp
dGVjdHVyZSk6IExldmVyYWdlIHRoZSBuYXRpdmVBcmNoaXRlY3R1cmUgaW5zdGVhZCBvZiBoYXJk
LWNvZGluZyBzaW11bGF0b3IKKyAgICAgICAgYXJjaGl0ZWN0dXJlcy4KKyAgICAgICAgKGFyY2hp
dGVjdHVyZXNGb3JQcm9kdWN0cyk6IERldGVybWluZSB0aGUgYXJjaGl0ZWN0dXJlcyBzdXBwb3J0
ZWQgYnkgYSBnaXZlbiBidWlsZC4KKyAgICAgICAgKG5hdGl2ZUFyY2hpdGVjdHVyZSk6IFJldHVy
biBuYXRpdmVBcmNoaXRlY3R1cmUuCisKIDIwMjAtMDYtMjQgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjT1MgQmlnIFN1ciBidWlsZCBmaXguCkluZGV4
OiBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwkocmV2aXNpb24gMjYzNTA2KQor
KysgVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw2ICsxMDQsNyBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xp
YmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9k
ZWwgPSAwOworbXkgJGFyY2hzID0gdW5kZWY7CiBteSAkdmVyc2lvbjsKIG15ICR2ZXJzaW9uTmFt
ZTsKIG15ICRzZGs7CkBAIC0yMzEsNiArMjMyLDcgQEAgbXkgJGZpbHRlcjsKIG15ICR1c2FnZSA9
IDw8RU9GOwogVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0
byBidWlsZCBzeXN0ZW1dCiAgIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhp
cyBoZWxwIG1lc3NhZ2UKKyAgLS1hcmNoaXRlY3R1cmUgICAgICAgICAgICAgICAgQXR0ZW1wdCB0
byBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2hpdGVjdHVyZSBvZiBhIG1hY2hpbmUuCiAgIC0tcm9v
dD0gICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gcHJlLWJ1aWx0IHJvb3QgY29udGFpbmlu
ZyBqc2MKICAgLS1bbm8tXWZ0bC1qaXQgICAgICAgICAgICAgICAgVHVybiB0aGUgRlRMIEpJVCBv
biBvciBvZmYKICAgLS1bbm8tXWJ1aWxkICAgICAgICAgICAgICAgICAgQ2hlY2sgKG9yIGRvbid0
IGNoZWNrKSB0byBzZWUgaWYgdGhlIGpzYyBidWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0OiAk
YnVpbGRKU0NEZWZhdWx0KQpAQCAtMzI3LDYgKzMyOSw3IEBAIEdldE9wdGlvbnMoCiAgICAgJ3Rh
cmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGwsCiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhv
c3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9kZWwsCisgICAgJ2FyY2hpdGVjdHVyZT1zJyA9PiBc
JGFyY2hzLAogICAgICd2ZXJzaW9uPXMnID0+IFwkdmVyc2lvbiwKICAgICAndmVyc2lvbi1uYW1l
PXMnID0+IFwkdmVyc2lvbk5hbWUsCiAgICAgJ3Nkaz1zJyA9PiBcJHNkaywKQEAgLTM1MCw3ICsz
NTMsNiBAQCBHZXRPcHRpb25zKAogICAgICdidWlsZGJvdC13b3JrZXI9cycgPT4gXCRidWlsZGJv
dFdvcmtlciwKICk7CiAKLQogbXkgJHNwZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAwOwogaWYgKCRy
dW5UZXN0TWFzbSA9PSBET19SVU4KICAgIHx8ICRydW5UZXN0QWlyID09IERPX1JVTgpAQCAtNDQ5
LDcgKzQ1MSw3IEBAIHN1YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKIAogICAgIG15ICRyZXN1
bHQgPSB7CiAgICAgICAgIHBsYXRmb3JtID0+ICRwbGF0Zm9ybSwKLSAgICAgICAgYXJjaGl0ZWN0
dXJlID0+IGFyY2hpdGVjdHVyZSgpLAorICAgICAgICBhcmNoaXRlY3R1cmUgPT4gJGFyY2hzLAog
ICAgICAgICBpc19zaW11bGF0b3IgPT4gJHNpbXVsYXRvciwKICAgICAgICAgc3R5bGUgPT4gbGMo
Y29uZmlndXJhdGlvbigpKSwKICAgICAgICAgdmVyc2lvbiA9PiAiJHZlcnNpb24tPnttYWpvcn0u
JHZlcnNpb24tPnttaW5vcn0uJHZlcnNpb24tPntzdWJtaW5vcn0iLApAQCAtNDgzLDYgKzQ4NSwy
MSBAQCBpZiAoJHNob3dIZWxwKSB7CiB9CiAKIHNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3
ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworbXkgJGFyY2hzSW5CdWls
ZCA9IGFyY2hpdGVjdHVyZXNGb3JQcm9kdWN0cygpOworaWYgKGRlZmluZWQgJGFyY2hzKSB7Cisg
ICAgZGllICIkYXJjaHMgbm90IHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZWQgYmluYXJ5LCB3aGlj
aCBzdXBwb3J0cyAnJGFyY2hzSW5CdWlsZCciIGlmIGluZGV4KCRhcmNoc0luQnVpbGQsICRhcmNo
cykgPT0gLTE7Cit9IGVsc2UgeworICAgICMgRmFsbGJhY2sgaXMgeDg2XzY0LCB3aGljaCB3ZSBy
ZXBsYWNlIHdpdGggdGhlIG5hdGl2ZSBhcmNoaXRlY3R1cmUgaWYgdGhlIG5hdGl2ZSBhcmNoaXRl
Y3R1cmUgaXMgaW4gdGhlIHByb3ZpZGVkIGJ1aWxkCisgICAgJGFyY2hzID0gIng4Nl82NCI7Cisg
ICAgJGFyY2hzID0gbmF0aXZlQXJjaGl0ZWN0dXJlKCkgaWYgaW5kZXgoJGFyY2hzSW5CdWlsZCwg
bmF0aXZlQXJjaGl0ZWN0dXJlKCkpICE9IC0xOworfQorCisjIEZvciBydW5uaW5nIHRlc3RzLCBh
cm02NGUgc2hvdWxkIG1hcCB0byBhcm02NAorJGFyY2hzID0gImFybTY0IiBpZiAkYXJjaHMgZXEg
ImFybTY0ZSI7CitpZiAoJGFyY2hzIG5lIG5hdGl2ZUFyY2hpdGVjdHVyZSgpICYmIChuYXRpdmVB
cmNoaXRlY3R1cmUoKSBuZSAiYXJtNjQiIHx8ICFpc0FwcGxlTWFjV2ViS2l0KCkpKSB7CisgICAg
ZGllICJDYW5ub3QgcnVuIHRlc3RzIHdpdGggJGFyY2hzIG9uIHRoaXMgbWFjaGluZSI7Cit9CisK
IGNvbmZpZ3VyYXRpb25Gb3JVcGxvYWQoKSBpZiAoZGVmaW5lZCgkcmVwb3J0KSk7CiAKIGlmIChk
ZWZpbmVkKCRqc29uRmlsZU5hbWUpKSB7CkBAIC01NTEsNiArNTY4LDcgQEAgc3ViIHJ1blRlc3Qg
ewogICAgIGNoZGlyKCRwcm9kdWN0RGlyKSBvciBkaWUgIkZhaWxlZCB0byBzd2l0Y2ggZGlyZWN0
b3J5IHRvICckcHJvZHVjdERpcidcbiI7CiAgICAgbXkgQGNvbW1hbmQgPSAodGVzdFBhdGgoJHBy
b2R1Y3REaXIsICR0ZXN0TmFtZSkpOwogICAgIHVuc2hpZnQgQGNvbW1hbmQsICgieGNydW4iLCAi
LXNkayIsIHhjb2RlU0RLKCksICJzaW0iKSBpZiB3aWxsVXNlSU9TU2ltdWxhdG9yU0RLKCk7Cisg
ICAgdW5zaGlmdCBAY29tbWFuZCwgKCIvdXNyL2Jpbi9hcmNoIiwgIi0kYXJjaHMiKSBpZiAkYXJj
aHMgbmUgbmF0aXZlQXJjaGl0ZWN0dXJlKCk7CiAgICAgdW5zaGlmdCBAY29tbWFuZCwgd3JhcHBl
clByZWZpeElmTmVlZGVkKCkgaWYgaXNHdGsoKSBvciBpc1dQRSgpOwogCiAgICAgaWYgKCRlbnZW
YXJzIG5lICIiKSB7CkBAIC03MTIsNyArNzMwLDEyIEBAIHN1YiBydW5KU0NTdHJlc3NUZXN0cwog
ICAgICRFTlZ7TEFOR309ImVuX1VTLlVURi04IjsKICAgICBteSBAanNjU3RyZXNzRHJpdmVyQ21k
ID0gKAogICAgICAgICAiL3Vzci9iaW4vZW52IiwgInJ1YnkiLCAiVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cyIsCi0gICAgICAgICItaiIsIGpzY1BhdGgoJHByb2R1Y3REaXIpLCAi
LW8iLCAkanNjU3RyZXNzUmVzdWx0c0Rpcik7CisgICAgICAgICItaiIsIGpzY1BhdGgoJHByb2R1
Y3REaXIpLCAiLW8iLCAiLS1hcmNoIiwgJGFyY2hzKTsKKworICAgIGlmIChuYXRpdmVBcmNoaXRl
Y3R1cmUoKSAhPSAkYXJjaHMpIHsKKyAgICAgICAgcHVzaChAanNjU3RyZXNzRHJpdmVyQ21kLCAi
LS1mb3JjZS1hcmNoaXRlY3R1cmUiKTsKKyAgICAgICAgcHVzaChAanNjU3RyZXNzRHJpdmVyQ21k
LCAkYXJjaHMpOworICAgIH0KIAogICAgIHB1c2goQGpzY1N0cmVzc0RyaXZlckNtZCwgQHRlc3RM
aXN0KTsKIApJbmRleDogVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCShyZXZpc2lvbiAyNjM1
MDYpCisrKyBUb29scy9TY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTQsNiArMTE0LDcgQEAgJHRlc3RSdW5uZXJUeXBlID0gbmlsCiAkdGVzdFdyaXRlciA9
ICJkZWZhdWx0IgogJHJlbW90ZUhvc3RzID0gW10KICRhcmNoaXRlY3R1cmUgPSBuaWwKKyRmb3Jj
ZUFyY2hpdGVjdHVyZSA9IG5pbAogJGhvc3RPUyA9IG5pbAogJG1vZGVsID0gbmlsCiAkZmlsdGVy
ID0gbmlsCkBAIC0xMzksNiArMTQwLDcgQEAgZGVmIHVzYWdlCiAgICAgcHV0cyAiLS1ydW4tYnVu
ZGxlICAgICAgICAgICAgICAgIFJ1bnMgYSBidW5kbGUgcHJldmlvdXNseSBjcmVhdGVkIGJ5IHJ1
bi1qc2Mtc3RyZXNzLXRlc3RzLiIKICAgICBwdXRzICItLXRhcmJhbGwgW2ZpbGVOYW1lXSAgICAg
ICAgQ3JlYXRlcyBhIHRhcmJhbGwgb2YgdGhlIGZpbmFsIGJ1bmRsZS4gIFVzZSBuYW1lIGlmIHN1
cHBsaWVkIGZvciB0YXIgZmlsZS4iCiAgICAgcHV0cyAiLS1hcmNoICAgICAgICAgICAgICAgICAg
ICAgIFNwZWNpZnkgYXJjaGl0ZWN0dXJlIGluc3RlYWQgb2YgZGV0ZXJtaW5pbmcgZnJvbSBKYXZh
U2NyaXB0Q29yZSBidWlsZC4iCisgICAgcHV0cyAiLS1mb3JjZS1hcmNoaXRlY3R1cmUgICAgICAg
IE92ZXJyaWRlIHRoZSBhcmNoaXRlY3R1cmUgdG8gcnVuIHRlc3RzIHdpdGguIgogICAgIHB1dHMg
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmcuIHg4NiwgeDg2XzY0LCBhcm0uIgogICAg
IHB1dHMgIi0tb3MgICAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZ5IG9zIGluc3RlYWQgb2Yg
ZGV0ZXJtaW5pbmcgZnJvbSBKYXZhU2NyaXB0Q29yZSBidWlsZC4iCiAgICAgcHV0cyAiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGUuZy4gZGFyd2luLCBsaW51eCAmIHdpbmRvd3MuIgpAQCAt
MTgwLDYgKzE4Miw3IEBAIEdldG9wdExvbmcubmV3KFsnLS1oZWxwJywgJy1oJywgR2V0b3B0TG8K
ICAgICAgICAgICAgICAgIFsnLS10YXJiYWxsJywgR2V0b3B0TG9uZzo6T1BUSU9OQUxfQVJHVU1F
TlRdLAogICAgICAgICAgICAgICAgWyctLWZvcmNlLXZtLWNvcHknLCBHZXRvcHRMb25nOjpOT19B
UkdVTUVOVF0sCiAgICAgICAgICAgICAgICBbJy0tYXJjaCcsIEdldG9wdExvbmc6OlJFUVVJUkVE
X0FSR1VNRU5UXSwKKyAgICAgICAgICAgICAgIFsnLS1mb3JjZS1hcmNoaXRlY3R1cmUnLCBHZXRv
cHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCiAgICAgICAgICAgICAgICBbJy0tb3MnLCBHZXRv
cHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCiAgICAgICAgICAgICAgICBbJy0tc2hlbGwtcnVu
bmVyJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAogICAgICAgICAgICAgICAgWyctLW1ha2Ut
cnVubmVyJywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLApAQCAtMjQ3LDYgKzI1MCw4IEBAIEdl
dG9wdExvbmcubmV3KFsnLS1oZWxwJywgJy1oJywgR2V0b3B0TG8KICAgICAgICAgJGZpbHRlciA9
IFJlZ2V4cC5uZXcoYXJnKQogICAgIHdoZW4gJy0tYXJjaCcKICAgICAgICAgJGFyY2hpdGVjdHVy
ZSA9IGFyZworICAgIHdoZW4gJy0tZm9yY2UtYXJjaGl0ZWN0dXJlJworICAgICAgICAkZm9yY2VB
cmNoaXRlY3R1cmUgPSBhcmcKICAgICB3aGVuICctLW9zJwogICAgICAgICAkaG9zdE9TID0gYXJn
CiAgICAgd2hlbiAnLS1tb2RlbCcKQEAgLTU1Nyw2ICs1NjIsMTQgQEAgZGVmIHBhdGhUb1ZNCiAg
ICAgcGF0aFRvQnVuZGxlUmVzb3VyY2VGcm9tQmVuY2htYXJrRGlyZWN0b3J5KCRqc2NQYXRoKQog
ZW5kCiAKK2RlZiB2bUNvbW1hbmQKKyAgICBpZiAoJGZvcmNlQXJjaGl0ZWN0dXJlKQorICAgICAg
ICBbIi91c3IvYmluL2FyY2giLCAiLSIgKyAkZm9yY2VBcmNoaXRlY3R1cmUsICBwYXRoVG9WTS50
b19zXQorICAgIGVsc2UKKyAgICAgICAgW3BhdGhUb1ZNLnRvX3NdCisgICAgZW5kCitlbmQKKwog
ZGVmIHBhdGhUb0hlbHBlcnMKICAgICBwYXRoVG9CdW5kbGVSZXNvdXJjZUZyb21CZW5jaG1hcmtE
aXJlY3RvcnkoIi5oZWxwZXJzIikKIGVuZApAQCAtNjQzLDExICs2NTYsMTEgQEAgZGVmIHJlcXVp
cmVPcHRpb25zKCpvcHRpb25zKQogZW5kCiAKIGRlZiBydW5XaXRoT3V0cHV0SGFuZGxlcihraW5k
LCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtwYXRo
VG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMg
KyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9y
SGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQsIHZtQ29tbWFuZCArIEJBU0VfT1BUSU9O
UyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsu
dG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVu
V2l0aE91dHB1dEhhbmRsZXJXaXRob3V0QmFzZU9wdGlvbihraW5kLCBvdXRwdXRIYW5kbGVyLCAq
b3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtwYXRoVG9WTS50b19zXSArICR0ZXN0
U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91
dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQs
IHZtQ29tbWFuZCArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRi
ZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAog
CiBkZWYgcnVuKGtpbmQsICpvcHRpb25zKQpAQCAtOTczLDEyICs5ODYsMTIgQEAgZGVmIHJ1blBy
b2ZpbGVyCiBlbmQKIAogZGVmIHJ1bkV4Y2VwdGlvbkZ1enoKLSAgICBzdWJDb21tYW5kID0gZXNj
YXBlQWxsKFtwYXRoVG9WTS50b19zLCAiLS11c2VEb2xsYXJWTT10cnVlIiwgIi0tdXNlRXhjZXB0
aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKKyAgICBzdWJDb21tYW5kID0gZXNjYXBl
QWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVlIiwgIi0tdXNlRXhjZXB0aW9uRnV6
ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKICAgICBhZGRSdW5Db21tYW5kKCJleGNlcHRpb24t
ZnV6eiIsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpzLWV4Y2VwdGlvbi1mdXp6IikudG9f
cywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikK
IGVuZAogCiBkZWYgcnVuRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KG5hbWUsICpvcHRpb25zKQot
ICAgIHN1YkNvbW1hbmQgPSBlc2NhcGVBbGwoW3BhdGhUb1ZNLnRvX3MsICItLXVzZURvbGxhclZN
PXRydWUiLCAkYmVuY2htYXJrLnRvX3NdICsgb3B0aW9ucykKKyAgICBzdWJDb21tYW5kID0gZXNj
YXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVlIiwgJGJlbmNobWFyay50b19z
XSArIG9wdGlvbnMpCiAgICAgYWRkUnVuQ29tbWFuZCgiZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1
enotIiArIG5hbWUsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpzLWV4ZWN1dGFibGUtYWxs
b2NhdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIsIHNp
bXBsZUVycm9ySGFuZGxlcikKIGVuZAogCkBAIC0xMDI3LDcgKzEwNDAsNyBAQCBkZWYgcnVuVGVz
dDI2Mihtb2RlLCBleGNlcHRpb24sIGluY2x1ZGVGCiAKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2
ZUZpbGVzKGluY2x1ZGVGaWxlcy5tYXAgeyB8ZnwgIi4uLyIgKyBmIH0sICRjb2xsZWN0aW9uKQog
Ci0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lm
aWNSZXF1aXJlZE9wdGlvbnMKKyAgICBhcmdzID0gdm1Db21tYW5kICsgQkFTRV9PUFRJT05TICsg
JHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucwogICAgIGFyZ3MgPDwgIi0tZXhjZXB0aW9uPSIg
KyBleGNlcHRpb24gaWYgZmFpbHNXaXRoRXhjZXB0aW9uCiAgICAgYXJncyA8PCAiLS10ZXN0MjYy
LWFzeW5jIiBpZiBpc0FzeW5jCiAgICAgYXJncyArPSBpbmNsdWRlRmlsZXMKQEAgLTEwNjksNyAr
MTA4Miw3IEBAIGRlZiBwcmVwYXJlVGVzdDI2MkZpeHR1cmUKIGVuZAogCiBkZWYgcnVuRVM2KG1v
ZGUpCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3Bl
Y2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXQorICAgIGFyZ3MgPSB2bUNv
bW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgWyRi
ZW5jaG1hcmsudG9fc10KICAgICBjYXNlIG1vZGUKICAgICB3aGVuIDpub3JtYWwKICAgICAgICAg
ZXJyb3JIYW5kbGVyID0gc2ltcGxlRXJyb3JIYW5kbGVyCkBAIC0xMjY3LDcgKzEyODAsNyBAQCBk
ZWYgcnVuQ2hha3JhKG1vZGUsIGV4Y2VwdGlvbiwgYmFzZWxpbmVGCiAgICAgcHJlcGFyZUV4dHJh
QWJzb2x1dGVGaWxlcyhDSEFLUkFURVNUU19QQVRILCBbImpzYy1saWIuanMiXSkKICAgICBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMubWFwIHsgfGZ8ICIuLi8iICsgZiB9LCAk
Y29sbGVjdGlvbikKIAotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMg
KyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJB
U0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMKICAgICBhcmdzICs9IEZU
TF9PUFRJT05TIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgYXJncyArPSBFQUdFUl9PUFRJT05TCiAg
ICAgYXJncyA8PCAiLS1leGNlcHRpb249IiArIGV4Y2VwdGlvbiBpZiBmYWlsc1dpdGhFeGNlcHRp
b24KQEAgLTEzMDgsNyArMTMyMSw3IEBAIGRlZiBydW5MYXlvdXRUZXN0KGtpbmQsICpvcHRpb25z
KQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIuLi8je3Rlc3ROYW1lfS1leHBlY3Rl
ZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKICAgICBwcmVwYXJlRXh0cmFBYnNvbHV0ZUZp
bGVzKExBWU9VVFRFU1RTX1BBVEgsIFsicmVzb3VyY2VzL3N0YW5kYWxvbmUtcHJlLmpzIiwgInJl
c291cmNlcy9zdGFuZGFsb25lLXBvc3QuanMiXSkKIAotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9f
c10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9u
cyArCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNS
ZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsKICAgICAgICAgWyhQYXRobmFtZS5uZXcoInJlc291
cmNlcyIpICsgInN0YW5kYWxvbmUtcHJlLmpzIikudG9fcywKICAgICAgICAgICRiZW5jaG1hcmsu
dG9fcywKICAgICAgICAgIChQYXRobmFtZS5uZXcoInJlc291cmNlcyIpICsgInN0YW5kYWxvbmUt
cG9zdC5qcyIpLnRvX3NdCkBAIC0xNDQ4LDcgKzE0NjEsNyBAQCBlbmQKIGRlZiBydW5Db21wbGV4
VGVzdChiZWZvcmUsIGFmdGVyLCBhZGRpdGlvbmFsRW52LCAqb3B0aW9ucykKICAgICBwcmVwYXJl
RXh0cmFSZWxhdGl2ZUZpbGVzKGJlZm9yZS5tYXB7fHZ8IChQYXRobmFtZSgiLi4iKSArIHYpLnRv
X3N9LCAkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGFmdGVyLm1h
cHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRjb2xsZWN0aW9uKQotICAgIGFyZ3Mg
PSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRP
cHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50
b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQorICAgIGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNF
X09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGJlZm9y
ZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50b19zXSArIGFmdGVyLm1hcHt8dnwgdi50
b19zfQogICAgIGFkZFJ1bkNvbW1hbmQoImNvbXBsZXgiLCBhcmdzLCBub2lzeU91dHB1dEhhbmRs
ZXIsIHNpbXBsZUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCiBlbmQKIApAQCAtMTQ1OSw3
ICsxNDcyLDcgQEAgZGVmIHJ1bk1vemlsbGFUZXN0KGtpbmQsIG1vZGUsIGV4dHJhRmlsZQogICAg
ICAgICBraW5kID0gIm1vemlsbGEiCiAgICAgZW5kCiAgICAgcHJlcGFyZUV4dHJhUmVsYXRpdmVG
aWxlcyhleHRyYUZpbGVzLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRjb2xs
ZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVz
dFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGV4dHJhRmlsZXMubWFwe3x2fCB2
LnRvX3N9ICsgWyRiZW5jaG1hcmsudG9fc10KKyAgICBhcmdzID0gdm1Db21tYW5kICsgQkFTRV9P
UFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucyArIG9wdGlvbnMgKyBleHRyYUZp
bGVzLm1hcHt8dnwgdi50b19zfSArIFskYmVuY2htYXJrLnRvX3NdCiAgICAgY2FzZSBtb2RlCiAg
ICAgd2hlbiA6bm9ybWFsCiAgICAgICAgIGVycm9ySGFuZGxlciA9IG1vemlsbGFFcnJvckhhbmRs
ZXIKQEAgLTE1MjksNyArMTU0Miw3IEBAIGRlZiBkZWZhdWx0UnVuTW96aWxsYVRlc3QobW9kZSwg
KmV4dHJhRmkKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0SW1wbChraW5kLCBvcHRpb25zLCBhZGRp
dGlvbmFsRW52KQotICAgIGFkZFJ1bkNvbW1hbmQoa2luZCwgW3BhdGhUb1ZNLnRvX3NdICsgQkFT
RV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucyArIG9wdGlvbnMgKyBbJGJl
bmNobWFyay50b19zXSwgbm9pc3lPdXRwdXRIYW5kbGVyLCBub2lzeUVycm9ySGFuZGxlciwgKmFk
ZGl0aW9uYWxFbnYpCisgICAgYWRkUnVuQ29tbWFuZChraW5kLCB2bUNvbW1hbmQgKyBCQVNFX09Q
VElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIFskYmVuY2ht
YXJrLnRvX3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5vaXN5RXJyb3JIYW5kbGVyLCAqYWRkaXRp
b25hbEVudikKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0KGtpbmQsICpvcHRpb25zKQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjYzNTA2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRk
aXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAgdXNlIGNvbnN0YW50IElP
U19ERVZFTE9QTUVOVF9DRVJUSUZJQ0FURQogb3VyIEBFWFBPUlRfT0s7CiAKIG15ICRhcmNoaXRl
Y3R1cmU7CitteSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwogbXkgJGFzYW5Jc0VuYWJsZWQ7CiBteSAk
Zm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKIG15ICRjb3ZlcmFnZUlzRW5hYmxlZDsKQEAgLTM1MCwx
NCArMzUxLDI3IEBAIHN1YiBkZXRlcm1pbmVDb25maWd1cmF0aW9uCiAgICAgfQogfQogCitzdWIg
ZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlCit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQgJG5h
dGl2ZUFyY2hpdGVjdHVyZTsKKyAgICAkbmF0aXZlQXJjaGl0ZWN0dXJlID0gYHVuYW1lIC1tYDsK
KyAgICBjaG9tcCAkbmF0aXZlQXJjaGl0ZWN0dXJlOworICAgICRuYXRpdmVBcmNoaXRlY3R1cmUg
PSAieDg2XzY0IiBpZiAobm90IGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVjdHVyZSk7CisKKyAgICAj
IEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVuIDxyZGFyOi8vcHJvYmxlbS82NDIwODUzMj4gaXMgcmVz
b2x2ZWQKKyAgICBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgJiYgJG5hdGl2ZUFyY2hpdGVjdHVy
ZSBuZSAieDg2XzY0IikgeworICAgICAgICAkbmF0aXZlQXJjaGl0ZWN0dXJlID0gImFybTY0IjsK
KyAgICB9Cit9CisKIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKIHsKICAgICByZXR1cm4gaWYg
ZGVmaW5lZCAkYXJjaGl0ZWN0dXJlOwotICAgICMgbWFrZSBzdXJlICRhcmNoaXRlY3R1cmUgaXMg
ZGVmaW5lZCBpbiBhbGwgY2FzZXMKLSAgICAkYXJjaGl0ZWN0dXJlID0gIiI7CiAKICAgICBkZXRl
cm1pbmVCYXNlUHJvZHVjdERpcigpOwogICAgIGRldGVybWluZVhjb2RlU0RLKCk7CisgICAgZGV0
ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlKCk7CisgICAgJGFyY2hpdGVjdHVyZSA9ICRuYXRpdmVB
cmNoaXRlY3R1cmU7CiAKICAgICBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAgICAg
aWYgKG9wZW4gQVJDSElURUNUVVJFLCAiJGJhc2VQcm9kdWN0RGlyL0FyY2hpdGVjdHVyZSIpIHsK
QEAgLTM2NywyMCArMzgxLDEyIEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAg
aWYgKCRhcmNoaXRlY3R1cmUpIHsKICAgICAgICAgICAgIGNob21wICRhcmNoaXRlY3R1cmU7CiAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBpZiAobm90IGRlZmluZWQgJHhjb2RlU0RLIG9y
ICR4Y29kZVNESyA9fiAvXihcLyR8bWFjb3N4KS8pIHsKLSAgICAgICAgICAgICAgICBteSAkc3Vw
cG9ydHM2NEJpdCA9IGBzeXNjdGwgLW4gaHcub3B0aW9uYWwueDg2XzY0YDsKLSAgICAgICAgICAg
ICAgICBjaG9tcCAkc3VwcG9ydHM2NEJpdDsKLSAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJl
ID0gJ3g4Nl82NCcgaWYgJHN1cHBvcnRzNjRCaXQ7Ci0gICAgICAgICAgICB9IGVsc2lmICgkeGNv
ZGVTREsgPX4gL15pcGhvbmVzaW11bGF0b3IvKSB7Ci0gICAgICAgICAgICAgICAgJGFyY2hpdGVj
dHVyZSA9ICd4ODZfNjQnOwotICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9eaXBo
b25lb3MvKSB7CisgICAgICAgICAgICBpZiAoJHhjb2RlU0RLID1+IC9eaXBob25lb3MvKSB7CiAg
ICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NCc7CiAgICAgICAgICAgICB9IGVs
c2lmICgkeGNvZGVTREsgPX4gL153YXRjaHNpbXVsYXRvci8pIHsKICAgICAgICAgICAgICAgICAk
YXJjaGl0ZWN0dXJlID0gJ2kzODYnOwogICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+
IC9ed2F0Y2hvcy8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybTY0XzMy
IGFybTY0ZSBhcm12N2snOwotICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9eYXBw
bGV0dnNpbXVsYXRvci8pIHsKLSAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82
NCc7CiAgICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsgPX4gL15hcHBsZXR2b3MvKSB7CiAg
ICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NCc7CiAgICAgICAgICAgICB9CkBA
IC00MDMsMTQgKzQwOSw2IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGlmICghaXNBbnlXaW5kb3dzKCkpIHsKLSAgICAgICAgaWYgKCEkYXJjaGl0
ZWN0dXJlKSB7Ci0gICAgICAgICAgICAjIEZhbGwgYmFjayB0byBvdXRwdXQgb2YgYHVuYW1lIC1t
JywgaWYgaXQgaXMgcHJlc2VudC4KLSAgICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSBgdW5hbWUg
LW1gOwotICAgICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKLSAgICAgICAgfQotICAgIH0K
LQogICAgICRhcmNoaXRlY3R1cmUgPSAneDg2XzY0JyBpZiAkYXJjaGl0ZWN0dXJlID1+IC9hbWQ2
NC9pOwogICAgICRhcmNoaXRlY3R1cmUgPSAnYXJtNjQnIGlmICRhcmNoaXRlY3R1cmUgPX4gL2Fh
cmNoNjQvaTsKIH0KQEAgLTg0MCw2ICs4MzgsMTggQEAgc3ViIGpzY1Byb2R1Y3REaXIKICAgICBy
ZXR1cm4gZXhlY3V0YWJsZVByb2R1Y3REaXIoKTsKIH0KIAorc3ViIGFyY2hpdGVjdHVyZXNGb3JQ
cm9kdWN0cworeworICAgICMgTW9zdCBwb3J0cyBkb24ndCBoYXZlIGVtdWxhdGlvbiwgYXNzdW1l
IHRoYXQgdGhlIHVzZXIgZ2F2ZSB1cyBhbiBhY2N1cmF0ZSBhcmNoaXRlY3R1cmUKKyAgICBpZiAo
IWlzQXBwbGVDb2NvYVdlYktpdCgpKSB7CisgICAgICAgIHJldHVybiBkZXRlcm1pbmVBcmNoaXRl
Y3R1cmUoKTsKKyAgICB9CisgICAgbXkgJHdlYmtpdEJpbmFyeSA9IEZpbGU6OlNwZWMtPmNhdGRp
cihleGVjdXRhYmxlUHJvZHVjdERpcigpLCAiSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIiwgIkph
dmFTY3JpcHRDb3JlIik7CisgICAgbXkgJGFyY2hpdGVjdHVyZXMgPSBgL3Vzci9iaW4vbGlwbyAt
YXJjaHMgJHdlYmtpdEJpbmFyeWA7CisgICAgY2hvbXAoJGFyY2hpdGVjdHVyZXMpOworICAgIHJl
dHVybiAkYXJjaGl0ZWN0dXJlczsKK30KKwogc3ViIGNvbmZpZ3VyYXRpb24oKQogewogICAgIGRl
dGVybWluZUNvbmZpZ3VyYXRpb24oKTsKQEAgLTEwNDAsNiArMTA1MCwxMiBAQCBzdWIgcGFzc2Vk
QXJjaGl0ZWN0dXJlCiAgICAgcmV0dXJuICRwYXNzZWRBcmNoaXRlY3R1cmU7CiB9CiAKK3N1YiBu
YXRpdmVBcmNoaXRlY3R1cmUoKQoreworICAgIGRldGVybWluZU5hdGl2ZUFyY2hpdGVjdHVyZSgp
OworICAgIHJldHVybiAkbmF0aXZlQXJjaGl0ZWN0dXJlOworfQorCiBzdWIgYXJjaGl0ZWN0dXJl
KCkKIHsKICAgICBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402828</attachid>
            <date>2020-06-25 16:37:46 -0700</date>
            <delta_ts>2020-06-29 07:05:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213487-20200625163745.patch</filename>
            <type>text/plain</type>
            <size>15816</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzUwNikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIzIEBACisyMDIwLTA2LTI0ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBydW4tamF2YXNjcmlwdGNvcmUtdGVzdHM6IFN1cHBvcnQgQXBwbGUgU2ls
aWNvbiBydW5uaW5nIHg4NiBwcm9jZXNzZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzQ4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjQ2MDY2
Njc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0czoKKyAgICAgICAgKGNvbmZpZ3VyYXRpb25G
b3JVcGxvYWQpOiBBZGQgLS1hcmNoaXRlY3R1cmUgZmxhZy4KKyAgICAgICAgKHJ1blRlc3QpOiBS
dW4gdGVzdCBzdWl0ZSB3aXRoIHNwZWNpZmljIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKHJ1bkpT
Q1N0cmVzc1Rlc3RzKTogUGFzcyBhcmNoaXRlY3R1cmUgdG8gcnVuLWpzYy1zdHJlc3MtdGVzdHMu
CisgICAgICAgICogU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0czogQWRkIC0tZm9yY2UtYXJj
aGl0ZWN0dXJlIGZsYWcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAg
ICAoZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlKTogQWRkIGZ1bmN0aW9uIHRvIGRldGVybWlu
ZSBtYWNoaW5lJ3MgbmF0aXZlIGFyY2hpdGVjdHVyZS4KKyAgICAgICAgKGRldGVybWluZUFyY2hp
dGVjdHVyZSk6IExldmVyYWdlIHRoZSBuYXRpdmVBcmNoaXRlY3R1cmUgaW5zdGVhZCBvZiBoYXJk
LWNvZGluZyBzaW11bGF0b3IKKyAgICAgICAgYXJjaGl0ZWN0dXJlcy4KKyAgICAgICAgKGFyY2hp
dGVjdHVyZXNGb3JQcm9kdWN0cyk6IERldGVybWluZSB0aGUgYXJjaGl0ZWN0dXJlcyBzdXBwb3J0
ZWQgYnkgYSBnaXZlbiBidWlsZC4KKyAgICAgICAgKG5hdGl2ZUFyY2hpdGVjdHVyZSk6IFJldHVy
biBuYXRpdmVBcmNoaXRlY3R1cmUuCisKIDIwMjAtMDYtMjQgIEFsZXhleSBQcm9za3VyeWFrb3Yg
IDxhcEBhcHBsZS5jb20+CiAKICAgICAgICAgbWFjT1MgQmlnIFN1ciBidWlsZCBmaXguCkluZGV4
OiBUb29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3J1bi1qYXZhc2NyaXB0Y29yZS10ZXN0cwkocmV2aXNpb24gMjYzNTA2KQor
KysgVG9vbHMvU2NyaXB0cy9ydW4tamF2YXNjcmlwdGNvcmUtdGVzdHMJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw2ICsxMDQsNyBAQCBteSAkZ21hbGxvY0RlZmF1bHRQYXRoID0gIi91c3IvbGliL2xp
YmdtCiBteSAkY3JlYXRlVGFyYmFsbCA9IDA7CiBteSAkcmVtb3RlSG9zdCA9IDA7CiBteSAkbW9k
ZWwgPSAwOworbXkgJGFyY2hzID0gdW5kZWY7CiBteSAkdmVyc2lvbjsKIG15ICR2ZXJzaW9uTmFt
ZTsKIG15ICRzZGs7CkBAIC0yMzEsNiArMjMyLDcgQEAgbXkgJGZpbHRlcjsKIG15ICR1c2FnZSA9
IDw8RU9GOwogVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10gW29wdGlvbnMgdG8gcGFzcyB0
byBidWlsZCBzeXN0ZW1dCiAgIC0taGVscCAgICAgICAgICAgICAgICAgICAgICAgIFNob3cgdGhp
cyBoZWxwIG1lc3NhZ2UKKyAgLS1hcmNoaXRlY3R1cmUgICAgICAgICAgICAgICAgQXR0ZW1wdCB0
byBvdmVycmlkZSB0aGUgbmF0aXZlIGFyY2hpdGVjdHVyZSBvZiBhIG1hY2hpbmUuCiAgIC0tcm9v
dD0gICAgICAgICAgICAgICAgICAgICAgIFBhdGggdG8gcHJlLWJ1aWx0IHJvb3QgY29udGFpbmlu
ZyBqc2MKICAgLS1bbm8tXWZ0bC1qaXQgICAgICAgICAgICAgICAgVHVybiB0aGUgRlRMIEpJVCBv
biBvciBvZmYKICAgLS1bbm8tXWJ1aWxkICAgICAgICAgICAgICAgICAgQ2hlY2sgKG9yIGRvbid0
IGNoZWNrKSB0byBzZWUgaWYgdGhlIGpzYyBidWlsZCBpcyB1cC10by1kYXRlIChkZWZhdWx0OiAk
YnVpbGRKU0NEZWZhdWx0KQpAQCAtMzI3LDYgKzMyOSw3IEBAIEdldE9wdGlvbnMoCiAgICAgJ3Rh
cmJhbGwhJyA9PiBcJGNyZWF0ZVRhcmJhbGwsCiAgICAgJ3JlbW90ZT1zJyA9PiBcJHJlbW90ZUhv
c3QsCiAgICAgJ21vZGVsPXMnID0+IFwkbW9kZWwsCisgICAgJ2FyY2hpdGVjdHVyZT1zJyA9PiBc
JGFyY2hzLAogICAgICd2ZXJzaW9uPXMnID0+IFwkdmVyc2lvbiwKICAgICAndmVyc2lvbi1uYW1l
PXMnID0+IFwkdmVyc2lvbk5hbWUsCiAgICAgJ3Nkaz1zJyA9PiBcJHNkaywKQEAgLTM1MCw3ICsz
NTMsNiBAQCBHZXRPcHRpb25zKAogICAgICdidWlsZGJvdC13b3JrZXI9cycgPT4gXCRidWlsZGJv
dFdvcmtlciwKICk7CiAKLQogbXkgJHNwZWNpZmljVGVzdHNTcGVjaWZpZWQgPSAwOwogaWYgKCRy
dW5UZXN0TWFzbSA9PSBET19SVU4KICAgIHx8ICRydW5UZXN0QWlyID09IERPX1JVTgpAQCAtNDQ5
LDcgKzQ1MSw3IEBAIHN1YiBjb25maWd1cmF0aW9uRm9yVXBsb2FkKCkKIAogICAgIG15ICRyZXN1
bHQgPSB7CiAgICAgICAgIHBsYXRmb3JtID0+ICRwbGF0Zm9ybSwKLSAgICAgICAgYXJjaGl0ZWN0
dXJlID0+IGFyY2hpdGVjdHVyZSgpLAorICAgICAgICBhcmNoaXRlY3R1cmUgPT4gJGFyY2hzLAog
ICAgICAgICBpc19zaW11bGF0b3IgPT4gJHNpbXVsYXRvciwKICAgICAgICAgc3R5bGUgPT4gbGMo
Y29uZmlndXJhdGlvbigpKSwKICAgICAgICAgdmVyc2lvbiA9PiAiJHZlcnNpb24tPnttYWpvcn0u
JHZlcnNpb24tPnttaW5vcn0uJHZlcnNpb24tPntzdWJtaW5vcn0iLApAQCAtNDgzLDYgKzQ4NSwy
MSBAQCBpZiAoJHNob3dIZWxwKSB7CiB9CiAKIHNldENvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyKEN3
ZDo6YWJzX3BhdGgoJHJvb3QpKSBpZiAoZGVmaW5lZCgkcm9vdCkpOworbXkgJGFyY2hzSW5CdWls
ZCA9IGFyY2hpdGVjdHVyZXNGb3JQcm9kdWN0cygpOworaWYgKGRlZmluZWQgJGFyY2hzKSB7Cisg
ICAgZGllICIkYXJjaHMgbm90IHN1cHBvcnRlZCBieSB0aGUgcHJvdmlkZWQgYmluYXJ5LCB3aGlj
aCBzdXBwb3J0cyAnJGFyY2hzSW5CdWlsZCciIGlmIGluZGV4KCRhcmNoc0luQnVpbGQsICRhcmNo
cykgPT0gLTE7Cit9IGVsc2UgeworICAgICMgRmFsbGJhY2sgaXMgeDg2XzY0LCB3aGljaCB3ZSBy
ZXBsYWNlIHdpdGggdGhlIG5hdGl2ZSBhcmNoaXRlY3R1cmUgaWYgdGhlIG5hdGl2ZSBhcmNoaXRl
Y3R1cmUgaXMgaW4gdGhlIHByb3ZpZGVkIGJ1aWxkCisgICAgJGFyY2hzID0gIng4Nl82NCI7Cisg
ICAgJGFyY2hzID0gbmF0aXZlQXJjaGl0ZWN0dXJlKCkgaWYgaW5kZXgoJGFyY2hzSW5CdWlsZCwg
bmF0aXZlQXJjaGl0ZWN0dXJlKCkpICE9IC0xOworfQorCisjIEZvciBydW5uaW5nIHRlc3RzLCBh
cm02NGUgc2hvdWxkIG1hcCB0byBhcm02NAorJGFyY2hzID0gImFybTY0IiBpZiAkYXJjaHMgZXEg
ImFybTY0ZSI7CitpZiAoJGFyY2hzIG5lIG5hdGl2ZUFyY2hpdGVjdHVyZSgpICYmIChuYXRpdmVB
cmNoaXRlY3R1cmUoKSBuZSAiYXJtNjQiIHx8ICFpc0FwcGxlTWFjV2ViS2l0KCkpKSB7CisgICAg
ZGllICJDYW5ub3QgcnVuIHRlc3RzIHdpdGggJGFyY2hzIG9uIHRoaXMgbWFjaGluZSI7Cit9CisK
IGNvbmZpZ3VyYXRpb25Gb3JVcGxvYWQoKSBpZiAoZGVmaW5lZCgkcmVwb3J0KSk7CiAKIGlmIChk
ZWZpbmVkKCRqc29uRmlsZU5hbWUpKSB7CkBAIC01NTEsNiArNTY4LDcgQEAgc3ViIHJ1blRlc3Qg
ewogICAgIGNoZGlyKCRwcm9kdWN0RGlyKSBvciBkaWUgIkZhaWxlZCB0byBzd2l0Y2ggZGlyZWN0
b3J5IHRvICckcHJvZHVjdERpcidcbiI7CiAgICAgbXkgQGNvbW1hbmQgPSAodGVzdFBhdGgoJHBy
b2R1Y3REaXIsICR0ZXN0TmFtZSkpOwogICAgIHVuc2hpZnQgQGNvbW1hbmQsICgieGNydW4iLCAi
LXNkayIsIHhjb2RlU0RLKCksICJzaW0iKSBpZiB3aWxsVXNlSU9TU2ltdWxhdG9yU0RLKCk7Cisg
ICAgdW5zaGlmdCBAY29tbWFuZCwgKCIvdXNyL2Jpbi9hcmNoIiwgIi0kYXJjaHMiKSBpZiAkYXJj
aHMgbmUgbmF0aXZlQXJjaGl0ZWN0dXJlKCk7CiAgICAgdW5zaGlmdCBAY29tbWFuZCwgd3JhcHBl
clByZWZpeElmTmVlZGVkKCkgaWYgaXNHdGsoKSBvciBpc1dQRSgpOwogCiAgICAgaWYgKCRlbnZW
YXJzIG5lICIiKSB7CkBAIC03MTIsNyArNzMwLDEyIEBAIHN1YiBydW5KU0NTdHJlc3NUZXN0cwog
ICAgICRFTlZ7TEFOR309ImVuX1VTLlVURi04IjsKICAgICBteSBAanNjU3RyZXNzRHJpdmVyQ21k
ID0gKAogICAgICAgICAiL3Vzci9iaW4vZW52IiwgInJ1YnkiLCAiVG9vbHMvU2NyaXB0cy9ydW4t
anNjLXN0cmVzcy10ZXN0cyIsCi0gICAgICAgICItaiIsIGpzY1BhdGgoJHByb2R1Y3REaXIpLCAi
LW8iLCAkanNjU3RyZXNzUmVzdWx0c0Rpcik7CisgICAgICAgICItaiIsIGpzY1BhdGgoJHByb2R1
Y3REaXIpLCAiLW8iLCAkanNjU3RyZXNzUmVzdWx0c0RpciwgIi0tYXJjaCIsICRhcmNocyk7CisK
KyAgICBpZiAobmF0aXZlQXJjaGl0ZWN0dXJlKCkgIT0gJGFyY2hzKSB7CisgICAgICAgIHB1c2go
QGpzY1N0cmVzc0RyaXZlckNtZCwgIi0tZm9yY2UtYXJjaGl0ZWN0dXJlIik7CisgICAgICAgIHB1
c2goQGpzY1N0cmVzc0RyaXZlckNtZCwgJGFyY2hzKTsKKyAgICB9CiAKICAgICBwdXNoKEBqc2NT
dHJlc3NEcml2ZXJDbWQsIEB0ZXN0TGlzdCk7CiAKSW5kZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpz
Yy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0cwkocmV2aXNpb24gMjYzNTA2KQorKysgVG9vbHMvU2NyaXB0cy9ydW4tanNjLXN0cmVz
cy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMTE0LDYgKzExNCw3IEBAICR0ZXN0UnVubmVyVHlw
ZSA9IG5pbAogJHRlc3RXcml0ZXIgPSAiZGVmYXVsdCIKICRyZW1vdGVIb3N0cyA9IFtdCiAkYXJj
aGl0ZWN0dXJlID0gbmlsCiskZm9yY2VBcmNoaXRlY3R1cmUgPSBuaWwKICRob3N0T1MgPSBuaWwK
ICRtb2RlbCA9IG5pbAogJGZpbHRlciA9IG5pbApAQCAtMTM5LDYgKzE0MCw3IEBAIGRlZiB1c2Fn
ZQogICAgIHB1dHMgIi0tcnVuLWJ1bmRsZSAgICAgICAgICAgICAgICBSdW5zIGEgYnVuZGxlIHBy
ZXZpb3VzbHkgY3JlYXRlZCBieSBydW4tanNjLXN0cmVzcy10ZXN0cy4iCiAgICAgcHV0cyAiLS10
YXJiYWxsIFtmaWxlTmFtZV0gICAgICAgIENyZWF0ZXMgYSB0YXJiYWxsIG9mIHRoZSBmaW5hbCBi
dW5kbGUuICBVc2UgbmFtZSBpZiBzdXBwbGllZCBmb3IgdGFyIGZpbGUuIgogICAgIHB1dHMgIi0t
YXJjaCAgICAgICAgICAgICAgICAgICAgICBTcGVjaWZ5IGFyY2hpdGVjdHVyZSBpbnN0ZWFkIG9m
IGRldGVybWluaW5nIGZyb20gSmF2YVNjcmlwdENvcmUgYnVpbGQuIgorICAgIHB1dHMgIi0tZm9y
Y2UtYXJjaGl0ZWN0dXJlICAgICAgICBPdmVycmlkZSB0aGUgYXJjaGl0ZWN0dXJlIHRvIHJ1biB0
ZXN0cyB3aXRoLiIKICAgICBwdXRzICIgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5nLiB4
ODYsIHg4Nl82NCwgYXJtLiIKICAgICBwdXRzICItLW9zICAgICAgICAgICAgICAgICAgICAgICAg
U3BlY2lmeSBvcyBpbnN0ZWFkIG9mIGRldGVybWluaW5nIGZyb20gSmF2YVNjcmlwdENvcmUgYnVp
bGQuIgogICAgIHB1dHMgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLmcuIGRhcndpbiwg
bGludXggJiB3aW5kb3dzLiIKQEAgLTE4MCw2ICsxODIsNyBAQCBHZXRvcHRMb25nLm5ldyhbJy0t
aGVscCcsICctaCcsIEdldG9wdExvCiAgICAgICAgICAgICAgICBbJy0tdGFyYmFsbCcsIEdldG9w
dExvbmc6Ok9QVElPTkFMX0FSR1VNRU5UXSwKICAgICAgICAgICAgICAgIFsnLS1mb3JjZS12bS1j
b3B5JywgR2V0b3B0TG9uZzo6Tk9fQVJHVU1FTlRdLAogICAgICAgICAgICAgICAgWyctLWFyY2gn
LCBHZXRvcHRMb25nOjpSRVFVSVJFRF9BUkdVTUVOVF0sCisgICAgICAgICAgICAgICBbJy0tZm9y
Y2UtYXJjaGl0ZWN0dXJlJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAogICAgICAg
ICAgICAgICAgWyctLW9zJywgR2V0b3B0TG9uZzo6UkVRVUlSRURfQVJHVU1FTlRdLAogICAgICAg
ICAgICAgICAgWyctLXNoZWxsLXJ1bm5lcicsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwKICAg
ICAgICAgICAgICAgIFsnLS1tYWtlLXJ1bm5lcicsIEdldG9wdExvbmc6Ok5PX0FSR1VNRU5UXSwK
QEAgLTI0Nyw2ICsyNTAsOSBAQCBHZXRvcHRMb25nLm5ldyhbJy0taGVscCcsICctaCcsIEdldG9w
dExvCiAgICAgICAgICRmaWx0ZXIgPSBSZWdleHAubmV3KGFyZykKICAgICB3aGVuICctLWFyY2gn
CiAgICAgICAgICRhcmNoaXRlY3R1cmUgPSBhcmcKKyAgICB3aGVuICctLWZvcmNlLWFyY2hpdGVj
dHVyZScKKyAgICAgICAgJGFyY2hpdGVjdHVyZSA9IGFyZyB1bmxlc3MgJGFyY2hpdGVjdHVyZQor
ICAgICAgICAkZm9yY2VBcmNoaXRlY3R1cmUgPSBhcmcKICAgICB3aGVuICctLW9zJwogICAgICAg
ICAkaG9zdE9TID0gYXJnCiAgICAgd2hlbiAnLS1tb2RlbCcKQEAgLTU1Nyw2ICs1NjMsMTQgQEAg
ZGVmIHBhdGhUb1ZNCiAgICAgcGF0aFRvQnVuZGxlUmVzb3VyY2VGcm9tQmVuY2htYXJrRGlyZWN0
b3J5KCRqc2NQYXRoKQogZW5kCiAKK2RlZiB2bUNvbW1hbmQKKyAgICBpZiAoJGZvcmNlQXJjaGl0
ZWN0dXJlKQorICAgICAgICBbIi91c3IvYmluL2FyY2giLCAiLSIgKyAkZm9yY2VBcmNoaXRlY3R1
cmUsICBwYXRoVG9WTS50b19zXQorICAgIGVsc2UKKyAgICAgICAgW3BhdGhUb1ZNLnRvX3NdCisg
ICAgZW5kCitlbmQKKwogZGVmIHBhdGhUb0hlbHBlcnMKICAgICBwYXRoVG9CdW5kbGVSZXNvdXJj
ZUZyb21CZW5jaG1hcmtEaXJlY3RvcnkoIi5oZWxwZXJzIikKIGVuZApAQCAtNjQzLDExICs2NTcs
MTEgQEAgZGVmIHJlcXVpcmVPcHRpb25zKCpvcHRpb25zKQogZW5kCiAKIGRlZiBydW5XaXRoT3V0
cHV0SGFuZGxlcihraW5kLCBvdXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21t
YW5kKGtpbmQsIFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNS
ZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRs
ZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRSdW5Db21tYW5kKGtpbmQsIHZtQ29tbWFu
ZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25z
ICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikK
IGVuZAogCiBkZWYgcnVuV2l0aE91dHB1dEhhbmRsZXJXaXRob3V0QmFzZU9wdGlvbihraW5kLCBv
dXRwdXRIYW5kbGVyLCAqb3B0aW9ucykKLSAgICBhZGRSdW5Db21tYW5kKGtpbmQsIFtwYXRoVG9W
TS50b19zXSArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsgWyRiZW5j
aG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKKyAgICBhZGRS
dW5Db21tYW5kKGtpbmQsIHZtQ29tbWFuZCArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMg
KyBvcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10sIG91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9y
SGFuZGxlcikKIGVuZAogCiBkZWYgcnVuKGtpbmQsICpvcHRpb25zKQpAQCAtOTczLDEyICs5ODcs
MTIgQEAgZGVmIHJ1blByb2ZpbGVyCiBlbmQKIAogZGVmIHJ1bkV4Y2VwdGlvbkZ1enoKLSAgICBz
dWJDb21tYW5kID0gZXNjYXBlQWxsKFtwYXRoVG9WTS50b19zLCAiLS11c2VEb2xsYXJWTT10cnVl
IiwgIi0tdXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKKyAgICBzdWJD
b21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVlIiwgIi0t
dXNlRXhjZXB0aW9uRnV6ej10cnVlIiwgJGJlbmNobWFyay50b19zXSkKICAgICBhZGRSdW5Db21t
YW5kKCJleGNlcHRpb24tZnV6eiIsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpzLWV4Y2Vw
dGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91dHB1dEhhbmRsZXIsIHNpbXBs
ZUVycm9ySGFuZGxlcikKIGVuZAogCiBkZWYgcnVuRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KG5h
bWUsICpvcHRpb25zKQotICAgIHN1YkNvbW1hbmQgPSBlc2NhcGVBbGwoW3BhdGhUb1ZNLnRvX3Ms
ICItLXVzZURvbGxhclZNPXRydWUiLCAkYmVuY2htYXJrLnRvX3NdICsgb3B0aW9ucykKKyAgICBz
dWJDb21tYW5kID0gZXNjYXBlQWxsKHZtQ29tbWFuZCArIFsiLS11c2VEb2xsYXJWTT10cnVlIiwg
JGJlbmNobWFyay50b19zXSArIG9wdGlvbnMpCiAgICAgYWRkUnVuQ29tbWFuZCgiZXhlY3V0YWJs
ZS1hbGxvY2F0aW9uLWZ1enotIiArIG5hbWUsIFsicGVybCIsIChwYXRoVG9IZWxwZXJzICsgImpz
LWV4ZWN1dGFibGUtYWxsb2NhdGlvbi1mdXp6IikudG9fcywgc3ViQ29tbWFuZF0sIHNpbGVudE91
dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlcikKIGVuZAogCkBAIC0xMDI3LDcgKzEwNDEs
NyBAQCBkZWYgcnVuVGVzdDI2Mihtb2RlLCBleGNlcHRpb24sIGluY2x1ZGVGCiAKICAgICBwcmVw
YXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGluY2x1ZGVGaWxlcy5tYXAgeyB8ZnwgIi4uLyIgKyBmIH0s
ICRjb2xsZWN0aW9uKQogCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BUSU9O
UyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMKKyAgICBhcmdzID0gdm1Db21tYW5kICsg
QkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucwogICAgIGFyZ3MgPDwg
Ii0tZXhjZXB0aW9uPSIgKyBleGNlcHRpb24gaWYgZmFpbHNXaXRoRXhjZXB0aW9uCiAgICAgYXJn
cyA8PCAiLS10ZXN0MjYyLWFzeW5jIiBpZiBpc0FzeW5jCiAgICAgYXJncyArPSBpbmNsdWRlRmls
ZXMKQEAgLTEwNjksNyArMTA4Myw3IEBAIGRlZiBwcmVwYXJlVGVzdDI2MkZpeHR1cmUKIGVuZAog
CiBkZWYgcnVuRVM2KG1vZGUpCi0gICAgYXJncyA9IFtwYXRoVG9WTS50b19zXSArIEJBU0VfT1BU
SU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXQor
ICAgIGFyZ3MgPSB2bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWly
ZWRPcHRpb25zICsgWyRiZW5jaG1hcmsudG9fc10KICAgICBjYXNlIG1vZGUKICAgICB3aGVuIDpu
b3JtYWwKICAgICAgICAgZXJyb3JIYW5kbGVyID0gc2ltcGxlRXJyb3JIYW5kbGVyCkBAIC0xMjY3
LDcgKzEyODEsNyBAQCBkZWYgcnVuQ2hha3JhKG1vZGUsIGV4Y2VwdGlvbiwgYmFzZWxpbmVGCiAg
ICAgcHJlcGFyZUV4dHJhQWJzb2x1dGVGaWxlcyhDSEFLUkFURVNUU19QQVRILCBbImpzYy1saWIu
anMiXSkKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGV4dHJhRmlsZXMubWFwIHsgfGZ8
ICIuLi8iICsgZiB9LCAkY29sbGVjdGlvbikKIAotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10g
KyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zCisgICAgYXJncyA9
IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyArICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMK
ICAgICBhcmdzICs9IEZUTF9PUFRJT05TIGlmICRpc0ZUTFBsYXRmb3JtCiAgICAgYXJncyArPSBF
QUdFUl9PUFRJT05TCiAgICAgYXJncyA8PCAiLS1leGNlcHRpb249IiArIGV4Y2VwdGlvbiBpZiBm
YWlsc1dpdGhFeGNlcHRpb24KQEAgLTEzMDgsNyArMTMyMiw3IEBAIGRlZiBydW5MYXlvdXRUZXN0
KGtpbmQsICpvcHRpb25zKQogICAgIHByZXBhcmVFeHRyYVJlbGF0aXZlRmlsZXMoWyIuLi8je3Rl
c3ROYW1lfS1leHBlY3RlZC50eHQiXSwgJGJlbmNobWFya0RpcmVjdG9yeSkKICAgICBwcmVwYXJl
RXh0cmFBYnNvbHV0ZUZpbGVzKExBWU9VVFRFU1RTX1BBVEgsIFsicmVzb3VyY2VzL3N0YW5kYWxv
bmUtcHJlLmpzIiwgInJlc291cmNlcy9zdGFuZGFsb25lLXBvc3QuanMiXSkKIAotICAgIGFyZ3Mg
PSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRP
cHRpb25zICsgb3B0aW9ucyArCisgICAgYXJncyA9IHZtQ29tbWFuZCArIEJBU0VfT1BUSU9OUyAr
ICR0ZXN0U3BlY2lmaWNSZXF1aXJlZE9wdGlvbnMgKyBvcHRpb25zICsKICAgICAgICAgWyhQYXRo
bmFtZS5uZXcoInJlc291cmNlcyIpICsgInN0YW5kYWxvbmUtcHJlLmpzIikudG9fcywKICAgICAg
ICAgICRiZW5jaG1hcmsudG9fcywKICAgICAgICAgIChQYXRobmFtZS5uZXcoInJlc291cmNlcyIp
ICsgInN0YW5kYWxvbmUtcG9zdC5qcyIpLnRvX3NdCkBAIC0xNDQ4LDcgKzE0NjIsNyBAQCBlbmQK
IGRlZiBydW5Db21wbGV4VGVzdChiZWZvcmUsIGFmdGVyLCBhZGRpdGlvbmFsRW52LCAqb3B0aW9u
cykKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2ZUZpbGVzKGJlZm9yZS5tYXB7fHZ8IChQYXRobmFt
ZSgiLi4iKSArIHYpLnRvX3N9LCAkY29sbGVjdGlvbikKICAgICBwcmVwYXJlRXh0cmFSZWxhdGl2
ZUZpbGVzKGFmdGVyLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsgdikudG9fc30sICRjb2xsZWN0
aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNFX09QVElPTlMgKyAkdGVzdFNw
ZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30g
KyBbJGJlbmNobWFyay50b19zXSArIGFmdGVyLm1hcHt8dnwgdi50b19zfQorICAgIGFyZ3MgPSB2
bUNvbW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsg
b3B0aW9ucyArIGJlZm9yZS5tYXB7fHZ8IHYudG9fc30gKyBbJGJlbmNobWFyay50b19zXSArIGFm
dGVyLm1hcHt8dnwgdi50b19zfQogICAgIGFkZFJ1bkNvbW1hbmQoImNvbXBsZXgiLCBhcmdzLCBu
b2lzeU91dHB1dEhhbmRsZXIsIHNpbXBsZUVycm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCiBl
bmQKIApAQCAtMTQ1OSw3ICsxNDczLDcgQEAgZGVmIHJ1bk1vemlsbGFUZXN0KGtpbmQsIG1vZGUs
IGV4dHJhRmlsZQogICAgICAgICBraW5kID0gIm1vemlsbGEiCiAgICAgZW5kCiAgICAgcHJlcGFy
ZUV4dHJhUmVsYXRpdmVGaWxlcyhleHRyYUZpbGVzLm1hcHt8dnwgKFBhdGhuYW1lKCIuLiIpICsg
dikudG9fc30sICRjb2xsZWN0aW9uKQotICAgIGFyZ3MgPSBbcGF0aFRvVk0udG9fc10gKyBCQVNF
X09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0aW9ucyArIGV4dHJh
RmlsZXMubWFwe3x2fCB2LnRvX3N9ICsgWyRiZW5jaG1hcmsudG9fc10KKyAgICBhcmdzID0gdm1D
b21tYW5kICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucyArIG9w
dGlvbnMgKyBleHRyYUZpbGVzLm1hcHt8dnwgdi50b19zfSArIFskYmVuY2htYXJrLnRvX3NdCiAg
ICAgY2FzZSBtb2RlCiAgICAgd2hlbiA6bm9ybWFsCiAgICAgICAgIGVycm9ySGFuZGxlciA9IG1v
emlsbGFFcnJvckhhbmRsZXIKQEAgLTE1MjksNyArMTU0Myw3IEBAIGRlZiBkZWZhdWx0UnVuTW96
aWxsYVRlc3QobW9kZSwgKmV4dHJhRmkKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0SW1wbChraW5k
LCBvcHRpb25zLCBhZGRpdGlvbmFsRW52KQotICAgIGFkZFJ1bkNvbW1hbmQoa2luZCwgW3BhdGhU
b1ZNLnRvX3NdICsgQkFTRV9PUFRJT05TICsgJHRlc3RTcGVjaWZpY1JlcXVpcmVkT3B0aW9ucyAr
IG9wdGlvbnMgKyBbJGJlbmNobWFyay50b19zXSwgbm9pc3lPdXRwdXRIYW5kbGVyLCBub2lzeUVy
cm9ySGFuZGxlciwgKmFkZGl0aW9uYWxFbnYpCisgICAgYWRkUnVuQ29tbWFuZChraW5kLCB2bUNv
bW1hbmQgKyBCQVNFX09QVElPTlMgKyAkdGVzdFNwZWNpZmljUmVxdWlyZWRPcHRpb25zICsgb3B0
aW9ucyArIFskYmVuY2htYXJrLnRvX3NdLCBub2lzeU91dHB1dEhhbmRsZXIsIG5vaXN5RXJyb3JI
YW5kbGVyLCAqYWRkaXRpb25hbEVudikKIGVuZAogCiBkZWYgcnVuTm9pc3lUZXN0KGtpbmQsICpv
cHRpb25zKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQkocmV2aXNpb24gMjYzNTA2KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjgsNiArMTI4LDcgQEAg
dXNlIGNvbnN0YW50IElPU19ERVZFTE9QTUVOVF9DRVJUSUZJQ0FURQogb3VyIEBFWFBPUlRfT0s7
CiAKIG15ICRhcmNoaXRlY3R1cmU7CitteSAkbmF0aXZlQXJjaGl0ZWN0dXJlOwogbXkgJGFzYW5J
c0VuYWJsZWQ7CiBteSAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKIG15ICRjb3ZlcmFnZUlzRW5h
YmxlZDsKQEAgLTM1MCwxNCArMzUxLDI4IEBAIHN1YiBkZXRlcm1pbmVDb25maWd1cmF0aW9uCiAg
ICAgfQogfQogCitzdWIgZGV0ZXJtaW5lTmF0aXZlQXJjaGl0ZWN0dXJlCit7CisgICAgcmV0dXJu
IGlmIGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVjdHVyZTsKKyAgICAkbmF0aXZlQXJjaGl0ZWN0dXJl
ID0gYHVuYW1lIC1tYDsKKyAgICBjaG9tcCAkbmF0aXZlQXJjaGl0ZWN0dXJlOworICAgICRuYXRp
dmVBcmNoaXRlY3R1cmUgPSAieDg2XzY0IiBpZiAobm90IGRlZmluZWQgJG5hdGl2ZUFyY2hpdGVj
dHVyZSk7CisKKyAgICAjIEZJWE1FOiBSZW1vdmUgdGhpcyB3aGVuIDxyZGFyOi8vcHJvYmxlbS82
NDIwODUzMj4gaXMgcmVzb2x2ZWQKKyAgICBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgJiYgJG5h
dGl2ZUFyY2hpdGVjdHVyZSBuZSAieDg2XzY0IikgeworICAgICAgICAkbmF0aXZlQXJjaGl0ZWN0
dXJlID0gImFybTY0IjsKKyAgICB9CisgICAgZGllICInYXJtNjRlJyBpcyBhbiBpbnZhbGlkIG5h
dGl2ZSBhcmNoaXRlY3R1cmUiIGlmICRuYXRpdmVBcmNoaXRlY3R1cmUgZXEgImFybTY0ZSI7Cit9
CisKIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKIHsKICAgICByZXR1cm4gaWYgZGVmaW5lZCAk
YXJjaGl0ZWN0dXJlOwotICAgICMgbWFrZSBzdXJlICRhcmNoaXRlY3R1cmUgaXMgZGVmaW5lZCBp
biBhbGwgY2FzZXMKLSAgICAkYXJjaGl0ZWN0dXJlID0gIiI7CiAKICAgICBkZXRlcm1pbmVCYXNl
UHJvZHVjdERpcigpOwogICAgIGRldGVybWluZVhjb2RlU0RLKCk7CisgICAgZGV0ZXJtaW5lTmF0
aXZlQXJjaGl0ZWN0dXJlKCk7CisgICAgJGFyY2hpdGVjdHVyZSA9ICRuYXRpdmVBcmNoaXRlY3R1
cmU7CiAKICAgICBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAgICAgaWYgKG9wZW4g
QVJDSElURUNUVVJFLCAiJGJhc2VQcm9kdWN0RGlyL0FyY2hpdGVjdHVyZSIpIHsKQEAgLTM2Nywy
MCArMzgyLDEyIEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgaWYgKCRhcmNo
aXRlY3R1cmUpIHsKICAgICAgICAgICAgIGNob21wICRhcmNoaXRlY3R1cmU7CiAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBpZiAobm90IGRlZmluZWQgJHhjb2RlU0RLIG9yICR4Y29kZVNE
SyA9fiAvXihcLyR8bWFjb3N4KS8pIHsKLSAgICAgICAgICAgICAgICBteSAkc3VwcG9ydHM2NEJp
dCA9IGBzeXNjdGwgLW4gaHcub3B0aW9uYWwueDg2XzY0YDsKLSAgICAgICAgICAgICAgICBjaG9t
cCAkc3VwcG9ydHM2NEJpdDsKLSAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82
NCcgaWYgJHN1cHBvcnRzNjRCaXQ7Ci0gICAgICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsgPX4g
L15pcGhvbmVzaW11bGF0b3IvKSB7Ci0gICAgICAgICAgICAgICAgJGFyY2hpdGVjdHVyZSA9ICd4
ODZfNjQnOwotICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9eaXBob25lb3MvKSB7
CisgICAgICAgICAgICBpZiAoJHhjb2RlU0RLID1+IC9eaXBob25lb3MvKSB7CiAgICAgICAgICAg
ICAgICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NCc7CiAgICAgICAgICAgICB9IGVsc2lmICgkeGNv
ZGVTREsgPX4gL153YXRjaHNpbXVsYXRvci8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0
dXJlID0gJ2kzODYnOwogICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9ed2F0Y2hv
cy8pIHsKICAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ2FybTY0XzMyIGFybTY0ZSBh
cm12N2snOwotICAgICAgICAgICAgfSBlbHNpZiAoJHhjb2RlU0RLID1+IC9eYXBwbGV0dnNpbXVs
YXRvci8pIHsKLSAgICAgICAgICAgICAgICAkYXJjaGl0ZWN0dXJlID0gJ3g4Nl82NCc7CiAgICAg
ICAgICAgICB9IGVsc2lmICgkeGNvZGVTREsgPX4gL15hcHBsZXR2b3MvKSB7CiAgICAgICAgICAg
ICAgICAgJGFyY2hpdGVjdHVyZSA9ICdhcm02NCc7CiAgICAgICAgICAgICB9CkBAIC00MDMsMTQg
KzQxMCw2IEBAIHN1YiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUKICAgICAgICAgfQogICAgIH0KIAot
ICAgIGlmICghaXNBbnlXaW5kb3dzKCkpIHsKLSAgICAgICAgaWYgKCEkYXJjaGl0ZWN0dXJlKSB7
Ci0gICAgICAgICAgICAjIEZhbGwgYmFjayB0byBvdXRwdXQgb2YgYHVuYW1lIC1tJywgaWYgaXQg
aXMgcHJlc2VudC4KLSAgICAgICAgICAgICRhcmNoaXRlY3R1cmUgPSBgdW5hbWUgLW1gOwotICAg
ICAgICAgICAgY2hvbXAgJGFyY2hpdGVjdHVyZTsKLSAgICAgICAgfQotICAgIH0KLQogICAgICRh
cmNoaXRlY3R1cmUgPSAneDg2XzY0JyBpZiAkYXJjaGl0ZWN0dXJlID1+IC9hbWQ2NC9pOwogICAg
ICRhcmNoaXRlY3R1cmUgPSAnYXJtNjQnIGlmICRhcmNoaXRlY3R1cmUgPX4gL2FhcmNoNjQvaTsK
IH0KQEAgLTg0MCw2ICs4MzksMTggQEAgc3ViIGpzY1Byb2R1Y3REaXIKICAgICByZXR1cm4gZXhl
Y3V0YWJsZVByb2R1Y3REaXIoKTsKIH0KIAorc3ViIGFyY2hpdGVjdHVyZXNGb3JQcm9kdWN0cwor
eworICAgICMgTW9zdCBwb3J0cyBkb24ndCBoYXZlIGVtdWxhdGlvbiwgYXNzdW1lIHRoYXQgdGhl
IHVzZXIgZ2F2ZSB1cyBhbiBhY2N1cmF0ZSBhcmNoaXRlY3R1cmUKKyAgICBpZiAoIWlzQXBwbGVD
b2NvYVdlYktpdCgpKSB7CisgICAgICAgIHJldHVybiBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsK
KyAgICB9CisgICAgbXkgJHdlYmtpdEJpbmFyeSA9IEZpbGU6OlNwZWMtPmNhdGRpcihleGVjdXRh
YmxlUHJvZHVjdERpcigpLCAiSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrIiwgIkphdmFTY3JpcHRD
b3JlIik7CisgICAgbXkgJGFyY2hpdGVjdHVyZXMgPSBgL3Vzci9iaW4vbGlwbyAtYXJjaHMgJHdl
YmtpdEJpbmFyeWA7CisgICAgY2hvbXAoJGFyY2hpdGVjdHVyZXMpOworICAgIHJldHVybiAkYXJj
aGl0ZWN0dXJlczsKK30KKwogc3ViIGNvbmZpZ3VyYXRpb24oKQogewogICAgIGRldGVybWluZUNv
bmZpZ3VyYXRpb24oKTsKQEAgLTEwNDAsNiArMTA1MSwxMiBAQCBzdWIgcGFzc2VkQXJjaGl0ZWN0
dXJlCiAgICAgcmV0dXJuICRwYXNzZWRBcmNoaXRlY3R1cmU7CiB9CiAKK3N1YiBuYXRpdmVBcmNo
aXRlY3R1cmUoKQoreworICAgIGRldGVybWluZU5hdGl2ZUFyY2hpdGVjdHVyZSgpOworICAgIHJl
dHVybiAkbmF0aXZlQXJjaGl0ZWN0dXJlOworfQorCiBzdWIgYXJjaGl0ZWN0dXJlKCkKIHsKICAg
ICBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsK
</data>
<flag name="review"
          id="418446"
          type_id="1"
          status="-"
          setter="guijemont"
    />
          </attachment>
      

    </bug>

</bugzilla>