<?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>95097</bug_id>
          
          <creation_ts>2012-08-27 10:03:22 -0700</creation_ts>
          <short_desc>[NRWT] XvfbDriver should stop the Xvfb more aggressively</short_desc>
          <delta_ts>2012-09-07 03:00:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>abarth</cc>
    
    <cc>dpranke</cc>
    
    <cc>kkristof</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>pnormand</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705341</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-27 10:03:22 -0700</bug_when>
    <thetext>When XvfbDriver is stopping, it tries to shut down its Xvfb instance in a &apos;polite&apos; way, by calling terminate(). This doesn&apos;t always succeed, with the layout-tests step in the builders timing out:
http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Release/builds/28021
(Admittedly blaming the Xvfb is just a very good guess, I can&apos;t confirm this myself though.)

The hisorical GtkDriver (on which the XvfbDriver is based) used to be more aggressive, killing Xvfb unconditionally[1]. I recommend following this behavior, but using the Executive class to kill the process.

For good measure and (again based on guessing) to get rid of the continuous trouble of tests timing out on the GTK 64-bit Debug builder[2], I
also recommend killing any stale Xvfb instances through the kill-old-processes script[3]

[1] http://trac.webkit.org/changeset/116212
[2] http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug
[3] http://trac.webkit.org/browser/trunk/Tools/BuildSlaveSupport/kill-old-processes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705393</commentid>
    <comment_count>1</comment_count>
      <attachid>160746</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-27 10:54:14 -0700</bug_when>
    <thetext>Created attachment 160746
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705566</commentid>
    <comment_count>2</comment_count>
      <attachid>160746</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-27 13:13:14 -0700</bug_when>
    <thetext>Comment on attachment 160746
Patch

There must be a better way to get an executive object than makign a new one.  Also, this should be tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706409</commentid>
    <comment_count>3</comment_count>
      <attachid>160995</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-28 09:14:50 -0700</bug_when>
    <thetext>Created attachment 160995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>706631</commentid>
    <comment_count>4</comment_count>
      <attachid>160995</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-28 12:39:09 -0700</bug_when>
    <thetext>Comment on attachment 160995
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:72
&gt; +            self._port.host.executive.kill_process(self._xvfb_process.pid)

do we know why terminate() isn&apos;t working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707213</commentid>
    <comment_count>5</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-08-29 01:24:46 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 160995 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=160995&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/port/xvfbdriver.py:72
&gt; &gt; +            self._port.host.executive.kill_process(self._xvfb_process.pid)
&gt; 
&gt; do we know why terminate() isn&apos;t working?

Unfortunately I can&apos;t give a good answer here. I&apos;m not able to reproduce the problem locally and don&apos;t have access to the builders.

Again, blaming Xvfb(Driver) is at the moment just a very good guess as it&apos;s one thing that the GTK port uses for testing that other ports don&apos;t, and the NRWT stops giving output around the Xvfb termination in the last Driver object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708028</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2012-08-29 16:29:37 -0700</bug_when>
    <thetext>I see. That&apos;s unfortunate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712958</commentid>
    <comment_count>7</comment_count>
      <attachid>162434</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-06 00:28:10 -0700</bug_when>
    <thetext>Created attachment 162434
Patch

Also removes the lock file for the display after Xvfb process is killed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712991</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-06 00:55:57 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=162434) [details]
&gt; Patch
&gt; 
&gt; Also removes the lock file for the display after Xvfb process is killed.

To elaborate, I though using -nolock would suffice for this, but that option only functions when the Xvfb is run with root privileges, which should probably be avoided.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714335</commentid>
    <comment_count>9</comment_count>
      <attachid>162434</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-07 03:00:42 -0700</bug_when>
    <thetext>Comment on attachment 162434
Patch

Clearing flags on attachment: 162434

Committed r127849: &lt;http://trac.webkit.org/changeset/127849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714336</commentid>
    <comment_count>10</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-09-07 03:00:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160746</attachid>
            <date>2012-08-27 10:54:14 -0700</date>
            <delta_ts>2012-08-28 09:14:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95097-20120827105407.patch</filename>
            <type>text/plain</type>
            <size>2360</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzY5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGQ3MmQzODIxYTI1M2M5MmUwMzMzNmViMmM5MTdjMzY2
NjcxZTE1Mi4uMTNmNzY5MTdiOGY4YWQyODQ0YzYyNzBmNjg1ZDU0ZDE3ODgxNGMxNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDEyLTA4LTI3ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW05SV1RdIFh2ZmJEcml2ZXIgc2hvdWxkIHN0b3AgdGhlIFh2ZmIgbW9yZSBhZ2dy
ZXNzaXZlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBCdWlsZFNsYXZlU3VwcG9ydC9raWxsLW9sZC1wcm9jZXNzZXM6CisgICAgICAgIEtpbGwgYW55
IHN0YWxlIFh2ZmIgcHJvY2Vzc2VzIGF0IHRoZSBzdGFydCBvZiB0aGUgYnVpbGQgY3ljbGUuIFRo
aXMgZW5zdXJlcworICAgICAgICBubyBYdmZiIGlzIGxlZnQgcnVubmluZyBhZnRlciB0aGUgcHJl
dmlvdXMgY3ljbGUgbWlnaHQgaGF2ZSBiZWVuIGNhbmNlbGxlZAorICAgICAgICBpbiB0aGUgbWlk
ZGxlIG9mIHRlc3RpbmcuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC94dmZiZHJpdmVyLnB5OgorICAgICAgICAoWHZmYkRyaXZlci5zdG9wKToKKyAgICAgICAg
S2lsbCB0aGUgWHZmYiBwcm9jZXNzIHdoZW4gdGhlIFh2ZmJEcml2ZXIgaXMgc3RvcHBpbmcuIFNp
bXBseSB0ZXJtaW5hdGluZworICAgICAgICB0aGUgcHJvY2VzcyBkb2VzIG5vdCBhbHdheXMgd29y
ayBhcyBleHBlY3RlZCwgbGVhZGluZyB0byB0aW1lb3V0cyBpbgorICAgICAgICBydW4td2Via2l0
LXRlc3RzIG9uIHRoZSBidWlsZGJvdC4KKwogMjAxMi0wOC0yNyAgUGhpbGlwcGUgTm9ybWFuZCAg
PHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bUXRdIFdlYkF1ZGlv
IHN1cHBvcnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2tpbGwtb2xkLXBy
b2Nlc3NlcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2tpbGwtb2xkLXByb2Nlc3NlcwppbmRl
eCBkM2MxN2NmY2RjZmNiOWQxYjQ3MWVkZGI2OGYxNGZlNzFlZTdiOWJmLi5iYzBkODc4N2YxNmQy
YjVjNzBhOWI1NWUxMzcxYzM1ZWM2ZmQzOWE5IDEwMDc1NQotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9raWxsLW9sZC1wcm9jZXNzZXMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
a2lsbC1vbGQtcHJvY2Vzc2VzCkBAIC05NSw2ICs5NSw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAg
ICJzdm4iLA0KICAgICAgICAgIndlYmtpdF91bml0X3Rlc3RzIiwNCiAgICAgICAgICJXZWJLaXRU
ZXN0UnVubmVyIiwNCisgICAgICAgICJYdmZiIiwNCiAgICAgXQ0KIA0KICAgICBpZiBzeXMucGxh
dGZvcm0gPT0gJ2Rhcndpbic6DQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CmluZGV4IGIyMGNhOThlZWYwYWYzMmU3OTQ5
NWQ0ZDZlM2Y2YWE4MGI0NTc1YWYuLjRlMzg0M2ZlMGY5N2M5Y2U5MDRlZWM2MGRmMDlkMzM1Yzk4
YzFhYjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Bv
cnQveHZmYmRyaXZlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L3h2ZmJkcml2ZXIucHkKQEAgLTY4LDkgKzY4LDUgQEAgY2xhc3MgWHZmYkRyaXZlcihE
cml2ZXIpOgogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBzdXBlcihYdmZiRHJpdmVyLCBz
ZWxmKS5zdG9wKCkKICAgICAgICAgaWYgZ2V0YXR0cihzZWxmLCAnX3h2ZmJfcHJvY2VzcycsIE5v
bmUpOgotICAgICAgICAgICAgdHJ5OgotICAgICAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vz
cy50ZXJtaW5hdGUoKQotICAgICAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vzcy53YWl0KCkK
LSAgICAgICAgICAgIGV4Y2VwdCBPU0Vycm9yOgotICAgICAgICAgICAgICAgIF9sb2cud2Fybigi
VGhlIGRyaXZlciBpcyBhbHJlYWR5IHRlcm1pbmF0ZWQuIikKKyAgICAgICAgICAgIEV4ZWN1dGl2
ZSgpLmtpbGxfcHJvY2VzcyhzZWxmLl94dmZiX3Byb2Nlc3MucGlkKQogICAgICAgICAgICAgc2Vs
Zi5feHZmYl9wcm9jZXNzID0gTm9uZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160995</attachid>
            <date>2012-08-28 09:14:50 -0700</date>
            <delta_ts>2012-09-06 00:28:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95097-20120828091441.patch</filename>
            <type>text/plain</type>
            <size>12729</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzkxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmNiNTNkZjI3ODMxMjE0M2JkODQ5NmI0MDM5NTMzYjg3
