<?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>173116</bug_id>
          
          <creation_ts>2017-06-08 15:01:40 -0700</creation_ts>
          <short_desc>webkitpy: Reduce polling in ServerProcess</short_desc>
          <delta_ts>2017-06-10 12:51:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=88280</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dpranke</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317076</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-08 15:01:40 -0700</bug_when>
    <thetext>Every time &apos;has_crashed&apos; is called, a ServerProcess will poll it&apos;s process to determine if a crash has occurred. This issue with this approach is that on some platforms, polling may be an expensive feature. The ServerProcess checks its crash every time a line is accessed from stdout or stderr, even if the data for that line is already cached in Python.  Additionally, the driver checks if the ServerProcess has crashed before reading the next line from either standard error or standard out.

We should reduce the amount of polling ServerProcess does so that it is only polling when polling is actually required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317087</commentid>
    <comment_count>1</comment_count>
      <attachid>312351</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-08 15:18:39 -0700</bug_when>
    <thetext>Created attachment 312351
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317122</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-06-08 16:27:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/32661857&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317589</commentid>
    <comment_count>3</comment_count>
      <attachid>312351</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-06-09 12:55:40 -0700</bug_when>
    <thetext>Comment on attachment 312351
Patch

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

Jonathan Bedard and I spoke about this issue in-person today (06/09). I am worried that this change may cause a test that crashed to be misclassified among other issues (see remarks below). I suggest that we investigate whether we need to speed up ServerProcess._read() or if it is sufficient to speed up the calling code. Briefly looking, Driver._read_block() is one of the callers. It explicitly calls ServerProcess.has_crashed() (which calls ServerProcess.poll()) twice and implicitly calls ServerProcess.has_crashed() via ServerProcess.{read_stdout_line, read_stderr_line, read_either_stdout_or_stderr_line}(). We should look to see if we can achieve the speed up we need by removing one or both of the calls to ServerProcess.has_crashed() from Driver._read_block().

&gt; Tools/Scripts/webkitpy/port/server_process.py:148
&gt; +            if not self._crashed and poll_result:
&gt; +                _log.debug(&apos;Failed to poll process {}.&apos;.format(self.process_name()))
&gt; +                self._crashed = True
&gt; +                self._handle_possible_interrupt()

Could this logic cause side effects for callers that causally call poll()?

&gt; Tools/Scripts/webkitpy/port/server_process.py:331
&gt; +            self.poll()
&gt; +            if self.has_crashed():
&gt; +                return None
&gt; +

It seems weird that we may return buffered output from a process that may have already crashed. How does this effect the processing logic in callers? Could this cause a test that crashed to be misclassified?

&gt; Tools/Scripts/webkitpy/port/server_process.py:346
&gt; +        if self._proc and self._proc.poll() is None:

Notice that self._proc is always non-None when we get to this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317602</commentid>
    <comment_count>4</comment_count>
      <attachid>312483</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-09 13:34:18 -0700</bug_when>
    <thetext>Created attachment 312483
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317611</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-09 13:56:37 -0700</bug_when>
    <thetext>I did some profiling and code investigation.

It is necessary to speed up both Driver._read_block() and ServerProcess._read().  If we only speed up one, we will only cut longer test&apos;s execution time in half.  In the particular case I was working with (quicklook/word.html), without any optimizations, the test took 1:52, with only the optimization in Driver._read_block(), the test took 53 seconds.  With both optimizations, the test takes less than a second.

Further more, at least for layout tests, we actually test the ServerProcess after all data is read (on line 208 in driver.py).  This means that there should be no change in crash classification.

The other major usage of server_process is in webkitpy/port/image_diff.py.  ImageDiffer already polls the process before a line is read.  This means that the change in ServerProcess._read() will not effect calls here.  Also note that ImageDiff is run on the Mac when running iOS tests, so does not require an optimization.

To address some of Dan&apos;s points in person today (06/09), I moved this optimization out of has_crashed(), as the optimization in Driver._read_block() and ServerProcess._read() give us everything we need.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317650</commentid>
    <comment_count>6</comment_count>
      <attachid>312483</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-09 15:02:05 -0700</bug_when>
    <thetext>Comment on attachment 312483
Patch

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

&gt; Tools/ChangeLog:13
&gt; +        (Driver._read_block): Rely on output of the ServerProcess to detect a crash or a timeout.

This comment is inaccurate. As we discussed on IRC, we&apos;re also relying on ServerProcess._read to poll the process.

&gt; Tools/ChangeLog:17
&gt; +

Please add tests for both changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317687</commentid>
    <comment_count>7</comment_count>
      <attachid>312506</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-09 16:10:42 -0700</bug_when>
    <thetext>Created attachment 312506
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317689</commentid>
    <comment_count>8</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-09 16:14:31 -0700</bug_when>
    <thetext>*** Bug 88280 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317877</commentid>
    <comment_count>9</comment_count>
      <attachid>312506</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-06-10 00:20:09 -0700</bug_when>
    <thetext>Comment on attachment 312506
Patch

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

r=me with one more test case.

&gt; Tools/Scripts/webkitpy/port/driver_unittest.py:147
&gt; +    def test_read_block_crashed_process(self):

We should also add another test for making sure that we don&apos;t poll the process on every line since that&apos;s what we&apos;re fixing here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317894</commentid>
    <comment_count>10</comment_count>
      <attachid>312506</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-06-10 06:46:33 -0700</bug_when>
    <thetext>Comment on attachment 312506
Patch

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

&gt; Tools/Scripts/webkitpy/port/driver.py:555
&gt; +        while 1:

while True</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317917</commentid>
    <comment_count>11</comment_count>
      <attachid>312575</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-06-10 12:11:50 -0700</bug_when>
    <thetext>Created attachment 312575
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317920</commentid>
    <comment_count>12</comment_count>
      <attachid>312575</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-10 12:51:17 -0700</bug_when>
    <thetext>Comment on attachment 312575
Patch for landing

Clearing flags on attachment: 312575

Committed r218055: &lt;http://trac.webkit.org/changeset/218055&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317921</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-10 12:51:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312351</attachid>
            <date>2017-06-08 15:18:39 -0700</date>
            <delta_ts>2017-06-09 13:34:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173116-20170608151838.patch</filename>
            <type>text/plain</type>
            <size>4360</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxNzk0OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE3LTA2LTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUmVkdWNlIHBvbGxpbmcgaW4gU2VydmVyUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxk
