<?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>35584</bug_id>
          
          <creation_ts>2010-03-02 09:38:50 -0800</creation_ts>
          <short_desc>test-webkitpy: Get it working with Python 2.4</short_desc>
          <delta_ts>2010-03-18 09:04:41 -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>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35163</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Jerdonek">cjerdonek</reporter>
          <assigned_to name="Chris Jerdonek">cjerdonek</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>195073</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-02 09:38:50 -0800</bug_when>
    <thetext>I&apos;d like to do this before fixing the autoinstall patch below to work with Python 2.4:

https://bugs.webkit.org/show_bug.cgi?id=35163

I&apos;ve already done this, and it wasn&apos;t too hard.  The ternary operator and relative imports were the two main things.

Should it be official that our stuff work with Python 2.4 -- or just 2.5?  There is this, for instance:

https://bugs.webkit.org/show_bug.cgi?id=35316#c11

Note that on Macs it takes a tiny bit more work to use Python 2.4, since Snow Leopard doesn&apos;t officially support 2.4.  For example, the Python man page on Mac OS X 10.6 says this:

&quot;The current supported versions are 2.5 (provided for backward-compatibility with the Python 2.5 family), 2.6 and 3.0, with the default being 2.6.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195077</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-02 09:53:25 -0800</bug_when>
    <thetext>We have a bunch of developers still on Leopard.  My understanding is that they all have 2.4.  Can we have our scripts work out-of-the-box on Leopard and Snow Leopard?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195081</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-02 10:06:38 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; We have a bunch of developers still on Leopard.  My understanding is that they
&gt; all have 2.4.  Can we have our scripts work out-of-the-box on Leopard and Snow
&gt; Leopard?

Yes, I think so.

However, after doing some work on this, there were two unit tests that aren&apos;t passing with 2.4.  Maybe you can take a look at those after I land a patch for this report.  The two tests are in multicommandtool_unittest and use outputcapture.

Here is another thread with people supporting support for Python 2.4:

https://bugs.webkit.org/show_bug.cgi?id=31533

There is also this report to get the build.webkit.org builders running the python/perl unit tests:

https://bugs.webkit.org/show_bug.cgi?id=33432

I imagine some of those run 2.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195098</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-02 10:27:20 -0800</bug_when>
    <thetext>OutputCapture is Eric&apos;s neck of the woods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195100</commentid>
    <comment_count>4</comment_count>
      <attachid>49817</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-02 10:33:36 -0800</bug_when>
    <thetext>Created attachment 49817
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195143</commentid>
    <comment_count>5</comment_count>
      <attachid>49827</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-02 11:44:38 -0800</bug_when>
    <thetext>Created attachment 49827
Proposed patch 2

Update after rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195169</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-02 12:30:03 -0800</bug_when>
    <thetext>Tiger is 2.4 I believe (or maybe it doesn&apos;t have python?)
Leopard is 2.5 (according to this post: http://mail.python.org/pipermail/pythonmac-sig/2008-August/020361.html)
Snow Leopard is 2.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195773</commentid>
    <comment_count>7</comment_count>
      <attachid>49952</attachid>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-03 14:57:20 -0800</bug_when>
    <thetext>Created attachment 49952
Proposed patch 3

Switched things around so that the version warning will display if an error occurs while importing webkitpy.

Also added code to configure logging in test-webkitpy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195777</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-03 15:08:24 -0800</bug_when>
    <thetext>Who uses Python 2.4?  What operating systems.

I think we should decide if we want to support 2.4 before we do this.  I think 2.5 (and even more 2.6) have language additions which make code cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195781</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-03 15:13:00 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Who uses Python 2.4?  What operating systems.
&gt; 
&gt; I think we should decide if we want to support 2.4 before we do this.  I think
&gt; 2.5 (and even more 2.6) have language additions which make code cleaner.

IIRC Mac Tiger and Chromium Win use 2.4 (and apparently the Google Mac default config, although 2.5 is on the machine, not that that should unduly influence us).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195784</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-03 15:18:26 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Who uses Python 2.4?  What operating systems.

Personally, I don&apos;t really know.  I know of these comments though:

https://bugs.webkit.org/show_bug.cgi?id=35316#c11
https://bugs.webkit.org/show_bug.cgi?id=31533#c1
https://bugs.webkit.org/show_bug.cgi?id=35584#c1

I will send an e-mail to webkit-dev asking if anyone is using 2.4.  I don&apos;t have a strong opinion on this issue.  I do think it will be worthwhile to clarify the minimum version we support.

&gt; I think we should decide if we want to support 2.4 before we do this.  I think
&gt; 2.5 (and even more 2.6) have language additions which make code cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195786</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-03 15:20:51 -0800</bug_when>
    <thetext>Google Mac installs do seem to change the default python, yes.

Python versions on Mac:
10.4.11 is Python 2.3.5:
http://opensource.apple.com/source/python/python-16.1.3/

10.5.8 is Python 2.5.1 (I believe by default):
http://opensource.apple.com/source/python/python-30.1.3/

10.6.2 is Python 2.6.1:
http://opensource.apple.com/source/python/python-44/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195788</commentid>
    <comment_count>12</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-03 15:22:33 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; I will send an e-mail to webkit-dev asking if anyone is using 2.4.  I don&apos;t
&gt; have a strong opinion on this issue.  I do think it will be worthwhile to
&gt; clarify the minimum version we support.

Thank you.  I agree we need to standardize.  I just don&apos;t want to support anything older than we absolutely have to. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>195790</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-03 15:24:41 -0800</bug_when>
    <thetext>In #webkit, _wms, proton and alexmilowski confirmed those Python versions on 10.5.8 and 10.6.2.  I have not gotten real life confirmation of 2.3.5 on 10.4.11, but given that I can&apos;t find any other python source for 10.4.11 I&apos;m quite certain it must be 2.3.5.

With that information, supporting 2.4 wouldn&apos;t even get our scripts running on Tiger if that was part of the goal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196727</commentid>
    <comment_count>14</comment_count>
      <attachid>49952</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 15:19:36 -0800</bug_when>
    <thetext>Comment on attachment 49952
Proposed patch 3

Based on on-list, and off-list discussions sounds like Chromium is the only 2.4 client and they&apos;re in the process of upgrading to 2.6 so we do not need to support 2.4 (and I would argue we should not support 2.4 due to loss of code-cleanliness features).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196728</commentid>
    <comment_count>15</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 15:19:56 -0800</bug_when>
    <thetext>Closing as WONTFIX please re-open if you disagree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196736</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-05 15:28:34 -0800</bug_when>
    <thetext>I&apos;m not sure where you got the &apos;in the process of moving to 2.6&apos; from. Nobody in Chromium is currently working on this and there is no ETA.

As long as we don&apos;t need to run these scripts on python 2.4, we&apos;re fine (and I don&apos;t think we do at the moment but it would be nice to be able to run whatever unit tests we do have on 2.4), but at the very least new-run-webkit-tests and the stuff under the layout_test directory needs to continue to run on 2.4 or the Chromium tree will actively break.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196744</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 15:38:51 -0800</bug_when>
    <thetext>Perhaps I misinterpreted the thread.

Nirnimesh:
&quot;I would say stick to a common version of python across all platforms. Since py2.5 is present on mac and linux, I was going to upgrade the python in {src|deps}/third_party/ to py2.5. This shouldn&apos;t be too involved.&quot;

Nicolas:
&quot;Nothing more I think.  We should update it too. (And at the same time try to figure out why python is checked in twice).&quot;

Marc-Antoine:
&quot;So in short, we could remove python24 from the tree and upgrade the
one in depot_tools to 2.6.&quot;

You&apos;re right.  No one raised their hand.  Seems like there was just general agreement that Chromium windows should move to 2.6.

I guess plus Tony&apos;s sentiment:
&quot;That said, I don&apos;t think windows chromium should hold back webkit-patch.  It&apos;s possible to install a local copy of python (maybe update-webkit should do this on windows?) and have that live along side the python installed by depot_tools.&quot;

led me to believe we shouldn&apos;t worry about Chromium here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196753</commentid>
    <comment_count>18</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-05 15:46:56 -0800</bug_when>
    <thetext>It would be possible for us to use one version of Python for development (for webkit-patch, etc.) and another to actually run the tests and match what the buildbots use. It would probably be awkward, however, and I would prefer not to do it.

You are correct in that Marc-Antoine and Tony both said it would be possible to do these things but neither volunteered to do so, and neither am I (too many other projects on my plate).

I personally don&apos;t use webkit-patch from Windows, and so if we update webkit-patch to be 2.5 or higher, you&apos;re probably still safe. But, like I said, it would be nice to be writing unit tests for run-webkit-tests, and it would be nice to be able to run those on 2.4. As long as we can do that, I&apos;m happy. If I can&apos;t do that, I&apos;m grumpy but okay. If you break run-webkit-tests itself, we have a problem.

Separately, I am concerned in that you are getting at least some feedback that there are people and use cases where 2.5 isn&apos;t available, at least right now, and you seem to be deciding that we don&apos;t need to worry about it. Have you compared how hard it will be to get this stuff to work in 2.4? Or figured out alternatives that do work in 2.4?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196757</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-05 15:56:23 -0800</bug_when>
    <thetext>I&apos;m *totally* happy to discuss this further.  I don&apos;t wish to act unilaterally without concensus here.

However, the only feedback I&apos;ve received is that Tiger wants 2.3.5 (which I deem unreasonable and mostly irrelevant given the limited future of Tiger) and that Chromium wants 2.4 for the time-being, but at least in that email thread seemed to think they should move Windows to 2.5+ to match mac/linux which already have 2.5 plus.

So yes, we don&apos;t want to break 2.4 for the time being.  But I also don&apos;t think we really want to disuade people from using conditional expressions, or having to worry about the POpen bugs in 2.4, or avoiding with statements (although we have been mostly avoiding them for now).

I think we should break the version-check bits out of this patch and get those landed, checking for 2.5 for the moment, and look at the changes to make us 2.4 compatible separately.

The current perceived danger is that we could end up breaking new-run-webkit-tests for the Chromium windows bots because those depend on 2.4 at the moment?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196769</commentid>
    <comment_count>20</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-03-05 16:11:24 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; However, the only feedback I&apos;ve received is that Tiger wants 2.3.5 (which I
&gt; deem unreasonable and mostly irrelevant given the limited future of Tiger) and
&gt; that Chromium wants 2.4 for the time-being, but at least in that email thread
&gt; seemed to think they should move Windows to 2.5+ to match mac/linux which
&gt; already have 2.5 plus.

Agreed re: Chromium but the fact that there&apos;s no ETA and no staffing makes this equivalent to hoping for the Django pony.

&gt; So yes, we don&apos;t want to break 2.4 for the time being.  But I also don&apos;t think
&gt; we really want to disuade people from using conditional expressions, or having
&gt; to worry about the POpen bugs in 2.4, or avoiding with statements (although we
&gt; have been mostly avoiding them for now).

Having written a fair amount of python code in the past year, I can&apos;t say I miss either feature, and the POpen() bugs can be worked around in a straightforward way assuming we&apos;re reusing code enough anyway.

&gt; The current perceived danger is that we could end up breaking
&gt; new-run-webkit-tests for the Chromium windows bots because those depend on 2.4
&gt; at the moment?

That is the primary danger. Lesser concerns -- but still important -- are that we&apos;d write tests I can&apos;t run on one of my primary platforms, and develop tools that I can&apos;t use on one of my primary platforms. I am sympathetic to the Tiger concerns here as well, but I don&apos;t have a Tiger box nor access to one, so I am not directly affected :)

I don&apos;t have a good sense of how much work it is to get whatever it is you and Chris are trying to do w/ autoinstall and the other third party things to work with 2.4, although frankly the autoinstall approach seems much kludgier than doing something like gclient and DEPS files. I also don&apos;t have a sense of how much work it will be to upgrade Chromium Win to 2.5.

It would be nice to get a better sense of these things before we decided for sure that this was the choice we wanted to make.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196855</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-05 19:54:26 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; I don&apos;t have a good sense of how much work it is to get whatever it is you and
&gt; Chris are trying to do w/ autoinstall and the other third party things to work
&gt; with 2.4, although frankly the autoinstall approach seems much kludgier than
&gt; doing something like gclient and DEPS files.

Just to be clear, I don&apos;t have a strong opinion on this issue since I can work with either in my dev environment (getting things to work is not really the issue in my mind -- it&apos;s the below).

The only thing I&apos;d say is that if we are going to support one version of Python for one part of the code and another for another part of the code, I&apos;d like for us to consider having some kind of clear-cut boundary.  For example--

webkitpy/
    python24/
        &lt;Python 2.4 modules&gt;
    python25/
        &lt;Python 2.5 modules&gt;

Or at least initially--

webkitpy/
    python24/
        &lt;Python 2.4 modules&gt;
    &lt;Python 2.5 modules&gt;

But that may take a fair amount of time to set up and so shouldn&apos;t be entered into lightly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>196856</commentid>
    <comment_count>22</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-05 19:59:33 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; The only thing I&apos;d say is that if we are going to support one version of Python
&gt; for one part of the code and another for another part of the code, I&apos;d like for
&gt; us to consider having some kind of clear-cut boundary.  For example--
&gt; 
&gt; webkitpy/
&gt;     python24/
&gt;         &lt;Python 2.4 modules&gt;
&gt;     python25/
&gt;         &lt;Python 2.5 modules&gt;

Just to clarify, I don&apos;t mean to suggest we&apos;d have two versions of any code.  It&apos;s simply that if we have certain code, it would go into one of the two bins.  Code in python25 would be able to import from both, but python24 could only import from itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>201329</commentid>
    <comment_count>23</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2010-03-18 09:04:41 -0700</bug_when>
    <thetext>A couple questions:

What other WebKit scripts do the Chromium Windows bots use aside from new-run-webkit-tests (non-Python scripts included)?

What are the possible options on the table right now?  I see at least--

(1) All Python 2.4
(2) All Python 2.5
(3) new-run-webkit-tests 2.4, everything else 2.5

Have we ruled out (2) because of the bots?

I think it would be helpful if our decision makes it so that we don&apos;t need to revisit this issue for each script we&apos;d like to write in Python (including any scripts currently in Perl).  For that reason, options (1) and (2) seem preferable.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49817</attachid>
            <date>2010-03-02 10:33:36 -0800</date>
            <delta_ts>2010-03-02 11:44:38 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>_patch-35584-1.diff</filename>
            <type>text/plain</type>
            <size>15546</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlMDFmMTBiLi45MTNjMGYzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsNjQgQEAKIAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBNYWRlIHRoZSBQeXRob24g
