<?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>74253</bug_id>
          
          <creation_ts>2011-12-11 01:20:14 -0800</creation_ts>
          <short_desc>[Refactoring] Move top-level code to generate a new ChangeLog into a method</short_desc>
          <delta_ts>2011-12-12 08:50:33 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>aroben</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>518876</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-11 01:20:14 -0800</bug_when>
    <thetext>The objective is to make prepare-ChangeLog a loadable Perl module for unit testing, which requires to remove top-level code and global variables. This bug is one of the incremental refactorings for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518877</commentid>
    <comment_count>1</comment_count>
      <attachid>118705</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-11 01:39:01 -0800</bug_when>
    <thetext>Created attachment 118705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518884</commentid>
    <comment_count>2</comment_count>
      <attachid>118705</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-12-11 07:22:03 -0800</bug_when>
    <thetext>Comment on attachment 118705
Patch

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

r- for style issues with variable names, but otherwise this looks good.

&gt; Tools/Scripts/prepare-ChangeLog:171
&gt; +my $added_regression_tests = generateFileList(@changed_files, @conflict_files, %function_lists);

The $aded_regression_tests variable name does not match the prevalent style for variable names in other Perl scripts (and Python and C++ code).  I would expect it to be $addedRegressionTests.

Why is this style being used for these changes?

&gt; Tools/Scripts/prepare-ChangeLog:453
&gt; +    my ($prefixes, $files_in_change_log, $added_regression_tests, $function_lists) = @_;

CamelCase should be used for variables instead of underscores.

&gt; Tools/Scripts/prepare-ChangeLog:1561
&gt; +    my @added_regression_tests;

Should be @addedRegressionTests.

&gt; Tools/Scripts/prepare-ChangeLog:1614
&gt; +                push @added_regression_tests, $file

Ditto.

&gt; Tools/Scripts/prepare-ChangeLog:1631
&gt; +    return \@added_regression_tests;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518885</commentid>
    <comment_count>3</comment_count>
      <attachid>118707</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-11 07:36:05 -0800</bug_when>
    <thetext>Created attachment 118707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518886</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-11 07:36:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 118705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118705&amp;action=review
&gt; 
&gt; r- for style issues with variable names, but otherwise this looks good.
&gt; 
&gt; &gt; Tools/Scripts/prepare-ChangeLog:171
&gt; &gt; +my $added_regression_tests = generateFileList(@changed_files, @conflict_files, %function_lists);
&gt; 
&gt; The $aded_regression_tests variable name does not match the prevalent style for variable names in other Perl scripts (and Python and C++ code).  I would expect it to be $addedRegressionTests.
&gt; 
&gt; Why is this style being used for these changes?

Fixed it.

Actually, I have been so far confused about the convention of variable names in Python and Perl scripts. (i.e. whether the WebKit coding style guide is applied to Python and Perl or not) because we can find many existing Python and Perl scripts that are using under_score_names. In case of ./prepare-ChangeLog, under_score_names appear to be being used a bit more than CamelCaseNames.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518889</commentid>
    <comment_count>5</comment_count>
      <attachid>118707</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-12-11 08:15:16 -0800</bug_when>
    <thetext>Comment on attachment 118707
Patch

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

r=me with the subroutine name change.

&gt; Tools/Scripts/prepare-ChangeLog:451
&gt; +sub generateNewChangeLog($$$\%)

This should probably be named generateNewChangeLogs() since it creates more than one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518891</commentid>
    <comment_count>6</comment_count>
      <attachid>118708</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-12-11 08:25:59 -0800</bug_when>
    <thetext>Created attachment 118708
patch for commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>518905</commentid>
    <comment_count>7</comment_count>
      <attachid>118708</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-11 10:05:07 -0800</bug_when>
    <thetext>Comment on attachment 118708
patch for commit

Clearing flags on attachment: 118708

Committed r102537: &lt;http://trac.webkit.org/changeset/102537&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>519243</commentid>
    <comment_count>8</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-12-12 08:50:33 -0800</bug_when>
    <thetext>Manually marking as RESOLVED/FIXED.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118705</attachid>
            <date>2011-12-11 01:39:01 -0800</date>
            <delta_ts>2011-12-11 07:36:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74253-20111211183900.patch</filename>
            <type>text/plain</type>
            <size>9528</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWE2YTkzNDM0MWQyODBlZjhmYzg0ZGM2NmU0ZWJhNmRh
