<?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>174809</bug_id>
          
          <creation_ts>2017-07-24 20:29:51 -0700</creation_ts>
          <short_desc>Fix bugs in probe code to change sp on x86, x86_64 and 32-bit ARM.</short_desc>
          <delta_ts>2017-07-25 13:57:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174645</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1331848</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-24 20:29:51 -0700</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331849</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-24 20:30:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/33504759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331857</commentid>
    <comment_count>2</comment_count>
      <attachid>316347</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-24 20:54:48 -0700</bug_when>
    <thetext>Created attachment 316347
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1331858</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-07-24 20:56:38 -0700</bug_when>
    <thetext>Attachment 316347 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:226:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:271:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:272:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:318:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:423:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/assembler/testmasm.cpp:474:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332051</commentid>
    <comment_count>4</comment_count>
      <attachid>316347</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-07-25 13:09:11 -0700</bug_when>
    <thetext>Comment on attachment 316347
proposed patch.

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

Does testmasm run on any bots?  Maybe it should!

&gt; Source/JavaScriptCore/assembler/testmasm.cpp:321
&gt; +void testProbeModifiesStackPointer(std::function&lt;void*(ProbeContext*)&gt; computeModifiedStack)

Would WTF::Function work here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1332079</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-07-25 13:57:37 -0700</bug_when>
    <thetext>Thanks for the review.

