<?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>32597</bug_id>
          
          <creation_ts>2009-12-15 23:41:52 -0800</creation_ts>
          <short_desc>Check one space before end of line comments</short_desc>
          <delta_ts>2009-12-18 09:55:31 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Fumitoshi Ukai">ukai</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cjerdonek</cc>
    
    <cc>eric</cc>
    
    <cc>hamaji</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>172180</commentid>
    <comment_count>0</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-15 23:41:52 -0800</bug_when>
    <thetext>check-webkit-style should check one space before end of line comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172181</commentid>
    <comment_count>1</comment_count>
      <attachid>44946</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-15 23:44:36 -0800</bug_when>
    <thetext>Created attachment 44946
Check one space before end of line comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172184</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-15 23:47:47 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44946 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172194</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-16 00:02:27 -0800</bug_when>
    <thetext>Why are these warning off by default?  They seem like awesomesauce.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172201</commentid>
    <comment_count>4</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-16 00:11:07 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Why are these warning off by default?  They seem like awesomesauce.

These warning is off by default in cpp_style.py, but enabled by default in check-webkit-style (by cpp_style.use_webkit_styles() overriding _DEFAULT_FILTERS)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172505</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-16 13:24:11 -0800</bug_when>
    <thetext>I don&apos;t see what the distinction is.  cpp_style.py is fully forked from its original chromium/google origins, so I&apos;m not sure why running cpp_style.py should be different from running run-webkit-tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172587</commentid>
    <comment_count>6</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-16 16:52:47 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; I don&apos;t see what the distinction is.  cpp_style.py is fully forked from its
&gt; original chromium/google origins, so I&apos;m not sure why running cpp_style.py
&gt; should be different from running run-webkit-tests.

Hmm, so we don&apos;t need use_webkit_styles() and should have webkit style defaults in _DEFAULT_FILTERS?
Should we fix the code instead of adding new error categories?(e.g. fix whitespace/comments rather than adding whitespace/webkit_comments)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172593</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-16 17:22:23 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; I don&apos;t see what the distinction is.  cpp_style.py is fully forked from its
&gt; &gt; original chromium/google origins, so I&apos;m not sure why running cpp_style.py
&gt; &gt; should be different from running run-webkit-tests.
&gt; 
&gt; Hmm, so we don&apos;t need use_webkit_styles() and should have webkit style defaults
&gt; in _DEFAULT_FILTERS?

Maybe so.

&gt; Should we fix the code instead of adding new error categories?(e.g. fix
&gt; whitespace/comments rather than adding whitespace/webkit_comments)

