<?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>159543</bug_id>
          
          <creation_ts>2016-07-07 21:38:46 -0700</creation_ts>
          <short_desc>padStart/padEnd with Infinity produces unexpected result</short_desc>
          <delta_ts>2016-07-08 00:51:06 -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>JavaScriptCore</component>
          <version>WebKit 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="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>benjamin</cc>
    
    <cc>caitp</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1208960</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 21:38:46 -0700</bug_when>
    <thetext>Summary:
padStart/padEnd with Infinity produces unexpected result

Test:
&gt;&gt;&gt; &quot;foo&quot;.padStart(Infinity, &quot;x&quot;)
&quot;nullfoo&quot;
&gt;&gt;&gt; &quot;foo&quot;.padEnd(Infinity, &quot;x&quot;)
&quot;foonull&quot;

Expected:
&quot;Error: Out of memory&quot; for a string that would be &gt; Max String Size (JSString::MaxLength is std::numeric_limits&lt;int32_t&gt;::max()).

Spec:
&lt;https://tc39.github.io/ecma262/#sec-string.prototype.padend&gt;
&lt;https://tc39.github.io/ecma262/#sec-string.prototype.padstart&gt;

Note the spec does special case the empty fill string, so that can be handled even if the maxLength is Infinity:

&gt; 1. Let O be ? RequireObjectCoercible(this value).
&gt; 2. Let S be ? ToString(O).
&gt; 3. Let intMaxLength be ? ToLength(maxLength).
&gt; 4. Let stringLength be the number of elements in S.
&gt; 5. If intMaxLength is not greater than stringLength, return S.
&gt; 6. If fillString is undefined, let filler be a String consisting solely of the code unit 0x0020 (SPACE).
&gt; 7. Else, let filler be ? ToString(fillString).
&gt; 8. If filler is the empty String, return S.
&gt; ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208961</commentid>
    <comment_count>1</comment_count>
      <attachid>283105</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 21:43:01 -0700</bug_when>
    <thetext>Created attachment 283105
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208962</commentid>
    <comment_count>2</comment_count>
      <attachid>283106</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 21:44:52 -0700</bug_when>
    <thetext>Created attachment 283106
[PATCH] Proposed Fix

Fixed double ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208971</commentid>
    <comment_count>3</comment_count>
      <attachid>283109</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-07-07 22:26:13 -0700</bug_when>
    <thetext>Created attachment 283109
[PATCH] For Landing

Some improvements to the builtins that Ben saw.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1208979</commentid>
    <comment_count>4</comment_count>
      <attachid>283109</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-07-07 23:26:13 -0700</bug_when>
    <thetext>Comment on attachment 283109
[PATCH] For Landing

Clearing flags on attachment: 283109

Committed r202966: &lt;http://trac.webkit.org/changeset/202966&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283105</attachid>
            <date>2016-07-07 21:43:01 -0700</date>
            <delta_ts>2016-07-07 21:44:52 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pad-1.patch</filename>
            <type>text/plain</type>
            <size>31045</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmI4MGNkLi5lMzg4NDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBwYWRT
dGFydC9wYWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJlc3VsdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9zY3JpcHQt
dGVzdHMvc3RyaW5nLXBhZGVuZC5qczogQWRkZWQuCisgICAgICAgICh0aGlzT2JqZWN0LnRvU3Ry
aW5nKToKKyAgICAgICAgKGxlbmd0aE9iamVjdC52YWx1ZU9mKToKKyAgICAgICAgKGZpbGxPYmpl
Y3QudG9TdHJpbmcpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQu
anM6IEFkZGVkLgorICAgICAgICAodGhpc09iamVjdC50b1N0cmluZyk6CisgICAgICAgIChsZW5n
dGhPYmplY3QudmFsdWVPZik6CisgICAgICAgIChmaWxsT2JqZWN0LnRvU3RyaW5nKToKKyAgICAg
ICAgKiBqcy9zdHJpbmctcGFkZW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
c3RyaW5nLXBhZGVuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zdHJpbmctcGFkc3RhcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9zdHJpbmctcGFkc3RhcnQuaHRtbDog
QWRkZWQuCisgICAgICAgIEFkZCBzb21lIGJhc2ljIFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQv
cGFkRW5kIHRlc3QgY292ZXJhZ2UKKyAgICAgICAgdGhhdCBpcyBub3QganVzdCBpbiB0aGUgSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2IGRpcmVjdG9yeS4KKworMjAxNi0wNy0wNyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFVuZXhwZWN0ZWQgIk91dCBv
ZiBtZW1vcnkiIGVycm9yIGZvciAieCIucmVwZWF0KC0xKQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTI5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkZW5kLmpzIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL3N0cmluZy1wYWRlbmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGQxMmY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9zdHJpbmctcGFkZW5kLmpzCkBAIC0wLDAgKzEsODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBTdHJpbmcucHJvdG90eXBlLnBhZEVuZC4iKTsKKworc2hvdWxkQmUo
J1N0cmluZy5wcm90b3R5cGUucGFkRW5kLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ1N0cmluZy5wcm90b3R5cGUucGFkRW5kLm5hbWUnLCAncGFkRW5kJyk7CitzaG91bGRC
ZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFk
RW5kIikuY29uZmlndXJhYmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS5lbnVtZXJhYmxlJywg
J2ZhbHNlJyk7CitzaG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJp
bmcucHJvdG90eXBlLCAicGFkRW5kIikud3JpdGFibGUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIp
LmdldCcsICd1bmRlZmluZWQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS5zZXQnLCAndW5kZWZpbmVkJyk7Citz
aG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBl
LCAicGFkRW5kIikudmFsdWUnLCAnU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQnKTsKKworc2hvdWxk
QmUoIidmb28nLnBhZEVuZCgpIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKCsw
KSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZEVuZCgtMCkiLCAiJ2ZvbyciKTsKK3No
b3VsZEJlKCInZm9vJy5wYWRFbmQoMSkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRF
bmQoMikiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoLTIpIiwgIidmb28nIik7
CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwKSIsICAgICAgICAgICAgICAiJ2ZvbyAgICAgICAn
Iik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCB1bmRlZmluZWQpIiwgICAiJ2ZvbyAgICAg
ICAnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAneCcpIiwgICAgICAgICAiJ2Zvb3h4
eHh4eHgnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLjUsICd6JykiLCAgICAgICAiJ2Zv
b3p6enp6enonIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAnYmFyJykiLCAgICAgICAi
J2Zvb2JhcmJhcmInIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAnMTIzNDU2Nzg5Jyki
LCAiJ2ZvbzEyMzQ1NjcnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDk5OSwgJycpIiwgIidm
b28nIik7CitzaG91bGRCZSgiJycucGFkRW5kKDEsICcnKSIsICInJyIpOworc2hvdWxkQmUoIicn
LnBhZEVuZCgyLCAnYmFyJykiLCAiJ2JhJyIpOworc2hvdWxkQmUoIid4Jy5wYWRFbmQoMiwgJ2Jh
cicpIiwgIid4YiciKTsKK3Nob3VsZEJlKCIneHgnLnBhZEVuZCgyLCAnYmFyJykiLCAiJ3h4JyIp
Oworc2hvdWxkQmUoIid4eCcucGFkRW5kKE1hdGguUEksICdiYXInKSIsICIneHhiJyIpOworCisv
LyBDb2VyY2UgbGVuZ3RoIChUb0xlbmd0aCkuCitzaG91bGRCZSgiJycucGFkRW5kKHRydWUsICdB
QkMnKSIsICInQSciKTsKK3Nob3VsZEJlKCInJy5wYWRFbmQoZmFsc2UsICdBQkMnKSIsICInJyIp
Oworc2hvdWxkQmUoIicnLnBhZEVuZChudWxsLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCIn
Jy5wYWRFbmQoe30sICdBQkMnKSIsICInJyIpOworc2hvdWxkQmUoIicnLnBhZEVuZChOYU4sICdB
QkMnKSIsICInJyIpOworCisvLyBDb2VyY2UgZmlsbFN0cmluZyAoVG9TdHJpbmcpLgorc2hvdWxk
QmUoIidBQkMnLnBhZEVuZCgxMCwgdHJ1ZSkiLCAgIidBQkN0cnVldHJ1JyIpOworc2hvdWxkQmUo
IidBQkMnLnBhZEVuZCgxMCwgZmFsc2UpIiwgIidBQkNmYWxzZWZhJyIpOworc2hvdWxkQmUoIidB
QkMnLnBhZEVuZCgxMCwgbnVsbCkiLCAgIidBQkNudWxsbnVsJyIpOworc2hvdWxkQmUoIidBQkMn
LnBhZEVuZCgxMCwge30pIiwgICAgIidBQkNbb2JqZWN0JyIpOworc2hvdWxkQmUoIidBQkMnLnBh
ZEVuZCgxMCwgTmFOKSIsICAgIidBQkNOYU5OYU5OJyIpOworCisvLyBDaGVjayBvdXQgb2YgbWVt
b3J5IGVycm9ycy4KK3Nob3VsZE5vdFRocm93KCcieCIucGFkRW5kKEluZmluaXR5LCAiIiknKTsg
Ly8gRW1wdHkgc3RyaW5nIGZpbGxlciBpcyBmaW5lLgorc2hvdWxkVGhyb3coJyJ4Ii5wYWRFbmQo
SW5maW5pdHksICJ4IiknLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5JyIpOworc2hvdWxkVGhyb3co
JyJ4Ii5wYWRFbmQoMHg4MDAwMDAwMCwgIngiKScsICInRXJyb3I6IE91dCBvZiBtZW1vcnknIik7
CitzaG91bGRUaHJvdygnIngiLnBhZEVuZCgweEZGRkZGRkZGLCAieCIpJywgIidFcnJvcjogT3V0
IG9mIG1lbW9yeSciKTsKKworLy8gQ2hlY2sgc2lkZS1lZmZlY3RzLgorbGV0IHNpZGVFZmZlY3Rz
ID0gIiI7CitsZXQgdGhpc09iamVjdCA9IG5ldyBTdHJpbmcoImZvbyBiYXIiKTsKK2xldCBsZW5n
dGhPYmplY3QgPSBuZXcgTnVtYmVyKDEwKTsKK2xldCBmaWxsT2JqZWN0ID0gbmV3IFN0cmluZygi
WCIpOworCitzaWRlRWZmZWN0cyA9ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyBzaWRlRWZmZWN0cyArPSAiQSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3RoT2JqZWN0LnZh
bHVlT2YgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkIiOyByZXR1cm4gdGhpczsgfTsK
K2ZpbGxPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkMiOyBy
ZXR1cm4gdGhpczsgfTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nLnByb3RvdHlwZS5w
YWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwgImZvbyBi
YXJYWFgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQUJDIik7CisK
K3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHRo
cm93ICJFUlJPUiI7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBzaWRl
RWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1
bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJldHVybiB0aGlzOyB9Oworc2hvdWxkVGhy
b3coIlN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0
LCBmaWxsT2JqZWN0KSIsICInRVJST1InIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpZGVF
ZmZlY3RzIiwgIiIpOworCitzaWRlRWZmZWN0cyA9ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3Ro
T2JqZWN0LnZhbHVlT2YgPSBmdW5jdGlvbigpIHsgdGhyb3cgIkVSUk9SIjsgfTsKK2ZpbGxPYmpl
Y3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkMiOyByZXR1cm4gdGhp
czsgfTsKK3Nob3VsZFRocm93KCJTdHJpbmcucHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmpl
Y3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJBIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlz
T2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJu
IHRoaXM7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0
cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyB0aHJvdyAiRVJST1IiOyByZXR1cm4gdGhpczsgfTsKK3Nob3VsZFRocm93KCJTdHJpbmcu
cHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVj
dCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJB
QiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRz
dGFydC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ5MGU3NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQuanMKQEAg
LTAsMCArMSw4MyBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFN0cmluZy5w
cm90b3R5cGUucGFkU3RhcnQuIik7CisKK3Nob3VsZEJlKCdTdHJpbmcucHJvdG90eXBlLnBhZFN0
YXJ0Lmxlbmd0aCcsICcxJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ1N0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQubmFtZScsICdwYWRTdGFydCcpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0IikuY29uZmlndXJh
YmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmVudW1lcmFibGUnLCAnZmFsc2UnKTsKK3No
b3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUs
ICJwYWRTdGFydCIpLndyaXRhYmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmdldCcsICd1
bmRlZmluZWQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0
cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLnNldCcsICd1bmRlZmluZWQnKTsKK3Nob3VsZEJl
KCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRT
dGFydCIpLnZhbHVlJywgJ1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQnKTsKKworc2hvdWxkQmUo
Iidmb28nLnBhZFN0YXJ0KCkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgr
MCkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgtMCkiLCAiJ2ZvbyciKTsK
K3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28n
LnBhZFN0YXJ0KDIpIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoLTIpIiwg
Iidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoMTApIiwgICAgICAgICAgICAgICIn
ICAgICAgIGZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxMCwgdW5kZWZpbmVkKSIs
ICAgIicgICAgICAgZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0KDEwLCAneCcpIiwg
ICAgICAgICAiJ3h4eHh4eHhmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoMTAuNSwg
J3onKSIsICAgICAgICInenp6enp6emZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgx
MCwgJ2JhcicpIiwgICAgICAgIidiYXJiYXJiZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0
YXJ0KDEwLCAnMTIzNDU2Nzg5JykiLCAiJzEyMzQ1Njdmb28nIik7CitzaG91bGRCZSgiJ2Zvbycu
cGFkU3RhcnQoOTk5LCAnJykiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCgxLCAn
JykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCgyLCAnYmFyJykiLCAiJ2JhJyIpOwor
c2hvdWxkQmUoIid4Jy5wYWRTdGFydCgyLCAnYmFyJykiLCAiJ2J4JyIpOworc2hvdWxkQmUoIid4
eCcucGFkU3RhcnQoMiwgJ2JhcicpIiwgIid4eCciKTsKK3Nob3VsZEJlKCIneHgnLnBhZFN0YXJ0
KE1hdGguUEksICdiYXInKSIsICInYnh4JyIpOworCisvLyBDb2VyY2UgbGVuZ3RoIChUb0xlbmd0
aCkuCitzaG91bGRCZSgiJycucGFkU3RhcnQodHJ1ZSwgJ0FCQycpIiwgIidBJyIpOworc2hvdWxk
QmUoIicnLnBhZFN0YXJ0KGZhbHNlLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRT
dGFydChudWxsLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCh7fSwgJ0FC
QycpIiwgIicnIik7CitzaG91bGRCZSgiJycucGFkU3RhcnQoTmFOLCAnQUJDJykiLCAiJyciKTsK
KworLy8gQ29lcmNlIGZpbGxTdHJpbmcgKFRvU3RyaW5nKS4KK3Nob3VsZEJlKCInQUJDJy5wYWRT
dGFydCgxMCwgdHJ1ZSkiLCAgIid0cnVldHJ1QUJDJyIpOworc2hvdWxkQmUoIidBQkMnLnBhZFN0
YXJ0KDEwLCBmYWxzZSkiLCAiJ2ZhbHNlZmFBQkMnIik7CitzaG91bGRCZSgiJ0FCQycucGFkU3Rh
cnQoMTAsIG51bGwpIiwgICInbnVsbG51bEFCQyciKTsKK3Nob3VsZEJlKCInQUJDJy5wYWRTdGFy
dCgxMCwge30pIiwgICAgIidbb2JqZWN0QUJDJyIpOworc2hvdWxkQmUoIidBQkMnLnBhZFN0YXJ0
KDEwLCBOYU4pIiwgICAiJ05hTk5hTk5BQkMnIik7CisKKy8vIENoZWNrIG91dCBvZiBtZW1vcnkg
ZXJyb3JzLgorc2hvdWxkTm90VGhyb3coJyJ4Ii5wYWRTdGFydChJbmZpbml0eSwgIiIpJyk7IC8v
IEVtcHR5IHN0cmluZyBmaWxsZXIgaXMgZmluZS4KK3Nob3VsZFRocm93KCcieCIucGFkU3RhcnQo
SW5maW5pdHksICJ4IiknLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5JyIpOworc2hvdWxkVGhyb3co
JyJ4Ii5wYWRTdGFydCgweDgwMDAwMDAwLCAieCIpJywgIidFcnJvcjogT3V0IG9mIG1lbW9yeSci
KTsKK3Nob3VsZFRocm93KCcieCIucGFkU3RhcnQoMHhGRkZGRkZGRiwgIngiKScsICInRXJyb3I6
IE91dCBvZiBtZW1vcnknIik7CisKKy8vIENoZWNrIHNpZGUtZWZmZWN0cy4KK2xldCBzaWRlRWZm
ZWN0cyA9ICIiOworbGV0IHRoaXNPYmplY3QgPSBuZXcgU3RyaW5nKCJmb28gYmFyIik7CitsZXQg
bGVuZ3RoT2JqZWN0ID0gbmV3IE51bWJlcigxMCk7CitsZXQgZmlsbE9iamVjdCA9IG5ldyBTdHJp
bmcoIlgiKTsKKworc2lkZUVmZmVjdHMgPSAiIjsKK3RoaXNPYmplY3QudG9TdHJpbmcgPSBmdW5j
dGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkEiOyByZXR1cm4gdGhpczsgfTsKK2xlbmd0aE9iamVj
dC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJCIjsgcmV0dXJuIHRoaXM7
IH07CitmaWxsT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJD
IjsgcmV0dXJuIHRoaXM7IH07CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwg
IlhYWGZvbyBiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQUJD
Iik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24o
KSB7IHRocm93ICJFUlJPUiI7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkg
eyBzaWRlRWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmlu
ZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJldHVybiB0aGlzOyB9Oworc2hv
dWxkVGhyb3coIlN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5n
dGhPYmplY3QsIGZpbGxPYmplY3QpIiwgIidFUlJPUiciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygic2lkZUVmZmVjdHMiLCAiIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJuIHRoaXM7IH07
CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAiRVJST1IiOyB9Owor
ZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJl
dHVybiB0aGlzOyB9Oworc2hvdWxkVGhyb3coIlN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuY2Fs
bCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwgIidFUlJPUiciKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQSIpOworCitzaWRlRWZmZWN0cyA9
ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAi
QSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3RoT2JqZWN0LnZhbHVlT2YgPSBmdW5jdGlvbigpIHsg
c2lkZUVmZmVjdHMgKz0gIkIiOyByZXR1cm4gdGhpczsgfTsKK2ZpbGxPYmplY3QudG9TdHJpbmcg
PSBmdW5jdGlvbigpIHsgdGhyb3cgIkVSUk9SIjsgcmV0dXJuIHRoaXM7IH07CitzaG91bGRUaHJv
dygiU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVj
dCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRl
RWZmZWN0cyIsICJBQiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZGVu
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWY4NWNmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZGVuZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0cmluZy5wcm90b3R5cGUu
cGFkRW5kLmxlbmd0aCBpcyAxCitQQVNTIFN0cmluZy5wcm90b3R5cGUucGFkRW5kLm5hbWUgaXMg
InBhZEVuZCIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJv
dG90eXBlLCAicGFkRW5kIikuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkRW5kIikuZW51bWVyYWJs
ZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5w
cm90b3R5cGUsICJwYWRFbmQiKS53cml0YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIpLmdldCBpcyB1bmRl
ZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90
eXBlLCAicGFkRW5kIikuc2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS52YWx1ZSBpcyBTdHJpbmcu
cHJvdG90eXBlLnBhZEVuZAorUEFTUyAnZm9vJy5wYWRFbmQoKSBpcyAnZm9vJworUEFTUyAnZm9v
Jy5wYWRFbmQoKzApIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgtMCkgaXMgJ2ZvbycKK1BB
U1MgJ2ZvbycucGFkRW5kKDEpIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgyKSBpcyAnZm9v
JworUEFTUyAnZm9vJy5wYWRFbmQoLTIpIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgxMCkg
aXMgJ2ZvbyAgICAgICAnCitQQVNTICdmb28nLnBhZEVuZCgxMCwgdW5kZWZpbmVkKSBpcyAnZm9v
ICAgICAgICcKK1BBU1MgJ2ZvbycucGFkRW5kKDEwLCAneCcpIGlzICdmb294eHh4eHh4JworUEFT
UyAnZm9vJy5wYWRFbmQoMTAuNSwgJ3onKSBpcyAnZm9venp6enp6eicKK1BBU1MgJ2ZvbycucGFk
RW5kKDEwLCAnYmFyJykgaXMgJ2Zvb2JhcmJhcmInCitQQVNTICdmb28nLnBhZEVuZCgxMCwgJzEy
MzQ1Njc4OScpIGlzICdmb28xMjM0NTY3JworUEFTUyAnZm9vJy5wYWRFbmQoOTk5LCAnJykgaXMg
J2ZvbycKK1BBU1MgJycucGFkRW5kKDEsICcnKSBpcyAnJworUEFTUyAnJy5wYWRFbmQoMiwgJ2Jh
cicpIGlzICdiYScKK1BBU1MgJ3gnLnBhZEVuZCgyLCAnYmFyJykgaXMgJ3hiJworUEFTUyAneHgn
LnBhZEVuZCgyLCAnYmFyJykgaXMgJ3h4JworUEFTUyAneHgnLnBhZEVuZChNYXRoLlBJLCAnYmFy
JykgaXMgJ3h4YicKK1BBU1MgJycucGFkRW5kKHRydWUsICdBQkMnKSBpcyAnQScKK1BBU1MgJycu
cGFkRW5kKGZhbHNlLCAnQUJDJykgaXMgJycKK1BBU1MgJycucGFkRW5kKG51bGwsICdBQkMnKSBp
cyAnJworUEFTUyAnJy5wYWRFbmQoe30sICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRFbmQoTmFO
LCAnQUJDJykgaXMgJycKK1BBU1MgJ0FCQycucGFkRW5kKDEwLCB0cnVlKSBpcyAnQUJDdHJ1ZXRy
dScKK1BBU1MgJ0FCQycucGFkRW5kKDEwLCBmYWxzZSkgaXMgJ0FCQ2ZhbHNlZmEnCitQQVNTICdB
QkMnLnBhZEVuZCgxMCwgbnVsbCkgaXMgJ0FCQ251bGxudWwnCitQQVNTICdBQkMnLnBhZEVuZCgx
MCwge30pIGlzICdBQkNbb2JqZWN0JworUEFTUyAnQUJDJy5wYWRFbmQoMTAsIE5hTikgaXMgJ0FC
Q05hTk5hTk4nCitQQVNTICJ4Ii5wYWRFbmQoSW5maW5pdHksICIiKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgIngiLnBhZEVuZChJbmZpbml0eSwgIngiKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRFbmQoMHg4MDAwMDAwMCwgIngiKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRFbmQoMHhG
RkZGRkZGRiwgIngiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNT
IFN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0LCBm
aWxsT2JqZWN0KSBpcyAiZm9vIGJhclhYWCIKK1BBU1Mgc2lkZUVmZmVjdHMgaXMgIkFCQyIKK1BB
U1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3Qs
IGZpbGxPYmplY3QpIHRocmV3IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVjdHMgaXMg
IiIKK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhP
YmplY3QsIGZpbGxPYmplY3QpIHRocmV3IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVj
dHMgaXMgIkEiCitQQVNTIFN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwg
bGVuZ3RoT2JqZWN0LCBmaWxsT2JqZWN0KSB0aHJldyBleGNlcHRpb24gRVJST1IuCitQQVNTIHNp
ZGVFZmZlY3RzIGlzICJBQiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDdmYmQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3N0cmluZy1wYWRlbmQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctcGFkZW5kLmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0
YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRzdGFydC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzY2U1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRzdGFydC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU3RyaW5nLnByb3RvdHlwZS5w
YWRTdGFydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RyaW5nLnBy
b3RvdHlwZS5wYWRTdGFydC5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcucHJvdG90eXBlLnBhZFN0
YXJ0Lm5hbWUgaXMgInBhZFN0YXJ0IgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBh
ZFN0YXJ0IikuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAi
cGFkU3RhcnQiKS5nZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0Iikuc2V0IGlzIHVuZGVmaW5lZAor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJw
YWRTdGFydCIpLnZhbHVlIGlzIFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQKK1BBU1MgJ2Zvbycu
cGFkU3RhcnQoKSBpcyAnZm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgrMCkgaXMgJ2ZvbycKK1BB
U1MgJ2ZvbycucGFkU3RhcnQoLTApIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KDEpIGlz
ICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KDIpIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0
YXJ0KC0yKSBpcyAnZm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgxMCkgaXMgJyAgICAgICBmb28n
CitQQVNTICdmb28nLnBhZFN0YXJ0KDEwLCB1bmRlZmluZWQpIGlzICcgICAgICAgZm9vJworUEFT
UyAnZm9vJy5wYWRTdGFydCgxMCwgJ3gnKSBpcyAneHh4eHh4eGZvbycKK1BBU1MgJ2ZvbycucGFk
U3RhcnQoMTAuNSwgJ3onKSBpcyAnenp6enp6emZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMTAs
ICdiYXInKSBpcyAnYmFyYmFyYmZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMTAsICcxMjM0NTY3
ODknKSBpcyAnMTIzNDU2N2ZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoOTk5LCAnJykgaXMgJ2Zv
bycKK1BBU1MgJycucGFkU3RhcnQoMSwgJycpIGlzICcnCitQQVNTICcnLnBhZFN0YXJ0KDIsICdi
YXInKSBpcyAnYmEnCitQQVNTICd4Jy5wYWRTdGFydCgyLCAnYmFyJykgaXMgJ2J4JworUEFTUyAn
eHgnLnBhZFN0YXJ0KDIsICdiYXInKSBpcyAneHgnCitQQVNTICd4eCcucGFkU3RhcnQoTWF0aC5Q
SSwgJ2JhcicpIGlzICdieHgnCitQQVNTICcnLnBhZFN0YXJ0KHRydWUsICdBQkMnKSBpcyAnQScK
K1BBU1MgJycucGFkU3RhcnQoZmFsc2UsICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRTdGFydChu
dWxsLCAnQUJDJykgaXMgJycKK1BBU1MgJycucGFkU3RhcnQoe30sICdBQkMnKSBpcyAnJworUEFT
UyAnJy5wYWRTdGFydChOYU4sICdBQkMnKSBpcyAnJworUEFTUyAnQUJDJy5wYWRTdGFydCgxMCwg
dHJ1ZSkgaXMgJ3RydWV0cnVBQkMnCitQQVNTICdBQkMnLnBhZFN0YXJ0KDEwLCBmYWxzZSkgaXMg
J2ZhbHNlZmFBQkMnCitQQVNTICdBQkMnLnBhZFN0YXJ0KDEwLCBudWxsKSBpcyAnbnVsbG51bEFC
QycKK1BBU1MgJ0FCQycucGFkU3RhcnQoMTAsIHt9KSBpcyAnW29iamVjdEFCQycKK1BBU1MgJ0FC
QycucGFkU3RhcnQoMTAsIE5hTikgaXMgJ05hTk5hTk5BQkMnCitQQVNTICJ4Ii5wYWRTdGFydChJ
bmZpbml0eSwgIiIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyAieCIucGFkU3RhcnQo
SW5maW5pdHksICJ4IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBPdXQgb2YgbWVtb3J5LgorUEFT
UyAieCIucGFkU3RhcnQoMHg4MDAwMDAwMCwgIngiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91
dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRTdGFydCgweEZGRkZGRkZGLCAieCIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRT
dGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkgaXMgIlhYWGZv
byBiYXIiCitQQVNTIHNpZGVFZmZlY3RzIGlzICJBQkMiCitQQVNTIFN0cmluZy5wcm90b3R5cGUu
cGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIHRocmV3
IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVjdHMgaXMgIiIKK1BBU1MgU3RyaW5nLnBy
b3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVj
dCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBpcyAiQSIKK1BBU1Mg
U3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwg
ZmlsbE9iamVjdCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBpcyAi
QUIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0YXJ0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9zdHJpbmctcGFkc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40ODM0MTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RyaW5n
LXBhZHN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXBhZHN0YXJ0LmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzNzA3Ny4uOWZhYTY2ZSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNjkgQEAKIDIwMTYtMDctMDcgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBwYWRTdGFydC9w
YWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJlc3VsdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxP
cGVyYXRpb25zLmpzOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS50b0xlbmd0aCk6CisgICAgICAg
ICogYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzOgorICAgICAgICAocGFkU3RhcnQpOgorICAg
ICAgICAocGFkRW5kKToKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2Rz
X09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLXByb3h5LmpzOgorICAgICAgICAoc2hv
dWxkVGhyb3cpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21l
dGhvZHNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMuanM6CisgICAgICAgIChzaG91
bGRUaHJvdyk6CisgICAgICAgICh0ZXN0TWV0YSk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmlu
Zy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZEVuZC5qczoKKyAgICAgICAg
KHNob3VsZFRocm93KToKKyAgICAgICAgKFRlc3RUb0xlbmd0aCk6CisgICAgICAgIChUZXN0TWVt
b3J5TGltaXRzKToKKyAgICAgICAgKFRlc3RNZXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0
cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQu
anM6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChUZXN0VG9MZW5ndGgpOgorICAg
ICAgICAoVGVzdE1lbW9yeUxpbWl0cyk6CisgICAgICAgIChUZXN0TWV0YSk6IERlbGV0ZWQuCisK
KzIwMTYtMDctMDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKworICAg
ICAgICBwYWRTdGFydC9wYWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJl
c3VsdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5
NTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBi
dWlsdGlucy9HbG9iYWxPcGVyYXRpb25zLmpzOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS50b0xl
bmd0aCk6CisgICAgICAgIEZpeCBzdHlsZS4KKworICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ1By
b3RvdHlwZS5qczoKKyAgICAgICAgKHBhZFN0YXJ0KToKKyAgICAgICAgKHBhZEVuZCk6CisgICAg
ICAgIEFmdGVyIGFsbCBvYnNlcnZhYmxlIG9wZXJhdGlvbnMsIGFuZCBhZnRlciBlbXB0eSBzdHJp
bmcgaGFzIGJlZW4gaGFuZGxlZCwKKyAgICAgICAgdGhyb3cgYW4gb3V0IG9mIG1lbW9yeSBlcnJv
ciBpZiB0aGUgcmVzdWx0aW5nIHN0cmluZyB3b3VsZCBiZSBncmVhdGVyCisgICAgICAgIHRoYW4g
dGhlIG1heGltdW0gc3RyaW5nIHNpemUuCisKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0
YXRpY19tZXRob2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLXByb3h5LmpzOgor
ICAgICAgICAoc2hvdWxkVGhyb3cpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RzL2VzNi9PYmpl
Y3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMuanM6Cisg
ICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgICh0ZXN0TWV0YSk6CisgICAgICAgICogdGVz
dHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZEVuZC5q
czoKKyAgICAgICAgKHNob3VsZFRocm93KToKKyAgICAgICAgKFRlc3RUb0xlbmd0aCk6CisgICAg
ICAgIChUZXN0TWVtb3J5TGltaXRzKToKKyAgICAgICAgKFRlc3RNZXRhKTogRGVsZXRlZC4KKyAg
ICAgICAgKiB0ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQuanM6CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChUZXN0VG9M
ZW5ndGgpOgorICAgICAgICAoVGVzdE1lbW9yeUxpbWl0cyk6CisgICAgICAgIFJlcGxhY2UgaW5j
b3JyZWN0IHNob3VsZFRocm93KC4uLiwgZXJyb3JUeXBlKSB3aXRoIGV4cGxpY2l0IHNob3VsZFRo
cm93KC4uLiwgZXJyb3JNZXNzYWdlKS4KKyAgICAgICAgVGhlIG9sZCBzaG91bGRUaHJvdyB3b3Vs
ZCBpbmNvcnJlY3RseSBzdWNjZWVkIGlmIHRoZSBleHBlY3RlZCBlcnJvciB0eXBlIHdhcyBqdXN0
ICJFcnJvciIuCisgICAgICAgIE5vdyB3ZSBleHBsaWNpdGx5IGNoZWNrIHRoZSBlcnJvciBtZXNz
YWdlLgorCisyMDE2LTA3LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+
CisKICAgICAgICAgVW5leHBlY3RlZCAiT3V0IG9mIG1lbW9yeSIgZXJyb3IgZm9yICJ4Ii5yZXBl
YXQoLTEpCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTk1MjkKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2Jh
bE9wZXJhdGlvbnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT3Bl
cmF0aW9ucy5qcwppbmRleCA5YTY2ZjM4Li40ZjZhN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcwpAQCAtNDUsOCArNDUsNyBA
QCBmdW5jdGlvbiB0b0xlbmd0aCh0YXJnZXQpCiAKICAgICB2YXIgbGVuZ3RoID0gQHRvSW50ZWdl
cih0YXJnZXQpOwogICAgIC8vIG9yaWdpbmFsbHkgTWF0aC5taW4oTWF0aC5tYXgobGVuZ3RoLCAw
KSwgbWF4U2FmZUludGVnZXIpKTsKLSAgICByZXR1cm4gbGVuZ3RoID4gMCA/IChsZW5ndGggPCBA
TUFYX1NBRkVfSU5URUdFUj8gbGVuZ3RoIDogQE1BWF9TQUZFX0lOVEVHRVIpIDogMDsKLQorICAg
IHJldHVybiBsZW5ndGggPiAwID8gKGxlbmd0aCA8IEBNQVhfU0FGRV9JTlRFR0VSID8gbGVuZ3Ro
IDogQE1BWF9TQUZFX0lOVEVHRVIpIDogMDsKIH0KIAogQGdsb2JhbFByaXZhdGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDJk
MDgwZGIuLjhlMzAzN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlu
cy9TdHJpbmdQcm90b3R5cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5z
L1N0cmluZ1Byb3RvdHlwZS5qcwpAQCAtMTUzLDYgKzE1Myw5IEBAIGZ1bmN0aW9uIHBhZFN0YXJ0
KG1heExlbmd0aC8qLCBmaWxsU3RyaW5nKi8pCiAgICAgICAgICAgICByZXR1cm4gc3RyaW5nOwog
ICAgIH0KIAorICAgIGlmIChtYXhMZW5ndGggPiBATUFYX1NUUklOR19MRU5HVEgpCisgICAgICAg
IHRocm93IG5ldyBARXJyb3IoIk91dCBvZiBtZW1vcnkiKTsKKwogICAgIHZhciBmaWxsTGVuZ3Ro
ID0gbWF4TGVuZ3RoIC0gc3RyaW5nTGVuZ3RoOwogICAgIHZhciB0cnVuY2F0ZWRTdHJpbmdGaWxs
ZXI7CiAKQEAgLTE4OSw2ICsxOTIsOSBAQCBmdW5jdGlvbiBwYWRFbmQobWF4TGVuZ3RoLyosIGZp
bGxTdHJpbmcqLykKICAgICAgICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgfQogCisgICAgaWYg
KG1heExlbmd0aCA+IEBNQVhfU1RSSU5HX0xFTkdUSCkKKyAgICAgICAgdGhyb3cgbmV3IEBFcnJv
cigiT3V0IG9mIG1lbW9yeSIpOworCiAgICAgdmFyIGZpbGxMZW5ndGggPSBtYXhMZW5ndGggLSBz
dHJpbmdMZW5ndGg7CiAgICAgdmFyIHRydW5jYXRlZFN0cmluZ0ZpbGxlcjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNf
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMtcHJveHkuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycy1wcm94eS5qcwppbmRleCA5NTJjMjBmLi4yMjc4MWRjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy1wcm94eS5qcworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ycy1wcm94eS5qcwpAQCAtNywxNiArNyw2IEBAIGZ1bmN0aW9u
IHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1zZykgewogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZScgKyBtc2cgKyAnOiAnICsgYWN0dWFsICsgJy4gRXhwZWN0ZWQgJyArIGV4
cGVjdGVkKTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7Ci0g
ICAgdHJ5IHsKLSAgICAgICAgZnVuYygpOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVj
dGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1dCBk
aWQgbm90IHRocm93LicpOwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgaWYgKGUgaW5zdGFu
Y2VvZiBlcnJvclR5cGUpIHJldHVybjsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3Rl
ZCAnICsgZnVuYyArICcoKSB0byB0aHJvdyAnICsgZXJyb3JUeXBlLm5hbWUgKyAnLCBidXQgdGhy
ZXcgJyArIGUpOwotICAgIH0KLX0KLQogZnVuY3Rpb24gc2hvdWxkQmVEYXRhUHJvcGVydHkoZXhw
ZWN0ZWQsIHZhbHVlLCBuYW1lKSB7CiAgICAgaWYgKG5hbWUgPT09IHZvaWQgMCkKICAgICAgICAg
bmFtZSA9ICc8cHJvcGVydHkgZGVzY3JpcHRvcj4nOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09i
amVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy5qcwpp
bmRleCA0ZWY3NDZjLi5mZjMwZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ycy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9z
dGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy5qcwpAQCAtNywx
NCArNywxOSBAQCBmdW5jdGlvbiBzaG91bGRCZShleHBlY3RlZCwgYWN0dWFsLCBtc2cpIHsKICAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWUnICsgbXNnICsgJzogJyArIGFjdHVhbCAr
ICcuIEV4cGVjdGVkICcgKyBleHBlY3RlZCk7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZFRocm93KGZ1
bmMsIGVycm9yVHlwZSkgeworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdl
KSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVsbDsK
ICAgICB0cnkgewogICAgICAgICBmdW5jKCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhw
ZWN0ZWQgJyArIGZ1bmMgKyAnKCkgdG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywgYnV0
IGRpZCBub3QgdGhyb3cuJyk7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoZSBpbnN0
YW5jZW9mIGVycm9yVHlwZSkgcmV0dXJuOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVj
dGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1dCB0
aHJldyAnICsgZSk7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3Ig
PSBlOwogICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdl
KQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWAp
OwogfQogCiBmdW5jdGlvbiBzaG91bGRCZURhdGFQcm9wZXJ0eShleHBlY3RlZCwgdmFsdWUsIG5h
bWUpIHsKQEAgLTM4LDEzICs0MywxMyBAQCBmdW5jdGlvbiBzaG91bGRCZURhdGFQcm9wZXJ0eShl
eHBlY3RlZCwgdmFsdWUsIG5hbWUpIHsKICAgICBzaG91bGRCZSh0cnVlLCBwcm9wZXJ0eURlc2Ny
aXB0b3Iud3JpdGFibGUpOwogICAgIHNob3VsZEJlKHRydWUsIHByb3BlcnR5RGVzY3JpcHRvci5j
b25maWd1cmFibGUpOwogCi0gICAgc2hvdWxkVGhyb3coKCkgPT4gbmV3IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JzKHt9KSwgVHlwZUVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9
PiBuZXcgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoe30pLCAiVHlwZUVycm9yOiBm
dW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JzKHt9KScpIik7CiB9KSgpOwogCiAoZnVuY3Rpb24gdGVzdFRv
T2JqZWN0KCkgewotICAgIHNob3VsZFRocm93KCgpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3JzKG51bGwpLCBUeXBlRXJyb3IpOwotICAgIHNob3VsZFRocm93KCgpID0+IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHVuZGVmaW5lZCksIFR5cGVFcnJvcik7Ci0gICAg
c2hvdWxkVGhyb3coKCkgPT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoKSwgVHlw
ZUVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ycyhudWxsKSwgIlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0
aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhudWxsKScpIik7CisgICAgc2hv
dWxkVGhyb3coKCkgPT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModW5kZWZpbmVk
KSwgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHVuZGVmaW5lZCknKSIpOworICAgIHNob3Vs
ZFRocm93KCgpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKCksICJUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9ycygpJykiKTsKIH0pKCk7CiAKIChmdW5jdGlvbiB0ZXN0UHJvdG90
eXBlUHJvcGVydGllcygpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0
cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucGFkRW5kLmpz
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhv
ZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuanMKaW5kZXggNDEyNDJiYi4uNmQ4ZTAzNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBl
X21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuanMKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlw
ZS5wYWRFbmQuanMKQEAgLTcsMTQgKzcsMTkgQEAgZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQs
IGFjdHVhbCwgbXNnKSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlJyArIG1z
ZyArICc6ICcgKyBhY3R1YWwgKyAnLiBFeHBlY3RlZCAnICsgZXhwZWN0ZWQpOwogfQogCi1mdW5j
dGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKK2Z1bmN0aW9uIHNob3VsZFRocm93
KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAg
IHZhciBlcnJvciA9IG51bGw7CiAgICAgdHJ5IHsKICAgICAgICAgZnVuYygpOwotICAgICAgICB0
aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBlcnJv
clR5cGUubmFtZSArICcsIGJ1dCBkaWQgbm90IHRocm93LicpOwogICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBlcnJvclR5cGUpIHJldHVybjsKLSAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyArICcoKSB0byB0aHJvdyAnICsgZXJyb3JU
eXBlLm5hbWUgKyAnLCBidXQgdGhyZXcgJyArIGUpOworICAgICAgICBlcnJvclRocm93biA9IHRy
dWU7CisgICAgICAgIGVycm9yID0gZTsKICAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAg
ICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJv
cikgIT09IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6
ICR7U3RyaW5nKGVycm9yKX1gKTsKIH0KIAogKGZ1bmN0aW9uIFRlc3RNZXRhKCkgewpAQCAtMzEs
MTMgKzM2LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAg
IHNob3VsZEJlKHRydWUsIGRlc2NyaXB0b3Iud3JpdGFibGUpOwogICAgIHNob3VsZEJlKFN0cmlu
Zy5wcm90b3R5cGUucGFkRW5kLCBkZXNjcmlwdG9yLnZhbHVlKTsKIAotICAgIHNob3VsZFRocm93
KCgpID0+IG5ldyBGdW5jdGlvbihgJHtTdHJpbmcucHJvdG90eXBlLnBhZEVuZH1gKSwgU3ludGF4
RXJyb3IpOworICAgIHNob3VsZFRocm93KCgpID0+IG5ldyBGdW5jdGlvbihgJHtTdHJpbmcucHJv
dG90eXBlLnBhZEVuZH1gKSwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ2Nv
ZGUnLiBFeHBlY3RlZCBlaXRoZXIgYSBjbG9zaW5nICddJyBvciBhICcsJyBmb2xsb3dpbmcgYW4g
YXJyYXkgZWxlbWVudC4iKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0UmVxdWlyZU9iamVjdENv
ZXJjaWJsZSgpIHsKICAgICB2YXIgcGFkRW5kID0gU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQ7Ci0g
ICAgc2hvdWxkVGhyb3coKCkgPT4gcGFkRW5kLmNhbGwobnVsbCwgNCwgInRlc3QiKSwgVHlwZUVy
cm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRFbmQuY2FsbCh1bmRlZmluZWQsIDQsICJ0
ZXN0IiksIFR5cGVFcnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gcGFkRW5kLmNhbGwobnVs
bCwgNCwgInRlc3QiKSwgIlR5cGVFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQgcmVxdWly
ZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRF
bmQuY2FsbCh1bmRlZmluZWQsIDQsICJ0ZXN0IiksICJUeXBlRXJyb3I6IFN0cmluZy5wcm90b3R5
cGUucGFkRW5kIHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWQiKTsKICAgICBz
aG91bGRCZSgiMTIzICAgIiwgcGFkRW5kLmNhbGwoewogICAgICAgICBfX3Byb3RvX186IG51bGws
CiAgICAgICAgIHZhbHVlT2YoKSB7IHJldHVybiAxMjM7IH0KQEAgLTYzLDcgKzY4LDcgQEAgZnVu
Y3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiB9KSgpOwogCiAoZnVuY3Rpb24g
VGVzdFRvTGVuZ3RoKCkgewotICAgIHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZEVuZChTeW1i
b2woIjE2IikpLCBUeXBlRXJyb3IpOworICAgIHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZEVu
ZChTeW1ib2woIjE2IikpLCAiVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBh
IG51bWJlciIpOwogICAgIHNob3VsZEJlKCIxMjMiLCAiMTIzIi5wYWRFbmQoLTEpKTsKICAgICBz
aG91bGRCZSgiMTIzIiwgIjEyMyIucGFkRW5kKHsgdG9TdHJpbmcoKSB7IHJldHVybiAtMTsgfSB9
KSk7CiAgICAgc2hvdWxkQmUoIjEyMyIsICIxMjMiLnBhZEVuZCgtMCkpOwpAQCAtOTYsOSArMTAx
LDkgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiB9KSgpOwogCiAo
ZnVuY3Rpb24gVGVzdE1lbW9yeUxpbWl0cygpIHsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIu
cGFkRW5kKDB4ODAwMDAwMDAsICJvIiksIEVycm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAi
LiIucGFkRW5kKHsgdmFsdWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgRXJy
b3IpOwotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRFbmQoIjB4ODAwMDAwMDAiLCAibyIp
LCBFcnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZEVuZCgweDgwMDAwMDAwLCAi
byIpLCAiRXJyb3I6IE91dCBvZiBtZW1vcnkiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIu
cGFkRW5kKHsgdmFsdWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgIkVycm9y
OiBPdXQgb2YgbWVtb3J5Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZEVuZCgiMHg4
MDAwMDAwMCIsICJvIiksICJFcnJvcjogT3V0IG9mIG1lbW9yeSIpOwogfSkoKTsKIAogKGZ1bmN0
aW9uIFRlc3RGaWxsZXJSZXBldGl0aW9uKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlw
ZS5wYWRTdGFydC5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnBy
b3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuanMKaW5kZXggNzA4NWJh
Zi4uZjhlNTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9T
dHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5qcworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9k
c19TdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LmpzCkBAIC03LDE0ICs3LDE5IEBAIGZ1bmN0aW9u
IHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1zZykgewogICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoJ2JhZCB2YWx1ZScgKyBtc2cgKyAnOiAnICsgYWN0dWFsICsgJy4gRXhwZWN0ZWQgJyArIGV4
cGVjdGVkKTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7Citm
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JU
aHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOwogICAgIHRyeSB7CiAgICAgICAg
IGZ1bmMoKTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyArICco
KSB0byB0aHJvdyAnICsgZXJyb3JUeXBlLm5hbWUgKyAnLCBidXQgZGlkIG5vdCB0aHJvdy4nKTsK
ICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGlmIChlIGluc3RhbmNlb2YgZXJyb3JUeXBlKSBy
ZXR1cm47Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgJyArIGZ1bmMgKyAnKCkg
dG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywgYnV0IHRocmV3ICcgKyBlKTsKKyAgICAg
ICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CiAgICAgfQorICAgIGlm
ICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOwor
ICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5l
dyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7CiB9CiAKIChmdW5jdGlvbiBU
ZXN0TWV0YSgpIHsKQEAgLTMxLDEzICszNiwxMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5j
LCBlcnJvclR5cGUpIHsKICAgICBzaG91bGRCZSh0cnVlLCBkZXNjcmlwdG9yLndyaXRhYmxlKTsK
ICAgICBzaG91bGRCZShTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LCBkZXNjcmlwdG9yLnZhbHVl
KTsKIAotICAgIHNob3VsZFRocm93KCgpID0+IG5ldyBGdW5jdGlvbihgJHtTdHJpbmcucHJvdG90
eXBlLnBhZFN0YXJ0fWApLCBTeW50YXhFcnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gbmV3
IEZ1bmN0aW9uKGAke1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnR9YCksICJTeW50YXhFcnJvcjog
VW5leHBlY3RlZCBpZGVudGlmaWVyICdjb2RlJy4gRXhwZWN0ZWQgZWl0aGVyIGEgY2xvc2luZyAn
XScgb3IgYSAnLCcgZm9sbG93aW5nIGFuIGFycmF5IGVsZW1lbnQuIik7CiB9KSgpOwogCiAoZnVu
Y3Rpb24gVGVzdFJlcXVpcmVPYmplY3RDb2VyY2libGUoKSB7CiAgICAgdmFyIHBhZFN0YXJ0ID0g
U3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydDsKLSAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRTdGFy
dC5jYWxsKG51bGwsIDQsICJ0ZXN0IiksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkg
PT4gcGFkU3RhcnQuY2FsbCh1bmRlZmluZWQsIDQsICJ0ZXN0IiksIFR5cGVFcnJvcik7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4gcGFkU3RhcnQuY2FsbChudWxsLCA0LCAidGVzdCIpLCAiVHlwZUVy
cm9yOiBTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBi
ZSBudWxsIik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gcGFkU3RhcnQuY2FsbCh1bmRlZmluZWQs
IDQsICJ0ZXN0IiksICJUeXBlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQgcmVxdWly
ZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZCIpOwogICAgIHNob3VsZEJlKCIgICAxMjMi
LCBwYWRTdGFydC5jYWxsKHsKICAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgICAgICB2YWx1
ZU9mKCkgeyByZXR1cm4gMTIzOyB9CkBAIC02Myw3ICs2OCw3IEBAIGZ1bmN0aW9uIHNob3VsZFRo
cm93KGZ1bmMsIGVycm9yVHlwZSkgewogfSkoKTsKIAogKGZ1bmN0aW9uIFRlc3RUb0xlbmd0aCgp
IHsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAiMTIzIi5wYWRTdGFydChTeW1ib2woIjE2IikpLCBU
eXBlRXJyb3IpOworICAgIHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZFN0YXJ0KFN5bWJvbCgi
MTYiKSksICJUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgbnVtYmVyIik7
CiAgICAgc2hvdWxkQmUoIjEyMyIsICIxMjMiLnBhZFN0YXJ0KC0xKSk7CiAgICAgc2hvdWxkQmUo
IjEyMyIsICIxMjMiLnBhZFN0YXJ0KHsgdG9TdHJpbmcoKSB7IHJldHVybiAtMTsgfSB9KSk7CiAg
ICAgc2hvdWxkQmUoIjEyMyIsICIxMjMiLnBhZFN0YXJ0KC0wKSk7CkBAIC05Niw5ICsxMDEsOSBA
QCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIH0pKCk7CiAKIChmdW5j
dGlvbiBUZXN0TWVtb3J5TGltaXRzKCkgewotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRT
dGFydCgweDgwMDAwMDAwLCAibyIpLCBFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gIi4i
LnBhZFN0YXJ0KHsgdmFsdWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgRXJy
b3IpOwotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRTdGFydCgiMHg4MDAwMDAwMCIsICJv
IiksIEVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkU3RhcnQoMHg4MDAwMDAw
MCwgIm8iKSwgIkVycm9yOiBPdXQgb2YgbWVtb3J5Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4g
Ii4iLnBhZFN0YXJ0KHsgdmFsdWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwg
IkVycm9yOiBPdXQgb2YgbWVtb3J5Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZFN0
YXJ0KCIweDgwMDAwMDAwIiwgIm8iKSwgIkVycm9yOiBPdXQgb2YgbWVtb3J5Iik7CiB9KSgpOwog
CiAoZnVuY3Rpb24gVGVzdEZpbGxlclJlcGV0aXRpb24oKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283106</attachid>
            <date>2016-07-07 21:44:52 -0700</date>
            <delta_ts>2016-07-07 22:23:36 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>pad-2.patch</filename>
            <type>text/plain</type>
            <size>30061</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmI4MGNkLi5lMzg4NDgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBwYWRT
dGFydC9wYWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJlc3VsdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9zY3JpcHQt
dGVzdHMvc3RyaW5nLXBhZGVuZC5qczogQWRkZWQuCisgICAgICAgICh0aGlzT2JqZWN0LnRvU3Ry
aW5nKToKKyAgICAgICAgKGxlbmd0aE9iamVjdC52YWx1ZU9mKToKKyAgICAgICAgKGZpbGxPYmpl
Y3QudG9TdHJpbmcpOgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQu
anM6IEFkZGVkLgorICAgICAgICAodGhpc09iamVjdC50b1N0cmluZyk6CisgICAgICAgIChsZW5n
dGhPYmplY3QudmFsdWVPZik6CisgICAgICAgIChmaWxsT2JqZWN0LnRvU3RyaW5nKToKKyAgICAg
ICAgKiBqcy9zdHJpbmctcGFkZW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICoganMv
c3RyaW5nLXBhZGVuZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9zdHJpbmctcGFkc3RhcnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9zdHJpbmctcGFkc3RhcnQuaHRtbDog
QWRkZWQuCisgICAgICAgIEFkZCBzb21lIGJhc2ljIFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQv
cGFkRW5kIHRlc3QgY292ZXJhZ2UKKyAgICAgICAgdGhhdCBpcyBub3QganVzdCBpbiB0aGUgSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2IGRpcmVjdG9yeS4KKworMjAxNi0wNy0wNyAgSm9zZXBoIFBl
Y29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAgIFVuZXhwZWN0ZWQgIk91dCBv
ZiBtZW1vcnkiIGVycm9yIGZvciAieCIucmVwZWF0KC0xKQogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTI5CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkZW5kLmpzIGIvTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL3N0cmluZy1wYWRlbmQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMGQxMmY1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9zdHJpbmctcGFkZW5kLmpzCkBAIC0wLDAgKzEsODMgQEAKK2Rlc2NyaXB0aW9uKCJUaGlz
IHRlc3QgY2hlY2tzIHRoZSBTdHJpbmcucHJvdG90eXBlLnBhZEVuZC4iKTsKKworc2hvdWxkQmUo
J1N0cmluZy5wcm90b3R5cGUucGFkRW5kLmxlbmd0aCcsICcxJyk7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ1N0cmluZy5wcm90b3R5cGUucGFkRW5kLm5hbWUnLCAncGFkRW5kJyk7CitzaG91bGRC
ZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFk
RW5kIikuY29uZmlndXJhYmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS5lbnVtZXJhYmxlJywg
J2ZhbHNlJyk7CitzaG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJp
bmcucHJvdG90eXBlLCAicGFkRW5kIikud3JpdGFibGUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIp
LmdldCcsICd1bmRlZmluZWQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS5zZXQnLCAndW5kZWZpbmVkJyk7Citz
aG91bGRCZSgnT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBl
LCAicGFkRW5kIikudmFsdWUnLCAnU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQnKTsKKworc2hvdWxk
QmUoIidmb28nLnBhZEVuZCgpIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKCsw
KSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZEVuZCgtMCkiLCAiJ2ZvbyciKTsKK3No
b3VsZEJlKCInZm9vJy5wYWRFbmQoMSkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRF
bmQoMikiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoLTIpIiwgIidmb28nIik7
CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwKSIsICAgICAgICAgICAgICAiJ2ZvbyAgICAgICAn
Iik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCB1bmRlZmluZWQpIiwgICAiJ2ZvbyAgICAg
ICAnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAneCcpIiwgICAgICAgICAiJ2Zvb3h4
eHh4eHgnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLjUsICd6JykiLCAgICAgICAiJ2Zv
b3p6enp6enonIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAnYmFyJykiLCAgICAgICAi
J2Zvb2JhcmJhcmInIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDEwLCAnMTIzNDU2Nzg5Jyki
LCAiJ2ZvbzEyMzQ1NjcnIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKDk5OSwgJycpIiwgIidm
b28nIik7CitzaG91bGRCZSgiJycucGFkRW5kKDEsICcnKSIsICInJyIpOworc2hvdWxkQmUoIicn
LnBhZEVuZCgyLCAnYmFyJykiLCAiJ2JhJyIpOworc2hvdWxkQmUoIid4Jy5wYWRFbmQoMiwgJ2Jh
cicpIiwgIid4YiciKTsKK3Nob3VsZEJlKCIneHgnLnBhZEVuZCgyLCAnYmFyJykiLCAiJ3h4JyIp
Oworc2hvdWxkQmUoIid4eCcucGFkRW5kKE1hdGguUEksICdiYXInKSIsICIneHhiJyIpOworCisv
LyBDb2VyY2UgbGVuZ3RoIChUb0xlbmd0aCkuCitzaG91bGRCZSgiJycucGFkRW5kKHRydWUsICdB
QkMnKSIsICInQSciKTsKK3Nob3VsZEJlKCInJy5wYWRFbmQoZmFsc2UsICdBQkMnKSIsICInJyIp
Oworc2hvdWxkQmUoIicnLnBhZEVuZChudWxsLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCIn
Jy5wYWRFbmQoe30sICdBQkMnKSIsICInJyIpOworc2hvdWxkQmUoIicnLnBhZEVuZChOYU4sICdB
QkMnKSIsICInJyIpOworCisvLyBDb2VyY2UgZmlsbFN0cmluZyAoVG9TdHJpbmcpLgorc2hvdWxk
QmUoIidBQkMnLnBhZEVuZCgxMCwgdHJ1ZSkiLCAgIidBQkN0cnVldHJ1JyIpOworc2hvdWxkQmUo
IidBQkMnLnBhZEVuZCgxMCwgZmFsc2UpIiwgIidBQkNmYWxzZWZhJyIpOworc2hvdWxkQmUoIidB
QkMnLnBhZEVuZCgxMCwgbnVsbCkiLCAgIidBQkNudWxsbnVsJyIpOworc2hvdWxkQmUoIidBQkMn
LnBhZEVuZCgxMCwge30pIiwgICAgIidBQkNbb2JqZWN0JyIpOworc2hvdWxkQmUoIidBQkMnLnBh
ZEVuZCgxMCwgTmFOKSIsICAgIidBQkNOYU5OYU5OJyIpOworCisvLyBDaGVjayBvdXQgb2YgbWVt
b3J5IGVycm9ycy4KK3Nob3VsZE5vdFRocm93KCcieCIucGFkRW5kKEluZmluaXR5LCAiIiknKTsg
Ly8gRW1wdHkgc3RyaW5nIGZpbGxlciBpcyBmaW5lLgorc2hvdWxkVGhyb3coJyJ4Ii5wYWRFbmQo
SW5maW5pdHksICJ4IiknLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5JyIpOworc2hvdWxkVGhyb3co
JyJ4Ii5wYWRFbmQoMHg4MDAwMDAwMCwgIngiKScsICInRXJyb3I6IE91dCBvZiBtZW1vcnknIik7
CitzaG91bGRUaHJvdygnIngiLnBhZEVuZCgweEZGRkZGRkZGLCAieCIpJywgIidFcnJvcjogT3V0
IG9mIG1lbW9yeSciKTsKKworLy8gQ2hlY2sgc2lkZS1lZmZlY3RzLgorbGV0IHNpZGVFZmZlY3Rz
ID0gIiI7CitsZXQgdGhpc09iamVjdCA9IG5ldyBTdHJpbmcoImZvbyBiYXIiKTsKK2xldCBsZW5n
dGhPYmplY3QgPSBuZXcgTnVtYmVyKDEwKTsKK2xldCBmaWxsT2JqZWN0ID0gbmV3IFN0cmluZygi
WCIpOworCitzaWRlRWZmZWN0cyA9ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyBzaWRlRWZmZWN0cyArPSAiQSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3RoT2JqZWN0LnZh
bHVlT2YgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkIiOyByZXR1cm4gdGhpczsgfTsK
K2ZpbGxPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkMiOyBy
ZXR1cm4gdGhpczsgfTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nLnByb3RvdHlwZS5w
YWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwgImZvbyBi
YXJYWFgiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQUJDIik7CisK
K3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHRo
cm93ICJFUlJPUiI7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBzaWRl
RWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1
bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJldHVybiB0aGlzOyB9Oworc2hvdWxkVGhy
b3coIlN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0
LCBmaWxsT2JqZWN0KSIsICInRVJST1InIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpZGVF
ZmZlY3RzIiwgIiIpOworCitzaWRlRWZmZWN0cyA9ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3Ro
T2JqZWN0LnZhbHVlT2YgPSBmdW5jdGlvbigpIHsgdGhyb3cgIkVSUk9SIjsgfTsKK2ZpbGxPYmpl
Y3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkMiOyByZXR1cm4gdGhp
czsgfTsKK3Nob3VsZFRocm93KCJTdHJpbmcucHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmpl
Y3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJBIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlz
T2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJu
IHRoaXM7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0
cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9u
KCkgeyB0aHJvdyAiRVJST1IiOyByZXR1cm4gdGhpczsgfTsKK3Nob3VsZFRocm93KCJTdHJpbmcu
cHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVj
dCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJB
QiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRz
dGFydC5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjQ5MGU3NQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQuanMKQEAg
LTAsMCArMSw4MyBAQAorZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdGhlIFN0cmluZy5w
cm90b3R5cGUucGFkU3RhcnQuIik7CisKK3Nob3VsZEJlKCdTdHJpbmcucHJvdG90eXBlLnBhZFN0
YXJ0Lmxlbmd0aCcsICcxJyk7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ1N0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQubmFtZScsICdwYWRTdGFydCcpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0IikuY29uZmlndXJh
YmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmVudW1lcmFibGUnLCAnZmFsc2UnKTsKK3No
b3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUs
ICJwYWRTdGFydCIpLndyaXRhYmxlJywgJ3RydWUnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmdldCcsICd1
bmRlZmluZWQnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0
cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLnNldCcsICd1bmRlZmluZWQnKTsKK3Nob3VsZEJl
KCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRT
dGFydCIpLnZhbHVlJywgJ1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQnKTsKKworc2hvdWxkQmUo
Iidmb28nLnBhZFN0YXJ0KCkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgr
MCkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgtMCkiLCAiJ2ZvbyciKTsK
K3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28n
LnBhZFN0YXJ0KDIpIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoLTIpIiwg
Iidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoMTApIiwgICAgICAgICAgICAgICIn
ICAgICAgIGZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxMCwgdW5kZWZpbmVkKSIs
ICAgIicgICAgICAgZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0KDEwLCAneCcpIiwg
ICAgICAgICAiJ3h4eHh4eHhmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoMTAuNSwg
J3onKSIsICAgICAgICInenp6enp6emZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgx
MCwgJ2JhcicpIiwgICAgICAgIidiYXJiYXJiZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0
YXJ0KDEwLCAnMTIzNDU2Nzg5JykiLCAiJzEyMzQ1Njdmb28nIik7CitzaG91bGRCZSgiJ2Zvbycu
cGFkU3RhcnQoOTk5LCAnJykiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCgxLCAn
JykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCgyLCAnYmFyJykiLCAiJ2JhJyIpOwor
c2hvdWxkQmUoIid4Jy5wYWRTdGFydCgyLCAnYmFyJykiLCAiJ2J4JyIpOworc2hvdWxkQmUoIid4
eCcucGFkU3RhcnQoMiwgJ2JhcicpIiwgIid4eCciKTsKK3Nob3VsZEJlKCIneHgnLnBhZFN0YXJ0
KE1hdGguUEksICdiYXInKSIsICInYnh4JyIpOworCisvLyBDb2VyY2UgbGVuZ3RoIChUb0xlbmd0
aCkuCitzaG91bGRCZSgiJycucGFkU3RhcnQodHJ1ZSwgJ0FCQycpIiwgIidBJyIpOworc2hvdWxk
QmUoIicnLnBhZFN0YXJ0KGZhbHNlLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRT
dGFydChudWxsLCAnQUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydCh7fSwgJ0FC
QycpIiwgIicnIik7CitzaG91bGRCZSgiJycucGFkU3RhcnQoTmFOLCAnQUJDJykiLCAiJyciKTsK
KworLy8gQ29lcmNlIGZpbGxTdHJpbmcgKFRvU3RyaW5nKS4KK3Nob3VsZEJlKCInQUJDJy5wYWRT
dGFydCgxMCwgdHJ1ZSkiLCAgIid0cnVldHJ1QUJDJyIpOworc2hvdWxkQmUoIidBQkMnLnBhZFN0
YXJ0KDEwLCBmYWxzZSkiLCAiJ2ZhbHNlZmFBQkMnIik7CitzaG91bGRCZSgiJ0FCQycucGFkU3Rh
cnQoMTAsIG51bGwpIiwgICInbnVsbG51bEFCQyciKTsKK3Nob3VsZEJlKCInQUJDJy5wYWRTdGFy
dCgxMCwge30pIiwgICAgIidbb2JqZWN0QUJDJyIpOworc2hvdWxkQmUoIidBQkMnLnBhZFN0YXJ0
KDEwLCBOYU4pIiwgICAiJ05hTk5hTk5BQkMnIik7CisKKy8vIENoZWNrIG91dCBvZiBtZW1vcnkg
ZXJyb3JzLgorc2hvdWxkTm90VGhyb3coJyJ4Ii5wYWRTdGFydChJbmZpbml0eSwgIiIpJyk7IC8v
IEVtcHR5IHN0cmluZyBmaWxsZXIgaXMgZmluZS4KK3Nob3VsZFRocm93KCcieCIucGFkU3RhcnQo
SW5maW5pdHksICJ4IiknLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5JyIpOworc2hvdWxkVGhyb3co
JyJ4Ii5wYWRTdGFydCgweDgwMDAwMDAwLCAieCIpJywgIidFcnJvcjogT3V0IG9mIG1lbW9yeSci
KTsKK3Nob3VsZFRocm93KCcieCIucGFkU3RhcnQoMHhGRkZGRkZGRiwgIngiKScsICInRXJyb3I6
IE91dCBvZiBtZW1vcnknIik7CisKKy8vIENoZWNrIHNpZGUtZWZmZWN0cy4KK2xldCBzaWRlRWZm
ZWN0cyA9ICIiOworbGV0IHRoaXNPYmplY3QgPSBuZXcgU3RyaW5nKCJmb28gYmFyIik7CitsZXQg
bGVuZ3RoT2JqZWN0ID0gbmV3IE51bWJlcigxMCk7CitsZXQgZmlsbE9iamVjdCA9IG5ldyBTdHJp
bmcoIlgiKTsKKworc2lkZUVmZmVjdHMgPSAiIjsKK3RoaXNPYmplY3QudG9TdHJpbmcgPSBmdW5j
dGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkEiOyByZXR1cm4gdGhpczsgfTsKK2xlbmd0aE9iamVj
dC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJCIjsgcmV0dXJuIHRoaXM7
IH07CitmaWxsT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJD
IjsgcmV0dXJuIHRoaXM7IH07CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoIlN0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwg
IlhYWGZvbyBiYXIiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQUJD
Iik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24o
KSB7IHRocm93ICJFUlJPUiI7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkg
eyBzaWRlRWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmlu
ZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJldHVybiB0aGlzOyB9Oworc2hv
dWxkVGhyb3coIlN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5n
dGhPYmplY3QsIGZpbGxPYmplY3QpIiwgIidFUlJPUiciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
Zygic2lkZUVmZmVjdHMiLCAiIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJuIHRoaXM7IH07
CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAiRVJST1IiOyB9Owor
ZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJl
dHVybiB0aGlzOyB9Oworc2hvdWxkVGhyb3coIlN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuY2Fs
bCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIiwgIidFUlJPUiciKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygic2lkZUVmZmVjdHMiLCAiQSIpOworCitzaWRlRWZmZWN0cyA9
ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAi
QSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3RoT2JqZWN0LnZhbHVlT2YgPSBmdW5jdGlvbigpIHsg
c2lkZUVmZmVjdHMgKz0gIkIiOyByZXR1cm4gdGhpczsgfTsKK2ZpbGxPYmplY3QudG9TdHJpbmcg
PSBmdW5jdGlvbigpIHsgdGhyb3cgIkVSUk9SIjsgcmV0dXJuIHRoaXM7IH07CitzaG91bGRUaHJv
dygiU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVj
dCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRl
RWZmZWN0cyIsICJBQiIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZGVu
ZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNWY4NWNmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZGVuZC1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw1NyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIFN0cmluZy5wcm90b3R5cGUu
cGFkRW5kLmxlbmd0aCBpcyAxCitQQVNTIFN0cmluZy5wcm90b3R5cGUucGFkRW5kLm5hbWUgaXMg
InBhZEVuZCIKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJv
dG90eXBlLCAicGFkRW5kIikuY29uZmlndXJhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkRW5kIikuZW51bWVyYWJs
ZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5w
cm90b3R5cGUsICJwYWRFbmQiKS53cml0YWJsZSBpcyB0cnVlCitQQVNTIE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIpLmdldCBpcyB1bmRl
ZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90
eXBlLCAicGFkRW5kIikuc2V0IGlzIHVuZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVy
dHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS52YWx1ZSBpcyBTdHJpbmcu
cHJvdG90eXBlLnBhZEVuZAorUEFTUyAnZm9vJy5wYWRFbmQoKSBpcyAnZm9vJworUEFTUyAnZm9v
Jy5wYWRFbmQoKzApIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgtMCkgaXMgJ2ZvbycKK1BB
U1MgJ2ZvbycucGFkRW5kKDEpIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgyKSBpcyAnZm9v
JworUEFTUyAnZm9vJy5wYWRFbmQoLTIpIGlzICdmb28nCitQQVNTICdmb28nLnBhZEVuZCgxMCkg
aXMgJ2ZvbyAgICAgICAnCitQQVNTICdmb28nLnBhZEVuZCgxMCwgdW5kZWZpbmVkKSBpcyAnZm9v
ICAgICAgICcKK1BBU1MgJ2ZvbycucGFkRW5kKDEwLCAneCcpIGlzICdmb294eHh4eHh4JworUEFT
UyAnZm9vJy5wYWRFbmQoMTAuNSwgJ3onKSBpcyAnZm9venp6enp6eicKK1BBU1MgJ2ZvbycucGFk
RW5kKDEwLCAnYmFyJykgaXMgJ2Zvb2JhcmJhcmInCitQQVNTICdmb28nLnBhZEVuZCgxMCwgJzEy
MzQ1Njc4OScpIGlzICdmb28xMjM0NTY3JworUEFTUyAnZm9vJy5wYWRFbmQoOTk5LCAnJykgaXMg
J2ZvbycKK1BBU1MgJycucGFkRW5kKDEsICcnKSBpcyAnJworUEFTUyAnJy5wYWRFbmQoMiwgJ2Jh
cicpIGlzICdiYScKK1BBU1MgJ3gnLnBhZEVuZCgyLCAnYmFyJykgaXMgJ3hiJworUEFTUyAneHgn
LnBhZEVuZCgyLCAnYmFyJykgaXMgJ3h4JworUEFTUyAneHgnLnBhZEVuZChNYXRoLlBJLCAnYmFy
JykgaXMgJ3h4YicKK1BBU1MgJycucGFkRW5kKHRydWUsICdBQkMnKSBpcyAnQScKK1BBU1MgJycu
cGFkRW5kKGZhbHNlLCAnQUJDJykgaXMgJycKK1BBU1MgJycucGFkRW5kKG51bGwsICdBQkMnKSBp
cyAnJworUEFTUyAnJy5wYWRFbmQoe30sICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRFbmQoTmFO
LCAnQUJDJykgaXMgJycKK1BBU1MgJ0FCQycucGFkRW5kKDEwLCB0cnVlKSBpcyAnQUJDdHJ1ZXRy
dScKK1BBU1MgJ0FCQycucGFkRW5kKDEwLCBmYWxzZSkgaXMgJ0FCQ2ZhbHNlZmEnCitQQVNTICdB
QkMnLnBhZEVuZCgxMCwgbnVsbCkgaXMgJ0FCQ251bGxudWwnCitQQVNTICdBQkMnLnBhZEVuZCgx
MCwge30pIGlzICdBQkNbb2JqZWN0JworUEFTUyAnQUJDJy5wYWRFbmQoMTAsIE5hTikgaXMgJ0FC
Q05hTk5hTk4nCitQQVNTICJ4Ii5wYWRFbmQoSW5maW5pdHksICIiKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgIngiLnBhZEVuZChJbmZpbml0eSwgIngiKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRFbmQoMHg4MDAwMDAwMCwgIngiKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRFbmQoMHhG
RkZGRkZGRiwgIngiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCitQQVNT
IFN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0LCBm
aWxsT2JqZWN0KSBpcyAiZm9vIGJhclhYWCIKK1BBU1Mgc2lkZUVmZmVjdHMgaXMgIkFCQyIKK1BB
U1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3Qs
IGZpbGxPYmplY3QpIHRocmV3IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVjdHMgaXMg
IiIKK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhP
YmplY3QsIGZpbGxPYmplY3QpIHRocmV3IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVj
dHMgaXMgIkEiCitQQVNTIFN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwg
bGVuZ3RoT2JqZWN0LCBmaWxsT2JqZWN0KSB0aHJldyBleGNlcHRpb24gRVJST1IuCitQQVNTIHNp
ZGVFZmZlY3RzIGlzICJBQiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLmh0
bWwgYi9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uZDdmYmQxNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2pzL3N0cmluZy1wYWRlbmQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctcGFkZW5kLmpzIj48L3NjcmlwdD4K
KyAgPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0
YXJ0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRzdGFydC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMGQzY2U1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRzdGFydC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw1NyBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU3RyaW5nLnByb3RvdHlwZS5w
YWRTdGFydC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RyaW5nLnBy
b3RvdHlwZS5wYWRTdGFydC5sZW5ndGggaXMgMQorUEFTUyBTdHJpbmcucHJvdG90eXBlLnBhZFN0
YXJ0Lm5hbWUgaXMgInBhZFN0YXJ0IgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCitQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBh
ZFN0YXJ0IikuZW51bWVyYWJsZSBpcyBmYWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRTdGFydCIpLndyaXRhYmxlIGlzIHRydWUK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAi
cGFkU3RhcnQiKS5nZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0Iikuc2V0IGlzIHVuZGVmaW5lZAor
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJw
YWRTdGFydCIpLnZhbHVlIGlzIFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQKK1BBU1MgJ2Zvbycu
cGFkU3RhcnQoKSBpcyAnZm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgrMCkgaXMgJ2ZvbycKK1BB
U1MgJ2ZvbycucGFkU3RhcnQoLTApIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KDEpIGlz
ICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KDIpIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0
YXJ0KC0yKSBpcyAnZm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgxMCkgaXMgJyAgICAgICBmb28n
CitQQVNTICdmb28nLnBhZFN0YXJ0KDEwLCB1bmRlZmluZWQpIGlzICcgICAgICAgZm9vJworUEFT
UyAnZm9vJy5wYWRTdGFydCgxMCwgJ3gnKSBpcyAneHh4eHh4eGZvbycKK1BBU1MgJ2ZvbycucGFk
U3RhcnQoMTAuNSwgJ3onKSBpcyAnenp6enp6emZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMTAs
ICdiYXInKSBpcyAnYmFyYmFyYmZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMTAsICcxMjM0NTY3
ODknKSBpcyAnMTIzNDU2N2ZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoOTk5LCAnJykgaXMgJ2Zv
bycKK1BBU1MgJycucGFkU3RhcnQoMSwgJycpIGlzICcnCitQQVNTICcnLnBhZFN0YXJ0KDIsICdi
YXInKSBpcyAnYmEnCitQQVNTICd4Jy5wYWRTdGFydCgyLCAnYmFyJykgaXMgJ2J4JworUEFTUyAn
eHgnLnBhZFN0YXJ0KDIsICdiYXInKSBpcyAneHgnCitQQVNTICd4eCcucGFkU3RhcnQoTWF0aC5Q
SSwgJ2JhcicpIGlzICdieHgnCitQQVNTICcnLnBhZFN0YXJ0KHRydWUsICdBQkMnKSBpcyAnQScK
K1BBU1MgJycucGFkU3RhcnQoZmFsc2UsICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRTdGFydChu
dWxsLCAnQUJDJykgaXMgJycKK1BBU1MgJycucGFkU3RhcnQoe30sICdBQkMnKSBpcyAnJworUEFT
UyAnJy5wYWRTdGFydChOYU4sICdBQkMnKSBpcyAnJworUEFTUyAnQUJDJy5wYWRTdGFydCgxMCwg
dHJ1ZSkgaXMgJ3RydWV0cnVBQkMnCitQQVNTICdBQkMnLnBhZFN0YXJ0KDEwLCBmYWxzZSkgaXMg
J2ZhbHNlZmFBQkMnCitQQVNTICdBQkMnLnBhZFN0YXJ0KDEwLCBudWxsKSBpcyAnbnVsbG51bEFC
QycKK1BBU1MgJ0FCQycucGFkU3RhcnQoMTAsIHt9KSBpcyAnW29iamVjdEFCQycKK1BBU1MgJ0FC
QycucGFkU3RhcnQoMTAsIE5hTikgaXMgJ05hTk5hTk5BQkMnCitQQVNTICJ4Ii5wYWRTdGFydChJ
bmZpbml0eSwgIiIpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyAieCIucGFkU3RhcnQo
SW5maW5pdHksICJ4IikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBPdXQgb2YgbWVtb3J5LgorUEFT
UyAieCIucGFkU3RhcnQoMHg4MDAwMDAwMCwgIngiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91
dCBvZiBtZW1vcnkuCitQQVNTICJ4Ii5wYWRTdGFydCgweEZGRkZGRkZGLCAieCIpIHRocmV3IGV4
Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRT
dGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkgaXMgIlhYWGZv
byBiYXIiCitQQVNTIHNpZGVFZmZlY3RzIGlzICJBQkMiCitQQVNTIFN0cmluZy5wcm90b3R5cGUu
cGFkU3RhcnQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIHRocmV3
IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mgc2lkZUVmZmVjdHMgaXMgIiIKK1BBU1MgU3RyaW5nLnBy
b3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVj
dCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBpcyAiQSIKK1BBU1Mg
U3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwg
ZmlsbE9iamVjdCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBpcyAi
QUIiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0YXJ0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9qcy9zdHJpbmctcGFkc3RhcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi40ODM0MTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RyaW5n
LXBhZHN0YXJ0Lmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorICA8bWV0YSBjaGFyc2V0PSJVVEYtOCI+CisgIDxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvc3RyaW5nLXBhZHN0YXJ0LmpzIj48L3NjcmlwdD4KKyAgPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKaW5kZXggNzQzNzA3Ny4uZWVmOTRjNCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDEgQEAKIDIwMTYtMDctMDcgIEpv
c2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBwYWRTdGFydC9w
YWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJlc3VsdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTQzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBidWlsdGlucy9HbG9iYWxP
cGVyYXRpb25zLmpzOgorICAgICAgICAoZ2xvYmFsUHJpdmF0ZS50b0xlbmd0aCk6CisgICAgICAg
IEZpeCBzdHlsZS4KKworICAgICAgICAqIGJ1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qczoKKyAg
ICAgICAgKHBhZFN0YXJ0KToKKyAgICAgICAgKHBhZEVuZCk6CisgICAgICAgIEFmdGVyIGFsbCBv
YnNlcnZhYmxlIG9wZXJhdGlvbnMsIGFuZCBhZnRlciBlbXB0eSBzdHJpbmcgaGFzIGJlZW4gaGFu
ZGxlZCwKKyAgICAgICAgdGhyb3cgYW4gb3V0IG9mIG1lbW9yeSBlcnJvciBpZiB0aGUgcmVzdWx0
aW5nIHN0cmluZyB3b3VsZCBiZSBncmVhdGVyCisgICAgICAgIHRoYW4gdGhlIG1heGltdW0gc3Ry
aW5nIHNpemUuCisKKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLXByb3h5LmpzOgorICAgICAgICAoc2hvdWxk
VGhyb3cpOiBEZWxldGVkLgorICAgICAgICAqIHRlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhv
ZHNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMuanM6CisgICAgICAgIChzaG91bGRU
aHJvdyk6CisgICAgICAgICh0ZXN0TWV0YSk6CisgICAgICAgICogdGVzdHMvZXM2L1N0cmluZy5w
cm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZEVuZC5qczoKKyAgICAgICAgKHNo
b3VsZFRocm93KToKKyAgICAgICAgKFRlc3RUb0xlbmd0aCk6CisgICAgICAgIChUZXN0TWVtb3J5
TGltaXRzKToKKyAgICAgICAgKFRlc3RNZXRhKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0cy9l
czYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuanM6
CisgICAgICAgIChzaG91bGRUaHJvdyk6CisgICAgICAgIChUZXN0VG9MZW5ndGgpOgorICAgICAg
ICAoVGVzdE1lbW9yeUxpbWl0cyk6CisgICAgICAgIFJlcGxhY2UgaW5jb3JyZWN0IHNob3VsZFRo
cm93KC4uLiwgZXJyb3JUeXBlKSB3aXRoIGV4cGxpY2l0IHNob3VsZFRocm93KC4uLiwgZXJyb3JN
ZXNzYWdlKS4KKyAgICAgICAgVGhlIG9sZCBzaG91bGRUaHJvdyB3b3VsZCBpbmNvcnJlY3RseSBz
dWNjZWVkIGlmIHRoZSBleHBlY3RlZCBlcnJvciB0eXBlIHdhcyBqdXN0ICJFcnJvciIuCisgICAg
ICAgIE5vdyB3ZSBleHBsaWNpdGx5IGNoZWNrIHRoZSBlcnJvciBtZXNzYWdlLgorCisyMDE2LTA3
LTA3ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgVW5l
eHBlY3RlZCAiT3V0IG9mIG1lbW9yeSIgZXJyb3IgZm9yICJ4Ii5yZXBlYXQoLTEpCiAgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk1MjkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcwppbmRl
eCA5YTY2ZjM4Li40ZjZhN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVp
bHRpbnMvR2xvYmFsT3BlcmF0aW9ucy5qcwpAQCAtNDUsOCArNDUsNyBAQCBmdW5jdGlvbiB0b0xl
bmd0aCh0YXJnZXQpCiAKICAgICB2YXIgbGVuZ3RoID0gQHRvSW50ZWdlcih0YXJnZXQpOwogICAg
IC8vIG9yaWdpbmFsbHkgTWF0aC5taW4oTWF0aC5tYXgobGVuZ3RoLCAwKSwgbWF4U2FmZUludGVn
ZXIpKTsKLSAgICByZXR1cm4gbGVuZ3RoID4gMCA/IChsZW5ndGggPCBATUFYX1NBRkVfSU5URUdF
Uj8gbGVuZ3RoIDogQE1BWF9TQUZFX0lOVEVHRVIpIDogMDsKLQorICAgIHJldHVybiBsZW5ndGgg
PiAwID8gKGxlbmd0aCA8IEBNQVhfU0FGRV9JTlRFR0VSID8gbGVuZ3RoIDogQE1BWF9TQUZFX0lO
VEVHRVIpIDogMDsKIH0KIAogQGdsb2JhbFByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanMgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzCmluZGV4IDJkMDgwZGIuLjhlMzAzN2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90b3R5
cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlw
ZS5qcwpAQCAtMTUzLDYgKzE1Myw5IEBAIGZ1bmN0aW9uIHBhZFN0YXJ0KG1heExlbmd0aC8qLCBm
aWxsU3RyaW5nKi8pCiAgICAgICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0KIAorICAgIGlm
IChtYXhMZW5ndGggPiBATUFYX1NUUklOR19MRU5HVEgpCisgICAgICAgIHRocm93IG5ldyBARXJy
b3IoIk91dCBvZiBtZW1vcnkiKTsKKwogICAgIHZhciBmaWxsTGVuZ3RoID0gbWF4TGVuZ3RoIC0g
c3RyaW5nTGVuZ3RoOwogICAgIHZhciB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7CiAKQEAgLTE4OSw2
ICsxOTIsOSBAQCBmdW5jdGlvbiBwYWRFbmQobWF4TGVuZ3RoLyosIGZpbGxTdHJpbmcqLykKICAg
ICAgICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgfQogCisgICAgaWYgKG1heExlbmd0aCA+IEBN
QVhfU1RSSU5HX0xFTkdUSCkKKyAgICAgICAgdGhyb3cgbmV3IEBFcnJvcigiT3V0IG9mIG1lbW9y
eSIpOworCiAgICAgdmFyIGZpbGxMZW5ndGggPSBtYXhMZW5ndGggLSBzdHJpbmdMZW5ndGg7CiAg
ICAgdmFyIHRydW5jYXRlZFN0cmluZ0ZpbGxlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcnMtcHJveHkuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
cy1wcm94eS5qcwppbmRleCA5NTJjMjBmLi4yMjc4MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9ycy1wcm94eS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9ycy1wcm94eS5qcwpAQCAtNywxNiArNyw2IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGV4cGVj
dGVkLCBhY3R1YWwsIG1zZykgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZScg
KyBtc2cgKyAnOiAnICsgYWN0dWFsICsgJy4gRXhwZWN0ZWQgJyArIGV4cGVjdGVkKTsKIH0KIAot
ZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7Ci0gICAgdHJ5IHsKLSAgICAg
ICAgZnVuYygpOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkICcgKyBmdW5jICsg
JygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1dCBkaWQgbm90IHRocm93Licp
OwotICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBlcnJvclR5cGUp
IHJldHVybjsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyArICco
KSB0byB0aHJvdyAnICsgZXJyb3JUeXBlLm5hbWUgKyAnLCBidXQgdGhyZXcgJyArIGUpOwotICAg
IH0KLX0KLQogZnVuY3Rpb24gc2hvdWxkQmVEYXRhUHJvcGVydHkoZXhwZWN0ZWQsIHZhbHVlLCBu
YW1lKSB7CiAgICAgaWYgKG5hbWUgPT09IHZvaWQgMCkKICAgICAgICAgbmFtZSA9ICc8cHJvcGVy
dHkgZGVzY3JpcHRvcj4nOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L2VzNi9PYmplY3Rfc3RhdGljX21ldGhvZHNfT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cnMuanMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0
aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy5qcwppbmRleCA0ZWY3NDZjLi5m
ZjMwZTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVj
dF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy5qcworKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19P
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy5qcwpAQCAtNywxNCArNywxOSBAQCBmdW5j
dGlvbiBzaG91bGRCZShleHBlY3RlZCwgYWN0dWFsLCBtc2cpIHsKICAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdiYWQgdmFsdWUnICsgbXNnICsgJzogJyArIGFjdHVhbCArICcuIEV4cGVjdGVkICcg
KyBleHBlY3RlZCk7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkg
eworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNzYWdlKSB7CisgICAgdmFyIGVy
cm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVsbDsKICAgICB0cnkgewogICAg
ICAgICBmdW5jKCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgJyArIGZ1bmMg
KyAnKCkgdG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywgYnV0IGRpZCBub3QgdGhyb3cu
Jyk7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIGVycm9yVHlw
ZSkgcmV0dXJuOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkICcgKyBmdW5jICsg
JygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1dCB0aHJldyAnICsgZSk7Cisg
ICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJyb3IgPSBlOwogICAgIH0KKyAg
ICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vdCB0aHJvd24n
KTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNzYWdlKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3IpfWApOwogfQogCiBmdW5jdGlv
biBzaG91bGRCZURhdGFQcm9wZXJ0eShleHBlY3RlZCwgdmFsdWUsIG5hbWUpIHsKQEAgLTM4LDEz
ICs0MywxMyBAQCBmdW5jdGlvbiBzaG91bGRCZURhdGFQcm9wZXJ0eShleHBlY3RlZCwgdmFsdWUs
IG5hbWUpIHsKICAgICBzaG91bGRCZSh0cnVlLCBwcm9wZXJ0eURlc2NyaXB0b3Iud3JpdGFibGUp
OwogICAgIHNob3VsZEJlKHRydWUsIHByb3BlcnR5RGVzY3JpcHRvci5jb25maWd1cmFibGUpOwog
Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gbmV3IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JzKHt9KSwgVHlwZUVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBuZXcgT2JqZWN0Lmdl
dE93blByb3BlcnR5RGVzY3JpcHRvcnMoe30pLCAiVHlwZUVycm9yOiBmdW5jdGlvbiBpcyBub3Qg
YSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JzKHt9KScpIik7CiB9KSgpOwogCiAoZnVuY3Rpb24gdGVzdFRvT2JqZWN0KCkgewotICAg
IHNob3VsZFRocm93KCgpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG51bGwp
LCBUeXBlRXJyb3IpOwotICAgIHNob3VsZFRocm93KCgpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3JzKHVuZGVmaW5lZCksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkg
PT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoKSwgVHlwZUVycm9yKTsKKyAgICBz
aG91bGRUaHJvdygoKSA9PiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhudWxsKSwg
IlR5cGVFcnJvcjogbnVsbCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ycyhudWxsKScpIik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4g
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModW5kZWZpbmVkKSwgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3JzKHVuZGVmaW5lZCknKSIpOworICAgIHNob3VsZFRocm93KCgpID0+IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKCksICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBp
cyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlw
dG9ycygpJykiKTsKIH0pKCk7CiAKIChmdW5jdGlvbiB0ZXN0UHJvdG90eXBlUHJvcGVydGllcygp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnBy
b3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5cGUucGFkRW5kLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3Rv
dHlwZS5wYWRFbmQuanMKaW5kZXggNDEyNDJiYi4uNmQ4ZTAzNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5n
LnByb3RvdHlwZS5wYWRFbmQuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuanMKQEAg
LTcsMTQgKzcsMTkgQEAgZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0ZWQsIGFjdHVhbCwgbXNnKSB7
CiAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlJyArIG1zZyArICc6ICcgKyBhY3R1
YWwgKyAnLiBFeHBlY3RlZCAnICsgZXhwZWN0ZWQpOwogfQogCi1mdW5jdGlvbiBzaG91bGRUaHJv
dyhmdW5jLCBlcnJvclR5cGUpIHsKK2Z1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yTWVz
c2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOworICAgIHZhciBlcnJvciA9IG51
bGw7CiAgICAgdHJ5IHsKICAgICAgICAgZnVuYygpOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J0V4cGVjdGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcs
IGJ1dCBkaWQgbm90IHRocm93LicpOwogICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgaWYgKGUg
aW5zdGFuY2VvZiBlcnJvclR5cGUpIHJldHVybjsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdF
eHBlY3RlZCAnICsgZnVuYyArICcoKSB0byB0aHJvdyAnICsgZXJyb3JUeXBlLm5hbWUgKyAnLCBi
dXQgdGhyZXcgJyArIGUpOworICAgICAgICBlcnJvclRocm93biA9IHRydWU7CisgICAgICAgIGVy
cm9yID0gZTsKICAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikKKyAgICAgICAgdGhyb3cgbmV3
IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhlcnJvcikgIT09IGVycm9yTWVz
c2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJyb3I6ICR7U3RyaW5nKGVycm9y
KX1gKTsKIH0KIAogKGZ1bmN0aW9uIFRlc3RNZXRhKCkgewpAQCAtMzEsMTMgKzM2LDEzIEBAIGZ1
bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogICAgIHNob3VsZEJlKHRydWUs
IGRlc2NyaXB0b3Iud3JpdGFibGUpOwogICAgIHNob3VsZEJlKFN0cmluZy5wcm90b3R5cGUucGFk
RW5kLCBkZXNjcmlwdG9yLnZhbHVlKTsKIAotICAgIHNob3VsZFRocm93KCgpID0+IG5ldyBGdW5j
dGlvbihgJHtTdHJpbmcucHJvdG90eXBlLnBhZEVuZH1gKSwgU3ludGF4RXJyb3IpOworICAgIHNo
b3VsZFRocm93KCgpID0+IG5ldyBGdW5jdGlvbihgJHtTdHJpbmcucHJvdG90eXBlLnBhZEVuZH1g
KSwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50aWZpZXIgJ2NvZGUnLiBFeHBlY3RlZCBl
aXRoZXIgYSBjbG9zaW5nICddJyBvciBhICcsJyBmb2xsb3dpbmcgYW4gYXJyYXkgZWxlbWVudC4i
KTsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0UmVxdWlyZU9iamVjdENvZXJjaWJsZSgpIHsKICAg
ICB2YXIgcGFkRW5kID0gU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQ7Ci0gICAgc2hvdWxkVGhyb3co
KCkgPT4gcGFkRW5kLmNhbGwobnVsbCwgNCwgInRlc3QiKSwgVHlwZUVycm9yKTsKLSAgICBzaG91
bGRUaHJvdygoKSA9PiBwYWRFbmQuY2FsbCh1bmRlZmluZWQsIDQsICJ0ZXN0IiksIFR5cGVFcnJv
cik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gcGFkRW5kLmNhbGwobnVsbCwgNCwgInRlc3QiKSwg
IlR5cGVFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQgcmVxdWlyZXMgdGhhdCB8dGhpc3wg
bm90IGJlIG51bGwiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRFbmQuY2FsbCh1bmRlZmlu
ZWQsIDQsICJ0ZXN0IiksICJUeXBlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucGFkRW5kIHJlcXVp
cmVzIHRoYXQgfHRoaXN8IG5vdCBiZSB1bmRlZmluZWQiKTsKICAgICBzaG91bGRCZSgiMTIzICAg
IiwgcGFkRW5kLmNhbGwoewogICAgICAgICBfX3Byb3RvX186IG51bGwsCiAgICAgICAgIHZhbHVl
T2YoKSB7IHJldHVybiAxMjM7IH0KQEAgLTYzLDcgKzY4LDcgQEAgZnVuY3Rpb24gc2hvdWxkVGhy
b3coZnVuYywgZXJyb3JUeXBlKSB7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVzdFRvTGVuZ3RoKCkg
ewotICAgIHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZEVuZChTeW1ib2woIjE2IikpLCBUeXBl
RXJyb3IpOworICAgIHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZEVuZChTeW1ib2woIjE2Iikp
LCAiVHlwZUVycm9yOiBDYW5ub3QgY29udmVydCBhIHN5bWJvbCB0byBhIG51bWJlciIpOwogICAg
IHNob3VsZEJlKCIxMjMiLCAiMTIzIi5wYWRFbmQoLTEpKTsKICAgICBzaG91bGRCZSgiMTIzIiwg
IjEyMyIucGFkRW5kKHsgdG9TdHJpbmcoKSB7IHJldHVybiAtMTsgfSB9KSk7CiAgICAgc2hvdWxk
QmUoIjEyMyIsICIxMjMiLnBhZEVuZCgtMCkpOwpAQCAtOTYsOSArMTAxLDkgQEAgZnVuY3Rpb24g
c2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVzdE1l
bW9yeUxpbWl0cygpIHsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkRW5kKDB4ODAwMDAw
MDAsICJvIiksIEVycm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkRW5kKHsgdmFs
dWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgRXJyb3IpOwotICAgIHNob3Vs
ZFRocm93KCgpID0+ICIuIi5wYWRFbmQoIjB4ODAwMDAwMDAiLCAibyIpLCBFcnJvcik7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZEVuZCgweDgwMDAwMDAwLCAibyIpLCAiRXJyb3I6IE91
dCBvZiBtZW1vcnkiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkRW5kKHsgdmFsdWVP
ZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgIkVycm9yOiBPdXQgb2YgbWVtb3J5
Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZEVuZCgiMHg4MDAwMDAwMCIsICJvIiks
ICJFcnJvcjogT3V0IG9mIG1lbW9yeSIpOwogfSkoKTsKIAogKGZ1bmN0aW9uIFRlc3RGaWxsZXJS
ZXBldGl0aW9uKCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2Vz
Ni9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5qcyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2Rz
X1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnQuanMKaW5kZXggNzA4NWJhZi4uZjhlNTEyOSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBl
X21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5qcworKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90
eXBlLnBhZFN0YXJ0LmpzCkBAIC03LDE0ICs3LDE5IEBAIGZ1bmN0aW9uIHNob3VsZEJlKGV4cGVj
dGVkLCBhY3R1YWwsIG1zZykgewogICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ2JhZCB2YWx1ZScg
KyBtc2cgKyAnOiAnICsgYWN0dWFsICsgJy4gRXhwZWN0ZWQgJyArIGV4cGVjdGVkKTsKIH0KIAot
ZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CitmdW5jdGlvbiBzaG91bGRU
aHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJyb3JUaHJvd24gPSBmYWxzZTsK
KyAgICB2YXIgZXJyb3IgPSBudWxsOwogICAgIHRyeSB7CiAgICAgICAgIGZ1bmMoKTsKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyArICcoKSB0byB0aHJvdyAnICsg
ZXJyb3JUeXBlLm5hbWUgKyAnLCBidXQgZGlkIG5vdCB0aHJvdy4nKTsKICAgICB9IGNhdGNoIChl
KSB7Ci0gICAgICAgIGlmIChlIGluc3RhbmNlb2YgZXJyb3JUeXBlKSByZXR1cm47Ci0gICAgICAg
IHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgJyArIGZ1bmMgKyAnKCkgdG8gdGhyb3cgJyArIGVy
cm9yVHlwZS5uYW1lICsgJywgYnV0IHRocmV3ICcgKyBlKTsKKyAgICAgICAgZXJyb3JUaHJvd24g
PSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CiAgICAgfQorICAgIGlmICghZXJyb3JUaHJvd24p
CisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicpOworICAgIGlmIChTdHJpbmco
ZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93IG5ldyBFcnJvcihgYmFkIGVy
cm9yOiAke1N0cmluZyhlcnJvcil9YCk7CiB9CiAKIChmdW5jdGlvbiBUZXN0TWV0YSgpIHsKQEAg
LTMxLDEzICszNiwxMyBAQCBmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsK
ICAgICBzaG91bGRCZSh0cnVlLCBkZXNjcmlwdG9yLndyaXRhYmxlKTsKICAgICBzaG91bGRCZShT
dHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LCBkZXNjcmlwdG9yLnZhbHVlKTsKIAotICAgIHNob3Vs
ZFRocm93KCgpID0+IG5ldyBGdW5jdGlvbihgJHtTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0fWAp
LCBTeW50YXhFcnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gbmV3IEZ1bmN0aW9uKGAke1N0
cmluZy5wcm90b3R5cGUucGFkU3RhcnR9YCksICJTeW50YXhFcnJvcjogVW5leHBlY3RlZCBpZGVu
dGlmaWVyICdjb2RlJy4gRXhwZWN0ZWQgZWl0aGVyIGEgY2xvc2luZyAnXScgb3IgYSAnLCcgZm9s
bG93aW5nIGFuIGFycmF5IGVsZW1lbnQuIik7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVzdFJlcXVp
cmVPYmplY3RDb2VyY2libGUoKSB7CiAgICAgdmFyIHBhZFN0YXJ0ID0gU3RyaW5nLnByb3RvdHlw
ZS5wYWRTdGFydDsKLSAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRTdGFydC5jYWxsKG51bGwsIDQs
ICJ0ZXN0IiksIFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gcGFkU3RhcnQuY2Fs
bCh1bmRlZmluZWQsIDQsICJ0ZXN0IiksIFR5cGVFcnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkg
PT4gcGFkU3RhcnQuY2FsbChudWxsLCA0LCAidGVzdCIpLCAiVHlwZUVycm9yOiBTdHJpbmcucHJv
dG90eXBlLnBhZFN0YXJ0IHJlcXVpcmVzIHRoYXQgfHRoaXN8IG5vdCBiZSBudWxsIik7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4gcGFkU3RhcnQuY2FsbCh1bmRlZmluZWQsIDQsICJ0ZXN0IiksICJU
eXBlRXJyb3I6IFN0cmluZy5wcm90b3R5cGUucGFkU3RhcnQgcmVxdWlyZXMgdGhhdCB8dGhpc3wg
bm90IGJlIHVuZGVmaW5lZCIpOwogICAgIHNob3VsZEJlKCIgICAxMjMiLCBwYWRTdGFydC5jYWxs
KHsKICAgICAgICAgX19wcm90b19fOiBudWxsLAogICAgICAgICB2YWx1ZU9mKCkgeyByZXR1cm4g
MTIzOyB9CkBAIC02Myw3ICs2OCw3IEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9y
VHlwZSkgewogfSkoKTsKIAogKGZ1bmN0aW9uIFRlc3RUb0xlbmd0aCgpIHsKLSAgICBzaG91bGRU
aHJvdygoKSA9PiAiMTIzIi5wYWRTdGFydChTeW1ib2woIjE2IikpLCBUeXBlRXJyb3IpOworICAg
IHNob3VsZFRocm93KCgpID0+ICIxMjMiLnBhZFN0YXJ0KFN5bWJvbCgiMTYiKSksICJUeXBlRXJy
b3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgbnVtYmVyIik7CiAgICAgc2hvdWxkQmUo
IjEyMyIsICIxMjMiLnBhZFN0YXJ0KC0xKSk7CiAgICAgc2hvdWxkQmUoIjEyMyIsICIxMjMiLnBh
ZFN0YXJ0KHsgdG9TdHJpbmcoKSB7IHJldHVybiAtMTsgfSB9KSk7CiAgICAgc2hvdWxkQmUoIjEy
MyIsICIxMjMiLnBhZFN0YXJ0KC0wKSk7CkBAIC05Niw5ICsxMDEsOSBAQCBmdW5jdGlvbiBzaG91
bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0TWVtb3J5
TGltaXRzKCkgewotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRTdGFydCgweDgwMDAwMDAw
LCAibyIpLCBFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZFN0YXJ0KHsgdmFs
dWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgRXJyb3IpOwotICAgIHNob3Vs
ZFRocm93KCgpID0+ICIuIi5wYWRTdGFydCgiMHg4MDAwMDAwMCIsICJvIiksIEVycm9yKTsKKyAg
ICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkU3RhcnQoMHg4MDAwMDAwMCwgIm8iKSwgIkVycm9y
OiBPdXQgb2YgbWVtb3J5Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZFN0YXJ0KHsg
dmFsdWVPZigpIHsgcmV0dXJuIDB4ODAwMDAwMDA7IH0gfSwgIm8iKSwgIkVycm9yOiBPdXQgb2Yg
bWVtb3J5Iik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZFN0YXJ0KCIweDgwMDAwMDAw
IiwgIm8iKSwgIkVycm9yOiBPdXQgb2YgbWVtb3J5Iik7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVz
dEZpbGxlclJlcGV0aXRpb24oKSB7Cg==
</data>
<flag name="review"
          id="306829"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>283109</attachid>
            <date>2016-07-07 22:26:13 -0700</date>
            <delta_ts>2016-07-07 23:26:13 -0700</delta_ts>
            <desc>[PATCH] For Landing</desc>
            <filename>pad-3.patch</filename>
            <type>text/plain</type>
            <size>30858</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZmI4MGNkLi40Mzg5MDdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjcgQEAKIDIwMTYtMDct
MDcgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICBwYWRT
dGFydC9wYWRFbmQgd2l0aCBJbmZpbml0eSBwcm9kdWNlcyB1bmV4cGVjdGVkIHJlc3VsdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTQzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQmVuamFtaW4gUG91bGFpbi4KKworICAgICAgICAqIGpzL3Njcmlw
dC10ZXN0cy9zdHJpbmctcGFkZW5kLmpzOiBBZGRlZC4KKyAgICAgICAgKHRoaXNPYmplY3QudG9T
dHJpbmcpOgorICAgICAgICAobGVuZ3RoT2JqZWN0LnZhbHVlT2YpOgorICAgICAgICAoZmlsbE9i
amVjdC50b1N0cmluZyk6CisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRzdGFy
dC5qczogQWRkZWQuCisgICAgICAgICh0aGlzT2JqZWN0LnRvU3RyaW5nKToKKyAgICAgICAgKGxl
bmd0aE9iamVjdC52YWx1ZU9mKToKKyAgICAgICAgKGZpbGxPYmplY3QudG9TdHJpbmcpOgorICAg
ICAgICAqIGpzL3N0cmluZy1wYWRlbmQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBq
cy9zdHJpbmctcGFkZW5kLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL3N0cmluZy1wYWRzdGFy
dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL3N0cmluZy1wYWRzdGFydC5odG1s
OiBBZGRlZC4KKyAgICAgICAgQWRkIHNvbWUgYmFzaWMgU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFy
dC9wYWRFbmQgdGVzdCBjb3ZlcmFnZQorICAgICAgICB0aGF0IGlzIG5vdCBqdXN0IGluIHRoZSBK
YXZhU2NyaXB0Q29yZS90ZXN0cy9lczYgZGlyZWN0b3J5LgorCisyMDE2LTA3LTA3ICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CisKICAgICAgICAgVW5leHBlY3RlZCAiT3V0
IG9mIG1lbW9yeSIgZXJyb3IgZm9yICJ4Ii5yZXBlYXQoLTEpCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk1MjkKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRlbmQuanMgYi9MYXlvdXRUZXN0cy9qcy9z
Y3JpcHQtdGVzdHMvc3RyaW5nLXBhZGVuZC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4wZDEyZjU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0
LXRlc3RzL3N0cmluZy1wYWRlbmQuanMKQEAgLTAsMCArMSw4MyBAQAorZGVzY3JpcHRpb24oIlRo
aXMgdGVzdCBjaGVja3MgdGhlIFN0cmluZy5wcm90b3R5cGUucGFkRW5kLiIpOworCitzaG91bGRC
ZSgnU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQubGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygnU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQubmFtZScsICdwYWRFbmQnKTsKK3Nob3Vs
ZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJw
YWRFbmQiKS5jb25maWd1cmFibGUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIpLmVudW1lcmFibGUn
LCAnZmFsc2UnKTsKK3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0
cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS53cml0YWJsZScsICd0cnVlJyk7CitzaG91bGRCZSgn
T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkRW5k
IikuZ2V0JywgJ3VuZGVmaW5lZCcpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIpLnNldCcsICd1bmRlZmluZWQnKTsK
K3Nob3VsZEJlKCdPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5
cGUsICJwYWRFbmQiKS52YWx1ZScsICdTdHJpbmcucHJvdG90eXBlLnBhZEVuZCcpOworCitzaG91
bGRCZSgiJ2ZvbycucGFkRW5kKCkiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQo
KzApIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkRW5kKC0wKSIsICInZm9vJyIpOwor
c2hvdWxkQmUoIidmb28nLnBhZEVuZCgxKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBh
ZEVuZCgyKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZEVuZCgtMikiLCAiJ2Zvbyci
KTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTApIiwgICAgICAgICAgICAgICInZm9vICAgICAg
ICciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTAsIHVuZGVmaW5lZCkiLCAgICInZm9vICAg
ICAgICciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTAsICd4JykiLCAgICAgICAgICInZm9v
eHh4eHh4eCciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTAuNSwgJ3onKSIsICAgICAgICIn
Zm9venp6enp6eiciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTAsICdiYXInKSIsICAgICAg
ICInZm9vYmFyYmFyYiciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoMTAsICcxMjM0NTY3ODkn
KSIsICInZm9vMTIzNDU2NyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRFbmQoOTk5LCAnJykiLCAi
J2ZvbyciKTsKK3Nob3VsZEJlKCInJy5wYWRFbmQoMSwgJycpIiwgIicnIik7CitzaG91bGRCZSgi
JycucGFkRW5kKDIsICdiYXInKSIsICInYmEnIik7CitzaG91bGRCZSgiJ3gnLnBhZEVuZCgyLCAn
YmFyJykiLCAiJ3hiJyIpOworc2hvdWxkQmUoIid4eCcucGFkRW5kKDIsICdiYXInKSIsICIneHgn
Iik7CitzaG91bGRCZSgiJ3h4Jy5wYWRFbmQoTWF0aC5QSSwgJ2JhcicpIiwgIid4eGInIik7CisK
Ky8vIENvZXJjZSBsZW5ndGggKFRvTGVuZ3RoKS4KK3Nob3VsZEJlKCInJy5wYWRFbmQodHJ1ZSwg
J0FCQycpIiwgIidBJyIpOworc2hvdWxkQmUoIicnLnBhZEVuZChmYWxzZSwgJ0FCQycpIiwgIicn
Iik7CitzaG91bGRCZSgiJycucGFkRW5kKG51bGwsICdBQkMnKSIsICInJyIpOworc2hvdWxkQmUo
IicnLnBhZEVuZCh7fSwgJ0FCQycpIiwgIicnIik7CitzaG91bGRCZSgiJycucGFkRW5kKE5hTiwg
J0FCQycpIiwgIicnIik7CisKKy8vIENvZXJjZSBmaWxsU3RyaW5nIChUb1N0cmluZykuCitzaG91
bGRCZSgiJ0FCQycucGFkRW5kKDEwLCB0cnVlKSIsICAiJ0FCQ3RydWV0cnUnIik7CitzaG91bGRC
ZSgiJ0FCQycucGFkRW5kKDEwLCBmYWxzZSkiLCAiJ0FCQ2ZhbHNlZmEnIik7CitzaG91bGRCZSgi
J0FCQycucGFkRW5kKDEwLCBudWxsKSIsICAiJ0FCQ251bGxudWwnIik7CitzaG91bGRCZSgiJ0FC
QycucGFkRW5kKDEwLCB7fSkiLCAgICAiJ0FCQ1tvYmplY3QnIik7CitzaG91bGRCZSgiJ0FCQycu
cGFkRW5kKDEwLCBOYU4pIiwgICAiJ0FCQ05hTk5hTk4nIik7CisKKy8vIENoZWNrIG91dCBvZiBt
ZW1vcnkgZXJyb3JzLgorc2hvdWxkTm90VGhyb3coJyJ4Ii5wYWRFbmQoSW5maW5pdHksICIiKScp
OyAvLyBFbXB0eSBzdHJpbmcgZmlsbGVyIGlzIGZpbmUuCitzaG91bGRUaHJvdygnIngiLnBhZEVu
ZChJbmZpbml0eSwgIngiKScsICInRXJyb3I6IE91dCBvZiBtZW1vcnknIik7CitzaG91bGRUaHJv
dygnIngiLnBhZEVuZCgweDgwMDAwMDAwLCAieCIpJywgIidFcnJvcjogT3V0IG9mIG1lbW9yeSci
KTsKK3Nob3VsZFRocm93KCcieCIucGFkRW5kKDB4RkZGRkZGRkYsICJ4IiknLCAiJ0Vycm9yOiBP
dXQgb2YgbWVtb3J5JyIpOworCisvLyBDaGVjayBzaWRlLWVmZmVjdHMuCitsZXQgc2lkZUVmZmVj
dHMgPSAiIjsKK2xldCB0aGlzT2JqZWN0ID0gbmV3IFN0cmluZygiZm9vIGJhciIpOworbGV0IGxl
bmd0aE9iamVjdCA9IG5ldyBOdW1iZXIoMTApOworbGV0IGZpbGxPYmplY3QgPSBuZXcgU3RyaW5n
KCJYIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rp
b24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJuIHRoaXM7IH07CitsZW5ndGhPYmplY3Qu
dmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9
OworZmlsbE9iamVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7
IHJldHVybiB0aGlzOyB9Oworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJTdHJpbmcucHJvdG90eXBl
LnBhZEVuZC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkiLCAiZm9v
IGJhclhYWCIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJBQkMiKTsK
Kworc2lkZUVmZmVjdHMgPSAiIjsKK3RoaXNPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsg
dGhyb3cgIkVSUk9SIjsgfTsKK2xlbmd0aE9iamVjdC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IHNp
ZGVFZmZlY3RzICs9ICJCIjsgcmV0dXJuIHRoaXM7IH07CitmaWxsT2JqZWN0LnRvU3RyaW5nID0g
ZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJDIjsgcmV0dXJuIHRoaXM7IH07CitzaG91bGRU
aHJvdygiU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmpl
Y3QsIGZpbGxPYmplY3QpIiwgIidFUlJPUiciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygic2lk
ZUVmZmVjdHMiLCAiIik7CisKK3NpZGVFZmZlY3RzID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5n
ID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJBIjsgcmV0dXJuIHRoaXM7IH07CitsZW5n
dGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAiRVJST1IiOyB9OworZmlsbE9i
amVjdC50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQyI7IHJldHVybiB0
aGlzOyB9Oworc2hvdWxkVGhyb3coIlN0cmluZy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09i
amVjdCwgbGVuZ3RoT2JqZWN0LCBmaWxsT2JqZWN0KSIsICInRVJST1InIik7CitzaG91bGRCZUVx
dWFsVG9TdHJpbmcoInNpZGVFZmZlY3RzIiwgIkEiKTsKKworc2lkZUVmZmVjdHMgPSAiIjsKK3Ro
aXNPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkEiOyByZXR1
cm4gdGhpczsgfTsKK2xlbmd0aE9iamVjdC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZl
Y3RzICs9ICJCIjsgcmV0dXJuIHRoaXM7IH07CitmaWxsT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rp
b24oKSB7IHRocm93ICJFUlJPUiI7IHJldHVybiB0aGlzOyB9Oworc2hvdWxkVGhyb3coIlN0cmlu
Zy5wcm90b3R5cGUucGFkRW5kLmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0LCBmaWxsT2Jq
ZWN0KSIsICInRVJST1InIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNpZGVFZmZlY3RzIiwg
IkFCIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RyaW5nLXBh
ZHN0YXJ0LmpzIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRzdGFydC5q
cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yNDkwZTc1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL3N0cmluZy1wYWRzdGFydC5qcwpA
QCAtMCwwICsxLDgzIEBACitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0IGNoZWNrcyB0aGUgU3RyaW5n
LnByb3RvdHlwZS5wYWRTdGFydC4iKTsKKworc2hvdWxkQmUoJ1N0cmluZy5wcm90b3R5cGUucGFk
U3RhcnQubGVuZ3RoJywgJzEnKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygnU3RyaW5nLnByb3Rv
dHlwZS5wYWRTdGFydC5uYW1lJywgJ3BhZFN0YXJ0Jyk7CitzaG91bGRCZSgnT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkU3RhcnQiKS5jb25maWd1
cmFibGUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0IikuZW51bWVyYWJsZScsICdmYWxzZScpOwor
c2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlw
ZSwgInBhZFN0YXJ0Iikud3JpdGFibGUnLCAndHJ1ZScpOworc2hvdWxkQmUoJ09iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0IikuZ2V0Jywg
J3VuZGVmaW5lZCcpOworc2hvdWxkQmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
U3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0Iikuc2V0JywgJ3VuZGVmaW5lZCcpOworc2hvdWxk
QmUoJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBh
ZFN0YXJ0IikudmFsdWUnLCAnU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydCcpOworCitzaG91bGRC
ZSgiJ2ZvbycucGFkU3RhcnQoKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0
KCswKSIsICInZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0KC0wKSIsICInZm9vJyIp
Oworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0KDEpIiwgIidmb28nIik7CitzaG91bGRCZSgiJ2Zv
bycucGFkU3RhcnQoMikiLCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgtMiki
LCAiJ2ZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxMCkiLCAgICAgICAgICAgICAg
IicgICAgICAgZm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0KDEwLCB1bmRlZmluZWQp
IiwgICAiJyAgICAgICBmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFkU3RhcnQoMTAsICd4Jyki
LCAgICAgICAgICIneHh4eHh4eGZvbyciKTsKK3Nob3VsZEJlKCInZm9vJy5wYWRTdGFydCgxMC41
LCAneicpIiwgICAgICAgIid6enp6enp6Zm9vJyIpOworc2hvdWxkQmUoIidmb28nLnBhZFN0YXJ0
KDEwLCAnYmFyJykiLCAgICAgICAiJ2JhcmJhcmJmb28nIik7CitzaG91bGRCZSgiJ2ZvbycucGFk
U3RhcnQoMTAsICcxMjM0NTY3ODknKSIsICInMTIzNDU2N2ZvbyciKTsKK3Nob3VsZEJlKCInZm9v
Jy5wYWRTdGFydCg5OTksICcnKSIsICInZm9vJyIpOworc2hvdWxkQmUoIicnLnBhZFN0YXJ0KDEs
ICcnKSIsICInJyIpOworc2hvdWxkQmUoIicnLnBhZFN0YXJ0KDIsICdiYXInKSIsICInYmEnIik7
CitzaG91bGRCZSgiJ3gnLnBhZFN0YXJ0KDIsICdiYXInKSIsICInYngnIik7CitzaG91bGRCZSgi
J3h4Jy5wYWRTdGFydCgyLCAnYmFyJykiLCAiJ3h4JyIpOworc2hvdWxkQmUoIid4eCcucGFkU3Rh
cnQoTWF0aC5QSSwgJ2JhcicpIiwgIidieHgnIik7CisKKy8vIENvZXJjZSBsZW5ndGggKFRvTGVu
Z3RoKS4KK3Nob3VsZEJlKCInJy5wYWRTdGFydCh0cnVlLCAnQUJDJykiLCAiJ0EnIik7CitzaG91
bGRCZSgiJycucGFkU3RhcnQoZmFsc2UsICdBQkMnKSIsICInJyIpOworc2hvdWxkQmUoIicnLnBh
ZFN0YXJ0KG51bGwsICdBQkMnKSIsICInJyIpOworc2hvdWxkQmUoIicnLnBhZFN0YXJ0KHt9LCAn
QUJDJykiLCAiJyciKTsKK3Nob3VsZEJlKCInJy5wYWRTdGFydChOYU4sICdBQkMnKSIsICInJyIp
OworCisvLyBDb2VyY2UgZmlsbFN0cmluZyAoVG9TdHJpbmcpLgorc2hvdWxkQmUoIidBQkMnLnBh
ZFN0YXJ0KDEwLCB0cnVlKSIsICAiJ3RydWV0cnVBQkMnIik7CitzaG91bGRCZSgiJ0FCQycucGFk
U3RhcnQoMTAsIGZhbHNlKSIsICInZmFsc2VmYUFCQyciKTsKK3Nob3VsZEJlKCInQUJDJy5wYWRT
dGFydCgxMCwgbnVsbCkiLCAgIidudWxsbnVsQUJDJyIpOworc2hvdWxkQmUoIidBQkMnLnBhZFN0
YXJ0KDEwLCB7fSkiLCAgICAiJ1tvYmplY3RBQkMnIik7CitzaG91bGRCZSgiJ0FCQycucGFkU3Rh
cnQoMTAsIE5hTikiLCAgICInTmFOTmFOTkFCQyciKTsKKworLy8gQ2hlY2sgb3V0IG9mIG1lbW9y
eSBlcnJvcnMuCitzaG91bGROb3RUaHJvdygnIngiLnBhZFN0YXJ0KEluZmluaXR5LCAiIiknKTsg
Ly8gRW1wdHkgc3RyaW5nIGZpbGxlciBpcyBmaW5lLgorc2hvdWxkVGhyb3coJyJ4Ii5wYWRTdGFy
dChJbmZpbml0eSwgIngiKScsICInRXJyb3I6IE91dCBvZiBtZW1vcnknIik7CitzaG91bGRUaHJv
dygnIngiLnBhZFN0YXJ0KDB4ODAwMDAwMDAsICJ4IiknLCAiJ0Vycm9yOiBPdXQgb2YgbWVtb3J5
JyIpOworc2hvdWxkVGhyb3coJyJ4Ii5wYWRTdGFydCgweEZGRkZGRkZGLCAieCIpJywgIidFcnJv
cjogT3V0IG9mIG1lbW9yeSciKTsKKworLy8gQ2hlY2sgc2lkZS1lZmZlY3RzLgorbGV0IHNpZGVF
ZmZlY3RzID0gIiI7CitsZXQgdGhpc09iamVjdCA9IG5ldyBTdHJpbmcoImZvbyBiYXIiKTsKK2xl
dCBsZW5ndGhPYmplY3QgPSBuZXcgTnVtYmVyKDEwKTsKK2xldCBmaWxsT2JqZWN0ID0gbmV3IFN0
cmluZygiWCIpOworCitzaWRlRWZmZWN0cyA9ICIiOwordGhpc09iamVjdC50b1N0cmluZyA9IGZ1
bmN0aW9uKCkgeyBzaWRlRWZmZWN0cyArPSAiQSI7IHJldHVybiB0aGlzOyB9OworbGVuZ3RoT2Jq
ZWN0LnZhbHVlT2YgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkIiOyByZXR1cm4gdGhp
czsgfTsKK2ZpbGxPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0g
IkMiOyByZXR1cm4gdGhpczsgfTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiU3RyaW5nLnByb3Rv
dHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCki
LCAiWFhYZm9vIGJhciIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJB
QkMiKTsKKworc2lkZUVmZmVjdHMgPSAiIjsKK3RoaXNPYmplY3QudG9TdHJpbmcgPSBmdW5jdGlv
bigpIHsgdGhyb3cgIkVSUk9SIjsgfTsKK2xlbmd0aE9iamVjdC52YWx1ZU9mID0gZnVuY3Rpb24o
KSB7IHNpZGVFZmZlY3RzICs9ICJCIjsgcmV0dXJuIHRoaXM7IH07CitmaWxsT2JqZWN0LnRvU3Ry
aW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJDIjsgcmV0dXJuIHRoaXM7IH07Citz
aG91bGRUaHJvdygiU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxl
bmd0aE9iamVjdCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJzaWRlRWZmZWN0cyIsICIiKTsKKworc2lkZUVmZmVjdHMgPSAiIjsKK3RoaXNPYmplY3Qu
dG9TdHJpbmcgPSBmdW5jdGlvbigpIHsgc2lkZUVmZmVjdHMgKz0gIkEiOyByZXR1cm4gdGhpczsg
fTsKK2xlbmd0aE9iamVjdC52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IHRocm93ICJFUlJPUiI7IH07
CitmaWxsT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9ICJDIjsg
cmV0dXJuIHRoaXM7IH07CitzaG91bGRUaHJvdygiU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5j
YWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkiLCAiJ0VSUk9SJyIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJzaWRlRWZmZWN0cyIsICJBIik7CisKK3NpZGVFZmZlY3Rz
ID0gIiI7Cit0aGlzT2JqZWN0LnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7IHNpZGVFZmZlY3RzICs9
ICJBIjsgcmV0dXJuIHRoaXM7IH07CitsZW5ndGhPYmplY3QudmFsdWVPZiA9IGZ1bmN0aW9uKCkg
eyBzaWRlRWZmZWN0cyArPSAiQiI7IHJldHVybiB0aGlzOyB9OworZmlsbE9iamVjdC50b1N0cmlu
ZyA9IGZ1bmN0aW9uKCkgeyB0aHJvdyAiRVJST1IiOyByZXR1cm4gdGhpczsgfTsKK3Nob3VsZFRo
cm93KCJTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2Jq
ZWN0LCBmaWxsT2JqZWN0KSIsICInRVJST1InIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoInNp
ZGVFZmZlY3RzIiwgIkFCIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFk
ZW5kLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRlbmQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmY1Zjg1Y2YKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkZW5kLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDU3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBTdHJpbmcucHJvdG90eXBlLnBhZEVu
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgU3RyaW5nLnByb3RvdHlw
ZS5wYWRFbmQubGVuZ3RoIGlzIDEKK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQubmFtZSBp
cyAicGFkRW5kIgorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5w
cm90b3R5cGUsICJwYWRFbmQiKS5jb25maWd1cmFibGUgaXMgdHJ1ZQorUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUsICJwYWRFbmQiKS5lbnVtZXJh
YmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5n
LnByb3RvdHlwZSwgInBhZEVuZCIpLndyaXRhYmxlIGlzIHRydWUKK1BBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkRW5kIikuZ2V0IGlzIHVu
ZGVmaW5lZAorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90
b3R5cGUsICJwYWRFbmQiKS5zZXQgaXMgdW5kZWZpbmVkCitQQVNTIE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZEVuZCIpLnZhbHVlIGlzIFN0cmlu
Zy5wcm90b3R5cGUucGFkRW5kCitQQVNTICdmb28nLnBhZEVuZCgpIGlzICdmb28nCitQQVNTICdm
b28nLnBhZEVuZCgrMCkgaXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFkRW5kKC0wKSBpcyAnZm9vJwor
UEFTUyAnZm9vJy5wYWRFbmQoMSkgaXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFkRW5kKDIpIGlzICdm
b28nCitQQVNTICdmb28nLnBhZEVuZCgtMikgaXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFkRW5kKDEw
KSBpcyAnZm9vICAgICAgICcKK1BBU1MgJ2ZvbycucGFkRW5kKDEwLCB1bmRlZmluZWQpIGlzICdm
b28gICAgICAgJworUEFTUyAnZm9vJy5wYWRFbmQoMTAsICd4JykgaXMgJ2Zvb3h4eHh4eHgnCitQ
QVNTICdmb28nLnBhZEVuZCgxMC41LCAneicpIGlzICdmb296enp6enp6JworUEFTUyAnZm9vJy5w
YWRFbmQoMTAsICdiYXInKSBpcyAnZm9vYmFyYmFyYicKK1BBU1MgJ2ZvbycucGFkRW5kKDEwLCAn
MTIzNDU2Nzg5JykgaXMgJ2ZvbzEyMzQ1NjcnCitQQVNTICdmb28nLnBhZEVuZCg5OTksICcnKSBp
cyAnZm9vJworUEFTUyAnJy5wYWRFbmQoMSwgJycpIGlzICcnCitQQVNTICcnLnBhZEVuZCgyLCAn
YmFyJykgaXMgJ2JhJworUEFTUyAneCcucGFkRW5kKDIsICdiYXInKSBpcyAneGInCitQQVNTICd4
eCcucGFkRW5kKDIsICdiYXInKSBpcyAneHgnCitQQVNTICd4eCcucGFkRW5kKE1hdGguUEksICdi
YXInKSBpcyAneHhiJworUEFTUyAnJy5wYWRFbmQodHJ1ZSwgJ0FCQycpIGlzICdBJworUEFTUyAn
Jy5wYWRFbmQoZmFsc2UsICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRFbmQobnVsbCwgJ0FCQycp
IGlzICcnCitQQVNTICcnLnBhZEVuZCh7fSwgJ0FCQycpIGlzICcnCitQQVNTICcnLnBhZEVuZChO
YU4sICdBQkMnKSBpcyAnJworUEFTUyAnQUJDJy5wYWRFbmQoMTAsIHRydWUpIGlzICdBQkN0cnVl
dHJ1JworUEFTUyAnQUJDJy5wYWRFbmQoMTAsIGZhbHNlKSBpcyAnQUJDZmFsc2VmYScKK1BBU1Mg
J0FCQycucGFkRW5kKDEwLCBudWxsKSBpcyAnQUJDbnVsbG51bCcKK1BBU1MgJ0FCQycucGFkRW5k
KDEwLCB7fSkgaXMgJ0FCQ1tvYmplY3QnCitQQVNTICdBQkMnLnBhZEVuZCgxMCwgTmFOKSBpcyAn
QUJDTmFOTmFOTicKK1BBU1MgIngiLnBhZEVuZChJbmZpbml0eSwgIiIpIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorUEFTUyAieCIucGFkRW5kKEluZmluaXR5LCAieCIpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogT3V0IG9mIG1lbW9yeS4KK1BBU1MgIngiLnBhZEVuZCgweDgwMDAwMDAwLCAieCIp
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KK1BBU1MgIngiLnBhZEVuZCgw
eEZGRkZGRkZGLCAieCIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogT3V0IG9mIG1lbW9yeS4KK1BB
U1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0LCBsZW5ndGhPYmplY3Qs
IGZpbGxPYmplY3QpIGlzICJmb28gYmFyWFhYIgorUEFTUyBzaWRlRWZmZWN0cyBpcyAiQUJDIgor
UEFTUyBTdHJpbmcucHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVj
dCwgZmlsbE9iamVjdCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBp
cyAiIgorUEFTUyBTdHJpbmcucHJvdG90eXBlLnBhZEVuZC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0
aE9iamVjdCwgZmlsbE9iamVjdCkgdGhyZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZm
ZWN0cyBpcyAiQSIKK1BBU1MgU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuY2FsbCh0aGlzT2JqZWN0
LCBsZW5ndGhPYmplY3QsIGZpbGxPYmplY3QpIHRocmV3IGV4Y2VwdGlvbiBFUlJPUi4KK1BBU1Mg
c2lkZUVmZmVjdHMgaXMgIkFCIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRlbmQu
aHRtbCBiL0xheW91dFRlc3RzL2pzL3N0cmluZy1wYWRlbmQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5kN2ZiZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvanMvc3RyaW5nLXBhZGVuZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICA8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICA8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N0cmluZy1wYWRlbmQuanMiPjwvc2NyaXB0
PgorICA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFk
c3RhcnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0YXJ0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZDNjZTU1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvc3RyaW5nLXBhZHN0YXJ0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDU3IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoZSBTdHJpbmcucHJvdG90eXBl
LnBhZFN0YXJ0LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBTdHJpbmcu
cHJvdG90eXBlLnBhZFN0YXJ0Lmxlbmd0aCBpcyAxCitQQVNTIFN0cmluZy5wcm90b3R5cGUucGFk
U3RhcnQubmFtZSBpcyAicGFkU3RhcnQiCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0IikuY29uZmlndXJhYmxlIGlzIHRydWUK
K1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAi
cGFkU3RhcnQiKS5lbnVtZXJhYmxlIGlzIGZhbHNlCitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwgInBhZFN0YXJ0Iikud3JpdGFibGUgaXMgdHJ1
ZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKFN0cmluZy5wcm90b3R5cGUs
ICJwYWRTdGFydCIpLmdldCBpcyB1bmRlZmluZWQKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihTdHJpbmcucHJvdG90eXBlLCAicGFkU3RhcnQiKS5zZXQgaXMgdW5kZWZpbmVk
CitQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoU3RyaW5nLnByb3RvdHlwZSwg
InBhZFN0YXJ0IikudmFsdWUgaXMgU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydAorUEFTUyAnZm9v
Jy5wYWRTdGFydCgpIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KCswKSBpcyAnZm9vJwor
UEFTUyAnZm9vJy5wYWRTdGFydCgtMCkgaXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMSkg
aXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMikgaXMgJ2ZvbycKK1BBU1MgJ2ZvbycucGFk
U3RhcnQoLTIpIGlzICdmb28nCitQQVNTICdmb28nLnBhZFN0YXJ0KDEwKSBpcyAnICAgICAgIGZv
bycKK1BBU1MgJ2ZvbycucGFkU3RhcnQoMTAsIHVuZGVmaW5lZCkgaXMgJyAgICAgICBmb28nCitQ
QVNTICdmb28nLnBhZFN0YXJ0KDEwLCAneCcpIGlzICd4eHh4eHh4Zm9vJworUEFTUyAnZm9vJy5w
YWRTdGFydCgxMC41LCAneicpIGlzICd6enp6enp6Zm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgx
MCwgJ2JhcicpIGlzICdiYXJiYXJiZm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCgxMCwgJzEyMzQ1
Njc4OScpIGlzICcxMjM0NTY3Zm9vJworUEFTUyAnZm9vJy5wYWRTdGFydCg5OTksICcnKSBpcyAn
Zm9vJworUEFTUyAnJy5wYWRTdGFydCgxLCAnJykgaXMgJycKK1BBU1MgJycucGFkU3RhcnQoMiwg
J2JhcicpIGlzICdiYScKK1BBU1MgJ3gnLnBhZFN0YXJ0KDIsICdiYXInKSBpcyAnYngnCitQQVNT
ICd4eCcucGFkU3RhcnQoMiwgJ2JhcicpIGlzICd4eCcKK1BBU1MgJ3h4Jy5wYWRTdGFydChNYXRo
LlBJLCAnYmFyJykgaXMgJ2J4eCcKK1BBU1MgJycucGFkU3RhcnQodHJ1ZSwgJ0FCQycpIGlzICdB
JworUEFTUyAnJy5wYWRTdGFydChmYWxzZSwgJ0FCQycpIGlzICcnCitQQVNTICcnLnBhZFN0YXJ0
KG51bGwsICdBQkMnKSBpcyAnJworUEFTUyAnJy5wYWRTdGFydCh7fSwgJ0FCQycpIGlzICcnCitQ
QVNTICcnLnBhZFN0YXJ0KE5hTiwgJ0FCQycpIGlzICcnCitQQVNTICdBQkMnLnBhZFN0YXJ0KDEw
LCB0cnVlKSBpcyAndHJ1ZXRydUFCQycKK1BBU1MgJ0FCQycucGFkU3RhcnQoMTAsIGZhbHNlKSBp
cyAnZmFsc2VmYUFCQycKK1BBU1MgJ0FCQycucGFkU3RhcnQoMTAsIG51bGwpIGlzICdudWxsbnVs
QUJDJworUEFTUyAnQUJDJy5wYWRTdGFydCgxMCwge30pIGlzICdbb2JqZWN0QUJDJworUEFTUyAn
QUJDJy5wYWRTdGFydCgxMCwgTmFOKSBpcyAnTmFOTmFOTkFCQycKK1BBU1MgIngiLnBhZFN0YXJ0
KEluZmluaXR5LCAiIikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTICJ4Ii5wYWRTdGFy
dChJbmZpbml0eSwgIngiKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IE91dCBvZiBtZW1vcnkuCitQ
QVNTICJ4Ii5wYWRTdGFydCgweDgwMDAwMDAwLCAieCIpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
T3V0IG9mIG1lbW9yeS4KK1BBU1MgIngiLnBhZFN0YXJ0KDB4RkZGRkZGRkYsICJ4IikgdGhyZXcg
ZXhjZXB0aW9uIEVycm9yOiBPdXQgb2YgbWVtb3J5LgorUEFTUyBTdHJpbmcucHJvdG90eXBlLnBh
ZFN0YXJ0LmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0LCBmaWxsT2JqZWN0KSBpcyAiWFhY
Zm9vIGJhciIKK1BBU1Mgc2lkZUVmZmVjdHMgaXMgIkFCQyIKK1BBU1MgU3RyaW5nLnByb3RvdHlw
ZS5wYWRTdGFydC5jYWxsKHRoaXNPYmplY3QsIGxlbmd0aE9iamVjdCwgZmlsbE9iamVjdCkgdGhy
ZXcgZXhjZXB0aW9uIEVSUk9SLgorUEFTUyBzaWRlRWZmZWN0cyBpcyAiIgorUEFTUyBTdHJpbmcu
cHJvdG90eXBlLnBhZFN0YXJ0LmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0LCBmaWxsT2Jq
ZWN0KSB0aHJldyBleGNlcHRpb24gRVJST1IuCitQQVNTIHNpZGVFZmZlY3RzIGlzICJBIgorUEFT
UyBTdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LmNhbGwodGhpc09iamVjdCwgbGVuZ3RoT2JqZWN0
LCBmaWxsT2JqZWN0KSB0aHJldyBleGNlcHRpb24gRVJST1IuCitQQVNTIHNpZGVFZmZlY3RzIGlz
ICJBQiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zdHJpbmctcGFkc3RhcnQuaHRtbCBiL0xheW91
dFRlc3RzL2pzL3N0cmluZy1wYWRzdGFydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjQ4MzQxMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9zdHJp
bmctcGFkc3RhcnQuaHRtbApAQCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+CisgIDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPHNj
cmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdHJpbmctcGFkc3RhcnQuanMiPjwvc2NyaXB0PgorICA8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3NDM3MDc3Li4zMjA3NGQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0MSBAQAogMjAxNi0wNy0wNyAg
Sm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCisgICAgICAgIHBhZFN0YXJ0
L3BhZEVuZCB3aXRoIEluZmluaXR5IHByb2R1Y2VzIHVuZXhwZWN0ZWQgcmVzdWx0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTk1NDMKKworICAgICAg
ICBSZXZpZXdlZCBieSBCZW5qYW1pbiBQb3VsYWluLgorCisgICAgICAgICogYnVpbHRpbnMvR2xv
YmFsT3BlcmF0aW9ucy5qczoKKyAgICAgICAgKGdsb2JhbFByaXZhdGUudG9MZW5ndGgpOgorICAg
ICAgICBGaXggc3R5bGUuCisKKyAgICAgICAgKiBidWlsdGlucy9TdHJpbmdQcm90b3R5cGUuanM6
CisgICAgICAgIChwYWRTdGFydCk6CisgICAgICAgIChwYWRFbmQpOgorICAgICAgICBBZnRlciBh
bGwgb2JzZXJ2YWJsZSBvcGVyYXRpb25zLCBhbmQgYWZ0ZXIgZW1wdHkgc3RyaW5nIGhhcyBiZWVu
IGhhbmRsZWQsCisgICAgICAgIHRocm93IGFuIG91dCBvZiBtZW1vcnkgZXJyb3IgaWYgdGhlIHJl
c3VsdGluZyBzdHJpbmcgd291bGQgYmUgZ3JlYXRlcgorICAgICAgICB0aGFuIHRoZSBtYXhpbXVt
IHN0cmluZyBzaXplLgorCisgICAgICAgICogdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9k
c19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycy1wcm94eS5qczoKKyAgICAgICAgKHNo
b3VsZFRocm93KTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19t
ZXRob2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLmpzOgorICAgICAgICAoc2hv
dWxkVGhyb3cpOgorICAgICAgICAodGVzdE1ldGEpOgorICAgICAgICAqIHRlc3RzL2VzNi9TdHJp
bmcucHJvdG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuanM6CisgICAgICAg
IChzaG91bGRUaHJvdyk6CisgICAgICAgIChUZXN0VG9MZW5ndGgpOgorICAgICAgICAoVGVzdE1l
bW9yeUxpbWl0cyk6CisgICAgICAgIChUZXN0TWV0YSk6IERlbGV0ZWQuCisgICAgICAgICogdGVz
dHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0
LmpzOgorICAgICAgICAoc2hvdWxkVGhyb3cpOgorICAgICAgICAoVGVzdFRvTGVuZ3RoKToKKyAg
ICAgICAgKFRlc3RNZW1vcnlMaW1pdHMpOgorICAgICAgICBSZXBsYWNlIGluY29ycmVjdCBzaG91
bGRUaHJvdyguLi4sIGVycm9yVHlwZSkgd2l0aCBleHBsaWNpdCBzaG91bGRUaHJvdyguLi4sIGVy
cm9yTWVzc2FnZSkuCisgICAgICAgIFRoZSBvbGQgc2hvdWxkVGhyb3cgd291bGQgaW5jb3JyZWN0
bHkgc3VjY2VlZCBpZiB0aGUgZXhwZWN0ZWQgZXJyb3IgdHlwZSB3YXMganVzdCAiRXJyb3IiLgor
ICAgICAgICBOb3cgd2UgZXhwbGljaXRseSBjaGVjayB0aGUgZXJyb3IgbWVzc2FnZS4KKworMjAx
Ni0wNy0wNyAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAg
IFVuZXhwZWN0ZWQgIk91dCBvZiBtZW1vcnkiIGVycm9yIGZvciAieCIucmVwZWF0KC0xKQogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU5NTI5CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9HbG9iYWxPcGVyYXRpb25z
LmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMK
aW5kZXggOWE2NmYzOC4uNGY2YTdkMSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J1aWx0aW5zL0dsb2JhbE9wZXJhdGlvbnMuanMKQEAgLTQ1LDggKzQ1LDcgQEAgZnVuY3Rpb24g
dG9MZW5ndGgodGFyZ2V0KQogCiAgICAgdmFyIGxlbmd0aCA9IEB0b0ludGVnZXIodGFyZ2V0KTsK
ICAgICAvLyBvcmlnaW5hbGx5IE1hdGgubWluKE1hdGgubWF4KGxlbmd0aCwgMCksIG1heFNhZmVJ
bnRlZ2VyKSk7Ci0gICAgcmV0dXJuIGxlbmd0aCA+IDAgPyAobGVuZ3RoIDwgQE1BWF9TQUZFX0lO
VEVHRVI/IGxlbmd0aCA6IEBNQVhfU0FGRV9JTlRFR0VSKSA6IDA7Ci0KKyAgICByZXR1cm4gbGVu
Z3RoID4gMCA/IChsZW5ndGggPCBATUFYX1NBRkVfSU5URUdFUiA/IGxlbmd0aCA6IEBNQVhfU0FG
RV9JTlRFR0VSKSA6IDA7CiB9CiAKIEBnbG9iYWxQcml2YXRlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J1aWx0aW5zL1N0cmluZ1Byb3RvdHlwZS5qcwppbmRleCAyZDA4MGRiLi4xNzgy
NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvU3RyaW5nUHJv
dG90eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9TdHJpbmdQcm90
b3R5cGUuanMKQEAgLTEzOCwyMSArMTM4LDI0IEBAIGZ1bmN0aW9uIHBhZFN0YXJ0KG1heExlbmd0
aC8qLCBmaWxsU3RyaW5nKi8pCiAKICAgICB2YXIgc3RyaW5nID0gQHRvU3RyaW5nKHRoaXMpOwog
ICAgIG1heExlbmd0aCA9IEB0b0xlbmd0aChtYXhMZW5ndGgpOwotICAgIHZhciBmaWxsU3RyaW5n
ID0gYXJndW1lbnRzWzFdOwogCiAgICAgdmFyIHN0cmluZ0xlbmd0aCA9IHN0cmluZy5sZW5ndGg7
CiAgICAgaWYgKG1heExlbmd0aCA8PSBzdHJpbmdMZW5ndGgpCiAgICAgICAgIHJldHVybiBzdHJp
bmc7CiAKICAgICB2YXIgZmlsbGVyOwotICAgIGlmIChhcmd1bWVudHNbMV0gPT09IEB1bmRlZmlu
ZWQpCisgICAgdmFyIGZpbGxTdHJpbmcgPSBhcmd1bWVudHNbMV07CisgICAgaWYgKGZpbGxTdHJp
bmcgPT09IEB1bmRlZmluZWQpCiAgICAgICAgIGZpbGxlciA9ICIgIjsKICAgICBlbHNlIHsKLSAg
ICAgICAgZmlsbGVyID0gQHRvU3RyaW5nKGFyZ3VtZW50c1sxXSk7CisgICAgICAgIGZpbGxlciA9
IEB0b1N0cmluZyhmaWxsU3RyaW5nKTsKICAgICAgICAgaWYgKGZpbGxlciA9PT0gIiIpCiAgICAg
ICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0KIAorICAgIGlmIChtYXhMZW5ndGggPiBATUFY
X1NUUklOR19MRU5HVEgpCisgICAgICAgIHRocm93IG5ldyBARXJyb3IoIk91dCBvZiBtZW1vcnki
KTsKKwogICAgIHZhciBmaWxsTGVuZ3RoID0gbWF4TGVuZ3RoIC0gc3RyaW5nTGVuZ3RoOwogICAg
IHZhciB0cnVuY2F0ZWRTdHJpbmdGaWxsZXI7CiAKQEAgLTE4MSwxNCArMTg0LDE4IEBAIGZ1bmN0
aW9uIHBhZEVuZChtYXhMZW5ndGgvKiwgZmlsbFN0cmluZyovKQogICAgICAgICByZXR1cm4gc3Ry
aW5nOwogCiAgICAgdmFyIGZpbGxlcjsKLSAgICBpZiAoYXJndW1lbnRzWzFdID09PSBAdW5kZWZp
bmVkKQorICAgIHZhciBmaWxsU3RyaW5nID0gYXJndW1lbnRzWzFdOworICAgIGlmIChmaWxsU3Ry
aW5nID09PSBAdW5kZWZpbmVkKQogICAgICAgICBmaWxsZXIgPSAiICI7CiAgICAgZWxzZSB7Ci0g
ICAgICAgIGZpbGxlciA9IEB0b1N0cmluZyhhcmd1bWVudHNbMV0pOworICAgICAgICBmaWxsZXIg
PSBAdG9TdHJpbmcoZmlsbFN0cmluZyk7CiAgICAgICAgIGlmIChmaWxsZXIgPT09ICIiKQogICAg
ICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICB9CiAKKyAgICBpZiAobWF4TGVuZ3RoID4gQE1B
WF9TVFJJTkdfTEVOR1RIKQorICAgICAgICB0aHJvdyBuZXcgQEVycm9yKCJPdXQgb2YgbWVtb3J5
Iik7CisKICAgICB2YXIgZmlsbExlbmd0aCA9IG1heExlbmd0aCAtIHN0cmluZ0xlbmd0aDsKICAg
ICB2YXIgdHJ1bmNhdGVkU3RyaW5nRmlsbGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9ycy1wcm94eS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9l
czYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Jz
LXByb3h5LmpzCmluZGV4IDk1MmMyMGYuLjIyNzgxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3JzLXByb3h5LmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3JzLXByb3h5LmpzCkBAIC03LDE2ICs3LDYgQEAgZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0
ZWQsIGFjdHVhbCwgbXNnKSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlJyAr
IG1zZyArICc6ICcgKyBhY3R1YWwgKyAnLiBFeHBlY3RlZCAnICsgZXhwZWN0ZWQpOwogfQogCi1m
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKLSAgICB0cnkgewotICAgICAg
ICBmdW5jKCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgJyArIGZ1bmMgKyAn
KCkgdG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywgYnV0IGRpZCBub3QgdGhyb3cuJyk7
Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIGVycm9yVHlwZSkg
cmV0dXJuOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkICcgKyBmdW5jICsgJygp
IHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1dCB0aHJldyAnICsgZSk7Ci0gICAg
fQotfQotCiBmdW5jdGlvbiBzaG91bGRCZURhdGFQcm9wZXJ0eShleHBlY3RlZCwgdmFsdWUsIG5h
bWUpIHsKICAgICBpZiAobmFtZSA9PT0gdm9pZCAwKQogICAgICAgICBuYW1lID0gJzxwcm9wZXJ0
eSBkZXNjcmlwdG9yPic7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
ZXM2L09iamVjdF9zdGF0aWNfbWV0aG9kc19PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
cy5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRo
b2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLmpzCmluZGV4IDRlZjc0NmMuLmZm
MzBlN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0
X3N0YXRpY19tZXRob2RzX09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLmpzCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9lczYvT2JqZWN0X3N0YXRpY19tZXRob2RzX09i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzLmpzCkBAIC03LDE0ICs3LDE5IEBAIGZ1bmN0
aW9uIHNob3VsZEJlKGV4cGVjdGVkLCBhY3R1YWwsIG1zZykgewogICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ2JhZCB2YWx1ZScgKyBtc2cgKyAnOiAnICsgYWN0dWFsICsgJy4gRXhwZWN0ZWQgJyAr
IGV4cGVjdGVkKTsKIH0KIAotZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7
CitmdW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvck1lc3NhZ2UpIHsKKyAgICB2YXIgZXJy
b3JUaHJvd24gPSBmYWxzZTsKKyAgICB2YXIgZXJyb3IgPSBudWxsOwogICAgIHRyeSB7CiAgICAg
ICAgIGZ1bmMoKTsKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyAr
ICcoKSB0byB0aHJvdyAnICsgZXJyb3JUeXBlLm5hbWUgKyAnLCBidXQgZGlkIG5vdCB0aHJvdy4n
KTsKICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGlmIChlIGluc3RhbmNlb2YgZXJyb3JUeXBl
KSByZXR1cm47Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcignRXhwZWN0ZWQgJyArIGZ1bmMgKyAn
KCkgdG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywgYnV0IHRocmV3ICcgKyBlKTsKKyAg
ICAgICAgZXJyb3JUaHJvd24gPSB0cnVlOworICAgICAgICBlcnJvciA9IGU7CiAgICAgfQorICAg
IGlmICghZXJyb3JUaHJvd24pCisgICAgICAgIHRocm93IG5ldyBFcnJvcignbm90IHRocm93bicp
OworICAgIGlmIChTdHJpbmcoZXJyb3IpICE9PSBlcnJvck1lc3NhZ2UpCisgICAgICAgIHRocm93
IG5ldyBFcnJvcihgYmFkIGVycm9yOiAke1N0cmluZyhlcnJvcil9YCk7CiB9CiAKIGZ1bmN0aW9u
IHNob3VsZEJlRGF0YVByb3BlcnR5KGV4cGVjdGVkLCB2YWx1ZSwgbmFtZSkgewpAQCAtMzgsMTMg
KzQzLDEzIEBAIGZ1bmN0aW9uIHNob3VsZEJlRGF0YVByb3BlcnR5KGV4cGVjdGVkLCB2YWx1ZSwg
bmFtZSkgewogICAgIHNob3VsZEJlKHRydWUsIHByb3BlcnR5RGVzY3JpcHRvci53cml0YWJsZSk7
CiAgICAgc2hvdWxkQmUodHJ1ZSwgcHJvcGVydHlEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSk7CiAK
LSAgICBzaG91bGRUaHJvdygoKSA9PiBuZXcgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cnMoe30pLCBUeXBlRXJyb3IpOworICAgIHNob3VsZFRocm93KCgpID0+IG5ldyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9ycyh7fSksICJUeXBlRXJyb3I6IGZ1bmN0aW9uIGlzIG5vdCBh
IGNvbnN0cnVjdG9yIChldmFsdWF0aW5nICduZXcgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcnMoe30pJykiKTsKIH0pKCk7CiAKIChmdW5jdGlvbiB0ZXN0VG9PYmplY3QoKSB7Ci0gICAg
c2hvdWxkVGhyb3coKCkgPT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMobnVsbCks
IFR5cGVFcnJvcik7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcnModW5kZWZpbmVkKSwgVHlwZUVycm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9
PiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycygpLCBUeXBlRXJyb3IpOworICAgIHNo
b3VsZFRocm93KCgpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKG51bGwpLCAi
VHlwZUVycm9yOiBudWxsIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3JzKG51bGwpJykiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBP
YmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyh1bmRlZmluZWQpLCAiVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcnModW5kZWZpbmVkKScpIik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMoKSwgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ09iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0
b3JzKCknKSIpOwogfSkoKTsKIAogKGZ1bmN0aW9uIHRlc3RQcm90b3R5cGVQcm9wZXJ0aWVzKCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJv
dG90eXBlX21ldGhvZHNfU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQuanMgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90
eXBlLnBhZEVuZC5qcwppbmRleCA0MTI0MmJiLi42ZDhlMDM1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcu
cHJvdG90eXBlLnBhZEVuZC5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZEVuZC5qcwpAQCAt
NywxNCArNywxOSBAQCBmdW5jdGlvbiBzaG91bGRCZShleHBlY3RlZCwgYWN0dWFsLCBtc2cpIHsK
ICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWUnICsgbXNnICsgJzogJyArIGFjdHVh
bCArICcuIEV4cGVjdGVkICcgKyBleHBlY3RlZCk7CiB9CiAKLWZ1bmN0aW9uIHNob3VsZFRocm93
KGZ1bmMsIGVycm9yVHlwZSkgeworZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JNZXNz
YWdlKSB7CisgICAgdmFyIGVycm9yVGhyb3duID0gZmFsc2U7CisgICAgdmFyIGVycm9yID0gbnVs
bDsKICAgICB0cnkgewogICAgICAgICBmdW5jKCk7Ci0gICAgICAgIHRocm93IG5ldyBFcnJvcign
RXhwZWN0ZWQgJyArIGZ1bmMgKyAnKCkgdG8gdGhyb3cgJyArIGVycm9yVHlwZS5uYW1lICsgJywg
YnV0IGRpZCBub3QgdGhyb3cuJyk7CiAgICAgfSBjYXRjaCAoZSkgewotICAgICAgICBpZiAoZSBp
bnN0YW5jZW9mIGVycm9yVHlwZSkgcmV0dXJuOwotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4
cGVjdGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBlcnJvclR5cGUubmFtZSArICcsIGJ1
dCB0aHJldyAnICsgZSk7CisgICAgICAgIGVycm9yVGhyb3duID0gdHJ1ZTsKKyAgICAgICAgZXJy
b3IgPSBlOwogICAgIH0KKyAgICBpZiAoIWVycm9yVGhyb3duKQorICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoJ25vdCB0aHJvd24nKTsKKyAgICBpZiAoU3RyaW5nKGVycm9yKSAhPT0gZXJyb3JNZXNz
YWdlKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGJhZCBlcnJvcjogJHtTdHJpbmcoZXJyb3Ip
fWApOwogfQogCiAoZnVuY3Rpb24gVGVzdE1ldGEoKSB7CkBAIC0zMSwxMyArMzYsMTMgQEAgZnVu
Y3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JUeXBlKSB7CiAgICAgc2hvdWxkQmUodHJ1ZSwg
ZGVzY3JpcHRvci53cml0YWJsZSk7CiAgICAgc2hvdWxkQmUoU3RyaW5nLnByb3RvdHlwZS5wYWRF
bmQsIGRlc2NyaXB0b3IudmFsdWUpOwogCi0gICAgc2hvdWxkVGhyb3coKCkgPT4gbmV3IEZ1bmN0
aW9uKGAke1N0cmluZy5wcm90b3R5cGUucGFkRW5kfWApLCBTeW50YXhFcnJvcik7CisgICAgc2hv
dWxkVGhyb3coKCkgPT4gbmV3IEZ1bmN0aW9uKGAke1N0cmluZy5wcm90b3R5cGUucGFkRW5kfWAp
LCAiU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgaWRlbnRpZmllciAnY29kZScuIEV4cGVjdGVkIGVp
dGhlciBhIGNsb3NpbmcgJ10nIG9yIGEgJywnIGZvbGxvd2luZyBhbiBhcnJheSBlbGVtZW50LiIp
OwogfSkoKTsKIAogKGZ1bmN0aW9uIFRlc3RSZXF1aXJlT2JqZWN0Q29lcmNpYmxlKCkgewogICAg
IHZhciBwYWRFbmQgPSBTdHJpbmcucHJvdG90eXBlLnBhZEVuZDsKLSAgICBzaG91bGRUaHJvdygo
KSA9PiBwYWRFbmQuY2FsbChudWxsLCA0LCAidGVzdCIpLCBUeXBlRXJyb3IpOwotICAgIHNob3Vs
ZFRocm93KCgpID0+IHBhZEVuZC5jYWxsKHVuZGVmaW5lZCwgNCwgInRlc3QiKSwgVHlwZUVycm9y
KTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRFbmQuY2FsbChudWxsLCA0LCAidGVzdCIpLCAi
VHlwZUVycm9yOiBTdHJpbmcucHJvdG90eXBlLnBhZEVuZCByZXF1aXJlcyB0aGF0IHx0aGlzfCBu
b3QgYmUgbnVsbCIpOworICAgIHNob3VsZFRocm93KCgpID0+IHBhZEVuZC5jYWxsKHVuZGVmaW5l
ZCwgNCwgInRlc3QiKSwgIlR5cGVFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5wYWRFbmQgcmVxdWly
ZXMgdGhhdCB8dGhpc3wgbm90IGJlIHVuZGVmaW5lZCIpOwogICAgIHNob3VsZEJlKCIxMjMgICAi
LCBwYWRFbmQuY2FsbCh7CiAgICAgICAgIF9fcHJvdG9fXzogbnVsbCwKICAgICAgICAgdmFsdWVP
ZigpIHsgcmV0dXJuIDEyMzsgfQpAQCAtNjMsNyArNjgsNyBAQCBmdW5jdGlvbiBzaG91bGRUaHJv
dyhmdW5jLCBlcnJvclR5cGUpIHsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0VG9MZW5ndGgoKSB7
Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gIjEyMyIucGFkRW5kKFN5bWJvbCgiMTYiKSksIFR5cGVF
cnJvcik7CisgICAgc2hvdWxkVGhyb3coKCkgPT4gIjEyMyIucGFkRW5kKFN5bWJvbCgiMTYiKSks
ICJUeXBlRXJyb3I6IENhbm5vdCBjb252ZXJ0IGEgc3ltYm9sIHRvIGEgbnVtYmVyIik7CiAgICAg
c2hvdWxkQmUoIjEyMyIsICIxMjMiLnBhZEVuZCgtMSkpOwogICAgIHNob3VsZEJlKCIxMjMiLCAi
MTIzIi5wYWRFbmQoeyB0b1N0cmluZygpIHsgcmV0dXJuIC0xOyB9IH0pKTsKICAgICBzaG91bGRC
ZSgiMTIzIiwgIjEyMyIucGFkRW5kKC0wKSk7CkBAIC05Niw5ICsxMDEsOSBAQCBmdW5jdGlvbiBz
aG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0TWVt
b3J5TGltaXRzKCkgewotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRFbmQoMHg4MDAwMDAw
MCwgIm8iKSwgRXJyb3IpOwotICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRFbmQoeyB2YWx1
ZU9mKCkgeyByZXR1cm4gMHg4MDAwMDAwMDsgfSB9LCAibyIpLCBFcnJvcik7Ci0gICAgc2hvdWxk
VGhyb3coKCkgPT4gIi4iLnBhZEVuZCgiMHg4MDAwMDAwMCIsICJvIiksIEVycm9yKTsKKyAgICBz
aG91bGRUaHJvdygoKSA9PiAiLiIucGFkRW5kKDB4ODAwMDAwMDAsICJvIiksICJFcnJvcjogT3V0
IG9mIG1lbW9yeSIpOworICAgIHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRFbmQoeyB2YWx1ZU9m
KCkgeyByZXR1cm4gMHg4MDAwMDAwMDsgfSB9LCAibyIpLCAiRXJyb3I6IE91dCBvZiBtZW1vcnki
KTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkRW5kKCIweDgwMDAwMDAwIiwgIm8iKSwg
IkVycm9yOiBPdXQgb2YgbWVtb3J5Iik7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVzdEZpbGxlclJl
cGV0aXRpb24oKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2
L1N0cmluZy5wcm90b3R5cGVfbWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LmpzIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2VzNi9TdHJpbmcucHJvdG90eXBlX21ldGhvZHNf
U3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydC5qcwppbmRleCA3MDg1YmFmLi5mOGU1MTI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXM2L1N0cmluZy5wcm90b3R5cGVf
bWV0aG9kc19TdHJpbmcucHJvdG90eXBlLnBhZFN0YXJ0LmpzCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9lczYvU3RyaW5nLnByb3RvdHlwZV9tZXRob2RzX1N0cmluZy5wcm90b3R5
cGUucGFkU3RhcnQuanMKQEAgLTcsMTQgKzcsMTkgQEAgZnVuY3Rpb24gc2hvdWxkQmUoZXhwZWN0
ZWQsIGFjdHVhbCwgbXNnKSB7CiAgICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlJyAr
IG1zZyArICc6ICcgKyBhY3R1YWwgKyAnLiBFeHBlY3RlZCAnICsgZXhwZWN0ZWQpOwogfQogCi1m
dW5jdGlvbiBzaG91bGRUaHJvdyhmdW5jLCBlcnJvclR5cGUpIHsKK2Z1bmN0aW9uIHNob3VsZFRo
cm93KGZ1bmMsIGVycm9yTWVzc2FnZSkgeworICAgIHZhciBlcnJvclRocm93biA9IGZhbHNlOwor
ICAgIHZhciBlcnJvciA9IG51bGw7CiAgICAgdHJ5IHsKICAgICAgICAgZnVuYygpOwotICAgICAg
ICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkICcgKyBmdW5jICsgJygpIHRvIHRocm93ICcgKyBl
cnJvclR5cGUubmFtZSArICcsIGJ1dCBkaWQgbm90IHRocm93LicpOwogICAgIH0gY2F0Y2ggKGUp
IHsKLSAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBlcnJvclR5cGUpIHJldHVybjsKLSAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCAnICsgZnVuYyArICcoKSB0byB0aHJvdyAnICsgZXJy
b3JUeXBlLm5hbWUgKyAnLCBidXQgdGhyZXcgJyArIGUpOworICAgICAgICBlcnJvclRocm93biA9
IHRydWU7CisgICAgICAgIGVycm9yID0gZTsKICAgICB9CisgICAgaWYgKCFlcnJvclRocm93bikK
KyAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdub3QgdGhyb3duJyk7CisgICAgaWYgKFN0cmluZyhl
cnJvcikgIT09IGVycm9yTWVzc2FnZSkKKyAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBiYWQgZXJy
b3I6ICR7U3RyaW5nKGVycm9yKX1gKTsKIH0KIAogKGZ1bmN0aW9uIFRlc3RNZXRhKCkgewpAQCAt
MzEsMTMgKzM2LDEzIEBAIGZ1bmN0aW9uIHNob3VsZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewog
ICAgIHNob3VsZEJlKHRydWUsIGRlc2NyaXB0b3Iud3JpdGFibGUpOwogICAgIHNob3VsZEJlKFN0
cmluZy5wcm90b3R5cGUucGFkU3RhcnQsIGRlc2NyaXB0b3IudmFsdWUpOwogCi0gICAgc2hvdWxk
VGhyb3coKCkgPT4gbmV3IEZ1bmN0aW9uKGAke1N0cmluZy5wcm90b3R5cGUucGFkU3RhcnR9YCks
IFN5bnRheEVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiBuZXcgRnVuY3Rpb24oYCR7U3Ry
aW5nLnByb3RvdHlwZS5wYWRTdGFydH1gKSwgIlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIGlkZW50
aWZpZXIgJ2NvZGUnLiBFeHBlY3RlZCBlaXRoZXIgYSBjbG9zaW5nICddJyBvciBhICcsJyBmb2xs
b3dpbmcgYW4gYXJyYXkgZWxlbWVudC4iKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0UmVxdWly
ZU9iamVjdENvZXJjaWJsZSgpIHsKICAgICB2YXIgcGFkU3RhcnQgPSBTdHJpbmcucHJvdG90eXBl
LnBhZFN0YXJ0OwotICAgIHNob3VsZFRocm93KCgpID0+IHBhZFN0YXJ0LmNhbGwobnVsbCwgNCwg
InRlc3QiKSwgVHlwZUVycm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiBwYWRTdGFydC5jYWxs
KHVuZGVmaW5lZCwgNCwgInRlc3QiKSwgVHlwZUVycm9yKTsKKyAgICBzaG91bGRUaHJvdygoKSA9
PiBwYWRTdGFydC5jYWxsKG51bGwsIDQsICJ0ZXN0IiksICJUeXBlRXJyb3I6IFN0cmluZy5wcm90
b3R5cGUucGFkU3RhcnQgcmVxdWlyZXMgdGhhdCB8dGhpc3wgbm90IGJlIG51bGwiKTsKKyAgICBz
aG91bGRUaHJvdygoKSA9PiBwYWRTdGFydC5jYWxsKHVuZGVmaW5lZCwgNCwgInRlc3QiKSwgIlR5
cGVFcnJvcjogU3RyaW5nLnByb3RvdHlwZS5wYWRTdGFydCByZXF1aXJlcyB0aGF0IHx0aGlzfCBu
b3QgYmUgdW5kZWZpbmVkIik7CiAgICAgc2hvdWxkQmUoIiAgIDEyMyIsIHBhZFN0YXJ0LmNhbGwo
ewogICAgICAgICBfX3Byb3RvX186IG51bGwsCiAgICAgICAgIHZhbHVlT2YoKSB7IHJldHVybiAx
MjM7IH0KQEAgLTYzLDcgKzY4LDcgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZnVuYywgZXJyb3JU
eXBlKSB7CiB9KSgpOwogCiAoZnVuY3Rpb24gVGVzdFRvTGVuZ3RoKCkgewotICAgIHNob3VsZFRo
cm93KCgpID0+ICIxMjMiLnBhZFN0YXJ0KFN5bWJvbCgiMTYiKSksIFR5cGVFcnJvcik7CisgICAg
c2hvdWxkVGhyb3coKCkgPT4gIjEyMyIucGFkU3RhcnQoU3ltYm9sKCIxNiIpKSwgIlR5cGVFcnJv
cjogQ2Fubm90IGNvbnZlcnQgYSBzeW1ib2wgdG8gYSBudW1iZXIiKTsKICAgICBzaG91bGRCZSgi
MTIzIiwgIjEyMyIucGFkU3RhcnQoLTEpKTsKICAgICBzaG91bGRCZSgiMTIzIiwgIjEyMyIucGFk
U3RhcnQoeyB0b1N0cmluZygpIHsgcmV0dXJuIC0xOyB9IH0pKTsKICAgICBzaG91bGRCZSgiMTIz
IiwgIjEyMyIucGFkU3RhcnQoLTApKTsKQEAgLTk2LDkgKzEwMSw5IEBAIGZ1bmN0aW9uIHNob3Vs
ZFRocm93KGZ1bmMsIGVycm9yVHlwZSkgewogfSkoKTsKIAogKGZ1bmN0aW9uIFRlc3RNZW1vcnlM
aW1pdHMoKSB7Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gIi4iLnBhZFN0YXJ0KDB4ODAwMDAwMDAs
ICJvIiksIEVycm9yKTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkU3RhcnQoeyB2YWx1
ZU9mKCkgeyByZXR1cm4gMHg4MDAwMDAwMDsgfSB9LCAibyIpLCBFcnJvcik7Ci0gICAgc2hvdWxk
VGhyb3coKCkgPT4gIi4iLnBhZFN0YXJ0KCIweDgwMDAwMDAwIiwgIm8iKSwgRXJyb3IpOworICAg
IHNob3VsZFRocm93KCgpID0+ICIuIi5wYWRTdGFydCgweDgwMDAwMDAwLCAibyIpLCAiRXJyb3I6
IE91dCBvZiBtZW1vcnkiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkU3RhcnQoeyB2
YWx1ZU9mKCkgeyByZXR1cm4gMHg4MDAwMDAwMDsgfSB9LCAibyIpLCAiRXJyb3I6IE91dCBvZiBt
ZW1vcnkiKTsKKyAgICBzaG91bGRUaHJvdygoKSA9PiAiLiIucGFkU3RhcnQoIjB4ODAwMDAwMDAi
LCAibyIpLCAiRXJyb3I6IE91dCBvZiBtZW1vcnkiKTsKIH0pKCk7CiAKIChmdW5jdGlvbiBUZXN0
RmlsbGVyUmVwZXRpdGlvbigpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>