<?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>97602</bug_id>
          
          <creation_ts>2012-09-25 14:11:52 -0700</creation_ts>
          <short_desc>C++ style checker should warn when the indentation is wrong</short_desc>
          <delta_ts>2012-09-26 13:05:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>dpranke</cc>
    
    <cc>levin</cc>
    
    <cc>macpherson</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>727947</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 14:11:52 -0700</bug_when>
    <thetext>C++ style checker should warn when the indentation is wrong</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727960</commentid>
    <comment_count>1</comment_count>
      <attachid>165672</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 14:20:12 -0700</bug_when>
    <thetext>Created attachment 165672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727965</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 14:23:02 -0700</bug_when>
    <thetext>Spin off from https://bugs.webkit.org/show_bug.cgi?id=95930#c7 .

I tried running CSSParser.h and CSSParser.cpp to find spurious warnings, but I may have missed some cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727974</commentid>
    <comment_count>3</comment_count>
      <attachid>165672</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2012-09-25 14:31:09 -0700</bug_when>
    <thetext>Comment on attachment 165672
Patch

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

&gt; Tools/ChangeLog:8
&gt; +        Rewrite the indentation checker to ensure that indentation is always a factor of 4

Is that always true? 

I thought WebKit code did parenthesis alignment on continued lines
  functionName(blah,...
               blah, blah, blah);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727977</commentid>
    <comment_count>4</comment_count>
      <attachid>165672</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 14:32:43 -0700</bug_when>
    <thetext>Comment on attachment 165672
Patch

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

&gt;&gt; Tools/ChangeLog:8
&gt;&gt; +        Rewrite the indentation checker to ensure that indentation is always a factor of 4
&gt; 
&gt; Is that always true? 
&gt; 
&gt; I thought WebKit code did parenthesis alignment on continued lines
&gt;   functionName(blah,...
&gt;                blah, blah, blah);

That was the specific case that Darin said was not allowed.  See https://bugs.webkit.org/attachment.cgi?id=165498&amp;action=review .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727981</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2012-09-25 14:38:14 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 165672 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165672&amp;action=review
&gt; 
&gt; &gt;&gt; Tools/ChangeLog:8
&gt; &gt;&gt; +        Rewrite the indentation checker to ensure that indentation is always a factor of 4
&gt; &gt; 
&gt; &gt; Is that always true? 
&gt; &gt; 
&gt; &gt; I thought WebKit code did parenthesis alignment on continued lines
&gt; &gt;   functionName(blah,...
&gt; &gt;                blah, blah, blah);
&gt; 
&gt; That was the specific case that Darin said was not allowed.  See https://bugs.webkit.org/attachment.cgi?id=165498&amp;action=review .

Thanks. I&apos;m just busy revealing how long it has been since I&apos;ve written any WebKit code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727990</commentid>
    <comment_count>6</comment_count>
      <attachid>165672</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-25 14:55:42 -0700</bug_when>
    <thetext>Comment on attachment 165672
Patch

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

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2072
&gt; +        error(line_number, &apos;whitespace/indent&apos;, 3,
&gt; +              &apos;Weird number of spaces at line-start.  &apos;
&gt; +              &apos;Are you using a 4-space indent?&apos;)

Nit: put this string on one line? and maybe put all the arguments on one line? Also, isn&apos;t the violating the new style rule?

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2081
&gt; +    previous_line_initial_spaces = 0
&gt; +    while previous_line_initial_spaces &lt; len(previous_line) and previous_line[previous_line_initial_spaces] == &apos; &apos;:
&gt; +        previous_line_initial_spaces += 1

Nit: make a helper function for this?

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2084
&gt; +        error(line_number, &apos;whitespace/indent&apos;, 3,
&gt; +              &apos;When wrapping a line, only indent 4 spaces.&apos;)

Nit: put this on one line?

&gt; Tools/Scripts/webkitpy/style/checkers/cpp.py:2573
&gt;      # if(match($0, &quot; &lt;&lt;&quot;)) complain = 0;
&gt;      # if(match(prev, &quot; +for \\(&quot;)) complain = 0;
&gt;      # if(prevodd &amp;&amp; match(prevprev, &quot; +for \\(&quot;)) complain = 0;

This comment seems way outdated (and related to this patch). Delete them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728025</commentid>
    <comment_count>7</comment_count>
      <attachid>165690</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 15:34:38 -0700</bug_when>
    <thetext>Created attachment 165690
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728026</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-25 15:35:13 -0700</bug_when>
    <thetext>I&apos;m going to land this tomorrow so I can be around to fix any false positives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728099</commentid>
    <comment_count>9</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2012-09-25 17:50:32 -0700</bug_when>
    <thetext>IMHO, &quot;The indent size is 4 spaces.&quot; in the style guide seems to refer more to new blocks of code than to aligning successive lines in a case like a function call.
http://www.webkit.org/coding/coding-style.html#indentation-wrap-bool-op happens to result in 4-spaces because &quot;if (&quot; is 4 characters long, but I think that&apos;s merely a coincidence and the principle is that stuff is aligned to the inside of the opening  &quot;(&quot;.

Ironic that the python code for this very patch even uses this form :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728895</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-26 13:05:37 -0700</bug_when>
    <thetext>Committed r129690: &lt;http://trac.webkit.org/changeset/129690&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165672</attachid>
            <date>2012-09-25 14:20:12 -0700</date>
            <delta_ts>2012-09-25 15:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97602-20120925141931.patch</filename>
            <type>text/plain</type>
            <size>28619</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTI3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzlmNjZiYWVjYjNiZjM3Y2I0NjJkNDk0ODk2YzJhZjIw