Yes. (That fix possibly could be just replacing it with what you did -- I haven&apos;t had a chance to review but was planning to look later tonight -- along with the worker/websocket patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172607</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-16 18:11:56 -0800</bug_when>
    <thetext>(In reply to comment #6)

&gt; Hmm, so we don&apos;t need use_webkit_styles() and should have webkit style defaults
&gt; in _DEFAULT_FILTERS?

You should update since check-webkit-style changed since your patch.

My thinking is that the webkit default filter rules formerly in use_webkit_styles() should move from cpp_style.py to the check-webkit-style executable, and they should be passed in as a parameter to a function in cpp_style.py.  That&apos;s the direction I&apos;m moving in:

https://bugs.webkit.org/show_bug.cgi?id=32592

I also think we should phase out the _DEFAULT_FILTERS global variable (now called _DEFAULT_FILTER_RULES), but we can&apos;t do that quite yet since the unit tests use it if I remember right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172618</commentid>
    <comment_count>9</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-16 19:19:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; 
&gt; &gt; Hmm, so we don&apos;t need use_webkit_styles() and should have webkit style defaults
&gt; &gt; in _DEFAULT_FILTERS?
&gt; 
&gt; You should update since check-webkit-style changed since your patch.
&gt; 
&gt; My thinking is that the webkit default filter rules formerly in
&gt; use_webkit_styles() should move from cpp_style.py to the check-webkit-style
&gt; executable, and they should be passed in as a parameter to a function in
&gt; cpp_style.py.  That&apos;s the direction I&apos;m moving in:

It sounds different direction as Eric and David said.
I think we&apos;ll remove use_webkit_styles() and make check-webkit-style act as the same way as cpp_style.py by default.
If we pass filters in use_webkit_styles() from check-webkit-style to cpp_style.py, then it means cpp_style.py works differently from check-webkit-style unless we pass the same filters, doesn&apos;t it?

&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=32592
&gt; 
&gt; I also think we should phase out the _DEFAULT_FILTERS global variable (now
&gt; called _DEFAULT_FILTER_RULES), but we can&apos;t do that quite yet since the unit
&gt; tests use it if I remember right.

We use change semantics of some error categories and/or _DEFAULT_FILTERS, we need to update unittest as well.
(That&apos;s why I preserved default error categories in cpp_style.py in the first patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172625</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Jerdonek">cjerdonek</who>
    <bug_when>2009-12-16 20:06:59 -0800</bug_when>
    <thetext>(In reply to comment #9)

&gt; If we pass filters in use_webkit_styles() from check-webkit-style to
&gt; cpp_style.py, then it means cpp_style.py works differently from
&gt; check-webkit-style unless we pass the same filters, doesn&apos;t it?

No, because cpp_style.py will never be running as an executable.  If you look at the recent changes, we also removed the main() function from cpp_style.py.  The file cpp_style.py will just be providing functionality for the command-line script check-webkit-style to call.

You can read the discussion here for more background:

https://bugs.webkit.org/show_bug.cgi?id=32538</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172669</commentid>
    <comment_count>11</comment_count>
      <attachid>45043</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-17 01:01:00 -0800</bug_when>
    <thetext>Created attachment 45043
Check one space before end of line comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172670</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 01:03:12 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45043 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172790</commentid>
    <comment_count>13</comment_count>
      <attachid>45043</attachid>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-12-17 08:28:54 -0800</bug_when>
    <thetext>Comment on attachment 45043
Check one space before end of line comments.

Some comments... First of all, indent level should be 4, not 2.

&gt; @@ -874,8 +872,7 @@ def get_header_guard_cpp_variable(filename):
&gt;  
&gt;      &quot;&quot;&quot;
&gt;  
&gt; -    fileinfo = FileInfo(filename)
&gt; -    return sub(r&apos;[-./\s]&apos;, &apos;_&apos;, fileinfo.repository_name()).upper() + &apos;_&apos;
&gt; +    return sub(r&apos;[-./\s]&apos;, &apos;_&apos;, os.path.basename(filename))

We don&apos;t need to replace &apos;/&apos; anymore?

&gt; @@ -1362,31 +1363,6 @@ class CppStyleTest(CppStyleTestBase):
&gt;          self.assert_multi_line_lint(&apos;#endif\n    );&apos;,
&gt;                                      &apos;&apos;)
&gt;  
&gt; -    def test_two_spaces_between_code_and_comments(self):
&gt; -        self.assert_lint(&apos;} // namespace foo&apos;,
&gt; -                         &apos;At least two spaces is best between code and comments&apos;
&gt; -                         &apos;  [whitespace/comments] [2]&apos;)
&gt; -        self.assert_lint(&apos;}// namespace foo&apos;,
&gt; -                         &apos;At least two spaces is best between code and comments&apos;
&gt; -                         &apos;  [whitespace/comments] [2]&apos;)
&gt; -        self.assert_lint(&apos;printf(&quot;foo&quot;); // Outside quotes.&apos;,
&gt; -                         &apos;At least two spaces is best between code and comments&apos;
&gt; -                         &apos;  [whitespace/comments] [2]&apos;)
&gt; -        self.assert_lint(&apos;int i = 0;  // Having two spaces is fine.&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;int i = 0;   // Having three spaces is OK.&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;// Top level comment&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;    // Line starts with four spaces.&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;foo();\n&apos;
&gt; -                         &apos;{ // A scope is opening.&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;    foo();\n&apos;
&gt; -                         &apos;    { // An indented scope is opening.&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;if (foo) { // not a pure scope; comment is too close!&apos;,
&gt; -                         &apos;At least two spaces is best between code and comments&apos;
&gt; -                         &apos;  [whitespace/comments] [2]&apos;)
&gt; -        self.assert_lint(&apos;printf(&quot;// In quotes.&quot;)&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;printf(&quot;\\&quot;%s // In quotes.&quot;)&apos;, &apos;&apos;)
&gt; -        self.assert_lint(&apos;printf(&quot;%s&quot;, &quot;// In quotes.&quot;)&apos;, &apos;&apos;)
&gt; -

I don&apos;t want to remove this test. They look good. Especially, I think we want to have a testcase for a comment in a string literal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172833</commentid>
    <comment_count>14</comment_count>
      <attachid>45043</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-17 10:05:34 -0800</bug_when>
    <thetext>Comment on attachment 45043
Check one space before end of line comments.

Shinichiro did a fine job of reviewing this patch.

r- for the removed test cases that Shinichiro noted.

One small additional comment below.

&gt; diff --git a/WebKitTools/Scripts/modules/cpp_style.py b/WebKitTools/Scripts/modules/cpp_style.py
&gt; +                and ((line[comment_position-1] not in string.whitespace)
&gt; +                     or (line[comment_position-2] in string.whitespace)))):

I know this was a problem before but since you are changing these lines please add spaces around the &quot;-&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173028</commentid>
    <comment_count>15</comment_count>
      <attachid>45123</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-17 20:51:16 -0800</bug_when>
    <thetext>Created attachment 45123
Check one space before end of line comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173029</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 20:53:50 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45123 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173038</commentid>
    <comment_count>17</comment_count>
    <who name="Shinichiro Hamaji">hamaji</who>
    <bug_when>2009-12-17 22:01:34 -0800</bug_when>
    <thetext>Thanks for the fixes. Looks good. It seems there are actually two changes in this patch (one space before comment and header guard). It would be better to update the ChangeLog to mention both?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173056</commentid>
    <comment_count>18</comment_count>
      <attachid>45127</attachid>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-17 23:04:18 -0800</bug_when>
    <thetext>Created attachment 45127
Check one space before end of line comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173057</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-17 23:05:52 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45127 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173157</commentid>
    <comment_count>20</comment_count>
      <attachid>45127</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-12-18 08:01:35 -0800</bug_when>
    <thetext>Comment on attachment 45127
Check one space before end of line comments.

Thanks!

Minor nit to consider fixing when landing this below.

&gt; diff --git a/WebKitTools/Scripts/modules/cpp_style_unittest.py b/WebKitTools/Scripts/modules/cpp_style_unittest.py
&gt; +    def test_comments(self):
&gt; +        # comment at the begining line is ok.

typo: begining
s/comment/A comment/
s/line/of a line/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173210</commentid>
    <comment_count>21</comment_count>
    <who name="Fumitoshi Ukai">ukai</who>
    <bug_when>2009-12-18 09:55:31 -0800</bug_when>
    <thetext>Committed r52318: &lt;http://trac.webkit.org/changeset/52318&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44946</attachid>
            <date>2009-12-15 23:44:36 -0800</date>
            <delta_ts>2009-12-17 01:00:54 -0800</delta_ts>
            <desc>Check one space before end of line comments.</desc>
            <filename>bug-32597-20091216164434.patch</filename>
            <type>text/plain</type>
            <size>14417</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBkMWE3NDNkLi42YTc1ZTBlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTUgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgb25lIHNwYWNlIGJlZm9yZSBl
bmQgb2YgbGluZSBjb21tZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNTk3CisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxl
LnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHk6CisK
IDIwMDktMTItMTUgIFlhYXIgU2Nobml0bWFuICA8eWFhckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9j
cHBfc3R5bGUucHkKaW5kZXggZjI2ODYxMC4uMzRlMTMwNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwX3N0eWxlLnB5CkBAIC0xMTksNiArMTE5LDcgQEAgX0VSUk9SX0NBVEVHT1JJ
RVMgPSAnJydcCiAgICAgYnVpbGQvcHJpbnRmX2Zvcm1hdAogICAgIGJ1aWxkL3N0b3JhZ2VfY2xh
c3MKICAgICBidWlsZC91c2luZ19zdGQKKyAgICBidWlsZC93ZWJraXRfaGVhZGVyX2d1YXJkCiAg
ICAgbGVnYWwvY29weXJpZ2h0CiAgICAgcmVhZGFiaWxpdHkvYnJhY2VzCiAgICAgcmVhZGFiaWxp
dHkvY2FzdGluZwpAQCAtMTU1LDYgKzE1Niw3IEBAIF9FUlJPUl9DQVRFR09SSUVTID0gJycnXAog
ICAgIHdoaXRlc3BhY2UvYnJhY2VzCiAgICAgd2hpdGVzcGFjZS9jb21tYQogICAgIHdoaXRlc3Bh
Y2UvY29tbWVudHMKKyAgICB3aGl0ZXNwYWNlL3dlYmtpdF9jb21tZW50cwogICAgIHdoaXRlc3Bh
Y2UvZGVjbGFyYXRpb24KICAgICB3aGl0ZXNwYWNlL2VuZF9vZl9saW5lCiAgICAgd2hpdGVzcGFj
ZS9lbmRpbmdfbmV3bGluZQpAQCAtMTczLDcgKzE3NSwxMCBAQCBfRVJST1JfQ0FURUdPUklFUyA9
ICcnJ1wKICMgZmxhZy4gQnkgZGVmYXVsdCBhbGwgZXJyb3JzIGFyZSBvbiwgc28gb25seSBhZGQg
aGVyZSBjYXRlZ29yaWVzIHRoYXQgc2hvdWxkIGJlCiAjIG9mZiBieSBkZWZhdWx0IChpLmUuLCBj
YXRlZ29yaWVzIHRoYXQgbXVzdCBiZSBlbmFibGVkIGJ5IHRoZSAtLWZpbHRlcj0gZmxhZ3MpLgog
IyBBbGwgZW50cmllcyBoZXJlIHNob3VsZCBzdGFydCB3aXRoIGEgJy0nIG9yICcrJywgYXMgaW4g
dGhlIC0tZmlsdGVyPSBmbGFnLgotX0RFRkFVTFRfRklMVEVSUyA9IFtdCitfREVGQVVMVF9GSUxU
RVJTID0gWworICAgICctYnVpbGQvd2Via2l0X2hlYWRlcl9ndWFyZCcsCisgICAgJy13aGl0ZXNw
YWNlL3dlYmtpdF9jb21tZW50cycKKyAgICBdCiAKICMgSGVhZGVycyB0aGF0IHdlIGNvbnNpZGVy
IFNUTCBoZWFkZXJzLgogX1NUTF9IRUFERVJTID0gZnJvemVuc2V0KFsKQEAgLTg5OSw2ICs5MDQs
NyBAQCBkZWYgY2hlY2tfZm9yX2hlYWRlcl9ndWFyZChmaWxlbmFtZSwgbGluZXMsIGVycm9yKToK
ICAgICAiIiIKIAogICAgIGNwcHZhciA9IGdldF9oZWFkZXJfZ3VhcmRfY3BwX3ZhcmlhYmxlKGZp
bGVuYW1lKQorICAgIHdlYmtpdF9jcHB2YXIgPSBzdWIocidbLS4vXHNdJywgJ18nLCBvcy5wYXRo
LmJhc2VuYW1lKGZpbGVuYW1lKSkKIAogICAgIGlmbmRlZiA9IE5vbmUKICAgICBpZm5kZWZfbGlu
ZV9udW1iZXIgPSAwCkBAIC05MjQsNiArOTMwLDkgQEAgZGVmIGNoZWNrX2Zvcl9oZWFkZXJfZ3Vh
cmQoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcik6CiAgICAgICAgIGVycm9yKGZpbGVuYW1lLCAwLCAn
YnVpbGQvaGVhZGVyX2d1YXJkJywgNSwKICAgICAgICAgICAgICAgJ05vICNpZm5kZWYgaGVhZGVy
IGd1YXJkIGZvdW5kLCBzdWdnZXN0ZWQgQ1BQIHZhcmlhYmxlIGlzOiAlcycgJQogICAgICAgICAg
ICAgICBjcHB2YXIpCisgICAgICAgIGVycm9yKGZpbGVuYW1lLCAwLCAnYnVpbGQvd2Via2l0X2hl
YWRlcl9ndWFyZCcsIDUsCisgICAgICAgICAgICAgICdObyAjaWZuZGVmIGhlYWRlciBndWFyZCBm
b3VuZCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpczogJXMnICUKKyAgICAgICAgICAgICAgd2Vi
a2l0X2NwcHZhcikKICAgICAgICAgcmV0dXJuCiAKICAgICAjIFRoZSBndWFyZCBzaG91bGQgYmUg
UEFUSF9GSUxFX0hfLCBidXQgd2UgYWxzbyBhbGxvdyBQQVRIX0ZJTEVfSF9fCkBAIC05MzUsNiAr
OTQ0LDkgQEAgZGVmIGNoZWNrX2Zvcl9oZWFkZXJfZ3VhcmQoZmlsZW5hbWUsIGxpbmVzLCBlcnJv
cik6CiAKICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGlmbmRlZl9saW5lX251bWJlciwgJ2J1aWxk
L2hlYWRlcl9ndWFyZCcsIGVycm9yX2xldmVsLAogICAgICAgICAgICAgICAnI2lmbmRlZiBoZWFk
ZXIgZ3VhcmQgaGFzIHdyb25nIHN0eWxlLCBwbGVhc2UgdXNlOiAlcycgJSBjcHB2YXIpCisgICAg
aWYgaWZuZGVmICE9IHdlYmtpdF9jcHB2YXI6CisgICAgICBlcnJvcihmaWxlbmFtZSwgaWZuZGVm
X2xpbmVfbnVtYmVyLCAnYnVpbGQvd2Via2l0X2hlYWRlcl9ndWFyZCcsIDUsCisgICAgICAgICAg
ICAnI2lmbmRlZiBoZWFkZXIgZ3VhcmQgaGFzIHdyb25nIHN0eWxlLCBwbGVhc2UgdXNlOiAlcycg
JSB3ZWJraXRfY3BwdmFyKQogCiAgICAgaWYgZW5kaWYgIT0gKCcjZW5kaWYgIC8vICVzJyAlIGNw
cHZhcik6CiAgICAgICAgIGVycm9yX2xldmVsID0gMApAQCAtOTQ0LDYgKzk1NiwxMCBAQCBkZWYg
Y2hlY2tfZm9yX2hlYWRlcl9ndWFyZChmaWxlbmFtZSwgbGluZXMsIGVycm9yKToKICAgICAgICAg
ZXJyb3IoZmlsZW5hbWUsIGVuZGlmX2xpbmVfbnVtYmVyLCAnYnVpbGQvaGVhZGVyX2d1YXJkJywg
ZXJyb3JfbGV2ZWwsCiAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRp
ZiAgLy8gJXMiJyAlIGNwcHZhcikKIAorICAgIGlmIGVuZGlmICE9ICgnI2VuZGlmIC8vICVzJyAl
IHdlYmtpdF9jcHB2YXIpOgorICAgICAgZXJyb3IoZmlsZW5hbWUsIGVuZGlmX2xpbmVfbnVtYmVy
LCAnYnVpbGQvd2Via2l0X2hlYWRlcl9ndWFyZCcsCisgICAgICAgICAgICA1LCAnI2VuZGlmIGxp
bmUgc2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJyAlIHdlYmtpdF9jcHB2YXIpCisKIAogZGVmIGNo
ZWNrX2Zvcl91bmljb2RlX3JlcGxhY2VtZW50X2NoYXJhY3RlcnMoZmlsZW5hbWUsIGxpbmVzLCBl
cnJvcik6CiAgICAgIiIiTG9ncyBhbiBlcnJvciBmb3IgZWFjaCBsaW5lIGNvbnRhaW5pbmcgVW5p
Y29kZSByZXBsYWNlbWVudCBjaGFyYWN0ZXJzLgpAQCAtMTU0MCw2ICsxNTU2LDEyIEBAIGRlZiBj
aGVja19zcGFjaW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9yKToK
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGluZVtjb21tZW50X3Bvc2l0aW9uLTJdIG5v
dCBpbiBzdHJpbmcud2hpdGVzcGFjZSkpKToKICAgICAgICAgICAgICAgICBlcnJvcihmaWxlbmFt
ZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2NvbW1lbnRzJywgMiwKICAgICAgICAgICAgICAg
ICAgICAgICAnQXQgbGVhc3QgdHdvIHNwYWNlcyBpcyBiZXN0IGJldHdlZW4gY29kZSBhbmQgY29t
bWVudHMnKQorICAgICAgICAgICAgaWYgKG5vdCBtYXRjaChyJ15ccyokJywgbGluZVs6Y29tbWVu
dF9wb3NpdGlvbl0pCisgICAgICAgICAgICAgICAgYW5kIChjb21tZW50X3Bvc2l0aW9uID49IDIK
KyAgICAgICAgICAgICAgICBhbmQgKChsaW5lW2NvbW1lbnRfcG9zaXRpb24tMV0gbm90IGluIHN0
cmluZy53aGl0ZXNwYWNlKQorICAgICAgICAgICAgICAgICAgICAgb3IgKGxpbmVbY29tbWVudF9w
b3NpdGlvbi0yXSBpbiBzdHJpbmcud2hpdGVzcGFjZSkpKSk6CisgICAgICAgICAgICAgIGVycm9y
KGZpbGVuYW1lLCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2Uvd2Via2l0X2NvbW1lbnRzJywgMiwK
KyAgICAgICAgICAgICAgICAgICAgJ09uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxpbmUgY29tbWVu
dHMnKQogICAgICAgICAgICAgIyBUaGVyZSBzaG91bGQgYWx3YXlzIGJlIGEgc3BhY2UgYmV0d2Vl
biB0aGUgLy8gYW5kIHRoZSBjb21tZW50CiAgICAgICAgICAgICBjb21tZW50ZW5kID0gY29tbWVu
dF9wb3NpdGlvbiArIDIKICAgICAgICAgICAgIGlmIGNvbW1lbnRlbmQgPCBsZW4obGluZSkgYW5k
IG5vdCBsaW5lW2NvbW1lbnRlbmRdID09ICcgJzoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CmluZGV4IDQxYzg4OGMuLjgwZjJhN2UgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3Qu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZV91bml0dGVzdC5w
eQpAQCAtMTYxNSw3ICsxNjE1LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJh
c2UpOgogICAgICAgICAgICAgZmlsdCA9ICctLCt3aGl0ZXNwYWNlLC13aGl0ZXNwYWNlL2luZGVu
dCcKICAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKChbJ2Zvby5oJ10sIHt9KSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNwcF9zdHlsZS5wYXJzZV9hcmd1bWVudHMoWyctLWZp
bHRlcj0nK2ZpbHQsICdmb28uaCddKSkKLSAgICAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKFsn
LScsICcrd2hpdGVzcGFjZScsICctd2hpdGVzcGFjZS9pbmRlbnQnXSwKKyAgICAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKFsnLWJ1aWxkL3dlYmtpdF9oZWFkZXJfZ3VhcmQnLCAnLXdoaXRlc3Bh
Y2Uvd2Via2l0X2NvbW1lbnRzJywgJy0nLCAnK3doaXRlc3BhY2UnLCAnLXdoaXRlc3BhY2UvaW5k
ZW50J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHBfc3R5bGUuX2NwcF9zdHls
ZV9zdGF0ZS5maWx0ZXJzKQogCiAgICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFscygoWydmb28u
Y3BwJywgJ2Zvby5oJ10sIHt9KSwKQEAgLTI3OTksNiArMjc5OSwxNyBAQCBjbGFzcyBDcHBTdHls
ZVN0YXRlVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAKIGNsYXNzIFdlYktpdFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKIAorICAgIGRlZiBzZXRVcChzZWxmKToKKyAgICAgICAgQ3BwU3R5
bGVUZXN0QmFzZS5zZXRVcChzZWxmKQorICAgICAgICBzZWxmLmRlZmF1bHRfZmlsdGVycyA9IGNw
cF9zdHlsZS5fREVGQVVMVF9GSUxURVJTCisgICAgICAgIGNwcF9zdHlsZS51c2Vfd2Via2l0X3N0
eWxlcygpCisgICAgICAgIGNwcF9zdHlsZS5fY3BwX3N0eWxlX3N0YXRlLnNldF9maWx0ZXJzKCIi
KQorCisgICAgZGVmIHRlYXJEb3duKHNlbGYpOgorICAgICAgICBjcHBfc3R5bGUuX0RFRkFVTFRf
RklMVEVSUyA9IHNlbGYuZGVmYXVsdF9maWx0ZXJzCisgICAgICAgIGNwcF9zdHlsZS5fY3BwX3N0
eWxlX3N0YXRlLnNldF9maWx0ZXJzKCIiKQorICAgICAgICBDcHBTdHlsZVRlc3RCYXNlLnRlYXJE
b3duKHNlbGYpCisKICAgICAjIGZvciBodHRwOi8vd2Via2l0Lm9yZy9jb2RpbmcvY29kaW5nLXN0
eWxlLmh0bWwKICAgICBkZWYgdGVzdF9pbmRlbnRhdGlvbihzZWxmKToKICAgICAgICAgIyAxLiBV
c2Ugc3BhY2VzLCBub3QgdGFicy4gVGFicyBzaG91bGQgb25seSBhcHBlYXIgaW4gZmlsZXMgdGhh
dApAQCAtMjkxMCw3ICsyOTIxLDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICAgICAgJ2Zvby5jcHAnKQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0
aV9saW5lX2xpbnQoCiAgICAgICAgICAgICAnbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCi0gICAg
ICAgICAgICAnY29uc3QgY2hhciogZm9vKHZvaWQqIGEgPSAiOyIsICAvLyA7XG4nCisgICAgICAg
ICAgICAnY29uc3QgY2hhciogZm9vKHZvaWQqIGEgPSAiOyIsIC8vIDtcbicKICAgICAgICAgICAg
ICcgICAgdm9pZCogYik7XG4nCiAgICAgICAgICAgICAnICAgIHZvaWQqIHA7XG4nCiAgICAgICAg
ICAgICAnfVxuJywKQEAgLTI5MTksNyArMjkzMCw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAog
ICAgICAgICAgICAgJ25hbWVzcGFjZSBXZWJDb3JlIHtcblxuJwogICAgICAgICAgICAgJ2NvbnN0
IGNoYXIqIGZvb1tdID0ge1xuJwotICAgICAgICAgICAgJyAgICAidm9pZCogYik7IiwgIC8vIDtc
bicKKyAgICAgICAgICAgICcgICAgInZvaWQqIGIpOyIsIC8vIDtcbicKICAgICAgICAgICAgICcg
ICAgImFzZmRmIixcbicKICAgICAgICAgICAgICcgICAgfVxuJwogICAgICAgICAgICAgJyAgICB2
b2lkKiBwO1xuJwpAQCAtMjkyOSw3ICsyOTQwLDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENw
cFN0eWxlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCiAg
ICAgICAgICAgICAnbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCiAgICAgICAgICAgICAnY29uc3Qg
Y2hhciogZm9vW10gPSB7XG4nCi0gICAgICAgICAgICAnICAgICJ2b2lkKiBiKTsiLCAgLy8gfVxu
JworICAgICAgICAgICAgJyAgICAidm9pZCogYik7IiwgLy8gfVxuJwogICAgICAgICAgICAgJyAg
ICAiYXNmZGYiLFxuJwogICAgICAgICAgICAgJyAgICB9XG4nCiAgICAgICAgICAgICAnfVxuJywK
QEAgLTI5MzksNyArMjk1MCw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RC
YXNlKToKICAgICAgICAgICAgICcgICAgbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCiAgICAgICAg
ICAgICAnICAgIHZvaWQgRG9jdW1lbnQ6OkZvbygpXG4nCiAgICAgICAgICAgICAnICAgIHtcbicK
LSAgICAgICAgICAgICdzdGFydDogIC8vIGluZmluaXRlIGxvb3BzIGFyZSBmdW4hXG4nCisgICAg
ICAgICAgICAnc3RhcnQ6IC8vIGluZmluaXRlIGxvb3BzIGFyZSBmdW4hXG4nCiAgICAgICAgICAg
ICAnICAgICAgICBnb3RvIHN0YXJ0O1xuJwogICAgICAgICAgICAgJyAgICB9JywKICAgICAgICAg
ICAgICduYW1lc3BhY2Ugc2hvdWxkIG5ldmVyIGJlIGluZGVudGVkLiAgW3doaXRlc3BhY2UvaW5k
ZW50XSBbNF0nLApAQCAtMzQ5Myw3ICszNTA0LDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENw
cFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L251bGxdIFs0XScs
CiAgICAgICAgICAgICAnZm9vLmNwcCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAg
ICAgICAgICAnIkEgc3RyaW5nIHdpdGggTlVMTCIgIC8vIGFuZCBhIGNvbW1lbnQgd2l0aCBOVUxM
IGlzIHRyaWNreSB0byBmbGFnIGNvcnJlY3RseSBpbiBjcHBfc3R5bGUuJywKKyAgICAgICAgICAg
ICciQSBzdHJpbmcgd2l0aCBOVUxMIiAvLyBhbmQgYSBjb21tZW50IHdpdGggTlVMTCBpcyB0cmlj
a3kgdG8gZmxhZyBjb3JyZWN0bHkgaW4gY3BwX3N0eWxlLicsCiAgICAgICAgICAgICAnVXNlIDAg
aW5zdGVhZCBvZiBOVUxMLicKICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9udWxsXSBbNF0n
LAogICAgICAgICAgICAgJ2Zvby5jcHAnKQpAQCAtMzcxMCw2ICszNzIxLDE0MyBAQCBjbGFzcyBX
ZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xp
bnQoJ3R5cGVkZWYgVmVjdG9yVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7Jywg
JycpCiAKIAorICAgIGRlZiB0ZXN0X2NvbW1lbnRzKHNlbGYpOgorICAgICAgICAjIGNvbW1lbnQg
YXQgdGhlIGJlZ2luaW5nIGxpbmUgaXMgb2suCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJy8v
IGNvbW1lbnQnLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgIC8vIGNvbW1lbnQn
LCAnJykKKworICAgICAgICBzZWxmLmFzc2VydF9saW50KCd9ICAvLyBuYW1lc3BhY2UgV2ViQ29y
ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ09uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxp
bmUgY29tbWVudHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2Uvd2Vi
a2l0X2NvbW1lbnRzXSBbMl0nKQorCisgICAgZGVmIHRlc3RfYnVpbGRfaGVhZGVyX2d1YXJkKHNl
bGYpOgorICAgICAgICBmaWxlX3BhdGggPSAnbXlkaXIvRm9vLmgnCisKKyAgICAgICAgIyBXZSBj
YW4ndCByZWx5IG9uIG91ciBpbnRlcm5hbCBzdHVmZiB0byBnZXQgYSBzYW5lIHBhdGggb24gdGhl
IG9wZW4gc291cmNlCisgICAgICAgICMgc2lkZSBvZiB0aGluZ3MsIHNvIGp1c3QgcGFyc2Ugb3V0
IHRoZSBzdWdnZXN0ZWQgaGVhZGVyIGd1YXJkLiBUaGlzCisgICAgICAgICMgZG9lc24ndCBhbGxv
dyB1cyB0byB0ZXN0IHRoZSBzdWdnZXN0ZWQgaGVhZGVyIGd1YXJkLCBidXQgaXQgZG9lcyBsZXQg
dXMKKyAgICAgICAgIyB0ZXN0IGFsbCB0aGUgb3RoZXIgaGVhZGVyIHRlc3RzLgorICAgICAgICBl
cnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCisgICAgICAgIGNw
cF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywgW10sIGVycm9yX2NvbGxl
Y3RvcikKKyAgICAgICAgZXhwZWN0ZWRfZ3VhcmQgPSAnJworICAgICAgICBtYXRjaGVyID0gcmUu
Y29tcGlsZSgKKyAgICAgICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQgZm91bmRcLCBz
dWdnZXN0ZWQgQ1BQIHZhcmlhYmxlIGlzXDogKFtBLVphLXpfMC05XSspICcpCisgICAgICAgIGZv
ciBlcnJvciBpbiBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKToKKyAgICAgICAgICAgIG1h
dGNoZXMgPSBtYXRjaGVyLm1hdGNoKGVycm9yKQorICAgICAgICAgICAgaWYgbWF0Y2hlczoKKyAg
ICAgICAgICAgICAgICBleHBlY3RlZF9ndWFyZCA9IG1hdGNoZXMuZ3JvdXAoMSkKKyAgICAgICAg
ICAgICAgICBicmVhaworCisgICAgICAgICMgTWFrZSBzdXJlIHdlIGV4dHJhY3RlZCBzb21ldGhp
bmcgZm9yIG91ciBoZWFkZXIgZ3VhcmQuCisgICAgICAgIHNlbGYuYXNzZXJ0Tm90RXF1YWwoZXhw
ZWN0ZWRfZ3VhcmQsICcnKQorCisgICAgICAgICMgV3JvbmcgZ3VhcmQKKyAgICAgICAgZXJyb3Jf
Y29sbGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBjcHBfc3R5
bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgRk9PX0gnLCAnI2RlZmluZSBGT09fSCddLCBlcnJv
cl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgMSwK
KyAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAorICAgICAg
ICAgICAgICAgICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1
c2U6ICVzJworICAgICAgICAgICAgICAgICcgIFtidWlsZC93ZWJraXRfaGVhZGVyX2d1YXJkXSBb
NV0nICUgZXhwZWN0ZWRfZ3VhcmQpLAorICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dF9saXN0KCkpCisKKyAgICAgICAgIyBObyBkZWZpbmUKKyAgICAgICAgZXJyb3JfY29sbGVjdG9y
ID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBjcHBfc3R5bGUucHJvY2Vz
c19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmRdLCBlcnJvcl9jb2xsZWN0b3Ip
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAg
IGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAorICAgICAgICAgICAgICAgICdO
byAjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpczog
JXMnCisgICAgICAgICAgICAgICAgJyAgW2J1aWxkL3dlYmtpdF9oZWFkZXJfZ3VhcmRdIFs1XScg
JSBleHBlY3RlZF9ndWFyZCksCisgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xp
c3QoKSkKKworICAgICAgICAjIE1pc21hdGNoZWQgZGVmaW5lCisgICAgICAgIGVycm9yX2NvbGxl
Y3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAgY3BwX3N0eWxlLnBy
b2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgWycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lIEZPT19IJ10sCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWxzKAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5y
ZXN1bHRfbGlzdCgpLmNvdW50KAorICAgICAgICAgICAgICAgICdObyAjaWZuZGVmIGhlYWRlciBn
dWFyZCBmb3VuZCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpczogJXMnCisgICAgICAgICAgICAg
ICAgJyAgW2J1aWxkL3dlYmtpdF9oZWFkZXJfZ3VhcmRdIFs1XScgJSBleHBlY3RlZF9ndWFyZCks
CisgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKKworICAgICAgICAj
IE5vIGVuZGlmCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYu
YXNzZXJ0XykKKyAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwg
J2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmICVzJyAl
IGV4cGVjdGVkX2d1YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcj
ZGVmaW5lICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCisg
ICAgICAgICAgICAxLAorICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCku
Y291bnQoCisgICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmIC8v
ICVzIicKKyAgICAgICAgICAgICAgICAnICBbYnVpbGQvd2Via2l0X2hlYWRlcl9ndWFyZF0gWzVd
JyAlIGV4cGVjdGVkX2d1YXJkKSwKKyAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRf
bGlzdCgpKQorCisgICAgICAgICMgQ29tbWVudGxlc3MgZW5kaWYKKyAgICAgICAgZXJyb3JfY29s
bGVjdG9yID0gRXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQorICAgICAgICBjcHBfc3R5bGUu
cHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0ZWRfZ3VhcmQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNkZWZpbmUgJXMnICUgZXhwZWN0ZWRfZ3VhcmQs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiddLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFscygKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICBlcnJvcl9jb2xs
ZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKKyAgICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUg
c2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJworICAgICAgICAgICAgICAgICcgIFtidWlsZC93ZWJr
aXRfaGVhZGVyX2d1YXJkXSBbNV0nICUgZXhwZWN0ZWRfZ3VhcmQpLAorICAgICAgICAgICAgZXJy
b3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCisKKyAgICAgICAgIyBDb21tZW50bGVzcyBlbmRp
ZiBmb3Igb2xkLXN0eWxlIGd1YXJkCisgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29s
bGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRh
KGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycj
aWZuZGVmICVzXycgJSBleHBlY3RlZF9ndWFyZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnI2RlZmluZSAlc18nICUgZXhwZWN0ZWRfZ3VhcmQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiddLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygKKyAgICAgICAgICAgIDEsCisgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xp
c3QoKS5jb3VudCgKKyAgICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5k
aWYgLy8gJXMiJworICAgICAgICAgICAgICAgICcgIFtidWlsZC93ZWJraXRfaGVhZGVyX2d1YXJk
XSBbNV0nICUgZXhwZWN0ZWRfZ3VhcmQpLAorICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJl
c3VsdF9saXN0KCkpCisKKyAgICAgICAgIyBObyBoZWFkZXIgZ3VhcmQgZXJyb3JzCisgICAgICAg
IGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKKyAgICAgICAg
Y3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVzJyAlIGV4cGVj
dGVkX2d1YXJkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZW5kaWYg
Ly8gJXMnICUgZXhwZWN0ZWRfZ3VhcmRdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yKQorICAgICAgICBmb3IgbGluZSBpbiBlcnJvcl9jb2xsZWN0
b3IucmVzdWx0X2xpc3QoKToKKyAgICAgICAgICAgIGlmIGxpbmUuZmluZCgnYnVpbGQvd2Via2l0
X2hlYWRlcl9ndWFyZCcpICE9IC0xOgorICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBl
Y3RlZCBlcnJvcjogJXMnICUgbGluZSkKKworICAgICAgICAjIENvbXBsZXRlbHkgaW5jb3JyZWN0
IGhlYWRlciBndWFyZAorICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3Rvcihz
ZWxmLmFzc2VydF8pCisgICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3Bh
dGgsICdoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiBG
T08nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lIEZPTycs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiAgLy8gRk9PJ10s
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIGVy
cm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAorICAgICAgICAgICAgICAgICcjaWZu
ZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVzJworICAgICAg
ICAgICAgICAgICcgIFtidWlsZC93ZWJraXRfaGVhZGVyX2d1YXJkXSBbNV0nICUgZXhwZWN0ZWRf
Z3VhcmQpLAorICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAorICAgICAgICAgICAgMSwKKyAgICAgICAgICAgIGVycm9y
X2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAorICAgICAgICAgICAgICAgICcjZW5kaWYg
bGluZSBzaG91bGQgYmUgIiNlbmRpZiAvLyAlcyInCisgICAgICAgICAgICAgICAgJyAgW2J1aWxk
L3dlYmtpdF9oZWFkZXJfZ3VhcmRdIFs1XScgJSBleHBlY3RlZF9ndWFyZCksCisgICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKKwogICAgIGRlZiB0ZXN0X290aGVyKHNl
bGYpOgogICAgICAgICAjIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KICAgICAgICAgcGFzcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45043</attachid>
            <date>2009-12-17 01:01:00 -0800</date>
            <delta_ts>2009-12-17 20:51:10 -0800</delta_ts>
            <desc>Check one space before end of line comments.</desc>
            <filename>bug-32597-20091217180058.patch</filename>
            <type>text/plain</type>
            <size>19565</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiZjg3Y2UwLi4zZDQwYzU1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgb25lIHNwYWNlIGJlZm9yZSBl
bmQgb2YgbGluZSBjb21tZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNTk3CisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxl
LnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHk6CisK
IDIwMDktMTItMTYgIEV2YW4gTWFydGluICA8ZXZhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMv
bW9kdWxlcy9jcHBfc3R5bGUucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0
eWxlLnB5CmluZGV4IDNjNjdjMjUuLmYyMmFkMTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Nj
cmlwdHMvbW9kdWxlcy9jcHBfc3R5bGUucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL2NwcF9zdHlsZS5weQpAQCAtNjksNyArNjksNiBAQCBfREVGQVVMVF9PVVRQVVRfRk9STUFU
ID0gJ2VtYWNzJwogIyB0aGUgZmlsdGVyIHJ1bGVzIGFzIHNwZWNpZmllZCBieSBhIC0tZmlsdGVy
IGZsYWcuCiBfV0VCS0lUX0ZJTFRFUl9SVUxFUyA9IFsKICAgICAnLWJ1aWxkL2VuZGlmX2NvbW1l
bnQnLAotICAgICctYnVpbGQvaGVhZGVyX2d1YXJkJywKICAgICAnLWJ1aWxkL2luY2x1ZGVfd2hh
dF95b3VfdXNlJywgICMgPHN0cmluZz4gZm9yIHN0ZDo6c3RyaW5nCiAgICAgJy1idWlsZC9zdG9y
YWdlX2NsYXNzJywgICMgY29uc3Qgc3RhdGljCiAgICAgJy1sZWdhbC9jb3B5cmlnaHQnLApAQCAt
ODcsNyArODYsNiBAQCBfV0VCS0lUX0ZJTFRFUl9SVUxFUyA9IFsKICAgICAnLXJ1bnRpbWUvdGhy
ZWFkc2FmZV9mbicsCiAgICAgJy1ydW50aW1lL3J0dGknLAogICAgICctd2hpdGVzcGFjZS9ibGFu
a19saW5lJywKLSAgICAnLXdoaXRlc3BhY2UvY29tbWVudHMnLAogICAgICctd2hpdGVzcGFjZS9l
bmRfb2ZfbGluZScsCiAgICAgJy13aGl0ZXNwYWNlL2xhYmVscycsCiAgICAgXQpAQCAtODc0LDgg
Kzg3Miw3IEBAIGRlZiBnZXRfaGVhZGVyX2d1YXJkX2NwcF92YXJpYWJsZShmaWxlbmFtZSk6CiAK
ICAgICAiIiIKIAotICAgIGZpbGVpbmZvID0gRmlsZUluZm8oZmlsZW5hbWUpCi0gICAgcmV0dXJu
IHN1YihyJ1stLi9cc10nLCAnXycsIGZpbGVpbmZvLnJlcG9zaXRvcnlfbmFtZSgpKS51cHBlcigp
ICsgJ18nCisgICAgcmV0dXJuIHN1YihyJ1stLi9cc10nLCAnXycsIG9zLnBhdGguYmFzZW5hbWUo
ZmlsZW5hbWUpKQogCiAKIGRlZiBjaGVja19mb3JfaGVhZGVyX2d1YXJkKGZpbGVuYW1lLCBsaW5l
cywgZXJyb3IpOgpAQCAtOTE4LDIzICs5MTUsMTQgQEAgZGVmIGNoZWNrX2Zvcl9oZWFkZXJfZ3Vh
cmQoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcik6CiAgICAgICAgICAgICAgIGNwcHZhcikKICAgICAg
ICAgcmV0dXJuCiAKLSAgICAjIFRoZSBndWFyZCBzaG91bGQgYmUgUEFUSF9GSUxFX0hfLCBidXQg
d2UgYWxzbyBhbGxvdyBQQVRIX0ZJTEVfSF9fCi0gICAgIyBmb3IgYmFja3dhcmQgY29tcGF0aWJp
bGl0eS4KKyAgICAjIFRoZSBndWFyZCBzaG91bGQgYmUgRmlsZV9oLgogICAgIGlmIGlmbmRlZiAh
PSBjcHB2YXI6Ci0gICAgICAgIGVycm9yX2xldmVsID0gMAotICAgICAgICBpZiBpZm5kZWYgIT0g
Y3BwdmFyICsgJ18nOgotICAgICAgICAgICAgZXJyb3JfbGV2ZWwgPSA1CisgICAgICBlcnJvcihm
aWxlbmFtZSwgaWZuZGVmX2xpbmVfbnVtYmVyLCAnYnVpbGQvaGVhZGVyX2d1YXJkJywgNSwKKyAg
ICAgICAgICAgICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1
c2U6ICVzJyAlIGNwcHZhcikKIAotICAgICAgICBlcnJvcihmaWxlbmFtZSwgaWZuZGVmX2xpbmVf
bnVtYmVyLCAnYnVpbGQvaGVhZGVyX2d1YXJkJywgZXJyb3JfbGV2ZWwsCi0gICAgICAgICAgICAg
ICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVzJyAl
IGNwcHZhcikKLQotICAgIGlmIGVuZGlmICE9ICgnI2VuZGlmICAvLyAlcycgJSBjcHB2YXIpOgot
ICAgICAgICBlcnJvcl9sZXZlbCA9IDAKLSAgICAgICAgaWYgZW5kaWYgIT0gKCcjZW5kaWYgIC8v
ICVzJyAlIChjcHB2YXIgKyAnXycpKToKLSAgICAgICAgICAgIGVycm9yX2xldmVsID0gNQotCi0g
ICAgICAgIGVycm9yKGZpbGVuYW1lLCBlbmRpZl9saW5lX251bWJlciwgJ2J1aWxkL2hlYWRlcl9n
dWFyZCcsIGVycm9yX2xldmVsLAotICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJl
ICIjZW5kaWYgIC8vICVzIicgJSBjcHB2YXIpCisgICAgaWYgZW5kaWYgIT0gKCcjZW5kaWYgLy8g
JXMnICUgY3BwdmFyKToKKyAgICAgIGVycm9yKGZpbGVuYW1lLCBlbmRpZl9saW5lX251bWJlciwg
J2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUsCisgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxk
IGJlICIjZW5kaWYgLy8gJXMiJyAlIGNwcHZhcikKIAogCiBkZWYgY2hlY2tfZm9yX3VuaWNvZGVf
cmVwbGFjZW1lbnRfY2hhcmFjdGVycyhmaWxlbmFtZSwgbGluZXMsIGVycm9yKToKQEAgLTE1MjQs
MTQgKzE1MTIsMTMgQEAgZGVmIGNoZWNrX3NwYWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBs
aW5lX251bWJlciwgZXJyb3IpOgogICAgICAgICAjIENoZWNrIGlmIHRoZSAvLyBtYXkgYmUgaW4g
cXVvdGVzLiAgSWYgc28sIGlnbm9yZSBpdAogICAgICAgICAjIENvbXBhcmlzb25zIG1hZGUgZXhw
bGljaXQgZm9yIGNsYXJpdHkgLS0gcHlsaW50OiBkaXNhYmxlLW1zZz1DNjQwMwogICAgICAgICBp
ZiAobGluZS5jb3VudCgnIicsIDAsIGNvbW1lbnRfcG9zaXRpb24pIC0gbGluZS5jb3VudCgnXFwi
JywgMCwgY29tbWVudF9wb3NpdGlvbikpICUgMiA9PSAwOiAgICMgbm90IGluIHF1b3RlcwotICAg
ICAgICAgICAgIyBBbGxvdyBvbmUgc3BhY2UgZm9yIG5ldyBzY29wZXMsIHR3byBzcGFjZXMgb3Ro
ZXJ3aXNlOgotICAgICAgICAgICAgaWYgKG5vdCBtYXRjaChyJ15ccyp7IC8vJywgbGluZSkKLSAg
ICAgICAgICAgICAgICBhbmQgKChjb21tZW50X3Bvc2l0aW9uID49IDEKLSAgICAgICAgICAgICAg
ICAgICAgICBhbmQgbGluZVtjb21tZW50X3Bvc2l0aW9uLTFdIG5vdCBpbiBzdHJpbmcud2hpdGVz
cGFjZSkKLSAgICAgICAgICAgICAgICAgICAgIG9yIChjb21tZW50X3Bvc2l0aW9uID49IDIKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGluZVtjb21tZW50X3Bvc2l0aW9uLTJdIG5vdCBp
biBzdHJpbmcud2hpdGVzcGFjZSkpKToKLSAgICAgICAgICAgICAgICBlcnJvcihmaWxlbmFtZSwg
bGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2NvbW1lbnRzJywgMiwKLSAgICAgICAgICAgICAgICAg
ICAgICAnQXQgbGVhc3QgdHdvIHNwYWNlcyBpcyBiZXN0IGJldHdlZW4gY29kZSBhbmQgY29tbWVu
dHMnKQorICAgICAgICAgICAgIyBBbGxvdyBvbmUgc3BhY2UgYmVmb3JlIGVuZCBvZiBsaW5lIGNv
bW1lbnQuCisgICAgICAgICAgICBpZiAobm90IG1hdGNoKHInXlxzKiQnLCBsaW5lWzpjb21tZW50
X3Bvc2l0aW9uXSkKKyAgICAgICAgICAgICAgICBhbmQgKGNvbW1lbnRfcG9zaXRpb24gPj0gMgor
ICAgICAgICAgICAgICAgIGFuZCAoKGxpbmVbY29tbWVudF9wb3NpdGlvbi0xXSBub3QgaW4gc3Ry
aW5nLndoaXRlc3BhY2UpCisgICAgICAgICAgICAgICAgICAgICBvciAobGluZVtjb21tZW50X3Bv
c2l0aW9uLTJdIGluIHN0cmluZy53aGl0ZXNwYWNlKSkpKToKKyAgICAgICAgICAgICAgZXJyb3Io
ZmlsZW5hbWUsIGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9jb21tZW50cycsIDUsCisgICAgICAg
ICAgICAgICAgICAgICdPbmUgc3BhY2UgYmVmb3JlIGVuZCBvZiBsaW5lIGNvbW1lbnRzJykKICAg
ICAgICAgICAgICMgVGhlcmUgc2hvdWxkIGFsd2F5cyBiZSBhIHNwYWNlIGJldHdlZW4gdGhlIC8v
IGFuZCB0aGUgY29tbWVudAogICAgICAgICAgICAgY29tbWVudGVuZCA9IGNvbW1lbnRfcG9zaXRp
b24gKyAyCiAgICAgICAgICAgICBpZiBjb21tZW50ZW5kIDwgbGVuKGxpbmUpIGFuZCBub3QgbGlu
ZVtjb21tZW50ZW5kXSA9PSAnICc6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21v
ZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVz
L2NwcF9zdHlsZV91bml0dGVzdC5weQppbmRleCA4MGE5ODY4Li5jYzdhYmU5IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CisrKyBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHkKQEAgLTM5
OSwxMyArMzk5LDEzIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAg
ICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9jYXN0aW5nXSBbNF0nKQogICAgICAgICAjIENoZWNr
cyBmb3IgZmFsc2UgcG9zaXRpdmVzLi4uCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAg
ICAgICAgICAnaW50IGEgPSBpbnQoKTsgIC8vIENvbnN0cnVjdG9yLCBvLmsuJywKKyAgICAgICAg
ICAgICdpbnQgYSA9IGludCgpOyAvLyBDb25zdHJ1Y3Rvciwgby5rLicsCiAgICAgICAgICAgICAn
JykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKLSAgICAgICAgICAgICdYOjpYKCkgOiBhKGlu
dCgpKSB7fSAgLy8gZGVmYXVsdCBDb25zdHJ1Y3Rvciwgby5rLicsCisgICAgICAgICAgICAnWDo6
WCgpIDogYShpbnQoKSkge30gLy8gZGVmYXVsdCBDb25zdHJ1Y3Rvciwgby5rLicsCiAgICAgICAg
ICAgICAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKLSAgICAgICAgICAgICdvcGVyYXRv
ciBib29sKCk7ICAvLyBDb252ZXJzaW9uIG9wZXJhdG9yLCBvLmsuJywKKyAgICAgICAgICAgICdv
cGVyYXRvciBib29sKCk7IC8vIENvbnZlcnNpb24gb3BlcmF0b3IsIG8uay4nLAogICAgICAgICAg
ICAgJycpCiAKICAgICAjIFRoZSBzZWNvbmQgcGFyYW1ldGVyIHRvIGEgZ01vY2sgbWV0aG9kIGRl
ZmluaXRpb24gaXMgYSBmdW5jdGlvbiBzaWduYXR1cmUKQEAgLTcyMCw3ICs3MjAsNyBAQCBjbGFz
cyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICMgbWlzc2luZyBleHBs
aWNpdCwgd2l0aCBkaXN0cmFjdGluZyBjb21tZW50LCBpcyBzdGlsbCBiYWQKICAgICAgICAgc2Vs
Zi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAogICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAg
ICAgICAgICAgICAgICAgRm9vKGludCBmKTsgIC8vIHNpbXBsZXIgdGhhbiBGb28oYmxhcmdoLCBi
bGFyZykKKyAgICAgICAgICAgICAgICAgRm9vKGludCBmKTsgLy8gc2ltcGxlciB0aGFuIEZvbyhi
bGFyZ2gsIGJsYXJnKQogICAgICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnU2luZ2xl
LWFyZ3VtZW50IGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFya2VkIGV4cGxpY2l0LicKICAgICAg
ICAgICAgICcgIFtydW50aW1lL2V4cGxpY2l0XSBbNV0nKQpAQCAtMTA4OCw3ICsxMDg4LDcgQEAg
Y2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgICAg
ICAgICAgICcgIFtyZWFkYWJpbGl0eS9jaGVja10gWzJdJykKIAogICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KAotICAgICAgICAgICAgJyAgICBFWFBFQ1RfVFJVRSg0MiA8IHgpICAvLyBSYW5kb20g
Y29tbWVudC4nLAorICAgICAgICAgICAgJyAgICBFWFBFQ1RfVFJVRSg0MiA8IHgpIC8vIFJhbmRv
bSBjb21tZW50LicsCiAgICAgICAgICAgICAnQ29uc2lkZXIgdXNpbmcgRVhQRUNUX0xUIGluc3Rl
YWQgb2YgRVhQRUNUX1RSVUUoYSA8IGIpJwogICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2No
ZWNrXSBbMl0nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KApAQCAtMTI0OCwzMCArMTI0OCwz
MSBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgJyAgW3doaXRlc3BhY2Uvb3BlcmF0b3JzXSBbM10nKQogICAgICAgICBzZWxm
LmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9ICpiL2M7JywgJ01pc3Npbmcgc3BhY2VzIGFyb3Vu
ZCAvJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL29wZXJhdG9yc10g
WzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiL2M7IC8vVGVz
dCcsIFsnQXQgbGVhc3QgdHdvIHNwYWNlcycKLSAgICAgICAgICAgICAgICAgICAgICAgICAnIGlz
IGJlc3QgYmV0d2VlbiBjb2RlIGFuZCBjb21tZW50cyAgW3doaXRlc3BhY2UvJwotICAgICAgICAg
ICAgICAgICAgICAgICAgICdjb21tZW50c10gWzJdJywgJ1Nob3VsZCBoYXZlIGEgc3BhY2UgYmV0
d2VlbiAvLyAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBjb21tZW50ICBbd2hpdGVz
cGFjZS9jb21tZW50c10gWzRdJywgJ01pc3NpbmcnCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQo
J2E8Rm9vKj4gdCA8PD0gYi9jOyAvL1Rlc3QnLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAg
J1Nob3VsZCBoYXZlIGEgc3BhY2UgYmV0d2VlbiAvLyBhbmQgY29tbWVudCAgJworICAgICAgICAg
ICAgICAgICAgICAgICAgICdbd2hpdGVzcGFjZS9jb21tZW50c10gWzRdJywgJ01pc3NpbmcnCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJyBzcGFjZXMgYXJvdW5kIC8gIFt3aGl0ZXNwYWNlL29w
ZXJhdG9yc10gWzNdJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0g
Ynx8YzsgIC8vVGVzdCcsIFsnU2hvdWxkIGhhdmUgYSBzcGFjZScKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnIGJldHdlZW4gLy8gYW5kIGNvbW1lbnQgIFt3aGl0ZXNwYWNlL2NvbW1lbnRzXSBb
NF0nLAorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9IGJ8fGM7ICAvL1Rl
c3QnLCBbJ09uZSBzcGFjZSBiZWZvcmUgZW5kJworICAgICAgICAgICAgICAgICAgICAgICAgICcg
b2YgbGluZSBjb21tZW50cyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFs1XScsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1Nob3VsZCBoYXZlIGEgc3BhY2UgYmV0d2VlbiAvLyBhbmQgY29tbWVu
dCAgJworICAgICAgICAgICAgICAgICAgICAgICAgICdbd2hpdGVzcGFjZS9jb21tZW50c10gWzRd
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnTWlzc2luZyBzcGFjZXMgYXJvdW5kIHx8ICBb
d2hpdGVzcGFjZS9vcGVyYXRvcnNdIFszXSddKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdh
PEZvbyo+IHQgPDw9IGImJmM7ICAvLyBUZXN0JywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCcKKyAg
ICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiJiZjOyAvLyBUZXN0JywgJ01p
c3Npbmcgc3BhY2VzIGFyb3VuZCcKICAgICAgICAgICAgICAgICAgICAgICAgICAnICYmICBbd2hp
dGVzcGFjZS9vcGVyYXRvcnNdIFszXScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9v
Kj4gdCA8PD0gYiYmJmM7ICAvLyBUZXN0JywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCcKKyAgICAg
ICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiJiYmYzsgLy8gVGVzdCcsICdNaXNz
aW5nIHNwYWNlcyBhcm91bmQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAmJiAgW3doaXRl
c3BhY2Uvb3BlcmF0b3JzXSBbM10nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+
IHQgPDw9IGImJipjOyAgLy8gVGVzdCcsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQnCisgICAgICAg
IHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiYmKmM7IC8vIFRlc3QnLCAnTWlzc2lu
ZyBzcGFjZXMgYXJvdW5kJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgJiYgIFt3aGl0ZXNw
YWNlL29wZXJhdG9yc10gWzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0
IDw8PSBiICYmICpjOyAgLy8gVGVzdCcsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdh
PEZvbyo+IHQgPDw9IGIgJiYgJmM7ICAvLyBUZXN0JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0
X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiAmJiAqYzsgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxm
LmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9IGIgJiYgJmM7IC8vIFRlc3QnLCAnJykKICAgICAg
ICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiIHx8ICZjOyAgLypUZXN0JywgJ0Nv
bXBsZXggbXVsdGktbGluZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qLi4uKi8tc3R5
bGUgY29tbWVudCBmb3VuZC4gTGludCBtYXkgZ2l2ZSBib2d1cyAnCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ3dhcm5pbmdzLiAgQ29uc2lkZXIgcmVwbGFjaW5nIHRoZXNlIHdpdGggLy8tc3R5
bGUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyBjb21tZW50cywgd2l0aCAjaWYgMC4uLiNl
bmRpZiwgb3Igd2l0aCBtb3JlIGNsZWFybHknCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyBz
dHJ1Y3R1cmVkIG11bHRpLWxpbmUgY29tbWVudHMuICBbcmVhZGFiaWxpdHkvbXVsdGlsaW5lX2Nv
bW1lbnRdIFs1XScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vJj4gdCA8PD0gJmIg
fCAmYzsnLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSAmYiAm
ICZjOyAgLy8gVGVzdCcsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQg
PDw9ICpiIC8gJmM7ICAvLyBUZXN0JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8
Rm9vKj4gdCA8PD0gJmIgJiAmYzsgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxmLmFzc2VydF9s
aW50KCdhPEZvbyo+IHQgPDw9ICpiIC8gJmM7IC8vIFRlc3QnLCAnJykKICAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnaWYgKGE9YiA9PSAxKScsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQgPSAgW3do
aXRlc3BhY2Uvb3BlcmF0b3JzXSBbNF0nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhID0g
MTw8MjAnLCAnTWlzc2luZyBzcGFjZXMgYXJvdW5kIDw8ICBbd2hpdGVzcGFjZS9vcGVyYXRvcnNd
IFszXScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2lmIChhID0gYiA9PSAxKScsICcnKQpA
QCAtMTMwNSw3ICsxMzA2LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgICAgICAgICAgICAgICAgICAgICAgICdGb3IgYSBzdGF0aWMvZ2xvYmFsIHN0cmluZyBj
b25zdGFudCwgdXNlIGEgQyBzdHlsZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmlu
ZyBpbnN0ZWFkOiAiY2hhciBmb29bXSIuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFty
dW50aW1lL3N0cmluZ10gWzRdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnc3RyaW5nIGtG
b28gPSAiaGVsbG8iOyAgLy8gRW5nbGlzaCcsCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3N0
cmluZyBrRm9vID0gImhlbGxvIjsgLy8gRW5nbGlzaCcsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ0ZvciBhIHN0YXRpYy9nbG9iYWwgc3RyaW5nIGNvbnN0YW50LCB1c2UgYSBDIHN0eWxlICcK
ICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RyaW5nIGluc3RlYWQ6ICJjaGFyIGtGb29bXSIu
JwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFtydW50aW1lL3N0cmluZ10gWzRdJykKQEAg
LTEzNjIsMzEgKzEzNjMsNiBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgnI2VuZGlmXG4gICAgKTsnLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycpCiAKLSAgICBkZWYgdGVzdF90
d29fc3BhY2VzX2JldHdlZW5fY29kZV9hbmRfY29tbWVudHMoc2VsZik6Ci0gICAgICAgIHNlbGYu
YXNzZXJ0X2xpbnQoJ30gLy8gbmFtZXNwYWNlIGZvbycsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgJ0F0IGxlYXN0IHR3byBzcGFjZXMgaXMgYmVzdCBiZXR3ZWVuIGNvZGUgYW5kIGNvbW1lbnRz
JwotICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL2NvbW1lbnRzXSBbMl0n
KQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCd9Ly8gbmFtZXNwYWNlIGZvbycsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgJ0F0IGxlYXN0IHR3byBzcGFjZXMgaXMgYmVzdCBiZXR3ZWVuIGNv
ZGUgYW5kIGNvbW1lbnRzJwotICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNl
L2NvbW1lbnRzXSBbMl0nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdwcmludGYoImZvbyIp
OyAvLyBPdXRzaWRlIHF1b3Rlcy4nLAotICAgICAgICAgICAgICAgICAgICAgICAgICdBdCBsZWFz
dCB0d28gc3BhY2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFuZCBjb21tZW50cycKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21tZW50c10gWzJdJykKLSAgICAgICAg
c2VsZi5hc3NlcnRfbGludCgnaW50IGkgPSAwOyAgLy8gSGF2aW5nIHR3byBzcGFjZXMgaXMgZmlu
ZS4nLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGkgPSAwOyAgIC8vIEhhdmlu
ZyB0aHJlZSBzcGFjZXMgaXMgT0suJywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJy8v
IFRvcCBsZXZlbCBjb21tZW50JywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgICAv
LyBMaW5lIHN0YXJ0cyB3aXRoIGZvdXIgc3BhY2VzLicsICcnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCdmb28oKTtcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAneyAvLyBBIHNjb3Bl
IGlzIG9wZW5pbmcuJywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgICBmb28oKTtc
bicKLSAgICAgICAgICAgICAgICAgICAgICAgICAnICAgIHsgLy8gQW4gaW5kZW50ZWQgc2NvcGUg
aXMgb3BlbmluZy4nLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaWYgKGZvbykgeyAv
LyBub3QgYSBwdXJlIHNjb3BlOyBjb21tZW50IGlzIHRvbyBjbG9zZSEnLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICdBdCBsZWFzdCB0d28gc3BhY2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFu
ZCBjb21tZW50cycKLSAgICAgICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21t
ZW50c10gWzJdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCIvLyBJbiBxdW90
ZXMuIiknLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCJcXCIlcyAvLyBJ
biBxdW90ZXMuIiknLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCIlcyIs
ICIvLyBJbiBxdW90ZXMuIiknLCAnJykKLQogICAgIGRlZiB0ZXN0X3NwYWNlX2FmdGVyX2NvbW1l
bnRfbWFya2VyKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCcvLycsICcnKQogICAg
ICAgICBzZWxmLmFzc2VydF9saW50KCcvL3gnLCAnU2hvdWxkIGhhdmUgYSBzcGFjZSBiZXR3ZWVu
IC8vIGFuZCBjb21tZW50JwpAQCAtMTU2MSw3ICsxNTM3LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0
KENwcFN0eWxlVGVzdEJhc2UpOgogICAgIGRlZiB0ZXN0X3RhYihzZWxmKToKICAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgnXHRpbnQgYTsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdUYWIg
Zm91bmQ7IGJldHRlciB0byB1c2Ugc3BhY2VzICBbd2hpdGVzcGFjZS90YWJdIFsxXScpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2ludCBhID0gNTtcdFx0Ly8gc2V0IGEgdG8gNScsCisgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2ludCBhID0gNTtcdC8vIHNldCBhIHRvIDUnLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICdUYWIgZm91bmQ7IGJldHRlciB0byB1c2Ugc3BhY2VzICBbd2hp
dGVzcGFjZS90YWJdIFsxXScpCiAKICAgICBkZWYgdGVzdF9wYXJzZV9hcmd1bWVudHMoc2VsZik6
CkBAIC0xNzMwLDcgKzE3MDYsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFz
ZSk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2ZvcndhcmRfZGVjbF0gWzVd
JykKIAogICAgIGRlZiB0ZXN0X2J1aWxkX2hlYWRlcl9ndWFyZChzZWxmKToKLSAgICAgICAgZmls
ZV9wYXRoID0gJ215ZGlyL2Zvby5oJworICAgICAgICBmaWxlX3BhdGggPSAnbXlkaXIvRm9vLmgn
CiAKICAgICAgICAgIyBXZSBjYW4ndCByZWx5IG9uIG91ciBpbnRlcm5hbCBzdHVmZiB0byBnZXQg
YSBzYW5lIHBhdGggb24gdGhlIG9wZW4gc291cmNlCiAgICAgICAgICMgc2lkZSBvZiB0aGluZ3Ms
IHNvIGp1c3QgcGFyc2Ugb3V0IHRoZSBzdWdnZXN0ZWQgaGVhZGVyIGd1YXJkLiBUaGlzCkBAIC0x
NzQwLDcgKzE3MTYsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywgW10sIGVy
cm9yX2NvbGxlY3RvcikKICAgICAgICAgZXhwZWN0ZWRfZ3VhcmQgPSAnJwogICAgICAgICBtYXRj
aGVyID0gcmUuY29tcGlsZSgKLSAgICAgICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQg
Zm91bmRcLCBzdWdnZXN0ZWQgQ1BQIHZhcmlhYmxlIGlzXDogKFtBLVpfMC05XSspICcpCisgICAg
ICAgICAgICAnTm8gXCNpZm5kZWYgaGVhZGVyIGd1YXJkIGZvdW5kXCwgc3VnZ2VzdGVkIENQUCB2
YXJpYWJsZSBpc1w6IChbQS1aYS16XzAtOV0rKSAnKQogICAgICAgICBmb3IgZXJyb3IgaW4gZXJy
b3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCk6CiAgICAgICAgICAgICBtYXRjaGVzID0gbWF0Y2hl
ci5tYXRjaChlcnJvcikKICAgICAgICAgICAgIGlmIG1hdGNoZXM6CkBAIC0xNzk0LDcgKzE3NzAs
NyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rv
ci5yZXN1bHRfbGlzdCgpLmNvdW50KAotICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91
bGQgYmUgIiNlbmRpZiAgLy8gJXMiJworICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91
bGQgYmUgIiNlbmRpZiAvLyAlcyInCiAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2hlYWRlcl9n
dWFyZF0gWzVdJyAlIGV4cGVjdGVkX2d1YXJkKSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rv
ci5yZXN1bHRfbGlzdCgpKQogCkBAIC0xODA4LDcgKzE3ODQsNyBAQCBjbGFzcyBDcHBTdHlsZVRl
c3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAogICAgICAg
ICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50
KAotICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAgLy8gJXMi
JworICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAvLyAlcyIn
CiAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2hlYWRlcl9ndWFyZF0gWzVdJyAlIGV4cGVjdGVk
X2d1YXJkKSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpKQogCkBA
IC0xODIyLDcgKzE3OTgsNyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6
CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAogICAgICAgICAgICAgMSwKICAgICAgICAgICAg
IGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpLmNvdW50KAotICAgICAgICAgICAgICAgICcj
ZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAgLy8gJXMiJworICAgICAgICAgICAgICAgICcj
ZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAvLyAlcyInCiAgICAgICAgICAgICAgICAgJyAg
W2J1aWxkL2hlYWRlcl9ndWFyZF0gWzVdJyAlIGV4cGVjdGVkX2d1YXJkKSwKICAgICAgICAgICAg
IGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpKQogCkBAIC0xODMxLDQyICsxODA3LDEyIEBA
IGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgY3BwX3N0eWxl
LnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgWycjaWZuZGVmICVzJyAlIGV4cGVjdGVkX2d1YXJkLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVzJyAlIGV4cGVjdGVkX2d1YXJk
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZW5kaWYgIC8vICVzJyAl
IGV4cGVjdGVkX2d1YXJkXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVy
cm9yX2NvbGxlY3RvcikKLSAgICAgICAgZm9yIGxpbmUgaW4gZXJyb3JfY29sbGVjdG9yLnJlc3Vs
dF9saXN0KCk6Ci0gICAgICAgICAgICBpZiBsaW5lLmZpbmQoJ2J1aWxkL2hlYWRlcl9ndWFyZCcp
ICE9IC0xOgotICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBlcnJvcjogJXMn
ICUgbGluZSkKLQotICAgICAgICAjIE5vIGhlYWRlciBndWFyZCBlcnJvcnMgZm9yIG9sZC1zdHls
ZSBndWFyZAotICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFz
c2VydF8pCi0gICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdo
JywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiAlc18nICUg
ZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNk
ZWZpbmUgJXNfJyAlIGV4cGVjdGVkX2d1YXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICcjZW5kaWYgIC8vICVzXycgJSBleHBlY3RlZF9ndWFyZF0sCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiAvLyAlcycgJSBleHBlY3RlZF9ndWFy
ZF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3Ip
CiAgICAgICAgIGZvciBsaW5lIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAg
ICAgICAgICAgaWYgbGluZS5maW5kKCdidWlsZC9oZWFkZXJfZ3VhcmQnKSAhPSAtMToKICAgICAg
ICAgICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQgZXJyb3I6ICVzJyAlIGxpbmUpCiAKLSAg
ICAgICAgb2xkX3ZlcmJvc2VfbGV2ZWwgPSBjcHBfc3R5bGUuX2NwcF9zdHlsZV9zdGF0ZS52ZXJi
b3NlX2xldmVsCi0gICAgICAgIHRyeToKLSAgICAgICAgICAgIGNwcF9zdHlsZS5fY3BwX3N0eWxl
X3N0YXRlLnZlcmJvc2VfbGV2ZWwgPSAwCi0gICAgICAgICAgICAjIFdhcm4gb24gb2xkLXN0eWxl
IGd1YXJkIGlmIHZlcmJvc2l0eSBpcyAwLgotICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0g
RXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICAgICAgY3BwX3N0eWxlLnByb2Nl
c3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFsnI2lmbmRlZiAlc18nICUgZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZGVmaW5lICVzXycgJSBleHBlY3RlZF9n
dWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiAg
Ly8gJXNfJyAlIGV4cGVjdGVkX2d1YXJkXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygKLSAgICAgICAgICAgICAgICAxLAotICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5y
ZXN1bHRfbGlzdCgpLmNvdW50KAotICAgICAgICAgICAgICAgICAgICAnI2lmbmRlZiBoZWFkZXIg
Z3VhcmQgaGFzIHdyb25nIHN0eWxlLCBwbGVhc2UgdXNlOiAlcycKLSAgICAgICAgICAgICAgICAg
ICAgJyAgW2J1aWxkL2hlYWRlcl9ndWFyZF0gWzBdJyAlIGV4cGVjdGVkX2d1YXJkKSwKLSAgICAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKLSAgICAgICAgZmluYWxs
eToKLSAgICAgICAgICAgIGNwcF9zdHlsZS5fY3BwX3N0eWxlX3N0YXRlLnZlcmJvc2VfbGV2ZWwg
PSBvbGRfdmVyYm9zZV9sZXZlbAotCiAgICAgICAgICMgQ29tcGxldGVseSBpbmNvcnJlY3QgaGVh
ZGVyIGd1YXJkCiAgICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYu
YXNzZXJ0XykKICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZpbGVfcGF0aCwg
J2gnLApAQCAtMTg4Myw3ICsxODI5LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAg
ICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKLSAgICAgICAgICAg
ICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgIC8vICVzIicKKyAgICAgICAgICAg
ICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJwogICAgICAgICAgICAg
ICAgICcgIFtidWlsZC9oZWFkZXJfZ3VhcmRdIFs1XScgJSBleHBlY3RlZF9ndWFyZCksCiAgICAg
ICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKIApAQCAtMjkxMiw3ICsyODU4
LDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAg
ICAgJ2Zvby5jcHAnKQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCiAgICAg
ICAgICAgICAnbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCi0gICAgICAgICAgICAnY29uc3QgY2hh
ciogZm9vKHZvaWQqIGEgPSAiOyIsICAvLyA7XG4nCisgICAgICAgICAgICAnY29uc3QgY2hhciog
Zm9vKHZvaWQqIGEgPSAiOyIsIC8vIDtcbicKICAgICAgICAgICAgICcgICAgdm9pZCogYik7XG4n
CiAgICAgICAgICAgICAnICAgIHZvaWQqIHA7XG4nCiAgICAgICAgICAgICAnfVxuJywKQEAgLTI5
MjEsNyArMjg2Nyw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToK
ICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAogICAgICAgICAgICAgJ25hbWVz
cGFjZSBXZWJDb3JlIHtcblxuJwogICAgICAgICAgICAgJ2NvbnN0IGNoYXIqIGZvb1tdID0ge1xu
JwotICAgICAgICAgICAgJyAgICAidm9pZCogYik7IiwgIC8vIDtcbicKKyAgICAgICAgICAgICcg
ICAgInZvaWQqIGIpOyIsIC8vIDtcbicKICAgICAgICAgICAgICcgICAgImFzZmRmIixcbicKICAg
ICAgICAgICAgICcgICAgfVxuJwogICAgICAgICAgICAgJyAgICB2b2lkKiBwO1xuJwpAQCAtMjkz
MSw3ICsyODc3LDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgog
ICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCiAgICAgICAgICAgICAnbmFtZXNw
YWNlIFdlYkNvcmUge1xuXG4nCiAgICAgICAgICAgICAnY29uc3QgY2hhciogZm9vW10gPSB7XG4n
Ci0gICAgICAgICAgICAnICAgICJ2b2lkKiBiKTsiLCAgLy8gfVxuJworICAgICAgICAgICAgJyAg
ICAidm9pZCogYik7IiwgLy8gfVxuJwogICAgICAgICAgICAgJyAgICAiYXNmZGYiLFxuJwogICAg
ICAgICAgICAgJyAgICB9XG4nCiAgICAgICAgICAgICAnfVxuJywKQEAgLTI5NDEsNyArMjg4Nyw3
IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAg
ICcgICAgbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCiAgICAgICAgICAgICAnICAgIHZvaWQgRG9j
dW1lbnQ6OkZvbygpXG4nCiAgICAgICAgICAgICAnICAgIHtcbicKLSAgICAgICAgICAgICdzdGFy
dDogIC8vIGluZmluaXRlIGxvb3BzIGFyZSBmdW4hXG4nCisgICAgICAgICAgICAnc3RhcnQ6IC8v
IGluZmluaXRlIGxvb3BzIGFyZSBmdW4hXG4nCiAgICAgICAgICAgICAnICAgICAgICBnb3RvIHN0
YXJ0O1xuJwogICAgICAgICAgICAgJyAgICB9JywKICAgICAgICAgICAgICduYW1lc3BhY2Ugc2hv
dWxkIG5ldmVyIGJlIGluZGVudGVkLiAgW3doaXRlc3BhY2UvaW5kZW50XSBbNF0nLApAQCAtMzQ5
NSw3ICszNDQxLDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgog
ICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L251bGxdIFs0XScsCiAgICAgICAgICAgICAnZm9v
LmNwcCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAgICAgICAgICAnIkEgc3RyaW5n
IHdpdGggTlVMTCIgIC8vIGFuZCBhIGNvbW1lbnQgd2l0aCBOVUxMIGlzIHRyaWNreSB0byBmbGFn
IGNvcnJlY3RseSBpbiBjcHBfc3R5bGUuJywKKyAgICAgICAgICAgICciQSBzdHJpbmcgd2l0aCBO
VUxMIiAvLyBhbmQgYSBjb21tZW50IHdpdGggTlVMTCBpcyB0cmlja3kgdG8gZmxhZyBjb3JyZWN0
bHkgaW4gY3BwX3N0eWxlLicsCiAgICAgICAgICAgICAnVXNlIDAgaW5zdGVhZCBvZiBOVUxMLicK
ICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9udWxsXSBbNF0nLAogICAgICAgICAgICAgJ2Zv
by5jcHAnKQpAQCAtMzcxMiw2ICszNjU4LDE1IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBT
dHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgndHlwZWRlZiBWZWN0b3JU
eXBlOjpjb25zdF9pdGVyYXRvciBjb25zdF9pdGVyYXRvcjsnLCAnJykKIAogCisgICAgZGVmIHRl
c3RfY29tbWVudHMoc2VsZik6CisgICAgICAgICMgY29tbWVudCBhdCB0aGUgYmVnaW5pbmcgbGlu
ZSBpcyBvay4KKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnLy8gY29tbWVudCcsICcnKQorICAg
ICAgICBzZWxmLmFzc2VydF9saW50KCcgICAgLy8gY29tbWVudCcsICcnKQorCisgICAgICAgIHNl
bGYuYXNzZXJ0X2xpbnQoJ30gIC8vIG5hbWVzcGFjZSBXZWJDb3JlJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAnT25lIHNwYWNlIGJlZm9yZSBlbmQgb2YgbGluZSBjb21tZW50cycKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21tZW50c10gWzVdJykKKwogICAg
IGRlZiB0ZXN0X290aGVyKHNlbGYpOgogICAgICAgICAjIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4K
ICAgICAgICAgcGFzcwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45123</attachid>
            <date>2009-12-17 20:51:16 -0800</date>
            <delta_ts>2009-12-17 23:04:10 -0800</delta_ts>
            <desc>Check one space before end of line comments.</desc>
            <filename>bug-32597-20091218135114.patch</filename>
            <type>text/plain</type>
            <size>19974</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMzhmMGFkLi45OTgzZGI2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMTIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgb25lIHNwYWNlIGJlZm9yZSBl
bmQgb2YgbGluZSBjb21tZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNTk3CisKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxl
LnB5OgorICAgICAgICAqIFNjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHk6CisK
IDIwMDktMTItMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBNYXJrIFJvd2UuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVs
ZXMvY3BwX3N0eWxlLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5w
eQppbmRleCAzYzY3YzI1Li40ZmJhNzc3IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwX3N0eWxlLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9j
cHBfc3R5bGUucHkKQEAgLTY5LDcgKzY5LDYgQEAgX0RFRkFVTFRfT1VUUFVUX0ZPUk1BVCA9ICdl
bWFjcycKICMgdGhlIGZpbHRlciBydWxlcyBhcyBzcGVjaWZpZWQgYnkgYSAtLWZpbHRlciBmbGFn
LgogX1dFQktJVF9GSUxURVJfUlVMRVMgPSBbCiAgICAgJy1idWlsZC9lbmRpZl9jb21tZW50JywK
LSAgICAnLWJ1aWxkL2hlYWRlcl9ndWFyZCcsCiAgICAgJy1idWlsZC9pbmNsdWRlX3doYXRfeW91
X3VzZScsICAjIDxzdHJpbmc+IGZvciBzdGQ6OnN0cmluZwogICAgICctYnVpbGQvc3RvcmFnZV9j
bGFzcycsICAjIGNvbnN0IHN0YXRpYwogICAgICctbGVnYWwvY29weXJpZ2h0JywKQEAgLTg3LDcg
Kzg2LDYgQEAgX1dFQktJVF9GSUxURVJfUlVMRVMgPSBbCiAgICAgJy1ydW50aW1lL3RocmVhZHNh
ZmVfZm4nLAogICAgICctcnVudGltZS9ydHRpJywKICAgICAnLXdoaXRlc3BhY2UvYmxhbmtfbGlu
ZScsCi0gICAgJy13aGl0ZXNwYWNlL2NvbW1lbnRzJywKICAgICAnLXdoaXRlc3BhY2UvZW5kX29m
X2xpbmUnLAogICAgICctd2hpdGVzcGFjZS9sYWJlbHMnLAogICAgIF0KQEAgLTg3NCw4ICs4NzIs
NyBAQCBkZWYgZ2V0X2hlYWRlcl9ndWFyZF9jcHBfdmFyaWFibGUoZmlsZW5hbWUpOgogCiAgICAg
IiIiCiAKLSAgICBmaWxlaW5mbyA9IEZpbGVJbmZvKGZpbGVuYW1lKQotICAgIHJldHVybiBzdWIo
cidbLS4vXHNdJywgJ18nLCBmaWxlaW5mby5yZXBvc2l0b3J5X25hbWUoKSkudXBwZXIoKSArICdf
JworICAgIHJldHVybiBzdWIocidbLS5cc10nLCAnXycsIG9zLnBhdGguYmFzZW5hbWUoZmlsZW5h
bWUpKQogCiAKIGRlZiBjaGVja19mb3JfaGVhZGVyX2d1YXJkKGZpbGVuYW1lLCBsaW5lcywgZXJy
b3IpOgpAQCAtOTE4LDIzICs5MTUsMTQgQEAgZGVmIGNoZWNrX2Zvcl9oZWFkZXJfZ3VhcmQoZmls
ZW5hbWUsIGxpbmVzLCBlcnJvcik6CiAgICAgICAgICAgICAgIGNwcHZhcikKICAgICAgICAgcmV0
dXJuCiAKLSAgICAjIFRoZSBndWFyZCBzaG91bGQgYmUgUEFUSF9GSUxFX0hfLCBidXQgd2UgYWxz
byBhbGxvdyBQQVRIX0ZJTEVfSF9fCi0gICAgIyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4K
KyAgICAjIFRoZSBndWFyZCBzaG91bGQgYmUgRmlsZV9oLgogICAgIGlmIGlmbmRlZiAhPSBjcHB2
YXI6Ci0gICAgICAgIGVycm9yX2xldmVsID0gMAotICAgICAgICBpZiBpZm5kZWYgIT0gY3BwdmFy
ICsgJ18nOgotICAgICAgICAgICAgZXJyb3JfbGV2ZWwgPSA1Ci0KLSAgICAgICAgZXJyb3IoZmls
ZW5hbWUsIGlmbmRlZl9saW5lX251bWJlciwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIGVycm9yX2xl
dmVsLAorICAgICAgICBlcnJvcihmaWxlbmFtZSwgaWZuZGVmX2xpbmVfbnVtYmVyLCAnYnVpbGQv
aGVhZGVyX2d1YXJkJywgNSwKICAgICAgICAgICAgICAgJyNpZm5kZWYgaGVhZGVyIGd1YXJkIGhh
cyB3cm9uZyBzdHlsZSwgcGxlYXNlIHVzZTogJXMnICUgY3BwdmFyKQogCi0gICAgaWYgZW5kaWYg
IT0gKCcjZW5kaWYgIC8vICVzJyAlIGNwcHZhcik6Ci0gICAgICAgIGVycm9yX2xldmVsID0gMAot
ICAgICAgICBpZiBlbmRpZiAhPSAoJyNlbmRpZiAgLy8gJXMnICUgKGNwcHZhciArICdfJykpOgot
ICAgICAgICAgICAgZXJyb3JfbGV2ZWwgPSA1Ci0KLSAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGVu
ZGlmX2xpbmVfbnVtYmVyLCAnYnVpbGQvaGVhZGVyX2d1YXJkJywgZXJyb3JfbGV2ZWwsCi0gICAg
ICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAgLy8gJXMiJyAlIGNwcHZh
cikKKyAgICBpZiBlbmRpZiAhPSAoJyNlbmRpZiAvLyAlcycgJSBjcHB2YXIpOgorICAgICAgICBl
cnJvcihmaWxlbmFtZSwgZW5kaWZfbGluZV9udW1iZXIsICdidWlsZC9oZWFkZXJfZ3VhcmQnLCA1
LAorICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJyAl
IGNwcHZhcikKIAogCiBkZWYgY2hlY2tfZm9yX3VuaWNvZGVfcmVwbGFjZW1lbnRfY2hhcmFjdGVy
cyhmaWxlbmFtZSwgbGluZXMsIGVycm9yKToKQEAgLTE1MjQsMTQgKzE1MTIsMTQgQEAgZGVmIGNo
ZWNrX3NwYWNpbmcoZmlsZW5hbWUsIGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZXJyb3IpOgog
ICAgICAgICAjIENoZWNrIGlmIHRoZSAvLyBtYXkgYmUgaW4gcXVvdGVzLiAgSWYgc28sIGlnbm9y
ZSBpdAogICAgICAgICAjIENvbXBhcmlzb25zIG1hZGUgZXhwbGljaXQgZm9yIGNsYXJpdHkgLS0g
cHlsaW50OiBkaXNhYmxlLW1zZz1DNjQwMwogICAgICAgICBpZiAobGluZS5jb3VudCgnIicsIDAs
IGNvbW1lbnRfcG9zaXRpb24pIC0gbGluZS5jb3VudCgnXFwiJywgMCwgY29tbWVudF9wb3NpdGlv
bikpICUgMiA9PSAwOiAgICMgbm90IGluIHF1b3RlcwotICAgICAgICAgICAgIyBBbGxvdyBvbmUg
c3BhY2UgZm9yIG5ldyBzY29wZXMsIHR3byBzcGFjZXMgb3RoZXJ3aXNlOgotICAgICAgICAgICAg
aWYgKG5vdCBtYXRjaChyJ15ccyp7IC8vJywgbGluZSkKLSAgICAgICAgICAgICAgICBhbmQgKChj
b21tZW50X3Bvc2l0aW9uID49IDEKLSAgICAgICAgICAgICAgICAgICAgICBhbmQgbGluZVtjb21t
ZW50X3Bvc2l0aW9uLTFdIG5vdCBpbiBzdHJpbmcud2hpdGVzcGFjZSkKKyAgICAgICAgICAgICMg
QWxsb3cgb25lIHNwYWNlIGJlZm9yZSBlbmQgb2YgbGluZSBjb21tZW50LgorICAgICAgICAgICAg
aWYgKG5vdCBtYXRjaChyJ15ccyokJywgbGluZVs6Y29tbWVudF9wb3NpdGlvbl0pCisgICAgICAg
ICAgICAgICAgYW5kIChjb21tZW50X3Bvc2l0aW9uID49IDEKKyAgICAgICAgICAgICAgICBhbmQg
KChsaW5lW2NvbW1lbnRfcG9zaXRpb24gLSAxXSBub3QgaW4gc3RyaW5nLndoaXRlc3BhY2UpCiAg
ICAgICAgICAgICAgICAgICAgICBvciAoY29tbWVudF9wb3NpdGlvbiA+PSAyCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgYW5kIGxpbmVbY29tbWVudF9wb3NpdGlvbi0yXSBub3QgaW4gc3RyaW5n
LndoaXRlc3BhY2UpKSk6Ci0gICAgICAgICAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGxpbmVfbnVt
YmVyLCAnd2hpdGVzcGFjZS9jb21tZW50cycsIDIsCi0gICAgICAgICAgICAgICAgICAgICAgJ0F0
IGxlYXN0IHR3byBzcGFjZXMgaXMgYmVzdCBiZXR3ZWVuIGNvZGUgYW5kIGNvbW1lbnRzJykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICBhbmQgbGluZVtjb21tZW50X3Bvc2l0aW9uIC0gMl0gaW4g
c3RyaW5nLndoaXRlc3BhY2UpKSkpOgorICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1lLCBs
aW5lX251bWJlciwgJ3doaXRlc3BhY2UvY29tbWVudHMnLCA1LAorICAgICAgICAgICAgICAgICAg
ICAgICdPbmUgc3BhY2UgYmVmb3JlIGVuZCBvZiBsaW5lIGNvbW1lbnRzJykKICAgICAgICAgICAg
ICMgVGhlcmUgc2hvdWxkIGFsd2F5cyBiZSBhIHNwYWNlIGJldHdlZW4gdGhlIC8vIGFuZCB0aGUg
Y29tbWVudAogICAgICAgICAgICAgY29tbWVudGVuZCA9IGNvbW1lbnRfcG9zaXRpb24gKyAyCiAg
ICAgICAgICAgICBpZiBjb21tZW50ZW5kIDwgbGVuKGxpbmUpIGFuZCBub3QgbGluZVtjb21tZW50
ZW5kXSA9PSAnICc6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3Bw
X3N0eWxlX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHls
ZV91bml0dGVzdC5weQppbmRleCA4MGE5ODY4Li4yOTkzZDY4IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CisrKyBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvbW9kdWxlcy9jcHBfc3R5bGVfdW5pdHRlc3QucHkKQEAgLTM5OSwxMyArMzk5
LDEzIEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAg
ICcgIFtyZWFkYWJpbGl0eS9jYXN0aW5nXSBbNF0nKQogICAgICAgICAjIENoZWNrcyBmb3IgZmFs
c2UgcG9zaXRpdmVzLi4uCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAgICAgICAgICAn
aW50IGEgPSBpbnQoKTsgIC8vIENvbnN0cnVjdG9yLCBvLmsuJywKKyAgICAgICAgICAgICdpbnQg
YSA9IGludCgpOyAvLyBDb25zdHJ1Y3Rvciwgby5rLicsCiAgICAgICAgICAgICAnJykKICAgICAg
ICAgc2VsZi5hc3NlcnRfbGludCgKLSAgICAgICAgICAgICdYOjpYKCkgOiBhKGludCgpKSB7fSAg
Ly8gZGVmYXVsdCBDb25zdHJ1Y3Rvciwgby5rLicsCisgICAgICAgICAgICAnWDo6WCgpIDogYShp
bnQoKSkge30gLy8gZGVmYXVsdCBDb25zdHJ1Y3Rvciwgby5rLicsCiAgICAgICAgICAgICAnJykK
ICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKLSAgICAgICAgICAgICdvcGVyYXRvciBib29sKCk7
ICAvLyBDb252ZXJzaW9uIG9wZXJhdG9yLCBvLmsuJywKKyAgICAgICAgICAgICdvcGVyYXRvciBi
b29sKCk7IC8vIENvbnZlcnNpb24gb3BlcmF0b3IsIG8uay4nLAogICAgICAgICAgICAgJycpCiAK
ICAgICAjIFRoZSBzZWNvbmQgcGFyYW1ldGVyIHRvIGEgZ01vY2sgbWV0aG9kIGRlZmluaXRpb24g
aXMgYSBmdW5jdGlvbiBzaWduYXR1cmUKQEAgLTcyMCw3ICs3MjAsNyBAQCBjbGFzcyBDcHBTdHls
ZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICMgbWlzc2luZyBleHBsaWNpdCwgd2l0
aCBkaXN0cmFjdGluZyBjb21tZW50LCBpcyBzdGlsbCBiYWQKICAgICAgICAgc2VsZi5hc3NlcnRf
bXVsdGlfbGluZV9saW50KAogICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAgICAgICAgICAg
ICAgICAgRm9vKGludCBmKTsgIC8vIHNpbXBsZXIgdGhhbiBGb28oYmxhcmdoLCBibGFyZykKKyAg
ICAgICAgICAgICAgICAgRm9vKGludCBmKTsgLy8gc2ltcGxlciB0aGFuIEZvbyhibGFyZ2gsIGJs
YXJnKQogICAgICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnU2luZ2xlLWFyZ3VtZW50
IGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFya2VkIGV4cGxpY2l0LicKICAgICAgICAgICAgICcg
IFtydW50aW1lL2V4cGxpY2l0XSBbNV0nKQpAQCAtMTA4OCw3ICsxMDg4LDcgQEAgY2xhc3MgQ3Bw
U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICcg
IFtyZWFkYWJpbGl0eS9jaGVja10gWzJdJykKIAogICAgICAgICBzZWxmLmFzc2VydF9saW50KAot
ICAgICAgICAgICAgJyAgICBFWFBFQ1RfVFJVRSg0MiA8IHgpICAvLyBSYW5kb20gY29tbWVudC4n
LAorICAgICAgICAgICAgJyAgICBFWFBFQ1RfVFJVRSg0MiA8IHgpIC8vIFJhbmRvbSBjb21tZW50
LicsCiAgICAgICAgICAgICAnQ29uc2lkZXIgdXNpbmcgRVhQRUNUX0xUIGluc3RlYWQgb2YgRVhQ
RUNUX1RSVUUoYSA8IGIpJwogICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L2NoZWNrXSBbMl0n
KQogICAgICAgICBzZWxmLmFzc2VydF9saW50KApAQCAtMTI0OCwzMCArMTI0OCwzMSBAQCBjbGFz
cyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgJyAgW3doaXRlc3BhY2Uvb3BlcmF0b3JzXSBbM10nKQogICAgICAgICBzZWxmLmFzc2VydF9s
aW50KCdhPEZvbyo+IHQgPDw9ICpiL2M7JywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCAvJwogICAg
ICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL29wZXJhdG9yc10gWzNdJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiL2M7IC8vVGVzdCcsIFsnQXQg
bGVhc3QgdHdvIHNwYWNlcycKLSAgICAgICAgICAgICAgICAgICAgICAgICAnIGlzIGJlc3QgYmV0
d2VlbiBjb2RlIGFuZCBjb21tZW50cyAgW3doaXRlc3BhY2UvJwotICAgICAgICAgICAgICAgICAg
ICAgICAgICdjb21tZW50c10gWzJdJywgJ1Nob3VsZCBoYXZlIGEgc3BhY2UgYmV0d2VlbiAvLyAn
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJ2FuZCBjb21tZW50ICBbd2hpdGVzcGFjZS9jb21t
ZW50c10gWzRdJywgJ01pc3NpbmcnCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4g
dCA8PD0gYi9jOyAvL1Rlc3QnLCBbCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1Nob3VsZCBo
YXZlIGEgc3BhY2UgYmV0d2VlbiAvLyBhbmQgY29tbWVudCAgJworICAgICAgICAgICAgICAgICAg
ICAgICAgICdbd2hpdGVzcGFjZS9jb21tZW50c10gWzRdJywgJ01pc3NpbmcnCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyBzcGFjZXMgYXJvdW5kIC8gIFt3aGl0ZXNwYWNlL29wZXJhdG9yc10g
WzNdJ10pCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYnx8YzsgIC8v
VGVzdCcsIFsnU2hvdWxkIGhhdmUgYSBzcGFjZScKLSAgICAgICAgICAgICAgICAgICAgICAgICAn
IGJldHdlZW4gLy8gYW5kIGNvbW1lbnQgIFt3aGl0ZXNwYWNlL2NvbW1lbnRzXSBbNF0nLAorICAg
ICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9IGJ8fGM7ICAvL1Rlc3QnLCBbJ09u
ZSBzcGFjZSBiZWZvcmUgZW5kJworICAgICAgICAgICAgICAgICAgICAgICAgICcgb2YgbGluZSBj
b21tZW50cyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFs1XScsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgJ1Nob3VsZCBoYXZlIGEgc3BhY2UgYmV0d2VlbiAvLyBhbmQgY29tbWVudCAgJworICAg
ICAgICAgICAgICAgICAgICAgICAgICdbd2hpdGVzcGFjZS9jb21tZW50c10gWzRdJywKICAgICAg
ICAgICAgICAgICAgICAgICAgICAnTWlzc2luZyBzcGFjZXMgYXJvdW5kIHx8ICBbd2hpdGVzcGFj
ZS9vcGVyYXRvcnNdIFszXSddKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQg
PDw9IGImJmM7ICAvLyBUZXN0JywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCcKKyAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiJiZjOyAvLyBUZXN0JywgJ01pc3Npbmcgc3Bh
Y2VzIGFyb3VuZCcKICAgICAgICAgICAgICAgICAgICAgICAgICAnICYmICBbd2hpdGVzcGFjZS9v
cGVyYXRvcnNdIFszXScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0g
YiYmJmM7ICAvLyBUZXN0JywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCcKKyAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiJiYmYzsgLy8gVGVzdCcsICdNaXNzaW5nIHNwYWNl
cyBhcm91bmQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAmJiAgW3doaXRlc3BhY2Uvb3Bl
cmF0b3JzXSBbM10nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9IGIm
JipjOyAgLy8gVGVzdCcsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQnCisgICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiYmKmM7IC8vIFRlc3QnLCAnTWlzc2luZyBzcGFjZXMg
YXJvdW5kJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgJiYgIFt3aGl0ZXNwYWNlL29wZXJh
dG9yc10gWzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiICYm
ICpjOyAgLy8gVGVzdCcsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQg
PDw9IGIgJiYgJmM7ICAvLyBUZXN0JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8
Rm9vKj4gdCA8PD0gYiAmJiAqYzsgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxmLmFzc2VydF9s
aW50KCdhPEZvbyo+IHQgPDw9IGIgJiYgJmM7IC8vIFRlc3QnLCAnJykKICAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiIHx8ICZjOyAgLypUZXN0JywgJ0NvbXBsZXggbXVs
dGktbGluZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJy8qLi4uKi8tc3R5bGUgY29tbWVu
dCBmb3VuZC4gTGludCBtYXkgZ2l2ZSBib2d1cyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAg
J3dhcm5pbmdzLiAgQ29uc2lkZXIgcmVwbGFjaW5nIHRoZXNlIHdpdGggLy8tc3R5bGUnCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgJyBjb21tZW50cywgd2l0aCAjaWYgMC4uLiNlbmRpZiwgb3Ig
d2l0aCBtb3JlIGNsZWFybHknCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyBzdHJ1Y3R1cmVk
IG11bHRpLWxpbmUgY29tbWVudHMuICBbcmVhZGFiaWxpdHkvbXVsdGlsaW5lX2NvbW1lbnRdIFs1
XScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vJj4gdCA8PD0gJmIgfCAmYzsnLCAn
JykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSAmYiAmICZjOyAgLy8g
VGVzdCcsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9ICpiIC8g
JmM7ICAvLyBUZXN0JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8
PD0gJmIgJiAmYzsgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZv
byo+IHQgPDw9ICpiIC8gJmM7IC8vIFRlc3QnLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGlu
dCgnaWYgKGE9YiA9PSAxKScsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQgPSAgW3doaXRlc3BhY2Uv
b3BlcmF0b3JzXSBbNF0nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhID0gMTw8MjAnLCAn
TWlzc2luZyBzcGFjZXMgYXJvdW5kIDw8ICBbd2hpdGVzcGFjZS9vcGVyYXRvcnNdIFszXScpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2lmIChhID0gYiA9PSAxKScsICcnKQpAQCAtMTMwNSw3
ICsxMzA2LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAg
ICAgICAgICAgICAgICAgICAgICdGb3IgYSBzdGF0aWMvZ2xvYmFsIHN0cmluZyBjb25zdGFudCwg
dXNlIGEgQyBzdHlsZSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmluZyBpbnN0ZWFk
OiAiY2hhciBmb29bXSIuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFtydW50aW1lL3N0
cmluZ10gWzRdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnc3RyaW5nIGtGb28gPSAiaGVs
bG8iOyAgLy8gRW5nbGlzaCcsCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3N0cmluZyBrRm9v
ID0gImhlbGxvIjsgLy8gRW5nbGlzaCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0ZvciBh
IHN0YXRpYy9nbG9iYWwgc3RyaW5nIGNvbnN0YW50LCB1c2UgYSBDIHN0eWxlICcKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnc3RyaW5nIGluc3RlYWQ6ICJjaGFyIGtGb29bXSIuJwogICAgICAg
ICAgICAgICAgICAgICAgICAgICcgIFtydW50aW1lL3N0cmluZ10gWzRdJykKQEAgLTEzNjQsMjUg
KzEzNjUsMjcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAg
ZGVmIHRlc3RfdHdvX3NwYWNlc19iZXR3ZWVuX2NvZGVfYW5kX2NvbW1lbnRzKHNlbGYpOgogICAg
ICAgICBzZWxmLmFzc2VydF9saW50KCd9IC8vIG5hbWVzcGFjZSBmb28nLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICdBdCBsZWFzdCB0d28gc3BhY2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFu
ZCBjb21tZW50cycKLSAgICAgICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21t
ZW50c10gWzJdJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAnJykKICAgICAgICAgc2VsZi5h
c3NlcnRfbGludCgnfS8vIG5hbWVzcGFjZSBmb28nLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICdBdCBsZWFzdCB0d28gc3BhY2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFuZCBjb21tZW50cycK
LSAgICAgICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21tZW50c10gWzJdJykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAnT25lIHNwYWNlIGJlZm9yZSBlbmQgb2YgbGluZSBj
b21tZW50cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21tZW50
c10gWzVdJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCJmb28iKTsgLy8gT3V0
c2lkZSBxdW90ZXMuJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnQXQgbGVhc3QgdHdvIHNw
YWNlcyBpcyBiZXN0IGJldHdlZW4gY29kZSBhbmQgY29tbWVudHMnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFsyXScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJ2ludCBpID0gMDsgIC8vIEhhdmluZyB0d28gc3BhY2VzIGlzIGZpbmUuJywgJycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2ludCBpID0gMDsgICAvLyBIYXZpbmcgdGhyZWUg
c3BhY2VzIGlzIE9LLicsICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICcnKQorICAgICAg
ICBzZWxmLmFzc2VydF9saW50KCdpbnQgaSA9IDA7IC8vIEhhdmluZyBvbmUgc3BhY2UgaXMgZmlu
ZS4nLCcnKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdpbnQgaSA9IDA7ICAvLyBIYXZpbmcg
dHdvIHNwYWNlcyBpcyBiYWQuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnT25lIHNwYWNl
IGJlZm9yZSBlbmQgb2YgbGluZSBjb21tZW50cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAn
ICBbd2hpdGVzcGFjZS9jb21tZW50c10gWzVdJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgn
aW50IGkgPSAwOyAgIC8vIEhhdmluZyB0aHJlZSBzcGFjZXMgaXMgYmFkLicsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgJ09uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxpbmUgY29tbWVudHMnCisg
ICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFs1XScpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJy8vIFRvcCBsZXZlbCBjb21tZW50JywgJycpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgICAvLyBMaW5lIHN0YXJ0cyB3aXRoIGZvdXIgc3BhY2Vz
LicsICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdmb28oKTtcbicKICAgICAgICAgICAg
ICAgICAgICAgICAgICAneyAvLyBBIHNjb3BlIGlzIG9wZW5pbmcuJywgJycpCiAgICAgICAgIHNl
bGYuYXNzZXJ0X2xpbnQoJyAgICBmb28oKTtcbicKICAgICAgICAgICAgICAgICAgICAgICAgICAn
ICAgIHsgLy8gQW4gaW5kZW50ZWQgc2NvcGUgaXMgb3BlbmluZy4nLCAnJykKLSAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgnaWYgKGZvbykgeyAvLyBub3QgYSBwdXJlIHNjb3BlOyBjb21tZW50IGlz
IHRvbyBjbG9zZSEnLAotICAgICAgICAgICAgICAgICAgICAgICAgICdBdCBsZWFzdCB0d28gc3Bh
Y2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFuZCBjb21tZW50cycKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAnICBbd2hpdGVzcGFjZS9jb21tZW50c10gWzJdJykKKyAgICAgICAgc2VsZi5hc3Nl
cnRfbGludCgnaWYgKGZvbykgeyAvLyBub3QgYSBwdXJlIHNjb3BlJywKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCIvLyBJbiBx
dW90ZXMuIiknLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCJcXCIlcyAv
LyBJbiBxdW90ZXMuIiknLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgncHJpbnRmKCIl
cyIsICIvLyBJbiBxdW90ZXMuIiknLCAnJykKQEAgLTE1NjEsNyArMTU2NCw3IEBAIGNsYXNzIENw
cFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICBkZWYgdGVzdF90YWIoc2VsZik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ1x0aW50IGE7JywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAnVGFiIGZvdW5kOyBiZXR0ZXIgdG8gdXNlIHNwYWNlcyAgW3doaXRlc3BhY2UvdGFiXSBb
MV0nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdpbnQgYSA9IDU7XHRcdC8vIHNldCBhIHRv
IDUnLAorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdpbnQgYSA9IDU7XHQvLyBzZXQgYSB0byA1
JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnVGFiIGZvdW5kOyBiZXR0ZXIgdG8gdXNlIHNw
YWNlcyAgW3doaXRlc3BhY2UvdGFiXSBbMV0nKQogCiAgICAgZGVmIHRlc3RfcGFyc2VfYXJndW1l
bnRzKHNlbGYpOgpAQCAtMTczMCw3ICsxNzMzLDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0
eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFtidWlsZC9mb3J3YXJk
X2RlY2xdIFs1XScpCiAKICAgICBkZWYgdGVzdF9idWlsZF9oZWFkZXJfZ3VhcmQoc2VsZik6Ci0g
ICAgICAgIGZpbGVfcGF0aCA9ICdteWRpci9mb28uaCcKKyAgICAgICAgZmlsZV9wYXRoID0gJ215
ZGlyL0Zvby5oJwogCiAgICAgICAgICMgV2UgY2FuJ3QgcmVseSBvbiBvdXIgaW50ZXJuYWwgc3R1
ZmYgdG8gZ2V0IGEgc2FuZSBwYXRoIG9uIHRoZSBvcGVuIHNvdXJjZQogICAgICAgICAjIHNpZGUg
b2YgdGhpbmdzLCBzbyBqdXN0IHBhcnNlIG91dCB0aGUgc3VnZ2VzdGVkIGhlYWRlciBndWFyZC4g
VGhpcwpAQCAtMTc0MCw3ICsxNzQzLDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAn
aCcsIFtdLCBlcnJvcl9jb2xsZWN0b3IpCiAgICAgICAgIGV4cGVjdGVkX2d1YXJkID0gJycKICAg
ICAgICAgbWF0Y2hlciA9IHJlLmNvbXBpbGUoCi0gICAgICAgICAgICAnTm8gXCNpZm5kZWYgaGVh
ZGVyIGd1YXJkIGZvdW5kXCwgc3VnZ2VzdGVkIENQUCB2YXJpYWJsZSBpc1w6IChbQS1aXzAtOV0r
KSAnKQorICAgICAgICAgICAgJ05vIFwjaWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZFwsIHN1Z2dl
c3RlZCBDUFAgdmFyaWFibGUgaXNcOiAoW0EtWmEtel8wLTldKykgJykKICAgICAgICAgZm9yIGVy
cm9yIGluIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgpOgogICAgICAgICAgICAgbWF0Y2hl
cyA9IG1hdGNoZXIubWF0Y2goZXJyb3IpCiAgICAgICAgICAgICBpZiBtYXRjaGVzOgpAQCAtMTc5
NCw3ICsxNzk3LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKLSAgICAgICAgICAgICAgICAnI2VuZGlm
IGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgIC8vICVzIicKKyAgICAgICAgICAgICAgICAnI2VuZGlm
IGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJwogICAgICAgICAgICAgICAgICcgIFtidWls
ZC9oZWFkZXJfZ3VhcmRdIFs1XScgJSBleHBlY3RlZF9ndWFyZCksCiAgICAgICAgICAgICBlcnJv
cl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKIApAQCAtMTgwOCw3ICsxODExLDcgQEAgY2xhc3Mg
Q3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFs
cygKICAgICAgICAgICAgIDEsCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xp
c3QoKS5jb3VudCgKLSAgICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5k
aWYgIC8vICVzIicKKyAgICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5k
aWYgLy8gJXMiJwogICAgICAgICAgICAgICAgICcgIFtidWlsZC9oZWFkZXJfZ3VhcmRdIFs1XScg
JSBleHBlY3RlZF9ndWFyZCksCiAgICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xp
c3QoKSkKIApAQCAtMTgyMiw3ICsxODI1LDcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxl
VGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFscygKICAgICAgICAgICAgIDEsCiAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKLSAgICAgICAg
ICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgIC8vICVzIicKKyAgICAgICAg
ICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgLy8gJXMiJwogICAgICAgICAg
ICAgICAgICcgIFtidWlsZC9oZWFkZXJfZ3VhcmRdIFs1XScgJSBleHBlY3RlZF9ndWFyZCksCiAg
ICAgICAgICAgICBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKSkKIApAQCAtMTgzMSw0MiAr
MTgzNCwxMiBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAg
IGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFsnI2lmbmRlZiAlcycgJSBleHBlY3RlZF9ndWFyZCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSAlcycgJSBleHBl
Y3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlm
ICAvLyAlcycgJSBleHBlY3RlZF9ndWFyZF0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcl9jb2xsZWN0b3IpCi0gICAgICAgIGZvciBsaW5lIGluIGVycm9yX2NvbGxl
Y3Rvci5yZXN1bHRfbGlzdCgpOgotICAgICAgICAgICAgaWYgbGluZS5maW5kKCdidWlsZC9oZWFk
ZXJfZ3VhcmQnKSAhPSAtMToKLSAgICAgICAgICAgICAgICBzZWxmLmZhaWwoJ1VuZXhwZWN0ZWQg
ZXJyb3I6ICVzJyAlIGxpbmUpCi0KLSAgICAgICAgIyBObyBoZWFkZXIgZ3VhcmQgZXJyb3JzIGZv
ciBvbGQtc3R5bGUgZ3VhcmQKLSAgICAgICAgZXJyb3JfY29sbGVjdG9yID0gRXJyb3JDb2xsZWN0
b3Ioc2VsZi5hc3NlcnRfKQotICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmls
ZV9wYXRoLCAnaCcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5k
ZWYgJXNfJyAlIGV4cGVjdGVkX2d1YXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICcjZGVmaW5lICVzXycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnI2VuZGlmICAvLyAlc18nICUgZXhwZWN0ZWRfZ3VhcmRdLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjZW5kaWYgLy8gJXMnICUgZXhw
ZWN0ZWRfZ3VhcmRdLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jf
Y29sbGVjdG9yKQogICAgICAgICBmb3IgbGluZSBpbiBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xp
c3QoKToKICAgICAgICAgICAgIGlmIGxpbmUuZmluZCgnYnVpbGQvaGVhZGVyX2d1YXJkJykgIT0g
LTE6CiAgICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdVbmV4cGVjdGVkIGVycm9yOiAlcycgJSBs
aW5lKQogCi0gICAgICAgIG9sZF92ZXJib3NlX2xldmVsID0gY3BwX3N0eWxlLl9jcHBfc3R5bGVf
c3RhdGUudmVyYm9zZV9sZXZlbAotICAgICAgICB0cnk6Ci0gICAgICAgICAgICBjcHBfc3R5bGUu
X2NwcF9zdHlsZV9zdGF0ZS52ZXJib3NlX2xldmVsID0gMAotICAgICAgICAgICAgIyBXYXJuIG9u
IG9sZC1zdHlsZSBndWFyZCBpZiB2ZXJib3NpdHkgaXMgMC4KLSAgICAgICAgICAgIGVycm9yX2Nv
bGxlY3RvciA9IEVycm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgICAgIGNwcF9z
dHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShmaWxlX3BhdGgsICdoJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXNfJyAlIGV4cGVjdGVkX2d1YXJkLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2RlZmluZSAlc18nICUg
ZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICcjZW5kaWYgIC8vICVzXycgJSBleHBlY3RlZF9ndWFyZF0sCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQotICAgICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoCi0gICAgICAgICAgICAgICAgMSwKLSAgICAgICAgICAgICAgICBlcnJvcl9j
b2xsZWN0b3IucmVzdWx0X2xpc3QoKS5jb3VudCgKLSAgICAgICAgICAgICAgICAgICAgJyNpZm5k
ZWYgaGVhZGVyIGd1YXJkIGhhcyB3cm9uZyBzdHlsZSwgcGxlYXNlIHVzZTogJXMnCi0gICAgICAg
ICAgICAgICAgICAgICcgIFtidWlsZC9oZWFkZXJfZ3VhcmRdIFswXScgJSBleHBlY3RlZF9ndWFy
ZCksCi0gICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCi0gICAg
ICAgIGZpbmFsbHk6Ci0gICAgICAgICAgICBjcHBfc3R5bGUuX2NwcF9zdHlsZV9zdGF0ZS52ZXJi
b3NlX2xldmVsID0gb2xkX3ZlcmJvc2VfbGV2ZWwKLQogICAgICAgICAjIENvbXBsZXRlbHkgaW5j
b3JyZWN0IGhlYWRlciBndWFyZAogICAgICAgICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxl
Y3RvcihzZWxmLmFzc2VydF8pCiAgICAgICAgIGNwcF9zdHlsZS5wcm9jZXNzX2ZpbGVfZGF0YShm
aWxlX3BhdGgsICdoJywKQEAgLTE4ODMsNyArMTg1Niw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAg
ICAxLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCi0g
ICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmICAvLyAlcyInCisg
ICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmIC8vICVzIicKICAg
ICAgICAgICAgICAgICAnICBbYnVpbGQvaGVhZGVyX2d1YXJkXSBbNV0nICUgZXhwZWN0ZWRfZ3Vh
cmQpLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCiAKQEAgLTI5
MTIsNyArMjg4NSw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToK
ICAgICAgICAgICAgICdmb28uY3BwJykKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9s
aW50KAogICAgICAgICAgICAgJ25hbWVzcGFjZSBXZWJDb3JlIHtcblxuJwotICAgICAgICAgICAg
J2NvbnN0IGNoYXIqIGZvbyh2b2lkKiBhID0gIjsiLCAgLy8gO1xuJworICAgICAgICAgICAgJ2Nv
bnN0IGNoYXIqIGZvbyh2b2lkKiBhID0gIjsiLCAvLyA7XG4nCiAgICAgICAgICAgICAnICAgIHZv
aWQqIGIpO1xuJwogICAgICAgICAgICAgJyAgICB2b2lkKiBwO1xuJwogICAgICAgICAgICAgJ31c
bicsCkBAIC0yOTIxLDcgKzI4OTQsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVU
ZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKICAgICAgICAg
ICAgICduYW1lc3BhY2UgV2ViQ29yZSB7XG5cbicKICAgICAgICAgICAgICdjb25zdCBjaGFyKiBm
b29bXSA9IHtcbicKLSAgICAgICAgICAgICcgICAgInZvaWQqIGIpOyIsICAvLyA7XG4nCisgICAg
ICAgICAgICAnICAgICJ2b2lkKiBiKTsiLCAvLyA7XG4nCiAgICAgICAgICAgICAnICAgICJhc2Zk
ZiIsXG4nCiAgICAgICAgICAgICAnICAgIH1cbicKICAgICAgICAgICAgICcgICAgdm9pZCogcDtc
bicKQEAgLTI5MzEsNyArMjkwNCw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAogICAgICAgICAg
ICAgJ25hbWVzcGFjZSBXZWJDb3JlIHtcblxuJwogICAgICAgICAgICAgJ2NvbnN0IGNoYXIqIGZv
b1tdID0ge1xuJwotICAgICAgICAgICAgJyAgICAidm9pZCogYik7IiwgIC8vIH1cbicKKyAgICAg
ICAgICAgICcgICAgInZvaWQqIGIpOyIsIC8vIH1cbicKICAgICAgICAgICAgICcgICAgImFzZmRm
IixcbicKICAgICAgICAgICAgICcgICAgfVxuJwogICAgICAgICAgICAgJ31cbicsCkBAIC0yOTQx
LDcgKzI5MTQsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgICAgICAnICAgIG5hbWVzcGFjZSBXZWJDb3JlIHtcblxuJwogICAgICAgICAgICAgJyAg
ICB2b2lkIERvY3VtZW50OjpGb28oKVxuJwogICAgICAgICAgICAgJyAgICB7XG4nCi0gICAgICAg
ICAgICAnc3RhcnQ6ICAvLyBpbmZpbml0ZSBsb29wcyBhcmUgZnVuIVxuJworICAgICAgICAgICAg
J3N0YXJ0OiAvLyBpbmZpbml0ZSBsb29wcyBhcmUgZnVuIVxuJwogICAgICAgICAgICAgJyAgICAg
ICAgZ290byBzdGFydDtcbicKICAgICAgICAgICAgICcgICAgfScsCiAgICAgICAgICAgICAnbmFt
ZXNwYWNlIHNob3VsZCBuZXZlciBiZSBpbmRlbnRlZC4gIFt3aGl0ZXNwYWNlL2luZGVudF0gWzRd
JywKQEAgLTM0OTUsNyArMzQ2OCw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9udWxsXSBbNF0nLAogICAgICAg
ICAgICAgJ2Zvby5jcHAnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KAotICAgICAgICAgICAg
JyJBIHN0cmluZyB3aXRoIE5VTEwiICAvLyBhbmQgYSBjb21tZW50IHdpdGggTlVMTCBpcyB0cmlj
a3kgdG8gZmxhZyBjb3JyZWN0bHkgaW4gY3BwX3N0eWxlLicsCisgICAgICAgICAgICAnIkEgc3Ry
aW5nIHdpdGggTlVMTCIgLy8gYW5kIGEgY29tbWVudCB3aXRoIE5VTEwgaXMgdHJpY2t5IHRvIGZs
YWcgY29ycmVjdGx5IGluIGNwcF9zdHlsZS4nLAogICAgICAgICAgICAgJ1VzZSAwIGluc3RlYWQg
b2YgTlVMTC4nCiAgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvbnVsbF0gWzRdJywKICAgICAg
ICAgICAgICdmb28uY3BwJykKQEAgLTM3MTIsNiArMzY4NSwxNSBAQCBjbGFzcyBXZWJLaXRTdHls
ZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3R5cGVk
ZWYgVmVjdG9yVHlwZTo6Y29uc3RfaXRlcmF0b3IgY29uc3RfaXRlcmF0b3I7JywgJycpCiAKIAor
ICAgIGRlZiB0ZXN0X2NvbW1lbnRzKHNlbGYpOgorICAgICAgICAjIGNvbW1lbnQgYXQgdGhlIGJl
Z2luaW5nIGxpbmUgaXMgb2suCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJy8vIGNvbW1lbnQn
LCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgIC8vIGNvbW1lbnQnLCAnJykKKwor
ICAgICAgICBzZWxmLmFzc2VydF9saW50KCd9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJ09uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxpbmUgY29tbWVu
dHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFs1
XScpCisKICAgICBkZWYgdGVzdF9vdGhlcihzZWxmKToKICAgICAgICAgIyBGSVhNRTogSW1wbGVt
ZW50IHRoaXMuCiAgICAgICAgIHBhc3MK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45127</attachid>
            <date>2009-12-17 23:04:18 -0800</date>
            <delta_ts>2009-12-18 08:01:34 -0800</delta_ts>
            <desc>Check one space before end of line comments.</desc>
            <filename>bug-32597-20091218160416.patch</filename>
            <type>text/plain</type>
            <size>20155</size>
            <attacher name="Fumitoshi Ukai">ukai</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMzhmMGFkLi45MDA5MWNmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMTIt
MTcgIEZ1bWl0b3NoaSBVa2FpICA8dWthaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hlY2sgb25lIHNwYWNlIGJlZm9yZSBl
bmQgb2YgbGluZSBjb21tZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTMyNTk3CisgICAgICAgIAorICAgICAgICBGaXggdG8gY2hlY2sgb25lIHNw
YWNlIGJlZm9yZSBlbmQgb2YgbGluZSBjb21tZW50cyBpbiB3aGl0ZXNwYWNlIGFuZCBidWlsZC9o
ZWFkZXJfZ3VhcmQuCisgICAgICAgIEFsc28gZml4IGJ1aWxkL2hlYWRlcl9ndWFyZCB0byB1c2Ug
V2ViS2l0IGhlYWRlciBndWFyZCBkZWZpbmVzLgorCisgICAgICAgICogU2NyaXB0cy9tb2R1bGVz
L2NwcF9zdHlsZS5weToKKyAgICAgICAgKiBTY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0
ZXN0LnB5OgorCiAyMDA5LTEyLTE3ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2Ny
aXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9j
cHBfc3R5bGUucHkKaW5kZXggM2M2N2MyNS4uNGZiYTc3NyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRz
L21vZHVsZXMvY3BwX3N0eWxlLnB5CkBAIC02OSw3ICs2OSw2IEBAIF9ERUZBVUxUX09VVFBVVF9G
T1JNQVQgPSAnZW1hY3MnCiAjIHRoZSBmaWx0ZXIgcnVsZXMgYXMgc3BlY2lmaWVkIGJ5IGEgLS1m
aWx0ZXIgZmxhZy4KIF9XRUJLSVRfRklMVEVSX1JVTEVTID0gWwogICAgICctYnVpbGQvZW5kaWZf
Y29tbWVudCcsCi0gICAgJy1idWlsZC9oZWFkZXJfZ3VhcmQnLAogICAgICctYnVpbGQvaW5jbHVk
ZV93aGF0X3lvdV91c2UnLCAgIyA8c3RyaW5nPiBmb3Igc3RkOjpzdHJpbmcKICAgICAnLWJ1aWxk
L3N0b3JhZ2VfY2xhc3MnLCAgIyBjb25zdCBzdGF0aWMKICAgICAnLWxlZ2FsL2NvcHlyaWdodCcs
CkBAIC04Nyw3ICs4Niw2IEBAIF9XRUJLSVRfRklMVEVSX1JVTEVTID0gWwogICAgICctcnVudGlt
ZS90aHJlYWRzYWZlX2ZuJywKICAgICAnLXJ1bnRpbWUvcnR0aScsCiAgICAgJy13aGl0ZXNwYWNl
L2JsYW5rX2xpbmUnLAotICAgICctd2hpdGVzcGFjZS9jb21tZW50cycsCiAgICAgJy13aGl0ZXNw
YWNlL2VuZF9vZl9saW5lJywKICAgICAnLXdoaXRlc3BhY2UvbGFiZWxzJywKICAgICBdCkBAIC04
NzQsOCArODcyLDcgQEAgZGVmIGdldF9oZWFkZXJfZ3VhcmRfY3BwX3ZhcmlhYmxlKGZpbGVuYW1l
KToKIAogICAgICIiIgogCi0gICAgZmlsZWluZm8gPSBGaWxlSW5mbyhmaWxlbmFtZSkKLSAgICBy
ZXR1cm4gc3ViKHInWy0uL1xzXScsICdfJywgZmlsZWluZm8ucmVwb3NpdG9yeV9uYW1lKCkpLnVw
cGVyKCkgKyAnXycKKyAgICByZXR1cm4gc3ViKHInWy0uXHNdJywgJ18nLCBvcy5wYXRoLmJhc2Vu
YW1lKGZpbGVuYW1lKSkKIAogCiBkZWYgY2hlY2tfZm9yX2hlYWRlcl9ndWFyZChmaWxlbmFtZSwg
bGluZXMsIGVycm9yKToKQEAgLTkxOCwyMyArOTE1LDE0IEBAIGRlZiBjaGVja19mb3JfaGVhZGVy
X2d1YXJkKGZpbGVuYW1lLCBsaW5lcywgZXJyb3IpOgogICAgICAgICAgICAgICBjcHB2YXIpCiAg
ICAgICAgIHJldHVybgogCi0gICAgIyBUaGUgZ3VhcmQgc2hvdWxkIGJlIFBBVEhfRklMRV9IXywg
YnV0IHdlIGFsc28gYWxsb3cgUEFUSF9GSUxFX0hfXwotICAgICMgZm9yIGJhY2t3YXJkIGNvbXBh
dGliaWxpdHkuCisgICAgIyBUaGUgZ3VhcmQgc2hvdWxkIGJlIEZpbGVfaC4KICAgICBpZiBpZm5k
ZWYgIT0gY3BwdmFyOgotICAgICAgICBlcnJvcl9sZXZlbCA9IDAKLSAgICAgICAgaWYgaWZuZGVm
ICE9IGNwcHZhciArICdfJzoKLSAgICAgICAgICAgIGVycm9yX2xldmVsID0gNQotCi0gICAgICAg
IGVycm9yKGZpbGVuYW1lLCBpZm5kZWZfbGluZV9udW1iZXIsICdidWlsZC9oZWFkZXJfZ3VhcmQn
LCBlcnJvcl9sZXZlbCwKKyAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGlmbmRlZl9saW5lX251bWJl
ciwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIDUsCiAgICAgICAgICAgICAgICcjaWZuZGVmIGhlYWRl
ciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVzJyAlIGNwcHZhcikKIAotICAg
IGlmIGVuZGlmICE9ICgnI2VuZGlmICAvLyAlcycgJSBjcHB2YXIpOgotICAgICAgICBlcnJvcl9s
ZXZlbCA9IDAKLSAgICAgICAgaWYgZW5kaWYgIT0gKCcjZW5kaWYgIC8vICVzJyAlIChjcHB2YXIg
KyAnXycpKToKLSAgICAgICAgICAgIGVycm9yX2xldmVsID0gNQotCi0gICAgICAgIGVycm9yKGZp
bGVuYW1lLCBlbmRpZl9saW5lX251bWJlciwgJ2J1aWxkL2hlYWRlcl9ndWFyZCcsIGVycm9yX2xl
dmVsLAotICAgICAgICAgICAgICAnI2VuZGlmIGxpbmUgc2hvdWxkIGJlICIjZW5kaWYgIC8vICVz
IicgJSBjcHB2YXIpCisgICAgaWYgZW5kaWYgIT0gKCcjZW5kaWYgLy8gJXMnICUgY3BwdmFyKToK
KyAgICAgICAgZXJyb3IoZmlsZW5hbWUsIGVuZGlmX2xpbmVfbnVtYmVyLCAnYnVpbGQvaGVhZGVy
X2d1YXJkJywgNSwKKyAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlm
IC8vICVzIicgJSBjcHB2YXIpCiAKIAogZGVmIGNoZWNrX2Zvcl91bmljb2RlX3JlcGxhY2VtZW50
X2NoYXJhY3RlcnMoZmlsZW5hbWUsIGxpbmVzLCBlcnJvcik6CkBAIC0xNTI0LDE0ICsxNTEyLDE0
IEBAIGRlZiBjaGVja19zcGFjaW5nKGZpbGVuYW1lLCBjbGVhbl9saW5lcywgbGluZV9udW1iZXIs
IGVycm9yKToKICAgICAgICAgIyBDaGVjayBpZiB0aGUgLy8gbWF5IGJlIGluIHF1b3Rlcy4gIElm
IHNvLCBpZ25vcmUgaXQKICAgICAgICAgIyBDb21wYXJpc29ucyBtYWRlIGV4cGxpY2l0IGZvciBj
bGFyaXR5IC0tIHB5bGludDogZGlzYWJsZS1tc2c9QzY0MDMKICAgICAgICAgaWYgKGxpbmUuY291
bnQoJyInLCAwLCBjb21tZW50X3Bvc2l0aW9uKSAtIGxpbmUuY291bnQoJ1xcIicsIDAsIGNvbW1l
bnRfcG9zaXRpb24pKSAlIDIgPT0gMDogICAjIG5vdCBpbiBxdW90ZXMKLSAgICAgICAgICAgICMg
QWxsb3cgb25lIHNwYWNlIGZvciBuZXcgc2NvcGVzLCB0d28gc3BhY2VzIG90aGVyd2lzZToKLSAg
ICAgICAgICAgIGlmIChub3QgbWF0Y2gocideXHMqeyAvLycsIGxpbmUpCi0gICAgICAgICAgICAg
ICAgYW5kICgoY29tbWVudF9wb3NpdGlvbiA+PSAxCi0gICAgICAgICAgICAgICAgICAgICAgYW5k
IGxpbmVbY29tbWVudF9wb3NpdGlvbi0xXSBub3QgaW4gc3RyaW5nLndoaXRlc3BhY2UpCisgICAg
ICAgICAgICAjIEFsbG93IG9uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxpbmUgY29tbWVudC4KKyAg
ICAgICAgICAgIGlmIChub3QgbWF0Y2gocideXHMqJCcsIGxpbmVbOmNvbW1lbnRfcG9zaXRpb25d
KQorICAgICAgICAgICAgICAgIGFuZCAoY29tbWVudF9wb3NpdGlvbiA+PSAxCisgICAgICAgICAg
ICAgICAgYW5kICgobGluZVtjb21tZW50X3Bvc2l0aW9uIC0gMV0gbm90IGluIHN0cmluZy53aGl0
ZXNwYWNlKQogICAgICAgICAgICAgICAgICAgICAgb3IgKGNvbW1lbnRfcG9zaXRpb24gPj0gMgot
ICAgICAgICAgICAgICAgICAgICAgICAgIGFuZCBsaW5lW2NvbW1lbnRfcG9zaXRpb24tMl0gbm90
IGluIHN0cmluZy53aGl0ZXNwYWNlKSkpOgotICAgICAgICAgICAgICAgIGVycm9yKGZpbGVuYW1l
LCBsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvY29tbWVudHMnLCAyLAotICAgICAgICAgICAgICAg
ICAgICAgICdBdCBsZWFzdCB0d28gc3BhY2VzIGlzIGJlc3QgYmV0d2VlbiBjb2RlIGFuZCBjb21t
ZW50cycpCisgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGxpbmVbY29tbWVudF9wb3NpdGlv
biAtIDJdIGluIHN0cmluZy53aGl0ZXNwYWNlKSkpKToKKyAgICAgICAgICAgICAgICBlcnJvcihm
aWxlbmFtZSwgbGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2NvbW1lbnRzJywgNSwKKyAgICAgICAg
ICAgICAgICAgICAgICAnT25lIHNwYWNlIGJlZm9yZSBlbmQgb2YgbGluZSBjb21tZW50cycpCiAg
ICAgICAgICAgICAjIFRoZXJlIHNob3VsZCBhbHdheXMgYmUgYSBzcGFjZSBiZXR3ZWVuIHRoZSAv
LyBhbmQgdGhlIGNvbW1lbnQKICAgICAgICAgICAgIGNvbW1lbnRlbmQgPSBjb21tZW50X3Bvc2l0
aW9uICsgMgogICAgICAgICAgICAgaWYgY29tbWVudGVuZCA8IGxlbihsaW5lKSBhbmQgbm90IGxp
bmVbY29tbWVudGVuZF0gPT0gJyAnOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9t
b2R1bGVzL2NwcF9zdHlsZV91bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxl
cy9jcHBfc3R5bGVfdW5pdHRlc3QucHkKaW5kZXggODBhOTg2OC4uMjk5M2Q2OCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2NwcF9zdHlsZV91bml0dGVzdC5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvY3BwX3N0eWxlX3VuaXR0ZXN0LnB5CkBAIC0z
OTksMTMgKzM5OSwxMyBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvY2FzdGluZ10gWzRdJykKICAgICAgICAgIyBDaGVj
a3MgZm9yIGZhbHNlIHBvc2l0aXZlcy4uLgogICAgICAgICBzZWxmLmFzc2VydF9saW50KAotICAg
ICAgICAgICAgJ2ludCBhID0gaW50KCk7ICAvLyBDb25zdHJ1Y3Rvciwgby5rLicsCisgICAgICAg
ICAgICAnaW50IGEgPSBpbnQoKTsgLy8gQ29uc3RydWN0b3IsIG8uay4nLAogICAgICAgICAgICAg
JycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAgICAgICAgICAnWDo6WCgpIDogYShp
bnQoKSkge30gIC8vIGRlZmF1bHQgQ29uc3RydWN0b3IsIG8uay4nLAorICAgICAgICAgICAgJ1g6
OlgoKSA6IGEoaW50KCkpIHt9IC8vIGRlZmF1bHQgQ29uc3RydWN0b3IsIG8uay4nLAogICAgICAg
ICAgICAgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoCi0gICAgICAgICAgICAnb3BlcmF0
b3IgYm9vbCgpOyAgLy8gQ29udmVyc2lvbiBvcGVyYXRvciwgby5rLicsCisgICAgICAgICAgICAn
b3BlcmF0b3IgYm9vbCgpOyAvLyBDb252ZXJzaW9uIG9wZXJhdG9yLCBvLmsuJywKICAgICAgICAg
ICAgICcnKQogCiAgICAgIyBUaGUgc2Vjb25kIHBhcmFtZXRlciB0byBhIGdNb2NrIG1ldGhvZCBk
ZWZpbml0aW9uIGlzIGEgZnVuY3Rpb24gc2lnbmF0dXJlCkBAIC03MjAsNyArNzIwLDcgQEAgY2xh
c3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAjIG1pc3NpbmcgZXhw
bGljaXQsIHdpdGggZGlzdHJhY3RpbmcgY29tbWVudCwgaXMgc3RpbGwgYmFkCiAgICAgICAgIHNl
bGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKICAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0g
ICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7ICAvLyBzaW1wbGVyIHRoYW4gRm9vKGJsYXJnaCwg
YmxhcmcpCisgICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7IC8vIHNpbXBsZXIgdGhhbiBGb28o
YmxhcmdoLCBibGFyZykKICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJ1Npbmds
ZS1hcmd1bWVudCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIG1hcmtlZCBleHBsaWNpdC4nCiAgICAg
ICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJykKQEAgLTEwODgsNyArMTA4OCw3IEBA
IGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAg
ICAgICAgICAnICBbcmVhZGFiaWxpdHkvY2hlY2tdIFsyXScpCiAKICAgICAgICAgc2VsZi5hc3Nl
cnRfbGludCgKLSAgICAgICAgICAgICcgICAgRVhQRUNUX1RSVUUoNDIgPCB4KSAgLy8gUmFuZG9t
IGNvbW1lbnQuJywKKyAgICAgICAgICAgICcgICAgRVhQRUNUX1RSVUUoNDIgPCB4KSAvLyBSYW5k
b20gY29tbWVudC4nLAogICAgICAgICAgICAgJ0NvbnNpZGVyIHVzaW5nIEVYUEVDVF9MVCBpbnN0
ZWFkIG9mIEVYUEVDVF9UUlVFKGEgPCBiKScKICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9j
aGVja10gWzJdJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKQEAgLTEyNDgsMzAgKzEyNDgs
MzEgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAg
ICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL29wZXJhdG9yc10gWzNdJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSAqYi9jOycsICdNaXNzaW5nIHNwYWNlcyBhcm91
bmQgLycKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBbd2hpdGVzcGFjZS9vcGVyYXRvcnNd
IFszXScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYi9jOyAvL1Rl
c3QnLCBbJ0F0IGxlYXN0IHR3byBzcGFjZXMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJyBp
cyBiZXN0IGJldHdlZW4gY29kZSBhbmQgY29tbWVudHMgIFt3aGl0ZXNwYWNlLycKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAnY29tbWVudHNdIFsyXScsICdTaG91bGQgaGF2ZSBhIHNwYWNlIGJl
dHdlZW4gLy8gJwotICAgICAgICAgICAgICAgICAgICAgICAgICdhbmQgY29tbWVudCAgW3doaXRl
c3BhY2UvY29tbWVudHNdIFs0XScsICdNaXNzaW5nJworICAgICAgICBzZWxmLmFzc2VydF9saW50
KCdhPEZvbyo+IHQgPDw9IGIvYzsgLy9UZXN0JywgWworICAgICAgICAgICAgICAgICAgICAgICAg
ICdTaG91bGQgaGF2ZSBhIHNwYWNlIGJldHdlZW4gLy8gYW5kIGNvbW1lbnQgICcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAnW3doaXRlc3BhY2UvY29tbWVudHNdIFs0XScsICdNaXNzaW5nJwog
ICAgICAgICAgICAgICAgICAgICAgICAgICcgc3BhY2VzIGFyb3VuZCAvICBbd2hpdGVzcGFjZS9v
cGVyYXRvcnNdIFszXSddKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9
IGJ8fGM7ICAvL1Rlc3QnLCBbJ1Nob3VsZCBoYXZlIGEgc3BhY2UnCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgJyBiZXR3ZWVuIC8vIGFuZCBjb21tZW50ICBbd2hpdGVzcGFjZS9jb21tZW50c10g
WzRdJywKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBifHxjOyAgLy9U
ZXN0JywgWydPbmUgc3BhY2UgYmVmb3JlIGVuZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAn
IG9mIGxpbmUgY29tbWVudHMgIFt3aGl0ZXNwYWNlL2NvbW1lbnRzXSBbNV0nLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICdTaG91bGQgaGF2ZSBhIHNwYWNlIGJldHdlZW4gLy8gYW5kIGNvbW1l
bnQgICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAnW3doaXRlc3BhY2UvY29tbWVudHNdIFs0
XScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCB8fCAg
W3doaXRlc3BhY2Uvb3BlcmF0b3JzXSBbM10nXSkKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgn
YTxGb28qPiB0IDw8PSBiJiZjOyAgLy8gVGVzdCcsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQnCisg
ICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiYmYzsgLy8gVGVzdCcsICdN
aXNzaW5nIHNwYWNlcyBhcm91bmQnCiAgICAgICAgICAgICAgICAgICAgICAgICAgJyAmJiAgW3do
aXRlc3BhY2Uvb3BlcmF0b3JzXSBbM10nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZv
byo+IHQgPDw9IGImJiZjOyAgLy8gVGVzdCcsICdNaXNzaW5nIHNwYWNlcyBhcm91bmQnCisgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiYmJmM7IC8vIFRlc3QnLCAnTWlz
c2luZyBzcGFjZXMgYXJvdW5kJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgJiYgIFt3aGl0
ZXNwYWNlL29wZXJhdG9yc10gWzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28q
PiB0IDw8PSBiJiYqYzsgIC8vIFRlc3QnLCAnTWlzc2luZyBzcGFjZXMgYXJvdW5kJworICAgICAg
ICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyo+IHQgPDw9IGImJipjOyAvLyBUZXN0JywgJ01pc3Np
bmcgc3BhY2VzIGFyb3VuZCcKICAgICAgICAgICAgICAgICAgICAgICAgICAnICYmICBbd2hpdGVz
cGFjZS9vcGVyYXRvcnNdIFszXScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4g
dCA8PD0gYiAmJiAqYzsgIC8vIFRlc3QnLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgn
YTxGb28qPiB0IDw8PSBiICYmICZjOyAgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCdhPEZvbyo+IHQgPDw9IGIgJiYgKmM7IC8vIFRlc3QnLCAnJykKKyAgICAgICAgc2Vs
Zi5hc3NlcnRfbGludCgnYTxGb28qPiB0IDw8PSBiICYmICZjOyAvLyBUZXN0JywgJycpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gYiB8fCAmYzsgIC8qVGVzdCcsICdD
b21wbGV4IG11bHRpLWxpbmUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICcvKi4uLiovLXN0
eWxlIGNvbW1lbnQgZm91bmQuIExpbnQgbWF5IGdpdmUgYm9ndXMgJwogICAgICAgICAgICAgICAg
ICAgICAgICAgICd3YXJuaW5ncy4gIENvbnNpZGVyIHJlcGxhY2luZyB0aGVzZSB3aXRoIC8vLXN0
eWxlJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgY29tbWVudHMsIHdpdGggI2lmIDAuLi4j
ZW5kaWYsIG9yIHdpdGggbW9yZSBjbGVhcmx5JwogICAgICAgICAgICAgICAgICAgICAgICAgICcg
c3RydWN0dXJlZCBtdWx0aS1saW5lIGNvbW1lbnRzLiAgW3JlYWRhYmlsaXR5L211bHRpbGluZV9j
b21tZW50XSBbNV0nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdhPEZvbyY+IHQgPDw9ICZi
IHwgJmM7JywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2E8Rm9vKj4gdCA8PD0gJmIg
JiAmYzsgIC8vIFRlc3QnLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYTxGb28qPiB0
IDw8PSAqYiAvICZjOyAgLy8gVGVzdCcsICcnKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdh
PEZvbyo+IHQgPDw9ICZiICYgJmM7IC8vIFRlc3QnLCAnJykKKyAgICAgICAgc2VsZi5hc3NlcnRf
bGludCgnYTxGb28qPiB0IDw8PSAqYiAvICZjOyAvLyBUZXN0JywgJycpCiAgICAgICAgIHNlbGYu
YXNzZXJ0X2xpbnQoJ2lmIChhPWIgPT0gMSknLCAnTWlzc2luZyBzcGFjZXMgYXJvdW5kID0gIFt3
aGl0ZXNwYWNlL29wZXJhdG9yc10gWzRdJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnYSA9
IDE8PDIwJywgJ01pc3Npbmcgc3BhY2VzIGFyb3VuZCA8PCAgW3doaXRlc3BhY2Uvb3BlcmF0b3Jz
XSBbM10nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdpZiAoYSA9IGIgPT0gMSknLCAnJykK
QEAgLTEzMDUsNyArMTMwNiw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNl
KToKICAgICAgICAgICAgICAgICAgICAgICAgICAnRm9yIGEgc3RhdGljL2dsb2JhbCBzdHJpbmcg
Y29uc3RhbnQsIHVzZSBhIEMgc3R5bGUgJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJp
bmcgaW5zdGVhZDogImNoYXIgZm9vW10iLicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBb
cnVudGltZS9zdHJpbmddIFs0XScpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3N0cmluZyBr
Rm9vID0gImhlbGxvIjsgIC8vIEVuZ2xpc2gnLAorICAgICAgICBzZWxmLmFzc2VydF9saW50KCdz
dHJpbmcga0ZvbyA9ICJoZWxsbyI7IC8vIEVuZ2xpc2gnLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICdGb3IgYSBzdGF0aWMvZ2xvYmFsIHN0cmluZyBjb25zdGFudCwgdXNlIGEgQyBzdHlsZSAn
CiAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0cmluZyBpbnN0ZWFkOiAiY2hhciBrRm9vW10i
LicKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBbcnVudGltZS9zdHJpbmddIFs0XScpCkBA
IC0xMzY0LDI1ICsxMzY1LDI3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNl
KToKIAogICAgIGRlZiB0ZXN0X3R3b19zcGFjZXNfYmV0d2Vlbl9jb2RlX2FuZF9jb21tZW50cyhz
ZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnfSAvLyBuYW1lc3BhY2UgZm9vJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAnQXQgbGVhc3QgdHdvIHNwYWNlcyBpcyBiZXN0IGJldHdl
ZW4gY29kZSBhbmQgY29tbWVudHMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRl
c3BhY2UvY29tbWVudHNdIFsyXScpCisgICAgICAgICAgICAgICAgICAgICAgICAgJycpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ30vLyBuYW1lc3BhY2UgZm9vJywKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAnQXQgbGVhc3QgdHdvIHNwYWNlcyBpcyBiZXN0IGJldHdlZW4gY29kZSBhbmQg
Y29tbWVudHMnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVu
dHNdIFsyXScpCisgICAgICAgICAgICAgICAgICAgICAgICAgJ09uZSBzcGFjZSBiZWZvcmUgZW5k
IG9mIGxpbmUgY29tbWVudHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3Bh
Y2UvY29tbWVudHNdIFs1XScpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3ByaW50ZigiZm9v
Iik7IC8vIE91dHNpZGUgcXVvdGVzLicsCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ0F0IGxl
YXN0IHR3byBzcGFjZXMgaXMgYmVzdCBiZXR3ZWVuIGNvZGUgYW5kIGNvbW1lbnRzJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL2NvbW1lbnRzXSBbMl0nKQotICAgICAg
ICBzZWxmLmFzc2VydF9saW50KCdpbnQgaSA9IDA7ICAvLyBIYXZpbmcgdHdvIHNwYWNlcyBpcyBm
aW5lLicsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdpbnQgaSA9IDA7ICAgLy8gSGF2
aW5nIHRocmVlIHNwYWNlcyBpcyBPSy4nLCAnJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAn
JykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGkgPSAwOyAvLyBIYXZpbmcgb25lIHNw
YWNlIGlzIGZpbmUuJywnJykKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGkgPSAwOyAg
Ly8gSGF2aW5nIHR3byBzcGFjZXMgaXMgYmFkLicsCisgICAgICAgICAgICAgICAgICAgICAgICAg
J09uZSBzcGFjZSBiZWZvcmUgZW5kIG9mIGxpbmUgY29tbWVudHMnCisgICAgICAgICAgICAgICAg
ICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFs1XScpCisgICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJ2ludCBpID0gMDsgICAvLyBIYXZpbmcgdGhyZWUgc3BhY2VzIGlzIGJhZC4nLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICdPbmUgc3BhY2UgYmVmb3JlIGVuZCBvZiBsaW5lIGNv
bW1lbnRzJworICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL2NvbW1lbnRz
XSBbNV0nKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCcvLyBUb3AgbGV2ZWwgY29tbWVudCcs
ICcnKQogICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgICAgLy8gTGluZSBzdGFydHMgd2l0aCBm
b3VyIHNwYWNlcy4nLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnZm9vKCk7XG4nCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgJ3sgLy8gQSBzY29wZSBpcyBvcGVuaW5nLicsICcnKQog
ICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgICAgZm9vKCk7XG4nCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgJyAgICB7IC8vIEFuIGluZGVudGVkIHNjb3BlIGlzIG9wZW5pbmcuJywgJycpCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ2lmIChmb28pIHsgLy8gbm90IGEgcHVyZSBzY29wZTsg
Y29tbWVudCBpcyB0b28gY2xvc2UhJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAnQXQgbGVh
c3QgdHdvIHNwYWNlcyBpcyBiZXN0IGJldHdlZW4gY29kZSBhbmQgY29tbWVudHMnCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2UvY29tbWVudHNdIFsyXScpCisgICAgICAg
IHNlbGYuYXNzZXJ0X2xpbnQoJ2lmIChmb28pIHsgLy8gbm90IGEgcHVyZSBzY29wZScsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3ByaW50
ZigiLy8gSW4gcXVvdGVzLiIpJywgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3ByaW50
ZigiXFwiJXMgLy8gSW4gcXVvdGVzLiIpJywgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQo
J3ByaW50ZigiJXMiLCAiLy8gSW4gcXVvdGVzLiIpJywgJycpCkBAIC0xNTYxLDcgKzE1NjQsNyBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfdGFi
KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdcdGludCBhOycsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ1RhYiBmb3VuZDsgYmV0dGVyIHRvIHVzZSBzcGFjZXMgIFt3aGl0ZXNw
YWNlL3RhYl0gWzFdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGEgPSA1O1x0XHQv
LyBzZXQgYSB0byA1JywKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50IGEgPSA1O1x0Ly8g
c2V0IGEgdG8gNScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RhYiBmb3VuZDsgYmV0dGVy
IHRvIHVzZSBzcGFjZXMgIFt3aGl0ZXNwYWNlL3RhYl0gWzFdJykKIAogICAgIGRlZiB0ZXN0X3Bh
cnNlX2FyZ3VtZW50cyhzZWxmKToKQEAgLTE3MzAsNyArMTczMyw3IEBAIGNsYXNzIENwcFN0eWxl
VGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAnICBbYnVp
bGQvZm9yd2FyZF9kZWNsXSBbNV0nKQogCiAgICAgZGVmIHRlc3RfYnVpbGRfaGVhZGVyX2d1YXJk
KHNlbGYpOgotICAgICAgICBmaWxlX3BhdGggPSAnbXlkaXIvZm9vLmgnCisgICAgICAgIGZpbGVf
cGF0aCA9ICdteWRpci9Gb28uaCcKIAogICAgICAgICAjIFdlIGNhbid0IHJlbHkgb24gb3VyIGlu
dGVybmFsIHN0dWZmIHRvIGdldCBhIHNhbmUgcGF0aCBvbiB0aGUgb3BlbiBzb3VyY2UKICAgICAg
ICAgIyBzaWRlIG9mIHRoaW5ncywgc28ganVzdCBwYXJzZSBvdXQgdGhlIHN1Z2dlc3RlZCBoZWFk
ZXIgZ3VhcmQuIFRoaXMKQEAgLTE3NDAsNyArMTc0Myw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChD
cHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmlsZV9kYXRhKGZp
bGVfcGF0aCwgJ2gnLCBbXSwgZXJyb3JfY29sbGVjdG9yKQogICAgICAgICBleHBlY3RlZF9ndWFy
ZCA9ICcnCiAgICAgICAgIG1hdGNoZXIgPSByZS5jb21waWxlKAotICAgICAgICAgICAgJ05vIFwj
aWZuZGVmIGhlYWRlciBndWFyZCBmb3VuZFwsIHN1Z2dlc3RlZCBDUFAgdmFyaWFibGUgaXNcOiAo
W0EtWl8wLTldKykgJykKKyAgICAgICAgICAgICdObyBcI2lmbmRlZiBoZWFkZXIgZ3VhcmQgZm91
bmRcLCBzdWdnZXN0ZWQgQ1BQIHZhcmlhYmxlIGlzXDogKFtBLVphLXpfMC05XSspICcpCiAgICAg
ICAgIGZvciBlcnJvciBpbiBlcnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKToKICAgICAgICAg
ICAgIG1hdGNoZXMgPSBtYXRjaGVyLm1hdGNoKGVycm9yKQogICAgICAgICAgICAgaWYgbWF0Y2hl
czoKQEAgLTE3OTQsNyArMTc5Nyw3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RC
YXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAxLAogICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCi0gICAgICAgICAgICAg
ICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmICAvLyAlcyInCisgICAgICAgICAgICAg
ICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmIC8vICVzIicKICAgICAgICAgICAgICAg
ICAnICBbYnVpbGQvaGVhZGVyX2d1YXJkXSBbNV0nICUgZXhwZWN0ZWRfZ3VhcmQpLAogICAgICAg
ICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCiAKQEAgLTE4MDgsNyArMTgxMSw3
IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoCiAgICAgICAgICAgICAxLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9y
LnJlc3VsdF9saXN0KCkuY291bnQoCi0gICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3Vs
ZCBiZSAiI2VuZGlmICAvLyAlcyInCisgICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3Vs
ZCBiZSAiI2VuZGlmIC8vICVzIicKICAgICAgICAgICAgICAgICAnICBbYnVpbGQvaGVhZGVyX2d1
YXJkXSBbNV0nICUgZXhwZWN0ZWRfZ3VhcmQpLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9y
LnJlc3VsdF9saXN0KCkpCiAKQEAgLTE4MjIsNyArMTgyNSw3IEBAIGNsYXNzIENwcFN0eWxlVGVz
dChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMoCiAgICAgICAg
ICAgICAxLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQo
Ci0gICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmICAvLyAlcyIn
CisgICAgICAgICAgICAgICAgJyNlbmRpZiBsaW5lIHNob3VsZCBiZSAiI2VuZGlmIC8vICVzIicK
ICAgICAgICAgICAgICAgICAnICBbYnVpbGQvaGVhZGVyX2d1YXJkXSBbNV0nICUgZXhwZWN0ZWRf
Z3VhcmQpLAogICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkpCiAKQEAg
LTE4MzEsNDIgKzE4MzQsMTIgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2Up
OgogICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJyNpZm5kZWYgJXMnICUgZXhwZWN0
ZWRfZ3VhcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNkZWZpbmUg
JXMnICUgZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJyNlbmRpZiAgLy8gJXMnICUgZXhwZWN0ZWRfZ3VhcmRdLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyb3JfY29sbGVjdG9yKQotICAgICAgICBmb3IgbGluZSBpbiBl
cnJvcl9jb2xsZWN0b3IucmVzdWx0X2xpc3QoKToKLSAgICAgICAgICAgIGlmIGxpbmUuZmluZCgn
YnVpbGQvaGVhZGVyX2d1YXJkJykgIT0gLTE6Ci0gICAgICAgICAgICAgICAgc2VsZi5mYWlsKCdV
bmV4cGVjdGVkIGVycm9yOiAlcycgJSBsaW5lKQotCi0gICAgICAgICMgTm8gaGVhZGVyIGd1YXJk
IGVycm9ycyBmb3Igb2xkLXN0eWxlIGd1YXJkCi0gICAgICAgIGVycm9yX2NvbGxlY3RvciA9IEVy
cm9yQ29sbGVjdG9yKHNlbGYuYXNzZXJ0XykKLSAgICAgICAgY3BwX3N0eWxlLnByb2Nlc3NfZmls
ZV9kYXRhKGZpbGVfcGF0aCwgJ2gnLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgWycjaWZuZGVmICVzXycgJSBleHBlY3RlZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAnI2RlZmluZSAlc18nICUgZXhwZWN0ZWRfZ3VhcmQsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNlbmRpZiAgLy8gJXNfJyAlIGV4cGVjdGVk
X2d1YXJkXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnI2VuZGlmIC8v
ICVzJyAlIGV4cGVjdGVkX2d1YXJkXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVycm9yX2NvbGxlY3RvcikKICAgICAgICAgZm9yIGxpbmUgaW4gZXJyb3JfY29sbGVjdG9y
LnJlc3VsdF9saXN0KCk6CiAgICAgICAgICAgICBpZiBsaW5lLmZpbmQoJ2J1aWxkL2hlYWRlcl9n
dWFyZCcpICE9IC0xOgogICAgICAgICAgICAgICAgIHNlbGYuZmFpbCgnVW5leHBlY3RlZCBlcnJv
cjogJXMnICUgbGluZSkKIAotICAgICAgICBvbGRfdmVyYm9zZV9sZXZlbCA9IGNwcF9zdHlsZS5f
Y3BwX3N0eWxlX3N0YXRlLnZlcmJvc2VfbGV2ZWwKLSAgICAgICAgdHJ5OgotICAgICAgICAgICAg
Y3BwX3N0eWxlLl9jcHBfc3R5bGVfc3RhdGUudmVyYm9zZV9sZXZlbCA9IDAKLSAgICAgICAgICAg
ICMgV2FybiBvbiBvbGQtc3R5bGUgZ3VhcmQgaWYgdmVyYm9zaXR5IGlzIDAuCi0gICAgICAgICAg
ICBlcnJvcl9jb2xsZWN0b3IgPSBFcnJvckNvbGxlY3RvcihzZWxmLmFzc2VydF8pCi0gICAgICAg
ICAgICBjcHBfc3R5bGUucHJvY2Vzc19maWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWycjaWZuZGVmICVzXycgJSBleHBlY3Rl
ZF9ndWFyZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyNkZWZp
bmUgJXNfJyAlIGV4cGVjdGVkX2d1YXJkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnI2VuZGlmICAvLyAlc18nICUgZXhwZWN0ZWRfZ3VhcmRdLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3RvcikKLSAgICAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAotICAgICAgICAgICAgICAgIDEsCi0gICAgICAgICAgICAg
ICAgZXJyb3JfY29sbGVjdG9yLnJlc3VsdF9saXN0KCkuY291bnQoCi0gICAgICAgICAgICAgICAg
ICAgICcjaWZuZGVmIGhlYWRlciBndWFyZCBoYXMgd3Jvbmcgc3R5bGUsIHBsZWFzZSB1c2U6ICVz
JwotICAgICAgICAgICAgICAgICAgICAnICBbYnVpbGQvaGVhZGVyX2d1YXJkXSBbMF0nICUgZXhw
ZWN0ZWRfZ3VhcmQpLAotICAgICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlz
dCgpKQotICAgICAgICBmaW5hbGx5OgotICAgICAgICAgICAgY3BwX3N0eWxlLl9jcHBfc3R5bGVf
c3RhdGUudmVyYm9zZV9sZXZlbCA9IG9sZF92ZXJib3NlX2xldmVsCi0KICAgICAgICAgIyBDb21w
bGV0ZWx5IGluY29ycmVjdCBoZWFkZXIgZ3VhcmQKICAgICAgICAgZXJyb3JfY29sbGVjdG9yID0g
RXJyb3JDb2xsZWN0b3Ioc2VsZi5hc3NlcnRfKQogICAgICAgICBjcHBfc3R5bGUucHJvY2Vzc19m
aWxlX2RhdGEoZmlsZV9wYXRoLCAnaCcsCkBAIC0xODgzLDcgKzE4NTYsNyBAQCBjbGFzcyBDcHBT
dHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKAog
ICAgICAgICAgICAgMSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgp
LmNvdW50KAotICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAg
Ly8gJXMiJworICAgICAgICAgICAgICAgICcjZW5kaWYgbGluZSBzaG91bGQgYmUgIiNlbmRpZiAv
LyAlcyInCiAgICAgICAgICAgICAgICAgJyAgW2J1aWxkL2hlYWRlcl9ndWFyZF0gWzVdJyAlIGV4
cGVjdGVkX2d1YXJkKSwKICAgICAgICAgICAgIGVycm9yX2NvbGxlY3Rvci5yZXN1bHRfbGlzdCgp
KQogCkBAIC0yOTEyLDcgKzI4ODUsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVU
ZXN0QmFzZSk6CiAgICAgICAgICAgICAnZm9vLmNwcCcpCiAgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpX2xpbmVfbGludCgKICAgICAgICAgICAgICduYW1lc3BhY2UgV2ViQ29yZSB7XG5cbicKLSAg
ICAgICAgICAgICdjb25zdCBjaGFyKiBmb28odm9pZCogYSA9ICI7IiwgIC8vIDtcbicKKyAgICAg
ICAgICAgICdjb25zdCBjaGFyKiBmb28odm9pZCogYSA9ICI7IiwgLy8gO1xuJwogICAgICAgICAg
ICAgJyAgICB2b2lkKiBiKTtcbicKICAgICAgICAgICAgICcgICAgdm9pZCogcDtcbicKICAgICAg
ICAgICAgICd9XG4nLApAQCAtMjkyMSw3ICsyODk0LDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0
KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQo
CiAgICAgICAgICAgICAnbmFtZXNwYWNlIFdlYkNvcmUge1xuXG4nCiAgICAgICAgICAgICAnY29u
c3QgY2hhciogZm9vW10gPSB7XG4nCi0gICAgICAgICAgICAnICAgICJ2b2lkKiBiKTsiLCAgLy8g
O1xuJworICAgICAgICAgICAgJyAgICAidm9pZCogYik7IiwgLy8gO1xuJwogICAgICAgICAgICAg
JyAgICAiYXNmZGYiLFxuJwogICAgICAgICAgICAgJyAgICB9XG4nCiAgICAgICAgICAgICAnICAg
IHZvaWQqIHA7XG4nCkBAIC0yOTMxLDcgKzI5MDQsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3Qo
Q3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgK
ICAgICAgICAgICAgICduYW1lc3BhY2UgV2ViQ29yZSB7XG5cbicKICAgICAgICAgICAgICdjb25z
dCBjaGFyKiBmb29bXSA9IHtcbicKLSAgICAgICAgICAgICcgICAgInZvaWQqIGIpOyIsICAvLyB9
XG4nCisgICAgICAgICAgICAnICAgICJ2b2lkKiBiKTsiLCAvLyB9XG4nCiAgICAgICAgICAgICAn
ICAgICJhc2ZkZiIsXG4nCiAgICAgICAgICAgICAnICAgIH1cbicKICAgICAgICAgICAgICd9XG4n
LApAQCAtMjk0MSw3ICsyOTE0LDcgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICAgICAgJyAgICBuYW1lc3BhY2UgV2ViQ29yZSB7XG5cbicKICAgICAg
ICAgICAgICcgICAgdm9pZCBEb2N1bWVudDo6Rm9vKClcbicKICAgICAgICAgICAgICcgICAge1xu
JwotICAgICAgICAgICAgJ3N0YXJ0OiAgLy8gaW5maW5pdGUgbG9vcHMgYXJlIGZ1biFcbicKKyAg
ICAgICAgICAgICdzdGFydDogLy8gaW5maW5pdGUgbG9vcHMgYXJlIGZ1biFcbicKICAgICAgICAg
ICAgICcgICAgICAgIGdvdG8gc3RhcnQ7XG4nCiAgICAgICAgICAgICAnICAgIH0nLAogICAgICAg
ICAgICAgJ25hbWVzcGFjZSBzaG91bGQgbmV2ZXIgYmUgaW5kZW50ZWQuICBbd2hpdGVzcGFjZS9p
bmRlbnRdIFs0XScsCkBAIC0zNDk1LDcgKzM0NjgsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3Qo
Q3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvbnVsbF0gWzRd
JywKICAgICAgICAgICAgICdmb28uY3BwJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKLSAg
ICAgICAgICAgICciQSBzdHJpbmcgd2l0aCBOVUxMIiAgLy8gYW5kIGEgY29tbWVudCB3aXRoIE5V
TEwgaXMgdHJpY2t5IHRvIGZsYWcgY29ycmVjdGx5IGluIGNwcF9zdHlsZS4nLAorICAgICAgICAg
ICAgJyJBIHN0cmluZyB3aXRoIE5VTEwiIC8vIGFuZCBhIGNvbW1lbnQgd2l0aCBOVUxMIGlzIHRy
aWNreSB0byBmbGFnIGNvcnJlY3RseSBpbiBjcHBfc3R5bGUuJywKICAgICAgICAgICAgICdVc2Ug
MCBpbnN0ZWFkIG9mIE5VTEwuJwogICAgICAgICAgICAgJyAgW3JlYWRhYmlsaXR5L251bGxdIFs0
XScsCiAgICAgICAgICAgICAnZm9vLmNwcCcpCkBAIC0zNzEyLDYgKzM2ODUsMTUgQEAgY2xhc3Mg
V2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9s
aW50KCd0eXBlZGVmIFZlY3RvclR5cGU6OmNvbnN0X2l0ZXJhdG9yIGNvbnN0X2l0ZXJhdG9yOycs
ICcnKQogCiAKKyAgICBkZWYgdGVzdF9jb21tZW50cyhzZWxmKToKKyAgICAgICAgIyBjb21tZW50
IGF0IHRoZSBiZWdpbmluZyBsaW5lIGlzIG9rLgorICAgICAgICBzZWxmLmFzc2VydF9saW50KCcv
LyBjb21tZW50JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgICAvLyBjb21tZW50
JywgJycpCisKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnfSAgLy8gbmFtZXNwYWNlIFdlYkNv
cmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdPbmUgc3BhY2UgYmVmb3JlIGVuZCBvZiBs
aW5lIGNvbW1lbnRzJworICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0ZXNwYWNlL2Nv
bW1lbnRzXSBbNV0nKQorCiAgICAgZGVmIHRlc3Rfb3RoZXIoc2VsZik6CiAgICAgICAgICMgRklY
TUU6IEltcGxlbWVudCB0aGlzLgogICAgICAgICBwYXNzCg==
</data>
<flag name="review"
          id="27105"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="27134"
          type_id="3"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>