YjFmZjczZC4uZGVjZjk0MDUzZTM0ZWI2MGQ5ZmNkMjJkNjJlZGRlMjM4ZjgyNGYxOCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDExLTEyLTExICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIE1vdmUgdG9wLWxldmVsIGNvZGUgdG8gZ2VuZXJhdGUgYSBu
ZXcgQ2hhbmdlTG9nIGludG8gYSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc0MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIG9iamVjdGl2ZSBpcyB0byBtYWtlIHByZXBhcmUtQ2hhbmdl
TG9nIGEgbG9hZGFibGUgUGVybCBtb2R1bGUgZm9yIHVuaXQgdGVzdGluZywKKyAgICAgICAgd2hp
Y2ggcmVxdWlyZXMgdG8gcmVtb3ZlIHRvcC1sZXZlbCBjb2RlIGFuZCBnbG9iYWwgdmFyaWFibGVz
LiBUaGlzIHBhdGNoIGlzIG9uZSBvZgorICAgICAgICB0aGUgaW5jcmVtZW50YWwgcmVmYWN0b3Jp
bmdzIGZvciB0aGF0LgorCisgICAgICAgICogU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZzogTW92
ZWQgdG9wLWxldmVsIGNvZGUgdG8gZ2VuZXJhdGUgYSBuZXcgQ2hhbmdlTG9nIGludG8gZ2VuZXJh
dGVOZXdDaGFuZ2VMb2coKS4KKyAgICAgICAgKGdlbmVyYXRlTmV3Q2hhbmdlTG9nKToKKyAgICAg
ICAgKGdlbmVyYXRlRmlsZUxpc3QpOiBSZW1vdmVkIGFuIHVubmVjZXNzYXJ5IHZhcmlhYmxlICRk
aWRDaGFuZ2VSZWdyZXNzaW9uVGVzdHMuCisKIDIwMTEtMTItMTAgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtSZWZhY3RvcmluZ10gSW4gcHJlcGFyZS1D
aGFuZ2VMb2csIG1vdmUgdG9wLWxldmVsIGNvZGUgdG8gZmluZCBDaGFuZ2VMb2dzIGludG8gYSBt
ZXRob2QKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cgYi9Ub29s
cy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCmluZGV4IGNlNGUzMGZhYzk1NmM4ZmQ0NDAxOTA2
YjVhNzQ3OTU0YmFkYjc0NTMuLjVlNTViYjc2NzhlNzBiNjNhZTgzZjQ2YWI5MGNhM2RhYjAwYjNk
NzYgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwpAQCAtNjksNiArNjksNyBAQCBzdWIgY2hhbmdl
TG9nRW1haWxBZGRyZXNzRnJvbUFyZ3MoJCk7CiBzdWIgY2hhbmdlTG9nTmFtZUZyb21BcmdzKCQp
Owogc3ViIGZldGNoQnVnRGVzY3JpcHRpb25Gcm9tVVJMKCQpOwogc3ViIGZpbmRDaGFuZ2VMb2dz
KFwlKTsKK3N1YiBnZW5lcmF0ZU5ld0NoYW5nZUxvZygkJCRcJSk7CiBzdWIgZmlyc3REaXJlY3Rv
cnlPckN3ZCgpOwogc3ViIGRpZmZGcm9tVG9TdHJpbmcoKTsKIHN1YiBkaWZmQ29tbWFuZChAKTsK
QEAgLTE2NiwxMCArMTY3LDggQEAgbXkgJWZ1bmN0aW9uX2xpc3RzOwogbXkgQGNvbmZsaWN0X2Zp
bGVzOwogCiBteSAlc3VwcG9ydGVkVGVzdEV4dGVuc2lvbnMgPSBtYXAgeyAkXyA9PiAxIH0gcXco
aHRtbCBzaHRtbCBzdmcgeG1sIHhodG1sIHBsIHBocCk7Ci1teSBAYWRkZWRSZWdyZXNzaW9uVGVz
dHMgPSAoKTsKLW15ICRkaWRDaGFuZ2VSZWdyZXNzaW9uVGVzdHMgPSAwOwogCi1nZW5lcmF0ZUZp
bGVMaXN0KEBjaGFuZ2VkX2ZpbGVzLCBAY29uZmxpY3RfZmlsZXMsICVmdW5jdGlvbl9saXN0cyk7
CitteSAkYWRkZWRfcmVncmVzc2lvbl90ZXN0cyA9IGdlbmVyYXRlRmlsZUxpc3QoQGNoYW5nZWRf
ZmlsZXMsIEBjb25mbGljdF9maWxlcywgJWZ1bmN0aW9uX2xpc3RzKTsKIAogaWYgKCFAY2hhbmdl
ZF9maWxlcyAmJiAhQGNvbmZsaWN0X2ZpbGVzICYmICFrZXlzICVmdW5jdGlvbl9saXN0cykgewog
ICAgIHByaW50IFNUREVSUiAiICBObyBjaGFuZ2VzIGZvdW5kLlxuIjsKQEAgLTIzMiw2NSArMjMx
LDcgQEAgaWYgKEBsb2dzICYmICR1cGRhdGVDaGFuZ2VMb2dzICYmICRpc1NWTikgewogICAgIH0K
IH0KIAotIyBHZW5lcmF0ZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgYW5kIChvcHRpb25hbGx5KSB3
cml0ZSBvdXQgbmV3IENoYW5nZUxvZyBmaWxlcy4KLWZvcmVhY2ggbXkgJHByZWZpeCAoQCRwcmVm
aXhlcykgewotICAgIG15ICRlbmRsID0gIlxuIjsKLSAgICBteSBAb2xkX2NoYW5nZV9sb2c7Ci0K
LSAgICBpZiAoJHdyaXRlQ2hhbmdlTG9ncykgewotICAgICAgICBteSAkY2hhbmdlTG9nUGF0aCA9
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHByZWZpeCB8fCAiLiIsICJDaGFuZ2VMb2ciKTsKLSAgICAg
ICAgcHJpbnQgU1RERVJSICIgIEVkaXRpbmcgdGhlICR7Y2hhbmdlTG9nUGF0aH0gZmlsZS5cbiI7
Ci0gICAgICAgIG9wZW4gT0xEX0NIQU5HRV9MT0csICR7Y2hhbmdlTG9nUGF0aH0gb3IgZGllICJD
b3VsZCBub3Qgb3BlbiAke2NoYW5nZUxvZ1BhdGh9IGZpbGU6ICQhLlxuIjsKLSAgICAgICAgIyBJ
dCdzIGxlc3MgZWZmaWNpZW50IHRvIHJlYWQgdGhlIHdob2xlIHRoaW5nIGludG8gbWVtb3J5IHRo
YW4gaXQgd291bGQgYmUKLSAgICAgICAgIyB0byByZWFkIGl0IHdoaWxlIHdlIHByZXBlbmQgdG8g
aXQgbGF0ZXIsIGJ1dCBJIGxpa2UgZG9pbmcgdGhpcyBwYXJ0IGZpcnN0LgotICAgICAgICBAb2xk
X2NoYW5nZV9sb2cgPSA8T0xEX0NIQU5HRV9MT0c+OwotICAgICAgICBjbG9zZSBPTERfQ0hBTkdF
X0xPRzsKLSAgICAgICAgIyBXZSB3YW50IHRvIG1hdGNoIHRoZSBDaGFuZ2VMb2cncyBsaW5lIGVu
ZGluZ3MgaW4gY2FzZSBpdCBkb2Vzbid0IG1hdGNoCi0gICAgICAgICMgdGhlIG5hdGl2ZSBsaW5l
IGVuZGluZ3MgZm9yIHRoaXMgdmVyc2lvbiBvZiBwZXJsLgotICAgICAgICBpZiAoJG9sZF9jaGFu
Z2VfbG9nWzBdID1+IC8oXHI/XG4pJC9nKSB7Ci0gICAgICAgICAgICAkZW5kbCA9ICIkMSI7Ci0g
ICAgICAgIH0KLSAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPiAke2NoYW5nZUxvZ1BhdGh9IiBv
ciBkaWUgIkNvdWxkIG5vdCB3cml0ZSAke2NoYW5nZUxvZ1BhdGh9XG4uIjsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBvcGVuIENIQU5HRV9MT0csICI+LSIgb3IgZGllICJDb3VsZCBub3Qgd3JpdGUg
dG8gU1RET1VUXG4uIjsKLSAgICAgICAgcHJpbnQgc3Vic3RyKCRwcmVmaXgsIDAsIGxlbmd0aCgk
cHJlZml4KSAtIDEpIC4gIjpcblxuIiB1bmxlc3MgKHNjYWxhciBAJHByZWZpeGVzKSA9PSAxOwot
ICAgIH0KLQotICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiRkYXRl
ICAkbmFtZSAgPCRlbWFpbEFkZHJlc3M+XG5cbiIsICRlbmRsKTsKLQotICAgIG15ICgkcmV2aWV3
ZXIsICRkZXNjcmlwdGlvbikgPSByZXZpZXdlckFuZERlc2NyaXB0aW9uRm9yR2l0Q29tbWl0KCRn
aXRDb21taXQpIGlmICRnaXRDb21taXQ7Ci0gICAgJHJldmlld2VyID0gIk5PQk9EWSAoT08iIC4g
IlBTISkiIGlmICEkcmV2aWV3ZXI7Ci0KLSAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxp
bmVFbmRpbmdzKCRkZXNjcmlwdGlvbiAuICJcbiIsICRlbmRsKSBpZiAkZGVzY3JpcHRpb247Ci0K
LSAgICAkYnVnRGVzY3JpcHRpb24gPSAiTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcg
VVJMIChPT1BTISkiIHVubGVzcyAkYnVnRGVzY3JpcHRpb247Ci0gICAgcHJpbnQgQ0hBTkdFX0xP
RyBub3JtYWxpemVMaW5lRW5kaW5ncygiICAgICAgICAkYnVnRGVzY3JpcHRpb25cbiIsICRlbmRs
KSBpZiAkYnVnRGVzY3JpcHRpb247Ci0gICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5l
RW5kaW5ncygiICAgICAgICAkYnVnVVJMXG4iLCAkZW5kbCkgaWYgJGJ1Z1VSTDsKLSAgICBwcmlu
dCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRlbmRsKTsKLQotICAgIHBy
aW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgUmV2aWV3ZWQgYnkg
JHJldmlld2VyLlxuXG4iLCAkZW5kbCk7Ci0KLSAgICBpZiAoJHByZWZpeCA9fiBtL1dlYkNvcmUv
IHx8IGBwd2RgID1+IG0vV2ViQ29yZS8pIHsKLSAgICAgICAgaWYgKCRkaWRDaGFuZ2VSZWdyZXNz
aW9uVGVzdHMpIHsKLSAgICAgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVu
ZGluZ3ModGVzdExpc3RGb3JDaGFuZ2VMb2coc29ydCBAYWRkZWRSZWdyZXNzaW9uVGVzdHMpLCAk
ZW5kbCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5v
cm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKVxuXG4iLCAk
ZW5kbCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmb3JlYWNoIG15ICRmaWxlIChzb3J0IEB7
JGZpbGVzX2luX2NoYW5nZV9sb2ctPnskcHJlZml4fX0pIHsKLSAgICAgICAgbXkgJGZpbGVfc3Rl
bSA9IHN1YnN0ciAkZmlsZSwgbGVuZ3RoICRwcmVmaXg7Ci0gICAgICAgIHByaW50IENIQU5HRV9M
T0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgKiAkZmlsZV9zdGVtOiRmdW5jdGlvbl9s
aXN0c3skZmlsZX1cbiIsICRlbmRsKTsKLSAgICB9Ci0KLSAgICBpZiAoJHdyaXRlQ2hhbmdlTG9n
cykgewotICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIs
ICRlbmRsKSwgQG9sZF9jaGFuZ2VfbG9nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaW50IENI
QU5HRV9MT0cgIlxuIjsKLSAgICB9Ci0KLSAgICBjbG9zZSBDSEFOR0VfTE9HOwotfQorZ2VuZXJh
dGVOZXdDaGFuZ2VMb2coJHByZWZpeGVzLCAkZmlsZXNfaW5fY2hhbmdlX2xvZywgJGFkZGVkX3Jl
Z3Jlc3Npb25fdGVzdHMsICVmdW5jdGlvbl9saXN0cyk7CiAKIGlmICgkd3JpdGVDaGFuZ2VMb2dz
KSB7CiAgICAgcHJpbnQgU1RERVJSICItLSBQbGVhc2UgcmVtZW1iZXIgdG8gaW5jbHVkZSBhIGRl
dGFpbGVkIGRlc2NyaXB0aW9uIGluIHlvdXIgQ2hhbmdlTG9nIGVudHJ5LiAtLVxuLS0gU2VlIDxo
dHRwOi8vd2Via2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWw+IGZvciBtb3JlIGluZm8g
LS1cbiI7CkBAIC01MDcsNiArNDQ4LDcxIEBAIHN1YiBmaW5kQ2hhbmdlTG9ncyhcJSkKICAgICBy
ZXR1cm4gKFwlZmlsZXNfaW5fY2hhbmdlX2xvZywgXEBwcmVmaXhlcyk7CiB9CiAKK3N1YiBnZW5l
cmF0ZU5ld0NoYW5nZUxvZygkJCRcJSkKK3sKKyAgICBteSAoJHByZWZpeGVzLCAkZmlsZXNfaW5f
Y2hhbmdlX2xvZywgJGFkZGVkX3JlZ3Jlc3Npb25fdGVzdHMsICRmdW5jdGlvbl9saXN0cykgPSBA
XzsKKworICAgICMgR2VuZXJhdGUgbmV3IENoYW5nZUxvZyBlbnRyaWVzIGFuZCAob3B0aW9uYWxs
eSkgd3JpdGUgb3V0IG5ldyBDaGFuZ2VMb2cgZmlsZXMuCisgICAgZm9yZWFjaCBteSAkcHJlZml4
IChAJHByZWZpeGVzKSB7CisgICAgICAgIG15ICRlbmRsID0gIlxuIjsKKyAgICAgICAgbXkgQG9s
ZF9jaGFuZ2VfbG9nOworCisgICAgICAgIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7CisgICAgICAg
ICAgICBteSAkY2hhbmdlTG9nUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoJHByZWZpeCB8fCAi
LiIsICJDaGFuZ2VMb2ciKTsKKyAgICAgICAgICAgIHByaW50IFNUREVSUiAiICBFZGl0aW5nIHRo
ZSAke2NoYW5nZUxvZ1BhdGh9IGZpbGUuXG4iOworICAgICAgICAgICAgb3BlbiBPTERfQ0hBTkdF
X0xPRywgJHtjaGFuZ2VMb2dQYXRofSBvciBkaWUgIkNvdWxkIG5vdCBvcGVuICR7Y2hhbmdlTG9n
UGF0aH0gZmlsZTogJCEuXG4iOworICAgICAgICAgICAgIyBJdCdzIGxlc3MgZWZmaWNpZW50IHRv
IHJlYWQgdGhlIHdob2xlIHRoaW5nIGludG8gbWVtb3J5IHRoYW4gaXQgd291bGQgYmUKKyAgICAg
ICAgICAgICMgdG8gcmVhZCBpdCB3aGlsZSB3ZSBwcmVwZW5kIHRvIGl0IGxhdGVyLCBidXQgSSBs
aWtlIGRvaW5nIHRoaXMgcGFydCBmaXJzdC4KKyAgICAgICAgICAgIEBvbGRfY2hhbmdlX2xvZyA9
IDxPTERfQ0hBTkdFX0xPRz47CisgICAgICAgICAgICBjbG9zZSBPTERfQ0hBTkdFX0xPRzsKKyAg
ICAgICAgICAgICMgV2Ugd2FudCB0byBtYXRjaCB0aGUgQ2hhbmdlTG9nJ3MgbGluZSBlbmRpbmdz
IGluIGNhc2UgaXQgZG9lc24ndCBtYXRjaAorICAgICAgICAgICAgIyB0aGUgbmF0aXZlIGxpbmUg
ZW5kaW5ncyBmb3IgdGhpcyB2ZXJzaW9uIG9mIHBlcmwuCisgICAgICAgICAgICBpZiAoJG9sZF9j
aGFuZ2VfbG9nWzBdID1+IC8oXHI/XG4pJC9nKSB7CisgICAgICAgICAgICAgICAgJGVuZGwgPSAi
JDEiOworICAgICAgICAgICAgfQorICAgICAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPiAke2No
YW5nZUxvZ1BhdGh9IiBvciBkaWUgIkNvdWxkIG5vdCB3cml0ZSAke2NoYW5nZUxvZ1BhdGh9XG4u
IjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIG9wZW4gQ0hBTkdFX0xPRywgIj4tIiBv
ciBkaWUgIkNvdWxkIG5vdCB3cml0ZSB0byBTVERPVVRcbi4iOworICAgICAgICAgICAgcHJpbnQg
c3Vic3RyKCRwcmVmaXgsIDAsIGxlbmd0aCgkcHJlZml4KSAtIDEpIC4gIjpcblxuIiB1bmxlc3Mg
KHNjYWxhciBAJHByZWZpeGVzKSA9PSAxOworICAgICAgICB9CisKKyAgICAgICAgcHJpbnQgQ0hB
TkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygiJGRhdGUgICRuYW1lICA8JGVtYWlsQWRkcmVz
cz5cblxuIiwgJGVuZGwpOworCisgICAgICAgIG15ICgkcmV2aWV3ZXIsICRkZXNjcmlwdGlvbikg
PSByZXZpZXdlckFuZERlc2NyaXB0aW9uRm9yR2l0Q29tbWl0KCRnaXRDb21taXQpIGlmICRnaXRD
b21taXQ7CisgICAgICAgICRyZXZpZXdlciA9ICJOT0JPRFkgKE9PIiAuICJQUyEpIiBpZiAhJHJl
dmlld2VyOworCisgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3Mo
JGRlc2NyaXB0aW9uIC4gIlxuIiwgJGVuZGwpIGlmICRkZXNjcmlwdGlvbjsKKworICAgICAgICAk
YnVnRGVzY3JpcHRpb24gPSAiTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJMIChP
T1BTISkiIHVubGVzcyAkYnVnRGVzY3JpcHRpb247CisgICAgICAgIHByaW50IENIQU5HRV9MT0cg
bm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgJGJ1Z0Rlc2NyaXB0aW9uXG4iLCAkZW5kbCkg
aWYgJGJ1Z0Rlc2NyaXB0aW9uOworICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxp
bmVFbmRpbmdzKCIgICAgICAgICRidWdVUkxcbiIsICRlbmRsKSBpZiAkYnVnVVJMOworICAgICAg
ICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRlbmRsKTsKKwor
ICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIFJl
dmlld2VkIGJ5ICRyZXZpZXdlci5cblxuIiwgJGVuZGwpOworCisgICAgICAgIGlmICgkcHJlZml4
ID1+IG0vV2ViQ29yZS8gfHwgYHB3ZGAgPX4gbS9XZWJDb3JlLykgeworICAgICAgICAgICAgaWYg
KEAkYWRkZWRfcmVncmVzc2lvbl90ZXN0cykgeworICAgICAgICAgICAgICAgIHByaW50IENIQU5H
RV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3ModGVzdExpc3RGb3JDaGFuZ2VMb2coc29ydCBAJGFk
ZGVkX3JlZ3Jlc3Npb25fdGVzdHMpLCAkZW5kbCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAg
ICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpXG5cbiIsICRlbmRsKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCisgICAgICAgIGZvcmVhY2ggbXkgJGZpbGUgKHNvcnQgQHskZmlsZXNfaW5fY2hh
bmdlX2xvZy0+eyRwcmVmaXh9fSkgeworICAgICAgICAgICAgbXkgJGZpbGVfc3RlbSA9IHN1YnN0
ciAkZmlsZSwgbGVuZ3RoICRwcmVmaXg7CisgICAgICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5v
cm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgICogJGZpbGVfc3RlbTokZnVuY3Rpb25fbGlzdHMt
PnskZmlsZX1cbiIsICRlbmRsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgkd3JpdGVDaGFu
Z2VMb2dzKSB7CisgICAgICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRp
bmdzKCJcbiIsICRlbmRsKSwgQG9sZF9jaGFuZ2VfbG9nOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyAiXG4iOworICAgICAgICB9CisKKyAgICAgICAgY2xv
c2UgQ0hBTkdFX0xPRzsKKyAgICB9Cit9CisKIHN1YiBnZXRfZnVuY3Rpb25fbGluZV9yYW5nZXMo
JCQpCiB7CiAgICAgbXkgKCRmaWxlX2hhbmRsZSwgJGZpbGVfbmFtZSkgPSBAXzsKQEAgLTE1NTEs
NiArMTU1Nyw4IEBAIHN1YiBwbHVyYWxpemVBbmRMaXN0KCQkQCkKIHN1YiBnZW5lcmF0ZUZpbGVM
aXN0KFxAXEBcJSkKIHsKICAgICBteSAoJGNoYW5nZWRGaWxlcywgJGNvbmZsaWN0RmlsZXMsICRm
dW5jdGlvbkxpc3RzKSA9IEBfOworCisgICAgbXkgQGFkZGVkX3JlZ3Jlc3Npb25fdGVzdHM7CiAg
ICAgcHJpbnQgU1RERVJSICIgIFJ1bm5pbmcgc3RhdHVzIHRvIGZpbmQgY2hhbmdlZCwgYWRkZWQs
IG9yIHJlbW92ZWQgZmlsZXMuXG4iOwogICAgIG9wZW4gU1RBVCwgIi18Iiwgc3RhdHVzQ29tbWFu
ZChrZXlzICVwYXRocykgb3IgZGllICJUaGUgc3RhdHVzIGZhaWxlZDogJCEuXG4iOwogICAgIHdo
aWxlICg8U1RBVD4pIHsKQEAgLTE2MDMsOCArMTYxMSw3IEBAIHN1YiBnZW5lcmF0ZUZpbGVMaXN0
KFxAXEBcJSkKICAgICAgICAgaWYgKGlzTW9kaWZpZWRTdGF0dXMoJHN0YXR1cykgfHwgaXNBZGRl
ZFN0YXR1cygkc3RhdHVzKSB8fCBpc01vZGlmaWVkU3RhdHVzKCRwcm9wZXJ0eVN0YXR1cykpIHsK
ICAgICAgICAgICAgIG15IEBjb21wb25lbnRzID0gRmlsZTo6U3BlYy0+c3BsaXRkaXIoJGZpbGUp
OwogICAgICAgICAgICAgaWYgKCRjb21wb25lbnRzWzBdIGVxICJMYXlvdXRUZXN0cyIpIHsKLSAg
ICAgICAgICAgICAgICAkZGlkQ2hhbmdlUmVncmVzc2lvblRlc3RzID0gMTsKLSAgICAgICAgICAg
ICAgICBwdXNoIEBhZGRlZFJlZ3Jlc3Npb25UZXN0cywgJGZpbGUKKyAgICAgICAgICAgICAgICBw
dXNoIEBhZGRlZF9yZWdyZXNzaW9uX3Rlc3RzLCAkZmlsZQogICAgICAgICAgICAgICAgICAgICBp
ZiBpc0FkZGVkU3RhdHVzKCRzdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICYmICRmaWxl
ID1+IC9cLihbYS16QS1aXSspJC8KICAgICAgICAgICAgICAgICAgICAgICAgJiYgJHN1cHBvcnRl
ZFRlc3RFeHRlbnNpb25ze2xjKCQxKX0KQEAgLTE2MjEsNiArMTYyOCw3IEBAIHN1YiBnZW5lcmF0
ZUZpbGVMaXN0KFxAXEBcJSkKICAgICAgICAgfQogICAgIH0KICAgICBjbG9zZSBTVEFUOworICAg
IHJldHVybiBcQGFkZGVkX3JlZ3Jlc3Npb25fdGVzdHM7CiB9CiAKIHN1YiBpc1VubW9kaWZpZWRT
dGF0dXMoJCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118707</attachid>
            <date>2011-12-11 07:36:05 -0800</date>
            <delta_ts>2011-12-12 08:51:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74253-20111212003604.patch</filename>
            <type>text/plain</type>
            <size>12136</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWE2YTkzNDM0MWQyODBlZjhmYzg0ZGM2NmU0ZWJhNmRh
