<?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>53656</bug_id>
          
          <creation_ts>2011-02-02 19:31:59 -0800</creation_ts>
          <short_desc>new-run-webkit-tests: split out thread stack logging code into a sharable module</short_desc>
          <delta_ts>2011-02-08 17:24:16 -0800</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>
          
          <blocked>49566</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>hayato</cc>
    
    <cc>mihaip</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>344493</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-02 19:31:59 -0800</bug_when>
    <thetext>new-run-webkit-tests: split out thread stack logging code into a sharable module</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344494</commentid>
    <comment_count>1</comment_count>
      <attachid>81023</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-02 19:33:20 -0800</bug_when>
    <thetext>Created attachment 81023
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346000</commentid>
    <comment_count>2</comment_count>
      <attachid>81334</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-04 19:05:30 -0800</bug_when>
    <thetext>Created attachment 81334
add log_traceback()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346081</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-05 01:01:19 -0800</bug_when>
    <thetext>I&apos;m entertained that this hack is now an official tested module. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346876</commentid>
    <comment_count>4</comment_count>
      <attachid>81334</attachid>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-02-07 15:18:42 -0800</bug_when>
    <thetext>Comment on attachment 81334
add log_traceback()

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

&gt; Tools/ChangeLog:14
&gt; +        * Scripts/webkitpy/common/system/stack_utils.py: Added.

webkitpy/common/thread may be a more appropriate location for this.

&gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:35
&gt; +def log_wedged_thread(logger, name, id, msg=&apos;&apos;):

Rename id to thread_id, so that it&apos;s more obvious what kind of ID this refers to?

Also, nothing about this method seems specific to wedged threads, log_thread_stack might be a better name.

&gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:45
&gt; +def find_thread_stack(id):

Can this be called _find_thread_stack, to indicate that it&apos;s an internal-only method.

&gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:62
&gt; +def log_stack(logger, stack):

Assuming you don&apos;t need this in your other patches, can this be called _log_stack?

&gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:63
&gt; +    &quot;&quot;&quot;Log a stack trace to log.error().&quot;&quot;&quot;

Doesn&apos;t actually log to log.error anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347113</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 22:32:12 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 81334 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81334&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:14
&gt; &gt; +        * Scripts/webkitpy/common/system/stack_utils.py: Added.
&gt; 
&gt; webkitpy/common/thread may be a more appropriate location for this.
&gt; 

it looks like common/thread has stuff that uses threads. It might be a better place for the message_broker classes if we moved them out of layout_tests. I think this stuff is more appropriately located with other system-specific code.

&gt; &gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:35
&gt; &gt; +def log_wedged_thread(logger, name, id, msg=&apos;&apos;):
&gt; 
&gt; Rename id to thread_id, so that it&apos;s more obvious what kind of ID this refers to?
&gt;

Sure.
 
&gt; Also, nothing about this method seems specific to wedged threads, log_thread_stack might be a better name.
&gt;

Well, it does log the string &quot;wedged&quot; :). I&apos;ll pull that out as well.
 
&gt; &gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:45
&gt; &gt; +def find_thread_stack(id):
&gt; 
&gt; Can this be called _find_thread_stack, to indicate that it&apos;s an internal-only method.
&gt;

Sure.
 
&gt; &gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:62
&gt; &gt; +def log_stack(logger, stack):
&gt; 
&gt; Assuming you don&apos;t need this in your other patches, can this be called _log_stack?
&gt; 

Sure.

&gt; &gt; Tools/Scripts/webkitpy/common/system/stack_utils.py:63
&gt; &gt; +    &quot;&quot;&quot;Log a stack trace to log.error().&quot;&quot;&quot;
&gt; 
&gt; Doesn&apos;t actually log to log.error anymore.

Will update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347120</commentid>
    <comment_count>6</comment_count>
      <attachid>81588</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-07 22:43:46 -0800</bug_when>
    <thetext>Created attachment 81588
Update w/ review feedback from mihaip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347811</commentid>
    <comment_count>7</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-08 16:48:49 -0800</bug_when>
    <thetext>Committed r77994: &lt;http://trac.webkit.org/changeset/77994&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347835</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-08 17:24:16 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/77994 might have broken Qt Linux Release</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81023</attachid>
            <date>2011-02-02 19:33:20 -0800</date>
            <delta_ts>2011-02-04 19:05:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53656-20110202193319.patch</filename>
            <type>text/plain</type>
            <size>11257</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyY2Zh