NTMwMzJmMC4uM2IzYTAyZWM2ZGUyYTFkNjJkMDgyMmM5M2FkNTI1N2FhMTBhNjJkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUy
IEBACisyMDEyLTA4LTI4ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW05SV1RdIFh2ZmJEcml2ZXIgc2hvdWxkIHN0b3AgdGhlIFh2ZmIgbW9yZSBhZ2dy
ZXNzaXZlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIFh2ZmIgcHJvY2VzcyBpcyBub3cga2lsbGVkIHdoZW4gdGhlIFh2ZmJEcml2ZXIgaXMgc3Rv
cHBpbmcuIFNpbXBseQorICAgICAgICB0ZXJtaW5hdGluZyB0aGUgcHJvY2VzcyBkb2VzIG5vdCBh
bHdheXMgd29yayBhcyBleHBlY3RlZCwgbGVhZGluZyB0byB0aW1lb3V0cworICAgICAgICBpbiBy
dW4td2Via2l0LXRlc3RzIG9uIHRoZSBidWlsZGJvdC4KKworICAgICAgICBBbHNvIGluY2x1ZGVk
IGlzIGEgdGhvcm91Z2ggdW5pdHRlc3QgZm9yIFh2ZmJEcml2ZXIuIFByb3BlciBzdGFydGluZyBv
ZiB0aGUgZHJpdmVyCisgICAgICAgIGlzIHRlc3RlZCBpbiBkaWZmZXJlbnQgY2lyY3Vtc3RhbmNl
cyAtIHdoZXRoZXIgcGl4ZWwgdGVzdHMgYXJlIGVuYWJsZWQgb3Igbm90LAorICAgICAgICB3aXRo
IGFuIGFyYml0cmFyeSB3b3JrZXIgbnVtYmVyIG9yIHdpdGggYW4gWG9yZyBwcm9jZXNzIGFscmVh
ZHkgcnVubmluZyBvbiB0aGUgc3lzdGVtLgorICAgICAgICBUaGUgc3RvcHBpbmcgb2YgdGhlIGRy
aXZlciBpcyB0ZXN0ZWQgYnkgY2hlY2tpbmcgdGhhdCB0aGUgWHZmYiBwcm9jZXNzIGlzIHRydWx5
IGtpbGxlZAorICAgICAgICBhbmQgdGhlbiBzZXQgdG8gTm9uZS4KKworICAgICAgICAqIEJ1aWxk
U2xhdmVTdXBwb3J0L2tpbGwtb2xkLXByb2Nlc3NlczoKKyAgICAgICAgS2lsbCBhbnkgc3RhbGUg
WHZmYiBwcm9jZXNzZXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBidWlsZCBjeWNsZSBzbyBubyBYdmZi
CisgICAgICAgIGlzIGxlZnQgcnVubmluZywgcG90ZW50aWFsbHkgY2xvZ2dpbmcgdXAgYSBkaXNw
bGF5IGF0IGEgY2VydGFpbiBwb3NpdGlvbi4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2sucHk6CisgICAgICAgIChNb2NrRXhlY3V0aXZlLl9f
aW5pdF9fKToKKyAgICAgICAgVGhlIF9ydW5uaW5nX3BpZHMgaXMgbm93IGEgZGljdGlvbmFyeSB3
aXRoIHByb2Nlc3MgbmFtZXMgYXMga2V5cyBhbmQgcGlkcworICAgICAgICBhcyB2YWx1ZXMuCisg
ICAgICAgIChNb2NrRXhlY3V0aXZlLmNoZWNrX3J1bm5pbmdfcGlkKToKKyAgICAgICAgQ2hlY2sg
d2hldGhlciB0aGUgcGFzc2VkLWluIHBpZCBpcyBpbiB0aGUgX3J1bm5pbmdfcGlkcyBkaWN0aW9u
YXJ5J3MgdmFsdWVzLgorICAgICAgICAoTW9ja0V4ZWN1dGl2ZSk6CisgICAgICAgIChNb2NrRXhl
Y3V0aXZlLnJ1bm5pbmdfcGlkcyk6CisgICAgICAgIFRoaXMgbWV0aG9kIHJldHVybnMgdGhlIGxp
c3Qgb2YgYWxsIHRoZSBwcm9jZXNzIHBpZHMgb2Ygd2hpY2ggdGhlIG5hbWUgcGFzc2VzCisgICAg
ICAgIHRocm91Z2ggdGhlIHByb2Nlc3NfbmFtZV9maWx0ZXIuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5OgorICAgICAgICBVc2UgdGhl
IEV4ZWN1dGl2ZSBvYmplY3Qgb2YgdGhlIHBvcnQncyBob3N0IHRvIGNoZWNrIGZvciBydW5uaW5n
IHBpZHMgYW5kIG9wZW4KKyAgICAgICAgbmV3IHN1YnByb2Nlc3NlcyBvciBraWxsIHRoZW0gdGhy
b3VnaG91dCB0aGUgY2xhc3MuCisgICAgICAgIChYdmZiRHJpdmVyLl9zdGFydCk6CisgICAgICAg
IFVzZSB0aGUgX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yIHRvIG1ha2UgdGVzdGluZyB0aGUg
WHZmYkRyaXZlciBwb3NzaWJsZS4gQWxzbywKKyAgICAgICAgc3RhcnQgdGhlIHNlcnZlciBwcm9j
ZXNzIGFmdGVyIGl0J3MgY3JlYXRlZC4KKyAgICAgICAgKFh2ZmJEcml2ZXIuc3RvcCk6CisgICAg
ICAgIE5vdyBraWxscyB0aGUgWHZmYiBwcm9jZXNzIGluc3RlYWQgb2YgdGVybWluYXRpbmcgaXQg
YW5kIHdhaXRpbmcgZm9yIGl0IHRvIGNsb3NlLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlcl91bml0dGVzdC5weTogQWRkZWQuCisgICAgICAg
IChYdmZiRHJpdmVyVGVzdCk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5tYWtlX2RyaXZlcik6
CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC5hc3NlcnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwpOgor
ICAgICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF9zdGFydF9ub19waXhlbF90ZXN0cyk6CisgICAg
ICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3N0YXJ0X3BpeGVsX3Rlc3RzKToKKyAgICAgICAgKFh2
ZmJEcml2ZXJUZXN0LnRlc3Rfc3RhcnRfYXJiaXRyYXJ5X3dvcmtlcl9udW1iZXIpOgorICAgICAg
ICAoWHZmYkRyaXZlclRlc3QudGVzdF9zdGFydF9leGlzdGluZ194b3JnX3Byb2Nlc3MpOgorICAg
ICAgICAoWHZmYkRyaXZlclRlc3QudGVzdF9zdG9wKToKKyAgICAgICAgKFh2ZmJEcml2ZXJUZXN0
LnRlc3Rfc3RvcC5GYWtlWHZmYlByb2Nlc3MpOgorCiAyMDEyLTA4LTI3ICBTdWRhcnNhbmEgTmFn
aW5lbmkgIDxzdWRhcnNhbmEubmFnaW5lbmlAbGludXguaW50ZWwuY29tPgogCiAgICAgICAgIFtF
RkxdW1dLMl0gRnJlZSBVcmxfQmFyIG9uIHByb2dyYW0gZXhpdApkaWZmIC0tZ2l0IGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQva2lsbC1vbGQtcHJvY2Vzc2VzIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQva2lsbC1vbGQtcHJvY2Vzc2VzCmluZGV4IGQzYzE3Y2ZjZGNmY2I5ZDFiNDcxZWRkYjY4
ZjE0ZmU3MWVlN2I5YmYuLmJjMGQ4Nzg3ZjE2ZDJiNWM3MGE5YjU1ZTEzNzFjMzVlYzZmZDM5YTkg
MTAwNzU1Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2tpbGwtb2xkLXByb2Nlc3Nlcwor
KysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9raWxsLW9sZC1wcm9jZXNzZXMKQEAgLTk1LDYg
Kzk1LDcgQEAgZGVmIG1haW4oKToKICAgICAgICAgInN2biIsDQogICAgICAgICAid2Via2l0X3Vu
aXRfdGVzdHMiLA0KICAgICAgICAgIldlYktpdFRlc3RSdW5uZXIiLA0KKyAgICAgICAgIlh2ZmIi
LA0KICAgICBdDQogDQogICAgIGlmIHN5cy5wbGF0Zm9ybSA9PSAnZGFyd2luJzoNCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2su
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vZXhlY3V0aXZlX21vY2su
cHkKaW5kZXggY2ZlOTg5OTY4MDUwYmI2NzEyNDBjNTBkMTEwMWY2YWUwYzk1MGQ0ZC4uY2NlMjFi
MjMzMzVhNDU5ODYyNjU3ZmRmZjBmMjhlYWM1YTc4YzFmYSAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9leGVjdXRpdmVfbW9jay5weQpAQCAtNTgs
MTEgKzU4LDIwIEBAIGNsYXNzIE1vY2tFeGVjdXRpdmUob2JqZWN0KToKICAgICAgICAgc2VsZi5f
c2hvdWxkX3Rocm93ID0gc2hvdWxkX3Rocm93CiAgICAgICAgIHNlbGYuX3Nob3VsZF90aHJvd193
aGVuX3J1biA9IHNob3VsZF90aHJvd193aGVuX3J1biBvciBzZXQoKQogICAgICAgICAjIEZJWE1F
OiBPbmNlIGV4ZWN1dGl2ZSB3cmFwcyBvcy5nZXRwaWQoKSB3ZSBjYW4ganVzdCB1c2UgYSBzdGF0
aWMgcGlkIGZvciAidGhpcyIgcHJvY2Vzcy4KLSAgICAgICAgc2VsZi5fcnVubmluZ19waWRzID0g
W29zLmdldHBpZCgpXQorICAgICAgICBzZWxmLl9ydW5uaW5nX3BpZHMgPSB7J3Rlc3Qtd2Via2l0
cHknOiBvcy5nZXRwaWQoKX0KICAgICAgICAgc2VsZi5fcHJvYyA9IE5vbmUKIAogICAgIGRlZiBj
aGVja19ydW5uaW5nX3BpZChzZWxmLCBwaWQpOgotICAgICAgICByZXR1cm4gcGlkIGluIHNlbGYu
X3J1bm5pbmdfcGlkcworICAgICAgICByZXR1cm4gcGlkIGluIHNlbGYuX3J1bm5pbmdfcGlkcy52
YWx1ZXMoKQorCisgICAgZGVmIHJ1bm5pbmdfcGlkcyhzZWxmLCBwcm9jZXNzX25hbWVfZmlsdGVy
KToKKyAgICAgICAgcnVubmluZ19waWRzID0gW10KKyAgICAgICAgZm9yIHByb2Nlc3NfbmFtZSwg
cHJvY2Vzc19waWQgaW4gc2VsZi5fcnVubmluZ19waWRzLml0ZXJpdGVtcygpOgorICAgICAgICAg
ICAgaWYgcHJvY2Vzc19uYW1lX2ZpbHRlcihwcm9jZXNzX25hbWUpOgorICAgICAgICAgICAgICAg
IHJ1bm5pbmdfcGlkcy5hcHBlbmQocHJvY2Vzc19waWQpCisKKyAgICAgICAgbG9nKCJNT0NLIHJ1
bm5pbmdfcGlkczogJXMiICUgcnVubmluZ19waWRzKQorICAgICAgICByZXR1cm4gcnVubmluZ19w
aWRzCiAKICAgICBkZWYgcnVuX2FuZF90aHJvd19pZl9mYWlsKHNlbGYsIGFyZ3MsIHF1aWV0PUZh
bHNlLCBjd2Q9Tm9uZSwgZW52PU5vbmUpOgogICAgICAgICBpZiBzZWxmLl9zaG91bGRfbG9nOgpk
aWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZi
ZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZi
ZHJpdmVyLnB5CmluZGV4IGIyMGNhOThlZWYwYWYzMmU3OTQ5NWQ0ZDZlM2Y2YWE4MGI0NTc1YWYu
LmJjMzVkYWZkZDFkNzcwY2M1Yjg2ZThhMjMyYjVhZmM2OTc5Zjg2ZTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkK
QEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgWHZmYkRyaXZlcihEcml2ZXIpOgogICAgICAgICBkZWYg
eF9maWx0ZXIocHJvY2Vzc19uYW1lKToKICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzX25hbWUu
ZmluZCgiWG9yZyIpID4gLTEKIAotICAgICAgICBydW5uaW5nX2Rpc3BsYXlzID0gbGVuKEV4ZWN1
dGl2ZSgpLnJ1bm5pbmdfcGlkcyh4X2ZpbHRlcikpCisgICAgICAgIHJ1bm5pbmdfZGlzcGxheXMg
PSBsZW4oc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5ydW5uaW5nX3BpZHMoeF9maWx0ZXIpKQog
CiAgICAgICAgICMgVXNlIGV2ZW4gZGlzcGxheXMgZm9yIHBpeGVsIHRlc3RzIGFuZCBvZGQgb25l
cyBvdGhlcndpc2UuIFdoZW4gcGl4ZWwgdGVzdHMgYXJlIGRpc2FibGVkLAogICAgICAgICAjIERy
aXZlclByb3h5IGNyZWF0ZXMgdHdvIGRyaXZlcnMsIG9uZSBmb3Igbm9ybWFsIGFuZCB0aGUgb3Ro
ZXIgZm9yIHJlZiB0ZXN0cy4gQm90aCBoYXZlCkBAIC01NiwyMSArNTYsMTggQEAgY2xhc3MgWHZm
YkRyaXZlcihEcml2ZXIpOgogICAgICAgICAgICAgZGlzcGxheV9pZCArPSAxCiAgICAgICAgIHJ1
bl94dmZiID0gWyJYdmZiIiwgIjolZCIgJSAoZGlzcGxheV9pZCksICItc2NyZWVuIiwgICIwIiwg
IjgwMHg2MDB4MjQiLCAiLW5vbGlzdGVuIiwgInRjcCJdCiAgICAgICAgIHdpdGggb3Blbihvcy5k
ZXZudWxsLCAndycpIGFzIGRldm51bGw6Ci0gICAgICAgICAgICBzZWxmLl94dmZiX3Byb2Nlc3Mg
PSBzdWJwcm9jZXNzLlBvcGVuKHJ1bl94dmZiLCBzdGRlcnI9ZGV2bnVsbCkKKyAgICAgICAgICAg
IHNlbGYuX3h2ZmJfcHJvY2VzcyA9IHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUucG9wZW4ocnVu
X3h2ZmIsIHN0ZGVycj1kZXZudWxsKQogICAgICAgICBzZXJ2ZXJfbmFtZSA9IHNlbGYuX3BvcnQu
ZHJpdmVyX25hbWUoKQogICAgICAgICBlbnZpcm9ubWVudCA9IHNlbGYuX3BvcnQuc2V0dXBfZW52
aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQogICAgICAgICAjIFdlIG11c3QgZG8gdGhpcyBo
ZXJlIGJlY2F1c2UgdGhlIERJU1BMQVkgbnVtYmVyIGRlcGVuZHMgb24gX3dvcmtlcl9udW1iZXIK
ICAgICAgICAgZW52aXJvbm1lbnRbJ0RJU1BMQVknXSA9ICI6JWQiICUgKGRpc3BsYXlfaWQpCiAg
ICAgICAgIHNlbGYuX2NyYXNoZWRfcHJvY2Vzc19uYW1lID0gTm9uZQogICAgICAgICBzZWxmLl9j
cmFzaGVkX3BpZCA9IE5vbmUKLSAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nlc3MgPSBTZXJ2ZXJQ
cm9jZXNzKHNlbGYuX3BvcnQsIHNlcnZlcl9uYW1lLCBzZWxmLmNtZF9saW5lKHBpeGVsX3Rlc3Rz
LCBwZXJfdGVzdF9hcmdzKSwgZW52aXJvbm1lbnQpCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9j
ZXNzID0gc2VsZi5fcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3Ioc2VsZi5fcG9ydCwg
c2VydmVyX25hbWUsIHNlbGYuY21kX2xpbmUocGl4ZWxfdGVzdHMsIHBlcl90ZXN0X2FyZ3MpLCBl
bnZpcm9ubWVudCkKKyAgICAgICAgc2VsZi5fc2VydmVyX3Byb2Nlc3Muc3RhcnQoKQogCiAgICAg
ZGVmIHN0b3Aoc2VsZik6CiAgICAgICAgIHN1cGVyKFh2ZmJEcml2ZXIsIHNlbGYpLnN0b3AoKQog
ICAgICAgICBpZiBnZXRhdHRyKHNlbGYsICdfeHZmYl9wcm9jZXNzJywgTm9uZSk6Ci0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzLnRlcm1pbmF0ZSgp
Ci0gICAgICAgICAgICAgICAgc2VsZi5feHZmYl9wcm9jZXNzLndhaXQoKQotICAgICAgICAgICAg
ZXhjZXB0IE9TRXJyb3I6Ci0gICAgICAgICAgICAgICAgX2xvZy53YXJuKCJUaGUgZHJpdmVyIGlz
IGFscmVhZHkgdGVybWluYXRlZC4iKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5ob3N0LmV4ZWN1
dGl2ZS5raWxsX3Byb2Nlc3Moc2VsZi5feHZmYl9wcm9jZXNzLnBpZCkKICAgICAgICAgICAgIHNl
bGYuX3h2ZmJfcHJvY2VzcyA9IE5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlcl91bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlcl91bml0dGVzdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZGFiNDg4Y2ZkNmIxMzcwMThkM2Q1ZGJkMGYxOGY1MmY0MTM5MDRlCi0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZi
ZHJpdmVyX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsOTggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEy
IFphbiBEb2JlcnNlayA8emFuZG9iZXJzZWtAZ21haWwuY29tPgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
aW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVk
X2xvZ2dpbmcgaW1wb3J0IGxvZworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLm91dHB1dGNh
cHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5z
eXN0ZW1ob3N0X21vY2sgaW1wb3J0IE1vY2tTeXN0ZW1Ib3N0Citmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5wb3J0IGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0
LmNvbmZpZ19tb2NrIGltcG9ydCBNb2NrQ29uZmlnCitmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0
cy5wb3J0LnNlcnZlcl9wcm9jZXNzX21vY2sgaW1wb3J0IE1vY2tTZXJ2ZXJQcm9jZXNzCitmcm9t
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0Lnh2ZmJkcml2ZXIgaW1wb3J0IFh2ZmJEcml2ZXIK
KworCitjbGFzcyBYdmZiRHJpdmVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgZGVmIG1h
a2VfZHJpdmVyKHNlbGYsIHdvcmtlcl9udW1iZXI9MCwgeG9yZ19ydW5uaW5nPUZhbHNlKToKKyAg
ICAgICAgcG9ydCA9IFBvcnQoaG9zdD1Nb2NrU3lzdGVtSG9zdChsb2dfZXhlY3V0aXZlPVRydWUp
LCBjb25maWc9TW9ja0NvbmZpZygpKQorICAgICAgICBwb3J0Ll9zZXJ2ZXJfcHJvY2Vzc19jb25z
dHJ1Y3RvciA9IE1vY2tTZXJ2ZXJQcm9jZXNzCisgICAgICAgIGlmIHhvcmdfcnVubmluZzoKKyAg
ICAgICAgICAgIHBvcnQuX2V4ZWN1dGl2ZS5fcnVubmluZ19waWRzWydYb3JnJ10gPSAxMDgKKwor
ICAgICAgICBkcml2ZXIgPSBYdmZiRHJpdmVyKHBvcnQsIHdvcmtlcl9udW1iZXI9d29ya2VyX251
bWJlciwgcGl4ZWxfdGVzdHM9VHJ1ZSkKKyAgICAgICAgcmV0dXJuIGRyaXZlcgorCisgICAgZGVm
IGNsZWFudXBfZHJpdmVyKHNlbGYsIGRyaXZlcik6CisgICAgICAgICMgU2V0dGluZyBfeHZmYl9w
cm9jZXNzIG1lbWJlciB0byBOb25lIGlzIG5lY2Vzc2FyeSBhcyB0aGUgRHJpdmVyIG9iamVjdCBp
cyBzdG9wcGVkIG9uIGRlbGV0aW9uLAorICAgICAgICAjIGtpbGxpbmcgdGhlIFh2ZmIgcHJvY2Vz
cyBpZiBwcmVzZW50LiBUaHVzLCB0aGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSBjYWxsZWQgZnJv
bSB0ZXN0cyB0aGF0IGRvIG5vdAorICAgICAgICAjIGludGVuZCB0byB0ZXN0IHRoZSBiZWhhdmlv
ciBvZiBYdmZiRHJpdmVyLnN0b3AuCisgICAgICAgIGRyaXZlci5feHZmYl9wcm9jZXNzID0gTm9u
ZQorCisgICAgZGVmIGFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChzZWxmLCBkcml2ZXIsIGV4
cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheSwgcGl4ZWxfdGVzdHM9RmFsc2UpOgorICAg
ICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZHJpdmVyLnN0YXJ0LCBb
cGl4ZWxfdGVzdHMsIFtdXSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKGRyaXZlci5fc2VydmVyX3Byb2Nlc3Muc3RhcnRlZCkKKyAgICAg
ICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIuX3NlcnZlcl9wcm9jZXNzLmVudlsiRElTUExBWSJd
LCBleHBlY3RlZF9kaXNwbGF5KQorCisgICAgZGVmIHRlc3Rfc3RhcnRfbm9fcGl4ZWxfdGVzdHMo
c2VsZik6CisgICAgICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2ZXIoKQorICAgICAgICBleHBl
Y3RlZF9zdGRlcnIgPSAiTU9DSyBydW5uaW5nX3BpZHM6IFtdXG5NT0NLIHBvcGVuOiBbJ1h2ZmIn
LCAnOjAnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlzdGVuJywgJ3RjcCdd
XG4iCisgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKGRyaXZlciwgZXhw
ZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxheT0iOjAiKQorICAg
ICAgICBzZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKKworICAgIGRlZiB0ZXN0X3N0YXJ0X3Bp
eGVsX3Rlc3RzKHNlbGYpOgorICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2VfZHJpdmVyKCkKKyAg
ICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVubmluZ19waWRzOiBbXVxuTU9DSyBwb3Bl
bjogWydYdmZiJywgJzoxJywgJy1zY3JlZW4nLCAnMCcsICc4MDB4NjAweDI0JywgJy1ub2xpc3Rl
bicsICd0Y3AnXVxuIgorICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChk
cml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2Rpc3BsYXk9
IjoxIiwgcGl4ZWxfdGVzdHM9VHJ1ZSkKKyAgICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2
ZXIpCisKKyAgICBkZWYgdGVzdF9zdGFydF9hcmJpdHJhcnlfd29ya2VyX251bWJlcihzZWxmKToK
KyAgICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZlcih3b3JrZXJfbnVtYmVyPTE3KQorICAg
ICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5uaW5nX3BpZHM6IFtdXG5NT0NLIHBvcGVu
OiBbJ1h2ZmInLCAnOjM1JywgJy1zY3JlZW4nLCAnMCcsICc4MDB4NjAweDI0JywgJy1ub2xpc3Rl
bicsICd0Y3AnXVxuIgorICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChk
cml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2Rpc3BsYXk9
IjozNSIsIHBpeGVsX3Rlc3RzPVRydWUpCisgICAgICAgIHNlbGYuY2xlYW51cF9kcml2ZXIoZHJp
dmVyKQorCisgICAgZGVmIHRlc3Rfc3RhcnRfZXhpc3RpbmdfeG9yZ19wcm9jZXNzKHNlbGYpOgor
ICAgICAgICBkcml2ZXIgPSBzZWxmLm1ha2VfZHJpdmVyKHhvcmdfcnVubmluZz1UcnVlKQorICAg
ICAgICBleHBlY3RlZF9zdGRlcnIgPSAiTU9DSyBydW5uaW5nX3BpZHM6IFsxMDhdXG5NT0NLIHBv
cGVuOiBbJ1h2ZmInLCAnOjEnLCAnLXNjcmVlbicsICcwJywgJzgwMHg2MDB4MjQnLCAnLW5vbGlz
dGVuJywgJ3RjcCddXG4iCisgICAgICAgIHNlbGYuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVs
KGRyaXZlciwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVyciwgZXhwZWN0ZWRfZGlzcGxh
eT0iOjEiKQorICAgICAgICBzZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKKworICAgIGRlZiB0
ZXN0X3N0b3Aoc2VsZik6CisgICAgICAgIHBvcnQgPSBQb3J0KGhvc3Q9TW9ja1N5c3RlbUhvc3Qo
bG9nX2V4ZWN1dGl2ZT1UcnVlKSwgY29uZmlnPU1vY2tDb25maWcoKSkKKyAgICAgICAgcG9ydC5f
ZXhlY3V0aXZlLmtpbGxfcHJvY2VzcyA9IGxhbWJkYSB4OiBsb2coIk1PQ0sga2lsbF9wcm9jZXNz
IHBpZDogIiArIHN0cih4KSkKKyAgICAgICAgZHJpdmVyID0gWHZmYkRyaXZlcihwb3J0LCB3b3Jr
ZXJfbnVtYmVyPTAsIHBpeGVsX3Rlc3RzPVRydWUpCisKKyAgICAgICAgY2xhc3MgRmFrZVh2ZmJQ
cm9jZXNzKG9iamVjdCk6CisgICAgICAgICAgICBwaWQgPSAxMjM0CisKKyAgICAgICAgZHJpdmVy
Ll94dmZiX3Byb2Nlc3MgPSBGYWtlWHZmYlByb2Nlc3MoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0
Tm90RXF1YWwoZHJpdmVyLl94dmZiX3Byb2Nlc3MsIE5vbmUpCisgICAgICAgIGV4cGVjdGVkX3N0
ZGVyciA9ICJNT0NLIGtpbGxfcHJvY2VzcyBwaWQ6IDEyMzRcbiIKKyAgICAgICAgT3V0cHV0Q2Fw
dHVyZSgpLmFzc2VydF9vdXRwdXRzKHNlbGYsIGRyaXZlci5zdG9wLCBbXSwgZXhwZWN0ZWRfc3Rk
ZXJyPWV4cGVjdGVkX3N0ZGVycikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChkcml2ZXIuX3h2
ZmJfcHJvY2VzcywgTm9uZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162434</attachid>
            <date>2012-09-06 00:28:10 -0700</date>
            <delta_ts>2012-09-07 03:00:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95097-20120906002751.patch</filename>
            <type>text/plain</type>
            <size>13424</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzQyOTNjZmMyYjA2MjY5ODhlNmUwZGQ1MTE4ODk5NjBl