YjFmZjczZC4uNDc4YTRiOTE2MjgzOWE1ZWU5OGE0NmQxZjZkOTgwYTdkYjk4NTJiNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDExLTEyLTExICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIE1vdmUgdG9wLWxldmVsIGNvZGUgdG8gZ2VuZXJhdGUgYSBu
ZXcgQ2hhbmdlTG9nIGludG8gYSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc0MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIG9iamVjdGl2ZSBpcyB0byBtYWtlIHByZXBhcmUtQ2hhbmdl
TG9nIGEgbG9hZGFibGUgUGVybCBtb2R1bGUgZm9yIHVuaXQgdGVzdGluZywKKyAgICAgICAgd2hp
Y2ggcmVxdWlyZXMgdG8gcmVtb3ZlIHRvcC1sZXZlbCBjb2RlIGFuZCBnbG9iYWwgdmFyaWFibGVz
LiBUaGlzIHBhdGNoIGlzIG9uZSBvZgorICAgICAgICB0aGUgaW5jcmVtZW50YWwgcmVmYWN0b3Jp
bmdzIGZvciB0aGF0LgorCisgICAgICAgICogU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZzogTW92
ZWQgdG9wLWxldmVsIGNvZGUgdG8gZ2VuZXJhdGUgYSBuZXcgQ2hhbmdlTG9nIGludG8gZ2VuZXJh
dGVOZXdDaGFuZ2VMb2coKS4KKyAgICAgICAgKGdlbmVyYXRlRnVuY3Rpb25MaXN0cyk6CisgICAg
ICAgIChmaW5kQ2hhbmdlTG9ncyk6CisgICAgICAgIChnZW5lcmF0ZU5ld0NoYW5nZUxvZyk6Cisg
ICAgICAgIChnZW5lcmF0ZUZpbGVMaXN0KTogUmVtb3ZlZCBhbiB1bm5lY2Vzc2FyeSB2YXJpYWJs
ZSAkZGlkQ2hhbmdlUmVncmVzc2lvblRlc3RzLgorCiAyMDExLTEyLTEwICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVmYWN0b3JpbmddIEluIHByZXBh
cmUtQ2hhbmdlTG9nLCBtb3ZlIHRvcC1sZXZlbCBjb2RlIHRvIGZpbmQgQ2hhbmdlTG9ncyBpbnRv
IGEgbWV0aG9kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nIGIv
VG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBjZTRlMzBmYWM5NTZjOGZkNDQw
MTkwNmI1YTc0Nzk1NGJhZGI3NDUzLi5hOGJmOTU1YmE4MzY1MDNmNzg4MDNmMmU2Y2UzMGRhNTZj
MjEzM2ZhIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTY5LDYgKzY5LDcgQEAgc3ViIGNo
YW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCQpOwogc3ViIGNoYW5nZUxvZ05hbWVGcm9tQXJn
cygkKTsKIHN1YiBmZXRjaEJ1Z0Rlc2NyaXB0aW9uRnJvbVVSTCgkKTsKIHN1YiBmaW5kQ2hhbmdl
TG9ncyhcJSk7CitzdWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2coJCQkXCUpOwogc3ViIGZpcnN0RGly
ZWN0b3J5T3JDd2QoKTsKIHN1YiBkaWZmRnJvbVRvU3RyaW5nKCk7CiBzdWIgZGlmZkNvbW1hbmQo
QCk7CkBAIC0xNjIsMTYgKzE2MywxNCBAQCBteSAkR0lUID0gImdpdCI7CiAKICMgRmluZCB0aGUg
bGlzdCBvZiBtb2RpZmllZCBmaWxlcwogbXkgQGNoYW5nZWRfZmlsZXM7Ci1teSAlZnVuY3Rpb25f
bGlzdHM7CitteSAlZnVuY3Rpb25MaXN0czsKIG15IEBjb25mbGljdF9maWxlczsKIAogbXkgJXN1
cHBvcnRlZFRlc3RFeHRlbnNpb25zID0gbWFwIHsgJF8gPT4gMSB9IHF3KGh0bWwgc2h0bWwgc3Zn
IHhtbCB4aHRtbCBwbCBwaHApOwotbXkgQGFkZGVkUmVncmVzc2lvblRlc3RzID0gKCk7Ci1teSAk
ZGlkQ2hhbmdlUmVncmVzc2lvblRlc3RzID0gMDsKIAotZ2VuZXJhdGVGaWxlTGlzdChAY2hhbmdl
ZF9maWxlcywgQGNvbmZsaWN0X2ZpbGVzLCAlZnVuY3Rpb25fbGlzdHMpOworbXkgJGFkZGVkUmVn
cmVzc2lvblRlc3RzID0gZ2VuZXJhdGVGaWxlTGlzdChAY2hhbmdlZF9maWxlcywgQGNvbmZsaWN0
X2ZpbGVzLCAlZnVuY3Rpb25MaXN0cyk7CiAKLWlmICghQGNoYW5nZWRfZmlsZXMgJiYgIUBjb25m
bGljdF9maWxlcyAmJiAha2V5cyAlZnVuY3Rpb25fbGlzdHMpIHsKK2lmICghQGNoYW5nZWRfZmls
ZXMgJiYgIUBjb25mbGljdF9maWxlcyAmJiAha2V5cyAlZnVuY3Rpb25MaXN0cykgewogICAgIHBy
aW50IFNUREVSUiAiICBObyBjaGFuZ2VzIGZvdW5kLlxuIjsKICAgICBleGl0IDE7CiB9CkBAIC0x
ODIsNyArMTgxLDcgQEAgaWYgKEBjb25mbGljdF9maWxlcykgewogICAgIGV4aXQgMTsKIH0KIAot
Z2VuZXJhdGVGdW5jdGlvbkxpc3RzKEBjaGFuZ2VkX2ZpbGVzLCAlZnVuY3Rpb25fbGlzdHMpOwor
Z2VuZXJhdGVGdW5jdGlvbkxpc3RzKEBjaGFuZ2VkX2ZpbGVzLCAlZnVuY3Rpb25MaXN0cyk7CiAK
ICMgR2V0IHNvbWUgcGFyYW1ldGVycyBmb3IgdGhlIENoYW5nZUxvZyB3ZSBhcmUgYWJvdXQgdG8g
d3JpdGUuCiBteSAkZGF0ZSA9IGNoYW5nZUxvZ0RhdGUoJGNoYW5nZUxvZ1RpbWVab25lKTsKQEAg
LTIwMyw3ICsyMDIsNyBAQCBpZiAoJGJ1Z051bWJlciAmJiAhJGJ1Z0Rlc2NyaXB0aW9uKSB7CiAg
ICAgJGJ1Z0Rlc2NyaXB0aW9uID0gZmV0Y2hCdWdEZXNjcmlwdGlvbkZyb21VUkwoJGJ1Z1VSTCk7
CiB9CiAKLW15ICgkZmlsZXNfaW5fY2hhbmdlX2xvZywgJHByZWZpeGVzKSA9IGZpbmRDaGFuZ2VM
b2dzKCVmdW5jdGlvbl9saXN0cyk7CitteSAoJGZpbGVzSW5DaGFuZ2VMb2csICRwcmVmaXhlcykg
PSBmaW5kQ2hhbmdlTG9ncyglZnVuY3Rpb25MaXN0cyk7CiAKICMgR2V0IHRoZSBsYXRlc3QgQ2hh
bmdlTG9nIGZpbGVzIGZyb20gc3ZuLgogbXkgQGxvZ3MgPSAoKTsKQEAgLTIzMiw2NSArMjMxLDcg
QEAgaWYgKEBsb2dzICYmICR1cGRhdGVDaGFuZ2VMb2dzICYmICRpc1NWTikgewogICAgIH0KIH0K
IAotIyBHZW5lcmF0ZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgYW5kIChvcHRpb25hbGx5KSB3cml0
ZSBvdXQgbmV3IENoYW5nZUxvZyBmaWxlcy4KLWZvcmVhY2ggbXkgJHByZWZpeCAoQCRwcmVmaXhl
cykgewotICAgIG15ICRlbmRsID0gIlxuIjsKLSAgICBteSBAb2xkX2NoYW5nZV9sb2c7Ci0KLSAg
ICBpZiAoJHdyaXRlQ2hhbmdlTG9ncykgewotICAgICAgICBteSAkY2hhbmdlTG9nUGF0aCA9IEZp
bGU6OlNwZWMtPmNhdGZpbGUoJHByZWZpeCB8fCAiLiIsICJDaGFuZ2VMb2ciKTsKLSAgICAgICAg
cHJpbnQgU1RERVJSICIgIEVkaXRpbmcgdGhlICR7Y2hhbmdlTG9nUGF0aH0gZmlsZS5cbiI7Ci0g
ICAgICAgIG9wZW4gT0xEX0NIQU5HRV9MT0csICR7Y2hhbmdlTG9nUGF0aH0gb3IgZGllICJDb3Vs
ZCBub3Qgb3BlbiAke2NoYW5nZUxvZ1BhdGh9IGZpbGU6ICQhLlxuIjsKLSAgICAgICAgIyBJdCdz
IGxlc3MgZWZmaWNpZW50IHRvIHJlYWQgdGhlIHdob2xlIHRoaW5nIGludG8gbWVtb3J5IHRoYW4g
aXQgd291bGQgYmUKLSAgICAgICAgIyB0byByZWFkIGl0IHdoaWxlIHdlIHByZXBlbmQgdG8gaXQg
bGF0ZXIsIGJ1dCBJIGxpa2UgZG9pbmcgdGhpcyBwYXJ0IGZpcnN0LgotICAgICAgICBAb2xkX2No
YW5nZV9sb2cgPSA8T0xEX0NIQU5HRV9MT0c+OwotICAgICAgICBjbG9zZSBPTERfQ0hBTkdFX0xP
RzsKLSAgICAgICAgIyBXZSB3YW50IHRvIG1hdGNoIHRoZSBDaGFuZ2VMb2cncyBsaW5lIGVuZGlu
Z3MgaW4gY2FzZSBpdCBkb2Vzbid0IG1hdGNoCi0gICAgICAgICMgdGhlIG5hdGl2ZSBsaW5lIGVu
ZGluZ3MgZm9yIHRoaXMgdmVyc2lvbiBvZiBwZXJsLgotICAgICAgICBpZiAoJG9sZF9jaGFuZ2Vf
bG9nWzBdID1+IC8oXHI/XG4pJC9nKSB7Ci0gICAgICAgICAgICAkZW5kbCA9ICIkMSI7Ci0gICAg
ICAgIH0KLSAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPiAke2NoYW5nZUxvZ1BhdGh9IiBvciBk
aWUgIkNvdWxkIG5vdCB3cml0ZSAke2NoYW5nZUxvZ1BhdGh9XG4uIjsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBvcGVuIENIQU5HRV9MT0csICI+LSIgb3IgZGllICJDb3VsZCBub3Qgd3JpdGUgdG8g
U1RET1VUXG4uIjsKLSAgICAgICAgcHJpbnQgc3Vic3RyKCRwcmVmaXgsIDAsIGxlbmd0aCgkcHJl
Zml4KSAtIDEpIC4gIjpcblxuIiB1bmxlc3MgKHNjYWxhciBAJHByZWZpeGVzKSA9PSAxOwotICAg
IH0KLQotICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiRkYXRlICAk
bmFtZSAgPCRlbWFpbEFkZHJlc3M+XG5cbiIsICRlbmRsKTsKLQotICAgIG15ICgkcmV2aWV3ZXIs
ICRkZXNjcmlwdGlvbikgPSByZXZpZXdlckFuZERlc2NyaXB0aW9uRm9yR2l0Q29tbWl0KCRnaXRD
b21taXQpIGlmICRnaXRDb21taXQ7Ci0gICAgJHJldmlld2VyID0gIk5PQk9EWSAoT08iIC4gIlBT
ISkiIGlmICEkcmV2aWV3ZXI7Ci0KLSAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVF
bmRpbmdzKCRkZXNjcmlwdGlvbiAuICJcbiIsICRlbmRsKSBpZiAkZGVzY3JpcHRpb247Ci0KLSAg
ICAkYnVnRGVzY3JpcHRpb24gPSAiTmVlZCBhIHNob3J0IGRlc2NyaXB0aW9uIGFuZCBidWcgVVJM
IChPT1BTISkiIHVubGVzcyAkYnVnRGVzY3JpcHRpb247Ci0gICAgcHJpbnQgQ0hBTkdFX0xPRyBu
b3JtYWxpemVMaW5lRW5kaW5ncygiICAgICAgICAkYnVnRGVzY3JpcHRpb25cbiIsICRlbmRsKSBp
ZiAkYnVnRGVzY3JpcHRpb247Ci0gICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5k
aW5ncygiICAgICAgICAkYnVnVVJMXG4iLCAkZW5kbCkgaWYgJGJ1Z1VSTDsKLSAgICBwcmludCBD
SEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRlbmRsKTsKLQotICAgIHByaW50
IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgUmV2aWV3ZWQgYnkgJHJl
dmlld2VyLlxuXG4iLCAkZW5kbCk7Ci0KLSAgICBpZiAoJHByZWZpeCA9fiBtL1dlYkNvcmUvIHx8
IGBwd2RgID1+IG0vV2ViQ29yZS8pIHsKLSAgICAgICAgaWYgKCRkaWRDaGFuZ2VSZWdyZXNzaW9u
VGVzdHMpIHsKLSAgICAgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGlu
Z3ModGVzdExpc3RGb3JDaGFuZ2VMb2coc29ydCBAYWRkZWRSZWdyZXNzaW9uVGVzdHMpLCAkZW5k
bCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1h
bGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKVxuXG4iLCAkZW5k
bCk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBmb3JlYWNoIG15ICRmaWxlIChzb3J0IEB7JGZp
bGVzX2luX2NoYW5nZV9sb2ctPnskcHJlZml4fX0pIHsKLSAgICAgICAgbXkgJGZpbGVfc3RlbSA9
IHN1YnN0ciAkZmlsZSwgbGVuZ3RoICRwcmVmaXg7Ci0gICAgICAgIHByaW50IENIQU5HRV9MT0cg
bm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgKiAkZmlsZV9zdGVtOiRmdW5jdGlvbl9saXN0
c3skZmlsZX1cbiIsICRlbmRsKTsKLSAgICB9Ci0KLSAgICBpZiAoJHdyaXRlQ2hhbmdlTG9ncykg
ewotICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRl
bmRsKSwgQG9sZF9jaGFuZ2VfbG9nOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaW50IENIQU5H
RV9MT0cgIlxuIjsKLSAgICB9Ci0KLSAgICBjbG9zZSBDSEFOR0VfTE9HOwotfQorZ2VuZXJhdGVO
ZXdDaGFuZ2VMb2coJHByZWZpeGVzLCAkZmlsZXNJbkNoYW5nZUxvZywgJGFkZGVkUmVncmVzc2lv
blRlc3RzLCAlZnVuY3Rpb25MaXN0cyk7CiAKIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7CiAgICAg
cHJpbnQgU1RERVJSICItLSBQbGVhc2UgcmVtZW1iZXIgdG8gaW5jbHVkZSBhIGRldGFpbGVkIGRl
c2NyaXB0aW9uIGluIHlvdXIgQ2hhbmdlTG9nIGVudHJ5LiAtLVxuLS0gU2VlIDxodHRwOi8vd2Vi
a2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWw+IGZvciBtb3JlIGluZm8gLS1cbiI7CkBA
IC0zMjcsNyArMjY4LDcgQEAgZXhpdDsKIAogc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cyhcQFwl
KQogewotICAgIG15ICgkY2hhbmdlZF9maWxlcywgJGZ1bmN0aW9uX2xpc3RzKSA9IEBfOworICAg
IG15ICgkY2hhbmdlZF9maWxlcywgJGZ1bmN0aW9uTGlzdHMpID0gQF87CiAKICAgICBteSAlY2hh
bmdlZF9saW5lX3JhbmdlczsKICAgICBpZiAoQCRjaGFuZ2VkX2ZpbGVzKSB7CkBAIC0zODgsOCAr
MzI5LDggQEAgc3ViIGdlbmVyYXRlRnVuY3Rpb25MaXN0cyhcQFwlKQogCiAgICAgICAgICAgICAj
IEZvcm1hdCB0aGUgbGlzdCBvZiBmdW5jdGlvbnMgbm93LgogICAgICAgICAgICAgaWYgKEBmdW5j
dGlvbnMpIHsKLSAgICAgICAgICAgICAgICAkZnVuY3Rpb25fbGlzdHMtPnskZmlsZX0gPSAiIiBp
ZiAhZGVmaW5lZCAkZnVuY3Rpb25fbGlzdHMtPnskZmlsZX07Ci0gICAgICAgICAgICAgICAgJGZ1
bmN0aW9uX2xpc3RzLT57JGZpbGV9IC49ICJcbiAgICAgICAgKCIgLiBqb2luKCIpOlxuICAgICAg
ICAoIiwgQGZ1bmN0aW9ucykgLiAiKToiOworICAgICAgICAgICAgICAgICRmdW5jdGlvbkxpc3Rz
LT57JGZpbGV9ID0gIiIgaWYgIWRlZmluZWQgJGZ1bmN0aW9uTGlzdHMtPnskZmlsZX07CisgICAg
ICAgICAgICAgICAgJGZ1bmN0aW9uTGlzdHMtPnskZmlsZX0gLj0gIlxuICAgICAgICAoIiAuIGpv
aW4oIik6XG4gICAgICAgICgiLCBAZnVuY3Rpb25zKSAuICIpOiI7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KICAgICB9CkBAIC00NTksOCArNDAwLDggQEAgc3ViIGZpbmRDaGFuZ2VMb2dzKFwl
KQogewogICAgICMgRmluZCB0aGUgY2hhbmdlIGxvZ3MuCiAgICAgbXkgJWhhc19sb2c7Ci0gICAg
bXkgJWZpbGVzX2luX2NoYW5nZV9sb2c7Ci0gICAgZm9yZWFjaCBteSAkZmlsZSAoc29ydCBrZXlz
ICVmdW5jdGlvbl9saXN0cykgeworICAgIG15ICVmaWxlc0luQ2hhbmdlTG9nOworICAgIGZvcmVh
Y2ggbXkgJGZpbGUgKHNvcnQga2V5cyAlZnVuY3Rpb25MaXN0cykgewogICAgICAgICBteSAkcHJl
Zml4ID0gJGZpbGU7CiAgICAgICAgIG15ICRoYXNfbG9nID0gMDsKICAgICAgICAgd2hpbGUgKCRw
cmVmaXgpIHsKQEAgLTQ3NSwxNCArNDE2LDE0IEBAIHN1YiBmaW5kQ2hhbmdlTG9ncyhcJSkKICAg
ICAgICAgaWYgKCEkaGFzX2xvZykgewogICAgICAgICAgICAgcHJpbnQgU1RERVJSICJObyBDaGFu
Z2VMb2cgZm91bmQgZm9yICRmaWxlLlxuIjsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IHB1c2ggQHskZmlsZXNfaW5fY2hhbmdlX2xvZ3skcHJlZml4fX0sICRmaWxlOworICAgICAgICAg
ICAgcHVzaCBAeyRmaWxlc0luQ2hhbmdlTG9neyRwcmVmaXh9fSwgJGZpbGU7CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICAjIEJ1aWxkIHRoZSBsaXN0IG9mIENoYW5nZUxvZyBwcmVmaXhlcyBpbiB0
aGUgY29ycmVjdCBwcm9qZWN0IG9yZGVyCiAgICAgbXkgQHByZWZpeGVzOwogICAgIG15ICVwcmVm
aXhlc1NvcnQ7Ci0gICAgZm9yZWFjaCBteSAkcHJlZml4IChrZXlzICVmaWxlc19pbl9jaGFuZ2Vf
bG9nKSB7CisgICAgZm9yZWFjaCBteSAkcHJlZml4IChrZXlzICVmaWxlc0luQ2hhbmdlTG9nKSB7
CiAgICAgICAgIG15ICRwcmVmaXhEaXIgPSBzdWJzdHIoJHByZWZpeCwgMCwgbGVuZ3RoKCRwcmVm
aXgpIC0gMSk7ICMgc3RyaXAgdHJhaWxpbmcgLwogICAgICAgICBteSAkc29ydEtleSA9IGxjICRw
cmVmaXg7CiAgICAgICAgICRzb3J0S2V5ID0gInRvcCBsZXZlbCIgdW5sZXNzIGxlbmd0aCAkc29y
dEtleTsKQEAgLTUwNCw3ICs0NDUsNzIgQEAgc3ViIGZpbmRDaGFuZ2VMb2dzKFwlKQogICAgIGZv
cmVhY2ggbXkgJHByZWZpeFNvcnQgKHNvcnQga2V5cyAlcHJlZml4ZXNTb3J0KSB7CiAgICAgICAg
IHB1c2ggQHByZWZpeGVzLCAkcHJlZml4ZXNTb3J0eyRwcmVmaXhTb3J0fTsKICAgICB9Ci0gICAg
cmV0dXJuIChcJWZpbGVzX2luX2NoYW5nZV9sb2csIFxAcHJlZml4ZXMpOworICAgIHJldHVybiAo
XCVmaWxlc0luQ2hhbmdlTG9nLCBcQHByZWZpeGVzKTsKK30KKworc3ViIGdlbmVyYXRlTmV3Q2hh
bmdlTG9nKCQkJFwlKQoreworICAgIG15ICgkcHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9nLCAk
YWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzKSA9IEBfOworCisgICAgIyBHZW5l
cmF0ZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgYW5kIChvcHRpb25hbGx5KSB3cml0ZSBvdXQgbmV3
IENoYW5nZUxvZyBmaWxlcy4KKyAgICBmb3JlYWNoIG15ICRwcmVmaXggKEAkcHJlZml4ZXMpIHsK
KyAgICAgICAgbXkgJGVuZGwgPSAiXG4iOworICAgICAgICBteSBAb2xkX2NoYW5nZV9sb2c7CisK
KyAgICAgICAgaWYgKCR3cml0ZUNoYW5nZUxvZ3MpIHsKKyAgICAgICAgICAgIG15ICRjaGFuZ2VM
b2dQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkcHJlZml4IHx8ICIuIiwgIkNoYW5nZUxvZyIp
OworICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgIEVkaXRpbmcgdGhlICR7Y2hhbmdlTG9nUGF0
aH0gZmlsZS5cbiI7CisgICAgICAgICAgICBvcGVuIE9MRF9DSEFOR0VfTE9HLCAke2NoYW5nZUxv
Z1BhdGh9IG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJHtjaGFuZ2VMb2dQYXRofSBmaWxlOiAkIS5c
biI7CisgICAgICAgICAgICAjIEl0J3MgbGVzcyBlZmZpY2llbnQgdG8gcmVhZCB0aGUgd2hvbGUg
dGhpbmcgaW50byBtZW1vcnkgdGhhbiBpdCB3b3VsZCBiZQorICAgICAgICAgICAgIyB0byByZWFk
IGl0IHdoaWxlIHdlIHByZXBlbmQgdG8gaXQgbGF0ZXIsIGJ1dCBJIGxpa2UgZG9pbmcgdGhpcyBw
YXJ0IGZpcnN0LgorICAgICAgICAgICAgQG9sZF9jaGFuZ2VfbG9nID0gPE9MRF9DSEFOR0VfTE9H
PjsKKyAgICAgICAgICAgIGNsb3NlIE9MRF9DSEFOR0VfTE9HOworICAgICAgICAgICAgIyBXZSB3
YW50IHRvIG1hdGNoIHRoZSBDaGFuZ2VMb2cncyBsaW5lIGVuZGluZ3MgaW4gY2FzZSBpdCBkb2Vz
bid0IG1hdGNoCisgICAgICAgICAgICAjIHRoZSBuYXRpdmUgbGluZSBlbmRpbmdzIGZvciB0aGlz
IHZlcnNpb24gb2YgcGVybC4KKyAgICAgICAgICAgIGlmICgkb2xkX2NoYW5nZV9sb2dbMF0gPX4g
Lyhccj9cbikkL2cpIHsKKyAgICAgICAgICAgICAgICAkZW5kbCA9ICIkMSI7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICBvcGVuIENIQU5HRV9MT0csICI+ICR7Y2hhbmdlTG9nUGF0aH0iIG9y
IGRpZSAiQ291bGQgbm90IHdyaXRlICR7Y2hhbmdlTG9nUGF0aH1cbi4iOworICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPi0iIG9yIGRpZSAiQ291bGQgbm90
IHdyaXRlIHRvIFNURE9VVFxuLiI7CisgICAgICAgICAgICBwcmludCBzdWJzdHIoJHByZWZpeCwg
MCwgbGVuZ3RoKCRwcmVmaXgpIC0gMSkgLiAiOlxuXG4iIHVubGVzcyAoc2NhbGFyIEAkcHJlZml4
ZXMpID09IDE7CisgICAgICAgIH0KKworICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6
ZUxpbmVFbmRpbmdzKCIkZGF0ZSAgJG5hbWUgIDwkZW1haWxBZGRyZXNzPlxuXG4iLCAkZW5kbCk7
CisKKyAgICAgICAgbXkgKCRyZXZpZXdlciwgJGRlc2NyaXB0aW9uKSA9IHJldmlld2VyQW5kRGVz
Y3JpcHRpb25Gb3JHaXRDb21taXQoJGdpdENvbW1pdCkgaWYgJGdpdENvbW1pdDsKKyAgICAgICAg
JHJldmlld2VyID0gIk5PQk9EWSAoT08iIC4gIlBTISkiIGlmICEkcmV2aWV3ZXI7CisKKyAgICAg
ICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygkZGVzY3JpcHRpb24gLiAi
XG4iLCAkZW5kbCkgaWYgJGRlc2NyaXB0aW9uOworCisgICAgICAgICRidWdEZXNjcmlwdGlvbiA9
ICJOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKSIgdW5sZXNzICRi
dWdEZXNjcmlwdGlvbjsKKyAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5k
aW5ncygiICAgICAgICAkYnVnRGVzY3JpcHRpb25cbiIsICRlbmRsKSBpZiAkYnVnRGVzY3JpcHRp
b247CisgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAg
ICAgJGJ1Z1VSTFxuIiwgJGVuZGwpIGlmICRidWdVUkw7CisgICAgICAgIHByaW50IENIQU5HRV9M
T0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIlxuIiwgJGVuZGwpOworCisgICAgICAgIHByaW50IENI
QU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgUmV2aWV3ZWQgYnkgJHJldmll
d2VyLlxuXG4iLCAkZW5kbCk7CisKKyAgICAgICAgaWYgKCRwcmVmaXggPX4gbS9XZWJDb3JlLyB8
fCBgcHdkYCA9fiBtL1dlYkNvcmUvKSB7CisgICAgICAgICAgICBpZiAoQCRhZGRlZFJlZ3Jlc3Np
b25UZXN0cykgeworICAgICAgICAgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGlu
ZUVuZGluZ3ModGVzdExpc3RGb3JDaGFuZ2VMb2coc29ydCBAJGFkZGVkUmVncmVzc2lvblRlc3Rz
KSwgJGVuZGwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmludCBD
SEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9P
UFMhKVxuXG4iLCAkZW5kbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICBm
b3JlYWNoIG15ICRmaWxlIChzb3J0IEB7JGZpbGVzSW5DaGFuZ2VMb2ctPnskcHJlZml4fX0pIHsK
KyAgICAgICAgICAgIG15ICRmaWxlX3N0ZW0gPSBzdWJzdHIgJGZpbGUsIGxlbmd0aCAkcHJlZml4
OworICAgICAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygiICAg
ICAgICAqICRmaWxlX3N0ZW06JGZ1bmN0aW9uTGlzdHMtPnskZmlsZX1cbiIsICRlbmRsKTsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7CisgICAgICAgICAgICBw
cmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRlbmRsKSwgQG9sZF9j
aGFuZ2VfbG9nOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQgQ0hBTkdFX0xP
RyAiXG4iOworICAgICAgICB9CisKKyAgICAgICAgY2xvc2UgQ0hBTkdFX0xPRzsKKyAgICB9CiB9
CiAKIHN1YiBnZXRfZnVuY3Rpb25fbGluZV9yYW5nZXMoJCQpCkBAIC0xNTUxLDYgKzE1NTcsOCBA
QCBzdWIgcGx1cmFsaXplQW5kTGlzdCgkJEApCiBzdWIgZ2VuZXJhdGVGaWxlTGlzdChcQFxAXCUp
CiB7CiAgICAgbXkgKCRjaGFuZ2VkRmlsZXMsICRjb25mbGljdEZpbGVzLCAkZnVuY3Rpb25MaXN0
cykgPSBAXzsKKworICAgIG15IEBhZGRlZFJlZ3Jlc3Npb25UZXN0czsKICAgICBwcmludCBTVERF
UlIgIiAgUnVubmluZyBzdGF0dXMgdG8gZmluZCBjaGFuZ2VkLCBhZGRlZCwgb3IgcmVtb3ZlZCBm
aWxlcy5cbiI7CiAgICAgb3BlbiBTVEFULCAiLXwiLCBzdGF0dXNDb21tYW5kKGtleXMgJXBhdGhz
KSBvciBkaWUgIlRoZSBzdGF0dXMgZmFpbGVkOiAkIS5cbiI7CiAgICAgd2hpbGUgKDxTVEFUPikg
ewpAQCAtMTYwMyw3ICsxNjExLDYgQEAgc3ViIGdlbmVyYXRlRmlsZUxpc3QoXEBcQFwlKQogICAg
ICAgICBpZiAoaXNNb2RpZmllZFN0YXR1cygkc3RhdHVzKSB8fCBpc0FkZGVkU3RhdHVzKCRzdGF0
dXMpIHx8IGlzTW9kaWZpZWRTdGF0dXMoJHByb3BlcnR5U3RhdHVzKSkgewogICAgICAgICAgICAg
bXkgQGNvbXBvbmVudHMgPSBGaWxlOjpTcGVjLT5zcGxpdGRpcigkZmlsZSk7CiAgICAgICAgICAg
ICBpZiAoJGNvbXBvbmVudHNbMF0gZXEgIkxheW91dFRlc3RzIikgewotICAgICAgICAgICAgICAg
ICRkaWRDaGFuZ2VSZWdyZXNzaW9uVGVzdHMgPSAxOwogICAgICAgICAgICAgICAgIHB1c2ggQGFk
ZGVkUmVncmVzc2lvblRlc3RzLCAkZmlsZQogICAgICAgICAgICAgICAgICAgICBpZiBpc0FkZGVk
U3RhdHVzKCRzdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICYmICRmaWxlID1+IC9cLihb
YS16QS1aXSspJC8KQEAgLTE2MjEsNiArMTYyOCw3IEBAIHN1YiBnZW5lcmF0ZUZpbGVMaXN0KFxA
XEBcJSkKICAgICAgICAgfQogICAgIH0KICAgICBjbG9zZSBTVEFUOworICAgIHJldHVybiBcQGFk
ZGVkUmVncmVzc2lvblRlc3RzOwogfQogCiBzdWIgaXNVbm1vZGlmaWVkU3RhdHVzKCQpCg==
</data>
<flag name="review"
          id="118536"
          type_id="1"
          status="+"
          setter="ddkilzer"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118708</attachid>
            <date>2011-12-11 08:25:59 -0800</date>
            <delta_ts>2011-12-11 10:05:07 -0800</delta_ts>
            <desc>patch for commit</desc>
            <filename>bug-74253-20111212012557.patch</filename>
            <type>text/plain</type>
            <size>12139</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNTM2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWE2YTkzNDM0MWQyODBlZjhmYzg0ZGM2NmU0ZWJhNmRh
