<?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>44001</bug_id>
          
          <creation_ts>2010-08-13 19:03:12 -0700</creation_ts>
          <short_desc>fix test-webkitpy, add easy way to find a checkout root</short_desc>
          <delta_ts>2010-08-17 16:11:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>bulach</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>264587</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-13 19:03:12 -0700</bug_when>
    <thetext>fix test-webkitpy, add easy way to find a checkout root</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264589</commentid>
    <comment_count>1</comment_count>
      <attachid>64400</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-13 19:06:04 -0700</bug_when>
    <thetext>Created attachment 64400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264590</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-13 19:09:24 -0700</bug_when>
    <thetext>split off from bug 37630 to discuss cleaning up test-webkitpy and adding a generic method to find the root of the checkout.

I think this patch is basically sound, but it needs some unit tests for the new routines added to scm.py. 

Eric, Adam, Chris, what do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264592</commentid>
    <comment_count>3</comment_count>
      <attachid>64400</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-08-13 19:13:51 -0700</bug_when>
    <thetext>Comment on attachment 64400
Patch

This looks good.  I bet if i was more in python mode I&apos;d want some more tests.  :)


WebKitTools/ChangeLog:9
 +          the deduplicate_tests tests contaminate the test environment.
Contaminates</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264593</commentid>
    <comment_count>4</comment_count>
      <attachid>64400</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-13 19:15:27 -0700</bug_when>
    <thetext>Comment on attachment 64400
Patch

I think this is a great idea.  I&apos;m glad you wrote this patch.  Thanks!

WebKitTools/Scripts/deduplicate-tests:66
 +      logutils.configure_logging()
Why move this to run instead of just at the top of the file?

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:54
 +  def default_scm():
Seems we should just make this a static method on SCM.

WebKitTools/Scripts/webkitpy/common/checkout/scm.py:41
 +  def find_checkout_root():
Nice.  A bunch of scripts ported from chromium want this.

WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:242
 +          self._scm = scm.default_scm_system()
This call doesn&apos;t exist.  Are we missing a unit test?

Looks good except for the typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265266</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-16 15:39:30 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 64400 [details])
&gt; I think this is a great idea.  I&apos;m glad you wrote this patch.  Thanks!
&gt; 
&gt; WebKitTools/Scripts/deduplicate-tests:66
&gt;  +      logutils.configure_logging()
&gt; Why move this to run instead of just at the top of the file?
&gt;

No strong reason, I just am not a big fan of having mixing top-level statements and function definitions.
 
&gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:54
&gt;  +  def default_scm():
&gt; Seems we should just make this a static method on SCM.
&gt;

We certainly could, but I&apos;m not sure that it buys us much of anything. I personally tend to avoid static/class methods, and prefer standalone functions because it (to me) more clearly implies that the function is stateless. It also seems that using static methods enforces two layers of namespace when you only need one, i.e. scm.scm.default_scm() instead of scm.default_scm() (or import scm.scm instead of import scm).
 
&gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:41
&gt;  +  def find_checkout_root():
&gt; Nice.  A bunch of scripts ported from chromium want this.
&gt; 

Indeed ;)

&gt; WebKitTools/Scripts/webkitpy/layout_tests/rebaseline_chromium_webkit_tests.py:242
&gt;  +          self._scm = scm.default_scm_system()
&gt; This call doesn&apos;t exist.  Are we missing a unit test?
&gt;

Yes. The unit tests for rebaseline_chromium_webkit_tests don&apos;t really cover much. I&apos;ll add something at least slightly better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265272</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-16 15:53:11 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 64400 [details] [details])
&gt; &gt; I think this is a great idea.  I&apos;m glad you wrote this patch.  Thanks!
&gt; &gt; 
&gt; &gt; WebKitTools/Scripts/deduplicate-tests:66
&gt; &gt;  +      logutils.configure_logging()
&gt; &gt; Why move this to run instead of just at the top of the file?
&gt; &gt;
&gt; 
&gt; No strong reason, I just am not a big fan of having mixing top-level statements and function definitions.
&gt; 
&gt; &gt; WebKitTools/Scripts/webkitpy/common/checkout/scm.py:54
&gt; &gt;  +  def default_scm():
&gt; &gt; Seems we should just make this a static method on SCM.
&gt; &gt;
&gt; 
&gt; We certainly could, but I&apos;m not sure that it buys us much of anything. I personally tend to avoid static/class methods, and prefer standalone functions because it (to me) more clearly implies that the function is stateless. It also seems that using static methods enforces two layers of namespace when you only need one, i.e. scm.scm.default_scm() instead of scm.default_scm() (or import scm.scm instead of import scm).

Sorry, meant to add, when do you prefer static/class methods?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265274</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-16 15:57:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Sorry, meant to add, when do you prefer static/class methods?

I have no strong opinion. :) Thanks for asking.  I&apos;ve definitely used both in the past.  Static/class methods have some mild advantage in importing ease, but using free functions makes imports more explicit.  Feel free to flip a coin, follow your gut, or whatever you like. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265299</commentid>
    <comment_count>8</comment_count>
      <attachid>64536</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-16 16:48:11 -0700</bug_when>
    <thetext>Created attachment 64536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265365</commentid>
    <comment_count>9</comment_count>
      <attachid>64536</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-08-16 22:43:37 -0700</bug_when>
    <thetext>Comment on attachment 64536
Patch

WebKitTools/Scripts/webkitpy/common/checkout/scm_unittest.py:199
 +          # Mock out stderr to avoid unnecessary error logging.
We often use our OutputCapture class for this.

WebKitTools/Scripts/webkitpy/common/checkout/scm_unittest.py:210
 +          sys.stderr = open(os.devnull, &apos;a&apos;)
Yeah, OutputCapture would allow you to assert that it printed the expected strings here.

Looks good.  OutputCapture would be better in the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265827</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-08-17 16:11:45 -0700</bug_when>
    <thetext>Committed r65572: &lt;http://trac.webkit.org/changeset/65572&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64400</attachid>
            <date>2010-08-13 19:06:04 -0700</date>
            <delta_ts>2010-08-16 16:48:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44001-20100813190603.patch</filename>
            <type>text/plain</type>
            <size>8248</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjY3ZThjOTNlNTk0YzcwOTZiMTVhMzUxNTcwMjBkOWE1ZjUxODUxLi5mNWU4NGFj