IGJlIHNtYXJ0ZXIgYWJvdXQgcG9sbGluZy4gV2UgZG8gbm90IG5lZWQgdG8gcG9sbCBldmVyeSB0
aW1lIGEgbGluZSBpcyByZWFkIGZyb20KKyAgICAgICAgc3Rkb3V0IGFuZCBzdGRlcnIgc2luY2Ug
bGluZXMgYXJlIHVzdWFsbHkgcmVhZCBmcm9tIGNhY2hlZCBkYXRhLiBXZSBzaG91bGQgb25seSBw
b2xsCisgICAgICAgIHdoZW4gZXh0cmFjdGluZyB0aGF0IGNhY2hlZCBkYXRhIGZyb20gc3Rkb3V0
IGFuZCBzdGRlcnIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3By
b2Nlc3MucHk6CisgICAgICAgIChTZXJ2ZXJQcm9jZXNzLnBvbGwpOiBNb3ZlZCBjcmFzaCBtYW5h
Z2VtZW50IGxvZ2ljLgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5oYXNfY3Jhc2hlZCk6IE1vdmUg
bG9naWMgaW50byBTZXJ2ZXJQcm9jZXNzLnBvbGwoKSwgdGhpcyBpcworICAgICAgICBub3cganVz
dCBhbiBhY2Nlc3NvcgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5fcmVhZCk6IEFsbG93IGZvciBk
YXRhIHRvIGJlIHJlYWQgZnJvbSBfb3V0cHV0IGV2ZW4gaWYgdGhlIHByb2Nlc3MgaGFzCisgICAg
ICAgIGNyYXNoZWQuIE9ubHkgcG9sbCB0aGUgcHJvY2VzcyBpZiBkYXRhIG5lZWRzIHRvIGJlIGV4
dHJhY3RlZCBmcm9tIHN0ZG91dCBvciBzdGRlcnIuCisgICAgICAgIChTZXJ2ZXJQcm9jZXNzLnN0
b3ApOiBDaGVjayBzZWxmLl9wcm9jIGRpcmVjdGx5IHNpbmNlIHBvbGwoKSBub3cgY29udGFpbnMg
Y3Jhc2ggbG9naWMuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9j
ZXNzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoTW9ja1Byb2MuX19pbml0X18pOiBNb2NrUHJvYyBz
aG91bGQgY29udGFpbiBhIHJldHVybmNvZGUgYXR0cmlidXRlIHRvIG1pbWljIHJlYWwgcHJvYy4K
KwogMjAxNy0wNi0wOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAg
ICAgICAgd2Via2l0cHk6IFJ1biBzYW1wbGUvc3BpbmR1bXAgb24gaU9TIGRldmljZXMKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkJKHJldmlz
aW9uIDIxNzkzNCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vz
cy5weQkod29ya2luZyBjb3B5KQpAQCAtMTQxLDcgKzE0MSwxMiBAQCBjbGFzcyBTZXJ2ZXJQcm9j
ZXNzKG9iamVjdCk6CiAgICAgICAgICIiIkNoZWNrIHRvIHNlZSBpZiB0aGUgdW5kZXJseWluZyBw
cm9jZXNzIGlzIHJ1bm5pbmc7IHJldHVybnMgTm9uZQogICAgICAgICBpZiBpdCBzdGlsbCBpcyAo
d3JhcHBlciBhcm91bmQgc3VicHJvY2Vzcy5wb2xsKS4iIiIKICAgICAgICAgaWYgc2VsZi5fcHJv
YzoKLSAgICAgICAgICAgIHJldHVybiBzZWxmLl9wcm9jLnBvbGwoKQorICAgICAgICAgICAgcG9s
bF9yZXN1bHQgPSBzZWxmLl9wcm9jLnBvbGwoKQorICAgICAgICAgICAgaWYgbm90IHNlbGYuX2Ny
YXNoZWQgYW5kIHBvbGxfcmVzdWx0OgorICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ0ZhaWxl
ZCB0byBwb2xsIHByb2Nlc3Mge30uJy5mb3JtYXQoc2VsZi5wcm9jZXNzX25hbWUoKSkpCisgICAg
ICAgICAgICAgICAgc2VsZi5fY3Jhc2hlZCA9IFRydWUKKyAgICAgICAgICAgICAgICBzZWxmLl9o
YW5kbGVfcG9zc2libGVfaW50ZXJydXB0KCkKKyAgICAgICAgICAgIHJldHVybiBwb2xsX3Jlc3Vs
dAogICAgICAgICByZXR1cm4gTm9uZQogCiAgICAgZGVmIHdyaXRlKHNlbGYsIGJ5dGVzLCBpZ25v
cmVfY3Jhc2g9RmFsc2UpOgpAQCAtMzA1LDEwICszMTAsNiBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNz
KG9iamVjdCk6CiAgICAgICAgIHJldHVybiBOb25lCiAKICAgICBkZWYgaGFzX2NyYXNoZWQoc2Vs
Zik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLl9jcmFzaGVkIGFuZCBzZWxmLnBvbGwoKToKLSAgICAg
ICAgICAgIF9sb2cuZGVidWcoJ1RoaXMgdGVzdCBtYXJrZWQgYXMgYSBjcmFzaCBiZWNhdXNlIG9m
IGZhaWx1cmUgdG8gcG9sbCB0aGUgc2VydmVyIHByb2Nlc3MuJykKLSAgICAgICAgICAgIHNlbGYu
X2NyYXNoZWQgPSBUcnVlCi0gICAgICAgICAgICBzZWxmLl9oYW5kbGVfcG9zc2libGVfaW50ZXJy
dXB0KCkKICAgICAgICAgcmV0dXJuIHNlbGYuX2NyYXNoZWQKIAogICAgICMgVGhpcyByZWFkIGZ1
bmN0aW9uIGlzIGEgYml0IG9kZGx5LWRlc2lnbmVkLCBhcyBpdCBwb2xscyBib3RoIHN0ZG91dCBh
bmQgc3RkZXJyLCB5ZXQKQEAgLTMxNiw5ICszMTcsNiBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9i
amVjdCk6CiAgICAgIyBJdCBtaWdodCBiZSBjbGVhbmVyIHRvIHBhc3MgaW4gdGhlIGZpbGUgZGVz
Y3JpcHRvciB0byBwb2xsIGluc3RlYWQuCiAgICAgZGVmIF9yZWFkKHNlbGYsIGRlYWRsaW5lLCBm
ZXRjaF9ieXRlc19mcm9tX2J1ZmZlcnNfY2FsbGJhY2spOgogICAgICAgICB3aGlsZSBUcnVlOgot
ICAgICAgICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hlZCgpOgotICAgICAgICAgICAgICAgIHJldHVy
biBOb25lCi0KICAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZGVhZGxpbmU6CiAgICAgICAg
ICAgICAgICAgc2VsZi5faGFuZGxlX3RpbWVvdXQoKQogICAgICAgICAgICAgICAgIHJldHVybiBO
b25lCkBAIC0zMjcsNiArMzI1LDEwIEBAIGNsYXNzIFNlcnZlclByb2Nlc3Mob2JqZWN0KToKICAg
ICAgICAgICAgIGlmIGJ5dGVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHJldHVybiBi
eXRlcwogCisgICAgICAgICAgICBzZWxmLnBvbGwoKQorICAgICAgICAgICAgaWYgc2VsZi5oYXNf
Y3Jhc2hlZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKICAgICAgICAgICAgIGlm
IHNlbGYuX3VzZV93aW4zMl9hcGlzOgogICAgICAgICAgICAgICAgIHNlbGYuX3dhaXRfZm9yX2Rh
dGFfYW5kX3VwZGF0ZV9idWZmZXJzX3VzaW5nX3dpbjMyX2FwaXMoZGVhZGxpbmUpCiAgICAgICAg
ICAgICBlbHNlOgpAQCAtMzQxLDcgKzM0Myw3IEBAIGNsYXNzIFNlcnZlclByb2Nlc3Mob2JqZWN0
KToKICAgICAgICAgICAgIHJldHVybiAoTm9uZSwgTm9uZSkKIAogICAgICAgICAjIE9ubHkgYm90
aGVyIHRvIGNoZWNrIGZvciBsZWFrcyBvciBzdGRlcnIgaWYgdGhlIHByb2Nlc3MgaXMgc3RpbGwg
cnVubmluZy4KLSAgICAgICAgaWYgc2VsZi5wb2xsKCkgaXMgTm9uZToKKyAgICAgICAgaWYgc2Vs
Zi5fcHJvYyBhbmQgc2VsZi5fcHJvYy5wb2xsKCkgaXMgTm9uZToKICAgICAgICAgICAgIHNlbGYu
X3BvcnQuY2hlY2tfZm9yX2xlYWtzKHNlbGYucHJvY2Vzc19uYW1lKCksIHNlbGYucGlkKCkpCiAK
ICAgICAgICAgbm93ID0gdGltZS50aW1lKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkJKHJldmlzaW9uIDIx
NzkzNCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0
dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQCBjbGFzcyBNb2NrUHJvYyhv
YmplY3QpOgogICAgICAgICBzZWxmLnN0ZG91dCA9IE1vY2tGaWxlKHNlcnZlcl9wcm9jZXNzKQog
ICAgICAgICBzZWxmLnN0ZGVyciA9IE1vY2tGaWxlKHNlcnZlcl9wcm9jZXNzKQogICAgICAgICBz
ZWxmLnBpZCA9IDEKKyAgICAgICAgc2VsZi5yZXR1cm5jb2RlID0gTm9uZQogCiAgICAgZGVmIHBv
bGwoc2VsZik6CiAgICAgICAgIHJldHVybiAxCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312483</attachid>
            <date>2017-06-09 13:34:18 -0700</date>
            <delta_ts>2017-06-09 16:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173116-20170609133417.patch</filename>
            <type>text/plain</type>
            <size>2935</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxODAxNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDE3LTA2LTA5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUmVkdWNlIHBvbGxpbmcgaW4gU2VydmVyUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxk
