<?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>42339</bug_id>
          
          <creation_ts>2010-07-14 23:19:58 -0700</creation_ts>
          <short_desc>WebKit needs a rebaselining tool (finally)</short_desc>
          <delta_ts>2010-07-15 00:02:11 -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="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>jamesr</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251689</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-14 23:19:58 -0700</bug_when>
    <thetext>WebKit needs a rebaselining tool (finally)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251690</commentid>
    <comment_count>1</comment_count>
      <attachid>61610</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-14 23:21:36 -0700</bug_when>
    <thetext>Created attachment 61610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251691</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-14 23:23:05 -0700</bug_when>
    <thetext>This is a very rough approximation.  But it works. :)

I looked at bending rebaseline-chromium-webkit-tests to my will, but that effort failed.

This code could be cleaner.  Some of this code needs to be moved to shared locations.

For now just posting this for others enjoyment.  I will look at cleaning it up for landing later this week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251693</commentid>
    <comment_count>3</comment_count>
      <attachid>61610</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-14 23:28:49 -0700</bug_when>
    <thetext>Comment on attachment 61610
Patch

WebKitTools/Scripts/webkitpy/tool/commands/rebaseline.py:43
 +      help_text = &quot;Foo&quot;
Should have some real text here.

WebKitTools/Scripts/webkitpy/tool/commands/rebaseline.py:76
 +          chosen_name = User.prompt_with_list(&quot;Which builder to pull results from:&quot;, builder_choices)
self.tool.user for testability.

WebKitTools/Scripts/webkitpy/tool/commands/rebaseline.py:83
 +          (downloaded_file, headers) = urllib.urlretrieve(remote_file)
Does this throw exceptions?  Maybe add a FIXME?

WebKitTools/Scripts/webkitpy/tool/commands/rebaseline.py:84
 +          shutil.move(downloaded_file, local_file)
We should svn add the file in case it&apos;s new.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251694</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-14 23:29:19 -0700</bug_when>
    <thetext>I think we could land it as a first draft if we do those things.  Need iteration, of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251706</commentid>
    <comment_count>5</comment_count>
      <attachid>61612</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-14 23:54:54 -0700</bug_when>
    <thetext>Created attachment 61612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251708</commentid>
    <comment_count>6</comment_count>
      <attachid>61612</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-07-14 23:58:28 -0700</bug_when>
    <thetext>Comment on attachment 61612
Patch

Ok.  This is a good start.  We&apos;ll need to refactor this into some of the lower layers at some point.

WebKitTools/Scripts/webkitpy/tool/commands/rebaseline.py:97
 +          actual_path = test_base + &quot;-actual.txt&quot;
This knowledge probably shouldn&apos;t be here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251710</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-07-15 00:02:11 -0700</bug_when>
    <thetext>Committed r63410: &lt;http://trac.webkit.org/changeset/63410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61610</attachid>
            <date>2010-07-14 23:21:36 -0700</date>
            <delta_ts>2010-07-14 23:54:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42339-20100714232135.patch</filename>
            <type>text/plain</type>
            <size>7812</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4YzZiNWM1NTI5MDAwZDc2OTU0MmVmZGQzNDNhMzIxZjFhYzdiNTZiLi4wY2YxYjc5