NWNhMTc1N2Q1YWE5ODE5ZjE2N2IyZWFiNjViZWIxMmEyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjkgQEAK
IDIwMTAtMDgtMTMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZml4IHRlc3Qtd2Via2l0
cHksIGFkZCBlYXN5IHdheSB0byBmaW5kIGEgY2hlY2tvdXQgcm9vdAorCisgICAgICAgIHRlc3Qt
d2Via2l0cHkgY3VycmVudGx5IGRvZXNuJ3Qgd29yayByaWdodCBpZiBydW4gZnJvbSBzb21lcGxh
Y2Ugb3RoZXIKKyAgICAgICAgdGhhbiB0aGUgY2hlY2tvdXQgcm9vdCwgYW5kIGl0IHNwZXdzIGEg
YnVuY2ggb2YgZGVidWcgbG9nZ2luZyBiZWNhdXNlCisgICAgICAgIHRoZSBkZWR1cGxpY2F0ZV90
ZXN0cyB0ZXN0cyBjb250YW1pbmF0ZSB0aGUgdGVzdCBlbnZpcm9ubWVudC4KKworICAgICAgICBU
aGlzIHBhdGNoIGNsZWFucyB1cCB0aGUgZGVkdXBsaWNhdGVfdGVzdHMgdW5pdCB0ZXN0cywgYW5k
IGNyZWF0ZXMKKyAgICAgICAgdHdvIG5ldyBtZXRob2RzIGluIHNjbS5weTogZmluZF9jaGVja291
dF9yb290KCkgYW5kIGRlZmF1bHRfc2NtKCksCisgICAgICAgIGJvdGggb2Ygd2hpY2ggdXNlIGEg
c2luZ2xlIGFsZ29yaXRobSBmb3IgZ3Vlc3Npbmcgd2hhdCBjaGVja291dCByb290CisgICAgICAg
IHRvIHVzZSBpZiB5b3UgYXJlbid0IGV4cGxpY2l0bHkgdG9sZCBvbmUgZnJvbSBhIHBhdGguCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ0MDAxCisK
KyAgICAgICAgKiBTY3JpcHRzL2RlZHVwbGljYXRlLXRlc3RzOgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0dGVzdC5weToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVt
X3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5w
eToKKworMjAxMC0wOC0xMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAogICAgICAgICBSZXdyaXRlIG5ldy1y
dW4td2Via2l0LXRlc3QncyB3YWl0X2Zvcl90aHJlYWRzX3RvX2ZpbmlzaCBsb29wIHRvCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL2RlZHVwbGljYXRlLXRlc3RzIGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy9kZWR1cGxpY2F0ZS10ZXN0cwppbmRleCAxMWJhN2MyMWQ2Nzg4NDVkNjQwZTRm
OTE1ODVhYmM2N2FlYjQ0MDAzLi5mMGFmZTEzNDU4YjYzOGE0ZGEyM2FjMTI1YTU0ZGEzZGY5ZjYz
ZDEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2RlZHVwbGljYXRlLXRlc3RzCisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvZGVkdXBsaWNhdGUtdGVzdHMKQEAgLTM2LDYgKzM2LDcg
QEAgVGhpcyBjb21tYW5kIGR1bXBzIG91dCBhbGwgc3VjaCBmaWxlcy4gIFlvdSBjYW4gdXNlIGl0
IGxpa2UgdGhpczoKIAogCiBpbXBvcnQgb3B0cGFyc2UKK2ltcG9ydCB3ZWJraXRweS5jb21tb24u
c3lzdGVtLmxvZ3V0aWxzIGFzIGxvZ3V0aWxzCiBpbXBvcnQgd2Via2l0cHkubGF5b3V0X3Rlc3Rz
LmRlZHVwbGljYXRlX3Rlc3RzIGFzIGRlZHVwbGljYXRlX3Rlc3RzCiAKIApAQCAtNjIsNiArNjMs
NyBAQCBkZWYgcGFyc2VfYXJncygpOgogCiAKIGRlZiBydW4ob3B0aW9ucyk6CisgICAgbG9ndXRp
bHMuY29uZmlndXJlX2xvZ2dpbmcoKQogICAgIGlmIG9wdGlvbnMudmVyYm9zZToKICAgICAgICAg
Zm9ybWF0ID0gKCIqICUodGVzdClzXG4iCiAgICAgICAgICAgICAgICAgICAiXHRyZWR1bmRhbnRs
eSBvbiAlKHBsYXRmb3JtKXMgYW5kICUoZmFsbGJhY2spc1xuIgpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CmluZGV4IDU2OTU1OGE4
Zjk5MDdlMDhjZTFmMGQwMjE2ZmE0YTBmNjljZTQ3NjkuLjVhNmM0OGMwZjViMzcwMzRhZmYyYTA3
ZDgyYzg4MGJmZWZjNzdkNWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY20ucHkKQEAgLTM4LDYgKzM4LDQwIEBAIGZyb20gd2Via2l0
cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgcnVuX2NvbW1hbmQs
IFNjcmlwdEVycm9yCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dn
aW5nIGltcG9ydCBlcnJvciwgbG9nCiAKIAorZGVmIGZpbmRfY2hlY2tvdXRfcm9vdCgpOgorICAg
ICIiIlJldHVybnMgdGhlIGN1cnJlbnQgY2hlY2tvdXQgcm9vdCAoYXMgZGV0ZXJtaW5lZCBieSBk
ZWZhdWx0X3NjbSgpLgorCisgICAgUmV0dXJucyB0aGUgYWJzb2x1dGUgcGF0aCB0byB0aGUgdG9w
IG9mIHRoZSBXZWJLaXQgY2hlY2tvdXQsIG9yIE5vbmUKKyAgICBpZiBpdCBjYW5ub3QgYmUgZGV0
ZXJtaW5lZC4KKworICAgICIiIgorICAgIHNjbV9zeXN0ZW0gPSBkZWZhdWx0X3NjbSgpCisgICAg
aWYgc2NtX3N5c3RlbToKKyAgICAgICAgcmV0dXJuIHNjbV9zeXN0ZW0uY2hlY2tvdXRfcm9vdAor
ICAgIHJldHVybiBOb25lCisKKworZGVmIGRlZmF1bHRfc2NtKCk6CisgICAgIiIiUmV0dXJuIHRo
ZSBkZWZhdWx0IFNDTSBvYmplY3QgYXMgZGV0ZXJtaW5lZCBieSB0aGUgQ1dEIGFuZCBydW5uaW5n
IGNvZGUuCisKKyAgICBSZXR1cm5zIHRoZSBkZWZhdWx0IFNDTSBvYmplY3QgZm9yIHRoZSBjdXJy
ZW50IHdvcmtpbmcgZGlyZWN0b3J5OyBpZiB0aGUKKyAgICBDV0QgaXMgbm90IGluIGEgY2hlY2tv
dXQsIHRoZW4gd2UgYXR0ZW1wdCB0byBmaWd1cmUgb3V0IGlmIHRoZSBTQ00gbW9kdWxlCisgICAg
aXRzZWxmIGlzIHBhcnQgb2YgYSBjaGVja291dCwgYW5kIHJldHVybiB0aGF0IG9uZS4gSWYgbmVp
dGhlciBpcyBwYXJ0IG9mCisgICAgYSBjaGVja291dCwgTm9uZSBpcyByZXR1cm5lZC4KKworICAg
ICIiIgorICAgIGN3ZCA9IG9zLmdldGN3ZCgpCisgICAgc2NtX3N5c3RlbSA9IGRldGVjdF9zY21f
c3lzdGVtKGN3ZCkKKyAgICBpZiBub3Qgc2NtX3N5c3RlbToKKyAgICAgICAgc2NyaXB0X2RpcmVj
dG9yeSA9IG9zLnBhdGguYWJzcGF0aChzeXMucGF0aFswXSkKKyAgICAgICAgc2NtX3N5c3RlbSA9
IGRldGVjdF9zY21fc3lzdGVtKHNjcmlwdF9kaXJlY3RvcnkpCisgICAgICAgIGlmIHNjbV9zeXN0
ZW06CisgICAgICAgICAgICBsb2coIlRoZSBjdXJyZW50IGRpcmVjdG9yeSAoJXMpIGlzIG5vdCBh
IFdlYktpdCBjaGVja291dCwgdXNpbmcgJXMiICUgKGN3ZCwgc2NtX3N5c3RlbS5jaGVja291dF9y
b290KSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVycm9yKCJGQVRBTDogRmFpbGVkIHRv
IGRldGVybWluZSB0aGUgU0NNIHN5c3RlbSBmb3IgZWl0aGVyICVzIG9yICVzIiAlIChjd2QsIHNj
cmlwdF9kaXJlY3RvcnkpKQorICAgIHJldHVybiBzY21fc3lzdGVtCisKKwogZGVmIGRldGVjdF9z
Y21fc3lzdGVtKHBhdGgpOgogICAgIGFic29sdXRlX3BhdGggPSBvcy5wYXRoLmFic3BhdGgocGF0
aCkKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvZGVkdXBsaWNhdGVfdGVzdHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weQppbmRleCA3YTljZGFlMDQ3ZTNmYTlmYTU4
NmFlMzNhZmIzZTg1YWI2NDMyZGRhLi5iYjYzZjVlNjY5MzBmODkwZDczOTQ1NmQ0MmE4MzM1MDdl
NGE0NjgxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weQpAQCAtNDEsNyArNDEsNiBAQCBp
bXBvcnQgd2Via2l0cHkuY29tbW9uLnN5c3RlbS5sb2d1dGlscyBhcyBsb2d1dGlscwogaW1wb3J0
IHdlYmtpdHB5LmxheW91dF90ZXN0cy5wb3J0LmZhY3RvcnkgYXMgcG9ydF9mYWN0b3J5CiAKIF9s
b2cgPSBsb2d1dGlscy5nZXRfbG9nZ2VyKF9fZmlsZV9fKQotbG9ndXRpbHMuY29uZmlndXJlX2xv
Z2dpbmcoKQogCiBfQkFTRV9QTEFURk9STSA9ICdiYXNlJwogCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0c191bml0
dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVw
bGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CmluZGV4IDg3ODMzMWE3N2Y0NDg4ZGU4YWYyZDVhOGJm
YTNlOWQ0MWI5ZGE4NGYuLjY2ZGRhMzJhMDc4NmJlZGYwNDNkZDRkZDA4NDI5YWIxOWZiZDAyODQg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Rl
ZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5CkBAIC0yNyw2
ICsyNyw3IEBACiBpbXBvcnQgZGVkdXBsaWNhdGVfdGVzdHMKIGltcG9ydCBvcwogaW1wb3J0IHVu
aXR0ZXN0CitpbXBvcnQgd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBhcyBzY20KIAogCiBj
bGFzcyBNb2NrRXhlY3V0aXZlKG9iamVjdCk6CkBAIC01MSw2ICs1MiwxMyBAQCBjbGFzcyBMaXN0
RHVwbGljYXRlc1Rlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICBNb2NrRXhlY3V0aXZl
Lmxhc3RfcnVuX2NvbW1hbmQgPSBbXQogICAgICAgICBNb2NrRXhlY3V0aXZlLnJlc3BvbnNlID0g
JycKICAgICAgICAgZGVkdXBsaWNhdGVfdGVzdHMuZXhlY3V0aXZlID0gTW9ja0V4ZWN1dGl2ZQor
ICAgICAgICBzZWxmLl9vcmlnaW5hbF9jd2QgPSBvcy5nZXRjd2QoKQorICAgICAgICBjaGVja291
dF9yb290ID0gc2NtLmZpbmRfY2hlY2tvdXRfcm9vdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90
RXF1YWwoY2hlY2tvdXRfcm9vdCwgTm9uZSkKKyAgICAgICAgb3MuY2hkaXIoY2hlY2tvdXRfcm9v
dCkKKworICAgIGRlZiB0ZWFyRG93bihzZWxmKToKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5fb3Jp
Z2luYWxfY3dkKQogCiAgICAgZGVmIHRlc3RfcGFyc2VfZ2l0X291dHB1dChzZWxmKToKICAgICAg
ICAgZ2l0X291dHB1dCA9ICgKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1
bV93ZWJraXRfdGVzdHMucHkKaW5kZXggZmE0ZGY5YjY2ODA5Y2FhMjI2ZTQ0MmU5Y2ExNzBlNWIx
NmY1Y2M0NC4uM2IyMGIyODU5NTJmNjFhZjk4NmI3MjE4MDBkY2EwNDNiNDc4NGY4ZCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGlu
ZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHMucHkKQEAg
LTU5LDcgKzU5LDYgQEAgaW1wb3J0IHdlYmJyb3dzZXIKIGltcG9ydCB6aXBmaWxlCiAKIGZyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IHJ1bl9jb21tYW5kLCBTY3Jp
cHRFcnJvcgotZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBkZXRlY3Rf
c2NtX3N5c3RlbQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gYXMgc2NtCiAK
IGltcG9ydCBwb3J0CkBAIC0yNDAsNyArMjM5LDcgQEAgY2xhc3MgUmViYXNlbGluZXIob2JqZWN0
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5f
cGxhdGZvcm0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBG
YWxzZSkKLSAgICAgICAgc2VsZi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0ob3MuZ2V0Y3dkKCkp
CisgICAgICAgIHNlbGYuX3NjbSA9IHNjbS5kZWZhdWx0X3NjbV9zeXN0ZW0oKQogCiAgICAgZGVm
IHJ1bihzZWxmLCBiYWNrdXApOgogICAgICAgICAiIiJSdW4gcmViYXNlbGluZSBwcm9jZXNzLiIi
IgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21haW4ucHkg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5weQppbmRleCAxZjQzMTQ1
NGU4ZGZlNjI5MGE4YmU1OGJhZmNjOGJkOTYyYjJlYTgyLi4wZGQ1MDE3MmY4OTBmNjFkMDgxNDRm
NzY0NmMxNjZiOTAzNzI1MzM2IDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbWFpbi5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
bWFpbi5weQpAQCAtMzMsNyArMzMsNyBAQCBpbXBvcnQgb3MKIGltcG9ydCB0aHJlYWRpbmcKIAog
ZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuYXBpIGltcG9ydCBDaGVja291dAotZnJvbSB3
ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBkZXRlY3Rfc2NtX3N5c3RlbQorZnJv
bSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBkZWZhdWx0X3NjbQogZnJvbSB3
ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBCdWd6aWxsYQogZnJvbSB3ZWJraXRw
eS5jb21tb24ubmV0LmJ1aWxkYm90IGltcG9ydCBCdWlsZEJvdAogZnJvbSB3ZWJraXRweS5jb21t
b24ubmV0LnJpZXR2ZWxkIGltcG9ydCBSaWV0dmVsZApAQCAtNzksMTggKzc5LDggQEAgY2xhc3Mg
V2ViS2l0UGF0Y2goTXVsdGlDb21tYW5kVG9vbCk6CiAKICAgICBkZWYgc2NtKHNlbGYpOgogICAg
ICAgICAjIExhemlseSBpbml0aWFsaXplIFNDTSB0byBub3QgZXJyb3Itb3V0IGJlZm9yZSBjb21t
YW5kIGxpbmUgcGFyc2luZyAob3Igd2hlbiBydW5uaW5nIG5vbi1zY20gY29tbWFuZHMpLgotICAg
ICAgICBvcmlnaW5hbF9jd2QgPSBvcy5wYXRoLmFic3BhdGgoIi4iKQogICAgICAgICBpZiBub3Qg
c2VsZi5fc2NtOgotICAgICAgICAgICAgc2VsZi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0ob3Jp
Z2luYWxfY3dkKQotCi0gICAgICAgIGlmIG5vdCBzZWxmLl9zY206Ci0gICAgICAgICAgICBzY3Jp
cHRfZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKHN5cy5wYXRoWzBdKQotICAgICAgICAgICAg
c2VsZi5fc2NtID0gZGV0ZWN0X3NjbV9zeXN0ZW0oc2NyaXB0X2RpcmVjdG9yeSkKLSAgICAgICAg
ICAgIGlmIHNlbGYuX3NjbToKLSAgICAgICAgICAgICAgICBsb2coIlRoZSBjdXJyZW50IGRpcmVj
dG9yeSAoJXMpIGlzIG5vdCBhIFdlYktpdCBjaGVja291dCwgdXNpbmcgJXMiICUgKG9yaWdpbmFs
X2N3ZCwgc2VsZi5fc2NtLmNoZWNrb3V0X3Jvb3QpKQotICAgICAgICAgICAgZWxzZToKLSAgICAg
ICAgICAgICAgICBlcnJvcigiRkFUQUw6IEZhaWxlZCB0byBkZXRlcm1pbmUgdGhlIFNDTSBzeXN0
ZW0gZm9yIGVpdGhlciAlcyBvciAlcyIgJSAob3JpZ2luYWxfY3dkLCBzY3JpcHRfZGlyZWN0b3J5
KSkKLQorICAgICAgICAgICAgc2VsZi5fc2NtID0gZGVmYXVsdF9zY20oKQogICAgICAgICByZXR1
cm4gc2VsZi5fc2NtCiAKICAgICBkZWYgY2hlY2tvdXQoc2VsZik6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64536</attachid>
            <date>2010-08-16 16:48:11 -0700</date>
            <delta_ts>2010-08-16 22:43:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44001-20100816164810.patch</filename>
            <type>text/plain</type>
            <size>13946</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA1ZjY3ZThjOTNlNTk0YzcwOTZiMTVhMzUxNTcwMjBkOWE1ZjUxODUxLi5mYjU4MGM0