ZTVmZGNiOS4uZDBjMGM4ZWU5MTBmMGQxN2QwZGM3ZDhmNTBkYzEyYzljNDA2NWY2MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDEyLTA5LTI1ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQysrIHN0eWxlIGNoZWNrZXIgc2hvdWxkIHdhcm4gd2hlbiB0aGUgaW5kZW50YXRpb24gaXMg
d3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
NjAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmV3
cml0ZSB0aGUgaW5kZW50YXRpb24gY2hlY2tlciB0byBlbnN1cmUgdGhhdCBpbmRlbnRhdGlvbiBp
cyBhbHdheXMgYSBmYWN0b3Igb2YgNAorICAgICAgICBhbmQgdGhhdCB3ZSBvbmx5IGluZGVudCA0
IHNwYWNlcyBmcm9tIHRoZSBwcmV2aW91cyBsaW5lLgorCisgICAgICAgIEkgZGVsZXRlZCBzb21l
IG9mIHRoZSBvbGQgaW5kZW50YXRpb24gY2hlY2tpbmcgY29kZSBzaW5jZSBpdCB3YXMgZmlsdGVy
ZWQgb3V0CisgICAgICAgIGFuZCBkaWRuJ3QgbWF0Y2ggdGhlIHdlYmtpdCBzdHlsZS4KKworICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weToKKyAgICAgICAgKGNoZWNrX2luZGVu
dGF0aW9uX2Ftb3VudCk6IE5ldyBmdW5jdGlvbiB0aGF0IGNoZWNrcyBpbmRlbnRhdGlvbi4gSW50
ZW50aW9uYWxseSBydW5zIGFmdGVyCisgICAgICAgIG90aGVyIGluZGVudGF0aW9uIGNoZWNrcy4K
KyAgICAgICAgKGNoZWNrX3N0eWxlKTogRGVsZXRlIHRoZSBvbGQgaW5kZW50YXRpb24gY29kZSBz
aW5jZSB3ZSB3ZXJlIGFscmVhZHkgZmlsdGVyaW5nIG91dCB0aGUgd2hpdGVzcGFjZS9sYWJlbHMg
d2FybmluZ3MuCisgICAgICAgIChDcHBDaGVja2VyKTogUmVtb3ZlIHRoZSB3aGl0ZXNwYWNlL2xh
YmVscyBmaWx0ZXIuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9j
cHBfdW5pdHRlc3QucHk6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9tdWx0aV9saW5lX2Nv
bW1lbnRzKTogRm9yY2UgNCBzcGFjZSBpbmRlbnQuCisgICAgICAgIChDcHBTdHlsZVRlc3QudGVz
dF9leHBsaWNpdF9zaW5nbGVfYXJndW1lbnRfY29uc3RydWN0b3JzKToKKyAgICAgICAgKENwcFN0
eWxlVGVzdC50ZXN0X2V4cGxpY2l0X3NpbmdsZV9hcmd1bWVudF9jb25zdHJ1Y3RvcnMuRm9vKToK
KyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2V4cGxpY2l0X3NpbmdsZV9hcmd1bWVudF9jb25z
dHJ1Y3RvcnMuUXVhbGlmaWVyKToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X3NsYXNoX3N0
YXJfY29tbWVudF9vbl9zaW5nbGVfbGluZSk6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9i
cmFjZXMpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3Rfc3BhY2luZ19iZWZvcmVfbGFzdF9z
ZW1pY29sb24pOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3Rfc3RhdGljX29yX2dsb2JhbF9z
dGxzdHJpbmdzKToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2luZGVudCk6IEFkZGVkIG1h
Y3JvIHRlc3QgY2FzZS4KKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2J1aWxkX2NsYXNzKToK
KyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X25vX2Vycm9yKToKKyAg
ICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X25vX2Vycm9yLkZvbyk6Cisg
ICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9ub19lcnJvci5RdWFsaWZp
ZWQpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfbm9fZGVzdHJ1
Y3Rvcl93aGVuX3ZpcnR1YWxfbmVlZGVkKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0
b3JzVGVzdC50ZXN0X25vX2Rlc3RydWN0b3Jfd2hlbl92aXJ0dWFsX25lZWRlZC5Gb28pOgorICAg
ICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3RfZGVzdHJ1Y3Rvcl9ub25fdmly
dHVhbF93aGVuX3ZpcnR1YWxfbmVlZGVkKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0
b3JzVGVzdC50ZXN0X2Rlc3RydWN0b3Jfbm9uX3ZpcnR1YWxfd2hlbl92aXJ0dWFsX25lZWRlZC5G
b28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfbm9fd2Fybl93
aGVuX2Rlcml2ZWQpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rf
bm9fd2Fybl93aGVuX2Rlcml2ZWQuRm9vKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0
b3JzVGVzdC50ZXN0X2ludGVybmFsX2JyYWNlcyk6CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0
cnVjdG9yc1Rlc3QudGVzdF9pbnRlcm5hbF9icmFjZXMuRm9vKToKKyAgICAgICAgKE5vTm9uVmly
dHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X2lubmVyX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1
Y3Rvcik6CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9pbm5lcl9j
bGFzc19uZWVkc192aXJ0dWFsX2Rlc3RydWN0b3IuRm9vKToKKyAgICAgICAgKE5vTm9uVmlydHVh
bERlc3RydWN0b3JzVGVzdC50ZXN0X2lubmVyX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rv
ci5Gb28uR29vKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X291
dGVyX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rvcik6CisgICAgICAgIChOb05vblZpcnR1
YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9vdXRlcl9jbGFzc19uZWVkc192aXJ0dWFsX2Rlc3RydWN0
b3IuRm9vKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X291dGVy
X2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5Gb28uR29vKToKKyAgICAgICAgKE5vTm9u
VmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X3F1YWxpZmllZF9jbGFzc19uZWVkc192aXJ0dWFs
X2Rlc3RydWN0b3IpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rf
cXVhbGlmaWVkX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5RdWFsaWZpZWQpOgorICAg
ICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3RfbXVsdGlfbGluZV9kZWNsYXJh
dGlvbl9ub19lcnJvcik6CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVz
dF9tdWx0aV9saW5lX2RlY2xhcmF0aW9uX25vX2Vycm9yLkZvbyk6CisgICAgICAgIChOb05vblZp
cnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9tdWx0aV9saW5lX2RlY2xhcmF0aW9uX3dpdGhfZXJy
b3IpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3RfbXVsdGlfbGlu
ZV9kZWNsYXJhdGlvbl93aXRoX2Vycm9yLkZvbyk6CisgICAgICAgIChXZWJLaXRTdHlsZVRlc3Qu
dGVzdF9pbmRlbnRhdGlvbik6CisgICAgICAgIChXZWJLaXRTdHlsZVRlc3QudGVzdF9icmFjZXMp
OiBBZGQgdGVzdCBmb3IgY2FsbCBwYXJhbXMgc3Bhbm5pbmcgbGluZXMuCisKIDIwMTItMDktMjUg
IERvbWluaWMgTWF6em9uaSAgPGRtYXp6b25pQGdvb2dsZS5jb20+CiAKICAgICAgICAgQVg6IENo
cm9taXVtIGRvZXNuJ3QgcGFzcyBhY2Nlc3NpYmlsaXR5IHRleHQgcmFuZ2UgYW5kIGxpbmUgbnVt
YmVyIHRlc3RzCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNr
ZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXIucHkKaW5kZXggNWIx
MWFmNDgzZmYxNThjMWRmMDc4Yzk0NDcxMmFmMDdjODgzNWM5My4uOWYyN2MzNmRhYmEyY2YyOTI1
YWQ4NWNhNTM4MTdiYjA3MmQyZWJlNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9zdHlsZS9jaGVja2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlci5weQpAQCAtOTYsNyArOTYsNiBAQCBfQkFTRV9GSUxURVJfUlVMRVMgPSBbCiAgICAgJy1y
dW50aW1lL3J0dGknLAogICAgICctd2hpdGVzcGFjZS9ibGFua19saW5lJywKICAgICAnLXdoaXRl
c3BhY2UvZW5kX29mX2xpbmUnLAotICAgICctd2hpdGVzcGFjZS9sYWJlbHMnLAogICAgICMgTGlz
dCBQeXRob24gcGVwOCBjYXRlZ29yaWVzIGxhc3QuCiAgICAgIwogICAgICMgQmVjYXVzZSBtdWNo
IG9mIFdlYktpdCdzIFB5dGhvbiBjb2RlIGJhc2UgZG9lcyBub3QgYWJpZGUgYnkgdGhlCmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5CmluZGV4IGEwMDUxYzk3
OTdhOTgxMDhiOTYxMmI4NTYxZmQ3ZDIyYTBjZTM5ODMuLjU5Mzg2NTdiODRlM2U2NDEwMzhjZjc5
OGMwNzU3YjhjNDk3MmY2MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5
bGUvY2hlY2tlcnMvY3BwLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hl
Y2tlcnMvY3BwLnB5CkBAIC0yMDYwLDYgKzIwNjAsMzAgQEAgZGVmIGNoZWNrX2RpcmVjdGl2ZV9p
bmRlbnRhdGlvbihjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3RhdGUsIGVycm9yKToK
ICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvaW5kZW50JywgNCwgJ3ByZXByb2Nl
c3NvciBkaXJlY3RpdmVzIChlLmcuLCAjaWZkZWYsICNkZWZpbmUsICNpbXBvcnQpIHNob3VsZCBu
ZXZlciBiZSBpbmRlbnRlZC4nKQogCiAKK2RlZiBjaGVja19pbmRlbnRhdGlvbl9hbW91bnQoY2xl
YW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcik6CisgICAgbGluZSA9IGNsZWFuX2xpbmVzLmVs
aWRlZFtsaW5lX251bWJlcl0KKworICAgIGluaXRpYWxfc3BhY2VzID0gMAorICAgIHdoaWxlIGlu
aXRpYWxfc3BhY2VzIDwgbGVuKGxpbmUpIGFuZCBsaW5lW2luaXRpYWxfc3BhY2VzXSA9PSAnICc6
CisgICAgICAgIGluaXRpYWxfc3BhY2VzICs9IDEKKyAgICBpZiBpbml0aWFsX3NwYWNlcyAlIDQ6
CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9pbmRlbnQnLCAzLAorICAg
ICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNwYWNlcyBhdCBsaW5lLXN0YXJ0LiAgJworICAg
ICAgICAgICAgICAnQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PycpCisgICAgICAgIHJl
dHVybgorCisgICAgcHJldmlvdXNfbGluZSA9IGdldF9wcmV2aW91c19ub25fYmxhbmtfbGluZShj
bGVhbl9saW5lcywgbGluZV9udW1iZXIpWzBdCisgICAgaWYgbm90IHByZXZpb3VzX2xpbmUuc3Ry
aXAoKSBvciBtYXRjaChyJ1xzKlx3K1xzKjpccyokJywgcHJldmlvdXNfbGluZSkgb3IgcHJldmlv
dXNfbGluZVswXSA9PSAnIyc6CisgICAgICAgIHJldHVybgorCisgICAgcHJldmlvdXNfbGluZV9p
bml0aWFsX3NwYWNlcyA9IDAKKyAgICB3aGlsZSBwcmV2aW91c19saW5lX2luaXRpYWxfc3BhY2Vz
IDwgbGVuKHByZXZpb3VzX2xpbmUpIGFuZCBwcmV2aW91c19saW5lW3ByZXZpb3VzX2xpbmVfaW5p
dGlhbF9zcGFjZXNdID09ICcgJzoKKyAgICAgICAgcHJldmlvdXNfbGluZV9pbml0aWFsX3NwYWNl
cyArPSAxCisgICAgaWYgaW5pdGlhbF9zcGFjZXMgPiBwcmV2aW91c19saW5lX2luaXRpYWxfc3Bh
Y2VzICsgNDoKKyAgICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2luZGVudCcs
IDMsCisgICAgICAgICAgICAgICdXaGVuIHdyYXBwaW5nIGEgbGluZSwgb25seSBpbmRlbnQgNCBz
cGFjZXMuJykKKworCiBkZWYgY2hlY2tfdXNpbmdfc3RkKGNsZWFuX2xpbmVzLCBsaW5lX251bWJl
ciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAgICIiIkxvb2tzIGZvciAndXNpbmcgc3RkOjpmb287
JyBzdGF0ZW1lbnRzIHdoaWNoIHNob3VsZCBiZSByZXBsYWNlZCB3aXRoICd1c2luZyBuYW1lc3Bh
Y2Ugc3RkOycuCiAKQEAgLTI1NDcsMzIgKzI1NzEsMTAgQEAgZGVmIGNoZWNrX3N0eWxlKGNsZWFu
X2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24sIGNsYXNzX3N0YXRlLCBmaWxlX3N0
YXQKICAgICAjIGlmKG1hdGNoKCQwLCAiIDw8IikpIGNvbXBsYWluID0gMDsKICAgICAjIGlmKG1h
dGNoKHByZXYsICIgK2ZvciBcXCgiKSkgY29tcGxhaW4gPSAwOwogICAgICMgaWYocHJldm9kZCAm
JiBtYXRjaChwcmV2cHJldiwgIiArZm9yIFxcKCIpKSBjb21wbGFpbiA9IDA7Ci0gICAgaW5pdGlh
bF9zcGFjZXMgPSAwCiAgICAgY2xlYW5zZWRfbGluZSA9IGNsZWFuX2xpbmVzLmVsaWRlZFtsaW5l
X251bWJlcl0KLSAgICB3aGlsZSBpbml0aWFsX3NwYWNlcyA8IGxlbihsaW5lKSBhbmQgbGluZVtp
bml0aWFsX3NwYWNlc10gPT0gJyAnOgotICAgICAgICBpbml0aWFsX3NwYWNlcyArPSAxCiAgICAg
aWYgbGluZSBhbmQgbGluZVstMV0uaXNzcGFjZSgpOgogICAgICAgICBlcnJvcihsaW5lX251bWJl
ciwgJ3doaXRlc3BhY2UvZW5kX29mX2xpbmUnLCA0LAogICAgICAgICAgICAgICAnTGluZSBlbmRz
IGluIHdoaXRlc3BhY2UuICBDb25zaWRlciBkZWxldGluZyB0aGVzZSBleHRyYSBzcGFjZXMuJykK
LSAgICAjIFRoZXJlIGFyZSBjZXJ0YWluIHNpdHVhdGlvbnMgd2UgYWxsb3cgb25lIHNwYWNlLCBu
b3RhYmx5IGZvciBsYWJlbHMKLSAgICBlbGlmICgoaW5pdGlhbF9zcGFjZXMgPj0gMSBhbmQgaW5p
dGlhbF9zcGFjZXMgPD0gMykKLSAgICAgICAgICBhbmQgbm90IG1hdGNoKHInXHMqXHcrXHMqOlxz
KiQnLCBjbGVhbnNlZF9saW5lKSk6Ci0gICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVz
cGFjZS9pbmRlbnQnLCAzLAotICAgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNwYWNlcyBh
dCBsaW5lLXN0YXJ0LiAgJwotICAgICAgICAgICAgICAnQXJlIHlvdSB1c2luZyBhIDQtc3BhY2Ug
aW5kZW50PycpCi0gICAgIyBMYWJlbHMgc2hvdWxkIGFsd2F5cyBiZSBpbmRlbnRlZCBhdCBsZWFz
dCBvbmUgc3BhY2UuCi0gICAgZWxpZiBub3QgaW5pdGlhbF9zcGFjZXMgYW5kIGxpbmVbOjJdICE9
ICcvLyc6Ci0gICAgICAgIGxhYmVsX21hdGNoID0gbWF0Y2gocicoP1A8bGFiZWw+W146XSspOlxz
KiQnLCBsaW5lKQotCi0gICAgICAgIGlmIGxhYmVsX21hdGNoOgotICAgICAgICAgICAgbGFiZWwg
PSBsYWJlbF9tYXRjaC5ncm91cCgnbGFiZWwnKQotICAgICAgICAgICAgIyBPbmx5IHRocm93IGVy
cm9ycyBmb3Igc3R1ZmYgdGhhdCBpcyBkZWZpbml0ZWx5IG5vdCBhIGdvdG8gbGFiZWwsCi0gICAg
ICAgICAgICAjIGJlY2F1c2UgZ290byBsYWJlbHMgY2FuIGluIGZhY3Qgb2NjdXIgYXQgdGhlIHN0
YXJ0IG9mIHRoZSBsaW5lLgotICAgICAgICAgICAgaWYgbGFiZWwgaW4gWydwdWJsaWMnLCAncHJp
dmF0ZScsICdwcm90ZWN0ZWQnXSBvciBsYWJlbC5maW5kKCcgJykgIT0gLTE6Ci0gICAgICAgICAg
ICAgICAgZXJyb3IobGluZV9udW1iZXIsICd3aGl0ZXNwYWNlL2xhYmVscycsIDQsCi0gICAgICAg
ICAgICAgICAgICAgICAgJ0xhYmVscyBzaG91bGQgYWx3YXlzIGJlIGluZGVudGVkIGF0IGxlYXN0
IG9uZSBzcGFjZS4gICcKLSAgICAgICAgICAgICAgICAgICAgICAnSWYgdGhpcyBpcyBhIG1lbWJl
ci1pbml0aWFsaXplciBsaXN0IGluIGEgY29uc3RydWN0b3IsICcKLSAgICAgICAgICAgICAgICAg
ICAgICAndGhlIGNvbG9uIHNob3VsZCBiZSBvbiB0aGUgbGluZSBhZnRlciB0aGUgZGVmaW5pdGlv
biBoZWFkZXIuJykKIAogICAgIGlmIChjbGVhbnNlZF9saW5lLmNvdW50KCc7JykgPiAxCiAgICAg
ICAgICMgZm9yIGxvb3BzIGFyZSBhbGxvd2VkIHR3byA7J3MgKGFuZCBtYXkgcnVuIG92ZXIgdHdv
IGxpbmVzKS4KQEAgLTI2MTIsNiArMjYxNCw3IEBAIGRlZiBjaGVja19zdHlsZShjbGVhbl9saW5l
cywgbGluZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBjbGFzc19zdGF0ZSwgZmlsZV9zdGF0CiAg
ICAgY2hlY2tfY2hlY2soY2xlYW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcikKICAgICBjaGVj
a19mb3JfY29tcGFyaXNvbnNfdG9femVybyhjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVycm9y
KQogICAgIGNoZWNrX2Zvcl9udWxsKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0
ZSwgZXJyb3IpCisgICAgY2hlY2tfaW5kZW50YXRpb25fYW1vdW50KGNsZWFuX2xpbmVzLCBsaW5l
X251bWJlciwgZXJyb3IpCiAKIAogX1JFX1BBVFRFUk5fSU5DTFVERV9ORVdfU1RZTEUgPSByZS5j
b21waWxlKHInI2luY2x1ZGUgKyJbXi9dK1wuaCInKQpAQCAtMzYzNCw3ICszNjM3LDYgQEAgY2xh
c3MgQ3BwQ2hlY2tlcihvYmplY3QpOgogICAgICAgICAnd2hpdGVzcGFjZS9lbmRfb2ZfbGluZScs
CiAgICAgICAgICd3aGl0ZXNwYWNlL2VuZGluZ19uZXdsaW5lJywKICAgICAgICAgJ3doaXRlc3Bh
Y2UvaW5kZW50JywKLSAgICAgICAgJ3doaXRlc3BhY2UvbGFiZWxzJywKICAgICAgICAgJ3doaXRl
c3BhY2UvbGluZV9sZW5ndGgnLAogICAgICAgICAnd2hpdGVzcGFjZS9uZXdsaW5lJywKICAgICAg
ICAgJ3doaXRlc3BhY2Uvb3BlcmF0b3JzJywKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkKaW5kZXggYTFiOTFmMjkyYWZhMTQ5
YjhjMWIxYTE1ZjNjMmYxOWY1ZjgyYmVjZS4uNmYwMDFlMGNiNzYyOGY2Nzg5MDcyZjdmYTUxNzEy
Y2Q0NGQzMGYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVj
a2Vycy9jcHBfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jcHBfdW5pdHRlc3QucHkKQEAgLTEwODYsNyArMTA4Niw4IEBAIGNsYXNzIENwcFN0
eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICovICcnJywKICAgICAgICAg
JycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgIHIn
JycvKiBpbnQgYSA9IDA7IG11bHRpLWxpbmVyCisgICAgICAgICAgICAnJydcCisgICAgICAgICAg
ICAvKiBpbnQgYSA9IDA7IG11bHRpLWxpbmVyCiAgICAgICAgICAgICBzdGF0aWMgY29uc3QgaW50
IGIgPSAwOycnJywKICAgICAgICAgICAgIFsnQ291bGQgbm90IGZpbmQgZW5kIG9mIG11bHRpLWxp
bmUgY29tbWVudCcKICAgICAgICAgICAgICAnICBbcmVhZGFiaWxpdHkvbXVsdGlsaW5lX2NvbW1l
bnRdIFs1XScsCkBAIC0xMTI1LDk3ICsxMTI2LDExMSBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3Bw
U3R5bGVUZXN0QmFzZSk6CiAgICAgZGVmIHRlc3RfZXhwbGljaXRfc2luZ2xlX2FyZ3VtZW50X2Nv
bnN0cnVjdG9ycyhzZWxmKToKICAgICAgICAgIyBtaXNzaW5nIGV4cGxpY2l0IGlzIGJhZAogICAg
ICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBG
b28gewotICAgICAgICAgICAgICAgICBGb28oaW50IGYpOwotICAgICAgICAgICAgICAgfTsnJycs
CisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAg
ICAgIEZvbyhpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdTaW5nbGUt
YXJndW1lbnQgY29uc3RydWN0b3JzIHNob3VsZCBiZSBtYXJrZWQgZXhwbGljaXQuJwogICAgICAg
ICAgICAgJyAgW3J1bnRpbWUvZXhwbGljaXRdIFs1XScpCiAgICAgICAgICMgbWlzc2luZyBleHBs
aWNpdCBpcyBiYWQsIGV2ZW4gd2l0aCB3aGl0ZXNwYWNlCiAgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgIEZvbyAoaW50IGYpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydc
CisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIEZvbyAoaW50IGYpOwor
ICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICBbJ0V4dHJhIHNwYWNlIGJlZm9yZSAoIGlu
IGZ1bmN0aW9uIGNhbGwgIFt3aGl0ZXNwYWNlL3BhcmVuc10gWzRdJywKICAgICAgICAgICAgICAn
U2luZ2xlLWFyZ3VtZW50IGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFya2VkIGV4cGxpY2l0LicK
ICAgICAgICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJ10pCiAgICAgICAgICMgbWlz
c2luZyBleHBsaWNpdCwgd2l0aCBkaXN0cmFjdGluZyBjb21tZW50LCBpcyBzdGlsbCBiYWQKICAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3Mg
Rm9vIHsKLSAgICAgICAgICAgICAgICAgRm9vKGludCBmKTsgLy8gc2ltcGxlciB0aGFuIEZvbyhi
bGFyZ2gsIGJsYXJnKQotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisg
ICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7IC8vIHNp
bXBsZXIgdGhhbiBGb28oYmxhcmdoLCBibGFyZykKKyAgICAgICAgICAgIH07JycnLAogICAgICAg
ICAgICAgJ1NpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIG1hcmtlZCBleHBs
aWNpdC4nCiAgICAgICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJykKICAgICAgICAg
IyBtaXNzaW5nIGV4cGxpY2l0LCB3aXRoIHF1YWxpZmllZCBjbGFzc25hbWUKICAgICAgICAgc2Vs
Zi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgUXVhbGlmaWVy
OjpBbm90aGVyT25lOjpGb28gewotICAgICAgICAgICAgICAgICBGb28oaW50IGYpOwotICAgICAg
ICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBjbGFzcyBRdWFs
aWZpZXI6OkFub3RoZXJPbmU6OkZvbyB7CisgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKKyAg
ICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJ1NpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3Rv
cnMgc2hvdWxkIGJlIG1hcmtlZCBleHBsaWNpdC4nCiAgICAgICAgICAgICAnICBbcnVudGltZS9l
eHBsaWNpdF0gWzVdJykKICAgICAgICAgIyBzdHJ1Y3RzIGFyZSBjYXVnaHQgYXMgd2VsbC4KICAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnc3RydWN0
IEZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7Ci0gICAgICAgICAgICAgICB9Oycn
JywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAg
ICAgICAgIEZvbyhpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdTaW5n
bGUtYXJndW1lbnQgY29uc3RydWN0b3JzIHNob3VsZCBiZSBtYXJrZWQgZXhwbGljaXQuJwogICAg
ICAgICAgICAgJyAgW3J1bnRpbWUvZXhwbGljaXRdIFs1XScpCiAgICAgICAgICMgVGVtcGxhdGl6
ZWQgY2xhc3NlcyBhcmUgY2F1Z2h0IGFzIHdlbGwuCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRp
X2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ3RlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEZv
byB7Ci0gICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7Ci0gICAgICAgICAgICAgICB9OycnJywK
KyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNz
IEZvbyB7CisgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKKyAgICAgICAgICAgIH07JycnLAog
ICAgICAgICAgICAgJ1NpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIG1hcmtl
ZCBleHBsaWNpdC4nCiAgICAgICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJykKICAg
ICAgICAgIyBwcm9wZXIgc3R5bGUgaXMgb2theQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9s
aW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAgICBl
eHBsaWNpdCBGb28oaW50IGYpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAn
JydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIGV4cGxpY2l0IEZv
byhpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogICAgICAgICAj
IHR3byBhcmd1bWVudCBjb25zdHJ1Y3RvciBpcyBva2F5CiAgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAg
ICAgIEZvbyhpbnQgZiwgaW50IGIpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAg
ICAnJydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIEZvbyhpbnQg
ZiwgaW50IGIpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKICAgICAgICAg
IyB0d28gYXJndW1lbnQgY29uc3RydWN0b3IsIGFjcm9zcyB0d28gbGluZXMsIGlzIG9rYXkKICAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3Mg
Rm9vIHsKLSAgICAgICAgICAgICAgICAgRm9vKGludCBmLAotICAgICAgICAgICAgICAgICAgICAg
aW50IGIpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAg
ICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIEZvbyhpbnQgZiwKKyAgICAgICAgICAg
ICAgICAgICAgaW50IGIpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKICAg
ICAgICAgIyBub24tY29uc3RydWN0b3IgKGJ1dCBzaW1pbGFyIG5hbWUpLCBpcyBva2F5CiAgICAg
ICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZv
byB7Ci0gICAgICAgICAgICAgICAgIGFGb28oaW50IGYpOwotICAgICAgICAgICAgICAgfTsnJycs
CisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAg
ICAgIGFGb28oaW50IGYpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKICAg
ICAgICAgIyBjb25zdHJ1Y3RvciB3aXRoIHZvaWQgYXJndW1lbnQgaXMgb2theQogICAgICAgICBz
ZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewot
ICAgICAgICAgICAgICAgICBGb28odm9pZCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAg
ICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgRm9v
KHZvaWQpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKICAgICAgICAgIyBz
aW5nbGUgYXJndW1lbnQgbWV0aG9kIGlzIG9rYXkKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlf
bGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAgICAgICAgICAgICAgICAg
QmFyKGludCBiKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAg
ICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICBCYXIoaW50IGIpOworICAgICAg
ICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKICAgICAgICAgIyBjb21tZW50cyBzaG91bGQg
YmUgaWdub3JlZAogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAg
ICAgICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAgLy8gRm9vKGludCBmKTsKLSAgICAg
ICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgY2xhc3MgRm9v
IHsKKyAgICAgICAgICAgIC8vIEZvbyhpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAg
ICAgICAgICcnKQogICAgICAgICAjIHNpbmdsZSBhcmd1bWVudCBmdW5jdGlvbiBmb2xsb3dpbmcg
Y2xhc3MgZGVmaW5pdGlvbiBpcyBva2F5CiAgICAgICAgICMgKG9rYXksIGl0J3Mgbm90IGFjdHVh
bGx5IHZhbGlkLCBidXQgd2UgZG9uJ3Qgd2FudCBhIGZhbHNlIHBvc2l0aXZlKQogICAgICAgICBz
ZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewot
ICAgICAgICAgICAgICAgICBGb28oaW50IGYsIGludCBiKTsKLSAgICAgICAgICAgICAgIH07Ci0g
ICAgICAgICAgICAgICBGb28oaW50IGYpOycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAg
ICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgRm9vKGludCBmLCBpbnQgYik7CisgICAg
ICAgICAgICB9OworICAgICAgICAgICAgRm9vKGludCBmKTsnJycsCiAgICAgICAgICAgICAnJykK
ICAgICAgICAgIyBzaW5nbGUgYXJndW1lbnQgZnVuY3Rpb24gaXMgb2theQogICAgICAgICBzZWxm
LmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCkBAIC0xMjIzLDE0ICsxMjM4LDE2IEBAIGNsYXNzIENw
cFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICcnKQogICAgICAgICAj
IHNpbmdsZSBhcmd1bWVudCBjb3B5IGNvbnN0cnVjdG9yIGlzIG9rYXkuCiAgICAgICAgIHNlbGYu
YXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgIEZvbyhjb25zdCBGb28mKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAg
ICAgICAgICAgJycnXAorICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICBG
b28oY29uc3QgRm9vJik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogICAg
ICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBG
b28gewotICAgICAgICAgICAgICAgICBGb28oRm9vJik7Ci0gICAgICAgICAgICAgICB9OycnJywK
KyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAg
ICAgRm9vKEZvbyYpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKIAogICAg
IGRlZiB0ZXN0X3NsYXNoX3N0YXJfY29tbWVudF9vbl9zaW5nbGVfbGluZShzZWxmKToKQEAgLTEy
NDgsOSArMTI2NSw2IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAg
ICAgICAgICAgICcnJyAgICAvKi8gc3RhdGljIEZvbyhpbnQgZik7JycnLAogICAgICAgICAgICAg
J0NvdWxkIG5vdCBmaW5kIGVuZCBvZiBtdWx0aS1saW5lIGNvbW1lbnQnCiAgICAgICAgICAgICAn
ICBbcmVhZGFiaWxpdHkvbXVsdGlsaW5lX2NvbW1lbnRdIFs1XScpCi0gICAgICAgIHNlbGYuYXNz
ZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJyAgICAvKiovIHN0YXRpYyBGb28o
aW50IGYpOycnJywKLSAgICAgICAgICAgICcnKQogCiAgICAgIyBUZXN0IHN1c3BpY2lvdXMgdXNh
Z2Ugb2YgImlmIiBsaWtlIHRoaXM6CiAgICAgIyBpZiAoYSA9PSBiKSB7CkBAIC0xMzgzLDIzICsx
Mzk3LDI3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAg
IyBvciBpbml0aWFsaXppbmcgYW4gYXJyYXkKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnaW50
IGFbM10gPSB7IDEsIDIsIDMgfTsnLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgKLSAg
ICAgICAgICAgICcnJ2NvbnN0IGludCBmb29bXSA9Ci0gICAgICAgICAgICAgICAgICAgezEsIDIs
IDMgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBjb25zdCBpbnQgZm9vW10g
PQorICAgICAgICAgICAgICAgIHsxLCAyLCAzIH07JycnLAogICAgICAgICAgICAgJycpCiAgICAg
ICAgICMgRm9yIHNpbmdsZSBsaW5lLCB1bm1hdGNoZWQgJ30nIHdpdGggYSAnOycgaXMgaWdub3Jl
ZCAobm90IGVub3VnaCBjb250ZXh0KQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xp
bnQoCi0gICAgICAgICAgICAnJydpbnQgYVszXSA9IHsgMSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIDMgfTsnJycsCisgICAgICAg
ICAgICAnJydcCisgICAgICAgICAgICBpbnQgYVszXSA9IHsgMSwKKyAgICAgICAgICAgICAgICAy
LAorICAgICAgICAgICAgICAgIDMgfTsnJycsCiAgICAgICAgICAgICAnJykKICAgICAgICAgc2Vs
Zi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnaW50IGFbMl1bM10gPSB7
IHsgMSwgMiB9LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IDMsIDQgfSB9OycnJywK
KyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGludCBhWzJdWzNdID0geyB7IDEsIDIgfSwK
KyAgICAgICAgICAgICAgICB7IDMsIDQgfSB9OycnJywKICAgICAgICAgICAgICcnKQogICAgICAg
ICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydpbnQgYVsyXVsz
XSA9Ci0gICAgICAgICAgICAgICAgICAgeyB7IDEsIDIgfSwKLSAgICAgICAgICAgICAgICAgICAg
IHsgMywgNCB9IH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgaW50IGFbMl1b
M10gPQorICAgICAgICAgICAgICAgIHsgeyAxLCAyIH0sCisgICAgICAgICAgICAgICAgeyAzLCA0
IH0gfTsnJycsCiAgICAgICAgICAgICAnJykKIAogICAgICMgQ0hFQ0svRVhQRUNUX1RSVUUvRVhQ
RUNUX0ZBTFNFIHJlcGxhY2VtZW50cwpAQCAtMTc1Myw3ICsxNzcxLDcgQEAgY2xhc3MgQ3BwU3R5
bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdkZWZh
dWx0OjsnLAogICAgICAgICAgICAgICAgICAgICAgICAgICdTZW1pY29sb24gZGVmaW5pbmcgZW1w
dHkgc3RhdGVtZW50LiBVc2UgeyB9IGluc3RlYWQuJwogICAgICAgICAgICAgICAgICAgICAgICAg
ICcgIFt3aGl0ZXNwYWNlL3NlbWljb2xvbl0gWzVdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGlu
dCgnICAgICAgOycsCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgICAgICAgOycsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgJ0xpbmUgY29udGFpbnMgb25seSBzZW1pY29sb24uIElmIHRo
aXMgc2hvdWxkIGJlIGFuIGVtcHR5ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGVt
ZW50LCB1c2UgeyB9IGluc3RlYWQuJwogICAgICAgICAgICAgICAgICAgICAgICAgICcgIFt3aGl0
ZXNwYWNlL3NlbWljb2xvbl0gWzVdJykKQEAgLTE3OTUsMTAgKzE4MTMsMTAgQEAgY2xhc3MgQ3Bw
U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgICAgICAgICAgICAgICcg
ICAgVmVyeUxvbmdOYW1lVHlwZSB2ZXJ5TG9uZ05hbWVWYXJpYWJsZSkgeyB9JywgJycpCiAgICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3RlbXBsYXRlPD5cbicKICAgICAgICAgICAgICAgICAgICAg
ICAgICAnc3RyaW5nIEZ1bmN0aW9uVGVtcGxhdGVTcGVjaWFsaXphdGlvbjxTb21lVHlwZT4oXG4n
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIGludCB4KSB7IHJldHVybiAiIjsgfScs
ICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaW50IHgpIHsgcmV0dXJuICIiOyB9
JywgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJ3RlbXBsYXRlPD5cbicKICAgICAgICAg
ICAgICAgICAgICAgICAgICAnc3RyaW5nIEZ1bmN0aW9uVGVtcGxhdGVTcGVjaWFsaXphdGlvbjx2
ZWN0b3I8QTo6Qj4qID4oXG4nCi0gICAgICAgICAgICAgICAgICAgICAgICAgJyAgICAgIGludCB4
KSB7IHJldHVybiAiIjsgfScsICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICcgICAgaW50
IHgpIHsgcmV0dXJuICIiOyB9JywgJycpCiAKICAgICAgICAgIyBzaG91bGQgbm90IGNhdGNoIG1l
dGhvZHMgb2YgdGVtcGxhdGUgY2xhc3Nlcy4KICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnc3Ry
aW5nIENsYXNzPFR5cGU+OjpNZXRob2QoKSBjb25zdFxuJwpAQCAtMjAyOCwyMSArMjA0NiwyNyBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJyBjaGFyKiBvbmVTcGFjZUluZGVudCA9ICJwdWJsaWM6IjsnLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICdXZWlyZCBudW1iZXIgb2Ygc3BhY2VzIGF0IGxpbmUtc3RhcnQuICAn
CiAgICAgICAgICAgICAgICAgICAgICAgICAgJ0FyZSB5b3UgdXNpbmcgYSA0LXNwYWNlIGluZGVu
dD8gIFt3aGl0ZXNwYWNlL2luZGVudF0gWzNdJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgn
IHB1YmxpYzonLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICBwdWJsaWM6JywgJycp
Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgIHB1YmxpYzonLCAnJykKLQotICAgIGRlZiB0
ZXN0X2xhYmVsKHNlbGYpOgotICAgICAgICBzZWxmLmFzc2VydF9saW50KCdwdWJsaWM6JywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAnTGFiZWxzIHNob3VsZCBhbHdheXMgYmUgaW5kZW50ZWQg
YXQgbGVhc3Qgb25lIHNwYWNlLiAgJwotICAgICAgICAgICAgICAgICAgICAgICAgICdJZiB0aGlz
IGlzIGEgbWVtYmVyLWluaXRpYWxpemVyIGxpc3QgaW4gYSBjb25zdHJ1Y3RvciwgJwotICAgICAg
ICAgICAgICAgICAgICAgICAgICd0aGUgY29sb24gc2hvdWxkIGJlIG9uIHRoZSBsaW5lIGFmdGVy
IHRoZSBkZWZpbml0aW9uICcKLSAgICAgICAgICAgICAgICAgICAgICAgICAnaGVhZGVyLiAgW3do
aXRlc3BhY2UvbGFiZWxzXSBbNF0nKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgIHB1Ymxp
YzonLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgcHVibGljOicsICcnKQotICAg
ICAgICBzZWxmLmFzc2VydF9saW50KCcgcHVibGljOicsICcnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCcgIHB1YmxpYzonLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgcHVi
bGljOicsICcnKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgcHVibGljOicsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgJ1dlaXJkIG51bWJlciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4g
ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAnQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5k
ZW50PyAgW3doaXRlc3BhY2UvaW5kZW50XSBbM10nKQorICAgICAgICBzZWxmLmFzc2VydF9saW50
KCcgIHB1YmxpYzonLAorICAgICAgICAgICAgICAgICAgICAgICAgICdXZWlyZCBudW1iZXIgb2Yg
c3BhY2VzIGF0IGxpbmUtc3RhcnQuICAnCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0FyZSB5
b3UgdXNpbmcgYSA0LXNwYWNlIGluZGVudD8gIFt3aGl0ZXNwYWNlL2luZGVudF0gWzNdJykKKyAg
ICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgcHVibGljOicsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgJ1dlaXJkIG51bWJlciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4gICcKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAnQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PyAgW3doaXRl
c3BhY2UvaW5kZW50XSBbM10nKQorICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQo
CisgICAgICAgICAgICAnY2xhc3MgRm9vIHtcbicKKyAgICAgICAgICAgICdwdWJsaWM6XG4nCisg
ICAgICAgICAgICAnICAgIGVudW0gQmFyIHtcbicKKyAgICAgICAgICAgICcgICAgICAgIEFscGhh
LFxuJworICAgICAgICAgICAgJyAgICAgICAgQmV0YSxcbicKKyAgICAgICAgICAgICcjaWYgRU5B
QkxFRF9CRVRaXG4nCisgICAgICAgICAgICAnICAgICAgICBDaGFybGllLFxuJworICAgICAgICAg
ICAgJyNlbmRpZlxuJworICAgICAgICAgICAgJyAgICB9O1xuJworICAgICAgICAgICAgJ307JywK
KyAgICAgICAgICAgICcnKQogCiAgICAgZGVmIHRlc3Rfbm90X2FsYWJlbChzZWxmKToKICAgICAg
ICAgc2VsZi5hc3NlcnRfbGludCgnTXlWZXJ5TG9uZ05hbWVzcGFjZTo6TXlWZXJ5TG9uZ0NsYXNz
TmFtZTo6JywgJycpCkBAIC0yMDgwLDggKzIxMDQsOSBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3Bw
U3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAnY2xhc3MgRm9vOycsCiAgICAgICAgICAgICAn
JykKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycn
c3RydWN0IEZvbyoKLSAgICAgICAgICAgICAgICAgZm9vID0gTmV3Rm9vKCk7JycnLAorICAgICAg
ICAgICAgJycnXAorICAgICAgICAgICAgc3RydWN0IEZvbyoKKyAgICAgICAgICAgICAgICBmb28g
PSBOZXdGb28oKTsnJycsCiAgICAgICAgICAgICAnJykKICAgICAgICAgIyBIZXJlIGlzIGFuIGV4
YW1wbGUgd2hlcmUgdGhlIGxpbnRlciBnZXRzIGNvbmZ1c2VkLCBldmVuIHRob3VnaAogICAgICAg
ICAjIHRoZSBjb2RlIGRvZXNuJ3QgdmlvbGF0ZSB0aGUgc3R5bGUgZ3VpZGUuCkBAIC0zMTcxLDMx
ICszMTk2LDM1IEBAIGNsYXNzIE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdChDcHBTdHlsZVRl
c3RCYXNlKToKIAogICAgIGRlZiB0ZXN0X25vX2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmFz
c2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewotICAgICAg
ICAgICAgICAgICAgIHZpcnR1YWwgfkZvbygpOwotICAgICAgICAgICAgICAgICAgIHZpcnR1YWwg
dm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAg
ICAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgfkZv
bygpOworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAg
ICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKIAogICAgICAgICBzZWxmLmFzc2VydF9tdWx0
aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAg
ICAgIHZpcnR1YWwgaW5saW5lIH5Gb28oKTsKLSAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAg
ICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIGlubGlu
ZSB+Rm9vKCk7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKKyAgICAg
ICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogCiAgICAgICAgIHNlbGYuYXNzZXJ0
X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAg
ICAgICAgICAgaW5saW5lIHZpcnR1YWwgfkZvbygpOwotICAgICAgICAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAor
ICAgICAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgICAgIGlubGluZSB2
aXJ0dWFsIH5Gb28oKTsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwor
ICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJycpCiAKICAgICAgICAgc2VsZi5h
c3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgRm9vOjpHb28gewot
ICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgfkdvbygpOwotICAgICAgICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBnb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycn
XAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbzo6R29vIHsKKyAgICAgICAgICAgICAgICAgICAg
dmlydHVhbCB+R29vKCk7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBnb28oKTsK
KyAgICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogICAgICAgICBzZWxmLmFz
c2VydF9tdWx0aV9saW5lX2xpbnQoCiAgICAgICAgICAgICAnY2xhc3MgRm9vIHsgdm9pZCBmb28o
KTsgfTsnLApAQCAtMzIxNSw5MiArMzI0NCw5MiBAQCBjbGFzcyBOb05vblZpcnR1YWxEZXN0cnVj
dG9yc1Rlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAnTW9yZSB0aGFuIG9uZSBj
b21tYW5kIG9uIHRoZSBzYW1lIGxpbmUgIFt3aGl0ZXNwYWNlL25ld2xpbmVdIFs0XScpCiAKICAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3Mg
UXVhbGlmaWVkOjpHb28gOiBwdWJsaWMgRm9vIHsKLSAgICAgICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgZ29vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKLSAgICAgICAgICAgICcnKQotCi0g
ICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICMgTGluZS1l
bmRpbmcgOgotICAgICAgICAgICAgJycnY2xhc3MgR29vIDoKLSAgICAgICAgICAgICAgIHB1Ymxp
YyBGb28geworICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIFF1YWxpZmll
ZDo6R29vIDogcHVibGljIEZvbyB7CiAgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBn
b28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAotICAgICAgICAgICAgJ0xhYmVscyBzaG91bGQg
YWx3YXlzIGJlIGluZGVudGVkIGF0IGxlYXN0IG9uZSBzcGFjZS4gIElmIHRoaXMgaXMgYSAnCi0g
ICAgICAgICAgICAnbWVtYmVyLWluaXRpYWxpemVyIGxpc3QgaW4gYSBjb25zdHJ1Y3RvciwgdGhl
IGNvbG9uIHNob3VsZCBiZSBvbiB0aGUgJwotICAgICAgICAgICAgJ2xpbmUgYWZ0ZXIgdGhlIGRl
ZmluaXRpb24gaGVhZGVyLiAgW3doaXRlc3BhY2UvbGFiZWxzXSBbNF0nKQorICAgICAgICAgICAg
ICAgIH07JycnLAorICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9ub19kZXN0cnVjdG9y
X3doZW5fdmlydHVhbF9uZWVkZWQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xp
bmVfbGludF9yZSgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAg
ICAgdmlydHVhbCB2b2lkIGZvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAg
ICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIGZvbygpOworICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAg
J1RoZSBjbGFzcyBGb28gcHJvYmFibHkgbmVlZHMgYSB2aXJ0dWFsIGRlc3RydWN0b3InKQogCiAg
ICAgZGVmIHRlc3RfZGVzdHJ1Y3Rvcl9ub25fdmlydHVhbF93aGVuX3ZpcnR1YWxfbmVlZGVkKHNl
bGYpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnRfcmUoCi0gICAgICAgICAg
ICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAgICAgIH5Gb28oKTsKLSAgICAgICAgICAg
ICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAg
ICAgICAgICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAg
ICAgICB+Rm9vKCk7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKKyAg
ICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdUaGUgY2xhc3MgRm9vIHByb2JhYmx5
IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yJykKIAogICAgIGRlZiB0ZXN0X25vX3dhcm5fd2hl
bl9kZXJpdmVkKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0g
ICAgICAgICAgICAnJydjbGFzcyBGb28gOiBwdWJsaWMgR29vIHsKLSAgICAgICAgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAg
ICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBGb28gOiBwdWJsaWMgR29vIHsKKyAgICAgICAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOworICAgICAgICAgICAgICAgIH07JycnLAog
ICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9pbnRlcm5hbF9icmFjZXMoc2VsZik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludF9yZSgKLSAgICAgICAgICAgICcnJ2Ns
YXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgZW51bSBHb28gewotICAgICAgICAgICAgICAg
ICAgICAgICBHT08KLSAgICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgICAgIHZp
cnR1YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycn
XAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgICAgIGVudW0g
R29vIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIEdPTworICAgICAgICAgICAgICAgICAgICB9
OworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAgICAg
ICAgfTsnJycsCiAgICAgICAgICAgICAnVGhlIGNsYXNzIEZvbyBwcm9iYWJseSBuZWVkcyBhIHZp
cnR1YWwgZGVzdHJ1Y3RvcicpCiAKICAgICBkZWYgdGVzdF9pbm5lcl9jbGFzc19uZWVkc192aXJ0
dWFsX2Rlc3RydWN0b3Ioc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGlu
dF9yZSgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgY2xh
c3MgR29vIHsKLSAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGdvbygpOwotICAg
ICAgICAgICAgICAgICAgIH07Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcn
J1wKKyAgICAgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgICAgICBjbGFz
cyBHb28geworICAgICAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGdvbygpOworICAg
ICAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAg
J1RoZSBjbGFzcyBHb28gcHJvYmFibHkgbmVlZHMgYSB2aXJ0dWFsIGRlc3RydWN0b3InKQogCiAg
ICAgZGVmIHRlc3Rfb3V0ZXJfY2xhc3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9yKHNlbGYpOgog
ICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnRfcmUoCi0gICAgICAgICAgICAnJydj
bGFzcyBGb28gewotICAgICAgICAgICAgICAgICAgIGNsYXNzIEdvbyB7Ci0gICAgICAgICAgICAg
ICAgICAgfTsKLSAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAg
ICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBG
b28geworICAgICAgICAgICAgICAgICAgICBjbGFzcyBHb28geworICAgICAgICAgICAgICAgICAg
ICB9OworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAg
ICAgICAgfTsnJycsCiAgICAgICAgICAgICAnVGhlIGNsYXNzIEZvbyBwcm9iYWJseSBuZWVkcyBh
IHZpcnR1YWwgZGVzdHJ1Y3RvcicpCiAKICAgICBkZWYgdGVzdF9xdWFsaWZpZWRfY2xhc3NfbmVl
ZHNfdmlydHVhbF9kZXN0cnVjdG9yKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9s
aW5lX2xpbnRfcmUoCi0gICAgICAgICAgICAnJydjbGFzcyBRdWFsaWZpZWQ6OkZvbyB7Ci0gICAg
ICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwotICAgICAgICAgICAgICAgfTsnJycs
CisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgUXVhbGlmaWVkOjpGb28g
eworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAgICAg
ICAgfTsnJycsCiAgICAgICAgICAgICAnVGhlIGNsYXNzIFF1YWxpZmllZDo6Rm9vIHByb2JhYmx5
IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yJykKIAogICAgIGRlZiB0ZXN0X211bHRpX2xpbmVf
ZGVjbGFyYXRpb25fbm9fZXJyb3Ioc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xp
bmVfbGludF9yZSgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbwotICAgICAgICAgICAgICAgICAg
IDogcHVibGljIEdvbyB7Ci0gICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwot
ICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAg
Y2xhc3MgRm9vCisgICAgICAgICAgICAgICAgICAgIDogcHVibGljIEdvbyB7CisgICAgICAgICAg
ICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKKyAgICAgICAgICAgICAgICB9OycnJywKICAg
ICAgICAgICAgICcnKQogCiAgICAgZGVmIHRlc3RfbXVsdGlfbGluZV9kZWNsYXJhdGlvbl93aXRo
X2Vycm9yKHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAg
ICAgICAgICAnJydjbGFzcyBGb28KLSAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAg
ICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAg
ICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBGb28KKyAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKKyAgICAgICAgICAgICAgICB9Oycn
JywKICAgICAgICAgICAgIFsnVGhpcyB7IHNob3VsZCBiZSBhdCB0aGUgZW5kIG9mIHRoZSBwcmV2
aW91cyBsaW5lICAnCiAgICAgICAgICAgICAgJ1t3aGl0ZXNwYWNlL2JyYWNlc10gWzRdJywKICAg
ICAgICAgICAgICAnVGhlIGNsYXNzIEZvbyBwcm9iYWJseSBuZWVkcyBhIHZpcnR1YWwgZGVzdHJ1
Y3RvciBkdWUgdG8gaGF2aW5nICcKQEAgLTM0OTUsNyArMzUyNCw2IEBAIGNsYXNzIFdlYktpdFN0
eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICcgICBpbnQgZ29vO1xuJwog
ICAgICAgICAgICAgJ307JywKICAgICAgICAgICAgICdXZWlyZCBudW1iZXIgb2Ygc3BhY2VzIGF0
IGxpbmUtc3RhcnQuICBBcmUgeW91IHVzaW5nIGEgNC1zcGFjZSBpbmRlbnQ/ICBbd2hpdGVzcGFj
ZS9pbmRlbnRdIFszXScpCi0gICAgICAgICMgRklYTUU6IE5vIHRlc3RzIGZvciA4LXNwYWNlcy4K
IAogICAgICAgICAjIDMuIEluIGEgaGVhZGVyLCBjb2RlIGluc2lkZSBhIG5hbWVzcGFjZSBzaG91
bGQgbm90IGJlIGluZGVudGVkLgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQo
CkBAIC00MTgwLDcgKzQyMDgsMTQgQEAgY2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVz
dEJhc2UpOgogICAgICAgICAgICAgJyAgICBteUZ1bmN0aW9uKHJlYWxseUxvbmdQYXJhbTEsIHJl
YWxseUxvbmdQYXJhbTIsXG4nCiAgICAgICAgICAgICAnICAgICAgICAgICAgICAgcmVhbGx5TG9u
Z1BhcmFtMyk7XG4nCiAgICAgICAgICAgICAnfVxuJywKLSAgICAgICAgICAgICcnKQorICAgICAg
ICAgICAgJ1dlaXJkIG51bWJlciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4gIEFyZSB5b3UgdXNp
bmcgYSA0LXNwYWNlIGluZGVudD8gIFt3aGl0ZXNwYWNlL2luZGVudF0gWzNdJykKKworICAgICAg
ICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCisgICAgICAgICAgICAnaWYgKHRydWUpIHtc
bicKKyAgICAgICAgICAgICcgICAgbXlGdW5jdGlvbihyZWFsbHlMb25nUGFyYW0xLCByZWFsbHlM
b25nUGFyYW0yLFxuJworICAgICAgICAgICAgJyAgICAgICAgICAgIHJlYWxseUxvbmdQYXJhbTMp
O1xuJworICAgICAgICAgICAgJ31cbicsCisgICAgICAgICAgICAnV2hlbiB3cmFwcGluZyBhIGxp
bmUsIG9ubHkgaW5kZW50IDQgc3BhY2VzLiAgW3doaXRlc3BhY2UvaW5kZW50XSBbM10nKQogCiAg
ICAgICAgICMgNC4gQ29udHJvbCBjbGF1c2VzIHdpdGhvdXQgYSBib2R5IHNob3VsZCB1c2UgZW1w
dHkgYnJhY2VzLgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCkBAIC00MTg5
LDcgKzQyMjQsNyBAQCBjbGFzcyBXZWJLaXRTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKICAgICAgICAgICAgICdmb3IgKCA7
IGN1cnJlbnQ7XG4nCiAgICAgICAgICAgICAnICAgICBjdXJyZW50ID0gY3VycmVudC0+bmV4dCkg
eyB9XG4nLAotICAgICAgICAgICAgJycpCisgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNw
YWNlcyBhdCBsaW5lLXN0YXJ0LiAgQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PyAgW3do
aXRlc3BhY2UvaW5kZW50XSBbM10nKQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xp
bnQoCiAgICAgICAgICAgICAnZm9yICggOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+bmV4
dCk7XG4nLAogICAgICAgICAgICAgJ1NlbWljb2xvbiBkZWZpbmluZyBlbXB0eSBzdGF0ZW1lbnQg
Zm9yIHRoaXMgbG9vcC4gVXNlIHsgfSBpbnN0ZWFkLiAgW3doaXRlc3BhY2Uvc2VtaWNvbG9uXSBb
NV0nKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165690</attachid>
            <date>2012-09-25 15:34:38 -0700</date>
            <delta_ts>2012-09-25 15:34:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-97602-20120925153358.patch</filename>
            <type>text/plain</type>
            <size>29260</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTI3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzlmNjZiYWVjYjNiZjM3Y2I0NjJkNDk0ODk2YzJhZjIw