(In reply to Filip Pizlo from comment #4)
&gt; Does testmasm run on any bots?  Maybe it should!

I&apos;ll talk to the relevant folks to get this going.

&gt; &gt; Source/JavaScriptCore/assembler/testmasm.cpp:321
&gt; &gt; +void testProbeModifiesStackPointer(std::function&lt;void*(ProbeContext*)&gt; computeModifiedStack)
&gt; 
&gt; Would WTF::Function work here?

I&apos;ve changed all uses of std::function in testmasm.cpp to WTF::Function.

Landed in r219885: &lt;http://trac.webkit.org/r219885&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316347</attachid>
            <date>2017-07-24 20:54:48 -0700</date>
            <delta_ts>2017-07-25 13:09:11 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-174809.patch</filename>
            <type>text/plain</type>
            <size>44947</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjE5ODU1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBA
CisyMDE3LTA3LTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBG
aXggYnVncyBpbiBwcm9iZSBjb2RlIHRvIGNoYW5nZSBzcCBvbiB4ODYsIHg4Nl82NCBhbmQgMzIt
Yml0IEFSTS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3NDgwOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzM1MDQ3NTk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMS4gV2hlbiB0aGUgcHJvYmUgaGFu
ZGxlciBmdW5jdGlvbiBjaGFuZ2VzIHRoZSBzcCByZWdpc3RlciB0byBwb2ludCB0byB0aGUKKyAg
ICAgICAgICAgcmVnaW9uIG9mIHN0YWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIFByb2JlQ29udGV4
dCBvbiB0aGUgc3RhY2ssIHRoZXJlIGlzIGEKKyAgICAgICAgICAgYnVnIHdoZXJlIHRoZSBQcm9i
ZUNvbnRleHQncyByZWdpc3RlciB2YWx1ZXMgdG8gYmUgcmVzdG9yZWQgY2FuIGJlIG92ZXItd3Jp
dHRlbgorICAgICAgICAgICBiZWZvcmUgdGhleSBjYW4gYmUgcmVzdG9yZWQuICBUaGlzIGlzIG5v
dyBmaXhlZC4KKworICAgICAgICAyLiBBZGRlZCBtb3JlIHJvYnVzdCBwcm9iZSB0ZXN0cyBmb3Ig
Y2hhbmdpbmcgdGhlIHNwIHJlZ2lzdGVyLgorCisgICAgICAgIDMuIE1hZGUgZXhpc3RpbmcgcHJv
YmUgdGVzdHMgdG8gZW5zdXJlIHRoYXQgcHJvYmUgaGFuZGxlcnMgd2VyZSBhY3R1YWxseSBjYWxs
ZWQuCisKKyAgICAgICAgNC4gQWRkZWQgc29tZSB2ZXJpZmljYXRpb24gdG8gdGVzdFByb2JlUHJl
c2VydmVzR1BSUygpLgorCisgICAgICAgIDUuIENoYW5nZSBhbGwgdGhlIHByb2JlIHRlc3RzIHRv
IGZhaWwgZWFybHkgb24gZGlzY292ZXJpbmcgYW4gZXJyb3IgaW5zdGVhZCBvZgorICAgICAgICAg
ICBiYXRjaGluZyB0aWxsIHRoZSBlbmQgb2YgdGhlIHRlc3QuICBUaGlzIGhlbHBzIHBvaW50IGEg
ZmluZ2VyIHRvIHRoZSBmYWlsaW5nCisgICAgICAgICAgIGlzc3VlIGVhcmxpZXIuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCB3YXMgdGVzdGVkIG9uIHg4NiwgeDg2XzY0LCBhbmQgQVJNdjcuICBBUk02
NCBwcm9iZSBjb2RlIHdpbGwgYmUgZml4ZWQKKyAgICAgICAgbmV4dCBpbiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc0Njk3LgorCisgICAgICAgICogYXNzZW1ibGVy
L01hY3JvQXNzZW1ibGVyQVJNLmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5jcHA6CisgICAgICAgICogYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2Q29tbW9u
LmNwcDoKKyAgICAgICAgKiBhc3NlbWJsZXIvdGVzdG1hc20uY3BwOgorICAgICAgICAoSlNDOjp0
ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJzKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2Jl
V3JpdGVzQXJndW1lbnRSZWdpc3RlcnMpOgorICAgICAgICAoSlNDOjp0ZXN0UHJvYmVQcmVzZXJ2
ZXNHUFJTKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIpOgor
ICAgICAgICAoSlNDOjp0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlclRvSW5zaWRlUHJvYmVD
b250ZXh0T25TdGFjayk6CisgICAgICAgIChKU0M6OnRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2lu
dGVyVG9OQnl0ZXNCZWxvd1NQKToKKyAgICAgICAgKEpTQzo6dGVzdFByb2JlTW9kaWZpZXNQcm9n
cmFtQ291bnRlcik6CisgICAgICAgIChKU0M6OnJ1bik6CisKIDIwMTctMDctMjQgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEdhcmRlbmluZzogZml4ZWQgQyBMb29w
IGJ1aWxkIGFmdGVyIHIyMTk3OTAuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNLmNwcAkocmV2aXNpb24gMjE5ODU1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlckFSTS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIxNSw4ICsyMTUsOCBAQCBhc20gKAogCiAgICAgLy8gTWFjcm9B
c3NlbWJsZXJBUk06OnByb2JlKCkgaGFzIGFscmVhZHkgZ2VuZXJhdGVkIGNvZGUgdG8gc3RvcmUg
c29tZSB2YWx1ZXMuCiAgICAgLy8gVGhlIHRvcCBvZiBzdGFjayBub3cgbG9va3MgbGlrZSB0aGlz
OgotICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBwcm9iZUZ1bmN0aW9uCi0gICAgLy8gICAg
IGVzcFsxICogcHRyU2l6ZV06IGFyZworICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBwcm9i
ZSBoYW5kbGVyIGZ1bmN0aW9uCisgICAgLy8gICAgIGVzcFsxICogcHRyU2l6ZV06IHByb2JlIGFy
ZwogICAgIC8vICAgICBlc3BbMiAqIHB0clNpemVdOiBzYXZlZCByMyAvIFMwCiAgICAgLy8gICAg
IGVzcFszICogcHRyU2l6ZV06IHNhdmVkIGlwCiAgICAgLy8gICAgIGVzcFs0ICogcHRyU2l6ZV06
IHNhdmVkIGxyCkBAIC0yODgsMzggKzI4OCw0NiBAQCBhc20gKAogICAgIC8vICAgICBwYyBmcm9t
IHRoZXJlLgogICAgIC8vCiAgICAgLy8gMi4gSXNzdWUgMSBtZWFucyB3ZSB3aWxsIG5lZWQgdG8g
d3JpdGUgdG8gdGhlIHN0YWNrIGxvY2F0aW9uIGF0Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNw
dS5zcCAtIDQuIEJ1dCBpZiB0aGUgdXNlciBwcm9iZSBmdW5jdGlvbiBoYWQgIG1vZGlmaWVkCi0g
ICAgLy8gICAgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuc3AgdG8gcG9pbnQgaW4gdGhl
IHJhbmdlIGJldHdlZW4KLSAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNwdS5pcCB0aHJ1ICZQcm9i
ZUNvbnRleHQuY3B1LmFzcHIsIHRoZW4gdGhlIGFjdGlvbiBmb3IKLSAgICAvLyAgICBJc3N1ZSAx
IG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJlZm9yZSB3ZSBjYW4gcmVzdG9y
ZQotICAgIC8vICAgIHRoZW0uCisgICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5ncHJzW3NwXSAt
IFBUUl9TSVpFLiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24gaGFkCisgICAgLy8gICAg
bW9kaWZpZWQgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tzcF0gdG8gcG9pbnQg
aW4gdGhlIHJhbmdlIGJldHdlZW4KKyAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNwdS5ncHJzW2lw
XSB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LnNwcnNbYXNwcl0sIHRoZW4gdGhlIGFjdGlvbgorICAg
IC8vICAgIGZvciBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJl
Zm9yZSB3ZSBjYW4gcmVzdG9yZSB0aGVtLgogICAgIC8vCi0gICAgLy8gICAgVGhlIHNvbHV0aW9u
IGlzIHRvIGNoZWNrIGlmIFByb2JlQ29udGV4dC5jcHUuc3AgY29udGFpbnMgYSB2YWx1ZSBpbgor
ICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9iZUNvbnRleHQuY3B1Lmdw
cnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KICAgICAvLyAgICB0aGUgdW5kZXNpcmFibGUgcmFu
Z2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250ZXh0Ci0gICAgLy8gICAg
cmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgcmFuZ2UgKGF0IG1lbW9yeSBsb3dlciB0aGFuIHdoZXJl
Ci0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5zcCBwb2ludHMpIGZpcnN0LCBhbmQgcmVzdG9y
ZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCi0gICAgLy8gICAgZnJvbSB0aGlzIG5ldyByYW5nZS4K
KyAgICAvLyAgICByZWdpc3RlciBkYXRhIHRvIGEgc2FmZSBhcmVhIGZpcnN0LCBhbmQgcmVzdG9y
ZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCisgICAgLy8gICAgZnJvbSB0aGlzIG5ldyBzYWZlIGFy
ZWEuCiAKLSAgICAiYWRkICAgICAgIGlwLCBzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JF
X0NQVV9BUFNSX09GRlNFVCkgIlxuIgorICAgIC8vIFRoZSByZXN0b3JlIGFyZWEgZm9yIHRoZSBw
YyB3aWxsIGJlIGxvY2F0ZWQgYXQgMSB3b3JkIGJlbG93IHRoZSByZXN1bHRhbnQgc3AuCisgICAg
Ly8gQWxsIHJlc3RvcmUgdmFsdWVzIGFyZSBsb2NhdGVkIGF0IG9mZnNldCA8PSBQUk9CRV9DUFVf
QVBTUl9PRkZTRVQuIEhlbmNlLAorICAgIC8vIHdlIG5lZWQgdG8gbWFrZSBzdXJlIHRoYXQgcmVz
dWx0YW50IHNwID4gb2Zmc2V0IG9mIGFwc3IgKyAxLgorICAgICJhZGQgICAgICAgaXAsIHNwLCAj
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUICsgUFRSX1NJWkUpICJc
biIKICAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJjbXAgICAgICAgbHIsIGlwIiAiXG4iCiAgICAg
ImJndCAgICAgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICJcbiIK
IAotICAgIC8vIFdlIGdldCBoZXJlIGJlY2F1c2UgdGhlIG5ldyBleHBlY3RlZCBzdGFjayBwb2lu
dGVyIGxvY2F0aW9uIGlzIGxvd2VyCi0gICAgLy8gdGhhbiB3aGVyZSBpdCdzIHN1cHBvc2VkIHRv
IGJlLiBUaGlzIG1lYW5zIHRoZSBzYWZlIHJhbmdlIG9mIHN0YWNrCi0gICAgLy8gbWVtb3J5IHdo
ZXJlIHdlJ2xsIGJlIGNvcHlpbmcgdGhlIHJlbWFpbmluZyByZWdpc3RlciByZXN0b3JlIHZhbHVl
cyB0bwotICAgIC8vIG1pZ2h0IGJlIGluIGEgcmVnaW9uIG9mIG1lbW9yeSBiZWxvdyB0aGUgc3Ag
aS5lLiB1bmFsbG9jYXRlZCBzdGFjawotICAgIC8vIG1lbW9yeS4gVGhpcyBpbiB0dXJuIG1ha2Vz
IGl0IHZ1bG5lcmFibGUgdG8gaW50ZXJydXB0cyBwb3RlbnRpYWxseQotICAgIC8vIHRyYXNoaW5n
IHRoZSBjb3BpZWQgdmFsdWVzLiBUbyBwcmV2ZW50IHRoYXQsIHdlIG11c3QgZmlyc3QgYWxsb2Nh
dGUgdGhlCi0gICAgLy8gbmVlZGVkIHN0YWNrIG1lbW9yeSBieSBhZGp1c3RpbmcgdGhlIHNwIGJl
Zm9yZSB0aGUgY29weWluZy4KKyAgICAvLyBHZXR0aW5nIGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVz
dG9yZSBhcmVhIHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0IGRhdGEKKyAgICAvLyB0aGF0
IHdlIHdpbGwgbmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZhbHVlcyBmcm9tLiBTbywgbGV0
J3MgbW92ZSB0aGF0CisgICAgLy8gZGF0YSB0byBhIHNhZmUgcGxhY2UgYmVmb3JlIHdlIHN0YXJ0
IHdyaXRpbmcgaW50byB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIExldCdzIGxvY2F0ZSB0aGUg
InNhZmUgYXJlYSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlCisg
ICAgLy8gcmVzdG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoKKyAgICAvLyAxLiBUaGUgc2Fm
ZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJlYS4KKyAgICAvLyAyLiBUaGUg
c2FmZSBhcmVhIGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KKyAgICAvLyAgICBU
aGlzIG1ha2VzIGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkgKGRvZXMgbm90IHJlcXVpcmUg
bWVtbW92ZSkgc2VtYW50aWNzCisgICAgLy8gICAgdG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZXMg
dG8gdGhlIHNhZmUgYXJlYS4KKyAgICAKKyAgICAvLyBsciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwg
I1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKV0uCisgICAgInN1YiAgICAg
ICBsciwgbHIsICMoMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkg
IikiICJcbiIKKworICAgICJtb3YgICAgICAgaXAsIHNwIiAiXG4iIC8vIFNhdmUgdGhlIG9yaWdp
bmFsIFByb2JlQ29udGV4dCouCisKKyAgICAvLyBNYWtlIHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIg
cG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZQorICAgIC8vIHNh
ZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcg
aXQuCisgICAgIm1vdiAgICAgICBzcCwgbHIiICJcbiIgLy8gc3Agbm93IHBvaW50cyB0byB0aGUg
bmV3IFByb2JlQ29udGV4dCBpbiB0aGUgc2FmZSBhcmVhLgogCi0gICAgInN1YiAgICAgICBsciwg
bHIsICMoNiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKQotICAgICIgKyAiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZGU0VUKSAiKSIgIlxuIgotCi0gICAgIm1vdiAg
ICAgICBpcCwgc3AiICJcbiIKLSAgICAibW92ICAgICAgIHNwLCBsciIgIlxuIgotICAgICJtb3Yg
ICAgICAgbHIsIGlwIiAiXG4iCisgICAgIm1vdiAgICAgICBsciwgaXAiICJcbiIgLy8gVXNlIGxy
IGFzIHRoZSBvbGQgUHJvYmVDb250ZXh0Ki4KIAorICAgIC8vIENvcHkgdGhlIHJlc3RvcmUgZGF0
YSB0byB0aGUgbmV3IFByb2JlQ29udGV4dCouCiAgICAgImxkciAgICAgICBpcCwgW2xyLCAjIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKICAgICAic3Ry
ICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfSVBfT0ZGU0VU
KSAiXSIgIlxuIgogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09G
KFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCkBAIC0zMzEsMjAgKzMzOSwzMSBAQCBhc20g
KAogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9BUFNSX09GRlNFVCkgIl0iICJcbiIKICAgICAic3RyICAgICAgIGlwLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfQVBTUl9PRkZTRVQpICJdIiAiXG4iCiAKKyAgICAvLyBj
dGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kIGV4cGVjdHMgbHIgdG8gY29udGFpbiB0aGUgc3AgdmFs
dWUgdG8gYmUgcmVzdG9yZWQuCisgICAgLy8gU2luY2Ugd2UgdXNlZCBpdCBhcyBzY3JhdGNoIGFi
b3ZlLCBsZXQncyByZXN0b3JlIGl0LgorICAgICJsZHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCisKICAgICBTWU1CT0xf
U1RSSU5HKGN0aU1hc21Qcm9iZVRyYW1wb2xpbmVFbmQpICI6IiAiXG4iCisKKyAgICAvLyBTZXQg
dXAgdGhlIHJlc3RvcmUgYXJlYSBmb3Igc3AgYW5kIHBjLgorICAgIC8vIGxyIGFscmVhZHkgY29u
dGFpbnMgW3NwLCAjU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpXS4KKwor
ICAgIC8vIFB1c2ggdGhlIHBjIG9uIHRvIHRoZSByZXN0b3JlIGFyZWEuCiAgICAgImxkciAgICAg
ICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1BDX09GRlNFVCkgIl0i
ICJcbiIKLSAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJzdWIgICAgICAgbHIsIGxyLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICJcbiIKICAgICAic3RyICAgICAgIGlwLCBbbHJdIiAi
XG4iCisgICAgLy8gUG9pbnQgc3AgdG8gdGhlIHJlc3RvcmUgYXJlYS4KICAgICAic3RyICAgICAg
IGxyLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIg
IlxuIgogCisgICAgLy8gQWxsIGRvbmUgd2l0aCBtYXRoIGkuZS4gd29uJ3QgdHJhc2ggdGhlIHN0
YXR1cyByZWdpc3RlciAoYXBzcikgYW5kIGRvbid0IG5lZWQKKyAgICAvLyBzY3JhdGNoIHJlZ2lz
dGVycyAobHIgYW5kIGlwKSBhbnltb3JlLiBSZXN0b3JlIGFwc3IsIGxyLCBhbmQgaXAuCiAgICAg
ImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1Jf
T0ZGU0VUKSAiXSIgIlxuIgogICAgICJtc3IgICAgICAgQVBTUiwgaXAiICJcbiIKLSAgICAibGRy
ICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfTFJfT0ZGU0VU
KSAiXSIgIlxuIgotICAgICJtb3YgICAgICAgbHIsIGlwIiAiXG4iCisgICAgImxkciAgICAgICBs
ciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0xSX09GRlNFVCkgIl0iICJc
biIKICAgICAibGRyICAgICAgIGlwLCBbc3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfSVBfT0ZGU0VUKSAiXSIgIlxuIgotICAgICJsZHIgICAgICAgc3AsIFtzcCwgIyIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCiAKKyAgICAvLyBSZXN0
b3JlIHRoZSBzcCBhbmQgcGMuCisgICAgImxkciAgICAgICBzcCwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKICAgICAicG9wICAgICAgIHsg
cGMgfSIgIlxuIgogKTsKICNlbmRpZiAvLyBDT01QSUxFUihHQ0NfT1JfQ0xBTkcpCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyQVJNdjcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJs
ZXJBUk12Ny5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9h
c3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJBUk12Ny5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4Niw4
ICsxODYsOCBAQCBhc20gKAogCiAgICAgLy8gTWFjcm9Bc3NlbWJsZXJBUk12Nzo6cHJvYmUoKSBo
YXMgYWxyZWFkeSBnZW5lcmF0ZWQgY29kZSB0byBzdG9yZSBzb21lIHZhbHVlcy4KICAgICAvLyBU
aGUgdG9wIG9mIHN0YWNrIG5vdyBsb29rcyBsaWtlIHRoaXM6Ci0gICAgLy8gICAgIGVzcFswICog
cHRyU2l6ZV06IHByb2JlRnVuY3Rpb24KLSAgICAvLyAgICAgZXNwWzEgKiBwdHJTaXplXTogYXJn
CisgICAgLy8gICAgIGVzcFswICogcHRyU2l6ZV06IHByb2JlIGhhbmRsZXIgZnVuY3Rpb24KKyAg
ICAvLyAgICAgZXNwWzEgKiBwdHJTaXplXTogcHJvYmUgYXJnCiAgICAgLy8gICAgIGVzcFsyICog
cHRyU2l6ZV06IHNhdmVkIHIwCiAgICAgLy8gICAgIGVzcFszICogcHRyU2l6ZV06IHNhdmVkIGlw
CiAgICAgLy8gICAgIGVzcFs0ICogcHRyU2l6ZV06IHNhdmVkIGxyCkBAIC0yNTQsNDcgKzI1NCw1
NSBAQCBhc20gKAogICAgIC8vCiAgICAgLy8gMS4gTm9ybWFsIEFSTSBjYWxsaW5nIGNvbnZlbnRp
b24gcmVsaWVzIG9uIG1vdmluZyBsciB0byBwYyB0byByZXR1cm4gdG8KICAgICAvLyAgICB0aGUg
Y2FsbGVyLiBJbiBvdXIgY2FzZSwgdGhlIGFkZHJlc3MgdG8gcmV0dXJuIHRvIGlzIHNwZWNpZmll
ZCBieQotICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUucGMuIEFuZCBhdCB0aGF0IG1vbWVudCwg
d2Ugd29uJ3QgaGF2ZSBhbnkgYXZhaWxhYmxlCisgICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5n
cHJzW3BjXS4gQW5kIGF0IHRoYXQgbW9tZW50LCB3ZSB3b24ndCBoYXZlIGFueSBhdmFpbGFibGUK
ICAgICAvLyAgICBzY3JhdGNoIHJlZ2lzdGVycyB0byBob2xkIHRoZSByZXR1cm4gYWRkcmVzcyAo
bHIgbmVlZHMgdG8gaG9sZAotICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUubHIsIG5vdCB0aGUg
cmV0dXJuIGFkZHJlc3MpLgorICAgIC8vICAgIFByb2JlQ29udGV4dC5jcHUuZ3Byc1tscl0sIG5v
dCB0aGUgcmV0dXJuIGFkZHJlc3MpLgogICAgIC8vCiAgICAgLy8gICAgVGhlIHNvbHV0aW9uIGlz
IHRvIHN0b3JlIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgYW5kIGxvYWQgdGhlCiAg
ICAgLy8gICAgcGMgZnJvbSB0aGVyZS4KICAgICAvLwogICAgIC8vIDIuIElzc3VlIDEgbWVhbnMg
d2Ugd2lsbCBuZWVkIHRvIHdyaXRlIHRvIHRoZSBzdGFjayBsb2NhdGlvbiBhdAotICAgIC8vICAg
IFByb2JlQ29udGV4dC5jcHUuc3AgLSA0LiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24g
aGFkIG1vZGlmaWVkCi0gICAgLy8gICAgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuc3Ag
dG8gcG9pbnQgaW4gdGhlIHJhbmdlIGJldHdlZW4KLSAgICAvLyAgICAmUHJvYmVDb250ZXh0LmNw
dS5pcCB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LmFzcHIsIHRoZW4gdGhlIGFjdGlvbiBmb3IKLSAg
ICAvLyAgICBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRvIGJlIHJlc3RvcmVkIGJlZm9y
ZSB3ZSBjYW4gcmVzdG9yZQotICAgIC8vICAgIHRoZW0uCisgICAgLy8gICAgUHJvYmVDb250ZXh0
LmNwdS5ncHJzW3NwXSAtIFBUUl9TSVpFLiBCdXQgaWYgdGhlIHVzZXIgcHJvYmUgZnVuY3Rpb24g
aGFkCisgICAgLy8gICAgbW9kaWZpZWQgdGhlIHZhbHVlIG9mIFByb2JlQ29udGV4dC5jcHUuZ3By
c1tzcF0gdG8gcG9pbnQgaW4gdGhlIHJhbmdlIGJldHdlZW4KKyAgICAvLyAgICAmUHJvYmVDb250
ZXh0LmNwdS5ncHJzW2lwXSB0aHJ1ICZQcm9iZUNvbnRleHQuY3B1LnNwcnNbYXNwcl0sIHRoZW4g
dGhlIGFjdGlvbgorICAgIC8vICAgIGZvciBJc3N1ZSAxIG1heSB0cmFzaCB0aGUgdmFsdWVzIHRv
IGJlIHJlc3RvcmVkIGJlZm9yZSB3ZSBjYW4gcmVzdG9yZSB0aGVtLgogICAgIC8vCi0gICAgLy8g
ICAgVGhlIHNvbHV0aW9uIGlzIHRvIGNoZWNrIGlmIFByb2JlQ29udGV4dC5jcHUuc3AgY29udGFp
bnMgYSB2YWx1ZSBpbgorICAgIC8vICAgIFRoZSBzb2x1dGlvbiBpcyB0byBjaGVjayBpZiBQcm9i
ZUNvbnRleHQuY3B1LmdwcnNbc3BdIGNvbnRhaW5zIGEgdmFsdWUgaW4KICAgICAvLyAgICB0aGUg
dW5kZXNpcmFibGUgcmFuZ2UuIElmIHNvLCB3ZSBjb3B5IHRoZSByZW1haW5pbmcgUHJvYmVDb250
ZXh0Ci0gICAgLy8gICAgcmVnaXN0ZXIgZGF0YSB0byBhIHNhZmUgcmFuZ2UgKGF0IG1lbW9yeSBs
b3dlciB0aGFuIHdoZXJlCi0gICAgLy8gICAgUHJvYmVDb250ZXh0LmNwdS5zcCBwb2ludHMpIGZp
cnN0LCBhbmQgcmVzdG9yZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCi0gICAgLy8gICAgZnJvbSB0
aGlzIG5ldyByYW5nZS4KKyAgICAvLyAgICByZWdpc3RlciBkYXRhIHRvIGEgc2FmZSBhcmVhIGZp
cnN0LCBhbmQgcmVzdG9yZSB0aGUgcmVtYWluaW5nIHJlZ2lzdGVyCisgICAgLy8gICAgZnJvbSB0
aGlzIG5ldyBzYWZlIGFyZWEuCiAKLSAgICAiYWRkICAgICAgIGlwLCBzcCwgIyIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9BUFNSX09GRlNFVCkgIlxuIgorICAgIC8vIFRoZSByZXN0b3Jl
IGFyZWEgZm9yIHRoZSBwYyB3aWxsIGJlIGxvY2F0ZWQgYXQgMSB3b3JkIGJlbG93IHRoZSByZXN1
bHRhbnQgc3AuCisgICAgLy8gQWxsIHJlc3RvcmUgdmFsdWVzIGFyZSBsb2NhdGVkIGF0IG9mZnNl
dCA8PSBQUk9CRV9DUFVfQVBTUl9PRkZTRVQuIEhlbmNlLAorICAgIC8vIHdlIG5lZWQgdG8gbWFr
ZSBzdXJlIHRoYXQgcmVzdWx0YW50IHNwID4gb2Zmc2V0IG9mIGFwc3IgKyAxLgorICAgICJhZGQg
ICAgICAgaXAsIHNwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VU
ICsgUFRSX1NJWkUpICJcbiIKICAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgogICAgICJjbXAgICAgICAgbHIs
IGlwIiAiXG4iCiAgICAgIml0ICAgICAgICBndCIgIlxuIgogICAgICJiZ3QgICAgICIgU1lNQk9M
X1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4iCiAKLSAgICAvLyBXZSBnZXQg
aGVyZSBiZWNhdXNlIHRoZSBuZXcgZXhwZWN0ZWQgc3RhY2sgcG9pbnRlciBsb2NhdGlvbiBpcyBs
b3dlcgotICAgIC8vIHRoYW4gd2hlcmUgaXQncyBzdXBwb3NlZCB0byBiZS4gVGhpcyBtZWFucyB0
aGUgc2FmZSByYW5nZSBvZiBzdGFjawotICAgIC8vIG1lbW9yeSB3aGVyZSB3ZSdsbCBiZSBjb3B5
aW5nIHRoZSByZW1haW5pbmcgcmVnaXN0ZXIgcmVzdG9yZSB2YWx1ZXMgdG8KLSAgICAvLyBtaWdo
dCBiZSBpbiBhIHJlZ2lvbiBvZiBtZW1vcnkgYmVsb3cgdGhlIHNwIGkuZS4gdW5hbGxvY2F0ZWQg
c3RhY2sKLSAgICAvLyBtZW1vcnkuIFRoaXMsIGluIHR1cm4sIG1ha2VzIGl0IHZ1bG5lcmFibGUg
dG8gaW50ZXJydXB0cyBwb3RlbnRpYWxseQotICAgIC8vIHRyYXNoaW5nIHRoZSBjb3BpZWQgdmFs
dWVzLiBUbyBwcmV2ZW50IHRoYXQsIHdlIG11c3QgZmlyc3QgYWxsb2NhdGUgdGhlCi0gICAgLy8g
bmVlZGVkIHN0YWNrIG1lbW9yeSBieSBhZGp1c3RpbmcgdGhlIHNwIGJlZm9yZSB0aGUgY29weWlu
Zy4KLQotICAgICJzdWIgICAgICAgbHIsIGxyLCAjKDYgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQ
VFJfU0laRSkKLSAgICAiICsgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNF
VCkgIikiICJcbiIKLQotICAgICJtb3YgICAgICAgaXAsIHNwIiAiXG4iCi0gICAgIm1vdiAgICAg
ICBzcCwgbHIiICJcbiIKLSAgICAibW92ICAgICAgIGxyLCBpcCIgIlxuIgotCisgICAgLy8gR2V0
dGluZyBoZXJlIG1lYW5zIHRoYXQgdGhlIHJlc3RvcmUgYXJlYSB3aWxsIG92ZXJsYXAgdGhlIFBy
b2JlQ29udGV4dCBkYXRhCisgICAgLy8gdGhhdCB3ZSB3aWxsIG5lZWQgdG8gZ2V0IHRoZSByZXN0
b3JhdGlvbiB2YWx1ZXMgZnJvbS4gU28sIGxldCdzIG1vdmUgdGhhdAorICAgIC8vIGRhdGEgdG8g
YSBzYWZlIHBsYWNlIGJlZm9yZSB3ZSBzdGFydCB3cml0aW5nIGludG8gdGhlIHJlc3RvcmUgYXJl
YS4KKyAgICAvLyBMZXQncyBsb2NhdGUgdGhlICJzYWZlIGFyZWEiIGF0IDJ4IHNpemVvZihQcm9i
ZUNvbnRleHQpIGJlbG93IHdoZXJlIHRoZQorICAgIC8vIHJlc3RvcmUgYXJlYS4gVGhpcyBlbnN1
cmVzIHRoYXQ6CisgICAgLy8gMS4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRoZSBy
ZXN0b3JlIGFyZWEuCisgICAgLy8gMi4gVGhlIHNhZmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIHRo
ZSBQcm9iZUNvbnRleHQuCisgICAgLy8gICAgVGhpcyBtYWtlcyBpdCBzbyB0aGF0IHdlIGNhbiB1
c2UgbWVtY3B5IChkb2VzIG5vdCByZXF1aXJlIG1lbW1vdmUpIHNlbWFudGljcworICAgIC8vICAg
IHRvIGNvcHkgdGhlIHJlc3RvcmUgdmFsdWVzIHRvIHRoZSBzYWZlIGFyZWEuCisKKyAgICAvLyBs
ciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKV0uCisgICAgInN1YiAgICAgICBsciwgbHIsICMoMiAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBST0JFX0FMSUdORURfU0laRSkgIikiICJcbiIKKyAgICAKKyAgICAibW92ICAgICAgIGlw
LCBzcCIgIlxuIiAvLyBTYXZlIHRoZSBvcmlnaW5hbCBQcm9iZUNvbnRleHQqLgorICAgIAorICAg
IC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4g
VGhpcyBlbnN1cmVzIHRoYXQgdGhlCisgICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KKyAgICAibW92ICAgICAgIHNwLCBs
ciIgIlxuIiAvLyBzcCBub3cgcG9pbnRzIHRvIHRoZSBuZXcgUHJvYmVDb250ZXh0IGluIHRoZSBz
YWZlIGFyZWEuCisgICAgCisgICAgIm1vdiAgICAgICBsciwgaXAiICJcbiIgLy8gVXNlIGxyIGFz
IHRoZSBvbGQgUHJvYmVDb250ZXh0Ki4KKyAgICAKKyAgICAvLyBDb3B5IHRoZSByZXN0b3JlIGRh
dGEgdG8gdGhlIG5ldyBQcm9iZUNvbnRleHQqLgogICAgICJsZHIgICAgICAgaXAsIFtsciwgIyIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9JUF9PRkZTRVQpICJdIiAiXG4iCiAgICAgInN0
ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNF
VCkgIl0iICJcbiIKICAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9P
RihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgpAQCAtMzA2LDIxICszMTQsMzIgQEAgYXNt
ICgKICAgICAibGRyICAgICAgIGlwLCBbbHIsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfQVBTUl9PRkZTRVQpICJdIiAiXG4iCiAgICAgInN0ciAgICAgICBpcCwgW3NwLCAjIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0FQU1JfT0ZGU0VUKSAiXSIgIlxuIgogCisgICAgLy8g
Y3RpTWFzbVByb2JlVHJhbXBvbGluZUVuZCBleHBlY3RzIGxyIHRvIGNvbnRhaW4gdGhlIHNwIHZh
bHVlIHRvIGJlIHJlc3RvcmVkLgorICAgIC8vIFNpbmNlIHdlIHVzZWQgaXQgYXMgc2NyYXRjaCBh
Ym92ZSwgbGV0J3MgcmVzdG9yZSBpdC4KKyAgICAibGRyICAgICAgIGxyLCBbc3AsICMiIFNUUklO
R0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgorCiAgICAgIi50aHVt
Yl9mdW5jICIgVEhVTUJfRlVOQ19QQVJBTShjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiXG4i
CiAgICAgU1lNQk9MX1NUUklORyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgor
CisgICAgLy8gU2V0IHVwIHRoZSByZXN0b3JlIGFyZWEgZm9yIHNwIGFuZCBwYy4KKyAgICAvLyBs
ciBhbHJlYWR5IGNvbnRhaW5zIFtzcCwgI1NUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1Bf
T0ZGU0VUKV0uCisKKyAgICAvLyBQdXNoIHRoZSBwYyBvbiB0byB0aGUgcmVzdG9yZSBhcmVhLgog
ICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9Q
Q19PRkZTRVQpICJdIiAiXG4iCi0gICAgImxkciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFJPQkVfQ1BVX1NQX09GRlNFVCkgIl0iICJcbiIKICAgICAic3ViICAgICAgIGxy
LCBsciwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiXG4iCiAgICAgInN0ciAgICAg
ICBpcCwgW2xyXSIgIlxuIgorICAgIC8vIFBvaW50IHNwIHRvIHRoZSByZXN0b3JlIGFyZWEuCiAg
ICAgInN0ciAgICAgICBsciwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX1NQ
X09GRlNFVCkgIl0iICJcbiIKIAorICAgIC8vIEFsbCBkb25lIHdpdGggbWF0aCBpLmUuIHdvbid0
IHRyYXNoIHRoZSBzdGF0dXMgcmVnaXN0ZXIgKGFwc3IpIGFuZCBkb24ndCBuZWVkCisgICAgLy8g
c2NyYXRjaCByZWdpc3RlcnMgKGxyIGFuZCBpcCkgYW55bW9yZS4gUmVzdG9yZSBhcHNyLCBsciwg
YW5kIGlwLgogICAgICJsZHIgICAgICAgaXAsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBS
T0JFX0NQVV9BUFNSX09GRlNFVCkgIl0iICJcbiIKICAgICAibXNyICAgICAgIEFQU1IsIGlwIiAi
XG4iCi0gICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX0xSX09GRlNFVCkgIl0iICJcbiIKLSAgICAibW92ICAgICAgIGxyLCBpcCIgIlxuIgorICAg
ICJsZHIgICAgICAgbHIsIFtzcCwgIyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9MUl9P
RkZTRVQpICJdIiAiXG4iCiAgICAgImxkciAgICAgICBpcCwgW3NwLCAjIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0lQX09GRlNFVCkgIl0iICJcbiIKLSAgICAibGRyICAgICAgIHNwLCBb
c3AsICMiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfU1BfT0ZGU0VUKSAiXSIgIlxuIgog
CisgICAgLy8gUmVzdG9yZSB0aGUgc3AgYW5kIHBjLgorICAgICJsZHIgICAgICAgc3AsIFtzcCwg
IyIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9TUF9PRkZTRVQpICJdIiAiXG4iCiAgICAg
InBvcCAgICAgICB7IHBjIH0iICJcbiIKICk7CiAjZW5kaWYgLy8gQ09NUElMRVIoR0NDX09SX0NM
QU5HKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxl
clg4NkNvbW1vbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2Vt
Ymxlci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZDb21tb24uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNzEsOCArMTcxLDggQEAgYXNtICgKICAgICAvLyB0aGlzOgog
ICAgIC8vICAgICBlc3BbMCAqIHB0clNpemVdOiBlZmxhZ3MKICAgICAvLyAgICAgZXNwWzEgKiBw
dHJTaXplXTogcmV0dXJuIGFkZHJlc3MgLyBzYXZlZCBlaXAKLSAgICAvLyAgICAgZXNwWzIgKiBw
dHJTaXplXTogcHJvYmVGdW5jdGlvbgotICAgIC8vICAgICBlc3BbMyAqIHB0clNpemVdOiBhcmcx
CisgICAgLy8gICAgIGVzcFsyICogcHRyU2l6ZV06IHByb2JlIGhhbmRsZXIgZnVuY3Rpb24KKyAg
ICAvLyAgICAgZXNwWzMgKiBwdHJTaXplXTogcHJvYmUgYXJnCiAgICAgLy8gICAgIGVzcFs0ICog
cHRyU2l6ZV06IHNhdmVkIGVheAogICAgIC8vICAgICBlc3BbNSAqIHB0clNpemVdOiBzYXZlZCBl
c3AKIApAQCAtMjQwLDM1ICsyNDAsNDYgQEAgYXNtICgKIAogICAgIC8vIFRoZXJlIGFyZSA2IG1v
cmUgcmVnaXN0ZXJzIGxlZnQgdG8gcmVzdG9yZToKICAgICAvLyAgICAgZWF4LCBlY3gsIGVicCwg
ZXNwLCBlaXAsIGFuZCBlZmxhZ3MuCi0gICAgLy8gV2UgbmVlZCB0byBoYW5kbGUgdGhlc2UgbGFz
dCBmZXcgcmVzdG9yZXMgY2FyZWZ1bGx5IGJlY2F1c2U6Ci0gICAgLy8KLSAgICAvLyAxLiBXZSBu
ZWVkIHRvIHB1c2ggdGhlIHJldHVybiBhZGRyZXNzIG9uIHRoZSBzdGFjayBmb3IgcmV0IHRvIHVz
ZS4KLSAgICAvLyAgICBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gd3JpdGUgdG8gdGhlIHN0YWNrLgot
ICAgIC8vIDIuIFRoZSB1c2VyIHByb2JlIGZ1bmN0aW9uIG1heSBoYXZlIGFsdGVyZWQgdGhlIHJl
c3RvcmUgdmFsdWUgb2YgZXNwIHRvCi0gICAgLy8gICAgcG9pbnQgdG8gdGhlIHZpY2luaXR5IG9m
IG9uZSBvZiB0aGUgcmVzdG9yZSB2YWx1ZXMgZm9yIHRoZSByZW1haW5pbmcKLSAgICAvLyAgICBy
ZWdpc3RlcnMgbGVmdCB0byBiZSByZXN0b3JlZC4KLSAgICAvLyAgICBUaGF0IG1lYW5zLCBmb3Ig
cmVxdWlyZW1lbnQgMSwgd2UgbWF5IGVuZCB1cCB3cml0aW5nIG92ZXIgc29tZSBvZiB0aGUKLSAg
ICAvLyAgICByZXN0b3JlIHZhbHVlcy4gV2UgY2FuIGNoZWNrIGZvciB0aGlzLCBhbmQgZmlyc3Qg
Y29weSB0aGUgcmVzdG9yZQotICAgIC8vICAgIHZhbHVlcyB0byBhICJzYWZlIGFyZWEiIG9uIHRo
ZSBzdGFjayBiZWZvcmUgY29tbWVuY2luZyB3aXRoIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3Ig
cmVxdWlyZW1lbnQgMS4KLSAgICAvLyAzLiBGb3IgcmVxdWlyZW1lbnQgMiwgd2UgbmVlZCB0byBl
bnN1cmUgdGhhdCB0aGUgInNhZmUgYXJlYSIgaXMKLSAgICAvLyAgICBwcm90ZWN0ZWQgZnJvbSBp
bnRlcnJ1cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuIEhlbmNlLCB0aGUgZXNwIG5lZWRzCi0g
ICAgLy8gICAgdG8gYmUgYWRqdXN0ZWQgdG8gaW5jbHVkZSB0aGUgInNhZmUgYXJlYSIgYmVmb3Jl
IHdlIHN0YXJ0IGNvcHlpbmcgdGhlCi0gICAgLy8gICAgdGhlIHJlc3RvcmUgdmFsdWVzLgogCisg
ICAgLy8gVGhlIHJlc3RvcmF0aW9uIHByb2Nlc3MgYXQgY3RpTWFzbVByb2JlVHJhbXBvbGluZUVu
ZCBiZWxvdyB3b3JrcyBieSBwb3BwaW5nCisgICAgLy8gNSB3b3JkcyBvZmYgdGhlIHN0YWNrIGlu
dG8gZWZsYWdzLCBlYXgsIGVjeCwgZWJwLCBhbmQgZWlwLiBUaGVzZSA1IHdvcmRzIG5lZWQKKyAg
ICAvLyB0byBiZSBwdXNoZWQgb24gdG9wIG9mIHRoZSBmaW5hbCBlc3AgdmFsdWUgc28gdGhhdCBq
dXN0IGJ5IHBvcHBpbmcgdGhlIDUgd29yZHMsCisgICAgLy8gd2UnbGwgZ2V0IHRoZSBlc3AgdGhh
dCB0aGUgcHJvYmUgd2FudHMgdG8gc2V0LiBMZXQncyBjYWxsIHRoaXMgYXJlYSAoZm9yIHN0b3Jp
bmcKKyAgICAvLyB0aGVzZSA1IHdvcmRzKSB0aGUgcmVzdG9yZSBhcmVhLgorICAgICJtb3ZsICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAi
XG4iCisgICAgInN1YmwgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJWVj
eCIgIlxuIgorCisgICAgLy8gZWN4IG5vdyBwb2ludHMgdG8gdGhlIHJlc3RvcmUgYXJlYS4KKwor
ICAgIC8vIEJlZm9yZSB3ZSBjb3B5IHZhbHVlcyBmcm9tIHRoZSBQcm9iZUNvbnRleHQgdG8gdGhl
IHJlc3RvcmUgYXJlYSwgd2UgbmVlZCB0bworICAgIC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSByZXN0
b3JlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCBhbnkgb2YgdGhlIHZhbHVlcyB0aGF0IHdlJ2xsCisg
ICAgLy8gYmUgY29weWluZyBmcm9tIGluIHRoZSBQcm9iZUNvbnRleHQuIEFsbCB0aGUgcmVzdG9y
ZSB2YWx1ZXMgdG8gYmUgY29waWVkIGZyb20KKyAgICAvLyBjb21lcyBmcm9tIG9mZnNldCA8PSBQ
Uk9CRV9DUFVfRUZMQUdTX09GRlNFVCBpbiB0aGUgUHJvYmVDb250ZXh0LgogICAgICJtb3ZsICVl
YnAsICVlYXgiICJcbiIKICAgICAiYWRkbCAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BV
X0VGTEFHU19PRkZTRVQpICIsICVlYXgiICJcbiIKLSAgICAiY21wbCAlZWF4LCAiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIiglZWJwKSIgIlxuIgorICAgICJjbXBs
ICVlYXgsICVlY3giICJcbiIKICAgICAiamcgIiBTWU1CT0xfU1RSSU5HKGN0aU1hc21Qcm9iZVRy
YW1wb2xpbmVFbmQpICJcbiIKIAotICAgIC8vIExvY2F0ZSB0aGUgInNhZmUgYXJlYSIgYXQgMngg
c2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlIG5ldwotICAgIC8vIHJzcCB3aWxs
IGJlLiBUaGlzIHRpbWUgd2UgZG9uJ3QgaGF2ZSB0byAzMi1ieXRlIGFsaWduIGl0IGJlY2F1c2Ug
d2UncmUKLSAgICAvLyBub3QgdXNpbmcgdGhpcyBhcmVhIHRvIHN0b3JlIGFueSB4bW0gcmVncy4K
LSAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRVNQX09GRlNFVCkgIigl
ZWJwKSwgJWVheCIgIlxuIgorICAgIC8vIEdldHRpbmcgaGVyZSBtZWFucyB0aGF0IHRoZSByZXN0
b3JlIGFyZWEgd2lsbCBvdmVybGFwIHRoZSBQcm9iZUNvbnRleHQgZGF0YQorICAgIC8vIHRoYXQg
d2Ugd2lsbCBuZWVkIHRvIGdldCB0aGUgcmVzdG9yYXRpb24gdmFsdWVzIGZyb20uIFNvLCBsZXQn
cyBtb3ZlIHRoYXQKKyAgICAvLyBkYXRhIHRvIGEgc2FmZSBwbGFjZSBiZWZvcmUgd2Ugc3RhcnQg
d3JpdGluZyBpbnRvIHRoZSByZXN0b3JlIGFyZWEuCisgICAgLy8gTGV0J3MgbG9jYXRlIHRoZSAi
c2FmZSBhcmVhIiBhdCAyeCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUKKyAg
ICAvLyByZXN0b3JlIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0OgorICAgIC8vIDEuIFRoZSBzYWZl
IGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIDIuIFRoZSBz
YWZlIGFyZWEgZG9lcyBub3Qgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0LgorICAgIC8vICAgIFRo
aXMgbWFrZXMgaXQgc28gdGhhdCB3ZSBjYW4gdXNlIG1lbWNweSAoZG9lcyBub3QgcmVxdWlyZSBt
ZW1tb3ZlKSBzZW1hbnRpY3MKKyAgICAvLyAgICB0byBjb3B5IHRoZSByZXN0b3JlIHZhbHVlcyB0
byB0aGUgc2FmZSBhcmVhLgorICAgIC8vIE5vdGU6IHRoZSBzYWZlIGFyZWEgZG9lcyBub3QgaGF2
ZSB0byAzMi1ieXRlIGFsaWduIGl0IGJlY2F1c2Ugd2UncmUgbm90IHVzaW5nCisgICAgLy8gaXQg
dG8gc3RvcmUgYW55IHhtbSByZWdzLgorICAgICJtb3ZsICVlY3gsICVlYXgiICJcbiIKICAgICAi
c3VibCAkMiAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0FMSUdORURfU0laRSkgIiwgJWVh
eCIgIlxuIgorCisgICAgLy8gZWF4IG5vdyBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4KKworICAg
IC8vIE1ha2Ugc3VyZSB0aGUgc3RhY2sgcG9pbnRlciBwb2ludHMgdG8gdGhlIHNhZmUgYXJlYS4g
VGhpcyBlbnN1cmVzIHRoYXQgdGhlCisgICAgLy8gc2FmZSBhcmVhIGlzIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4KICAgICAibW92bCAlZWF4LCAlZXNw
IiAiXG4iCiAKLSAgICAic3VibCAkIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VBWF9P
RkZTRVQpICIsICVlYXgiICJcbiIKICAgICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9C
RV9DUFVfRUFYX09GRlNFVCkgIiglZWJwKSwgJWVjeCIgIlxuIgogICAgICJtb3ZsICVlY3gsICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQVhfT0ZGU0VUKSAiKCVlYXgpIiAiXG4iCiAg
ICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VDWF9PRkZTRVQpICIoJWVi
cCksICVlY3giICJcbiIKQEAgLTI4MywyMyArMjk0LDI5IEBAIGFzbSAoCiAgICAgIm1vdmwgJWVj
eCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJWVheCki
ICJcbiIKICAgICAibW92bCAlZWF4LCAlZWJwIiAiXG4iCiAKKyAgICAvLyBXZSB1c2VkIGVjeCBh
Ym92ZSBhcyBzY3JhdGNoIHJlZ2lzdGVyLiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0byB0
aGUKKyAgICAvLyByZXN0b3JlIGFyZWEuCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0Yo
UFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKKyAgICAic3VibCAkNSAq
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAlZWN4IiAiXG4iCisKKyAgICAvLyBl
Y3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgorCiAgICAgU1lNQk9MX1NUUklORyhj
dGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpF
X1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVlYnApLCAlZWF4IiAiXG4iCi0gICAg
InN1YmwgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJWVheCIgIlxuIgot
ICAgIC8vIEF0IHRoaXMgcG9pbnQsICVlc3Agc2hvdWxkIGJlIDwgJWVheC4KIAotICAgICJtb3Zs
ICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVlYnApLCAl
ZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVjeCwgMCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9T
SVpFKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVf
Q1BVX0VBWF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIKLSAgICAibW92bCAlZWN4LCAxICog
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVheCkiICJcbiIKLSAgICAibW92bCAi
IFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUNYX09GRlNFVCkgIiglZWJwKSwgJWVjeCIg
IlxuIgotICAgICJtb3ZsICVlY3gsIDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkg
IiglZWF4KSIgIlxuIgotICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9F
QlBfT0ZGU0VUKSAiKCVlYnApLCAlZWN4IiAiXG4iCi0gICAgIm1vdmwgJWVjeCwgMyAqICIgU1RS
SU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiKCVlYXgpIiAiXG4iCi0gICAgIm1vdmwgIiBTVFJJ
TkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJWVicCksICVlY3giICJcbiIK
LSAgICAibW92bCAlZWN4LCA0ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVh
eCkiICJcbiIKLSAgICAibW92bCAlZWF4LCAlZXNwIiAiXG4iCisgICAgLy8gQ29weSByZW1haW5p
bmcgcmVzdG9yZSB2YWx1ZXMgZnJvbSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3JlIGFy
ZWEuCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZT
RVQpICIoJWVicCksICVlYXgiICJcbiIKKyAgICAibW92bCAlZWF4LCAwICogIiBTVFJJTkdJWkVf
VkFMVUVfT0YoUFRSX1NJWkUpICIoJWVjeCkiICJcbiIKKyAgICAibW92bCAiIFNUUklOR0laRV9W
QUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglZWJwKSwgJWVheCIgIlxuIgorICAgICJt
b3ZsICVlYXgsIDEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiglZWN4KSIgIlxu
IgorICAgICJtb3ZsICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VUKSAi
KCVlYnApLCAlZWF4IiAiXG4iCisgICAgIm1vdmwgJWVheCwgMiAqICIgU1RSSU5HSVpFX1ZBTFVF
X09GKFBUUl9TSVpFKSAiKCVlY3gpIiAiXG4iCisgICAgIm1vdmwgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJWVicCksICVlYXgiICJcbiIKKyAgICAibW92bCAl
ZWF4LCAzICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJWVjeCkiICJcbiIKKyAg
ICAibW92bCAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkgIiglZWJw
KSwgJWVheCIgIlxuIgorICAgICJtb3ZsICVlYXgsIDQgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQ
VFJfU0laRSkgIiglZWN4KSIgIlxuIgorICAgICJtb3ZsICVlY3gsICVlc3AiICJcbiIKIAorICAg
IC8vIERvIHRoZSByZW1haW5pbmcgcmVzdG9yYXRpb24gYnkgcG9wcGluZyBvZmYgdGhlIHJlc3Rv
cmUgYXJlYS4KICAgICAicG9wZmQiICJcbiIKICAgICAicG9wbCAlZWF4IiAiXG4iCiAgICAgInBv
cGwgJWVjeCIgIlxuIgpAQCAtMzIxLDggKzMzOCw4IEBAIGFzbSAoCiAgICAgLy8gdGhpczoKICAg
ICAvLyAgICAgZXNwWzAgKiBwdHJTaXplXTogcmZsYWdzCiAgICAgLy8gICAgIGVzcFsxICogcHRy
U2l6ZV06IHJldHVybiBhZGRyZXNzIC8gc2F2ZWQgcmlwCi0gICAgLy8gICAgIGVzcFsyICogcHRy
U2l6ZV06IHByb2JlRnVuY3Rpb24KLSAgICAvLyAgICAgZXNwWzMgKiBwdHJTaXplXTogYXJnMQor
ICAgIC8vICAgICBlc3BbMiAqIHB0clNpemVdOiBwcm9iZSBoYW5kbGVyIGZ1bmN0aW9uCisgICAg
Ly8gICAgIGVzcFszICogcHRyU2l6ZV06IHByb2JlIGFyZwogICAgIC8vICAgICBlc3BbNCAqIHB0
clNpemVdOiBzYXZlZCByYXgKICAgICAvLyAgICAgZXNwWzUgKiBwdHJTaXplXTogc2F2ZWQgcnNw
CiAKQEAgLTQyMCwzMiArNDM3LDQ0IEBAIGFzbSAoCiAKICAgICAvLyBUaGVyZSBhcmUgNiBtb3Jl
IHJlZ2lzdGVycyBsZWZ0IHRvIHJlc3RvcmU6CiAgICAgLy8gICAgIHJheCwgcmN4LCByYnAsIHJz
cCwgcmlwLCBhbmQgcmZsYWdzLgotICAgIC8vIFdlIG5lZWQgdG8gaGFuZGxlIHRoZXNlIGxhc3Qg
ZmV3IHJlc3RvcmVzIGNhcmVmdWxseSBiZWNhdXNlOgotICAgIC8vCi0gICAgLy8gMS4gV2UgbmVl
ZCB0byBwdXNoIHRoZSByZXR1cm4gYWRkcmVzcyBvbiB0aGUgc3RhY2sgZm9yIHJldCB0byB1c2UK
LSAgICAvLyAgICBUaGF0IG1lYW5zIHdlIG5lZWQgdG8gd3JpdGUgdG8gdGhlIHN0YWNrLgotICAg
IC8vIDIuIFRoZSB1c2VyIHByb2JlIGZ1bmN0aW9uIG1heSBoYXZlIGFsdGVyZWQgdGhlIHJlc3Rv
cmUgdmFsdWUgb2YgZXNwIHRvCi0gICAgLy8gICAgcG9pbnQgdG8gdGhlIHZpY2luaXR5IG9mIG9u
ZSBvZiB0aGUgcmVzdG9yZSB2YWx1ZXMgZm9yIHRoZSByZW1haW5pbmcKLSAgICAvLyAgICByZWdp
c3RlcnMgbGVmdCB0byBiZSByZXN0b3JlZC4KLSAgICAvLyAgICBUaGF0IG1lYW5zLCBmb3IgcmVx
dWlyZW1lbnQgMSwgd2UgbWF5IGVuZCB1cCB3cml0aW5nIG92ZXIgc29tZSBvZiB0aGUKLSAgICAv
LyAgICByZXN0b3JlIHZhbHVlcy4gV2UgY2FuIGNoZWNrIGZvciB0aGlzLCBhbmQgZmlyc3QgY29w
eSB0aGUgcmVzdG9yZQotICAgIC8vICAgIHZhbHVlcyB0byBhICJzYWZlIGFyZWEiIG9uIHRoZSBz
dGFjayBiZWZvcmUgY29tbWVuY2luZyB3aXRoIHRoZSBhY3Rpb24KLSAgICAvLyAgICBmb3IgcmVx
dWlyZW1lbnQgMS4KLSAgICAvLyAzLiBGb3IgYm90aCByZXF1aXJlbWVudCAyLCB3ZSBuZWVkIHRv
IGVuc3VyZSB0aGF0IHRoZSAic2FmZSBhcmVhIiBpcwotICAgIC8vICAgIHByb3RlY3RlZCBmcm9t
IGludGVycnVwdCBoYW5kbGVycyBvdmVyd3JpdGluZyBpdC4gSGVuY2UsIHRoZSBlc3AgbmVlZHMK
LSAgICAvLyAgICB0byBiZSBhZGp1c3RlZCB0byBpbmNsdWRlIHRoZSAic2FmZSBhcmVhIiBiZWZv
cmUgd2Ugc3RhcnQgY29weWluZyB0aGUKLSAgICAvLyAgICB0aGUgcmVzdG9yZSB2YWx1ZXMuCiAK
KyAgICAvLyBUaGUgcmVzdG9yYXRpb24gcHJvY2VzcyBhdCBjdGlNYXNtUHJvYmVUcmFtcG9saW5l
RW5kIGJlbG93IHdvcmtzIGJ5IHBvcHBpbmcKKyAgICAvLyA1IHdvcmRzIG9mZiB0aGUgc3RhY2sg
aW50byByZmxhZ3MsIHJheCwgcmN4LCByYnAsIGFuZCByaXAuIFRoZXNlIDUgd29yZHMgbmVlZAor
ICAgIC8vIHRvIGJlIHB1c2hlZCBvbiB0b3Agb2YgdGhlIGZpbmFsIGVzcCB2YWx1ZSBzbyB0aGF0
IGp1c3QgYnkgcG9wcGluZyB0aGUgNSB3b3JkcywKKyAgICAvLyB3ZSdsbCBnZXQgdGhlIGVzcCB0
aGF0IHRoZSBwcm9iZSB3YW50cyB0byBzZXQuIExldCdzIGNhbGwgdGhpcyBhcmVhIChmb3Igc3Rv
cmluZworICAgIC8vIHRoZXNlIDUgd29yZHMpIHRoZSByZXN0b3JlIGFyZWEuCisgICAgIm1vdnEg
IiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVyY3gi
ICJcbiIKKyAgICAic3VicSAkNSAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAl
cmN4IiAiXG4iCisKKyAgICAvLyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgor
CisgICAgLy8gQmVmb3JlIHdlIGNvcHkgdmFsdWVzIGZyb20gdGhlIFByb2JlQ29udGV4dCB0byB0
aGUgcmVzdG9yZSBhcmVhLCB3ZSBuZWVkIHRvCisgICAgLy8gbWFrZSBzdXJlIHRoYXQgdGhlIHJl
c3RvcmUgYXJlYSBkb2VzIG5vdCBvdmVybGFwIGFueSBvZiB0aGUgdmFsdWVzIHRoYXQgd2UnbGwK
KyAgICAvLyBiZSBjb3B5aW5nIGZyb20gaW4gdGhlIFByb2JlQ29udGV4dC4gQWxsIHRoZSByZXN0
b3JlIHZhbHVlcyB0byBiZSBjb3BpZWQgZnJvbQorICAgIC8vIGNvbWVzIGZyb20gb2Zmc2V0IDw9
IFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUIGluIHRoZSBQcm9iZUNvbnRleHQuCiAgICAgIm1vdnEg
JXJicCwgJXJheCIgIlxuIgogICAgICJhZGRxICQiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9D
UFVfRUZMQUdTX09GRlNFVCkgIiwgJXJheCIgIlxuIgotICAgICJjbXBxICVyYXgsICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVyYnApIiAiXG4iCisgICAgImNt
cHEgJXJheCwgJXJjeCIgIlxuIgogICAgICJqZyAiIFNZTUJPTF9TVFJJTkcoY3RpTWFzbVByb2Jl
VHJhbXBvbGluZUVuZCkgIlxuIgogCi0gICAgLy8gTG9jYXRlIHRoZSAic2FmZSBhcmVhIiBhdCAy
eCBzaXplb2YoUHJvYmVDb250ZXh0KSBiZWxvdyB3aGVyZSB0aGUgbmV3Ci0gICAgLy8gcnNwIHdp
bGwgYmUuIFRoaXMgdGltZSB3ZSBkb24ndCBoYXZlIHRvIDMyLWJ5dGUgYWxpZ24gaXQgYmVjYXVz
ZSB3ZSdyZQotICAgIC8vIG5vdCB1c2luZyB0byBzdG9yZSBhbnkgeG1tIHJlZ3MuCi0gICAgIm1v
dnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVy
YXgiICJcbiIKKyAgICAvLyBHZXR0aW5nIGhlcmUgbWVhbnMgdGhhdCB0aGUgcmVzdG9yZSBhcmVh
IHdpbGwgb3ZlcmxhcCB0aGUgUHJvYmVDb250ZXh0IGRhdGEKKyAgICAvLyB0aGF0IHdlIHdpbGwg
bmVlZCB0byBnZXQgdGhlIHJlc3RvcmF0aW9uIHZhbHVlcyBmcm9tLiBTbywgbGV0J3MgbW92ZSB0
aGF0CisgICAgLy8gZGF0YSB0byBhIHNhZmUgcGxhY2UgYmVmb3JlIHdlIHN0YXJ0IHdyaXRpbmcg
aW50byB0aGUgcmVzdG9yZSBhcmVhLgorICAgIC8vIExldCdzIGxvY2F0ZSB0aGUgInNhZmUgYXJl
YSIgYXQgMnggc2l6ZW9mKFByb2JlQ29udGV4dCkgYmVsb3cgd2hlcmUgdGhlCisgICAgLy8gcmVz
dG9yZSBhcmVhLiBUaGlzIGVuc3VyZXMgdGhhdDoKKyAgICAvLyAxLiBUaGUgc2FmZSBhcmVhIGRv
ZXMgbm90IG92ZXJsYXAgdGhlIHJlc3RvcmUgYXJlYS4KKyAgICAvLyAyLiBUaGUgc2FmZSBhcmVh
IGRvZXMgbm90IG92ZXJsYXAgdGhlIFByb2JlQ29udGV4dC4KKyAgICAvLyAgICBUaGlzIG1ha2Vz
IGl0IHNvIHRoYXQgd2UgY2FuIHVzZSBtZW1jcHkgKGRvZXMgbm90IHJlcXVpcmUgbWVtbW92ZSkg
c2VtYW50aWNzCisgICAgLy8gICAgdG8gY29weSB0aGUgcmVzdG9yZSB2YWx1ZXMgdG8gdGhlIHNh
ZmUgYXJlYS4KKyAgICAvLyBOb3RlOiB0aGUgc2FmZSBhcmVhIGRvZXMgbm90IGhhdmUgdG8gMzIt
Ynl0ZSBhbGlnbiBpdCBiZWNhdXNlIHdlJ3JlIG5vdCB1c2luZworICAgIC8vIGl0IHRvIHN0b3Jl
IGFueSB4bW0gcmVncy4KKyAgICAibW92cSAlcmN4LCAlcmF4IiAiXG4iCiAgICAgInN1YnEgJDIg
KiAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9BTElHTkVEX1NJWkUpICIsICVyYXgiICJcbiIK
KworICAgIC8vIHJheCBub3cgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuCisKKyAgICAvLyBNYWtl
IHN1cmUgdGhlIHN0YWNrIHBvaW50ZXIgcG9pbnRzIHRvIHRoZSBzYWZlIGFyZWEuIFRoaXMgZW5z
dXJlcyB0aGF0IHRoZQorICAgIC8vIHNhZmUgYXJlYSBpcyBwcm90ZWN0ZWQgZnJvbSBpbnRlcnJ1
cHQgaGFuZGxlcnMgb3ZlcndyaXRpbmcgaXQuCiAgICAgIm1vdnEgJXJheCwgJXJzcCIgIlxuIgog
CiAgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VBWF9PRkZTRVQpICIo
JXJicCksICVyY3giICJcbiIKQEAgLTQ2MiwyMyArNDkxLDI5IEBAIGFzbSAoCiAgICAgIm1vdnEg
JXJjeCwgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19PRkZTRVQpICIoJXJh
eCkiICJcbiIKICAgICAibW92cSAlcmF4LCAlcmJwIiAiXG4iCiAKKyAgICAvLyBXZSB1c2VkIHJj
eCBhYm92ZSBhcyBzY3JhdGNoIHJlZ2lzdGVyLiBMZXQncyByZXN0b3JlIGl0IHRvIHBvaW50cyB0
byB0aGUKKyAgICAvLyByZXN0b3JlIGFyZWEuCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVf
T0YoUFJPQkVfQ1BVX0VTUF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKKyAgICAic3VicSAk
NSAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiLCAlcmN4IiAiXG4iCisKKyAgICAv
LyByY3ggbm93IHBvaW50cyB0byB0aGUgcmVzdG9yZSBhcmVhLgorCiAgICAgU1lNQk9MX1NUUklO
RyhjdGlNYXNtUHJvYmVUcmFtcG9saW5lRW5kKSAiOiIgIlxuIgotICAgICJtb3ZxICIgU1RSSU5H
SVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FU1BfT0ZGU0VUKSAiKCVyYnApLCAlcmF4IiAiXG4iCi0g
ICAgInN1YnEgJDUgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiwgJXJheCIgIlxu
IgotICAgIC8vIEF0IHRoaXMgcG9pbnQsICVyc3Agc2hvdWxkIGJlIDwgJXJheC4KIAotICAgICJt
b3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FRkxBR1NfT0ZGU0VUKSAiKCVyYnAp
LCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgMCAqICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBU
Ul9TSVpFKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJP
QkVfQ1BVX0VBWF9PRkZTRVQpICIoJXJicCksICVyY3giICJcbiIKLSAgICAibW92cSAlcmN4LCAx
ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJheCkiICJcbiIKLSAgICAibW92
cSAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUNYX09GRlNFVCkgIiglcmJwKSwgJXJj
eCIgIlxuIgotICAgICJtb3ZxICVyY3gsIDIgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0la
RSkgIiglcmF4KSIgIlxuIgotICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQ
VV9FQlBfT0ZGU0VUKSAiKCVyYnApLCAlcmN4IiAiXG4iCi0gICAgIm1vdnEgJXJjeCwgMyAqICIg
U1RSSU5HSVpFX1ZBTFVFX09GKFBUUl9TSVpFKSAiKCVyYXgpIiAiXG4iCi0gICAgIm1vdnEgIiBT
VFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VJUF9PRkZTRVQpICIoJXJicCksICVyY3giICJc
biIKLSAgICAibW92cSAlcmN4LCA0ICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIo
JXJheCkiICJcbiIKLSAgICAibW92cSAlcmF4LCAlcnNwIiAiXG4iCisgICAgLy8gQ29weSByZW1h
aW5pbmcgcmVzdG9yZSB2YWx1ZXMgZnJvbSB0aGUgUHJvYmVDb250ZXh0IHRvIHRoZSByZXN0b3Jl
IGFyZWEuCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFJPQkVfQ1BVX0VGTEFHU19P
RkZTRVQpICIoJXJicCksICVyYXgiICJcbiIKKyAgICAibW92cSAlcmF4LCAwICogIiBTVFJJTkdJ
WkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJjeCkiICJcbiIKKyAgICAibW92cSAiIFNUUklOR0la
RV9WQUxVRV9PRihQUk9CRV9DUFVfRUFYX09GRlNFVCkgIiglcmJwKSwgJXJheCIgIlxuIgorICAg
ICJtb3ZxICVyYXgsIDEgKiAiIFNUUklOR0laRV9WQUxVRV9PRihQVFJfU0laRSkgIiglcmN4KSIg
IlxuIgorICAgICJtb3ZxICIgU1RSSU5HSVpFX1ZBTFVFX09GKFBST0JFX0NQVV9FQ1hfT0ZGU0VU
KSAiKCVyYnApLCAlcmF4IiAiXG4iCisgICAgIm1vdnEgJXJheCwgMiAqICIgU1RSSU5HSVpFX1ZB
TFVFX09GKFBUUl9TSVpFKSAiKCVyY3gpIiAiXG4iCisgICAgIm1vdnEgIiBTVFJJTkdJWkVfVkFM
VUVfT0YoUFJPQkVfQ1BVX0VCUF9PRkZTRVQpICIoJXJicCksICVyYXgiICJcbiIKKyAgICAibW92
cSAlcmF4LCAzICogIiBTVFJJTkdJWkVfVkFMVUVfT0YoUFRSX1NJWkUpICIoJXJjeCkiICJcbiIK
KyAgICAibW92cSAiIFNUUklOR0laRV9WQUxVRV9PRihQUk9CRV9DUFVfRUlQX09GRlNFVCkgIigl
cmJwKSwgJXJheCIgIlxuIgorICAgICJtb3ZxICVyYXgsIDQgKiAiIFNUUklOR0laRV9WQUxVRV9P
RihQVFJfU0laRSkgIiglcmN4KSIgIlxuIgorICAgICJtb3ZxICVyY3gsICVyc3AiICJcbiIKIAor
ICAgIC8vIERvIHRoZSByZW1haW5pbmcgcmVzdG9yYXRpb24gYnkgcG9wcGluZyBvZmYgdGhlIHJl
c3RvcmUgYXJlYS4KICAgICAicG9wZnEiICJcbiIKICAgICAicG9wcSAlcmF4IiAiXG4iCiAgICAg
InBvcHEgJXJjeCIgIlxuIgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci90
ZXN0bWFzbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci90ZXN0bWFzbS5jcHAJKHJldmlzaW9uIDIxOTg1NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9hc3NlbWJsZXIvdGVzdG1hc20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcg
QEAgdm9pZCB0ZXN0U2ltcGxlKCkKICNpZiBFTkFCTEUoTUFTTV9QUk9CRSkKIHZvaWQgdGVzdFBy
b2JlUmVhZHNBcmd1bWVudFJlZ2lzdGVycygpCiB7Ci0gICAgYm9vbCBzdWNjZXNzID0gdHJ1ZTsK
KyAgICBib29sIHByb2JlV2FzQ2FsbGVkID0gZmFsc2U7CiAgICAgY29tcGlsZUFuZFJ1bjx2b2lk
PihbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogCkBAIC0xNTcsMTggKzE1NywxOSBAQCB2b2lkIHRlc3RQcm9iZVJlYWRzQXJndW1l
bnRSZWdpc3RlcnMoKQogI2VuZGlmCiAKICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250
ZXh0KiBjb250ZXh0KSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0
LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9PSB0ZXN0V29yZCgwKTsKLSAgICAgICAgICAg
IHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjEp
ID09IHRlc3RXb3JkKDEpOwotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4
dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikgPT0gdGVzdFdvcmQoMik7Ci0gICAgICAgICAg
ICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIz
KSA9PSB0ZXN0V29yZCgzKTsKKyAgICAgICAgICAgIHByb2JlV2FzQ2FsbGVkID0gdHJ1ZTsKKyAg
ICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjApID09IHRl
c3RXb3JkKDApKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1
bWVudEdQUjEpID09IHRlc3RXb3JkKDEpKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmdw
cihHUFJJbmZvOjphcmd1bWVudEdQUjIpID09IHRlc3RXb3JkKDIpKTsKKyAgICAgICAgICAgIENI
RUNLKGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjMpID09IHRlc3RXb3JkKDMpKTsK
IAotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+ZnByKEZQUkluZm86
OmZwUmVnVDApID09IHRlc3RXb3JkMzIoMCk7Ci0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2Vz
cyAmJiBjb250ZXh0LT5mcHIoRlBSSW5mbzo6ZnBSZWdUMSkgPT0gdGVzdFdvcmQzMigxKTsKKyAg
ICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QwKSA9PSB0ZXN0V29y
ZDMyKDApKTsKKyAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1Qx
KSA9PSB0ZXN0V29yZDMyKDEpKTsKICAgICAgICAgfSk7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rp
b25FcGlsb2d1ZSgpOwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7Ci0gICAgQ0hFQ0soc3Vj
Y2Vzcyk7CisgICAgQ0hFQ0socHJvYmVXYXNDYWxsZWQpOwogfQogCiB2b2lkIHRlc3RQcm9iZVdy
aXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKQEAgLTE3Niw3ICsxNzcsNyBAQCB2b2lkIHRlc3RQcm9i
ZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRl
c3RQcm9iZVJlYWRzQXJndW1lbnRSZWdpc3RlcnMoKSBoYXZpbmcgYWxyZWFkeSB2YWxpZGF0ZWQK
ICAgICAvLyB0aGF0IHdlIGNhbiByZWFkIGZyb20gYXJndW1lbnQgcmVnaXN0ZXJzLiBXZSdsbCB1
c2UgdGhhdCBhYmlsaXR5IHRvIHZhbGlkYXRlCiAgICAgLy8gdGhhdCBvdXIgd3JpdGVzIGRpZCB0
YWtlIGVmZmVjdC4KLSAgICBib29sIHN1Y2Nlc3MgPSB0cnVlOworICAgIHVuc2lnbmVkIHByb2Jl
Q2FsbENvdW50ID0gMDsKICAgICBjb21waWxlQW5kUnVuPHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQpIHsKICAgICAgICAgaml0LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAKQEAgLTE5Niw3
ICsxOTcsOCBAQCB2b2lkIHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAg
ICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKEdQUkluZm86OmFyZ3VtZW50R1BSMCwgRlBSSW5m
bzo6ZnBSZWdUMSk7CiAKICAgICAgICAgLy8gV3JpdGUgZXhwZWN0ZWQgdmFsdWVzLgotICAgICAg
ICBqaXQucHJvYmUoW10gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICBqaXQucHJv
YmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENv
dW50Kys7CiAgICAgICAgICAgICBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJndW1lbnRHUFIwKSA9
IHRlc3RXb3JkKDApOwogICAgICAgICAgICAgY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50
R1BSMSkgPSB0ZXN0V29yZCgxKTsKICAgICAgICAgICAgIGNvbnRleHQtPmdwcihHUFJJbmZvOjph
cmd1bWVudEdQUjIpID0gdGVzdFdvcmQoMik7CkBAIC0yMDgsMTkgKzIxMCwyMCBAQCB2b2lkIHRl
c3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKIAogICAgICAgICAvLyBWYWxpZGF0ZSB0
aGF0IGV4cGVjdGVkIHZhbHVlcyB3ZXJlIHdyaXR0ZW4uCiAgICAgICAgIGppdC5wcm9iZShbJl0g
KFByb2JlQ29udGV4dCogY29udGV4dCkgewotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3Mg
JiYgY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkgPT0gdGVzdFdvcmQoMCk7Ci0g
ICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5ncHIoR1BSSW5mbzo6YXJn
dW1lbnRHUFIxKSA9PSB0ZXN0V29yZCgxKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNz
ICYmIGNvbnRleHQtPmdwcihHUFJJbmZvOjphcmd1bWVudEdQUjIpID09IHRlc3RXb3JkKDIpOwot
ICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+Z3ByKEdQUkluZm86OmFy
Z3VtZW50R1BSMykgPT0gdGVzdFdvcmQoMyk7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsr
OworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMCkg
PT0gdGVzdFdvcmQoMCkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86
OmFyZ3VtZW50R1BSMSkgPT0gdGVzdFdvcmQoMSkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4
dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMikgPT0gdGVzdFdvcmQoMikpOworICAgICAgICAg
ICAgQ0hFQ0soY29udGV4dC0+Z3ByKEdQUkluZm86OmFyZ3VtZW50R1BSMykgPT0gdGVzdFdvcmQo
MykpOwogCi0gICAgICAgICAgICBzdWNjZXNzID0gc3VjY2VzcyAmJiBjb250ZXh0LT5mcHIoRlBS
SW5mbzo6ZnBSZWdUMCkgPT0gdGVzdFdvcmQzMigwKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBz
dWNjZXNzICYmIGNvbnRleHQtPmZwcihGUFJJbmZvOjpmcFJlZ1QxKSA9PSB0ZXN0V29yZDMyKDEp
OworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKEZQUkluZm86OmZwUmVnVDApID09IHRl
c3RXb3JkMzIoMCkpOworICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKEZQUkluZm86OmZw
UmVnVDEpID09IHRlc3RXb3JkMzIoMSkpOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1p
dEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAgIENI
RUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2FsbENvdW50ID09IDIpOwogfQogCiBzdGF0
aWMgTkVWRVJfSU5MSU5FIE5PVF9UQUlMX0NBTExFRCBpbnQgdGVzdEZ1bmN0aW9uVG9UcmFzaEdQ
UnMoaW50IGEsIGludCBiLCBpbnQgYywgaW50IGQsIGludCBlLCBpbnQgZiwgaW50IGcsIGludCBo
LCBpbnQgaSwgaW50IGopCkBAIC0yNDEsNyArMjQ0LDcgQEAgdm9pZCB0ZXN0UHJvYmVQcmVzZXJ2
ZXNHUFJTKCkKICAgICAvLyBUaGlzIHRlc3QgcmVsaWVzIG9uIHRlc3RQcm9iZVJlYWRzQXJndW1l
bnRSZWdpc3RlcnMoKSBhbmQgdGVzdFByb2JlV3JpdGVzQXJndW1lbnRSZWdpc3RlcnMoKQogICAg
IC8vIGhhdmluZyBhbHJlYWR5IHZhbGlkYXRlZCB0aGF0IHdlIGNhbiByZWFkIGFuZCB3cml0ZSBm
cm9tIHJlZ2lzdGVycy4gV2UnbGwgdXNlIHRoZXNlIGFiaWxpdGllcwogICAgIC8vIHRvIHZhbGlk
YXRlIHRoYXQgdGhlIHByb2JlIHByZXNlcnZlcyByZWdpc3RlciB2YWx1ZXMuCi0gICAgYm9vbCBz
dWNjZXNzID0gdHJ1ZTsKKyAgICB1bnNpZ25lZCBwcm9iZUNhbGxDb3VudCA9IDA7CiAgICAgTWFj
cm9Bc3NlbWJsZXI6OkNQVVN0YXRlIG9yaWdpbmFsU3RhdGU7CiAKICAgICBjb21waWxlQW5kUnVu
PHZvaWQ+KFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKQEAgLTI0OSw2ICsyNTIsNyBAQCB2b2lk
IHRlc3RQcm9iZVByZXNlcnZlc0dQUlMoKQogCiAgICAgICAgIC8vIFdyaXRlIGV4cGVjdGVkIHZh
bHVlcyBpbnRvIHRoZSByZWdpc3RlcnMgKGV4Y2VwdCBmb3Igc3AsIGZwLCBhbmQgcGMpLgogICAg
ICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAg
IHByb2JlQ2FsbENvdW50Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBl
cnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsg
aWQgPSBuZXh0SUQoaWQpKSB7CiAgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5ncHIoaWQp
ID0gY29udGV4dC0+Z3ByKGlkKTsKICAgICAgICAgICAgICAgICBpZiAoaXNQQyhpZCkgfHwgaXNT
UChpZCkgfHwgaXNGUChpZCkpCkBAIC0yNjMsMjcgKzI2NywzMCBAQCB2b2lkIHRlc3RQcm9iZVBy
ZXNlcnZlc0dQUlMoKQogCiAgICAgICAgIC8vIEludm9rZSB0aGUgcHJvYmUgdG8gY2FsbCBhIGxv
dCBvZiBmdW5jdGlvbnMgYW5kIHRyYXNoIHJlZ2lzdGVyIHZhbHVlcy4KICAgICAgICAgaml0LnBy
b2JlKFsmXSAoUHJvYmVDb250ZXh0KikgewotICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3Mg
JiYgKHRlc3RGdW5jdGlvblRvVHJhc2hHUFJzKDAsIDEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDkp
ID09IDEwKTsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmICh0ZXN0RnVuY3Rpb25U
b1RyYXNoRlBScygwLCAxLCAyLCAzLCA0LCA1LCA2LCA3LCA4LCA5KSA9PSAxMCk7CisgICAgICAg
ICAgICBwcm9iZUNhbGxDb3VudCsrOworICAgICAgICAgICAgQ0hFQ0sodGVzdEZ1bmN0aW9uVG9U
cmFzaEdQUnMoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSkgPT0gMTApOworICAgICAgICAg
ICAgQ0hFQ0sodGVzdEZ1bmN0aW9uVG9UcmFzaEZQUnMoMCwgMSwgMiwgMywgNCwgNSwgNiwgNywg
OCwgOSkgPT0gMTApOwogICAgICAgICB9KTsKIAogICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRo
ZSByZWdpc3RlcnMgaGF2ZSB0aGUgZXhwZWN0ZWQgdmFsdWVzLgogICAgICAgICBqaXQucHJvYmUo
WyZdIChQcm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50
Kys7CiAgICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0
ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpKQogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICBpZiAoaXNTUChpZCkgfHwgaXNGUChpZCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgY29udGV4dC0+Z3ByKGlkKSA9
PSBvcmlnaW5hbFN0YXRlLmdwcihpZCk7CisgICAgICAgICAgICAgICAgICAgIENIRUNLKGNvbnRl
eHQtPmdwcihpZCkgPT0gb3JpZ2luYWxTdGF0ZS5ncHIoaWQpKTsKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBzdWNjZXNzICYmIGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpOworICAgICAgICAg
ICAgICAgIENIRUNLKGNvbnRleHQtPmdwcihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RGUFJl
Z2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsgaWQgPSBuZXh0
SUQoaWQpKQotICAgICAgICAgICAgICAgIHN1Y2Nlc3MgPSBzdWNjZXNzICYmIGNvbnRleHQtPmZw
cihpZCkgPT0gdGVzdFdvcmQoaWQpOworICAgICAgICAgICAgICAgIENIRUNLKGNvbnRleHQtPmZw
cihpZCkgPT0gdGVzdFdvcmQoaWQpKTsKICAgICAgICAgfSk7CiAKICAgICAgICAgLy8gUmVzdG9y
ZSB0aGUgb3JpZ2luYWwgc3RhdGUuCiAgICAgICAgIGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4
dCogY29udGV4dCkgeworICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKICAgICAgICAgICAg
IGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2Fs
bEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAoaXNQQyhpZCkgfHwgaXNTUChpZCkgfHwgaXNGUChpZCkpCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwpAQCAtMjkzLDQxICszMDAsMTQ1IEBAIHZvaWQgdGVzdFByb2JlUHJl
c2VydmVzR1BSUygpCiAgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlkKSA9IG9yaWdpbmFs
U3RhdGUuZnByKGlkKTsKICAgICAgICAgfSk7CiAKKyAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0
aGUgb3JpZ2luYWwgc3RhdGUgd2FzIHJlc3RvcmVkLgorICAgICAgICBqaXQucHJvYmUoWyZdIChQ
cm9iZUNvbnRleHQqIGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7Cisg
ICAgICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsg
aWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0
LT5ncHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZ3ByKGlkKSk7CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICBmb3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0RlBSZWdpc3RlcigpOyBp
ZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RGUFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkKKyAg
ICAgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5mcHIoaWQpID09IG9yaWdpbmFsU3RhdGUuZnBy
KGlkKSk7CisgICAgICAgIH0pOworCiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1ZSgp
OwogICAgICAgICBqaXQucmV0KCk7CiAgICAgfSk7Ci0gICAgQ0hFQ0soc3VjY2Vzcyk7CisgICAg
Q0hFQ0socHJvYmVDYWxsQ291bnQgPT0gNSk7CiB9CiAKLXZvaWQgdGVzdFByb2JlTW9kaWZpZXNT
dGFja1BvaW50ZXIoKQordm9pZCB0ZXN0UHJvYmVNb2RpZmllc1N0YWNrUG9pbnRlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQqKFByb2JlQ29udGV4dCopPiBjb21wdXRlTW9kaWZpZWRTdGFjaykKIHsKLSAg
ICBib29sIHN1Y2Nlc3MgPSB0cnVlOwotICAgIHVpbnQ4X3QqIG9yaWdpbmFsU1A7CisgICAgdW5z
aWduZWQgcHJvYmVDYWxsQ291bnQgPSAwOworICAgIE1hY3JvQXNzZW1ibGVyOjpDUFVTdGF0ZSBv
cmlnaW5hbFN0YXRlOworICAgIHVpbnQ4X3QqIG9yaWdpbmFsU1AgeyBudWxscHRyIH07CisgICAg
dm9pZCogbW9kaWZpZWRTUCB7IG51bGxwdHIgfTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0
KSB8fCBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICB1aW50cHRy
X3QgbW9kaWZpZWRGbGFncyB7IDAgfTsKKyNlbmRpZgogCiAgICAgY29tcGlsZUFuZFJ1bjx2b2lk
PihbJl0gKENDYWxsSGVscGVycyYgaml0KSB7CiAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25Qcm9s
b2d1ZSgpOwogCi0gICAgICAgIC8vIFByZXNlcnZlIG9yaWdpbmFsIHN0YWNrIHBvaW50ZXIgYW5k
IG1vZGlmeSB0aGUgc3AuCisgICAgICAgIC8vIFByZXNlcnZlIG9yaWdpbmFsIHN0YWNrIHBvaW50
ZXIgYW5kIG1vZGlmeSB0aGUgc3AsIGFuZAorICAgICAgICAvLyB3cml0ZSBleHBlY3RlZCB2YWx1
ZXMgaW50byBvdGhlciByZWdpc3RlcnMgKGV4Y2VwdCBmb3IgZnAsIGFuZCBwYykuCiAgICAgICAg
IGppdC5wcm9iZShbJl0gKFByb2JlQ29udGV4dCogY29udGV4dCkgeworICAgICAgICAgICAgcHJv
YmVDYWxsQ291bnQrKzsKKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6
Zmlyc3RSZWdpc3RlcigpOyBpZCA8PSBDQ2FsbEhlbHBlcnM6Omxhc3RSZWdpc3RlcigpOyBpZCA9
IG5leHRJRChpZCkpIHsKKyAgICAgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLmdwcihpZCkgPSBj
b250ZXh0LT5ncHIoaWQpOworICAgICAgICAgICAgICAgIGlmIChpc1BDKGlkKSB8fCBpc1NQKGlk
KSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICAgICAgY29udGV4dC0+Z3ByKGlkKSA9IHRlc3RXb3JkKHN0YXRpY19jYXN0PGludD4oaWQpKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byBpZCA9IENDYWxsSGVscGVyczo6
Zmlyc3RGUFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6bGFzdEZQUmVnaXN0ZXIoKTsg
aWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAgICAgb3JpZ2luYWxTdGF0ZS5mcHIoaWQp
ID0gY29udGV4dC0+ZnByKGlkKTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5mcHIoaWQpID0g
dGVzdFdvcmQoaWQpOworICAgICAgICAgICAgfQorI2lmIENQVShYODYpIHx8IENQVShYODZfNjQp
CisgICAgICAgICAgICBvcmlnaW5hbFN0YXRlLnNwcihYODZSZWdpc3RlcnM6OmVmbGFncykgPSBj
b250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpOworICAgICAgICAgICAgbW9kaWZpZWRG
bGFncyA9IG9yaWdpbmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSBeIDB4YzU7Cisg
ICAgICAgICAgICBjb250ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID0gbW9kaWZpZWRG
bGFnczsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSB8fCBDUFUoQVJNX1RSQURJVElPTkFMKQorICAg
ICAgICAgICAgb3JpZ2luYWxTdGF0ZS5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKSA9IGNvbnRleHQt
PnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOworICAgICAgICAgICAgbW9kaWZpZWRGbGFncyA9IG9y
aWdpbmFsU3RhdGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgXiAweGYwMDAwMDAwOworICAgICAg
ICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lzdGVyczo6YXBzcikgPSBtb2RpZmllZEZsYWdzOwor
I2VuZGlmCiAgICAgICAgICAgICBvcmlnaW5hbFNQID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90
Kj4oY29udGV4dC0+c3AoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5zcCgpID0gb3JpZ2luYWxT
UCAtIDEgKiBLQjsKKyAgICAgICAgICAgIG1vZGlmaWVkU1AgPSBjb21wdXRlTW9kaWZpZWRTdGFj
ayhjb250ZXh0KTsKKyAgICAgICAgICAgIGNvbnRleHQtPnNwKCkgPSBtb2RpZmllZFNQOworICAg
ICAgICB9KTsKKworICAgICAgICAvLyBWYWxpZGF0ZSB0aGF0IHRoZSByZWdpc3RlcnMgaGF2ZSB0
aGUgZXhwZWN0ZWQgdmFsdWVzLgorICAgICAgICBqaXQucHJvYmUoWyZdIChQcm9iZUNvbnRleHQq
IGNvbnRleHQpIHsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CisgICAgICAgICAgICBm
b3IgKGF1dG8gaWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxI
ZWxwZXJzOjpsYXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAg
ICAgaWYgKGlzUEMoaWQpIHx8IGlzU1AoaWQpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgICAgICBpZiAoaXNGUChpZCkpIHsKKyAgICAgICAgICAgICAgICAgICAg
Q0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmdwcihpZCkpOworICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSB0ZXN0V29yZChpZCkpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0
ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChp
ZCkpCisgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+ZnByKGlkKSA9PSB0ZXN0V29yZChp
ZCkpOworI2lmIENQVShYODYpIHx8IENQVShYODZfNjQpCisgICAgICAgICAgICBDSEVDSyhjb250
ZXh0LT5zcHIoWDg2UmVnaXN0ZXJzOjplZmxhZ3MpID09IG1vZGlmaWVkRmxhZ3MpOworI2VsaWYg
Q1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk1fVFJBRElUSU9OQUwpCisgICAgICAgICAgICBDSEVD
Syhjb250ZXh0LT5zcHIoQVJNUmVnaXN0ZXJzOjphcHNyKSA9PSBtb2RpZmllZEZsYWdzKTsKKyNl
bmRpZgorICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+c3AoKSA9PSBtb2RpZmllZFNQKTsKICAg
ICAgICAgfSk7CiAKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgc3RhY2sgcG9pbnRlciBo
YXMgdGhlIGV4cGVjdGVkIHZhbHVlLCBhbmQgcmVzdG9yZSB0aGUgb3JpZ2luYWwuCisgICAgICAg
IC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsIHN0YXRlLgogICAgICAgICBqaXQucHJvYmUoWyZdIChQ
cm9iZUNvbnRleHQqIGNvbnRleHQpIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSAocmVpbnRlcnBy
ZXRfY2FzdDx1aW50OF90Kj4oY29udGV4dC0+c3AoKSkgPT0gKG9yaWdpbmFsU1AgLSAxICogS0Ip
KTsKKyAgICAgICAgICAgIHByb2JlQ2FsbENvdW50Kys7CisgICAgICAgICAgICBmb3IgKGF1dG8g
aWQgPSBDQ2FsbEhlbHBlcnM6OmZpcnN0UmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjps
YXN0UmVnaXN0ZXIoKTsgaWQgPSBuZXh0SUQoaWQpKSB7CisgICAgICAgICAgICAgICAgaWYgKGlz
UEMoaWQpIHx8IGlzU1AoaWQpIHx8IGlzRlAoaWQpKQorICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgICAgICBjb250ZXh0LT5ncHIoaWQpID0gb3JpZ2luYWxTdGF0ZS5n
cHIoaWQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGlkID0gQ0NhbGxI
ZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjpsYXN0RlBSZWdp
c3RlcigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICAgICAgY29udGV4dC0+ZnByKGlk
KSA9IG9yaWdpbmFsU3RhdGUuZnByKGlkKTsKKyNpZiBDUFUoWDg2KSB8fCBDUFUoWDg2XzY0KQor
ICAgICAgICAgICAgY29udGV4dC0+c3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSA9IG9yaWdpbmFs
U3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKTsKKyNlbGlmIENQVShBUk1fVEhVTUIyKSB8
fCBDUFUoQVJNX1RSQURJVElPTkFMKQorICAgICAgICAgICAgY29udGV4dC0+c3ByKEFSTVJlZ2lz
dGVyczo6YXBzcikgPSBvcmlnaW5hbFN0YXRlLnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpOworI2Vu
ZGlmCiAgICAgICAgICAgICBjb250ZXh0LT5zcCgpID0gb3JpZ2luYWxTUDsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgLy8gVmFsaWRhdGUgdGhhdCB0aGUgb3JpZ2luYWwgc3RhY2sgcG9pbnRlciB3
YXMgcmVzdG9yZWQuCisgICAgICAgIC8vIFZhbGlkYXRlIHRoYXQgdGhlIG9yaWdpbmFsIHN0YXRl
IHdhcyByZXN0b3JlZC4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250
ZXh0KSB7Ci0gICAgICAgICAgICBzdWNjZXNzID0gKGNvbnRleHQtPnNwKCkgPT0gb3JpZ2luYWxT
UCk7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOworICAgICAgICAgICAgZm9yIChhdXRv
IGlkID0gQ0NhbGxIZWxwZXJzOjpmaXJzdFJlZ2lzdGVyKCk7IGlkIDw9IENDYWxsSGVscGVyczo6
bGFzdFJlZ2lzdGVyKCk7IGlkID0gbmV4dElEKGlkKSkgeworICAgICAgICAgICAgICAgIGlmIChp
c1BDKGlkKSB8fCBpc1NQKGlkKSB8fCBpc0ZQKGlkKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICAgICAgQ0hFQ0soY29udGV4dC0+Z3ByKGlkKSA9PSBvcmlnaW5h
bFN0YXRlLmdwcihpZCkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvIGlk
ID0gQ0NhbGxIZWxwZXJzOjpmaXJzdEZQUmVnaXN0ZXIoKTsgaWQgPD0gQ0NhbGxIZWxwZXJzOjps
YXN0RlBSZWdpc3RlcigpOyBpZCA9IG5leHRJRChpZCkpCisgICAgICAgICAgICAgICAgQ0hFQ0so
Y29udGV4dC0+ZnByKGlkKSA9PSBvcmlnaW5hbFN0YXRlLmZwcihpZCkpOworI2lmIENQVShYODYp
IHx8IENQVShYODZfNjQpCisgICAgICAgICAgICBDSEVDSyhjb250ZXh0LT5zcHIoWDg2UmVnaXN0
ZXJzOjplZmxhZ3MpID09IG9yaWdpbmFsU3RhdGUuc3ByKFg4NlJlZ2lzdGVyczo6ZWZsYWdzKSk7
CisjZWxpZiBDUFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTV9UUkFESVRJT05BTCkKKyAgICAgICAg
ICAgIENIRUNLKGNvbnRleHQtPnNwcihBUk1SZWdpc3RlcnM6OmFwc3IpID09IG9yaWdpbmFsU3Rh
dGUuc3ByKEFSTVJlZ2lzdGVyczo6YXBzcikpOworI2VuZGlmCisgICAgICAgICAgICBDSEVDSyhj
b250ZXh0LT5zcCgpID09IG9yaWdpbmFsU1ApOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQu
ZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgaml0LnJldCgpOwogICAgIH0pOwotICAg
IENIRUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2FsbENvdW50ID09IDQpOworfQorCit2
b2lkIHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyVG9JbnNpZGVQcm9iZUNvbnRleHRPblN0
YWNrKCkKK3sKKyAgICBmb3IgKHNpemVfdCBvZmZzZXQgPSAwOyBvZmZzZXQgPCBzaXplb2YoUHJv
YmVDb250ZXh0KTsgb2Zmc2V0ICs9IHNpemVvZih1aW50cHRyX3QpKSB7CisgICAgICAgIHRlc3RQ
cm9iZU1vZGlmaWVzU3RhY2tQb2ludGVyKFs9XSAoUHJvYmVDb250ZXh0KiBjb250ZXh0KSAtPiB2
b2lkKiB7CisgICAgICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oY29u
dGV4dCkgKyBvZmZzZXQ7CisgICAgICAgIH0pOworICAgIH0KK30KKwordm9pZCB0ZXN0UHJvYmVN
b2RpZmllc1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpCit7CisgICAgZm9yIChzaXplX3Qg
b2Zmc2V0ID0gMDsgb2Zmc2V0IDwgMSAqIEtCOyBvZmZzZXQgKz0gc2l6ZW9mKHVpbnRwdHJfdCkp
IHsKKyAgICAgICAgdGVzdFByb2JlTW9kaWZpZXNTdGFja1BvaW50ZXIoWz1dIChQcm9iZUNvbnRl
eHQqIGNvbnRleHQpIC0+IHZvaWQqIHsKKyAgICAgICAgICAgIHJldHVybiByZWludGVycHJldF9j
YXN0PHVpbnQ4X3QqPihjb250ZXh0LT5jcHUuc3AoKSkgLSBvZmZzZXQ7CisgICAgICAgIH0pOwor
ICAgIH0KIH0KIAogdm9pZCB0ZXN0UHJvYmVNb2RpZmllc1Byb2dyYW1Db3VudGVyKCkKQEAgLTMz
NSwxMiArNDQ2LDE0IEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNQcm9ncmFtQ291bnRlcigpCiAg
ICAgLy8gVGhpcyB0ZXN0IHJlbGllcyBvbiB0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0ZXJz
KCkgYW5kIHRlc3RQcm9iZVdyaXRlc0FyZ3VtZW50UmVnaXN0ZXJzKCkKICAgICAvLyBoYXZpbmcg
YWxyZWFkeSB2YWxpZGF0ZWQgdGhhdCB3ZSBjYW4gcmVhZCBhbmQgd3JpdGUgZnJvbSByZWdpc3Rl
cnMuIFdlJ2xsIHVzZSB0aGVzZSBhYmlsaXRpZXMKICAgICAvLyB0byB2YWxpZGF0ZSB0aGF0IHRo
ZSBwcm9iZSBwcmVzZXJ2ZXMgcmVnaXN0ZXIgdmFsdWVzLgotICAgIGJvb2wgc3VjY2VzcyA9IGZh
bHNlOworICAgIHVuc2lnbmVkIHByb2JlQ2FsbENvdW50ID0gMDsKKyAgICBib29sIGNvbnRpbnVh
dGlvbldhc1JlYWNoZWQgPSBmYWxzZTsKIAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiBjb250
aW51YXRpb24gPSBjb21waWxlKFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQpIHsKICAgICAgICAgLy8g
VmFsaWRhdGUgdGhhdCB3ZSByZWFjaGVkIHRoZSBjb250aW51YXRpb24uCiAgICAgICAgIGppdC5w
cm9iZShbJl0gKFByb2JlQ29udGV4dCopIHsKLSAgICAgICAgICAgIHN1Y2Nlc3MgPSB0cnVlOwor
ICAgICAgICAgICAgcHJvYmVDYWxsQ291bnQrKzsKKyAgICAgICAgICAgIGNvbnRpbnVhdGlvbldh
c1JlYWNoZWQgPSB0cnVlOwogICAgICAgICB9KTsKIAogICAgICAgICBqaXQuZW1pdEZ1bmN0aW9u
RXBpbG9ndWUoKTsKQEAgLTM1MiwxMiArNDY1LDE0IEBAIHZvaWQgdGVzdFByb2JlTW9kaWZpZXNQ
cm9ncmFtQ291bnRlcigpCiAKICAgICAgICAgLy8gV3JpdGUgZXhwZWN0ZWQgdmFsdWVzIGludG8g
dGhlIHJlZ2lzdGVycy4KICAgICAgICAgaml0LnByb2JlKFsmXSAoUHJvYmVDb250ZXh0KiBjb250
ZXh0KSB7CisgICAgICAgICAgICBwcm9iZUNhbGxDb3VudCsrOwogICAgICAgICAgICAgY29udGV4
dC0+cGMoKSA9IGNvbnRpbnVhdGlvbi5jb2RlKCkuZXhlY3V0YWJsZUFkZHJlc3MoKTsKICAgICAg
ICAgfSk7CiAKICAgICAgICAgaml0LmJyZWFrcG9pbnQoKTsgLy8gV2Ugc2hvdWxkIG5ldmVyIGdl
dCBoZXJlLgogICAgIH0pOwotICAgIENIRUNLKHN1Y2Nlc3MpOworICAgIENIRUNLKHByb2JlQ2Fs
bENvdW50ID09IDIpOworICAgIENIRUNLKGNvbnRpbnVhdGlvbldhc1JlYWNoZWQpOwogfQogI2Vu
ZGlmIC8vIEVOQUJMRShNQVNNX1BST0JFKQogCkBAIC0zODksNyArNTA0LDggQEAgdm9pZCBydW4o
Y29uc3QgY2hhciogZmlsdGVyKQogICAgIFJVTih0ZXN0UHJvYmVSZWFkc0FyZ3VtZW50UmVnaXN0
ZXJzKCkpOwogICAgIFJVTih0ZXN0UHJvYmVXcml0ZXNBcmd1bWVudFJlZ2lzdGVycygpKTsKICAg
ICBSVU4odGVzdFByb2JlUHJlc2VydmVzR1BSUygpKTsKLSAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNTdGFja1BvaW50ZXIoKSk7CisgICAgUlVOKHRlc3RQcm9iZU1vZGlmaWVzU3RhY2tQb2ludGVy
VG9JbnNpZGVQcm9iZUNvbnRleHRPblN0YWNrKCkpOworICAgIFJVTih0ZXN0UHJvYmVNb2RpZmll
c1N0YWNrUG9pbnRlclRvTkJ5dGVzQmVsb3dTUCgpKTsKICAgICBSVU4odGVzdFByb2JlTW9kaWZp
ZXNQcm9ncmFtQ291bnRlcigpKTsKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="337034"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>