OTE0YmI2OThjOWU3ZTRhZTg4MjBhODgyZjVlOGNmOTgxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTAtMDgtMTYgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZml4IHRlc3Qtd2Via2l0
cHksIGFkZCBlYXN5IHdheSB0byBmaW5kIGEgY2hlY2tvdXQgcm9vdAorCisgICAgICAgIHRlc3Qt
d2Via2l0cHkgY3VycmVudGx5IGRvZXNuJ3Qgd29yayByaWdodCBpZiBydW4gZnJvbSBzb21lcGxh
Y2Ugb3RoZXIKKyAgICAgICAgdGhhbiB0aGUgY2hlY2tvdXQgcm9vdCwgYW5kIGl0IHNwZXdzIGEg
YnVuY2ggb2YgZGVidWcgbG9nZ2luZyBiZWNhdXNlCisgICAgICAgIHRoZSBkZWR1cGxpY2F0ZV90
ZXN0cyB0ZXN0cyBjb250YW1pbmF0ZXMgdGhlIHRlc3QgZW52aXJvbm1lbnQuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBjbGVhbnMgdXAgdGhlIGRlZHVwbGljYXRlX3Rlc3RzIHVuaXQgdGVzdHMsIGFu
ZCBjcmVhdGVzCisgICAgICAgIHR3byBuZXcgbWV0aG9kcyBpbiBzY20ucHk6IGZpbmRfY2hlY2tv
dXRfcm9vdCgpIGFuZCBkZWZhdWx0X3NjbSgpLAorICAgICAgICBib3RoIG9mIHdoaWNoIHVzZSBh
IHNpbmdsZSBhbGdvcml0aG0gZm9yIGd1ZXNzaW5nIHdoYXQgY2hlY2tvdXQgcm9vdAorICAgICAg
ICB0byB1c2UgaWYgeW91IGFyZW4ndCBleHBsaWNpdGx5IHRvbGQgb25lIGZyb20gYSBwYXRoLgor
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NDAwMQor
CisgICAgICAgICogU2NyaXB0cy9kZWR1cGxpY2F0ZS10ZXN0czoKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9t
aXVtX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbWFpbi5weToKKwogMjAxMC0wOC0xMyAgRGlyayBQ
cmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvZGVkdXBsaWNhdGUtdGVz
dHMgYi9XZWJLaXRUb29scy9TY3JpcHRzL2RlZHVwbGljYXRlLXRlc3RzCmluZGV4IDExYmE3YzIx
ZDY3ODg0NWQ2NDBlNGY5MTU4NWFiYzY3YWViNDQwMDMuLmYwYWZlMTM0NThiNjM4YTRkYTIzYWMx
MjVhNTRkYTNkZjlmNjNkMTAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvZGVkdXBs
aWNhdGUtdGVzdHMKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9kZWR1cGxpY2F0ZS10ZXN0cwpA
QCAtMzYsNiArMzYsNyBAQCBUaGlzIGNvbW1hbmQgZHVtcHMgb3V0IGFsbCBzdWNoIGZpbGVzLiAg
WW91IGNhbiB1c2UgaXQgbGlrZSB0aGlzOgogCiAKIGltcG9ydCBvcHRwYXJzZQoraW1wb3J0IHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0ubG9ndXRpbHMgYXMgbG9ndXRpbHMKIGltcG9ydCB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMuZGVkdXBsaWNhdGVfdGVzdHMgYXMgZGVkdXBsaWNhdGVfdGVzdHMKIAog
CkBAIC02Miw2ICs2Myw3IEBAIGRlZiBwYXJzZV9hcmdzKCk6CiAKIAogZGVmIHJ1bihvcHRpb25z
KToKKyAgICBsb2d1dGlscy5jb25maWd1cmVfbG9nZ2luZygpCiAgICAgaWYgb3B0aW9ucy52ZXJi
b3NlOgogICAgICAgICBmb3JtYXQgPSAoIiogJSh0ZXN0KXNcbiIKICAgICAgICAgICAgICAgICAg
ICJcdHJlZHVuZGFudGx5IG9uICUocGxhdGZvcm0pcyBhbmQgJShmYWxsYmFjaylzXG4iCmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20u
cHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY20ucHkK
aW5kZXggNTY5NTU4YThmOTkwN2UwOGNlMWYwZDAyMTZmYTRhMGY2OWNlNDc2OS4uNWE2YzQ4YzBm
NWIzNzAzNGFmZjJhMDdkODJjODgwYmZlZmM3N2Q1YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvc2NtLnB5CisrKyBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbS5weQpAQCAtMzgsNiArMzgsNDAg
QEAgZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgRXhlY3V0aXZl
LCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5k
ZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGVycm9yLCBsb2cKIAogCitkZWYgZmluZF9jaGVja291
dF9yb290KCk6CisgICAgIiIiUmV0dXJucyB0aGUgY3VycmVudCBjaGVja291dCByb290IChhcyBk
ZXRlcm1pbmVkIGJ5IGRlZmF1bHRfc2NtKCkuCisKKyAgICBSZXR1cm5zIHRoZSBhYnNvbHV0ZSBw
YXRoIHRvIHRoZSB0b3Agb2YgdGhlIFdlYktpdCBjaGVja291dCwgb3IgTm9uZQorICAgIGlmIGl0
IGNhbm5vdCBiZSBkZXRlcm1pbmVkLgorCisgICAgIiIiCisgICAgc2NtX3N5c3RlbSA9IGRlZmF1
bHRfc2NtKCkKKyAgICBpZiBzY21fc3lzdGVtOgorICAgICAgICByZXR1cm4gc2NtX3N5c3RlbS5j
aGVja291dF9yb290CisgICAgcmV0dXJuIE5vbmUKKworCitkZWYgZGVmYXVsdF9zY20oKToKKyAg
ICAiIiJSZXR1cm4gdGhlIGRlZmF1bHQgU0NNIG9iamVjdCBhcyBkZXRlcm1pbmVkIGJ5IHRoZSBD
V0QgYW5kIHJ1bm5pbmcgY29kZS4KKworICAgIFJldHVybnMgdGhlIGRlZmF1bHQgU0NNIG9iamVj
dCBmb3IgdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3Rvcnk7IGlmIHRoZQorICAgIENXRCBpcyBu
b3QgaW4gYSBjaGVja291dCwgdGhlbiB3ZSBhdHRlbXB0IHRvIGZpZ3VyZSBvdXQgaWYgdGhlIFND
TSBtb2R1bGUKKyAgICBpdHNlbGYgaXMgcGFydCBvZiBhIGNoZWNrb3V0LCBhbmQgcmV0dXJuIHRo
YXQgb25lLiBJZiBuZWl0aGVyIGlzIHBhcnQgb2YKKyAgICBhIGNoZWNrb3V0LCBOb25lIGlzIHJl
dHVybmVkLgorCisgICAgIiIiCisgICAgY3dkID0gb3MuZ2V0Y3dkKCkKKyAgICBzY21fc3lzdGVt
ID0gZGV0ZWN0X3NjbV9zeXN0ZW0oY3dkKQorICAgIGlmIG5vdCBzY21fc3lzdGVtOgorICAgICAg
ICBzY3JpcHRfZGlyZWN0b3J5ID0gb3MucGF0aC5hYnNwYXRoKHN5cy5wYXRoWzBdKQorICAgICAg
ICBzY21fc3lzdGVtID0gZGV0ZWN0X3NjbV9zeXN0ZW0oc2NyaXB0X2RpcmVjdG9yeSkKKyAgICAg
ICAgaWYgc2NtX3N5c3RlbToKKyAgICAgICAgICAgIGxvZygiVGhlIGN1cnJlbnQgZGlyZWN0b3J5
ICglcykgaXMgbm90IGEgV2ViS2l0IGNoZWNrb3V0LCB1c2luZyAlcyIgJSAoY3dkLCBzY21fc3lz
dGVtLmNoZWNrb3V0X3Jvb3QpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZXJyb3IoIkZB
VEFMOiBGYWlsZWQgdG8gZGV0ZXJtaW5lIHRoZSBTQ00gc3lzdGVtIGZvciBlaXRoZXIgJXMgb3Ig
JXMiICUgKGN3ZCwgc2NyaXB0X2RpcmVjdG9yeSkpCisgICAgcmV0dXJuIHNjbV9zeXN0ZW0KKwor
CiBkZWYgZGV0ZWN0X3NjbV9zeXN0ZW0ocGF0aCk6CiAgICAgYWJzb2x1dGVfcGF0aCA9IG9zLnBh
dGguYWJzcGF0aChwYXRoKQogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jaGVja291dC9zY21fdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9zY21fdW5pdHRlc3QucHkKaW5kZXggODUyZjgzOGU1
YTlmMTZmZDI2ZTIxYjcxZTM3YmZhNjEzZDNkYWVhYi4uMTgyZGVlNTM2ZDNkODFkOTMzYjVmODA5
MmM4YTFlZmZkYWRiMGQ0ZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vY2hlY2tvdXQvc2NtX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L3NjbV91bml0dGVzdC5weQpAQCAtMzYsNiArMzYs
NyBAQCBpbXBvcnQgb3MKIGltcG9ydCBvcy5wYXRoCiBpbXBvcnQgcmUKIGltcG9ydCBzdGF0Citp
bXBvcnQgc3lzCiBpbXBvcnQgc3VicHJvY2VzcwogaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgdW5p
dHRlc3QKQEAgLTQ0LDcgKzQ1LDcgQEAgaW1wb3J0IHNodXRpbAogCiBmcm9tIGRhdGV0aW1lIGlt
cG9ydCBkYXRlCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5hcGkgaW1wb3J0IENoZWNr
b3V0Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IGRldGVjdF9zY21f
c3lzdGVtLCBTQ00sIFNWTiwgQ2hlY2tvdXROZWVkc1VwZGF0ZSwgY29tbWl0X2Vycm9yX2hhbmRs
ZXIsIEF1dGhlbnRpY2F0aW9uRXJyb3IsIEFtYmlndW91c0NvbW1pdEVycm9yCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5jaGVja291dC5zY20gaW1wb3J0IGRldGVjdF9zY21fc3lzdGVtLCBTQ00sIFNW
TiwgQ2hlY2tvdXROZWVkc1VwZGF0ZSwgY29tbWl0X2Vycm9yX2hhbmRsZXIsIEF1dGhlbnRpY2F0
aW9uRXJyb3IsIEFtYmlndW91c0NvbW1pdEVycm9yLCBmaW5kX2NoZWNrb3V0X3Jvb3QsIGRlZmF1
bHRfc2NtCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29t
bWl0dGVyICAjIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgYmUgbmVlZGVkCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IEF0dGFjaG1lbnQgIyBGSVhNRTogVGhpcyBzaG91
bGQgbm90IGJlIG5lZWRlZAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBp
bXBvcnQgRXhlY3V0aXZlLCBydW5fY29tbWFuZCwgU2NyaXB0RXJyb3IKQEAgLTE3NCw2ICsxNzUs
NjUgQEAgY2xhc3MgU1ZOVGVzdFJlcG9zaXRvcnk6CiAgICAgICAgICMgQ2hhbmdlIGJhY2sgdG8g
YSB2YWxpZCBkaXJlY3Rvcnkgc28gdGhhdCBsYXRlciBjYWxscyB0byBvcy5nZXRjd2QoKSBkbyBu
b3QgZmFpbC4KICAgICAgICAgb3MuY2hkaXIoZGV0ZWN0X3NjbV9zeXN0ZW0ob3MucGF0aC5kaXJu
YW1lKF9fZmlsZV9fKSkuY2hlY2tvdXRfcm9vdCkKIAorCitjbGFzcyBTdGFuZGFsb25lRnVuY3Rp
b25UZXN0cyh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAgIiIiVGhpcyBjbGFzcyB0ZXN0cyBhbnkg
c3RhbmRhbG9uZS90b3AtbGV2ZWwgZnVuY3Rpb25zIGluIHRoZSBwYWNrYWdlLiIiIgorICAgIGRl
ZiBzZXRVcChzZWxmKToKKyAgICAgICAgc2VsZi5vcmlnX2N3ZCA9IG9zLnBhdGguYWJzcGF0aChv
cy5nZXRjd2QoKSkKKyAgICAgICAgc2VsZi5vcmlnX2Fic3BhdGggPSBvcy5wYXRoLmFic3BhdGgK
KyAgICAgICAgc2VsZi5vcmlnX3N0ZGVyciA9IHN5cy5zdGRlcnIKKworICAgIGRlZiB0ZWFyRG93
bihzZWxmKToKKyAgICAgICAgb3MuY2hkaXIoc2VsZi5vcmlnX2N3ZCkKKyAgICAgICAgb3MucGF0
aC5hYnNwYXRoID0gc2VsZi5vcmlnX2Fic3BhdGgKKyAgICAgICAgc3lzLnN0ZGVyciA9IHNlbGYu
b3JpZ19zdGRlcnIKKworICAgIGRlZiB0ZXN0X2ZpbmRfY2hlY2tvdXRfcm9vdChzZWxmKToKKyAg
ICAgICAgIyBUZXN0IGZyb20gaW5zaWRlIHRoZSB0cmVlLgorICAgICAgICBvcy5jaGRpcihzeXMu
cGF0aFswXSkKKyAgICAgICAgZGlyID0gZmluZF9jaGVja291dF9yb290KCkKKyAgICAgICAgc2Vs
Zi5hc3NlcnROb3RFcXVhbChkaXIsIE5vbmUpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShvcy5w
YXRoLmV4aXN0cyhkaXIpKQorCisgICAgICAgICMgVGVzdCBmcm9tIG91dHNpZGUgdGhlIHRyZWUu
CisgICAgICAgICMgTW9jayBvdXQgc3RkZXJyIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGVycm9yIGxv
Z2dpbmcuCisgICAgICAgIHN5cy5zdGRlcnIgPSBvcGVuKG9zLmRldm51bGwsICdhJykKKyAgICAg
ICAgb3MuY2hkaXIob3MucGF0aC5leHBhbmR1c2VyKCJ+IikpCisgICAgICAgIGRpciA9IGZpbmRf
Y2hlY2tvdXRfcm9vdCgpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZGlyLCBOb25lKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUob3MucGF0aC5leGlzdHMoZGlyKSkKKyAgICAgICAgc3lz
LnN0ZGVyciA9IHNlbGYub3JpZ19zdGRlcnIKKworICAgICAgICAjIE1vY2sgb3V0IGFic3BhdGgo
KSB0byB0ZXN0IGJlaW5nIG5vdCBpbiBhIGNoZWNrb3V0IGF0IGFsbC4KKyAgICAgICAgIyBNb2Nr
IG91dCBzdGRlcnIgdG8gYXZvaWQgdW5uZWNlc3NhcnkgZXJyb3IgbG9nZ2luZy4KKyAgICAgICAg
b3MucGF0aC5hYnNwYXRoID0gbGFtYmRhIHg6ICIvIgorICAgICAgICBzeXMuc3RkZXJyID0gb3Bl
bihvcy5kZXZudWxsLCAnYScpCisgICAgICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFN5c3RlbUV4aXQs
IGZpbmRfY2hlY2tvdXRfcm9vdCkKKyAgICAgICAgb3MucGF0aC5hYnNwYXRoID0gc2VsZi5vcmln
X2Fic3BhdGgKKyAgICAgICAgc3lzLnN0ZGVyciA9IHNlbGYub3JpZ19zdGRlcnIKKworICAgIGRl
ZiB0ZXN0X2RlZmF1bHRfc2NtKHNlbGYpOgorICAgICAgICAjIFRlc3QgZnJvbSBpbnNpZGUgdGhl
IHRyZWUuCisgICAgICAgIG9zLmNoZGlyKHN5cy5wYXRoWzBdKQorICAgICAgICBzY20gPSBkZWZh
dWx0X3NjbSgpCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoc2NtLCBOb25lKQorCisgICAg
ICAgICMgVGVzdCBmcm9tIG91dHNpZGUgdGhlIHRyZWUuCisgICAgICAgICMgTW9jayBvdXQgc3Rk
ZXJyIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGVycm9yIGxvZ2dpbmcuCisgICAgICAgIHN5cy5zdGRl
cnIgPSBvcGVuKG9zLmRldm51bGwsICdhJykKKyAgICAgICAgb3MuY2hkaXIob3MucGF0aC5leHBh
bmR1c2VyKCJ+IikpCisgICAgICAgIGRpciA9IGZpbmRfY2hlY2tvdXRfcm9vdCgpCisgICAgICAg
IHNlbGYuYXNzZXJ0Tm90RXF1YWwoZGlyLCBOb25lKQorICAgICAgICBzeXMuc3RkZXJyID0gc2Vs
Zi5vcmlnX3N0ZGVycgorCisgICAgICAgICMgTW9jayBvdXQgYWJzcGF0aCgpIHRvIHRlc3QgYmVp
bmcgbm90IGluIGEgY2hlY2tvdXQgYXQgYWxsLgorICAgICAgICAjIE1vY2sgb3V0IHN0ZGVyciB0
byBhdm9pZCB1bm5lY2Vzc2FyeSBlcnJvciBsb2dnaW5nLgorICAgICAgICBvcy5wYXRoLmFic3Bh
dGggPSBsYW1iZGEgeDogIi8iCisgICAgICAgIHN5cy5zdGRlcnIgPSBvcGVuKG9zLmRldm51bGws
ICdhJykKKyAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoU3lzdGVtRXhpdCwgZGVmYXVsdF9zY20p
CisgICAgICAgIG9zLnBhdGguYWJzcGF0aCA9IHNlbGYub3JpZ19hYnNwYXRoCisgICAgICAgIHN5
cy5zdGRlcnIgPSBzZWxmLm9yaWdfc3RkZXJyCisKICMgRm9yIHRlc3RpbmcgdGhlIFNDTSBiYXNl
Y2xhc3MgZGlyZWN0bHkuCiBjbGFzcyBTQ01DbGFzc1Rlc3RzKHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICBkZWYgc2V0VXAoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9kZWR1cGxpY2F0ZV90ZXN0cy5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CmluZGV4IDdh
OWNkYWUwNDdlM2ZhOWZhNTg2YWUzM2FmYjNlODVhYjY0MzJkZGEuLmJiNjNmNWU2NjkzMGY4OTBk
NzM5NDU2ZDQyYTgzMzUwN2U0YTQ2ODEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVwbGljYXRlX3Rlc3RzLnB5CkBA
IC00MSw3ICs0MSw2IEBAIGltcG9ydCB3ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3V0aWxzIGFz
IGxvZ3V0aWxzCiBpbXBvcnQgd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQuZmFjdG9yeSBhcyBw
b3J0X2ZhY3RvcnkKIAogX2xvZyA9IGxvZ3V0aWxzLmdldF9sb2dnZXIoX19maWxlX18pCi1sb2d1
dGlscy5jb25maWd1cmVfbG9nZ2luZygpCiAKIF9CQVNFX1BMQVRGT1JNID0gJ2Jhc2UnCiAKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2RlZHVw
bGljYXRlX3Rlc3RzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKaW5kZXggODc4MzMxYTc3
ZjQ0ODhkZThhZjJkNWE4YmZhM2U5ZDQxYjlkYTg0Zi4uNjZkZGEzMmEwNzg2YmVkZjA0M2RkNGRk
MDg0MjlhYjE5ZmJkMDI4NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5pdHRlc3QucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvZGVkdXBsaWNhdGVfdGVzdHNfdW5p
dHRlc3QucHkKQEAgLTI3LDYgKzI3LDcgQEAKIGltcG9ydCBkZWR1cGxpY2F0ZV90ZXN0cwogaW1w
b3J0IG9zCiBpbXBvcnQgdW5pdHRlc3QKK2ltcG9ydCB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQu
c2NtIGFzIHNjbQogCiAKIGNsYXNzIE1vY2tFeGVjdXRpdmUob2JqZWN0KToKQEAgLTUxLDYgKzUy
LDEzIEBAIGNsYXNzIExpc3REdXBsaWNhdGVzVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAg
ICAgIE1vY2tFeGVjdXRpdmUubGFzdF9ydW5fY29tbWFuZCA9IFtdCiAgICAgICAgIE1vY2tFeGVj
dXRpdmUucmVzcG9uc2UgPSAnJwogICAgICAgICBkZWR1cGxpY2F0ZV90ZXN0cy5leGVjdXRpdmUg
PSBNb2NrRXhlY3V0aXZlCisgICAgICAgIHNlbGYuX29yaWdpbmFsX2N3ZCA9IG9zLmdldGN3ZCgp
CisgICAgICAgIGNoZWNrb3V0X3Jvb3QgPSBzY20uZmluZF9jaGVja291dF9yb290KCkKKyAgICAg
ICAgc2VsZi5hc3NlcnROb3RFcXVhbChjaGVja291dF9yb290LCBOb25lKQorICAgICAgICBvcy5j
aGRpcihjaGVja291dF9yb290KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBv
cy5jaGRpcihzZWxmLl9vcmlnaW5hbF9jd2QpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9naXRfb3V0
cHV0KHNlbGYpOgogICAgICAgICBnaXRfb3V0cHV0ID0gKApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5IGIvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC90ZXN0LnB5CmluZGV4IDZlZWY1
NGU5NjcwOTFjYTY0YTE4N2ZjZWZhNmJiNWMzNmM0NDcwNjMuLjljOWFiMGFlMjM1NTMyZjVhNzlh
NDVlZGE3MDYwYWJkYzAzYWM3NGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvdGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L3Rlc3QucHkKQEAgLTEyNCw2ICsxMjQsOSBAQCBj
bGFzcyBUZXN0UG9ydChiYXNlLlBvcnQpOgogICAgIGRlZiB0ZXN0X3BsYXRmb3JtX25hbWVzKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZXN0X2Jhc2VfcGxhdGZvcm1fbmFtZXMoKQogCisg
ICAgZGVmIHRlc3RfcGxhdGZvcm1fbmFtZV90b19uYW1lKHNlbGYsIHRlc3RfcGxhdGZvcm1fbmFt
ZSk6CisgICAgICAgIHJldHVybiB0ZXN0X3BsYXRmb3JtX25hbWUKKwogICAgIGRlZiB2ZXJzaW9u
KCk6CiAgICAgICAgIHJldHVybiAnJwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0cy5w
eSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVf
Y2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CmluZGV4IGZhNGRmOWI2NjgwOWNhYTIyNmU0NDJlOWNh
MTcwZTViMTZmNWNjNDQuLjkyZjEwMzI1ODI0NjI2OGU1NGNmYTAyNTE3NzdlNmRiNGYwNDAzOWUg
MTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3Jl
YmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3JlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3Rz
LnB5CkBAIC01OSw3ICs1OSw2IEBAIGltcG9ydCB3ZWJicm93c2VyCiBpbXBvcnQgemlwZmlsZQog
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBydW5fY29tbWFu
ZCwgU2NyaXB0RXJyb3IKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQg
ZGV0ZWN0X3NjbV9zeXN0ZW0KIGltcG9ydCB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuc2NtIGFz
IHNjbQogCiBpbXBvcnQgcG9ydApAQCAtMjQwLDcgKzIzOSw3IEBAIGNsYXNzIFJlYmFzZWxpbmVy
KG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbGYuX3BsYXRmb3JtLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBGYWxzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgRmFsc2UpCi0gICAgICAgIHNlbGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKG9zLmdl
dGN3ZCgpKQorICAgICAgICBzZWxmLl9zY20gPSBzY20uZGVmYXVsdF9zY20oKQogCiAgICAgZGVm
IHJ1bihzZWxmLCBiYWNrdXApOgogICAgICAgICAiIiJSdW4gcmViYXNlbGluZSBwcm9jZXNzLiIi
IgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cmViYXNlbGluZV9jaHJvbWl1bV93ZWJraXRfdGVzdHNfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtp
dF90ZXN0c191bml0dGVzdC5weQppbmRleCBmYTAzMjM4YTU1MDlkMTBkZmVjMDUyNDZmYmNjMTcw
OTYzZTQ1MzllLi4xMjFiNjRlYWRlMzVjN2I3ZjY4NDNmMmMyMjQ5ODJkMWNlYzcyMzE0IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2Vs
aW5lX2Nocm9taXVtX3dlYmtpdF90ZXN0c191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9yZWJhc2VsaW5lX2Nocm9taXVtX3dlYmtpdF90
ZXN0c191bml0dGVzdC5weQpAQCAtODQsNSArODQsMTkgQEAgY2xhc3MgVGVzdEdldEhvc3RQb3J0
T2JqZWN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcG9ydC5nZXQgPSBvbGRfZ2V0CiAK
IAorY2xhc3MgVGVzdFJlYmFzZWxpbmVyKHVuaXR0ZXN0LlRlc3RDYXNlKToKKworICAgIGRlZiB0
ZXN0X25vb3Aoc2VsZik6CisgICAgICAgICMgdGhpcyBtZXRob2QgdGVzdHMgdGhhdCB3YXMgY2Fu
IGF0IGxlYXN0IGluc3RhbnRpYXRlIGFuIG9iamVjdCwgZXZlbgorICAgICAgICAjIGlmIHRoZXJl
IGlzIG5vdGhpbmcgdG8gZG8uCisgICAgICAgIG9wdGlvbnMgPSBNb2NrT3B0aW9ucygpCisgICAg
ICAgIGhvc3RfcG9ydF9vYmogPSBwb3J0LmdldCgndGVzdCcsIG9wdGlvbnMpCisgICAgICAgIHRh
cmdldF9vcHRpb25zID0gb3B0aW9ucworICAgICAgICB0YXJnZXRfcG9ydF9vYmogPSBwb3J0Lmdl
dCgndGVzdCcsIHRhcmdldF9vcHRpb25zKQorICAgICAgICBwbGF0Zm9ybSA9ICd0ZXN0JworICAg
ICAgICByZWJhc2VsaW5lciA9IHJlYmFzZWxpbmVfY2hyb21pdW1fd2Via2l0X3Rlc3RzLlJlYmFz
ZWxpbmVyKAorICAgICAgICAgICAgaG9zdF9wb3J0X29iaiwgdGFyZ2V0X3BvcnRfb2JqLCBwbGF0
Zm9ybSwgb3B0aW9ucykKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChyZWJhc2VsaW5lciwg
Tm9uZSkKKwogaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tYWluLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21haW4ucHkKaW5kZXggMWY0MzE0NTRl
OGRmZTYyOTBhOGJlNThiYWZjYzhiZDk2MmIyZWE4Mi4uMGRkNTAxNzJmODkwZjYxZDA4MTQ0Zjc2
NDZjMTY2YjkwMzcyNTMzNiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL21haW4ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21h
aW4ucHkKQEAgLTMzLDcgKzMzLDcgQEAgaW1wb3J0IG9zCiBpbXBvcnQgdGhyZWFkaW5nCiAKIGZy
b20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmFwaSBpbXBvcnQgQ2hlY2tvdXQKLWZyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQgZGV0ZWN0X3NjbV9zeXN0ZW0KK2Zyb20g
d2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBpbXBvcnQgZGVmYXVsdF9zY20KIGZyb20gd2Vi
a2l0cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQnVnemlsbGEKIGZyb20gd2Via2l0cHku
Y29tbW9uLm5ldC5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QKIGZyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5yaWV0dmVsZCBpbXBvcnQgUmlldHZlbGQKQEAgLTc5LDE4ICs3OSw4IEBAIGNsYXNzIFdl
YktpdFBhdGNoKE11bHRpQ29tbWFuZFRvb2wpOgogCiAgICAgZGVmIHNjbShzZWxmKToKICAgICAg
ICAgIyBMYXppbHkgaW5pdGlhbGl6ZSBTQ00gdG8gbm90IGVycm9yLW91dCBiZWZvcmUgY29tbWFu
ZCBsaW5lIHBhcnNpbmcgKG9yIHdoZW4gcnVubmluZyBub24tc2NtIGNvbW1hbmRzKS4KLSAgICAg
ICAgb3JpZ2luYWxfY3dkID0gb3MucGF0aC5hYnNwYXRoKCIuIikKICAgICAgICAgaWYgbm90IHNl
bGYuX3NjbToKLSAgICAgICAgICAgIHNlbGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKG9yaWdp
bmFsX2N3ZCkKLQotICAgICAgICBpZiBub3Qgc2VsZi5fc2NtOgotICAgICAgICAgICAgc2NyaXB0
X2RpcmVjdG9yeSA9IG9zLnBhdGguYWJzcGF0aChzeXMucGF0aFswXSkKLSAgICAgICAgICAgIHNl
bGYuX3NjbSA9IGRldGVjdF9zY21fc3lzdGVtKHNjcmlwdF9kaXJlY3RvcnkpCi0gICAgICAgICAg
ICBpZiBzZWxmLl9zY206Ci0gICAgICAgICAgICAgICAgbG9nKCJUaGUgY3VycmVudCBkaXJlY3Rv
cnkgKCVzKSBpcyBub3QgYSBXZWJLaXQgY2hlY2tvdXQsIHVzaW5nICVzIiAlIChvcmlnaW5hbF9j
d2QsIHNlbGYuX3NjbS5jaGVja291dF9yb290KSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg
ICAgICAgICAgZXJyb3IoIkZBVEFMOiBGYWlsZWQgdG8gZGV0ZXJtaW5lIHRoZSBTQ00gc3lzdGVt
IGZvciBlaXRoZXIgJXMgb3IgJXMiICUgKG9yaWdpbmFsX2N3ZCwgc2NyaXB0X2RpcmVjdG9yeSkp
Ci0KKyAgICAgICAgICAgIHNlbGYuX3NjbSA9IGRlZmF1bHRfc2NtKCkKICAgICAgICAgcmV0dXJu
IHNlbGYuX3NjbQogCiAgICAgZGVmIGNoZWNrb3V0KHNlbGYpOgo=
</data>
<flag name="review"
          id="53122"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="53137"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>