<?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>27062</bug_id>
          
          <creation_ts>2009-07-07 19:25:35 -0700</creation_ts>
          <short_desc>bugzilla-tool: post-commits should read bug id from commit log and actually work</short_desc>
          <delta_ts>2009-07-08 18:25:23 -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>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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130345</commentid>
    <comment_count>0</comment_count>
      <attachid>32422</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-07 19:25:35 -0700</bug_when>
    <thetext>Created attachment 32422
Patch v1

Reviewed by NOBODY (OOPS!).

        * Scripts/bugzilla-tool:
        (bug_id_from_commit_message): Added.  Returns a bug id from the
        commit log message, thus enforcing the need for a bug URL in the
        message.
        (PostCommitsAsPatchesToBug.__init__): Updated help description
        to match new behavior of pulling bug ids from commit log
        messages instead of from the command line.
        (PostCommitsAsPatchesToBug.execute): Updated to use
        bug_id_from_commit_message() to pull bug ids from commit log
        messages.  Also switched from SCM.create_patch() to use
        SCM.create_patch_from_local_commit() to fix a bug where local
        repository changes were posted as a patch instead of the
        specific COMMITISH.

        * Scripts/modules/bugzilla.py: Import datetime module.
        (timestamp): Added.  Returns a timestamp in the form of
        &quot;YYYYMMDDhhmmss&quot;.
        (Bugzilla.add_patch_to_bug): Construct a more meaningful patch
        file name using the bug_id and timestamp().

        * Scripts/modules/scm.py:
        (SCM.create_patch_from_local_commit): Added.
        (Git.create_patch_from_local_commit): Added.  Runs &quot;git diff&quot; to
        return a patch for the given commit_id.
---
 4 files changed, 70 insertions(+), 17 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130370</commentid>
    <comment_count>1</comment_count>
      <attachid>32428</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-07 22:32:12 -0700</bug_when>
    <thetext>Created attachment 32428
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130431</commentid>
    <comment_count>2</comment_count>
      <attachid>32452</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-08 07:36:58 -0700</bug_when>
    <thetext>Created attachment 32452
Patch v3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130516</commentid>
    <comment_count>3</comment_count>
      <attachid>32452</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-08 14:28:26 -0700</bug_when>
    <thetext>Comment on attachment 32452
Patch v3

Changes since v2:

- Removed --cherry-pick switch after adding it from v1 to v2.  User should specify a range if they really want a range instead of having it implied.

Changes since v1:

- Removed required BUGID argument and replaced with optional -b|--bug-id argument.  Read URL from the ChangeLog instead to get the bug id.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130563</commentid>
    <comment_count>4</comment_count>
      <attachid>32452</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-08 16:10:16 -0700</bug_when>
    <thetext>Comment on attachment 32452
Patch v3

Changes to WebKitTools/Scripts/modules/bugzilla.py are fantastic, and good to commit as is.

Reviewing WebKitTools/Scripts/bugzilla-tool:
+        commit_ids = tool.scm().commit_ids_from_range_arguments(args, cherry_pick=True)

cherry_pick?  Seems like that part of your patch was dropped.

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130579</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-08 17:22:52 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 32452 [details])
&gt; Reviewing WebKitTools/Scripts/bugzilla-tool:
&gt; +        commit_ids = tool.scm().commit_ids_from_range_arguments(args,
&gt; cherry_pick=True)
&gt; 
&gt; cherry_pick?  Seems like that part of your patch was dropped.

This is to turn off the behavior in commit_ids_from_range_arguments() that assumes if git-rev-parse only returns a single commit hash that the user must have actually meant commit-hash..HEAD.  I think that should be specified explicitly by the user when they run the command.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130592</commentid>
    <comment_count>6</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2009-07-08 18:25:23 -0700</bug_when>
    <thetext>$ git svn dcommit
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebKitTools/ChangeLog
	M	WebKitTools/Scripts/bugzilla-tool
	M	WebKitTools/Scripts/modules/bugzilla.py
	M	WebKitTools/Scripts/modules/scm.py
Committed r45654

http://trac.webkit.org/changeset/45654</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32422</attachid>
            <date>2009-07-07 19:25:35 -0700</date>
            <delta_ts>2009-07-08 14:25:18 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>20090707192535.patch</filename>
            <type>text/plain</type>
            <size>8089</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyOTcwMTMxLi5hZGFkMGRkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMDktMDct
MDcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBidWd6aWxs
YS10b29sOiBwb3N0LWNvbW1pdHMgc2hvdWxkIHJlYWQgYnVnIGlkIGZyb20gY29tbWl0IGxvZyBh
bmQgYWN0dWFsbHkgd29yaworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogU2NyaXB0cy9idWd6aWxsYS10b29sOgorICAgICAgICAoYnVnX2lkX2Zyb21f
Y29tbWl0X21lc3NhZ2UpOiBBZGRlZC4gIFJldHVybnMgYSBidWcgaWQgZnJvbSB0aGUKKyAgICAg
ICAgY29tbWl0IGxvZyBtZXNzYWdlLCB0aHVzIGVuZm9yY2luZyB0aGUgbmVlZCBmb3IgYSBidWcg
VVJMIGluIHRoZQorICAgICAgICBtZXNzYWdlLgorICAgICAgICAoUG9zdENvbW1pdHNBc1BhdGNo
ZXNUb0J1Zy5fX2luaXRfXyk6IFVwZGF0ZWQgaGVscCBkZXNjcmlwdGlvbgorICAgICAgICB0byBt
YXRjaCBuZXcgYmVoYXZpb3Igb2YgcHVsbGluZyBidWcgaWRzIGZyb20gY29tbWl0IGxvZworICAg
ICAgICBtZXNzYWdlcyBpbnN0ZWFkIG9mIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KKyAgICAgICAg
KFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcuZXhlY3V0ZSk6IFVwZGF0ZWQgdG8gdXNlCisgICAg
ICAgIGJ1Z19pZF9mcm9tX2NvbW1pdF9tZXNzYWdlKCkgdG8gcHVsbCBidWcgaWRzIGZyb20gY29t
bWl0IGxvZworICAgICAgICBtZXNzYWdlcy4gIEFsc28gc3dpdGNoZWQgZnJvbSBTQ00uY3JlYXRl
X3BhdGNoKCkgdG8gdXNlCisgICAgICAgIFNDTS5jcmVhdGVfcGF0Y2hfZnJvbV9sb2NhbF9jb21t
aXQoKSB0byBmaXggYSBidWcgd2hlcmUgbG9jYWwKKyAgICAgICAgcmVwb3NpdG9yeSBjaGFuZ2Vz
IHdlcmUgcG9zdGVkIGFzIGEgcGF0Y2ggaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgc3BlY2lmaWMg
Q09NTUlUSVNILgorCisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5OiBJbXBv
cnQgZGF0ZXRpbWUgbW9kdWxlLgorICAgICAgICAodGltZXN0YW1wKTogQWRkZWQuICBSZXR1cm5z
IGEgdGltZXN0YW1wIGluIHRoZSBmb3JtIG9mCisgICAgICAgICJZWVlZTU1ERGhobW1zcyIuCisg
ICAgICAgIChCdWd6aWxsYS5hZGRfcGF0Y2hfdG9fYnVnKTogQ29uc3RydWN0IGEgbW9yZSBtZWFu
aW5nZnVsIHBhdGNoCisgICAgICAgIGZpbGUgbmFtZSB1c2luZyB0aGUgYnVnX2lkIGFuZCB0aW1l
c3RhbXAoKS4KKworICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9zY20ucHk6CisgICAgICAgIChT
Q00uY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KTogQWRkZWQuCisgICAgICAgIChHaXQu
Y3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KTogQWRkZWQuICBSdW5zICJnaXQgZGlmZiIg
dG8KKyAgICAgICAgcmV0dXJuIGEgcGF0Y2ggZm9yIHRoZSBnaXZlbiBjb21taXRfaWQuCisKIDIw
MDktMDctMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IE1hY2llaiBTdGFjaG93aWFrLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy9idWd6aWxsYS10b29sIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCmluZGV4
IGJmZDViYmEuLjNhNDg1MDYgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemls
bGEtdG9vbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKQEAgLTEsNSAr
MSw2IEBACiAjIS91c3IvYmluL3B5dGhvbgogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBA
IC0xMDEsNiArMTAyLDEwIEBAIGRlZiBtb2RpZmllZF9jaGFuZ2Vsb2dzKHNjbSk6CiAgICAgICAg
ICAgICBjaGFuZ2Vsb2dfcGF0aHMuYXBwZW5kKHBhdGgpCiAgICAgcmV0dXJuIGNoYW5nZWxvZ19w
YXRocwogCitkZWYgYnVnX2lkX2Zyb21fY29tbWl0X21lc3NhZ2UoY29tbWl0X21lc3NhZ2UpOgor
ICAgIG1hdGNoID0gcmUuc2VhcmNoKCJodHRwcz9cOi8vYnVnc1wud2Via2l0XC5vcmcvc2hvd19i
dWdcLmNnaVw/aWQ9KD9QPGJ1Z19pZD5cZCspIiwgY29tbWl0X21lc3NhZ2UsIHJlLk1VTFRJTElO
RSkKKyAgICByZXR1cm4gbWF0Y2guZ3JvdXAoJ2J1Z19pZCcpCisKIGRlZiBjb21taXRfbWVzc2Fn
ZV9mb3JfdGhpc19jb21taXQoc2NtKToKICAgICBjaGFuZ2Vsb2dfcGF0aHMgPSBtb2RpZmllZF9j
aGFuZ2Vsb2dzKHNjbSkKICAgICBpZiBub3QgbGVuKGNoYW5nZWxvZ19wYXRocyk6CkBAIC00MTAs
MzQgKzQxNSwzOCBAQCBjbGFzcyBQb3N0Q29tbWl0c0FzUGF0Y2hlc1RvQnVnKENvbW1hbmQpOgog
ICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tbm8tb2Jzb2xldGUiLCBhY3Rpb249InN0b3JlX2Zh
bHNlIiwgZGVzdD0ib2Jzb2xldGVfcGF0Y2hlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90
IG9ic29sZXRlIG9sZCBwYXRjaGVzIGJlZm9yZSBwb3N0aW5nIG5ldyBvbmVzLiIpLAogICAgICAg
ICAgICAgbWFrZV9vcHRpb24oIi0tbm8tcmV2aWV3IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRl
c3Q9InJldmlldyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG1hcmsgdGhlIHBhdGNoIGZv
ciByZXZpZXcuIiksCiAgICAgICAgIF0KLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAn
QXR0YWNoZXMgYSByYW5nZSBvZiBsb2NhbCBjb21taXRzIHRvIGEgYnVnIGFzIHBhdGNoIGZpbGVz
LicsICdCVUdJRCBDT01NSVRJU0gnLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIENvbW1hbmQu
X19pbml0X18oc2VsZiwgJ0F0dGFjaGVzIGEgcmFuZ2Ugb2YgbG9jYWwgY29tbWl0cyB0byBidWdz
IGFzIHBhdGNoIGZpbGVzLicsICdDT01NSVRJU0gnLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBk
ZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0b29sKToKLSAgICAgICAgYnVnX2lkID0g
YXJnc1swXQotICAgICAgICAKICAgICAgICAgaWYgbm90IHRvb2wuc2NtKCkuc3VwcG9ydHNfbG9j
YWxfY29tbWl0cygpOgogICAgICAgICAgICAgZXJyb3IodG9vbC5zY20oKS5kaXNwbGF5X25hbWUo
KSArICIgZG9lcyBub3Qgc3VwcG9ydCBsb2NhbCBjb21taXRzLiIpCi0gICAgICAgIAotICAgICAg
ICBjb21taXRfaWRzID0gdG9vbC5zY20oKS5jb21taXRfaWRzX2Zyb21fcmFuZ2VfYXJndW1lbnRz
KGFyZ3NbMTpdKQotICAgICAgICAKKworICAgICAgICBjb21taXRfaWRzID0gdG9vbC5zY20oKS5j
b21taXRfaWRzX2Zyb21fcmFuZ2VfYXJndW1lbnRzKGFyZ3MpCisKICAgICAgICAgaWYgbGVuKGNv
bW1pdF9pZHMpID4gMTA6Ci0gICAgICAgICAgICBlcnJvcigiQXJlIHlvdSBzdXJlIHlvdSB3YW50
IHRvIGF0dGFjaCAlcyB0byBidWcgJXM/IiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVuKGNvbW1p
dF9pZHMpKSwgYnVnX2lkKSkKKyAgICAgICAgICAgIGVycm9yKCJBcmUgeW91IHN1cmUgeW91IHdh
bnQgdG8gYXR0YWNoICVzIHBhdGNoZXM/IiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVuKGNvbW1p
dF9pZHMpKSkpCiAgICAgICAgICAgICAjIENvdWxkIGFkZCBhIC0tcGF0Y2hlcy1saW1pdCBvcHRp
b24uCiAKLSAgICAgICAgaWYgb3B0aW9ucy5vYnNvbGV0ZV9wYXRjaGVzOgotICAgICAgICAgICAg
UG9zdERpZmZBc1BhdGNoVG9CdWcub2Jzb2xldGVfcGF0Y2hlc19vbl9idWcoYnVnX2lkLCB0b29s
LmJ1Z3MpCi0gICAgICAgIAotICAgICAgICBsb2coIkF0dGFjaGluZyAlcyBhcyBwYXRjaGVzIHRv
IGJ1ZyAlcyIgJSAocGx1cmFsaXplKCdjb21taXQnLCBsZW4oY29tbWl0X2lkcykpLCBidWdfaWQp
KQorICAgICAgICBoYXZlX29ic29sZXRlZF9wYXRjaGVzID0gc2V0KCkKICAgICAgICAgZm9yIGNv
bW1pdF9pZCBpbiBjb21taXRfaWRzOgogICAgICAgICAgICAgY29tbWl0X21lc3NhZ2UgPSB0b29s
LnNjbSgpLmNvbW1pdF9tZXNzYWdlX2Zvcl9jb21taXQoY29tbWl0X2lkKQogICAgICAgICAgICAg
Y29tbWl0X2xpbmVzID0gY29tbWl0X21lc3NhZ2Uuc3BsaXRsaW5lcygpCi0gICAgICAgICAgICAK
KworICAgICAgICAgICAgYnVnX2lkID0gYnVnX2lkX2Zyb21fY29tbWl0X21lc3NhZ2UoY29tbWl0
X21lc3NhZ2UpCisgICAgICAgICAgICBpZiBub3QgYnVnX2lkOgorICAgICAgICAgICAgICAgIGxv
ZygiU2tpcHBpbmcgJXM6IE5vIGJ1ZyBpZCBmb3VuZCBpbiBjb21taXQgbG9nIiAlIGNvbW1pdF9p
ZCkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBpZiBvcHRpb25zLm9i
c29sZXRlX3BhdGNoZXMgYW5kIGJ1Z19pZCBub3QgaW4gaGF2ZV9vYnNvbGV0ZWRfcGF0Y2hlczoK
KyAgICAgICAgICAgICAgICBQb3N0RGlmZkFzUGF0Y2hUb0J1Zy5vYnNvbGV0ZV9wYXRjaGVzX29u
X2J1ZyhidWdfaWQsIHRvb2wuYnVncykKKyAgICAgICAgICAgICAgICBoYXZlX29ic29sZXRlZF9w
YXRjaGVzLnVwZGF0ZShidWdfaWQpCisKICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gY29tbWl0
X2xpbmVzWzBdCiAgICAgICAgICAgICBjb21tZW50X3RleHQgPSAiXG4iLmpvaW4oY29tbWl0X2xp
bmVzWzE6XSkKLSAgICAgICAgICAgIGNvbW1lbnRfdGV4dCArPSAiLS0tXG4iCisgICAgICAgICAg
ICBjb21tZW50X3RleHQgKz0gIlxuLS0tXG4iCiAgICAgICAgICAgICBjb21tZW50X3RleHQgKz0g
dG9vbC5zY20oKS5maWxlc19jaGFuZ2VkX3N1bW1hcnlfZm9yX2NvbW1pdChjb21taXRfaWQpCi0g
ICAgICAgIAotICAgICAgICAgICAgZGlmZiA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoKCkKKwor
ICAgICAgICAgICAgZGlmZiA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29t
bWl0KGNvbW1pdF9pZCkKICAgICAgICAgICAgIGRpZmZfZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lP
KGRpZmYpICMgYWRkX3BhdGNoX3RvX2J1ZyBleHBlY3RzIGEgZmlsZS1saWtlIG9iamVjdAogICAg
ICAgICAgICAgdG9vbC5idWdzLmFkZF9wYXRjaF90b19idWcoYnVnX2lkLCBkaWZmX2ZpbGUsIGRl
c2NyaXB0aW9uLCBjb21tZW50X3RleHQsIG1hcmtfZm9yX3Jldmlldz1vcHRpb25zLnJldmlldykK
IApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5IGIv
V2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CmluZGV4IDIxZjZjZDIuLjdi
ZGM0NDAgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5w
eQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKQEAgLTEsNCAr
MSw1IEBACiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICMgCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCw2ICszNSw4IEBAIGlt
cG9ydCBzdWJwcm9jZXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQgdXJsbGliMgogCitmcm9tIGRhdGV0
aW1lIGltcG9ydCBkYXRldGltZSAjIHVzZWQgaW4gdGltZXN0YW1wKCkKKwogIyBXZWJLaXQgaW5j
bHVkZXMgYSBidWlsdCBjb3B5IG9mIEJlYXV0aWZ1bFNvdXAgaW4gU2NyaXB0cy9tb2R1bGVzCiAj
IHNvIHRoaXMgaW1wb3J0IHNob3VsZCBhbHdheXMgc3VjY2VlZC4KIGZyb20gLkJlYXV0aWZ1bFNv
dXAgaW1wb3J0IEJlYXV0aWZ1bFNvdXAKQEAgLTcwLDYgKzczLDkgQEAgZGVmIHJlYWRfY29uZmln
KGtleSk6CiAgICAgICAgIHJldHVybiBOb25lCiAgICAgcmV0dXJuIHZhbHVlLnJzdHJpcCgnXG4n
KQogCitkZWYgdGltZXN0YW1wKCk6CisgICAgcmV0dXJuIGRhdGV0aW1lLm5vdygpLnN0cmZ0aW1l
KCIlWSVtJWQlSCVNJVMiKQorCiBjbGFzcyBCdWd6aWxsYToKICAgICBkZWYgX19pbml0X18oc2Vs
ZiwgZHJ5cnVuPUZhbHNlKToKICAgICAgICAgc2VsZi5kcnlydW4gPSBkcnlydW4KQEAgLTI0Niw3
ICsyNTIsNyBAQCBjbGFzcyBCdWd6aWxsYToKICAgICAgICAgICAgIGxvZyhjb21tZW50X3RleHQp
CiAgICAgICAgICAgICBzZWxmLmJyb3dzZXJbJ2NvbW1lbnQnXSA9IGNvbW1lbnRfdGV4dAogICAg
ICAgICBzZWxmLmJyb3dzZXJbJ2ZsYWdfdHlwZS0xJ10gPSAoJz8nLCkgaWYgbWFya19mb3JfcmV2
aWV3IGVsc2UgKCdYJywpCi0gICAgICAgIHNlbGYuYnJvd3Nlci5hZGRfZmlsZShwYXRjaF9maWxl
X29iamVjdCwgInRleHQvcGxhaW4iLCAiYnVnemlsbGFfcmVxdWlyZXNfYV9maWxlbmFtZS5wYXRj
aCIpCisgICAgICAgIHNlbGYuYnJvd3Nlci5hZGRfZmlsZShwYXRjaF9maWxlX29iamVjdCwgInRl
eHQvcGxhaW4iLCAiYnVnLSVzLSVzLnBhdGNoIiAlIChidWdfaWQsIHRpbWVzdGFtcCgpKSkKICAg
ICAgICAgc2VsZi5icm93c2VyLnN1Ym1pdCgpCiAKICAgICBkZWYgb2Jzb2xldGVfYXR0YWNobWVu
dChzZWxmLCBhdHRhY2htZW50X2lkLCBjb21tZW50X3RleHQgPSBOb25lKToKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvc2NtLnB5CmluZGV4IDk1NWNlM2MuLjM3YWIxMTkgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL3NjbS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyAKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKQEAgLTE1NCw2ICsxNTUsOSBAQCBjbGFzcyBTQ006CiAgICAgZGVmIHN1cHBvcnRzX2xvY2Fs
X2NvbW1pdHMoKToKICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNz
ZXMgbXVzdCBpbXBsZW1lbnQiCiAKKyAgICBkZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29t
bWl0KHNlbGYsIGNvbW1pdF9pZCk6CisgICAgICAgIHBhc3MKKwogICAgIGRlZiBjb21taXRfbG9j
YWxseV93aXRoX21lc3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIHBhc3MKIApAQCAtMjkw
LDcgKzI5NCwxMCBAQCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgcmV0dXJuIHNlbGYucHVzaF9s
b2NhbF9jb21taXRzX3RvX3NlcnZlcigpCiAKICAgICAjIEdpdC1zcGVjaWZpYyBtZXRob2RzOgot
ICAgIAorCisgICAgZGVmIGNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdChzZWxmLCBjb21t
aXRfaWQpOgorICAgICAgICByZXR1cm4gc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdkaWZmJywg
Y29tbWl0X2lkICsgIl4uLiIgKyBjb21taXRfaWRdKQorCiAgICAgZGVmIGNvbW1pdF9sb2NhbGx5
X3dpdGhfbWVzc2FnZShzZWxmLCBtZXNzYWdlKToKICAgICAgICAgc2VsZi5ydW5fY29tbWFuZChb
J2dpdCcsICdjb21taXQnLCAnLS1hbGwnLCAnLUYnLCAnLSddLCBpbnB1dD1tZXNzYWdlKQ==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32428</attachid>
            <date>2009-07-07 22:32:12 -0700</date>
            <delta_ts>2009-07-08 14:25:29 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-27062-20090707223212.patch</filename>
            <type>text/plain</type>
            <size>9843</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyOTcwMTMxLi4yZmRiODhjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMDktMDct
MDcgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBCdWcgMjcw
NjI6IGJ1Z3ppbGxhLXRvb2w6IHBvc3QtY29tbWl0cyBzaG91bGQgcmVhZCBidWcgaWQgZnJvbSBj
b21taXQgbG9nIGFuZCBhY3R1YWxseSB3b3JrCisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHRoZSByZXF1aXJlZCBCVUdJRCBhcmd1bWVu
dCBmcm9tIHRoZSAicG9zdC1jb21taXRzIgorICAgICAgICBjb21tYW5kIGFuZCByZXBsYWNlZCBp
dCB3aXRoIGEgLWJ8LS1idWctaWQgc3dpdGNoIG9yIHBhcnNpbmcgdGhlCisgICAgICAgIGNvbW1p
dCBsb2cgbWVzc2FnZSBmb3IgdGhlIGJ1ZyBVUkwuICBGaXhlZCBhIGJ1ZyBpbiB0aGUKKyAgICAg
ICAgInBvc3QtY29tbWl0cyIgdGhhdCB3b3VsZCBpZ25vcmUgdGhlIENPTU1JVElTSCB1c2VkIGFu
ZCBwb3N0IGEKKyAgICAgICAgcGF0Y2ggb2YgbG9jYWwgY2hhbmdlcyBhZ2FpbnN0IEhFQUQuICBB
ZGRlZCBhIC0tY2hlcnJ5LXBpY2sKKyAgICAgICAgc3dpdGNoIHRvIGxpbWl0IHRoZSByZXZpc2lv
biBsaXN0IGZyb20gZ2l0LiAgQWRkZWQgLS1uby1jb21taXQKKyAgICAgICAgc3dpdGNoIHRvIGRp
c2FibGUgdXNpbmcgdGhlIGJ1bGsgb2YgdGhlIENoYW5nZUxvZyBlbnRyeSBhcyB0aGUKKyAgICAg
ICAgY29tbWVudCBmb3IgdGhlIG5ldyBwYXRjaC4KKworICAgICAgICAqIFNjcmlwdHMvYnVnemls
bGEtdG9vbDoKKyAgICAgICAgKGJ1Z19pZF9mcm9tX2NvbW1pdF9tZXNzYWdlKTogQWRkZWQuICBS
ZXR1cm5zIGEgYnVnIGlkIGZyb20gdGhlCisgICAgICAgIGNvbW1pdCBsb2cgbWVzc2FnZSwgdGh1
cyBlbmZvcmNpbmcgdGhlIG5lZWQgZm9yIGEgYnVnIFVSTCBpbiB0aGUKKyAgICAgICAgbWVzc2Fn
ZS4KKyAgICAgICAgKFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcuX19pbml0X18pOiBVcGRhdGVk
IGhlbHAgZGVzY3JpcHRpb24KKyAgICAgICAgdG8gbWF0Y2ggbmV3IGJlaGF2aW9yIG9mIHB1bGxp
bmcgYnVnIGlkcyBmcm9tIGNvbW1pdCBsb2cKKyAgICAgICAgbWVzc2FnZXMgaW5zdGVhZCBvZiBm
cm9tIHRoZSBjb21tYW5kIGxpbmUuICBBZGRlZCAtYnwtLWJ1Zy1pZAorICAgICAgICBzd2l0Y2gg
YW5kIC0tbm8tY29tbWVudCBzd2l0Y2guCisgICAgICAgIChQb3N0Q29tbWl0c0FzUGF0Y2hlc1Rv
QnVnLmV4ZWN1dGUpOiBVcGRhdGVkIHRvIHVzZQorICAgICAgICBidWdfaWRfZnJvbV9jb21taXRf
bWVzc2FnZSgpIHRvIHB1bGwgYnVnIGlkcyBmcm9tIGNvbW1pdCBsb2cKKyAgICAgICAgbWVzc2Fn
ZXMuICBBbHNvIHN3aXRjaGVkIGZyb20gU0NNLmNyZWF0ZV9wYXRjaCgpIHRvIHVzZQorICAgICAg
ICBTQ00uY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KCkgdG8gZml4IGEgYnVnIHdoZXJl
IGxvY2FsCisgICAgICAgIHJlcG9zaXRvcnkgY2hhbmdlcyB3ZXJlIHBvc3RlZCBhcyBhIHBhdGNo
IGluc3RlYWQgb2YgdGhlCisgICAgICAgIHNwZWNpZmljIENPTU1JVElTSC4gIEZhbGwgYmFjayB0
byAtYnwtLWJ1Zy1pZCBpZiBubyBVUkwgaXMgZm91bmQKKyAgICAgICAgaW4gdGhlIGNvbW1pdCBs
b2cgbWVzc2FnZS4gIERvbid0IHNwZWNpZnkgYSBjb21tZW50IGZvciB0aGUKKyAgICAgICAgcGF0
Y2ggaWYgLS1uby1jb21tZW50IGlzIHVzZWQuICBQYXNzIC0tY2hlcnJ5LXBpY2sgc3dpdGNoCisg
ICAgICAgIHRocm91Z2ggdG8gR2l0LmNvbW1pdF9pZHNfZnJvbV9yYW5nZV9hcmd1bWVudHMoKS4K
KworICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weTogSW1wb3J0IGRhdGV0aW1l
IG1vZHVsZS4KKyAgICAgICAgKHRpbWVzdGFtcCk6IEFkZGVkLiAgUmV0dXJucyBhIHRpbWVzdGFt
cCBpbiB0aGUgZm9ybSBvZgorICAgICAgICAiWVlZWU1NRERoaG1tc3MiLgorICAgICAgICAoQnVn
emlsbGEuYWRkX3BhdGNoX3RvX2J1Zyk6IENvbnN0cnVjdCBhIG1vcmUgbWVhbmluZ2Z1bCBwYXRj
aAorICAgICAgICBmaWxlIG5hbWUgdXNpbmcgdGhlIGJ1Z19pZCBhbmQgdGltZXN0YW1wKCkuCisK
KyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvc2NtLnB5OgorICAgICAgICAoU0NNLmNyZWF0ZV9w
YXRjaF9mcm9tX2xvY2FsX2NvbW1pdCk6IEFkZGVkLgorICAgICAgICAoR2l0LmNyZWF0ZV9wYXRj
aF9mcm9tX2xvY2FsX2NvbW1pdCk6IEFkZGVkLiAgUnVucyAiZ2l0IGRpZmYiIHRvCisgICAgICAg
IHJldHVybiBhIHBhdGNoIGZvciB0aGUgZ2l2ZW4gY29tbWl0X2lkLgorCiAyMDA5LTA3LTA2ICBF
cmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYWNp
ZWogU3RhY2hvd2lhay4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEt
dG9vbCBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbAppbmRleCBiZmQ1YmJhLi5h
MjIxZDljIDEwMDc1NQotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKKysr
IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCkBAIC0xLDUgKzEsNiBAQAogIyEv
dXNyL2Jpbi9weXRob24KICMgQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTAxLDYgKzEw
MiwxMCBAQCBkZWYgbW9kaWZpZWRfY2hhbmdlbG9ncyhzY20pOgogICAgICAgICAgICAgY2hhbmdl
bG9nX3BhdGhzLmFwcGVuZChwYXRoKQogICAgIHJldHVybiBjaGFuZ2Vsb2dfcGF0aHMKIAorZGVm
IGJ1Z19pZF9mcm9tX2NvbW1pdF9tZXNzYWdlKGNvbW1pdF9tZXNzYWdlKToKKyAgICBtYXRjaCA9
IHJlLnNlYXJjaCgiaHR0cHM/XDovL2J1Z3NcLndlYmtpdFwub3JnL3Nob3dfYnVnXC5jZ2lcP2lk
PSg/UDxidWdfaWQ+XGQrKSIsIGNvbW1pdF9tZXNzYWdlLCByZS5NVUxUSUxJTkUpCisgICAgcmV0
dXJuIG1hdGNoLmdyb3VwKCdidWdfaWQnKQorCiBkZWYgY29tbWl0X21lc3NhZ2VfZm9yX3RoaXNf
Y29tbWl0KHNjbSk6CiAgICAgY2hhbmdlbG9nX3BhdGhzID0gbW9kaWZpZWRfY2hhbmdlbG9ncyhz
Y20pCiAgICAgaWYgbm90IGxlbihjaGFuZ2Vsb2dfcGF0aHMpOgpAQCAtNDA3LDM3ICs0MTIsNDYg
QEAgY2xhc3MgUG9zdERpZmZBc1BhdGNoVG9CdWcoQ29tbWFuZCk6CiBjbGFzcyBQb3N0Q29tbWl0
c0FzUGF0Y2hlc1RvQnVnKENvbW1hbmQpOgogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAg
ICAgb3B0aW9ucyA9IFsKKyAgICAgICAgICAgIG1ha2Vfb3B0aW9uKCItYiIsICItLWJ1Zy1pZCIs
IGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZXN0PSJidWdfaWQiLCBoZWxwPSJTcGVj
aWZ5IGJ1ZyBpZCBpZiBubyBVUkwgaXMgcHJvdmlkZWQgaW4gdGhlIGNvbW1pdCBsb2cuIiksCisg
ICAgICAgICAgICBtYWtlX29wdGlvbigiLS1jaGVycnktcGljayIsIGFjdGlvbj0ic3RvcmVfdHJ1
ZSIsIGRlc3Q9ImNoZXJyeV9waWNrIiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJVc2UgdGhlIHNpbmds
ZSBDT01NSVRJU0ggaW5zdGVhZCBvZiBhc3N1bWluZyBDT01NSVRJU0guLkhFQUQuIiksCisgICAg
ICAgICAgICBtYWtlX29wdGlvbigiLS1uby1jb21tZW50IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIs
IGRlc3Q9ImNvbW1lbnQiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCB1c2UgY29tbWl0IGxv
ZyBtZXNzYWdlIGFzIGEgY29tbWVudCBmb3IgdGhlIHBhdGNoLiIpLAogICAgICAgICAgICAgbWFr
ZV9vcHRpb24oIi0tbm8tb2Jzb2xldGUiLCBhY3Rpb249InN0b3JlX2ZhbHNlIiwgZGVzdD0ib2Jz
b2xldGVfcGF0Y2hlcyIsIGRlZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG9ic29sZXRlIG9sZCBw
YXRjaGVzIGJlZm9yZSBwb3N0aW5nIG5ldyBvbmVzLiIpLAogICAgICAgICAgICAgbWFrZV9vcHRp
b24oIi0tbm8tcmV2aWV3IiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9InJldmlldyIsIGRl
ZmF1bHQ9VHJ1ZSwgaGVscD0iRG8gbm90IG1hcmsgdGhlIHBhdGNoIGZvciByZXZpZXcuIiksCiAg
ICAgICAgIF0KLSAgICAgICAgQ29tbWFuZC5fX2luaXRfXyhzZWxmLCAnQXR0YWNoZXMgYSByYW5n
ZSBvZiBsb2NhbCBjb21taXRzIHRvIGEgYnVnIGFzIHBhdGNoIGZpbGVzLicsICdCVUdJRCBDT01N
SVRJU0gnLCBvcHRpb25zPW9wdGlvbnMpCisgICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwg
J0F0dGFjaGVzIGEgcmFuZ2Ugb2YgbG9jYWwgY29tbWl0cyB0byBidWdzIGFzIHBhdGNoIGZpbGVz
LicsICdDT01NSVRJU0gnLCBvcHRpb25zPW9wdGlvbnMpCiAKICAgICBkZWYgZXhlY3V0ZShzZWxm
LCBvcHRpb25zLCBhcmdzLCB0b29sKToKLSAgICAgICAgYnVnX2lkID0gYXJnc1swXQotICAgICAg
ICAKICAgICAgICAgaWYgbm90IHRvb2wuc2NtKCkuc3VwcG9ydHNfbG9jYWxfY29tbWl0cygpOgog
ICAgICAgICAgICAgZXJyb3IodG9vbC5zY20oKS5kaXNwbGF5X25hbWUoKSArICIgZG9lcyBub3Qg
c3VwcG9ydCBsb2NhbCBjb21taXRzLiIpCi0gICAgICAgIAotICAgICAgICBjb21taXRfaWRzID0g
dG9vbC5zY20oKS5jb21taXRfaWRzX2Zyb21fcmFuZ2VfYXJndW1lbnRzKGFyZ3NbMTpdKQotICAg
ICAgICAKKworICAgICAgICBjb21taXRfaWRzID0gdG9vbC5zY20oKS5jb21taXRfaWRzX2Zyb21f
cmFuZ2VfYXJndW1lbnRzKGFyZ3MsIG9wdGlvbnMuY2hlcnJ5X3BpY2spCisKICAgICAgICAgaWYg
bGVuKGNvbW1pdF9pZHMpID4gMTA6Ci0gICAgICAgICAgICBlcnJvcigiQXJlIHlvdSBzdXJlIHlv
dSB3YW50IHRvIGF0dGFjaCAlcyB0byBidWcgJXM/IiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVu
KGNvbW1pdF9pZHMpKSwgYnVnX2lkKSkKKyAgICAgICAgICAgIGVycm9yKCJBcmUgeW91IHN1cmUg
eW91IHdhbnQgdG8gYXR0YWNoICVzIHBhdGNoZXM/IiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVu
KGNvbW1pdF9pZHMpKSkpCiAgICAgICAgICAgICAjIENvdWxkIGFkZCBhIC0tcGF0Y2hlcy1saW1p
dCBvcHRpb24uCiAKLSAgICAgICAgaWYgb3B0aW9ucy5vYnNvbGV0ZV9wYXRjaGVzOgotICAgICAg
ICAgICAgUG9zdERpZmZBc1BhdGNoVG9CdWcub2Jzb2xldGVfcGF0Y2hlc19vbl9idWcoYnVnX2lk
LCB0b29sLmJ1Z3MpCi0gICAgICAgIAotICAgICAgICBsb2coIkF0dGFjaGluZyAlcyBhcyBwYXRj
aGVzIHRvIGJ1ZyAlcyIgJSAocGx1cmFsaXplKCdjb21taXQnLCBsZW4oY29tbWl0X2lkcykpLCBi
dWdfaWQpKQorICAgICAgICBoYXZlX29ic29sZXRlZF9wYXRjaGVzID0gc2V0KCkKICAgICAgICAg
Zm9yIGNvbW1pdF9pZCBpbiBjb21taXRfaWRzOgogICAgICAgICAgICAgY29tbWl0X21lc3NhZ2Ug
PSB0b29sLnNjbSgpLmNvbW1pdF9tZXNzYWdlX2Zvcl9jb21taXQoY29tbWl0X2lkKQogICAgICAg
ICAgICAgY29tbWl0X2xpbmVzID0gY29tbWl0X21lc3NhZ2Uuc3BsaXRsaW5lcygpCi0gICAgICAg
ICAgICAKKworICAgICAgICAgICAgYnVnX2lkID0gb3B0aW9ucy5idWdfaWQgb3IgYnVnX2lkX2Zy
b21fY29tbWl0X21lc3NhZ2UoY29tbWl0X21lc3NhZ2UpCisgICAgICAgICAgICBpZiBub3QgYnVn
X2lkOgorICAgICAgICAgICAgICAgIGxvZygiU2tpcHBpbmcgJXM6IE5vIGJ1ZyBpZCBmb3VuZCBp
biBjb21taXQgbG9nIG9yIHNwZWNpZmllZCB3aXRoIC0tYnVnLWlkLiIgJSBjb21taXRfaWQpCisg
ICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgb3B0aW9ucy5vYnNvbGV0
ZV9wYXRjaGVzIGFuZCBidWdfaWQgbm90IGluIGhhdmVfb2Jzb2xldGVkX3BhdGNoZXM6CisgICAg
ICAgICAgICAgICAgUG9zdERpZmZBc1BhdGNoVG9CdWcub2Jzb2xldGVfcGF0Y2hlc19vbl9idWco
YnVnX2lkLCB0b29sLmJ1Z3MpCisgICAgICAgICAgICAgICAgaGF2ZV9vYnNvbGV0ZWRfcGF0Y2hl
cy51cGRhdGUoYnVnX2lkKQorCiAgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IGNvbW1pdF9saW5l
c1swXQotICAgICAgICAgICAgY29tbWVudF90ZXh0ID0gIlxuIi5qb2luKGNvbW1pdF9saW5lc1sx
Ol0pCi0gICAgICAgICAgICBjb21tZW50X3RleHQgKz0gIi0tLVxuIgotICAgICAgICAgICAgY29t
bWVudF90ZXh0ICs9IHRvb2wuc2NtKCkuZmlsZXNfY2hhbmdlZF9zdW1tYXJ5X2Zvcl9jb21taXQo
Y29tbWl0X2lkKQotICAgICAgICAKLSAgICAgICAgICAgIGRpZmYgPSB0b29sLnNjbSgpLmNyZWF0
ZV9wYXRjaCgpCisgICAgICAgICAgICBjb21tZW50X3RleHQgPSBOb25lCisgICAgICAgICAgICBp
ZiAob3B0aW9ucy5jb21tZW50KToKKyAgICAgICAgICAgICAgICBjb21tZW50X3RleHQgPSAiXG4i
LmpvaW4oY29tbWl0X2xpbmVzWzE6XSkKKyAgICAgICAgICAgICAgICBjb21tZW50X3RleHQgKz0g
IlxuLS0tXG4iCisgICAgICAgICAgICAgICAgY29tbWVudF90ZXh0ICs9IHRvb2wuc2NtKCkuZmls
ZXNfY2hhbmdlZF9zdW1tYXJ5X2Zvcl9jb21taXQoY29tbWl0X2lkKQorCisgICAgICAgICAgICBk
aWZmID0gdG9vbC5zY20oKS5jcmVhdGVfcGF0Y2hfZnJvbV9sb2NhbF9jb21taXQoY29tbWl0X2lk
KQogICAgICAgICAgICAgZGlmZl9maWxlID0gU3RyaW5nSU8uU3RyaW5nSU8oZGlmZikgIyBhZGRf
cGF0Y2hfdG9fYnVnIGV4cGVjdHMgYSBmaWxlLWxpa2Ugb2JqZWN0CiAgICAgICAgICAgICB0b29s
LmJ1Z3MuYWRkX3BhdGNoX3RvX2J1ZyhidWdfaWQsIGRpZmZfZmlsZSwgZGVzY3JpcHRpb24sIGNv
bW1lbnRfdGV4dCwgbWFya19mb3JfcmV2aWV3PW9wdGlvbnMucmV2aWV3KQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKaW5kZXggMjFmNmNkMi4uN2JkYzQ0MCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQpAQCAtMSw0ICsxLDUgQEAKICMgQ29w
eXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5
cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyAKICMgUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM0LDYgKzM1LDggQEAgaW1wb3J0IHN1YnByb2Nl
c3MKIGltcG9ydCBzeXMKIGltcG9ydCB1cmxsaWIyCiAKK2Zyb20gZGF0ZXRpbWUgaW1wb3J0IGRh
dGV0aW1lICMgdXNlZCBpbiB0aW1lc3RhbXAoKQorCiAjIFdlYktpdCBpbmNsdWRlcyBhIGJ1aWx0
IGNvcHkgb2YgQmVhdXRpZnVsU291cCBpbiBTY3JpcHRzL21vZHVsZXMKICMgc28gdGhpcyBpbXBv
cnQgc2hvdWxkIGFsd2F5cyBzdWNjZWVkLgogZnJvbSAuQmVhdXRpZnVsU291cCBpbXBvcnQgQmVh
dXRpZnVsU291cApAQCAtNzAsNiArNzMsOSBAQCBkZWYgcmVhZF9jb25maWcoa2V5KToKICAgICAg
ICAgcmV0dXJuIE5vbmUKICAgICByZXR1cm4gdmFsdWUucnN0cmlwKCdcbicpCiAKK2RlZiB0aW1l
c3RhbXAoKToKKyAgICByZXR1cm4gZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUoIiVZJW0lZCVIJU0l
UyIpCisKIGNsYXNzIEJ1Z3ppbGxhOgogICAgIGRlZiBfX2luaXRfXyhzZWxmLCBkcnlydW49RmFs
c2UpOgogICAgICAgICBzZWxmLmRyeXJ1biA9IGRyeXJ1bgpAQCAtMjQ2LDcgKzI1Miw3IEBAIGNs
YXNzIEJ1Z3ppbGxhOgogICAgICAgICAgICAgbG9nKGNvbW1lbnRfdGV4dCkKICAgICAgICAgICAg
IHNlbGYuYnJvd3NlclsnY29tbWVudCddID0gY29tbWVudF90ZXh0CiAgICAgICAgIHNlbGYuYnJv
d3NlclsnZmxhZ190eXBlLTEnXSA9ICgnPycsKSBpZiBtYXJrX2Zvcl9yZXZpZXcgZWxzZSAoJ1gn
LCkKLSAgICAgICAgc2VsZi5icm93c2VyLmFkZF9maWxlKHBhdGNoX2ZpbGVfb2JqZWN0LCAidGV4
dC9wbGFpbiIsICJidWd6aWxsYV9yZXF1aXJlc19hX2ZpbGVuYW1lLnBhdGNoIikKKyAgICAgICAg
c2VsZi5icm93c2VyLmFkZF9maWxlKHBhdGNoX2ZpbGVfb2JqZWN0LCAidGV4dC9wbGFpbiIsICJi
dWctJXMtJXMucGF0Y2giICUgKGJ1Z19pZCwgdGltZXN0YW1wKCkpKQogICAgICAgICBzZWxmLmJy
b3dzZXIuc3VibWl0KCkKIAogICAgIGRlZiBvYnNvbGV0ZV9hdHRhY2htZW50KHNlbGYsIGF0dGFj
aG1lbnRfaWQsIGNvbW1lbnRfdGV4dCA9IE5vbmUpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL3NjbS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9zY20u
cHkKaW5kZXggOTU1Y2UzYy4uMzdhYjExOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy9tb2R1bGVzL3NjbS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2NtLnB5
CkBAIC0xLDQgKzEsNSBAQAogIyBDb3B5cmlnaHQgKGMpIDIwMDksIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoYykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAjIAogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQpAQCAtMTU0LDYg
KzE1NSw5IEBAIGNsYXNzIFNDTToKICAgICBkZWYgc3VwcG9ydHNfbG9jYWxfY29tbWl0cygpOgog
ICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVycm9yLCAic3ViY2xhc3NlcyBtdXN0IGltcGxl
bWVudCIKIAorICAgIGRlZiBjcmVhdGVfcGF0Y2hfZnJvbV9sb2NhbF9jb21taXQoc2VsZiwgY29t
bWl0X2lkKToKKyAgICAgICAgcGFzcworCiAgICAgZGVmIGNvbW1pdF9sb2NhbGx5X3dpdGhfbWVz
c2FnZShzZWxmLCBtZXNzYWdlKToKICAgICAgICAgcGFzcwogCkBAIC0yOTAsNyArMjk0LDEwIEBA
IGNsYXNzIEdpdChTQ00pOgogICAgICAgICByZXR1cm4gc2VsZi5wdXNoX2xvY2FsX2NvbW1pdHNf
dG9fc2VydmVyKCkKIAogICAgICMgR2l0LXNwZWNpZmljIG1ldGhvZHM6Ci0gICAgCisKKyAgICBk
ZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KHNlbGYsIGNvbW1pdF9pZCk6CisgICAg
ICAgIHJldHVybiBzZWxmLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ2RpZmYnLCBjb21taXRfaWQgKyAi
Xi4uIiArIGNvbW1pdF9pZF0pCisKICAgICBkZWYgY29tbWl0X2xvY2FsbHlfd2l0aF9tZXNzYWdl
KHNlbGYsIG1lc3NhZ2UpOgogICAgICAgICBzZWxmLnJ1bl9jb21tYW5kKFsnZ2l0JywgJ2NvbW1p
dCcsICctLWFsbCcsICctRicsICctJ10sIGlucHV0PW1lc3NhZ2Up
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32452</attachid>
            <date>2009-07-08 07:36:58 -0700</date>
            <delta_ts>2009-07-08 16:10:16 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>bug-27062-20090708073657.patch</filename>
            <type>text/plain</type>
            <size>9673</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyOTcwMTMxLi43NDQwZjUyIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDkgQEAKKzIwMDktMDct
MDggIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KKworICAgICAgICBCdWcgMjcw
NjI6IGJ1Z3ppbGxhLXRvb2w6IHBvc3QtY29tbWl0cyBzaG91bGQgcmVhZCBidWcgaWQgZnJvbSBj
b21taXQgbG9nIGFuZCBhY3R1YWxseSB3b3JrCisKKyAgICAgICAgPGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzA2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHRoZSByZXF1aXJlZCBCVUdJRCBhcmd1bWVu
dCBmcm9tIHRoZSAicG9zdC1jb21taXRzIgorICAgICAgICBjb21tYW5kIGFuZCByZXBsYWNlZCBp
dCB3aXRoIGEgLWJ8LS1idWctaWQgc3dpdGNoIG9yIHBhcnNpbmcgdGhlCisgICAgICAgIGNvbW1p
dCBsb2cgbWVzc2FnZSBmb3IgdGhlIGJ1ZyBVUkwuICBGaXhlZCBhIGJ1ZyBpbiB0aGUKKyAgICAg
ICAgInBvc3QtY29tbWl0cyIgdGhhdCB3b3VsZCBpZ25vcmUgdGhlIENPTU1JVElTSCB1c2VkIGFu
ZCBwb3N0IGEKKyAgICAgICAgcGF0Y2ggb2YgbG9jYWwgY2hhbmdlcyBhZ2FpbnN0IEhFQUQuICBB
ZGRlZCAtLW5vLWNvbW1pdCBzd2l0Y2gKKyAgICAgICAgdG8gZGlzYWJsZSB1c2luZyB0aGUgYnVs
ayBvZiB0aGUgQ2hhbmdlTG9nIGVudHJ5IGFzIHRoZSBjb21tZW50CisgICAgICAgIGZvciB0aGUg
bmV3IHBhdGNoLgorCisgICAgICAgICogU2NyaXB0cy9idWd6aWxsYS10b29sOgorICAgICAgICAo
YnVnX2lkX2Zyb21fY29tbWl0X21lc3NhZ2UpOiBBZGRlZC4gIFJldHVybnMgYSBidWcgaWQgZnJv
bSB0aGUKKyAgICAgICAgY29tbWl0IGxvZyBtZXNzYWdlLCB0aHVzIGVuZm9yY2luZyB0aGUgbmVl
ZCBmb3IgYSBidWcgVVJMIGluIHRoZQorICAgICAgICBtZXNzYWdlLgorICAgICAgICAoUG9zdENv
bW1pdHNBc1BhdGNoZXNUb0J1Zy5fX2luaXRfXyk6IFVwZGF0ZWQgaGVscCBkZXNjcmlwdGlvbgor
ICAgICAgICB0byBtYXRjaCBuZXcgYmVoYXZpb3Igb2YgcHVsbGluZyBidWcgaWRzIGZyb20gY29t
bWl0IGxvZworICAgICAgICBtZXNzYWdlcyBpbnN0ZWFkIG9mIGZyb20gdGhlIGNvbW1hbmQgbGlu
ZS4gIEFkZGVkIC1ifC0tYnVnLWlkCisgICAgICAgIHN3aXRjaCBhbmQgLS1uby1jb21tZW50IHN3
aXRjaC4KKyAgICAgICAgKFBvc3RDb21taXRzQXNQYXRjaGVzVG9CdWcuZXhlY3V0ZSk6IFVwZGF0
ZWQgdG8gdXNlCisgICAgICAgIGJ1Z19pZF9mcm9tX2NvbW1pdF9tZXNzYWdlKCkgdG8gcHVsbCBi
dWcgaWRzIGZyb20gY29tbWl0IGxvZworICAgICAgICBtZXNzYWdlcy4gIEFsc28gc3dpdGNoZWQg
ZnJvbSBTQ00uY3JlYXRlX3BhdGNoKCkgdG8gdXNlCisgICAgICAgIFNDTS5jcmVhdGVfcGF0Y2hf
ZnJvbV9sb2NhbF9jb21taXQoKSB0byBmaXggYSBidWcgd2hlcmUgbG9jYWwKKyAgICAgICAgcmVw
b3NpdG9yeSBjaGFuZ2VzIHdlcmUgcG9zdGVkIGFzIGEgcGF0Y2ggaW5zdGVhZCBvZiB0aGUKKyAg
ICAgICAgc3BlY2lmaWMgQ09NTUlUSVNILiAgRmFsbCBiYWNrIHRvIC1ifC0tYnVnLWlkIGlmIG5v
IFVSTCBpcyBmb3VuZAorICAgICAgICBpbiB0aGUgY29tbWl0IGxvZyBtZXNzYWdlLiAgRG9uJ3Qg
c3BlY2lmeSBhIGNvbW1lbnQgZm9yIHRoZQorICAgICAgICBwYXRjaCBpZiAtLW5vLWNvbW1lbnQg
aXMgdXNlZC4gIFNldCBjaGVycnlfcGljayBhcmd1bWVudCB0byBUcnVlCisgICAgICAgIGZvciBH
aXQuY29tbWl0X2lkc19mcm9tX3JhbmdlX2FyZ3VtZW50cygpIHNpbmNlIHdlIGRvbid0IHdhbnQK
KyAgICAgICAgaW1wbGljaXQgY29tbWl0IHJhbmdlIGJlaGF2aW9yIGZvciB0aGlzIGNvbW1hbmQu
CisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHk6IEltcG9ydCBkYXRldGlt
ZSBtb2R1bGUuCisgICAgICAgICh0aW1lc3RhbXApOiBBZGRlZC4gIFJldHVybnMgYSB0aW1lc3Rh
bXAgaW4gdGhlIGZvcm0gb2YKKyAgICAgICAgIllZWVlNTUREaGhtbXNzIi4KKyAgICAgICAgKEJ1
Z3ppbGxhLmFkZF9wYXRjaF90b19idWcpOiBDb25zdHJ1Y3QgYSBtb3JlIG1lYW5pbmdmdWwgcGF0
Y2gKKyAgICAgICAgZmlsZSBuYW1lIHVzaW5nIHRoZSBidWdfaWQgYW5kIHRpbWVzdGFtcCgpLgor
CisgICAgICAgICogU2NyaXB0cy9tb2R1bGVzL3NjbS5weToKKyAgICAgICAgKFNDTS5jcmVhdGVf
cGF0Y2hfZnJvbV9sb2NhbF9jb21taXQpOiBBZGRlZC4KKyAgICAgICAgKEdpdC5jcmVhdGVfcGF0
Y2hfZnJvbV9sb2NhbF9jb21taXQpOiBBZGRlZC4gIFJ1bnMgImdpdCBkaWZmIiB0bworICAgICAg
ICByZXR1cm4gYSBwYXRjaCBmb3IgdGhlIGdpdmVuIGNvbW1pdF9pZC4KKwogMjAwOS0wNy0wNiAg
RXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFj
aWVqIFN0YWNob3dpYWsuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxh
LXRvb2wgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxhLXRvb2wKaW5kZXggYmZkNWJiYS4u
NTA1YjRlMiAxMDA3NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sCisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvYnVnemlsbGEtdG9vbApAQCAtMSw1ICsxLDYgQEAKICMh
L3Vzci9iaW4vcHl0aG9uCiAjIENvcHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTEwMSw2ICsx
MDIsMTAgQEAgZGVmIG1vZGlmaWVkX2NoYW5nZWxvZ3Moc2NtKToKICAgICAgICAgICAgIGNoYW5n
ZWxvZ19wYXRocy5hcHBlbmQocGF0aCkKICAgICByZXR1cm4gY2hhbmdlbG9nX3BhdGhzCiAKK2Rl
ZiBidWdfaWRfZnJvbV9jb21taXRfbWVzc2FnZShjb21taXRfbWVzc2FnZSk6CisgICAgbWF0Y2gg
PSByZS5zZWFyY2goImh0dHBzP1w6Ly9idWdzXC53ZWJraXRcLm9yZy9zaG93X2J1Z1wuY2dpXD9p
ZD0oP1A8YnVnX2lkPlxkKykiLCBjb21taXRfbWVzc2FnZSwgcmUuTVVMVElMSU5FKQorICAgIHJl
dHVybiBtYXRjaC5ncm91cCgnYnVnX2lkJykKKwogZGVmIGNvbW1pdF9tZXNzYWdlX2Zvcl90aGlz
X2NvbW1pdChzY20pOgogICAgIGNoYW5nZWxvZ19wYXRocyA9IG1vZGlmaWVkX2NoYW5nZWxvZ3Mo
c2NtKQogICAgIGlmIG5vdCBsZW4oY2hhbmdlbG9nX3BhdGhzKToKQEAgLTQwNywzNyArNDEyLDQ1
IEBAIGNsYXNzIFBvc3REaWZmQXNQYXRjaFRvQnVnKENvbW1hbmQpOgogY2xhc3MgUG9zdENvbW1p
dHNBc1BhdGNoZXNUb0J1ZyhDb21tYW5kKToKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAg
ICAgIG9wdGlvbnMgPSBbCisgICAgICAgICAgICBtYWtlX29wdGlvbigiLWIiLCAiLS1idWctaWQi
LCBhY3Rpb249InN0b3JlIiwgdHlwZT0ic3RyaW5nIiwgZGVzdD0iYnVnX2lkIiwgaGVscD0iU3Bl
Y2lmeSBidWcgaWQgaWYgbm8gVVJMIGlzIHByb3ZpZGVkIGluIHRoZSBjb21taXQgbG9nLiIpLAor
ICAgICAgICAgICAgbWFrZV9vcHRpb24oIi0tbm8tY29tbWVudCIsIGFjdGlvbj0ic3RvcmVfZmFs
c2UiLCBkZXN0PSJjb21tZW50IiwgZGVmYXVsdD1UcnVlLCBoZWxwPSJEbyBub3QgdXNlIGNvbW1p
dCBsb2cgbWVzc2FnZSBhcyBhIGNvbW1lbnQgZm9yIHRoZSBwYXRjaC4iKSwKICAgICAgICAgICAg
IG1ha2Vfb3B0aW9uKCItLW5vLW9ic29sZXRlIiwgYWN0aW9uPSJzdG9yZV9mYWxzZSIsIGRlc3Q9
Im9ic29sZXRlX3BhdGNoZXMiLCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBvYnNvbGV0ZSBv
bGQgcGF0Y2hlcyBiZWZvcmUgcG9zdGluZyBuZXcgb25lcy4iKSwKICAgICAgICAgICAgIG1ha2Vf
b3B0aW9uKCItLW5vLXJldmlldyIsIGFjdGlvbj0ic3RvcmVfZmFsc2UiLCBkZXN0PSJyZXZpZXci
LCBkZWZhdWx0PVRydWUsIGhlbHA9IkRvIG5vdCBtYXJrIHRoZSBwYXRjaCBmb3IgcmV2aWV3LiIp
LAogICAgICAgICBdCi0gICAgICAgIENvbW1hbmQuX19pbml0X18oc2VsZiwgJ0F0dGFjaGVzIGEg
cmFuZ2Ugb2YgbG9jYWwgY29tbWl0cyB0byBhIGJ1ZyBhcyBwYXRjaCBmaWxlcy4nLCAnQlVHSUQg
Q09NTUlUSVNIJywgb3B0aW9ucz1vcHRpb25zKQorICAgICAgICBDb21tYW5kLl9faW5pdF9fKHNl
bGYsICdBdHRhY2hlcyBhIHJhbmdlIG9mIGxvY2FsIGNvbW1pdHMgdG8gYnVncyBhcyBwYXRjaCBm
aWxlcy4nLCAnQ09NTUlUSVNIJywgb3B0aW9ucz1vcHRpb25zKQogCiAgICAgZGVmIGV4ZWN1dGUo
c2VsZiwgb3B0aW9ucywgYXJncywgdG9vbCk6Ci0gICAgICAgIGJ1Z19pZCA9IGFyZ3NbMF0KLSAg
ICAgICAgCiAgICAgICAgIGlmIG5vdCB0b29sLnNjbSgpLnN1cHBvcnRzX2xvY2FsX2NvbW1pdHMo
KToKICAgICAgICAgICAgIGVycm9yKHRvb2wuc2NtKCkuZGlzcGxheV9uYW1lKCkgKyAiIGRvZXMg
bm90IHN1cHBvcnQgbG9jYWwgY29tbWl0cy4iKQotICAgICAgICAKLSAgICAgICAgY29tbWl0X2lk
cyA9IHRvb2wuc2NtKCkuY29tbWl0X2lkc19mcm9tX3JhbmdlX2FyZ3VtZW50cyhhcmdzWzE6XSkK
LSAgICAgICAgCisKKyAgICAgICAgY29tbWl0X2lkcyA9IHRvb2wuc2NtKCkuY29tbWl0X2lkc19m
cm9tX3JhbmdlX2FyZ3VtZW50cyhhcmdzLCBjaGVycnlfcGljaz1UcnVlKQorCiAgICAgICAgIGlm
IGxlbihjb21taXRfaWRzKSA+IDEwOgotICAgICAgICAgICAgZXJyb3IoIkFyZSB5b3Ugc3VyZSB5
b3Ugd2FudCB0byBhdHRhY2ggJXMgdG8gYnVnICVzPyIgJSAocGx1cmFsaXplKCdwYXRjaCcsIGxl
bihjb21taXRfaWRzKSksIGJ1Z19pZCkpCisgICAgICAgICAgICBlcnJvcigiQXJlIHlvdSBzdXJl
IHlvdSB3YW50IHRvIGF0dGFjaCAlcyBwYXRjaGVzPyIgJSAocGx1cmFsaXplKCdwYXRjaCcsIGxl
bihjb21taXRfaWRzKSkpKQogICAgICAgICAgICAgIyBDb3VsZCBhZGQgYSAtLXBhdGNoZXMtbGlt
aXQgb3B0aW9uLgogCi0gICAgICAgIGlmIG9wdGlvbnMub2Jzb2xldGVfcGF0Y2hlczoKLSAgICAg
ICAgICAgIFBvc3REaWZmQXNQYXRjaFRvQnVnLm9ic29sZXRlX3BhdGNoZXNfb25fYnVnKGJ1Z19p
ZCwgdG9vbC5idWdzKQotICAgICAgICAKLSAgICAgICAgbG9nKCJBdHRhY2hpbmcgJXMgYXMgcGF0
Y2hlcyB0byBidWcgJXMiICUgKHBsdXJhbGl6ZSgnY29tbWl0JywgbGVuKGNvbW1pdF9pZHMpKSwg
YnVnX2lkKSkKKyAgICAgICAgaGF2ZV9vYnNvbGV0ZWRfcGF0Y2hlcyA9IHNldCgpCiAgICAgICAg
IGZvciBjb21taXRfaWQgaW4gY29tbWl0X2lkczoKICAgICAgICAgICAgIGNvbW1pdF9tZXNzYWdl
ID0gdG9vbC5zY20oKS5jb21taXRfbWVzc2FnZV9mb3JfY29tbWl0KGNvbW1pdF9pZCkKICAgICAg
ICAgICAgIGNvbW1pdF9saW5lcyA9IGNvbW1pdF9tZXNzYWdlLnNwbGl0bGluZXMoKQotICAgICAg
ICAgICAgCisKKyAgICAgICAgICAgIGJ1Z19pZCA9IG9wdGlvbnMuYnVnX2lkIG9yIGJ1Z19pZF9m
cm9tX2NvbW1pdF9tZXNzYWdlKGNvbW1pdF9tZXNzYWdlKQorICAgICAgICAgICAgaWYgbm90IGJ1
Z19pZDoKKyAgICAgICAgICAgICAgICBsb2coIlNraXBwaW5nICVzOiBObyBidWcgaWQgZm91bmQg
aW4gY29tbWl0IGxvZyBvciBzcGVjaWZpZWQgd2l0aCAtLWJ1Zy1pZC4iICUgY29tbWl0X2lkKQor
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIG9wdGlvbnMub2Jzb2xl
dGVfcGF0Y2hlcyBhbmQgYnVnX2lkIG5vdCBpbiBoYXZlX29ic29sZXRlZF9wYXRjaGVzOgorICAg
ICAgICAgICAgICAgIFBvc3REaWZmQXNQYXRjaFRvQnVnLm9ic29sZXRlX3BhdGNoZXNfb25fYnVn
KGJ1Z19pZCwgdG9vbC5idWdzKQorICAgICAgICAgICAgICAgIGhhdmVfb2Jzb2xldGVkX3BhdGNo
ZXMudXBkYXRlKGJ1Z19pZCkKKwogICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBjb21taXRfbGlu
ZXNbMF0KLSAgICAgICAgICAgIGNvbW1lbnRfdGV4dCA9ICJcbiIuam9pbihjb21taXRfbGluZXNb
MTpdKQotICAgICAgICAgICAgY29tbWVudF90ZXh0ICs9ICItLS1cbiIKLSAgICAgICAgICAgIGNv
bW1lbnRfdGV4dCArPSB0b29sLnNjbSgpLmZpbGVzX2NoYW5nZWRfc3VtbWFyeV9mb3JfY29tbWl0
KGNvbW1pdF9pZCkKLSAgICAgICAgCi0gICAgICAgICAgICBkaWZmID0gdG9vbC5zY20oKS5jcmVh
dGVfcGF0Y2goKQorICAgICAgICAgICAgY29tbWVudF90ZXh0ID0gTm9uZQorICAgICAgICAgICAg
aWYgKG9wdGlvbnMuY29tbWVudCk6CisgICAgICAgICAgICAgICAgY29tbWVudF90ZXh0ID0gIlxu
Ii5qb2luKGNvbW1pdF9saW5lc1sxOl0pCisgICAgICAgICAgICAgICAgY29tbWVudF90ZXh0ICs9
ICJcbi0tLVxuIgorICAgICAgICAgICAgICAgIGNvbW1lbnRfdGV4dCArPSB0b29sLnNjbSgpLmZp
bGVzX2NoYW5nZWRfc3VtbWFyeV9mb3JfY29tbWl0KGNvbW1pdF9pZCkKKworICAgICAgICAgICAg
ZGlmZiA9IHRvb2wuc2NtKCkuY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KGNvbW1pdF9p
ZCkKICAgICAgICAgICAgIGRpZmZfZmlsZSA9IFN0cmluZ0lPLlN0cmluZ0lPKGRpZmYpICMgYWRk
X3BhdGNoX3RvX2J1ZyBleHBlY3RzIGEgZmlsZS1saWtlIG9iamVjdAogICAgICAgICAgICAgdG9v
bC5idWdzLmFkZF9wYXRjaF90b19idWcoYnVnX2lkLCBkaWZmX2ZpbGUsIGRlc2NyaXB0aW9uLCBj
b21tZW50X3RleHQsIG1hcmtfZm9yX3Jldmlldz1vcHRpb25zLnJldmlldykKIApkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMv
U2NyaXB0cy9tb2R1bGVzL2J1Z3ppbGxhLnB5CmluZGV4IDIxZjZjZDIuLjdiZGM0NDAgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWd6aWxsYS5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVnemlsbGEucHkKQEAgLTEsNCArMSw1IEBACiAjIENv
cHlyaWdodCAoYykgMjAwOSwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChjKSAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCw2ICszNSw4IEBAIGltcG9ydCBzdWJwcm9j
ZXNzCiBpbXBvcnQgc3lzCiBpbXBvcnQgdXJsbGliMgogCitmcm9tIGRhdGV0aW1lIGltcG9ydCBk
YXRldGltZSAjIHVzZWQgaW4gdGltZXN0YW1wKCkKKwogIyBXZWJLaXQgaW5jbHVkZXMgYSBidWls
dCBjb3B5IG9mIEJlYXV0aWZ1bFNvdXAgaW4gU2NyaXB0cy9tb2R1bGVzCiAjIHNvIHRoaXMgaW1w
b3J0IHNob3VsZCBhbHdheXMgc3VjY2VlZC4KIGZyb20gLkJlYXV0aWZ1bFNvdXAgaW1wb3J0IEJl
YXV0aWZ1bFNvdXAKQEAgLTcwLDYgKzczLDkgQEAgZGVmIHJlYWRfY29uZmlnKGtleSk6CiAgICAg
ICAgIHJldHVybiBOb25lCiAgICAgcmV0dXJuIHZhbHVlLnJzdHJpcCgnXG4nKQogCitkZWYgdGlt
ZXN0YW1wKCk6CisgICAgcmV0dXJuIGRhdGV0aW1lLm5vdygpLnN0cmZ0aW1lKCIlWSVtJWQlSCVN
JVMiKQorCiBjbGFzcyBCdWd6aWxsYToKICAgICBkZWYgX19pbml0X18oc2VsZiwgZHJ5cnVuPUZh
bHNlKToKICAgICAgICAgc2VsZi5kcnlydW4gPSBkcnlydW4KQEAgLTI0Niw3ICsyNTIsNyBAQCBj
bGFzcyBCdWd6aWxsYToKICAgICAgICAgICAgIGxvZyhjb21tZW50X3RleHQpCiAgICAgICAgICAg
ICBzZWxmLmJyb3dzZXJbJ2NvbW1lbnQnXSA9IGNvbW1lbnRfdGV4dAogICAgICAgICBzZWxmLmJy
b3dzZXJbJ2ZsYWdfdHlwZS0xJ10gPSAoJz8nLCkgaWYgbWFya19mb3JfcmV2aWV3IGVsc2UgKCdY
JywpCi0gICAgICAgIHNlbGYuYnJvd3Nlci5hZGRfZmlsZShwYXRjaF9maWxlX29iamVjdCwgInRl
eHQvcGxhaW4iLCAiYnVnemlsbGFfcmVxdWlyZXNfYV9maWxlbmFtZS5wYXRjaCIpCisgICAgICAg
IHNlbGYuYnJvd3Nlci5hZGRfZmlsZShwYXRjaF9maWxlX29iamVjdCwgInRleHQvcGxhaW4iLCAi
YnVnLSVzLSVzLnBhdGNoIiAlIChidWdfaWQsIHRpbWVzdGFtcCgpKSkKICAgICAgICAgc2VsZi5i
cm93c2VyLnN1Ym1pdCgpCiAKICAgICBkZWYgb2Jzb2xldGVfYXR0YWNobWVudChzZWxmLCBhdHRh
Y2htZW50X2lkLCBjb21tZW50X3RleHQgPSBOb25lKToKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvbW9kdWxlcy9zY20ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvc2Nt
LnB5CmluZGV4IDk1NWNlM2MuLjM3YWIxMTkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvbW9kdWxlcy9zY20ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL3NjbS5w
eQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJpZ2h0IChjKSAyMDA5LCBHb29nbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKGMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogIyAKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTE1NCw2
ICsxNTUsOSBAQCBjbGFzcyBTQ006CiAgICAgZGVmIHN1cHBvcnRzX2xvY2FsX2NvbW1pdHMoKToK
ICAgICAgICAgcmFpc2UgTm90SW1wbGVtZW50ZWRFcnJvciwgInN1YmNsYXNzZXMgbXVzdCBpbXBs
ZW1lbnQiCiAKKyAgICBkZWYgY3JlYXRlX3BhdGNoX2Zyb21fbG9jYWxfY29tbWl0KHNlbGYsIGNv
bW1pdF9pZCk6CisgICAgICAgIHBhc3MKKwogICAgIGRlZiBjb21taXRfbG9jYWxseV93aXRoX21l
c3NhZ2Uoc2VsZiwgbWVzc2FnZSk6CiAgICAgICAgIHBhc3MKIApAQCAtMjkwLDcgKzI5NCwxMCBA
QCBjbGFzcyBHaXQoU0NNKToKICAgICAgICAgcmV0dXJuIHNlbGYucHVzaF9sb2NhbF9jb21taXRz
X3RvX3NlcnZlcigpCiAKICAgICAjIEdpdC1zcGVjaWZpYyBtZXRob2RzOgotICAgIAorCisgICAg
ZGVmIGNyZWF0ZV9wYXRjaF9mcm9tX2xvY2FsX2NvbW1pdChzZWxmLCBjb21taXRfaWQpOgorICAg
ICAgICByZXR1cm4gc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdkaWZmJywgY29tbWl0X2lkICsg
Il4uLiIgKyBjb21taXRfaWRdKQorCiAgICAgZGVmIGNvbW1pdF9sb2NhbGx5X3dpdGhfbWVzc2Fn
ZShzZWxmLCBtZXNzYWdlKToKICAgICAgICAgc2VsZi5ydW5fY29tbWFuZChbJ2dpdCcsICdjb21t
aXQnLCAnLS1hbGwnLCAnLUYnLCAnLSddLCBpbnB1dD1tZXNzYWdlKQ==
</data>
<flag name="review"
          id="16886"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>