IGJlIHNtYXJ0ZXIgYWJvdXQgcG9sbGluZy4gV2UgZG8gbm90IG5lZWQgdG8gcG9sbCBldmVyeSB0
aW1lIGEgbGluZSBpcyByZWFkIGZyb20KKyAgICAgICAgc3Rkb3V0IGFuZCBzdGRlcnIgc2luY2Ug
bGluZXMgYXJlIHVzdWFsbHkgcmVhZCBmcm9tIGNhY2hlZCBkYXRhLiBXZSBzaG91bGQgb25seSBw
b2xsCisgICAgICAgIHdoZW4gZXh0cmFjdGluZyB0aGF0IGNhY2hlZCBkYXRhIGZyb20gc3Rkb3V0
IGFuZCBzdGRlcnIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5
OgorICAgICAgICAoRHJpdmVyLl9yZWFkX2Jsb2NrKTogUmVseSBvbiBvdXRwdXQgb2YgdGhlIFNl
cnZlclByb2Nlc3MgdG8gZGV0ZWN0IGEgY3Jhc2ggb3IgYSB0aW1lb3V0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weToKKyAgICAgICAgKFNlcnZlclBy
b2Nlc3MuX3JlYWQpOiBBbGxvdyBmb3IgZGF0YSB0byBiZSByZWFkIGZyb20gX291dHB1dCBldmVu
IGlmIHRoZSBwcm9jZXNzIGhhcworICAgICAgICBjcmFzaGVkLiBPbmx5IHBvbGwgdGhlIHByb2Nl
c3MgaWYgZGF0YSBuZWVkcyB0byBiZSBleHRyYWN0ZWQgZnJvbSBzdGRvdXQgb3Igc3RkZXJyLiAK
KwogMjAxNy0wNi0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TIERuRF0gQWRkIGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGlu
IGVkaXRhYmxlIGNvbnRlbnQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2
ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5w
eQkocmV2aXNpb24gMjE3OTk0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZl
ci5weQkod29ya2luZyBjb3B5KQpAQCAtNTUyLDcgKzU1Miw3IEBAIGNsYXNzIERyaXZlcihvYmpl
Y3QpOgogICAgICAgICBvdXRfc2Vlbl9lb2YgPSBGYWxzZQogICAgICAgICBhc2FuX3Zpb2xhdGlv
bl9kZXRlY3RlZCA9IEZhbHNlCiAKLSAgICAgICAgd2hpbGUgbm90IHNlbGYuaGFzX2NyYXNoZWQo
KToKKyAgICAgICAgd2hpbGUgMToKICAgICAgICAgICAgIGlmIG91dF9zZWVuX2VvZiBhbmQgKHNl
bGYuZXJyX3NlZW5fZW9mIG9yIG5vdCB3YWl0X2Zvcl9zdGRlcnJfZW9mKToKICAgICAgICAgICAg
ICAgICBicmVhawogCkBAIC01NjUsNyArNTY1LDcgQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAg
ICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgIG91dF9saW5lLCBlcnJfbGluZSA9IHNl
bGYuX3NlcnZlcl9wcm9jZXNzLnJlYWRfZWl0aGVyX3N0ZG91dF9vcl9zdGRlcnJfbGluZShkZWFk
bGluZSkKIAotICAgICAgICAgICAgaWYgc2VsZi5fc2VydmVyX3Byb2Nlc3MudGltZWRfb3V0IG9y
IHNlbGYuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgIGlmIG91dF9saW5lIGlzIE5vbmUgYW5k
IGVycl9saW5lIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgYnJlYWsKIAogICAgICAgICAgICAg
aWYgb3V0X2xpbmU6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3By
b2Nlc3MucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZl
cl9wcm9jZXNzLnB5CShyZXZpc2lvbiAyMTc5OTQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTMxNiw3ICszMTYsNyBA
QCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAgICAgIyBJdCBtaWdodCBiZSBjbGVhbmVy
IHRvIHBhc3MgaW4gdGhlIGZpbGUgZGVzY3JpcHRvciB0byBwb2xsIGluc3RlYWQuCiAgICAgZGVm
IF9yZWFkKHNlbGYsIGRlYWRsaW5lLCBmZXRjaF9ieXRlc19mcm9tX2J1ZmZlcnNfY2FsbGJhY2sp
OgogICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hlZCgp
OgorICAgICAgICAgICAgaWYgc2VsZi5fY3Jhc2hlZDoKICAgICAgICAgICAgICAgICByZXR1cm4g
Tm9uZQogCiAgICAgICAgICAgICBpZiB0aW1lLnRpbWUoKSA+IGRlYWRsaW5lOgpAQCAtMzI3LDYg
KzMyNyw5IEBAIGNsYXNzIFNlcnZlclByb2Nlc3Mob2JqZWN0KToKICAgICAgICAgICAgIGlmIGJ5
dGVzIGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgIHJldHVybiBieXRlcwogCisgICAgICAg
ICAgICBpZiBzZWxmLmhhc19jcmFzaGVkKCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUK
KwogICAgICAgICAgICAgaWYgc2VsZi5fdXNlX3dpbjMyX2FwaXM6CiAgICAgICAgICAgICAgICAg
c2VsZi5fd2FpdF9mb3JfZGF0YV9hbmRfdXBkYXRlX2J1ZmZlcnNfdXNpbmdfd2luMzJfYXBpcyhk
ZWFkbGluZSkKICAgICAgICAgICAgIGVsc2U6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312506</attachid>
            <date>2017-06-09 16:10:42 -0700</date>
            <delta_ts>2017-06-10 12:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173116-20170609161041.patch</filename>
            <type>text/plain</type>
            <size>9234</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxODAyNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDE3LTA2LTA5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUmVkdWNlIHBvbGxpbmcgaW4gU2VydmVyUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugc2hvdWxk