ZTVmZGNiOS4uYmJiNzQ4ZTUxYjNiOGUzYmNjY2JiOTVlMDZmOGU3ZDdmNjAyZTI0OSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDEyLTA5LTI1ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgQysrIHN0eWxlIGNoZWNrZXIgc2hvdWxkIHdhcm4gd2hlbiB0aGUgaW5kZW50YXRpb24gaXMg
d3JvbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk3
NjAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KKworICAgICAgICBSZXdyaXRl
IHRoZSBpbmRlbnRhdGlvbiBjaGVja2VyIHRvIGVuc3VyZSB0aGF0IGluZGVudGF0aW9uIGlzIGFs
d2F5cyBhIGZhY3RvciBvZiA0CisgICAgICAgIGFuZCB0aGF0IHdlIG9ubHkgaW5kZW50IDQgc3Bh
Y2VzIGZyb20gdGhlIHByZXZpb3VzIGxpbmUuCisKKyAgICAgICAgSSBkZWxldGVkIHNvbWUgb2Yg
dGhlIG9sZCBpbmRlbnRhdGlvbiBjaGVja2luZyBjb2RlIHNpbmNlIGl0IHdhcyBmaWx0ZXJlZCBv
dXQKKyAgICAgICAgYW5kIGRpZG4ndCBtYXRjaCB0aGUgd2Via2l0IHN0eWxlLgorCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2VyLnB5OgorICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5OgorICAgICAgICAoY2hlY2tfaW5kZW50YXRp
b25fYW1vdW50KTogTmV3IGZ1bmN0aW9uIHRoYXQgY2hlY2tzIGluZGVudGF0aW9uLiBJbnRlbnRp
b25hbGx5IHJ1bnMgYWZ0ZXIKKyAgICAgICAgb3RoZXIgaW5kZW50YXRpb24gY2hlY2tzLgorICAg
ICAgICAoY2hlY2tfc3R5bGUpOiBEZWxldGUgdGhlIG9sZCBpbmRlbnRhdGlvbiBjb2RlIHNpbmNl
IHdlIHdlcmUgYWxyZWFkeSBmaWx0ZXJpbmcgb3V0IHRoZSB3aGl0ZXNwYWNlL2xhYmVscyB3YXJu
aW5ncy4KKyAgICAgICAgKENwcENoZWNrZXIpOiBSZW1vdmUgdGhlIHdoaXRlc3BhY2UvbGFiZWxz
IGZpbHRlci4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91
bml0dGVzdC5weToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X211bHRpX2xpbmVfY29tbWVu
dHMpOiBGb3JjZSA0IHNwYWNlIGluZGVudC4KKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2V4
cGxpY2l0X3NpbmdsZV9hcmd1bWVudF9jb25zdHJ1Y3RvcnMpOgorICAgICAgICAoQ3BwU3R5bGVU
ZXN0LnRlc3RfZXhwbGljaXRfc2luZ2xlX2FyZ3VtZW50X2NvbnN0cnVjdG9ycy5Gb28pOgorICAg
ICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfZXhwbGljaXRfc2luZ2xlX2FyZ3VtZW50X2NvbnN0cnVj
dG9ycy5RdWFsaWZpZXIpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3Rfc2xhc2hfc3Rhcl9j
b21tZW50X29uX3NpbmdsZV9saW5lKToKKyAgICAgICAgKENwcFN0eWxlVGVzdC50ZXN0X2JyYWNl
cyk6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9zcGFjaW5nX2JlZm9yZV9sYXN0X3NlbWlj
b2xvbik6CisgICAgICAgIChDcHBTdHlsZVRlc3QudGVzdF9zdGF0aWNfb3JfZ2xvYmFsX3N0bHN0
cmluZ3MpOgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfaW5kZW50KTogQWRkZWQgbWFjcm8g
dGVzdCBjYXNlLgorICAgICAgICAoQ3BwU3R5bGVUZXN0LnRlc3RfYnVpbGRfY2xhc3MpOgorICAg
ICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfbm9fZXJyb3IpOgorICAgICAg
ICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfbm9fZXJyb3IuRm9vKToKKyAgICAg
ICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X25vX2Vycm9yLlF1YWxpZmllZCk6
CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9ub19kZXN0cnVjdG9y
X3doZW5fdmlydHVhbF9uZWVkZWQpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNU
ZXN0LnRlc3Rfbm9fZGVzdHJ1Y3Rvcl93aGVuX3ZpcnR1YWxfbmVlZGVkLkZvbyk6CisgICAgICAg
IChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9kZXN0cnVjdG9yX25vbl92aXJ0dWFs
X3doZW5fdmlydHVhbF9uZWVkZWQpOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNU
ZXN0LnRlc3RfZGVzdHJ1Y3Rvcl9ub25fdmlydHVhbF93aGVuX3ZpcnR1YWxfbmVlZGVkLkZvbyk6
CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9ub193YXJuX3doZW5f
ZGVyaXZlZCk6CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9ub193
YXJuX3doZW5fZGVyaXZlZC5Gb28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNU
ZXN0LnRlc3RfaW50ZXJuYWxfYnJhY2VzKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0
b3JzVGVzdC50ZXN0X2ludGVybmFsX2JyYWNlcy5Gb28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFs
RGVzdHJ1Y3RvcnNUZXN0LnRlc3RfaW5uZXJfY2xhc3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9y
KToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X2lubmVyX2NsYXNz
X25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5Gb28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVz
dHJ1Y3RvcnNUZXN0LnRlc3RfaW5uZXJfY2xhc3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9yLkZv
by5Hb28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfb3V0ZXJf
Y2xhc3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9yKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERl
c3RydWN0b3JzVGVzdC50ZXN0X291dGVyX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3Rvci5G
b28pOgorICAgICAgICAoTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3Rfb3V0ZXJfY2xh
c3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9yLkZvby5Hb28pOgorICAgICAgICAoTm9Ob25WaXJ0
dWFsRGVzdHJ1Y3RvcnNUZXN0LnRlc3RfcXVhbGlmaWVkX2NsYXNzX25lZWRzX3ZpcnR1YWxfZGVz
dHJ1Y3Rvcik6CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9xdWFs
aWZpZWRfY2xhc3NfbmVlZHNfdmlydHVhbF9kZXN0cnVjdG9yLlF1YWxpZmllZCk6CisgICAgICAg
IChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9tdWx0aV9saW5lX2RlY2xhcmF0aW9u
X25vX2Vycm9yKToKKyAgICAgICAgKE5vTm9uVmlydHVhbERlc3RydWN0b3JzVGVzdC50ZXN0X211
bHRpX2xpbmVfZGVjbGFyYXRpb25fbm9fZXJyb3IuRm9vKToKKyAgICAgICAgKE5vTm9uVmlydHVh
bERlc3RydWN0b3JzVGVzdC50ZXN0X211bHRpX2xpbmVfZGVjbGFyYXRpb25fd2l0aF9lcnJvcik6
CisgICAgICAgIChOb05vblZpcnR1YWxEZXN0cnVjdG9yc1Rlc3QudGVzdF9tdWx0aV9saW5lX2Rl
Y2xhcmF0aW9uX3dpdGhfZXJyb3IuRm9vKToKKyAgICAgICAgKFdlYktpdFN0eWxlVGVzdC50ZXN0
X2luZGVudGF0aW9uKToKKyAgICAgICAgKFdlYktpdFN0eWxlVGVzdC50ZXN0X2JyYWNlcyk6IEFk
ZCB0ZXN0IGZvciBjYWxsIHBhcmFtcyBzcGFubmluZyBsaW5lcy4KKwogMjAxMi0wOS0yNSAgRG9t
aW5pYyBNYXp6b25pICA8ZG1henpvbmlAZ29vZ2xlLmNvbT4KIAogICAgICAgICBBWDogQ2hyb21p
dW0gZG9lc24ndCBwYXNzIGFjY2Vzc2liaWxpdHkgdGV4dCByYW5nZSBhbmQgbGluZSBudW1iZXIg
dGVzdHMKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlci5weQppbmRleCA1YjExYWY0
ODNmZjE1OGMxZGYwNzhjOTQ0NzEyYWYwN2M4ODM1YzkzLi45ZjI3YzM2ZGFiYTJjZjI5MjVhZDg1
Y2E1MzgxN2JiMDcyZDJlYmU0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3N0
eWxlL2NoZWNrZXIucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
LnB5CkBAIC05Niw3ICs5Niw2IEBAIF9CQVNFX0ZJTFRFUl9SVUxFUyA9IFsKICAgICAnLXJ1bnRp
bWUvcnR0aScsCiAgICAgJy13aGl0ZXNwYWNlL2JsYW5rX2xpbmUnLAogICAgICctd2hpdGVzcGFj
ZS9lbmRfb2ZfbGluZScsCi0gICAgJy13aGl0ZXNwYWNlL2xhYmVscycsCiAgICAgIyBMaXN0IFB5
dGhvbiBwZXA4IGNhdGVnb3JpZXMgbGFzdC4KICAgICAjCiAgICAgIyBCZWNhdXNlIG11Y2ggb2Yg
V2ViS2l0J3MgUHl0aG9uIGNvZGUgYmFzZSBkb2VzIG5vdCBhYmlkZSBieSB0aGUKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvc3R5bGUvY2hlY2tlcnMvY3BwLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHAucHkKaW5kZXggYTAwNTFjOTc5N2E5
ODEwOGI5NjEyYjg1NjFmZDdkMjJhMGNlMzk4My4uZWJiZDFhZDJmNjUwOGQzOWFkMTQ5MTVlY2M4
MzllYzgxNTlkOWI3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9j
aGVja2Vycy9jcHAucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vy
cy9jcHAucHkKQEAgLTIwNjAsNiArMjA2MCwzMSBAQCBkZWYgY2hlY2tfZGlyZWN0aXZlX2luZGVu
dGF0aW9uKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9zdGF0ZSwgZXJyb3IpOgogICAg
IGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9pbmRlbnQnLCA0LCAncHJlcHJvY2Vzc29y
IGRpcmVjdGl2ZXMgKGUuZy4sICNpZmRlZiwgI2RlZmluZSwgI2ltcG9ydCkgc2hvdWxkIG5ldmVy
IGJlIGluZGVudGVkLicpCiAKIAorZGVmIGdldF9pbml0aWFsX3NwYWNlc19mb3JfbGluZShjbGVh
bl9saW5lKToKKyAgICBpbml0aWFsX3NwYWNlcyA9IDAKKyAgICB3aGlsZSBpbml0aWFsX3NwYWNl
cyA8IGxlbihjbGVhbl9saW5lKSBhbmQgY2xlYW5fbGluZVtpbml0aWFsX3NwYWNlc10gPT0gJyAn
OgorICAgICAgICBpbml0aWFsX3NwYWNlcyArPSAxCisgICAgcmV0dXJuIGluaXRpYWxfc3BhY2Vz
CisKKworZGVmIGNoZWNrX2luZGVudGF0aW9uX2Ftb3VudChjbGVhbl9saW5lcywgbGluZV9udW1i
ZXIsIGVycm9yKToKKyAgICBsaW5lID0gY2xlYW5fbGluZXMuZWxpZGVkW2xpbmVfbnVtYmVyXQor
ICAgIGluaXRpYWxfc3BhY2VzID0gZ2V0X2luaXRpYWxfc3BhY2VzX2Zvcl9saW5lKGxpbmUpCisK
KyAgICBpZiBpbml0aWFsX3NwYWNlcyAlIDQ6CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAn
d2hpdGVzcGFjZS9pbmRlbnQnLCAzLAorICAgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNw
YWNlcyBhdCBsaW5lLXN0YXJ0LiAgQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PycpCisg
ICAgICAgIHJldHVybgorCisgICAgcHJldmlvdXNfbGluZSA9IGdldF9wcmV2aW91c19ub25fYmxh
bmtfbGluZShjbGVhbl9saW5lcywgbGluZV9udW1iZXIpWzBdCisgICAgaWYgbm90IHByZXZpb3Vz
X2xpbmUuc3RyaXAoKSBvciBtYXRjaChyJ1xzKlx3K1xzKjpccyokJywgcHJldmlvdXNfbGluZSkg
b3IgcHJldmlvdXNfbGluZVswXSA9PSAnIyc6CisgICAgICAgIHJldHVybgorCisgICAgcHJldmlv
dXNfbGluZV9pbml0aWFsX3NwYWNlcyA9IGdldF9pbml0aWFsX3NwYWNlc19mb3JfbGluZShwcmV2
aW91c19saW5lKQorICAgIGlmIGluaXRpYWxfc3BhY2VzID4gcHJldmlvdXNfbGluZV9pbml0aWFs
X3NwYWNlcyArIDQ6CisgICAgICAgIGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9pbmRl
bnQnLCAzLCAnV2hlbiB3cmFwcGluZyBhIGxpbmUsIG9ubHkgaW5kZW50IDQgc3BhY2VzLicpCisK
KwogZGVmIGNoZWNrX3VzaW5nX3N0ZChjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGZpbGVfc3Rh
dGUsIGVycm9yKToKICAgICAiIiJMb29rcyBmb3IgJ3VzaW5nIHN0ZDo6Zm9vOycgc3RhdGVtZW50
cyB3aGljaCBzaG91bGQgYmUgcmVwbGFjZWQgd2l0aCAndXNpbmcgbmFtZXNwYWNlIHN0ZDsnLgog
CkBAIC0yNTM1LDQ0ICsyNTYwLDEwIEBAIGRlZiBjaGVja19zdHlsZShjbGVhbl9saW5lcywgbGlu
ZV9udW1iZXIsIGZpbGVfZXh0ZW5zaW9uLCBjbGFzc19zdGF0ZSwgZmlsZV9zdGF0CiAgICAgICAg
IGVycm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS90YWInLCAxLAogICAgICAgICAgICAgICAn
VGFiIGZvdW5kOyBiZXR0ZXIgdG8gdXNlIHNwYWNlcycpCiAKLSAgICAjIE9uZSBvciB0aHJlZSBi
bGFuayBzcGFjZXMgYXQgdGhlIGJlZ2lubmluZyBvZiB0aGUgbGluZSBpcyB3ZWlyZDsgaXQncwot
ICAgICMgaGFyZCB0byByZWNvbmNpbGUgdGhhdCB3aXRoIDQtc3BhY2UgaW5kZW50cy4KLSAgICAj
IE5PVEU6IGhlcmUgYXJlIHRoZSBjb25kaXRpb25zIHJvYiBwaWtlIHVzZWQgZm9yIGhpcyB0ZXN0
cy4gIE1pbmUgYXJlbid0Ci0gICAgIyBhcyBzb3BoaXN0aWNhdGVkLCBidXQgaXQgbWF5IGJlIHdv
cnRoIGJlY29taW5nIHNvOiAgUkxFTkdUSD09aW5pdGlhbF9zcGFjZXMKLSAgICAjIGlmKFJMRU5H
VEggPiAyMCkgY29tcGxhaW4gPSAwOwotICAgICMgaWYobWF0Y2goJDAsICIgKyhlcnJvcnxwcml2
YXRlfHB1YmxpY3xwcm90ZWN0ZWQpOiIpKSBjb21wbGFpbiA9IDA7Ci0gICAgIyBpZihtYXRjaChw
cmV2LCAiJiYgKiQiKSkgY29tcGxhaW4gPSAwOwotICAgICMgaWYobWF0Y2gocHJldiwgIlxcfFxc
fCAqJCIpKSBjb21wbGFpbiA9IDA7Ci0gICAgIyBpZihtYXRjaChwcmV2LCAiW1wiLD0+PF0gKiQi
KSkgY29tcGxhaW4gPSAwOwotICAgICMgaWYobWF0Y2goJDAsICIgPDwiKSkgY29tcGxhaW4gPSAw
OwotICAgICMgaWYobWF0Y2gocHJldiwgIiArZm9yIFxcKCIpKSBjb21wbGFpbiA9IDA7Ci0gICAg
IyBpZihwcmV2b2RkICYmIG1hdGNoKHByZXZwcmV2LCAiICtmb3IgXFwoIikpIGNvbXBsYWluID0g
MDsKLSAgICBpbml0aWFsX3NwYWNlcyA9IDAKICAgICBjbGVhbnNlZF9saW5lID0gY2xlYW5fbGlu
ZXMuZWxpZGVkW2xpbmVfbnVtYmVyXQotICAgIHdoaWxlIGluaXRpYWxfc3BhY2VzIDwgbGVuKGxp
bmUpIGFuZCBsaW5lW2luaXRpYWxfc3BhY2VzXSA9PSAnICc6Ci0gICAgICAgIGluaXRpYWxfc3Bh
Y2VzICs9IDEKICAgICBpZiBsaW5lIGFuZCBsaW5lWy0xXS5pc3NwYWNlKCk6CiAgICAgICAgIGVy
cm9yKGxpbmVfbnVtYmVyLCAnd2hpdGVzcGFjZS9lbmRfb2ZfbGluZScsIDQsCiAgICAgICAgICAg
ICAgICdMaW5lIGVuZHMgaW4gd2hpdGVzcGFjZS4gIENvbnNpZGVyIGRlbGV0aW5nIHRoZXNlIGV4
dHJhIHNwYWNlcy4nKQotICAgICMgVGhlcmUgYXJlIGNlcnRhaW4gc2l0dWF0aW9ucyB3ZSBhbGxv
dyBvbmUgc3BhY2UsIG5vdGFibHkgZm9yIGxhYmVscwotICAgIGVsaWYgKChpbml0aWFsX3NwYWNl
cyA+PSAxIGFuZCBpbml0aWFsX3NwYWNlcyA8PSAzKQotICAgICAgICAgIGFuZCBub3QgbWF0Y2go
cidccypcdytccyo6XHMqJCcsIGNsZWFuc2VkX2xpbmUpKToKLSAgICAgICAgZXJyb3IobGluZV9u
dW1iZXIsICd3aGl0ZXNwYWNlL2luZGVudCcsIDMsCi0gICAgICAgICAgICAgICdXZWlyZCBudW1i
ZXIgb2Ygc3BhY2VzIGF0IGxpbmUtc3RhcnQuICAnCi0gICAgICAgICAgICAgICdBcmUgeW91IHVz
aW5nIGEgNC1zcGFjZSBpbmRlbnQ/JykKLSAgICAjIExhYmVscyBzaG91bGQgYWx3YXlzIGJlIGlu
ZGVudGVkIGF0IGxlYXN0IG9uZSBzcGFjZS4KLSAgICBlbGlmIG5vdCBpbml0aWFsX3NwYWNlcyBh
bmQgbGluZVs6Ml0gIT0gJy8vJzoKLSAgICAgICAgbGFiZWxfbWF0Y2ggPSBtYXRjaChyJyg/UDxs
YWJlbD5bXjpdKyk6XHMqJCcsIGxpbmUpCi0KLSAgICAgICAgaWYgbGFiZWxfbWF0Y2g6Ci0gICAg
ICAgICAgICBsYWJlbCA9IGxhYmVsX21hdGNoLmdyb3VwKCdsYWJlbCcpCi0gICAgICAgICAgICAj
IE9ubHkgdGhyb3cgZXJyb3JzIGZvciBzdHVmZiB0aGF0IGlzIGRlZmluaXRlbHkgbm90IGEgZ290
byBsYWJlbCwKLSAgICAgICAgICAgICMgYmVjYXVzZSBnb3RvIGxhYmVscyBjYW4gaW4gZmFjdCBv
Y2N1ciBhdCB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuCi0gICAgICAgICAgICBpZiBsYWJlbCBpbiBb
J3B1YmxpYycsICdwcml2YXRlJywgJ3Byb3RlY3RlZCddIG9yIGxhYmVsLmZpbmQoJyAnKSAhPSAt
MToKLSAgICAgICAgICAgICAgICBlcnJvcihsaW5lX251bWJlciwgJ3doaXRlc3BhY2UvbGFiZWxz
JywgNCwKLSAgICAgICAgICAgICAgICAgICAgICAnTGFiZWxzIHNob3VsZCBhbHdheXMgYmUgaW5k
ZW50ZWQgYXQgbGVhc3Qgb25lIHNwYWNlLiAgJwotICAgICAgICAgICAgICAgICAgICAgICdJZiB0
aGlzIGlzIGEgbWVtYmVyLWluaXRpYWxpemVyIGxpc3QgaW4gYSBjb25zdHJ1Y3RvciwgJwotICAg
ICAgICAgICAgICAgICAgICAgICd0aGUgY29sb24gc2hvdWxkIGJlIG9uIHRoZSBsaW5lIGFmdGVy
IHRoZSBkZWZpbml0aW9uIGhlYWRlci4nKQogCiAgICAgaWYgKGNsZWFuc2VkX2xpbmUuY291bnQo
JzsnKSA+IDEKICAgICAgICAgIyBmb3IgbG9vcHMgYXJlIGFsbG93ZWQgdHdvIDsncyAoYW5kIG1h
eSBydW4gb3ZlciB0d28gbGluZXMpLgpAQCAtMjYxMiw2ICsyNjAzLDcgQEAgZGVmIGNoZWNrX3N0
eWxlKGNsZWFuX2xpbmVzLCBsaW5lX251bWJlciwgZmlsZV9leHRlbnNpb24sIGNsYXNzX3N0YXRl
LCBmaWxlX3N0YXQKICAgICBjaGVja19jaGVjayhjbGVhbl9saW5lcywgbGluZV9udW1iZXIsIGVy
cm9yKQogICAgIGNoZWNrX2Zvcl9jb21wYXJpc29uc190b196ZXJvKGNsZWFuX2xpbmVzLCBsaW5l
X251bWJlciwgZXJyb3IpCiAgICAgY2hlY2tfZm9yX251bGwoY2xlYW5fbGluZXMsIGxpbmVfbnVt
YmVyLCBmaWxlX3N0YXRlLCBlcnJvcikKKyAgICBjaGVja19pbmRlbnRhdGlvbl9hbW91bnQoY2xl
YW5fbGluZXMsIGxpbmVfbnVtYmVyLCBlcnJvcikKIAogCiBfUkVfUEFUVEVSTl9JTkNMVURFX05F
V19TVFlMRSA9IHJlLmNvbXBpbGUocicjaW5jbHVkZSArIlteL10rXC5oIicpCkBAIC0zNjM0LDcg
KzM2MjYsNiBAQCBjbGFzcyBDcHBDaGVja2VyKG9iamVjdCk6CiAgICAgICAgICd3aGl0ZXNwYWNl
L2VuZF9vZl9saW5lJywKICAgICAgICAgJ3doaXRlc3BhY2UvZW5kaW5nX25ld2xpbmUnLAogICAg
ICAgICAnd2hpdGVzcGFjZS9pbmRlbnQnLAotICAgICAgICAnd2hpdGVzcGFjZS9sYWJlbHMnLAog
ICAgICAgICAnd2hpdGVzcGFjZS9saW5lX2xlbmd0aCcsCiAgICAgICAgICd3aGl0ZXNwYWNlL25l
d2xpbmUnLAogICAgICAgICAnd2hpdGVzcGFjZS9vcGVyYXRvcnMnLApkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9zdHlsZS9jaGVja2Vycy9jcHBfdW5pdHRlc3QucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQppbmRleCBh
MWI5MWYyOTJhZmExNDliOGMxYjFhMTVmM2MyZjE5ZjVmODJiZWNlLi42ZjAwMWUwY2I3NjI4ZjY3
ODkwNzJmN2ZhNTE3MTJjZDQ0ZDMwZjFmIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3N0eWxlL2NoZWNrZXJzL2NwcF91bml0dGVzdC5weQpAQCAtMTA4Niw3ICsxMDg2LDgg
QEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgKi8g
JycnLAogICAgICAgICAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAot
ICAgICAgICAgICAgcicnJy8qIGludCBhID0gMDsgbXVsdGktbGluZXIKKyAgICAgICAgICAgICcn
J1wKKyAgICAgICAgICAgIC8qIGludCBhID0gMDsgbXVsdGktbGluZXIKICAgICAgICAgICAgIHN0
YXRpYyBjb25zdCBpbnQgYiA9IDA7JycnLAogICAgICAgICAgICAgWydDb3VsZCBub3QgZmluZCBl
bmQgb2YgbXVsdGktbGluZSBjb21tZW50JwogICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9t
dWx0aWxpbmVfY29tbWVudF0gWzVdJywKQEAgLTExMjUsOTcgKzExMjYsMTExIEBAIGNsYXNzIENw
cFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICBkZWYgdGVzdF9leHBsaWNpdF9zaW5n
bGVfYXJndW1lbnRfY29uc3RydWN0b3JzKHNlbGYpOgogICAgICAgICAjIG1pc3NpbmcgZXhwbGlj
aXQgaXMgYmFkCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAg
ICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyhpbnQgZik7Ci0gICAgICAg
ICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7
CisgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKKyAgICAgICAgICAgIH07JycnLAogICAgICAg
ICAgICAgJ1NpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIG1hcmtlZCBleHBs
aWNpdC4nCiAgICAgICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJykKICAgICAgICAg
IyBtaXNzaW5nIGV4cGxpY2l0IGlzIGJhZCwgZXZlbiB3aXRoIHdoaXRlc3BhY2UKICAgICAgICAg
c2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsK
LSAgICAgICAgICAgICAgICAgRm9vIChpbnQgZik7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAg
ICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAg
Rm9vIChpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgIFsnRXh0cmEgc3Bh
Y2UgYmVmb3JlICggaW4gZnVuY3Rpb24gY2FsbCAgW3doaXRlc3BhY2UvcGFyZW5zXSBbNF0nLAog
ICAgICAgICAgICAgICdTaW5nbGUtYXJndW1lbnQgY29uc3RydWN0b3JzIHNob3VsZCBiZSBtYXJr
ZWQgZXhwbGljaXQuJwogICAgICAgICAgICAgICcgIFtydW50aW1lL2V4cGxpY2l0XSBbNV0nXSkK
ICAgICAgICAgIyBtaXNzaW5nIGV4cGxpY2l0LCB3aXRoIGRpc3RyYWN0aW5nIGNvbW1lbnQsIGlz
IHN0aWxsIGJhZAogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAg
ICAgICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAgICBGb28oaW50IGYpOyAvLyBzaW1w
bGVyIHRoYW4gRm9vKGJsYXJnaCwgYmxhcmcpCi0gICAgICAgICAgICAgICB9OycnJywKKyAgICAg
ICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgRm9v
KGludCBmKTsgLy8gc2ltcGxlciB0aGFuIEZvbyhibGFyZ2gsIGJsYXJnKQorICAgICAgICAgICAg
fTsnJycsCiAgICAgICAgICAgICAnU2luZ2xlLWFyZ3VtZW50IGNvbnN0cnVjdG9ycyBzaG91bGQg
YmUgbWFya2VkIGV4cGxpY2l0LicKICAgICAgICAgICAgICcgIFtydW50aW1lL2V4cGxpY2l0XSBb
NV0nKQogICAgICAgICAjIG1pc3NpbmcgZXhwbGljaXQsIHdpdGggcXVhbGlmaWVkIGNsYXNzbmFt
ZQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydj
bGFzcyBRdWFsaWZpZXI6OkFub3RoZXJPbmU6OkZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyhp
bnQgZik7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAg
ICAgIGNsYXNzIFF1YWxpZmllcjo6QW5vdGhlck9uZTo6Rm9vIHsKKyAgICAgICAgICAgICAgICBG
b28oaW50IGYpOworICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnU2luZ2xlLWFyZ3Vt
ZW50IGNvbnN0cnVjdG9ycyBzaG91bGQgYmUgbWFya2VkIGV4cGxpY2l0LicKICAgICAgICAgICAg
ICcgIFtydW50aW1lL2V4cGxpY2l0XSBbNV0nKQogICAgICAgICAjIHN0cnVjdHMgYXJlIGNhdWdo
dCBhcyB3ZWxsLgogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAg
ICAgICAnJydzdHJ1Y3QgRm9vIHsKLSAgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKLSAgICAg
ICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgc3RydWN0IEZv
byB7CisgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKKyAgICAgICAgICAgIH07JycnLAogICAg
ICAgICAgICAgJ1NpbmdsZS1hcmd1bWVudCBjb25zdHJ1Y3RvcnMgc2hvdWxkIGJlIG1hcmtlZCBl
eHBsaWNpdC4nCiAgICAgICAgICAgICAnICBbcnVudGltZS9leHBsaWNpdF0gWzVdJykKICAgICAg
ICAgIyBUZW1wbGF0aXplZCBjbGFzc2VzIGFyZSBjYXVnaHQgYXMgd2VsbC4KICAgICAgICAgc2Vs
Zi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycndGVtcGxhdGU8dHlwZW5h
bWUgVD4gY2xhc3MgRm9vIHsKLSAgICAgICAgICAgICAgICAgRm9vKGludCBmKTsKLSAgICAgICAg
ICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4gY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICBGb28oaW50IGYpOworICAgICAg
ICAgICAgfTsnJycsCiAgICAgICAgICAgICAnU2luZ2xlLWFyZ3VtZW50IGNvbnN0cnVjdG9ycyBz
aG91bGQgYmUgbWFya2VkIGV4cGxpY2l0LicKICAgICAgICAgICAgICcgIFtydW50aW1lL2V4cGxp
Y2l0XSBbNV0nKQogICAgICAgICAjIHByb3BlciBzdHlsZSBpcyBva2F5CiAgICAgICAgIHNlbGYu
YXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAg
ICAgICAgICAgICAgIGV4cGxpY2l0IEZvbyhpbnQgZik7Ci0gICAgICAgICAgICAgICB9OycnJywK
KyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAg
ICAgZXhwbGljaXQgRm9vKGludCBmKTsKKyAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAg
JycpCiAgICAgICAgICMgdHdvIGFyZ3VtZW50IGNvbnN0cnVjdG9yIGlzIG9rYXkKICAgICAgICAg
c2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsK
LSAgICAgICAgICAgICAgICAgRm9vKGludCBmLCBpbnQgYik7Ci0gICAgICAgICAgICAgICB9Oycn
JywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAg
ICAgICAgRm9vKGludCBmLCBpbnQgYik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAg
ICcnKQogICAgICAgICAjIHR3byBhcmd1bWVudCBjb25zdHJ1Y3RvciwgYWNyb3NzIHR3byBsaW5l
cywgaXMgb2theQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAg
ICAgICAnJydjbGFzcyBGb28gewotICAgICAgICAgICAgICAgICBGb28oaW50IGYsCi0gICAgICAg
ICAgICAgICAgICAgICBpbnQgYik7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAg
ICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgRm9vKGludCBm
LAorICAgICAgICAgICAgICAgICAgICBpbnQgYik7CisgICAgICAgICAgICB9OycnJywKICAgICAg
ICAgICAgICcnKQogICAgICAgICAjIG5vbi1jb25zdHJ1Y3RvciAoYnV0IHNpbWlsYXIgbmFtZSks
IGlzIG9rYXkKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAg
ICAgJycnY2xhc3MgRm9vIHsKLSAgICAgICAgICAgICAgICAgYUZvbyhpbnQgZik7Ci0gICAgICAg
ICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNsYXNzIEZvbyB7
CisgICAgICAgICAgICAgICAgYUZvbyhpbnQgZik7CisgICAgICAgICAgICB9OycnJywKICAgICAg
ICAgICAgICcnKQogICAgICAgICAjIGNvbnN0cnVjdG9yIHdpdGggdm9pZCBhcmd1bWVudCBpcyBv
a2F5CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcn
J2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyh2b2lkKTsKLSAgICAgICAgICAgICAg
IH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAg
ICAgICAgICAgICBGb28odm9pZCk7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcn
KQogICAgICAgICAjIHNpbmdsZSBhcmd1bWVudCBtZXRob2QgaXMgb2theQogICAgICAgICBzZWxm
LmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFzcyBGb28gewotICAg
ICAgICAgICAgICAgICBCYXIoaW50IGIpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAg
ICAgICAnJydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgICAgIEJhcihp
bnQgYik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogICAgICAgICAjIGNv
bW1lbnRzIHNob3VsZCBiZSBpZ25vcmVkCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVf
bGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAvLyBGb28o
aW50IGYpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAg
ICAgICBjbGFzcyBGb28geworICAgICAgICAgICAgLy8gRm9vKGludCBmKTsKKyAgICAgICAgICAg
IH07JycnLAogICAgICAgICAgICAgJycpCiAgICAgICAgICMgc2luZ2xlIGFyZ3VtZW50IGZ1bmN0
aW9uIGZvbGxvd2luZyBjbGFzcyBkZWZpbml0aW9uIGlzIG9rYXkKICAgICAgICAgIyAob2theSwg
aXQncyBub3QgYWN0dWFsbHkgdmFsaWQsIGJ1dCB3ZSBkb24ndCB3YW50IGEgZmFsc2UgcG9zaXRp
dmUpCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcn
J2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyhpbnQgZiwgaW50IGIpOwotICAgICAg
ICAgICAgICAgfTsKLSAgICAgICAgICAgICAgIEZvbyhpbnQgZik7JycnLAorICAgICAgICAgICAg
JycnXAorICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICBGb28oaW50IGYs
IGludCBiKTsKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICBGb28oaW50IGYpOycnJywKICAg
ICAgICAgICAgICcnKQogICAgICAgICAjIHNpbmdsZSBhcmd1bWVudCBmdW5jdGlvbiBpcyBva2F5
CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKQEAgLTEyMjMsMTQgKzEyMzgs
MTYgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAg
JycpCiAgICAgICAgICMgc2luZ2xlIGFyZ3VtZW50IGNvcHkgY29uc3RydWN0b3IgaXMgb2theS4K
ICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xh
c3MgRm9vIHsKLSAgICAgICAgICAgICAgICAgRm9vKGNvbnN0IEZvbyYpOwotICAgICAgICAgICAg
ICAgfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBjbGFzcyBGb28geworICAg
ICAgICAgICAgICAgIEZvbyhjb25zdCBGb28mKTsKKyAgICAgICAgICAgIH07JycnLAogICAgICAg
ICAgICAgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAg
ICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgIEZvbyhGb28mKTsKLSAgICAgICAg
ICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgY2xhc3MgRm9vIHsK
KyAgICAgICAgICAgICAgICBGb28oRm9vJik7CisgICAgICAgICAgICB9OycnJywKICAgICAgICAg
ICAgICcnKQogCiAgICAgZGVmIHRlc3Rfc2xhc2hfc3Rhcl9jb21tZW50X29uX3NpbmdsZV9saW5l
KHNlbGYpOgpAQCAtMTI0OCw5ICsxMjY1LDYgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxl
VGVzdEJhc2UpOgogICAgICAgICAgICAgJycnICAgIC8qLyBzdGF0aWMgRm9vKGludCBmKTsnJycs
CiAgICAgICAgICAgICAnQ291bGQgbm90IGZpbmQgZW5kIG9mIG11bHRpLWxpbmUgY29tbWVudCcK
ICAgICAgICAgICAgICcgIFtyZWFkYWJpbGl0eS9tdWx0aWxpbmVfY29tbWVudF0gWzVdJykKLSAg
ICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnICAgIC8q
Ki8gc3RhdGljIEZvbyhpbnQgZik7JycnLAotICAgICAgICAgICAgJycpCiAKICAgICAjIFRlc3Qg
c3VzcGljaW91cyB1c2FnZSBvZiAiaWYiIGxpa2UgdGhpczoKICAgICAjIGlmIChhID09IGIpIHsK
QEAgLTEzODMsMjMgKzEzOTcsMjcgQEAgY2xhc3MgQ3BwU3R5bGVUZXN0KENwcFN0eWxlVGVzdEJh
c2UpOgogICAgICAgICAjIG9yIGluaXRpYWxpemluZyBhbiBhcnJheQogICAgICAgICBzZWxmLmFz
c2VydF9saW50KCdpbnQgYVszXSA9IHsgMSwgMiwgMyB9OycsICcnKQogICAgICAgICBzZWxmLmFz
c2VydF9saW50KAotICAgICAgICAgICAgJycnY29uc3QgaW50IGZvb1tdID0KLSAgICAgICAgICAg
ICAgICAgICB7MSwgMiwgMyB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGNv
bnN0IGludCBmb29bXSA9CisgICAgICAgICAgICAgICAgezEsIDIsIDMgfTsnJycsCiAgICAgICAg
ICAgICAnJykKICAgICAgICAgIyBGb3Igc2luZ2xlIGxpbmUsIHVubWF0Y2hlZCAnfScgd2l0aCBh
ICc7JyBpcyBpZ25vcmVkIChub3QgZW5vdWdoIGNvbnRleHQpCiAgICAgICAgIHNlbGYuYXNzZXJ0
X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2ludCBhWzNdID0geyAxLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIDIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgMyB9
OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgIGludCBhWzNdID0geyAxLAorICAg
ICAgICAgICAgICAgIDIsCisgICAgICAgICAgICAgICAgMyB9OycnJywKICAgICAgICAgICAgICcn
KQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydp
bnQgYVsyXVszXSA9IHsgeyAxLCAyIH0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsg
MywgNCB9IH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgaW50IGFbMl1bM10g
PSB7IHsgMSwgMiB9LAorICAgICAgICAgICAgICAgIHsgMywgNCB9IH07JycnLAogICAgICAgICAg
ICAgJycpCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAg
ICcnJ2ludCBhWzJdWzNdID0KLSAgICAgICAgICAgICAgICAgICB7IHsgMSwgMiB9LAotICAgICAg
ICAgICAgICAgICAgICAgeyAzLCA0IH0gfTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAg
ICAgICBpbnQgYVsyXVszXSA9CisgICAgICAgICAgICAgICAgeyB7IDEsIDIgfSwKKyAgICAgICAg
ICAgICAgICB7IDMsIDQgfSB9OycnJywKICAgICAgICAgICAgICcnKQogCiAgICAgIyBDSEVDSy9F
WFBFQ1RfVFJVRS9FWFBFQ1RfRkFMU0UgcmVwbGFjZW1lbnRzCkBAIC0xNzUzLDcgKzE3NzEsNyBA
QCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgIHNlbGYuYXNz
ZXJ0X2xpbnQoJ2RlZmF1bHQ6OycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1NlbWljb2xv
biBkZWZpbmluZyBlbXB0eSBzdGF0ZW1lbnQuIFVzZSB7IH0gaW5zdGVhZC4nCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgJyAgW3doaXRlc3BhY2Uvc2VtaWNvbG9uXSBbNV0nKQotICAgICAgICBz
ZWxmLmFzc2VydF9saW50KCcgICAgICA7JywKKyAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAg
ICAgICA7JywKICAgICAgICAgICAgICAgICAgICAgICAgICAnTGluZSBjb250YWlucyBvbmx5IHNl
bWljb2xvbi4gSWYgdGhpcyBzaG91bGQgYmUgYW4gZW1wdHkgJwogICAgICAgICAgICAgICAgICAg
ICAgICAgICdzdGF0ZW1lbnQsIHVzZSB7IH0gaW5zdGVhZC4nCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgJyAgW3doaXRlc3BhY2Uvc2VtaWNvbG9uXSBbNV0nKQpAQCAtMTc5NSwxMCArMTgxMywx
MCBAQCBjbGFzcyBDcHBTdHlsZVRlc3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgJyAgICBWZXJ5TG9uZ05hbWVUeXBlIHZlcnlMb25nTmFtZVZhcmlhYmxlKSB7
IH0nLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgndGVtcGxhdGU8PlxuJwogICAgICAg
ICAgICAgICAgICAgICAgICAgICdzdHJpbmcgRnVuY3Rpb25UZW1wbGF0ZVNwZWNpYWxpemF0aW9u
PFNvbWVUeXBlPihcbicKLSAgICAgICAgICAgICAgICAgICAgICAgICAnICAgICAgaW50IHgpIHsg
cmV0dXJuICIiOyB9JywgJycpCisgICAgICAgICAgICAgICAgICAgICAgICAgJyAgICBpbnQgeCkg
eyByZXR1cm4gIiI7IH0nLCAnJykKICAgICAgICAgc2VsZi5hc3NlcnRfbGludCgndGVtcGxhdGU8
PlxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdzdHJpbmcgRnVuY3Rpb25UZW1wbGF0ZVNw
ZWNpYWxpemF0aW9uPHZlY3RvcjxBOjpCPiogPihcbicKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAnICAgICAgaW50IHgpIHsgcmV0dXJuICIiOyB9JywgJycpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgJyAgICBpbnQgeCkgeyByZXR1cm4gIiI7IH0nLCAnJykKIAogICAgICAgICAjIHNob3Vs
ZCBub3QgY2F0Y2ggbWV0aG9kcyBvZiB0ZW1wbGF0ZSBjbGFzc2VzLgogICAgICAgICBzZWxmLmFz
c2VydF9saW50KCdzdHJpbmcgQ2xhc3M8VHlwZT46Ok1ldGhvZCgpIGNvbnN0XG4nCkBAIC0yMDI4
LDIxICsyMDQ2LDI3IEBAIGNsYXNzIENwcFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAg
ICAgICAgc2VsZi5hc3NlcnRfbGludCgnIGNoYXIqIG9uZVNwYWNlSW5kZW50ID0gInB1YmxpYzoi
OycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dlaXJkIG51bWJlciBvZiBzcGFjZXMgYXQg
bGluZS1zdGFydC4gICcKICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJlIHlvdSB1c2luZyBh
IDQtc3BhY2UgaW5kZW50PyAgW3doaXRlc3BhY2UvaW5kZW50XSBbM10nKQotICAgICAgICBzZWxm
LmFzc2VydF9saW50KCcgcHVibGljOicsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCcg
IHB1YmxpYzonLCAnJykKLSAgICAgICAgc2VsZi5hc3NlcnRfbGludCgnICAgcHVibGljOicsICcn
KQotCi0gICAgZGVmIHRlc3RfbGFiZWwoc2VsZik6Ci0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQo
J3B1YmxpYzonLAotICAgICAgICAgICAgICAgICAgICAgICAgICdMYWJlbHMgc2hvdWxkIGFsd2F5
cyBiZSBpbmRlbnRlZCBhdCBsZWFzdCBvbmUgc3BhY2UuICAnCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgJ0lmIHRoaXMgaXMgYSBtZW1iZXItaW5pdGlhbGl6ZXIgbGlzdCBpbiBhIGNvbnN0cnVj
dG9yLCAnCi0gICAgICAgICAgICAgICAgICAgICAgICAgJ3RoZSBjb2xvbiBzaG91bGQgYmUgb24g
dGhlIGxpbmUgYWZ0ZXIgdGhlIGRlZmluaXRpb24gJwotICAgICAgICAgICAgICAgICAgICAgICAg
ICdoZWFkZXIuICBbd2hpdGVzcGFjZS9sYWJlbHNdIFs0XScpCi0gICAgICAgIHNlbGYuYXNzZXJ0
X2xpbnQoJyAgcHVibGljOicsICcnKQotICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgICBwdWJs
aWM6JywgJycpCi0gICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyBwdWJsaWM6JywgJycpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyAgcHVibGljOicsICcnKQotICAgICAgICBzZWxmLmFzc2Vy
dF9saW50KCcgICBwdWJsaWM6JywgJycpCisgICAgICAgIHNlbGYuYXNzZXJ0X2xpbnQoJyBwdWJs
aWM6JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNwYWNlcyBh
dCBsaW5lLXN0YXJ0LiAgJworICAgICAgICAgICAgICAgICAgICAgICAgICdBcmUgeW91IHVzaW5n
IGEgNC1zcGFjZSBpbmRlbnQ/ICBbd2hpdGVzcGFjZS9pbmRlbnRdIFszXScpCisgICAgICAgIHNl
bGYuYXNzZXJ0X2xpbnQoJyAgcHVibGljOicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1dl
aXJkIG51bWJlciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4gICcKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAnQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PyAgW3doaXRlc3BhY2UvaW5k
ZW50XSBbM10nKQorICAgICAgICBzZWxmLmFzc2VydF9saW50KCcgICBwdWJsaWM6JywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNwYWNlcyBhdCBsaW5lLXN0YXJ0
LiAgJworICAgICAgICAgICAgICAgICAgICAgICAgICdBcmUgeW91IHVzaW5nIGEgNC1zcGFjZSBp
bmRlbnQ/ICBbd2hpdGVzcGFjZS9pbmRlbnRdIFszXScpCisgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpX2xpbmVfbGludCgKKyAgICAgICAgICAgICdjbGFzcyBGb28ge1xuJworICAgICAgICAgICAg
J3B1YmxpYzpcbicKKyAgICAgICAgICAgICcgICAgZW51bSBCYXIge1xuJworICAgICAgICAgICAg
JyAgICAgICAgQWxwaGEsXG4nCisgICAgICAgICAgICAnICAgICAgICBCZXRhLFxuJworICAgICAg
ICAgICAgJyNpZiBFTkFCTEVEX0JFVFpcbicKKyAgICAgICAgICAgICcgICAgICAgIENoYXJsaWUs
XG4nCisgICAgICAgICAgICAnI2VuZGlmXG4nCisgICAgICAgICAgICAnICAgIH07XG4nCisgICAg
ICAgICAgICAnfTsnLAorICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9ub3RfYWxhYmVs
KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF9saW50KCdNeVZlcnlMb25nTmFtZXNwYWNlOjpN
eVZlcnlMb25nQ2xhc3NOYW1lOjonLCAnJykKQEAgLTIwODAsOCArMjEwNCw5IEBAIGNsYXNzIENw
cFN0eWxlVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICdjbGFzcyBGb287JywK
ICAgICAgICAgICAgICcnKQogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0g
ICAgICAgICAgICAnJydzdHJ1Y3QgRm9vKgotICAgICAgICAgICAgICAgICBmb28gPSBOZXdGb28o
KTsnJycsCisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICBzdHJ1Y3QgRm9vKgorICAgICAg
ICAgICAgICAgIGZvbyA9IE5ld0ZvbygpOycnJywKICAgICAgICAgICAgICcnKQogICAgICAgICAj
IEhlcmUgaXMgYW4gZXhhbXBsZSB3aGVyZSB0aGUgbGludGVyIGdldHMgY29uZnVzZWQsIGV2ZW4g
dGhvdWdoCiAgICAgICAgICMgdGhlIGNvZGUgZG9lc24ndCB2aW9sYXRlIHRoZSBzdHlsZSBndWlk
ZS4KQEAgLTMxNzEsMzEgKzMxOTYsMzUgQEAgY2xhc3MgTm9Ob25WaXJ0dWFsRGVzdHJ1Y3RvcnNU
ZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogCiAgICAgZGVmIHRlc3Rfbm9fZXJyb3Ioc2VsZik6CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNz
IEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgdmlydHVhbCB+Rm9vKCk7Ci0gICAgICAgICAgICAg
ICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAg
ICAgICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAgICAg
ICAgdmlydHVhbCB+Rm9vKCk7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28o
KTsKKyAgICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICcnKQogCiAgICAgICAgIHNl
bGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0g
ICAgICAgICAgICAgICAgICAgdmlydHVhbCBpbmxpbmUgfkZvbygpOwotICAgICAgICAgICAgICAg
ICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAg
ICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgICAg
IHZpcnR1YWwgaW5saW5lIH5Gb28oKTsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lk
IGZvbygpOworICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJycpCiAKICAgICAg
ICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAgICAgICAgJycnY2xhc3MgRm9v
IHsKLSAgICAgICAgICAgICAgICAgICBpbmxpbmUgdmlydHVhbCB+Rm9vKCk7Ci0gICAgICAgICAg
ICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCisgICAg
ICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAgICAg
ICAgICAgaW5saW5lIHZpcnR1YWwgfkZvbygpOworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9vKCk7CisgICAgICAgICAgICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKIAog
ICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAgICAgICAnJydjbGFz
cyBGb286OkdvbyB7Ci0gICAgICAgICAgICAgICAgICAgdmlydHVhbCB+R29vKCk7Ci0gICAgICAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIGdvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCisg
ICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgRm9vOjpHb28geworICAgICAg
ICAgICAgICAgICAgICB2aXJ0dWFsIH5Hb28oKTsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVh
bCB2b2lkIGdvbygpOworICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJycpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKICAgICAgICAgICAgICdjbGFzcyBG
b28geyB2b2lkIGZvbygpOyB9OycsCkBAIC0zMjE1LDkyICszMjQ0LDkyIEBAIGNsYXNzIE5vTm9u
VmlydHVhbERlc3RydWN0b3JzVGVzdChDcHBTdHlsZVRlc3RCYXNlKToKICAgICAgICAgICAgICdN
b3JlIHRoYW4gb25lIGNvbW1hbmQgb24gdGhlIHNhbWUgbGluZSAgW3doaXRlc3BhY2UvbmV3bGlu
ZV0gWzRdJykKIAogICAgICAgICBzZWxmLmFzc2VydF9tdWx0aV9saW5lX2xpbnQoCi0gICAgICAg
ICAgICAnJydjbGFzcyBRdWFsaWZpZWQ6OkdvbyA6IHB1YmxpYyBGb28gewotICAgICAgICAgICAg
ICAgICAgIHZpcnR1YWwgdm9pZCBnb28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAotICAgICAg
ICAgICAgJycpCi0KLSAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAotICAgICAg
ICAgICAgIyBMaW5lLWVuZGluZyA6Ci0gICAgICAgICAgICAnJydjbGFzcyBHb28gOgotICAgICAg
ICAgICAgICAgcHVibGljIEZvbyB7CisgICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAg
Y2xhc3MgUXVhbGlmaWVkOjpHb28gOiBwdWJsaWMgRm9vIHsKICAgICAgICAgICAgICAgICAgICAg
dmlydHVhbCB2b2lkIGdvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCi0gICAgICAgICAgICAn
TGFiZWxzIHNob3VsZCBhbHdheXMgYmUgaW5kZW50ZWQgYXQgbGVhc3Qgb25lIHNwYWNlLiAgSWYg
dGhpcyBpcyBhICcKLSAgICAgICAgICAgICdtZW1iZXItaW5pdGlhbGl6ZXIgbGlzdCBpbiBhIGNv
bnN0cnVjdG9yLCB0aGUgY29sb24gc2hvdWxkIGJlIG9uIHRoZSAnCi0gICAgICAgICAgICAnbGlu
ZSBhZnRlciB0aGUgZGVmaW5pdGlvbiBoZWFkZXIuICBbd2hpdGVzcGFjZS9sYWJlbHNdIFs0XScp
CisgICAgICAgICAgICAgICAgfTsnJycsCisgICAgICAgICAgICAnJykKIAogICAgIGRlZiB0ZXN0
X25vX2Rlc3RydWN0b3Jfd2hlbl92aXJ0dWFsX25lZWRlZChzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRfbXVsdGlfbGluZV9saW50X3JlKAotICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAg
ICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9Oycn
JywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBGb28geworICAgICAg
ICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAgICAgICAgfTsnJycs
CiAgICAgICAgICAgICAnVGhlIGNsYXNzIEZvbyBwcm9iYWJseSBuZWVkcyBhIHZpcnR1YWwgZGVz
dHJ1Y3RvcicpCiAKICAgICBkZWYgdGVzdF9kZXN0cnVjdG9yX25vbl92aXJ0dWFsX3doZW5fdmly
dHVhbF9uZWVkZWQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludF9y
ZSgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgfkZvbygp
OwotICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAg
IH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbyB7Cisg
ICAgICAgICAgICAgICAgICAgIH5Gb28oKTsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2
b2lkIGZvbygpOworICAgICAgICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgJ1RoZSBjbGFz
cyBGb28gcHJvYmFibHkgbmVlZHMgYSB2aXJ0dWFsIGRlc3RydWN0b3InKQogCiAgICAgZGVmIHRl
c3Rfbm9fd2Fybl93aGVuX2Rlcml2ZWQoc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRp
X2xpbmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbyA6IHB1YmxpYyBHb28gewotICAg
ICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07Jycn
LAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbyA6IHB1YmxpYyBH
b28geworICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7CisgICAgICAgICAg
ICAgICAgfTsnJycsCiAgICAgICAgICAgICAnJykKIAogICAgIGRlZiB0ZXN0X2ludGVybmFsX2Jy
YWNlcyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50X3JlKAotICAg
ICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAgICAgICAgICAgICAgICAgICBlbnVtIEdvbyB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgIEdPTwotICAgICAgICAgICAgICAgICAgIH07Ci0gICAgICAg
ICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOwotICAgICAgICAgICAgICAgfTsnJycsCisg
ICAgICAgICAgICAnJydcCisgICAgICAgICAgICAgICAgY2xhc3MgRm9vIHsKKyAgICAgICAgICAg
ICAgICAgICAgZW51bSBHb28geworICAgICAgICAgICAgICAgICAgICAgICAgR09PCisgICAgICAg
ICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsK
KyAgICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdUaGUgY2xhc3MgRm9vIHByb2Jh
Ymx5IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yJykKIAogICAgIGRlZiB0ZXN0X2lubmVyX2Ns
YXNzX25lZWRzX3ZpcnR1YWxfZGVzdHJ1Y3RvcihzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRf
bXVsdGlfbGluZV9saW50X3JlKAotICAgICAgICAgICAgJycnY2xhc3MgRm9vIHsKLSAgICAgICAg
ICAgICAgICAgICBjbGFzcyBHb28gewotICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgZ29vKCk7Ci0gICAgICAgICAgICAgICAgICAgfTsKLSAgICAgICAgICAgICAgIH07JycnLAor
ICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAg
ICAgICAgICAgIGNsYXNzIEdvbyB7CisgICAgICAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgZ29vKCk7CisgICAgICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgfTsnJycs
CiAgICAgICAgICAgICAnVGhlIGNsYXNzIEdvbyBwcm9iYWJseSBuZWVkcyBhIHZpcnR1YWwgZGVz
dHJ1Y3RvcicpCiAKICAgICBkZWYgdGVzdF9vdXRlcl9jbGFzc19uZWVkc192aXJ0dWFsX2Rlc3Ry
dWN0b3Ioc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludF9yZSgKLSAg
ICAgICAgICAgICcnJ2NsYXNzIEZvbyB7Ci0gICAgICAgICAgICAgICAgICAgY2xhc3MgR29vIHsK
LSAgICAgICAgICAgICAgICAgICB9OwotICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBm
b28oKTsKLSAgICAgICAgICAgICAgIH07JycnLAorICAgICAgICAgICAgJycnXAorICAgICAgICAg
ICAgICAgIGNsYXNzIEZvbyB7CisgICAgICAgICAgICAgICAgICAgIGNsYXNzIEdvbyB7CisgICAg
ICAgICAgICAgICAgICAgIH07CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28o
KTsKKyAgICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdUaGUgY2xhc3MgRm9vIHBy
b2JhYmx5IG5lZWRzIGEgdmlydHVhbCBkZXN0cnVjdG9yJykKIAogICAgIGRlZiB0ZXN0X3F1YWxp
ZmllZF9jbGFzc19uZWVkc192aXJ0dWFsX2Rlc3RydWN0b3Ioc2VsZik6CiAgICAgICAgIHNlbGYu
YXNzZXJ0X211bHRpX2xpbmVfbGludF9yZSgKLSAgICAgICAgICAgICcnJ2NsYXNzIFF1YWxpZmll
ZDo6Rm9vIHsKLSAgICAgICAgICAgICAgICAgICB2aXJ0dWFsIHZvaWQgZm9vKCk7Ci0gICAgICAg
ICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAgICAgICAgICAgICAgICBjbGFzcyBR
dWFsaWZpZWQ6OkZvbyB7CisgICAgICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsK
KyAgICAgICAgICAgICAgICB9OycnJywKICAgICAgICAgICAgICdUaGUgY2xhc3MgUXVhbGlmaWVk
OjpGb28gcHJvYmFibHkgbmVlZHMgYSB2aXJ0dWFsIGRlc3RydWN0b3InKQogCiAgICAgZGVmIHRl
c3RfbXVsdGlfbGluZV9kZWNsYXJhdGlvbl9ub19lcnJvcihzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRfbXVsdGlfbGluZV9saW50X3JlKAotICAgICAgICAgICAgJycnY2xhc3MgRm9vCi0gICAg
ICAgICAgICAgICAgICAgOiBwdWJsaWMgR29vIHsKLSAgICAgICAgICAgICAgICAgICB2aXJ0dWFs
IHZvaWQgZm9vKCk7Ci0gICAgICAgICAgICAgICB9OycnJywKKyAgICAgICAgICAgICcnJ1wKKyAg
ICAgICAgICAgICAgICBjbGFzcyBGb28KKyAgICAgICAgICAgICAgICAgICAgOiBwdWJsaWMgR29v
IHsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOworICAgICAgICAgICAg
ICAgIH07JycnLAogICAgICAgICAgICAgJycpCiAKICAgICBkZWYgdGVzdF9tdWx0aV9saW5lX2Rl
Y2xhcmF0aW9uX3dpdGhfZXJyb3Ioc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xp
bmVfbGludCgKLSAgICAgICAgICAgICcnJ2NsYXNzIEZvbwotICAgICAgICAgICAgICAgewotICAg
ICAgICAgICAgICAgICAgIHZpcnR1YWwgdm9pZCBmb28oKTsKLSAgICAgICAgICAgICAgIH07Jycn
LAorICAgICAgICAgICAgJycnXAorICAgICAgICAgICAgICAgIGNsYXNzIEZvbworICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZvbygpOworICAgICAg
ICAgICAgICAgIH07JycnLAogICAgICAgICAgICAgWydUaGlzIHsgc2hvdWxkIGJlIGF0IHRoZSBl
bmQgb2YgdGhlIHByZXZpb3VzIGxpbmUgICcKICAgICAgICAgICAgICAnW3doaXRlc3BhY2UvYnJh
Y2VzXSBbNF0nLAogICAgICAgICAgICAgICdUaGUgY2xhc3MgRm9vIHByb2JhYmx5IG5lZWRzIGEg
dmlydHVhbCBkZXN0cnVjdG9yIGR1ZSB0byBoYXZpbmcgJwpAQCAtMzQ5NSw3ICszNTI0LDYgQEAg
Y2xhc3MgV2ViS2l0U3R5bGVUZXN0KENwcFN0eWxlVGVzdEJhc2UpOgogICAgICAgICAgICAgJyAg
IGludCBnb287XG4nCiAgICAgICAgICAgICAnfTsnLAogICAgICAgICAgICAgJ1dlaXJkIG51bWJl
ciBvZiBzcGFjZXMgYXQgbGluZS1zdGFydC4gIEFyZSB5b3UgdXNpbmcgYSA0LXNwYWNlIGluZGVu
dD8gIFt3aGl0ZXNwYWNlL2luZGVudF0gWzNdJykKLSAgICAgICAgIyBGSVhNRTogTm8gdGVzdHMg
Zm9yIDgtc3BhY2VzLgogCiAgICAgICAgICMgMy4gSW4gYSBoZWFkZXIsIGNvZGUgaW5zaWRlIGEg
bmFtZXNwYWNlIHNob3VsZCBub3QgYmUgaW5kZW50ZWQuCiAgICAgICAgIHNlbGYuYXNzZXJ0X211
bHRpX2xpbmVfbGludCgKQEAgLTQxODAsNyArNDIwOCwxNCBAQCBjbGFzcyBXZWJLaXRTdHlsZVRl
c3QoQ3BwU3R5bGVUZXN0QmFzZSk6CiAgICAgICAgICAgICAnICAgIG15RnVuY3Rpb24ocmVhbGx5
TG9uZ1BhcmFtMSwgcmVhbGx5TG9uZ1BhcmFtMixcbicKICAgICAgICAgICAgICcgICAgICAgICAg
ICAgICByZWFsbHlMb25nUGFyYW0zKTtcbicKICAgICAgICAgICAgICd9XG4nLAotICAgICAgICAg
ICAgJycpCisgICAgICAgICAgICAnV2VpcmQgbnVtYmVyIG9mIHNwYWNlcyBhdCBsaW5lLXN0YXJ0
LiAgQXJlIHlvdSB1c2luZyBhIDQtc3BhY2UgaW5kZW50PyAgW3doaXRlc3BhY2UvaW5kZW50XSBb
M10nKQorCisgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVfbGludCgKKyAgICAgICAgICAg
ICdpZiAodHJ1ZSkge1xuJworICAgICAgICAgICAgJyAgICBteUZ1bmN0aW9uKHJlYWxseUxvbmdQ
YXJhbTEsIHJlYWxseUxvbmdQYXJhbTIsXG4nCisgICAgICAgICAgICAnICAgICAgICAgICAgcmVh
bGx5TG9uZ1BhcmFtMyk7XG4nCisgICAgICAgICAgICAnfVxuJywKKyAgICAgICAgICAgICdXaGVu
IHdyYXBwaW5nIGEgbGluZSwgb25seSBpbmRlbnQgNCBzcGFjZXMuICBbd2hpdGVzcGFjZS9pbmRl
bnRdIFszXScpCiAKICAgICAgICAgIyA0LiBDb250cm9sIGNsYXVzZXMgd2l0aG91dCBhIGJvZHkg
c2hvdWxkIHVzZSBlbXB0eSBicmFjZXMuCiAgICAgICAgIHNlbGYuYXNzZXJ0X211bHRpX2xpbmVf
bGludCgKQEAgLTQxODksNyArNDIyNCw3IEBAIGNsYXNzIFdlYktpdFN0eWxlVGVzdChDcHBTdHls
ZVRlc3RCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRfbXVsdGlfbGluZV9saW50KAogICAgICAg
ICAgICAgJ2ZvciAoIDsgY3VycmVudDtcbicKICAgICAgICAgICAgICcgICAgIGN1cnJlbnQgPSBj
dXJyZW50LT5uZXh0KSB7IH1cbicsCi0gICAgICAgICAgICAnJykKKyAgICAgICAgICAgICdXZWly
ZCBudW1iZXIgb2Ygc3BhY2VzIGF0IGxpbmUtc3RhcnQuICBBcmUgeW91IHVzaW5nIGEgNC1zcGFj
ZSBpbmRlbnQ/ICBbd2hpdGVzcGFjZS9pbmRlbnRdIFszXScpCiAgICAgICAgIHNlbGYuYXNzZXJ0
X211bHRpX2xpbmVfbGludCgKICAgICAgICAgICAgICdmb3IgKCA7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBjdXJyZW50LT5uZXh0KTtcbicsCiAgICAgICAgICAgICAnU2VtaWNvbG9uIGRlZmluaW5nIGVt
cHR5IHN0YXRlbWVudCBmb3IgdGhpcyBsb29wLiBVc2UgeyB9IGluc3RlYWQuICBbd2hpdGVzcGFj
ZS9zZW1pY29sb25dIFs1XScpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>