<?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>38918</bug_id>
          
          <creation_ts>2010-05-11 11:13:00 -0700</creation_ts>
          <short_desc>add a FancyReviewQueue to upload r? patches to rietveld</short_desc>
          <delta_ts>2010-06-03 14:45:17 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jparent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>224025</commentid>
    <comment_count>0</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-11 11:13:00 -0700</bug_when>
    <thetext>add a FancyReviewQueue to upload r? patches to rietveld</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224029</commentid>
    <comment_count>1</comment_count>
      <attachid>55724</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-11 11:20:58 -0700</bug_when>
    <thetext>Created attachment 55724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224933</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-12 15:05:56 -0700</bug_when>
    <thetext>I thought we weren&apos;t calling it fancy review anymore?  (I don&apos;t seem to be able to cc jparent for some reason.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224941</commentid>
    <comment_count>3</comment_count>
      <attachid>55908</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 15:17:18 -0700</bug_when>
    <thetext>Created attachment 55908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224942</commentid>
    <comment_count>4</comment_count>
      <attachid>55908</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 15:18:12 -0700</bug_when>
    <thetext>Comment on attachment 55908
Patch

I added support for the in-rietveld flag to this patch. It was easier to do this way. I can split it up if you need me to though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224947</commentid>
    <comment_count>5</comment_count>
      <attachid>55908</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-12 15:31:32 -0700</bug_when>
    <thetext>Comment on attachment 55908
Patch

Why do we support uploading directly to rietveld?  It seems like we want to remove that code in favor of always using the bot.

It&apos;s a little strange that we keep track of the &quot;this patch is in rietveld&quot; state twice: once in a bugzilla flag and again in AppEngine.  What if these get out of sync?  I think we only want to keep one copy of this information.

WebKitTools/Scripts/webkitpy/tool/commands/download.py:185
 +  # FIXME: Write a test for this code. Testing it is hard since it using Rietveld&apos;s upload.py,
Huh?  We should just mock that out.

WebKitTools/Scripts/webkitpy/tool/commands/download.py:188
 +      name = &quot;post-attachment-fancy&quot;
We need a better name...  send-attachment-to-rietveld ? post-code-review-for-attachment ?

WebKitTools/Scripts/webkitpy/tool/commands/download.py:190
 +      arguments_names = &quot;[ATTACHMENTID]&quot;
Why is this argument optional?

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:375
 +      name = &quot;fancy-review-queue&quot;
Again, we need a better name here.  This name is stored persistently on the server so we&apos;re stuck with it once we start.

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:385
 +          self.run_webkit_patch([&quot;post-attachment-fancy&quot;, &quot;--fancy-review&quot;, &quot;--force-clean&quot;, &quot;--non-interactive&quot;, &quot;--parent-command=style-queue&quot;, patch.id()])
why is the style-queue the parent command?

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:386
 +          return True
Don&apos;t we need an error handler here?  What do you want to happen if we encounter an error?

WebKitTools/Scripts/webkitpy/tool/commands/upload.py: 
 +  
Why did you remove this line?

WebKitTools/Scripts/webkitpy/tool/mocktool.py:509
 +  class MockRietveld(Rietveld):
We don&apos;t have the mocks inherit from the real objects.  It&apos;s too dangerous.  The calls might leak through and do real things.

WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py:50
 +              self.tool.bugs.set_flag_on_attachment(patch.id, &apos;in-rietveld&apos;, &apos;+&apos;, &apos;Patch has been upload to rietveld&apos;)
Where does this text go?  Is it spammed in email?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225023</commentid>
    <comment_count>6</comment_count>
      <attachid>55921</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 18:19:00 -0700</bug_when>
    <thetext>Created attachment 55921
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225025</commentid>
    <comment_count>7</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 18:19:17 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Why do we support uploading directly to rietveld?  It seems like we want to remove that code in favor of always using the bot.

I agree. I was just thinking that would be a followup patch.

&gt; It&apos;s a little strange that we keep track of the &quot;this patch is in rietveld&quot; state twice: once in a bugzilla flag and again in AppEngine.  What if these get out of sync?  I think we only want to keep one copy of this information.

I agree it&apos;s a little strange, but we use this information to decide whether or not to show the the rietveld review UI in bugzilla. We considered having bugzilla ping appengine to see if the review existed, but that seemed janktastic. Ultimately, the bot will be running and uploading every patch to rietveld, so this flag will be obsoleted and we can get rid of it entirely. It&apos;s just an interim state to avoid showing the rietveld review UI on all patches until we can rely on the bot.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/download.py:185
&gt;  +  # FIXME: Write a test for this code. Testing it is hard since it using Rietveld&apos;s upload.py,
&gt; Huh?  We should just mock that out.

Ugh. Sorry. I forgot to go back and do this. As you can see, I had already mocked it out elsewhere. Anyways, fixed.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/download.py:188
&gt;  +      name = &quot;post-attachment-fancy&quot;
&gt; We need a better name...  send-attachment-to-rietveld ? post-code-review-for-attachment ?

post-attachment-to-rietveld?

&gt; WebKitTools/Scripts/webkitpy/tool/commands/download.py:190
&gt;  +      arguments_names = &quot;[ATTACHMENTID]&quot;
&gt; Why is this argument optional?

Fixed.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:375
&gt;  +      name = &quot;fancy-review-queue&quot;
&gt; Again, we need a better name here.  This name is stored persistently on the server so we&apos;re stuck with it once we start.

rietveld-upload-queue?

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:385
&gt;  +          self.run_webkit_patch([&quot;post-attachment-fancy&quot;, &quot;--fancy-review&quot;, &quot;--force-clean&quot;, &quot;--non-interactive&quot;, &quot;--parent-command=style-queue&quot;, patch.id()])
&gt; why is the style-queue the parent command?

Copy-paste error.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:386
&gt;  +          return True
&gt; Don&apos;t we need an error handler here?  What do you want to happen if we encounter an error?

Done.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/upload.py: 
&gt;  +  
&gt; Why did you remove this line?

Accidental.

&gt; WebKitTools/Scripts/webkitpy/tool/mocktool.py:509
&gt;  +  class MockRietveld(Rietveld):
&gt; We don&apos;t have the mocks inherit from the real objects.  It&apos;s too dangerous.  The calls might leak through and do real things.

Make sense.

&gt; WebKitTools/Scripts/webkitpy/tool/steps/postcodereview.py:50
&gt;  +              self.tool.bugs.set_flag_on_attachment(patch.id, &apos;in-rietveld&apos;, &apos;+&apos;, &apos;Patch has been upload to rietveld&apos;)
&gt; Where does this text go?  Is it spammed in email?

I made it exclude the comment text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225049</commentid>
    <comment_count>8</comment_count>
      <attachid>55928</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 19:16:52 -0700</bug_when>
    <thetext>Created attachment 55928
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225050</commentid>
    <comment_count>9</comment_count>
      <attachid>55928</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 19:18:07 -0700</bug_when>
    <thetext>Comment on attachment 55928
Patch

Added a couple comments to get rid of --fancy-review and fixed a typo in postcodereview.py.

Also, now that the in-rietveld flag is active, you can see an example of what the post-attachment-to-rietveld command does on bug 26526.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225051</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-12 19:20:01 -0700</bug_when>
    <thetext>The way the status bubbles work is to use an iframe to an appengine.  I think that would be cleaner than using an in-rietveld flag.

Flags cause bugzilla to send mail when they&apos;re changed, which is bad-news-bears.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225055</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 19:29:12 -0700</bug_when>
    <thetext>&gt; &gt; It&apos;s a little strange that we keep track of the &quot;this patch is in rietveld&quot; state twice: once in a bugzilla flag and again in AppEngine.  What if these get out of sync?  I think we only want to keep one copy of this information.
&gt; 
&gt; I agree it&apos;s a little strange, but we use this information to decide whether or not to show the the rietveld review UI in bugzilla. We considered having bugzilla ping appengine to see if the review existed, but that seemed janktastic. Ultimately, the bot will be running and uploading every patch to rietveld, so this flag will be obsoleted and we can get rid of it entirely. It&apos;s just an interim state to avoid showing the rietveld review UI on all patches until we can rely on the bot.

Actually, I take this back. I forgot that in-reitveld is a per-patch flag, but we only have one reitveld issue per bug. So we need in-rietveld to make it so we only show the rietveld review link for patches that have actually been posted to rietveld. Not sure how to get around this unless we kept a map of uploaded attachment IDs in rietveld, but that doesn&apos;t fix anything. It just changes where we store the bit, not that we store two bits. I&apos;m open to suggestions.

I agree that the email sending is a problem. Is there anyway to get bugzilla not to send emails for some updates?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225060</commentid>
    <comment_count>12</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 19:39:02 -0700</bug_when>
    <thetext>Talked to Eric on IRC. Another option would be to have a separate server that just returns 200/404 if a given attachment has been uploaded to rietveld. This doesn&apos;t solve the storing the bit in multiple places problem, but it does solve the bugzilla sending spammy email problems.

I&apos;d rather just solve the bugzilla problem though. Another server seems like more bits that need maintaining and can break.

Adam, we&apos;re not actually storing the same data twice currently. in-rietveld tells us which patches have been uploaded. Rietveld server only knows which bugs have rietveld issues, not which individual patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225090</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-12 21:15:57 -0700</bug_when>
    <thetext>&gt; Adam, we&apos;re not actually storing the same data twice currently. in-rietveld tells us which patches have been uploaded. Rietveld server only knows which bugs have rietveld issues, not which individual patches.

The queue machinery is storing a bit per attachment to remember whether it has processed that attachment before (so that queue can be restarted / moved / etc).  That bit seems almost the same as the in-rietveld flag.

If you want to make bugzilla the authority for which patches have been processed, you want to model your bot after commit-queue, which uses the commit-queue flag to store that information.  Essentially, you want to move your bot up one layer in the class hierarchy so that it can manually manage the set of patches to process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226035</commentid>
    <comment_count>14</comment_count>
      <attachid>56116</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-14 15:44:09 -0700</bug_when>
    <thetext>Created attachment 56116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226037</commentid>
    <comment_count>15</comment_count>
      <attachid>56116</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-14 15:45:24 -0700</bug_when>
    <thetext>Comment on attachment 56116
Patch

I made the queue more like the commit-queue and got rid of --fancy-review (so, upload/post no longer have an option to post to rietveld). upload/post just always set in-rietveld?, which then puts it in the queue to be uploaded to rietveld.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226038</commentid>
    <comment_count>16</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-14 15:45:47 -0700</bug_when>
    <thetext>Also, bug 39090 addressed the email spam issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226060</commentid>
    <comment_count>17</comment_count>
      <attachid>56123</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-14 16:57:09 -0700</bug_when>
    <thetext>Created attachment 56123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226062</commentid>
    <comment_count>18</comment_count>
      <attachid>56123</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-14 16:58:14 -0700</bug_when>
    <thetext>Comment on attachment 56123
Patch

Fixes a bug in rietveld.py that strips the first argv from RealMain. RealMain itself does that, so we were actually stripping the first two arguments, which mean that --assume-yes was getting dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229777</commentid>
    <comment_count>19</comment_count>
      <attachid>56897</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-24 09:19:29 -0700</bug_when>
    <thetext>Created attachment 56897
Patch

Sync to ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229784</commentid>
    <comment_count>20</comment_count>
      <attachid>56897</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-24 09:56:28 -0700</bug_when>
    <thetext>Comment on attachment 56897
Patch

This is looking pretty good.  Some minor comments below.  Probably needs one more round.

WebKitTools/Scripts/webkitpy/common/net/bugzilla.py:629
 +          self.browser[&apos;flag_type-4&apos;] = (&apos;?&apos;,)
It&apos;s too bad that this will only work for patches uploaded with webkit-patch.  What&apos;s the plan for getting all r? patches uploaded?  Why not start with that?

WebKitTools/Scripts/webkitpy/common/net/bugzilla.py:805
 +              self.browser.set_value(comment_text, name=&apos;comment&apos;, nr=0)
I don&apos;t understand how this change relates...

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:336
 +          comment_text = &quot;Rejecting patch %s from rietveld-queue.&quot; % patch.id()
Why might this happen?  Do we want to send email when it happens?

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:345
 +      def _error_message_for_bug(tool, status_id, script_error):
This function looks like a copy/paste of another function.  Can we share the implementation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229785</commentid>
    <comment_count>21</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-24 09:57:21 -0700</bug_when>
    <thetext>@eric: Does this patch integrate properly with our new control channel / pending patches list?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229842</commentid>
    <comment_count>22</comment_count>
      <attachid>56910</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-24 12:05:24 -0700</bug_when>
    <thetext>Created attachment 56910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229844</commentid>
    <comment_count>23</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-24 12:05:45 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; WebKitTools/Scripts/webkitpy/common/net/bugzilla.py:629
&gt;  +          self.browser[&apos;flag_type-4&apos;] = (&apos;?&apos;,)
&gt; It&apos;s too bad that this will only work for patches uploaded with webkit-patch.  What&apos;s the plan for getting all r? patches uploaded?  Why not start with that?

I was just trying to scope the change to avoid creating havoc if something goes wrong with the queue. But, whatever, the queue now processes r? and in-rietveld? matches.

&gt; WebKitTools/Scripts/webkitpy/common/net/bugzilla.py:805
&gt;  +              self.browser.set_value(comment_text, name=&apos;comment&apos;, nr=0)
&gt; I don&apos;t understand how this change relates...

I had made the change in an earlier iteration of this patch and it seemed like a good one. Anyways, removed.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:336
&gt;  +          comment_text = &quot;Rejecting patch %s from rietveld-queue.&quot; % patch.id()
&gt; Why might this happen?  Do we want to send email when it happens?

Only case I can think of is if rietveld is down. This will post to the bug, so no need to send a separate email, right?

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:345
&gt;  +      def _error_message_for_bug(tool, status_id, script_error):
&gt; This function looks like a copy/paste of another function.  Can we share the implementation?

Moved into StepSequenceErrorHandler. Not sure if that is the right place. I could create a AbstractPatchQueue/StepSequenceErrorHandler superclass, but that seems excessive. Putting in directly in AbstractPatchQueue seemed wrong since this used in an implementation of a StepSequenceErrorHandler method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232117</commentid>
    <comment_count>24</comment_count>
      <attachid>56910</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-29 09:40:18 -0700</bug_when>
    <thetext>Comment on attachment 56910
Patch

Minor nits below.  You should feel free to either address them before landing or in a follow-up patch.

WebKitTools/Scripts/webkitpy/common/net/rietveld.py:77
 +          issue, patchset = upload.RealMain(args, data=diff)
I don&apos;t quite understand this change, but ok.

WebKitTools/Scripts/webkitpy/tool/commands/queues.py:329
 +          comment_text = &quot;Rejecting patch %s from rietveld-queue.&quot; % patch.id()
I still worry that this message is cryptic and folks won&apos;t understand it.  We can iterate after landing though.

WebKitTools/Scripts/webkitpy/tool/commands/stepsequence.py:39
 +      def _error_message_for_bug(tool, status_id, script_error):
This isn&apos;t quite the right place for this method.  StepSequenceErrorHandler is just an interface definition.  It shouldn&apos;t have any implementations.  We need to create an intermediate class that inherits from StepSequenceErrorHandler that the queues inherit from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233907</commentid>
    <comment_count>25</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-03 13:49:01 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 56910 [details])
&gt; Minor nits below.  You should feel free to either address them before landing or in a follow-up patch.
&gt; 
&gt; WebKitTools/Scripts/webkitpy/common/net/rietveld.py:77
&gt;  +          issue, patchset = upload.RealMain(args, data=diff)
&gt; I don&apos;t quite understand this change, but ok.

The original code was just dumb. It&apos;s stripping the first argument. But upload.py already does that. So we were doing it twice.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:329
&gt;  +          comment_text = &quot;Rejecting patch %s from rietveld-queue.&quot; % patch.id()
&gt; I still worry that this message is cryptic and folks won&apos;t understand it.  We can iterate after landing though.

Tried to make the text more meaningful.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/stepsequence.py:39
&gt;  +      def _error_message_for_bug(tool, status_id, script_error):
&gt; This isn&apos;t quite the right place for this method.  StepSequenceErrorHandler is just an interface definition.  It shouldn&apos;t have any implementations.  We need to create an intermediate class that inherits from StepSequenceErrorHandler that the queues inherit from.

Added a FIXME for now. I was going to just do this, but I got stuck on testing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233909</commentid>
    <comment_count>26</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-03 13:49:44 -0700</bug_when>
    <thetext>Committed r60635: &lt;http://trac.webkit.org/changeset/60635&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>233935</commentid>
    <comment_count>27</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-03 14:45:17 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/60635 might have broken GTK Linux 64-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/60632
http://trac.webkit.org/changeset/60633
http://trac.webkit.org/changeset/60634
http://trac.webkit.org/changeset/60635
http://trac.webkit.org/changeset/60636</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55724</attachid>
            <date>2010-05-11 11:20:58 -0700</date>
            <delta_ts>2010-05-12 15:03:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100511112056.patch</filename>
            <type>text/plain</type>
            <size>6394</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwZjk5ZDNmODRmZjg2OWFhODM0YmVlNjU2Mjc2YTgwOWUyMWYxMjhjLi5kNGY1OTFk
NTg5ZWQ3OWYwYjA5NmRjMzM1ZGY2ZmMzNmZjMTBjNjAxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTAtMDUtMTEgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBGYW5jeVJldmlld1F1
ZXVlIHRvIHVwbG9hZCByPyBwYXRjaGVzIHRvIHJpZXR2ZWxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODkxOAorCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weToKKwogMjAxMC0wNS0xMCAgT2phbiBWYWZh
aSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL2Rvd25sb2FkLnB5CmluZGV4IGEyODNkYTlkYzJlZDhlMTBmYzBlMGMyOGQ0MjZlYzY3ODhl
OGY4NGUuLjc2NTg0MzUwNjlkNDI0NDNkMTgzZmYxNzYzZDE4MWY0NjZlYjg4N2YgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWQucHkKQEAgLTE4Miw2ICsxODIsMjAgQEAgY2xhc3MgQnVpbGRBdHRhY2htZW50KEFic3RyYWN0
UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgogICAgIF0K
IAogCisjIEZJWE1FOiBXcml0ZSBhIHRlc3QgZm9yIHRoaXMgY29kZS4gVGVzdGluZyBpdCBpcyBo
YXJkIHNpbmNlIGl0IHVzaW5nIFJpZXR2ZWxkJ3MgdXBsb2FkLnB5LAorIyB3aGljaCByZXF1aXJl
cyBhIHJlYWwgR2l0L1NWTiBjaGVja291dC4KK2NsYXNzIFBvc3RBdHRhY2htZW50RmFuY3koQWJz
dHJhY3RQYXRjaFNlcXVlbmNpbmdDb21tYW5kLCBQcm9jZXNzQXR0YWNobWVudHNNaXhpbik6Cisg
ICAgbmFtZSA9ICJwb3N0LWF0dGFjaG1lbnQtZmFuY3kiCisgICAgaGVscF90ZXh0ID0gIlVwbG9h
ZHMgYW4gYnVnemlsbGEgYXR0YWNobWVudCB0byByaWV0dmVsZCIKKyAgICBhcmd1bWVudHNfbmFt
ZXMgPSAiW0FUVEFDSE1FTlRJRF0iCisgICAgbWFpbl9zdGVwcyA9IFsKKyAgICAgICAgc3RlcHMu
Q2xlYW5Xb3JraW5nRGlyZWN0b3J5LAorICAgICAgICBzdGVwcy5VcGRhdGUsCisgICAgICAgIHN0
ZXBzLkFwcGx5UGF0Y2gsCisgICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAorICAgIF0KKwor
CiBjbGFzcyBBYnN0cmFjdFBhdGNoQXBwbHlpbmdDb21tYW5kKEFic3RyYWN0UGF0Y2hTZXF1ZW5j
aW5nQ29tbWFuZCk6CiAgICAgcHJlcGFyZV9zdGVwcyA9IFsKICAgICAgICAgc3RlcHMuRW5zdXJl
TG9jYWxDb21taXRJZk5lZWRlZCwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CmluZGV4IDc3NWFhNDRjYzJlODJlNzY1YzEwNmNh
ODg3MGU4NWRhZTJiYWJhOTYuLjY2MjJjMTYxNzQzMDZlMWNkNDc3MjQ5N2ZlNDA5YTI4NmJiMTVk
YWQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWV1ZXMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXVlcy5weQpAQCAtMzY4LDMgKzM2OCwxOSBAQCBjbGFzcyBTdHlsZVF1ZXVlKEFic3Ry
YWN0UmV2aWV3UXVldWUpOgogICAgICAgICBtZXNzYWdlID0gIkF0dGFjaG1lbnQgJXMgZGlkIG5v
dCBwYXNzICVzOlxuXG4lc1xuXG5JZiBhbnkgb2YgdGhlc2UgZXJyb3JzIGFyZSBmYWxzZSBwb3Np
dGl2ZXMsIHBsZWFzZSBmaWxlIGEgYnVnIGFnYWluc3QgY2hlY2std2Via2l0LXN0eWxlLiIgJSAo
c3RhdGVbInBhdGNoIl0uaWQoKSwgY2xzLm5hbWUsIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhf
b3V0cHV0KG91dHB1dF9saW1pdD0zKjEwMjQpKQogICAgICAgICB0b29sLmJ1Z3MucG9zdF9jb21t
ZW50X3RvX2J1ZyhzdGF0ZVsicGF0Y2giXS5idWdfaWQoKSwgbWVzc2FnZSwgY2M9Y2xzLndhdGNo
ZXJzKQogICAgICAgICBleGl0KDEpCisKKworIyBGSVhNRTogTWFrZSB0aGlzIHJ1biBvbiBhbGwg
cGF0Y2ggYXR0YWNobWVudHMsIG5vdCBqdXN0IHI/IG9uZXMuCitjbGFzcyBGYW5jeVJldmlld1F1
ZXVlKEFic3RyYWN0UmV2aWV3UXVldWUpOgorICAgIG5hbWUgPSAiZmFuY3ktcmV2aWV3LXF1ZXVl
IgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVl
Ll9faW5pdF9fKHNlbGYpCisKKyAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0o
c2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJVcGxvYWRpbmcgcGF0
Y2giLCBwYXRjaCkKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiByZXZpZXdfcGF0Y2go
c2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goWyJwb3N0LWF0dGFj
aG1lbnQtZmFuY3kiLCAiLS1mYW5jeS1yZXZpZXciLCAiLS1mb3JjZS1jbGVhbiIsICItLW5vbi1p
bnRlcmFjdGl2ZSIsICItLXBhcmVudC1jb21tYW5kPXN0eWxlLXF1ZXVlIiwgcGF0Y2guaWQoKV0p
CisgICAgICAgIHJldHVybiBUcnVlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCAxNmVi
MDUzNzZiMzVhNTYxYjY0ZjVmZjcxYzQ1NDEwZGI0OTc2MWQxLi41NTI3Y2E3MmVlY2YzY2I2NjY2
N2Y3NGI0NWY4OWVkOTEwNDg5MDYxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE2
MiwzICsxNjIsMTIgQEAgY2xhc3MgU3R5bGVRdWV1ZVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAg
ICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiIDogIk1vY2sgZXJyb3IgbWVzc2FnZVxuIiwK
ICAgICAgICAgfQogICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFN0eWxlUXVldWUo
KSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworCitjbGFzcyBGYW5jeVJldmll
d1F1ZXVlVGVzdChRdWV1ZXNUZXN0KToKKyAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToK
KyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0geworICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVl
dWUiOiAiQ0FVVElPTjogZmFuY3ktcmV2aWV3LXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwg
Y2hhbmdlcyBpbiBcIiVzXCJcblJ1bm5pbmcgV2ViS2l0IGZhbmN5LXJldmlldy1xdWV1ZS5cbiIg
JSBNb2NrU0NNLmZha2VfY2hlY2tvdXRfcm9vdCwKKyAgICAgICAgICAgICJoYW5kbGVfdW5leHBl
Y3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCisgICAgICAgIH0KKyAgICAgICAg
c2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhGYW5jeVJldmlld1F1ZXVlKCksIGV4cGVjdGVkX3N0
ZGVycj1leHBlY3RlZF9zdGRlcnIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weQppbmRleCA5OWQ0NWE2NmFiNjk4NzgzNTBkZjU3
MGFmMTI4Zjk2NTkyY2ZkYjI5Li44Nzc2NDZjYzVjYmM5ZGFjMzA4ZWU2NmM4MDY3YmNiNGIyNGU3
Njg2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvdXBsb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy91cGxvYWQucHkKQEAgLTE2OCw3ICsxNjgsNiBAQCBjbGFzcyBQb3N0KEFic3RyYWN0UGF0
Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuUG9zdERpZmYsCiAgICAgXQogCi0K
IGNsYXNzIExhbmRTYWZlbHkoQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQpOgogICAgIG5h
bWUgPSAibGFuZC1zYWZlbHkiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgZGlm
ZiB2aWEgdGhlIGNvbW1pdC1xdWV1ZSAoRXhwZXJpbWVudGFsKSIKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weSBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQpp
bmRleCA4Mzk3NTE5MDI4NDU3YzIwY2FkYjM1ZTlmNzU1NGNiOWQ3MjAxYWNjLi4wOWU0MGRkMTA3
OGZmNDdmMGIwYTYxODI4YjFlMmYzMDUwODJhODVmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CkBAIC00
MywxOCArNDMsMjUgQEAgY2xhc3MgUG9zdENvZGVSZXZpZXcoQWJzdHJhY3RTdGVwKToKICAgICAg
ICAgaWYgbm90IHNlbGYuX29wdGlvbnMuZmFuY3lfcmV2aWV3OgogICAgICAgICAgICAgcmV0dXJu
CiAKLSAgICAgICAgYnVnX2lkID0gc3RhdGUuZ2V0KCJidWdfaWQiKQorICAgICAgICBwYXRjaCA9
IHN0YXRlLmdldCgicGF0Y2giKQorICAgICAgICBpZiBwYXRjaDoKKyAgICAgICAgICAgIGJ1Z19p
ZCA9IHBhdGNoLmJ1Z19pZCgpCisgICAgICAgICAgICB0aXRsZSA9IHBhdGNoLm5hbWUoKQorICAg
ICAgICBlbHNlOgorICAgICAgICAgICAgYnVnX2lkID0gc3RhdGUuZ2V0KCJidWdfaWQiKQorICAg
ICAgICAgICAgdGl0bGUgPSBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpCisKICAgICAgICAgaWYgbm90
IGJ1Z19pZDoKICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9IkNhbm5vdCB1
cGxvYWQgYSBmYW5jeSByZXZpZXcgd2l0aG91dCBhIGJ1ZyBJRC4iKQogCiAgICAgICAgIG1lc3Nh
Z2UgPSBzZWxmLl9vcHRpb25zLmRlc2NyaXB0aW9uCiAgICAgICAgIGlmIG5vdCBtZXNzYWdlOgot
ICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGFuIGlzc3VlIG51bWJlciwgdGhlbiB0aGUgbWVzc2Fn
ZSBiZWNvbWVzIHRoZSBsYWJlbAorICAgICAgICAgICAgIyBJZiB0aGUgaXNzdWUgYWxyZWFkeSBl
eGlzdHMsIHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUgbGFiZWwKICAgICAgICAgICAgICMg
b2YgdGhlIG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNvbWVzIHRoZSB0aXRsZSBvZiB0aGUg
d2hvbGUKICAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAgICAgICBpZiBzdGF0ZS5nZXQoImJ1
Z190aXRsZSIpOgorICAgICAgICAgICAgaWYgdGl0bGU6CiAgICAgICAgICAgICAgICAgIyBUaGlz
IGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAidXBsb2FkIiBjb21tYW5kLgot
ICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpCisgICAgICAg
ICAgICAgICAgbWVzc2FnZSA9IHRpdGxlCiAgICAgICAgICAgICBlbGlmIGJ1Z19pZDoKICAgICAg
ICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlIGZvciB0aGUgInBvc3QiIGNvbW1h
bmQgYW5kCiAgICAgICAgICAgICAgICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhlICJ1cGxvYWQi
IGNvbW1hbmQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55908</attachid>
            <date>2010-05-12 15:17:18 -0700</date>
            <delta_ts>2010-05-12 18:18:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100512151717.patch</filename>
            <type>text/plain</type>
            <size>20127</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1MzVjODI1ZTE0ZjIyYmVmOTEzNjA1NzU1Y2ZhNDM0YTljZWIyYTNkLi5lZGJmMjky
MzU2Njk3ZjdkNDk5YzI5NzNhNGJlZDU2OTNmODIzOTAyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDUtMTEgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBGYW5jeVJldmlld1F1
ZXVlIHRvIHVwbG9hZCByPyBwYXRjaGVzIHRvIHJpZXR2ZWxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODkxOAorCisgICAgICAgIEFsc28gYWRkcyBz
dXBwb3J0IGZvciBzZXR0aW5nL2dldHRpbmcgdGhlIGluLXJpZXR2ZWxkIGZsYWcgb24gYW4gYXR0
YWNobWVudC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5p
dHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9h
ZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZp
ZXcucHk6CisKIDIwMTAtMDUtMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weQppbmRleCA0MzExYTAwNzk4
Y2M4MjEzNmYyYjc1MjdhY2YyNjVhZGFmMDg4NWU1Li5iYmJmOTgyZTVhM2ZmYmVjMTM0ZDU1MTNm
ZDAyOGI1NmM2MTRlMGE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVnemlsbGEucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5CkBAIC00NTQsNiArNDU0LDggQEAgY2xhc3MgQnVnemls
bGEob2JqZWN0KToKICAgICAgICAgc2VsZi5fcGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAg
ICAgICAgICAgIGVsZW1lbnQsICdyZXZpZXcnLCBhdHRhY2htZW50LCAncmV2aWV3ZXJfZW1haWwn
KQogICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCisgICAgICAgICAgICAgICAg
ZWxlbWVudCwgJ2luLXJpZXR2ZWxkJywgYXR0YWNobWVudCwgJ3JpZXR2ZWxkX3VwbG9hZGVyX2Vt
YWlsJykKKyAgICAgICAgc2VsZi5fcGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAgICAgICAg
ICAgIGVsZW1lbnQsICdjb21taXQtcXVldWUnLCBhdHRhY2htZW50LCAnY29tbWl0dGVyX2VtYWls
JykKICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQKIApAQCAtNTcxLDcgKzU3Myw5IEBAIGNsYXNz
IEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50
X3RleHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX3Jldmll
dz1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9x
dWV1ZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRp
bmc9RmFsc2UsIGJ1Z19pZD1Ob25lKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1h
cmtfZm9yX2xhbmRpbmc9RmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9y
aWV0dmVsZD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZD1Ob25l
KToKICAgICAgICAgc2VsZi5icm93c2VyWydkZXNjcmlwdGlvbiddID0gZGVzY3JpcHRpb24KICAg
ICAgICAgc2VsZi5icm93c2VyWydpc3BhdGNoJ10gPSAoIjEiLCkKICAgICAgICAgc2VsZi5icm93
c2VyWydmbGFnX3R5cGUtMSddID0gKCc/JywpIGlmIG1hcmtfZm9yX3JldmlldyBlbHNlICgnWCcs
KQpAQCAtNTgzLDYgKzU4NywxMiBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICBl
bHNlOgogICAgICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMyddID0gKCdYJywpCiAK
KyAgICAgICAgIyBGSVhNRTogRml4IHRoZSBrZXkgaGVyZSBvbmNlIGluLXJpZXR2ZWxkIGlzIGFk
ZGVkIHRvIGJ1Z3Mud2Via2l0Lm9yZy4KKyAgICAgICAgaWYgaW5fcmlldHZlbGQ6CisgICAgICAg
ICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS00J10gPSAoJysnLCkKKyAgICAgICAgZWxzZToK
KyAgICAgICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBlLTQnXSA9ICgnWCcsKQorCiAgICAg
ICAgIGlmIGJ1Z19pZDoKICAgICAgICAgICAgIHBhdGNoX25hbWUgPSAiYnVnLSVzLSVzLnBhdGNo
IiAlIChidWdfaWQsIHRpbWVzdGFtcCgpKQogICAgICAgICBlbHNlOgpAQCAtNjAwLDcgKzYxMCw4
IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgY29t
bWVudF90ZXh0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfcmV2aWV3
PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1G
YWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlKToK
KyAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIGluX3JpZXR2ZWxkPUZhbHNlKToKICAgICAgICAgc2VsZi5hdXRo
ZW50aWNhdGUoKQogCiAgICAgICAgIGxvZygnQWRkaW5nIHBhdGNoICIlcyIgdG8gJXNzaG93X2J1
Zy5jZ2k/aWQ9JXMnICUgKGRlc2NyaXB0aW9uLApAQCAtNjI0LDcgKzYzNSw4IEBAIGNsYXNzIEJ1
Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtf
Zm9yX3Jldmlldz1tYXJrX2Zvcl9yZXZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1tYXJrX2Zvcl9jb21taXRfcXVldWUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9bWFya19mb3Jf
bGFuZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkPWJ1Z19p
ZCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkPWJ1Z19pZCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmlldHZlbGQ9aW5fcmlldHZlbGQp
CiAgICAgICAgIGlmIGNvbW1lbnRfdGV4dDoKICAgICAgICAgICAgIGxvZyhjb21tZW50X3RleHQp
CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2NvbW1lbnQnXSA9IGNvbW1lbnRfdGV4dApAQCAt
NzA0LDggKzcxNiwxMCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICAjIEZJWE1F
OiBUaGlzIHdpbGwgYnJlYWsgaWYgd2UgZXZlciByZS1vcmRlciBhdHRhY2htZW50IGZsYWdzCiAg
ICAgICAgIGlmIGZsYWdfbmFtZSA9PSAicmV2aWV3IjoKICAgICAgICAgICAgIHJldHVybiBzZWxm
LmJyb3dzZXIuZmluZF9jb250cm9sKHR5cGU9J3NlbGVjdCcsIG5yPTApCi0gICAgICAgIGlmIGZs
YWdfbmFtZSA9PSAiY29tbWl0LXF1ZXVlIjoKKyAgICAgICAgZWxpZiBmbGFnX25hbWUgPT0gImNv
bW1pdC1xdWV1ZSI6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmZpbmRfY29udHJv
bCh0eXBlPSdzZWxlY3QnLCBucj0xKQorICAgICAgICBlbGlmIGZsYWdfbmFtZSA9PSAiaW4tcmll
dHZlbGQiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5maW5kX2NvbnRyb2wodHlw
ZT0nc2VsZWN0JywgbnI9MikKICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCJEb24ndCBrbm93IGhv
dyB0byBmaW5kIGZsYWcgbmFtZWQgXCIlc1wiIiAlIGZsYWdfbmFtZSkKIAogICAgIGRlZiBjbGVh
cl9hdHRhY2htZW50X2ZsYWdzKHNlbGYsCkBAIC03MzMsNyArNzQ3LDcgQEAgY2xhc3MgQnVnemls
bGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnX25hbWUsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ192YWx1ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYWRkaXRpb25hbF9jb21tZW50X3RleHQpOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGFkZGl0aW9uYWxfY29tbWVudF90ZXh0PU5vbmUpOgogICAgICAgICAjIEZJWE1FOiBX
ZSBuZWVkIGEgd2F5IHRvIHRlc3QgdGhpcyBmdW5jdGlvbiBvbiBhIGxpdmUgYnVnemlsbGEKICAg
ICAgICAgIyBpbnN0YW5jZS4KIApAQCAtNzYzLDYgKzc3Nyw3IEBAIGNsYXNzIEJ1Z3ppbGxhKG9i
amVjdCk6CiAgICAgICAgICAgICBsb2coY29tbWVudF90ZXh0KQogICAgICAgICAgICAgcmV0dXJu
CiAKKwogICAgICAgICBzZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFjaG1lbnRfdXJsX2Zvcl9p
ZChhdHRhY2htZW50X2lkLCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zv
cm0obnI9MSkKICAgICAgICAgc2VsZi5icm93c2VyLmZpbmRfY29udHJvbCgnaXNvYnNvbGV0ZScp
Lml0ZW1zWzBdLnNlbGVjdGVkID0gVHJ1ZQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CmluZGV4IDRj
NDRjZGYzNWI1NTI3M2JhMTFmMmJlOGNkZGRiNGFiMDk4MTk5NDcuLjhlNmY5MTM3ODQyY2RlODQ3
MjcwYTUxZjJlMjcyMmZiZDJmZmUyNzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYV91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHkKQEAgLTk0
LDYgKzk0LDExIEBAIGNsYXNzIEJ1Z3ppbGxhVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgICAgICAgICAgc3RhdHVzPSIrIgogICAgICAgICAgICAgICAgIHNldHRlcj0idHdvQHRlc3Qu
Y29tIgogICAgICAgICAgICAvPgorICAgICAgICAgIDxmbGFnIG5hbWU9ImluLXJpZXR2ZWxkIgor
ICAgICAgICAgICAgICAgIGlkPSIxNzkzMyIKKyAgICAgICAgICAgICAgICBzdGF0dXM9IisiCisg
ICAgICAgICAgICAgICAgc2V0dGVyPSJ0aHJlZUB0ZXN0LmNvbSIKKyAgICAgICAgICAgLz4KICAg
ICAgICAgPC9hdHRhY2htZW50PgogJycnCiAgICAgX2V4cGVjdGVkX2V4YW1wbGVfYXR0YWNobWVu
dF9wYXJzaW5nID0gewpAQCAtMTA4LDYgKzExMyw4IEBAIGNsYXNzIEJ1Z3ppbGxhVGVzdCh1bml0
dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICdyZXZpZXdlcl9lbWFpbCcgOiAnb25lQHRlc3QuY29t
JywKICAgICAgICAgJ2NvbW1pdC1xdWV1ZScgOiAnKycsCiAgICAgICAgICdjb21taXR0ZXJfZW1h
aWwnIDogJ3R3b0B0ZXN0LmNvbScsCisgICAgICAgICdpbi1yaWV0dmVsZCc6ICcrJywKKyAgICAg
ICAgJ3JpZXR2ZWxkX3VwbG9hZGVyX2VtYWlsJzogJ3RocmVlQHRlc3QuY29tJywKICAgICAgICAg
J2F0dGFjaGVyX2VtYWlsJyA6ICdjaHJpc3RpYW4ucGxlc25lci5oYW5zZW5AZ21haWwuY29tJywK
ICAgICB9CiAKQEAgLTE4OCwxMiArMTk1LDEyIEBAIHJlbW92ZWQtYmVjYXVzZS1pdC13YXMtcmVh
bGx5LWxvbmcKIFpFWnBibWx6YUV4dllXUlhhWFJvVW1WaGMyOXVPbkpsWVhOdmJsMDdDaXQ5Q2lz
S0lFQmxibVFLSUFvZ0kyVnVaR2xtQ2c9PQogPC9kYXRhPiAgICAgICAgCiAgCi0gICAgICAgICAg
ICAgIDxmbGFnIG5hbWU9InJldmlldyIKLSAgICAgICAgICAgICAgICAgICAgaWQ9IjI3NjAyIgot
ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9Ij8iCi0gICAgICAgICAgICAgICAgICAgIHNldHRl
cj0ibWpzQGFwcGxlLmNvbSIKLSAgICAgICAgICAgICAgIC8+IAotICAgICAgICAgIDwvYXR0YWNo
bWVudD4gCisgICAgICAgICAgICA8ZmxhZyBuYW1lPSJyZXZpZXciCisgICAgICAgICAgICAgICAg
aWQ9IjI3NjAyIgorICAgICAgICAgICAgICAgIHN0YXR1cz0iPyIKKyAgICAgICAgICAgICAgICBz
ZXR0ZXI9Im1qc0BhcHBsZS5jb20iCisgICAgICAgICAgICAvPgorICAgICAgICA8L2F0dGFjaG1l
bnQ+IAogICAgIDwvYnVnPgogPC9idWd6aWxsYT4KICIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CmluZGV4IGEyODNk
YTlkYzJlZDhlMTBmYzBlMGMyOGQ0MjZlYzY3ODhlOGY4NGUuLjc2NTg0MzUwNjlkNDI0NDNkMTgz
ZmYxNzYzZDE4MWY0NjZlYjg4N2YgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKQEAgLTE4Miw2ICsxODIsMjAgQEAg
Y2xhc3MgQnVpbGRBdHRhY2htZW50KEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJv
Y2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgogICAgIF0KIAogCisjIEZJWE1FOiBXcml0ZSBhIHRlc3Qg
Zm9yIHRoaXMgY29kZS4gVGVzdGluZyBpdCBpcyBoYXJkIHNpbmNlIGl0IHVzaW5nIFJpZXR2ZWxk
J3MgdXBsb2FkLnB5LAorIyB3aGljaCByZXF1aXJlcyBhIHJlYWwgR2l0L1NWTiBjaGVja291dC4K
K2NsYXNzIFBvc3RBdHRhY2htZW50RmFuY3koQWJzdHJhY3RQYXRjaFNlcXVlbmNpbmdDb21tYW5k
LCBQcm9jZXNzQXR0YWNobWVudHNNaXhpbik6CisgICAgbmFtZSA9ICJwb3N0LWF0dGFjaG1lbnQt
ZmFuY3kiCisgICAgaGVscF90ZXh0ID0gIlVwbG9hZHMgYW4gYnVnemlsbGEgYXR0YWNobWVudCB0
byByaWV0dmVsZCIKKyAgICBhcmd1bWVudHNfbmFtZXMgPSAiW0FUVEFDSE1FTlRJRF0iCisgICAg
bWFpbl9zdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQ2xlYW5Xb3JraW5nRGlyZWN0b3J5LAorICAg
ICAgICBzdGVwcy5VcGRhdGUsCisgICAgICAgIHN0ZXBzLkFwcGx5UGF0Y2gsCisgICAgICAgIHN0
ZXBzLlBvc3RDb2RlUmV2aWV3LAorICAgIF0KKworCiBjbGFzcyBBYnN0cmFjdFBhdGNoQXBwbHlp
bmdDb21tYW5kKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCk6CiAgICAgcHJlcGFyZV9z
dGVwcyA9IFsKICAgICAgICAgc3RlcHMuRW5zdXJlTG9jYWxDb21taXRJZk5lZWRlZCwKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9h
ZF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZF91bml0dGVzdC5weQppbmRleCA0ZGQ5ZDdmNGMxOTdkYzQ5NzQwYzEzMzkwMGYz
YWQzMjJlOTI3MDc3Li5kM2FiYmRjNTE1YTMwZGNmNTAyMjZjYjlmYmE3YWFlZWViNzZhYjYxIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CkBAIC0xNTEsNyArMTUxLDcgQEAgYnVnX3Rp
dGxlOiBSRUdSRVNTSU9OKHI4NTIpOiBSZWFzb24KIGJ1Z19kZXNjcmlwdGlvbjogaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvODUyIGJyb2tlIHRoZSBidWlsZDoKIFJlYXNvbgogUnVu
bmluZyBwcmVwYXJlLUNoYW5nZUxvZwotTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9Tm9u
ZSwgZGVzY3JpcHRpb249Uk9MTE9VVCBvZiByODUyLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1h
cmtfZm9yX2NvbW1pdF9xdWV1ZT1UcnVlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlCitNT0NLIGFk
ZF9wYXRjaF90b19idWc6IGJ1Z19pZD1Ob25lLCBkZXNjcmlwdGlvbj1ST0xMT1VUIG9mIHI4NTIs
IG1hcmtfZm9yX3Jldmlldz1GYWxzZSwgbWFya19mb3JfY29tbWl0X3F1ZXVlPVRydWUsIG1hcmtf
Zm9yX2xhbmRpbmc9RmFsc2UsIGluX3JpZXR2ZWxkPUZhbHNlCiAtLSBCZWdpbiBjb21tZW50IC0t
CiBBbnkgY29tbWl0dGVyIGNhbiBsYW5kIHRoaXMgcGF0Y2ggYXV0b21hdGljYWxseSBieSBtYXJr
aW5nIGl0IGNvbW1pdC1xdWV1ZSsuICBUaGUgY29tbWl0LXF1ZXVlIHdpbGwgYnVpbGQgYW5kIHRl
c3QgdGhlIHBhdGNoIGJlZm9yZSBsYW5kaW5nIHRvIGVuc3VyZSB0aGF0IHRoZSByb2xsb3V0IHdp
bGwgYmUgc3VjY2Vzc2Z1bC4gIFRoaXMgcHJvY2VzcyB0YWtlcyBhcHByb3hpbWF0ZWx5IDE1IG1p
bnV0ZXMuCiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvcXVldWVzLnB5CmluZGV4IDc3NWFhNDRjYzJlODJlNzY1YzEwNmNhODg3MGU4NWRhZTJi
YWJhOTYuLjY2MjJjMTYxNzQzMDZlMWNkNDc3MjQ5N2ZlNDA5YTI4NmJiMTVkYWQgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5w
eQpAQCAtMzY4LDMgKzM2OCwxOSBAQCBjbGFzcyBTdHlsZVF1ZXVlKEFic3RyYWN0UmV2aWV3UXVl
dWUpOgogICAgICAgICBtZXNzYWdlID0gIkF0dGFjaG1lbnQgJXMgZGlkIG5vdCBwYXNzICVzOlxu
XG4lc1xuXG5JZiBhbnkgb2YgdGhlc2UgZXJyb3JzIGFyZSBmYWxzZSBwb3NpdGl2ZXMsIHBsZWFz
ZSBmaWxlIGEgYnVnIGFnYWluc3QgY2hlY2std2Via2l0LXN0eWxlLiIgJSAoc3RhdGVbInBhdGNo
Il0uaWQoKSwgY2xzLm5hbWUsIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KG91dHB1
dF9saW1pdD0zKjEwMjQpKQogICAgICAgICB0b29sLmJ1Z3MucG9zdF9jb21tZW50X3RvX2J1Zyhz
dGF0ZVsicGF0Y2giXS5idWdfaWQoKSwgbWVzc2FnZSwgY2M9Y2xzLndhdGNoZXJzKQogICAgICAg
ICBleGl0KDEpCisKKworIyBGSVhNRTogTWFrZSB0aGlzIHJ1biBvbiBhbGwgcGF0Y2ggYXR0YWNo
bWVudHMsIG5vdCBqdXN0IHI/IG9uZXMuCitjbGFzcyBGYW5jeVJldmlld1F1ZXVlKEFic3RyYWN0
UmV2aWV3UXVldWUpOgorICAgIG5hbWUgPSAiZmFuY3ktcmV2aWV3LXF1ZXVlIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYpOgorICAgICAgICBBYnN0cmFjdFJldmlld1F1ZXVlLl9faW5pdF9fKHNl
bGYpCisKKyAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0oc2VsZiwgcGF0Y2gp
OgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJVcGxvYWRpbmcgcGF0Y2giLCBwYXRjaCkK
KyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiByZXZpZXdfcGF0Y2goc2VsZiwgcGF0Y2gp
OgorICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goWyJwb3N0LWF0dGFjaG1lbnQtZmFuY3ki
LCAiLS1mYW5jeS1yZXZpZXciLCAiLS1mb3JjZS1jbGVhbiIsICItLW5vbi1pbnRlcmFjdGl2ZSIs
ICItLXBhcmVudC1jb21tYW5kPXN0eWxlLXF1ZXVlIiwgcGF0Y2guaWQoKV0pCisgICAgICAgIHJl
dHVybiBUcnVlCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCAxNmViMDUzNzZiMzVhNTYx
YjY0ZjVmZjcxYzQ1NDEwZGI0OTc2MWQxLi41NTI3Y2E3MmVlY2YzY2I2NjY2N2Y3NGI0NWY4OWVk
OTEwNDg5MDYxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE2MiwzICsxNjIsMTIg
QEAgY2xhc3MgU3R5bGVRdWV1ZVRlc3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAiaGFuZGxl
X3VuZXhwZWN0ZWRfZXJyb3IiIDogIk1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAgfQog
ICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFN0eWxlUXVldWUoKSwgZXhwZWN0ZWRf
c3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworCitjbGFzcyBGYW5jeVJldmlld1F1ZXVlVGVzdChR
dWV1ZXNUZXN0KToKKyAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToKKyAgICAgICAgZXhw
ZWN0ZWRfc3RkZXJyID0geworICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiAiQ0FVVElP
TjogZmFuY3ktcmV2aWV3LXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwgY2hhbmdlcyBpbiBc
IiVzXCJcblJ1bm5pbmcgV2ViS2l0IGZhbmN5LXJldmlldy1xdWV1ZS5cbiIgJSBNb2NrU0NNLmZh
a2VfY2hlY2tvdXRfcm9vdCwKKyAgICAgICAgICAgICJoYW5kbGVfdW5leHBlY3RlZF9lcnJvciI6
ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCisgICAgICAgIH0KKyAgICAgICAgc2VsZi5hc3NlcnRf
cXVldWVfb3V0cHV0cyhGYW5jeVJldmlld1F1ZXVlKCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3Rl
ZF9zdGRlcnIpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvdXBsb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3VwbG9hZC5weQppbmRleCA5OWQ0NWE2NmFiNjk4NzgzNTBkZjU3MGFmMTI4Zjk2NTky
Y2ZkYjI5Li44Nzc2NDZjYzVjYmM5ZGFjMzA4ZWU2NmM4MDY3YmNiNGIyNGU3Njg2IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkLnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQu
cHkKQEAgLTE2OCw3ICsxNjgsNiBAQCBjbGFzcyBQb3N0KEFic3RyYWN0UGF0Y2hVcGxvYWRpbmdD
b21tYW5kKToKICAgICAgICAgc3RlcHMuUG9zdERpZmYsCiAgICAgXQogCi0KIGNsYXNzIExhbmRT
YWZlbHkoQWJzdHJhY3RQYXRjaFVwbG9hZGluZ0NvbW1hbmQpOgogICAgIG5hbWUgPSAibGFuZC1z
YWZlbHkiCiAgICAgaGVscF90ZXh0ID0gIkxhbmQgdGhlIGN1cnJlbnQgZGlmZiB2aWEgdGhlIGNv
bW1pdC1xdWV1ZSAoRXhwZXJpbWVudGFsKSIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5CmluZGV4
IGVlYzM3NTFjZTUzY2NjMmY4N2I5ZjFhZWRiY2RlOGEyNjQwOWNkMWEuLjY3MWEwMjRkZDlhZmY4
MzYwMTZjMDk2OTlkNzcwOWQ0ZjgxNGI4NjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQpA
QCAtNTgsMjIgKzU4LDI1IEBAIGNsYXNzIFVwbG9hZENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3Qp
OgogICAgICAgICBvcHRpb25zLmRlc2NyaXB0aW9uID0gIk1PQ0sgZGVzY3JpcHRpb24iCiAgICAg
ICAgIG9wdGlvbnMucmVxdWVzdF9jb21taXQgPSBGYWxzZQogICAgICAgICBvcHRpb25zLnJldmll
dyA9IFRydWUKLSAgICAgICAgIyBSaWV0dmVsZCB1cGxvYWQgY29kZSByZXF1aXJlcyBhIHJlYWwg
U0NNIGNoZWNrb3V0LgotICAgICAgICBvcHRpb25zLmZhbmN5X3JldmlldyA9IEZhbHNlCiAgICAg
ICAgIG9wdGlvbnMuY2MgPSBOb25lCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIlJ1bm5p
bmcgY2hlY2std2Via2l0LXN0eWxlCiBNT0NLOiB1c2VyLm9wZW5fdXJsOiBmaWxlOi8vLi4uCi1P
YnNvbGV0aW5nIDIgb2xkIHBhdGNoZXMgb24gYnVnIDQyCi1NT0NLIGFkZF9wYXRjaF90b19idWc6
IGJ1Z19pZD00MiwgZGVzY3JpcHRpb249TU9DSyBkZXNjcmlwdGlvbiwgbWFya19mb3JfcmV2aWV3
PVRydWUsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1GYWxz
ZQorJXNPYnNvbGV0aW5nIDIgb2xkIHBhdGNoZXMgb24gYnVnIDQyCitNT0NLIGFkZF9wYXRjaF90
b19idWc6IGJ1Z19pZD00MiwgZGVzY3JpcHRpb249TU9DSyBkZXNjcmlwdGlvbiwgbWFya19mb3Jf
cmV2aWV3PVRydWUsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGlu
Zz1GYWxzZSwgaW5fcmlldHZlbGQ9JXMKIC0tIEJlZ2luIGNvbW1lbnQgLS0KIE5vbmUKIC0tIEVu
ZCBjb21tZW50IC0tCiBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIK
ICIiIgotICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoUG9zdCgpLCBbNDJdLCBv
cHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKKyAgICAg
ICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQorICAgICAgICBzZWxmLmFzc2VydF9leGVj
dXRlX291dHB1dHMoUG9zdCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVy
cj1leHBlY3RlZF9zdGRlcnIgJSAoIiIsIG9wdGlvbnMuZmFuY3lfcmV2aWV3KSkKKworICAgICAg
ICBvcHRpb25zLmZhbmN5X3JldmlldyA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0
ZV9vdXRwdXRzKFBvc3QoKSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyICUgKCJNT0NLOiBVcGxvYWRpbmcgcGF0Y2ggdG8gcmlldHZlbGRcbiIs
IG9wdGlvbnMuZmFuY3lfcmV2aWV3KSkKIAogICAgIGRlZiB0ZXN0X2xhbmRfc2FmZWx5KHNlbGYp
OgotICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9u
IGJ1ZyA0MlxuTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIsIGRlc2NyaXB0aW9uPVBh
dGNoIGZvciBsYW5kaW5nLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1hcmtfZm9yX2NvbW1pdF9x
dWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1UcnVlXG4tLSBCZWdpbiBjb21tZW50IC0tXG5O
b25lXG4tLSBFbmQgY29tbWVudCAtLVxuIgorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiT2Jz
b2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MlxuTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBi
dWdfaWQ9NDIsIGRlc2NyaXB0aW9uPVBhdGNoIGZvciBsYW5kaW5nLCBtYXJrX2Zvcl9yZXZpZXc9
RmFsc2UsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1UcnVl
LCBpbl9yaWV0dmVsZD1GYWxzZVxuLS0gQmVnaW4gY29tbWVudCAtLVxuTm9uZVxuLS0gRW5kIGNv
bW1lbnQgLS1cbiIKICAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKExhbmRTYWZl
bHkoKSwgWzQyXSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAogICAgIGRlZiB0
ZXN0X3ByZXBhcmVfZGlmZl93aXRoX2FyZyhzZWxmKToKQEAgLTg4LDE5ICs5MSwyMyBAQCBNT0NL
OiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICAgICAgICAgb3B0aW9ucy5k
ZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9uIgogICAgICAgICBvcHRpb25zLnJlcXVlc3Rf
Y29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9ucy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMg
UmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMgYSByZWFsIFNDTSBjaGVja291dC4KICAgICAg
ICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9u
ZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHls
ZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTovLy4uLgotT2Jzb2xldGluZyAyIG9sZCBwYXRj
aGVzIG9uIGJ1ZyA0MgotTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIsIGRlc2NyaXB0
aW9uPU1PQ0sgZGVzY3JpcHRpb24sIG1hcmtfZm9yX3Jldmlldz1UcnVlLCBtYXJrX2Zvcl9jb21t
aXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UKKyVzT2Jzb2xldGluZyAyIG9s
ZCBwYXRjaGVzIG9uIGJ1ZyA0MgorTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIsIGRl
c2NyaXB0aW9uPU1PQ0sgZGVzY3JpcHRpb24sIG1hcmtfZm9yX3Jldmlldz1UcnVlLCBtYXJrX2Zv
cl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsIGluX3JpZXR2ZWxk
PSVzCiAtLSBCZWdpbiBjb21tZW50IC0tCiBOb25lCiAtLSBFbmQgY29tbWVudCAtLQogTU9DSzog
dXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAiIiIKLSAgICAgICAgc2VsZi5h
c3NlcnRfZXhlY3V0ZV9vdXRwdXRzKFVwbG9hZCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4
cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKKyAgICAgICAgb3B0aW9ucy5mYW5jeV9y
ZXZpZXcgPSBGYWxzZQorICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoVXBsb2Fk
KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVy
ciAlICgiIiwgb3B0aW9ucy5mYW5jeV9yZXZpZXcpKQorCisgICAgICAgIG9wdGlvbnMuZmFuY3lf
cmV2aWV3ID0gVHJ1ZQorICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoVXBsb2Fk
KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVy
ciAlICgiTU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJpZXR2ZWxkXG4iLCBvcHRpb25zLmZhbmN5
X3JldmlldykpCiAKICAgICBkZWYgdGVzdF9tYXJrX2J1Z19maXhlZChzZWxmKToKICAgICAgICAg
dG9vbCA9IE1vY2tUb29sKCkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9tb2NrdG9vbC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9t
b2NrdG9vbC5weQppbmRleCAxMjgzNjJhZWU1NjNjZTZjMWFiODhmNjdjODUxMzk1ZGQ1NDA2ZjU5
Li5kNjNjNGU2M2RkMTBlYjAyMjY1ZDgyODZiZjYzNDRjZmRlMzJkZDk5IDEwMDY0NAotLS0gYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CkBAIC0zMDcsOSArMzA3LDEw
IEBAIGNsYXNzIE1vY2tCdWd6aWxsYShNb2NrKToKICAgICAgICAgICAgICAgICAgICAgICAgICBj
b21tZW50X3RleHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9yZXZp
ZXc9RmFsc2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVl
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2Up
OgotICAgICAgICBsb2coIk1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPSVzLCBkZXNjcmlw
dGlvbj0lcywgbWFya19mb3JfcmV2aWV3PSVzLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9JXMsIG1h
cmtfZm9yX2xhbmRpbmc9JXMiICUKLSAgICAgICAgICAgIChidWdfaWQsIGRlc2NyaXB0aW9uLCBt
YXJrX2Zvcl9yZXZpZXcsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZSwgbWFya19mb3JfbGFuZGluZykp
CisgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1GYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICBpbl9yaWV0dmVsZD1GYWxzZSk6CisgICAgICAgIGxvZygiTU9D
SyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9JXMsIGRlc2NyaXB0aW9uPSVzLCBtYXJrX2Zvcl9y
ZXZpZXc9JXMsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT0lcywgbWFya19mb3JfbGFuZGluZz0lcywg
aW5fcmlldHZlbGQ9JXMiICUKKyAgICAgICAgICAgIChidWdfaWQsIGRlc2NyaXB0aW9uLCBtYXJr
X2Zvcl9yZXZpZXcsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZSwgbWFya19mb3JfbGFuZGluZywgaW5f
cmlldHZlbGQpKQogICAgICAgICBsb2coIi0tIEJlZ2luIGNvbW1lbnQgLS0iKQogICAgICAgICBs
b2coY29tbWVudF90ZXh0KQogICAgICAgICBsb2coIi0tIEVuZCBjb21tZW50IC0tIikKQEAgLTUw
NSw2ICs1MDYsMTEgQEAgY2xhc3MgTW9ja0V4ZWN1dGUoTW9jayk6CiAgICAgICAgIHJldHVybiAi
TU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIKIAogCitjbGFzcyBNb2NrUmlldHZlbGQoUmll
dHZlbGQpOgorICAgIGRlZiBwb3N0KHNlbGYsIGRpZmYsIG1lc3NhZ2U9Tm9uZSwgY29kZXJldmll
d19pc3N1ZT1Ob25lLCBjYz1Ob25lKToKKyAgICAgICAgbG9nKCJNT0NLOiBVcGxvYWRpbmcgcGF0
Y2ggdG8gcmlldHZlbGQiKQorCisKIGNsYXNzIE1vY2tUb29sKCk6CiAKICAgICBkZWYgX19pbml0
X18oc2VsZiwgbG9nX2V4ZWN1dGl2ZT1GYWxzZSk6CkBAIC01MjAsNyArNTI2LDcgQEAgY2xhc3Mg
TW9ja1Rvb2woKToKICAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tvdXQoKQogICAg
ICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKICAgICAgICAgc2Vs
Zi5pcmNfcGFzc3dvcmQgPSAiTU9DSyBpcmMgcGFzc3dvcmQiCi0gICAgICAgIHNlbGYuY29kZXJl
dmlldyA9IFJpZXR2ZWxkKHNlbGYuZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmNvZGVyZXZpZXcg
PSBNb2NrUmlldHZlbGQoc2VsZi5leGVjdXRpdmUpCiAKICAgICBkZWYgc2NtKHNlbGYpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fc2NtCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKaW5kZXggODM5NzUxOTAyODQ1
N2MyMGNhZGIzNWU5Zjc1NTRjYjlkNzIwMWFjYy4uYzcyYWRhMjdmODMxNjllYWQ0ZTlkZTg2Mzg3
MzkzOTE0MTY0YjllZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQpAQCAtNDMsMTggKzQzLDI2IEBAIGNs
YXNzIFBvc3RDb2RlUmV2aWV3KEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl9v
cHRpb25zLmZhbmN5X3JldmlldzoKICAgICAgICAgICAgIHJldHVybgogCi0gICAgICAgIGJ1Z19p
ZCA9IHN0YXRlLmdldCgiYnVnX2lkIikKKyAgICAgICAgcGF0Y2ggPSBzdGF0ZS5nZXQoInBhdGNo
IikKKyAgICAgICAgaWYgcGF0Y2g6CisgICAgICAgICAgICBidWdfaWQgPSBwYXRjaC5idWdfaWQo
KQorICAgICAgICAgICAgdGl0bGUgPSBwYXRjaC5uYW1lKCkKKyAgICAgICAgICAgIHNlbGYudG9v
bC5idWdzLnNldF9mbGFnX29uX2F0dGFjaG1lbnQocGF0Y2guaWQsICdpbi1yaWV0dmVsZCcsICcr
JywgJ1BhdGNoIGhhcyBiZWVuIHVwbG9hZCB0byByaWV0dmVsZCcpCisgICAgICAgIGVsc2U6Cisg
ICAgICAgICAgICBidWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIpCisgICAgICAgICAgICB0aXRs
ZSA9IHN0YXRlLmdldCgiYnVnX3RpdGxlIikKKwogICAgICAgICBpZiBub3QgYnVnX2lkOgogICAg
ICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iQ2Fubm90IHVwbG9hZCBhIGZhbmN5
IHJldmlldyB3aXRob3V0IGEgYnVnIElELiIpCiAKICAgICAgICAgbWVzc2FnZSA9IHNlbGYuX29w
dGlvbnMuZGVzY3JpcHRpb24KICAgICAgICAgaWYgbm90IG1lc3NhZ2U6Ci0gICAgICAgICAgICAj
IElmIHdlIGhhdmUgYW4gaXNzdWUgbnVtYmVyLCB0aGVuIHRoZSBtZXNzYWdlIGJlY29tZXMgdGhl
IGxhYmVsCisgICAgICAgICAgICAjIElmIHRoZSBpc3N1ZSBhbHJlYWR5IGV4aXN0cywgdGhlbiB0
aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJlbAogICAgICAgICAgICAgIyBvZiB0aGUgbmV3IHBh
dGNoLiBPdGhlcndpc2UsIGl0IGJlY29tZXMgdGhlIHRpdGxlIG9mIHRoZSB3aG9sZQogICAgICAg
ICAgICAgIyBpc3N1ZS4KLSAgICAgICAgICAgIGlmIHN0YXRlLmdldCgiYnVnX3RpdGxlIik6Cisg
ICAgICAgICAgICBpZiB0aXRsZToKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGNvbW1v
biBjYXNlIGZvciB0aGUgdGhlIGZpcnN0ICJ1cGxvYWQiIGNvbW1hbmQuCi0gICAgICAgICAgICAg
ICAgbWVzc2FnZSA9IHN0YXRlLmdldCgiYnVnX3RpdGxlIikKKyAgICAgICAgICAgICAgICBtZXNz
YWdlID0gdGl0bGUKICAgICAgICAgICAgIGVsaWYgYnVnX2lkOgogICAgICAgICAgICAgICAgICMg
VGhpcyBpcyB0aGUgY29tbW9uIGNhc2UgZm9yIHRoZSAicG9zdCIgY29tbWFuZCBhbmQKICAgICAg
ICAgICAgICAgICAjIHN1YnNlcXVlbnQgcnVucyBvZiB0aGUgInVwbG9hZCIgY29tbWFuZC4KZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0ZGlm
Zi5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0ZGlmZi5w
eQppbmRleCA3OTczOWNkMDdjNGJhYjE5ZDcyMGY2MzBmNGFhZTE1YjE3MjE5MzIxLi4yNDlhY2Ex
NTZkNzk1Zjk5NmQxMWJjM2NhM2JkNjNhNTA5NTZlMmQzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmYucHkKKysrIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3RkaWZmLnB5CkBAIC00NCw2ICs0NCw3
IEBAIGNsYXNzIFBvc3REaWZmKEFic3RyYWN0U3RlcCk6CiAgICAgICAgIGRpZmYgPSBzZWxmLmNh
Y2hlZF9sb29rdXAoc3RhdGUsICJkaWZmIikKICAgICAgICAgZGVzY3JpcHRpb24gPSBzZWxmLl9v
cHRpb25zLmRlc2NyaXB0aW9uIG9yICJQYXRjaCIKICAgICAgICAgY29tbWVudF90ZXh0ID0gTm9u
ZQotICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYWRkX3BhdGNoX3RvX2J1ZyhzdGF0ZVsiYnVnX2lk
Il0sIGRpZmYsIGRlc2NyaXB0aW9uLCBjb21tZW50X3RleHQ9Y29tbWVudF90ZXh0LCBtYXJrX2Zv
cl9yZXZpZXc9c2VsZi5fb3B0aW9ucy5yZXZpZXcsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1zZWxm
Ll9vcHRpb25zLnJlcXVlc3RfY29tbWl0KQorICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYWRkX3Bh
dGNoX3RvX2J1ZyhzdGF0ZVsiYnVnX2lkIl0sIGRpZmYsIGRlc2NyaXB0aW9uLCBjb21tZW50X3Rl
eHQ9Y29tbWVudF90ZXh0LCBtYXJrX2Zvcl9yZXZpZXc9c2VsZi5fb3B0aW9ucy5yZXZpZXcsCisg
ICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPXNlbGYuX29wdGlvbnMucmVxdWVz
dF9jb21taXQsIGluX3JpZXR2ZWxkPXNlbGYuX29wdGlvbnMuZmFuY3lfcmV2aWV3KQogICAgICAg
ICBpZiBzZWxmLl9vcHRpb25zLm9wZW5fYnVnOgogICAgICAgICAgICAgc2VsZi5fdG9vbC51c2Vy
Lm9wZW5fdXJsKHNlbGYuX3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoc3RhdGVbImJ1Z19p
ZCJdKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55921</attachid>
            <date>2010-05-12 18:19:00 -0700</date>
            <delta_ts>2010-05-12 19:16:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100512181859.patch</filename>
            <type>text/plain</type>
            <size>21016</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Yzk4OGM1MWY2ZjE1ODYyNjg4NWZlZTdiYTBhYTQ2ZjA5ZWUwMzA0Li4xNGFlNzIw
NWNhYzkwNzdiODZiYjJhYjZjN2M4YzQ3MjZmNTYzYjQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDUtMTEgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBGYW5jeVJldmlld1F1
ZXVlIHRvIHVwbG9hZCByPyBwYXRjaGVzIHRvIHJpZXR2ZWxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODkxOAorCisgICAgICAgIEFsc28gYWRkcyBz
dXBwb3J0IGZvciBzZXR0aW5nL2dldHRpbmcgdGhlIGluLXJpZXR2ZWxkIGZsYWcgb24gYW4gYXR0
YWNobWVudC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5p
dHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9h
ZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZp
ZXcucHk6CisKIDIwMTAtMDUtMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5CmluZGV4IDQzMTFhMDA3OThjYzgy
MTM2ZjJiNzUyN2FjZjI2NWFkYWYwODg1ZTUuLjA0NmI2ZTc1ZDc5NzhhYWM2YmE5YjI3OTIyOGRl
YzM1MWJiYWQzZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYnVnemlsbGEucHkKQEAgLTQ1NCw2ICs0NTQsOCBAQCBjbGFzcyBCdWd6aWxsYShv
YmplY3QpOgogICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAg
ICAgICAgZWxlbWVudCwgJ3JldmlldycsIGF0dGFjaG1lbnQsICdyZXZpZXdlcl9lbWFpbCcpCiAg
ICAgICAgIHNlbGYuX3BhcnNlX2F0dGFjaG1lbnRfZmxhZygKKyAgICAgICAgICAgICAgICBlbGVt
ZW50LCAnaW4tcmlldHZlbGQnLCBhdHRhY2htZW50LCAncmlldHZlbGRfdXBsb2FkZXJfZW1haWwn
KQorICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAgICAgICAg
ZWxlbWVudCwgJ2NvbW1pdC1xdWV1ZScsIGF0dGFjaG1lbnQsICdjb21taXR0ZXJfZW1haWwnKQog
ICAgICAgICByZXR1cm4gYXR0YWNobWVudAogCkBAIC01NzEsNyArNTczLDkgQEAgY2xhc3MgQnVn
emlsbGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4
dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfcmV2aWV3PUZh
bHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVl
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1G
YWxzZSwgYnVnX2lkPU5vbmUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19m
b3JfbGFuZGluZz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX3JpZXR2
ZWxkPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkPU5vbmUpOgog
ICAgICAgICBzZWxmLmJyb3dzZXJbJ2Rlc2NyaXB0aW9uJ10gPSBkZXNjcmlwdGlvbgogICAgICAg
ICBzZWxmLmJyb3dzZXJbJ2lzcGF0Y2gnXSA9ICgiMSIsKQogICAgICAgICBzZWxmLmJyb3dzZXJb
J2ZsYWdfdHlwZS0xJ10gPSAoJz8nLCkgaWYgbWFya19mb3JfcmV2aWV3IGVsc2UgKCdYJywpCkBA
IC01ODMsNiArNTg3LDEyIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0zJ10gPSAoJ1gnLCkKIAorICAg
ICAgICAjIEZJWE1FOiBGaXggdGhlIGtleSBoZXJlIG9uY2UgaW4tcmlldHZlbGQgaXMgYWRkZWQg
dG8gYnVncy53ZWJraXQub3JnLgorICAgICAgICBpZiBpbl9yaWV0dmVsZDoKKyAgICAgICAgICAg
IHNlbGYuYnJvd3NlclsnZmxhZ190eXBlLTQnXSA9ICgnKycsKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtNCddID0gKCdYJywpCisKICAgICAgICAg
aWYgYnVnX2lkOgogICAgICAgICAgICAgcGF0Y2hfbmFtZSA9ICJidWctJXMtJXMucGF0Y2giICUg
KGJ1Z19pZCwgdGltZXN0YW1wKCkpCiAgICAgICAgIGVsc2U6CkBAIC02MDAsNyArNjEwLDggQEAg
Y2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50
X3RleHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9yZXZpZXc9RmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UpOgorICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5fcmlldHZlbGQ9RmFsc2UpOgogICAgICAgICBzZWxmLmF1dGhlbnRp
Y2F0ZSgpCiAKICAgICAgICAgbG9nKCdBZGRpbmcgcGF0Y2ggIiVzIiB0byAlc3Nob3dfYnVnLmNn
aT9pZD0lcycgJSAoZGVzY3JpcHRpb24sCkBAIC02MjQsNyArNjM1LDggQEAgY2xhc3MgQnVnemls
bGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3Jf
cmV2aWV3PW1hcmtfZm9yX3JldmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPW1hcmtfZm9yX2NvbW1pdF9xdWV1ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1tYXJrX2Zvcl9sYW5k
aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9YnVnX2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9YnVnX2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9yaWV0dmVsZD1pbl9yaWV0dmVsZCkKICAg
ICAgICAgaWYgY29tbWVudF90ZXh0OgogICAgICAgICAgICAgbG9nKGNvbW1lbnRfdGV4dCkKICAg
ICAgICAgICAgIHNlbGYuYnJvd3NlclsnY29tbWVudCddID0gY29tbWVudF90ZXh0CkBAIC03MDQs
OCArNzE2LDEwIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFRo
aXMgd2lsbCBicmVhayBpZiB3ZSBldmVyIHJlLW9yZGVyIGF0dGFjaG1lbnQgZmxhZ3MKICAgICAg
ICAgaWYgZmxhZ19uYW1lID09ICJyZXZpZXciOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJv
d3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2VsZWN0JywgbnI9MCkKLSAgICAgICAgaWYgZmxhZ19u
YW1lID09ICJjb21taXQtcXVldWUiOgorICAgICAgICBlbGlmIGZsYWdfbmFtZSA9PSAiY29tbWl0
LXF1ZXVlIjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuZmluZF9jb250cm9sKHR5
cGU9J3NlbGVjdCcsIG5yPTEpCisgICAgICAgIGVsaWYgZmxhZ19uYW1lID09ICJpbi1yaWV0dmVs
ZCI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmZpbmRfY29udHJvbCh0eXBlPSdz
ZWxlY3QnLCBucj0yKQogICAgICAgICByYWlzZSBFeGNlcHRpb24oIkRvbid0IGtub3cgaG93IHRv
IGZpbmQgZmxhZyBuYW1lZCBcIiVzXCIiICUgZmxhZ19uYW1lKQogCiAgICAgZGVmIGNsZWFyX2F0
dGFjaG1lbnRfZmxhZ3Moc2VsZiwKQEAgLTczMiw4ICs3NDYsOCBAQCBjbGFzcyBCdWd6aWxsYShv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRfaWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdfdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWVudF90ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9u
YWxfY29tbWVudF90ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50
X3RleHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2Nv
bW1lbnRfdGV4dD1Ob25lKToKICAgICAgICAgIyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byB0ZXN0
IHRoaXMgZnVuY3Rpb24gb24gYSBsaXZlIGJ1Z3ppbGxhCiAgICAgICAgICMgaW5zdGFuY2UuCiAK
QEAgLTc0OCw3ICs3NjIsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKIAogICAgICAgICBz
ZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChhdHRhY2htZW50X2lk
LCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zvcm0obnI9MSkKLSAgICAg
ICAgc2VsZi5icm93c2VyLnNldF92YWx1ZShjb21tZW50X3RleHQsIG5hbWU9J2NvbW1lbnQnLCBu
cj0wKQorCisgICAgICAgIGlmIGNvbW1lbnRfdGV4dDoKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nl
ci5zZXRfdmFsdWUoY29tbWVudF90ZXh0LCBuYW1lPSdjb21tZW50JywgbnI9MCkKKwogICAgICAg
ICBzZWxmLl9maW5kX3NlbGVjdF9lbGVtZW50X2Zvcl9mbGFnKGZsYWdfbmFtZSkudmFsdWUgPSAo
ZmxhZ192YWx1ZSwpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJtaXQoKQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRl
c3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFf
dW5pdHRlc3QucHkKaW5kZXggNGM0NGNkZjM1YjU1MjczYmExMWYyYmU4Y2RkZGI0YWIwOTgxOTk0
Ny4uMzUyMmQ4MzkwYzU2OGMxN2NmYmU1OWEzYzAzMGQyMDAyNzM4NWUwYSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxs
YV91bml0dGVzdC5weQpAQCAtOTQsNiArOTQsMTEgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBzdGF0dXM9IisiCiAgICAgICAgICAgICAg
ICAgc2V0dGVyPSJ0d29AdGVzdC5jb20iCiAgICAgICAgICAgIC8+CisgICAgICAgICAgPGZsYWcg
bmFtZT0iaW4tcmlldHZlbGQiCisgICAgICAgICAgICAgICAgaWQ9IjE3OTMzIgorICAgICAgICAg
ICAgICAgIHN0YXR1cz0iKyIKKyAgICAgICAgICAgICAgICBzZXR0ZXI9InRocmVlQHRlc3QuY29t
IgorICAgICAgICAgICAvPgogICAgICAgICA8L2F0dGFjaG1lbnQ+CiAnJycKICAgICBfZXhwZWN0
ZWRfZXhhbXBsZV9hdHRhY2htZW50X3BhcnNpbmcgPSB7CkBAIC0xMDgsNiArMTEzLDggQEAgY2xh
c3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgJ3Jldmlld2VyX2Vt
YWlsJyA6ICdvbmVAdGVzdC5jb20nLAogICAgICAgICAnY29tbWl0LXF1ZXVlJyA6ICcrJywKICAg
ICAgICAgJ2NvbW1pdHRlcl9lbWFpbCcgOiAndHdvQHRlc3QuY29tJywKKyAgICAgICAgJ2luLXJp
ZXR2ZWxkJzogJysnLAorICAgICAgICAncmlldHZlbGRfdXBsb2FkZXJfZW1haWwnOiAndGhyZWVA
dGVzdC5jb20nLAogICAgICAgICAnYXR0YWNoZXJfZW1haWwnIDogJ2NocmlzdGlhbi5wbGVzbmVy
LmhhbnNlbkBnbWFpbC5jb20nLAogICAgIH0KIApAQCAtMTg4LDEyICsxOTUsMTIgQEAgcmVtb3Zl
ZC1iZWNhdXNlLWl0LXdhcy1yZWFsbHktbG9uZwogWkVacGJtbHphRXh2WVdSWGFYUm9VbVZoYzI5
dU9uSmxZWE52YmwwN0NpdDlDaXNLSUVCbGJtUUtJQW9nSTJWdVpHbG1DZz09CiA8L2RhdGE+ICAg
ICAgICAKICAKLSAgICAgICAgICAgICAgPGZsYWcgbmFtZT0icmV2aWV3IgotICAgICAgICAgICAg
ICAgICAgICBpZD0iMjc2MDIiCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iPyIKLSAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyPSJtanNAYXBwbGUuY29tIgotICAgICAgICAgICAgICAgLz4g
Ci0gICAgICAgICAgPC9hdHRhY2htZW50PiAKKyAgICAgICAgICAgIDxmbGFnIG5hbWU9InJldmll
dyIKKyAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCisgICAgICAgICAgICAgICAgc3RhdHVzPSI/
IgorICAgICAgICAgICAgICAgIHNldHRlcj0ibWpzQGFwcGxlLmNvbSIKKyAgICAgICAgICAgIC8+
CisgICAgICAgIDwvYXR0YWNobWVudD4KICAgICA8L2J1Zz4KIDwvYnVnemlsbGE+CiAiIiIKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weQppbmRleCBhMjgzZGE5ZGMyZWQ4ZTEwZmMwZTBjMjhkNDI2ZWM2Nzg4ZThmODRlLi5h
ODViMDlhZDQ0ZTJhNTgxMGFiYmUyNzU5ZTY3ZmIwZjBjYzNmYjlmIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBA
IC0xODIsNiArMTgyLDE4IEBAIGNsYXNzIEJ1aWxkQXR0YWNobWVudChBYnN0cmFjdFBhdGNoU2Vx
dWVuY2luZ0NvbW1hbmQsIFByb2Nlc3NBdHRhY2htZW50c01peGluKToKICAgICBdCiAKIAorY2xh
c3MgUG9zdEF0dGFjaG1lbnRUb1JpZXR2ZWxkKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFu
ZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgorICAgIG5hbWUgPSAicG9zdC1hdHRhY2htZW50
LXRvLXJpZXR2ZWxkIgorICAgIGhlbHBfdGV4dCA9ICJVcGxvYWRzIGEgYnVnemlsbGEgYXR0YWNo
bWVudCB0byByaWV0dmVsZCIKKyAgICBhcmd1bWVudHNfbmFtZXMgPSAiQVRUQUNITUVOVElEIgor
ICAgIG1haW5fc3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwK
KyAgICAgICAgc3RlcHMuVXBkYXRlLAorICAgICAgICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAg
ICBzdGVwcy5Qb3N0Q29kZVJldmlldywKKyAgICBdCisKKwogY2xhc3MgQWJzdHJhY3RQYXRjaEFw
cGx5aW5nQ29tbWFuZChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQpOgogICAgIHByZXBh
cmVfc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBzLkVuc3VyZUxvY2FsQ29tbWl0SWZOZWVkZWQsCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93
bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNGRkOWQ3ZjRjMTk3ZGM0OTc0MGMxMzM5
MDBmM2FkMzIyZTkyNzA3Ny4uZjk5YjQ1NTMxN2Y2MGFhMTM2YWYxZGUwMTEzMzBhM2U5MTk5ODIw
NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTAyLDYgKzEwMiwxMCBAQCBj
bGFzcyBEb3dubG9hZENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAgICBleHBlY3Rl
ZF9zdGRlcnIgPSAiUHJvY2Vzc2luZyAxIHBhdGNoIGZyb20gMSBidWcuXG5VcGRhdGluZyB3b3Jr
aW5nIGRpcmVjdG9yeVxuUHJvY2Vzc2luZyBwYXRjaCAxOTcgZnJvbSBidWcgNDIuXG5CdWlsZGlu
ZyBXZWJLaXRcbiIKICAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKEJ1aWxkQXR0
YWNobWVudCgpLCBbMTk3XSwgb3B0aW9ucz1zZWxmLl9kZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAorICAgIGRlZiB0ZXN0X3Bvc3RfYXR0YWNobWVu
dF90b19yaWV0dmVsZChzZWxmKToKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIlByb2Nlc3Np
bmcgMSBwYXRjaCBmcm9tIDEgYnVnLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblByb2Nl
c3NpbmcgcGF0Y2ggMTk3IGZyb20gYnVnIDQyLlxuTU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJp
ZXR2ZWxkXG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQb3N0QXR0YWNo
bWVudFRvUmlldHZlbGQoKSwgWzE5N10sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25zKCks
IGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKICAgICBkZWYgdGVzdF9sYW5kX2F0
dGFjaG1lbnQoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgZXhwZWN0ZWQgcmVzdWx0IGlz
IGltcGVyZmVjdCwgbm90aWNlIGhvdyBpdCdzIHNlZWluZyB0aGUgc2FtZSBwYXRjaCBhcyBzdGls
bCB0aGVyZSBhZnRlciBpdCB0aG91Z2h0IGl0IHdvdWxkIGhhdmUgY2xlYXJlZCB0aGUgZmxhZ3Mu
CiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEg
YnVnLgpAQCAtMTUxLDcgKzE1NSw3IEBAIGJ1Z190aXRsZTogUkVHUkVTU0lPTihyODUyKTogUmVh
c29uCiBidWdfZGVzY3JpcHRpb246IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzg1
MiBicm9rZSB0aGUgYnVpbGQ6CiBSZWFzb24KIFJ1bm5pbmcgcHJlcGFyZS1DaGFuZ2VMb2cKLU1P
Q0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPU5vbmUsIGRlc2NyaXB0aW9uPVJPTExPVVQgb2Yg
cjg1MiwgbWFya19mb3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9VHJ1ZSwg
bWFya19mb3JfbGFuZGluZz1GYWxzZQorTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9Tm9u
ZSwgZGVzY3JpcHRpb249Uk9MTE9VVCBvZiByODUyLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1h
cmtfZm9yX2NvbW1pdF9xdWV1ZT1UcnVlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLCBpbl9yaWV0
dmVsZD1GYWxzZQogLS0gQmVnaW4gY29tbWVudCAtLQogQW55IGNvbW1pdHRlciBjYW4gbGFuZCB0
aGlzIHBhdGNoIGF1dG9tYXRpY2FsbHkgYnkgbWFya2luZyBpdCBjb21taXQtcXVldWUrLiAgVGhl
IGNvbW1pdC1xdWV1ZSB3aWxsIGJ1aWxkIGFuZCB0ZXN0IHRoZSBwYXRjaCBiZWZvcmUgbGFuZGlu
ZyB0byBlbnN1cmUgdGhhdCB0aGUgcm9sbG91dCB3aWxsIGJlIHN1Y2Nlc3NmdWwuICBUaGlzIHBy
b2Nlc3MgdGFrZXMgYXBwcm94aW1hdGVseSAxNSBtaW51dGVzLgogCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCAzNDU5
OTgxNzE1NzU2Njc0YjliMDhjZThhNjA4NTc3NTliMGJmYjdjLi45NjM2MTY0NzYwZWJmMDgzNDRi
MDMxZDM2NDY2ZDI4NDNhMzgwYTAwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKQEAgLTM3MiwzICszNzIsMjMgQEAgY2xh
c3MgU3R5bGVRdWV1ZShBYnN0cmFjdFJldmlld1F1ZXVlKToKICAgICAgICAgbWVzc2FnZSA9ICJB
dHRhY2htZW50ICVzIGRpZCBub3QgcGFzcyAlczpcblxuJXNcblxuSWYgYW55IG9mIHRoZXNlIGVy
cm9ycyBhcmUgZmFsc2UgcG9zaXRpdmVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IGNoZWNr
LXdlYmtpdC1zdHlsZS4iICUgKHN0YXRlWyJwYXRjaCJdLmlkKCksIGNscy5uYW1lLCBzY3JpcHRf
ZXJyb3IubWVzc2FnZV93aXRoX291dHB1dChvdXRwdXRfbGltaXQ9MyoxMDI0KSkKICAgICAgICAg
dG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcoc3RhdGVbInBhdGNoIl0uYnVnX2lkKCksIG1l
c3NhZ2UsIGNjPWNscy53YXRjaGVycykKICAgICAgICAgZXhpdCgxKQorCisKKyMgRklYTUU6IE1h
a2UgdGhpcyBydW4gb24gYWxsIHBhdGNoIGF0dGFjaG1lbnRzLCBub3QganVzdCByPyBvbmVzLgor
Y2xhc3MgUmlldHZlbGRVcGxvYWRRdWV1ZShBYnN0cmFjdFJldmlld1F1ZXVlKToKKyAgICBuYW1l
ID0gInJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAg
ICAgICAgQWJzdHJhY3RSZXZpZXdRdWV1ZS5fX2luaXRfXyhzZWxmKQorCisgICAgZGVmIHNob3Vs
ZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5fdXBk
YXRlX3N0YXR1cygiVXBsb2FkaW5nIHBhdGNoIiwgcGF0Y2gpCisgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICBkZWYgcmV2aWV3X3BhdGNoKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5ydW5f
d2Via2l0X3BhdGNoKFsicG9zdC1hdHRhY2htZW50LXRvLXJpZXR2ZWxkIiwgIi0tZmFuY3ktcmV2
aWV3IiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1ub24taW50ZXJhY3RpdmUiLCAiLS1wYXJlbnQtY29t
bWFuZD1yaWV0dmVsZC11cGxvYWQtcXVldWUiLCBwYXRjaC5pZCgpXSkKKyAgICAgICAgcmV0dXJu
IFRydWUKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBoYW5kbGVfc2NyaXB0X2Vycm9yKGNs
cywgdG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcik6CisgICAgICAgIGNscy5fdXBkYXRlX3N0YXR1
c19mb3Jfc2NyaXB0X2Vycm9yKHRvb2wsIHN0YXRlLCBzY3JpcHRfZXJyb3IpCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0
ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVl
c191bml0dGVzdC5weQppbmRleCAwYmQ0MmZiYWZiZjVlMGQ5NzNmZWE3NWIxYzU3MzczYmI1ODc5
M2I5Li5jNTk5MTJiMWEzOWM4OGZjODM1ZjJiODUzNTExY2IyZjQ5ODkyYmNkIDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0
ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9x
dWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE4MCwzICsxODAsMTQgQEAgY2xhc3MgU3R5bGVRdWV1ZVRl
c3QoUXVldWVzVGVzdCk6CiAgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0ZWRfZXJyb3IiIDog
Ik1vY2sgZXJyb3IgbWVzc2FnZVxuIiwKICAgICAgICAgfQogICAgICAgICBzZWxmLmFzc2VydF9x
dWV1ZV9vdXRwdXRzKFN0eWxlUXVldWUoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVy
cikKKworCitjbGFzcyBSaWV0dmVsZFVwbG9hZFF1ZXVlVGVzdChRdWV1ZXNUZXN0KToKKyAgICBk
ZWYgdGVzdF9yaWV0dmVsZF91cGxvYWRfcXVldWUoc2VsZik6CisgICAgICAgIGV4cGVjdGVkX3N0
ZGVyciA9IHsKKyAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogIkNBVVRJT046IHJpZXR2
ZWxkLXVwbG9hZC1xdWV1ZSB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIlc1wi
XG5SdW5uaW5nIFdlYktpdCByaWV0dmVsZC11cGxvYWQtcXVldWUuXG4iICUgTW9ja1NDTS5mYWtl
X2NoZWNrb3V0X3Jvb3QsCisgICAgICAgICAgICAic2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0
ZW0iOiAiTU9DSzogdXBkYXRlX3N0YXR1czogcmlldHZlbGQtdXBsb2FkLXF1ZXVlIFVwbG9hZGlu
ZyBwYXRjaFxuIiwKKyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICJNT0NLOiB1cGRh
dGVfc3RhdHVzOiByaWV0dmVsZC11cGxvYWQtcXVldWUgUGFzc1xuIiwKKyAgICAgICAgICAgICJo
YW5kbGVfdW5leHBlY3RlZF9lcnJvciI6ICJNb2NrIGVycm9yIG1lc3NhZ2VcbiIsCisgICAgICAg
IH0KKyAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhSaWV0dmVsZFVwbG9hZFF1ZXVl
KCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVz
dC5weQppbmRleCBlZWMzNzUxY2U1M2NjYzJmODdiOWYxYWVkYmNkZThhMjY0MDljZDFhLi42NzFh
MDI0ZGQ5YWZmODM2MDE2YzA5Njk5ZDc3MDlkNGY4MTRiODY2IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5p
dHRlc3QucHkKQEAgLTU4LDIyICs1OCwyNSBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rlc3QoQ29t
bWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0
aW9uIgogICAgICAgICBvcHRpb25zLnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0
aW9ucy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWly
ZXMgYSByZWFsIFNDTSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBG
YWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmls
ZTovLy4uLgotT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MgotTU9DSyBhZGRfcGF0
Y2hfdG9fYnVnOiBidWdfaWQ9NDIsIGRlc2NyaXB0aW9uPU1PQ0sgZGVzY3JpcHRpb24sIG1hcmtf
Zm9yX3Jldmlldz1UcnVlLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xh
bmRpbmc9RmFsc2UKKyVzT2Jzb2xldGluZyAyIG9sZCBwYXRjaGVzIG9uIGJ1ZyA0MgorTU9DSyBh
ZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9NDIsIGRlc2NyaXB0aW9uPU1PQ0sgZGVzY3JpcHRpb24s
IG1hcmtfZm9yX3Jldmlldz1UcnVlLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtf
Zm9yX2xhbmRpbmc9RmFsc2UsIGluX3JpZXR2ZWxkPSVzCiAtLSBCZWdpbiBjb21tZW50IC0tCiBO
b25lCiAtLSBFbmQgY29tbWVudCAtLQogTU9DSzogdXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1w
bGUuY29tLzQyCiAiIiIKLSAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKFBvc3Qo
KSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJy
KQorCisgICAgICAgIG9wdGlvbnMuZmFuY3lfcmV2aWV3ID0gRmFsc2UKKyAgICAgICAgc2VsZi5h
c3NlcnRfZXhlY3V0ZV9vdXRwdXRzKFBvc3QoKSwgWzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBl
Y3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyICUgKCIiLCBvcHRpb25zLmZhbmN5X3Jldmlldykp
CisKKyAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBUcnVlCisgICAgICAgIHNlbGYuYXNz
ZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQb3N0KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciAlICgiTU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJp
ZXR2ZWxkXG4iLCBvcHRpb25zLmZhbmN5X3JldmlldykpCiAKICAgICBkZWYgdGVzdF9sYW5kX3Nh
ZmVseShzZWxmKToKLSAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk9ic29sZXRpbmcgMiBvbGQg
cGF0Y2hlcyBvbiBidWcgNDJcbk1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPTQyLCBkZXNj
cmlwdGlvbj1QYXRjaCBmb3IgbGFuZGluZywgbWFya19mb3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zv
cl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xhbmRpbmc9VHJ1ZVxuLS0gQmVnaW4gY29t
bWVudCAtLVxuTm9uZVxuLS0gRW5kIGNvbW1lbnQgLS1cbiIKKyAgICAgICAgZXhwZWN0ZWRfc3Rk
ZXJyID0gIk9ic29sZXRpbmcgMiBvbGQgcGF0Y2hlcyBvbiBidWcgNDJcbk1PQ0sgYWRkX3BhdGNo
X3RvX2J1ZzogYnVnX2lkPTQyLCBkZXNjcmlwdGlvbj1QYXRjaCBmb3IgbGFuZGluZywgbWFya19m
b3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9RmFsc2UsIG1hcmtfZm9yX2xh
bmRpbmc9VHJ1ZSwgaW5fcmlldHZlbGQ9RmFsc2Vcbi0tIEJlZ2luIGNvbW1lbnQgLS1cbk5vbmVc
bi0tIEVuZCBjb21tZW50IC0tXG4iCiAgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0
cyhMYW5kU2FmZWx5KCksIFs0Ml0sIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCiAK
ICAgICBkZWYgdGVzdF9wcmVwYXJlX2RpZmZfd2l0aF9hcmcoc2VsZik6CkBAIC04OCwxOSArOTEs
MjMgQEAgTU9DSzogdXNlci5vcGVuX3VybDogaHR0cDovL2V4YW1wbGUuY29tLzQyCiAgICAgICAg
IG9wdGlvbnMuZGVzY3JpcHRpb24gPSAiTU9DSyBkZXNjcmlwdGlvbiIKICAgICAgICAgb3B0aW9u
cy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMucmV2aWV3ID0gVHJ1ZQot
ICAgICAgICAjIFJpZXR2ZWxkIHVwbG9hZCBjb2RlIHJlcXVpcmVzIGEgcmVhbCBTQ00gY2hlY2tv
dXQuCiAgICAgICAgIG9wdGlvbnMuZmFuY3lfcmV2aWV3ID0gRmFsc2UKICAgICAgICAgb3B0aW9u
cy5jYyA9IE5vbmUKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIiIiUnVubmluZyBjaGVjay13
ZWJraXQtc3R5bGUKIE1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi4KLU9ic29sZXRpbmcg
MiBvbGQgcGF0Y2hlcyBvbiBidWcgNDIKLU1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPTQy
LCBkZXNjcmlwdGlvbj1NT0NLIGRlc2NyaXB0aW9uLCBtYXJrX2Zvcl9yZXZpZXc9VHJ1ZSwgbWFy
a19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlCislc09ic29s
ZXRpbmcgMiBvbGQgcGF0Y2hlcyBvbiBidWcgNDIKK01PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVn
X2lkPTQyLCBkZXNjcmlwdGlvbj1NT0NLIGRlc2NyaXB0aW9uLCBtYXJrX2Zvcl9yZXZpZXc9VHJ1
ZSwgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLCBp
bl9yaWV0dmVsZD0lcwogLS0gQmVnaW4gY29tbWVudCAtLQogTm9uZQogLS0gRW5kIGNvbW1lbnQg
LS0KIE1PQ0s6IHVzZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS80MgogIiIiCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQoKSwgWzQyXSwgb3B0aW9ucz1v
cHRpb25zLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQorCisgICAgICAgIG9wdGlv
bnMuZmFuY3lfcmV2aWV3ID0gRmFsc2UKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRw
dXRzKFVwbG9hZCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1leHBl
Y3RlZF9zdGRlcnIgJSAoIiIsIG9wdGlvbnMuZmFuY3lfcmV2aWV3KSkKKworICAgICAgICBvcHRp
b25zLmZhbmN5X3JldmlldyA9IFRydWUKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRw
dXRzKFVwbG9hZCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1leHBl
Y3RlZF9zdGRlcnIgJSAoIk1PQ0s6IFVwbG9hZGluZyBwYXRjaCB0byByaWV0dmVsZFxuIiwgb3B0
aW9ucy5mYW5jeV9yZXZpZXcpKQogCiAgICAgZGVmIHRlc3RfbWFya19idWdfZml4ZWQoc2VsZik6
CiAgICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2wucHkKaW5kZXggMDRkNWE5ODkzMTcyMGQwM2U5MDhmNTc1NzQ1MzY2
NDRiYzRkNGQ3MS4uYWIzZDNmODhkMDdiNWJiODM4YTk5YzI4NmNhMzQ3ZDY5Y2U2OTJlMiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtMjk4
LDkgKzI5OCwxMCBAQCBjbGFzcyBNb2NrQnVnemlsbGEoTW9jayk6CiAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29tbWVudF90ZXh0PU5vbmUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFy
a19mb3JfcmV2aWV3PUZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2Nv
bW1pdF9xdWV1ZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9sYW5k
aW5nPUZhbHNlKToKLSAgICAgICAgbG9nKCJNT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19pZD0l
cywgZGVzY3JpcHRpb249JXMsIG1hcmtfZm9yX3Jldmlldz0lcywgbWFya19mb3JfY29tbWl0X3F1
ZXVlPSVzLCBtYXJrX2Zvcl9sYW5kaW5nPSVzIiAlCi0gICAgICAgICAgICAoYnVnX2lkLCBkZXNj
cmlwdGlvbiwgbWFya19mb3JfcmV2aWV3LCBtYXJrX2Zvcl9jb21taXRfcXVldWUsIG1hcmtfZm9y
X2xhbmRpbmcpKQorICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgaW5fcmlldHZlbGQ9RmFsc2UpOgorICAgICAg
ICBsb2coIk1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVnX2lkPSVzLCBkZXNjcmlwdGlvbj0lcywg
bWFya19mb3JfcmV2aWV3PSVzLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9JXMsIG1hcmtfZm9yX2xh
bmRpbmc9JXMsIGluX3JpZXR2ZWxkPSVzIiAlCisgICAgICAgICAgICAoYnVnX2lkLCBkZXNjcmlw
dGlvbiwgbWFya19mb3JfcmV2aWV3LCBtYXJrX2Zvcl9jb21taXRfcXVldWUsIG1hcmtfZm9yX2xh
bmRpbmcsIGluX3JpZXR2ZWxkKSkKICAgICAgICAgbG9nKCItLSBCZWdpbiBjb21tZW50IC0tIikK
ICAgICAgICAgbG9nKGNvbW1lbnRfdGV4dCkKICAgICAgICAgbG9nKCItLSBFbmQgY29tbWVudCAt
LSIpCkBAIC01MDAsNiArNTAxLDE1IEBAIGNsYXNzIE1vY2tFeGVjdXRlKE1vY2spOgogICAgICAg
ICByZXR1cm4gIk1PQ0sgb3V0cHV0IG9mIGNoaWxkIHByb2Nlc3MiCiAKIAorY2xhc3MgTW9ja1Jp
ZXR2ZWxkKCk6CisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgZXhlY3V0aXZlLCBkcnlydW49RmFs
c2UpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgcG9zdChzZWxmLCBkaWZmLCBtZXNzYWdlPU5v
bmUsIGNvZGVyZXZpZXdfaXNzdWU9Tm9uZSwgY2M9Tm9uZSk6CisgICAgICAgIGxvZygiTU9DSzog
VXBsb2FkaW5nIHBhdGNoIHRvIHJpZXR2ZWxkIikKKworCiBjbGFzcyBNb2NrVG9vbCgpOgogCiAg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGxvZ19leGVjdXRpdmU9RmFsc2UpOgpAQCAtNTE1LDcgKzUy
NSw3IEBAIGNsYXNzIE1vY2tUb29sKCk6CiAgICAgICAgIHNlbGYuX2NoZWNrb3V0ID0gTW9ja0No
ZWNrb3V0KCkKICAgICAgICAgc2VsZi5zdGF0dXNfc2VydmVyID0gTW9ja1N0YXR1c1NlcnZlcigp
CiAgICAgICAgIHNlbGYuaXJjX3Bhc3N3b3JkID0gIk1PQ0sgaXJjIHBhc3N3b3JkIgotICAgICAg
ICBzZWxmLmNvZGVyZXZpZXcgPSBSaWV0dmVsZChzZWxmLmV4ZWN1dGl2ZSkKKyAgICAgICAgc2Vs
Zi5jb2RlcmV2aWV3ID0gTW9ja1JpZXR2ZWxkKHNlbGYuZXhlY3V0aXZlKQogCiAgICAgZGVmIHNj
bShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX3NjbQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CmluZGV4
IDgzOTc1MTkwMjg0NTdjMjBjYWRiMzVlOWY3NTU0Y2I5ZDcyMDFhY2MuLjk4MGI1NDU5MDlhYmFh
OWViYzQzZTAwM2E4MzhhYjA4MTIxM2M5MDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKQEAgLTQzLDE4
ICs0MywyNiBAQCBjbGFzcyBQb3N0Q29kZVJldmlldyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBp
ZiBub3Qgc2VsZi5fb3B0aW9ucy5mYW5jeV9yZXZpZXc6CiAgICAgICAgICAgICByZXR1cm4KIAot
ICAgICAgICBidWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIpCisgICAgICAgIHBhdGNoID0gc3Rh
dGUuZ2V0KCJwYXRjaCIpCisgICAgICAgIGlmIHBhdGNoOgorICAgICAgICAgICAgYnVnX2lkID0g
cGF0Y2guYnVnX2lkKCkKKyAgICAgICAgICAgIHRpdGxlID0gcGF0Y2gubmFtZSgpCisgICAgICAg
ICAgICBzZWxmLl90b29sLmJ1Z3Muc2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCwgJ2lu
LXJpZXR2ZWxkJywgJysnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVnX2lkID0gc3Rh
dGUuZ2V0KCJidWdfaWQiKQorICAgICAgICAgICAgdGl0bGUgPSBzdGF0ZS5nZXQoImJ1Z190aXRs
ZSIpCisKICAgICAgICAgaWYgbm90IGJ1Z19pZDoKICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVy
cm9yKG1lc3NhZ2U9IkNhbm5vdCB1cGxvYWQgYSBmYW5jeSByZXZpZXcgd2l0aG91dCBhIGJ1ZyBJ
RC4iKQogCiAgICAgICAgIG1lc3NhZ2UgPSBzZWxmLl9vcHRpb25zLmRlc2NyaXB0aW9uCiAgICAg
ICAgIGlmIG5vdCBtZXNzYWdlOgotICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGFuIGlzc3VlIG51
bWJlciwgdGhlbiB0aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJlbAorICAgICAgICAgICAgIyBJ
ZiB0aGUgaXNzdWUgYWxyZWFkeSBleGlzdHMsIHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUg
bGFiZWwKICAgICAgICAgICAgICMgb2YgdGhlIG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNv
bWVzIHRoZSB0aXRsZSBvZiB0aGUgd2hvbGUKICAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAg
ICAgICBpZiBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpOgorICAgICAgICAgICAgaWYgdGl0bGU6CiAg
ICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJz
dCAidXBsb2FkIiBjb21tYW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdGF0ZS5nZXQo
ImJ1Z190aXRsZSIpCisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHRpdGxlCiAgICAgICAgICAg
ICBlbGlmIGJ1Z19pZDoKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNl
IGZvciB0aGUgInBvc3QiIGNvbW1hbmQgYW5kCiAgICAgICAgICAgICAgICAgIyBzdWJzZXF1ZW50
IHJ1bnMgb2YgdGhlICJ1cGxvYWQiIGNvbW1hbmQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmYucHkgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmYucHkKaW5kZXggNzk3MzljZDA3YzRiYWIx
OWQ3MjBmNjMwZjRhYWUxNWIxNzIxOTMyMS4uMjQ5YWNhMTU2ZDc5NWY5OTZkMTFiYzNjYTNiZDYz
YTUwOTU2ZTJkMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3Bvc3RkaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9zdGVwcy9wb3N0ZGlmZi5weQpAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBQb3N0RGlmZihBYnN0
cmFjdFN0ZXApOgogICAgICAgICBkaWZmID0gc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiZGlm
ZiIpCiAgICAgICAgIGRlc2NyaXB0aW9uID0gc2VsZi5fb3B0aW9ucy5kZXNjcmlwdGlvbiBvciAi
UGF0Y2giCiAgICAgICAgIGNvbW1lbnRfdGV4dCA9IE5vbmUKLSAgICAgICAgc2VsZi5fdG9vbC5i
dWdzLmFkZF9wYXRjaF90b19idWcoc3RhdGVbImJ1Z19pZCJdLCBkaWZmLCBkZXNjcmlwdGlvbiwg
Y29tbWVudF90ZXh0PWNvbW1lbnRfdGV4dCwgbWFya19mb3JfcmV2aWV3PXNlbGYuX29wdGlvbnMu
cmV2aWV3LCBtYXJrX2Zvcl9jb21taXRfcXVldWU9c2VsZi5fb3B0aW9ucy5yZXF1ZXN0X2NvbW1p
dCkKKyAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9wYXRjaF90b19idWcoc3RhdGVbImJ1Z19p
ZCJdLCBkaWZmLCBkZXNjcmlwdGlvbiwgY29tbWVudF90ZXh0PWNvbW1lbnRfdGV4dCwgbWFya19m
b3JfcmV2aWV3PXNlbGYuX29wdGlvbnMucmV2aWV3LAorICAgICAgICAgICAgICAgIG1hcmtfZm9y
X2NvbW1pdF9xdWV1ZT1zZWxmLl9vcHRpb25zLnJlcXVlc3RfY29tbWl0LCBpbl9yaWV0dmVsZD1z
ZWxmLl9vcHRpb25zLmZhbmN5X3JldmlldykKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5vcGVu
X2J1ZzoKICAgICAgICAgICAgIHNlbGYuX3Rvb2wudXNlci5vcGVuX3VybChzZWxmLl90b29sLmJ1
Z3MuYnVnX3VybF9mb3JfYnVnX2lkKHN0YXRlWyJidWdfaWQiXSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55928</attachid>
            <date>2010-05-12 19:16:52 -0700</date>
            <delta_ts>2010-05-14 15:44:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100512191651.patch</filename>
            <type>text/plain</type>
            <size>21232</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4Yzk4OGM1MWY2ZjE1ODYyNjg4NWZlZTdiYTBhYTQ2ZjA5ZWUwMzA0Li4xNGFlNzIw
NWNhYzkwNzdiODZiYjJhYjZjN2M4YzQ3MjZmNTYzYjQ1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMTAtMDUtMTEgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBGYW5jeVJldmlld1F1
ZXVlIHRvIHVwbG9hZCByPyBwYXRjaGVzIHRvIHJpZXR2ZWxkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODkxOAorCisgICAgICAgIEFsc28gYWRkcyBz
dXBwb3J0IGZvciBzZXR0aW5nL2dldHRpbmcgdGhlIGluLXJpZXR2ZWxkIGZsYWcgb24gYW4gYXR0
YWNobWVudC4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
LnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5p
dHRlc3QucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9h
ZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZp
ZXcucHk6CisKIDIwMTAtMDUtMTAgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5CmluZGV4IDQzMTFhMDA3OThjYzgy
MTM2ZjJiNzUyN2FjZjI2NWFkYWYwODg1ZTUuLjA0NmI2ZTc1ZDc5NzhhYWM2YmE5YjI3OTIyOGRl
YzM1MWJiYWQzZDMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL25ldC9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYnVnemlsbGEucHkKQEAgLTQ1NCw2ICs0NTQsOCBAQCBjbGFzcyBCdWd6aWxsYShv
YmplY3QpOgogICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAg
ICAgICAgZWxlbWVudCwgJ3JldmlldycsIGF0dGFjaG1lbnQsICdyZXZpZXdlcl9lbWFpbCcpCiAg
ICAgICAgIHNlbGYuX3BhcnNlX2F0dGFjaG1lbnRfZmxhZygKKyAgICAgICAgICAgICAgICBlbGVt
ZW50LCAnaW4tcmlldHZlbGQnLCBhdHRhY2htZW50LCAncmlldHZlbGRfdXBsb2FkZXJfZW1haWwn
KQorICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAgICAgICAg
ZWxlbWVudCwgJ2NvbW1pdC1xdWV1ZScsIGF0dGFjaG1lbnQsICdjb21taXR0ZXJfZW1haWwnKQog
ICAgICAgICByZXR1cm4gYXR0YWNobWVudAogCkBAIC01NzEsNyArNTczLDkgQEAgY2xhc3MgQnVn
emlsbGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4
dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfcmV2aWV3PUZh
bHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVl
PUZhbHNlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1G
YWxzZSwgYnVnX2lkPU5vbmUpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19m
b3JfbGFuZGluZz1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluX3JpZXR2
ZWxkPUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVnX2lkPU5vbmUpOgog
ICAgICAgICBzZWxmLmJyb3dzZXJbJ2Rlc2NyaXB0aW9uJ10gPSBkZXNjcmlwdGlvbgogICAgICAg
ICBzZWxmLmJyb3dzZXJbJ2lzcGF0Y2gnXSA9ICgiMSIsKQogICAgICAgICBzZWxmLmJyb3dzZXJb
J2ZsYWdfdHlwZS0xJ10gPSAoJz8nLCkgaWYgbWFya19mb3JfcmV2aWV3IGVsc2UgKCdYJywpCkBA
IC01ODMsNiArNTg3LDEyIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0zJ10gPSAoJ1gnLCkKIAorICAg
ICAgICAjIEZJWE1FOiBGaXggdGhlIGtleSBoZXJlIG9uY2UgaW4tcmlldHZlbGQgaXMgYWRkZWQg
dG8gYnVncy53ZWJraXQub3JnLgorICAgICAgICBpZiBpbl9yaWV0dmVsZDoKKyAgICAgICAgICAg
IHNlbGYuYnJvd3NlclsnZmxhZ190eXBlLTQnXSA9ICgnKycsKQorICAgICAgICBlbHNlOgorICAg
ICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtNCddID0gKCdYJywpCisKICAgICAgICAg
aWYgYnVnX2lkOgogICAgICAgICAgICAgcGF0Y2hfbmFtZSA9ICJidWctJXMtJXMucGF0Y2giICUg
KGJ1Z19pZCwgdGltZXN0YW1wKCkpCiAgICAgICAgIGVsc2U6CkBAIC02MDAsNyArNjEwLDggQEAg
Y2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50
X3RleHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9yZXZpZXc9RmFs
c2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNl
LAotICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UpOgorICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5fcmlldHZlbGQ9RmFsc2UpOgogICAgICAgICBzZWxmLmF1dGhlbnRp
Y2F0ZSgpCiAKICAgICAgICAgbG9nKCdBZGRpbmcgcGF0Y2ggIiVzIiB0byAlc3Nob3dfYnVnLmNn
aT9pZD0lcycgJSAoZGVzY3JpcHRpb24sCkBAIC02MjQsNyArNjM1LDggQEAgY2xhc3MgQnVnemls
bGEob2JqZWN0KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3Jf
cmV2aWV3PW1hcmtfZm9yX3JldmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPW1hcmtfZm9yX2NvbW1pdF9xdWV1ZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1tYXJrX2Zvcl9sYW5k
aW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9YnVnX2lkKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9YnVnX2lkLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbl9yaWV0dmVsZD1pbl9yaWV0dmVsZCkKICAg
ICAgICAgaWYgY29tbWVudF90ZXh0OgogICAgICAgICAgICAgbG9nKGNvbW1lbnRfdGV4dCkKICAg
ICAgICAgICAgIHNlbGYuYnJvd3NlclsnY29tbWVudCddID0gY29tbWVudF90ZXh0CkBAIC03MDQs
OCArNzE2LDEwIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFRo
aXMgd2lsbCBicmVhayBpZiB3ZSBldmVyIHJlLW9yZGVyIGF0dGFjaG1lbnQgZmxhZ3MKICAgICAg
ICAgaWYgZmxhZ19uYW1lID09ICJyZXZpZXciOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJv
d3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2VsZWN0JywgbnI9MCkKLSAgICAgICAgaWYgZmxhZ19u
YW1lID09ICJjb21taXQtcXVldWUiOgorICAgICAgICBlbGlmIGZsYWdfbmFtZSA9PSAiY29tbWl0
LXF1ZXVlIjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuZmluZF9jb250cm9sKHR5
cGU9J3NlbGVjdCcsIG5yPTEpCisgICAgICAgIGVsaWYgZmxhZ19uYW1lID09ICJpbi1yaWV0dmVs
ZCI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmZpbmRfY29udHJvbCh0eXBlPSdz
ZWxlY3QnLCBucj0yKQogICAgICAgICByYWlzZSBFeGNlcHRpb24oIkRvbid0IGtub3cgaG93IHRv
IGZpbmQgZmxhZyBuYW1lZCBcIiVzXCIiICUgZmxhZ19uYW1lKQogCiAgICAgZGVmIGNsZWFyX2F0
dGFjaG1lbnRfZmxhZ3Moc2VsZiwKQEAgLTczMiw4ICs3NDYsOCBAQCBjbGFzcyBCdWd6aWxsYShv
YmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRfaWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZsYWdfdmFsdWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29tbWVudF90ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9u
YWxfY29tbWVudF90ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50
X3RleHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2Nv
bW1lbnRfdGV4dD1Ob25lKToKICAgICAgICAgIyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byB0ZXN0
IHRoaXMgZnVuY3Rpb24gb24gYSBsaXZlIGJ1Z3ppbGxhCiAgICAgICAgICMgaW5zdGFuY2UuCiAK
QEAgLTc0OCw3ICs3NjIsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKIAogICAgICAgICBz
ZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChhdHRhY2htZW50X2lk
LCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zvcm0obnI9MSkKLSAgICAg
ICAgc2VsZi5icm93c2VyLnNldF92YWx1ZShjb21tZW50X3RleHQsIG5hbWU9J2NvbW1lbnQnLCBu
cj0wKQorCisgICAgICAgIGlmIGNvbW1lbnRfdGV4dDoKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nl
ci5zZXRfdmFsdWUoY29tbWVudF90ZXh0LCBuYW1lPSdjb21tZW50JywgbnI9MCkKKwogICAgICAg
ICBzZWxmLl9maW5kX3NlbGVjdF9lbGVtZW50X2Zvcl9mbGFnKGZsYWdfbmFtZSkudmFsdWUgPSAo
ZmxhZ192YWx1ZSwpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJtaXQoKQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRl
c3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFf
dW5pdHRlc3QucHkKaW5kZXggNGM0NGNkZjM1YjU1MjczYmExMWYyYmU4Y2RkZGI0YWIwOTgxOTk0
Ny4uMzUyMmQ4MzkwYzU2OGMxN2NmYmU1OWEzYzAzMGQyMDAyNzM4NWUwYSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0
LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxs
YV91bml0dGVzdC5weQpAQCAtOTQsNiArOTQsMTEgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBzdGF0dXM9IisiCiAgICAgICAgICAgICAg
ICAgc2V0dGVyPSJ0d29AdGVzdC5jb20iCiAgICAgICAgICAgIC8+CisgICAgICAgICAgPGZsYWcg
bmFtZT0iaW4tcmlldHZlbGQiCisgICAgICAgICAgICAgICAgaWQ9IjE3OTMzIgorICAgICAgICAg
ICAgICAgIHN0YXR1cz0iKyIKKyAgICAgICAgICAgICAgICBzZXR0ZXI9InRocmVlQHRlc3QuY29t
IgorICAgICAgICAgICAvPgogICAgICAgICA8L2F0dGFjaG1lbnQ+CiAnJycKICAgICBfZXhwZWN0
ZWRfZXhhbXBsZV9hdHRhY2htZW50X3BhcnNpbmcgPSB7CkBAIC0xMDgsNiArMTEzLDggQEAgY2xh
c3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgJ3Jldmlld2VyX2Vt
YWlsJyA6ICdvbmVAdGVzdC5jb20nLAogICAgICAgICAnY29tbWl0LXF1ZXVlJyA6ICcrJywKICAg
ICAgICAgJ2NvbW1pdHRlcl9lbWFpbCcgOiAndHdvQHRlc3QuY29tJywKKyAgICAgICAgJ2luLXJp
ZXR2ZWxkJzogJysnLAorICAgICAgICAncmlldHZlbGRfdXBsb2FkZXJfZW1haWwnOiAndGhyZWVA
dGVzdC5jb20nLAogICAgICAgICAnYXR0YWNoZXJfZW1haWwnIDogJ2NocmlzdGlhbi5wbGVzbmVy
LmhhbnNlbkBnbWFpbC5jb20nLAogICAgIH0KIApAQCAtMTg4LDEyICsxOTUsMTIgQEAgcmVtb3Zl
ZC1iZWNhdXNlLWl0LXdhcy1yZWFsbHktbG9uZwogWkVacGJtbHphRXh2WVdSWGFYUm9VbVZoYzI5
dU9uSmxZWE52YmwwN0NpdDlDaXNLSUVCbGJtUUtJQW9nSTJWdVpHbG1DZz09CiA8L2RhdGE+ICAg
ICAgICAKICAKLSAgICAgICAgICAgICAgPGZsYWcgbmFtZT0icmV2aWV3IgotICAgICAgICAgICAg
ICAgICAgICBpZD0iMjc2MDIiCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1cz0iPyIKLSAgICAg
ICAgICAgICAgICAgICAgc2V0dGVyPSJtanNAYXBwbGUuY29tIgotICAgICAgICAgICAgICAgLz4g
Ci0gICAgICAgICAgPC9hdHRhY2htZW50PiAKKyAgICAgICAgICAgIDxmbGFnIG5hbWU9InJldmll
dyIKKyAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCisgICAgICAgICAgICAgICAgc3RhdHVzPSI/
IgorICAgICAgICAgICAgICAgIHNldHRlcj0ibWpzQGFwcGxlLmNvbSIKKyAgICAgICAgICAgIC8+
CisgICAgICAgIDwvYXR0YWNobWVudD4KICAgICA8L2J1Zz4KIDwvYnVnemlsbGE+CiAiIiIKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3du
bG9hZC5weQppbmRleCBhMjgzZGE5ZGMyZWQ4ZTEwZmMwZTBjMjhkNDI2ZWM2Nzg4ZThmODRlLi5k
MGMzMGE5MTM4NjNjOGIwOThmMzQ1Y2Y1ZDFhYjVhMzkzNzFkM2U4IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBA
IC0xODIsNiArMTgyLDE5IEBAIGNsYXNzIEJ1aWxkQXR0YWNobWVudChBYnN0cmFjdFBhdGNoU2Vx
dWVuY2luZ0NvbW1hbmQsIFByb2Nlc3NBdHRhY2htZW50c01peGluKToKICAgICBdCiAKIAorIyBG
SVhNRTogVGhpcyBjdXJyZW50bHkgcmVxdWlyZXMgLS1mYW5jeS1yZXZpZXcuIEhhdmUgdGhlIGNv
ZGUgc2V0IGl0IHNvIHRoZSBjYWxsZXIgZG9lc24ndCBuZWVkIHRvLgorY2xhc3MgUG9zdEF0dGFj
aG1lbnRUb1JpZXR2ZWxkKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJvY2Vzc0F0
dGFjaG1lbnRzTWl4aW4pOgorICAgIG5hbWUgPSAicG9zdC1hdHRhY2htZW50LXRvLXJpZXR2ZWxk
IgorICAgIGhlbHBfdGV4dCA9ICJVcGxvYWRzIGEgYnVnemlsbGEgYXR0YWNobWVudCB0byByaWV0
dmVsZCIKKyAgICBhcmd1bWVudHNfbmFtZXMgPSAiQVRUQUNITUVOVElEIgorICAgIG1haW5fc3Rl
cHMgPSBbCisgICAgICAgIHN0ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwKKyAgICAgICAgc3Rl
cHMuVXBkYXRlLAorICAgICAgICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAgICBzdGVwcy5Qb3N0
Q29kZVJldmlldywKKyAgICBdCisKKwogY2xhc3MgQWJzdHJhY3RQYXRjaEFwcGx5aW5nQ29tbWFu
ZChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQpOgogICAgIHByZXBhcmVfc3RlcHMgPSBb
CiAgICAgICAgIHN0ZXBzLkVuc3VyZUxvY2FsQ29tbWl0SWZOZWVkZWQsCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRl
c3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxv
YWRfdW5pdHRlc3QucHkKaW5kZXggNGRkOWQ3ZjRjMTk3ZGM0OTc0MGMxMzM5MDBmM2FkMzIyZTky
NzA3Ny4uZjk5YjQ1NTMxN2Y2MGFhMTM2YWYxZGUwMTEzMzBhM2U5MTk5ODIwNiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3Vu
aXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTAyLDYgKzEwMiwxMCBAQCBjbGFzcyBEb3dubG9h
ZENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAi
UHJvY2Vzc2luZyAxIHBhdGNoIGZyb20gMSBidWcuXG5VcGRhdGluZyB3b3JraW5nIGRpcmVjdG9y
eVxuUHJvY2Vzc2luZyBwYXRjaCAxOTcgZnJvbSBidWcgNDIuXG5CdWlsZGluZyBXZWJLaXRcbiIK
ICAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKEJ1aWxkQXR0YWNobWVudCgpLCBb
MTk3XSwgb3B0aW9ucz1zZWxmLl9kZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4
cGVjdGVkX3N0ZGVycikKIAorICAgIGRlZiB0ZXN0X3Bvc3RfYXR0YWNobWVudF90b19yaWV0dmVs
ZChzZWxmKToKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIlByb2Nlc3NpbmcgMSBwYXRjaCBm
cm9tIDEgYnVnLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblByb2Nlc3NpbmcgcGF0Y2gg
MTk3IGZyb20gYnVnIDQyLlxuTU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJpZXR2ZWxkXG4iCisg
ICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQb3N0QXR0YWNobWVudFRvUmlldHZl
bGQoKSwgWzE5N10sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25zKCksIGV4cGVjdGVkX3N0
ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKICAgICBkZWYgdGVzdF9sYW5kX2F0dGFjaG1lbnQoc2Vs
Zik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgZXhwZWN0ZWQgcmVzdWx0IGlzIGltcGVyZmVjdCwg
bm90aWNlIGhvdyBpdCdzIHNlZWluZyB0aGUgc2FtZSBwYXRjaCBhcyBzdGlsbCB0aGVyZSBhZnRl
ciBpdCB0aG91Z2h0IGl0IHdvdWxkIGhhdmUgY2xlYXJlZCB0aGUgZmxhZ3MuCiAgICAgICAgIGV4
cGVjdGVkX3N0ZGVyciA9ICIiIlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLgpAQCAtMTUx
LDcgKzE1NSw3IEBAIGJ1Z190aXRsZTogUkVHUkVTU0lPTihyODUyKTogUmVhc29uCiBidWdfZGVz
Y3JpcHRpb246IGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzg1MiBicm9rZSB0aGUg
YnVpbGQ6CiBSZWFzb24KIFJ1bm5pbmcgcHJlcGFyZS1DaGFuZ2VMb2cKLU1PQ0sgYWRkX3BhdGNo
X3RvX2J1ZzogYnVnX2lkPU5vbmUsIGRlc2NyaXB0aW9uPVJPTExPVVQgb2Ygcjg1MiwgbWFya19m
b3JfcmV2aWV3PUZhbHNlLCBtYXJrX2Zvcl9jb21taXRfcXVldWU9VHJ1ZSwgbWFya19mb3JfbGFu
ZGluZz1GYWxzZQorTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9Tm9uZSwgZGVzY3JpcHRp
b249Uk9MTE9VVCBvZiByODUyLCBtYXJrX2Zvcl9yZXZpZXc9RmFsc2UsIG1hcmtfZm9yX2NvbW1p
dF9xdWV1ZT1UcnVlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLCBpbl9yaWV0dmVsZD1GYWxzZQog
LS0gQmVnaW4gY29tbWVudCAtLQogQW55IGNvbW1pdHRlciBjYW4gbGFuZCB0aGlzIHBhdGNoIGF1
dG9tYXRpY2FsbHkgYnkgbWFya2luZyBpdCBjb21taXQtcXVldWUrLiAgVGhlIGNvbW1pdC1xdWV1
ZSB3aWxsIGJ1aWxkIGFuZCB0ZXN0IHRoZSBwYXRjaCBiZWZvcmUgbGFuZGluZyB0byBlbnN1cmUg
dGhhdCB0aGUgcm9sbG91dCB3aWxsIGJlIHN1Y2Nlc3NmdWwuICBUaGlzIHByb2Nlc3MgdGFrZXMg
YXBwcm94aW1hdGVseSAxNSBtaW51dGVzLgogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCAzNDU5OTgxNzE1NzU2Njc0
YjliMDhjZThhNjA4NTc3NTliMGJmYjdjLi4wYmM3NGVkMDZhMDFiYmZkNTNhODMxYWE3M2QxMGZm
MmI2MzNkMmY3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWV1ZXMucHkKQEAgLTM3MiwzICszNzIsMjQgQEAgY2xhc3MgU3R5bGVRdWV1
ZShBYnN0cmFjdFJldmlld1F1ZXVlKToKICAgICAgICAgbWVzc2FnZSA9ICJBdHRhY2htZW50ICVz
IGRpZCBub3QgcGFzcyAlczpcblxuJXNcblxuSWYgYW55IG9mIHRoZXNlIGVycm9ycyBhcmUgZmFs
c2UgcG9zaXRpdmVzLCBwbGVhc2UgZmlsZSBhIGJ1ZyBhZ2FpbnN0IGNoZWNrLXdlYmtpdC1zdHls
ZS4iICUgKHN0YXRlWyJwYXRjaCJdLmlkKCksIGNscy5uYW1lLCBzY3JpcHRfZXJyb3IubWVzc2Fn
ZV93aXRoX291dHB1dChvdXRwdXRfbGltaXQ9MyoxMDI0KSkKICAgICAgICAgdG9vbC5idWdzLnBv
c3RfY29tbWVudF90b19idWcoc3RhdGVbInBhdGNoIl0uYnVnX2lkKCksIG1lc3NhZ2UsIGNjPWNs
cy53YXRjaGVycykKICAgICAgICAgZXhpdCgxKQorCisKKyMgRklYTUU6IE1ha2UgdGhpcyBydW4g
b24gYWxsIHBhdGNoIGF0dGFjaG1lbnRzLCBub3QganVzdCByPyBvbmVzLgorY2xhc3MgUmlldHZl
bGRVcGxvYWRRdWV1ZShBYnN0cmFjdFJldmlld1F1ZXVlKToKKyAgICBuYW1lID0gInJpZXR2ZWxk
LXVwbG9hZC1xdWV1ZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQWJzdHJh
Y3RSZXZpZXdRdWV1ZS5fX2luaXRfXyhzZWxmKQorCisgICAgZGVmIHNob3VsZF9wcm9jZWVkX3dp
dGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygi
VXBsb2FkaW5nIHBhdGNoIiwgcGF0Y2gpCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYg
cmV2aWV3X3BhdGNoKHNlbGYsIHBhdGNoKToKKyAgICAgICAgIyBGSVhNRTogQ2hhbmdlIHBvc3Qt
YXR0YWNobWVudC10by1yaWV0dmVsZCB0byBhc3N1bWUgLS1mYW5jeS1yZXZpZXcgaW5zdGVhZCBv
ZiBuZWVkaW5nIHRvIHBhc3MgaXQgaW4uCisgICAgICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChb
InBvc3QtYXR0YWNobWVudC10by1yaWV0dmVsZCIsICItLWZhbmN5LXJldmlldyIsICItLWZvcmNl
LWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tcGFyZW50LWNvbW1hbmQ9cmlldHZlbGQt
dXBsb2FkLXF1ZXVlIiwgcGF0Y2guaWQoKV0pCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBA
Y2xhc3NtZXRob2QKKyAgICBkZWYgaGFuZGxlX3NjcmlwdF9lcnJvcihjbHMsIHRvb2wsIHN0YXRl
LCBzY3JpcHRfZXJyb3IpOgorICAgICAgICBjbHMuX3VwZGF0ZV9zdGF0dXNfZm9yX3NjcmlwdF9l
cnJvcih0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkK
aW5kZXggMGJkNDJmYmFmYmY1ZTBkOTczZmVhNzViMWM1NzM3M2JiNTg3OTNiOS4uYzU5OTEyYjFh
MzljODhmYzgzNWYyYjg1MzUxMWNiMmY0OTg5MmJjZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0
LnB5CkBAIC0xODAsMyArMTgwLDE0IEBAIGNsYXNzIFN0eWxlUXVldWVUZXN0KFF1ZXVlc1Rlc3Qp
OgogICAgICAgICAgICAgImhhbmRsZV91bmV4cGVjdGVkX2Vycm9yIiA6ICJNb2NrIGVycm9yIG1l
c3NhZ2VcbiIsCiAgICAgICAgIH0KICAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhT
dHlsZVF1ZXVlKCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKKworY2xhc3Mg
UmlldHZlbGRVcGxvYWRRdWV1ZVRlc3QoUXVldWVzVGVzdCk6CisgICAgZGVmIHRlc3RfcmlldHZl
bGRfdXBsb2FkX3F1ZXVlKHNlbGYpOgorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSB7CisgICAg
ICAgICAgICAiYmVnaW5fd29ya19xdWV1ZSI6ICJDQVVUSU9OOiByaWV0dmVsZC11cGxvYWQtcXVl
dWUgd2lsbCBkaXNjYXJkIGFsbCBsb2NhbCBjaGFuZ2VzIGluIFwiJXNcIlxuUnVubmluZyBXZWJL
aXQgcmlldHZlbGQtdXBsb2FkLXF1ZXVlLlxuIiAlIE1vY2tTQ00uZmFrZV9jaGVja291dF9yb290
LAorICAgICAgICAgICAgInNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtIjogIk1PQ0s6IHVw
ZGF0ZV9zdGF0dXM6IHJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSBVcGxvYWRpbmcgcGF0Y2hcbiIsCisg
ICAgICAgICAgICAicHJvY2Vzc193b3JrX2l0ZW0iOiAiTU9DSzogdXBkYXRlX3N0YXR1czogcmll
dHZlbGQtdXBsb2FkLXF1ZXVlIFBhc3NcbiIsCisgICAgICAgICAgICAiaGFuZGxlX3VuZXhwZWN0
ZWRfZXJyb3IiOiAiTW9jayBlcnJvciBtZXNzYWdlXG4iLAorICAgICAgICB9CisgICAgICAgIHNl
bGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoUmlldHZlbGRVcGxvYWRRdWV1ZSgpLCBleHBlY3RlZF9z
dGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKaW5kZXggZWVj
Mzc1MWNlNTNjY2MyZjg3YjlmMWFlZGJjZGU4YTI2NDA5Y2QxYS4uNjcxYTAyNGRkOWFmZjgzNjAx
NmMwOTY5OWQ3NzA5ZDRmODE0Yjg2NiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5CkBAIC01
OCwyMiArNTgsMjUgQEAgY2xhc3MgVXBsb2FkQ29tbWFuZHNUZXN0KENvbW1hbmRzVGVzdCk6CiAg
ICAgICAgIG9wdGlvbnMuZGVzY3JpcHRpb24gPSAiTU9DSyBkZXNjcmlwdGlvbiIKICAgICAgICAg
b3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMucmV2aWV3ID0g
VHJ1ZQotICAgICAgICAjIFJpZXR2ZWxkIHVwbG9hZCBjb2RlIHJlcXVpcmVzIGEgcmVhbCBTQ00g
Y2hlY2tvdXQuCi0gICAgICAgIG9wdGlvbnMuZmFuY3lfcmV2aWV3ID0gRmFsc2UKICAgICAgICAg
b3B0aW9ucy5jYyA9IE5vbmUKICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIiIiUnVubmluZyBj
aGVjay13ZWJraXQtc3R5bGUKIE1PQ0s6IHVzZXIub3Blbl91cmw6IGZpbGU6Ly8uLi4KLU9ic29s
ZXRpbmcgMiBvbGQgcGF0Y2hlcyBvbiBidWcgNDIKLU1PQ0sgYWRkX3BhdGNoX3RvX2J1ZzogYnVn
X2lkPTQyLCBkZXNjcmlwdGlvbj1NT0NLIGRlc2NyaXB0aW9uLCBtYXJrX2Zvcl9yZXZpZXc9VHJ1
ZSwgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlCisl
c09ic29sZXRpbmcgMiBvbGQgcGF0Y2hlcyBvbiBidWcgNDIKK01PQ0sgYWRkX3BhdGNoX3RvX2J1
ZzogYnVnX2lkPTQyLCBkZXNjcmlwdGlvbj1NT0NLIGRlc2NyaXB0aW9uLCBtYXJrX2Zvcl9yZXZp
ZXc9VHJ1ZSwgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPUZh
bHNlLCBpbl9yaWV0dmVsZD0lcwogLS0gQmVnaW4gY29tbWVudCAtLQogTm9uZQogLS0gRW5kIGNv
bW1lbnQgLS0KIE1PQ0s6IHVzZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS80MgogIiIi
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQb3N0KCksIFs0Ml0sIG9wdGlv
bnM9b3B0aW9ucywgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworICAgICAgICBv
cHRpb25zLmZhbmN5X3JldmlldyA9IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVf
b3V0cHV0cyhQb3N0KCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0ZWRfc3RkZXJyPWV4
cGVjdGVkX3N0ZGVyciAlICgiIiwgb3B0aW9ucy5mYW5jeV9yZXZpZXcpKQorCisgICAgICAgIG9w
dGlvbnMuZmFuY3lfcmV2aWV3ID0gVHJ1ZQorICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291
dHB1dHMoUG9zdCgpLCBbNDJdLCBvcHRpb25zPW9wdGlvbnMsIGV4cGVjdGVkX3N0ZGVycj1leHBl
Y3RlZF9zdGRlcnIgJSAoIk1PQ0s6IFVwbG9hZGluZyBwYXRjaCB0byByaWV0dmVsZFxuIiwgb3B0
aW9ucy5mYW5jeV9yZXZpZXcpKQogCiAgICAgZGVmIHRlc3RfbGFuZF9zYWZlbHkoc2VsZik6Ci0g
ICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJPYnNvbGV0aW5nIDIgb2xkIHBhdGNoZXMgb24gYnVn
IDQyXG5NT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19pZD00MiwgZGVzY3JpcHRpb249UGF0Y2gg
Zm9yIGxhbmRpbmcsIG1hcmtfZm9yX3Jldmlldz1GYWxzZSwgbWFya19mb3JfY29tbWl0X3F1ZXVl
PUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPVRydWVcbi0tIEJlZ2luIGNvbW1lbnQgLS1cbk5vbmVc
bi0tIEVuZCBjb21tZW50IC0tXG4iCisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJPYnNvbGV0
aW5nIDIgb2xkIHBhdGNoZXMgb24gYnVnIDQyXG5NT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19p
ZD00MiwgZGVzY3JpcHRpb249UGF0Y2ggZm9yIGxhbmRpbmcsIG1hcmtfZm9yX3Jldmlldz1GYWxz
ZSwgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLCBtYXJrX2Zvcl9sYW5kaW5nPVRydWUsIGlu
X3JpZXR2ZWxkPUZhbHNlXG4tLSBCZWdpbiBjb21tZW50IC0tXG5Ob25lXG4tLSBFbmQgY29tbWVu
dCAtLVxuIgogICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoTGFuZFNhZmVseSgp
LCBbNDJdLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCiAgICAgZGVmIHRlc3Rf
cHJlcGFyZV9kaWZmX3dpdGhfYXJnKHNlbGYpOgpAQCAtODgsMTkgKzkxLDIzIEBAIE1PQ0s6IHVz
ZXIub3Blbl91cmw6IGh0dHA6Ly9leGFtcGxlLmNvbS80MgogICAgICAgICBvcHRpb25zLmRlc2Ny
aXB0aW9uID0gIk1PQ0sgZGVzY3JpcHRpb24iCiAgICAgICAgIG9wdGlvbnMucmVxdWVzdF9jb21t
aXQgPSBGYWxzZQogICAgICAgICBvcHRpb25zLnJldmlldyA9IFRydWUKLSAgICAgICAgIyBSaWV0
dmVsZCB1cGxvYWQgY29kZSByZXF1aXJlcyBhIHJlYWwgU0NNIGNoZWNrb3V0LgogICAgICAgICBv
cHRpb25zLmZhbmN5X3JldmlldyA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMuY2MgPSBOb25lCiAg
ICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIlJ1bm5pbmcgY2hlY2std2Via2l0LXN0eWxlCiBN
T0NLOiB1c2VyLm9wZW5fdXJsOiBmaWxlOi8vLi4uCi1PYnNvbGV0aW5nIDIgb2xkIHBhdGNoZXMg
b24gYnVnIDQyCi1NT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19pZD00MiwgZGVzY3JpcHRpb249
TU9DSyBkZXNjcmlwdGlvbiwgbWFya19mb3JfcmV2aWV3PVRydWUsIG1hcmtfZm9yX2NvbW1pdF9x
dWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1GYWxzZQorJXNPYnNvbGV0aW5nIDIgb2xkIHBh
dGNoZXMgb24gYnVnIDQyCitNT0NLIGFkZF9wYXRjaF90b19idWc6IGJ1Z19pZD00MiwgZGVzY3Jp
cHRpb249TU9DSyBkZXNjcmlwdGlvbiwgbWFya19mb3JfcmV2aWV3PVRydWUsIG1hcmtfZm9yX2Nv
bW1pdF9xdWV1ZT1GYWxzZSwgbWFya19mb3JfbGFuZGluZz1GYWxzZSwgaW5fcmlldHZlbGQ9JXMK
IC0tIEJlZ2luIGNvbW1lbnQgLS0KIE5vbmUKIC0tIEVuZCBjb21tZW50IC0tCiBNT0NLOiB1c2Vy
Lm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIKICIiIgotICAgICAgICBzZWxmLmFzc2Vy
dF9leGVjdXRlX291dHB1dHMoVXBsb2FkKCksIFs0Ml0sIG9wdGlvbnM9b3B0aW9ucywgZXhwZWN0
ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworICAgICAgICBvcHRpb25zLmZhbmN5X3Jldmll
dyA9IEZhbHNlCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQoKSwg
WzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyICUg
KCIiLCBvcHRpb25zLmZhbmN5X3JldmlldykpCisKKyAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZp
ZXcgPSBUcnVlCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhVcGxvYWQoKSwg
WzQyXSwgb3B0aW9ucz1vcHRpb25zLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyICUg
KCJNT0NLOiBVcGxvYWRpbmcgcGF0Y2ggdG8gcmlldHZlbGRcbiIsIG9wdGlvbnMuZmFuY3lfcmV2
aWV3KSkKIAogICAgIGRlZiB0ZXN0X21hcmtfYnVnX2ZpeGVkKHNlbGYpOgogICAgICAgICB0b29s
ID0gTW9ja1Rvb2woKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0
b29sLnB5CmluZGV4IDA0ZDVhOTg5MzE3MjBkMDNlOTA4ZjU3NTc0NTM2NjQ0YmM0ZDRkNzEuLmFi
M2QzZjg4ZDA3YjViYjgzOGE5OWMyODZjYTM0N2Q2OWNlNjkyZTIgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTI5OCw5ICsyOTgsMTAgQEAg
Y2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgogICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1l
bnRfdGV4dD1Ob25lLAogICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX3Jldmlldz1G
YWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9jb21taXRfcXVldWU9RmFs
c2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1GYWxzZSk6Ci0g
ICAgICAgIGxvZygiTU9DSyBhZGRfcGF0Y2hfdG9fYnVnOiBidWdfaWQ9JXMsIGRlc2NyaXB0aW9u
PSVzLCBtYXJrX2Zvcl9yZXZpZXc9JXMsIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT0lcywgbWFya19m
b3JfbGFuZGluZz0lcyIgJQotICAgICAgICAgICAgKGJ1Z19pZCwgZGVzY3JpcHRpb24sIG1hcmtf
Zm9yX3JldmlldywgbWFya19mb3JfY29tbWl0X3F1ZXVlLCBtYXJrX2Zvcl9sYW5kaW5nKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXJrX2Zvcl9sYW5kaW5nPUZhbHNlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgIGluX3JpZXR2ZWxkPUZhbHNlKToKKyAgICAgICAgbG9nKCJNT0NLIGFk
ZF9wYXRjaF90b19idWc6IGJ1Z19pZD0lcywgZGVzY3JpcHRpb249JXMsIG1hcmtfZm9yX3Jldmll
dz0lcywgbWFya19mb3JfY29tbWl0X3F1ZXVlPSVzLCBtYXJrX2Zvcl9sYW5kaW5nPSVzLCBpbl9y
aWV0dmVsZD0lcyIgJQorICAgICAgICAgICAgKGJ1Z19pZCwgZGVzY3JpcHRpb24sIG1hcmtfZm9y
X3JldmlldywgbWFya19mb3JfY29tbWl0X3F1ZXVlLCBtYXJrX2Zvcl9sYW5kaW5nLCBpbl9yaWV0
dmVsZCkpCiAgICAgICAgIGxvZygiLS0gQmVnaW4gY29tbWVudCAtLSIpCiAgICAgICAgIGxvZyhj
b21tZW50X3RleHQpCiAgICAgICAgIGxvZygiLS0gRW5kIGNvbW1lbnQgLS0iKQpAQCAtNTAwLDYg
KzUwMSwxNSBAQCBjbGFzcyBNb2NrRXhlY3V0ZShNb2NrKToKICAgICAgICAgcmV0dXJuICJNT0NL
IG91dHB1dCBvZiBjaGlsZCBwcm9jZXNzIgogCiAKK2NsYXNzIE1vY2tSaWV0dmVsZCgpOgorCisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGV4ZWN1dGl2ZSwgZHJ5cnVuPUZhbHNlKToKKyAgICAgICAg
cGFzcworCisgICAgZGVmIHBvc3Qoc2VsZiwgZGlmZiwgbWVzc2FnZT1Ob25lLCBjb2RlcmV2aWV3
X2lzc3VlPU5vbmUsIGNjPU5vbmUpOgorICAgICAgICBsb2coIk1PQ0s6IFVwbG9hZGluZyBwYXRj
aCB0byByaWV0dmVsZCIpCisKKwogY2xhc3MgTW9ja1Rvb2woKToKIAogICAgIGRlZiBfX2luaXRf
XyhzZWxmLCBsb2dfZXhlY3V0aXZlPUZhbHNlKToKQEAgLTUxNSw3ICs1MjUsNyBAQCBjbGFzcyBN
b2NrVG9vbCgpOgogICAgICAgICBzZWxmLl9jaGVja291dCA9IE1vY2tDaGVja291dCgpCiAgICAg
ICAgIHNlbGYuc3RhdHVzX3NlcnZlciA9IE1vY2tTdGF0dXNTZXJ2ZXIoKQogICAgICAgICBzZWxm
LmlyY19wYXNzd29yZCA9ICJNT0NLIGlyYyBwYXNzd29yZCIKLSAgICAgICAgc2VsZi5jb2RlcmV2
aWV3ID0gUmlldHZlbGQoc2VsZi5leGVjdXRpdmUpCisgICAgICAgIHNlbGYuY29kZXJldmlldyA9
IE1vY2tSaWV0dmVsZChzZWxmLmV4ZWN1dGl2ZSkKIAogICAgIGRlZiBzY20oc2VsZik6CiAgICAg
ICAgIHJldHVybiBzZWxmLl9zY20KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQppbmRleCA4Mzk3NTE5MDI4NDU3
YzIwY2FkYjM1ZTlmNzU1NGNiOWQ3MjAxYWNjLi4wNmMzZGU0ZjI2ZTdlMDYwNzBjZTUzYmRjMGRh
MTUxNGMxNzFhYWI0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CkBAIC00MywxOCArNDMsMjYgQEAgY2xh
c3MgUG9zdENvZGVSZXZpZXcoQWJzdHJhY3RTdGVwKToKICAgICAgICAgaWYgbm90IHNlbGYuX29w
dGlvbnMuZmFuY3lfcmV2aWV3OgogICAgICAgICAgICAgcmV0dXJuCiAKLSAgICAgICAgYnVnX2lk
ID0gc3RhdGUuZ2V0KCJidWdfaWQiKQorICAgICAgICBwYXRjaCA9IHN0YXRlLmdldCgicGF0Y2gi
KQorICAgICAgICBpZiBwYXRjaDoKKyAgICAgICAgICAgIGJ1Z19pZCA9IHBhdGNoLmJ1Z19pZCgp
CisgICAgICAgICAgICB0aXRsZSA9IHBhdGNoLm5hbWUoKQorICAgICAgICAgICAgc2VsZi5fdG9v
bC5idWdzLnNldF9mbGFnX29uX2F0dGFjaG1lbnQocGF0Y2guaWQoKSwgJ2luLXJpZXR2ZWxkJywg
JysnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYnVnX2lkID0gc3RhdGUuZ2V0KCJidWdf
aWQiKQorICAgICAgICAgICAgdGl0bGUgPSBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpCisKICAgICAg
ICAgaWYgbm90IGJ1Z19pZDoKICAgICAgICAgICAgIHJhaXNlIFNjcmlwdEVycm9yKG1lc3NhZ2U9
IkNhbm5vdCB1cGxvYWQgYSBmYW5jeSByZXZpZXcgd2l0aG91dCBhIGJ1ZyBJRC4iKQogCiAgICAg
ICAgIG1lc3NhZ2UgPSBzZWxmLl9vcHRpb25zLmRlc2NyaXB0aW9uCiAgICAgICAgIGlmIG5vdCBt
ZXNzYWdlOgotICAgICAgICAgICAgIyBJZiB3ZSBoYXZlIGFuIGlzc3VlIG51bWJlciwgdGhlbiB0
aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJlbAorICAgICAgICAgICAgIyBJZiB0aGUgaXNzdWUg
YWxyZWFkeSBleGlzdHMsIHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUgbGFiZWwKICAgICAg
ICAgICAgICMgb2YgdGhlIG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNvbWVzIHRoZSB0aXRs
ZSBvZiB0aGUgd2hvbGUKICAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAgICAgICBpZiBzdGF0
ZS5nZXQoImJ1Z190aXRsZSIpOgorICAgICAgICAgICAgaWYgdGl0bGU6CiAgICAgICAgICAgICAg
ICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAidXBsb2FkIiBj
b21tYW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBzdGF0ZS5nZXQoImJ1Z190aXRsZSIp
CisgICAgICAgICAgICAgICAgbWVzc2FnZSA9IHRpdGxlCiAgICAgICAgICAgICBlbGlmIGJ1Z19p
ZDoKICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgdGhlIGNvbW1vbiBjYXNlIGZvciB0aGUgInBv
c3QiIGNvbW1hbmQgYW5kCiAgICAgICAgICAgICAgICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhl
ICJ1cGxvYWQiIGNvbW1hbmQuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvc3RlcHMvcG9zdGRpZmYucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvc3RlcHMvcG9zdGRpZmYucHkKaW5kZXggNzk3MzljZDA3YzRiYWIxOWQ3MjBmNjMwZjRh
YWUxNWIxNzIxOTMyMS4uMjQ5YWNhMTU2ZDc5NWY5OTZkMTFiYzNjYTNiZDYzYTUwOTU2ZTJkMyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rk
aWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0
ZGlmZi5weQpAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBQb3N0RGlmZihBYnN0cmFjdFN0ZXApOgog
ICAgICAgICBkaWZmID0gc2VsZi5jYWNoZWRfbG9va3VwKHN0YXRlLCAiZGlmZiIpCiAgICAgICAg
IGRlc2NyaXB0aW9uID0gc2VsZi5fb3B0aW9ucy5kZXNjcmlwdGlvbiBvciAiUGF0Y2giCiAgICAg
ICAgIGNvbW1lbnRfdGV4dCA9IE5vbmUKLSAgICAgICAgc2VsZi5fdG9vbC5idWdzLmFkZF9wYXRj
aF90b19idWcoc3RhdGVbImJ1Z19pZCJdLCBkaWZmLCBkZXNjcmlwdGlvbiwgY29tbWVudF90ZXh0
PWNvbW1lbnRfdGV4dCwgbWFya19mb3JfcmV2aWV3PXNlbGYuX29wdGlvbnMucmV2aWV3LCBtYXJr
X2Zvcl9jb21taXRfcXVldWU9c2VsZi5fb3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCkKKyAgICAgICAg
c2VsZi5fdG9vbC5idWdzLmFkZF9wYXRjaF90b19idWcoc3RhdGVbImJ1Z19pZCJdLCBkaWZmLCBk
ZXNjcmlwdGlvbiwgY29tbWVudF90ZXh0PWNvbW1lbnRfdGV4dCwgbWFya19mb3JfcmV2aWV3PXNl
bGYuX29wdGlvbnMucmV2aWV3LAorICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1
ZT1zZWxmLl9vcHRpb25zLnJlcXVlc3RfY29tbWl0LCBpbl9yaWV0dmVsZD1zZWxmLl9vcHRpb25z
LmZhbmN5X3JldmlldykKICAgICAgICAgaWYgc2VsZi5fb3B0aW9ucy5vcGVuX2J1ZzoKICAgICAg
ICAgICAgIHNlbGYuX3Rvb2wudXNlci5vcGVuX3VybChzZWxmLl90b29sLmJ1Z3MuYnVnX3VybF9m
b3JfYnVnX2lkKHN0YXRlWyJidWdfaWQiXSkpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56116</attachid>
            <date>2010-05-14 15:44:09 -0700</date>
            <delta_ts>2010-05-14 16:57:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100514154408.patch</filename>
            <type>text/plain</type>
            <size>23599</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjZDg4MzIzYjJjYWM3NDk2NmM0NTU2NDZiYTc0ZDA3YTE5NDZkOGZiLi40ZTk5MWI0
ZjBkY2FmZGJhMjFjY2Y1M2Y5NDk2ZGE0OWRkYmY2MGMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMTQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBSaWV0dmVsZFVwbG9h
ZFF1ZXVlIHRvIHVwbG9hZCBpbi1yaWV0dmVsZD8gcGF0Y2hlcyB0byByaWV0dmVsZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTgKKworICAgICAg
ICBQYXRjaGVzIHdpdGggaW4tcmlldHZlbGQ/IGdldCB1cGxvYWRlZCB0byByaWV0dmVsZCBhbmQg
Z2V0IG1hcmtlZAorICAgICAgICBpbi1yaWV0dmVsZCsuIElmIHRoZSB1cGxvYWQgZmFpbHMsIHRo
ZXkgYXJlIG1hcmtlZCBpbi1yaWV0dmVsZC0KKyAgICAgICAgYW5kIGFuIGVycm9yIGlzIGxvZ2dl
ZCB0byB0aGUgYnVnLCBsaWtlIHRoZSBjb21taXQtcXVldWUuCisKKyAgICAgICAgQWxzbywgZ2V0
IHJpZCBvZiAtLWZhbmN5LXJldmlldyBhbmQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIHRvIHJpZXR2
ZWxkCisgICAgICAgIHVzaW5nIHdlYmtpdC1wYXRjaCB1cGxvYWQvcG9zdC4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHk6CisKIDIwMTAtMDUtMTQgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5CmluZGV4IDQzMTFhMDA3OThjYzgyMTM2ZjJi
NzUyN2FjZjI2NWFkYWYwODg1ZTUuLjg4NzIxNjEwNzY2ZDgzZDkxZWM3ZDBlNWM4YjUxYjcxNTkz
ZWZkMDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVnemlsbGEucHkKQEAgLTExMCw2ICsxMTAsOSBAQCBjbGFzcyBBdHRhY2htZW50KG9iamVj
dCk6CiAgICAgZGVmIGNvbW1pdF9xdWV1ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F0
dGFjaG1lbnRfZGljdGlvbmFyeS5nZXQoImNvbW1pdC1xdWV1ZSIpCiAKKyAgICBkZWYgaW5fcmll
dHZlbGQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnku
Z2V0KCJpbi1yaWV0dmVsZCIpCisKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICAjIEZJWE1F
OiBUaGlzIHNob3VsZCBqdXN0IHJldHVybgogICAgICAgICAjIHNlbGYuX2J1Z3ppbGxhKCkuYXR0
YWNobWVudF91cmxfZm9yX2lkKHNlbGYuaWQoKSkuIHNjbV91bml0dGVzdC5weQpAQCAtMTk4LDYg
KzIwMSw5IEBAIGNsYXNzIEJ1ZyhvYmplY3QpOgogICAgICAgICAjIGEgdmFsaWQgY29tbWl0dGVy
LgogICAgICAgICByZXR1cm4gZmlsdGVyKGxhbWJkYSBwYXRjaDogcGF0Y2guY29tbWl0dGVyKCks
IHBhdGNoZXMpCiAKKyAgICBkZWYgaW5fcmlldHZlbGRfcXVldWVfcGF0Y2hlcyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIFtwYXRjaCBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzKCkgaWYgcGF0Y2gu
aW5fcmlldHZlbGQoKSA9PSAiPyJdCisKIAogIyBBIGNvbnRhaW5lciBmb3IgYWxsIG9mIHRoZSBs
b2dpYyBmb3IgbWFraW5nIGFuZCBwYXJzaW5nIGJ1emlsbGEgcXVlcmllcy4KIGNsYXNzIEJ1Z3pp
bGxhUXVlcmllcyhvYmplY3QpOgpAQCAtMjYxLDYgKzI2NywxOCBAQCBjbGFzcyBCdWd6aWxsYVF1
ZXJpZXMob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHN1bShbc2VsZi5fZmV0Y2hfYnVnKGJ1Z19p
ZCkuY29tbWl0X3F1ZXVlZF9wYXRjaGVzKCkKICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1Z19p
ZCBpbiBzZWxmLmZldGNoX2J1Z19pZHNfZnJvbV9jb21taXRfcXVldWUoKV0sIFtdKQogCisgICAg
ZGVmIF9mZXRjaF9idWdfaWRzX2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgICMg
cmlldHZlbGQtcXVldWUgcHJvY2Vzc2VzIGluLXJpZXR2ZWxkPyBwYXRjaGVzIGFuZCB0aGVuIG1h
cmtzIHRoZW0gaW4tcmlldHZlbGQtLysuCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBhbHNv
IGluY2x1ZGUgcj8gcGF0Y2hlcyB0aGF0IGRvbid0IGhhdmUgaW4tcmlldHZlbGQgc2V0IGF0IGFs
bC4KKyAgICAgICAgIyBUaGF0IHdpbGwgbWVhbiB0aGF0IHJpZXR2ZWxkIGNhbiBiZSB1c2VkIGV2
ZW4gZm9yIHBlb3BsZSB3aG8gZG9uJ3QgdXBsb2FkIHdpdGggd2Via2l0LXBhdGNoLgorICAgICAg
ICAjIFdlJ2xsIHdhaXQgdGlsbCB0aGUgcXVldWUgaXMgcmVsaWFibGUgZm9yIGluLXJpZXR2ZWxk
PyBwYXRjaGVzIGZpcnN0IHRob3VnaC4KKyAgICAgICAgcmlldHZlbGRfcXVldWVfdXJsID0gImJ1
Z2xpc3QuY2dpP3F1ZXJ5X2Zvcm1hdD1hZHZhbmNlZCZidWdfc3RhdHVzPVVOQ09ORklSTUVEJmJ1
Z19zdGF0dXM9TkVXJmJ1Z19zdGF0dXM9QVNTSUdORUQmYnVnX3N0YXR1cz1SRU9QRU5FRCZmaWVs
ZDAtMC0wPWZsYWd0eXBlcy5uYW1lJnR5cGUwLTAtMD1lcXVhbHMmdmFsdWUwLTAtMD1pbi1yaWV0
dmVsZCUzRiZvcmRlcj1MYXN0K0NoYW5nZWQiCisgICAgICAgIHJldHVybiBzZWxmLl9mZXRjaF9i
dWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJpZXR2ZWxkX3F1ZXVlX3VybCkKKworICAgIGRlZiBmZXRj
aF9wYXRjaGVzX2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0o
W3NlbGYuX2ZldGNoX2J1ZyhidWdfaWQpLmluX3JpZXR2ZWxkX3F1ZXVlX3BhdGNoZXMoKQorICAg
ICAgICAgICAgICAgICAgICBmb3IgYnVnX2lkIGluIHNlbGYuX2ZldGNoX2J1Z19pZHNfZnJvbV9y
aWV0dmVsZF9xdWV1ZSgpXSwgW10pCisKICAgICBkZWYgX2ZldGNoX2J1Z19pZHNfZnJvbV9yZXZp
ZXdfcXVldWUoc2VsZik6CiAgICAgICAgIHJldmlld19xdWV1ZV91cmwgPSAiYnVnbGlzdC5jZ2k/
cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmJ1Z19zdGF0dXM9VU5DT05GSVJNRUQmYnVnX3N0YXR1cz1O
RVcmYnVnX3N0YXR1cz1BU1NJR05FRCZidWdfc3RhdHVzPVJFT1BFTkVEJmZpZWxkMC0wLTA9Zmxh
Z3R5cGVzLm5hbWUmdHlwZTAtMC0wPWVxdWFscyZ2YWx1ZTAtMC0wPXJldmlldz8iCiAgICAgICAg
IHJldHVybiBzZWxmLl9mZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJldmlld19xdWV1ZV91
cmwpCkBAIC00NTQsNiArNDcyLDggQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAg
c2VsZi5fcGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdy
ZXZpZXcnLCBhdHRhY2htZW50LCAncmV2aWV3ZXJfZW1haWwnKQogICAgICAgICBzZWxmLl9wYXJz
ZV9hdHRhY2htZW50X2ZsYWcoCisgICAgICAgICAgICAgICAgZWxlbWVudCwgJ2luLXJpZXR2ZWxk
JywgYXR0YWNobWVudCwgJ3JpZXR2ZWxkX3VwbG9hZGVyX2VtYWlsJykKKyAgICAgICAgc2VsZi5f
cGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdjb21taXQt
cXVldWUnLCBhdHRhY2htZW50LCAnY29tbWl0dGVyX2VtYWlsJykKICAgICAgICAgcmV0dXJuIGF0
dGFjaG1lbnQKIApAQCAtNTcxLDcgKzU5MSw4IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQ9Tm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX3Jldmlldz1GYWxzZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsIGJ1Z19pZD1Ob25l
KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9Tm9uZSk6CiAgICAgICAgIHNl
bGYuYnJvd3NlclsnZGVzY3JpcHRpb24nXSA9IGRlc2NyaXB0aW9uCiAgICAgICAgIHNlbGYuYnJv
d3NlclsnaXNwYXRjaCddID0gKCIxIiwpCiAgICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBl
LTEnXSA9ICgnPycsKSBpZiBtYXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gnLCkKQEAgLTU4Myw2ICs2
MDQsOSBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMyddID0gKCdYJywpCiAKKyAgICAgICAgIyBBZGQg
YWxsIHBhdGNoZXMgdG8gdGhlIHJpZXR2ZWxkIHVwbG9hZCBxdWV1ZS4KKyAgICAgICAgc2VsZi5i
cm93c2VyWydmbGFnX3R5cGUtNCddID0gKCc/JywpCisKICAgICAgICAgaWYgYnVnX2lkOgogICAg
ICAgICAgICAgcGF0Y2hfbmFtZSA9ICJidWctJXMtJXMucGF0Y2giICUgKGJ1Z19pZCwgdGltZXN0
YW1wKCkpCiAgICAgICAgIGVsc2U6CkBAIC03MDQsOCArNzI4LDEwIEBAIGNsYXNzIEJ1Z3ppbGxh
KG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFRoaXMgd2lsbCBicmVhayBpZiB3ZSBldmVyIHJl
LW9yZGVyIGF0dGFjaG1lbnQgZmxhZ3MKICAgICAgICAgaWYgZmxhZ19uYW1lID09ICJyZXZpZXci
OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2Vs
ZWN0JywgbnI9MCkKLSAgICAgICAgaWYgZmxhZ19uYW1lID09ICJjb21taXQtcXVldWUiOgorICAg
ICAgICBlbGlmIGZsYWdfbmFtZSA9PSAiY29tbWl0LXF1ZXVlIjoKICAgICAgICAgICAgIHJldHVy
biBzZWxmLmJyb3dzZXIuZmluZF9jb250cm9sKHR5cGU9J3NlbGVjdCcsIG5yPTEpCisgICAgICAg
IGVsaWYgZmxhZ19uYW1lID09ICJpbi1yaWV0dmVsZCI6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5icm93c2VyLmZpbmRfY29udHJvbCh0eXBlPSdzZWxlY3QnLCBucj0yKQogICAgICAgICByYWlz
ZSBFeGNlcHRpb24oIkRvbid0IGtub3cgaG93IHRvIGZpbmQgZmxhZyBuYW1lZCBcIiVzXCIiICUg
ZmxhZ19uYW1lKQogCiAgICAgZGVmIGNsZWFyX2F0dGFjaG1lbnRfZmxhZ3Moc2VsZiwKQEAgLTcz
Miw4ICs3NTgsOCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF0dGFjaG1lbnRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ19uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudF90ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfY29tbWVudF90ZXh0KToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQ9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2NvbW1lbnRfdGV4dD1Ob25lKToKICAgICAgICAg
IyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byB0ZXN0IHRoaXMgZnVuY3Rpb24gb24gYSBsaXZlIGJ1
Z3ppbGxhCiAgICAgICAgICMgaW5zdGFuY2UuCiAKQEAgLTc0OCw3ICs3NzQsMTAgQEAgY2xhc3Mg
QnVnemlsbGEob2JqZWN0KToKIAogICAgICAgICBzZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFj
aG1lbnRfdXJsX2Zvcl9pZChhdHRhY2htZW50X2lkLCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJy
b3dzZXIuc2VsZWN0X2Zvcm0obnI9MSkKLSAgICAgICAgc2VsZi5icm93c2VyLnNldF92YWx1ZShj
b21tZW50X3RleHQsIG5hbWU9J2NvbW1lbnQnLCBucj0wKQorCisgICAgICAgIGlmIGNvbW1lbnRf
dGV4dDoKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5zZXRfdmFsdWUoY29tbWVudF90ZXh0LCBu
YW1lPSdjb21tZW50JywgbnI9MCkKKwogICAgICAgICBzZWxmLl9maW5kX3NlbGVjdF9lbGVtZW50
X2Zvcl9mbGFnKGZsYWdfbmFtZSkudmFsdWUgPSAoZmxhZ192YWx1ZSwpCiAgICAgICAgIHNlbGYu
YnJvd3Nlci5zdWJtaXQoKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHkKaW5kZXggNGM0NGNkZjM1
YjU1MjczYmExMWYyYmU4Y2RkZGI0YWIwOTgxOTk0Ny4uMzUyMmQ4MzkwYzU2OGMxN2NmYmU1OWEz
YzAzMGQyMDAyNzM4NWUwYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYV91bml0dGVzdC5weQpAQCAtOTQsNiArOTQs
MTEgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAg
ICAgICBzdGF0dXM9IisiCiAgICAgICAgICAgICAgICAgc2V0dGVyPSJ0d29AdGVzdC5jb20iCiAg
ICAgICAgICAgIC8+CisgICAgICAgICAgPGZsYWcgbmFtZT0iaW4tcmlldHZlbGQiCisgICAgICAg
ICAgICAgICAgaWQ9IjE3OTMzIgorICAgICAgICAgICAgICAgIHN0YXR1cz0iKyIKKyAgICAgICAg
ICAgICAgICBzZXR0ZXI9InRocmVlQHRlc3QuY29tIgorICAgICAgICAgICAvPgogICAgICAgICA8
L2F0dGFjaG1lbnQ+CiAnJycKICAgICBfZXhwZWN0ZWRfZXhhbXBsZV9hdHRhY2htZW50X3BhcnNp
bmcgPSB7CkBAIC0xMDgsNiArMTEzLDggQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgJ3Jldmlld2VyX2VtYWlsJyA6ICdvbmVAdGVzdC5jb20nLAogICAg
ICAgICAnY29tbWl0LXF1ZXVlJyA6ICcrJywKICAgICAgICAgJ2NvbW1pdHRlcl9lbWFpbCcgOiAn
dHdvQHRlc3QuY29tJywKKyAgICAgICAgJ2luLXJpZXR2ZWxkJzogJysnLAorICAgICAgICAncmll
dHZlbGRfdXBsb2FkZXJfZW1haWwnOiAndGhyZWVAdGVzdC5jb20nLAogICAgICAgICAnYXR0YWNo
ZXJfZW1haWwnIDogJ2NocmlzdGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20nLAogICAgIH0K
IApAQCAtMTg4LDEyICsxOTUsMTIgQEAgcmVtb3ZlZC1iZWNhdXNlLWl0LXdhcy1yZWFsbHktbG9u
ZwogWkVacGJtbHphRXh2WVdSWGFYUm9VbVZoYzI5dU9uSmxZWE52YmwwN0NpdDlDaXNLSUVCbGJt
UUtJQW9nSTJWdVpHbG1DZz09CiA8L2RhdGE+ICAgICAgICAKICAKLSAgICAgICAgICAgICAgPGZs
YWcgbmFtZT0icmV2aWV3IgotICAgICAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCi0gICAgICAg
ICAgICAgICAgICAgIHN0YXR1cz0iPyIKLSAgICAgICAgICAgICAgICAgICAgc2V0dGVyPSJtanNA
YXBwbGUuY29tIgotICAgICAgICAgICAgICAgLz4gCi0gICAgICAgICAgPC9hdHRhY2htZW50PiAK
KyAgICAgICAgICAgIDxmbGFnIG5hbWU9InJldmlldyIKKyAgICAgICAgICAgICAgICBpZD0iMjc2
MDIiCisgICAgICAgICAgICAgICAgc3RhdHVzPSI/IgorICAgICAgICAgICAgICAgIHNldHRlcj0i
bWpzQGFwcGxlLmNvbSIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDwvYXR0YWNobWVudD4KICAg
ICA8L2J1Zz4KIDwvYnVnemlsbGE+CiAiIiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCBhMjgzZGE5ZGMyZWQ4
ZTEwZmMwZTBjMjhkNDI2ZWM2Nzg4ZThmODRlLi5hODViMDlhZDQ0ZTJhNTgxMGFiYmUyNzU5ZTY3
ZmIwZjBjYzNmYjlmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC0xODIsNiArMTgyLDE4IEBAIGNsYXNzIEJ1
aWxkQXR0YWNobWVudChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQsIFByb2Nlc3NBdHRh
Y2htZW50c01peGluKToKICAgICBdCiAKIAorY2xhc3MgUG9zdEF0dGFjaG1lbnRUb1JpZXR2ZWxk
KEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4p
OgorICAgIG5hbWUgPSAicG9zdC1hdHRhY2htZW50LXRvLXJpZXR2ZWxkIgorICAgIGhlbHBfdGV4
dCA9ICJVcGxvYWRzIGEgYnVnemlsbGEgYXR0YWNobWVudCB0byByaWV0dmVsZCIKKyAgICBhcmd1
bWVudHNfbmFtZXMgPSAiQVRUQUNITUVOVElEIgorICAgIG1haW5fc3RlcHMgPSBbCisgICAgICAg
IHN0ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwKKyAgICAgICAgc3RlcHMuVXBkYXRlLAorICAg
ICAgICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAgICBzdGVwcy5Qb3N0Q29kZVJldmlldywKKyAg
ICBdCisKKwogY2xhc3MgQWJzdHJhY3RQYXRjaEFwcGx5aW5nQ29tbWFuZChBYnN0cmFjdFBhdGNo
U2VxdWVuY2luZ0NvbW1hbmQpOgogICAgIHByZXBhcmVfc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBz
LkVuc3VyZUxvY2FsQ29tbWl0SWZOZWVkZWQsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkK
aW5kZXggNGRkOWQ3ZjRjMTk3ZGM0OTc0MGMxMzM5MDBmM2FkMzIyZTkyNzA3Ny4uOTZhZTlkYWMy
ZjZlNjAxMTQ0MmFhZDM0NTMzNTAwYWU5NTc0MDA1MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0
dGVzdC5weQpAQCAtMTAyLDYgKzEwMiwxMCBAQCBjbGFzcyBEb3dubG9hZENvbW1hbmRzVGVzdChD
b21tYW5kc1Rlc3QpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiUHJvY2Vzc2luZyAxIHBh
dGNoIGZyb20gMSBidWcuXG5VcGRhdGluZyB3b3JraW5nIGRpcmVjdG9yeVxuUHJvY2Vzc2luZyBw
YXRjaCAxOTcgZnJvbSBidWcgNDIuXG5CdWlsZGluZyBXZWJLaXRcbiIKICAgICAgICAgc2VsZi5h
c3NlcnRfZXhlY3V0ZV9vdXRwdXRzKEJ1aWxkQXR0YWNobWVudCgpLCBbMTk3XSwgb3B0aW9ucz1z
ZWxmLl9kZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikK
IAorICAgIGRlZiB0ZXN0X3Bvc3RfYXR0YWNobWVudF90b19yaWV0dmVsZChzZWxmKToKKyAgICAg
ICAgZXhwZWN0ZWRfc3RkZXJyID0gIlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLlxuVXBk
YXRpbmcgd29ya2luZyBkaXJlY3RvcnlcblByb2Nlc3NpbmcgcGF0Y2ggMTk3IGZyb20gYnVnIDQy
LlxuTU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJpZXR2ZWxkXG4iCisgICAgICAgIHNlbGYuYXNz
ZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQb3N0QXR0YWNobWVudFRvUmlldHZlbGQoKSwgWzE5N10sIG9w
dGlvbnM9c2VsZi5fZGVmYXVsdF9vcHRpb25zKCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9z
dGRlcnIpCisKICAgICBkZWYgdGVzdF9sYW5kX2F0dGFjaG1lbnQoc2VsZik6CiAgICAgICAgICMg
RklYTUU6IFRoaXMgZXhwZWN0ZWQgcmVzdWx0IGlzIGltcGVyZmVjdCwgbm90aWNlIGhvdyBpdCdz
IHNlZWluZyB0aGUgc2FtZSBwYXRjaCBhcyBzdGlsbCB0aGVyZSBhZnRlciBpdCB0aG91Z2h0IGl0
IHdvdWxkIGhhdmUgY2xlYXJlZCB0aGUgZmxhZ3MuCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9
ICIiIlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggNzhjYTcyOTE4
NzQ0NTliODhhZjhmNWNhNGZmZmU4ZDQwOTMyNmEzZi4uNGFkNzc4MDcxNjdmMDM5NGY2OTRiNmRh
ZjQwNGQ3MzFhMGM0MTRmYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CkBAIC0yOTIsNiArMjkyLDU2IEBAIGNsYXNzIENv
bW1pdFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToK
ICAgICAgICAgdmFsaWRhdG9yLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShzdGF0ZVsi
cGF0Y2giXS5pZCgpLCBjbHMuX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQs
IHNjcmlwdF9lcnJvcikpCiAKIAorY2xhc3MgUmlldHZlbGRVcGxvYWRRdWV1ZShBYnN0cmFjdFBh
dGNoUXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CisgICAgbmFtZSA9ICJyaWV0dmVs
ZC11cGxvYWQtcXVldWUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIEFic3Ry
YWN0UGF0Y2hRdWV1ZS5fX2luaXRfXyhzZWxmKQorCisgICAgIyBBYnN0cmFjdFBhdGNoUXVldWUg
bWV0aG9kcworCisgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgorICAgICAgICBwYXRjaGVz
ID0gc2VsZi50b29sLmJ1Z3MucXVlcmllcy5mZXRjaF9wYXRjaGVzX2Zyb21fcmlldHZlbGRfcXVl
dWUoKQorICAgICAgICBpZiBwYXRjaGVzOgorICAgICAgICAgICAgcmV0dXJuIHBhdGNoZXNbMF0K
KyAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygiRW1wdHkgcXVldWUiKQorCisgICAgZGVmIHNo
b3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5f
dXBkYXRlX3N0YXR1cygiVXBsb2FkaW5nIHBhdGNoIiwgcGF0Y2gpCisgICAgICAgIHJldHVybiBU
cnVlCisKKyAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgorICAgICAgICB0
cnk6CisgICAgICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goWyJwb3N0LWF0dGFjaG1lbnQt
dG8tcmlldHZlbGQiLCAiLS1mb3JjZS1jbGVhbiIsICItLW5vbi1pbnRlcmFjdGl2ZSIsICItLXBh
cmVudC1jb21tYW5kPXJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSIsIHBhdGNoLmlkKCldKQorICAgICAg
ICAgICAgc2VsZi5fZGlkX3Bhc3MocGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAg
ICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLmV4aXRfY29kZSAh
PSBRdWV1ZUVuZ2luZS5oYW5kbGVkX2Vycm9yX2NvZGU6CisgICAgICAgICAgICAgICAgc2VsZi5f
ZGlkX2ZhaWwocGF0Y2gpCisgICAgICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgX3JlamVjdF9w
YXRjaChzZWxmLCBwYXRjaCwgbWVzc2FnZSk6CisgICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWpl
Y3RpbmcgcGF0Y2ggJXMgZnJvbSByaWV0dmVsZC1xdWV1ZS4iICUgcGF0Y2guaWQoKQorICAgICAg
ICBzZWxmLnRvb2wuYnVncy5zZXRfZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlkKCksICJpbi1y
aWV0dmVsZCIsICItIiwgY29tbWVudF90ZXh0LCBtZXNzYWdlKQorCisgICAgZGVmIGhhbmRsZV91
bmV4cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5fcmVq
ZWN0X3BhdGNoKHBhdGNoLCBtZXNzYWdlKQorCisgICAgIyBTdGVwU2VxdWVuY2VFcnJvckhhbmRs
ZXIgbWV0aG9kcworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfZXJyb3JfbWVzc2FnZV9m
b3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgaWYgbm90IHNj
cmlwdF9lcnJvci5vdXRwdXQ6CisgICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9yLm1lc3Nh
Z2Vfd2l0aF9vdXRwdXQoKQorICAgICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1c19zZXJ2
ZXIucmVzdWx0c191cmxfZm9yX3N0YXR1cyhzdGF0dXNfaWQpCisgICAgICAgIHJldHVybiAiJXNc
bkZ1bGwgb3V0cHV0OiAlcyIgJSAoc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSwg
cmVzdWx0c19saW5rKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGhhbmRsZV9zY3JpcHRf
ZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgc3RhdHVzX2lk
ID0gY2xzLl91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlw
dF9lcnJvcikKKyAgICAgICAgc2VsZi5fcmVqZWN0X3BhdGNoKHBhdGNoLCBjbHMuX2Vycm9yX21l
c3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNjcmlwdF9lcnJvcikpCisKKwogY2xhc3Mg
QWJzdHJhY3RSZXZpZXdRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUsIFBlcnNpc3RlbnRQYXRjaENv
bGxlY3Rpb25EZWxlZ2F0ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICBkZWYgX19p
bml0X18oc2VsZiwgb3B0aW9ucz1Ob25lKToKICAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9f
aW5pdF9fKHNlbGYsIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCAwYmQ0
MmZiYWZiZjVlMGQ5NzNmZWE3NWIxYzU3MzczYmI1ODc5M2I5Li5iNmEwY2JkMTFiNDRmN2U1NjU0
ZWVhZDFiYWRkMGQ1MTk1YjFmMGI5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE3
MSw2ICsxNzEsMTYgQEAgTU9DSzogdXBkYXRlX3N0YXR1czogY29tbWl0LXF1ZXVlIEJ1aWxkZXJz
IFsiQnVpbGRlcjIiXSBhcmUgcmVkLiBTZWUgaHR0cDovL2J1aWwKICAgICAgICAgdG9vbC5leGVj
dXRpdmUucnVuX2FuZF90aHJvd19pZl9mYWlsLmFzc2VydF9jYWxsZWRfd2l0aChleHBlY3RlZF9y
dW5fYXJncykKIAogCitjbGFzcyBSaWV0dmVsZFVwbG9hZFF1ZXVlVGVzdChRdWV1ZXNUZXN0KToK
KyAgICBkZWYgdGVzdF9yaWV0dmVsZF91cGxvYWRfcXVldWUoc2VsZik6CisgICAgICAgIGV4cGVj
dGVkX3N0ZGVyciA9IHsKKyAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogIkNBVVRJT046
IHJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4g
XCIlc1wiXG5SdW5uaW5nIFdlYktpdCByaWV0dmVsZC11cGxvYWQtcXVldWUuXG4iICUgTW9ja1ND
TS5mYWtlX2NoZWNrb3V0X3Jvb3QsCisgICAgICAgICAgICAic2hvdWxkX3Byb2NlZWRfd2l0aF93
b3JrX2l0ZW0iOiAiTU9DSzogdXBkYXRlX3N0YXR1czogcmlldHZlbGQtdXBsb2FkLXF1ZXVlIFVw
bG9hZGluZyBwYXRjaFxuIiwKKyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICJNT0NL
OiB1cGRhdGVfc3RhdHVzOiByaWV0dmVsZC11cGxvYWQtcXVldWUgUGFzc1xuIiwKKyAgICAgICAg
fQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFJpZXR2ZWxkVXBsb2FkUXVldWUo
KSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworCiBjbGFzcyBTdHlsZVF1ZXVl
VGVzdChRdWV1ZXNUZXN0KToKICAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToKICAgICAg
ICAgZXhwZWN0ZWRfc3RkZXJyID0gewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggNDc5N2VmNjQzZGVlZDhhOTM1MGE2
NzJmYTcwMGE3MTBjNTljYmRjNS4uMTQ5MzU4Yzk1ODczZTA5OGQwMzEyNjgwN2NhOGZmNTUwZmU1
YjlkMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvdXBsb2FkLnB5CkBAIC0xNzIsNyArMTcyLDYgQEAgY2xhc3MgUG9zdChBYnN0cmFjdFBh
dGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBzLkNoZWNr
U3R5bGUsCiAgICAgICAgIHN0ZXBzLkNvbmZpcm1EaWZmLAotICAgICAgICBzdGVwcy5Qb3N0Q29k
ZVJldmlldywKICAgICAgICAgc3RlcHMuT2Jzb2xldGVQYXRjaGVzLAogICAgICAgICBzdGVwcy5Q
b3N0RGlmZiwKICAgICBdCkBAIC0yMTcsNyArMjE2LDYgQEAgY2xhc3MgVXBsb2FkKEFic3RyYWN0
UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuUHJlcGFyZUNoYW5nZUxvZywK
ICAgICAgICAgc3RlcHMuRWRpdENoYW5nZUxvZywKICAgICAgICAgc3RlcHMuQ29uZmlybURpZmYs
Ci0gICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAogICAgICAgICBzdGVwcy5PYnNvbGV0ZVBh
dGNoZXMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZmLAogICAgIF0KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0
ZXN0LnB5CmluZGV4IDhmNjQ4M2FjN2RhMTJmNGQ4ZTlkMTU5NDEyNDQyZTJlZmNjYWI5YzkuLjRh
MGYxNTA0OWEyZDkwZDA3MGM3NDI3OTdiMTE4Y2MyY2YzZTY5MjcgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91
bml0dGVzdC5weQpAQCAtNTUsOCArNTUsNiBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rlc3QoQ29t
bWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0
aW9uIgogICAgICAgICBvcHRpb25zLnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0
aW9ucy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWly
ZXMgYSByZWFsIFNDTSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBG
YWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmls
ZTovLy4uLgpAQCAtODUsOCArODMsNiBAQCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhh
bXBsZS5jb20vNDIKICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0
aW9uIgogICAgICAgICBvcHRpb25zLnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0
aW9ucy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWly
ZXMgYSByZWFsIFNDTSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBG
YWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmls
ZTovLy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21v
Y2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5
CmluZGV4IDQ3ZmZmMWJmOTVjZDg5YTg4MjNjMmFlY2QyMDM3ZTkyY2EwM2FiNzguLjJkZDkyNjlj
MzY0MWVjYjhiZWM0ODVhZDk1NjhkMzVlODk2OGE3ZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysgYi9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTg2LDYgKzg2LDcgQEAgX3BhdGNoMyA9
IHsKICAgICAibmFtZSI6ICJQYXRjaDMiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAg
ICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXci
OiAiPyIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCiB9CkBAIC0x
MTIsNiArMTEzLDcgQEAgX3BhdGNoNSA9IHsKICAgICAibmFtZSI6ICJQYXRjaDUiLAogICAgICJp
c19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2
ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAiKyIsCiAgICAgInJldmlld2VyX2VtYWlsIjogImZv
b0BiYXIuY29tIiwKICAgICAiYXR0YWNoZXJfZW1haWwiOiAiZXJpY0B3ZWJraXQub3JnIiwKQEAg
LTEyNSw2ICsxMjcsNyBAQCBfcGF0Y2g2ID0geyAjIFZhbGlkIGNvbW1pdHRlciwgYnV0IG5vIHJl
dmlld2VyLgogICAgICJuYW1lIjogIlJPTExPVVQgb2YgcjM0ODkiLAogICAgICJpc19vYnNvbGV0
ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIi0i
LAogICAgICJjb21taXQtcXVldWUiOiAiKyIsCiAgICAgImNvbW1pdHRlcl9lbWFpbCI6ICJmb29A
YmFyLmNvbSIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCkBAIC0x
MzgsNiArMTQxLDcgQEAgX3BhdGNoNyA9IHsgIyBWYWxpZCByZXZpZXcsIHBhdGNoIGlzIG1hcmtl
ZCBvYnNvbGV0ZS4KICAgICAibmFtZSI6ICJQYXRjaDciLAogICAgICJpc19vYnNvbGV0ZSI6IFRy
dWUsCiAgICAgImlzX3BhdGNoIjogVHJ1ZSwKKyAgICAiaW4tcmlldHZlbGQiOiAiKyIsCiAgICAg
InJldmlldyI6ICIrIiwKICAgICAicmV2aWV3ZXJfZW1haWwiOiAiZm9vQGJhci5jb20iLAogICAg
ICJhdHRhY2hlcl9lbWFpbCI6ICJlcmljQHdlYmtpdC5vcmciLApAQCAtMjIxLDYgKzIyNSw4IEBA
IGNsYXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMoTW9jayk6CiAgICAgZGVmIGZldGNoX3BhdGNoZXNf
ZnJvbV9wZW5kaW5nX2NvbW1pdF9saXN0KHNlbGYpOgogICAgICAgICByZXR1cm4gc3VtKFtidWcu
cmV2aWV3ZWRfcGF0Y2hlcygpIGZvciBidWcgaW4gc2VsZi5fYWxsX2J1Z3MoKV0sIFtdKQogCisg
ICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9yaWV0dmVsZF9xdWV1ZShzZWxmKToKKyAgICAgICAg
cmV0dXJuIHN1bShbYnVnLmluX3JpZXR2ZWxkX3F1ZXVlX3BhdGNoZXMoKSBmb3IgYnVnIGluIHNl
bGYuX2FsbF9idWdzKCldLCBbXSkKIAogIyBGSVhNRTogQnVnemlsbGEgaXMgdGhlIHdyb25nIE1v
Y2stcG9pbnQuICBPbmNlIHdlIGhhdmUgYSBCdWd6aWxsYU5ldHdvcmsKICMgICAgICAgIGNsYXNz
IHdlIHNob3VsZCBtb2NrIHRoYXQgaW5zdGVhZC4KQEAgLTUwNyw2ICs1MTMsMTUgQEAgY2xhc3Mg
TW9ja0V4ZWN1dGUoTW9jayk6CiAgICAgICAgIHJldHVybiAiTU9DSyBvdXRwdXQgb2YgY2hpbGQg
cHJvY2VzcyIKIAogCitjbGFzcyBNb2NrUmlldHZlbGQoKToKKworICAgIGRlZiBfX2luaXRfXyhz
ZWxmLCBleGVjdXRpdmUsIGRyeXJ1bj1GYWxzZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBw
b3N0KHNlbGYsIGRpZmYsIG1lc3NhZ2U9Tm9uZSwgY29kZXJldmlld19pc3N1ZT1Ob25lLCBjYz1O
b25lKToKKyAgICAgICAgbG9nKCJNT0NLOiBVcGxvYWRpbmcgcGF0Y2ggdG8gcmlldHZlbGQiKQor
CisKIGNsYXNzIE1vY2tUb29sKCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nX2V4ZWN1
dGl2ZT1GYWxzZSk6CkBAIC01MjAsNyArNTM1LDcgQEAgY2xhc3MgTW9ja1Rvb2woKToKICAgICAg
ICAgc2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tvdXQoKQogICAgICAgICBzZWxmLnN0YXR1c19z
ZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKICAgICAgICAgc2VsZi5pcmNfcGFzc3dvcmQgPSAi
TU9DSyBpcmMgcGFzc3dvcmQiCi0gICAgICAgIHNlbGYuY29kZXJldmlldyA9IFJpZXR2ZWxkKHNl
bGYuZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmNvZGVyZXZpZXcgPSBNb2NrUmlldHZlbGQoc2Vs
Zi5leGVjdXRpdmUpCiAKICAgICBkZWYgc2NtKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f
c2NtCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
b3B0aW9ucy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRp
b25zLnB5CmluZGV4IDUyNGEyNTI5OGUzYjNkZmQwNzZmMmFlMTM2NGY1MjZjZGZiMDA5ODIuLjNj
NjJkZmE2MTU1Y2Y3MzRiODIxODQ3ZGZjODE4ZmUwMWRhNjllODMgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC00MCw3ICs0
MCw2IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBjb25maXJtID0gbWFrZV9vcHRpb24o
Ii0tbm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVm
YXVsdD1UcnVlLCBoZWxwPSJTa2lwIGNvbmZpcm1hdGlvbiBzdGVwcy4iKQogICAgIGRlc2NyaXB0
aW9uID0gbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwg
dHlwZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRpb24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJp
bmcgZm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0OiBcInBhdGNoXCIpIikKICAgICBlbWFpbCA9
IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRl
c3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQot
ICAgIGZhbmN5X3JldmlldyA9IG1ha2Vfb3B0aW9uKCItLWZhbmN5LXJldmlldyIsIGFjdGlvbj0i
c3RvcmVfdHJ1ZSIsIGRlc3Q9ImZhbmN5X3JldmlldyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IihF
eHBlcmltZW50YWwpIFVwbG9hZCB0aGUgcGF0Y2ggdG8gUmlldHZlbGQgY29kZSByZXZpZXcgdG9v
bC4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rp
b249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9
IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVz
IGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICMgRklYTUU6IE1ha2UgY29tbWl0IHJhbmdl
cyB0cmVhdCBlYWNoIGNvbW1pdCBzZXBhcmF0ZWx5IGluc3RlYWQgb2Ygc3F1YXNoaW5nIHRoZW0g
aW50byBvbmUuCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItLWdpdC1jb21taXQiLCBh
Y3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1pdCIsIGhlbHA9IkxvY2FsIGdpdCBjb21taXQg
dG8gdXBsb2FkL2xhbmQuIElmIGEgcmFuZ2UsIHRoZSBjb21taXRzIGFyZSBzcXVhc2hlZCBpbnRv
IG9uZS4iKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CmluZGV4IDgzOTc1MTkwMjg0NTdjMjBjYWRiMzVlOWY3
NTU0Y2I5ZDcyMDFhY2MuLmY5YmM2ODU2Yjg5MWNiNDgxNjcwNmQ2MGE4YTk4MzljOTBiN2Q5NzEg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0
Y29kZXJldmlldy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3Rl
cHMvcG9zdGNvZGVyZXZpZXcucHkKQEAgLTM2LDMzICszNiwyNyBAQCBjbGFzcyBQb3N0Q29kZVJl
dmlldyhBYnN0cmFjdFN0ZXApOgogICAgICAgICByZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMo
KSArIFsKICAgICAgICAgICAgIE9wdGlvbnMuY2MsCiAgICAgICAgICAgICBPcHRpb25zLmRlc2Ny
aXB0aW9uLAotICAgICAgICAgICAgT3B0aW9ucy5mYW5jeV9yZXZpZXcsCiAgICAgICAgIF0KIAog
ICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5m
YW5jeV9yZXZpZXc6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcGF0Y2ggPSBzdGF0ZS5n
ZXQoInBhdGNoIikKKyAgICAgICAgYnVnX2lkID0gcGF0Y2guYnVnX2lkKCkKKyAgICAgICAgdGl0
bGUgPSBwYXRjaC5uYW1lKCkKIAotICAgICAgICBidWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIp
Ci0gICAgICAgIGlmIG5vdCBidWdfaWQ6Ci0gICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvciht
ZXNzYWdlPSJDYW5ub3QgdXBsb2FkIGEgZmFuY3kgcmV2aWV3IHdpdGhvdXQgYSBidWcgSUQuIikK
LQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fb3B0aW9ucy5kZXNjcmlwdGlvbgotICAgICAgICBp
ZiBub3QgbWVzc2FnZToKLSAgICAgICAgICAgICMgSWYgd2UgaGF2ZSBhbiBpc3N1ZSBudW1iZXIs
IHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUgbGFiZWwKLSAgICAgICAgICAgICMgb2YgdGhl
IG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNvbWVzIHRoZSB0aXRsZSBvZiB0aGUgd2hvbGUK
LSAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAgICAgICBpZiBzdGF0ZS5nZXQoImJ1Z190aXRs
ZSIpOgotICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0aGUgY29tbW9uIGNhc2UgZm9yIHRoZSB0
aGUgZmlyc3QgInVwbG9hZCIgY29tbWFuZC4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gc3Rh
dGUuZ2V0KCJidWdfdGl0bGUiKQotICAgICAgICAgICAgZWxpZiBidWdfaWQ6Ci0gICAgICAgICAg
ICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFu
ZAotICAgICAgICAgICAgICAgICMgc3Vic2VxdWVudCBydW5zIG9mIHRoZSAidXBsb2FkIiBjb21t
YW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiQ29kZSByZXZpZXcgZm9yICVzIiAlIHNl
bGYuX3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQotICAgICAgICAgICAgZWxz
ZToKLSAgICAgICAgICAgICAgICAjIFVucmVhY2hhYmxlIHdpdGggb3VyIGN1cnJlbnQgY29tbWFu
ZHMsIGJ1dCB3ZSBtaWdodCBoaXQKLSAgICAgICAgICAgICAgICAjIHRoaXMgY2FzZSBpZiB3ZSBz
dXBwb3J0IGJ1Zy1sZXNzIGNvZGUgcmV2aWV3cy4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0g
IkNvZGUgcmV2aWV3IgorICAgICAgICAjIElmIHRoZSBpc3N1ZSBhbHJlYWR5IGV4aXN0cywgdGhl
biB0aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJlbAorICAgICAgICAjIG9mIHRoZSBuZXcgcGF0
Y2guIE90aGVyd2lzZSwgaXQgYmVjb21lcyB0aGUgdGl0bGUgb2YgdGhlIHdob2xlCisgICAgICAg
ICMgaXNzdWUuCisgICAgICAgIGlmIHRpdGxlOgorICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBj
b21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAidXBsb2FkIiBjb21tYW5kLgorICAgICAgICAg
ICAgbWVzc2FnZSA9IHRpdGxlCisgICAgICAgIGVsaWYgYnVnX2lkOgorICAgICAgICAgICAgIyBU
aGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFuZAorICAgICAg
ICAgICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhlICJ1cGxvYWQiIGNvbW1hbmQuCisgICAgICAg
ICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IGZvciAlcyIgJSBzZWxmLl90b29sLmJ1Z3MuYnVn
X3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgVW5y
ZWFjaGFibGUgd2l0aCBvdXIgY3VycmVudCBjb21tYW5kcywgYnV0IHdlIG1pZ2h0IGhpdAorICAg
ICAgICAgICAgIyB0aGlzIGNhc2UgaWYgd2Ugc3VwcG9ydCBidWctbGVzcyBjb2RlIHJldmlld3Mu
CisgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IgogCiAgICAgICAgICMgVXNlIHRo
ZSBidWcgSUQgYXMgdGhlIHJpZXR2ZWxkIGlzc3VlIG51bWJlci4gVGhpcyBtZWFucyByaWV0dmVs
ZCBjb2RlIHJldmlld3MKICAgICAgICAgIyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJl
bnQgcGF0Y2hlcyBvbiBhIGJ1ZyB3aWxsIGJlIGEgYml0IHdvbmt5LCBidXQKQEAgLTcxLDMgKzY1
LDUgQEAgY2xhc3MgUG9zdENvZGVSZXZpZXcoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVyZXZp
ZXdfaXNzdWU9YnVnX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2M9c2VsZi5fb3B0aW9ucy5jYykKKworICAgICAgICBzZWxmLl90b29sLmJ1
Z3Muc2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAnaW4tcmlldHZlbGQnLCAnKycp
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56123</attachid>
            <date>2010-05-14 16:57:09 -0700</date>
            <delta_ts>2010-05-24 09:19:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100514165707.patch</filename>
            <type>text/plain</type>
            <size>24451</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBjZDg4MzIzYjJjYWM3NDk2NmM0NTU2NDZiYTc0ZDA3YTE5NDZkOGZiLi40ZTk5MWI0
ZjBkY2FmZGJhMjFjY2Y1M2Y5NDk2ZGE0OWRkYmY2MGMyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMTQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBSaWV0dmVsZFVwbG9h
ZFF1ZXVlIHRvIHVwbG9hZCBpbi1yaWV0dmVsZD8gcGF0Y2hlcyB0byByaWV0dmVsZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTgKKworICAgICAg
ICBQYXRjaGVzIHdpdGggaW4tcmlldHZlbGQ/IGdldCB1cGxvYWRlZCB0byByaWV0dmVsZCBhbmQg
Z2V0IG1hcmtlZAorICAgICAgICBpbi1yaWV0dmVsZCsuIElmIHRoZSB1cGxvYWQgZmFpbHMsIHRo
ZXkgYXJlIG1hcmtlZCBpbi1yaWV0dmVsZC0KKyAgICAgICAgYW5kIGFuIGVycm9yIGlzIGxvZ2dl
ZCB0byB0aGUgYnVnLCBsaWtlIHRoZSBjb21taXQtcXVldWUuCisKKyAgICAgICAgQWxzbywgZ2V0
IHJpZCBvZiAtLWZhbmN5LXJldmlldyBhbmQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIHRvIHJpZXR2
ZWxkCisgICAgICAgIHVzaW5nIHdlYmtpdC1wYXRjaCB1cGxvYWQvcG9zdC4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHk6CisKIDIwMTAtMDUtMTQgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFJ1YmJlci1z
dGFtcGVkIGJ5IEFudHRpIEtvaXZpc3RvLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhLnB5CmluZGV4IDQzMTFhMDA3OThjYzgyMTM2ZjJi
NzUyN2FjZjI2NWFkYWYwODg1ZTUuLjg4NzIxNjEwNzY2ZDgzZDkxZWM3ZDBlNWM4YjUxYjcxNTkz
ZWZkMDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVnemlsbGEucHkKQEAgLTExMCw2ICsxMTAsOSBAQCBjbGFzcyBBdHRhY2htZW50KG9iamVj
dCk6CiAgICAgZGVmIGNvbW1pdF9xdWV1ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F0
dGFjaG1lbnRfZGljdGlvbmFyeS5nZXQoImNvbW1pdC1xdWV1ZSIpCiAKKyAgICBkZWYgaW5fcmll
dHZlbGQoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnku
Z2V0KCJpbi1yaWV0dmVsZCIpCisKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICAjIEZJWE1F
OiBUaGlzIHNob3VsZCBqdXN0IHJldHVybgogICAgICAgICAjIHNlbGYuX2J1Z3ppbGxhKCkuYXR0
YWNobWVudF91cmxfZm9yX2lkKHNlbGYuaWQoKSkuIHNjbV91bml0dGVzdC5weQpAQCAtMTk4LDYg
KzIwMSw5IEBAIGNsYXNzIEJ1ZyhvYmplY3QpOgogICAgICAgICAjIGEgdmFsaWQgY29tbWl0dGVy
LgogICAgICAgICByZXR1cm4gZmlsdGVyKGxhbWJkYSBwYXRjaDogcGF0Y2guY29tbWl0dGVyKCks
IHBhdGNoZXMpCiAKKyAgICBkZWYgaW5fcmlldHZlbGRfcXVldWVfcGF0Y2hlcyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIFtwYXRjaCBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzKCkgaWYgcGF0Y2gu
aW5fcmlldHZlbGQoKSA9PSAiPyJdCisKIAogIyBBIGNvbnRhaW5lciBmb3IgYWxsIG9mIHRoZSBs
b2dpYyBmb3IgbWFraW5nIGFuZCBwYXJzaW5nIGJ1emlsbGEgcXVlcmllcy4KIGNsYXNzIEJ1Z3pp
bGxhUXVlcmllcyhvYmplY3QpOgpAQCAtMjYxLDYgKzI2NywxOCBAQCBjbGFzcyBCdWd6aWxsYVF1
ZXJpZXMob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHN1bShbc2VsZi5fZmV0Y2hfYnVnKGJ1Z19p
ZCkuY29tbWl0X3F1ZXVlZF9wYXRjaGVzKCkKICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1Z19p
ZCBpbiBzZWxmLmZldGNoX2J1Z19pZHNfZnJvbV9jb21taXRfcXVldWUoKV0sIFtdKQogCisgICAg
ZGVmIF9mZXRjaF9idWdfaWRzX2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgICMg
cmlldHZlbGQtcXVldWUgcHJvY2Vzc2VzIGluLXJpZXR2ZWxkPyBwYXRjaGVzIGFuZCB0aGVuIG1h
cmtzIHRoZW0gaW4tcmlldHZlbGQtLysuCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBhbHNv
IGluY2x1ZGUgcj8gcGF0Y2hlcyB0aGF0IGRvbid0IGhhdmUgaW4tcmlldHZlbGQgc2V0IGF0IGFs
bC4KKyAgICAgICAgIyBUaGF0IHdpbGwgbWVhbiB0aGF0IHJpZXR2ZWxkIGNhbiBiZSB1c2VkIGV2
ZW4gZm9yIHBlb3BsZSB3aG8gZG9uJ3QgdXBsb2FkIHdpdGggd2Via2l0LXBhdGNoLgorICAgICAg
ICAjIFdlJ2xsIHdhaXQgdGlsbCB0aGUgcXVldWUgaXMgcmVsaWFibGUgZm9yIGluLXJpZXR2ZWxk
PyBwYXRjaGVzIGZpcnN0IHRob3VnaC4KKyAgICAgICAgcmlldHZlbGRfcXVldWVfdXJsID0gImJ1
Z2xpc3QuY2dpP3F1ZXJ5X2Zvcm1hdD1hZHZhbmNlZCZidWdfc3RhdHVzPVVOQ09ORklSTUVEJmJ1
Z19zdGF0dXM9TkVXJmJ1Z19zdGF0dXM9QVNTSUdORUQmYnVnX3N0YXR1cz1SRU9QRU5FRCZmaWVs
ZDAtMC0wPWZsYWd0eXBlcy5uYW1lJnR5cGUwLTAtMD1lcXVhbHMmdmFsdWUwLTAtMD1pbi1yaWV0
dmVsZCUzRiZvcmRlcj1MYXN0K0NoYW5nZWQiCisgICAgICAgIHJldHVybiBzZWxmLl9mZXRjaF9i
dWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJpZXR2ZWxkX3F1ZXVlX3VybCkKKworICAgIGRlZiBmZXRj
aF9wYXRjaGVzX2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0o
W3NlbGYuX2ZldGNoX2J1ZyhidWdfaWQpLmluX3JpZXR2ZWxkX3F1ZXVlX3BhdGNoZXMoKQorICAg
ICAgICAgICAgICAgICAgICBmb3IgYnVnX2lkIGluIHNlbGYuX2ZldGNoX2J1Z19pZHNfZnJvbV9y
aWV0dmVsZF9xdWV1ZSgpXSwgW10pCisKICAgICBkZWYgX2ZldGNoX2J1Z19pZHNfZnJvbV9yZXZp
ZXdfcXVldWUoc2VsZik6CiAgICAgICAgIHJldmlld19xdWV1ZV91cmwgPSAiYnVnbGlzdC5jZ2k/
cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmJ1Z19zdGF0dXM9VU5DT05GSVJNRUQmYnVnX3N0YXR1cz1O
RVcmYnVnX3N0YXR1cz1BU1NJR05FRCZidWdfc3RhdHVzPVJFT1BFTkVEJmZpZWxkMC0wLTA9Zmxh
Z3R5cGVzLm5hbWUmdHlwZTAtMC0wPWVxdWFscyZ2YWx1ZTAtMC0wPXJldmlldz8iCiAgICAgICAg
IHJldHVybiBzZWxmLl9mZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJldmlld19xdWV1ZV91
cmwpCkBAIC00NTQsNiArNDcyLDggQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAg
c2VsZi5fcGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdy
ZXZpZXcnLCBhdHRhY2htZW50LCAncmV2aWV3ZXJfZW1haWwnKQogICAgICAgICBzZWxmLl9wYXJz
ZV9hdHRhY2htZW50X2ZsYWcoCisgICAgICAgICAgICAgICAgZWxlbWVudCwgJ2luLXJpZXR2ZWxk
JywgYXR0YWNobWVudCwgJ3JpZXR2ZWxkX3VwbG9hZGVyX2VtYWlsJykKKyAgICAgICAgc2VsZi5f
cGFyc2VfYXR0YWNobWVudF9mbGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdjb21taXQt
cXVldWUnLCBhdHRhY2htZW50LCAnY29tbWl0dGVyX2VtYWlsJykKICAgICAgICAgcmV0dXJuIGF0
dGFjaG1lbnQKIApAQCAtNTcxLDcgKzU5MSw4IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQ9Tm9uZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX3Jldmlldz1GYWxzZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsIGJ1Z19pZD1Ob25l
KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWdfaWQ9Tm9uZSk6CiAgICAgICAgIHNl
bGYuYnJvd3NlclsnZGVzY3JpcHRpb24nXSA9IGRlc2NyaXB0aW9uCiAgICAgICAgIHNlbGYuYnJv
d3NlclsnaXNwYXRjaCddID0gKCIxIiwpCiAgICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBl
LTEnXSA9ICgnPycsKSBpZiBtYXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gnLCkKQEAgLTU4Myw2ICs2
MDQsOSBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUtMyddID0gKCdYJywpCiAKKyAgICAgICAgIyBBZGQg
YWxsIHBhdGNoZXMgdG8gdGhlIHJpZXR2ZWxkIHVwbG9hZCBxdWV1ZS4KKyAgICAgICAgc2VsZi5i
cm93c2VyWydmbGFnX3R5cGUtNCddID0gKCc/JywpCisKICAgICAgICAgaWYgYnVnX2lkOgogICAg
ICAgICAgICAgcGF0Y2hfbmFtZSA9ICJidWctJXMtJXMucGF0Y2giICUgKGJ1Z19pZCwgdGltZXN0
YW1wKCkpCiAgICAgICAgIGVsc2U6CkBAIC03MDQsOCArNzI4LDEwIEBAIGNsYXNzIEJ1Z3ppbGxh
KG9iamVjdCk6CiAgICAgICAgICMgRklYTUU6IFRoaXMgd2lsbCBicmVhayBpZiB3ZSBldmVyIHJl
LW9yZGVyIGF0dGFjaG1lbnQgZmxhZ3MKICAgICAgICAgaWYgZmxhZ19uYW1lID09ICJyZXZpZXci
OgogICAgICAgICAgICAgcmV0dXJuIHNlbGYuYnJvd3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2Vs
ZWN0JywgbnI9MCkKLSAgICAgICAgaWYgZmxhZ19uYW1lID09ICJjb21taXQtcXVldWUiOgorICAg
ICAgICBlbGlmIGZsYWdfbmFtZSA9PSAiY29tbWl0LXF1ZXVlIjoKICAgICAgICAgICAgIHJldHVy
biBzZWxmLmJyb3dzZXIuZmluZF9jb250cm9sKHR5cGU9J3NlbGVjdCcsIG5yPTEpCisgICAgICAg
IGVsaWYgZmxhZ19uYW1lID09ICJpbi1yaWV0dmVsZCI6CisgICAgICAgICAgICByZXR1cm4gc2Vs
Zi5icm93c2VyLmZpbmRfY29udHJvbCh0eXBlPSdzZWxlY3QnLCBucj0yKQogICAgICAgICByYWlz
ZSBFeGNlcHRpb24oIkRvbid0IGtub3cgaG93IHRvIGZpbmQgZmxhZyBuYW1lZCBcIiVzXCIiICUg
ZmxhZ19uYW1lKQogCiAgICAgZGVmIGNsZWFyX2F0dGFjaG1lbnRfZmxhZ3Moc2VsZiwKQEAgLTcz
Miw4ICs3NTgsOCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGF0dGFjaG1lbnRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxhZ19uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWUs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWVudF90ZXh0LAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGFkZGl0aW9uYWxfY29tbWVudF90ZXh0KToKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb21tZW50X3RleHQ9Tm9uZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsX2NvbW1lbnRfdGV4dD1Ob25lKToKICAgICAgICAg
IyBGSVhNRTogV2UgbmVlZCBhIHdheSB0byB0ZXN0IHRoaXMgZnVuY3Rpb24gb24gYSBsaXZlIGJ1
Z3ppbGxhCiAgICAgICAgICMgaW5zdGFuY2UuCiAKQEAgLTc0OCw3ICs3NzQsMTAgQEAgY2xhc3Mg
QnVnemlsbGEob2JqZWN0KToKIAogICAgICAgICBzZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFj
aG1lbnRfdXJsX2Zvcl9pZChhdHRhY2htZW50X2lkLCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJy
b3dzZXIuc2VsZWN0X2Zvcm0obnI9MSkKLSAgICAgICAgc2VsZi5icm93c2VyLnNldF92YWx1ZShj
b21tZW50X3RleHQsIG5hbWU9J2NvbW1lbnQnLCBucj0wKQorCisgICAgICAgIGlmIGNvbW1lbnRf
dGV4dDoKKyAgICAgICAgICAgIHNlbGYuYnJvd3Nlci5zZXRfdmFsdWUoY29tbWVudF90ZXh0LCBu
YW1lPSdjb21tZW50JywgbnI9MCkKKwogICAgICAgICBzZWxmLl9maW5kX3NlbGVjdF9lbGVtZW50
X2Zvcl9mbGFnKGZsYWdfbmFtZSkudmFsdWUgPSAoZmxhZ192YWx1ZSwpCiAgICAgICAgIHNlbGYu
YnJvd3Nlci5zdWJtaXQoKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHkKaW5kZXggNGM0NGNkZjM1
YjU1MjczYmExMWYyYmU4Y2RkZGI0YWIwOTgxOTk0Ny4uMzUyMmQ4MzkwYzU2OGMxN2NmYmU1OWEz
YzAzMGQyMDAyNzM4NWUwYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbmV0L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYV91bml0dGVzdC5weQpAQCAtOTQsNiArOTQs
MTEgQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAg
ICAgICBzdGF0dXM9IisiCiAgICAgICAgICAgICAgICAgc2V0dGVyPSJ0d29AdGVzdC5jb20iCiAg
ICAgICAgICAgIC8+CisgICAgICAgICAgPGZsYWcgbmFtZT0iaW4tcmlldHZlbGQiCisgICAgICAg
ICAgICAgICAgaWQ9IjE3OTMzIgorICAgICAgICAgICAgICAgIHN0YXR1cz0iKyIKKyAgICAgICAg
ICAgICAgICBzZXR0ZXI9InRocmVlQHRlc3QuY29tIgorICAgICAgICAgICAvPgogICAgICAgICA8
L2F0dGFjaG1lbnQ+CiAnJycKICAgICBfZXhwZWN0ZWRfZXhhbXBsZV9hdHRhY2htZW50X3BhcnNp
bmcgPSB7CkBAIC0xMDgsNiArMTEzLDggQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRl
c3RDYXNlKToKICAgICAgICAgJ3Jldmlld2VyX2VtYWlsJyA6ICdvbmVAdGVzdC5jb20nLAogICAg
ICAgICAnY29tbWl0LXF1ZXVlJyA6ICcrJywKICAgICAgICAgJ2NvbW1pdHRlcl9lbWFpbCcgOiAn
dHdvQHRlc3QuY29tJywKKyAgICAgICAgJ2luLXJpZXR2ZWxkJzogJysnLAorICAgICAgICAncmll
dHZlbGRfdXBsb2FkZXJfZW1haWwnOiAndGhyZWVAdGVzdC5jb20nLAogICAgICAgICAnYXR0YWNo
ZXJfZW1haWwnIDogJ2NocmlzdGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20nLAogICAgIH0K
IApAQCAtMTg4LDEyICsxOTUsMTIgQEAgcmVtb3ZlZC1iZWNhdXNlLWl0LXdhcy1yZWFsbHktbG9u
ZwogWkVacGJtbHphRXh2WVdSWGFYUm9VbVZoYzI5dU9uSmxZWE52YmwwN0NpdDlDaXNLSUVCbGJt
UUtJQW9nSTJWdVpHbG1DZz09CiA8L2RhdGE+ICAgICAgICAKICAKLSAgICAgICAgICAgICAgPGZs
YWcgbmFtZT0icmV2aWV3IgotICAgICAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCi0gICAgICAg
ICAgICAgICAgICAgIHN0YXR1cz0iPyIKLSAgICAgICAgICAgICAgICAgICAgc2V0dGVyPSJtanNA
YXBwbGUuY29tIgotICAgICAgICAgICAgICAgLz4gCi0gICAgICAgICAgPC9hdHRhY2htZW50PiAK
KyAgICAgICAgICAgIDxmbGFnIG5hbWU9InJldmlldyIKKyAgICAgICAgICAgICAgICBpZD0iMjc2
MDIiCisgICAgICAgICAgICAgICAgc3RhdHVzPSI/IgorICAgICAgICAgICAgICAgIHNldHRlcj0i
bWpzQGFwcGxlLmNvbSIKKyAgICAgICAgICAgIC8+CisgICAgICAgIDwvYXR0YWNobWVudD4KICAg
ICA8L2J1Zz4KIDwvYnVnemlsbGE+CiAiIiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL25ldC9yaWV0dmVsZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvY29tbW9uL25ldC9yaWV0dmVsZC5weQppbmRleCBjMGQ2MTE5NTlhMTg3NWY4M2Uy
YTExNjBmOGNiZGUwMWQ4YzVmMjA5Li5kY2RhOWE3MDJlMmQzNmUxODc1ZWNhMjZhODhhN2Y3OWFi
Y2JmZTU2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvcmlldHZlbGQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L3JpZXR2ZWxkLnB5CkBAIC03NCw3ICs3NCw3IEBAIGNsYXNzIFJpZXR2ZWxkKG9iamVjdCk6
CiAgICAgICAgICMgVXNlIFJlYWxNYWluIGluc3RlYWQgb2YgY2FsbGluZyB1cGxvYWQgZnJvbSB0
aGUgY29tbWFuZGxpbmUgc28gdGhhdAogICAgICAgICAjIHdlIGNhbiBwYXNzIGluIHRoZSBkaWZm
IG91cnNlbHZlcy4gT3RoZXJ3aXNlLCB1cGxvYWQgd2lsbCBqdXN0IHVzZQogICAgICAgICAjIGdp
dCBkaWZmIGZvciBnaXQgY2hlY2tvdXRzLCB3aGljaCBkb2Vzbid0IHJlc3BlY3QgLS1zcXVhc2gg
YW5kIC0tZ2l0LWNvbW1pdC4KLSAgICAgICAgaXNzdWUsIHBhdGNoc2V0ID0gdXBsb2FkLlJlYWxN
YWluKGFyZ3NbMTpdLCBkYXRhPWRpZmYpCisgICAgICAgIGlzc3VlLCBwYXRjaHNldCA9IHVwbG9h
ZC5SZWFsTWFpbihhcmdzLCBkYXRhPWRpZmYpCiAKICAgICAgICAgIyBSZXNldCBsb2dnaW5nIGxl
dmVsIHRvIHRoZSBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5z
ZXRMZXZlbChvbGRfbGV2ZWxfbmFtZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCBhMjgzZGE5ZGMyZWQ4ZTEw
ZmMwZTBjMjhkNDI2ZWM2Nzg4ZThmODRlLi5hODViMDlhZDQ0ZTJhNTgxMGFiYmUyNzU5ZTY3ZmIw
ZjBjYzNmYjlmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC0xODIsNiArMTgyLDE4IEBAIGNsYXNzIEJ1aWxk
QXR0YWNobWVudChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQsIFByb2Nlc3NBdHRhY2ht
ZW50c01peGluKToKICAgICBdCiAKIAorY2xhc3MgUG9zdEF0dGFjaG1lbnRUb1JpZXR2ZWxkKEFi
c3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgor
ICAgIG5hbWUgPSAicG9zdC1hdHRhY2htZW50LXRvLXJpZXR2ZWxkIgorICAgIGhlbHBfdGV4dCA9
ICJVcGxvYWRzIGEgYnVnemlsbGEgYXR0YWNobWVudCB0byByaWV0dmVsZCIKKyAgICBhcmd1bWVu
dHNfbmFtZXMgPSAiQVRUQUNITUVOVElEIgorICAgIG1haW5fc3RlcHMgPSBbCisgICAgICAgIHN0
ZXBzLkNsZWFuV29ya2luZ0RpcmVjdG9yeSwKKyAgICAgICAgc3RlcHMuVXBkYXRlLAorICAgICAg
ICBzdGVwcy5BcHBseVBhdGNoLAorICAgICAgICBzdGVwcy5Qb3N0Q29kZVJldmlldywKKyAgICBd
CisKKwogY2xhc3MgQWJzdHJhY3RQYXRjaEFwcGx5aW5nQ29tbWFuZChBYnN0cmFjdFBhdGNoU2Vx
dWVuY2luZ0NvbW1hbmQpOgogICAgIHByZXBhcmVfc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBzLkVu
c3VyZUxvY2FsQ29tbWl0SWZOZWVkZWQsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5k
ZXggNGRkOWQ3ZjRjMTk3ZGM0OTc0MGMxMzM5MDBmM2FkMzIyZTkyNzA3Ny4uOTZhZTlkYWMyZjZl
NjAxMTQ0MmFhZDM0NTMzNTAwYWU5NTc0MDA1MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVz
dC5weQpAQCAtMTAyLDYgKzEwMiwxMCBAQCBjbGFzcyBEb3dubG9hZENvbW1hbmRzVGVzdChDb21t
YW5kc1Rlc3QpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiUHJvY2Vzc2luZyAxIHBhdGNo
IGZyb20gMSBidWcuXG5VcGRhdGluZyB3b3JraW5nIGRpcmVjdG9yeVxuUHJvY2Vzc2luZyBwYXRj
aCAxOTcgZnJvbSBidWcgNDIuXG5CdWlsZGluZyBXZWJLaXRcbiIKICAgICAgICAgc2VsZi5hc3Nl
cnRfZXhlY3V0ZV9vdXRwdXRzKEJ1aWxkQXR0YWNobWVudCgpLCBbMTk3XSwgb3B0aW9ucz1zZWxm
Ll9kZWZhdWx0X29wdGlvbnMoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAor
ICAgIGRlZiB0ZXN0X3Bvc3RfYXR0YWNobWVudF90b19yaWV0dmVsZChzZWxmKToKKyAgICAgICAg
ZXhwZWN0ZWRfc3RkZXJyID0gIlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLlxuVXBkYXRp
bmcgd29ya2luZyBkaXJlY3RvcnlcblByb2Nlc3NpbmcgcGF0Y2ggMTk3IGZyb20gYnVnIDQyLlxu
TU9DSzogVXBsb2FkaW5nIHBhdGNoIHRvIHJpZXR2ZWxkXG4iCisgICAgICAgIHNlbGYuYXNzZXJ0
X2V4ZWN1dGVfb3V0cHV0cyhQb3N0QXR0YWNobWVudFRvUmlldHZlbGQoKSwgWzE5N10sIG9wdGlv
bnM9c2VsZi5fZGVmYXVsdF9vcHRpb25zKCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRl
cnIpCisKICAgICBkZWYgdGVzdF9sYW5kX2F0dGFjaG1lbnQoc2VsZik6CiAgICAgICAgICMgRklY
TUU6IFRoaXMgZXhwZWN0ZWQgcmVzdWx0IGlzIGltcGVyZmVjdCwgbm90aWNlIGhvdyBpdCdzIHNl
ZWluZyB0aGUgc2FtZSBwYXRjaCBhcyBzdGlsbCB0aGVyZSBhZnRlciBpdCB0aG91Z2h0IGl0IHdv
dWxkIGhhdmUgY2xlYXJlZCB0aGUgZmxhZ3MuCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIi
IlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggNzhjYTcyOTE4NzQ0
NTliODhhZjhmNWNhNGZmZmU4ZDQwOTMyNmEzZi4uNGFkNzc4MDcxNjdmMDM5NGY2OTRiNmRhZjQw
NGQ3MzFhMGM0MTRmYSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3F1ZXVlcy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CkBAIC0yOTIsNiArMjkyLDU2IEBAIGNsYXNzIENvbW1p
dFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAg
ICAgICAgdmFsaWRhdG9yLnJlamVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShzdGF0ZVsicGF0
Y2giXS5pZCgpLCBjbHMuX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNj
cmlwdF9lcnJvcikpCiAKIAorY2xhc3MgUmlldHZlbGRVcGxvYWRRdWV1ZShBYnN0cmFjdFBhdGNo
UXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcik6CisgICAgbmFtZSA9ICJyaWV0dmVsZC11
cGxvYWQtcXVldWUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIEFic3RyYWN0
UGF0Y2hRdWV1ZS5fX2luaXRfXyhzZWxmKQorCisgICAgIyBBYnN0cmFjdFBhdGNoUXVldWUgbWV0
aG9kcworCisgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgorICAgICAgICBwYXRjaGVzID0g
c2VsZi50b29sLmJ1Z3MucXVlcmllcy5mZXRjaF9wYXRjaGVzX2Zyb21fcmlldHZlbGRfcXVldWUo
KQorICAgICAgICBpZiBwYXRjaGVzOgorICAgICAgICAgICAgcmV0dXJuIHBhdGNoZXNbMF0KKyAg
ICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygiRW1wdHkgcXVldWUiKQorCisgICAgZGVmIHNob3Vs
ZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5fdXBk
YXRlX3N0YXR1cygiVXBsb2FkaW5nIHBhdGNoIiwgcGF0Y2gpCisgICAgICAgIHJldHVybiBUcnVl
CisKKyAgICBkZWYgcHJvY2Vzc193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgorICAgICAgICB0cnk6
CisgICAgICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goWyJwb3N0LWF0dGFjaG1lbnQtdG8t
cmlldHZlbGQiLCAiLS1mb3JjZS1jbGVhbiIsICItLW5vbi1pbnRlcmFjdGl2ZSIsICItLXBhcmVu
dC1jb21tYW5kPXJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSIsIHBhdGNoLmlkKCldKQorICAgICAgICAg
ICAgc2VsZi5fZGlkX3Bhc3MocGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAg
ICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CisgICAgICAgICAgICBpZiBlLmV4aXRfY29kZSAhPSBR
dWV1ZUVuZ2luZS5oYW5kbGVkX2Vycm9yX2NvZGU6CisgICAgICAgICAgICAgICAgc2VsZi5fZGlk
X2ZhaWwocGF0Y2gpCisgICAgICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgX3JlamVjdF9wYXRj
aChzZWxmLCBwYXRjaCwgbWVzc2FnZSk6CisgICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWplY3Rp
bmcgcGF0Y2ggJXMgZnJvbSByaWV0dmVsZC1xdWV1ZS4iICUgcGF0Y2guaWQoKQorICAgICAgICBz
ZWxmLnRvb2wuYnVncy5zZXRfZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlkKCksICJpbi1yaWV0
dmVsZCIsICItIiwgY29tbWVudF90ZXh0LCBtZXNzYWdlKQorCisgICAgZGVmIGhhbmRsZV91bmV4
cGVjdGVkX2Vycm9yKHNlbGYsIHBhdGNoLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5fcmVqZWN0
X3BhdGNoKHBhdGNoLCBtZXNzYWdlKQorCisgICAgIyBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIg
bWV0aG9kcworCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBfZXJyb3JfbWVzc2FnZV9mb3Jf
YnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgaWYgbm90IHNjcmlw
dF9lcnJvci5vdXRwdXQ6CisgICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9yLm1lc3NhZ2Vf
d2l0aF9vdXRwdXQoKQorICAgICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1c19zZXJ2ZXIu
cmVzdWx0c191cmxfZm9yX3N0YXR1cyhzdGF0dXNfaWQpCisgICAgICAgIHJldHVybiAiJXNcbkZ1
bGwgb3V0cHV0OiAlcyIgJSAoc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSwgcmVz
dWx0c19saW5rKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGhhbmRsZV9zY3JpcHRfZXJy
b3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgc3RhdHVzX2lkID0g
Y2xzLl91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlwdF9l
cnJvcikKKyAgICAgICAgc2VsZi5fcmVqZWN0X3BhdGNoKHBhdGNoLCBjbHMuX2Vycm9yX21lc3Nh
Z2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNjcmlwdF9lcnJvcikpCisKKwogY2xhc3MgQWJz
dHJhY3RSZXZpZXdRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUsIFBlcnNpc3RlbnRQYXRjaENvbGxl
Y3Rpb25EZWxlZ2F0ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICBkZWYgX19pbml0
X18oc2VsZiwgb3B0aW9ucz1Ob25lKToKICAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5p
dF9fKHNlbGYsIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCAwYmQ0MmZi
YWZiZjVlMGQ5NzNmZWE3NWIxYzU3MzczYmI1ODc5M2I5Li5iNmEwY2JkMTFiNDRmN2U1NjU0ZWVh
ZDFiYWRkMGQ1MTk1YjFmMGI5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE3MSw2
ICsxNzEsMTYgQEAgTU9DSzogdXBkYXRlX3N0YXR1czogY29tbWl0LXF1ZXVlIEJ1aWxkZXJzIFsi
QnVpbGRlcjIiXSBhcmUgcmVkLiBTZWUgaHR0cDovL2J1aWwKICAgICAgICAgdG9vbC5leGVjdXRp
dmUucnVuX2FuZF90aHJvd19pZl9mYWlsLmFzc2VydF9jYWxsZWRfd2l0aChleHBlY3RlZF9ydW5f
YXJncykKIAogCitjbGFzcyBSaWV0dmVsZFVwbG9hZFF1ZXVlVGVzdChRdWV1ZXNUZXN0KToKKyAg
ICBkZWYgdGVzdF9yaWV0dmVsZF91cGxvYWRfcXVldWUoc2VsZik6CisgICAgICAgIGV4cGVjdGVk
X3N0ZGVyciA9IHsKKyAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogIkNBVVRJT046IHJp
ZXR2ZWxkLXVwbG9hZC1xdWV1ZSB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMgaW4gXCIl
c1wiXG5SdW5uaW5nIFdlYktpdCByaWV0dmVsZC11cGxvYWQtcXVldWUuXG4iICUgTW9ja1NDTS5m
YWtlX2NoZWNrb3V0X3Jvb3QsCisgICAgICAgICAgICAic2hvdWxkX3Byb2NlZWRfd2l0aF93b3Jr
X2l0ZW0iOiAiTU9DSzogdXBkYXRlX3N0YXR1czogcmlldHZlbGQtdXBsb2FkLXF1ZXVlIFVwbG9h
ZGluZyBwYXRjaFxuIiwKKyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6ICJNT0NLOiB1
cGRhdGVfc3RhdHVzOiByaWV0dmVsZC11cGxvYWQtcXVldWUgUGFzc1xuIiwKKyAgICAgICAgfQor
ICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFJpZXR2ZWxkVXBsb2FkUXVldWUoKSwg
ZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworCiBjbGFzcyBTdHlsZVF1ZXVlVGVz
dChRdWV1ZXNUZXN0KToKICAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToKICAgICAgICAg
ZXhwZWN0ZWRfc3RkZXJyID0gewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggNDc5N2VmNjQzZGVlZDhhOTM1MGE2NzJm
YTcwMGE3MTBjNTljYmRjNS4uMTQ5MzU4Yzk1ODczZTA5OGQwMzEyNjgwN2NhOGZmNTUwZmU1Yjlk
MiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFu
ZHMvdXBsb2FkLnB5CkBAIC0xNzIsNyArMTcyLDYgQEAgY2xhc3MgUG9zdChBYnN0cmFjdFBhdGNo
VXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBzLkNoZWNrU3R5
bGUsCiAgICAgICAgIHN0ZXBzLkNvbmZpcm1EaWZmLAotICAgICAgICBzdGVwcy5Qb3N0Q29kZVJl
dmlldywKICAgICAgICAgc3RlcHMuT2Jzb2xldGVQYXRjaGVzLAogICAgICAgICBzdGVwcy5Qb3N0
RGlmZiwKICAgICBdCkBAIC0yMTcsNyArMjE2LDYgQEAgY2xhc3MgVXBsb2FkKEFic3RyYWN0UGF0
Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuUHJlcGFyZUNoYW5nZUxvZywKICAg
ICAgICAgc3RlcHMuRWRpdENoYW5nZUxvZywKICAgICAgICAgc3RlcHMuQ29uZmlybURpZmYsCi0g
ICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAogICAgICAgICBzdGVwcy5PYnNvbGV0ZVBhdGNo
ZXMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZmLAogICAgIF0KZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0
LnB5CmluZGV4IDhmNjQ4M2FjN2RhMTJmNGQ4ZTlkMTU5NDEyNDQyZTJlZmNjYWI5YzkuLjRhMGYx
NTA0OWEyZDkwZDA3MGM3NDI3OTdiMTE4Y2MyY2YzZTY5MjcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRlc3QucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZF91bml0
dGVzdC5weQpAQCAtNTUsOCArNTUsNiBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rlc3QoQ29tbWFu
ZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9u
IgogICAgICAgICBvcHRpb25zLnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9u
cy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMg
YSByZWFsIFNDTSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxz
ZQogICAgICAgICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAi
IiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTov
Ly4uLgpAQCAtODUsOCArODMsNiBAQCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBs
ZS5jb20vNDIKICAgICAgICAgb3B0aW9ucy5kZXNjcmlwdGlvbiA9ICJNT0NLIGRlc2NyaXB0aW9u
IgogICAgICAgICBvcHRpb25zLnJlcXVlc3RfY29tbWl0ID0gRmFsc2UKICAgICAgICAgb3B0aW9u
cy5yZXZpZXcgPSBUcnVlCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMg
YSByZWFsIFNDTSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxz
ZQogICAgICAgICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAi
IiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTov
Ly4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0
b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5Cmlu
ZGV4IDQ3ZmZmMWJmOTVjZDg5YTg4MjNjMmFlY2QyMDM3ZTkyY2EwM2FiNzguLjJkZDkyNjljMzY0
MWVjYjhiZWM0ODVhZDk1NjhkMzVlODk2OGE3ZTUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTg2LDYgKzg2LDcgQEAgX3BhdGNoMyA9IHsK
ICAgICAibmFtZSI6ICJQYXRjaDMiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJp
c19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAi
PyIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCiB9CkBAIC0xMTIs
NiArMTEzLDcgQEAgX3BhdGNoNSA9IHsKICAgICAibmFtZSI6ICJQYXRjaDUiLAogICAgICJpc19v
YnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxk
IjogIj8iLAogICAgICJyZXZpZXciOiAiKyIsCiAgICAgInJldmlld2VyX2VtYWlsIjogImZvb0Bi
YXIuY29tIiwKICAgICAiYXR0YWNoZXJfZW1haWwiOiAiZXJpY0B3ZWJraXQub3JnIiwKQEAgLTEy
NSw2ICsxMjcsNyBAQCBfcGF0Y2g2ID0geyAjIFZhbGlkIGNvbW1pdHRlciwgYnV0IG5vIHJldmll
d2VyLgogICAgICJuYW1lIjogIlJPTExPVVQgb2YgcjM0ODkiLAogICAgICJpc19vYnNvbGV0ZSI6
IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIi0iLAog
ICAgICJjb21taXQtcXVldWUiOiAiKyIsCiAgICAgImNvbW1pdHRlcl9lbWFpbCI6ICJmb29AYmFy
LmNvbSIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCkBAIC0xMzgs
NiArMTQxLDcgQEAgX3BhdGNoNyA9IHsgIyBWYWxpZCByZXZpZXcsIHBhdGNoIGlzIG1hcmtlZCBv
YnNvbGV0ZS4KICAgICAibmFtZSI6ICJQYXRjaDciLAogICAgICJpc19vYnNvbGV0ZSI6IFRydWUs
CiAgICAgImlzX3BhdGNoIjogVHJ1ZSwKKyAgICAiaW4tcmlldHZlbGQiOiAiKyIsCiAgICAgInJl
dmlldyI6ICIrIiwKICAgICAicmV2aWV3ZXJfZW1haWwiOiAiZm9vQGJhci5jb20iLAogICAgICJh
dHRhY2hlcl9lbWFpbCI6ICJlcmljQHdlYmtpdC5vcmciLApAQCAtMjIxLDYgKzIyNSw4IEBAIGNs
YXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMoTW9jayk6CiAgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJv
bV9wZW5kaW5nX2NvbW1pdF9saXN0KHNlbGYpOgogICAgICAgICByZXR1cm4gc3VtKFtidWcucmV2
aWV3ZWRfcGF0Y2hlcygpIGZvciBidWcgaW4gc2VsZi5fYWxsX2J1Z3MoKV0sIFtdKQogCisgICAg
ZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9yaWV0dmVsZF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0
dXJuIHN1bShbYnVnLmluX3JpZXR2ZWxkX3F1ZXVlX3BhdGNoZXMoKSBmb3IgYnVnIGluIHNlbGYu
X2FsbF9idWdzKCldLCBbXSkKIAogIyBGSVhNRTogQnVnemlsbGEgaXMgdGhlIHdyb25nIE1vY2st
cG9pbnQuICBPbmNlIHdlIGhhdmUgYSBCdWd6aWxsYU5ldHdvcmsKICMgICAgICAgIGNsYXNzIHdl
IHNob3VsZCBtb2NrIHRoYXQgaW5zdGVhZC4KQEAgLTUwNyw2ICs1MTMsMTUgQEAgY2xhc3MgTW9j
a0V4ZWN1dGUoTW9jayk6CiAgICAgICAgIHJldHVybiAiTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJv
Y2VzcyIKIAogCitjbGFzcyBNb2NrUmlldHZlbGQoKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBleGVjdXRpdmUsIGRyeXJ1bj1GYWxzZSk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBwb3N0
KHNlbGYsIGRpZmYsIG1lc3NhZ2U9Tm9uZSwgY29kZXJldmlld19pc3N1ZT1Ob25lLCBjYz1Ob25l
KToKKyAgICAgICAgbG9nKCJNT0NLOiBVcGxvYWRpbmcgcGF0Y2ggdG8gcmlldHZlbGQiKQorCisK
IGNsYXNzIE1vY2tUb29sKCk6CiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgbG9nX2V4ZWN1dGl2
ZT1GYWxzZSk6CkBAIC01MjAsNyArNTM1LDcgQEAgY2xhc3MgTW9ja1Rvb2woKToKICAgICAgICAg
c2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tvdXQoKQogICAgICAgICBzZWxmLnN0YXR1c19zZXJ2
ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKICAgICAgICAgc2VsZi5pcmNfcGFzc3dvcmQgPSAiTU9D
SyBpcmMgcGFzc3dvcmQiCi0gICAgICAgIHNlbGYuY29kZXJldmlldyA9IFJpZXR2ZWxkKHNlbGYu
ZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmNvZGVyZXZpZXcgPSBNb2NrUmlldHZlbGQoc2VsZi5l
eGVjdXRpdmUpCiAKICAgICBkZWYgc2NtKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fc2Nt
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0
aW9ucy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25z
LnB5CmluZGV4IDUyNGEyNTI5OGUzYjNkZmQwNzZmMmFlMTM2NGY1MjZjZGZiMDA5ODIuLjNjNjJk
ZmE2MTU1Y2Y3MzRiODIxODQ3ZGZjODE4ZmUwMWRhNjllODMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CkBAIC00MCw3ICs0MCw2
IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToKICAgICBjb25maXJtID0gbWFrZV9vcHRpb24oIi0t
bm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVmYXVs
dD1UcnVlLCBoZWxwPSJTa2lwIGNvbmZpcm1hdGlvbiBzdGVwcy4iKQogICAgIGRlc2NyaXB0aW9u
ID0gbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVzY3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwgdHlw
ZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRpb24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJpbmcg
Zm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0OiBcInBhdGNoXCIpIikKICAgICBlbWFpbCA9IG1h
a2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9uPSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9
ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVzcyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQotICAg
IGZhbmN5X3JldmlldyA9IG1ha2Vfb3B0aW9uKCItLWZhbmN5LXJldmlldyIsIGFjdGlvbj0ic3Rv
cmVfdHJ1ZSIsIGRlc3Q9ImZhbmN5X3JldmlldyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IihFeHBl
cmltZW50YWwpIFVwbG9hZCB0aGUgcGF0Y2ggdG8gUmlldHZlbGQgY29kZSByZXZpZXcgdG9vbC4i
KQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9vcHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249
InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9jbGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNs
ZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9yZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxv
Y2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikKICMgRklYTUU6IE1ha2UgY29tbWl0IHJhbmdlcyB0
cmVhdCBlYWNoIGNvbW1pdCBzZXBhcmF0ZWx5IGluc3RlYWQgb2Ygc3F1YXNoaW5nIHRoZW0gaW50
byBvbmUuCiAgICAgZ2l0X2NvbW1pdCA9IG1ha2Vfb3B0aW9uKCItLWdpdC1jb21taXQiLCBhY3Rp
b249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1pdCIsIGhlbHA9IkxvY2FsIGdpdCBjb21taXQgdG8g
dXBsb2FkL2xhbmQuIElmIGEgcmFuZ2UsIHRoZSBjb21taXRzIGFyZSBzcXVhc2hlZCBpbnRvIG9u
ZS4iKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBz
L3Bvc3Rjb2RlcmV2aWV3LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0
ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CmluZGV4IDgzOTc1MTkwMjg0NTdjMjBjYWRiMzVlOWY3NTU0
Y2I5ZDcyMDFhY2MuLmY5YmM2ODU2Yjg5MWNiNDgxNjcwNmQ2MGE4YTk4MzljOTBiN2Q5NzEgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29k
ZXJldmlldy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMv
cG9zdGNvZGVyZXZpZXcucHkKQEAgLTM2LDMzICszNiwyNyBAQCBjbGFzcyBQb3N0Q29kZVJldmll
dyhBYnN0cmFjdFN0ZXApOgogICAgICAgICByZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSAr
IFsKICAgICAgICAgICAgIE9wdGlvbnMuY2MsCiAgICAgICAgICAgICBPcHRpb25zLmRlc2NyaXB0
aW9uLAotICAgICAgICAgICAgT3B0aW9ucy5mYW5jeV9yZXZpZXcsCiAgICAgICAgIF0KIAogICAg
IGRlZiBydW4oc2VsZiwgc3RhdGUpOgotICAgICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5mYW5j
eV9yZXZpZXc6Ci0gICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcGF0Y2ggPSBzdGF0ZS5nZXQo
InBhdGNoIikKKyAgICAgICAgYnVnX2lkID0gcGF0Y2guYnVnX2lkKCkKKyAgICAgICAgdGl0bGUg
PSBwYXRjaC5uYW1lKCkKIAotICAgICAgICBidWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIpCi0g
ICAgICAgIGlmIG5vdCBidWdfaWQ6Ci0gICAgICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNz
YWdlPSJDYW5ub3QgdXBsb2FkIGEgZmFuY3kgcmV2aWV3IHdpdGhvdXQgYSBidWcgSUQuIikKLQot
ICAgICAgICBtZXNzYWdlID0gc2VsZi5fb3B0aW9ucy5kZXNjcmlwdGlvbgotICAgICAgICBpZiBu
b3QgbWVzc2FnZToKLSAgICAgICAgICAgICMgSWYgd2UgaGF2ZSBhbiBpc3N1ZSBudW1iZXIsIHRo
ZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUgbGFiZWwKLSAgICAgICAgICAgICMgb2YgdGhlIG5l
dyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNvbWVzIHRoZSB0aXRsZSBvZiB0aGUgd2hvbGUKLSAg
ICAgICAgICAgICMgaXNzdWUuCi0gICAgICAgICAgICBpZiBzdGF0ZS5nZXQoImJ1Z190aXRsZSIp
OgotICAgICAgICAgICAgICAgICMgVGhpcyBpcyB0aGUgY29tbW9uIGNhc2UgZm9yIHRoZSB0aGUg
Zmlyc3QgInVwbG9hZCIgY29tbWFuZC4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gc3RhdGUu
Z2V0KCJidWdfdGl0bGUiKQotICAgICAgICAgICAgZWxpZiBidWdfaWQ6Ci0gICAgICAgICAgICAg
ICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFuZAot
ICAgICAgICAgICAgICAgICMgc3Vic2VxdWVudCBydW5zIG9mIHRoZSAidXBsb2FkIiBjb21tYW5k
LgotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAiQ29kZSByZXZpZXcgZm9yICVzIiAlIHNlbGYu
X3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdfaWQoYnVnX2lkKQotICAgICAgICAgICAgZWxzZToK
LSAgICAgICAgICAgICAgICAjIFVucmVhY2hhYmxlIHdpdGggb3VyIGN1cnJlbnQgY29tbWFuZHMs
IGJ1dCB3ZSBtaWdodCBoaXQKLSAgICAgICAgICAgICAgICAjIHRoaXMgY2FzZSBpZiB3ZSBzdXBw
b3J0IGJ1Zy1sZXNzIGNvZGUgcmV2aWV3cy4KLSAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkNv
ZGUgcmV2aWV3IgorICAgICAgICAjIElmIHRoZSBpc3N1ZSBhbHJlYWR5IGV4aXN0cywgdGhlbiB0
aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJlbAorICAgICAgICAjIG9mIHRoZSBuZXcgcGF0Y2gu
IE90aGVyd2lzZSwgaXQgYmVjb21lcyB0aGUgdGl0bGUgb2YgdGhlIHdob2xlCisgICAgICAgICMg
aXNzdWUuCisgICAgICAgIGlmIHRpdGxlOgorICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21t
b24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAidXBsb2FkIiBjb21tYW5kLgorICAgICAgICAgICAg
bWVzc2FnZSA9IHRpdGxlCisgICAgICAgIGVsaWYgYnVnX2lkOgorICAgICAgICAgICAgIyBUaGlz
IGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFuZAorICAgICAgICAg
ICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhlICJ1cGxvYWQiIGNvbW1hbmQuCisgICAgICAgICAg
ICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IGZvciAlcyIgJSBzZWxmLl90b29sLmJ1Z3MuYnVnX3Vy
bF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgVW5yZWFj
aGFibGUgd2l0aCBvdXIgY3VycmVudCBjb21tYW5kcywgYnV0IHdlIG1pZ2h0IGhpdAorICAgICAg
ICAgICAgIyB0aGlzIGNhc2UgaWYgd2Ugc3VwcG9ydCBidWctbGVzcyBjb2RlIHJldmlld3MuCisg
ICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IgogCiAgICAgICAgICMgVXNlIHRoZSBi
dWcgSUQgYXMgdGhlIHJpZXR2ZWxkIGlzc3VlIG51bWJlci4gVGhpcyBtZWFucyByaWV0dmVsZCBj
b2RlIHJldmlld3MKICAgICAgICAgIyB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJlbnQg
cGF0Y2hlcyBvbiBhIGJ1ZyB3aWxsIGJlIGEgYml0IHdvbmt5LCBidXQKQEAgLTcxLDMgKzY1LDUg
QEAgY2xhc3MgUG9zdENvZGVSZXZpZXcoQWJzdHJhY3RTdGVwKToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGVyZXZpZXdf
aXNzdWU9YnVnX2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2M9c2VsZi5fb3B0aW9ucy5jYykKKworICAgICAgICBzZWxmLl90b29sLmJ1Z3Mu
c2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRjaC5pZCgpLCAnaW4tcmlldHZlbGQnLCAnKycpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56897</attachid>
            <date>2010-05-24 09:19:29 -0700</date>
            <delta_ts>2010-05-24 12:05:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100524091928.patch</filename>
            <type>text/plain</type>
            <size>24367</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmNDhlMDMxNzQwYzAzYzA3ODliNGU0ZDNkOTZiMzgwMzhiMTEwMzA5Li5hNGFmMzc0
MWY1Y2I3ODMyZDMwNWFjNTAwZmFiZGY5ZWYxNDY0Y2UyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMTQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBSaWV0dmVsZFVwbG9h
ZFF1ZXVlIHRvIHVwbG9hZCBpbi1yaWV0dmVsZD8gcGF0Y2hlcyB0byByaWV0dmVsZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTgKKworICAgICAg
ICBQYXRjaGVzIHdpdGggaW4tcmlldHZlbGQ/IGdldCB1cGxvYWRlZCB0byByaWV0dmVsZCBhbmQg
Z2V0IG1hcmtlZAorICAgICAgICBpbi1yaWV0dmVsZCsuIElmIHRoZSB1cGxvYWQgZmFpbHMsIHRo
ZXkgYXJlIG1hcmtlZCBpbi1yaWV0dmVsZC0KKyAgICAgICAgYW5kIGFuIGVycm9yIGlzIGxvZ2dl
ZCB0byB0aGUgYnVnLCBsaWtlIHRoZSBjb21taXQtcXVldWUuCisKKyAgICAgICAgQWxzbywgZ2V0
IHJpZCBvZiAtLWZhbmN5LXJldmlldyBhbmQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIHRvIHJpZXR2
ZWxkCisgICAgICAgIHVzaW5nIHdlYmtpdC1wYXRjaCB1cGxvYWQvcG9zdC4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHk6CisKIDIwMTAtMDUtMjQgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEpl
cmRvbmVrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1Z3ppbGxhLnB5CmluZGV4IDI2ZDM2NTI4ZmM5N2YyYzE5ZTA4MGY2ZDAyOWQ5NmMzYWJiOWYw
NGUuLjFhNzZjMDlkMmZhMzlhNjc1YTk3NmJkYjNmZTJjZjk5MTRmOTQ3MjMgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEucHkKQEAg
LTExMyw2ICsxMTMsOSBAQCBjbGFzcyBBdHRhY2htZW50KG9iamVjdCk6CiAgICAgZGVmIGNvbW1p
dF9xdWV1ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFy
eS5nZXQoImNvbW1pdC1xdWV1ZSIpCiAKKyAgICBkZWYgaW5fcmlldHZlbGQoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJpbi1yaWV0dmVsZCIp
CisKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0
IHJldHVybgogICAgICAgICAjIHNlbGYuX2J1Z3ppbGxhKCkuYXR0YWNobWVudF91cmxfZm9yX2lk
KHNlbGYuaWQoKSkuIHNjbV91bml0dGVzdC5weQpAQCAtMjAxLDYgKzIwNCw5IEBAIGNsYXNzIEJ1
ZyhvYmplY3QpOgogICAgICAgICAjIGEgdmFsaWQgY29tbWl0dGVyLgogICAgICAgICByZXR1cm4g
ZmlsdGVyKGxhbWJkYSBwYXRjaDogcGF0Y2guY29tbWl0dGVyKCksIHBhdGNoZXMpCiAKKyAgICBk
ZWYgaW5fcmlldHZlbGRfcXVldWVfcGF0Y2hlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtwYXRj
aCBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzKCkgaWYgcGF0Y2guaW5fcmlldHZlbGQoKSA9PSAi
PyJdCisKIAogIyBBIGNvbnRhaW5lciBmb3IgYWxsIG9mIHRoZSBsb2dpYyBmb3IgbWFraW5nIGFu
ZCBwYXJzaW5nIGJ1emlsbGEgcXVlcmllcy4KIGNsYXNzIEJ1Z3ppbGxhUXVlcmllcyhvYmplY3Qp
OgpAQCAtMjY0LDYgKzI3MCwxOCBAQCBjbGFzcyBCdWd6aWxsYVF1ZXJpZXMob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIHN1bShbc2VsZi5fZmV0Y2hfYnVnKGJ1Z19pZCkuY29tbWl0X3F1ZXVlZF9w
YXRjaGVzKCkKICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1Z19pZCBpbiBzZWxmLmZldGNoX2J1
Z19pZHNfZnJvbV9jb21taXRfcXVldWUoKV0sIFtdKQogCisgICAgZGVmIF9mZXRjaF9idWdfaWRz
X2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgICMgcmlldHZlbGQtcXVldWUgcHJv
Y2Vzc2VzIGluLXJpZXR2ZWxkPyBwYXRjaGVzIGFuZCB0aGVuIG1hcmtzIHRoZW0gaW4tcmlldHZl
bGQtLysuCisgICAgICAgICMgRklYTUU6IFdlIHNob3VsZCBhbHNvIGluY2x1ZGUgcj8gcGF0Y2hl
cyB0aGF0IGRvbid0IGhhdmUgaW4tcmlldHZlbGQgc2V0IGF0IGFsbC4KKyAgICAgICAgIyBUaGF0
IHdpbGwgbWVhbiB0aGF0IHJpZXR2ZWxkIGNhbiBiZSB1c2VkIGV2ZW4gZm9yIHBlb3BsZSB3aG8g
ZG9uJ3QgdXBsb2FkIHdpdGggd2Via2l0LXBhdGNoLgorICAgICAgICAjIFdlJ2xsIHdhaXQgdGls
bCB0aGUgcXVldWUgaXMgcmVsaWFibGUgZm9yIGluLXJpZXR2ZWxkPyBwYXRjaGVzIGZpcnN0IHRo
b3VnaC4KKyAgICAgICAgcmlldHZlbGRfcXVldWVfdXJsID0gImJ1Z2xpc3QuY2dpP3F1ZXJ5X2Zv
cm1hdD1hZHZhbmNlZCZidWdfc3RhdHVzPVVOQ09ORklSTUVEJmJ1Z19zdGF0dXM9TkVXJmJ1Z19z
dGF0dXM9QVNTSUdORUQmYnVnX3N0YXR1cz1SRU9QRU5FRCZmaWVsZDAtMC0wPWZsYWd0eXBlcy5u
YW1lJnR5cGUwLTAtMD1lcXVhbHMmdmFsdWUwLTAtMD1pbi1yaWV0dmVsZCUzRiZvcmRlcj1MYXN0
K0NoYW5nZWQiCisgICAgICAgIHJldHVybiBzZWxmLl9mZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1
ZXJ5KHJpZXR2ZWxkX3F1ZXVlX3VybCkKKworICAgIGRlZiBmZXRjaF9wYXRjaGVzX2Zyb21fcmll
dHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgIHJldHVybiBzdW0oW3NlbGYuX2ZldGNoX2J1Zyhi
dWdfaWQpLmluX3JpZXR2ZWxkX3F1ZXVlX3BhdGNoZXMoKQorICAgICAgICAgICAgICAgICAgICBm
b3IgYnVnX2lkIGluIHNlbGYuX2ZldGNoX2J1Z19pZHNfZnJvbV9yaWV0dmVsZF9xdWV1ZSgpXSwg
W10pCisKICAgICBkZWYgX2ZldGNoX2J1Z19pZHNfZnJvbV9yZXZpZXdfcXVldWUoc2VsZik6CiAg
ICAgICAgIHJldmlld19xdWV1ZV91cmwgPSAiYnVnbGlzdC5jZ2k/cXVlcnlfZm9ybWF0PWFkdmFu
Y2VkJmJ1Z19zdGF0dXM9VU5DT05GSVJNRUQmYnVnX3N0YXR1cz1ORVcmYnVnX3N0YXR1cz1BU1NJ
R05FRCZidWdfc3RhdHVzPVJFT1BFTkVEJmZpZWxkMC0wLTA9ZmxhZ3R5cGVzLm5hbWUmdHlwZTAt
MC0wPWVxdWFscyZ2YWx1ZTAtMC0wPXJldmlldz8iCiAgICAgICAgIHJldHVybiBzZWxmLl9mZXRj
aF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJldmlld19xdWV1ZV91cmwpCkBAIC00NzQsNiArNDky
LDggQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAgICAgICAgc2VsZi5fcGFyc2VfYXR0YWNo
bWVudF9mbGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdyZXZpZXcnLCBhdHRhY2htZW50
LCAncmV2aWV3ZXJfZW1haWwnKQogICAgICAgICBzZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWco
CisgICAgICAgICAgICAgICAgZWxlbWVudCwgJ2luLXJpZXR2ZWxkJywgYXR0YWNobWVudCwgJ3Jp
ZXR2ZWxkX3VwbG9hZGVyX2VtYWlsJykKKyAgICAgICAgc2VsZi5fcGFyc2VfYXR0YWNobWVudF9m
bGFnKAogICAgICAgICAgICAgICAgIGVsZW1lbnQsICdjb21taXQtcXVldWUnLCBhdHRhY2htZW50
LCAnY29tbWl0dGVyX2VtYWlsJykKICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQKIApAQCAtNTky
LDcgKzYxMiw4IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb21tZW50X3RleHQ9Tm9uZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtfZm9yX3Jldmlldz1GYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IG1hcmtfZm9yX2NvbW1pdF9xdWV1ZT1GYWxzZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsIGJ1Z19pZD1Ob25lKToKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG1hcmtfZm9yX2xhbmRpbmc9RmFsc2UsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBidWdfaWQ9Tm9uZSk6CiAgICAgICAgIHNlbGYuYnJvd3NlclsnZGVzY3Jp
cHRpb24nXSA9IGRlc2NyaXB0aW9uCiAgICAgICAgIHNlbGYuYnJvd3NlclsnaXNwYXRjaCddID0g
KCIxIiwpCiAgICAgICAgIHNlbGYuYnJvd3NlclsnZmxhZ190eXBlLTEnXSA9ICgnPycsKSBpZiBt
YXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gnLCkKQEAgLTYwNCw2ICs2MjUsOSBAQCBjbGFzcyBCdWd6
aWxsYShvYmplY3QpOgogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5icm93c2VyWydm
bGFnX3R5cGUtMyddID0gKCdYJywpCiAKKyAgICAgICAgIyBBZGQgYWxsIHBhdGNoZXMgdG8gdGhl
IHJpZXR2ZWxkIHVwbG9hZCBxdWV1ZS4KKyAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUt
NCddID0gKCc/JywpCisKICAgICAgICAgaWYgYnVnX2lkOgogICAgICAgICAgICAgcGF0Y2hfbmFt
ZSA9ICJidWctJXMtJXMucGF0Y2giICUgKGJ1Z19pZCwgdGltZXN0YW1wKCkpCiAgICAgICAgIGVs
c2U6CkBAIC03MzAsOCArNzU0LDEwIEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAg
ICMgRklYTUU6IFRoaXMgd2lsbCBicmVhayBpZiB3ZSBldmVyIHJlLW9yZGVyIGF0dGFjaG1lbnQg
ZmxhZ3MKICAgICAgICAgaWYgZmxhZ19uYW1lID09ICJyZXZpZXciOgogICAgICAgICAgICAgcmV0
dXJuIHNlbGYuYnJvd3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2VsZWN0JywgbnI9MCkKLSAgICAg
ICAgaWYgZmxhZ19uYW1lID09ICJjb21taXQtcXVldWUiOgorICAgICAgICBlbGlmIGZsYWdfbmFt
ZSA9PSAiY29tbWl0LXF1ZXVlIjoKICAgICAgICAgICAgIHJldHVybiBzZWxmLmJyb3dzZXIuZmlu
ZF9jb250cm9sKHR5cGU9J3NlbGVjdCcsIG5yPTEpCisgICAgICAgIGVsaWYgZmxhZ19uYW1lID09
ICJpbi1yaWV0dmVsZCI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmZpbmRfY29u
dHJvbCh0eXBlPSdzZWxlY3QnLCBucj0yKQogICAgICAgICByYWlzZSBFeGNlcHRpb24oIkRvbid0
IGtub3cgaG93IHRvIGZpbmQgZmxhZyBuYW1lZCBcIiVzXCIiICUgZmxhZ19uYW1lKQogCiAgICAg
ZGVmIGNsZWFyX2F0dGFjaG1lbnRfZmxhZ3Moc2VsZiwKQEAgLTc1OCw4ICs3ODQsOCBAQCBjbGFz
cyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFj
aG1lbnRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfdmFsdWUsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29tbWVudF90ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFkZGl0aW9uYWxfY29tbWVudF90ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb21tZW50X3RleHQ9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
ZGRpdGlvbmFsX2NvbW1lbnRfdGV4dD1Ob25lKToKICAgICAgICAgIyBGSVhNRTogV2UgbmVlZCBh
IHdheSB0byB0ZXN0IHRoaXMgZnVuY3Rpb24gb24gYSBsaXZlIGJ1Z3ppbGxhCiAgICAgICAgICMg
aW5zdGFuY2UuCiAKQEAgLTc3NCw3ICs4MDAsMTAgQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToK
IAogICAgICAgICBzZWxmLmJyb3dzZXIub3BlbihzZWxmLmF0dGFjaG1lbnRfdXJsX2Zvcl9pZChh
dHRhY2htZW50X2lkLCAnZWRpdCcpKQogICAgICAgICBzZWxmLmJyb3dzZXIuc2VsZWN0X2Zvcm0o
bnI9MSkKLSAgICAgICAgc2VsZi5icm93c2VyLnNldF92YWx1ZShjb21tZW50X3RleHQsIG5hbWU9
J2NvbW1lbnQnLCBucj0wKQorCisgICAgICAgIGlmIGNvbW1lbnRfdGV4dDoKKyAgICAgICAgICAg
IHNlbGYuYnJvd3Nlci5zZXRfdmFsdWUoY29tbWVudF90ZXh0LCBuYW1lPSdjb21tZW50JywgbnI9
MCkKKwogICAgICAgICBzZWxmLl9maW5kX3NlbGVjdF9lbGVtZW50X2Zvcl9mbGFnKGZsYWdfbmFt
ZSkudmFsdWUgPSAoZmxhZ192YWx1ZSwpCiAgICAgICAgIHNlbGYuYnJvd3Nlci5zdWJtaXQoKQog
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVn
emlsbGFfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9u
ZXQvYnVnemlsbGFfdW5pdHRlc3QucHkKaW5kZXggY2U5OTJlN2EwNGMzOWY3NjQ4NGIzZWQ1NjFk
OThmZjRkODVlMDZhZC4uMzU1NjEyMTlkZTA5OWE3YzMyZjE0YjdmNjFmYzhlZDM3MGVkYzkzMyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3pp
bGxhX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9idWd6aWxsYV91bml0dGVzdC5weQpAQCAtOTYsNiArOTYsMTEgQEAgY2xhc3MgQnVnemls
bGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICBzdGF0dXM9IisiCiAg
ICAgICAgICAgICAgICAgc2V0dGVyPSJ0d29AdGVzdC5jb20iCiAgICAgICAgICAgIC8+CisgICAg
ICAgICAgPGZsYWcgbmFtZT0iaW4tcmlldHZlbGQiCisgICAgICAgICAgICAgICAgaWQ9IjE3OTMz
IgorICAgICAgICAgICAgICAgIHN0YXR1cz0iKyIKKyAgICAgICAgICAgICAgICBzZXR0ZXI9InRo
cmVlQHRlc3QuY29tIgorICAgICAgICAgICAvPgogICAgICAgICA8L2F0dGFjaG1lbnQ+CiAnJycK
ICAgICBfZXhwZWN0ZWRfZXhhbXBsZV9hdHRhY2htZW50X3BhcnNpbmcgPSB7CkBAIC0xMTEsNiAr
MTE2LDggQEAgY2xhc3MgQnVnemlsbGFUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAg
J3Jldmlld2VyX2VtYWlsJyA6ICdvbmVAdGVzdC5jb20nLAogICAgICAgICAnY29tbWl0LXF1ZXVl
JyA6ICcrJywKICAgICAgICAgJ2NvbW1pdHRlcl9lbWFpbCcgOiAndHdvQHRlc3QuY29tJywKKyAg
ICAgICAgJ2luLXJpZXR2ZWxkJzogJysnLAorICAgICAgICAncmlldHZlbGRfdXBsb2FkZXJfZW1h
aWwnOiAndGhyZWVAdGVzdC5jb20nLAogICAgICAgICAnYXR0YWNoZXJfZW1haWwnIDogJ2Nocmlz
dGlhbi5wbGVzbmVyLmhhbnNlbkBnbWFpbC5jb20nLAogICAgIH0KIApAQCAtMTkxLDEyICsxOTgs
MTIgQEAgcmVtb3ZlZC1iZWNhdXNlLWl0LXdhcy1yZWFsbHktbG9uZwogWkVacGJtbHphRXh2WVdS
WGFYUm9VbVZoYzI5dU9uSmxZWE52YmwwN0NpdDlDaXNLSUVCbGJtUUtJQW9nSTJWdVpHbG1DZz09
CiA8L2RhdGE+ICAgICAgICAKICAKLSAgICAgICAgICAgICAgPGZsYWcgbmFtZT0icmV2aWV3Igot
ICAgICAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCi0gICAgICAgICAgICAgICAgICAgIHN0YXR1
cz0iPyIKLSAgICAgICAgICAgICAgICAgICAgc2V0dGVyPSJtanNAYXBwbGUuY29tIgotICAgICAg
ICAgICAgICAgLz4gCi0gICAgICAgICAgPC9hdHRhY2htZW50PiAKKyAgICAgICAgICAgIDxmbGFn
IG5hbWU9InJldmlldyIKKyAgICAgICAgICAgICAgICBpZD0iMjc2MDIiCisgICAgICAgICAgICAg
ICAgc3RhdHVzPSI/IgorICAgICAgICAgICAgICAgIHNldHRlcj0ibWpzQGFwcGxlLmNvbSIKKyAg
ICAgICAgICAgIC8+CisgICAgICAgIDwvYXR0YWNobWVudD4KICAgICA8L2J1Zz4KIDwvYnVnemls
bGE+CiAiIiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L25ldC9yaWV0dmVsZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9yaWV0dmVsZC5weQppbmRleCBjMGQ2MTE5NTlhMTg3NWY4M2UyYTExNjBmOGNiZGUwMWQ4YzVm
MjA5Li5kY2RhOWE3MDJlMmQzNmUxODc1ZWNhMjZhODhhN2Y3OWFiY2JmZTU2IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmlldHZlbGQucHkKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3JpZXR2ZWxkLnB5CkBA
IC03NCw3ICs3NCw3IEBAIGNsYXNzIFJpZXR2ZWxkKG9iamVjdCk6CiAgICAgICAgICMgVXNlIFJl
YWxNYWluIGluc3RlYWQgb2YgY2FsbGluZyB1cGxvYWQgZnJvbSB0aGUgY29tbWFuZGxpbmUgc28g
dGhhdAogICAgICAgICAjIHdlIGNhbiBwYXNzIGluIHRoZSBkaWZmIG91cnNlbHZlcy4gT3RoZXJ3
aXNlLCB1cGxvYWQgd2lsbCBqdXN0IHVzZQogICAgICAgICAjIGdpdCBkaWZmIGZvciBnaXQgY2hl
Y2tvdXRzLCB3aGljaCBkb2Vzbid0IHJlc3BlY3QgLS1zcXVhc2ggYW5kIC0tZ2l0LWNvbW1pdC4K
LSAgICAgICAgaXNzdWUsIHBhdGNoc2V0ID0gdXBsb2FkLlJlYWxNYWluKGFyZ3NbMTpdLCBkYXRh
PWRpZmYpCisgICAgICAgIGlzc3VlLCBwYXRjaHNldCA9IHVwbG9hZC5SZWFsTWFpbihhcmdzLCBk
YXRhPWRpZmYpCiAKICAgICAgICAgIyBSZXNldCBsb2dnaW5nIGxldmVsIHRvIHRoZSBvcmlnaW5h
bCB2YWx1ZS4KICAgICAgICAgbG9nZ2luZy5nZXRMb2dnZXIoKS5zZXRMZXZlbChvbGRfbGV2ZWxf
bmFtZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9kb3dubG9hZC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9kb3dubG9hZC5weQppbmRleCBhMjgzZGE5ZGMyZWQ4ZTEwZmMwZTBjMjhkNDI2ZWM2Nzg4
ZThmODRlLi5hODViMDlhZDQ0ZTJhNTgxMGFiYmUyNzU5ZTY3ZmIwZjBjYzNmYjlmIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5CkBAIC0xODIsNiArMTgyLDE4IEBAIGNsYXNzIEJ1aWxkQXR0YWNobWVudChBYnN0cmFj
dFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQsIFByb2Nlc3NBdHRhY2htZW50c01peGluKToKICAgICBd
CiAKIAorY2xhc3MgUG9zdEF0dGFjaG1lbnRUb1JpZXR2ZWxkKEFic3RyYWN0UGF0Y2hTZXF1ZW5j
aW5nQ29tbWFuZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgorICAgIG5hbWUgPSAicG9zdC1h
dHRhY2htZW50LXRvLXJpZXR2ZWxkIgorICAgIGhlbHBfdGV4dCA9ICJVcGxvYWRzIGEgYnVnemls
bGEgYXR0YWNobWVudCB0byByaWV0dmVsZCIKKyAgICBhcmd1bWVudHNfbmFtZXMgPSAiQVRUQUNI
TUVOVElEIgorICAgIG1haW5fc3RlcHMgPSBbCisgICAgICAgIHN0ZXBzLkNsZWFuV29ya2luZ0Rp
cmVjdG9yeSwKKyAgICAgICAgc3RlcHMuVXBkYXRlLAorICAgICAgICBzdGVwcy5BcHBseVBhdGNo
LAorICAgICAgICBzdGVwcy5Qb3N0Q29kZVJldmlldywKKyAgICBdCisKKwogY2xhc3MgQWJzdHJh
Y3RQYXRjaEFwcGx5aW5nQ29tbWFuZChBYnN0cmFjdFBhdGNoU2VxdWVuY2luZ0NvbW1hbmQpOgog
ICAgIHByZXBhcmVfc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBzLkVuc3VyZUxvY2FsQ29tbWl0SWZO
ZWVkZWQsCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKaW5kZXggNGRkOWQ3ZjRjMTk3ZGM0
OTc0MGMxMzM5MDBmM2FkMzIyZTkyNzA3Ny4uOTZhZTlkYWMyZjZlNjAxMTQ0MmFhZDM0NTMzNTAw
YWU5NTc0MDA1MCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQpAQCAtMTAyLDYgKzEw
MiwxMCBAQCBjbGFzcyBEb3dubG9hZENvbW1hbmRzVGVzdChDb21tYW5kc1Rlc3QpOgogICAgICAg
ICBleHBlY3RlZF9zdGRlcnIgPSAiUHJvY2Vzc2luZyAxIHBhdGNoIGZyb20gMSBidWcuXG5VcGRh
dGluZyB3b3JraW5nIGRpcmVjdG9yeVxuUHJvY2Vzc2luZyBwYXRjaCAxOTcgZnJvbSBidWcgNDIu
XG5CdWlsZGluZyBXZWJLaXRcbiIKICAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRz
KEJ1aWxkQXR0YWNobWVudCgpLCBbMTk3XSwgb3B0aW9ucz1zZWxmLl9kZWZhdWx0X29wdGlvbnMo
KSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKIAorICAgIGRlZiB0ZXN0X3Bvc3Rf
YXR0YWNobWVudF90b19yaWV0dmVsZChzZWxmKToKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0g
IlByb2Nlc3NpbmcgMSBwYXRjaCBmcm9tIDEgYnVnLlxuVXBkYXRpbmcgd29ya2luZyBkaXJlY3Rv
cnlcblByb2Nlc3NpbmcgcGF0Y2ggMTk3IGZyb20gYnVnIDQyLlxuTU9DSzogVXBsb2FkaW5nIHBh
dGNoIHRvIHJpZXR2ZWxkXG4iCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4ZWN1dGVfb3V0cHV0cyhQ
b3N0QXR0YWNobWVudFRvUmlldHZlbGQoKSwgWzE5N10sIG9wdGlvbnM9c2VsZi5fZGVmYXVsdF9v
cHRpb25zKCksIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIpCisKICAgICBkZWYgdGVz
dF9sYW5kX2F0dGFjaG1lbnQoc2VsZik6CiAgICAgICAgICMgRklYTUU6IFRoaXMgZXhwZWN0ZWQg
cmVzdWx0IGlzIGltcGVyZmVjdCwgbm90aWNlIGhvdyBpdCdzIHNlZWluZyB0aGUgc2FtZSBwYXRj
aCBhcyBzdGlsbCB0aGVyZSBhZnRlciBpdCB0aG91Z2h0IGl0IHdvdWxkIGhhdmUgY2xlYXJlZCB0
aGUgZmxhZ3MuCiAgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICIiIlByb2Nlc3NpbmcgMSBwYXRj
aCBmcm9tIDEgYnVnLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggMDhiZDNhYWQ5MGYyNzIyMjhkYThlYjZjM2JjYzBl
YzU2NjFjYjc2Ny4uZTIxYTllNjgzMDY5ZTMxYjJkYTU3ZDYwMjFjZGMzNjc5N2IxNmU1ZCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVl
cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVl
dWVzLnB5CkBAIC0zMDQsNiArMzA0LDU2IEBAIGNsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UGF0
Y2hRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICAgICAgdmFsaWRhdG9yLnJl
amVjdF9wYXRjaF9mcm9tX2NvbW1pdF9xdWV1ZShzdGF0ZVsicGF0Y2giXS5pZCgpLCBjbHMuX2Vy
cm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0dXNfaWQsIHNjcmlwdF9lcnJvcikpCiAKIAor
Y2xhc3MgUmlldHZlbGRVcGxvYWRRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUsIFN0ZXBTZXF1ZW5j
ZUVycm9ySGFuZGxlcik6CisgICAgbmFtZSA9ICJyaWV0dmVsZC11cGxvYWQtcXVldWUiCisKKyAg
ICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIEFic3RyYWN0UGF0Y2hRdWV1ZS5fX2luaXRf
XyhzZWxmKQorCisgICAgIyBBYnN0cmFjdFBhdGNoUXVldWUgbWV0aG9kcworCisgICAgZGVmIG5l
eHRfd29ya19pdGVtKHNlbGYpOgorICAgICAgICBwYXRjaGVzID0gc2VsZi50b29sLmJ1Z3MucXVl
cmllcy5mZXRjaF9wYXRjaGVzX2Zyb21fcmlldHZlbGRfcXVldWUoKQorICAgICAgICBpZiBwYXRj
aGVzOgorICAgICAgICAgICAgcmV0dXJuIHBhdGNoZXNbMF0KKyAgICAgICAgc2VsZi5fdXBkYXRl
X3N0YXR1cygiRW1wdHkgcXVldWUiKQorCisgICAgZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29y
a19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygiVXBsb2Fk
aW5nIHBhdGNoIiwgcGF0Y2gpCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgcHJvY2Vz
c193b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxm
LnJ1bl93ZWJraXRfcGF0Y2goWyJwb3N0LWF0dGFjaG1lbnQtdG8tcmlldHZlbGQiLCAiLS1mb3Jj
ZS1jbGVhbiIsICItLW5vbi1pbnRlcmFjdGl2ZSIsICItLXBhcmVudC1jb21tYW5kPXJpZXR2ZWxk
LXVwbG9hZC1xdWV1ZSIsIHBhdGNoLmlkKCldKQorICAgICAgICAgICAgc2VsZi5fZGlkX3Bhc3Mo
cGF0Y2gpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBleGNlcHQgU2NyaXB0RXJy
b3IsIGU6CisgICAgICAgICAgICBpZiBlLmV4aXRfY29kZSAhPSBRdWV1ZUVuZ2luZS5oYW5kbGVk
X2Vycm9yX2NvZGU6CisgICAgICAgICAgICAgICAgc2VsZi5fZGlkX2ZhaWwocGF0Y2gpCisgICAg
ICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgX3JlamVjdF9wYXRjaChzZWxmLCBwYXRjaCwgbWVz
c2FnZSk6CisgICAgICAgIGNvbW1lbnRfdGV4dCA9ICJSZWplY3RpbmcgcGF0Y2ggJXMgZnJvbSBy
aWV0dmVsZC1xdWV1ZS4iICUgcGF0Y2guaWQoKQorICAgICAgICBzZWxmLnRvb2wuYnVncy5zZXRf
ZmxhZ19vbl9hdHRhY2htZW50KHBhdGNoLmlkKCksICJpbi1yaWV0dmVsZCIsICItIiwgY29tbWVu
dF90ZXh0LCBtZXNzYWdlKQorCisgICAgZGVmIGhhbmRsZV91bmV4cGVjdGVkX2Vycm9yKHNlbGYs
IHBhdGNoLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5fcmVqZWN0X3BhdGNoKHBhdGNoLCBtZXNz
YWdlKQorCisgICAgIyBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIgbWV0aG9kcworCisgICAgQHN0
YXRpY21ldGhvZAorICAgIGRlZiBfZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHRvb2wsIHN0YXR1c19p
ZCwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgaWYgbm90IHNjcmlwdF9lcnJvci5vdXRwdXQ6Cisg
ICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKQorICAg
ICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1c19zZXJ2ZXIucmVzdWx0c191cmxfZm9yX3N0
YXR1cyhzdGF0dXNfaWQpCisgICAgICAgIHJldHVybiAiJXNcbkZ1bGwgb3V0cHV0OiAlcyIgJSAo
c2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKSwgcmVzdWx0c19saW5rKQorCisgICAg
QGNsYXNzbWV0aG9kCisgICAgZGVmIGhhbmRsZV9zY3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0
ZSwgc2NyaXB0X2Vycm9yKToKKyAgICAgICAgc3RhdHVzX2lkID0gY2xzLl91cGRhdGVfc3RhdHVz
X2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUsIHNjcmlwdF9lcnJvcikKKyAgICAgICAgc2Vs
Zi5fcmVqZWN0X3BhdGNoKHBhdGNoLCBjbHMuX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBz
dGF0dXNfaWQsIHNjcmlwdF9lcnJvcikpCisKKwogY2xhc3MgQWJzdHJhY3RSZXZpZXdRdWV1ZShB
YnN0cmFjdFBhdGNoUXVldWUsIFBlcnNpc3RlbnRQYXRjaENvbGxlY3Rpb25EZWxlZ2F0ZSwgU3Rl
cFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgb3B0aW9ucz1O
b25lKToKICAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVlLl9faW5pdF9fKHNlbGYsIG9wdGlvbnMp
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRleCBhNWQ1NmRhZDk3ZDZlNGZhMzgxOTE4ZWM5
ZGI0YTM4YmE0MDhhZjkwLi42MzYyYWI2MmVkZGMxYjhlZWE4NDkwZThkYTQ4MzFiMjU0ZTc2MzQ0
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTE5Myw2ICsxOTMsMTYgQEAgTU9DSzog
dXBkYXRlX3N0YXR1czogY29tbWl0LXF1ZXVlIEJ1aWxkZXJzIFsiQnVpbGRlcjIiXSBhcmUgcmVk
LiBTZWUgaHR0cDovL2J1aWwKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChhdHRhY2htZW50cywg
ZXhwZWN0ZWRfc29ydCkKIAogCitjbGFzcyBSaWV0dmVsZFVwbG9hZFF1ZXVlVGVzdChRdWV1ZXNU
ZXN0KToKKyAgICBkZWYgdGVzdF9yaWV0dmVsZF91cGxvYWRfcXVldWUoc2VsZik6CisgICAgICAg
IGV4cGVjdGVkX3N0ZGVyciA9IHsKKyAgICAgICAgICAgICJiZWdpbl93b3JrX3F1ZXVlIjogIkNB
VVRJT046IHJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5n
ZXMgaW4gXCIlc1wiXG5SdW5uaW5nIFdlYktpdCByaWV0dmVsZC11cGxvYWQtcXVldWUuXG4iICUg
TW9ja1NDTS5mYWtlX2NoZWNrb3V0X3Jvb3QsCisgICAgICAgICAgICAic2hvdWxkX3Byb2NlZWRf
d2l0aF93b3JrX2l0ZW0iOiAiTU9DSzogdXBkYXRlX3N0YXR1czogcmlldHZlbGQtdXBsb2FkLXF1
ZXVlIFVwbG9hZGluZyBwYXRjaFxuIiwKKyAgICAgICAgICAgICJwcm9jZXNzX3dvcmtfaXRlbSI6
ICJNT0NLOiB1cGRhdGVfc3RhdHVzOiByaWV0dmVsZC11cGxvYWQtcXVldWUgUGFzc1xuIiwKKyAg
ICAgICAgfQorICAgICAgICBzZWxmLmFzc2VydF9xdWV1ZV9vdXRwdXRzKFJpZXR2ZWxkVXBsb2Fk
UXVldWUoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKworCiBjbGFzcyBTdHls
ZVF1ZXVlVGVzdChRdWV1ZXNUZXN0KToKICAgICBkZWYgdGVzdF9zdHlsZV9xdWV1ZShzZWxmKToK
ICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggY2Y3MTViOThiMmVjYTNj
Yjc2ZWViYTQxZDM4OGUyY2ZhNzk4MzQxMy4uZTY4MmNhNzY5MzRkMTI3MWJmYzJjMmUxNmU0NjI3
NjU5YjdmMGYwOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0xNzEsNyArMTcxLDYgQEAgY2xhc3MgUG9zdChBYnN0
cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBz
LkNoZWNrU3R5bGUsCiAgICAgICAgIHN0ZXBzLkNvbmZpcm1EaWZmLAotICAgICAgICBzdGVwcy5Q
b3N0Q29kZVJldmlldywKICAgICAgICAgc3RlcHMuT2Jzb2xldGVQYXRjaGVzLAogICAgICAgICBz
dGVwcy5Qb3N0RGlmZiwKICAgICBdCkBAIC0yMTUsNyArMjE0LDYgQEAgY2xhc3MgVXBsb2FkKEFi
c3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuUHJlcGFyZUNoYW5n
ZUxvZywKICAgICAgICAgc3RlcHMuRWRpdENoYW5nZUxvZywKICAgICAgICAgc3RlcHMuQ29uZmly
bURpZmYsCi0gICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAogICAgICAgICBzdGVwcy5PYnNv
bGV0ZVBhdGNoZXMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZmLAogICAgIF0KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRl
c3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2Fk
X3VuaXR0ZXN0LnB5CmluZGV4IGQ1Mjc3NWJkMWJkNTY4MjY4NjUzOWE3NTgzYTkyN2FiMDk2OTg1
MzMuLjhmZWY1NGFjZWYzMDg1MTE1ZmY4M2E1NmMyODI1OWQ3ZDdmMWM0NGUgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRl
c3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3Vw
bG9hZF91bml0dGVzdC5weQpAQCAtNTYsOCArNTYsNiBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rl
c3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNl
CiAgICAgICAgIG9wdGlvbnMucmV2aWV3ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmNvbW1lbnQg
PSBOb25lCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMgYSByZWFsIFND
TSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQogICAgICAg
ICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJSdW5uaW5n
IGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTovLy4uLgpAQCAt
ODcsOCArODUsNiBAQCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIK
ICAgICAgICAgb3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMu
cmV2aWV3ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmNvbW1lbnQgPSBOb25lCi0gICAgICAgICMg
UmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMgYSByZWFsIFNDTSBjaGVja291dC4KLSAgICAg
ICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9u
ZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHls
ZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTovLy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CmluZGV4IDJmMTkyZDk3ZmZlMTYxYzlmNTJiYWI3
MzM5ZmEyY2JkNTJmNDcyNjcuLjg2YWYxYTkyOTkwY2YxMDlhYTg1YjRmYWRkNTU0MzFmNDhjZjQ5
MGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9v
bC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkK
QEAgLTg2LDYgKzg2LDcgQEAgX3BhdGNoMyA9IHsKICAgICAibmFtZSI6ICJQYXRjaDMiLAogICAg
ICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJp
ZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAiPyIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjog
ImVyaWNAd2Via2l0Lm9yZyIsCiB9CkBAIC0xMTIsNiArMTEzLDcgQEAgX3BhdGNoNSA9IHsKICAg
ICAibmFtZSI6ICJQYXRjaDUiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19w
YXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAiKyIs
CiAgICAgInJldmlld2VyX2VtYWlsIjogImZvb0BiYXIuY29tIiwKICAgICAiYXR0YWNoZXJfZW1h
aWwiOiAiZXJpY0B3ZWJraXQub3JnIiwKQEAgLTEyNSw2ICsxMjcsNyBAQCBfcGF0Y2g2ID0geyAj
IFZhbGlkIGNvbW1pdHRlciwgYnV0IG5vIHJldmlld2VyLgogICAgICJuYW1lIjogIlJPTExPVVQg
b2YgcjM0ODkiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRy
dWUsCisgICAgImluLXJpZXR2ZWxkIjogIi0iLAogICAgICJjb21taXQtcXVldWUiOiAiKyIsCiAg
ICAgImNvbW1pdHRlcl9lbWFpbCI6ICJmb29AYmFyLmNvbSIsCiAgICAgImF0dGFjaGVyX2VtYWls
IjogImVyaWNAd2Via2l0Lm9yZyIsCkBAIC0xMzgsNiArMTQxLDcgQEAgX3BhdGNoNyA9IHsgIyBW
YWxpZCByZXZpZXcsIHBhdGNoIGlzIG1hcmtlZCBvYnNvbGV0ZS4KICAgICAibmFtZSI6ICJQYXRj
aDciLAogICAgICJpc19vYnNvbGV0ZSI6IFRydWUsCiAgICAgImlzX3BhdGNoIjogVHJ1ZSwKKyAg
ICAiaW4tcmlldHZlbGQiOiAiKyIsCiAgICAgInJldmlldyI6ICIrIiwKICAgICAicmV2aWV3ZXJf
ZW1haWwiOiAiZm9vQGJhci5jb20iLAogICAgICJhdHRhY2hlcl9lbWFpbCI6ICJlcmljQHdlYmtp
dC5vcmciLApAQCAtMjIxLDYgKzIyNSw4IEBAIGNsYXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMoTW9j
ayk6CiAgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9wZW5kaW5nX2NvbW1pdF9saXN0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc3VtKFtidWcucmV2aWV3ZWRfcGF0Y2hlcygpIGZvciBidWcgaW4g
c2VsZi5fYWxsX2J1Z3MoKV0sIFtdKQogCisgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9yaWV0
dmVsZF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bShbYnVnLmluX3JpZXR2ZWxkX3F1
ZXVlX3BhdGNoZXMoKSBmb3IgYnVnIGluIHNlbGYuX2FsbF9idWdzKCldLCBbXSkKIAogIyBGSVhN
RTogQnVnemlsbGEgaXMgdGhlIHdyb25nIE1vY2stcG9pbnQuICBPbmNlIHdlIGhhdmUgYSBCdWd6
aWxsYU5ldHdvcmsKICMgICAgICAgIGNsYXNzIHdlIHNob3VsZCBtb2NrIHRoYXQgaW5zdGVhZC4K
QEAgLTUxMCw2ICs1MTYsMTUgQEAgY2xhc3MgTW9ja0V4ZWN1dGUoTW9jayk6CiAgICAgICAgIHJl
dHVybiAiTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIKIAogCitjbGFzcyBNb2NrUmlldHZl
bGQoKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRpdmUsIGRyeXJ1bj1GYWxzZSk6
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBwb3N0KHNlbGYsIGRpZmYsIG1lc3NhZ2U9Tm9uZSwg
Y29kZXJldmlld19pc3N1ZT1Ob25lLCBjYz1Ob25lKToKKyAgICAgICAgbG9nKCJNT0NLOiBVcGxv
YWRpbmcgcGF0Y2ggdG8gcmlldHZlbGQiKQorCisKIGNsYXNzIE1vY2tUb29sKCk6CiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nX2V4ZWN1dGl2ZT1GYWxzZSk6CkBAIC01MjMsNyArNTM4LDcg
QEAgY2xhc3MgTW9ja1Rvb2woKToKICAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tv
dXQoKQogICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKICAg
ICAgICAgc2VsZi5pcmNfcGFzc3dvcmQgPSAiTU9DSyBpcmMgcGFzc3dvcmQiCi0gICAgICAgIHNl
bGYuY29kZXJldmlldyA9IFJpZXR2ZWxkKHNlbGYuZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmNv
ZGVyZXZpZXcgPSBNb2NrUmlldHZlbGQoc2VsZi5leGVjdXRpdmUpCiAKICAgICBkZWYgc2NtKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fc2NtCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDE4NmQyOTI4OWI5MjA2YjZj
OTA1ZmMxMDZlY2U4OTk0N2QyYjJmMGMuLmZhMzZmNzMwNzg2MTRhMzc4ODA2NWUwMzc4Yjk2ZTEz
OGE4NzNmMzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CkBAIC00MSw3ICs0MSw2IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToK
ICAgICBjb25maXJtID0gbWFrZV9vcHRpb24oIi0tbm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVf
ZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJTa2lwIGNvbmZpcm1h
dGlvbiBzdGVwcy4iKQogICAgIGRlc2NyaXB0aW9uID0gbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVz
Y3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRp
b24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJpbmcgZm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0
OiBcInBhdGNoXCIpIikKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9u
PSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVz
cyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQotICAgIGZhbmN5X3JldmlldyA9IG1ha2Vfb3B0aW9u
KCItLWZhbmN5LXJldmlldyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZhbmN5X3Jldmll
dyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IihFeHBlcmltZW50YWwpIFVwbG9hZCB0aGUgcGF0Y2gg
dG8gUmlldHZlbGQgY29kZSByZXZpZXcgdG9vbC4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9v
cHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9j
bGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9y
ZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikK
ICMgRklYTUU6IE1ha2UgY29tbWl0IHJhbmdlcyB0cmVhdCBlYWNoIGNvbW1pdCBzZXBhcmF0ZWx5
IGluc3RlYWQgb2Ygc3F1YXNoaW5nIHRoZW0gaW50byBvbmUuCiAgICAgZ2l0X2NvbW1pdCA9IG1h
a2Vfb3B0aW9uKCItLWdpdC1jb21taXQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1p
dCIsIGhlbHA9IkxvY2FsIGdpdCBjb21taXQgdG8gdXBsb2FkL2xhbmQuIElmIGEgcmFuZ2UsIHRo
ZSBjb21taXRzIGFyZSBzcXVhc2hlZCBpbnRvIG9uZS4iKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CmluZGV4
IDgzOTc1MTkwMjg0NTdjMjBjYWRiMzVlOWY3NTU0Y2I5ZDcyMDFhY2MuLmY5YmM2ODU2Yjg5MWNi
NDgxNjcwNmQ2MGE4YTk4MzljOTBiN2Q5NzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKQEAgLTM2LDMz
ICszNiwyNyBAQCBjbGFzcyBQb3N0Q29kZVJldmlldyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBy
ZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKICAgICAgICAgICAgIE9wdGlvbnMuY2Ms
CiAgICAgICAgICAgICBPcHRpb25zLmRlc2NyaXB0aW9uLAotICAgICAgICAgICAgT3B0aW9ucy5m
YW5jeV9yZXZpZXcsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgotICAg
ICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5mYW5jeV9yZXZpZXc6Ci0gICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgcGF0Y2ggPSBzdGF0ZS5nZXQoInBhdGNoIikKKyAgICAgICAgYnVnX2lkID0g
cGF0Y2guYnVnX2lkKCkKKyAgICAgICAgdGl0bGUgPSBwYXRjaC5uYW1lKCkKIAotICAgICAgICBi
dWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIpCi0gICAgICAgIGlmIG5vdCBidWdfaWQ6Ci0gICAg
ICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJDYW5ub3QgdXBsb2FkIGEgZmFuY3kg
cmV2aWV3IHdpdGhvdXQgYSBidWcgSUQuIikKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fb3B0
aW9ucy5kZXNjcmlwdGlvbgotICAgICAgICBpZiBub3QgbWVzc2FnZToKLSAgICAgICAgICAgICMg
SWYgd2UgaGF2ZSBhbiBpc3N1ZSBudW1iZXIsIHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUg
bGFiZWwKLSAgICAgICAgICAgICMgb2YgdGhlIG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNv
bWVzIHRoZSB0aXRsZSBvZiB0aGUgd2hvbGUKLSAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAg
ICAgICBpZiBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpOgotICAgICAgICAgICAgICAgICMgVGhpcyBp
cyB0aGUgY29tbW9uIGNhc2UgZm9yIHRoZSB0aGUgZmlyc3QgInVwbG9hZCIgY29tbWFuZC4KLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gc3RhdGUuZ2V0KCJidWdfdGl0bGUiKQotICAgICAgICAg
ICAgZWxpZiBidWdfaWQ6Ci0gICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2Fz
ZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFuZAotICAgICAgICAgICAgICAgICMgc3Vic2VxdWVu
dCBydW5zIG9mIHRoZSAidXBsb2FkIiBjb21tYW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
PSAiQ29kZSByZXZpZXcgZm9yICVzIiAlIHNlbGYuX3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdf
aWQoYnVnX2lkKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFVucmVhY2hh
YmxlIHdpdGggb3VyIGN1cnJlbnQgY29tbWFuZHMsIGJ1dCB3ZSBtaWdodCBoaXQKLSAgICAgICAg
ICAgICAgICAjIHRoaXMgY2FzZSBpZiB3ZSBzdXBwb3J0IGJ1Zy1sZXNzIGNvZGUgcmV2aWV3cy4K
LSAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IgorICAgICAgICAjIElmIHRo
ZSBpc3N1ZSBhbHJlYWR5IGV4aXN0cywgdGhlbiB0aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJl
bAorICAgICAgICAjIG9mIHRoZSBuZXcgcGF0Y2guIE90aGVyd2lzZSwgaXQgYmVjb21lcyB0aGUg
dGl0bGUgb2YgdGhlIHdob2xlCisgICAgICAgICMgaXNzdWUuCisgICAgICAgIGlmIHRpdGxlOgor
ICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAi
dXBsb2FkIiBjb21tYW5kLgorICAgICAgICAgICAgbWVzc2FnZSA9IHRpdGxlCisgICAgICAgIGVs
aWYgYnVnX2lkOgorICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhl
ICJwb3N0IiBjb21tYW5kIGFuZAorICAgICAgICAgICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhl
ICJ1cGxvYWQiIGNvbW1hbmQuCisgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IGZv
ciAlcyIgJSBzZWxmLl90b29sLmJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICMgVW5yZWFjaGFibGUgd2l0aCBvdXIgY3VycmVudCBjb21t
YW5kcywgYnV0IHdlIG1pZ2h0IGhpdAorICAgICAgICAgICAgIyB0aGlzIGNhc2UgaWYgd2Ugc3Vw
cG9ydCBidWctbGVzcyBjb2RlIHJldmlld3MuCisgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUg
cmV2aWV3IgogCiAgICAgICAgICMgVXNlIHRoZSBidWcgSUQgYXMgdGhlIHJpZXR2ZWxkIGlzc3Vl
IG51bWJlci4gVGhpcyBtZWFucyByaWV0dmVsZCBjb2RlIHJldmlld3MKICAgICAgICAgIyB3aGVu
IHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0Y2hlcyBvbiBhIGJ1ZyB3aWxsIGJlIGEg
Yml0IHdvbmt5LCBidXQKQEAgLTcxLDMgKzY1LDUgQEAgY2xhc3MgUG9zdENvZGVSZXZpZXcoQWJz
dHJhY3RTdGVwKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvZGVyZXZpZXdfaXNzdWU9YnVnX2lkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2M9c2VsZi5fb3B0aW9ucy5j
YykKKworICAgICAgICBzZWxmLl90b29sLmJ1Z3Muc2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRj
aC5pZCgpLCAnaW4tcmlldHZlbGQnLCAnKycpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56910</attachid>
            <date>2010-05-24 12:05:24 -0700</date>
            <delta_ts>2010-05-29 09:40:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38918-20100524120523.patch</filename>
            <type>text/plain</type>
            <size>25279</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBmNDhlMDMxNzQwYzAzYzA3ODliNGU0ZDNkOTZiMzgwMzhiMTEwMzA5Li5hNGFmMzc0
MWY1Y2I3ODMyZDMwNWFjNTAwZmFiZGY5ZWYxNDY0Y2UyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAK
KzIwMTAtMDUtMTQgIE9qYW4gVmFmYWkgIDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBhZGQgYSBSaWV0dmVsZFVwbG9h
ZFF1ZXVlIHRvIHVwbG9hZCBpbi1yaWV0dmVsZD8gcGF0Y2hlcyB0byByaWV0dmVsZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg5MTgKKworICAgICAg
ICBQYXRjaGVzIHdpdGggaW4tcmlldHZlbGQ/IGdldCB1cGxvYWRlZCB0byByaWV0dmVsZCBhbmQg
Z2V0IG1hcmtlZAorICAgICAgICBpbi1yaWV0dmVsZCsuIElmIHRoZSB1cGxvYWQgZmFpbHMsIHRo
ZXkgYXJlIG1hcmtlZCBpbi1yaWV0dmVsZC0KKyAgICAgICAgYW5kIGFuIGVycm9yIGlzIGxvZ2dl
ZCB0byB0aGUgYnVnLCBsaWtlIHRoZSBjb21taXQtcXVldWUuCisKKyAgICAgICAgQWxzbywgZ2V0
IHJpZCBvZiAtLWZhbmN5LXJldmlldyBhbmQgdGhlIGFiaWxpdHkgdG8gdXBsb2FkIHRvIHJpZXR2
ZWxkCisgICAgICAgIHVzaW5nIHdlYmtpdC1wYXRjaCB1cGxvYWQvcG9zdC4KKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFfdW5pdHRlc3QucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6CisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2FkX3VuaXR0ZXN0LnB5OgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHk6CisKIDIwMTAtMDUtMjQgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENocmlzIEpl
cmRvbmVrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1Z3ppbGxhLnB5CmluZGV4IDI2ZDM2NTI4ZmM5N2YyYzE5ZTA4MGY2ZDAyOWQ5NmMzYWJiOWYw
NGUuLmE2YTE2Njg2NWI1NmFlMjBmNTNkMDgzOGMxNTlkYWY2NDgzYzQzY2UgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEucHkKQEAg
LTExMyw2ICsxMTMsOSBAQCBjbGFzcyBBdHRhY2htZW50KG9iamVjdCk6CiAgICAgZGVmIGNvbW1p
dF9xdWV1ZShzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYuX2F0dGFjaG1lbnRfZGljdGlvbmFy
eS5nZXQoImNvbW1pdC1xdWV1ZSIpCiAKKyAgICBkZWYgaW5fcmlldHZlbGQoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9hdHRhY2htZW50X2RpY3Rpb25hcnkuZ2V0KCJpbi1yaWV0dmVsZCIp
CisKICAgICBkZWYgdXJsKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBqdXN0
IHJldHVybgogICAgICAgICAjIHNlbGYuX2J1Z3ppbGxhKCkuYXR0YWNobWVudF91cmxfZm9yX2lk
KHNlbGYuaWQoKSkuIHNjbV91bml0dGVzdC5weQpAQCAtMjAxLDYgKzIwNCw5IEBAIGNsYXNzIEJ1
ZyhvYmplY3QpOgogICAgICAgICAjIGEgdmFsaWQgY29tbWl0dGVyLgogICAgICAgICByZXR1cm4g
ZmlsdGVyKGxhbWJkYSBwYXRjaDogcGF0Y2guY29tbWl0dGVyKCksIHBhdGNoZXMpCiAKKyAgICBk
ZWYgaW5fcmlldHZlbGRfcXVldWVfcGF0Y2hlcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFtwYXRj
aCBmb3IgcGF0Y2ggaW4gc2VsZi5wYXRjaGVzKCkgaWYgcGF0Y2guaW5fcmlldHZlbGQoKSA9PSAi
PyJdCisKIAogIyBBIGNvbnRhaW5lciBmb3IgYWxsIG9mIHRoZSBsb2dpYyBmb3IgbWFraW5nIGFu
ZCBwYXJzaW5nIGJ1emlsbGEgcXVlcmllcy4KIGNsYXNzIEJ1Z3ppbGxhUXVlcmllcyhvYmplY3Qp
OgpAQCAtMjY0LDYgKzI3MCwyMiBAQCBjbGFzcyBCdWd6aWxsYVF1ZXJpZXMob2JqZWN0KToKICAg
ICAgICAgcmV0dXJuIHN1bShbc2VsZi5fZmV0Y2hfYnVnKGJ1Z19pZCkuY29tbWl0X3F1ZXVlZF9w
YXRjaGVzKCkKICAgICAgICAgICAgICAgICAgICAgZm9yIGJ1Z19pZCBpbiBzZWxmLmZldGNoX2J1
Z19pZHNfZnJvbV9jb21taXRfcXVldWUoKV0sIFtdKQogCisgICAgZGVmIF9mZXRjaF9idWdfaWRz
X2Zyb21fcmlldHZlbGRfcXVldWUoc2VsZik6CisgICAgICAgICMgcmlldHZlbGQtcXVldWUgcHJv
Y2Vzc2VzIGluLXJpZXR2ZWxkPyBwYXRjaGVzIGFuZCB0aGVuIG1hcmtzIHRoZW0gaW4tcmlldHZl
bGQtLysuCisgICAgICAgICMgaW4tcmlldHZlbGQ/IHBhdGNoZXMKKyAgICAgICAgcmlldHZlbGRf
cXVldWVfdXJsID0gImJ1Z2xpc3QuY2dpP3F1ZXJ5X2Zvcm1hdD1hZHZhbmNlZCZidWdfc3RhdHVz
PVVOQ09ORklSTUVEJmJ1Z19zdGF0dXM9TkVXJmJ1Z19zdGF0dXM9QVNTSUdORUQmYnVnX3N0YXR1
cz1SRU9QRU5FRCZmaWVsZDAtMC0wPWZsYWd0eXBlcy5uYW1lJnR5cGUwLTAtMD1lcXVhbHMmdmFs
dWUwLTAtMD1pbi1yaWV0dmVsZCUzRiZvcmRlcj1MYXN0K0NoYW5nZWQiCisgICAgICAgIGluX3Jp
ZXR2ZWxkX2J1Z3MgPSBzZWxmLl9mZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHJpZXR2ZWxk
X3F1ZXVlX3VybCkKKworICAgICAgICAjIHJldmlldz8gcGF0Y2hlcyB0aGF0IGRvbid0IGhhdmUg
YW4gaW4tcmlldHZlbGQgZmxhZy4KKyAgICAgICAgcmV2aWV3X3F1ZXVlX3VybCA9ICJidWdsaXN0
LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQmYnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZidWdfc3Rh
dHVzPU5FVyZidWdfc3RhdHVzPUFTU0lHTkVEJmJ1Z19zdGF0dXM9UkVPUEVORUQmZmllbGQwLTAt
MD1mbGFndHlwZXMubmFtZSZ0eXBlMC0wLTA9ZXF1YWxzJnZhbHVlMC0wLTA9cmV2aWV3JTNGJmZp
ZWxkMC0xLTA9ZmxhZ3R5cGVzLm5hbWUmdHlwZTAtMS0wPW5vdHN1YnN0cmluZyZ2YWx1ZTAtMS0w
PWluLXJpZXR2ZWxkJm9yZGVyPUxhc3QrQ2hhbmdlZCIKKyAgICAgICAgaW5fcmlldHZlbGRfYnVn
cy5leHRlbmQoc2VsZi5fZmV0Y2hfYnVnX2lkc19hZHZhbmNlZF9xdWVyeShyZXZpZXdfcXVldWVf
dXJsKSkKKworICAgICAgICByZXR1cm4gaW5fcmlldHZlbGRfYnVncworCisgICAgZGVmIGZldGNo
X3BhdGNoZXNfZnJvbV9yaWV0dmVsZF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bShb
c2VsZi5fZmV0Y2hfYnVnKGJ1Z19pZCkuaW5fcmlldHZlbGRfcXVldWVfcGF0Y2hlcygpCisgICAg
ICAgICAgICAgICAgICAgIGZvciBidWdfaWQgaW4gc2VsZi5fZmV0Y2hfYnVnX2lkc19mcm9tX3Jp
ZXR2ZWxkX3F1ZXVlKCldLCBbXSkKKwogICAgIGRlZiBfZmV0Y2hfYnVnX2lkc19mcm9tX3Jldmll
d19xdWV1ZShzZWxmKToKICAgICAgICAgcmV2aWV3X3F1ZXVlX3VybCA9ICJidWdsaXN0LmNnaT9x
dWVyeV9mb3JtYXQ9YWR2YW5jZWQmYnVnX3N0YXR1cz1VTkNPTkZJUk1FRCZidWdfc3RhdHVzPU5F
VyZidWdfc3RhdHVzPUFTU0lHTkVEJmJ1Z19zdGF0dXM9UkVPUEVORUQmZmllbGQwLTAtMD1mbGFn
dHlwZXMubmFtZSZ0eXBlMC0wLTA9ZXF1YWxzJnZhbHVlMC0wLTA9cmV2aWV3PyIKICAgICAgICAg
cmV0dXJuIHNlbGYuX2ZldGNoX2J1Z19pZHNfYWR2YW5jZWRfcXVlcnkocmV2aWV3X3F1ZXVlX3Vy
bCkKQEAgLTQ3NCw2ICs0OTYsOCBAQCBjbGFzcyBCdWd6aWxsYShvYmplY3QpOgogICAgICAgICBz
ZWxmLl9wYXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAgICAgICAgZWxlbWVudCwgJ3Jl
dmlldycsIGF0dGFjaG1lbnQsICdyZXZpZXdlcl9lbWFpbCcpCiAgICAgICAgIHNlbGYuX3BhcnNl
X2F0dGFjaG1lbnRfZmxhZygKKyAgICAgICAgICAgICAgICBlbGVtZW50LCAnaW4tcmlldHZlbGQn
LCBhdHRhY2htZW50LCAncmlldHZlbGRfdXBsb2FkZXJfZW1haWwnKQorICAgICAgICBzZWxmLl9w
YXJzZV9hdHRhY2htZW50X2ZsYWcoCiAgICAgICAgICAgICAgICAgZWxlbWVudCwgJ2NvbW1pdC1x
dWV1ZScsIGF0dGFjaG1lbnQsICdjb21taXR0ZXJfZW1haWwnKQogICAgICAgICByZXR1cm4gYXR0
YWNobWVudAogCkBAIC01OTIsNyArNjE2LDggQEAgY2xhc3MgQnVnemlsbGEob2JqZWN0KToKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4dD1Ob25lLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfcmV2aWV3PUZhbHNlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbWFya19mb3JfY29tbWl0X3F1ZXVlPUZhbHNlLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1GYWxzZSwgYnVnX2lkPU5vbmUp
OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFya19mb3JfbGFuZGluZz1GYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1Z19pZD1Ob25lKToKICAgICAgICAgc2Vs
Zi5icm93c2VyWydkZXNjcmlwdGlvbiddID0gZGVzY3JpcHRpb24KICAgICAgICAgc2VsZi5icm93
c2VyWydpc3BhdGNoJ10gPSAoIjEiLCkKICAgICAgICAgc2VsZi5icm93c2VyWydmbGFnX3R5cGUt
MSddID0gKCc/JywpIGlmIG1hcmtfZm9yX3JldmlldyBlbHNlICgnWCcsKQpAQCAtNjA0LDYgKzYy
OSw5IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgIGVsc2U6CiAgICAgICAgICAg
ICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0zJ10gPSAoJ1gnLCkKIAorICAgICAgICAjIEFkZCBh
bGwgcGF0Y2hlcyB0byB0aGUgcmlldHZlbGQgdXBsb2FkIHF1ZXVlLgorICAgICAgICBzZWxmLmJy
b3dzZXJbJ2ZsYWdfdHlwZS00J10gPSAoJz8nLCkKKwogICAgICAgICBpZiBidWdfaWQ6CiAgICAg
ICAgICAgICBwYXRjaF9uYW1lID0gImJ1Zy0lcy0lcy5wYXRjaCIgJSAoYnVnX2lkLCB0aW1lc3Rh
bXAoKSkKICAgICAgICAgZWxzZToKQEAgLTczMCw4ICs3NTgsMTAgQEAgY2xhc3MgQnVnemlsbGEo
b2JqZWN0KToKICAgICAgICAgIyBGSVhNRTogVGhpcyB3aWxsIGJyZWFrIGlmIHdlIGV2ZXIgcmUt
b3JkZXIgYXR0YWNobWVudCBmbGFncwogICAgICAgICBpZiBmbGFnX25hbWUgPT0gInJldmlldyI6
CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5icm93c2VyLmZpbmRfY29udHJvbCh0eXBlPSdzZWxl
Y3QnLCBucj0wKQotICAgICAgICBpZiBmbGFnX25hbWUgPT0gImNvbW1pdC1xdWV1ZSI6CisgICAg
ICAgIGVsaWYgZmxhZ19uYW1lID09ICJjb21taXQtcXVldWUiOgogICAgICAgICAgICAgcmV0dXJu
IHNlbGYuYnJvd3Nlci5maW5kX2NvbnRyb2wodHlwZT0nc2VsZWN0JywgbnI9MSkKKyAgICAgICAg
ZWxpZiBmbGFnX25hbWUgPT0gImluLXJpZXR2ZWxkIjoKKyAgICAgICAgICAgIHJldHVybiBzZWxm
LmJyb3dzZXIuZmluZF9jb250cm9sKHR5cGU9J3NlbGVjdCcsIG5yPTIpCiAgICAgICAgIHJhaXNl
IEV4Y2VwdGlvbigiRG9uJ3Qga25vdyBob3cgdG8gZmluZCBmbGFnIG5hbWVkIFwiJXNcIiIgJSBm
bGFnX25hbWUpCiAKICAgICBkZWYgY2xlYXJfYXR0YWNobWVudF9mbGFncyhzZWxmLApAQCAtNzc0
LDcgKzgwNCw5IEBAIGNsYXNzIEJ1Z3ppbGxhKG9iamVjdCk6CiAKICAgICAgICAgc2VsZi5icm93
c2VyLm9wZW4oc2VsZi5hdHRhY2htZW50X3VybF9mb3JfaWQoYXR0YWNobWVudF9pZCwgJ2VkaXQn
KSkKICAgICAgICAgc2VsZi5icm93c2VyLnNlbGVjdF9mb3JtKG5yPTEpCisKICAgICAgICAgc2Vs
Zi5icm93c2VyLnNldF92YWx1ZShjb21tZW50X3RleHQsIG5hbWU9J2NvbW1lbnQnLCBucj0wKQor
CiAgICAgICAgIHNlbGYuX2ZpbmRfc2VsZWN0X2VsZW1lbnRfZm9yX2ZsYWcoZmxhZ19uYW1lKS52
YWx1ZSA9IChmbGFnX3ZhbHVlLCkKICAgICAgICAgc2VsZi5icm93c2VyLnN1Ym1pdCgpCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxs
YV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYV91bml0dGVzdC5weQppbmRleCBjZTk5MmU3YTA0YzM5Zjc2NDg0YjNlZDU2MWQ5OGZm
NGQ4NWUwNmFkLi4zNTU2MTIxOWRlMDk5YTdjMzJmMTRiN2Y2MWZjOGVkMzcwZWRjOTMzIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGFf
dW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1Z3ppbGxhX3VuaXR0ZXN0LnB5CkBAIC05Niw2ICs5NiwxMSBAQCBjbGFzcyBCdWd6aWxsYVRl
c3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgICAgIHN0YXR1cz0iKyIKICAgICAg
ICAgICAgICAgICBzZXR0ZXI9InR3b0B0ZXN0LmNvbSIKICAgICAgICAgICAgLz4KKyAgICAgICAg
ICA8ZmxhZyBuYW1lPSJpbi1yaWV0dmVsZCIKKyAgICAgICAgICAgICAgICBpZD0iMTc5MzMiCisg
ICAgICAgICAgICAgICAgc3RhdHVzPSIrIgorICAgICAgICAgICAgICAgIHNldHRlcj0idGhyZWVA
dGVzdC5jb20iCisgICAgICAgICAgIC8+CiAgICAgICAgIDwvYXR0YWNobWVudD4KICcnJwogICAg
IF9leHBlY3RlZF9leGFtcGxlX2F0dGFjaG1lbnRfcGFyc2luZyA9IHsKQEAgLTExMSw2ICsxMTYs
OCBAQCBjbGFzcyBCdWd6aWxsYVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAncmV2
aWV3ZXJfZW1haWwnIDogJ29uZUB0ZXN0LmNvbScsCiAgICAgICAgICdjb21taXQtcXVldWUnIDog
JysnLAogICAgICAgICAnY29tbWl0dGVyX2VtYWlsJyA6ICd0d29AdGVzdC5jb20nLAorICAgICAg
ICAnaW4tcmlldHZlbGQnOiAnKycsCisgICAgICAgICdyaWV0dmVsZF91cGxvYWRlcl9lbWFpbCc6
ICd0aHJlZUB0ZXN0LmNvbScsCiAgICAgICAgICdhdHRhY2hlcl9lbWFpbCcgOiAnY2hyaXN0aWFu
LnBsZXNuZXIuaGFuc2VuQGdtYWlsLmNvbScsCiAgICAgfQogCkBAIC0xOTEsMTIgKzE5OCwxMiBA
QCByZW1vdmVkLWJlY2F1c2UtaXQtd2FzLXJlYWxseS1sb25nCiBaRVpwYm1semFFeHZZV1JYYVhS
b1VtVmhjMjl1T25KbFlYTnZibDA3Q2l0OUNpc0tJRUJsYm1RS0lBb2dJMlZ1WkdsbUNnPT0KIDwv
ZGF0YT4gICAgICAgIAogIAotICAgICAgICAgICAgICA8ZmxhZyBuYW1lPSJyZXZpZXciCi0gICAg
ICAgICAgICAgICAgICAgIGlkPSIyNzYwMiIKLSAgICAgICAgICAgICAgICAgICAgc3RhdHVzPSI/
IgotICAgICAgICAgICAgICAgICAgICBzZXR0ZXI9Im1qc0BhcHBsZS5jb20iCi0gICAgICAgICAg
ICAgICAvPiAKLSAgICAgICAgICA8L2F0dGFjaG1lbnQ+IAorICAgICAgICAgICAgPGZsYWcgbmFt
ZT0icmV2aWV3IgorICAgICAgICAgICAgICAgIGlkPSIyNzYwMiIKKyAgICAgICAgICAgICAgICBz
dGF0dXM9Ij8iCisgICAgICAgICAgICAgICAgc2V0dGVyPSJtanNAYXBwbGUuY29tIgorICAgICAg
ICAgICAgLz4KKyAgICAgICAgPC9hdHRhY2htZW50PgogICAgIDwvYnVnPgogPC9idWd6aWxsYT4K
ICIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L3JpZXR2ZWxkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L3Jp
ZXR2ZWxkLnB5CmluZGV4IGMwZDYxMTk1OWExODc1ZjgzZTJhMTE2MGY4Y2JkZTAxZDhjNWYyMDku
LmRjZGE5YTcwMmUyZDM2ZTE4NzVlY2EyNmE4OGE3Zjc5YWJjYmZlNTYgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9yaWV0dmVsZC5weQorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvcmlldHZlbGQucHkKQEAgLTc0
LDcgKzc0LDcgQEAgY2xhc3MgUmlldHZlbGQob2JqZWN0KToKICAgICAgICAgIyBVc2UgUmVhbE1h
aW4gaW5zdGVhZCBvZiBjYWxsaW5nIHVwbG9hZCBmcm9tIHRoZSBjb21tYW5kbGluZSBzbyB0aGF0
CiAgICAgICAgICMgd2UgY2FuIHBhc3MgaW4gdGhlIGRpZmYgb3Vyc2VsdmVzLiBPdGhlcndpc2Us
IHVwbG9hZCB3aWxsIGp1c3QgdXNlCiAgICAgICAgICMgZ2l0IGRpZmYgZm9yIGdpdCBjaGVja291
dHMsIHdoaWNoIGRvZXNuJ3QgcmVzcGVjdCAtLXNxdWFzaCBhbmQgLS1naXQtY29tbWl0LgotICAg
ICAgICBpc3N1ZSwgcGF0Y2hzZXQgPSB1cGxvYWQuUmVhbE1haW4oYXJnc1sxOl0sIGRhdGE9ZGlm
ZikKKyAgICAgICAgaXNzdWUsIHBhdGNoc2V0ID0gdXBsb2FkLlJlYWxNYWluKGFyZ3MsIGRhdGE9
ZGlmZikKIAogICAgICAgICAjIFJlc2V0IGxvZ2dpbmcgbGV2ZWwgdG8gdGhlIG9yaWdpbmFsIHZh
bHVlLgogICAgICAgICBsb2dnaW5nLmdldExvZ2dlcigpLnNldExldmVsKG9sZF9sZXZlbF9uYW1l
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Rvd25sb2FkLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Rvd25sb2FkLnB5CmluZGV4IGEyODNkYTlkYzJlZDhlMTBmYzBlMGMyOGQ0MjZlYzY3ODhlOGY4
NGUuLmE4NWIwOWFkNDRlMmE1ODEwYWJiZTI3NTllNjdmYjBmMGNjM2ZiOWYgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQu
cHkKQEAgLTE4Miw2ICsxODIsMTggQEAgY2xhc3MgQnVpbGRBdHRhY2htZW50KEFic3RyYWN0UGF0
Y2hTZXF1ZW5jaW5nQ29tbWFuZCwgUHJvY2Vzc0F0dGFjaG1lbnRzTWl4aW4pOgogICAgIF0KIAog
CitjbGFzcyBQb3N0QXR0YWNobWVudFRvUmlldHZlbGQoQWJzdHJhY3RQYXRjaFNlcXVlbmNpbmdD
b21tYW5kLCBQcm9jZXNzQXR0YWNobWVudHNNaXhpbik6CisgICAgbmFtZSA9ICJwb3N0LWF0dGFj
aG1lbnQtdG8tcmlldHZlbGQiCisgICAgaGVscF90ZXh0ID0gIlVwbG9hZHMgYSBidWd6aWxsYSBh
dHRhY2htZW50IHRvIHJpZXR2ZWxkIgorICAgIGFyZ3VtZW50c19uYW1lcyA9ICJBVFRBQ0hNRU5U
SUQiCisgICAgbWFpbl9zdGVwcyA9IFsKKyAgICAgICAgc3RlcHMuQ2xlYW5Xb3JraW5nRGlyZWN0
b3J5LAorICAgICAgICBzdGVwcy5VcGRhdGUsCisgICAgICAgIHN0ZXBzLkFwcGx5UGF0Y2gsCisg
ICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAorICAgIF0KKworCiBjbGFzcyBBYnN0cmFjdFBh
dGNoQXBwbHlpbmdDb21tYW5kKEFic3RyYWN0UGF0Y2hTZXF1ZW5jaW5nQ29tbWFuZCk6CiAgICAg
cHJlcGFyZV9zdGVwcyA9IFsKICAgICAgICAgc3RlcHMuRW5zdXJlTG9jYWxDb21taXRJZk5lZWRl
ZCwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9kb3dubG9hZF91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9kb3dubG9hZF91bml0dGVzdC5weQppbmRleCA0ZGQ5ZDdmNGMxOTdkYzQ5NzQw
YzEzMzkwMGYzYWQzMjJlOTI3MDc3Li45NmFlOWRhYzJmNmU2MDExNDQyYWFkMzQ1MzM1MDBhZTk1
NzQwMDUwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvZG93bmxvYWRfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkX3VuaXR0ZXN0LnB5CkBAIC0xMDIsNiArMTAyLDEw
IEBAIGNsYXNzIERvd25sb2FkQ29tbWFuZHNUZXN0KENvbW1hbmRzVGVzdCk6CiAgICAgICAgIGV4
cGVjdGVkX3N0ZGVyciA9ICJQcm9jZXNzaW5nIDEgcGF0Y2ggZnJvbSAxIGJ1Zy5cblVwZGF0aW5n
IHdvcmtpbmcgZGlyZWN0b3J5XG5Qcm9jZXNzaW5nIHBhdGNoIDE5NyBmcm9tIGJ1ZyA0Mi5cbkJ1
aWxkaW5nIFdlYktpdFxuIgogICAgICAgICBzZWxmLmFzc2VydF9leGVjdXRlX291dHB1dHMoQnVp
bGRBdHRhY2htZW50KCksIFsxOTddLCBvcHRpb25zPXNlbGYuX2RlZmF1bHRfb3B0aW9ucygpLCBl
eHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCisgICAgZGVmIHRlc3RfcG9zdF9hdHRh
Y2htZW50X3RvX3JpZXR2ZWxkKHNlbGYpOgorICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiUHJv
Y2Vzc2luZyAxIHBhdGNoIGZyb20gMSBidWcuXG5VcGRhdGluZyB3b3JraW5nIGRpcmVjdG9yeVxu
UHJvY2Vzc2luZyBwYXRjaCAxOTcgZnJvbSBidWcgNDIuXG5NT0NLOiBVcGxvYWRpbmcgcGF0Y2gg
dG8gcmlldHZlbGRcbiIKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhlY3V0ZV9vdXRwdXRzKFBvc3RB
dHRhY2htZW50VG9SaWV0dmVsZCgpLCBbMTk3XSwgb3B0aW9ucz1zZWxmLl9kZWZhdWx0X29wdGlv
bnMoKSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKwogICAgIGRlZiB0ZXN0X2xh
bmRfYXR0YWNobWVudChzZWxmKToKICAgICAgICAgIyBGSVhNRTogVGhpcyBleHBlY3RlZCByZXN1
bHQgaXMgaW1wZXJmZWN0LCBub3RpY2UgaG93IGl0J3Mgc2VlaW5nIHRoZSBzYW1lIHBhdGNoIGFz
IHN0aWxsIHRoZXJlIGFmdGVyIGl0IHRob3VnaHQgaXQgd291bGQgaGF2ZSBjbGVhcmVkIHRoZSBm
bGFncy4KICAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIiIiUHJvY2Vzc2luZyAxIHBhdGNoIGZy
b20gMSBidWcuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL3F1ZXVlcy5weQppbmRleCAwOGJkM2FhZDkwZjI3MjIyOGRhOGViNmMzYmNjMGVjNTY2
MWNiNzY3Li45ZmQ0N2ZkZjhkNGZhMzk0N2Q1YmIxMjQyYWM0ZGY2ZGQzOTQ5YTdkIDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5
CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMu
cHkKQEAgLTI5MCwxMyArMjkwLDYgQEAgY2xhc3MgQ29tbWl0UXVldWUoQWJzdHJhY3RQYXRjaFF1
ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogCiAgICAgIyBTdGVwU2VxdWVuY2VFcnJv
ckhhbmRsZXIgbWV0aG9kcwogCi0gICAgQHN0YXRpY21ldGhvZAotICAgIGRlZiBfZXJyb3JfbWVz
c2FnZV9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKToKLSAgICAgICAgaWYg
bm90IHNjcmlwdF9lcnJvci5vdXRwdXQ6Ci0gICAgICAgICAgICByZXR1cm4gc2NyaXB0X2Vycm9y
Lm1lc3NhZ2Vfd2l0aF9vdXRwdXQoKQotICAgICAgICByZXN1bHRzX2xpbmsgPSB0b29sLnN0YXR1
c19zZXJ2ZXIucmVzdWx0c191cmxfZm9yX3N0YXR1cyhzdGF0dXNfaWQpCi0gICAgICAgIHJldHVy
biAiJXNcbkZ1bGwgb3V0cHV0OiAlcyIgJSAoc2NyaXB0X2Vycm9yLm1lc3NhZ2Vfd2l0aF9vdXRw
dXQoKSwgcmVzdWx0c19saW5rKQotCiAgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGhhbmRsZV9z
Y3JpcHRfZXJyb3IoY2xzLCB0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKToKICAgICAgICAgc3Rh
dHVzX2lkID0gY2xzLl91cGRhdGVfc3RhdHVzX2Zvcl9zY3JpcHRfZXJyb3IodG9vbCwgc3RhdGUs
IHNjcmlwdF9lcnJvcikKQEAgLTMwNCw2ICsyOTcsNDkgQEAgY2xhc3MgQ29tbWl0UXVldWUoQWJz
dHJhY3RQYXRjaFF1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgICAgICB2YWxp
ZGF0b3IucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHN0YXRlWyJwYXRjaCJdLmlkKCks
IGNscy5fZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHRvb2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9y
KSkKIAogCitjbGFzcyBSaWV0dmVsZFVwbG9hZFF1ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgU3Rl
cFNlcXVlbmNlRXJyb3JIYW5kbGVyKToKKyAgICBuYW1lID0gInJpZXR2ZWxkLXVwbG9hZC1xdWV1
ZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQWJzdHJhY3RQYXRjaFF1ZXVl
Ll9faW5pdF9fKHNlbGYpCisKKyAgICAjIEFic3RyYWN0UGF0Y2hRdWV1ZSBtZXRob2RzCisKKyAg
ICBkZWYgbmV4dF93b3JrX2l0ZW0oc2VsZik6CisgICAgICAgIHBhdGNoZXMgPSBzZWxmLnRvb2wu
YnVncy5xdWVyaWVzLmZldGNoX3BhdGNoZXNfZnJvbV9yaWV0dmVsZF9xdWV1ZSgpCisgICAgICAg
IGlmIHBhdGNoZXM6CisgICAgICAgICAgICByZXR1cm4gcGF0Y2hlc1swXQorICAgICAgICBzZWxm
Ll91cGRhdGVfc3RhdHVzKCJFbXB0eSBxdWV1ZSIpCisKKyAgICBkZWYgc2hvdWxkX3Byb2NlZWRf
d2l0aF93b3JrX2l0ZW0oc2VsZiwgcGF0Y2gpOgorICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVz
KCJVcGxvYWRpbmcgcGF0Y2giLCBwYXRjaCkKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRl
ZiBwcm9jZXNzX3dvcmtfaXRlbShzZWxmLCBwYXRjaCk6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgIHNlbGYucnVuX3dlYmtpdF9wYXRjaChbInBvc3QtYXR0YWNobWVudC10by1yaWV0dmVsZCIs
ICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tcGFyZW50LWNvbW1hbmQ9
cmlldHZlbGQtdXBsb2FkLXF1ZXVlIiwgcGF0Y2guaWQoKV0pCisgICAgICAgICAgICBzZWxmLl9k
aWRfcGFzcyhwYXRjaCkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4Y2VwdCBT
Y3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgIGlmIGUuZXhpdF9jb2RlICE9IFF1ZXVlRW5naW5l
LmhhbmRsZWRfZXJyb3JfY29kZToKKyAgICAgICAgICAgICAgICBzZWxmLl9kaWRfZmFpbChwYXRj
aCkKKyAgICAgICAgICAgIHJhaXNlIGUKKworICAgIGRlZiBfcmVqZWN0X3BhdGNoKHNlbGYsIHBh
dGNoLCBtZXNzYWdlKToKKyAgICAgICAgY29tbWVudF90ZXh0ID0gIlJlamVjdGluZyBwYXRjaCAl
cyBmcm9tIHJpZXR2ZWxkLXF1ZXVlLiIgJSBwYXRjaC5pZCgpCisgICAgICAgIHNlbGYudG9vbC5i
dWdzLnNldF9mbGFnX29uX2F0dGFjaG1lbnQocGF0Y2guaWQoKSwgImluLXJpZXR2ZWxkIiwgIi0i
LCBjb21tZW50X3RleHQsIG1lc3NhZ2UpCisKKyAgICBkZWYgaGFuZGxlX3VuZXhwZWN0ZWRfZXJy
b3Ioc2VsZiwgcGF0Y2gsIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLl9yZWplY3RfcGF0Y2gocGF0
Y2gsIG1lc3NhZ2UpCisKKyAgICAjIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlciBtZXRob2RzCisK
KyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgaGFuZGxlX3NjcmlwdF9lcnJvcihjbHMsIHRvb2ws
IHN0YXRlLCBzY3JpcHRfZXJyb3IpOgorICAgICAgICBzdGF0dXNfaWQgPSBjbHMuX3VwZGF0ZV9z
dGF0dXNfZm9yX3NjcmlwdF9lcnJvcih0b29sLCBzdGF0ZSwgc2NyaXB0X2Vycm9yKQorICAgICAg
ICBzZWxmLl9yZWplY3RfcGF0Y2gocGF0Y2gsIGNscy5fZXJyb3JfbWVzc2FnZV9mb3JfYnVnKHRv
b2wsIHN0YXR1c19pZCwgc2NyaXB0X2Vycm9yKSkKKworCiBjbGFzcyBBYnN0cmFjdFJldmlld1F1
ZXVlKEFic3RyYWN0UGF0Y2hRdWV1ZSwgUGVyc2lzdGVudFBhdGNoQ29sbGVjdGlvbkRlbGVnYXRl
LCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBvcHRp
b25zPU5vbmUpOgogICAgICAgICBBYnN0cmFjdFBhdGNoUXVldWUuX19pbml0X18oc2VsZiwgb3B0
aW9ucykKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CmluZGV4IGE1ZDU2ZGFkOTdkNmU0ZmEzODE5
MThlYzlkYjRhMzhiYTQwOGFmOTAuLjYzNjJhYjYyZWRkYzFiOGVlYTg0OTBlOGRhNDgzMWIyNTRl
NzYzNDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21t
YW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQpAQCAtMTkzLDYgKzE5MywxNiBAQCBN
T0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUgQnVpbGRlcnMgWyJCdWlsZGVyMiJdIGFy
ZSByZWQuIFNlZSBodHRwOi8vYnVpbAogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGF0dGFjaG1l
bnRzLCBleHBlY3RlZF9zb3J0KQogCiAKK2NsYXNzIFJpZXR2ZWxkVXBsb2FkUXVldWVUZXN0KFF1
ZXVlc1Rlc3QpOgorICAgIGRlZiB0ZXN0X3JpZXR2ZWxkX3VwbG9hZF9xdWV1ZShzZWxmKToKKyAg
ICAgICAgZXhwZWN0ZWRfc3RkZXJyID0geworICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUi
OiAiQ0FVVElPTjogcmlldHZlbGQtdXBsb2FkLXF1ZXVlIHdpbGwgZGlzY2FyZCBhbGwgbG9jYWwg
Y2hhbmdlcyBpbiBcIiVzXCJcblJ1bm5pbmcgV2ViS2l0IHJpZXR2ZWxkLXVwbG9hZC1xdWV1ZS5c
biIgJSBNb2NrU0NNLmZha2VfY2hlY2tvdXRfcm9vdCwKKyAgICAgICAgICAgICJzaG91bGRfcHJv
Y2VlZF93aXRoX3dvcmtfaXRlbSI6ICJNT0NLOiB1cGRhdGVfc3RhdHVzOiByaWV0dmVsZC11cGxv
YWQtcXVldWUgVXBsb2FkaW5nIHBhdGNoXG4iLAorICAgICAgICAgICAgInByb2Nlc3Nfd29ya19p
dGVtIjogIk1PQ0s6IHVwZGF0ZV9zdGF0dXM6IHJpZXR2ZWxkLXVwbG9hZC1xdWV1ZSBQYXNzXG4i
LAorICAgICAgICB9CisgICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoUmlldHZlbGRV
cGxvYWRRdWV1ZSgpLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQorCisKIGNsYXNz
IFN0eWxlUXVldWVUZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiB0ZXN0X3N0eWxlX3F1ZXVlKHNl
bGYpOgogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSB7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc3RlcHNlcXVlbmNlLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3N0ZXBzZXF1ZW5jZS5weQppbmRl
eCBjNmRlNzlmMGY3MzU3MDI5ZWYxZWFkODcyODEyYjc5NThlMmRmYmFmLi5jZmRmNWQ0YzA0Zjk2
ZTBkYTkxOWIwZWY0NjZkNmIzZjk3YTg0NjZhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvc3RlcHNlcXVlbmNlLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9zdGVwc2VxdWVuY2UucHkKQEAgLTM1
LDYgKzM1LDEzIEBAIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dp
bmcgaW1wb3J0IGxvZwogCiAKIGNsYXNzIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlcigpOgorICAg
IEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0b29sLCBzdGF0
dXNfaWQsIHNjcmlwdF9lcnJvcik6CisgICAgICAgIGlmIG5vdCBzY3JpcHRfZXJyb3Iub3V0cHV0
OgorICAgICAgICAgICAgcmV0dXJuIHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCkK
KyAgICAgICAgcmVzdWx0c19saW5rID0gdG9vbC5zdGF0dXNfc2VydmVyLnJlc3VsdHNfdXJsX2Zv
cl9zdGF0dXMoc3RhdHVzX2lkKQorICAgICAgICByZXR1cm4gIiVzXG5GdWxsIG91dHB1dDogJXMi
ICUgKHNjcmlwdF9lcnJvci5tZXNzYWdlX3dpdGhfb3V0cHV0KCksIHJlc3VsdHNfbGluaykKKwog
ICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBoYW5kbGVfc2NyaXB0X2Vycm9yKGNscywgdG9vbCwg
cGF0Y2gsIHNjcmlwdF9lcnJvcik6CiAgICAgICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3Is
ICJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3VwbG9hZC5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWQucHkKaW5kZXggY2Y3MTViOThiMmVjYTNj
Yjc2ZWViYTQxZDM4OGUyY2ZhNzk4MzQxMy4uZTY4MmNhNzY5MzRkMTI3MWJmYzJjMmUxNmU0NjI3
NjU5YjdmMGYwOCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL3VwbG9hZC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvdXBsb2FkLnB5CkBAIC0xNzEsNyArMTcxLDYgQEAgY2xhc3MgUG9zdChBYnN0
cmFjdFBhdGNoVXBsb2FkaW5nQ29tbWFuZCk6CiAgICAgc3RlcHMgPSBbCiAgICAgICAgIHN0ZXBz
LkNoZWNrU3R5bGUsCiAgICAgICAgIHN0ZXBzLkNvbmZpcm1EaWZmLAotICAgICAgICBzdGVwcy5Q
b3N0Q29kZVJldmlldywKICAgICAgICAgc3RlcHMuT2Jzb2xldGVQYXRjaGVzLAogICAgICAgICBz
dGVwcy5Qb3N0RGlmZiwKICAgICBdCkBAIC0yMTUsNyArMjE0LDYgQEAgY2xhc3MgVXBsb2FkKEFi
c3RyYWN0UGF0Y2hVcGxvYWRpbmdDb21tYW5kKToKICAgICAgICAgc3RlcHMuUHJlcGFyZUNoYW5n
ZUxvZywKICAgICAgICAgc3RlcHMuRWRpdENoYW5nZUxvZywKICAgICAgICAgc3RlcHMuQ29uZmly
bURpZmYsCi0gICAgICAgIHN0ZXBzLlBvc3RDb2RlUmV2aWV3LAogICAgICAgICBzdGVwcy5PYnNv
bGV0ZVBhdGNoZXMsCiAgICAgICAgIHN0ZXBzLlBvc3REaWZmLAogICAgIF0KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRl
c3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvdXBsb2Fk
X3VuaXR0ZXN0LnB5CmluZGV4IGQ1Mjc3NWJkMWJkNTY4MjY4NjUzOWE3NTgzYTkyN2FiMDk2OTg1
MzMuLjhmZWY1NGFjZWYzMDg1MTE1ZmY4M2E1NmMyODI1OWQ3ZDdmMWM0NGUgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy91cGxvYWRfdW5pdHRl
c3QucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3Vw
bG9hZF91bml0dGVzdC5weQpAQCAtNTYsOCArNTYsNiBAQCBjbGFzcyBVcGxvYWRDb21tYW5kc1Rl
c3QoQ29tbWFuZHNUZXN0KToKICAgICAgICAgb3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNl
CiAgICAgICAgIG9wdGlvbnMucmV2aWV3ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmNvbW1lbnQg
PSBOb25lCi0gICAgICAgICMgUmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMgYSByZWFsIFND
TSBjaGVja291dC4KLSAgICAgICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQogICAgICAg
ICBvcHRpb25zLmNjID0gTm9uZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJSdW5uaW5n
IGNoZWNrLXdlYmtpdC1zdHlsZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTovLy4uLgpAQCAt
ODcsOCArODUsNiBAQCBNT0NLOiB1c2VyLm9wZW5fdXJsOiBodHRwOi8vZXhhbXBsZS5jb20vNDIK
ICAgICAgICAgb3B0aW9ucy5yZXF1ZXN0X2NvbW1pdCA9IEZhbHNlCiAgICAgICAgIG9wdGlvbnMu
cmV2aWV3ID0gVHJ1ZQogICAgICAgICBvcHRpb25zLmNvbW1lbnQgPSBOb25lCi0gICAgICAgICMg
UmlldHZlbGQgdXBsb2FkIGNvZGUgcmVxdWlyZXMgYSByZWFsIFNDTSBjaGVja291dC4KLSAgICAg
ICAgb3B0aW9ucy5mYW5jeV9yZXZpZXcgPSBGYWxzZQogICAgICAgICBvcHRpb25zLmNjID0gTm9u
ZQogICAgICAgICBleHBlY3RlZF9zdGRlcnIgPSAiIiJSdW5uaW5nIGNoZWNrLXdlYmtpdC1zdHls
ZQogTU9DSzogdXNlci5vcGVuX3VybDogZmlsZTovLy4uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CmluZGV4IDJmMTkyZDk3ZmZlMTYxYzlmNTJiYWI3
MzM5ZmEyY2JkNTJmNDcyNjcuLjg2YWYxYTkyOTkwY2YxMDlhYTg1YjRmYWRkNTU0MzFmNDhjZjQ5
MGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9v
bC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkK
QEAgLTg2LDYgKzg2LDcgQEAgX3BhdGNoMyA9IHsKICAgICAibmFtZSI6ICJQYXRjaDMiLAogICAg
ICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImluLXJp
ZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAiPyIsCiAgICAgImF0dGFjaGVyX2VtYWlsIjog
ImVyaWNAd2Via2l0Lm9yZyIsCiB9CkBAIC0xMTIsNiArMTEzLDcgQEAgX3BhdGNoNSA9IHsKICAg
ICAibmFtZSI6ICJQYXRjaDUiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19w
YXRjaCI6IFRydWUsCisgICAgImluLXJpZXR2ZWxkIjogIj8iLAogICAgICJyZXZpZXciOiAiKyIs
CiAgICAgInJldmlld2VyX2VtYWlsIjogImZvb0BiYXIuY29tIiwKICAgICAiYXR0YWNoZXJfZW1h
aWwiOiAiZXJpY0B3ZWJraXQub3JnIiwKQEAgLTEyNSw2ICsxMjcsNyBAQCBfcGF0Y2g2ID0geyAj
IFZhbGlkIGNvbW1pdHRlciwgYnV0IG5vIHJldmlld2VyLgogICAgICJuYW1lIjogIlJPTExPVVQg
b2YgcjM0ODkiLAogICAgICJpc19vYnNvbGV0ZSI6IEZhbHNlLAogICAgICJpc19wYXRjaCI6IFRy
dWUsCisgICAgImluLXJpZXR2ZWxkIjogIi0iLAogICAgICJjb21taXQtcXVldWUiOiAiKyIsCiAg
ICAgImNvbW1pdHRlcl9lbWFpbCI6ICJmb29AYmFyLmNvbSIsCiAgICAgImF0dGFjaGVyX2VtYWls
IjogImVyaWNAd2Via2l0Lm9yZyIsCkBAIC0xMzgsNiArMTQxLDcgQEAgX3BhdGNoNyA9IHsgIyBW
YWxpZCByZXZpZXcsIHBhdGNoIGlzIG1hcmtlZCBvYnNvbGV0ZS4KICAgICAibmFtZSI6ICJQYXRj
aDciLAogICAgICJpc19vYnNvbGV0ZSI6IFRydWUsCiAgICAgImlzX3BhdGNoIjogVHJ1ZSwKKyAg
ICAiaW4tcmlldHZlbGQiOiAiKyIsCiAgICAgInJldmlldyI6ICIrIiwKICAgICAicmV2aWV3ZXJf
ZW1haWwiOiAiZm9vQGJhci5jb20iLAogICAgICJhdHRhY2hlcl9lbWFpbCI6ICJlcmljQHdlYmtp
dC5vcmciLApAQCAtMjIxLDYgKzIyNSw4IEBAIGNsYXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMoTW9j
ayk6CiAgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9wZW5kaW5nX2NvbW1pdF9saXN0KHNlbGYp
OgogICAgICAgICByZXR1cm4gc3VtKFtidWcucmV2aWV3ZWRfcGF0Y2hlcygpIGZvciBidWcgaW4g
c2VsZi5fYWxsX2J1Z3MoKV0sIFtdKQogCisgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9yaWV0
dmVsZF9xdWV1ZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHN1bShbYnVnLmluX3JpZXR2ZWxkX3F1
ZXVlX3BhdGNoZXMoKSBmb3IgYnVnIGluIHNlbGYuX2FsbF9idWdzKCldLCBbXSkKIAogIyBGSVhN
RTogQnVnemlsbGEgaXMgdGhlIHdyb25nIE1vY2stcG9pbnQuICBPbmNlIHdlIGhhdmUgYSBCdWd6
aWxsYU5ldHdvcmsKICMgICAgICAgIGNsYXNzIHdlIHNob3VsZCBtb2NrIHRoYXQgaW5zdGVhZC4K
QEAgLTUxMCw2ICs1MTYsMTUgQEAgY2xhc3MgTW9ja0V4ZWN1dGUoTW9jayk6CiAgICAgICAgIHJl
dHVybiAiTU9DSyBvdXRwdXQgb2YgY2hpbGQgcHJvY2VzcyIKIAogCitjbGFzcyBNb2NrUmlldHZl
bGQoKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBleGVjdXRpdmUsIGRyeXJ1bj1GYWxzZSk6
CisgICAgICAgIHBhc3MKKworICAgIGRlZiBwb3N0KHNlbGYsIGRpZmYsIG1lc3NhZ2U9Tm9uZSwg
Y29kZXJldmlld19pc3N1ZT1Ob25lLCBjYz1Ob25lKToKKyAgICAgICAgbG9nKCJNT0NLOiBVcGxv
YWRpbmcgcGF0Y2ggdG8gcmlldHZlbGQiKQorCisKIGNsYXNzIE1vY2tUb29sKCk6CiAKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgbG9nX2V4ZWN1dGl2ZT1GYWxzZSk6CkBAIC01MjMsNyArNTM4LDcg
QEAgY2xhc3MgTW9ja1Rvb2woKToKICAgICAgICAgc2VsZi5fY2hlY2tvdXQgPSBNb2NrQ2hlY2tv
dXQoKQogICAgICAgICBzZWxmLnN0YXR1c19zZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKCkKICAg
ICAgICAgc2VsZi5pcmNfcGFzc3dvcmQgPSAiTU9DSyBpcmMgcGFzc3dvcmQiCi0gICAgICAgIHNl
bGYuY29kZXJldmlldyA9IFJpZXR2ZWxkKHNlbGYuZXhlY3V0aXZlKQorICAgICAgICBzZWxmLmNv
ZGVyZXZpZXcgPSBNb2NrUmlldHZlbGQoc2VsZi5leGVjdXRpdmUpCiAKICAgICBkZWYgc2NtKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fc2NtCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvb3B0aW9ucy5weSBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9vcHRpb25zLnB5CmluZGV4IDE4NmQyOTI4OWI5MjA2YjZj
OTA1ZmMxMDZlY2U4OTk0N2QyYjJmMGMuLmZhMzZmNzMwNzg2MTRhMzc4ODA2NWUwMzc4Yjk2ZTEz
OGE4NzNmMzggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9z
dGVwcy9vcHRpb25zLnB5CkBAIC00MSw3ICs0MSw2IEBAIGNsYXNzIE9wdGlvbnMob2JqZWN0KToK
ICAgICBjb25maXJtID0gbWFrZV9vcHRpb24oIi0tbm8tY29uZmlybSIsIGFjdGlvbj0ic3RvcmVf
ZmFsc2UiLCBkZXN0PSJjb25maXJtIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJTa2lwIGNvbmZpcm1h
dGlvbiBzdGVwcy4iKQogICAgIGRlc2NyaXB0aW9uID0gbWFrZV9vcHRpb24oIi1tIiwgIi0tZGVz
Y3JpcHRpb24iLCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iZGVzY3JpcHRp
b24iLCBoZWxwPSJEZXNjcmlwdGlvbiBzdHJpbmcgZm9yIHRoZSBhdHRhY2htZW50IChkZWZhdWx0
OiBcInBhdGNoXCIpIikKICAgICBlbWFpbCA9IG1ha2Vfb3B0aW9uKCItLWVtYWlsIiwgYWN0aW9u
PSJzdG9yZSIsIHR5cGU9InN0cmluZyIsIGRlc3Q9ImVtYWlsIiwgaGVscD0iRW1haWwgYWRkcmVz
cyB0byB1c2UgaW4gQ2hhbmdlTG9ncy4iKQotICAgIGZhbmN5X3JldmlldyA9IG1ha2Vfb3B0aW9u
KCItLWZhbmN5LXJldmlldyIsIGFjdGlvbj0ic3RvcmVfdHJ1ZSIsIGRlc3Q9ImZhbmN5X3Jldmll
dyIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IihFeHBlcmltZW50YWwpIFVwbG9hZCB0aGUgcGF0Y2gg
dG8gUmlldHZlbGQgY29kZSByZXZpZXcgdG9vbC4iKQogICAgIGZvcmNlX2NsZWFuID0gbWFrZV9v
cHRpb24oIi0tZm9yY2UtY2xlYW4iLCBhY3Rpb249InN0b3JlX3RydWUiLCBkZXN0PSJmb3JjZV9j
bGVhbiIsIGRlZmF1bHQ9RmFsc2UsIGhlbHA9IkNsZWFuIHdvcmtpbmcgZGlyZWN0b3J5IGJlZm9y
ZSBhcHBseWluZyBwYXRjaGVzIChyZW1vdmVzIGxvY2FsIGNoYW5nZXMgYW5kIGNvbW1pdHMpIikK
ICMgRklYTUU6IE1ha2UgY29tbWl0IHJhbmdlcyB0cmVhdCBlYWNoIGNvbW1pdCBzZXBhcmF0ZWx5
IGluc3RlYWQgb2Ygc3F1YXNoaW5nIHRoZW0gaW50byBvbmUuCiAgICAgZ2l0X2NvbW1pdCA9IG1h
a2Vfb3B0aW9uKCItLWdpdC1jb21taXQiLCBhY3Rpb249InN0b3JlIiwgZGVzdD0iZ2l0X2NvbW1p
dCIsIGhlbHA9IkxvY2FsIGdpdCBjb21taXQgdG8gdXBsb2FkL2xhbmQuIElmIGEgcmFuZ2UsIHRo
ZSBjb21taXRzIGFyZSBzcXVhc2hlZCBpbnRvIG9uZS4iKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL3Bvc3Rjb2RlcmV2aWV3LnB5CmluZGV4
IDgzOTc1MTkwMjg0NTdjMjBjYWRiMzVlOWY3NTU0Y2I5ZDcyMDFhY2MuLmY5YmM2ODU2Yjg5MWNi
NDgxNjcwNmQ2MGE4YTk4MzljOTBiN2Q5NzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9zdGVwcy9wb3N0Y29kZXJldmlldy5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvcG9zdGNvZGVyZXZpZXcucHkKQEAgLTM2LDMz
ICszNiwyNyBAQCBjbGFzcyBQb3N0Q29kZVJldmlldyhBYnN0cmFjdFN0ZXApOgogICAgICAgICBy
ZXR1cm4gQWJzdHJhY3RTdGVwLm9wdGlvbnMoKSArIFsKICAgICAgICAgICAgIE9wdGlvbnMuY2Ms
CiAgICAgICAgICAgICBPcHRpb25zLmRlc2NyaXB0aW9uLAotICAgICAgICAgICAgT3B0aW9ucy5m
YW5jeV9yZXZpZXcsCiAgICAgICAgIF0KIAogICAgIGRlZiBydW4oc2VsZiwgc3RhdGUpOgotICAg
ICAgICBpZiBub3Qgc2VsZi5fb3B0aW9ucy5mYW5jeV9yZXZpZXc6Ci0gICAgICAgICAgICByZXR1
cm4KKyAgICAgICAgcGF0Y2ggPSBzdGF0ZS5nZXQoInBhdGNoIikKKyAgICAgICAgYnVnX2lkID0g
cGF0Y2guYnVnX2lkKCkKKyAgICAgICAgdGl0bGUgPSBwYXRjaC5uYW1lKCkKIAotICAgICAgICBi
dWdfaWQgPSBzdGF0ZS5nZXQoImJ1Z19pZCIpCi0gICAgICAgIGlmIG5vdCBidWdfaWQ6Ci0gICAg
ICAgICAgICByYWlzZSBTY3JpcHRFcnJvcihtZXNzYWdlPSJDYW5ub3QgdXBsb2FkIGEgZmFuY3kg
cmV2aWV3IHdpdGhvdXQgYSBidWcgSUQuIikKLQotICAgICAgICBtZXNzYWdlID0gc2VsZi5fb3B0
aW9ucy5kZXNjcmlwdGlvbgotICAgICAgICBpZiBub3QgbWVzc2FnZToKLSAgICAgICAgICAgICMg
SWYgd2UgaGF2ZSBhbiBpc3N1ZSBudW1iZXIsIHRoZW4gdGhlIG1lc3NhZ2UgYmVjb21lcyB0aGUg
bGFiZWwKLSAgICAgICAgICAgICMgb2YgdGhlIG5ldyBwYXRjaC4gT3RoZXJ3aXNlLCBpdCBiZWNv
bWVzIHRoZSB0aXRsZSBvZiB0aGUgd2hvbGUKLSAgICAgICAgICAgICMgaXNzdWUuCi0gICAgICAg
ICAgICBpZiBzdGF0ZS5nZXQoImJ1Z190aXRsZSIpOgotICAgICAgICAgICAgICAgICMgVGhpcyBp
cyB0aGUgY29tbW9uIGNhc2UgZm9yIHRoZSB0aGUgZmlyc3QgInVwbG9hZCIgY29tbWFuZC4KLSAg
ICAgICAgICAgICAgICBtZXNzYWdlID0gc3RhdGUuZ2V0KCJidWdfdGl0bGUiKQotICAgICAgICAg
ICAgZWxpZiBidWdfaWQ6Ci0gICAgICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2Fz
ZSBmb3IgdGhlICJwb3N0IiBjb21tYW5kIGFuZAotICAgICAgICAgICAgICAgICMgc3Vic2VxdWVu
dCBydW5zIG9mIHRoZSAidXBsb2FkIiBjb21tYW5kLgotICAgICAgICAgICAgICAgIG1lc3NhZ2Ug
PSAiQ29kZSByZXZpZXcgZm9yICVzIiAlIHNlbGYuX3Rvb2wuYnVncy5idWdfdXJsX2Zvcl9idWdf
aWQoYnVnX2lkKQotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICAjIFVucmVhY2hh
YmxlIHdpdGggb3VyIGN1cnJlbnQgY29tbWFuZHMsIGJ1dCB3ZSBtaWdodCBoaXQKLSAgICAgICAg
ICAgICAgICAjIHRoaXMgY2FzZSBpZiB3ZSBzdXBwb3J0IGJ1Zy1sZXNzIGNvZGUgcmV2aWV3cy4K
LSAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IgorICAgICAgICAjIElmIHRo
ZSBpc3N1ZSBhbHJlYWR5IGV4aXN0cywgdGhlbiB0aGUgbWVzc2FnZSBiZWNvbWVzIHRoZSBsYWJl
bAorICAgICAgICAjIG9mIHRoZSBuZXcgcGF0Y2guIE90aGVyd2lzZSwgaXQgYmVjb21lcyB0aGUg
dGl0bGUgb2YgdGhlIHdob2xlCisgICAgICAgICMgaXNzdWUuCisgICAgICAgIGlmIHRpdGxlOgor
ICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhlIHRoZSBmaXJzdCAi
dXBsb2FkIiBjb21tYW5kLgorICAgICAgICAgICAgbWVzc2FnZSA9IHRpdGxlCisgICAgICAgIGVs
aWYgYnVnX2lkOgorICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBjb21tb24gY2FzZSBmb3IgdGhl
ICJwb3N0IiBjb21tYW5kIGFuZAorICAgICAgICAgICAgIyBzdWJzZXF1ZW50IHJ1bnMgb2YgdGhl
ICJ1cGxvYWQiIGNvbW1hbmQuCisgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUgcmV2aWV3IGZv
ciAlcyIgJSBzZWxmLl90b29sLmJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKGJ1Z19pZCkKKyAgICAg
ICAgZWxzZToKKyAgICAgICAgICAgICMgVW5yZWFjaGFibGUgd2l0aCBvdXIgY3VycmVudCBjb21t
YW5kcywgYnV0IHdlIG1pZ2h0IGhpdAorICAgICAgICAgICAgIyB0aGlzIGNhc2UgaWYgd2Ugc3Vw
cG9ydCBidWctbGVzcyBjb2RlIHJldmlld3MuCisgICAgICAgICAgICBtZXNzYWdlID0gIkNvZGUg
cmV2aWV3IgogCiAgICAgICAgICMgVXNlIHRoZSBidWcgSUQgYXMgdGhlIHJpZXR2ZWxkIGlzc3Vl
IG51bWJlci4gVGhpcyBtZWFucyByaWV0dmVsZCBjb2RlIHJldmlld3MKICAgICAgICAgIyB3aGVu
IHRoZXJlIGFyZSBtdWx0aXBsZSBkaWZmZXJlbnQgcGF0Y2hlcyBvbiBhIGJ1ZyB3aWxsIGJlIGEg
Yml0IHdvbmt5LCBidXQKQEAgLTcxLDMgKzY1LDUgQEAgY2xhc3MgUG9zdENvZGVSZXZpZXcoQWJz
dHJhY3RTdGVwKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1lc3NhZ2U9bWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvZGVyZXZpZXdfaXNzdWU9YnVnX2lkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2M9c2VsZi5fb3B0aW9ucy5j
YykKKworICAgICAgICBzZWxmLl90b29sLmJ1Z3Muc2V0X2ZsYWdfb25fYXR0YWNobWVudChwYXRj
aC5pZCgpLCAnaW4tcmlldHZlbGQnLCAnKycpCg==
</data>
<flag name="review"
          id="41404"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>