IGJlIHNtYXJ0ZXIgYWJvdXQgcG9sbGluZy4gV2UgZG8gbm90IG5lZWQgdG8gcG9sbCBldmVyeSB0
aW1lIGEgbGluZSBpcyByZWFkIGZyb20KKyAgICAgICAgc3Rkb3V0IGFuZCBzdGRlcnIgc2luY2Ug
bGluZXMgYXJlIHVzdWFsbHkgcmVhZCBmcm9tIGNhY2hlZCBkYXRhLiBXZSBzaG91bGQgb25seSBw
b2xsCisgICAgICAgIHdoZW4gZXh0cmFjdGluZyB0aGF0IGNhY2hlZCBkYXRhIGZyb20gc3Rkb3V0
IGFuZCBzdGRlcnIuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5
OgorICAgICAgICAoRHJpdmVyLl9yZWFkX2Jsb2NrKTogUmVseSBvbiBvdXRwdXQgb2YgdGhlIFNl
cnZlclByb2Nlc3MgdG8gZGV0ZWN0IGEgY3Jhc2ggb3IgYSB0aW1lb3V0CisgICAgICAgIGFuZCBv
biBTZXJ2ZXJQcm9jZXNzIHRvIHBvbGwgdGhlIHByb2Nlc3MgaWYgbm90IGRhdGEgaXMgYXZhaWxh
YmxlIGluIHN0ZG91dCBhbmQgc3RkZXJyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9y
dC9kcml2ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChEcml2ZXJUZXN0LnRlc3RfcmVhZF9ibG9j
a19jcmFzaGVkX3Byb2Nlc3MpOiBUZXN0IHRoYXQgdGhlIERyaXZlciB3aWxsIGhhbmRsZSBhIGNy
YXNoaW5nCisgICAgICAgIFNlcnZlclByb2Nlc3MuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5OgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5fcmVhZCk6
IEFsbG93IGZvciBkYXRhIHRvIGJlIHJlYWQgZnJvbSBfb3V0cHV0IGV2ZW4gaWYgdGhlIHByb2Nl
c3MgaGFzCisgICAgICAgIGNyYXNoZWQuIE9ubHkgcG9sbCB0aGUgcHJvY2VzcyBpZiBkYXRhIG5l
ZWRzIHRvIGJlIGV4dHJhY3RlZCBmcm9tIHN0ZG91dCBvciBzdGRlcnIuIAorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc19tb2NrLnB5OgorICAgICAgICAoTW9j
a1NlcnZlclByb2Nlc3MucmVhZF9zdGRvdXRfbGluZSk6IE1vY2tTZXJ2ZXJQcm9jZXNzIHNob3Vs
ZCByZXR1cm4gTm9uZSBpZiBpdCBoYXMgY3Jhc2hlZCwKKyAgICAgICAganVzdCBsaWtlIGEgU2Vy
dmVyUHJvY2VzcyB3b3VsZC4KKyAgICAgICAgKE1vY2tTZXJ2ZXJQcm9jZXNzLnJlYWRfc3Rkb3V0
KTogRGl0dG8uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNz
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGVzdFNlcnZlclByb2Nlc3MudGVzdF9iYXNpYyk6IFVz
ZSBzdGRpbi5yZWFkbGluZSgpIGluc3RlYWQgb2YgdGltZS5zbGVlcCgpIHRvIHByZXZlbnQgdGhl
CisgICAgICAgIHByb2Nlc3MgZnJvbSBlbmRpbmcgYmVmb3JlIHN0ZG91dCBhbmQgc3RkZXJyIGFy
ZSByZWFkLiBUaGlzIGlzIHRoZSByZWFzb24gdGhpcyB0ZXN0IHdhcyBmbGFrZXkuCisgICAgICAg
IChUZXN0U2VydmVyUHJvY2Vzcyk6CisgICAgICAgIChUZXN0U2VydmVyUHJvY2Vzcy50ZXN0X3By
b2Nlc3NfY3Jhc2hpbmcpOiBUZXN0IHRoYXQgd2hlbiBhIHByb2Nlc3MgY3Jhc2hlcywgZGF0YSBj
YW4gYmUgcmVhZCB1bnRpbAorICAgICAgICB0aGUgcHJvY2Vzc2VzIGlzIHBvbGxlZC4KKyAgICAg
ICAgKFRlc3RTZXJ2ZXJQcm9jZXNzLnRlc3RfcHJvY2Vzc19jcmFzaGluZ19ub19kYXRhKTogVGVz
dCB0aGF0IHdoZW4gYSBwcm9jZXNzIHdoaWNoIGhhcyBub3Qgb3V0cHV0IGFueQorICAgICAgICBk
YXRhIHRvIHN0ZG91dCBhbmQgc3RkZXJyIGNyYXNoZXMsIFNlcnZlclByb2Nlc3MuX3JlYWQoLi4u
KSBwb2xscyB0aGUgcHJvY2VzcyB0byBkZXRlY3QgdGhlIGNyYXNoLgorCiAyMDE3LTA2LTA5ICBX
ZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1MgRG5E
XSBBZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVu
dApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CShyZXZpc2lvbiAyMTgw
MjApCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC01NTIsNyArNTUyLDcgQEAgY2xhc3MgRHJpdmVyKG9iamVjdCk6CiAgICAgICAgIG91
dF9zZWVuX2VvZiA9IEZhbHNlCiAgICAgICAgIGFzYW5fdmlvbGF0aW9uX2RldGVjdGVkID0gRmFs
c2UKIAotICAgICAgICB3aGlsZSBub3Qgc2VsZi5oYXNfY3Jhc2hlZCgpOgorICAgICAgICB3aGls
ZSAxOgogICAgICAgICAgICAgaWYgb3V0X3NlZW5fZW9mIGFuZCAoc2VsZi5lcnJfc2Vlbl9lb2Yg
b3Igbm90IHdhaXRfZm9yX3N0ZGVycl9lb2YpOgogICAgICAgICAgICAgICAgIGJyZWFrCiAKQEAg
LTU2NSw3ICs1NjUsOCBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICAgICAgb3V0X2xpbmUsIGVycl9saW5lID0gc2VsZi5fc2VydmVyX3Byb2Nl
c3MucmVhZF9laXRoZXJfc3Rkb3V0X29yX3N0ZGVycl9saW5lKGRlYWRsaW5lKQogCi0gICAgICAg
ICAgICBpZiBzZWxmLl9zZXJ2ZXJfcHJvY2Vzcy50aW1lZF9vdXQgb3Igc2VsZi5oYXNfY3Jhc2hl
ZCgpOgorICAgICAgICAgICAgIyBTZXJ2ZXJQcm9jZXNzIHJldHVybnMgTm9uZSBmb3IgdGltZSBv
dXRzIGFuZCBjcmFzaGVzLgorICAgICAgICAgICAgaWYgb3V0X2xpbmUgaXMgTm9uZSBhbmQgZXJy
X2xpbmUgaXMgTm9uZToKICAgICAgICAgICAgICAgICBicmVhawogCiAgICAgICAgICAgICBpZiBv
dXRfbGluZToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXJfdW5pdHRl
c3QucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlcl91
bml0dGVzdC5weQkocmV2aXNpb24gMjE4MDIwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2RyaXZlcl91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMTQ0LDYgKzE0NCwyNCBA
QCBjbGFzcyBEcml2ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb250ZW50X2Jsb2NrLmNvbnRlbnRfaGFzaCwgJ2Zvb2JhcicpCiAgICAgICAgIGRy
aXZlci5fc2VydmVyX3Byb2Nlc3MgPSBOb25lCiAKKyAgICBkZWYgdGVzdF9yZWFkX2Jsb2NrX2Ny
YXNoZWRfcHJvY2VzcyhzZWxmKToKKyAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQb3J0KCkKKyAg
ICAgICAgZHJpdmVyID0gRHJpdmVyKHBvcnQsIDAsIHBpeGVsX3Rlc3RzPUZhbHNlKQorICAgICAg
ICBkcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gTW9ja1NlcnZlclByb2Nlc3MoCisgICAgICAgICAg
ICBjcmFzaGVkPVRydWUsCisgICAgICAgICAgICBsaW5lcz1bCisgICAgICAgICAgICAgICAgJ0Fj
dHVhbEhhc2g6IGZvb2JhcicsCisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogbXlfdHlw
ZScsCisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IG5vbmUnLAor
ICAgICAgICAgICAgICAgICcjRU9GJywKKyAgICAgICAgICAgIF0pCisKKyAgICAgICAgY29udGVu
dF9ibG9jayA9IGRyaXZlci5fcmVhZF9ibG9jaygwLCAiIikKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChjb250ZW50X2Jsb2NrLmNvbnRlbnRfdHlwZSwgTm9uZSkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjb250ZW50X2Jsb2NrLmVuY29kaW5nLCBOb25lKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKGNvbnRlbnRfYmxvY2suY29udGVudF9oYXNoLCBOb25lKQorICAgICAgICBkcml2ZXIu
X3NlcnZlcl9wcm9jZXNzID0gTm9uZQorCiAgICAgZGVmIHRlc3RfcmVhZF9iaW5hcnlfYmxvY2so
c2VsZik6CiAgICAgICAgIHBvcnQgPSBUZXN0V2ViS2l0UG9ydCgpCiAgICAgICAgIGRyaXZlciA9
IERyaXZlcihwb3J0LCAwLCBwaXhlbF90ZXN0cz1UcnVlKQpJbmRleDogVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQkocmV2aXNpb24gMjE4MDIwKQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0zMTYsNyArMzE2LDggQEAgY2xhc3MgU2VydmVyUHJvY2VzcyhvYmplY3QpOgogICAg
ICMgSXQgbWlnaHQgYmUgY2xlYW5lciB0byBwYXNzIGluIHRoZSBmaWxlIGRlc2NyaXB0b3IgdG8g
cG9sbCBpbnN0ZWFkLgogICAgIGRlZiBfcmVhZChzZWxmLCBkZWFkbGluZSwgZmV0Y2hfYnl0ZXNf
ZnJvbV9idWZmZXJzX2NhbGxiYWNrKToKICAgICAgICAgd2hpbGUgVHJ1ZToKLSAgICAgICAgICAg
IGlmIHNlbGYuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgICMgUG9sbGluZyBkb2VzIG5vdCBu
ZWVkIHRvIG9jY3VyIGJlZm9yZSBieXRlcyBhcmUgZmV0Y2hlZCBmcm9tIHRoZSBidWZmZXIuCisg
ICAgICAgICAgICBpZiBzZWxmLl9jcmFzaGVkOgogICAgICAgICAgICAgICAgIHJldHVybiBOb25l
CiAKICAgICAgICAgICAgIGlmIHRpbWUudGltZSgpID4gZGVhZGxpbmU6CkBAIC0zMjcsNiArMzI4
LDkgQEAgY2xhc3MgU2VydmVyUHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAgaWYgYnl0ZXMg
aXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgcmV0dXJuIGJ5dGVzCiAKKyAgICAgICAgICAg
IGlmIHNlbGYuaGFzX2NyYXNoZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCiAg
ICAgICAgICAgICBpZiBzZWxmLl91c2Vfd2luMzJfYXBpczoKICAgICAgICAgICAgICAgICBzZWxm
Ll93YWl0X2Zvcl9kYXRhX2FuZF91cGRhdGVfYnVmZmVyc191c2luZ193aW4zMl9hcGlzKGRlYWRs
aW5lKQogICAgICAgICAgICAgZWxzZToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9zZXJ2ZXJfcHJvY2Vzc19tb2NrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc19tb2NrLnB5CShyZXZpc2lvbiAyMTgwMjApCisrKyBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3NfbW9jay5weQkod29ya2lu
ZyBjb3B5KQpAQCAtNDUsOSArNDUsMTMgQEAgY2xhc3MgTW9ja1NlcnZlclByb2Nlc3Mob2JqZWN0
KToKICAgICAgICAgcmV0dXJuIHNlbGYuY3Jhc2hlZAogCiAgICAgZGVmIHJlYWRfc3Rkb3V0X2xp
bmUoc2VsZiwgZGVhZGxpbmUpOgorICAgICAgICBpZiBzZWxmLmNyYXNoZWQ6CisgICAgICAgICAg
ICByZXR1cm4gTm9uZQogICAgICAgICByZXR1cm4gc2VsZi5saW5lcy5wb3AoMCkgKyAiXG4iCiAK
ICAgICBkZWYgcmVhZF9zdGRvdXQoc2VsZiwgZGVhZGxpbmUsIHNpemUpOgorICAgICAgICBpZiBz
ZWxmLmNyYXNoZWQ6CisgICAgICAgICAgICByZXR1cm4gTm9uZQogICAgICAgICBmaXJzdF9saW5l
ID0gc2VsZi5saW5lc1swXQogICAgICAgICBpZiBzaXplID4gbGVuKGZpcnN0X2xpbmUpOgogICAg
ICAgICAgICAgc2VsZi5saW5lcy5wb3AoMCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
cG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkJKHJldmlzaW9uIDIx
ODAyMCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0
dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCBjbGFzcyBGYWtlU2VydmVy
UHJvY2VzcyhzZXJ2ZXJfcHJvY2Vzcy5TCiAKIGNsYXNzIFRlc3RTZXJ2ZXJQcm9jZXNzKHVuaXR0
ZXN0LlRlc3RDYXNlKToKICAgICBkZWYgdGVzdF9iYXNpYyhzZWxmKToKLSAgICAgICAgY21kID0g
W3N5cy5leGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IHN5czsgaW1wb3J0IHRpbWU7IHRpbWUuc2xl
ZXAoMC4wMik7IHByaW50ICJzdGRvdXQiOyBzeXMuc3Rkb3V0LmZsdXNoKCk7IHByaW50ID4+c3lz
LnN0ZGVyciwgInN0ZGVyciInXQorICAgICAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUsICctYycs
ICdpbXBvcnQgc3lzOyBwcmludCAic3Rkb3V0Ijsgc3lzLnN0ZG91dC5mbHVzaCgpOyBwcmludCA+
PnN5cy5zdGRlcnIsICJzdGRlcnIiOyBzeXMuc3RkaW4ucmVhZGxpbmUoKTsnXQogICAgICAgICBo
b3N0ID0gU3lzdGVtSG9zdCgpCiAgICAgICAgIGZhY3RvcnkgPSBQb3J0RmFjdG9yeShob3N0KQog
ICAgICAgICBwb3J0ID0gZmFjdG9yeS5nZXQoKQpAQCAtMTE4LDE1ICsxMTgsNTkgQEAgY2xhc3Mg
VGVzdFNlcnZlclByb2Nlc3ModW5pdHRlc3QuVGVzdENhcwogICAgICAgICBsaW5lID0gcHJvYy5y
ZWFkX3N0ZG91dF9saW5lKG5vdyAtIDEpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZSwg
Tm9uZSkKIAotICAgICAgICAjIEZJWE1FOiBUaGlzIHBhcnQgYXBwZWFycyB0byBiZSBmbGFreS4g
bGluZSBzaG91bGQgYWx3YXlzIGJlIG5vbi1Ob25lLgotICAgICAgICAjIEZJWE1FOiBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgyODAKICAgICAgICAgbGluZSA9IHBy
b2MucmVhZF9zdGRvdXRfbGluZShub3cgKyAxLjApCi0gICAgICAgIGlmIGxpbmU6Ci0gICAgICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUuc3RyaXAoKSwgInN0ZG91dCIpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3Rkb3V0IikKIAogICAgICAgICBsaW5lID0g
cHJvYy5yZWFkX3N0ZGVycl9saW5lKG5vdyArIDEuMCkKLSAgICAgICAgaWYgbGluZToKLSAgICAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3RkZXJyIikKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChsaW5lLnN0cmlwKCksICJzdGRlcnIiKQorCisgICAgICAgIHByb2Mu
d3JpdGUoJ0VuZFxuJykKKyAgICAgICAgcHJvYy5zdG9wKDApCisKKyAgICBkZWYgdGVzdF9wcm9j
ZXNzX2NyYXNoaW5nKHNlbGYpOgorICAgICAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUsICctYycs
ICdpbXBvcnQgc3lzOyBwcmludCAic3Rkb3V0IDEiOyBwcmludCAic3Rkb3V0IDIiOyBwcmludCAi
c3Rkb3V0IDMiOyBzeXMuc3Rkb3V0LmZsdXNoKCk7IHN5cy5zdGRpbi5yZWFkbGluZSgpOyBzeXMu
ZXhpdCgxKTsnXQorICAgICAgICBob3N0ID0gU3lzdGVtSG9zdCgpCisgICAgICAgIGZhY3Rvcnkg
PSBQb3J0RmFjdG9yeShob3N0KQorICAgICAgICBwb3J0ID0gZmFjdG9yeS5nZXQoKQorICAgICAg
ICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAgICBwcm9jID0gc2VydmVyX3Byb2Nlc3MuU2VydmVy
UHJvY2Vzcyhwb3J0LCAncHl0aG9uJywgY21kKQorICAgICAgICBwcm9jLndyaXRlKCcnKQorCisg
ICAgICAgIGxpbmUgPSBwcm9jLnJlYWRfc3Rkb3V0X2xpbmUobm93ICsgMS4wKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGxpbmUuc3RyaXAoKSwgJ3N0ZG91dCAxJykKKworICAgICAgICBwcm9j
LndyaXRlKCdFbmRcbicpCisgICAgICAgIHRpbWUuc2xlZXAoMC4xKSAgIyBHaXZlIHByb2Nlc3Mg
YSBtb21lbnQgdG8gY2xvc2UuCisKKyAgICAgICAgbGluZSA9IHByb2MucmVhZF9zdGRvdXRfbGlu
ZShub3cgKyAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAnc3Rk
b3V0IDInKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgcHJvYy5oYXNfY3Jhc2hl
ZCgpKQorCisgICAgICAgIGxpbmUgPSBwcm9jLnJlYWRfc3Rkb3V0X2xpbmUobm93ICsgMS4wKQor
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUsIE5vbmUpCisKKyAgICAgICAgcHJvYy5zdG9w
KDApCisKKyAgICBkZWYgdGVzdF9wcm9jZXNzX2NyYXNoaW5nX25vX2RhdGEoc2VsZik6CisgICAg
ICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywKKyAgICAgICAgICAgICAgICdpbXBvcnQg
c3lzOyBzeXMuc3RkaW4ucmVhZGxpbmUoKTsgc3lzLmV4aXQoMSk7J10KKyAgICAgICAgaG9zdCA9
IFN5c3RlbUhvc3QoKQorICAgICAgICBmYWN0b3J5ID0gUG9ydEZhY3RvcnkoaG9zdCkKKyAgICAg
ICAgcG9ydCA9IGZhY3RvcnkuZ2V0KCkKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAg
ICAgcHJvYyA9IHNlcnZlcl9wcm9jZXNzLlNlcnZlclByb2Nlc3MocG9ydCwgJ3B5dGhvbicsIGNt
ZCkKKyAgICAgICAgcHJvYy53cml0ZSgnJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKEZh
bHNlLCBwcm9jLmhhc19jcmFzaGVkKCkpCisKKyAgICAgICAgcHJvYy53cml0ZSgnRW5kXG4nKQor
ICAgICAgICB0aW1lLnNsZWVwKDAuMSkgICMgR2l2ZSBwcm9jZXNzIGEgbW9tZW50IHRvIGNsb3Nl
LgorCisgICAgICAgIGxpbmUgPSBwcm9jLnJlYWRfc3Rkb3V0X2xpbmUobm93ICsgMS4wKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUsIE5vbmUpCisKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChUcnVlLCBwcm9jLmhhc19jcmFzaGVkKCkpCiAKICAgICAgICAgcHJvYy5zdG9wKDApCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312575</attachid>
            <date>2017-06-10 12:11:50 -0700</date>
            <delta_ts>2017-06-10 12:51:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-173116-20170610121158.patch</filename>
            <type>text/plain</type>
            <size>9991</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxODA1MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM5IEBACisyMDE3LTA2LTEwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogUmVkdWNlIHBvbGxpbmcgaW4gU2VydmVyUHJvY2Vzcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMTE2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgorCisgICAgICAgIFdlIHNob3VsZCBi