dW5pdCB0ZXN0cyAodGVzdC13ZWJraXRweSkgd29yayB3aXRoIFB5dGhvbiAyLjQsCisgICAgICAg
IHNpbmNlIHNvbWUgZGV2ZWxvcGVycyB1c2UgUHl0aG9uIDIuNCBpbiB0aGVpciBkZXZlbG9wbWVu
dAorICAgICAgICBlbnZpcm9ubWVudC4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzU1ODQKKworICAgICAgICBNYWtpbmcgdGhlIHVuaXQgdGVzdHMg
d29yayB3aXRoIFB5dGhvbiAyLjQgcHJvdmlkZXMgYSB3YXkgdG8gY2hlY2sKKyAgICAgICAgdGhh
dCBjaGFuZ2VzIHRvIHRoZSBQeXRob24gc2NyaXB0cyB3aWxsIHdvcmsgZm9yIGRldmVsb3BlcnMg
dXNpbmcKKyAgICAgICAgUHl0aG9uIDIuNCBhbmQgMi41LgorCisgICAgICAgICogU2NyaXB0cy90
ZXN0LXdlYmtpdHB5OgorICAgICAgICAgIC0gTWFkZSB0ZXN0LXdlYmtpdHB5IGRpc3BsYXkgYSB3
YXJuaW5nIGlmIHJ1biB3aXRoIGEgUHl0aG9uCisgICAgICAgICAgICB2ZXJzaW9uIG5ld2VyIHRo
YW4gMi40LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYS5weToKKyAgICAg
ICAgICAtIFJlcGxhY2VkIHR3byB1c2VzIG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9idWlsZGJvdC5weToKKyAgICAgICAgICAtIFJlcGxhY2Vk
IGEgdXNlIG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tYW5kcy9xdWVyaWVzLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgYSB1c2Ugb2Yg
dGhlIHRlcm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL3VwbG9hZC5weToKKyAgICAgICAgICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0ZXJuYXJ5
IG9wZXJhdG9yLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jcmVkZW50aWFscy5weToK
KyAgICAgICAgICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9leGVjdXRpdmUucHk6CisgICAgICAgICAgLSBSZXBs
YWNlZCBhIHVzZSBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHk6CisgICAgICAgICAgLSBGaXhlZCBjbGFzcyBk
ZWZpbml0aW9uLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdGVwcy9wcmVwYXJlY2hh
bmdlbG9nZm9ycmV2ZXJ0LnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgYSB1c2Ugb2YgdGhlIHRl
cm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0ZXBzZXF1ZW5j
ZS5weToKKyAgICAgICAgICAtIEZpeGVkIGNsYXNzIGRlZmluaXRpb24uCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBy
ZWxhdGl2ZSBpbXBvcnRzIHdpdGggYWJzb2x1dGUgaW1wb3J0cy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weToKKyAgICAgICAgICAtIFJlcGxh
Y2VkIHJlbGF0aXZlIGltcG9ydHMgd2l0aCBhYnNvbHV0ZSBpbXBvcnRzLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weToKKyAgICAg
ICAgICAtIFJlcGxhY2VkIHJlbGF0aXZlIGltcG9ydHMgd2l0aCBhYnNvbHV0ZSBpbXBvcnRzLgor
CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5Ogor
ICAgICAgICAgIC0gUmVwbGFjZWQgdXNlIG9mIHRoZSAid2l0aCIga2V5d29yZC4KKyAgICAgICAg
ICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yLgorCisyMDEwLTAzLTAy
ICBDaHJpcyBKZXJkb25layAgPGNqZXJkb25la0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIFN0YXJ0ZWQgdXNpbmcgdGhlIGxvZ2dp
bmcgbW9kdWxlIGluIGNoZWNrLXdlYmtpdC1zdHlsZS4KICAgICAgICAgVGhpcyBwcm92aWRlcyBt
b3JlIG9wdGlvbnMgZm9yIGRlYnVnZ2luZyBhbmQgYSBtb3JlIGZsZXhpYmxlLAogICAgICAgICB1
bmlmb3JtIHdheSB0byByZXBvcnQgbWVzc2FnZXMgdG8gdGhlIGVuZC11c2VyLgpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy90ZXN0LXdlYmtpdHB5CmluZGV4IDg2MTczMzAuLjlhY2UzOTMgMTAwNzU1Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3Rl
c3Qtd2Via2l0cHkKQEAgLTU3LDYgKzU3LDE5IEBAIGZyb20gd2Via2l0cHkudXNlcl91bml0dGVz
dCBpbXBvcnQgKgogZnJvbSB3ZWJraXRweS53ZWJraXRfbG9nZ2luZ191bml0dGVzdCBpbXBvcnQg
KgogZnJvbSB3ZWJraXRweS53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCiAKK2RlZiBtYWlu
KCk6CisgICAgbWFqb3IgPSBzeXMudmVyc2lvbl9pbmZvWzBdCisgICAgbWlub3IgPSBzeXMudmVy
c2lvbl9pbmZvWzFdCisKKyAgICBpZiBtYWpvciA+IDIgb3IgKG1ham9yID09IDIgYW5kIG1pbm9y
ID4gNCk6CisgICAgICAgIHZlcnNpb24gPSBzeXMudmVyc2lvbi5zcGxpdCgpWzBdCisgICAgICAg
IG1lc3NhZ2UgPSAoIldBUk5JTkc6IFdlYktpdCBzaG91bGQgc3VwcG9ydCBQeXRob24gMi40LCAi
CisgICAgICAgICAgICAgICAgICAgImJ1dCB0aGlzIHZlcnNpb24gKCVzKSBpcyBoaWdoZXIuXG4i
CisgICAgICAgICAgICAgICAgICAgJSB2ZXJzaW9uKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRl
KG1lc3NhZ2UpCisKKyAgICB1bml0dGVzdC5tYWluKCkKKwogaWYgX19uYW1lX18gPT0gIl9fbWFp
bl9fIjoKICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21t
ZW50aW5nIG91dCB0aGUgdGVzdC4KICAgICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODE4CkBAIC02NCw0ICs3Nyw0IEBAIGlmIF9fbmFtZV9f
ID09ICJfX21haW5fXyI6CiAgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQogICAgICAg
ICBmcm9tIHdlYmtpdHB5LnNjbV91bml0dGVzdCBpbXBvcnQgKgogCi0gICAgdW5pdHRlc3QubWFp
bigpCisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYS5weQpp
bmRleCAwMGU2OTQwLi41NWEyNmI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2J1Z3ppbGxhLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVn
emlsbGEucHkKQEAgLTM1Myw3ICszNTMsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAg
ICB1bmFzc2lnbmVkX2VtYWlsID0gIndlYmtpdC11bmFzc2lnbmVkQGxpc3RzLndlYmtpdC5vcmci
CiAKICAgICBkZWYgYnVnX3VybF9mb3JfYnVnX2lkKHNlbGYsIGJ1Z19pZCwgeG1sPUZhbHNlKToK
LSAgICAgICAgY29udGVudF90eXBlID0gIiZjdHlwZT14bWwiIGlmIHhtbCBlbHNlICIiCisgICAg
ICAgIGlmIHhtbDoKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9ICImY3R5cGU9eG1sIgorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgY29udGVudF90eXBlID0gIiIKICAgICAgICAgcmV0dXJu
ICIlc3Nob3dfYnVnLmNnaT9pZD0lcyVzIiAlIChzZWxmLmJ1Z19zZXJ2ZXJfdXJsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUpCkBAIC01MDQsNyAr
NTA3LDEwIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLCBidWdfaWQ9Tm9uZSk6CiAgICAgICAgIHNl
bGYuYnJvd3NlclsnZGVzY3JpcHRpb24nXSA9IGRlc2NyaXB0aW9uCiAgICAgICAgIHNlbGYuYnJv
d3NlclsnaXNwYXRjaCddID0gKCIxIiwpCi0gICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBl
LTEnXSA9ICgnPycsKSBpZiBtYXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gnLCkKKyAgICAgICAgaWYg
bWFya19mb3JfcmV2aWV3OgorICAgICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMSdd
ID0gKCc/JywpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdf
dHlwZS0xJ10gPSAoJ1gnLCkKIAogICAgICAgICBpZiBtYXJrX2Zvcl9sYW5kaW5nOgogICAgICAg
ICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMyddID0gKCcrJywpCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9idWlsZGJvdC5weQppbmRleCAzOGQxMDNhLi5jOWRiOWE1IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkKQEAgLTgxLDkgKzgxLDExIEBAIGNs
YXNzIEJ1aWxkQm90OgogICAgICAgICAjIFdpbGwgYmUgZWl0aGVyIGEgcmV2aXNpb24gbnVtYmVy
IG9yIGEgYnVpbGQgbnVtYmVyCiAgICAgICAgIHJldmlzaW9uX3N0cmluZyA9IHN0YXR1c19saW5r
LnN0cmluZwogICAgICAgICAjIElmIHJldmlzaW9uX3N0cmluZyBoYXMgbm9uLWRpZ2l0cyBhc3N1
bWUgaXQncyBub3QgYSByZXZpc2lvbiBudW1iZXIuCi0gICAgICAgIGJ1aWxkZXJbJ2J1aWx0X3Jl
dmlzaW9uJ10gPSBpbnQocmV2aXNpb25fc3RyaW5nKSBcCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1xEJywgcmV2aXNpb25fc3RyaW5nKSBcCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5vbmUKKyAgICAgICAgaWYg
bm90IHJlLm1hdGNoKCdcRCcsIHJldmlzaW9uX3N0cmluZyk6CisgICAgICAgICAgICByZXZpc2lv
biA9IGludChyZXZpc2lvbl9zdHJpbmcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXZp
c2lvbiA9IE5vbmUKKyAgICAgICAgYnVpbGRlclsnYnVpbHRfcmV2aXNpb24nXSA9IHJldmlzaW9u
CiAgICAgICAgIGJ1aWxkZXJbJ2lzX2dyZWVuJ10gPSBub3QgcmUuc2VhcmNoKCdmYWlsJywKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NlbGxzWzFd
LnJlbmRlckNvbnRlbnRzKCkpCiAgICAgICAgICMgV2UgY291bGQgcGFyc2Ugb3V0IHRoZSBidWls
ZCBudW1iZXIgaW5zdGVhZCwgYnV0IGZvciBub3cganVzdCBzdG9yZQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVzLnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVzLnB5CmluZGV4IDNjYTRmNDIuLjZh
YjEwMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVlcmllcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1
ZXJpZXMucHkKQEAgLTExMiw1ICsxMTIsOCBAQCBhbmQgZGlzcGxheWVzIHRoZSBzdGF0dXMgb2Yg
ZWFjaCBidWlsZGVyLiIiIgogCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywg
dG9vbCk6CiAgICAgICAgIGZvciBidWlsZGVyIGluIHRvb2wuYnVpbGRib3QuYnVpbGRlcl9zdGF0
dXNlcygpOgotICAgICAgICAgICAgc3RhdHVzX3N0cmluZyA9ICJvayIgaWYgYnVpbGRlclsiaXNf
Z3JlZW4iXSBlbHNlICJGQUlMIgorICAgICAgICAgICAgaWYgYnVpbGRlclsiaXNfZ3JlZW4iXToK
KyAgICAgICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIm9rIgorICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIkZBSUwiCiAgICAgICAgICAgICBwcmlu
dCAiJXMgOiAlcyIgJSAoc3RhdHVzX3N0cmluZy5sanVzdCg0KSwgYnVpbGRlclsibmFtZSJdKQpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy91cGxvYWQu
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9hZC5weQppbmRl
eCAxNWJkZmJiLi5jODBmNWYwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1hbmRzL3VwbG9hZC5weQpAQCAtMzIzLDggKzMyMywxMiBAQCBjbGFzcyBNYXJrQnVnRml4
ZWQoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgICAgICAgICAgICAgIG5vdF9mb3Vu
ZC5hcHBlbmQoImJ1ZyBpZCIpCiAgICAgICAgICAgICBpZiBub3Qgc3ZuX3JldmlzaW9uOgogICAg
ICAgICAgICAgICAgIG5vdF9mb3VuZC5hcHBlbmQoInN2biByZXZpc2lvbiIpCisgICAgICAgICAg
ICBpZiBzdm5fcmV2aXNpb246CisgICAgICAgICAgICAgICAgcmV2aXNpb25fc3RyaW5nID0gInIl
cyIgJSBzdm5fcmV2aXNpb24KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV2
aXNpb25fc3RyaW5nID0gImxhc3QgY29tbWl0IgogICAgICAgICAgICAgZXJyb3IoIkNvdWxkIG5v
dCBmaW5kICVzIG9uIGNvbW1hbmQtbGluZSBvciBpbiAlcy4iCi0gICAgICAgICAgICAgICAgICAl
ICgiIG9yICIuam9pbihub3RfZm91bmQpLCAiciVzIiAlIHN2bl9yZXZpc2lvbiBpZiBzdm5fcmV2
aXNpb24gZWxzZSAibGFzdCBjb21taXQiKSkKKyAgICAgICAgICAgICAgICAgICUgKCIgb3IgIi5q
b2luKG5vdF9mb3VuZCksIHJldmlzaW9uX3N0cmluZykpCiAKICAgICAgICAgcmV0dXJuIChidWdf
aWQsIHN2bl9yZXZpc2lvbikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jcmVkZW50aWFscy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY3JlZGVu
dGlhbHMucHkKaW5kZXggMjk1YzU3Ni4uZDA0NGY2YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jcmVkZW50aWFscy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NyZWRlbnRpYWxzLnB5CkBAIC01Myw4ICs1MywxMCBAQCBjbGFzcyBDcmVkZW50
aWFscyhvYmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfZ2l0X2NvbmZpZygicGFz
c3dvcmQiKV0KIAogICAgIGRlZiBfcmVhZF9naXRfY29uZmlnKHNlbGYsIGtleSk6Ci0gICAgICAg
IGNvbmZpZ19rZXkgPSAiJXMuJXMiICUgKHNlbGYuZ2l0X3ByZWZpeCwga2V5KSBpZiBzZWxmLmdp
dF9wcmVmaXggXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSBrZXkKKyAgICAgICAgaWYgc2VsZi5naXRfcHJlZml4OgorICAgICAgICAg
ICAgY29uZmlnX2tleSA9ICIlcy4lcyIgJSAoc2VsZi5naXRfcHJlZml4LCBrZXkpCisgICAgICAg
IGVsc2U6CisgICAgICAgICAgICBjb25maWdfa2V5ID0ga2V5CiAgICAgICAgIHJldHVybiBzZWxm
LmV4ZWN1dGl2ZS5ydW5fY29tbWFuZCgKICAgICAgICAgICAgICAgICBbImdpdCIsICJjb25maWci
LCAiLS1nZXQiLCBjb25maWdfa2V5XSwKICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPUV4
ZWN1dGl2ZS5pZ25vcmVfZXJyb3IpLnJzdHJpcCgnXG4nKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9leGVjdXRpdmUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2V4ZWN1dGl2ZS5weQppbmRleCA1MGIxMTliLi41Njg1MDU3IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weQpAQCAtOTgsNyArOTgsMTAgQEAgY2xhc3Mg
RXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgIGNoaWxkX291dF9maWxlID0gU3RyaW5nSU8uU3Ry
aW5nSU8oKQogICAgICAgICBpZiBxdWlldDoKICAgICAgICAgICAgIGRldl9udWxsID0gb3Blbihv
cy5kZXZudWxsLCAidyIpCi0gICAgICAgIGNoaWxkX3N0ZG91dCA9IHRlZShjaGlsZF9vdXRfZmls
ZSwgZGV2X251bGwgaWYgcXVpZXQgZWxzZSBzeXMuc3Rkb3V0KQorICAgICAgICAgICAgb3V0ID0g
ZGV2X251bGwKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dCA9IHN5cy5zdGRvdXQKKyAg
ICAgICAgY2hpbGRfc3Rkb3V0ID0gdGVlKGNoaWxkX291dF9maWxlLCBvdXQpCiAgICAgICAgIGV4
aXRfY29kZSA9IHNlbGYuX3J1bl9jb21tYW5kX3dpdGhfdGVlZF9vdXRwdXQoYXJncywgY2hpbGRf
c3Rkb3V0KQogICAgICAgICBpZiBxdWlldDoKICAgICAgICAgICAgIGRldl9udWxsLmNsb3NlKCkK
QEAgLTE0Niw3ICsxNDksMTAgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAg
ICBzdGRpbiA9IGlucHV0CiAgICAgICAgICAgICBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBOb25l
CiAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRSBpZiBp
bnB1dCBlbHNlIE5vbmUKKyAgICAgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgICAgIHN0
ZGluID0gc3VicHJvY2Vzcy5QSVBFCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHN0ZGluID0gTm9uZQogICAgICAgICAgICAgc3RyaW5nX3RvX2NvbW11bmljYXRlID0gaW5wdXQK
ICAgICAgICAgaWYgcmV0dXJuX3N0ZGVycjoKICAgICAgICAgICAgIHN0ZGVyciA9IHN1YnByb2Nl
c3MuU1RET1VUCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tf
YnVnemlsbGF0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3pp
bGxhdG9vbC5weQppbmRleCBmNTIyZTQwLi5hNGM0NzQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKQEAgLTM1MSw3ICszNTEsNyBA
QCBjbGFzcyBNb2NrU3RhdHVzU2VydmVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiAxODcKIAog
Ci1jbGFzcyBNb2NrQnVnemlsbGFUb29sKCk6CitjbGFzcyBNb2NrQnVnemlsbGFUb29sKG9iamVj
dCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuYnVncyA9IE1vY2tC
dWd6aWxsYSgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBz
L3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHkKaW5kZXggODhlNTEzNC4uMzc2
MWJkZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdGVwcy9wcmVw
YXJlY2hhbmdlbG9nZm9ycmV2ZXJ0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydC5weQpAQCAtNDIsNyArNDIsMTAgQEAg
Y2xhc3MgUHJlcGFyZUNoYW5nZUxvZ0ZvclJldmVydChBYnN0cmFjdFN0ZXApOgogICAgICAgICAj
IFNlY29uZCwgbWFrZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgZm9yIHRoaXMgcm9sbG91dC4KICAg
ICAgICAgIyBUaGlzIGNvdWxkIG1vdmUgdG8gcHJlcGFyZS1DaGFuZ2VMb2cgYnkgYWRkaW5nIGEg
LS1yZXZlcnQ9IG9wdGlvbi4KICAgICAgICAgc2VsZi5fcnVuX3NjcmlwdCgicHJlcGFyZS1DaGFu
Z2VMb2ciKQotICAgICAgICBidWdfdXJsID0gc2VsZi5fdG9vbC5idWdzLmJ1Z191cmxfZm9yX2J1
Z19pZChzdGF0ZVsiYnVnX2lkIl0pIGlmIHN0YXRlWyJidWdfaWQiXSBlbHNlIE5vbmUKKyAgICAg
ICAgaWYgc3RhdGVbImJ1Z19pZCJdOgorICAgICAgICAgICAgYnVnX3VybCA9IHNlbGYuX3Rvb2wu
YnVncy5idWdfdXJsX2Zvcl9idWdfaWQoc3RhdGVbImJ1Z19pZCJdKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgYnVnX3VybCA9IE5vbmUKICAgICAgICAgZm9yIGNoYW5nZWxvZ19wYXRoIGlu
IGNoYW5nZWxvZ19wYXRoczoKICAgICAgICAgICAgICMgRklYTUU6IFNlZW1zIHdlIHNob3VsZCBw
cmVwYXJlIHRoZSBtZXNzYWdlIG91dHNpZGUgb2YgY2hhbmdlbG9ncy5weSBhbmQgdGhlbiBqdXN0
IHBhc3MgaW4KICAgICAgICAgICAgICMgdGV4dCB0aGF0IHdlIHdhbnQgdG8gdXNlIHRvIHJlcGxh
Y2UgdGhlIHJldmlld2VkIGJ5IGxpbmUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0ZXBzZXF1ZW5jZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
c3RlcHNlcXVlbmNlLnB5CmluZGV4IDAwOGIzNjYuLjZjOWI5MGYgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3RlcHNlcXVlbmNlLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3RlcHNlcXVlbmNlLnB5CkBAIC0zNCw3ICszNCw3IEBAIGZyb20g
d2Via2l0cHkuc2NtIGltcG9ydCBDaGVja291dE5lZWRzVXBkYXRlCiBmcm9tIHdlYmtpdHB5LnF1
ZXVlZW5naW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogCiAKLWNsYXNzIFN0ZXBTZXF1ZW5jZUVycm9y
SGFuZGxlcigpOgorY2xhc3MgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAgICAg
QGNsYXNzbWV0aG9kCiAgICAgZGVmIGhhbmRsZV9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBwYXRj
aCwgc2NyaXB0X2Vycm9yKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1
YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggYzc0YWVjZS4uNDU0MGYwNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMzQsNyArMzQsNiBAQCBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIAotZnJvbSAuLiBzdHls
ZV9yZWZlcmVuY2VzIGltcG9ydCBwYXJzZV9wYXRjaAogZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBv
cnQgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9ydCBQ
YXRjaFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGZpbHRlciBpbXBvcnQgRmlsdGVyQ29uZmlndXJh
dGlvbgpAQCAtNDQsNiArNDMsNyBAQCBmcm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBjaGVj
a19ub19jYXJyaWFnZV9yZXR1cm4KIGZyb20gcHJvY2Vzc29ycy5jb21tb24gaW1wb3J0IGNhdGVn
b3JpZXMgYXMgQ29tbW9uQ2F0ZWdvcmllcwogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3Bw
UHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgorZnJv
bSB3ZWJraXRweS5zdHlsZV9yZWZlcmVuY2VzIGltcG9ydCBwYXJzZV9wYXRjaAogCiBfbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoIndlYmtpdHB5LnN0eWxlLmNoZWNrZXIiKQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkK
aW5kZXggZDg2NjY2My4uNzlhNzQ4YiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQpAQCAtMzgsOCArMzgsNiBAQCBp
bXBvcnQgbG9nZ2luZwogaW1wb3J0IHVuaXR0ZXN0CiAKIGltcG9ydCBjaGVja2VyIGFzIHN0eWxl
Ci1mcm9tIC4uc3R5bGVfcmVmZXJlbmNlcyBpbXBvcnQgVW5pdFRlc3RMb2cKLWZyb20gLi5zdHls
ZV9yZWZlcmVuY2VzIGltcG9ydCBVbml0VGVzdExvZ1N0cmVhbQogZnJvbSBjaGVja2VyIGltcG9y
dCBfQkFTRV9GSUxURVJfUlVMRVMKIGZyb20gY2hlY2tlciBpbXBvcnQgX01BWF9SRVBPUlRTX1BF
Ul9DQVRFR09SWQogZnJvbSBjaGVja2VyIGltcG9ydCBfUEFUSF9SVUxFU19TUEVDSUZJRVIgYXMg
UEFUSF9SVUxFU19TUEVDSUZJRVIKQEAgLTU2LDYgKzU0LDggQEAgZnJvbSBvcHRwYXJzZXIgaW1w
b3J0IEFyZ3VtZW50UGFyc2VyCiBmcm9tIG9wdHBhcnNlciBpbXBvcnQgQ29tbWFuZE9wdGlvblZh
bHVlcwogZnJvbSBwcm9jZXNzb3JzLmNwcCBpbXBvcnQgQ3BwUHJvY2Vzc29yCiBmcm9tIHByb2Nl
c3NvcnMudGV4dCBpbXBvcnQgVGV4dFByb2Nlc3NvcgorZnJvbSB3ZWJraXRweS5zdHlsZV9yZWZl
cmVuY2VzIGltcG9ydCBVbml0VGVzdExvZworZnJvbSB3ZWJraXRweS5zdHlsZV9yZWZlcmVuY2Vz
IGltcG9ydCBVbml0VGVzdExvZ1N0cmVhbQogCiAKIGNsYXNzIENvbmZpZ3VyZUxvZ2dpbmdUZXN0
KHVuaXR0ZXN0LlRlc3RDYXNlKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CmluZGV4IGEzOWJh
MmEuLmNhNTZjMTYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQpAQCAtMjUsMTEgKzI1LDEx
IEBACiAKIGltcG9ydCB1bml0dGVzdAogCi1mcm9tIC4uIHN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0
IHBhcnNlX3BhdGNoCiBmcm9tIGNoZWNrZXIgaW1wb3J0IFN0eWxlQ2hlY2tlckNvbmZpZ3VyYXRp
b24KIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0IERlZmF1bHRTdHlsZUVycm9ySGFuZGxlcgog
ZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgUGF0Y2hTdHlsZUVycm9ySGFuZGxlcgogZnJvbSBm
aWx0ZXIgaW1wb3J0IEZpbHRlckNvbmZpZ3VyYXRpb24KK2Zyb20gd2Via2l0cHkuc3R5bGVfcmVm
ZXJlbmNlcyBpbXBvcnQgcGFyc2VfcGF0Y2gKIAogY2xhc3MgU3R5bGVFcnJvckhhbmRsZXJUZXN0
QmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weQppbmRleCA2Yzg2NGNmLi43ZDE5
NThkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkv
YXV0b2luc3RhbGwucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBh
cnR5L2F1dG9pbnN0YWxsLnB5CkBAIC0xNDEsOSArMTQxLDYgQEAgUmVmZXJlbmNlczo6CiAKICIi
IgogCi0jIFRvIGFsbG93IHVzZSBvZiB0aGUgIndpdGgiIGtleXdvcmQgZm9yIFB5dGhvbiAyLjUg
dXNlcnMuCi1mcm9tIF9fZnV0dXJlX18gaW1wb3J0IHdpdGhfc3RhdGVtZW50Ci0KIF9fdmVyc2lv
bl9fID0gIjAuMiIKIF9fZG9jZm9ybWF0X18gPSAicmVzdHJ1Y3R1cmVkdGV4dCBlbiIKIApAQCAt
MjAxLDkgKzE5OCwxMiBAQCBjbGFzcyBDYWNoZShvYmplY3QpOgogICAgICAgICBfbG9nZ2VyLmRl
YnVnKCJDcmVhdGluZyBjYWNoZSBkaXJlY3RvcnkgJyVzJy4iICUgc2VsZi5kaXJlY3RvcnkpCiAg
ICAgICAgIG9zLm1rZGlyKHNlbGYuZGlyZWN0b3J5KQogICAgICAgICByZWFkbWVfcGF0aCA9IG9z
LnBhdGguam9pbihzZWxmLmRpcmVjdG9yeSwgIlJFQURNRSIpCi0gICAgICAgIHdpdGggb3Blbihy
ZWFkbWVfcGF0aCwgInciKSBhcyBmOgotICAgICAgICAgICAgZi53cml0ZSgiVGhpcyBkaXJlY3Rv
cnkgd2FzIGF1dG8tZ2VuZXJhdGVkIGJ5ICclcycuXG4iCi0gICAgICAgICAgICAgICAgICAgICJJ
dCBpcyBzYWZlIHRvIGRlbGV0ZS5cbiIgJSBfX2ZpbGVfXykKKyAgICAgICAgZmlsZSA9IG9wZW4o
cmVhZG1lX3BhdGgsICJ3IikKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmlsZS53cml0ZSgi
VGhpcyBkaXJlY3Rvcnkgd2FzIGF1dG8tZ2VuZXJhdGVkIGJ5ICclcycuXG4iCisgICAgICAgICAg
ICAgICAgICAgICAgICJJdCBpcyBzYWZlIHRvIGRlbGV0ZS5cbiIgJSBfX2ZpbGVfXykKKyAgICAg
ICAgZmluYWxseToKKyAgICAgICAgICAgIGZpbGUuY2xvc2UoKQogCiAgICAgZGVmIGdldChzZWxm
LCB1cmwpOgogICAgICAgICBfbG9nZ2VyLmluZm8oIkdldHRpbmcgJyVzJyBmcm9tIGNhY2hlLiIg
JSB1cmwpCkBAIC0yODEsNyArMjgxLDExIEBAIGNsYXNzIEltcG9ydGVyKG9iamVjdCk6CiAgICAg
ICAgIGlmIGZ1bGxuYW1lIGluIHNlbGYucGFja2FnZXM6CiAgICAgICAgICAgICAodXJsLCB6aXBf
c3VicGF0aCkgPSBzZWxmLnBhY2thZ2VzW2Z1bGxuYW1lXQogICAgICAgICAgICAgZmlsZW5hbWUg
PSBzZWxmLmNhY2hlLmdldCh1cmwpCi0gICAgICAgICAgICB6aXBfcGF0aCA9ICIlcy8lcyIgJSAo
ZmlsZW5hbWUsIHppcF9zdWJwYXRoKSBpZiB6aXBfc3VicGF0aCBlbHNlIGZpbGVuYW1lCisgICAg
ICAgICAgICBpZiB6aXBfc3VicGF0aDoKKyAgICAgICAgICAgICAgICB6aXBfcGF0aCA9ICIlcy8l
cyIgJSAoZmlsZW5hbWUsIHppcF9zdWJwYXRoKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAg
ICAgICAgICB6aXBfcGF0aCA9IGZpbGVuYW1lCisKICAgICAgICAgICAgIF9sb2dnZXIuZGVidWco
ImZ1bGxuYW1lOiAlcyB1cmw6ICVzIHBhdGg6ICVzIHppcF9wYXRoOiAlcyIgJSAoZnVsbG5hbWUs
IHVybCwgcGF0aCwgemlwX3BhdGgpKQogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg
IGxvYWRlciA9IHppcGltcG9ydC56aXBpbXBvcnRlcih6aXBfcGF0aCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49827</attachid>
            <date>2010-03-02 11:44:38 -0800</date>
            <delta_ts>2010-03-03 14:57:20 -0800</delta_ts>
            <desc>Proposed patch 2</desc>
            <filename>_patch-35584-2.diff</filename>
            <type>text/plain</type>
            <size>15425</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5OTVhYzI1Li45NThkNGMwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTAtMDMt
MDIgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFkZSB0aGUgUHl0aG9uIHVuaXQg
dGVzdHMgKHRlc3Qtd2Via2l0cHkpIHdvcmsgd2l0aCBQeXRob24gMi40LAorICAgICAgICBzaW5j
ZSBzb21lIGRldmVsb3BlcnMgdXNlIFB5dGhvbiAyLjQgaW4gdGhlaXIgZGV2ZWxvcG1lbnQKKyAg
ICAgICAgZW52aXJvbm1lbnQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1NTg0CisKKyAgICAgICAgTWFraW5nIHRoZSB1bml0IHRlc3RzIHdvcmsg
d2l0aCBQeXRob24gMi40IHByb3ZpZGVzIGEgd2F5IHRvIGNoZWNrCisgICAgICAgIHRoYXQgY2hh
bmdlcyB0byB0aGUgUHl0aG9uIHNjcmlwdHMgd2lsbCB3b3JrIGZvciBkZXZlbG9wZXJzIHVzaW5n
CisgICAgICAgIFB5dGhvbiAyLjQgYW5kIDIuNS4KKworICAgICAgICAqIFNjcmlwdHMvdGVzdC13
ZWJraXRweToKKyAgICAgICAgICAtIE1hZGUgdGVzdC13ZWJraXRweSBkaXNwbGF5IGEgd2Fybmlu
ZyBpZiBydW4gd2l0aCBhIFB5dGhvbgorICAgICAgICAgICAgdmVyc2lvbiBuZXdlciB0aGFuIDIu
NC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEucHk6CisgICAgICAgICAg
LSBSZXBsYWNlZCB0d28gdXNlcyBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBhIHVz
ZSBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
Y29tbWFuZHMvcXVlcmllcy5weToKKyAgICAgICAgICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0
ZXJuYXJ5IG9wZXJhdG9yLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy91
cGxvYWQucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBhIHVzZSBvZiB0aGUgdGVybmFyeSBvcGVy
YXRvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY3JlZGVudGlhbHMucHk6CisgICAg
ICAgICAgLSBSZXBsYWNlZCBhIHVzZSBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvZXhlY3V0aXZlLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQg
YSB1c2Ugb2YgdGhlIHRlcm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L21vY2tfYnVnemlsbGF0b29sLnB5OgorICAgICAgICAgIC0gRml4ZWQgY2xhc3MgZGVmaW5p
dGlvbi4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3RlcHMvcHJlcGFyZWNoYW5nZWxv
Z2ZvcnJldmVydC5weToKKyAgICAgICAgICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0ZXJuYXJ5
IG9wZXJhdG9yLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdGVwc2VxdWVuY2UucHk6
CisgICAgICAgICAgLSBGaXhlZCBjbGFzcyBkZWZpbml0aW9uLgorCisgICAgICAgICogU2NyaXB0
cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgcmVsYXRp
dmUgaW1wb3J0cyB3aXRoIGFic29sdXRlIGltcG9ydHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBy
ZWxhdGl2ZSBpbXBvcnRzIHdpdGggYWJzb2x1dGUgaW1wb3J0cy4KKworICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHk6CisgICAgICAgICAg
LSBSZXBsYWNlZCByZWxhdGl2ZSBpbXBvcnRzIHdpdGggYWJzb2x1dGUgaW1wb3J0cy4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weToKKyAgICAg
ICAgICAtIFJlcGxhY2VkIHVzZSBvZiB0aGUgIndpdGgiIGtleXdvcmQuCisgICAgICAgICAgLSBS
ZXBsYWNlZCBhIHVzZSBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKwogMjAxMC0wMy0wMiAgR3Vz
dGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5ub3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy90ZXN0LXdlYmtpdHB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy90ZXN0
LXdlYmtpdHB5CmluZGV4IDg2MTczMzAuLjlhY2UzOTMgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvdGVzdC13ZWJraXRweQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHkKQEAgLTU3LDYgKzU3LDE5IEBAIGZyb20gd2Via2l0cHkudXNlcl91bml0dGVzdCBpbXBv
cnQgKgogZnJvbSB3ZWJraXRweS53ZWJraXRfbG9nZ2luZ191bml0dGVzdCBpbXBvcnQgKgogZnJv
bSB3ZWJraXRweS53ZWJraXRwb3J0X3VuaXR0ZXN0IGltcG9ydCAqCiAKK2RlZiBtYWluKCk6Cisg
ICAgbWFqb3IgPSBzeXMudmVyc2lvbl9pbmZvWzBdCisgICAgbWlub3IgPSBzeXMudmVyc2lvbl9p
bmZvWzFdCisKKyAgICBpZiBtYWpvciA+IDIgb3IgKG1ham9yID09IDIgYW5kIG1pbm9yID4gNCk6
CisgICAgICAgIHZlcnNpb24gPSBzeXMudmVyc2lvbi5zcGxpdCgpWzBdCisgICAgICAgIG1lc3Nh
Z2UgPSAoIldBUk5JTkc6IFdlYktpdCBzaG91bGQgc3VwcG9ydCBQeXRob24gMi40LCAiCisgICAg
ICAgICAgICAgICAgICAgImJ1dCB0aGlzIHZlcnNpb24gKCVzKSBpcyBoaWdoZXIuXG4iCisgICAg
ICAgICAgICAgICAgICAgJSB2ZXJzaW9uKQorICAgICAgICBzeXMuc3RkZXJyLndyaXRlKG1lc3Nh
Z2UpCisKKyAgICB1bml0dGVzdC5tYWluKCkKKwogaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoK
ICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgYnV0IEknbSB0aXJlZCBvZiBjb21tZW50aW5n
IG91dCB0aGUgdGVzdC4KICAgICAjICAgICAgICBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTMxODE4CkBAIC02NCw0ICs3Nyw0IEBAIGlmIF9fbmFtZV9fID09ICJf
X21haW5fXyI6CiAgICAgICAgIHN5cy5hcmd2LnJlbW92ZSgiLS1hbGwiKQogICAgICAgICBmcm9t
IHdlYmtpdHB5LnNjbV91bml0dGVzdCBpbXBvcnQgKgogCi0gICAgdW5pdHRlc3QubWFpbigpCisg
ICAgbWFpbigpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3pp
bGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWd6aWxsYS5weQppbmRleCAw
MGU2OTQwLi41NWEyNmI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2J1Z3ppbGxhLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVnemlsbGEu
cHkKQEAgLTM1Myw3ICszNTMsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICB1bmFz
c2lnbmVkX2VtYWlsID0gIndlYmtpdC11bmFzc2lnbmVkQGxpc3RzLndlYmtpdC5vcmciCiAKICAg
ICBkZWYgYnVnX3VybF9mb3JfYnVnX2lkKHNlbGYsIGJ1Z19pZCwgeG1sPUZhbHNlKToKLSAgICAg
ICAgY29udGVudF90eXBlID0gIiZjdHlwZT14bWwiIGlmIHhtbCBlbHNlICIiCisgICAgICAgIGlm
IHhtbDoKKyAgICAgICAgICAgIGNvbnRlbnRfdHlwZSA9ICImY3R5cGU9eG1sIgorICAgICAgICBl
bHNlOgorICAgICAgICAgICAgY29udGVudF90eXBlID0gIiIKICAgICAgICAgcmV0dXJuICIlc3No
b3dfYnVnLmNnaT9pZD0lcyVzIiAlIChzZWxmLmJ1Z19zZXJ2ZXJfdXJsLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50X3R5cGUpCkBAIC01MDQsNyArNTA3LDEw
IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLCBidWdfaWQ9Tm9uZSk6CiAgICAgICAgIHNlbGYuYnJv
d3NlclsnZGVzY3JpcHRpb24nXSA9IGRlc2NyaXB0aW9uCiAgICAgICAgIHNlbGYuYnJvd3Nlclsn
aXNwYXRjaCddID0gKCIxIiwpCi0gICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBlLTEnXSA9
ICgnPycsKSBpZiBtYXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gnLCkKKyAgICAgICAgaWYgbWFya19m
b3JfcmV2aWV3OgorICAgICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMSddID0gKCc/
JywpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0x
J10gPSAoJ1gnLCkKIAogICAgICAgICBpZiBtYXJrX2Zvcl9sYW5kaW5nOgogICAgICAgICAgICAg
c2VsZi5icm93c2VyWydmbGFnX3R5cGUtMyddID0gKCcrJywpCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9idWlsZGJvdC5weQppbmRleCAzOGQxMDNhLi5jOWRiOWE1IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkKQEAgLTgxLDkgKzgxLDExIEBAIGNsYXNzIEJ1
aWxkQm90OgogICAgICAgICAjIFdpbGwgYmUgZWl0aGVyIGEgcmV2aXNpb24gbnVtYmVyIG9yIGEg
YnVpbGQgbnVtYmVyCiAgICAgICAgIHJldmlzaW9uX3N0cmluZyA9IHN0YXR1c19saW5rLnN0cmlu
ZwogICAgICAgICAjIElmIHJldmlzaW9uX3N0cmluZyBoYXMgbm9uLWRpZ2l0cyBhc3N1bWUgaXQn
cyBub3QgYSByZXZpc2lvbiBudW1iZXIuCi0gICAgICAgIGJ1aWxkZXJbJ2J1aWx0X3JldmlzaW9u
J10gPSBpbnQocmV2aXNpb25fc3RyaW5nKSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiBub3QgcmUubWF0Y2goJ1xEJywgcmV2aXNpb25fc3RyaW5nKSBcCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIE5vbmUKKyAgICAgICAgaWYgbm90IHJl
Lm1hdGNoKCdcRCcsIHJldmlzaW9uX3N0cmluZyk6CisgICAgICAgICAgICByZXZpc2lvbiA9IGlu
dChyZXZpc2lvbl9zdHJpbmcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXZpc2lvbiA9
IE5vbmUKKyAgICAgICAgYnVpbGRlclsnYnVpbHRfcmV2aXNpb24nXSA9IHJldmlzaW9uCiAgICAg
ICAgIGJ1aWxkZXJbJ2lzX2dyZWVuJ10gPSBub3QgcmUuc2VhcmNoKCdmYWlsJywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzX2NlbGxzWzFdLnJlbmRl
ckNvbnRlbnRzKCkpCiAgICAgICAgICMgV2UgY291bGQgcGFyc2Ugb3V0IHRoZSBidWlsZCBudW1i
ZXIgaW5zdGVhZCwgYnV0IGZvciBub3cganVzdCBzdG9yZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVzLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tYW5kcy9xdWVyaWVzLnB5CmluZGV4IDNjYTRmNDIuLjZhYjEwMjUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVlcmll
cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMu
cHkKQEAgLTExMiw1ICsxMTIsOCBAQCBhbmQgZGlzcGxheWVzIHRoZSBzdGF0dXMgb2YgZWFjaCBi
dWlsZGVyLiIiIgogCiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6
CiAgICAgICAgIGZvciBidWlsZGVyIGluIHRvb2wuYnVpbGRib3QuYnVpbGRlcl9zdGF0dXNlcygp
OgotICAgICAgICAgICAgc3RhdHVzX3N0cmluZyA9ICJvayIgaWYgYnVpbGRlclsiaXNfZ3JlZW4i
XSBlbHNlICJGQUlMIgorICAgICAgICAgICAgaWYgYnVpbGRlclsiaXNfZ3JlZW4iXToKKyAgICAg
ICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIm9rIgorICAgICAgICAgICAgZWxzZToKKyAgICAg
ICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIkZBSUwiCiAgICAgICAgICAgICBwcmludCAiJXMg
OiAlcyIgJSAoc3RhdHVzX3N0cmluZy5sanVzdCg0KSwgYnVpbGRlclsibmFtZSJdKQpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5kcy91cGxvYWQucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9hZC5weQppbmRleCAxNWJk
ZmJiLi5jODBmNWYwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1h
bmRzL3VwbG9hZC5weQpAQCAtMzIzLDggKzMyMywxMiBAQCBjbGFzcyBNYXJrQnVnRml4ZWQoQWJz
dHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgICAgICAgICAgICAgIG5vdF9mb3VuZC5hcHBl
bmQoImJ1ZyBpZCIpCiAgICAgICAgICAgICBpZiBub3Qgc3ZuX3JldmlzaW9uOgogICAgICAgICAg
ICAgICAgIG5vdF9mb3VuZC5hcHBlbmQoInN2biByZXZpc2lvbiIpCisgICAgICAgICAgICBpZiBz
dm5fcmV2aXNpb246CisgICAgICAgICAgICAgICAgcmV2aXNpb25fc3RyaW5nID0gInIlcyIgJSBz
dm5fcmV2aXNpb24KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV2aXNpb25f
c3RyaW5nID0gImxhc3QgY29tbWl0IgogICAgICAgICAgICAgZXJyb3IoIkNvdWxkIG5vdCBmaW5k
ICVzIG9uIGNvbW1hbmQtbGluZSBvciBpbiAlcy4iCi0gICAgICAgICAgICAgICAgICAlICgiIG9y
ICIuam9pbihub3RfZm91bmQpLCAiciVzIiAlIHN2bl9yZXZpc2lvbiBpZiBzdm5fcmV2aXNpb24g
ZWxzZSAibGFzdCBjb21taXQiKSkKKyAgICAgICAgICAgICAgICAgICUgKCIgb3IgIi5qb2luKG5v
dF9mb3VuZCksIHJldmlzaW9uX3N0cmluZykpCiAKICAgICAgICAgcmV0dXJuIChidWdfaWQsIHN2
bl9yZXZpc2lvbikKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
cmVkZW50aWFscy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY3JlZGVudGlhbHMu
cHkKaW5kZXggMjk1YzU3Ni4uZDA0NGY2YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jcmVkZW50aWFscy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NyZWRlbnRpYWxzLnB5CkBAIC01Myw4ICs1MywxMCBAQCBjbGFzcyBDcmVkZW50aWFscyhv
YmplY3QpOgogICAgICAgICAgICAgICAgIHNlbGYuX3JlYWRfZ2l0X2NvbmZpZygicGFzc3dvcmQi
KV0KIAogICAgIGRlZiBfcmVhZF9naXRfY29uZmlnKHNlbGYsIGtleSk6Ci0gICAgICAgIGNvbmZp
Z19rZXkgPSAiJXMuJXMiICUgKHNlbGYuZ2l0X3ByZWZpeCwga2V5KSBpZiBzZWxmLmdpdF9wcmVm
aXggXAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZSBrZXkKKyAgICAgICAgaWYgc2VsZi5naXRfcHJlZml4OgorICAgICAgICAgICAgY29u
ZmlnX2tleSA9ICIlcy4lcyIgJSAoc2VsZi5naXRfcHJlZml4LCBrZXkpCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBjb25maWdfa2V5ID0ga2V5CiAgICAgICAgIHJldHVybiBzZWxmLmV4ZWN1
dGl2ZS5ydW5fY29tbWFuZCgKICAgICAgICAgICAgICAgICBbImdpdCIsICJjb25maWciLCAiLS1n
ZXQiLCBjb25maWdfa2V5XSwKICAgICAgICAgICAgICAgICBlcnJvcl9oYW5kbGVyPUV4ZWN1dGl2
ZS5pZ25vcmVfZXJyb3IpLnJzdHJpcCgnXG4nKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9leGVjdXRpdmUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2V4ZWN1dGl2ZS5weQppbmRleCA1MGIxMTliLi41Njg1MDU3IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weQpAQCAtOTgsNyArOTgsMTAgQEAgY2xhc3MgRXhlY3V0
aXZlKG9iamVjdCk6CiAgICAgICAgIGNoaWxkX291dF9maWxlID0gU3RyaW5nSU8uU3RyaW5nSU8o
KQogICAgICAgICBpZiBxdWlldDoKICAgICAgICAgICAgIGRldl9udWxsID0gb3Blbihvcy5kZXZu
dWxsLCAidyIpCi0gICAgICAgIGNoaWxkX3N0ZG91dCA9IHRlZShjaGlsZF9vdXRfZmlsZSwgZGV2
X251bGwgaWYgcXVpZXQgZWxzZSBzeXMuc3Rkb3V0KQorICAgICAgICAgICAgb3V0ID0gZGV2X251
bGwKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG91dCA9IHN5cy5zdGRvdXQKKyAgICAgICAg
Y2hpbGRfc3Rkb3V0ID0gdGVlKGNoaWxkX291dF9maWxlLCBvdXQpCiAgICAgICAgIGV4aXRfY29k
ZSA9IHNlbGYuX3J1bl9jb21tYW5kX3dpdGhfdGVlZF9vdXRwdXQoYXJncywgY2hpbGRfc3Rkb3V0
KQogICAgICAgICBpZiBxdWlldDoKICAgICAgICAgICAgIGRldl9udWxsLmNsb3NlKCkKQEAgLTE0
Niw3ICsxNDksMTAgQEAgY2xhc3MgRXhlY3V0aXZlKG9iamVjdCk6CiAgICAgICAgICAgICBzdGRp
biA9IGlucHV0CiAgICAgICAgICAgICBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBOb25lCiAgICAg
ICAgIGVsc2U6Ci0gICAgICAgICAgICBzdGRpbiA9IHN1YnByb2Nlc3MuUElQRSBpZiBpbnB1dCBl
bHNlIE5vbmUKKyAgICAgICAgICAgIGlmIGlucHV0OgorICAgICAgICAgICAgICAgIHN0ZGluID0g
c3VicHJvY2Vzcy5QSVBFCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHN0ZGlu
ID0gTm9uZQogICAgICAgICAgICAgc3RyaW5nX3RvX2NvbW11bmljYXRlID0gaW5wdXQKICAgICAg
ICAgaWYgcmV0dXJuX3N0ZGVycjoKICAgICAgICAgICAgIHN0ZGVyciA9IHN1YnByb2Nlc3MuU1RE
T1VUCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVnemls
bGF0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9v
bC5weQppbmRleCBmNTIyZTQwLi5hNGM0NzQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L21vY2tfYnVnemlsbGF0b29sLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKQEAgLTM1MSw3ICszNTEsNyBAQCBjbGFz
cyBNb2NrU3RhdHVzU2VydmVyKG9iamVjdCk6CiAgICAgICAgIHJldHVybiAxODcKIAogCi1jbGFz
cyBNb2NrQnVnemlsbGFUb29sKCk6CitjbGFzcyBNb2NrQnVnemlsbGFUb29sKG9iamVjdCk6CiAK
ICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgIHNlbGYuYnVncyA9IE1vY2tCdWd6aWxs
YSgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL3ByZXBh
cmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
ZXBzL3ByZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHkKaW5kZXggODhlNTEzNC4uMzc2MWJkZiAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdGVwcy9wcmVwYXJlY2hh
bmdlbG9nZm9ycmV2ZXJ0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3Rl
cHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydC5weQpAQCAtNDIsNyArNDIsMTAgQEAgY2xhc3Mg
UHJlcGFyZUNoYW5nZUxvZ0ZvclJldmVydChBYnN0cmFjdFN0ZXApOgogICAgICAgICAjIFNlY29u
ZCwgbWFrZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgZm9yIHRoaXMgcm9sbG91dC4KICAgICAgICAg
IyBUaGlzIGNvdWxkIG1vdmUgdG8gcHJlcGFyZS1DaGFuZ2VMb2cgYnkgYWRkaW5nIGEgLS1yZXZl
cnQ9IG9wdGlvbi4KICAgICAgICAgc2VsZi5fcnVuX3NjcmlwdCgicHJlcGFyZS1DaGFuZ2VMb2ci
KQotICAgICAgICBidWdfdXJsID0gc2VsZi5fdG9vbC5idWdzLmJ1Z191cmxfZm9yX2J1Z19pZChz
dGF0ZVsiYnVnX2lkIl0pIGlmIHN0YXRlWyJidWdfaWQiXSBlbHNlIE5vbmUKKyAgICAgICAgaWYg
c3RhdGVbImJ1Z19pZCJdOgorICAgICAgICAgICAgYnVnX3VybCA9IHNlbGYuX3Rvb2wuYnVncy5i
dWdfdXJsX2Zvcl9idWdfaWQoc3RhdGVbImJ1Z19pZCJdKQorICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgYnVnX3VybCA9IE5vbmUKICAgICAgICAgZm9yIGNoYW5nZWxvZ19wYXRoIGluIGNoYW5n
ZWxvZ19wYXRoczoKICAgICAgICAgICAgICMgRklYTUU6IFNlZW1zIHdlIHNob3VsZCBwcmVwYXJl
IHRoZSBtZXNzYWdlIG91dHNpZGUgb2YgY2hhbmdlbG9ncy5weSBhbmQgdGhlbiBqdXN0IHBhc3Mg
aW4KICAgICAgICAgICAgICMgdGV4dCB0aGF0IHdlIHdhbnQgdG8gdXNlIHRvIHJlcGxhY2UgdGhl
IHJldmlld2VkIGJ5IGxpbmUuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0ZXBzZXF1ZW5jZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3RlcHNl
cXVlbmNlLnB5CmluZGV4IDAwOGIzNjYuLjZjOWI5MGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvc3RlcHNlcXVlbmNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3RlcHNlcXVlbmNlLnB5CkBAIC0zNCw3ICszNCw3IEBAIGZyb20gd2Via2l0
cHkuc2NtIGltcG9ydCBDaGVja291dE5lZWRzVXBkYXRlCiBmcm9tIHdlYmtpdHB5LnF1ZXVlZW5n
aW5lIGltcG9ydCBRdWV1ZUVuZ2luZQogCiAKLWNsYXNzIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxl
cigpOgorY2xhc3MgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKG9iamVjdCk6CiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIGhhbmRsZV9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBwYXRjaCwgc2Ny
aXB0X2Vycm9yKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNz
ZXMgbXVzdCBpbXBsZW1lbnQiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXIucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxl
L2NoZWNrZXIucHkKaW5kZXggOTJkNjVkMy4uOWY4YWExOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQpAQCAtMzQsNyArMzQsNiBAQCBpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IG9zLnBhdGgKIGltcG9ydCBzeXMKIAotZnJvbSAuLiBzdHlsZV9yZWZl
cmVuY2VzIGltcG9ydCBwYXJzZV9wYXRjaAogZnJvbSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgRGVm
YXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9ydCBQYXRjaFN0
eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGZpbHRlciBpbXBvcnQgRmlsdGVyQ29uZmlndXJhdGlvbgpA
QCAtNDQsNiArNDMsNyBAQCBmcm9tIHByb2Nlc3NvcnMuY29tbW9uIGltcG9ydCBjYXRlZ29yaWVz
IGFzIENvbW1vbkNhdGVnb3JpZXMKIGZyb20gcHJvY2Vzc29ycy5jb21tb24gaW1wb3J0IENhcnJp
YWdlUmV0dXJuUHJvY2Vzc29yCiBmcm9tIHByb2Nlc3NvcnMuY3BwIGltcG9ydCBDcHBQcm9jZXNz
b3IKIGZyb20gcHJvY2Vzc29ycy50ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCitmcm9tIHdlYmtp
dHB5LnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCiAKIF9sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcigid2Via2l0cHkuc3R5bGUuY2hlY2tlciIpCiAKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQppbmRleCBk
ODY2NjYzLi43OWE3NDhiIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5CkBAIC0zOCw4ICszOCw2IEBAIGltcG9ydCBs
b2dnaW5nCiBpbXBvcnQgdW5pdHRlc3QKIAogaW1wb3J0IGNoZWNrZXIgYXMgc3R5bGUKLWZyb20g
Li5zdHlsZV9yZWZlcmVuY2VzIGltcG9ydCBVbml0VGVzdExvZwotZnJvbSAuLnN0eWxlX3JlZmVy
ZW5jZXMgaW1wb3J0IFVuaXRUZXN0TG9nU3RyZWFtCiBmcm9tIGNoZWNrZXIgaW1wb3J0IF9CQVNF
X0ZJTFRFUl9SVUxFUwogZnJvbSBjaGVja2VyIGltcG9ydCBfTUFYX1JFUE9SVFNfUEVSX0NBVEVH
T1JZCiBmcm9tIGNoZWNrZXIgaW1wb3J0IF9QQVRIX1JVTEVTX1NQRUNJRklFUiBhcyBQQVRIX1JV
TEVTX1NQRUNJRklFUgpAQCAtNTYsNiArNTQsOCBAQCBmcm9tIG9wdHBhcnNlciBpbXBvcnQgQXJn
dW1lbnRQYXJzZXIKIGZyb20gb3B0cGFyc2VyIGltcG9ydCBDb21tYW5kT3B0aW9uVmFsdWVzCiBm
cm9tIHByb2Nlc3NvcnMuY3BwIGltcG9ydCBDcHBQcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29ycy50
ZXh0IGltcG9ydCBUZXh0UHJvY2Vzc29yCitmcm9tIHdlYmtpdHB5LnN0eWxlX3JlZmVyZW5jZXMg
aW1wb3J0IFVuaXRUZXN0TG9nCitmcm9tIHdlYmtpdHB5LnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0
IFVuaXRUZXN0TG9nU3RyZWFtCiAKIAogY2xhc3MgQ29uZmlndXJlTG9nZ2luZ1Rlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9z
dHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkKaW5kZXggYTM5YmEyYS4uY2E1
NmMxNiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9lcnJv
cl9oYW5kbGVyc191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CkBAIC0yNSwxMSArMjUsMTEgQEAKIAog
aW1wb3J0IHVuaXR0ZXN0CiAKLWZyb20gLi4gc3R5bGVfcmVmZXJlbmNlcyBpbXBvcnQgcGFyc2Vf
cGF0Y2gKIGZyb20gY2hlY2tlciBpbXBvcnQgU3R5bGVDaGVja2VyQ29uZmlndXJhdGlvbgogZnJv
bSBlcnJvcl9oYW5kbGVycyBpbXBvcnQgRGVmYXVsdFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGVy
cm9yX2hhbmRsZXJzIGltcG9ydCBQYXRjaFN0eWxlRXJyb3JIYW5kbGVyCiBmcm9tIGZpbHRlciBp
bXBvcnQgRmlsdGVyQ29uZmlndXJhdGlvbgorZnJvbSB3ZWJraXRweS5zdHlsZV9yZWZlcmVuY2Vz
IGltcG9ydCBwYXJzZV9wYXRjaAogCiBjbGFzcyBTdHlsZUVycm9ySGFuZGxlclRlc3RCYXNlKHVu
aXR0ZXN0LlRlc3RDYXNlKToKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5CmluZGV4IDZjODY0Y2YuLjdkMTk1OGQgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5z
dGFsbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvYXV0
b2luc3RhbGwucHkKQEAgLTE0MSw5ICsxNDEsNiBAQCBSZWZlcmVuY2VzOjoKIAogIiIiCiAKLSMg
VG8gYWxsb3cgdXNlIG9mIHRoZSAid2l0aCIga2V5d29yZCBmb3IgUHl0aG9uIDIuNSB1c2Vycy4K
LWZyb20gX19mdXR1cmVfXyBpbXBvcnQgd2l0aF9zdGF0ZW1lbnQKLQogX192ZXJzaW9uX18gPSAi
MC4yIgogX19kb2Nmb3JtYXRfXyA9ICJyZXN0cnVjdHVyZWR0ZXh0IGVuIgogCkBAIC0yMDEsOSAr
MTk4LDEyIEBAIGNsYXNzIENhY2hlKG9iamVjdCk6CiAgICAgICAgIF9sb2dnZXIuZGVidWcoIkNy
ZWF0aW5nIGNhY2hlIGRpcmVjdG9yeSAnJXMnLiIgJSBzZWxmLmRpcmVjdG9yeSkKICAgICAgICAg
b3MubWtkaXIoc2VsZi5kaXJlY3RvcnkpCiAgICAgICAgIHJlYWRtZV9wYXRoID0gb3MucGF0aC5q
b2luKHNlbGYuZGlyZWN0b3J5LCAiUkVBRE1FIikKLSAgICAgICAgd2l0aCBvcGVuKHJlYWRtZV9w
YXRoLCAidyIpIGFzIGY6Ci0gICAgICAgICAgICBmLndyaXRlKCJUaGlzIGRpcmVjdG9yeSB3YXMg
YXV0by1nZW5lcmF0ZWQgYnkgJyVzJy5cbiIKLSAgICAgICAgICAgICAgICAgICAgIkl0IGlzIHNh
ZmUgdG8gZGVsZXRlLlxuIiAlIF9fZmlsZV9fKQorICAgICAgICBmaWxlID0gb3BlbihyZWFkbWVf
cGF0aCwgInciKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBmaWxlLndyaXRlKCJUaGlzIGRp
cmVjdG9yeSB3YXMgYXV0by1nZW5lcmF0ZWQgYnkgJyVzJy5cbiIKKyAgICAgICAgICAgICAgICAg
ICAgICAgIkl0IGlzIHNhZmUgdG8gZGVsZXRlLlxuIiAlIF9fZmlsZV9fKQorICAgICAgICBmaW5h
bGx5OgorICAgICAgICAgICAgZmlsZS5jbG9zZSgpCiAKICAgICBkZWYgZ2V0KHNlbGYsIHVybCk6
CiAgICAgICAgIF9sb2dnZXIuaW5mbygiR2V0dGluZyAnJXMnIGZyb20gY2FjaGUuIiAlIHVybCkK
QEAgLTI4MSw3ICsyODEsMTEgQEAgY2xhc3MgSW1wb3J0ZXIob2JqZWN0KToKICAgICAgICAgaWYg
ZnVsbG5hbWUgaW4gc2VsZi5wYWNrYWdlczoKICAgICAgICAgICAgICh1cmwsIHppcF9zdWJwYXRo
KSA9IHNlbGYucGFja2FnZXNbZnVsbG5hbWVdCiAgICAgICAgICAgICBmaWxlbmFtZSA9IHNlbGYu
Y2FjaGUuZ2V0KHVybCkKLSAgICAgICAgICAgIHppcF9wYXRoID0gIiVzLyVzIiAlIChmaWxlbmFt
ZSwgemlwX3N1YnBhdGgpIGlmIHppcF9zdWJwYXRoIGVsc2UgZmlsZW5hbWUKKyAgICAgICAgICAg
IGlmIHppcF9zdWJwYXRoOgorICAgICAgICAgICAgICAgIHppcF9wYXRoID0gIiVzLyVzIiAlIChm
aWxlbmFtZSwgemlwX3N1YnBhdGgpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg
IHppcF9wYXRoID0gZmlsZW5hbWUKKwogICAgICAgICAgICAgX2xvZ2dlci5kZWJ1ZygiZnVsbG5h
bWU6ICVzIHVybDogJXMgcGF0aDogJXMgemlwX3BhdGg6ICVzIiAlIChmdWxsbmFtZSwgdXJsLCBw
YXRoLCB6aXBfcGF0aCkpCiAgICAgICAgICAgICB0cnk6CiAgICAgICAgICAgICAgICAgbG9hZGVy
ID0gemlwaW1wb3J0LnppcGltcG9ydGVyKHppcF9wYXRoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49952</attachid>
            <date>2010-03-03 14:57:20 -0800</date>
            <delta_ts>2010-03-05 15:19:36 -0800</delta_ts>
            <desc>Proposed patch 3</desc>
            <filename>_patch-35584-3.diff</filename>
            <type>text/plain</type>
            <size>22622</size>
            <attacher name="Chris Jerdonek">cjerdonek</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5OTVhYzI1Li41NTE2OGIxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzEgQEAKKzIwMTAtMDMt
MDMgIENocmlzIEplcmRvbmVrICA8Y2plcmRvbmVrQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFkZSB0aGUgUHl0aG9uIHVuaXQg
dGVzdHMgKHRlc3Qtd2Via2l0cHkpIHdvcmsgd2l0aCBQeXRob24gMi40LAorICAgICAgICBzaW5j
ZSBzb21lIGRldmVsb3BlcnMgdXNlIFB5dGhvbiAyLjQgaW4gdGhlaXIgZGV2ZWxvcG1lbnQKKyAg
ICAgICAgZW52aXJvbm1lbnQuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM1NTg0CisKKyAgICAgICAgTWFraW5nIHRoZSB1bml0IHRlc3RzIHdvcmsg
d2l0aCBQeXRob24gMi40IHByb3ZpZGVzIGEgd2F5IHRvIGNoZWNrCisgICAgICAgIHRoYXQgY2hh
bmdlcyB0byB0aGUgUHl0aG9uIHNjcmlwdHMgd2lsbCB3b3JrIGZvciBkZXZlbG9wZXJzIHVzaW5n
CisgICAgICAgIFB5dGhvbiAyLjQgYW5kIDIuNS4gIEFsc28gYWRkZWQgYSBQeXRob24gdmVyc2lv
biB3YXJuaW5nIG1lc3NhZ2UKKyAgICAgICAgYW5kIGxvZ2dpbmcgY29kZSB0byBhc3Npc3Qgd2l0
aCB0cm91Ymxlc2hvb3RpbmcuCisKKyAgICAgICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHk6Cisg
ICAgICAgICAgLSBNb3ZlZCB0aGUgImZyb20gLi4uX3VuaXR0ZXN0IGltcG9ydCAqIiBsaW5lcyB0
byB0aGUgbmV3CisgICAgICAgICAgICBmaWxlIFNjcmlwdHMvd2Via2l0cHkvdW5pdHRlc3RzLnB5
LgorICAgICAgICAgIC0gQWRkZWQgYSBtZXRob2QgdG8gY29uZmlndXJlIGxvZ2dpbmcgd2hlbiBy
dW5uaW5nIHRlc3Qtd2Via2l0cHkuCisgICAgICAgICAgLSBNYWRlIHRlc3Qtd2Via2l0cHkgZGlz
cGxheSBhIHdhcm5pbmcgaWYgcnVuIHdpdGggYSBQeXRob24KKyAgICAgICAgICAgIHZlcnNpb24g
bmV3ZXIgdGhhbiAyLjQuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhLnB5
OgorICAgICAgICAgIC0gUmVwbGFjZWQgdHdvIHVzZXMgb2YgdGhlIHRlcm5hcnkgb3BlcmF0b3Iu
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5OgorICAgICAgICAgIC0g
UmVwbGFjZWQgYSB1c2Ugb2YgdGhlIHRlcm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBh
IHVzZSBvZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvdXBsb2FkLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgYSB1c2Ugb2YgdGhl
IHRlcm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NyZWRlbnRp
YWxzLnB5OgorICAgICAgICAgIC0gUmVwbGFjZWQgYSB1c2Ugb2YgdGhlIHRlcm5hcnkgb3BlcmF0
b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weToKKyAgICAgICAg
ICAtIFJlcGxhY2VkIGEgdXNlIG9mIHRoZSB0ZXJuYXJ5IG9wZXJhdG9yLgorCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weToKKyAgICAgICAgICAtIEZpeGVk
IGNsYXNzIGRlZmluaXRpb24uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL3By
ZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHk6CisgICAgICAgICAgLSBSZXBsYWNlZCBhIHVzZSBv
ZiB0aGUgdGVybmFyeSBvcGVyYXRvci4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3Rl
cHNlcXVlbmNlLnB5OgorICAgICAgICAgIC0gRml4ZWQgY2xhc3MgZGVmaW5pdGlvbi4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgICAtIFJl
cGxhY2VkIHJlbGF0aXZlIGltcG9ydHMgd2l0aCBhYnNvbHV0ZSBpbXBvcnRzLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5OgorICAgICAgICAg
IC0gUmVwbGFjZWQgcmVsYXRpdmUgaW1wb3J0cyB3aXRoIGFic29sdXRlIGltcG9ydHMuCisKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5
OgorICAgICAgICAgIC0gUmVwbGFjZWQgcmVsYXRpdmUgaW1wb3J0cyB3aXRoIGFic29sdXRlIGlt
cG9ydHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weToK
KyAgICAgICAgICAtIEZpeGVkL3VwZGF0ZWQgYSBjb2RlIGNvbW1lbnQuCisKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvYXV0b2luc3RhbGwucHk6CisgICAgICAgICAgLSBS
ZXBsYWNlZCB1c2Ugb2YgdGhlICJ3aXRoIiBrZXl3b3JkLgorICAgICAgICAgIC0gUmVwbGFjZWQg
YSB1c2Ugb2YgdGhlIHRlcm5hcnkgb3BlcmF0b3IuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L3VuaXR0ZXN0cy5weTogQWRkZWQuCisgICAgICAgICAgLSBNb3ZlZCB0aGUgImZyb20gLi4u
X3VuaXR0ZXN0IGltcG9ydCAqIiBsaW5lcyBmcm9tIHRlc3Qtd2Via2l0cHkuCisKIDIwMTAtMDMt
MDIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGd1c3Rhdm8ubm9yb25oYUBjb2xsYWJvcmEuY28u
dWs+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvdGVzdC13ZWJraXRweQppbmRleCA4NjE3MzMwLi42M2JiZmUwIDEwMDc1NQotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy90
ZXN0LXdlYmtpdHB5CkBAIC0xLDUgKzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCiAjIENv
cHlyaWdodCAoYykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTAgQ2hyaXMgSmVyZG9uZWsgKGNqZXJkb25la0B3ZWJraXQub3JnKQogIwog
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMjcsNDEgKzI4LDU0IEBACiAjIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHN5cwogaW1w
b3J0IHVuaXR0ZXN0CiAKLWZyb20gd2Via2l0cHkuYnVnemlsbGFfdW5pdHRlc3QgaW1wb3J0ICoK
LWZyb20gd2Via2l0cHkuYnVpbGRib3RfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHku
Y2hhbmdlbG9nc191bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5kb3du
bG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5lYXJseV93YXJu
aW5nX3N5c3RlbV91bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5vcGVu
YnVnc191bml0dGVzdCBpbXBvcnQgT3BlbkJ1Z3NUZXN0Ci1mcm9tIHdlYmtpdHB5LmNvbW1hbmRz
LnVwbG9hZF91bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWVyaWVz
X3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlc191bml0dGVz
dCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5jb21taXR0ZXJzX3VuaXR0ZXN0IGltcG9ydCAqCi1m
cm9tIHdlYmtpdHB5LmNyZWRlbnRpYWxzX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5
LmRpZmZfcGFyc2VyX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LmV4ZWN1dGl2ZV91
bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5ncmFtbWFyX3VuaXR0ZXN0IGltcG9ydCAq
Ci1mcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0Lm1hY191bml0dGVzdCBpbXBvcnQgKgot
ZnJvbSB3ZWJraXRweS5tdWx0aWNvbW1hbmR0b29sX3VuaXR0ZXN0IGltcG9ydCAqCi1mcm9tIHdl
YmtpdHB5Lm5ldHdvcmt0cmFuc2FjdGlvbl91bml0dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRw
eS5wYXRjaGNvbGxlY3Rpb25fdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkucXVldWVl
bmdpbmVfdW5pdHRlc3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuc3RlcHMuc3RlcHNfdW5pdHRl
c3QgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuc3RlcHMuY2xvc2VidWdmb3JsYW5kZGlmZl91bml0
dGVzdCBpbXBvcnQgKgotZnJvbSB3ZWJraXRweS5zdGVwcy51cGRhdGVjaGFuZ2Vsb2dzd2l0aHJl
dmlld191bml0dGVzdHMgaW1wb3J0ICoKLWZyb20gd2Via2l0cHkuc3R5bGUudW5pdHRlc3RzIGlt
cG9ydCAqICMgZm9yIGNoZWNrLXdlYmtpdC1zdHlsZQotZnJvbSB3ZWJraXRweS51c2VyX3VuaXR0
ZXN0IGltcG9ydCAqCi1mcm9tIHdlYmtpdHB5LndlYmtpdF9sb2dnaW5nX3VuaXR0ZXN0IGltcG9y
dCAqCi1mcm9tIHdlYmtpdHB5LndlYmtpdHBvcnRfdW5pdHRlc3QgaW1wb3J0ICoKKworZGVmIGNv
bmZpZ3VyZV9sb2dnaW5nKCk6CisgICAgIiIiQ29uZmlndXJlIGxvZ2dpbmcgZm9yIHRoaXMgc2Ny
aXB0LiIiIgorICAgIGhhbmRsZXIgPSBsb2dnaW5nLlN0cmVhbUhhbmRsZXIoc3lzLnN0ZGVycikK
KyAgICBoYW5kbGVyLnNldExldmVsKGxvZ2dpbmcuREVCVUcpCisgICAgZm9ybWF0dGVyID0gbG9n
Z2luZy5Gb3JtYXR0ZXIoIiUobmFtZSlzOiBbJShsZXZlbG5hbWUpc10gJShtZXNzYWdlKXMiKQor
ICAgIGhhbmRsZXIuc2V0Rm9ybWF0dGVyKGZvcm1hdHRlcikKKworICAgIGxvZ2dlciA9IGxvZ2dp
bmcuZ2V0TG9nZ2VyKCkKKyAgICBsb2dnZXIuc2V0TGV2ZWwobG9nZ2luZy5JTkZPKQorICAgIGxv
Z2dlci5hZGRIYW5kbGVyKGhhbmRsZXIpCisKKworZGVmIGluaXQoKToKKyAgICAjIEZJWE1FOiBB
bGxvdyB0aGUgdXNlciB0byB0dXJuIG9uIGxvZ2dpbmcgdmlhIGEgLS1kZWJ1ZyBvcHRpb24uCisg
ICAgIyAgICAgICAgVGhpcyB3aWxsIGFsbG93IHRoZSB1c2VyIHRvIGVuYWJsZSB0aGUgZGlzcGxh
eSBvZgorICAgICMgICAgICAgIGF1dG9pbnN0YWxsIGxvZ2dpbmcubG9nIG1lc3NhZ2VzLCBmb3Ig
ZXhhbXBsZSwgd2hpbGUKKyAgICAjICAgICAgICBydW5uaW5nIHRoZSB1bml0IHRlc3RzLgorICAg
ICMKKyAgICAjIFVuY29tbWVudCB0aGUgZm9sbG93aW5nIGxpbmUgdG8gZW5hYmxlIGxvZ2dpbmcu
CisgICAgIyBjb25maWd1cmVfbG9nZ2luZygpCisKKyAgICBtYWpvciA9IHN5cy52ZXJzaW9uX2lu
Zm9bMF0KKyAgICBtaW5vciA9IHN5cy52ZXJzaW9uX2luZm9bMV0KKworICAgIGlmIG1ham9yID4g
MiBvciAobWFqb3IgPT0gMiBhbmQgbWlub3IgPiA0KToKKyAgICAgICAgdmVyc2lvbiA9IHN5cy52
ZXJzaW9uLnNwbGl0KClbMF0KKyAgICAgICAgbWVzc2FnZSA9ICgiV0FSTklORzogV2ViS2l0IHNo
b3VsZCBzdXBwb3J0IFB5dGhvbiAyLjQsICIKKyAgICAgICAgICAgICAgICAgICAiYnV0IHRoaXMg
dmVyc2lvbiAoJXMpIGlzIGhpZ2hlci5cbiIKKyAgICAgICAgICAgICAgICAgICAlIHZlcnNpb24p
CisgICAgICAgIHN5cy5zdGRlcnIud3JpdGUobWVzc2FnZSkKKwogCiBpZiBfX25hbWVfXyA9PSAi
X19tYWluX18iOgotICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrLCBidXQgSSdtIHRpcmVkIG9m
IGNvbW1lbnRpbmcgb3V0IHRoZSB0ZXN0LgotICAgICMgICAgICAgIFNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE4MTgKLSAgICBpZiBsZW4oc3lzLmFyZ3YpID4g
MSBhbmQgc3lzLmFyZ3ZbMV0gPT0gIi0tYWxsIjoKLSAgICAgICAgc3lzLmFyZ3YucmVtb3ZlKCIt
LWFsbCIpCi0gICAgICAgIGZyb20gd2Via2l0cHkuc2NtX3VuaXR0ZXN0IGltcG9ydCAqCiAKKyAg
ICBpbml0KCkKKworICAgICMgV2UgaW1wb3J0IHRoZSB1bml0IHRlc3QgY29kZSBhZnRlciBpbml0
KCkgdG8gZW5zdXJlIHRoYXQgdGhlCisgICAgIyB1c2VyIHNlZXMgdGhlIFB5dGhvbiB2ZXJzaW9u
IHdhcm5pbmcgYWJvdmUgaW4gY2FzZSBhbiBlcnJvciBvY2N1cnMKKyAgICAjIHdoaWxlIGludGVy
cHJldGluZyB3ZWJraXRweS51bml0dGVzdHMuICBUaGlzIGFsc28gYWxsb3dzIGxvZ2dpbmcKKyAg
ICAjIHRvIGJlIGNvbmZpZ3VyZWQgcHJpb3IgdG8gaW1wb3J0aW5nIC0tIGZvciBleGFtcGxlIHRv
IGVuYWJsZSB0aGUKKyAgICAjIGRpc3BsYXkgb2YgYXV0b2luc3RhbGwgbG9nZ2luZy5sb2cgbWVz
c2FnZXMgd2hpbGUgcnVubmluZyB0aGUgdW5pdAorICAgICMgdGVzdHMuCisgICAgZnJvbSB3ZWJr
aXRweS51bml0dGVzdHMgaW1wb3J0ICoKKworICAgICMgUnVucyB0aGUgdW5pdCB0ZXN0cy4KICAg
ICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvYnVnemlsbGEucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2J1Z3ppbGxhLnB5
CmluZGV4IDAwZTY5NDAuLjU1YTI2YjQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvYnVnemlsbGEucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9i
dWd6aWxsYS5weQpAQCAtMzUzLDcgKzM1MywxMCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgog
ICAgIHVuYXNzaWduZWRfZW1haWwgPSAid2Via2l0LXVuYXNzaWduZWRAbGlzdHMud2Via2l0Lm9y
ZyIKIAogICAgIGRlZiBidWdfdXJsX2Zvcl9idWdfaWQoc2VsZiwgYnVnX2lkLCB4bWw9RmFsc2Up
OgotICAgICAgICBjb250ZW50X3R5cGUgPSAiJmN0eXBlPXhtbCIgaWYgeG1sIGVsc2UgIiIKKyAg
ICAgICAgaWYgeG1sOgorICAgICAgICAgICAgY29udGVudF90eXBlID0gIiZjdHlwZT14bWwiCisg
ICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250ZW50X3R5cGUgPSAiIgogICAgICAgICByZXR1
cm4gIiVzc2hvd19idWcuY2dpP2lkPSVzJXMiICUgKHNlbGYuYnVnX3NlcnZlcl91cmwsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnRfdHlwZSkKQEAgLTUwNCw3
ICs1MDcsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsIGJ1Z19pZD1Ob25lKToKICAgICAgICAg
c2VsZi5icm93c2VyWydkZXNjcmlwdGlvbiddID0gZGVzY3JpcHRpb24KICAgICAgICAgc2VsZi5i
cm93c2VyWydpc3BhdGNoJ10gPSAoIjEiLCkKLSAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5
cGUtMSddID0gKCc/JywpIGlmIG1hcmtfZm9yX3JldmlldyBlbHNlICgnWCcsKQorICAgICAgICBp
ZiBtYXJrX2Zvcl9yZXZpZXc6CisgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0x
J10gPSAoJz8nLCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuYnJvd3NlclsnZmxh
Z190eXBlLTEnXSA9ICgnWCcsKQogCiAgICAgICAgIGlmIG1hcmtfZm9yX2xhbmRpbmc6CiAgICAg
ICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0zJ10gPSAoJysnLCkKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2J1aWxkYm90LnB5CmluZGV4IDM4ZDEwM2EuLmM5ZGI5YTUgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvYnVpbGRib3QucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9idWlsZGJvdC5weQpAQCAtODEsOSArODEsMTEgQEAg
Y2xhc3MgQnVpbGRCb3Q6CiAgICAgICAgICMgV2lsbCBiZSBlaXRoZXIgYSByZXZpc2lvbiBudW1i
ZXIgb3IgYSBidWlsZCBudW1iZXIKICAgICAgICAgcmV2aXNpb25fc3RyaW5nID0gc3RhdHVzX2xp
bmsuc3RyaW5nCiAgICAgICAgICMgSWYgcmV2aXNpb25fc3RyaW5nIGhhcyBub24tZGlnaXRzIGFz
c3VtZSBpdCdzIG5vdCBhIHJldmlzaW9uIG51bWJlci4KLSAgICAgICAgYnVpbGRlclsnYnVpbHRf
cmV2aXNpb24nXSA9IGludChyZXZpc2lvbl9zdHJpbmcpIFwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCgnXEQnLCByZXZpc2lvbl9zdHJpbmcpIFwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgTm9uZQorICAgICAgICBp
ZiBub3QgcmUubWF0Y2goJ1xEJywgcmV2aXNpb25fc3RyaW5nKToKKyAgICAgICAgICAgIHJldmlz
aW9uID0gaW50KHJldmlzaW9uX3N0cmluZykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJl
dmlzaW9uID0gTm9uZQorICAgICAgICBidWlsZGVyWydidWlsdF9yZXZpc2lvbiddID0gcmV2aXNp
b24KICAgICAgICAgYnVpbGRlclsnaXNfZ3JlZW4nXSA9IG5vdCByZS5zZWFyY2goJ2ZhaWwnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXNfY2VsbHNb
MV0ucmVuZGVyQ29udGVudHMoKSkKICAgICAgICAgIyBXZSBjb3VsZCBwYXJzZSBvdXQgdGhlIGJ1
aWxkIG51bWJlciBpbnN0ZWFkLCBidXQgZm9yIG5vdyBqdXN0IHN0b3JlCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXJpZXMucHkKaW5kZXggM2NhNGY0Mi4u
NmFiMTAyNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tYW5k
cy9xdWVyaWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMv
cXVlcmllcy5weQpAQCAtMTEyLDUgKzExMiw4IEBAIGFuZCBkaXNwbGF5ZXMgdGhlIHN0YXR1cyBv
ZiBlYWNoIGJ1aWxkZXIuIiIiCiAKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdz
LCB0b29sKToKICAgICAgICAgZm9yIGJ1aWxkZXIgaW4gdG9vbC5idWlsZGJvdC5idWlsZGVyX3N0
YXR1c2VzKCk6Ci0gICAgICAgICAgICBzdGF0dXNfc3RyaW5nID0gIm9rIiBpZiBidWlsZGVyWyJp
c19ncmVlbiJdIGVsc2UgIkZBSUwiCisgICAgICAgICAgICBpZiBidWlsZGVyWyJpc19ncmVlbiJd
OgorICAgICAgICAgICAgICAgIHN0YXR1c19zdHJpbmcgPSAib2siCisgICAgICAgICAgICBlbHNl
OgorICAgICAgICAgICAgICAgIHN0YXR1c19zdHJpbmcgPSAiRkFJTCIKICAgICAgICAgICAgIHBy
aW50ICIlcyA6ICVzIiAlIChzdGF0dXNfc3RyaW5nLmxqdXN0KDQpLCBidWlsZGVyWyJuYW1lIl0p
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1hbmRzL3VwbG9h
ZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5Cmlu
ZGV4IDE1YmRmYmIuLmM4MGY1ZjAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbWFuZHMvdXBsb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0zMjMsOCArMzIzLDEyIEBAIGNsYXNzIE1hcmtCdWdG
aXhlZChBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAgICAgICAgICAgbm90X2Zv
dW5kLmFwcGVuZCgiYnVnIGlkIikKICAgICAgICAgICAgIGlmIG5vdCBzdm5fcmV2aXNpb246CiAg
ICAgICAgICAgICAgICAgbm90X2ZvdW5kLmFwcGVuZCgic3ZuIHJldmlzaW9uIikKKyAgICAgICAg
ICAgIGlmIHN2bl9yZXZpc2lvbjoKKyAgICAgICAgICAgICAgICByZXZpc2lvbl9zdHJpbmcgPSAi
ciVzIiAlIHN2bl9yZXZpc2lvbgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBy
ZXZpc2lvbl9zdHJpbmcgPSAibGFzdCBjb21taXQiCiAgICAgICAgICAgICBlcnJvcigiQ291bGQg
bm90IGZpbmQgJXMgb24gY29tbWFuZC1saW5lIG9yIGluICVzLiIKLSAgICAgICAgICAgICAgICAg
ICUgKCIgb3IgIi5qb2luKG5vdF9mb3VuZCksICJyJXMiICUgc3ZuX3JldmlzaW9uIGlmIHN2bl9y
ZXZpc2lvbiBlbHNlICJsYXN0IGNvbW1pdCIpKQorICAgICAgICAgICAgICAgICAgJSAoIiBvciAi
LmpvaW4obm90X2ZvdW5kKSwgcmV2aXNpb25fc3RyaW5nKSkKIAogICAgICAgICByZXR1cm4gKGJ1
Z19pZCwgc3ZuX3JldmlzaW9uKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NyZWRlbnRpYWxzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jcmVk
ZW50aWFscy5weQppbmRleCAyOTVjNTc2Li5kMDQ0ZjZhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NyZWRlbnRpYWxzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY3JlZGVudGlhbHMucHkKQEAgLTUzLDggKzUzLDEwIEBAIGNsYXNzIENyZWRl
bnRpYWxzKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fcmVhZF9naXRfY29uZmlnKCJw
YXNzd29yZCIpXQogCiAgICAgZGVmIF9yZWFkX2dpdF9jb25maWcoc2VsZiwga2V5KToKLSAgICAg
ICAgY29uZmlnX2tleSA9ICIlcy4lcyIgJSAoc2VsZi5naXRfcHJlZml4LCBrZXkpIGlmIHNlbGYu
Z2l0X3ByZWZpeCBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIGtleQorICAgICAgICBpZiBzZWxmLmdpdF9wcmVmaXg6CisgICAgICAg
ICAgICBjb25maWdfa2V5ID0gIiVzLiVzIiAlIChzZWxmLmdpdF9wcmVmaXgsIGtleSkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgIGNvbmZpZ19rZXkgPSBrZXkKICAgICAgICAgcmV0dXJuIHNl
bGYuZXhlY3V0aXZlLnJ1bl9jb21tYW5kKAogICAgICAgICAgICAgICAgIFsiZ2l0IiwgImNvbmZp
ZyIsICItLWdldCIsIGNvbmZpZ19rZXldLAogICAgICAgICAgICAgICAgIGVycm9yX2hhbmRsZXI9
RXhlY3V0aXZlLmlnbm9yZV9lcnJvcikucnN0cmlwKCdcbicpCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2V4ZWN1dGl2ZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvZXhlY3V0aXZlLnB5CmluZGV4IDUwYjExOWIuLjU2ODUwNTcgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvZXhlY3V0aXZlLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvZXhlY3V0aXZlLnB5CkBAIC05OCw3ICs5OCwxMCBAQCBjbGFz
cyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgY2hpbGRfb3V0X2ZpbGUgPSBTdHJpbmdJTy5T
dHJpbmdJTygpCiAgICAgICAgIGlmIHF1aWV0OgogICAgICAgICAgICAgZGV2X251bGwgPSBvcGVu
KG9zLmRldm51bGwsICJ3IikKLSAgICAgICAgY2hpbGRfc3Rkb3V0ID0gdGVlKGNoaWxkX291dF9m
aWxlLCBkZXZfbnVsbCBpZiBxdWlldCBlbHNlIHN5cy5zdGRvdXQpCisgICAgICAgICAgICBvdXQg
PSBkZXZfbnVsbAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0ID0gc3lzLnN0ZG91dAor
ICAgICAgICBjaGlsZF9zdGRvdXQgPSB0ZWUoY2hpbGRfb3V0X2ZpbGUsIG91dCkKICAgICAgICAg
ZXhpdF9jb2RlID0gc2VsZi5fcnVuX2NvbW1hbmRfd2l0aF90ZWVkX291dHB1dChhcmdzLCBjaGls
ZF9zdGRvdXQpCiAgICAgICAgIGlmIHF1aWV0OgogICAgICAgICAgICAgZGV2X251bGwuY2xvc2Uo
KQpAQCAtMTQ2LDcgKzE0OSwxMCBAQCBjbGFzcyBFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAg
ICAgIHN0ZGluID0gaW5wdXQKICAgICAgICAgICAgIHN0cmluZ190b19jb21tdW5pY2F0ZSA9IE5v
bmUKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHN0ZGluID0gc3VicHJvY2Vzcy5QSVBFIGlm
IGlucHV0IGVsc2UgTm9uZQorICAgICAgICAgICAgaWYgaW5wdXQ6CisgICAgICAgICAgICAgICAg
c3RkaW4gPSBzdWJwcm9jZXNzLlBJUEUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgc3RkaW4gPSBOb25lCiAgICAgICAgICAgICBzdHJpbmdfdG9fY29tbXVuaWNhdGUgPSBpbnB1
dAogICAgICAgICBpZiByZXR1cm5fc3RkZXJyOgogICAgICAgICAgICAgc3RkZXJyID0gc3VicHJv
Y2Vzcy5TVERPVVQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbW9j
a19idWd6aWxsYXRvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L21vY2tfYnVn
emlsbGF0b29sLnB5CmluZGV4IGY1MjJlNDAuLmE0YzQ3NDEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbW9ja19idWd6aWxsYXRvb2wucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9tb2NrX2J1Z3ppbGxhdG9vbC5weQpAQCAtMzUxLDcgKzM1MSw3
IEBAIGNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKICAgICAgICAgcmV0dXJuIDE4Nwog
CiAKLWNsYXNzIE1vY2tCdWd6aWxsYVRvb2woKToKK2NsYXNzIE1vY2tCdWd6aWxsYVRvb2wob2Jq
ZWN0KToKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5idWdzID0gTW9j
a0J1Z3ppbGxhKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3Rl
cHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3RlcHMvcHJlcGFyZWNoYW5nZWxvZ2ZvcnJldmVydC5weQppbmRleCA4OGU1MTM0Li4z
NzYxYmRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0ZXBzL3By
ZXBhcmVjaGFuZ2Vsb2dmb3JyZXZlcnQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdGVwcy9wcmVwYXJlY2hhbmdlbG9nZm9ycmV2ZXJ0LnB5CkBAIC00Miw3ICs0MiwxMCBA
QCBjbGFzcyBQcmVwYXJlQ2hhbmdlTG9nRm9yUmV2ZXJ0KEFic3RyYWN0U3RlcCk6CiAgICAgICAg
ICMgU2Vjb25kLCBtYWtlIG5ldyBDaGFuZ2VMb2cgZW50cmllcyBmb3IgdGhpcyByb2xsb3V0Lgog
ICAgICAgICAjIFRoaXMgY291bGQgbW92ZSB0byBwcmVwYXJlLUNoYW5nZUxvZyBieSBhZGRpbmcg
YSAtLXJldmVydD0gb3B0aW9uLgogICAgICAgICBzZWxmLl9ydW5fc2NyaXB0KCJwcmVwYXJlLUNo
YW5nZUxvZyIpCi0gICAgICAgIGJ1Z191cmwgPSBzZWxmLl90b29sLmJ1Z3MuYnVnX3VybF9mb3Jf
YnVnX2lkKHN0YXRlWyJidWdfaWQiXSkgaWYgc3RhdGVbImJ1Z19pZCJdIGVsc2UgTm9uZQorICAg
ICAgICBpZiBzdGF0ZVsiYnVnX2lkIl06CisgICAgICAgICAgICBidWdfdXJsID0gc2VsZi5fdG9v
bC5idWdzLmJ1Z191cmxfZm9yX2J1Z19pZChzdGF0ZVsiYnVnX2lkIl0pCisgICAgICAgIGVsc2U6
CisgICAgICAgICAgICBidWdfdXJsID0gTm9uZQogICAgICAgICBmb3IgY2hhbmdlbG9nX3BhdGgg
aW4gY2hhbmdlbG9nX3BhdGhzOgogICAgICAgICAgICAgIyBGSVhNRTogU2VlbXMgd2Ugc2hvdWxk
IHByZXBhcmUgdGhlIG1lc3NhZ2Ugb3V0c2lkZSBvZiBjaGFuZ2Vsb2dzLnB5IGFuZCB0aGVuIGp1
c3QgcGFzcyBpbgogICAgICAgICAgICAgIyB0ZXh0IHRoYXQgd2Ugd2FudCB0byB1c2UgdG8gcmVw
bGFjZSB0aGUgcmV2aWV3ZWQgYnkgbGluZS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3RlcHNlcXVlbmNlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdGVwc2VxdWVuY2UucHkKaW5kZXggMDA4YjM2Ni4uNmM5YjkwZiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdGVwc2VxdWVuY2UucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdGVwc2VxdWVuY2UucHkKQEAgLTM0LDcgKzM0LDcgQEAgZnJv
bSB3ZWJraXRweS5zY20gaW1wb3J0IENoZWNrb3V0TmVlZHNVcGRhdGUKIGZyb20gd2Via2l0cHku
cXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lCiAKIAotY2xhc3MgU3RlcFNlcXVlbmNlRXJy
b3JIYW5kbGVyKCk6CitjbGFzcyBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIob2JqZWN0KToKICAg
ICBAY2xhc3NtZXRob2QKICAgICBkZWYgaGFuZGxlX3NjcmlwdF9lcnJvcihjbHMsIHRvb2wsIHBh
dGNoLCBzY3JpcHRfZXJyb3IpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAi
c3ViY2xhc3NlcyBtdXN0IGltcGxlbWVudCIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCA5MmQ2NWQzLi45ZjhhYTE4IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5CkBAIC0zNCw3ICszNCw2IEBA
IGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgb3MucGF0aAogaW1wb3J0IHN5cwogCi1mcm9tIC4uIHN0
eWxlX3JlZmVyZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCiBmcm9tIGVycm9yX2hhbmRsZXJzIGlt
cG9ydCBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIKIGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0
IFBhdGNoU3R5bGVFcnJvckhhbmRsZXIKIGZyb20gZmlsdGVyIGltcG9ydCBGaWx0ZXJDb25maWd1
cmF0aW9uCkBAIC00NCw2ICs0Myw3IEBAIGZyb20gcHJvY2Vzc29ycy5jb21tb24gaW1wb3J0IGNh
dGVnb3JpZXMgYXMgQ29tbW9uQ2F0ZWdvcmllcwogZnJvbSBwcm9jZXNzb3JzLmNvbW1vbiBpbXBv
cnQgQ2FycmlhZ2VSZXR1cm5Qcm9jZXNzb3IKIGZyb20gcHJvY2Vzc29ycy5jcHAgaW1wb3J0IENw
cFByb2Nlc3NvcgogZnJvbSBwcm9jZXNzb3JzLnRleHQgaW1wb3J0IFRleHRQcm9jZXNzb3IKK2Zy
b20gd2Via2l0cHkuc3R5bGVfcmVmZXJlbmNlcyBpbXBvcnQgcGFyc2VfcGF0Y2gKIAogX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKCJ3ZWJraXRweS5zdHlsZS5jaGVja2VyIikKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyX3VuaXR0ZXN0LnB5
CmluZGV4IGQ4NjY2NjMuLjc5YTc0OGIgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcl91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJfdW5pdHRlc3QucHkKQEAgLTM4LDggKzM4LDYgQEAg
aW1wb3J0IGxvZ2dpbmcKIGltcG9ydCB1bml0dGVzdAogCiBpbXBvcnQgY2hlY2tlciBhcyBzdHls
ZQotZnJvbSAuLnN0eWxlX3JlZmVyZW5jZXMgaW1wb3J0IFVuaXRUZXN0TG9nCi1mcm9tIC4uc3R5
bGVfcmVmZXJlbmNlcyBpbXBvcnQgVW5pdFRlc3RMb2dTdHJlYW0KIGZyb20gY2hlY2tlciBpbXBv
cnQgX0JBU0VfRklMVEVSX1JVTEVTCiBmcm9tIGNoZWNrZXIgaW1wb3J0IF9NQVhfUkVQT1JUU19Q
RVJfQ0FURUdPUlkKIGZyb20gY2hlY2tlciBpbXBvcnQgX1BBVEhfUlVMRVNfU1BFQ0lGSUVSIGFz
IFBBVEhfUlVMRVNfU1BFQ0lGSUVSCkBAIC01Niw2ICs1NCw4IEBAIGZyb20gb3B0cGFyc2VyIGlt
cG9ydCBBcmd1bWVudFBhcnNlcgogZnJvbSBvcHRwYXJzZXIgaW1wb3J0IENvbW1hbmRPcHRpb25W
YWx1ZXMKIGZyb20gcHJvY2Vzc29ycy5jcHAgaW1wb3J0IENwcFByb2Nlc3NvcgogZnJvbSBwcm9j
ZXNzb3JzLnRleHQgaW1wb3J0IFRleHRQcm9jZXNzb3IKK2Zyb20gd2Via2l0cHkuc3R5bGVfcmVm
ZXJlbmNlcyBpbXBvcnQgVW5pdFRlc3RMb2cKK2Zyb20gd2Via2l0cHkuc3R5bGVfcmVmZXJlbmNl
cyBpbXBvcnQgVW5pdFRlc3RMb2dTdHJlYW0KIAogCiBjbGFzcyBDb25maWd1cmVMb2dnaW5nVGVz
dCh1bml0dGVzdC5UZXN0Q2FzZSk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9zdHlsZS9lcnJvcl9oYW5kbGVyc191bml0dGVzdC5weQppbmRleCBhMzli
YTJhLi5jYTU2YzE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2Vycm9yX2hhbmRsZXJzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvc3R5bGUvZXJyb3JfaGFuZGxlcnNfdW5pdHRlc3QucHkKQEAgLTI1LDExICsyNSwx
MSBAQAogCiBpbXBvcnQgdW5pdHRlc3QKIAotZnJvbSAuLiBzdHlsZV9yZWZlcmVuY2VzIGltcG9y
dCBwYXJzZV9wYXRjaAogZnJvbSBjaGVja2VyIGltcG9ydCBTdHlsZUNoZWNrZXJDb25maWd1cmF0
aW9uCiBmcm9tIGVycm9yX2hhbmRsZXJzIGltcG9ydCBEZWZhdWx0U3R5bGVFcnJvckhhbmRsZXIK
IGZyb20gZXJyb3JfaGFuZGxlcnMgaW1wb3J0IFBhdGNoU3R5bGVFcnJvckhhbmRsZXIKIGZyb20g
ZmlsdGVyIGltcG9ydCBGaWx0ZXJDb25maWd1cmF0aW9uCitmcm9tIHdlYmtpdHB5LnN0eWxlX3Jl
ZmVyZW5jZXMgaW1wb3J0IHBhcnNlX3BhdGNoCiAKIGNsYXNzIFN0eWxlRXJyb3JIYW5kbGVyVGVz
dEJhc2UodW5pdHRlc3QuVGVzdENhc2UpOgogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL3VuaXR0ZXN0cy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvdW5pdHRlc3RzLnB5CmluZGV4IDYyNjE1YWIuLmY0NDkxMTIgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdW5pdHRlc3RzLnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvdW5pdHRlc3RzLnB5CkBAIC0zMCw3
ICszMCw4IEBACiAKICIiIlJ1bnMgc3R5bGUgcGFja2FnZSB1bml0IHRlc3RzLiIiIgogCi0jIFRo
aXMgbW9kdWxlIGlzIGltcG9ydGVkIGJ5IHRlc3Qtd2Via2l0cHkuCisjIFRoaXMgbW9kdWxlIGlz
IGltcG9ydGVkIGJ5IHRoZSBtb2R1bGUgdGhhdCBpbXBvcnRzIGFsbCB0aGUgd2Via2l0cHkKKyMg
dW5pdCB0ZXN0cy4KIAogaW1wb3J0IHN5cwogaW1wb3J0IHVuaXR0ZXN0CmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvYXV0b2luc3RhbGwucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvYXV0b2luc3RhbGwucHkKaW5k
ZXggNmM4NjRjZi4uN2QxOTU4ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbC5weQpAQCAtMTQxLDkgKzE0MSw2IEBAIFJl
ZmVyZW5jZXM6OgogCiAiIiIKIAotIyBUbyBhbGxvdyB1c2Ugb2YgdGhlICJ3aXRoIiBrZXl3b3Jk
IGZvciBQeXRob24gMi41IHVzZXJzLgotZnJvbSBfX2Z1dHVyZV9fIGltcG9ydCB3aXRoX3N0YXRl
bWVudAotCiBfX3ZlcnNpb25fXyA9ICIwLjIiCiBfX2RvY2Zvcm1hdF9fID0gInJlc3RydWN0dXJl
ZHRleHQgZW4iCiAKQEAgLTIwMSw5ICsxOTgsMTIgQEAgY2xhc3MgQ2FjaGUob2JqZWN0KToKICAg
ICAgICAgX2xvZ2dlci5kZWJ1ZygiQ3JlYXRpbmcgY2FjaGUgZGlyZWN0b3J5ICclcycuIiAlIHNl
bGYuZGlyZWN0b3J5KQogICAgICAgICBvcy5ta2RpcihzZWxmLmRpcmVjdG9yeSkKICAgICAgICAg
cmVhZG1lX3BhdGggPSBvcy5wYXRoLmpvaW4oc2VsZi5kaXJlY3RvcnksICJSRUFETUUiKQotICAg
ICAgICB3aXRoIG9wZW4ocmVhZG1lX3BhdGgsICJ3IikgYXMgZjoKLSAgICAgICAgICAgIGYud3Jp
dGUoIlRoaXMgZGlyZWN0b3J5IHdhcyBhdXRvLWdlbmVyYXRlZCBieSAnJXMnLlxuIgotICAgICAg
ICAgICAgICAgICAgICAiSXQgaXMgc2FmZSB0byBkZWxldGUuXG4iICUgX19maWxlX18pCisgICAg
ICAgIGZpbGUgPSBvcGVuKHJlYWRtZV9wYXRoLCAidyIpCisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIGZpbGUud3JpdGUoIlRoaXMgZGlyZWN0b3J5IHdhcyBhdXRvLWdlbmVyYXRlZCBieSAnJXMn
LlxuIgorICAgICAgICAgICAgICAgICAgICAgICAiSXQgaXMgc2FmZSB0byBkZWxldGUuXG4iICUg
X19maWxlX18pCisgICAgICAgIGZpbmFsbHk6CisgICAgICAgICAgICBmaWxlLmNsb3NlKCkKIAog
ICAgIGRlZiBnZXQoc2VsZiwgdXJsKToKICAgICAgICAgX2xvZ2dlci5pbmZvKCJHZXR0aW5nICcl
cycgZnJvbSBjYWNoZS4iICUgdXJsKQpAQCAtMjgxLDcgKzI4MSwxMSBAQCBjbGFzcyBJbXBvcnRl
cihvYmplY3QpOgogICAgICAgICBpZiBmdWxsbmFtZSBpbiBzZWxmLnBhY2thZ2VzOgogICAgICAg
ICAgICAgKHVybCwgemlwX3N1YnBhdGgpID0gc2VsZi5wYWNrYWdlc1tmdWxsbmFtZV0KICAgICAg
ICAgICAgIGZpbGVuYW1lID0gc2VsZi5jYWNoZS5nZXQodXJsKQotICAgICAgICAgICAgemlwX3Bh
dGggPSAiJXMvJXMiICUgKGZpbGVuYW1lLCB6aXBfc3VicGF0aCkgaWYgemlwX3N1YnBhdGggZWxz
ZSBmaWxlbmFtZQorICAgICAgICAgICAgaWYgemlwX3N1YnBhdGg6CisgICAgICAgICAgICAgICAg
emlwX3BhdGggPSAiJXMvJXMiICUgKGZpbGVuYW1lLCB6aXBfc3VicGF0aCkKKyAgICAgICAgICAg
IGVsc2U6CisgICAgICAgICAgICAgICAgemlwX3BhdGggPSBmaWxlbmFtZQorCiAgICAgICAgICAg
ICBfbG9nZ2VyLmRlYnVnKCJmdWxsbmFtZTogJXMgdXJsOiAlcyBwYXRoOiAlcyB6aXBfcGF0aDog
JXMiICUgKGZ1bGxuYW1lLCB1cmwsIHBhdGgsIHppcF9wYXRoKSkKICAgICAgICAgICAgIHRyeToK
ICAgICAgICAgICAgICAgICBsb2FkZXIgPSB6aXBpbXBvcnQuemlwaW1wb3J0ZXIoemlwX3BhdGgp
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3VuaXR0ZXN0cy5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdW5pdHRlc3RzLnB5Cm5ldyBmaWxlIG1vZGUg
MTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5M2Y0MTMKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3VuaXR0ZXN0cy5weQpAQCAtMCwwICsxLDY1IEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChjKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoK
KyMgCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGlu
IHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBl
bmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUg
d2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjIAorIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBP
UiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyMgVGhpcyBtb2R1bGUgaXMg
aW1wb3J0ZWQgYnkgU2NyaXB0cy90ZXN0LXdlYmtpdHB5LgorCitpbXBvcnQgc3lzCisKK2Zyb20g
d2Via2l0cHkuYnVnemlsbGFfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkuYnVpbGRi
b3RfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkuY2hhbmdlbG9nc191bml0dGVzdCBp
bXBvcnQgKgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5kb3dubG9hZF91bml0dGVzdCBpbXBvcnQg
KgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5lYXJseV93YXJuaW5nX3N5c3RlbV91bml0dGVzdCBp
bXBvcnQgKgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5vcGVuYnVnc191bml0dGVzdCBpbXBvcnQg
T3BlbkJ1Z3NUZXN0Citmcm9tIHdlYmtpdHB5LmNvbW1hbmRzLnVwbG9hZF91bml0dGVzdCBpbXBv
cnQgKgorZnJvbSB3ZWJraXRweS5jb21tYW5kcy5xdWVyaWVzX3VuaXR0ZXN0IGltcG9ydCAqCitm
cm9tIHdlYmtpdHB5LmNvbW1hbmRzLnF1ZXVlc191bml0dGVzdCBpbXBvcnQgKgorZnJvbSB3ZWJr
aXRweS5jb21taXR0ZXJzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmNyZWRlbnRp
YWxzX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmRpZmZfcGFyc2VyX3VuaXR0ZXN0
IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmV4ZWN1dGl2ZV91bml0dGVzdCBpbXBvcnQgKgorZnJv
bSB3ZWJraXRweS5ncmFtbWFyX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0Lm1hY191bml0dGVzdCBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS5tdWx0aWNv
bW1hbmR0b29sX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5Lm5ldHdvcmt0cmFuc2Fj
dGlvbl91bml0dGVzdCBpbXBvcnQgKgorZnJvbSB3ZWJraXRweS5wYXRjaGNvbGxlY3Rpb25fdW5p
dHRlc3QgaW1wb3J0ICoKK2Zyb20gd2Via2l0cHkucXVldWVlbmdpbmVfdW5pdHRlc3QgaW1wb3J0
ICoKK2Zyb20gd2Via2l0cHkuc3RlcHMuc3RlcHNfdW5pdHRlc3QgaW1wb3J0ICoKK2Zyb20gd2Vi
a2l0cHkuc3RlcHMuY2xvc2VidWdmb3JsYW5kZGlmZl91bml0dGVzdCBpbXBvcnQgKgorZnJvbSB3
ZWJraXRweS5zdGVwcy51cGRhdGVjaGFuZ2Vsb2dzd2l0aHJldmlld191bml0dGVzdHMgaW1wb3J0
ICoKK2Zyb20gd2Via2l0cHkuc3R5bGUudW5pdHRlc3RzIGltcG9ydCAqICMgZm9yIGNoZWNrLXdl
YmtpdC1zdHlsZQorZnJvbSB3ZWJraXRweS51c2VyX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdl
YmtpdHB5LndlYmtpdF9sb2dnaW5nX3VuaXR0ZXN0IGltcG9ydCAqCitmcm9tIHdlYmtpdHB5Lndl
YmtpdHBvcnRfdW5pdHRlc3QgaW1wb3J0ICoKKworIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIGJ1
dCBJJ20gdGlyZWQgb2YgY29tbWVudGluZyBvdXQgdGhlIHRlc3QuCisjICAgICAgICBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxODE4CitpZiBsZW4oc3lzLmFy
Z3YpID4gMSBhbmQgc3lzLmFyZ3ZbMV0gPT0gIi0tYWxsIjoKKyAgICBzeXMuYXJndi5yZW1vdmUo
Ii0tYWxsIikKKyAgICBmcm9tIHdlYmtpdHB5LnNjbV91bml0dGVzdCBpbXBvcnQgKgo=
</data>
<flag name="review"
          id="32961"
          type_id="1"
          status="-"
          setter="eric"
    />
    <flag name="commit-queue"
          id="32962"
          type_id="3"
          status="-"
          setter="cjerdonek"
    />
          </attachment>
      

    </bug>

</bugzilla>