YmU4Y2E0NDNlYzVjZjUzYTYyNzg4MDU4ZTQ0MWU0ZDBhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDctMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdCBuZWVkcyBhIHJlYmFz
ZWxpbmluZyB0b29sIChmaW5hbGx5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIzMzkKKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL3BvcnQvYmFzZS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29t
bWFuZHMvX19pbml0X18ucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXJpZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3JlYmFzZWxpbmUucHk6IEFkZGVkLgorCiAyMDEwLTA3LTE0ICBNYWNpZWogU3RhY2hvd2lhayAg
PG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9iYXNl
LnB5CmluZGV4IGUxYjIzYWNiOGQ2ODFmOTRjOGViYzU0ZDk4ZWIyNzE2YTBhYjgyZjUuLjVkNDNi
MmE2NmVjODVmNmM4ZjA0NmZkMmU3ZjcwYTZjMWIxNDQ4YjggMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvYmFzZS5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKQEAgLTQx
MCw2ICs0MTAsNyBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICIiIlJlbGF0aXZlIHVu
aXgtc3R5bGUgcGF0aCBmb3IgYSBmaWxlbmFtZSB1bmRlciB0aGUgTGF5b3V0VGVzdHMKICAgICAg
ICAgZGlyZWN0b3J5LiBGaWxlbmFtZXMgb3V0c2lkZSB0aGUgTGF5b3V0VGVzdHMgZGlyZWN0b3J5
IHNob3VsZCByYWlzZQogICAgICAgICBhbiBlcnJvci4iIiIKKyAgICAgICAgYXNzZXJ0KGZpbGVu
YW1lLnN0YXJ0c3dpdGgoc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCkpKQogICAgICAgICByZXR1cm4g
ZmlsZW5hbWVbbGVuKHNlbGYubGF5b3V0X3Rlc3RzX2RpcigpKSArIDE6XQogCiAgICAgZGVmIHJl
c3VsdHNfZGlyZWN0b3J5KHNlbGYpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL19faW5pdF9fLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL19faW5pdF9fLnB5CmluZGV4IDcxYzM3MTkyMzAyMjBlYzE5
YWExZjExYzhmYWZlOGI4YTI3ZGNhZjUuLjliZGVjOGY1OTdlMTc2MzYzNDRhODE4M2IxMDNhMTUw
YmY4YzlkZTMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9fX2luaXRfXy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvX19pbml0X18ucHkKQEAgLTEsNCArMSw1IEBACiAjIFJlcXVpcmVkIGZvciBQ
eXRob24gdG8gc2VhcmNoIHRoaXMgZGlyZWN0b3J5IGZvciBtb2R1bGUgZmlsZXMKIAogZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLnByZXR0eWRpZmYgaW1wb3J0IFByZXR0eURpZmYKK2Zyb20g
d2Via2l0cHkudG9vbC5jb21tYW5kcy5yZWJhc2VsaW5lIGltcG9ydCBSZWJhc2VsaW5lCiAjIEZJ
WE1FOiBBZGQgdGhlIHJlc3Qgb2YgdGhlIGNvbW1hbmRzIGhlcmUuCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVlcmllcy5weSBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzLnB5CmluZGV4IDY0
NTA2MGM0Y2QzNjc1YTg1M2JlMGNmYjJkMmUzMmY2NWIzZDBmYzUuLjkxY2U1ZTk2ODYwY2M4NDZl
MTIwNzE0YjQ4ZDg4NDYzYWRjZjZmYWMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzLnB5CkBAIC0yNzMsNiArMjczLDcgQEAg
Y2xhc3MgRmFpbHVyZVJlYXNvbihBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgICAg
ICAgICByZXR1cm4gMQogICAgICAgICByZXR1cm4gc2VsZi5fZXhwbGFpbl9mYWlsdXJlc19mb3Jf
YnVpbGRlcihidWlsZGVyLCBzdGFydF9yZXZpc2lvbj1pbnQoc3RhcnRfcmV2aXNpb24pKQogCisK
IGNsYXNzIFRyZWVTdGF0dXMoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgogICAgIG5hbWUg
PSAidHJlZS1zdGF0dXMiCiAgICAgaGVscF90ZXh0ID0gIlByaW50IHRoZSBzdGF0dXMgb2YgdGhl
ICVzIGJ1aWxkYm90cyIgJSBCdWlsZEJvdC5kZWZhdWx0X2hvc3QKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9yZWJhc2VsaW5lLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjExZjIzMWY5MGU1YjNjYmFkNjI3MTRlYWJiZTJiNmNiMjQ4NmI4ZgotLS0gL2Rl
di9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9y
ZWJhc2VsaW5lLnB5CkBAIC0wLDAgKzEsMTAxIEBACisjIENvcHlyaWdodCAoYykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1l
IG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisj
CisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0
IG9zLnBhdGgKK2ltcG9ydCByZQoraW1wb3J0IHNodXRpbAoraW1wb3J0IHVybGxpYgorCitmcm9t
IHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVpbGRib3QgaW1wb3J0IEJ1aWxkQm90LCBMYXlvdXRUZXN0
UmVzdWx0cworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKK2Zy
b20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLnBvcnQgaW1wb3J0IGZhY3RvcnkKK2Zyb20gd2Via2l0
cHkudG9vbC5ncmFtbWFyIGltcG9ydCBwbHVyYWxpemUKK2Zyb20gd2Via2l0cHkudG9vbC5tdWx0
aWNvbW1hbmR0b29sIGltcG9ydCBBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZAorCisKK2NsYXNz
IFJlYmFzZWxpbmUoQWJzdHJhY3REZWNsYXJhdGl2ZUNvbW1hbmQpOgorICAgIG5hbWUgPSAicmVi
YXNlbGluZSIKKyAgICBoZWxwX3RleHQgPSAiRm9vIgorCisgICAgX2J1aWxkZXJfbmFtZV90b19w
b3J0X25hbWUgPSB7CisgICAgICAgIHIiU25vd0xlb3BhcmQiOiAibWFjIiwKKyAgICAgICAgciJM
ZW9wYXJkIjogIm1hYyIsCisgICAgICAgIHIiVGlnZXIiOiAibWFjIiwKKyAgICAgICAgciJXaW5k
b3dzIjogIndpbiIsCisgICAgICAgIHIiR1RLIjogImd0ayIsCisgICAgICAgIHIiUXQiOiAicXQi
LAorICAgICAgICByIkNocm9taXVtIE1hYyI6ICJjaHJvbWl1bS1tYWMiLAorICAgICAgICByIkNo
cm9taXVtIExpbnV4IjogImNocm9taXVtLWxpbnV4IiwKKyAgICAgICAgciJDaHJvbWl1bSBXaW4i
OiAiY2hyb21pdW0td2luIiwKKyAgICB9CisKKyAgICBkZWYgX3BvcnRfbmFtZV9mb3JfYnVpbGRl
cl9uYW1lKHNlbGYsIGJ1aWxkZXJfbmFtZSk6CisgICAgICAgIGZvciByZWdleHAsIHBvcnRfbmFt
ZSBpbiBzZWxmLl9idWlsZGVyX25hbWVfdG9fcG9ydF9uYW1lLml0ZW1zKCk6CisgICAgICAgICAg
ICBpZiByZS5tYXRjaChyZWdleHAsIGJ1aWxkZXJfbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIHBvcnRfbmFtZQorCisgICAgIyBGSVhNRTogSSdtIG5vdCBzdXJlIHdoZXJlIHRoaXMgbG9n
aWMgc2hvdWxkIGdvIGluIHRoZSBlbmQuCisgICAgIyBGb3Igbm93IGl0J3MgaGVyZSwgdW50aWwg
d2UgaGF2ZSBhIHNlY29uZCBuZWVkIGZvciBpdC4KKyAgICBkZWYgX3BvcnRfZm9yX2J1aWxkZXIo
c2VsZiwgYnVpbGRlcl9uYW1lKToKKyAgICAgICAgcG9ydF9uYW1lID0gc2VsZi5fcG9ydF9uYW1l
X2Zvcl9idWlsZGVyX25hbWUoYnVpbGRlcl9uYW1lKQorICAgICAgICBhc3NlcnQocG9ydF9uYW1l
KSAgIyBOZWVkIHRvIHVwZGF0ZSBfYnVpbGRlcl9uYW1lX3RvX3BvcnRfbmFtZQorICAgICAgICBw
b3J0ID0gZmFjdG9yeS5nZXQocG9ydF9uYW1lKQorICAgICAgICBhc3NlcnQocG9ydCkgICMgTmVl
ZCB0byB1cGRhdGUgX2J1aWxkZXJfbmFtZV90b19wb3J0X25hbWUKKyAgICAgICAgcmV0dXJuIHBv
cnQKKworICAgIGRlZiBfYnVpbGRlcl90b19wdWxsX2Zyb20oc2VsZik6CisgICAgICAgIGJ1aWxk
ZXJfc3RhdHVzZXMgPSBzZWxmLnRvb2wuYnVpbGRib3QuYnVpbGRlcl9zdGF0dXNlcygpCisgICAg
ICAgIHJlZF9zdGF0dXNlcyA9IFtzdGF0dXMgZm9yIHN0YXR1cyBpbiBidWlsZGVyX3N0YXR1c2Vz
IGlmIG5vdCBzdGF0dXNbImlzX2dyZWVuIl1dCisgICAgICAgIHByaW50ICIlcyBmYWlsaW5nIiAl
IChwbHVyYWxpemUoImJ1aWxkZXIiLCBsZW4ocmVkX3N0YXR1c2VzKSkpCisgICAgICAgIGJ1aWxk
ZXJfY2hvaWNlcyA9IFtzdGF0dXNbIm5hbWUiXSBmb3Igc3RhdHVzIGluIHJlZF9zdGF0dXNlc10K
KyAgICAgICAgY2hvc2VuX25hbWUgPSBVc2VyLnByb21wdF93aXRoX2xpc3QoIldoaWNoIGJ1aWxk
ZXIgdG8gcHVsbCByZXN1bHRzIGZyb206IiwgYnVpbGRlcl9jaG9pY2VzKQorICAgICAgICAjIEZJ
WE1FOiBwcm9tcHRfd2l0aF9saXN0IHNob3VsZCByZWFsbHkgdGFrZSBhIHNldCBvZiBvYmplY3Rz
IGFuZCBhIHNldCBvZiBuYW1lcyBhbmQgdGhlbiByZXR1cm4gdGhlIG9iamVjdC4KKyAgICAgICAg
Zm9yIHN0YXR1cyBpbiByZWRfc3RhdHVzZXM6CisgICAgICAgICAgICBpZiBzdGF0dXNbIm5hbWUi
XSA9PSBjaG9zZW5fbmFtZToKKyAgICAgICAgICAgICAgICByZXR1cm4gKHNlbGYudG9vbC5idWls
ZGJvdC5idWlsZGVyX3dpdGhfbmFtZShjaG9zZW5fbmFtZSksIHN0YXR1c1siYnVpbGRfbnVtYmVy
Il0pCisKKyAgICBkZWYgX3JlcGxhY2VfbG9jYWxfd2l0aF9yZW1vdGUoc2VsZiwgbG9jYWxfZmls
ZSwgcmVtb3RlX2ZpbGUpOgorICAgICAgICAoZG93bmxvYWRlZF9maWxlLCBoZWFkZXJzKSA9IHVy
bGxpYi51cmxyZXRyaWV2ZShyZW1vdGVfZmlsZSkKKyAgICAgICAgc2h1dGlsLm1vdmUoZG93bmxv
YWRlZF9maWxlLCBsb2NhbF9maWxlKQorCisgICAgZGVmIGV4ZWN1dGUoc2VsZiwgb3B0aW9ucywg
YXJncywgdG9vbCk6CisgICAgICAgIGJ1aWxkZXIsIGJ1aWxkX251bWJlciA9IHNlbGYuX2J1aWxk
ZXJfdG9fcHVsbF9mcm9tKCkKKyAgICAgICAgYnVpbGQgPSBidWlsZGVyLmJ1aWxkKGJ1aWxkX251
bWJlcikKKyAgICAgICAgcGFyc2VkX3Jlc3VsdHMgPSBidWlsZC5sYXlvdXRfdGVzdF9yZXN1bHRz
KCkucGFyc2VkX3Jlc3VsdHMoKQorICAgICAgICBmYWlsdXJlc19vbmx5ID0gcGFyc2VkX3Jlc3Vs
dHNbTGF5b3V0VGVzdFJlc3VsdHMuZmFpbF9rZXldCisgICAgICAgIHJlc3VsdHNfdXJsID0gYnVp
bGQucmVzdWx0c191cmwoKQorICAgICAgICBwb3J0ID0gc2VsZi5fcG9ydF9mb3JfYnVpbGRlcihi
dWlsZGVyLm5hbWUoKSkKKworICAgICAgICBmb3IgdGVzdCBpbiBmYWlsdXJlc19vbmx5OgorICAg
ICAgICAgICAgdGVzdF9iYXNlID0gb3MucGF0aC5zcGxpdGV4dCh0ZXN0KVswXQorICAgICAgICAg
ICAgYWN0dWFsX3BhdGggPSB0ZXN0X2Jhc2UgKyAiLWFjdHVhbC50eHQiCisgICAgICAgICAgICBh
Y3R1YWxfdXJsID0gcmVzdWx0c191cmwgKyAiLyIgKyBhY3R1YWxfcGF0aAorICAgICAgICAgICAg
YWJzb2x1dGVfcGF0aCA9IG9zLnBhdGguam9pbihwb3J0LmxheW91dF90ZXN0c19kaXIoKSwgdGVz
dCkKKyAgICAgICAgICAgIGV4cGVjdGVkX2ZpbGUgPSBwb3J0LmV4cGVjdGVkX2ZpbGVuYW1lKGFi
c29sdXRlX3BhdGgsICIudHh0IikKKyAgICAgICAgICAgIHByaW50IHRlc3QKKyAgICAgICAgICAg
IHNlbGYuX3JlcGxhY2VfbG9jYWxfd2l0aF9yZW1vdGUoZXhwZWN0ZWRfZmlsZSwgYWN0dWFsX3Vy
bCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61612</attachid>
            <date>2010-07-14 23:54:54 -0700</date>
            <delta_ts>2010-07-14 23:58:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42339-20100714235452.patch</filename>
            <type>text/plain</type>
            <size>11744</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA4YzZiNWM1NTI5MDAwZDc2OTU0MmVmZGQzNDNhMzIxZjFhYzdiNTZiLi4xMGM3MDBi