ZSBzbWFydGVyIGFib3V0IHBvbGxpbmcuIFdlIGRvIG5vdCBuZWVkIHRvIHBvbGwgZXZlcnkgdGlt
ZSBhIGxpbmUgaXMgcmVhZCBmcm9tCisgICAgICAgIHN0ZG91dCBhbmQgc3RkZXJyIHNpbmNlIGxp
bmVzIGFyZSB1c3VhbGx5IHJlYWQgZnJvbSBjYWNoZWQgZGF0YS4gV2Ugc2hvdWxkIG9ubHkgcG9s
bAorICAgICAgICB3aGVuIGV4dHJhY3RpbmcgdGhhdCBjYWNoZWQgZGF0YSBmcm9tIHN0ZG91dCBh
bmQgc3RkZXJyLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlci5weToK
KyAgICAgICAgKERyaXZlci5fcmVhZF9ibG9jayk6IFJlbHkgb24gb3V0cHV0IG9mIHRoZSBTZXJ2
ZXJQcm9jZXNzIHRvIGRldGVjdCBhIGNyYXNoIG9yIGEgdGltZW91dAorICAgICAgICBhbmQgb24g
U2VydmVyUHJvY2VzcyB0byBwb2xsIHRoZSBwcm9jZXNzIGlmIG5vdCBkYXRhIGlzIGF2YWlsYWJs
ZSBpbiBzdGRvdXQgYW5kIHN0ZGVyci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
ZHJpdmVyX3VuaXR0ZXN0LnB5OgorICAgICAgICAoRHJpdmVyVGVzdC50ZXN0X3JlYWRfYmxvY2tf
Y3Jhc2hlZF9wcm9jZXNzKTogVGVzdCB0aGF0IHRoZSBEcml2ZXIgd2lsbCBoYW5kbGUgYSBjcmFz
aGluZworICAgICAgICBTZXJ2ZXJQcm9jZXNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weToKKyAgICAgICAgKFNlcnZlclByb2Nlc3MuX3JlYWQpOiBB
bGxvdyBmb3IgZGF0YSB0byBiZSByZWFkIGZyb20gX291dHB1dCBldmVuIGlmIHRoZSBwcm9jZXNz
IGhhcworICAgICAgICBjcmFzaGVkLiBPbmx5IHBvbGwgdGhlIHByb2Nlc3MgaWYgZGF0YSBuZWVk
cyB0byBiZSBleHRyYWN0ZWQgZnJvbSBzdGRvdXQgb3Igc3RkZXJyLiAKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3NfbW9jay5weToKKyAgICAgICAgKE1vY2tT
ZXJ2ZXJQcm9jZXNzKTogQWRkIG51bWJlcl9vZl90aW1lc19wb2xsZWQuCisgICAgICAgIChNb2Nr
U2VydmVyUHJvY2Vzcy5wb2xsKTogSW5jcmVtZW50IG51bWJlcl9vZl90aW1lc19wb2xsZWQuCisg
ICAgICAgIChNb2NrU2VydmVyUHJvY2Vzcy5oYXNfY3Jhc2hlZCk6IFBvbGwgYmVmb3JlIHJldHVy
bmluZyBjcmFzaCBzdGF0ZS4KKyAgICAgICAgKE1vY2tTZXJ2ZXJQcm9jZXNzLnJlYWRfc3Rkb3V0
X2xpbmUpOiBNb2NrU2VydmVyUHJvY2VzcyBzaG91bGQgcmV0dXJuIE5vbmUgaWYgaXQgaGFzIGNy
YXNoZWQsCisgICAgICAgIGp1c3QgbGlrZSBhIFNlcnZlclByb2Nlc3Mgd291bGQuCisgICAgICAg
IChNb2NrU2VydmVyUHJvY2Vzcy5yZWFkX3N0ZG91dCk6IERpdHRvLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weToKKyAgICAgICAgKFRl
c3RTZXJ2ZXJQcm9jZXNzLnRlc3RfYmFzaWMpOiBVc2Ugc3RkaW4ucmVhZGxpbmUoKSBpbnN0ZWFk
IG9mIHRpbWUuc2xlZXAoKSB0byBwcmV2ZW50IHRoZQorICAgICAgICBwcm9jZXNzIGZyb20gZW5k
aW5nIGJlZm9yZSBzdGRvdXQgYW5kIHN0ZGVyciBhcmUgcmVhZC4gVGhpcyBpcyB0aGUgcmVhc29u
IHRoaXMgdGVzdCB3YXMgZmxha2V5LgorICAgICAgICAoVGVzdFNlcnZlclByb2Nlc3MpOgorICAg
ICAgICAoVGVzdFNlcnZlclByb2Nlc3MudGVzdF9wcm9jZXNzX2NyYXNoaW5nKTogVGVzdCB0aGF0
IHdoZW4gYSBwcm9jZXNzIGNyYXNoZXMsIGRhdGEgY2FuIGJlIHJlYWQgdW50aWwKKyAgICAgICAg
dGhlIHByb2Nlc3NlcyBpcyBwb2xsZWQuCisgICAgICAgIChUZXN0U2VydmVyUHJvY2Vzcy50ZXN0
X3Byb2Nlc3NfY3Jhc2hpbmdfbm9fZGF0YSk6IFRlc3QgdGhhdCB3aGVuIGEgcHJvY2VzcyB3aGlj
aCBoYXMgbm90IG91dHB1dCBhbnkKKyAgICAgICAgZGF0YSB0byBzdGRvdXQgYW5kIHN0ZGVyciBj
cmFzaGVzLCBTZXJ2ZXJQcm9jZXNzLl9yZWFkKC4uLikgcG9sbHMgdGhlIHByb2Nlc3MgdG8gZGV0
ZWN0IHRoZSBjcmFzaC4KKwogMjAxNy0wNi0xMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5j
b20+CiAKICAgICAgICAgW1F1aWNrTG9va10gUHJldmlld0xvYWRlciBuZWVkcyB0byBjaGVjayBp
ZiBpdHMgUmVzb3VyY2VMb2FkZXIgaGFzIHJlYWNoZWQgdGhlIHRlcm1pbmFsIHN0YXRlIGJlZm9y
ZSBjYWxsaW5nIGRpZFJlY2VpdmVSZXNwb25zZSgpIGFuZCBmcmllbmRzCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkJKHJldmlzaW9uIDIxODA1MykKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvcG9ydC9kcml2ZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTU1Miw3ICs1
NTIsNyBAQCBjbGFzcyBEcml2ZXIob2JqZWN0KToKICAgICAgICAgb3V0X3NlZW5fZW9mID0gRmFs
c2UKICAgICAgICAgYXNhbl92aW9sYXRpb25fZGV0ZWN0ZWQgPSBGYWxzZQogCi0gICAgICAgIHdo
aWxlIG5vdCBzZWxmLmhhc19jcmFzaGVkKCk6CisgICAgICAgIHdoaWxlIFRydWU6CiAgICAgICAg
ICAgICBpZiBvdXRfc2Vlbl9lb2YgYW5kIChzZWxmLmVycl9zZWVuX2VvZiBvciBub3Qgd2FpdF9m
b3Jfc3RkZXJyX2VvZik6CiAgICAgICAgICAgICAgICAgYnJlYWsKIApAQCAtNTY1LDcgKzU2NSw4
IEBAIGNsYXNzIERyaXZlcihvYmplY3QpOgogICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAg
ICAgICBvdXRfbGluZSwgZXJyX2xpbmUgPSBzZWxmLl9zZXJ2ZXJfcHJvY2Vzcy5yZWFkX2VpdGhl
cl9zdGRvdXRfb3Jfc3RkZXJyX2xpbmUoZGVhZGxpbmUpCiAKLSAgICAgICAgICAgIGlmIHNlbGYu
X3NlcnZlcl9wcm9jZXNzLnRpbWVkX291dCBvciBzZWxmLmhhc19jcmFzaGVkKCk6CisgICAgICAg
ICAgICAjIFNlcnZlclByb2Nlc3MgcmV0dXJucyBOb25lIGZvciB0aW1lIG91dHMgYW5kIGNyYXNo
ZXMuCisgICAgICAgICAgICBpZiBvdXRfbGluZSBpcyBOb25lIGFuZCBlcnJfbGluZSBpcyBOb25l
OgogICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICAgICAgICAgIGlmIG91dF9saW5lOgpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2RyaXZlcl91bml0dGVzdC5weQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyX3VuaXR0ZXN0LnB5CShy
ZXZpc2lvbiAyMTgwNTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZHJpdmVyX3Vu
aXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQyLDI2IEBAIGNsYXNzIERyaXZl
clRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNvbnRl
bnRfYmxvY2suY29udGVudF90eXBlLCAnbXlfdHlwZScpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoY29udGVudF9ibG9jay5lbmNvZGluZywgJ25vbmUnKQogICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNvbnRlbnRfYmxvY2suY29udGVudF9oYXNoLCAnZm9vYmFyJykKKyAgICAgICAgIyBXZSBz
aG91bGQgb25seSBwb2xsIG9uY2UgZm9yIGVhY2ggbGluZS4KKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChkcml2ZXIuX3NlcnZlcl9wcm9jZXNzLm51bWJlcl9vZl90aW1lc19wb2xsZWQsIDQpCisg
ICAgICAgIGRyaXZlci5fc2VydmVyX3Byb2Nlc3MgPSBOb25lCisKKyAgICBkZWYgdGVzdF9yZWFk
X2Jsb2NrX2NyYXNoZWRfcHJvY2VzcyhzZWxmKToKKyAgICAgICAgcG9ydCA9IFRlc3RXZWJLaXRQ
b3J0KCkKKyAgICAgICAgZHJpdmVyID0gRHJpdmVyKHBvcnQsIDAsIHBpeGVsX3Rlc3RzPUZhbHNl
KQorICAgICAgICBkcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gTW9ja1NlcnZlclByb2Nlc3MoCisg
ICAgICAgICAgICBjcmFzaGVkPVRydWUsCisgICAgICAgICAgICBsaW5lcz1bCisgICAgICAgICAg
ICAgICAgJ0FjdHVhbEhhc2g6IGZvb2JhcicsCisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlw
ZTogbXlfdHlwZScsCisgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6
IG5vbmUnLAorICAgICAgICAgICAgICAgICcjRU9GJywKKyAgICAgICAgICAgIF0pCisKKyAgICAg
ICAgY29udGVudF9ibG9jayA9IGRyaXZlci5fcmVhZF9ibG9jaygwLCAiIikKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChjb250ZW50X2Jsb2NrLmNvbnRlbnRfdHlwZSwgTm9uZSkKKyAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChjb250ZW50X2Jsb2NrLmVuY29kaW5nLCBOb25lKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKGNvbnRlbnRfYmxvY2suY29udGVudF9oYXNoLCBOb25lKQogICAgICAg
ICBkcml2ZXIuX3NlcnZlcl9wcm9jZXNzID0gTm9uZQogCiAgICAgZGVmIHRlc3RfcmVhZF9iaW5h
cnlfYmxvY2soc2VsZik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVy
X3Byb2Nlc3MucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Nl
cnZlcl9wcm9jZXNzLnB5CShyZXZpc2lvbiAyMTgwNTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkJKHdvcmtpbmcgY29weSkKQEAgLTMxNiw3ICszMTYs
OCBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAgICAgIyBJdCBtaWdodCBiZSBjbGVh
bmVyIHRvIHBhc3MgaW4gdGhlIGZpbGUgZGVzY3JpcHRvciB0byBwb2xsIGluc3RlYWQuCiAgICAg
ZGVmIF9yZWFkKHNlbGYsIGRlYWRsaW5lLCBmZXRjaF9ieXRlc19mcm9tX2J1ZmZlcnNfY2FsbGJh
Y2spOgogICAgICAgICB3aGlsZSBUcnVlOgotICAgICAgICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hl
ZCgpOgorICAgICAgICAgICAgIyBQb2xsaW5nIGRvZXMgbm90IG5lZWQgdG8gb2NjdXIgYmVmb3Jl
IGJ5dGVzIGFyZSBmZXRjaGVkIGZyb20gdGhlIGJ1ZmZlci4KKyAgICAgICAgICAgIGlmIHNlbGYu
X2NyYXNoZWQ6CiAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKIAogICAgICAgICAgICAgaWYg
dGltZS50aW1lKCkgPiBkZWFkbGluZToKQEAgLTMyNyw2ICszMjgsOSBAQCBjbGFzcyBTZXJ2ZXJQ
cm9jZXNzKG9iamVjdCk6CiAgICAgICAgICAgICBpZiBieXRlcyBpcyBub3QgTm9uZToKICAgICAg
ICAgICAgICAgICByZXR1cm4gYnl0ZXMKIAorICAgICAgICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hl
ZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKICAgICAgICAgICAgIGlmIHNlbGYu
X3VzZV93aW4zMl9hcGlzOgogICAgICAgICAgICAgICAgIHNlbGYuX3dhaXRfZm9yX2RhdGFfYW5k
X3VwZGF0ZV9idWZmZXJzX3VzaW5nX3dpbjMyX2FwaXMoZGVhZGxpbmUpCiAgICAgICAgICAgICBl
bHNlOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzX21v
Y2sucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9w
cm9jZXNzX21vY2sucHkJKHJldmlzaW9uIDIxODA1MykKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc19tb2NrLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNywxNyAr
MzcsMjYgQEAgY2xhc3MgTW9ja1NlcnZlclByb2Nlc3Mob2JqZWN0KToKICAgICAgICAgc2VsZi5l
bnYgPSBlbnYKICAgICAgICAgc2VsZi5zdGFydGVkID0gRmFsc2UKICAgICAgICAgc2VsZi5zdG9w
cGVkID0gRmFsc2UKKyAgICAgICAgc2VsZi5udW1iZXJfb2ZfdGltZXNfcG9sbGVkID0gMAorCisg
ICAgZGVmIHBvbGwoc2VsZik6CisgICAgICAgIHNlbGYubnVtYmVyX29mX3RpbWVzX3BvbGxlZCAr
PSAxCiAKICAgICBkZWYgd3JpdGUoc2VsZiwgYnl0ZXMpOgogICAgICAgICBzZWxmLndyaXRlcy5h
cHBlbmQoYnl0ZXMpCiAKICAgICBkZWYgaGFzX2NyYXNoZWQoc2VsZik6CisgICAgICAgIHNlbGYu
cG9sbCgpCiAgICAgICAgIHJldHVybiBzZWxmLmNyYXNoZWQKIAogICAgIGRlZiByZWFkX3N0ZG91
dF9saW5lKHNlbGYsIGRlYWRsaW5lKToKKyAgICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hlZCgpOgor
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgcmV0dXJuIHNlbGYubGluZXMucG9wKDAp
ICsgIlxuIgogCiAgICAgZGVmIHJlYWRfc3Rkb3V0KHNlbGYsIGRlYWRsaW5lLCBzaXplKToKKyAg
ICAgICAgaWYgc2VsZi5oYXNfY3Jhc2hlZCgpOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAg
ICAgICAgZmlyc3RfbGluZSA9IHNlbGYubGluZXNbMF0KICAgICAgICAgaWYgc2l6ZSA+IGxlbihm
aXJzdF9saW5lKToKICAgICAgICAgICAgIHNlbGYubGluZXMucG9wKDApCkluZGV4OiBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzX3VuaXR0ZXN0
LnB5CShyZXZpc2lvbiAyMTgwNTMpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2Vy
dmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5LDcgQEAg
Y2xhc3MgRmFrZVNlcnZlclByb2Nlc3Moc2VydmVyX3Byb2Nlc3MuUwogCiBjbGFzcyBUZXN0U2Vy
dmVyUHJvY2Vzcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRlc3RfYmFzaWMoc2VsZik6
Ci0gICAgICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBzeXM7IGltcG9y
dCB0aW1lOyB0aW1lLnNsZWVwKDAuMDIpOyBwcmludCAic3Rkb3V0Ijsgc3lzLnN0ZG91dC5mbHVz
aCgpOyBwcmludCA+PnN5cy5zdGRlcnIsICJzdGRlcnIiJ10KKyAgICAgICAgY21kID0gW3N5cy5l
eGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IHN5czsgcHJpbnQgInN0ZG91dCI7IHN5cy5zdGRvdXQu
Zmx1c2goKTsgcHJpbnQgPj5zeXMuc3RkZXJyLCAic3RkZXJyIjsgc3lzLnN0ZGluLnJlYWRsaW5l
KCk7J10KICAgICAgICAgaG9zdCA9IFN5c3RlbUhvc3QoKQogICAgICAgICBmYWN0b3J5ID0gUG9y
dEZhY3RvcnkoaG9zdCkKICAgICAgICAgcG9ydCA9IGZhY3RvcnkuZ2V0KCkKQEAgLTExOCwxNSAr
MTE4LDU5IEBAIGNsYXNzIFRlc3RTZXJ2ZXJQcm9jZXNzKHVuaXR0ZXN0LlRlc3RDYXMKICAgICAg
ICAgbGluZSA9IHByb2MucmVhZF9zdGRvdXRfbGluZShub3cgLSAxKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGxpbmUsIE5vbmUpCiAKLSAgICAgICAgIyBGSVhNRTogVGhpcyBwYXJ0IGFwcGVh
cnMgdG8gYmUgZmxha3kuIGxpbmUgc2hvdWxkIGFsd2F5cyBiZSBub24tTm9uZS4KLSAgICAgICAg
IyBGSVhNRTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4MjgwCiAg
ICAgICAgIGxpbmUgPSBwcm9jLnJlYWRfc3Rkb3V0X2xpbmUobm93ICsgMS4wKQotICAgICAgICBp
ZiBsaW5lOgotICAgICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLnN0cmlwKCksICJzdGRv
dXQiKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUuc3RyaXAoKSwgInN0ZG91dCIpCiAK
ICAgICAgICAgbGluZSA9IHByb2MucmVhZF9zdGRlcnJfbGluZShub3cgKyAxLjApCi0gICAgICAg
IGlmIGxpbmU6Ci0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUuc3RyaXAoKSwgInN0
ZGVyciIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3RkZXJyIikK
KworICAgICAgICBwcm9jLndyaXRlKCdFbmRcbicpCisgICAgICAgIHByb2Muc3RvcCgwKQorCisg
ICAgZGVmIHRlc3RfcHJvY2Vzc19jcmFzaGluZyhzZWxmKToKKyAgICAgICAgY21kID0gW3N5cy5l
eGVjdXRhYmxlLCAnLWMnLCAnaW1wb3J0IHN5czsgcHJpbnQgInN0ZG91dCAxIjsgcHJpbnQgInN0
ZG91dCAyIjsgcHJpbnQgInN0ZG91dCAzIjsgc3lzLnN0ZG91dC5mbHVzaCgpOyBzeXMuc3RkaW4u
cmVhZGxpbmUoKTsgc3lzLmV4aXQoMSk7J10KKyAgICAgICAgaG9zdCA9IFN5c3RlbUhvc3QoKQor
ICAgICAgICBmYWN0b3J5ID0gUG9ydEZhY3RvcnkoaG9zdCkKKyAgICAgICAgcG9ydCA9IGZhY3Rv
cnkuZ2V0KCkKKyAgICAgICAgbm93ID0gdGltZS50aW1lKCkKKyAgICAgICAgcHJvYyA9IHNlcnZl
cl9wcm9jZXNzLlNlcnZlclByb2Nlc3MocG9ydCwgJ3B5dGhvbicsIGNtZCkKKyAgICAgICAgcHJv
Yy53cml0ZSgnJykKKworICAgICAgICBsaW5lID0gcHJvYy5yZWFkX3N0ZG91dF9saW5lKG5vdyAr
IDEuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLnN0cmlwKCksICdzdGRvdXQgMScp
CisKKyAgICAgICAgcHJvYy53cml0ZSgnRW5kXG4nKQorICAgICAgICB0aW1lLnNsZWVwKDAuMSkg
ICMgR2l2ZSBwcm9jZXNzIGEgbW9tZW50IHRvIGNsb3NlLgorCisgICAgICAgIGxpbmUgPSBwcm9j
LnJlYWRfc3Rkb3V0X2xpbmUobm93ICsgMS4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxp
bmUuc3RyaXAoKSwgJ3N0ZG91dCAyJykKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRydWUs
IHByb2MuaGFzX2NyYXNoZWQoKSkKKworICAgICAgICBsaW5lID0gcHJvYy5yZWFkX3N0ZG91dF9s
aW5lKG5vdyArIDEuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLCBOb25lKQorCisg
ICAgICAgIHByb2Muc3RvcCgwKQorCisgICAgZGVmIHRlc3RfcHJvY2Vzc19jcmFzaGluZ19ub19k
YXRhKHNlbGYpOgorICAgICAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUsICctYycsCisgICAgICAg
ICAgICAgICAnaW1wb3J0IHN5czsgc3lzLnN0ZGluLnJlYWRsaW5lKCk7IHN5cy5leGl0KDEpOydd
CisgICAgICAgIGhvc3QgPSBTeXN0ZW1Ib3N0KCkKKyAgICAgICAgZmFjdG9yeSA9IFBvcnRGYWN0
b3J5KGhvc3QpCisgICAgICAgIHBvcnQgPSBmYWN0b3J5LmdldCgpCisgICAgICAgIG5vdyA9IHRp
bWUudGltZSgpCisgICAgICAgIHByb2MgPSBzZXJ2ZXJfcHJvY2Vzcy5TZXJ2ZXJQcm9jZXNzKHBv
cnQsICdweXRob24nLCBjbWQpCisgICAgICAgIHByb2Mud3JpdGUoJycpCisKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChGYWxzZSwgcHJvYy5oYXNfY3Jhc2hlZCgpKQorCisgICAgICAgIHByb2Mu
d3JpdGUoJ0VuZFxuJykKKyAgICAgICAgdGltZS5zbGVlcCgwLjEpICAjIEdpdmUgcHJvY2VzcyBh
IG1vbWVudCB0byBjbG9zZS4KKworICAgICAgICBsaW5lID0gcHJvYy5yZWFkX3N0ZG91dF9saW5l
KG5vdyArIDEuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLCBOb25lKQorCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoVHJ1ZSwgcHJvYy5oYXNfY3Jhc2hlZCgpKQogCiAgICAgICAg
IHByb2Muc3RvcCgwKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>