YjFmZjczZC4uMWQxNTlmNGI0NDhhZGVjZTczMjJjMDYyM2Q3NWJhOTQ2MWQ1MDdkYiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIw
IEBACisyMDExLTEyLTExICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbUmVmYWN0b3JpbmddIE1vdmUgdG9wLWxldmVsIGNvZGUgdG8gZ2VuZXJhdGUgYSBu
ZXcgQ2hhbmdlTG9nIGludG8gYSBtZXRob2QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc0MjUzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgS2ls
emVyLgorCisgICAgICAgIFRoZSBvYmplY3RpdmUgaXMgdG8gbWFrZSBwcmVwYXJlLUNoYW5nZUxv
ZyBhIGxvYWRhYmxlIFBlcmwgbW9kdWxlIGZvciB1bml0IHRlc3RpbmcsCisgICAgICAgIHdoaWNo
IHJlcXVpcmVzIHRvIHJlbW92ZSB0b3AtbGV2ZWwgY29kZSBhbmQgZ2xvYmFsIHZhcmlhYmxlcy4g
VGhpcyBwYXRjaCBpcyBvbmUgb2YKKyAgICAgICAgdGhlIGluY3JlbWVudGFsIHJlZmFjdG9yaW5n
cyBmb3IgdGhhdC4KKworICAgICAgICAqIFNjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2c6IE1vdmVk
IHRvcC1sZXZlbCBjb2RlIHRvIGdlbmVyYXRlIGEgbmV3IENoYW5nZUxvZyBpbnRvIGdlbmVyYXRl
TmV3Q2hhbmdlTG9ncygpLgorICAgICAgICAoZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKToKKyAgICAg
ICAgKGZpbmRDaGFuZ2VMb2dzKToKKyAgICAgICAgKGdlbmVyYXRlTmV3Q2hhbmdlTG9ncyk6Cisg
ICAgICAgIChnZW5lcmF0ZUZpbGVMaXN0KTogUmVtb3ZlZCBhbiB1bm5lY2Vzc2FyeSB2YXJpYWJs
ZSAkZGlkQ2hhbmdlUmVncmVzc2lvblRlc3RzLgorCiAyMDExLTEyLTEwICBLZW50YXJvIEhhcmEg
IDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbUmVmYWN0b3JpbmddIEluIHByZXBh
cmUtQ2hhbmdlTG9nLCBtb3ZlIHRvcC1sZXZlbCBjb2RlIHRvIGZpbmQgQ2hhbmdlTG9ncyBpbnRv
IGEgbWV0aG9kCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nIGIv
VG9vbHMvU2NyaXB0cy9wcmVwYXJlLUNoYW5nZUxvZwppbmRleCBjZTRlMzBmYWM5NTZjOGZkNDQw
MTkwNmI1YTc0Nzk1NGJhZGI3NDUzLi42ZjliYWQyN2VmOWY1NTU5ZDQ3ODc2M2MxMzJkY2YyZTU3
ZThlNDg4IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3ByZXBhcmUtQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL1NjcmlwdHMvcHJlcGFyZS1DaGFuZ2VMb2cKQEAgLTY5LDYgKzY5LDcgQEAgc3ViIGNo
YW5nZUxvZ0VtYWlsQWRkcmVzc0Zyb21BcmdzKCQpOwogc3ViIGNoYW5nZUxvZ05hbWVGcm9tQXJn
cygkKTsKIHN1YiBmZXRjaEJ1Z0Rlc2NyaXB0aW9uRnJvbVVSTCgkKTsKIHN1YiBmaW5kQ2hhbmdl
TG9ncyhcJSk7CitzdWIgZ2VuZXJhdGVOZXdDaGFuZ2VMb2dzKCQkJFwlKTsKIHN1YiBmaXJzdERp
cmVjdG9yeU9yQ3dkKCk7CiBzdWIgZGlmZkZyb21Ub1N0cmluZygpOwogc3ViIGRpZmZDb21tYW5k
KEApOwpAQCAtMTYyLDE2ICsxNjMsMTQgQEAgbXkgJEdJVCA9ICJnaXQiOwogCiAjIEZpbmQgdGhl
IGxpc3Qgb2YgbW9kaWZpZWQgZmlsZXMKIG15IEBjaGFuZ2VkX2ZpbGVzOwotbXkgJWZ1bmN0aW9u
X2xpc3RzOworbXkgJWZ1bmN0aW9uTGlzdHM7CiBteSBAY29uZmxpY3RfZmlsZXM7CiAKIG15ICVz
dXBwb3J0ZWRUZXN0RXh0ZW5zaW9ucyA9IG1hcCB7ICRfID0+IDEgfSBxdyhodG1sIHNodG1sIHN2
ZyB4bWwgeGh0bWwgcGwgcGhwKTsKLW15IEBhZGRlZFJlZ3Jlc3Npb25UZXN0cyA9ICgpOwotbXkg
JGRpZENoYW5nZVJlZ3Jlc3Npb25UZXN0cyA9IDA7CiAKLWdlbmVyYXRlRmlsZUxpc3QoQGNoYW5n
ZWRfZmlsZXMsIEBjb25mbGljdF9maWxlcywgJWZ1bmN0aW9uX2xpc3RzKTsKK215ICRhZGRlZFJl
Z3Jlc3Npb25UZXN0cyA9IGdlbmVyYXRlRmlsZUxpc3QoQGNoYW5nZWRfZmlsZXMsIEBjb25mbGlj
dF9maWxlcywgJWZ1bmN0aW9uTGlzdHMpOwogCi1pZiAoIUBjaGFuZ2VkX2ZpbGVzICYmICFAY29u
ZmxpY3RfZmlsZXMgJiYgIWtleXMgJWZ1bmN0aW9uX2xpc3RzKSB7CitpZiAoIUBjaGFuZ2VkX2Zp
bGVzICYmICFAY29uZmxpY3RfZmlsZXMgJiYgIWtleXMgJWZ1bmN0aW9uTGlzdHMpIHsKICAgICBw
cmludCBTVERFUlIgIiAgTm8gY2hhbmdlcyBmb3VuZC5cbiI7CiAgICAgZXhpdCAxOwogfQpAQCAt
MTgyLDcgKzE4MSw3IEBAIGlmIChAY29uZmxpY3RfZmlsZXMpIHsKICAgICBleGl0IDE7CiB9CiAK
LWdlbmVyYXRlRnVuY3Rpb25MaXN0cyhAY2hhbmdlZF9maWxlcywgJWZ1bmN0aW9uX2xpc3RzKTsK
K2dlbmVyYXRlRnVuY3Rpb25MaXN0cyhAY2hhbmdlZF9maWxlcywgJWZ1bmN0aW9uTGlzdHMpOwog
CiAjIEdldCBzb21lIHBhcmFtZXRlcnMgZm9yIHRoZSBDaGFuZ2VMb2cgd2UgYXJlIGFib3V0IHRv
IHdyaXRlLgogbXkgJGRhdGUgPSBjaGFuZ2VMb2dEYXRlKCRjaGFuZ2VMb2dUaW1lWm9uZSk7CkBA
IC0yMDMsNyArMjAyLDcgQEAgaWYgKCRidWdOdW1iZXIgJiYgISRidWdEZXNjcmlwdGlvbikgewog
ICAgICRidWdEZXNjcmlwdGlvbiA9IGZldGNoQnVnRGVzY3JpcHRpb25Gcm9tVVJMKCRidWdVUkwp
OwogfQogCi1teSAoJGZpbGVzX2luX2NoYW5nZV9sb2csICRwcmVmaXhlcykgPSBmaW5kQ2hhbmdl
TG9ncyglZnVuY3Rpb25fbGlzdHMpOworbXkgKCRmaWxlc0luQ2hhbmdlTG9nLCAkcHJlZml4ZXMp
ID0gZmluZENoYW5nZUxvZ3MoJWZ1bmN0aW9uTGlzdHMpOwogCiAjIEdldCB0aGUgbGF0ZXN0IENo
YW5nZUxvZyBmaWxlcyBmcm9tIHN2bi4KIG15IEBsb2dzID0gKCk7CkBAIC0yMzIsNjUgKzIzMSw3
IEBAIGlmIChAbG9ncyAmJiAkdXBkYXRlQ2hhbmdlTG9ncyAmJiAkaXNTVk4pIHsKICAgICB9CiB9
CiAKLSMgR2VuZXJhdGUgbmV3IENoYW5nZUxvZyBlbnRyaWVzIGFuZCAob3B0aW9uYWxseSkgd3Jp
dGUgb3V0IG5ldyBDaGFuZ2VMb2cgZmlsZXMuCi1mb3JlYWNoIG15ICRwcmVmaXggKEAkcHJlZml4
ZXMpIHsKLSAgICBteSAkZW5kbCA9ICJcbiI7Ci0gICAgbXkgQG9sZF9jaGFuZ2VfbG9nOwotCi0g
ICAgaWYgKCR3cml0ZUNoYW5nZUxvZ3MpIHsKLSAgICAgICAgbXkgJGNoYW5nZUxvZ1BhdGggPSBG
aWxlOjpTcGVjLT5jYXRmaWxlKCRwcmVmaXggfHwgIi4iLCAiQ2hhbmdlTG9nIik7Ci0gICAgICAg
IHByaW50IFNUREVSUiAiICBFZGl0aW5nIHRoZSAke2NoYW5nZUxvZ1BhdGh9IGZpbGUuXG4iOwot
ICAgICAgICBvcGVuIE9MRF9DSEFOR0VfTE9HLCAke2NoYW5nZUxvZ1BhdGh9IG9yIGRpZSAiQ291
bGQgbm90IG9wZW4gJHtjaGFuZ2VMb2dQYXRofSBmaWxlOiAkIS5cbiI7Ci0gICAgICAgICMgSXQn
cyBsZXNzIGVmZmljaWVudCB0byByZWFkIHRoZSB3aG9sZSB0aGluZyBpbnRvIG1lbW9yeSB0aGFu
IGl0IHdvdWxkIGJlCi0gICAgICAgICMgdG8gcmVhZCBpdCB3aGlsZSB3ZSBwcmVwZW5kIHRvIGl0
IGxhdGVyLCBidXQgSSBsaWtlIGRvaW5nIHRoaXMgcGFydCBmaXJzdC4KLSAgICAgICAgQG9sZF9j
aGFuZ2VfbG9nID0gPE9MRF9DSEFOR0VfTE9HPjsKLSAgICAgICAgY2xvc2UgT0xEX0NIQU5HRV9M
T0c7Ci0gICAgICAgICMgV2Ugd2FudCB0byBtYXRjaCB0aGUgQ2hhbmdlTG9nJ3MgbGluZSBlbmRp
bmdzIGluIGNhc2UgaXQgZG9lc24ndCBtYXRjaAotICAgICAgICAjIHRoZSBuYXRpdmUgbGluZSBl
bmRpbmdzIGZvciB0aGlzIHZlcnNpb24gb2YgcGVybC4KLSAgICAgICAgaWYgKCRvbGRfY2hhbmdl
X2xvZ1swXSA9fiAvKFxyP1xuKSQvZykgewotICAgICAgICAgICAgJGVuZGwgPSAiJDEiOwotICAg
ICAgICB9Ci0gICAgICAgIG9wZW4gQ0hBTkdFX0xPRywgIj4gJHtjaGFuZ2VMb2dQYXRofSIgb3Ig
ZGllICJDb3VsZCBub3Qgd3JpdGUgJHtjaGFuZ2VMb2dQYXRofVxuLiI7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPi0iIG9yIGRpZSAiQ291bGQgbm90IHdyaXRlIHRv
IFNURE9VVFxuLiI7Ci0gICAgICAgIHByaW50IHN1YnN0cigkcHJlZml4LCAwLCBsZW5ndGgoJHBy
ZWZpeCkgLSAxKSAuICI6XG5cbiIgdW5sZXNzIChzY2FsYXIgQCRwcmVmaXhlcykgPT0gMTsKLSAg
ICB9Ci0KLSAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIkZGF0ZSAg
JG5hbWUgIDwkZW1haWxBZGRyZXNzPlxuXG4iLCAkZW5kbCk7Ci0KLSAgICBteSAoJHJldmlld2Vy
LCAkZGVzY3JpcHRpb24pID0gcmV2aWV3ZXJBbmREZXNjcmlwdGlvbkZvckdpdENvbW1pdCgkZ2l0
Q29tbWl0KSBpZiAkZ2l0Q29tbWl0OwotICAgICRyZXZpZXdlciA9ICJOT0JPRFkgKE9PIiAuICJQ
UyEpIiBpZiAhJHJldmlld2VyOwotCi0gICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5l
RW5kaW5ncygkZGVzY3JpcHRpb24gLiAiXG4iLCAkZW5kbCkgaWYgJGRlc2NyaXB0aW9uOwotCi0g
ICAgJGJ1Z0Rlc2NyaXB0aW9uID0gIk5lZWQgYSBzaG9ydCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVS
TCAoT09QUyEpIiB1bmxlc3MgJGJ1Z0Rlc2NyaXB0aW9uOwotICAgIHByaW50IENIQU5HRV9MT0cg
bm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgJGJ1Z0Rlc2NyaXB0aW9uXG4iLCAkZW5kbCkg
aWYgJGJ1Z0Rlc2NyaXB0aW9uOwotICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVu
ZGluZ3MoIiAgICAgICAgJGJ1Z1VSTFxuIiwgJGVuZGwpIGlmICRidWdVUkw7Ci0gICAgcHJpbnQg
Q0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygiXG4iLCAkZW5kbCk7Ci0KLSAgICBwcmlu
dCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIFJldmlld2VkIGJ5ICRy
ZXZpZXdlci5cblxuIiwgJGVuZGwpOwotCi0gICAgaWYgKCRwcmVmaXggPX4gbS9XZWJDb3JlLyB8
fCBgcHdkYCA9fiBtL1dlYkNvcmUvKSB7Ci0gICAgICAgIGlmICgkZGlkQ2hhbmdlUmVncmVzc2lv
blRlc3RzKSB7Ci0gICAgICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRp
bmdzKHRlc3RMaXN0Rm9yQ2hhbmdlTG9nKHNvcnQgQGFkZGVkUmVncmVzc2lvblRlc3RzKSwgJGVu
ZGwpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3Jt
YWxpemVMaW5lRW5kaW5ncygiICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISlcblxuIiwgJGVu
ZGwpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZm9yZWFjaCBteSAkZmlsZSAoc29ydCBAeyRm
aWxlc19pbl9jaGFuZ2VfbG9nLT57JHByZWZpeH19KSB7Ci0gICAgICAgIG15ICRmaWxlX3N0ZW0g
PSBzdWJzdHIgJGZpbGUsIGxlbmd0aCAkcHJlZml4OwotICAgICAgICBwcmludCBDSEFOR0VfTE9H
IG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgICogJGZpbGVfc3RlbTokZnVuY3Rpb25fbGlz
dHN7JGZpbGV9XG4iLCAkZW5kbCk7Ci0gICAgfQotCi0gICAgaWYgKCR3cml0ZUNoYW5nZUxvZ3Mp
IHsKLSAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygiXG4iLCAk
ZW5kbCksIEBvbGRfY2hhbmdlX2xvZzsKLSAgICB9IGVsc2UgewotICAgICAgICBwcmludCBDSEFO
R0VfTE9HICJcbiI7Ci0gICAgfQotCi0gICAgY2xvc2UgQ0hBTkdFX0xPRzsKLX0KK2dlbmVyYXRl
TmV3Q2hhbmdlTG9ncygkcHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9nLCAkYWRkZWRSZWdyZXNz
aW9uVGVzdHMsICVmdW5jdGlvbkxpc3RzKTsKIAogaWYgKCR3cml0ZUNoYW5nZUxvZ3MpIHsKICAg
ICBwcmludCBTVERFUlIgIi0tIFBsZWFzZSByZW1lbWJlciB0byBpbmNsdWRlIGEgZGV0YWlsZWQg
ZGVzY3JpcHRpb24gaW4geW91ciBDaGFuZ2VMb2cgZW50cnkuIC0tXG4tLSBTZWUgPGh0dHA6Ly93
ZWJraXQub3JnL2NvZGluZy9jb250cmlidXRpbmcuaHRtbD4gZm9yIG1vcmUgaW5mbyAtLVxuIjsK
QEAgLTMyNyw3ICsyNjgsNyBAQCBleGl0OwogCiBzdWIgZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKFxA
XCUpCiB7Ci0gICAgbXkgKCRjaGFuZ2VkX2ZpbGVzLCAkZnVuY3Rpb25fbGlzdHMpID0gQF87Cisg
ICAgbXkgKCRjaGFuZ2VkX2ZpbGVzLCAkZnVuY3Rpb25MaXN0cykgPSBAXzsKIAogICAgIG15ICVj
aGFuZ2VkX2xpbmVfcmFuZ2VzOwogICAgIGlmIChAJGNoYW5nZWRfZmlsZXMpIHsKQEAgLTM4OCw4
ICszMjksOCBAQCBzdWIgZ2VuZXJhdGVGdW5jdGlvbkxpc3RzKFxAXCUpCiAKICAgICAgICAgICAg
ICMgRm9ybWF0IHRoZSBsaXN0IG9mIGZ1bmN0aW9ucyBub3cuCiAgICAgICAgICAgICBpZiAoQGZ1
bmN0aW9ucykgewotICAgICAgICAgICAgICAgICRmdW5jdGlvbl9saXN0cy0+eyRmaWxlfSA9ICIi
IGlmICFkZWZpbmVkICRmdW5jdGlvbl9saXN0cy0+eyRmaWxlfTsKLSAgICAgICAgICAgICAgICAk
ZnVuY3Rpb25fbGlzdHMtPnskZmlsZX0gLj0gIlxuICAgICAgICAoIiAuIGpvaW4oIik6XG4gICAg
ICAgICgiLCBAZnVuY3Rpb25zKSAuICIpOiI7CisgICAgICAgICAgICAgICAgJGZ1bmN0aW9uTGlz
dHMtPnskZmlsZX0gPSAiIiBpZiAhZGVmaW5lZCAkZnVuY3Rpb25MaXN0cy0+eyRmaWxlfTsKKyAg
ICAgICAgICAgICAgICAkZnVuY3Rpb25MaXN0cy0+eyRmaWxlfSAuPSAiXG4gICAgICAgICgiIC4g
am9pbigiKTpcbiAgICAgICAgKCIsIEBmdW5jdGlvbnMpIC4gIik6IjsKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KQEAgLTQ1OSw4ICs0MDAsOCBAQCBzdWIgZmluZENoYW5nZUxvZ3Mo
XCUpCiB7CiAgICAgIyBGaW5kIHRoZSBjaGFuZ2UgbG9ncy4KICAgICBteSAlaGFzX2xvZzsKLSAg
ICBteSAlZmlsZXNfaW5fY2hhbmdlX2xvZzsKLSAgICBmb3JlYWNoIG15ICRmaWxlIChzb3J0IGtl
eXMgJWZ1bmN0aW9uX2xpc3RzKSB7CisgICAgbXkgJWZpbGVzSW5DaGFuZ2VMb2c7CisgICAgZm9y
ZWFjaCBteSAkZmlsZSAoc29ydCBrZXlzICVmdW5jdGlvbkxpc3RzKSB7CiAgICAgICAgIG15ICRw
cmVmaXggPSAkZmlsZTsKICAgICAgICAgbXkgJGhhc19sb2cgPSAwOwogICAgICAgICB3aGlsZSAo
JHByZWZpeCkgewpAQCAtNDc1LDE0ICs0MTYsMTQgQEAgc3ViIGZpbmRDaGFuZ2VMb2dzKFwlKQog
ICAgICAgICBpZiAoISRoYXNfbG9nKSB7CiAgICAgICAgICAgICBwcmludCBTVERFUlIgIk5vIENo
YW5nZUxvZyBmb3VuZCBmb3IgJGZpbGUuXG4iOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgcHVzaCBAeyRmaWxlc19pbl9jaGFuZ2VfbG9neyRwcmVmaXh9fSwgJGZpbGU7CisgICAgICAg
ICAgICBwdXNoIEB7JGZpbGVzSW5DaGFuZ2VMb2d7JHByZWZpeH19LCAkZmlsZTsKICAgICAgICAg
fQogICAgIH0KIAogICAgICMgQnVpbGQgdGhlIGxpc3Qgb2YgQ2hhbmdlTG9nIHByZWZpeGVzIGlu
IHRoZSBjb3JyZWN0IHByb2plY3Qgb3JkZXIKICAgICBteSBAcHJlZml4ZXM7CiAgICAgbXkgJXBy
ZWZpeGVzU29ydDsKLSAgICBmb3JlYWNoIG15ICRwcmVmaXggKGtleXMgJWZpbGVzX2luX2NoYW5n
ZV9sb2cpIHsKKyAgICBmb3JlYWNoIG15ICRwcmVmaXggKGtleXMgJWZpbGVzSW5DaGFuZ2VMb2cp
IHsKICAgICAgICAgbXkgJHByZWZpeERpciA9IHN1YnN0cigkcHJlZml4LCAwLCBsZW5ndGgoJHBy
ZWZpeCkgLSAxKTsgIyBzdHJpcCB0cmFpbGluZyAvCiAgICAgICAgIG15ICRzb3J0S2V5ID0gbGMg
JHByZWZpeDsKICAgICAgICAgJHNvcnRLZXkgPSAidG9wIGxldmVsIiB1bmxlc3MgbGVuZ3RoICRz
b3J0S2V5OwpAQCAtNTA0LDcgKzQ0NSw3MiBAQCBzdWIgZmluZENoYW5nZUxvZ3MoXCUpCiAgICAg
Zm9yZWFjaCBteSAkcHJlZml4U29ydCAoc29ydCBrZXlzICVwcmVmaXhlc1NvcnQpIHsKICAgICAg
ICAgcHVzaCBAcHJlZml4ZXMsICRwcmVmaXhlc1NvcnR7JHByZWZpeFNvcnR9OwogICAgIH0KLSAg
ICByZXR1cm4gKFwlZmlsZXNfaW5fY2hhbmdlX2xvZywgXEBwcmVmaXhlcyk7CisgICAgcmV0dXJu
IChcJWZpbGVzSW5DaGFuZ2VMb2csIFxAcHJlZml4ZXMpOworfQorCitzdWIgZ2VuZXJhdGVOZXdD
aGFuZ2VMb2dzKCQkJFwlKQoreworICAgIG15ICgkcHJlZml4ZXMsICRmaWxlc0luQ2hhbmdlTG9n
LCAkYWRkZWRSZWdyZXNzaW9uVGVzdHMsICRmdW5jdGlvbkxpc3RzKSA9IEBfOworCisgICAgIyBH
ZW5lcmF0ZSBuZXcgQ2hhbmdlTG9nIGVudHJpZXMgYW5kIChvcHRpb25hbGx5KSB3cml0ZSBvdXQg
bmV3IENoYW5nZUxvZyBmaWxlcy4KKyAgICBmb3JlYWNoIG15ICRwcmVmaXggKEAkcHJlZml4ZXMp
IHsKKyAgICAgICAgbXkgJGVuZGwgPSAiXG4iOworICAgICAgICBteSBAb2xkX2NoYW5nZV9sb2c7
CisKKyAgICAgICAgaWYgKCR3cml0ZUNoYW5nZUxvZ3MpIHsKKyAgICAgICAgICAgIG15ICRjaGFu
Z2VMb2dQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkcHJlZml4IHx8ICIuIiwgIkNoYW5nZUxv
ZyIpOworICAgICAgICAgICAgcHJpbnQgU1RERVJSICIgIEVkaXRpbmcgdGhlICR7Y2hhbmdlTG9n
UGF0aH0gZmlsZS5cbiI7CisgICAgICAgICAgICBvcGVuIE9MRF9DSEFOR0VfTE9HLCAke2NoYW5n
ZUxvZ1BhdGh9IG9yIGRpZSAiQ291bGQgbm90IG9wZW4gJHtjaGFuZ2VMb2dQYXRofSBmaWxlOiAk
IS5cbiI7CisgICAgICAgICAgICAjIEl0J3MgbGVzcyBlZmZpY2llbnQgdG8gcmVhZCB0aGUgd2hv
bGUgdGhpbmcgaW50byBtZW1vcnkgdGhhbiBpdCB3b3VsZCBiZQorICAgICAgICAgICAgIyB0byBy
ZWFkIGl0IHdoaWxlIHdlIHByZXBlbmQgdG8gaXQgbGF0ZXIsIGJ1dCBJIGxpa2UgZG9pbmcgdGhp
cyBwYXJ0IGZpcnN0LgorICAgICAgICAgICAgQG9sZF9jaGFuZ2VfbG9nID0gPE9MRF9DSEFOR0Vf
TE9HPjsKKyAgICAgICAgICAgIGNsb3NlIE9MRF9DSEFOR0VfTE9HOworICAgICAgICAgICAgIyBX
ZSB3YW50IHRvIG1hdGNoIHRoZSBDaGFuZ2VMb2cncyBsaW5lIGVuZGluZ3MgaW4gY2FzZSBpdCBk
b2Vzbid0IG1hdGNoCisgICAgICAgICAgICAjIHRoZSBuYXRpdmUgbGluZSBlbmRpbmdzIGZvciB0
aGlzIHZlcnNpb24gb2YgcGVybC4KKyAgICAgICAgICAgIGlmICgkb2xkX2NoYW5nZV9sb2dbMF0g
PX4gLyhccj9cbikkL2cpIHsKKyAgICAgICAgICAgICAgICAkZW5kbCA9ICIkMSI7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICBvcGVuIENIQU5HRV9MT0csICI+ICR7Y2hhbmdlTG9nUGF0aH0i
IG9yIGRpZSAiQ291bGQgbm90IHdyaXRlICR7Y2hhbmdlTG9nUGF0aH1cbi4iOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgb3BlbiBDSEFOR0VfTE9HLCAiPi0iIG9yIGRpZSAiQ291bGQg
bm90IHdyaXRlIHRvIFNURE9VVFxuLiI7CisgICAgICAgICAgICBwcmludCBzdWJzdHIoJHByZWZp
eCwgMCwgbGVuZ3RoKCRwcmVmaXgpIC0gMSkgLiAiOlxuXG4iIHVubGVzcyAoc2NhbGFyIEAkcHJl
Zml4ZXMpID09IDE7CisgICAgICAgIH0KKworICAgICAgICBwcmludCBDSEFOR0VfTE9HIG5vcm1h
bGl6ZUxpbmVFbmRpbmdzKCIkZGF0ZSAgJG5hbWUgIDwkZW1haWxBZGRyZXNzPlxuXG4iLCAkZW5k
bCk7CisKKyAgICAgICAgbXkgKCRyZXZpZXdlciwgJGRlc2NyaXB0aW9uKSA9IHJldmlld2VyQW5k
RGVzY3JpcHRpb25Gb3JHaXRDb21taXQoJGdpdENvbW1pdCkgaWYgJGdpdENvbW1pdDsKKyAgICAg
ICAgJHJldmlld2VyID0gIk5PQk9EWSAoT08iIC4gIlBTISkiIGlmICEkcmV2aWV3ZXI7CisKKyAg
ICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygkZGVzY3JpcHRpb24g
LiAiXG4iLCAkZW5kbCkgaWYgJGRlc2NyaXB0aW9uOworCisgICAgICAgICRidWdEZXNjcmlwdGlv
biA9ICJOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKSIgdW5sZXNz
ICRidWdEZXNjcmlwdGlvbjsKKyAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5l
RW5kaW5ncygiICAgICAgICAkYnVnRGVzY3JpcHRpb25cbiIsICRlbmRsKSBpZiAkYnVnRGVzY3Jp
cHRpb247CisgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAg
ICAgICAgJGJ1Z1VSTFxuIiwgJGVuZGwpIGlmICRidWdVUkw7CisgICAgICAgIHByaW50IENIQU5H
RV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIlxuIiwgJGVuZGwpOworCisgICAgICAgIHByaW50
IENIQU5HRV9MT0cgbm9ybWFsaXplTGluZUVuZGluZ3MoIiAgICAgICAgUmV2aWV3ZWQgYnkgJHJl
dmlld2VyLlxuXG4iLCAkZW5kbCk7CisKKyAgICAgICAgaWYgKCRwcmVmaXggPX4gbS9XZWJDb3Jl
LyB8fCBgcHdkYCA9fiBtL1dlYkNvcmUvKSB7CisgICAgICAgICAgICBpZiAoQCRhZGRlZFJlZ3Jl
c3Npb25UZXN0cykgeworICAgICAgICAgICAgICAgIHByaW50IENIQU5HRV9MT0cgbm9ybWFsaXpl
TGluZUVuZGluZ3ModGVzdExpc3RGb3JDaGFuZ2VMb2coc29ydCBAJGFkZGVkUmVncmVzc2lvblRl
c3RzKSwgJGVuZGwpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBwcmlu
dCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCIgICAgICAgIE5vIG5ldyB0ZXN0cy4g
KE9PUFMhKVxuXG4iLCAkZW5kbCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICBmb3JlYWNoIG15ICRmaWxlIChzb3J0IEB7JGZpbGVzSW5DaGFuZ2VMb2ctPnskcHJlZml4fX0p
IHsKKyAgICAgICAgICAgIG15ICRmaWxlX3N0ZW0gPSBzdWJzdHIgJGZpbGUsIGxlbmd0aCAkcHJl
Zml4OworICAgICAgICAgICAgcHJpbnQgQ0hBTkdFX0xPRyBub3JtYWxpemVMaW5lRW5kaW5ncygi
ICAgICAgICAqICRmaWxlX3N0ZW06JGZ1bmN0aW9uTGlzdHMtPnskZmlsZX1cbiIsICRlbmRsKTsK
KyAgICAgICAgfQorCisgICAgICAgIGlmICgkd3JpdGVDaGFuZ2VMb2dzKSB7CisgICAgICAgICAg
ICBwcmludCBDSEFOR0VfTE9HIG5vcm1hbGl6ZUxpbmVFbmRpbmdzKCJcbiIsICRlbmRsKSwgQG9s
ZF9jaGFuZ2VfbG9nOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgcHJpbnQgQ0hBTkdF
X0xPRyAiXG4iOworICAgICAgICB9CisKKyAgICAgICAgY2xvc2UgQ0hBTkdFX0xPRzsKKyAgICB9
CiB9CiAKIHN1YiBnZXRfZnVuY3Rpb25fbGluZV9yYW5nZXMoJCQpCkBAIC0xNTUxLDYgKzE1NTcs
OCBAQCBzdWIgcGx1cmFsaXplQW5kTGlzdCgkJEApCiBzdWIgZ2VuZXJhdGVGaWxlTGlzdChcQFxA
XCUpCiB7CiAgICAgbXkgKCRjaGFuZ2VkRmlsZXMsICRjb25mbGljdEZpbGVzLCAkZnVuY3Rpb25M
aXN0cykgPSBAXzsKKworICAgIG15IEBhZGRlZFJlZ3Jlc3Npb25UZXN0czsKICAgICBwcmludCBT
VERFUlIgIiAgUnVubmluZyBzdGF0dXMgdG8gZmluZCBjaGFuZ2VkLCBhZGRlZCwgb3IgcmVtb3Zl
ZCBmaWxlcy5cbiI7CiAgICAgb3BlbiBTVEFULCAiLXwiLCBzdGF0dXNDb21tYW5kKGtleXMgJXBh
dGhzKSBvciBkaWUgIlRoZSBzdGF0dXMgZmFpbGVkOiAkIS5cbiI7CiAgICAgd2hpbGUgKDxTVEFU
PikgewpAQCAtMTYwMyw3ICsxNjExLDYgQEAgc3ViIGdlbmVyYXRlRmlsZUxpc3QoXEBcQFwlKQog
ICAgICAgICBpZiAoaXNNb2RpZmllZFN0YXR1cygkc3RhdHVzKSB8fCBpc0FkZGVkU3RhdHVzKCRz
dGF0dXMpIHx8IGlzTW9kaWZpZWRTdGF0dXMoJHByb3BlcnR5U3RhdHVzKSkgewogICAgICAgICAg
ICAgbXkgQGNvbXBvbmVudHMgPSBGaWxlOjpTcGVjLT5zcGxpdGRpcigkZmlsZSk7CiAgICAgICAg
ICAgICBpZiAoJGNvbXBvbmVudHNbMF0gZXEgIkxheW91dFRlc3RzIikgewotICAgICAgICAgICAg
ICAgICRkaWRDaGFuZ2VSZWdyZXNzaW9uVGVzdHMgPSAxOwogICAgICAgICAgICAgICAgIHB1c2gg
QGFkZGVkUmVncmVzc2lvblRlc3RzLCAkZmlsZQogICAgICAgICAgICAgICAgICAgICBpZiBpc0Fk
ZGVkU3RhdHVzKCRzdGF0dXMpCiAgICAgICAgICAgICAgICAgICAgICAgICYmICRmaWxlID1+IC9c
LihbYS16QS1aXSspJC8KQEAgLTE2MjEsNiArMTYyOCw3IEBAIHN1YiBnZW5lcmF0ZUZpbGVMaXN0
KFxAXEBcJSkKICAgICAgICAgfQogICAgIH0KICAgICBjbG9zZSBTVEFUOworICAgIHJldHVybiBc
QGFkZGVkUmVncmVzc2lvblRlc3RzOwogfQogCiBzdWIgaXNVbm1vZGlmaWVkU3RhdHVzKCQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>