MDM3YWMxMy4uZTFlMGEzMWQ2YTlkNGU2YmI4NzYzYTgxYjBmMjMyMWQ1NjhhNjE3MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUz
IEBACisyMDEyLTA5LTA1ICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisK
KyAgICAgICAgW05SV1RdIFh2ZmJEcml2ZXIgc2hvdWxkIHN0b3AgdGhlIFh2ZmIgbW9yZSBhZ2dy
ZXNzaXZlbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1MDk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIFh2ZmIgcHJvY2VzcyBpcyBub3cga2lsbGVkIHdoZW4gdGhlIFh2ZmJEcml2ZXIgaXMgc3Rv
cHBpbmcuIFNpbXBseQorICAgICAgICB0ZXJtaW5hdGluZyB0aGUgcHJvY2VzcyBkb2VzIG5vdCBh
bHdheXMgd29yayBhcyBleHBlY3RlZCwgbGVhZGluZyB0byB0aW1lb3V0cworICAgICAgICBpbiBy
dW4td2Via2l0LXRlc3RzIG9uIHRoZSBidWlsZGJvdC4gVGhlIGxvY2sgZmlsZSBYdmZiIGNyZWF0
ZXMgaXMgYWxzbyByZW1vdmVkCisgICAgICAgIGFzIGl0J3Mgbm90IHJlbW92ZWQgYnkgdGhlIGtp
bGxlZCBYdmZiIHByb2Nlc3MuCisKKyAgICAgICAgQWxzbyBpbmNsdWRlZCBpcyBhIHRob3JvdWdo
IHVuaXR0ZXN0IGZvciBYdmZiRHJpdmVyLiBQcm9wZXIgc3RhcnRpbmcgb2YgdGhlIGRyaXZlcgor
ICAgICAgICBpcyB0ZXN0ZWQgaW4gZGlmZmVyZW50IGNpcmN1bXN0YW5jZXMgLSB3aGV0aGVyIHBp
eGVsIHRlc3RzIGFyZSBlbmFibGVkIG9yIG5vdCwKKyAgICAgICAgd2l0aCBhbiBhcmJpdHJhcnkg
d29ya2VyIG51bWJlciBvciB3aXRoIGFuIFhvcmcgcHJvY2VzcyBhbHJlYWR5IHJ1bm5pbmcgb24g
dGhlIHN5c3RlbS4KKyAgICAgICAgVGhlIHN0b3BwaW5nIG9mIHRoZSBkcml2ZXIgaXMgdGVzdGVk
IGJ5IGNoZWNraW5nIHRoYXQgdGhlIFh2ZmIgcHJvY2VzcyBpcyB0cnVseSBraWxsZWQKKyAgICAg
ICAgYW5kIHRoZW4gc2V0IHRvIE5vbmUuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9r
aWxsLW9sZC1wcm9jZXNzZXM6CisgICAgICAgIEtpbGwgYW55IHN0YWxlIFh2ZmIgcHJvY2Vzc2Vz
IGF0IHRoZSBzdGFydCBvZiB0aGUgYnVpbGQgY3ljbGUgc28gbm8gWHZmYgorICAgICAgICBpcyBs
ZWZ0IHJ1bm5pbmcsIHBvdGVudGlhbGx5IGNsb2dnaW5nIHVwIGEgZGlzcGxheSBhdCBhIGNlcnRh
aW4gcG9zaXRpb24uCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL2V4
ZWN1dGl2ZV9tb2NrLnB5OgorICAgICAgICAoTW9ja0V4ZWN1dGl2ZS5fX2luaXRfXyk6CisgICAg
ICAgIFRoZSBfcnVubmluZ19waWRzIGlzIG5vdyBhIGRpY3Rpb25hcnkgd2l0aCBwcm9jZXNzIG5h
bWVzIGFzIGtleXMgYW5kIHBpZHMKKyAgICAgICAgYXMgdmFsdWVzLgorICAgICAgICAoTW9ja0V4
ZWN1dGl2ZS5jaGVja19ydW5uaW5nX3BpZCk6CisgICAgICAgIENoZWNrIHdoZXRoZXIgdGhlIHBh
c3NlZC1pbiBwaWQgaXMgaW4gdGhlIF9ydW5uaW5nX3BpZHMgZGljdGlvbmFyeSdzIHZhbHVlcy4K
KyAgICAgICAgKE1vY2tFeGVjdXRpdmUpOgorICAgICAgICAoTW9ja0V4ZWN1dGl2ZS5ydW5uaW5n
X3BpZHMpOgorICAgICAgICBUaGlzIG1ldGhvZCByZXR1cm5zIHRoZSBsaXN0IG9mIGFsbCB0aGUg
cHJvY2VzcyBwaWRzIG9mIHdoaWNoIHRoZSBuYW1lIHBhc3NlcworICAgICAgICB0aHJvdWdoIHRo
ZSBwcm9jZXNzX25hbWVfZmlsdGVyLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weToKKyAgICAgICAgVXNlIHRoZSBFeGVjdXRpdmUgb2Jq
ZWN0IG9mIHRoZSBwb3J0J3MgaG9zdCB0byBjaGVjayBmb3IgcnVubmluZyBwaWRzIGFuZCBvcGVu
CisgICAgICAgIG5ldyBzdWJwcm9jZXNzZXMgb3Iga2lsbCB0aGVtIHRocm91Z2hvdXQgdGhlIGNs
YXNzLgorICAgICAgICAoWHZmYkRyaXZlci5fc3RhcnQpOgorICAgICAgICBVc2UgdGhlIF9zZXJ2
ZXJfcHJvY2Vzc19jb25zdHJ1Y3RvciB0byBtYWtlIHRlc3RpbmcgdGhlIFh2ZmJEcml2ZXIgcG9z
c2libGUuIEFsc28sCisgICAgICAgIHN0YXJ0IHRoZSBzZXJ2ZXIgcHJvY2VzcyBhZnRlciBpdCdz
IGNyZWF0ZWQuCisgICAgICAgIChYdmZiRHJpdmVyLnN0b3ApOgorICAgICAgICBOb3cga2lsbHMg
dGhlIFh2ZmIgcHJvY2VzcyBpbnN0ZWFkIG9mIHRlcm1pbmF0aW5nIGl0IGFuZCB3YWl0aW5nIGZv
ciBpdCB0byBjbG9zZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9w
b3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHk6IEFkZGVkLgorICAgICAgICAoWHZmYkRyaXZlclRl
c3QpOgorICAgICAgICAoWHZmYkRyaXZlclRlc3QubWFrZV9kcml2ZXIpOgorICAgICAgICAoWHZm
YkRyaXZlclRlc3QuYXNzZXJ0RHJpdmVyU3RhcnRTdWNjZXNzZnVsKToKKyAgICAgICAgKFh2ZmJE
cml2ZXJUZXN0LnRlc3Rfc3RhcnRfbm9fcGl4ZWxfdGVzdHMpOgorICAgICAgICAoWHZmYkRyaXZl
clRlc3QudGVzdF9zdGFydF9waXhlbF90ZXN0cyk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC50
ZXN0X3N0YXJ0X2FyYml0cmFyeV93b3JrZXJfbnVtYmVyKToKKyAgICAgICAgKFh2ZmJEcml2ZXJU
ZXN0LnRlc3Rfc3RhcnRfZXhpc3RpbmdfeG9yZ19wcm9jZXNzKToKKyAgICAgICAgKFh2ZmJEcml2
ZXJUZXN0LnRlc3Rfc3RvcCk6CisgICAgICAgIChYdmZiRHJpdmVyVGVzdC50ZXN0X3N0b3AuRmFr
ZVh2ZmJQcm9jZXNzKToKKwogMjAxMi0wOS0wNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gUmVtb3ZlIGRlcGVuZGVuY3kgb24gd2Via2l0X3Vz
ZXJfYWdlbnQKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2tpbGwtb2xkLXBy
b2Nlc3NlcyBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2tpbGwtb2xkLXByb2Nlc3NlcwppbmRl
eCBkM2MxN2NmY2RjZmNiOWQxYjQ3MWVkZGI2OGYxNGZlNzFlZTdiOWJmLi5iYzBkODc4N2YxNmQy
YjVjNzBhOWI1NWUxMzcxYzM1ZWM2ZmQzOWE5IDEwMDc1NQotLS0gYS9Ub29scy9CdWlsZFNsYXZl
U3VwcG9ydC9raWxsLW9sZC1wcm9jZXNzZXMKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
a2lsbC1vbGQtcHJvY2Vzc2VzCkBAIC05NSw2ICs5NSw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAg
ICJzdm4iLA0KICAgICAgICAgIndlYmtpdF91bml0X3Rlc3RzIiwNCiAgICAgICAgICJXZWJLaXRU
ZXN0UnVubmVyIiwNCisgICAgICAgICJYdmZiIiwNCiAgICAgXQ0KIA0KICAgICBpZiBzeXMucGxh
dGZvcm0gPT0gJ2Rhcndpbic6DQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vc3lzdGVtL2V4ZWN1dGl2ZV9tb2NrLnB5CmluZGV4IGNmZTk4OTk2ODA1MGJiNjcxMjQw
YzUwZDExMDFmNmFlMGM5NTBkNGQuLmNjZTIxYjIzMzM1YTQ1OTg2MjY1N2ZkZmYwZjI4ZWFjNWE3
OGMxZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9l
eGVjdXRpdmVfbW9jay5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vZXhlY3V0aXZlX21vY2sucHkKQEAgLTU4LDExICs1OCwyMCBAQCBjbGFzcyBNb2NrRXhlY3V0
aXZlKG9iamVjdCk6CiAgICAgICAgIHNlbGYuX3Nob3VsZF90aHJvdyA9IHNob3VsZF90aHJvdwog
ICAgICAgICBzZWxmLl9zaG91bGRfdGhyb3dfd2hlbl9ydW4gPSBzaG91bGRfdGhyb3dfd2hlbl9y
dW4gb3Igc2V0KCkKICAgICAgICAgIyBGSVhNRTogT25jZSBleGVjdXRpdmUgd3JhcHMgb3MuZ2V0
cGlkKCkgd2UgY2FuIGp1c3QgdXNlIGEgc3RhdGljIHBpZCBmb3IgInRoaXMiIHByb2Nlc3MuCi0g
ICAgICAgIHNlbGYuX3J1bm5pbmdfcGlkcyA9IFtvcy5nZXRwaWQoKV0KKyAgICAgICAgc2VsZi5f
cnVubmluZ19waWRzID0geyd0ZXN0LXdlYmtpdHB5Jzogb3MuZ2V0cGlkKCl9CiAgICAgICAgIHNl
bGYuX3Byb2MgPSBOb25lCiAKICAgICBkZWYgY2hlY2tfcnVubmluZ19waWQoc2VsZiwgcGlkKToK
LSAgICAgICAgcmV0dXJuIHBpZCBpbiBzZWxmLl9ydW5uaW5nX3BpZHMKKyAgICAgICAgcmV0dXJu
IHBpZCBpbiBzZWxmLl9ydW5uaW5nX3BpZHMudmFsdWVzKCkKKworICAgIGRlZiBydW5uaW5nX3Bp
ZHMoc2VsZiwgcHJvY2Vzc19uYW1lX2ZpbHRlcik6CisgICAgICAgIHJ1bm5pbmdfcGlkcyA9IFtd
CisgICAgICAgIGZvciBwcm9jZXNzX25hbWUsIHByb2Nlc3NfcGlkIGluIHNlbGYuX3J1bm5pbmdf
cGlkcy5pdGVyaXRlbXMoKToKKyAgICAgICAgICAgIGlmIHByb2Nlc3NfbmFtZV9maWx0ZXIocHJv
Y2Vzc19uYW1lKToKKyAgICAgICAgICAgICAgICBydW5uaW5nX3BpZHMuYXBwZW5kKHByb2Nlc3Nf
cGlkKQorCisgICAgICAgIGxvZygiTU9DSyBydW5uaW5nX3BpZHM6ICVzIiAlIHJ1bm5pbmdfcGlk
cykKKyAgICAgICAgcmV0dXJuIHJ1bm5pbmdfcGlkcwogCiAgICAgZGVmIHJ1bl9hbmRfdGhyb3df
aWZfZmFpbChzZWxmLCBhcmdzLCBxdWlldD1GYWxzZSwgY3dkPU5vbmUsIGVudj1Ob25lKToKICAg
ICAgICAgaWYgc2VsZi5fc2hvdWxkX2xvZzoKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQveHZmYmRyaXZlci5weQppbmRleCBiMjBjYTk4ZWVmMGFm
MzJlNzk0OTVkNGQ2ZTNmNmFhODBiNDU3NWFmLi5kMTA4MjM1ZjFkNjMzNmE5Nzc4MjMyNjViZjQ5
MjZjYzNmODA5YTFkIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3h2ZmJkcml2ZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyLnB5CkBAIC00Niw3ICs0Niw3IEBAIGNsYXNzIFh2ZmJE
cml2ZXIoRHJpdmVyKToKICAgICAgICAgZGVmIHhfZmlsdGVyKHByb2Nlc3NfbmFtZSk6CiAgICAg
ICAgICAgICByZXR1cm4gcHJvY2Vzc19uYW1lLmZpbmQoIlhvcmciKSA+IC0xCiAKLSAgICAgICAg
cnVubmluZ19kaXNwbGF5cyA9IGxlbihFeGVjdXRpdmUoKS5ydW5uaW5nX3BpZHMoeF9maWx0ZXIp
KQorICAgICAgICBydW5uaW5nX2Rpc3BsYXlzID0gbGVuKHNlbGYuX3BvcnQuaG9zdC5leGVjdXRp
dmUucnVubmluZ19waWRzKHhfZmlsdGVyKSkKIAogICAgICAgICAjIFVzZSBldmVuIGRpc3BsYXlz
IGZvciBwaXhlbCB0ZXN0cyBhbmQgb2RkIG9uZXMgb3RoZXJ3aXNlLiBXaGVuIHBpeGVsIHRlc3Rz
IGFyZSBkaXNhYmxlZCwKICAgICAgICAgIyBEcml2ZXJQcm94eSBjcmVhdGVzIHR3byBkcml2ZXJz
LCBvbmUgZm9yIG5vcm1hbCBhbmQgdGhlIG90aGVyIGZvciByZWYgdGVzdHMuIEJvdGggaGF2ZQpA
QCAtNTQsMjMgKzU0LDI0IEBAIGNsYXNzIFh2ZmJEcml2ZXIoRHJpdmVyKToKICAgICAgICAgZGlz
cGxheV9pZCA9IHNlbGYuX3dvcmtlcl9udW1iZXIgKiAyICsgcnVubmluZ19kaXNwbGF5cwogICAg
ICAgICBpZiBwaXhlbF90ZXN0czoKICAgICAgICAgICAgIGRpc3BsYXlfaWQgKz0gMQotICAgICAg
ICBydW5feHZmYiA9IFsiWHZmYiIsICI6JWQiICUgKGRpc3BsYXlfaWQpLCAiLXNjcmVlbiIsICAi
MCIsICI4MDB4NjAweDI0IiwgIi1ub2xpc3RlbiIsICJ0Y3AiXQorICAgICAgICBydW5feHZmYiA9
IFsiWHZmYiIsICI6JWQiICUgZGlzcGxheV9pZCwgIi1zY3JlZW4iLCAgIjAiLCAiODAweDYwMHgy
NCIsICItbm9saXN0ZW4iLCAidGNwIl0KICAgICAgICAgd2l0aCBvcGVuKG9zLmRldm51bGwsICd3
JykgYXMgZGV2bnVsbDoKLSAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2VzcyA9IHN1YnByb2Nl
c3MuUG9wZW4ocnVuX3h2ZmIsIHN0ZGVycj1kZXZudWxsKQorICAgICAgICAgICAgc2VsZi5feHZm
Yl9wcm9jZXNzID0gc2VsZi5fcG9ydC5ob3N0LmV4ZWN1dGl2ZS5wb3BlbihydW5feHZmYiwgc3Rk
ZXJyPWRldm51bGwpCisgICAgICAgIHNlbGYuX2xvY2tfZmlsZSA9ICIvdG1wLy5YJWQtbG9jayIg
JSBkaXNwbGF5X2lkCisKICAgICAgICAgc2VydmVyX25hbWUgPSBzZWxmLl9wb3J0LmRyaXZlcl9u
YW1lKCkKICAgICAgICAgZW52aXJvbm1lbnQgPSBzZWxmLl9wb3J0LnNldHVwX2Vudmlyb25fZm9y
X3NlcnZlcihzZXJ2ZXJfbmFtZSkKICAgICAgICAgIyBXZSBtdXN0IGRvIHRoaXMgaGVyZSBiZWNh
dXNlIHRoZSBESVNQTEFZIG51bWJlciBkZXBlbmRzIG9uIF93b3JrZXJfbnVtYmVyCiAgICAgICAg
IGVudmlyb25tZW50WydESVNQTEFZJ10gPSAiOiVkIiAlIChkaXNwbGF5X2lkKQogICAgICAgICBz
ZWxmLl9jcmFzaGVkX3Byb2Nlc3NfbmFtZSA9IE5vbmUKICAgICAgICAgc2VsZi5fY3Jhc2hlZF9w
aWQgPSBOb25lCi0gICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzID0gU2VydmVyUHJvY2Vzcyhz
ZWxmLl9wb3J0LCBzZXJ2ZXJfbmFtZSwgc2VsZi5jbWRfbGluZShwaXhlbF90ZXN0cywgcGVyX3Rl
c3RfYXJncyksIGVudmlyb25tZW50KQorICAgICAgICBzZWxmLl9zZXJ2ZXJfcHJvY2VzcyA9IHNl
bGYuX3BvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yKHNlbGYuX3BvcnQsIHNlcnZlcl9u
YW1lLCBzZWxmLmNtZF9saW5lKHBpeGVsX3Rlc3RzLCBwZXJfdGVzdF9hcmdzKSwgZW52aXJvbm1l
bnQpCisgICAgICAgIHNlbGYuX3NlcnZlcl9wcm9jZXNzLnN0YXJ0KCkKIAogICAgIGRlZiBzdG9w
KHNlbGYpOgogICAgICAgICBzdXBlcihYdmZiRHJpdmVyLCBzZWxmKS5zdG9wKCkKICAgICAgICAg
aWYgZ2V0YXR0cihzZWxmLCAnX3h2ZmJfcHJvY2VzcycsIE5vbmUpOgotICAgICAgICAgICAgdHJ5
OgotICAgICAgICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vzcy50ZXJtaW5hdGUoKQotICAgICAg
ICAgICAgICAgIHNlbGYuX3h2ZmJfcHJvY2Vzcy53YWl0KCkKLSAgICAgICAgICAgIGV4Y2VwdCBP
U0Vycm9yOgotICAgICAgICAgICAgICAgIF9sb2cud2FybigiVGhlIGRyaXZlciBpcyBhbHJlYWR5
IHRlcm1pbmF0ZWQuIikKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuaG9zdC5leGVjdXRpdmUua2ls
bF9wcm9jZXNzKHNlbGYuX3h2ZmJfcHJvY2Vzcy5waWQpCiAgICAgICAgICAgICBzZWxmLl94dmZi
X3Byb2Nlc3MgPSBOb25lCisgICAgICAgICAgICBpZiBzZWxmLl9wb3J0Lmhvc3QuZmlsZXN5c3Rl
bS5pc2ZpbGUoc2VsZi5fbG9ja19maWxlKToKKyAgICAgICAgICAgICAgICBzZWxmLl9wb3J0Lmhv
c3QuZmlsZXN5c3RlbS5yZW1vdmUoc2VsZi5fbG9ja19maWxlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3VuaXR0ZXN0LnB5
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC94dmZiZHJpdmVyX3Vu
aXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3YTJmYmQ0ZDE5MjY4MGFmZjg1MDM3ZDViZTE1M2ZiODM1
ZTZiYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9wb3J0L3h2ZmJkcml2ZXJfdW5pdHRlc3QucHkKQEAgLTAsMCArMSwxMDIgQEAKKyMgQ29w
eXJpZ2h0IChDKSAyMDEyIFphbiBEb2JlcnNlayA8emFuZG9iZXJzZWtAZ21haWwuY29tPgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRF
RCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLnN5
c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGxvZworZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmZpbGVzeXN0ZW1fbW9jayBpbXBvcnQgTW9ja0ZpbGVTeXN0ZW0KK2Zyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uc3lzdGVtaG9zdF9tb2NrIGltcG9ydCBNb2NrU3lzdGVt
SG9zdAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgUG9ydAorZnJvbSB3
ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5jb25maWdfbW9jayBpbXBvcnQgTW9ja0NvbmZpZwor
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC5zZXJ2ZXJfcHJvY2Vzc19tb2NrIGltcG9y
dCBNb2NrU2VydmVyUHJvY2VzcworZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydC54dmZi
ZHJpdmVyIGltcG9ydCBYdmZiRHJpdmVyCisKKworY2xhc3MgWHZmYkRyaXZlclRlc3QodW5pdHRl
c3QuVGVzdENhc2UpOgorICAgIGRlZiBtYWtlX2RyaXZlcihzZWxmLCB3b3JrZXJfbnVtYmVyPTAs
IHhvcmdfcnVubmluZz1GYWxzZSk6CisgICAgICAgIHBvcnQgPSBQb3J0KGhvc3Q9TW9ja1N5c3Rl
bUhvc3QobG9nX2V4ZWN1dGl2ZT1UcnVlKSwgY29uZmlnPU1vY2tDb25maWcoKSkKKyAgICAgICAg
cG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBNb2NrU2VydmVyUHJvY2VzcworICAg
ICAgICBpZiB4b3JnX3J1bm5pbmc6CisgICAgICAgICAgICBwb3J0Ll9leGVjdXRpdmUuX3J1bm5p
bmdfcGlkc1snWG9yZyddID0gMTA4CisKKyAgICAgICAgZHJpdmVyID0gWHZmYkRyaXZlcihwb3J0
LCB3b3JrZXJfbnVtYmVyPXdvcmtlcl9udW1iZXIsIHBpeGVsX3Rlc3RzPVRydWUpCisgICAgICAg
IHJldHVybiBkcml2ZXIKKworICAgIGRlZiBjbGVhbnVwX2RyaXZlcihzZWxmLCBkcml2ZXIpOgor
ICAgICAgICAjIFNldHRpbmcgX3h2ZmJfcHJvY2VzcyBtZW1iZXIgdG8gTm9uZSBpcyBuZWNlc3Nh
cnkgYXMgdGhlIERyaXZlciBvYmplY3QgaXMgc3RvcHBlZCBvbiBkZWxldGlvbiwKKyAgICAgICAg
IyBraWxsaW5nIHRoZSBYdmZiIHByb2Nlc3MgaWYgcHJlc2VudC4gVGh1cywgdGhpcyBtZXRob2Qg
c2hvdWxkIG9ubHkgYmUgY2FsbGVkIGZyb20gdGVzdHMgdGhhdCBkbyBub3QKKyAgICAgICAgIyBp
bnRlbmQgdG8gdGVzdCB0aGUgYmVoYXZpb3Igb2YgWHZmYkRyaXZlci5zdG9wLgorICAgICAgICBk
cml2ZXIuX3h2ZmJfcHJvY2VzcyA9IE5vbmUKKworICAgIGRlZiBhc3NlcnREcml2ZXJTdGFydFN1
Y2Nlc3NmdWwoc2VsZiwgZHJpdmVyLCBleHBlY3RlZF9zdGRlcnIsIGV4cGVjdGVkX2Rpc3BsYXks
IHBpeGVsX3Rlc3RzPUZhbHNlKToKKyAgICAgICAgT3V0cHV0Q2FwdHVyZSgpLmFzc2VydF9vdXRw
dXRzKHNlbGYsIGRyaXZlci5zdGFydCwgW3BpeGVsX3Rlc3RzLCBbXV0sIGV4cGVjdGVkX3N0ZGVy
cj1leHBlY3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShkcml2ZXIuX3NlcnZl
cl9wcm9jZXNzLnN0YXJ0ZWQpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLl9zZXJ2
ZXJfcHJvY2Vzcy5lbnZbIkRJU1BMQVkiXSwgZXhwZWN0ZWRfZGlzcGxheSkKKworICAgIGRlZiB0
ZXN0X3N0YXJ0X25vX3BpeGVsX3Rlc3RzKHNlbGYpOgorICAgICAgICBkcml2ZXIgPSBzZWxmLm1h
a2VfZHJpdmVyKCkKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVubmluZ19waWRz
OiBbXVxuTU9DSyBwb3BlbjogWydYdmZiJywgJzowJywgJy1zY3JlZW4nLCAnMCcsICc4MDB4NjAw
eDI0JywgJy1ub2xpc3RlbicsICd0Y3AnXVxuIgorICAgICAgICBzZWxmLmFzc2VydERyaXZlclN0
YXJ0U3VjY2Vzc2Z1bChkcml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3RlZF9zdGRlcnIsIGV4
cGVjdGVkX2Rpc3BsYXk9IjowIikKKyAgICAgICAgc2VsZi5jbGVhbnVwX2RyaXZlcihkcml2ZXIp
CisKKyAgICBkZWYgdGVzdF9zdGFydF9waXhlbF90ZXN0cyhzZWxmKToKKyAgICAgICAgZHJpdmVy
ID0gc2VsZi5tYWtlX2RyaXZlcigpCisgICAgICAgIGV4cGVjdGVkX3N0ZGVyciA9ICJNT0NLIHJ1
bm5pbmdfcGlkczogW11cbk1PQ0sgcG9wZW46IFsnWHZmYicsICc6MScsICctc2NyZWVuJywgJzAn
LCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4nLCAndGNwJ11cbiIKKyAgICAgICAgc2VsZi5hc3Nl
cnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRf
c3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6MSIsIHBpeGVsX3Rlc3RzPVRydWUpCisgICAgICAg
IHNlbGYuY2xlYW51cF9kcml2ZXIoZHJpdmVyKQorCisgICAgZGVmIHRlc3Rfc3RhcnRfYXJiaXRy
YXJ5X3dvcmtlcl9udW1iZXIoc2VsZik6CisgICAgICAgIGRyaXZlciA9IHNlbGYubWFrZV9kcml2
ZXIod29ya2VyX251bWJlcj0xNykKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVu
bmluZ19waWRzOiBbXVxuTU9DSyBwb3BlbjogWydYdmZiJywgJzozNScsICctc2NyZWVuJywgJzAn
LCAnODAweDYwMHgyNCcsICctbm9saXN0ZW4nLCAndGNwJ11cbiIKKyAgICAgICAgc2VsZi5hc3Nl
cnREcml2ZXJTdGFydFN1Y2Nlc3NmdWwoZHJpdmVyLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRf
c3RkZXJyLCBleHBlY3RlZF9kaXNwbGF5PSI6MzUiLCBwaXhlbF90ZXN0cz1UcnVlKQorICAgICAg
ICBzZWxmLmNsZWFudXBfZHJpdmVyKGRyaXZlcikKKworICAgIGRlZiB0ZXN0X3N0YXJ0X2V4aXN0
aW5nX3hvcmdfcHJvY2VzcyhzZWxmKToKKyAgICAgICAgZHJpdmVyID0gc2VsZi5tYWtlX2RyaXZl
cih4b3JnX3J1bm5pbmc9VHJ1ZSkKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gIk1PQ0sgcnVu
bmluZ19waWRzOiBbMTA4XVxuTU9DSyBwb3BlbjogWydYdmZiJywgJzoxJywgJy1zY3JlZW4nLCAn
MCcsICc4MDB4NjAweDI0JywgJy1ub2xpc3RlbicsICd0Y3AnXVxuIgorICAgICAgICBzZWxmLmFz
c2VydERyaXZlclN0YXJ0U3VjY2Vzc2Z1bChkcml2ZXIsIGV4cGVjdGVkX3N0ZGVycj1leHBlY3Rl
ZF9zdGRlcnIsIGV4cGVjdGVkX2Rpc3BsYXk9IjoxIikKKyAgICAgICAgc2VsZi5jbGVhbnVwX2Ry
aXZlcihkcml2ZXIpCisKKyAgICBkZWYgdGVzdF9zdG9wKHNlbGYpOgorICAgICAgICBmaWxlc3lz
dGVtID0gTW9ja0ZpbGVTeXN0ZW0oZmlsZXM9eycvdG1wLy5YNDItbG9jayc6ICcxMjM0XG4nfSkK
KyAgICAgICAgcG9ydCA9IFBvcnQoaG9zdD1Nb2NrU3lzdGVtSG9zdChsb2dfZXhlY3V0aXZlPVRy
dWUsIGZpbGVzeXN0ZW09ZmlsZXN5c3RlbSksIGNvbmZpZz1Nb2NrQ29uZmlnKCkpCisgICAgICAg
IHBvcnQuX2V4ZWN1dGl2ZS5raWxsX3Byb2Nlc3MgPSBsYW1iZGEgeDogbG9nKCJNT0NLIGtpbGxf
cHJvY2VzcyBwaWQ6ICIgKyBzdHIoeCkpCisgICAgICAgIGRyaXZlciA9IFh2ZmJEcml2ZXIocG9y
dCwgd29ya2VyX251bWJlcj0wLCBwaXhlbF90ZXN0cz1UcnVlKQorCisgICAgICAgIGNsYXNzIEZh
a2VYdmZiUHJvY2VzcyhvYmplY3QpOgorICAgICAgICAgICAgcGlkID0gMTIzNAorCisgICAgICAg
IGRyaXZlci5feHZmYl9wcm9jZXNzID0gRmFrZVh2ZmJQcm9jZXNzKCkKKyAgICAgICAgZHJpdmVy
Ll9sb2NrX2ZpbGUgPSAnL3RtcC8uWDQyLWxvY2snCisKKyAgICAgICAgZXhwZWN0ZWRfc3RkZXJy
ID0gIk1PQ0sga2lsbF9wcm9jZXNzIHBpZDogMTIzNFxuIgorICAgICAgICBPdXRwdXRDYXB0dXJl
KCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgZHJpdmVyLnN0b3AsIFtdLCBleHBlY3RlZF9zdGRlcnI9
ZXhwZWN0ZWRfc3RkZXJyKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZHJpdmVyLl94dmZi
X3Byb2Nlc3MsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UocG9ydC5fZmlsZXN5c3Rl
bS5leGlzdHMoZHJpdmVyLl9sb2NrX2ZpbGUpKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>