MzE2ODAzNTI1MWQ1MzY4ZTdjZTllYjlkNmE2ZThiZTc1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTAtMDctMTQgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdCBuZWVkcyBhIHJlYmFz
ZWxpbmluZyB0b29sIChmaW5hbGx5KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDIzMzkKKworICAgICAgICBUaGlzIGlzIGEgdmVyeSBiYXNpYyByZWJh
c2VsaW5pbmcgdG9vbC4gIEl0J3Mgbm90CisgICAgICAgIHF1aXRlIGFzIGZhbmN5IGFzIGNocm9t
aXVtJ3MgYXMgaXQgd2lsbCBvbmx5IGhhbmRsZQorICAgICAgICB1cGRhdGluZyBmYWlsaW5nIHJl
c3VsdHMuICBJdCBjYW5ub3QgeWV0IGhhbmRsZSBhZGRpbmcgbmV3CisgICAgICAgIHJlc3VsdHMs
IG9yIHVwZGF0aW5nIHJlc3VsdHMgd2hlcmUgdGhlIHJlc3VsdHMgc2hvdWxkIG5vdAorICAgICAg
ICByZXBsYWNlIGV4aXN0aW5nIHJlc3VsdHMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90
b29sL2NvbW1hbmRzL19faW5pdF9fLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWVyaWVzLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lLnB5OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weTogQWRkZWQuCisKIDIwMTAtMDct
MTQgIE1hY2llaiBTdGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9wb3J0L2Jhc2UucHkKaW5kZXggZTFiMjNhY2I4ZDY4MWY5NGM4ZWJjNTRk
OThlYjI3MTZhMGFiODJmNS4uZDIyNmU2NDhkYTgwNjEzYTFhZDVmMjA4NDM2M2NhOGI1MTUxMDJh
YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cG9ydC9iYXNlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvYmFzZS5weQpAQCAtNDEwLDYgKzQxMCw4IEBAIGNsYXNzIFBvcnQob2JqZWN0KToK
ICAgICAgICAgIiIiUmVsYXRpdmUgdW5peC1zdHlsZSBwYXRoIGZvciBhIGZpbGVuYW1lIHVuZGVy
IHRoZSBMYXlvdXRUZXN0cwogICAgICAgICBkaXJlY3RvcnkuIEZpbGVuYW1lcyBvdXRzaWRlIHRo
ZSBMYXlvdXRUZXN0cyBkaXJlY3Rvcnkgc2hvdWxkIHJhaXNlCiAgICAgICAgIGFuIGVycm9yLiIi
IgorICAgICAgICAjIEZJWE1FIFRoaXMgc2hvdWxkIGFzc2VydCgpIGhlcmUgYnV0IGNhbm5vdCBk
dWUgdG8gcHJpbnRpbmdfdW5pdHRlc3QuVGVzdHByaW50ZXIKKyAgICAgICAgIyBhc3NlcnQoZmls
ZW5hbWUuc3RhcnRzd2l0aChzZWxmLmxheW91dF90ZXN0c19kaXIoKSkpCiAgICAgICAgIHJldHVy
biBmaWxlbmFtZVtsZW4oc2VsZi5sYXlvdXRfdGVzdHNfZGlyKCkpICsgMTpdCiAKICAgICBkZWYg
cmVzdWx0c19kaXJlY3Rvcnkoc2VsZik6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvX19pbml0X18ucHkKaW5kZXggNzFjMzcxOTIzMDIyMGVj
MTlhYTFmMTFjOGZhZmU4YjhhMjdkY2FmNS4uOWJkZWM4ZjU5N2UxNzYzNjM0NGE4MTgzYjEwM2Ex
NTBiZjhjOWRlMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL19faW5pdF9fLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9jb21tYW5kcy9fX2luaXRfXy5weQpAQCAtMSw0ICsxLDUgQEAKICMgUmVxdWlyZWQgZm9y
IFB5dGhvbiB0byBzZWFyY2ggdGhpcyBkaXJlY3RvcnkgZm9yIG1vZHVsZSBmaWxlcwogCiBmcm9t
IHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucHJldHR5ZGlmZiBpbXBvcnQgUHJldHR5RGlmZgorZnJv
bSB3ZWJraXRweS50b29sLmNvbW1hbmRzLnJlYmFzZWxpbmUgaW1wb3J0IFJlYmFzZWxpbmUKICMg
RklYTUU6IEFkZCB0aGUgcmVzdCBvZiB0aGUgY29tbWFuZHMgaGVyZS4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWVyaWVzLnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkKaW5kZXgg
NjQ1MDYwYzRjZDM2NzVhODUzYmUwY2ZiMmQyZTMyZjY1YjNkMGZjNS4uOTFjZTVlOTY4NjBjYzg0
NmUxMjA3MTRiNDhkODg0NjNhZGNmNmZhYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXJpZXMucHkKQEAgLTI3Myw2ICsyNzMsNyBA
QCBjbGFzcyBGYWlsdXJlUmVhc29uKEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kKToKICAgICAg
ICAgICAgIHJldHVybiAxCiAgICAgICAgIHJldHVybiBzZWxmLl9leHBsYWluX2ZhaWx1cmVzX2Zv
cl9idWlsZGVyKGJ1aWxkZXIsIHN0YXJ0X3JldmlzaW9uPWludChzdGFydF9yZXZpc2lvbikpCiAK
KwogY2xhc3MgVHJlZVN0YXR1cyhBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CiAgICAgbmFt
ZSA9ICJ0cmVlLXN0YXR1cyIKICAgICBoZWxwX3RleHQgPSAiUHJpbnQgdGhlIHN0YXR1cyBvZiB0
aGUgJXMgYnVpbGRib3RzIiAlIEJ1aWxkQm90LmRlZmF1bHRfaG9zdApkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3JlYmFzZWxpbmUucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZS5weQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jNTdhNzM1MmIwODRkNWNiNTE2NzMzNjBhMjA3MzQ0YzRhNDY0Y2NjCi0tLSAv
ZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3JlYmFzZWxpbmUucHkKQEAgLTAsMCArMSwxMTMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHly
aWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBv
cnQgb3MucGF0aAoraW1wb3J0IHJlCitpbXBvcnQgc2h1dGlsCitpbXBvcnQgdXJsbGliCisKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm5ldC5idWlsZGJvdCBpbXBvcnQgQnVpbGRCb3QsIExheW91dFRl
c3RSZXN1bHRzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0udXNlciBpbXBvcnQgVXNlcgor
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMucG9ydCBpbXBvcnQgZmFjdG9yeQorZnJvbSB3ZWJr
aXRweS50b29sLmdyYW1tYXIgaW1wb3J0IHBsdXJhbGl6ZQorZnJvbSB3ZWJraXRweS50b29sLm11
bHRpY29tbWFuZHRvb2wgaW1wb3J0IEFic3RyYWN0RGVjbGFyYXRpdmVDb21tYW5kCisKKworIyBG
SVhNRTogSSdtIG5vdCBzdXJlIHdoZXJlIHRoaXMgbG9naWMgc2hvdWxkIGdvIGluIHRoZSBlbmQu
CisjIEZvciBub3cgaXQncyBoZXJlLCB1bnRpbCB3ZSBoYXZlIGEgc2Vjb25kIG5lZWQgZm9yIGl0
LgorY2xhc3MgQnVpbGRlclRvUG9ydChvYmplY3QpOgorICAgIF9idWlsZGVyX25hbWVfdG9fcG9y
dF9uYW1lID0geworICAgICAgICByIlNub3dMZW9wYXJkIjogIm1hYyIsCisgICAgICAgIHIiTGVv
cGFyZCI6ICJtYWMiLAorICAgICAgICByIlRpZ2VyIjogIm1hYyIsCisgICAgICAgIHIiV2luZG93
cyI6ICJ3aW4iLAorICAgICAgICByIkdUSyI6ICJndGsiLAorICAgICAgICByIlF0IjogInF0IiwK
KyAgICAgICAgciJDaHJvbWl1bSBNYWMiOiAiY2hyb21pdW0tbWFjIiwKKyAgICAgICAgciJDaHJv
bWl1bSBMaW51eCI6ICJjaHJvbWl1bS1saW51eCIsCisgICAgICAgIHIiQ2hyb21pdW0gV2luIjog
ImNocm9taXVtLXdpbiIsCisgICAgfQorCisgICAgZGVmIF9wb3J0X25hbWVfZm9yX2J1aWxkZXJf
bmFtZShzZWxmLCBidWlsZGVyX25hbWUpOgorICAgICAgICBmb3IgcmVnZXhwLCBwb3J0X25hbWUg
aW4gc2VsZi5fYnVpbGRlcl9uYW1lX3RvX3BvcnRfbmFtZS5pdGVtcygpOgorICAgICAgICAgICAg
aWYgcmUubWF0Y2gocmVnZXhwLCBidWlsZGVyX25hbWUpOgorICAgICAgICAgICAgICAgIHJldHVy
biBwb3J0X25hbWUKKworICAgIGRlZiBwb3J0X2Zvcl9idWlsZGVyKHNlbGYsIGJ1aWxkZXJfbmFt
ZSk6CisgICAgICAgIHBvcnRfbmFtZSA9IHNlbGYuX3BvcnRfbmFtZV9mb3JfYnVpbGRlcl9uYW1l
KGJ1aWxkZXJfbmFtZSkKKyAgICAgICAgYXNzZXJ0KHBvcnRfbmFtZSkgICMgTmVlZCB0byB1cGRh
dGUgX2J1aWxkZXJfbmFtZV90b19wb3J0X25hbWUKKyAgICAgICAgcG9ydCA9IGZhY3RvcnkuZ2V0
KHBvcnRfbmFtZSkKKyAgICAgICAgYXNzZXJ0KHBvcnQpICAjIE5lZWQgdG8gdXBkYXRlIF9idWls
ZGVyX25hbWVfdG9fcG9ydF9uYW1lCisgICAgICAgIHJldHVybiBwb3J0CisKKworY2xhc3MgUmVi
YXNlbGluZShBYnN0cmFjdERlY2xhcmF0aXZlQ29tbWFuZCk6CisgICAgbmFtZSA9ICJyZWJhc2Vs
aW5lIgorICAgIGhlbHBfdGV4dCA9ICJSZXBsYWNlcyBsb2NhbCBleHBlY3RlZC50eHQgZmlsZXMg
d2l0aCBuZXcgcmVzdWx0cyBmcm9tIGJ1aWxkIGJvdHMiCisKKyAgICAjIEZJWE1FOiBUaGlzIHNo
b3VsZCBzaGFyZSBtb3JlIGNvZGUgd2l0aCBGYWlsdXJlUmVhc29uLl9idWlsZGVyX3RvX2V4cGxh
aW4KKyAgICBkZWYgX2J1aWxkZXJfdG9fcHVsbF9mcm9tKHNlbGYpOgorICAgICAgICBidWlsZGVy
X3N0YXR1c2VzID0gc2VsZi50b29sLmJ1aWxkYm90LmJ1aWxkZXJfc3RhdHVzZXMoKQorICAgICAg
ICByZWRfc3RhdHVzZXMgPSBbc3RhdHVzIGZvciBzdGF0dXMgaW4gYnVpbGRlcl9zdGF0dXNlcyBp
ZiBub3Qgc3RhdHVzWyJpc19ncmVlbiJdXQorICAgICAgICBwcmludCAiJXMgZmFpbGluZyIgJSAo
cGx1cmFsaXplKCJidWlsZGVyIiwgbGVuKHJlZF9zdGF0dXNlcykpKQorICAgICAgICBidWlsZGVy
X2Nob2ljZXMgPSBbc3RhdHVzWyJuYW1lIl0gZm9yIHN0YXR1cyBpbiByZWRfc3RhdHVzZXNdCisg
ICAgICAgIGNob3Nlbl9uYW1lID0gc2VsZi50b29sLnVzZXIucHJvbXB0X3dpdGhfbGlzdCgiV2hp
Y2ggYnVpbGRlciB0byBwdWxsIHJlc3VsdHMgZnJvbToiLCBidWlsZGVyX2Nob2ljZXMpCisgICAg
ICAgICMgRklYTUU6IHByb21wdF93aXRoX2xpc3Qgc2hvdWxkIHJlYWxseSB0YWtlIGEgc2V0IG9m
IG9iamVjdHMgYW5kIGEgc2V0IG9mIG5hbWVzIGFuZCB0aGVuIHJldHVybiB0aGUgb2JqZWN0Lgor
ICAgICAgICBmb3Igc3RhdHVzIGluIHJlZF9zdGF0dXNlczoKKyAgICAgICAgICAgIGlmIHN0YXR1
c1sibmFtZSJdID09IGNob3Nlbl9uYW1lOgorICAgICAgICAgICAgICAgIHJldHVybiAoc2VsZi50
b29sLmJ1aWxkYm90LmJ1aWxkZXJfd2l0aF9uYW1lKGNob3Nlbl9uYW1lKSwgc3RhdHVzWyJidWls
ZF9udW1iZXIiXSkKKworICAgIGRlZiBfcmVwbGFjZV9leHBlY3RhdGlvbl93aXRoX3JlbW90ZV9y
ZXN1bHQoc2VsZiwgbG9jYWxfZmlsZSwgcmVtb3RlX2ZpbGUpOgorICAgICAgICAoZG93bmxvYWRl
ZF9maWxlLCBoZWFkZXJzKSA9IHVybGxpYi51cmxyZXRyaWV2ZShyZW1vdGVfZmlsZSkKKyAgICAg
ICAgc2h1dGlsLm1vdmUoZG93bmxvYWRlZF9maWxlLCBsb2NhbF9maWxlKQorCisgICAgZGVmIF90
ZXN0c190b191cGRhdGUoc2VsZiwgYnVpbGQpOgorICAgICAgICBwYXJzZWRfcmVzdWx0cyA9IGJ1
aWxkLmxheW91dF90ZXN0X3Jlc3VsdHMoKS5wYXJzZWRfcmVzdWx0cygpCisgICAgICAgICMgRklY
TUU6IFRoaXMgcHJvYmFibHkgYmVsb25ncyBhcyBBUEkgb24gTGF5b3V0VGVzdFJlc3VsdHMKKyAg
ICAgICAgIyBidXQgLmZhaWxpbmdfdGVzdHMoKSBhbHJlYWR5IG1lYW5zIHNvbWV0aGluZyBlbHNl
LgorICAgICAgICByZXR1cm4gcGFyc2VkX3Jlc3VsdHNbTGF5b3V0VGVzdFJlc3VsdHMuZmFpbF9r
ZXldCisKKyAgICBkZWYgX3Jlc3VsdHNfdXJsX2Zvcl90ZXN0KHNlbGYsIGJ1aWxkLCB0ZXN0KToK
KyAgICAgICAgdGVzdF9iYXNlID0gb3MucGF0aC5zcGxpdGV4dCh0ZXN0KVswXQorICAgICAgICBh
Y3R1YWxfcGF0aCA9IHRlc3RfYmFzZSArICItYWN0dWFsLnR4dCIKKyAgICAgICAgcmV0dXJuIGJ1
aWxkLnJlc3VsdHNfdXJsKCkgKyAiLyIgKyBhY3R1YWxfcGF0aAorCisgICAgZGVmIGV4ZWN1dGUo
c2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6CisgICAgICAgIGJ1aWxkZXIsIGJ1aWxkX251bWJl
ciA9IHNlbGYuX2J1aWxkZXJfdG9fcHVsbF9mcm9tKCkKKyAgICAgICAgYnVpbGQgPSBidWlsZGVy
LmJ1aWxkKGJ1aWxkX251bWJlcikKKyAgICAgICAgcG9ydCA9IEJ1aWxkZXJUb1BvcnQoKS5wb3J0
X2Zvcl9idWlsZGVyKGJ1aWxkZXIubmFtZSgpKQorCisgICAgICAgIGZvciB0ZXN0IGluIHNlbGYu
X3Rlc3RzX3RvX3VwZGF0ZShidWlsZCk6CisgICAgICAgICAgICByZXN1bHRzX3VybCA9IHNlbGYu
X3Jlc3VsdHNfdXJsX2Zvcl90ZXN0KGJ1aWxkLCB0ZXN0KQorICAgICAgICAgICAgIyBQb3J0IG9w
ZXJhdGVzIHdpdGggYWJzb2x1dGUgcGF0aHMuCisgICAgICAgICAgICBhYnNvbHV0ZV9wYXRoID0g
b3MucGF0aC5qb2luKHBvcnQubGF5b3V0X3Rlc3RzX2RpcigpLCB0ZXN0KQorICAgICAgICAgICAg
ZXhwZWN0ZWRfZmlsZSA9IHBvcnQuZXhwZWN0ZWRfZmlsZW5hbWUoYWJzb2x1dGVfcGF0aCwgIi50
eHQiKQorICAgICAgICAgICAgcHJpbnQgdGVzdAorICAgICAgICAgICAgc2VsZi5fcmVwbGFjZV9l
eHBlY3RhdGlvbl93aXRoX3JlbW90ZV9yZXN1bHQoZXhwZWN0ZWRfZmlsZSwgcmVzdWx0c191cmwp
CisKKyAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGhhbmRsZSBuZXcgcmVzdWx0cyB0b28uCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmVi
YXNlbGluZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9yZWJhc2VsaW5lX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJlOWQ5Yzc5YWM2ODhl
NWM0M2Y1ZmZjZjQ2YTZkZTc1ZmJkNTBhNGYKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcmViYXNlbGluZV91bml0dGVzdC5weQpA
QCAtMCwwICsxLDM4IEBACisjIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6Cisj
CisjICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91
dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMg
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
IyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
IyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20g
d2Via2l0cHkudG9vbC5jb21tYW5kcy5yZWJhc2VsaW5lIGltcG9ydCBCdWlsZGVyVG9Qb3J0CisK
KworY2xhc3MgQnVpbGRlclRvUG9ydFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0
ZXN0X3BvcnRfZm9yX2J1aWxkZXIoc2VsZik6CisgICAgICAgIGNvbnZlcnRlciA9IEJ1aWxkZXJU
b1BvcnQoKQorICAgICAgICBwb3J0ID0gY29udmVydGVyLnBvcnRfZm9yX2J1aWxkZXIoIkxlb3Bh
cmQgSW50ZWwgRGVidWcgKFRlc3RzKSIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5u
YW1lKCksICJtYWMiKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0
b29sLnB5CmluZGV4IGE0NjczNjQ3MmY1N2JiYzVjNmNlNzc1YmY5NTRjZjQ4NjQ4NDIzZDYuLjIx
MTRjMzA1ODE2ZjRlYWZmMzIwNTVkOTU1ZjgyMjVkNGJiMGU4YmQgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTMzMiw2ICszMzIsOSBAQCBj
bGFzcyBNb2NrQnVpbGRlcihvYmplY3QpOgogICAgIGRlZiBuYW1lKHNlbGYpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5fbmFtZQogCisgICAgZGVmIHJlc3VsdHNfdXJsKHNlbGYpOgorICAgICAgICBy
ZXR1cm4gImh0dHA6Ly9leGFtcGxlLmNvbS9idWlsZGVycy8lcy9yZXN1bHRzLyIgJSBzZWxmLm5h
bWUoKQorCiAgICAgZGVmIGZvcmNlX2J1aWxkKHNlbGYsIHVzZXJuYW1lLCBjb21tZW50cyk6CiAg
ICAgICAgIGxvZygiTU9DSzogZm9yY2VfYnVpbGQ6IG5hbWU9JXMsIHVzZXJuYW1lPSVzLCBjb21t
ZW50cz0lcyIgJSAoCiAgICAgICAgICAgICBzZWxmLl9uYW1lLCB1c2VybmFtZSwgY29tbWVudHMp
KQo=
</data>
<flag name="review"
          id="49671"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="49672"
          type_id="3"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>