MTlmNjFiM2E3M2Q4YzA2NDc1ZmFlOWM5YjhlYmE5YTQwYmIzLi5hYmVlOWIwOWY3YmFmYTNmNTA0
MGM2YTdmOWViNGZlODk0MWYyY2U5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMgQEAKIDIwMTEtMDItMDIgIERpcmsgUHJhbmtl
ICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IHNwbGl0IG91dCB0aHJlYWQg
c3RhY2sgbG9nZ2luZyBjb2RlIGludG8gYSBzaGFyYWJsZSBtb2R1bGUKKworICAgICAgICBUaGlz
IHBhdGNoIHNwbGl0cyBvdXQgdGhlIGNvZGUgdXNlZCB0byBmaW5kIGFuZCBsb2cgdGhyZWFkCisg
ICAgICAgIHN0YWNrcyBmcm9tIE5SV1Qtc3BlY2lmaWMgcGFja2FnZXMgdG8gc29tZXRoaW5nIGdl
bmVyaWMgYW5kCisgICAgICAgIHNoYXJlYWJsZSBieSBvdGhlciBweXRob24gbW9kdWxlcy4gSXQg
d2lsbCBiZSBzaGFyZWQgaW4gdGhlIG5lYXIKKyAgICAgICAgZnV0dXJlIGJ5IHRoZSBtYW5hZ2Vy
X3dvcmtlcl9icm9rZXIgbW9kdWxlLCBmb3IgZXhhbXBsZS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2NTYKKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weTogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9tZXNzYWdlX2Jyb2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weToKKworMjAx
MS0wMi0wMiAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KKwogICAgICAgICBS
ZXZpZXdlZCBieSBNaWhhaSBQYXJwYXJpdGEuCiAKICAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVz
dHM6IGhhcmRjb2RlIHRoZSBkaXJlY3RvcmllcyB0byBzY2FuIGZvciB0ZXN0cwpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzLnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzLnB5Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmYxODczZTI4ODlhN2NmMTE4MzViNjVjMTJhM2Y3OTRjMmM2ZDAwNzcKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRp
bHMucHkKQEAgLTAsMCArMSw1OSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMg
bWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
IyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29n
bGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyIiIlNpbXBsZSByb3V0
aW5lcyBmb3IgbG9nZ2luZywgb2J0YWluaW5nIHRocmVhZCBzdGFjayBpbmZvcm1hdGlvbi4iIiIK
KworaW1wb3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworCisKK2RlZiBsb2dfd2VkZ2VkX3RocmVh
ZChsb2dnZXIsIG5hbWUsIGlkKToKKyAgICAiIiJMb2cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdp
dmVuIHRocmVhZCBzdGF0ZS4iIiIKKyAgICBzdGFjayA9IGZpbmRfdGhyZWFkX3N0YWNrKGlkKQor
ICAgIGFzc2VydChzdGFjayBpcyBub3QgTm9uZSkKKyAgICBsb2dnZXIoIiIpCisgICAgbG9nZ2Vy
KCIlcyAodGlkICVkKSBpcyB3ZWRnZWQiICUgKG5hbWUsIGlkKSkKKyAgICBsb2dfc3RhY2sobG9n
Z2VyLCBzdGFjaykKKyAgICBsb2dnZXIoIiIpCisKKworZGVmIGZpbmRfdGhyZWFkX3N0YWNrKGlk
KToKKyAgICAiIiJSZXR1cm5zIGEgc3RhY2sgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZHVt
cCBhIHN0YWNrIHRyYWNlIGZvcgorICAgIHRoZSBnaXZlbiB0aHJlYWQgaWQgKG9yIE5vbmUgaWYg
dGhlIGlkIGlzIG5vdCBmb3VuZCkuIiIiCisgICAgZm9yIHRocmVhZF9pZCwgc3RhY2sgaW4gc3lz
Ll9jdXJyZW50X2ZyYW1lcygpLml0ZW1zKCk6CisgICAgICAgIGlmIHRocmVhZF9pZCA9PSBpZDoK
KyAgICAgICAgICAgIHJldHVybiBzdGFjaworICAgIHJldHVybiBOb25lCisKKworZGVmIGxvZ19z
dGFjayhsb2dnZXIsIHN0YWNrKToKKyAgICAiIiJMb2cgYSBzdGFjayB0cmFjZSB0byBsb2cuZXJy
b3IoKS4iIiIKKyAgICBmb3IgZmlsZW5hbWUsIGxpbmVubywgbmFtZSwgbGluZSBpbiB0cmFjZWJh
Y2suZXh0cmFjdF9zdGFjayhzdGFjayk6CisgICAgICAgIGxvZ2dlcignRmlsZTogIiVzIiwgbGlu
ZSAlZCwgaW4gJXMnICUgKGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUpKQorICAgICAgICBpZiBsaW5l
OgorICAgICAgICAgICAgbG9nZ2VyKCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlsc191
bml0dGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZGZiNzJiZWRjYWNkMTM3ZjNiMmNjM2M2MDBkODM2Yzk2
Yzk0MGZmCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyMgQ29weXJp
Z2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0
ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCitpbXBvcnQgc3lzCitpbXBvcnQgdW5pdHRlc3QKKworZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtIGltcG9ydCBvdXRwdXRjYXB0dXJlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0gaW1wb3J0IHN0YWNrX3V0aWxzCisKKworZGVmIGN1cnJlbnRfdGhyZWFkX2lkKCk6Cisg
ICAgaWQsIF8gPSBzeXMuX2N1cnJlbnRfZnJhbWVzKCkuaXRlbXMoKVswXQorICAgIHJldHVybiBp
ZAorCisKK2NsYXNzIFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgorICAgIGRlZiB0ZXN0X2ZpbmRf
dGhyZWFkX3N0YWNrX2ZvdW5kKHNlbGYpOgorICAgICAgICBpZCA9IGN1cnJlbnRfdGhyZWFkX2lk
KCkKKyAgICAgICAgZm91bmRfc3RhY2sgPSBzdGFja191dGlscy5maW5kX3RocmVhZF9zdGFjayhp
ZCkKKyAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChmb3VuZF9zdGFjaywgTm9uZSkKKworICAg
IGRlZiB0ZXN0X2ZpbmRfdGhyZWFkX3N0YWNrX25vdF9mb3VuZChzZWxmKToKKyAgICAgICAgZm91
bmRfc3RhY2sgPSBzdGFja191dGlscy5maW5kX3RocmVhZF9zdGFjaygwKQorICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKGZvdW5kX3N0YWNrLCBOb25lKQorCisgICAgZGVmIHRlc3RfbG9nX3dlZGdl
ZF90aHJlYWQoc2VsZik6CisgICAgICAgIG1zZ3MgPSBbXQorCisgICAgICAgIGRlZiBsb2dnZXIo
bXNnKToKKyAgICAgICAgICAgIG1zZ3MuYXBwZW5kKG1zZykKKworICAgICAgICBpZCA9IGN1cnJl
bnRfdGhyZWFkX2lkKCkKKyAgICAgICAgc3RhY2tfdXRpbHMubG9nX3dlZGdlZF90aHJlYWQobG9n
Z2VyLCAidGVzdCIsIGlkKQorCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgdW5p
dHRlc3QubWFpbigpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5CmluZGV4
IDQ4MWM2MTcwNDk0ODU2YWRkNTU1NmVhYjU1NzJiMWU3MTJiNTAwYmMuLjRkOTk5YzZhYmQ5Njlk
ZDRlOGU2YjIzOThmMmE3Yjc3YmZiMzczZjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3Nh
Z2VfYnJva2VyLnB5CkBAIC00MSw5ICs0MSw5IEBAIHJlcXVlc3RlZCBjb25maWd1cmF0aW9uLgog
IiIiCiAKIGltcG9ydCBsb2dnaW5nCi1pbXBvcnQgc3lzCiBpbXBvcnQgdGltZQotaW1wb3J0IHRy
YWNlYmFjaworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IHN0YWNrX3V0aWxz
CiAKIGltcG9ydCBkdW1wX3JlbmRlcl90cmVlX3RocmVhZAogCkBAIC0xNDgsNyArMTQ4LDcgQEAg
Y2xhc3MgTXVsdGlUaHJlYWRlZEJyb2tlcihXb3JrZXJNZXNzYWdlQnJva2VyKToKICAgICAgICAg
ICAgICAgICAgICAgc29tZV90aHJlYWRfaXNfYWxpdmUgPSBUcnVlCiAgICAgICAgICAgICAgICAg
ICAgIG5leHRfdGltZW91dCA9IHRocmVhZC5uZXh0X3RpbWVvdXQoKQogICAgICAgICAgICAgICAg
ICAgICBpZiBuZXh0X3RpbWVvdXQgYW5kIHQgPiBuZXh0X3RpbWVvdXQ6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBsb2dfd2VkZ2VkX3dvcmtlcih0aHJlYWQuZ2V0TmFtZSgpLCB0aHJlYWQuaWQo
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrX3V0aWxzLmxvZ193ZWRnZWRfdGhyZWFk
KF9sb2cuZXJyb3IsIHRocmVhZC5nZXROYW1lKCksIHRocmVhZC5pZCgpKQogICAgICAgICAgICAg
ICAgICAgICAgICAgdGhyZWFkLmNsZWFyX25leHRfdGltZW91dCgpCiAKICAgICAgICAgICAgICAg
ICBleGNlcHRpb25faW5mbyA9IHRocmVhZC5leGNlcHRpb25faW5mbygpCkBAIC0xNjgsMzAgKzE2
OCwzIEBAIGNsYXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tlcik6CiAg
ICAgICAgIHRocmVhZHMgPSBzZWxmLl90aHJlYWRzKCkKICAgICAgICAgZm9yIHRocmVhZCBpbiB0
aHJlYWRzOgogICAgICAgICAgICAgdGhyZWFkLmNhbmNlbCgpCi0KLQotZGVmIGxvZ193ZWRnZWRf
d29ya2VyKG5hbWUsIGlkKToKLSAgICAiIiJMb2cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdpdmVu
IHdvcmtlciBzdGF0ZS4iIiIKLSAgICBzdGFjayA9IF9maW5kX3RocmVhZF9zdGFjayhpZCkKLSAg
ICBhc3NlcnQoc3RhY2sgaXMgbm90IE5vbmUpCi0gICAgX2xvZy5lcnJvcigiIikKLSAgICBfbG9n
LmVycm9yKCIlcyAodGlkICVkKSBpcyB3ZWRnZWQiICUgKG5hbWUsIGlkKSkKLSAgICBfbG9nX3N0
YWNrKHN0YWNrKQotICAgIF9sb2cuZXJyb3IoIiIpCi0KLQotZGVmIF9maW5kX3RocmVhZF9zdGFj
ayhpZCk6Ci0gICAgIiIiUmV0dXJucyBhIHN0YWNrIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRv
IGR1bXAgYSBzdGFjayB0cmFjZSBmb3IKLSAgICB0aGUgZ2l2ZW4gdGhyZWFkIGlkIChvciBOb25l
IGlmIHRoZSBpZCBpcyBub3QgZm91bmQpLiIiIgotICAgIGZvciB0aHJlYWRfaWQsIHN0YWNrIGlu
IHN5cy5fY3VycmVudF9mcmFtZXMoKS5pdGVtcygpOgotICAgICAgICBpZiB0aHJlYWRfaWQgPT0g
aWQ6Ci0gICAgICAgICAgICByZXR1cm4gc3RhY2sKLSAgICByZXR1cm4gTm9uZQotCi0KLWRlZiBf
bG9nX3N0YWNrKHN0YWNrKToKLSAgICAiIiJMb2cgYSBzdGFjayB0cmFjZSB0byBsb2cuZXJyb3Io
KS4iIiIKLSAgICBmb3IgZmlsZW5hbWUsIGxpbmVubywgbmFtZSwgbGluZSBpbiB0cmFjZWJhY2su
ZXh0cmFjdF9zdGFjayhzdGFjayk6Ci0gICAgICAgIF9sb2cuZXJyb3IoJ0ZpbGU6ICIlcyIsIGxp
bmUgJWQsIGluICVzJyAlIChmaWxlbmFtZSwgbGluZW5vLCBuYW1lKSkKLSAgICAgICAgaWYgbGlu
ZToKLSAgICAgICAgICAgIF9sb2cuZXJyb3IoJyAgJXMnICUgbGluZS5zdHJpcCgpKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
bWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQppbmRleCA2
ZjA0ZmQzNTUxOGEwNGViZDY5MTlmZjhhOTc2MTNjZjRjNWJlMWY0Li5kYWE1NDk0NzIwYWNlZDcw
YWUzY2U1YTFkMGI5MzIyODA0YzNlZWU0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weQpAQCAtOTEsMTUgKzkxLDYgQEAgY2xhc3MgVGVz
dFRocmVhZCh0aHJlYWRpbmcuVGhyZWFkKToKICAgICBkZWYgY2xlYXJfbmV4dF90aW1lb3V0KHNl
bGYpOgogICAgICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSBOb25lCiAKLWNsYXNzIFRlc3RIYW5k
bGVyKGxvZ2dpbmcuSGFuZGxlcik6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGFzdHJlYW0pOgot
ICAgICAgICBsb2dnaW5nLkhhbmRsZXIuX19pbml0X18oc2VsZikKLSAgICAgICAgc2VsZi5fc3Ry
ZWFtID0gYXN0cmVhbQotCi0gICAgZGVmIGVtaXQoc2VsZiwgcmVjb3JkKToKLSAgICAgICAgc2Vs
Zi5fc3RyZWFtLndyaXRlKHNlbGYuZm9ybWF0KHJlY29yZCkpCi0KLQogY2xhc3MgTXVsdGlUaHJl
YWRlZEJyb2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGNsYXNzIE1vY2tUZXN0UnVu
bmVyKG9iamVjdCk6CiAgICAgICAgIGRlZiBfX2luaXRfXyhzZWxmKToKQEAgLTE0NSwzOSArMTM2
LDUgQEAgY2xhc3MgTXVsdGlUaHJlYWRlZEJyb2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLnJ1bl9vbmVfdGhyZWFk
LCAnRXhjZXB0aW9uJykKIAogCi1jbGFzcyBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICBk
ZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19mb3VuZChzZWxmKToKLSAgICAgICAgaWQsIHN0YWNr
ID0gc3lzLl9jdXJyZW50X2ZyYW1lcygpLml0ZW1zKClbMF0KLSAgICAgICAgZm91bmRfc3RhY2sg
PSBtZXNzYWdlX2Jyb2tlci5fZmluZF90aHJlYWRfc3RhY2soaWQpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0Tm90RXF1YWwoZm91bmRfc3RhY2ssIE5vbmUpCi0KLSAgICBkZWYgdGVzdF9maW5kX3RocmVh
ZF9zdGFja19ub3RfZm91bmQoc2VsZik6Ci0gICAgICAgIGZvdW5kX3N0YWNrID0gbWVzc2FnZV9i
cm9rZXIuX2ZpbmRfdGhyZWFkX3N0YWNrKDApCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm91
bmRfc3RhY2ssIE5vbmUpCi0KLSAgICBkZWYgdGVzdF9sb2dfd2VkZ2VkX3dvcmtlcihzZWxmKToK
LSAgICAgICAgb2MgPSBvdXRwdXRjYXB0dXJlLk91dHB1dENhcHR1cmUoKQotICAgICAgICBvYy5j
YXB0dXJlX291dHB1dCgpCi0gICAgICAgIGxvZ2dlciA9IG1lc3NhZ2VfYnJva2VyLl9sb2cKLSAg
ICAgICAgYXN0cmVhbSA9IGFycmF5X3N0cmVhbS5BcnJheVN0cmVhbSgpCi0gICAgICAgIGhhbmRs
ZXIgPSBUZXN0SGFuZGxlcihhc3RyZWFtKQotICAgICAgICBsb2dnZXIuYWRkSGFuZGxlcihoYW5k
bGVyKQotCi0gICAgICAgIHN0YXJ0aW5nX3F1ZXVlID0gUXVldWUuUXVldWUoKQotICAgICAgICBz
dG9wcGluZ19xdWV1ZSA9IFF1ZXVlLlF1ZXVlKCkKLSAgICAgICAgY2hpbGRfdGhyZWFkID0gVGVz
dFRocmVhZChzdGFydGluZ19xdWV1ZSwgc3RvcHBpbmdfcXVldWUpCi0gICAgICAgIGNoaWxkX3Ro
cmVhZC5zdGFydCgpCi0gICAgICAgIG1zZyA9IHN0YXJ0aW5nX3F1ZXVlLmdldCgpCi0KLSAgICAg
ICAgbWVzc2FnZV9icm9rZXIubG9nX3dlZGdlZF93b3JrZXIoY2hpbGRfdGhyZWFkLmdldE5hbWUo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfdGhyZWFk
LmlkKCkpCi0gICAgICAgIHN0b3BwaW5nX3F1ZXVlLnB1dCgnJykKLSAgICAgICAgY2hpbGRfdGhy
ZWFkLmpvaW4odGltZW91dD0xLjApCi0KLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShhc3RyZWFt
LmVtcHR5KCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UoY2hpbGRfdGhyZWFkLmlzQWxpdmUo
KSkKLSAgICAgICAgb2MucmVzdG9yZV9vdXRwdXQoKQotCi0KIGlmIF9fbmFtZV9fID09ICdfX21h
aW5fXyc6CiAgICAgdW5pdHRlc3QubWFpbigpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81334</attachid>
            <date>2011-02-04 19:05:30 -0800</date>
            <delta_ts>2011-02-07 22:43:44 -0800</delta_ts>
            <desc>add log_traceback()</desc>
            <filename>bug-53656-20110204190529.patch</filename>
            <type>text/plain</type>
            <size>10373</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZTcz
NDgyOTg3NWNjMDg1MTU4MmM5ZGM2MDk1MTE2OTk3NDM2YWJiLi5kZjM5NzNlZDZhZWQ3NzFlNTAz
ZjNkYzMxYTc0NDU5OTczMTBjNTZmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDIgIERpcmsgUHJhbmtl
ICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IHNwbGl0IG91dCB0aHJlYWQg
c3RhY2sgbG9nZ2luZyBjb2RlIGludG8gYSBzaGFyYWJsZSBtb2R1bGUKKworICAgICAgICBUaGlz
IHBhdGNoIHNwbGl0cyBvdXQgdGhlIGNvZGUgdXNlZCB0byBmaW5kIGFuZCBsb2cgdGhyZWFkCisg
ICAgICAgIHN0YWNrcyBmcm9tIE5SV1Qtc3BlY2lmaWMgcGFja2FnZXMgdG8gc29tZXRoaW5nIGdl
bmVyaWMgYW5kCisgICAgICAgIHNoYXJlYWJsZSBieSBvdGhlciBweXRob24gbW9kdWxlcy4gSXQg
d2lsbCBiZSBzaGFyZWQgaW4gdGhlIG5lYXIKKyAgICAgICAgZnV0dXJlIGJ5IHRoZSBtYW5hZ2Vy
X3dvcmtlcl9icm9rZXIgbW9kdWxlLCBmb3IgZXhhbXBsZS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2NTYKKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weTogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9tZXNzYWdlX2Jyb2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weToKKwogMjAx
MS0wMS0zMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYzI4Y2VlZjIwY2Mw
N2Y3Y2JlNWM0NDhmMWM0YzI3YzVlMDQyNzczCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzLnB5CkBAIC0wLDAgKzEsNjcg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJTaW1wbGUgcm91dGluZXMgZm9yIGxvZ2dpbmcsIG9i
dGFpbmluZyB0aHJlYWQgc3RhY2sgaW5mb3JtYXRpb24uIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9y
dCB0cmFjZWJhY2sKKworCitkZWYgbG9nX3dlZGdlZF90aHJlYWQobG9nZ2VyLCBuYW1lLCBpZCwg
bXNnPScnKToKKyAgICAiIiJMb2cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdpdmVuIHRocmVhZCBz
dGF0ZS4iIiIKKyAgICBzdGFjayA9IGZpbmRfdGhyZWFkX3N0YWNrKGlkKQorICAgIGFzc2VydChz
dGFjayBpcyBub3QgTm9uZSkKKyAgICBsb2dnZXIoIiIpCisgICAgbG9nZ2VyKCIlcyAodGlkICVk
KSBpcyB3ZWRnZWQlcyIgJSAobmFtZSwgaWQsIG1zZykpCisgICAgbG9nX3N0YWNrKGxvZ2dlciwg
c3RhY2spCisgICAgbG9nZ2VyKCIiKQorCisKK2RlZiBmaW5kX3RocmVhZF9zdGFjayhpZCk6Cisg
ICAgIiIiUmV0dXJucyBhIHN0YWNrIG9iamVjdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGR1bXAgYSBz
dGFjayB0cmFjZSBmb3IKKyAgICB0aGUgZ2l2ZW4gdGhyZWFkIGlkIChvciBOb25lIGlmIHRoZSBp
ZCBpcyBub3QgZm91bmQpLiIiIgorICAgIGZvciB0aHJlYWRfaWQsIHN0YWNrIGluIHN5cy5fY3Vy
cmVudF9mcmFtZXMoKS5pdGVtcygpOgorICAgICAgICBpZiB0aHJlYWRfaWQgPT0gaWQ6CisgICAg
ICAgICAgICByZXR1cm4gc3RhY2sKKyAgICByZXR1cm4gTm9uZQorCisKK2RlZiBsb2dfdHJhY2Vi
YWNrKGxvZ2dlciwgdGIpOgorICAgIHN0YWNrID0gdHJhY2ViYWNrLmV4dHJhY3RfdGIodGIpCisg
ICAgZm9yIGZyYW1lX3N0ciBpbiB0cmFjZWJhY2suZm9ybWF0X2xpc3Qoc3RhY2spOgorICAgICAg
ICBmb3IgbGluZSBpbiBmcmFtZV9zdHIuc3BsaXQoJ1xuJyk6CisgICAgICAgICAgICBpZiBsaW5l
OgorICAgICAgICAgICAgICAgIGxvZ2dlcigiICAlcyIgJSBsaW5lKQorCisKK2RlZiBsb2dfc3Rh
Y2sobG9nZ2VyLCBzdGFjayk6CisgICAgIiIiTG9nIGEgc3RhY2sgdHJhY2UgdG8gbG9nLmVycm9y
KCkuIiIiCisgICAgZm9yIGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gdHJhY2ViYWNr
LmV4dHJhY3Rfc3RhY2soc3RhY2spOgorICAgICAgICBsb2dnZXIoJ0ZpbGU6ICIlcyIsIGxpbmUg
JWQsIGluICVzJyAlIChmaWxlbmFtZSwgbGluZW5vLCBuYW1lKSkKKyAgICAgICAgaWYgbGluZToK
KyAgICAgICAgICAgIGxvZ2dlcignICAlcycgJSBsaW5lLnN0cmlwKCkpCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRpbHNfdW5pdHRlc3Qu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRpbHNfdW5p
dHRlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uY2RmYjcyYmVkY2FjZDEzN2YzYjJjYzNjNjAwZDgzNmM5NmM5
NDBmZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5
c3RlbS9zdGFja191dGlsc191bml0dGVzdC5weQpAQCAtMCwwICsxLDYyIEBACisjIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMg
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
CisjIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LAorIyBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKworaW1wb3J0IHN5cworaW1wb3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbSBpbXBvcnQgb3V0cHV0Y2FwdHVyZQorZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtIGltcG9ydCBzdGFja191dGlscworCisKK2RlZiBjdXJyZW50X3RocmVhZF9pZCgpOgorICAg
IGlkLCBfID0gc3lzLl9jdXJyZW50X2ZyYW1lcygpLml0ZW1zKClbMF0KKyAgICByZXR1cm4gaWQK
KworCitjbGFzcyBUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9maW5kX3Ro
cmVhZF9zdGFja19mb3VuZChzZWxmKToKKyAgICAgICAgaWQgPSBjdXJyZW50X3RocmVhZF9pZCgp
CisgICAgICAgIGZvdW5kX3N0YWNrID0gc3RhY2tfdXRpbHMuZmluZF90aHJlYWRfc3RhY2soaWQp
CisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZm91bmRfc3RhY2ssIE5vbmUpCisKKyAgICBk
ZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19ub3RfZm91bmQoc2VsZik6CisgICAgICAgIGZvdW5k
X3N0YWNrID0gc3RhY2tfdXRpbHMuZmluZF90aHJlYWRfc3RhY2soMCkKKyAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChmb3VuZF9zdGFjaywgTm9uZSkKKworICAgIGRlZiB0ZXN0X2xvZ193ZWRnZWRf
dGhyZWFkKHNlbGYpOgorICAgICAgICBtc2dzID0gW10KKworICAgICAgICBkZWYgbG9nZ2VyKG1z
Zyk6CisgICAgICAgICAgICBtc2dzLmFwcGVuZChtc2cpCisKKyAgICAgICAgaWQgPSBjdXJyZW50
X3RocmVhZF9pZCgpCisgICAgICAgIHN0YWNrX3V0aWxzLmxvZ193ZWRnZWRfdGhyZWFkKGxvZ2dl
ciwgInRlc3QiLCBpZCkKKworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIHVuaXR0
ZXN0Lm1haW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQppbmRleCBk
OTlmY2VkNzdjMWQxNWU5MWI2OTE5NjFlYTA1YjI3ZGRkY2JhNWE4Li43OTY3MGQzODhlODM5Mjkw
MjAyOTdiYjQ1YzkzMGY4YmMwYzg0YWNiIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlci5weQorKysgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdl
X2Jyb2tlci5weQpAQCAtNDEsOSArNDEsOSBAQCByZXF1ZXN0ZWQgY29uZmlndXJhdGlvbi4KICIi
IgogCiBpbXBvcnQgbG9nZ2luZwotaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKLWltcG9ydCB0cmFj
ZWJhY2sKKworZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtIGltcG9ydCBzdGFja191dGlscwog
CiBpbXBvcnQgZHVtcF9yZW5kZXJfdHJlZV90aHJlYWQKIApAQCAtMTUyLDcgKzE1Miw3IEBAIGNs
YXNzIE11bHRpVGhyZWFkZWRCcm9rZXIoV29ya2VyTWVzc2FnZUJyb2tlcik6CiAgICAgICAgICAg
ICAgICAgICAgIHNvbWVfdGhyZWFkX2lzX2FsaXZlID0gVHJ1ZQogICAgICAgICAgICAgICAgICAg
ICBuZXh0X3RpbWVvdXQgPSB0aHJlYWQubmV4dF90aW1lb3V0KCkKICAgICAgICAgICAgICAgICAg
ICAgaWYgbmV4dF90aW1lb3V0IGFuZCB0ID4gbmV4dF90aW1lb3V0OgotICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nX3dlZGdlZF93b3JrZXIodGhyZWFkLmdldE5hbWUoKSwgdGhyZWFkLmlkKCkp
CisgICAgICAgICAgICAgICAgICAgICAgICBzdGFja191dGlscy5sb2dfd2VkZ2VkX3RocmVhZChf
bG9nLmVycm9yLCB0aHJlYWQuZ2V0TmFtZSgpLCB0aHJlYWQuaWQoKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgIHRocmVhZC5jbGVhcl9uZXh0X3RpbWVvdXQoKQogICAgICAgICAgICAgICAgICAg
ICAgICAgd2VkZ2VkX3RocmVhZHMuYWRkKHRocmVhZCkKIApAQCAtMTc2LDMwICsxNzYsMyBAQCBj
bGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdvcmtlck1lc3NhZ2VCcm9rZXIpOgogICAgICAgICB0
aHJlYWRzID0gc2VsZi5fdGhyZWFkcygpCiAgICAgICAgIGZvciB0aHJlYWQgaW4gdGhyZWFkczoK
ICAgICAgICAgICAgIHRocmVhZC5jYW5jZWwoKQotCi0KLWRlZiBsb2dfd2VkZ2VkX3dvcmtlcihu
YW1lLCBpZCk6Ci0gICAgIiIiTG9nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBnaXZlbiB3b3JrZXIg
c3RhdGUuIiIiCi0gICAgc3RhY2sgPSBfZmluZF90aHJlYWRfc3RhY2soaWQpCi0gICAgYXNzZXJ0
KHN0YWNrIGlzIG5vdCBOb25lKQotICAgIF9sb2cuZXJyb3IoIiIpCi0gICAgX2xvZy5lcnJvcigi
JXMgKHRpZCAlZCkgaXMgd2VkZ2VkIiAlIChuYW1lLCBpZCkpCi0gICAgX2xvZ19zdGFjayhzdGFj
aykKLSAgICBfbG9nLmVycm9yKCIiKQotCi0KLWRlZiBfZmluZF90aHJlYWRfc3RhY2soaWQpOgot
ICAgICIiIlJldHVybnMgYSBzdGFjayBvYmplY3QgdGhhdCBjYW4gYmUgdXNlZCB0byBkdW1wIGEg
c3RhY2sgdHJhY2UgZm9yCi0gICAgdGhlIGdpdmVuIHRocmVhZCBpZCAob3IgTm9uZSBpZiB0aGUg
aWQgaXMgbm90IGZvdW5kKS4iIiIKLSAgICBmb3IgdGhyZWFkX2lkLCBzdGFjayBpbiBzeXMuX2N1
cnJlbnRfZnJhbWVzKCkuaXRlbXMoKToKLSAgICAgICAgaWYgdGhyZWFkX2lkID09IGlkOgotICAg
ICAgICAgICAgcmV0dXJuIHN0YWNrCi0gICAgcmV0dXJuIE5vbmUKLQotCi1kZWYgX2xvZ19zdGFj
ayhzdGFjayk6Ci0gICAgIiIiTG9nIGEgc3RhY2sgdHJhY2UgdG8gbG9nLmVycm9yKCkuIiIiCi0g
ICAgZm9yIGZpbGVuYW1lLCBsaW5lbm8sIG5hbWUsIGxpbmUgaW4gdHJhY2ViYWNrLmV4dHJhY3Rf
c3RhY2soc3RhY2spOgotICAgICAgICBfbG9nLmVycm9yKCdGaWxlOiAiJXMiLCBsaW5lICVkLCBp
biAlcycgJSAoZmlsZW5hbWUsIGxpbmVubywgbmFtZSkpCi0gICAgICAgIGlmIGxpbmU6Ci0gICAg
ICAgICAgICBfbG9nLmVycm9yKCcgICVzJyAlIGxpbmUuc3RyaXAoKSkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2Vf
YnJva2VyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkKaW5kZXggYWUyMTU2M2Vm
MDNlNWVmMjZhMDM4YWJjNzU2NzNiN2QxNTVkZWNkMC4uZjRjYjVkMjc1ODI0ODkzYmM2OWViYTFl
ZDJhNTViYmJmNDM2ZmVkNiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXJfdW5pdHRlc3QucHkKKysrIGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2Fn
ZV9icm9rZXJfdW5pdHRlc3QucHkKQEAgLTkwLDcgKzkwLDYgQEAgY2xhc3MgVGVzdFRocmVhZCh0
aHJlYWRpbmcuVGhyZWFkKToKICAgICBkZWYgY2xlYXJfbmV4dF90aW1lb3V0KHNlbGYpOgogICAg
ICAgICBzZWxmLl9uZXh0X3RpbWVvdXQgPSBOb25lCiAKLQogY2xhc3MgVGVzdEhhbmRsZXIobG9n
Z2luZy5IYW5kbGVyKToKICAgICBkZWYgX19pbml0X18oc2VsZiwgYXN0cmVhbSk6CiAgICAgICAg
IGxvZ2dpbmcuSGFuZGxlci5fX2luaXRfXyhzZWxmKQpAQCAtMTU3LDE1ICsxNTYsNiBAQCBjbGFz
cyBNdWx0aVRocmVhZGVkQnJva2VyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgZGVmIHRl
c3RfZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9y
LCBzZWxmLnJ1bl9vbmVfdGhyZWFkLCAnRXhjZXB0aW9uJykKIAotICAgIGRlZiB0ZXN0X2ZpbmRf
dGhyZWFkX3N0YWNrX2ZvdW5kKHNlbGYpOgotICAgICAgICBpZCwgc3RhY2sgPSBzeXMuX2N1cnJl
bnRfZnJhbWVzKCkuaXRlbXMoKVswXQotICAgICAgICBmb3VuZF9zdGFjayA9IG1lc3NhZ2VfYnJv
a2VyLl9maW5kX3RocmVhZF9zdGFjayhpZCkKLSAgICAgICAgc2VsZi5hc3NlcnROb3RFcXVhbChm
b3VuZF9zdGFjaywgTm9uZSkKLQotICAgIGRlZiB0ZXN0X2ZpbmRfdGhyZWFkX3N0YWNrX25vdF9m
b3VuZChzZWxmKToKLSAgICAgICAgZm91bmRfc3RhY2sgPSBtZXNzYWdlX2Jyb2tlci5fZmluZF90
aHJlYWRfc3RhY2soMCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChmb3VuZF9zdGFjaywgTm9u
ZSkKLQogCiBpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgIHVuaXR0ZXN0Lm1haW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81588</attachid>
            <date>2011-02-07 22:43:46 -0800</date>
            <delta_ts>2011-02-08 16:44:06 -0800</delta_ts>
            <desc>Update w/ review feedback from mihaip</desc>
            <filename>bug-53656-20110207224345.patch</filename>
            <type>text/plain</type>
            <size>10815</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBlZTcz
NDgyOTg3NWNjMDg1MTU4MmM5ZGM2MDk1MTE2OTk3NDM2YWJiLi5kZjM5NzNlZDZhZWQ3NzFlNTAz
ZjNkYzMxYTc0NDU5OTczMTBjNTZmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDIgIERpcmsgUHJhbmtl
ICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgbmV3LXJ1bi13ZWJraXQtdGVzdHM6IHNwbGl0IG91dCB0aHJlYWQg
c3RhY2sgbG9nZ2luZyBjb2RlIGludG8gYSBzaGFyYWJsZSBtb2R1bGUKKworICAgICAgICBUaGlz
IHBhdGNoIHNwbGl0cyBvdXQgdGhlIGNvZGUgdXNlZCB0byBmaW5kIGFuZCBsb2cgdGhyZWFkCisg
ICAgICAgIHN0YWNrcyBmcm9tIE5SV1Qtc3BlY2lmaWMgcGFja2FnZXMgdG8gc29tZXRoaW5nIGdl
bmVyaWMgYW5kCisgICAgICAgIHNoYXJlYWJsZSBieSBvdGhlciBweXRob24gbW9kdWxlcy4gSXQg
d2lsbCBiZSBzaGFyZWQgaW4gdGhlIG5lYXIKKyAgICAgICAgZnV0dXJlIGJ5IHRoZSBtYW5hZ2Vy
X3dvcmtlcl9icm9rZXIgbW9kdWxlLCBmb3IgZXhhbXBsZS4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM2NTYKKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weTogQWRkZWQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5OiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS9tZXNzYWdlX2Jyb2tlci5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVzdC5weToKKwogMjAx
MS0wMS0zMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbW9uL3N5c3RlbS9zdGFja191dGlscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzQzODA3YmMzM2Y1
ZjcxMjgyMGNiZGU1ZGJjOWQxYjVhOWEyZTFlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3N0YWNrX3V0aWxzLnB5CkBAIC0wLDAgKzEsNjcg
QEAKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRp
b24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
IyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCisiIiJTaW1wbGUgcm91dGluZXMgZm9yIGxvZ2dpbmcsIG9i
dGFpbmluZyB0aHJlYWQgc3RhY2sgaW5mb3JtYXRpb24uIiIiCisKK2ltcG9ydCBzeXMKK2ltcG9y
dCB0cmFjZWJhY2sKKworCitkZWYgbG9nX3RocmVhZF9zdGF0ZShsb2dnZXIsIG5hbWUsIHRocmVh
ZF9pZCwgbXNnPScnKToKKyAgICAiIiJMb2cgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGdpdmVuIHRo
cmVhZCBzdGF0ZS4iIiIKKyAgICBzdGFjayA9IF9maW5kX3RocmVhZF9zdGFjayh0aHJlYWRfaWQp
CisgICAgYXNzZXJ0KHN0YWNrIGlzIG5vdCBOb25lKQorICAgIGxvZ2dlcigiIikKKyAgICBsb2dn
ZXIoIiVzICh0aWQgJWQpICVzIiAlIChuYW1lLCB0aHJlYWRfaWQsIG1zZykpCisgICAgX2xvZ19z
dGFjayhsb2dnZXIsIHN0YWNrKQorICAgIGxvZ2dlcigiIikKKworCitkZWYgX2ZpbmRfdGhyZWFk
X3N0YWNrKHRocmVhZF9pZCk6CisgICAgIiIiUmV0dXJucyBhIHN0YWNrIG9iamVjdCB0aGF0IGNh
biBiZSB1c2VkIHRvIGR1bXAgYSBzdGFjayB0cmFjZSBmb3IKKyAgICB0aGUgZ2l2ZW4gdGhyZWFk
IGlkIChvciBOb25lIGlmIHRoZSBpZCBpcyBub3QgZm91bmQpLiIiIgorICAgIGZvciB0aWQsIHN0
YWNrIGluIHN5cy5fY3VycmVudF9mcmFtZXMoKS5pdGVtcygpOgorICAgICAgICBpZiB0aWQgPT0g
dGhyZWFkX2lkOgorICAgICAgICAgICAgcmV0dXJuIHN0YWNrCisgICAgcmV0dXJuIE5vbmUKKwor
CitkZWYgX2xvZ19zdGFjayhsb2dnZXIsIHN0YWNrKToKKyAgICAiIiJMb2cgYSBzdGFjayB0cmFj
ZSB0byB0aGUgbG9nZ2VyIGNhbGxiYWNrLiIiIgorICAgIGZvciBmaWxlbmFtZSwgbGluZW5vLCBu
YW1lLCBsaW5lIGluIHRyYWNlYmFjay5leHRyYWN0X3N0YWNrKHN0YWNrKToKKyAgICAgICAgbG9n
Z2VyKCdGaWxlOiAiJXMiLCBsaW5lICVkLCBpbiAlcycgJSAoZmlsZW5hbWUsIGxpbmVubywgbmFt
ZSkpCisgICAgICAgIGlmIGxpbmU6CisgICAgICAgICAgICBsb2dnZXIoJyAgJXMnICUgbGluZS5z
dHJpcCgpKQorCisKK2RlZiBsb2dfdHJhY2ViYWNrKGxvZ2dlciwgdGIpOgorICAgIHN0YWNrID0g
dHJhY2ViYWNrLmV4dHJhY3RfdGIodGIpCisgICAgZm9yIGZyYW1lX3N0ciBpbiB0cmFjZWJhY2su
Zm9ybWF0X2xpc3Qoc3RhY2spOgorICAgICAgICBmb3IgbGluZSBpbiBmcmFtZV9zdHIuc3BsaXQo
J1xuJyk6CisgICAgICAgICAgICBpZiBsaW5lOgorICAgICAgICAgICAgICAgIGxvZ2dlcigiICAl
cyIgJSBsaW5lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lz
dGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vc3lzdGVtL3N0YWNrX3V0aWxzX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMTMxOWZkZDIx
ZWUwY2Q3M2ZmZmY1ZTdmMTRkMzI4ODJmMGY4YjgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vc3RhY2tfdXRpbHNfdW5pdHRlc3QucHkKQEAg
LTAsMCArMSw3NiBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0OgorIwor
IyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisj
IGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisj
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKK2ltcG9ydCB1bml0
dGVzdAorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0gaW1wb3J0IG91dHB1dGNhcHR1cmUK
K2Zyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbSBpbXBvcnQgc3RhY2tfdXRpbHMKKworCitkZWYg
Y3VycmVudF90aHJlYWRfaWQoKToKKyAgICB0aHJlYWRfaWQsIF8gPSBzeXMuX2N1cnJlbnRfZnJh
bWVzKCkuaXRlbXMoKVswXQorICAgIHJldHVybiB0aHJlYWRfaWQKKworCitjbGFzcyBUZXN0KHVu
aXR0ZXN0LlRlc3RDYXNlKToKKyAgICBkZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19mb3VuZChz
ZWxmKToKKyAgICAgICAgdGhyZWFkX2lkID0gY3VycmVudF90aHJlYWRfaWQoKQorICAgICAgICBm
b3VuZF9zdGFjayA9IHN0YWNrX3V0aWxzLl9maW5kX3RocmVhZF9zdGFjayh0aHJlYWRfaWQpCisg
ICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZm91bmRfc3RhY2ssIE5vbmUpCisKKyAgICBkZWYg
dGVzdF9maW5kX3RocmVhZF9zdGFja19ub3RfZm91bmQoc2VsZik6CisgICAgICAgIGZvdW5kX3N0
YWNrID0gc3RhY2tfdXRpbHMuX2ZpbmRfdGhyZWFkX3N0YWNrKDApCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoZm91bmRfc3RhY2ssIE5vbmUpCisKKyAgICBkZWYgdGVzdF9sb2dfdGhyZWFkX3N0
YXRlKHNlbGYpOgorICAgICAgICBtc2dzID0gW10KKworICAgICAgICBkZWYgbG9nZ2VyKG1zZyk6
CisgICAgICAgICAgICBtc2dzLmFwcGVuZChtc2cpCisKKyAgICAgICAgdGhyZWFkX2lkID0gY3Vy
cmVudF90aHJlYWRfaWQoKQorICAgICAgICBzdGFja191dGlscy5sb2dfdGhyZWFkX3N0YXRlKGxv
Z2dlciwgInRlc3QtdGhyZWFkIiwgdGhyZWFkX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICJpcyB0ZXN0ZWQiKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobXNncykK
KworICAgIGRlZiB0ZXN0X2xvZ190cmFjZWJhY2soc2VsZik6CisgICAgICAgIG1zZ3MgPSBbXQor
CisgICAgICAgIGRlZiBsb2dnZXIobXNnKToKKyAgICAgICAgICAgIG1zZ3MuYXBwZW5kKG1zZykK
KworICAgICAgICB0cnk6CisgICAgICAgICAgICByYWlzZSBWYWx1ZUVycm9yCisgICAgICAgIGV4
Y2VwdDoKKyAgICAgICAgICAgIHN0YWNrX3V0aWxzLmxvZ190cmFjZWJhY2sobG9nZ2VyLCBzeXMu
ZXhjX2luZm8oKVsyXSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1zZ3MpCisKKworaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICB1bml0dGVzdC5tYWluKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2Vf
YnJva2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvbWVzc2FnZV9icm9rZXIucHkKaW5kZXggZDk5ZmNlZDc3YzFkMTVlOTFiNjkxOTYxZWEw
NWIyN2RkZGNiYTVhOC4uNjZhN2FhOGY2ZTMyM2ZiYjlkNjE4NjkwYzZhZTMwNzQ2OTExYTJmNyAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3Bh
Y2thZ2UvbWVzc2FnZV9icm9rZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWVzc2FnZV9icm9rZXIucHkKQEAgLTQxLDkgKzQxLDkg
QEAgcmVxdWVzdGVkIGNvbmZpZ3VyYXRpb24uCiAiIiIKIAogaW1wb3J0IGxvZ2dpbmcKLWltcG9y
dCBzeXMKIGltcG9ydCB0aW1lCi1pbXBvcnQgdHJhY2ViYWNrCisKK2Zyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbSBpbXBvcnQgc3RhY2tfdXRpbHMKIAogaW1wb3J0IGR1bXBfcmVuZGVyX3RyZWVf
dGhyZWFkCiAKQEAgLTE1Miw3ICsxNTIsNyBAQCBjbGFzcyBNdWx0aVRocmVhZGVkQnJva2VyKFdv
cmtlck1lc3NhZ2VCcm9rZXIpOgogICAgICAgICAgICAgICAgICAgICBzb21lX3RocmVhZF9pc19h
bGl2ZSA9IFRydWUKICAgICAgICAgICAgICAgICAgICAgbmV4dF90aW1lb3V0ID0gdGhyZWFkLm5l
eHRfdGltZW91dCgpCiAgICAgICAgICAgICAgICAgICAgIGlmIG5leHRfdGltZW91dCBhbmQgdCA+
IG5leHRfdGltZW91dDoKLSAgICAgICAgICAgICAgICAgICAgICAgIGxvZ193ZWRnZWRfd29ya2Vy
KHRocmVhZC5nZXROYW1lKCksIHRocmVhZC5pZCgpKQorICAgICAgICAgICAgICAgICAgICAgICAg
c3RhY2tfdXRpbHMubG9nX3RocmVhZF9zdGF0ZShfbG9nLmVycm9yLCB0aHJlYWQuZ2V0TmFtZSgp
LCB0aHJlYWQuaWQoKSwgImlzIHdlZGdlZCIpCiAgICAgICAgICAgICAgICAgICAgICAgICB0aHJl
YWQuY2xlYXJfbmV4dF90aW1lb3V0KCkKICAgICAgICAgICAgICAgICAgICAgICAgIHdlZGdlZF90
aHJlYWRzLmFkZCh0aHJlYWQpCiAKQEAgLTE3NiwzMCArMTc2LDMgQEAgY2xhc3MgTXVsdGlUaHJl
YWRlZEJyb2tlcihXb3JrZXJNZXNzYWdlQnJva2VyKToKICAgICAgICAgdGhyZWFkcyA9IHNlbGYu
X3RocmVhZHMoKQogICAgICAgICBmb3IgdGhyZWFkIGluIHRocmVhZHM6CiAgICAgICAgICAgICB0
aHJlYWQuY2FuY2VsKCkKLQotCi1kZWYgbG9nX3dlZGdlZF93b3JrZXIobmFtZSwgaWQpOgotICAg
ICIiIkxvZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZ2l2ZW4gd29ya2VyIHN0YXRlLiIiIgotICAg
IHN0YWNrID0gX2ZpbmRfdGhyZWFkX3N0YWNrKGlkKQotICAgIGFzc2VydChzdGFjayBpcyBub3Qg
Tm9uZSkKLSAgICBfbG9nLmVycm9yKCIiKQotICAgIF9sb2cuZXJyb3IoIiVzICh0aWQgJWQpIGlz
IHdlZGdlZCIgJSAobmFtZSwgaWQpKQotICAgIF9sb2dfc3RhY2soc3RhY2spCi0gICAgX2xvZy5l
cnJvcigiIikKLQotCi1kZWYgX2ZpbmRfdGhyZWFkX3N0YWNrKGlkKToKLSAgICAiIiJSZXR1cm5z
IGEgc3RhY2sgb2JqZWN0IHRoYXQgY2FuIGJlIHVzZWQgdG8gZHVtcCBhIHN0YWNrIHRyYWNlIGZv
cgotICAgIHRoZSBnaXZlbiB0aHJlYWQgaWQgKG9yIE5vbmUgaWYgdGhlIGlkIGlzIG5vdCBmb3Vu
ZCkuIiIiCi0gICAgZm9yIHRocmVhZF9pZCwgc3RhY2sgaW4gc3lzLl9jdXJyZW50X2ZyYW1lcygp
Lml0ZW1zKCk6Ci0gICAgICAgIGlmIHRocmVhZF9pZCA9PSBpZDoKLSAgICAgICAgICAgIHJldHVy
biBzdGFjawotICAgIHJldHVybiBOb25lCi0KLQotZGVmIF9sb2dfc3RhY2soc3RhY2spOgotICAg
ICIiIkxvZyBhIHN0YWNrIHRyYWNlIHRvIGxvZy5lcnJvcigpLiIiIgotICAgIGZvciBmaWxlbmFt
ZSwgbGluZW5vLCBuYW1lLCBsaW5lIGluIHRyYWNlYmFjay5leHRyYWN0X3N0YWNrKHN0YWNrKToK
LSAgICAgICAgX2xvZy5lcnJvcignRmlsZTogIiVzIiwgbGluZSAlZCwgaW4gJXMnICUgKGZpbGVu
YW1lLCBsaW5lbm8sIG5hbWUpKQotICAgICAgICBpZiBsaW5lOgotICAgICAgICAgICAgX2xvZy5l
cnJvcignICAlcycgJSBsaW5lLnN0cmlwKCkpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tZXNzYWdlX2Jyb2tlcl91bml0dGVz
dC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0LnB5CmluZGV4IGFlMjE1NjNlZjAzZTVlZjI2YTAzOGFi
Yzc1NjczYjdkMTU1ZGVjZDAuLmY0Y2I1ZDI3NTgyNDg5M2JjNjllYmExZWQyYTU1YmJiZjQzNmZl
ZDYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91
dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21lc3NhZ2VfYnJva2VyX3VuaXR0
ZXN0LnB5CkBAIC05MCw3ICs5MCw2IEBAIGNsYXNzIFRlc3RUaHJlYWQodGhyZWFkaW5nLlRocmVh
ZCk6CiAgICAgZGVmIGNsZWFyX25leHRfdGltZW91dChzZWxmKToKICAgICAgICAgc2VsZi5fbmV4
dF90aW1lb3V0ID0gTm9uZQogCi0KIGNsYXNzIFRlc3RIYW5kbGVyKGxvZ2dpbmcuSGFuZGxlcik6
CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGFzdHJlYW0pOgogICAgICAgICBsb2dnaW5nLkhhbmRs
ZXIuX19pbml0X18oc2VsZikKQEAgLTE1NywxNSArMTU2LDYgQEAgY2xhc3MgTXVsdGlUaHJlYWRl
ZEJyb2tlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbihz
ZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5ydW5fb25l
X3RocmVhZCwgJ0V4Y2VwdGlvbicpCiAKLSAgICBkZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19m
b3VuZChzZWxmKToKLSAgICAgICAgaWQsIHN0YWNrID0gc3lzLl9jdXJyZW50X2ZyYW1lcygpLml0
ZW1zKClbMF0KLSAgICAgICAgZm91bmRfc3RhY2sgPSBtZXNzYWdlX2Jyb2tlci5fZmluZF90aHJl
YWRfc3RhY2soaWQpCi0gICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZm91bmRfc3RhY2ssIE5v
bmUpCi0KLSAgICBkZWYgdGVzdF9maW5kX3RocmVhZF9zdGFja19ub3RfZm91bmQoc2VsZik6Ci0g
ICAgICAgIGZvdW5kX3N0YWNrID0gbWVzc2FnZV9icm9rZXIuX2ZpbmRfdGhyZWFkX3N0YWNrKDAp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoZm91bmRfc3RhY2ssIE5vbmUpCi0KIAogaWYgX19u
YW1lX18gPT0gJ19fbWFpbl9fJzoKICAgICB1bml0dGVzdC5tYWluKCkK
</data>
<flag name="review"
          id="73198"
          type_id="1"
          status="+"
          setter="mihaip"
    />
          </attachment>
      

    </bug>

</bugzilla>