<?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>188788</bug_id>
          
          <creation_ts>2018-08-21 05:32:36 -0700</creation_ts>
          <short_desc>LEBDecoder and Wasm::Parser should be tolerant for not enough data</short_desc>
          <delta_ts>2018-08-26 14:58:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1452045</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-21 05:32:36 -0700</bug_when>
    <thetext>LEBDecoder and Wasm::Parser should be tolerant for not enough data</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452046</commentid>
    <comment_count>1</comment_count>
      <attachid>347632</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-21 05:35:42 -0700</bug_when>
    <thetext>Created attachment 347632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1452047</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-08-21 05:37:18 -0700</bug_when>
    <thetext>Attachment 347632 did not pass style-queue:


ERROR: Source/JavaScriptCore/wasm/WasmParser.h:237:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 1 in 9 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>1452503</commentid>
    <comment_count>3</comment_count>
      <attachid>347632</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-08-21 19:50:15 -0700</bug_when>
    <thetext>Comment on attachment 347632
Patch

Seems like we’re doing this at such a low level. Why can’t we wait until we have enough bytes for the module header then just know when we can individually parse functions at their byte boundaries?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1453671</commentid>
    <comment_count>4</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2018-08-25 04:25:27 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #3)
&gt; Comment on attachment 347632 [details]
&gt; Patch
&gt; 
&gt; Seems like we’re doing this at such a low level. Why can’t we wait until we
&gt; have enough bytes for the module header then just know when we can
&gt; individually parse functions at their byte boundaries?

Make sense. After reading Wasm module specification carefully, we do not need to have such a low level tolerance in LEBDecoder etc. Closing this issue. Without it, we can construct streaming decoder for wasm.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>347632</attachid>
            <date>2018-08-21 05:35:42 -0700</date>
            <delta_ts>2018-08-26 14:58:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-188788-20180821213540.patch</filename>
            <type>text/plain</type>
            <size>51126</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
YTYxZDY3M2NkMzFjNjI3YmE3ZjJhMzU5MzhjYmQ3MDQwMDVlMmM3Li4wMGUzMTU4NzY4MmM5Zjcz
MDNlYzJmMTlkYjA5OWE0YTI4ZjFiNDYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxOC0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93
c3RhcnQub3JnPgorCisgICAgICAgIExFQkRlY29kZXIgYW5kIFdhc206OlBhcnNlciBzaG91bGQg
YmUgdG9sZXJhbnQgZm9yIG5vdCBlbm91Z2ggZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg4Nzg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV2FzbTo6UGFyc2VyIHNob3VsZCBiZSB0b2xlcmFudCBm
b3Igbm9uLWVub3VnaCBkYXRhLiBJdCBtZWFucyB0aGF0CisgICAgICAgIHBhcnNlciBzaG91bGQg
cmV0dXJuIHR3byB0eXBlcyBvZiBlcnJvcnMsIHJlY292ZXJhYmxlIGFuZCBmYXRhbC4KKyAgICAg
ICAgSWYgYSBmYXRhbCBlcnJvciBoYXBwZW5zLCB3ZSBjYW5ub3QgcmVzdGFydCBwYXJzaW5nIGV2
ZW4gaWYgd2UgaGF2ZQorICAgICAgICBtb3JlIHN1YnNlcXVlbnQgZGF0YS4gQnV0IHJlY292ZXJh
YmxlIGVycm9yIG1lYW5zIHRoYXQgd2UgbWF5IHN1Y2NlZWQKKyAgICAgICAgcGFyc2luZyBpZiB3
ZSBoYXZlIG1vcmUgc3Vic2VxdWVudCBkYXRhLiBUaGVzZSBwYXJzaW5nIGZ1bmN0aW9uIHNob3Vs
ZAorICAgICAgICBiZSB0aGUgYmFzaXMgb2Ygc3RyZWFtaW5nIHdhc20gZGVjb2RpbmcuCisKKyAg
ICAgICAgKiB3YXNtL1dhc21QYXJzZXIuaDoKKyAgICAgICAgKEpTQzo6V2FzbTo6UGFyc2VyPFN1
Y2Nlc3NUeXBlPjo6Y29uc3VtZUNoYXJhY3Rlcik6CisgICAgICAgIChKU0M6Oldhc206OlBhcnNl
cjxTdWNjZXNzVHlwZT46OmNvbnN1bWVTdHJpbmcpOgorICAgICAgICAoSlNDOjpXYXNtOjpQYXJz
ZXI8U3VjY2Vzc1R5cGU+Ojpjb25zdW1lVVRGOFN0cmluZyk6CisgICAgICAgIChKU0M6Oldhc206
OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFyVUludDMyKToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYXJVSW50NjQpOgorICAgICAgICAoSlNDOjpX
YXNtOjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhckludDMyKToKKyAgICAgICAgKEpTQzo6
V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYXJJbnQ2NCk6CisgICAgICAgIChKU0M6
Oldhc206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKToKKyAgICAgICAgKEpTQzo6
V2FzbTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQpOgorICAgICAgICAoSlNDOjpX
YXNtOjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVVJbnQ4KToKKyAgICAgICAgKEpTQzo6V2Fz
bTo6UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VJbnQ3KToKKyAgICAgICAgKEpTQzo6V2FzbTo6
UGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50Nyk6CisgICAgICAgIChKU0M6Oldhc206OlBh
cnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFyVUludDEpOgorICAgICAgICAoSlNDOjpXYXNtOjpQ
YXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVJlc3VsdFR5cGUpOgorICAgICAgICAoSlNDOjpXYXNt
OjpQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhbHVlVHlwZSk6CisgICAgICAgIChKU0M6Oldh
c206OlBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlRXh0ZXJuYWxLaW5kKToKKwogMjAxOC0wOC0y
MSAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBKU1J1bkxvb3BU
aW1lciBtYXkgcnVuIHBhcnQgb2YgYSBtZW1iZXIgZnVuY3Rpb24gYWZ0ZXIgaXQncyBkZXN0cm95
ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VM
b2cKaW5kZXggZDVlYWQzN2U2NjVmYWQ1ZWRhZWQwODgxYjljOTE5N2NmNTA0YjNjYi4uNjlmMzZh
YWUzOGU0MWNkN2UyZWUwNTA1YjE3OTFmNTIzOWFlZGZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxOC0wOC0yMSAgWXVzdWtlIFN1enVraSAgPHl1c3VrZXN1enVraUBzbG93c3RhcnQub3JnPgor
CisgICAgICAgIExFQkRlY29kZXIgYW5kIFdhc206OlBhcnNlciBzaG91bGQgYmUgdG9sZXJhbnQg
Zm9yIG5vdCBlbm91Z2ggZGF0YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTg4Nzg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgTEVCRGVjb2RlciByZXR1cm5zIEV4cGVjdGVkPHZvaWQsIFN0cmVhbWluZ0Vy
cm9yPiwgd2hpY2ggaW5kaWNhdGVzIHdoZXRoZXIgdGhlIGVycm9yIG9mIGRlY29kaW5nIGlzIHJl
Y292ZXJhYmxlLgorICAgICAgICBUaGlzIGlzIHVzZWZ1bCBmb3Igc3RyZWFtaW5nIHdhc20gZGVj
b2RpbmcuCisKKyAgICAgICAgKiBXVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiB3dGYvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogd3RmL0xFQkRlY29kZXIuaDoKKyAg
ICAgICAgKFdURjo6TEVCRGVjb2Rlcjo6ZGVjb2RlVUludCk6CisgICAgICAgIChXVEY6OkxFQkRl
Y29kZXI6OmRlY29kZUludCk6CisgICAgICAgIChXVEY6OkxFQkRlY29kZXI6OmRlY29kZVVJbnQz
Mik6CisgICAgICAgIChXVEY6OkxFQkRlY29kZXI6OmRlY29kZVVJbnQ2NCk6CisgICAgICAgIChX
VEY6OkxFQkRlY29kZXI6OmRlY29kZUludDMyKToKKyAgICAgICAgKFdURjo6TEVCRGVjb2Rlcjo6
ZGVjb2RlSW50NjQpOgorICAgICAgICAqIHd0Zi9TdHJlYW1pbmdFcnJvci5oOiBBZGRlZC4KKyAg
ICAgICAgQWRkIG5ldyBlbnVtIGNsYXNzIFN0cmVhbWluZ0Vycm9yLCB3aGljaCBoYXMgUmVjb3Zl
cmFibGUgYW5kIEZhdGFsIHR5cGVzLgorCiAyMDE4LTA4LTIwICBTYWFtIGJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIElubGluZSBEYXRhVmlldyBhY2Nlc3NlcyBpbnRvIERG
Ry9GVEwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21QYXJzZXIuaAppbmRleCA2NTEwNzA1
ZWFmNTc4Y2UzM2UzYmQ3NmIyYmM4MzhhZGRhNWY1YjAwLi45NGM4N2ViYWFlNjY0MjEzMjQxNzU2
MzYzNWFlNDM4ZjM0ZWFiYjBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2Fz
bS9XYXNtUGFyc2VyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbVBhcnNl
ci5oCkBAIC01OCwyOCArNTgsMzAgQEAgY2xhc3MgUGFyc2VyIHsKICAgICB0eXBlZGVmIEV4cGVj
dGVkPHZvaWQsIEVycm9yVHlwZT4gUGFydGlhbFJlc3VsdDsKICAgICB0eXBlZGVmIEV4cGVjdGVk
PFN1Y2Nlc3NUeXBlLCBFcnJvclR5cGU+IFJlc3VsdDsKIAorICAgIHVzaW5nIENvbnN1bWVSZXN1
bHQgPSBXVEY6OkxFQkRlY29kZXI6OlJlc3VsdDsKKwogcHJvdGVjdGVkOgogICAgIFBhcnNlcihj
b25zdCB1aW50OF90Kiwgc2l6ZV90KTsKIAotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIGNv
bnN1bWVDaGFyYWN0ZXIoY2hhcik7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3Vt
ZVN0cmluZyhjb25zdCBjaGFyKik7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gY29uc3Vt
ZVVURjhTdHJpbmcoTmFtZSYsIHNpemVfdCk7CisgICAgQ29uc3VtZVJlc3VsdCBXQVJOX1VOVVNF
RF9SRVRVUk4gY29uc3VtZUNoYXJhY3RlcihjaGFyKTsKKyAgICBDb25zdW1lUmVzdWx0IFdBUk5f
VU5VU0VEX1JFVFVSTiBjb25zdW1lU3RyaW5nKGNvbnN0IGNoYXIqKTsKKyAgICBDb25zdW1lUmVz
dWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBjb25zdW1lVVRGOFN0cmluZyhOYW1lJiwgc2l6ZV90KTsK
IAotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlVmFyVUludDEodWludDhfdCYpOwot
ICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlSW50NyhpbnQ4X3QmKTsKLSAgICBib29s
IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZVVJbnQ3KHVpbnQ4X3QmKTsKLSAgICBib29sIFdBUk5f
VU5VU0VEX1JFVFVSTiBwYXJzZVVJbnQ4KHVpbnQ4X3QmKTsKLSAgICBib29sIFdBUk5fVU5VU0VE
X1JFVFVSTiBwYXJzZVVJbnQzMih1aW50MzJfdCYpOwotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVU
VVJOIHBhcnNlVUludDY0KHVpbnQ2NF90Jik7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4g
cGFyc2VWYXJVSW50MzIodWludDMyX3QmKTsKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBw
YXJzZVZhclVJbnQ2NCh1aW50NjRfdCYpOworICAgIENvbnN1bWVSZXN1bHQgV0FSTl9VTlVTRURf
UkVUVVJOIHBhcnNlVmFyVUludDEodWludDhfdCYpOworICAgIENvbnN1bWVSZXN1bHQgV0FSTl9V
TlVTRURfUkVUVVJOIHBhcnNlSW50NyhpbnQ4X3QmKTsKKyAgICBDb25zdW1lUmVzdWx0IFdBUk5f
VU5VU0VEX1JFVFVSTiBwYXJzZVVJbnQ3KHVpbnQ4X3QmKTsKKyAgICBDb25zdW1lUmVzdWx0IFdB
Uk5fVU5VU0VEX1JFVFVSTiBwYXJzZVVJbnQ4KHVpbnQ4X3QmKTsKKyAgICBDb25zdW1lUmVzdWx0
IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZVVJbnQzMih1aW50MzJfdCYpOworICAgIENvbnN1bWVS
ZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlVUludDY0KHVpbnQ2NF90Jik7CisgICAgQ29u
c3VtZVJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VWYXJVSW50MzIodWludDMyX3QmKTsK
KyAgICBDb25zdW1lUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZVZhclVJbnQ2NCh1aW50
NjRfdCYpOwogCi0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VWYXJJbnQzMihpbnQz
Ml90Jik7Ci0gICAgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VWYXJJbnQ2NChpbnQ2NF90
Jik7CisgICAgQ29uc3VtZVJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VWYXJJbnQzMihp
bnQzMl90Jik7CisgICAgQ29uc3VtZVJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gcGFyc2VWYXJJ
bnQ2NChpbnQ2NF90Jik7CiAKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZVJlc3Vs
dFR5cGUoVHlwZSYpOwotICAgIGJvb2wgV0FSTl9VTlVTRURfUkVUVVJOIHBhcnNlVmFsdWVUeXBl
KFR5cGUmKTsKLSAgICBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJzZUV4dGVybmFsS2luZChF
eHRlcm5hbEtpbmQmKTsKKyAgICBDb25zdW1lUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBwYXJz
ZVJlc3VsdFR5cGUoVHlwZSYpOworICAgIENvbnN1bWVSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJO
IHBhcnNlVmFsdWVUeXBlKFR5cGUmKTsKKyAgICBDb25zdW1lUmVzdWx0IFdBUk5fVU5VU0VEX1JF
VFVSTiBwYXJzZUV4dGVybmFsS2luZChFeHRlcm5hbEtpbmQmKTsKIAogICAgIGNvbnN0IHVpbnQ4
X3QqIHNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlOyB9CiAgICAgc2l6ZV90IGxlbmd0
aCgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlTGVuZ3RoOyB9CkBAIC0xMTYsNDEgKzExOCw0MiBA
QCBBTFdBWVNfSU5MSU5FIFBhcnNlcjxTdWNjZXNzVHlwZT46OlBhcnNlcihjb25zdCB1aW50OF90
KiBzb3VyY2VCdWZmZXIsIHNpemVfdCBzbwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdWNjZXNz
VHlwZT4KLUFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+Ojpjb25zdW1lQ2hh
cmFjdGVyKGNoYXIgYykKK0FMV0FZU19JTkxJTkUgYXV0byBQYXJzZXI8U3VjY2Vzc1R5cGU+Ojpj
b25zdW1lQ2hhcmFjdGVyKGNoYXIgYykgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIGlmIChtX29m
ZnNldCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJhYmxlKTsKICAgICBpZiAoYyA9
PSBzb3VyY2UoKVttX29mZnNldF0pIHsKICAgICAgICAgbV9vZmZzZXQrKzsKLSAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OkZhdGFsKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgU3VjY2Vzc1R5cGU+Ci1BTFdBWVNfSU5MSU5FIGJvb2wgUGFyc2Vy
PFN1Y2Nlc3NUeXBlPjo6Y29uc3VtZVN0cmluZyhjb25zdCBjaGFyKiBzdHIpCitBTFdBWVNfSU5M
SU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6Y29uc3VtZVN0cmluZyhjb25zdCBjaGFyKiBz
dHIpIC0+IENvbnN1bWVSZXN1bHQKIHsKICAgICB1bnNpZ25lZCBzdGFydCA9IG1fb2Zmc2V0Owog
ICAgIGlmIChtX29mZnNldCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJhYmxlKTsK
ICAgICBmb3IgKHNpemVfdCBpID0gMDsgc3RyW2ldOyBpKyspIHsKLSAgICAgICAgaWYgKCFjb25z
dW1lQ2hhcmFjdGVyKHN0cltpXSkpIHsKKyAgICAgICAgYXV0byBjb25zdW1lUmVzdWx0ID0gY29u
c3VtZUNoYXJhY3RlcihzdHJbaV0pOworICAgICAgICBpZiAoIWNvbnN1bWVSZXN1bHQpIHsKICAg
ICAgICAgICAgIG1fb2Zmc2V0ID0gc3RhcnQ7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gY29uc3VtZVJlc3VsdDsKICAgICAgICAgfQogICAgIH0KLSAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4geyB9OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdWNj
ZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+Ojpjb25zdW1l
VVRGOFN0cmluZyhOYW1lJiByZXN1bHQsIHNpemVfdCBzdHJpbmdMZW5ndGgpCitBTFdBWVNfSU5M
SU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6Y29uc3VtZVVURjhTdHJpbmcoTmFtZSYgcmVz
dWx0LCBzaXplX3Qgc3RyaW5nTGVuZ3RoKSAtPiBDb25zdW1lUmVzdWx0CiB7CiAgICAgaWYgKGxl
bmd0aCgpIDwgc3RyaW5nTGVuZ3RoIHx8IG1fb2Zmc2V0ID4gbGVuZ3RoKCkgLSBzdHJpbmdMZW5n
dGgpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVk
KFN0cmVhbWluZ0Vycm9yOjpSZWNvdmVyYWJsZSk7CiAgICAgaWYgKHN0cmluZ0xlbmd0aCA+IG1h
eFN0cmluZ1NpemUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiAgICAgaWYgKCFyZXN1bHQudHJ5UmVz
ZXJ2ZUNhcGFjaXR5KHN0cmluZ0xlbmd0aCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiAKICAgICBj
b25zdCB1aW50OF90KiBzdHJpbmdTdGFydCA9IHNvdXJjZSgpICsgbV9vZmZzZXQ7CiAKQEAgLTE2
MiwxMjcgKzE2NSwxMzkgQEAgQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46
OmNvbnN1bWVVVEY4U3RyaW5nKE5hbWUmIHJlc3VsdCwgc2l6ZV90IHMKICAgICAgICAgVUNoYXIq
IGJ1ZmZlckN1cnJlbnQgPSBidWZmZXJTdGFydDsKICAgICAgICAgY29uc3QgY2hhciogc3RyaW5n
Q3VycmVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KHN0cmluZ1N0YXJ0KTsKICAg
ICAgICAgaWYgKFdURjo6VW5pY29kZTo6Y29udmVydFVURjhUb1VURjE2KCZzdHJpbmdDdXJyZW50
LCByZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIgKj4oc3RyaW5nU3RhcnQgKyBzdHJpbmdMZW5n
dGgpLCAmYnVmZmVyQ3VycmVudCwgYnVmZmVyQ3VycmVudCArIGJ1ZmZlci5zaXplKCkpICE9IFdU
Rjo6VW5pY29kZTo6Y29udmVyc2lvbk9LKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiAg
ICAgfQogCiAgICAgcmVzdWx0Lmdyb3coc3RyaW5nTGVuZ3RoKTsKICAgICBtZW1jcHkocmVzdWx0
LmRhdGEoKSwgc3RyaW5nU3RhcnQsIHN0cmluZ0xlbmd0aCk7CiAgICAgbV9vZmZzZXQgKz0gc3Ry
aW5nTGVuZ3RoOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNj
ZXNzVHlwZT46OnBhcnNlVmFyVUludDMyKHVpbnQzMl90JiByZXN1bHQpCitBTFdBWVNfSU5MSU5F
IGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYXJVSW50MzIodWludDMyX3QmIHJlc3Vs
dCkgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIHJldHVybiBXVEY6OkxFQkRlY29kZXI6OmRlY29k
ZVVJbnQzMihtX3NvdXJjZSwgbV9zb3VyY2VMZW5ndGgsIG1fb2Zmc2V0LCByZXN1bHQpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdWNjZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUgYm9vbCBQYXJz
ZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhclVJbnQ2NCh1aW50NjRfdCYgcmVzdWx0KQorQUxXQVlT
X0lOTElORSBhdXRvIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFyVUludDY0KHVpbnQ2NF90
JiByZXN1bHQpIC0+IENvbnN1bWVSZXN1bHQKIHsKICAgICByZXR1cm4gV1RGOjpMRUJEZWNvZGVy
OjpkZWNvZGVVSW50NjQobV9zb3VyY2UsIG1fc291cmNlTGVuZ3RoLCBtX29mZnNldCwgcmVzdWx0
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3VjY2Vzc1R5cGU+Ci1BTFdBWVNfSU5MSU5FIGJv
b2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYXJJbnQzMihpbnQzMl90JiByZXN1bHQpCitB
TFdBWVNfSU5MSU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VWYXJJbnQzMihpbnQz
Ml90JiByZXN1bHQpIC0+IENvbnN1bWVSZXN1bHQKIHsKICAgICByZXR1cm4gV1RGOjpMRUJEZWNv
ZGVyOjpkZWNvZGVJbnQzMihtX3NvdXJjZSwgbV9zb3VyY2VMZW5ndGgsIG1fb2Zmc2V0LCByZXN1
bHQpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBTdWNjZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUg
Ym9vbCBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhckludDY0KGludDY0X3QmIHJlc3VsdCkK
K0FMV0FZU19JTkxJTkUgYXV0byBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhckludDY0KGlu
dDY0X3QmIHJlc3VsdCkgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIHJldHVybiBXVEY6OkxFQkRl
Y29kZXI6OmRlY29kZUludDY0KG1fc291cmNlLCBtX3NvdXJjZUxlbmd0aCwgbV9vZmZzZXQsIHJl
c3VsdCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlTX0lOTElO
RSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDMyKHVpbnQzMl90JiByZXN1bHQp
CitBTFdBWVNfSU5MSU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50MzIodWlu
dDMyX3QmIHJlc3VsdCkgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIGlmIChsZW5ndGgoKSA8IDQg
fHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpSZWNvdmVyYWJsZSk7CiAg
ICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDMyX3QqPihzb3VyY2UoKSAr
IG1fb2Zmc2V0KTsKICAgICBtX29mZnNldCArPSA0OwotICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiB7IH07CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlTX0lO
TElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDY0KHVpbnQ2NF90JiByZXN1
bHQpCitBTFdBWVNfSU5MSU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VVSW50NjQo
dWludDY0X3QmIHJlc3VsdCkgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIGlmIChsZW5ndGgoKSA8
IDggfHwgbV9vZmZzZXQgPiBsZW5ndGgoKSAtIDgpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpSZWNvdmVyYWJsZSk7
CiAgICAgcmVzdWx0ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDY0X3QqPihzb3VyY2Uo
KSArIG1fb2Zmc2V0KTsKICAgICBtX29mZnNldCArPSA4OwotICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlT
X0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDgodWludDhfdCYgcmVz
dWx0KQorQUxXQVlTX0lOTElORSBhdXRvIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVUludDgo
dWludDhfdCYgcmVzdWx0KSAtPiBDb25zdW1lUmVzdWx0CiB7CiAgICAgaWYgKG1fb2Zmc2V0ID49
IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpOwogICAgIHJlc3VsdCA9IHNvdXJj
ZSgpW21fb2Zmc2V0KytdOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlTX0lOTElORSBib29sIFBhcnNl
cjxTdWNjZXNzVHlwZT46OnBhcnNlSW50NyhpbnQ4X3QmIHJlc3VsdCkKK0FMV0FZU19JTkxJTkUg
YXV0byBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZUludDcoaW50OF90JiByZXN1bHQpIC0+IENv
bnN1bWVSZXN1bHQKIHsKICAgICBpZiAobV9vZmZzZXQgPj0gbGVuZ3RoKCkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9y
OjpSZWNvdmVyYWJsZSk7CiAgICAgdWludDhfdCB2ID0gc291cmNlKClbbV9vZmZzZXQrK107CiAg
ICAgcmVzdWx0ID0gKHYgJiAweDQwKSA/IFdURjo6Yml0d2lzZV9jYXN0PGludDhfdD4odWludDhf
dCh2IHwgMHg4MCkpIDogdjsKLSAgICByZXR1cm4gKHYgJiAweDgwKSA9PSAwOworICAgIGlmICgo
diAmIDB4ODApID09IDApCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1
Y2Nlc3NUeXBlPgotQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNl
VUludDcodWludDhfdCYgcmVzdWx0KQorQUxXQVlTX0lOTElORSBhdXRvIFBhcnNlcjxTdWNjZXNz
VHlwZT46OnBhcnNlVUludDcodWludDhfdCYgcmVzdWx0KSAtPiBDb25zdW1lUmVzdWx0CiB7CiAg
ICAgaWYgKG1fb2Zmc2V0ID49IGxlbmd0aCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpOwog
ICAgIHJlc3VsdCA9IHNvdXJjZSgpW21fb2Zmc2V0KytdOwotICAgIHJldHVybiByZXN1bHQgPCAw
eDgwOworICAgIGlmIChyZXN1bHQgPCAweDgwKQorICAgICAgICByZXR1cm4geyB9OworICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBTdWNjZXNzVHlwZT4KLUFMV0FZU19JTkxJTkUgYm9vbCBQYXJzZXI8U3VjY2Vz
c1R5cGU+OjpwYXJzZVZhclVJbnQxKHVpbnQ4X3QmIHJlc3VsdCkKK0FMV0FZU19JTkxJTkUgYXV0
byBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhclVJbnQxKHVpbnQ4X3QmIHJlc3VsdCkgLT4g
Q29uc3VtZVJlc3VsdAogewogICAgIHVpbnQzMl90IHRlbXA7Ci0gICAgaWYgKCFwYXJzZVZhclVJ
bnQzMih0ZW1wKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGF1dG8gcGFyc2VSZXN1bHQg
PSBwYXJzZVZhclVJbnQzMih0ZW1wKTsKKyAgICBpZiAoIXBhcnNlUmVzdWx0KQorICAgICAgICBy
ZXR1cm4gcGFyc2VSZXN1bHQ7CiAgICAgaWYgKHRlbXAgPiAxKQotICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwp
OwogICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KHRlbXApOwotICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBl
PgotQUxXQVlTX0lOTElORSBib29sIFBhcnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlUmVzdWx0VHlw
ZShUeXBlJiByZXN1bHQpCitBTFdBWVNfSU5MSU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6
cGFyc2VSZXN1bHRUeXBlKFR5cGUmIHJlc3VsdCkgLT4gQ29uc3VtZVJlc3VsdAogewogICAgIGlu
dDhfdCB2YWx1ZTsKLSAgICBpZiAoIXBhcnNlSW50Nyh2YWx1ZSkpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBhdXRvIHBhcnNlUmVzdWx0ID0gcGFyc2VJbnQ3KHZhbHVlKTsKKyAgICBpZiAo
IXBhcnNlUmVzdWx0KQorICAgICAgICByZXR1cm4gcGFyc2VSZXN1bHQ7CiAgICAgaWYgKCFpc1Zh
bGlkVHlwZSh2YWx1ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiAgICAgcmVzdWx0ID0gc3RhdGlj
X2Nhc3Q8VHlwZT4odmFsdWUpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFN1Y2Nlc3NUeXBlPgotQUxXQVlTX0lOTElORSBib29sIFBh
cnNlcjxTdWNjZXNzVHlwZT46OnBhcnNlVmFsdWVUeXBlKFR5cGUmIHJlc3VsdCkKK0FMV0FZU19J
TkxJTkUgYXV0byBQYXJzZXI8U3VjY2Vzc1R5cGU+OjpwYXJzZVZhbHVlVHlwZShUeXBlJiByZXN1
bHQpIC0+IENvbnN1bWVSZXN1bHQKIHsKLSAgICByZXR1cm4gcGFyc2VSZXN1bHRUeXBlKHJlc3Vs
dCkgJiYgaXNWYWx1ZVR5cGUocmVzdWx0KTsKKyAgICBhdXRvIHBhcnNlUmVzdWx0ID0gcGFyc2VS
ZXN1bHRUeXBlKHJlc3VsdCk7CisgICAgaWYgKCFwYXJzZVJlc3VsdCkKKyAgICAgICAgcmV0dXJu
IHBhcnNlUmVzdWx0OworICAgIGlmICghaXNWYWx1ZVR5cGUocmVzdWx0KSkKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CisgICAgcmV0dXJuIHsg
fTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgU3VjY2Vzc1R5cGU+Ci1BTFdBWVNfSU5MSU5FIGJv
b2wgUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VFeHRlcm5hbEtpbmQoRXh0ZXJuYWxLaW5kJiBy
ZXN1bHQpCitBTFdBWVNfSU5MSU5FIGF1dG8gUGFyc2VyPFN1Y2Nlc3NUeXBlPjo6cGFyc2VFeHRl
cm5hbEtpbmQoRXh0ZXJuYWxLaW5kJiByZXN1bHQpIC0+IENvbnN1bWVSZXN1bHQKIHsKICAgICB1
aW50OF90IHZhbHVlOwotICAgIGlmICghcGFyc2VVSW50Nyh2YWx1ZSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBhdXRvIHBhcnNlUmVzdWx0ID0gcGFyc2VVSW50Nyh2YWx1ZSk7CisgICAg
aWYgKCFwYXJzZVJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHBhcnNlUmVzdWx0OwogICAgIGlmICgh
aXNWYWxpZEV4dGVybmFsS2luZCh2YWx1ZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7CiAgICAgcmVz
dWx0ID0gc3RhdGljX2Nhc3Q8RXh0ZXJuYWxLaW5kPih2YWx1ZSk7Ci0gICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIHsgfTsKIH0KIAogfSB9IC8vIG5hbWVzcGFjZSBKU0M6Oldhc20KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ1YjVjZWFlY2YwZTAyZWM1
ZDY1MTY3Nzg3Njc1YzY4OWQzNTI0NWQuLmE3ZjIwZGViMjQyNmExZTNhZmJlYTAzNGI5YWU0ZGI2
ZWFmZjRjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MzYyLDYgKzM2Miw3IEBACiAJCTUzMTFCRDVCMUVBODIyRjkwMDUyNTI4MSAvKiBUaHJlYWRNZXNz
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRocmVhZE1lc3Nh
Z2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzUzNEYyOTFFQzBFMTBFMDAx
NDFCMkYgLyogTWFjaEV4Y2VwdGlvbnMuZGVmcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUubWlnOyBw
YXRoID0gTWFjaEV4Y2VwdGlvbnMuZGVmczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTM5RUIwNjIxRDU1Mjg0MjAwQzgyRUY3IC8qIExFQkRlY29kZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gTEVCRGVjb2Rlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1RDVFRDM1Q0VCRjU0NDA1ODBGQTBENDAgLyogU3RyZWFtaW5nRXJyb3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyZWFtaW5nRXJyb3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTNFQzI1M0MxRTk1QUQzMDAwMDgzMUI5IC8qIFByaW9yaXR5UXVl
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJpb3JpdHlRdWV1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0YwOEExQkEzOUQ0OUE4QkFEMzY5QTEgLyog
U3RkU2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0ZFNldC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1M0YxRDk4NjIwNDc3Qjk4MDBFQkM2QkYgLyogRnVu
Y3Rpb25UcmFpdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEZ1bmN0aW9uVHJhaXRzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk0LDYgKzEwOTUsNyBAQAogCQkJCTEzMjc0MzkyNEZD
NTRFNDY5RjVBOEU2RSAvKiBTdGRVbm9yZGVyZWRTZXQuaCAqLywKIAkJCQlDNEY4QTkzNjE5QzY1
RUI0MDBCMkIxNUQgLyogU3RvcHdhdGNoLmggKi8sCiAJCQkJMUE2QkI3NjgxNjJGMzAwNTAwREQx
NkRCIC8qIFN0cmVhbUJ1ZmZlci5oICovLAorCQkJCTVENUVEMzVDRUJGNTQ0MDU4MEZBMEQ0MCAv
KiBTdHJlYW1pbmdFcnJvci5oICovLAogCQkJCUE4QTQ3MzEzMTUxQTgyNUIwMDQxMjNGRiAvKiBT
dHJpbmdFeHRyYXMuaCAqLywKIAkJCQlBNzQ4NzQ1MTE3QTBCREFFMDBGQTA0Q0IgLyogU3RyaW5n
SGFzaER1bXBDb250ZXh0LmggKi8sCiAJCQkJMEZEREJGQTUxNjY2REZBMzAwQzU1RkVGIC8qIFN0
cmluZ1ByaW50U3RyZWFtLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXggOWFkYjU1NTQz
ZDAxM2ZlYTlhZjVhN2FhZTQ5NDMyZjk1ZjMyNDBmMi4uMDYwN2U1OTFmYTQ0MTU5NmFkYzQ2Mjdl
MTVjYWIwYzg1M2U3ZmNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTIyMSw2ICsyMjEsNyBA
QCBzZXQoV1RGX1BVQkxJQ19IRUFERVJTCiAgICAgU3RkVW5vcmRlcmVkU2V0LmgKICAgICBTdG9w
d2F0Y2guaAogICAgIFN0cmVhbUJ1ZmZlci5oCisgICAgU3RyZWFtaW5nRXJyb3IuaAogICAgIFN0
cmluZ0V4dHJhcy5oCiAgICAgU3RyaW5nSGFzaER1bXBDb250ZXh0LmgKICAgICBTdHJpbmdQcmlu
dFN0cmVhbS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9MRUJEZWNvZGVyLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9MRUJEZWNvZGVyLmgKaW5kZXggOTQ2Mjc3MGM2OTljZDA1ZWE2NTczZTNlZDlj
MWM5NzVhOGI1MTUwNy4uZmJlMWU5ZjFmZTQyNTI0YmYxMTgxNWJkZTVmMjdhNDdjM2JjZDkyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTEVCRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL0xFQkRlY29kZXIuaApAQCAtMjYsNiArMjYsOCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNs
dWRlICJDb21waWxlci5oIgorI2luY2x1ZGUgIkV4cGVjdGVkLmgiCisjaW5jbHVkZSAiU3RyZWFt
aW5nRXJyb3IuaCIKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAjaW5jbHVkZSA8bGltaXRzLmg+CiAK
QEAgLTM1LDcyICszNyw4NCBAQAogCiBuYW1lc3BhY2UgV1RGIHsgbmFtZXNwYWNlIExFQkRlY29k
ZXIgewogCit1c2luZyBSZXN1bHQgPSBFeHBlY3RlZDx2b2lkLCBTdHJlYW1pbmdFcnJvcj47CisK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gZGVj
b2RlVUludChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgc2l6ZV90JiBvZmZz
ZXQsIFQmIHJlc3VsdCkKK2lubGluZSBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29kZVVJ
bnQoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCYgb2Zmc2V0LCBU
JiByZXN1bHQpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IG51bUJpdHMgPSBzaXplb2YoVCkgKiBDSEFS
X0JJVDsKLSAgICBjb25zdCBzaXplX3QgbWF4Qnl0ZUxlbmd0aCA9IChudW1CaXRzIC0gMSkgLyA3
ICsgMTsgLy8gbnVtQml0cyAvIDcgcm91bmRpbmcgdXAuCisgICAgY29uc3RleHByIHNpemVfdCBu
dW1CaXRzID0gc2l6ZW9mKFQpICogQ0hBUl9CSVQ7CisgICAgY29uc3RleHByIHNpemVfdCBtYXhC
eXRlTGVuZ3RoID0gKG51bUJpdHMgLSAxKSAvIDcgKyAxOyAvLyBudW1CaXRzIC8gNyByb3VuZGlu
ZyB1cC4KICAgICBpZiAobGVuZ3RoIDw9IG9mZnNldCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJhYmxl
KTsKICAgICByZXN1bHQgPSAwOwogICAgIHVuc2lnbmVkIHNoaWZ0ID0gMDsKICAgICBzaXplX3Qg
bGFzdCA9IHN0ZDo6bWluKG1heEJ5dGVMZW5ndGgsIGxlbmd0aCAtIG9mZnNldCkgLSAxOworICAg
IHNpemVfdCBzdGFydCA9IG9mZnNldDsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyB0cnVlOyAr
K2kpIHsKICAgICAgICAgdWludDhfdCBieXRlID0gYnl0ZXNbb2Zmc2V0KytdOwogICAgICAgICBy
ZXN1bHQgfD0gc3RhdGljX2Nhc3Q8VD4oYnl0ZSAmIDB4N2YpIDw8IHNoaWZ0OwogICAgICAgICBz
aGlmdCArPSA3OwogICAgICAgICBpZiAoIShieXRlICYgMHg4MCkpCi0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGkgPT0gbGFzdCkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGlmIChpID09IGxhc3QpIHsKKyAg
ICAgICAgICAgIG9mZnNldCA9IHN0YXJ0OworICAgICAgICAgICAgaWYgKGkgPT0gKG1heEJ5dGVM
ZW5ndGggLSAxKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFt
aW5nRXJyb3I6OkZhdGFsKTsKKyAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChTdHJl
YW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpOworICAgICAgICB9CiAgICAgfQogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHsgfTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLWlubGluZSBib29sIFdBUk5fVU5VU0VEX1JFVFVS
TiBkZWNvZGVJbnQoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCYg
b2Zmc2V0LCBUJiByZXN1bHQpCitpbmxpbmUgUmVzdWx0IFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNv
ZGVJbnQoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCYgb2Zmc2V0
LCBUJiByZXN1bHQpCiB7Ci0gICAgY29uc3Qgc2l6ZV90IG51bUJpdHMgPSBzaXplb2YoVCkgKiBD
SEFSX0JJVDsKLSAgICBjb25zdCBzaXplX3QgbWF4Qnl0ZUxlbmd0aCA9IChudW1CaXRzIC0gMSkg
LyA3ICsgMTsgLy8gbnVtQml0cyAvIDcgcm91bmRpbmcgdXAuCisgICAgY29uc3RleHByIHNpemVf
dCBudW1CaXRzID0gc2l6ZW9mKFQpICogQ0hBUl9CSVQ7CisgICAgY29uc3RleHByIHNpemVfdCBt
YXhCeXRlTGVuZ3RoID0gKG51bUJpdHMgLSAxKSAvIDcgKyAxOyAvLyBudW1CaXRzIC8gNyByb3Vu
ZGluZyB1cC4KICAgICBpZiAobGVuZ3RoIDw9IG9mZnNldCkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJh
YmxlKTsKICAgICByZXN1bHQgPSAwOwogICAgIHVuc2lnbmVkIHNoaWZ0ID0gMDsKICAgICBzaXpl
X3QgbGFzdCA9IHN0ZDo6bWluKG1heEJ5dGVMZW5ndGgsIGxlbmd0aCAtIG9mZnNldCkgLSAxOwog
ICAgIHVpbnQ4X3QgYnl0ZTsKKyAgICBzaXplX3Qgc3RhcnQgPSBvZmZzZXQ7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgdHJ1ZTsgKytpKSB7CiAgICAgICAgIGJ5dGUgPSBieXRlc1tvZmZzZXQr
K107CiAgICAgICAgIHJlc3VsdCB8PSBzdGF0aWNfY2FzdDxUPihieXRlICYgMHg3ZikgPDwgc2hp
ZnQ7CiAgICAgICAgIHNoaWZ0ICs9IDc7CiAgICAgICAgIGlmICghKGJ5dGUgJiAweDgwKSkKICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoaSA9PSBsYXN0KQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgICAgICBpZiAoaSA9PSBsYXN0KSB7CisgICAgICAgICAgICBvZmZzZXQg
PSBzdGFydDsKKyAgICAgICAgICAgIGlmIChpID09IChtYXhCeXRlTGVuZ3RoIC0gMSkpCisgICAg
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCk7
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292
ZXJhYmxlKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIHVzaW5nIFVuc2lnbmVkVCA9IHR5cGVu
YW1lIHN0ZDo6bWFrZV91bnNpZ25lZDxUPjo6dHlwZTsKICAgICBpZiAoc2hpZnQgPCBudW1CaXRz
ICYmIChieXRlICYgMHg0MCkpCiAgICAgICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PFQ+KHN0YXRp
Y19jYXN0PFVuc2lnbmVkVD4ocmVzdWx0KSB8IChzdGF0aWNfY2FzdDxVbnNpZ25lZFQ+KC0xKSA8
PCBzaGlmdCkpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiB7IH07CiB9CiAKLWlubGlu
ZSBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVVSW50MzIoY29uc3QgdWludDhfdCogYnl0
ZXMsIHNpemVfdCBsZW5ndGgsIHNpemVfdCYgb2Zmc2V0LCB1aW50MzJfdCYgcmVzdWx0KQoraW5s
aW5lIFJlc3VsdCBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlVUludDMyKGNvbnN0IHVpbnQ4X3Qq
IGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBzaXplX3QmIG9mZnNldCwgdWludDMyX3QmIHJlc3VsdCkK
IHsKICAgICByZXR1cm4gZGVjb2RlVUludDx1aW50MzJfdD4oYnl0ZXMsIGxlbmd0aCwgb2Zmc2V0
LCByZXN1bHQpOwogfQogCi1pbmxpbmUgYm9vbCBXQVJOX1VOVVNFRF9SRVRVUk4gZGVjb2RlVUlu
dDY0KGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBzaXplX3QmIG9mZnNldCwg
dWludDY0X3QmIHJlc3VsdCkKK2lubGluZSBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29k
ZVVJbnQ2NChjb25zdCB1aW50OF90KiBieXRlcywgc2l6ZV90IGxlbmd0aCwgc2l6ZV90JiBvZmZz
ZXQsIHVpbnQ2NF90JiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIGRlY29kZVVJbnQ8dWludDY0X3Q+
KGJ5dGVzLCBsZW5ndGgsIG9mZnNldCwgcmVzdWx0KTsKIH0KIAotaW5saW5lIGJvb2wgV0FSTl9V
TlVTRURfUkVUVVJOIGRlY29kZUludDMyKGNvbnN0IHVpbnQ4X3QqIGJ5dGVzLCBzaXplX3QgbGVu
Z3RoLCBzaXplX3QmIG9mZnNldCwgaW50MzJfdCYgcmVzdWx0KQoraW5saW5lIFJlc3VsdCBXQVJO
X1VOVVNFRF9SRVRVUk4gZGVjb2RlSW50MzIoY29uc3QgdWludDhfdCogYnl0ZXMsIHNpemVfdCBs
ZW5ndGgsIHNpemVfdCYgb2Zmc2V0LCBpbnQzMl90JiByZXN1bHQpCiB7CiAgICAgcmV0dXJuIGRl
Y29kZUludDxpbnQzMl90PihieXRlcywgbGVuZ3RoLCBvZmZzZXQsIHJlc3VsdCk7CiB9CiAKLWlu
bGluZSBib29sIFdBUk5fVU5VU0VEX1JFVFVSTiBkZWNvZGVJbnQ2NChjb25zdCB1aW50OF90KiBi
eXRlcywgc2l6ZV90IGxlbmd0aCwgc2l6ZV90JiBvZmZzZXQsIGludDY0X3QmIHJlc3VsdCkKK2lu
bGluZSBSZXN1bHQgV0FSTl9VTlVTRURfUkVUVVJOIGRlY29kZUludDY0KGNvbnN0IHVpbnQ4X3Qq
IGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCBzaXplX3QmIG9mZnNldCwgaW50NjRfdCYgcmVzdWx0KQog
ewogICAgIHJldHVybiBkZWNvZGVJbnQ8aW50NjRfdD4oYnl0ZXMsIGxlbmd0aCwgb2Zmc2V0LCBy
ZXN1bHQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU3RyZWFtaW5nRXJyb3IuaCBi
L1NvdXJjZS9XVEYvd3RmL1N0cmVhbWluZ0Vycm9yLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjJlNDJkNmVhMTYy
NTQ0MWJmZGQxMjMwOGY1NmRiMjc0MmZjZTE5MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1N0cmVhbWluZ0Vycm9yLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4uCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV1RGIHsKKworZW51bSBjbGFzcyBTdHJlYW1pbmdFcnJvciA6IHVpbnQ4X3Qg
eyBGYXRhbCwgUmVjb3ZlcmFibGUgfTsKKworfSAvLyBXVEYKKwordXNpbmcgV1RGOjpTdHJlYW1p
bmdFcnJvcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAxNmExNDRmYTZkMDcxYmZjYWZmZjRhMzMwZjRjMWUwZTMyNjBkMjM4Li4yMGRjOTBkNjY3
ZGFmZDcyNDhjN2FiMDVjZThmNTgzMTJhZTI0MWZkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDgtMjEgIFl1
c3VrZSBTdXp1a2kgIDx5dXN1a2VzdXp1a2lAc2xvd3N0YXJ0Lm9yZz4KKworICAgICAgICBMRUJE
ZWNvZGVyIGFuZCBXYXNtOjpQYXJzZXIgc2hvdWxkIGJlIHRvbGVyYW50IGZvciBub3QgZW5vdWdo
IGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
ODc4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTEVCRGVjb2Rlci5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjp0ZXN0VUludDMyTEVCRGVjb2RlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdFVJbnQ2NExFQkRlY29kZSk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjp0ZXN0SW50MzJMRUJEZWNvZGUpOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6dGVzdEludDY0TEVCRGVjb2RlKToKKwogMjAxOC0wOC0yMCAgSm9uYXRoYW4gQmVk
YXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lcjogQWRk
IHdhdGNoT1MgZW50aXRsZW1lbnRzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9MRUJEZWNvZGVyLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xF
QkRlY29kZXIuY3BwCmluZGV4IDIxNDEwODBjNDM2Y2IzNjNlNzg0MjllNWE2MTI3YjQ1ZGI2NjM2
ZjguLmQ4YmI4OTk0ODlmZjE5ZWM4MmRkOTZmYzhkZDVlZTQ1Yzg3MTljZjcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xFQkRlY29kZXIuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xFQkRlY29kZXIuY3BwCkBAIC0yNiwxNyArMjYsMTgg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKIAogI2luY2x1ZGUgPHd0Zi9MRUJEZWNvZGVyLmg+Cisj
aW5jbHVkZSA8d3RmL1N0cmVhbWluZ0Vycm9yLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgog
CiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiAKLXN0YXRpYyB2b2lkIHRlc3RVSW50MzJMRUJE
ZWNvZGUoc3RkOjppbml0aWFsaXplcl9saXN0PHVpbnQ4X3Q+IGRhdGEsIHNpemVfdCBzdGFydE9m
ZnNldCwgYm9vbCBleHBlY3RlZFN0YXR1cywgdWludDMyX3QgZXhwZWN0ZWRSZXN1bHQsIHNpemVf
dCBleHBlY3RlZE9mZnNldCkKK3N0YXRpYyB2b2lkIHRlc3RVSW50MzJMRUJEZWNvZGUoc3RkOjpp
bml0aWFsaXplcl9saXN0PHVpbnQ4X3Q+IGRhdGEsIHNpemVfdCBzdGFydE9mZnNldCwgV1RGOjpM
RUJEZWNvZGVyOjpSZXN1bHQgZXhwZWN0ZWRTdGF0dXMsIHVpbnQzMl90IGV4cGVjdGVkUmVzdWx0
LCBzaXplX3QgZXhwZWN0ZWRPZmZzZXQpCiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZlY3Rvcihk
YXRhKTsKICAgICB1aW50MzJfdCByZXN1bHQ7Ci0gICAgYm9vbCBzdGF0dXMgPSBXVEY6OkxFQkRl
Y29kZXI6OmRlY29kZVVJbnQzMih2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iuc2l6ZSgpLCBzdGFydE9m
ZnNldCwgcmVzdWx0KTsKLSAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cyk7Ci0g
ICAgaWYgKGV4cGVjdGVkU3RhdHVzKSB7CisgICAgYXV0byBzdGF0dXMgPSBXVEY6OkxFQkRlY29k
ZXI6OmRlY29kZVVJbnQzMih2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iuc2l6ZSgpLCBzdGFydE9mZnNl
dCwgcmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRShleHBlY3RlZFN0YXR1cyA9PSBzdGF0dXMpOwor
ICAgIGlmICghIWV4cGVjdGVkU3RhdHVzKSB7CiAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZFJl
c3VsdCwgcmVzdWx0KTsKICAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkT2Zmc2V0LCBzdGFydE9m
ZnNldCk7CiAgICAgfQpAQCAtNDUsNDUgKzQ2LDQ4IEBAIHN0YXRpYyB2b2lkIHRlc3RVSW50MzJM
RUJEZWNvZGUoc3RkOjppbml0aWFsaXplcl9saXN0PHVpbnQ4X3Q+IGRhdGEsIHNpemVfdCBzdGFy
CiBURVNUKFdURiwgTEVCRGVjb2RlclVJbnQzMikKIHsKICAgICAvLyBTaW1wbGUgdGVzdHMgdGhh
dCB1c2UgYWxsIHRoZSBiaXRzIGluIHRoZSBhcnJheQotICAgIHRlc3RVSW50MzJMRUJEZWNvZGUo
eyAweDA3IH0sIDAsIHRydWUsIDB4N2x1LCAxbHUpOwotICAgIHRlc3RVSW50MzJMRUJEZWNvZGUo
eyAweDc3IH0sIDAsIHRydWUsIDB4NzdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2Rl
KHsgMHg4MCwgMHgwNyB9LCAwLCB0cnVlLCAweDM4MGx1LCAybHUpOwotICAgIHRlc3RVSW50MzJM
RUJEZWNvZGUoeyAweDg5LCAweDEyIH0sIDAsIHRydWUsIDB4OTA5bHUsIDJsdSk7Ci0gICAgdGVz
dFVJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4MDIgfSwgMCwgdHJ1ZSwgMHg4MmYzbHUs
IDNsdSk7Ci0gICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQg
fSwgMCwgdHJ1ZSwgMHhlOWZjMmYzbHUsIDRsdSk7Ci0gICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7
IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4N2YgfSwgMCwgdHJ1ZSwgMHhmZTlmYzJmM2x1LCA1
bHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweDA3IH0sIDAsIHsgfSwgMHg3bHUsIDFs
dSk7CisgICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4NzcgfSwgMCwgeyB9LCAweDc3bHUsIDFs
dSk7CisgICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ODAsIDB4MDcgfSwgMCwgeyB9LCAweDM4
MGx1LCAybHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweDg5LCAweDEyIH0sIDAsIHsg
fSwgMHg5MDlsdSwgMmx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMywgMHg4NSwg
MHgwMiB9LCAwLCB7IH0sIDB4ODJmM2x1LCAzbHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUo
eyAweGYzLCAweDg1LCAweGZmLCAweDc0IH0sIDAsIHsgfSwgMHhlOWZjMmYzbHUsIDRsdSk7Cisg
ICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4N2YgfSwg
MCwgeyB9LCAweGZlOWZjMmYzbHUsIDVsdSk7CiAgICAgLy8gVGVzdCB3aXRoIGV4dHJhIHRyYWls
aW5nIG51bWJlcnMKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHgwNywgMHg4MCB9LCAwLCB0
cnVlLCAweDdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHgwNywgMHg3NSB9
LCAwLCB0cnVlLCAweDdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMywg
MHg4NSwgMHhmZiwgMHg3NCwgMHg0MyB9LCAwLCB0cnVlLCAweGU5ZmMyZjNsdSwgNGx1KTsKLSAg
ICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCwgMHg4MCB9LCAw
LCB0cnVlLCAweGU5ZmMyZjNsdSwgNGx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHgw
NywgMHg4MCB9LCAwLCB7IH0sIDB4N2x1LCAxbHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUo
eyAweDA3LCAweDc1IH0sIDAsIHsgfSwgMHg3bHUsIDFsdSk7CisgICAgdGVzdFVJbnQzMkxFQkRl
Y29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQsIDB4NDMgfSwgMCwgeyB9LCAweGU5ZmMyZjNs
dSwgNGx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3
NCwgMHg4MCB9LCAwLCB7IH0sIDB4ZTlmYzJmM2x1LCA0bHUpOwogICAgIC8vIFRlc3Qgd2l0aCBw
cmVjZWVkaW5nIG51bWJlcnMKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMywgMHgwNyB9
LCAxLCB0cnVlLCAweDdsdSwgMmx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHgwMywg
MHgwNyB9LCAxLCB0cnVlLCAweDdsdSwgMmx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsg
MHhmMiwgMHg1MywgMHg0MywgMHg2NywgMHg3OSwgMHg3NyB9LCA1LCB0cnVlLCAweDc3bHUsIDZs
dSk7Ci0gICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4ZjcsIDB4
ODQsIDB4NzcgfSwgNSwgdHJ1ZSwgMHg3N2x1LCA2dWwpOwotICAgIHRlc3RVSW50MzJMRUJEZWNv
ZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGYzLCAweDg1LCAweDAyIH0sIDMsIHRydWUsIDB4ODJm
M2x1LCA2bHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweGYzLCAweDA3IH0sIDEsIHsg
fSwgMHg3bHUsIDJsdSk7CisgICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4MDMsIDB4MDcgfSwg
MSwgeyB9LCAweDdsdSwgMmx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMiwgMHg1
MywgMHg0MywgMHg2NywgMHg3OSwgMHg3NyB9LCA1LCB7IH0sIDB4NzdsdSwgNmx1KTsKKyAgICB0
ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NyB9
LCA1LCB7IH0sIDB4NzdsdSwgNnVsKTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHhmMiwg
MHg1MywgMHg0MywgMHhmMywgMHg4NSwgMHgwMiB9LCAzLCB7IH0sIDB4ODJmM2x1LCA2bHUpOwog
ICAgIC8vIFRlc3QgaW4gdGhlIG1pZGRsZQotICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweGYz
LCAweDA3LCAweDg5IH0sIDEsIHRydWUsIDB4N2x1LCAybHUpOwotICAgIHRlc3RVSW50MzJMRUJE
ZWNvZGUoeyAweDAzLCAweDA3LCAweDIzIH0sIDEsIHRydWUsIDB4N2x1LCAybHUpOwotICAgIHRl
c3RVSW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweDY3LCAweDc5LCAweDc3LCAw
eDQzIH0sIDUsIHRydWUsIDB4NzdsdSwgNmx1KTsKLSAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsg
MHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NywgMHhmOSB9LCA1LCB0cnVlLCAweDc3
bHUsIDZsdSk7Ci0gICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4
ZjMsIDB4ODUsIDB4MDIsIDB4YTQgfSwgMywgdHJ1ZSwgMHg4MmYzbHUsIDZsdSk7CisgICAgdGVz
dFVJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4MDcsIDB4ODkgfSwgMSwgeyB9LCAweDdsdSwgMmx1
KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsgMHgwMywgMHgwNywgMHgyMyB9LCAxLCB7IH0s
IDB4N2x1LCAybHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQz
LCAweDY3LCAweDc5LCAweDc3LCAweDQzIH0sIDUsIHsgfSwgMHg3N2x1LCA2bHUpOworICAgIHRl
c3RVSW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGY3LCAweDg0LCAweDc3LCAw
eGY5IH0sIDUsIHsgfSwgMHg3N2x1LCA2bHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAw
eGYyLCAweDUzLCAweDQzLCAweGYzLCAweDg1LCAweDAyLCAweGE0IH0sIDMsIHsgfSwgMHg4MmYz
bHUsIDZsdSk7CisgICAgLy8gVGVzdCBkZWNvZGUgdG9vIHNob3J0CisgICAgdGVzdFVJbnQzMkxF
QkRlY29kZSh7IDB4ODEgfSwgMCwgbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292
ZXJhYmxlKSwgMHgwbHUsIDBsdSk7CisgICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ODAsIDB4
ODEgfSwgMCwgbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJhYmxlKSwgMHgw
bHUsIDBsdSk7CiAgICAgLy8gVGVzdCBkZWNvZGUgdG9vIGxvbmcKLSAgICB0ZXN0VUludDMyTEVC
RGVjb2RlKHsgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCB9LCAwLCBmYWxzZSwg
MHgwbHUsIDBsdSk7Ci0gICAgdGVzdFVJbnQzMkxFQkRlY29kZSh7IDB4ODAsIDB4ODAsIDB4YWIs
IDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMSwgZmFsc2UsIDB4MGx1LCAwbHUpOwotICAgIHRl
c3RVSW50MzJMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAweGFiLCAweDhhLCAweDlhLCAweGEzLCAw
eGZmIH0sIDAsIGZhbHNlLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVjb2RlKHsg
MHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCB9LCAwLCBtYWtlVW5leHBlY3RlZChT
dHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDMyTEVCRGVj
b2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhmZiB9LCAxLCBtYWtl
VW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0
VUludDMyTEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhm
ZiB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1
KTsKICAgICAvLyBUZXN0IGRlY29kZSBvZmYgZW5kIG9mIGFycmF5Ci0gICAgdGVzdFVJbnQzMkxF
QkRlY29kZSh7IDB4ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMiwg
ZmFsc2UsIDB4MGx1LCAwbHUpOworICAgIHRlc3RVSW50MzJMRUJEZWNvZGUoeyAweDgwLCAweDgw
LCAweGFiLCAweDhhLCAweDlhLCAweGEzLCAweGZmIH0sIDIsIG1ha2VVbmV4cGVjdGVkKFN0cmVh
bWluZ0Vycm9yOjpGYXRhbCksIDB4MGx1LCAwbHUpOwogfQogCi1zdGF0aWMgdm9pZCB0ZXN0VUlu
dDY0TEVCRGVjb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx1aW50OF90PiBkYXRhLCBzaXplX3Qg
c3RhcnRPZmZzZXQsIGJvb2wgZXhwZWN0ZWRTdGF0dXMsIHVpbnQ2NF90IGV4cGVjdGVkUmVzdWx0
LCBzaXplX3QgZXhwZWN0ZWRPZmZzZXQpCitzdGF0aWMgdm9pZCB0ZXN0VUludDY0TEVCRGVjb2Rl
KHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx1aW50OF90PiBkYXRhLCBzaXplX3Qgc3RhcnRPZmZzZXQs
IFdURjo6TEVCRGVjb2Rlcjo6UmVzdWx0IGV4cGVjdGVkU3RhdHVzLCB1aW50NjRfdCBleHBlY3Rl
ZFJlc3VsdCwgc2l6ZV90IGV4cGVjdGVkT2Zmc2V0KQogewogICAgIFZlY3Rvcjx1aW50OF90PiB2
ZWN0b3IoZGF0YSk7CiAgICAgdWludDY0X3QgcmVzdWx0OwotICAgIGJvb2wgc3RhdHVzID0gV1RG
OjpMRUJEZWNvZGVyOjpkZWNvZGVVSW50NjQodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNpemUoKSwg
c3RhcnRPZmZzZXQsIHJlc3VsdCk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVkU3RhdHVzLCBzdGF0
dXMpOwotICAgIGlmIChleHBlY3RlZFN0YXR1cykgeworICAgIGF1dG8gc3RhdHVzID0gV1RGOjpM
RUJEZWNvZGVyOjpkZWNvZGVVSW50NjQodmVjdG9yLmRhdGEoKSwgdmVjdG9yLnNpemUoKSwgc3Rh
cnRPZmZzZXQsIHJlc3VsdCk7CisgICAgRVhQRUNUX1RSVUUoZXhwZWN0ZWRTdGF0dXMgPT0gc3Rh
dHVzKTsKKyAgICBpZiAoISFleHBlY3RlZFN0YXR1cykgewogICAgICAgICBFWFBFQ1RfRVEoZXhw
ZWN0ZWRSZXN1bHQsIHJlc3VsdCk7CiAgICAgICAgIEVYUEVDVF9FUShleHBlY3RlZE9mZnNldCwg
c3RhcnRPZmZzZXQpOwogICAgIH0KQEAgLTkyLDU4ICs5Niw2MCBAQCBzdGF0aWMgdm9pZCB0ZXN0
VUludDY0TEVCRGVjb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx1aW50OF90PiBkYXRhLCBzaXpl
X3Qgc3RhcgogVEVTVChXVEYsIExFQkRlY29kZXJVSW50NjQpCiB7CiAgICAgLy8gU2ltcGxlIHRl
c3RzIHRoYXQgdXNlIGFsbCB0aGUgYml0cyBpbiB0aGUgYXJyYXkKLSAgICB0ZXN0VUludDY0TEVC
RGVjb2RlKHsgMHgwNyB9LCAwLCB0cnVlLCAweDdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDY0TEVC
RGVjb2RlKHsgMHg3NyB9LCAwLCB0cnVlLCAweDc3bHUsIDFsdSk7Ci0gICAgdGVzdFVJbnQ2NExF
QkRlY29kZSh7IDB4ODAsIDB4MDcgfSwgMCwgdHJ1ZSwgMHgzODBsdSwgMmx1KTsKLSAgICB0ZXN0
VUludDY0TEVCRGVjb2RlKHsgMHg4OSwgMHgxMiB9LCAwLCB0cnVlLCAweDkwOWx1LCAybHUpOwot
ICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweDAyIH0sIDAsIHRydWUsIDB4
ODJmM2x1LCAzbHUpOwotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZm
LCAweDc0IH0sIDAsIHRydWUsIDB4ZTlmYzJmM2x1LCA0bHUpOwotICAgIHRlc3RVSW50NjRMRUJE
ZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweDdmIH0sIDAsIHRydWUsIDB4N2ZlOWZj
MmYzbHUsIDVsdSk7Ci0gICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYs
IDB4ZjQsIDB4ZmYsIDB4NGIgfSwgMCwgdHJ1ZSwgMHgyNWZmZTlmYzJmM2x1LCA2bHUpOwotICAg
IHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNi
LCAweDNhIH0sIDAsIHRydWUsIDB4ZWE1ZmZlOWZjMmYzbHUsIDdsdSk7Ci0gICAgdGVzdFVJbnQ2
NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4Y2IsIDB4YmEsIDB4
MGYgfSwgMCwgdHJ1ZSwgMHgxZWVhNWZmZTlmYzJmM2x1LCA4bHUpOwotICAgIHRlc3RVSW50NjRM
RUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNiLCAweGJhLCAweDhm
LCAweDY5IH0sIDAsIHRydWUsIDB4NjkxZWVhNWZmZTlmYzJmM2x1LCA5bHUpOwotICAgIHRlc3RV
SW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNiLCAweGJh
LCAweDhmLCAweGU5LCAweDAxIH0sIDAsIHRydWUsIDB4ZTkxZWVhNWZmZTlmYzJmM2x1LCAxMGx1
KTsKLSAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHhmNCwgMHhm
ZiwgMHhjYiwgMHhiYSwgMHg4ZiwgMHhlOSwgMHg3MCB9LCAwLCB0cnVlLCAweDY5MWVlYTVmZmU5
ZmMyZjNsdSwgMTBsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4MDcgfSwgMCwgeyB9
LCAweDdsdSwgMWx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg3NyB9LCAwLCB7IH0s
IDB4NzdsdSwgMWx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHgwNyB9LCAw
LCB7IH0sIDB4MzgwbHUsIDJsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ODksIDB4
MTIgfSwgMCwgeyB9LCAweDkwOWx1LCAybHUpOworICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAw
eGYzLCAweDg1LCAweDAyIH0sIDAsIHsgfSwgMHg4MmYzbHUsIDNsdSk7CisgICAgdGVzdFVJbnQ2
NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQgfSwgMCwgeyB9LCAweGU5ZmMyZjNs
dSwgNGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHhm
NCwgMHg3ZiB9LCAwLCB7IH0sIDB4N2ZlOWZjMmYzbHUsIDVsdSk7CisgICAgdGVzdFVJbnQ2NExF
QkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4NGIgfSwgMCwgeyB9LCAw
eDI1ZmZlOWZjMmYzbHUsIDZsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4
ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4Y2IsIDB4M2EgfSwgMCwgeyB9LCAweGVhNWZmZTlmYzJm
M2x1LCA3bHUpOworICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAw
eGY0LCAweGZmLCAweGNiLCAweGJhLCAweDBmIH0sIDAsIHsgfSwgMHgxZWVhNWZmZTlmYzJmM2x1
LCA4bHUpOworICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0
LCAweGZmLCAweGNiLCAweGJhLCAweDhmLCAweDY5IH0sIDAsIHsgfSwgMHg2OTFlZWE1ZmZlOWZj
MmYzbHUsIDlsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYs
IDB4ZjQsIDB4ZmYsIDB4Y2IsIDB4YmEsIDB4OGYsIDB4ZTksIDB4MDEgfSwgMCwgeyB9LCAweGU5
MWVlYTVmZmU5ZmMyZjNsdSwgMTBsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjMs
IDB4ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4Y2IsIDB4YmEsIDB4OGYsIDB4ZTksIDB4NzAgfSwg
MCwgeyB9LCAweDY5MWVlYTVmZmU5ZmMyZjNsdSwgMTBsdSk7CiAgICAgLy8gVGVzdCB3aXRoIGV4
dHJhIHRyYWlsaW5nIG51bWJlcnMKLSAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHgwNywgMHg4
MCB9LCAwLCB0cnVlLCAweDdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHgw
NywgMHg3NSB9LCAwLCB0cnVlLCAweDdsdSwgMWx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVjb2Rl
KHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCwgMHg0MyB9LCAwLCB0cnVlLCAweGU5ZmMyZjNsdSwg
NGx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCwg
MHg4MCB9LCAwLCB0cnVlLCAweGU5ZmMyZjNsdSwgNGx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVj
b2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHhmNCwgMHhmZiwgMHhjYiwgMHhiYSwgMHg4ZiwgMHg2
OSwgMHg0NSB9LCAwLCB0cnVlLCAweDY5MWVlYTVmZmU5ZmMyZjNsdSwgOWx1KTsKKyAgICB0ZXN0
VUludDY0TEVCRGVjb2RlKHsgMHgwNywgMHg4MCB9LCAwLCB7IH0sIDB4N2x1LCAxbHUpOworICAg
IHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweDA3LCAweDc1IH0sIDAsIHsgfSwgMHg3bHUsIDFsdSk7
CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQsIDB4NDMg
fSwgMCwgeyB9LCAweGU5ZmMyZjNsdSwgNGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsg
MHhmMywgMHg4NSwgMHhmZiwgMHg3NCwgMHg4MCB9LCAwLCB7IH0sIDB4ZTlmYzJmM2x1LCA0bHUp
OworICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZm
LCAweGNiLCAweGJhLCAweDhmLCAweDY5LCAweDQ1IH0sIDAsIHsgfSwgMHg2OTFlZWE1ZmZlOWZj
MmYzbHUsIDlsdSk7CiAgICAgLy8gVGVzdCB3aXRoIHByZWNlZWRpbmcgbnVtYmVycwotICAgIHRl
c3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDA3IH0sIDEsIHRydWUsIDB4N2x1LCAybHUpOwot
ICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweDAzLCAweDA3IH0sIDEsIHRydWUsIDB4N2x1LCAy
bHUpOwotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweDY3LCAw
eDc5LCAweDc3IH0sIDUsIHRydWUsIDB4NzdsdSwgNmx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVj
b2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NyB9LCA1LCB0cnVlLCAweDc3
bHUsIDZ1bCk7Ci0gICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4
ZjMsIDB4ODUsIDB4MDIgfSwgMywgdHJ1ZSwgMHg4MmYzbHUsIDZsdSk7Ci0gICAgdGVzdFVJbnQ2
NExFQkRlY29kZSh7IDB4OTIsIDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4Y2IsIDB4
YmEsIDB4OGYsIDB4NjkgfSwgMSwgdHJ1ZSwgMHg2OTFlZWE1ZmZlOWZjMmYzbHUsIDEwbHUpOwor
ICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDA3IH0sIDEsIHsgfSwgMHg3bHUsIDJs
dSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4MDMsIDB4MDcgfSwgMSwgeyB9LCAweDds
dSwgMmx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHg2
NywgMHg3OSwgMHg3NyB9LCA1LCB7IH0sIDB4NzdsdSwgNmx1KTsKKyAgICB0ZXN0VUludDY0TEVC
RGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NyB9LCA1LCB7IH0sIDB4
NzdsdSwgNnVsKTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0Mywg
MHhmMywgMHg4NSwgMHgwMiB9LCAzLCB7IH0sIDB4ODJmM2x1LCA2bHUpOworICAgIHRlc3RVSW50
NjRMRUJEZWNvZGUoeyAweDkyLCAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNiLCAw
eGJhLCAweDhmLCAweDY5IH0sIDEsIHsgfSwgMHg2OTFlZWE1ZmZlOWZjMmYzbHUsIDEwbHUpOwog
ICAgIC8vIFRlc3QgaW4gdGhlIG1pZGRsZQotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYz
LCAweDA3LCAweDg5IH0sIDEsIHRydWUsIDB4N2x1LCAybHUpOwotICAgIHRlc3RVSW50NjRMRUJE
ZWNvZGUoeyAweDAzLCAweDA3LCAweDIzIH0sIDEsIHRydWUsIDB4N2x1LCAybHUpOwotICAgIHRl
c3RVSW50NjRMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweDY3LCAweDc5LCAweDc3LCAw
eDQzIH0sIDUsIHRydWUsIDB4NzdsdSwgNmx1KTsKLSAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsg
MHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NywgMHhmOSB9LCA1LCB0cnVlLCAweDc3
bHUsIDZsdSk7Ci0gICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4
ZjMsIDB4ODUsIDB4MDIsIDB4YTQgfSwgMywgdHJ1ZSwgMHg4MmYzbHUsIDZsdSk7Ci0gICAgdGVz
dFVJbnQ2NExFQkRlY29kZSh7IDB4OTIsIDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4ZmYsIDB4
Y2IsIDB4YmEsIDB4OGYsIDB4NjksIDB4ODUsIDB4NzUgfSwgMSwgdHJ1ZSwgMHg2OTFlZWE1ZmZl
OWZjMmYzbHUsIDEwbHUpOwotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweDkyLCAweDY1LCAw
eGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNiLCAweGJhLCAweDhmLCAweDY5LCAweDg1
LCAweDc1IH0sIDIsIHRydWUsIDB4NjkxZWVhNWZmZTlmYzJmM2x1LCAxMWx1KTsKKyAgICB0ZXN0
VUludDY0TEVCRGVjb2RlKHsgMHhmMywgMHgwNywgMHg4OSB9LCAxLCB7IH0sIDB4N2x1LCAybHUp
OworICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweDAzLCAweDA3LCAweDIzIH0sIDEsIHsgfSwg
MHg3bHUsIDJsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMs
IDB4NjcsIDB4NzksIDB4NzcsIDB4NDMgfSwgNSwgeyB9LCAweDc3bHUsIDZsdSk7CisgICAgdGVz
dFVJbnQ2NExFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4ZjcsIDB4ODQsIDB4NzcsIDB4
ZjkgfSwgNSwgeyB9LCAweDc3bHUsIDZsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4
ZjIsIDB4NTMsIDB4NDMsIDB4ZjMsIDB4ODUsIDB4MDIsIDB4YTQgfSwgMywgeyB9LCAweDgyZjNs
dSwgNmx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg5MiwgMHhmMywgMHg4NSwgMHhm
ZiwgMHhmNCwgMHhmZiwgMHhjYiwgMHhiYSwgMHg4ZiwgMHg2OSwgMHg4NSwgMHg3NSB9LCAxLCB7
IH0sIDB4NjkxZWVhNWZmZTlmYzJmM2x1LCAxMGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2Rl
KHsgMHg5MiwgMHg2NSwgMHhmMywgMHg4NSwgMHhmZiwgMHhmNCwgMHhmZiwgMHhjYiwgMHhiYSwg
MHg4ZiwgMHg2OSwgMHg4NSwgMHg3NSB9LCAyLCB7IH0sIDB4NjkxZWVhNWZmZTlmYzJmM2x1LCAx
MWx1KTsKKyAgICAvLyBUZXN0IGRlY29kZSB0b28gc2hvcnQKKyAgICB0ZXN0VUludDY0TEVCRGVj
b2RlKHsgMHg4MCB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFi
bGUpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4MSB9
LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpLCAweDBsdSwg
MGx1KTsKICAgICAvLyBUZXN0IGRlY29kZSB0b28gbG9uZwotICAgIHRlc3RVSW50NjRMRUJEZWNv
ZGUoeyAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgw
LCAweDgwLCAweDgwIH0sIDAsIGZhbHNlLCAweDBsdSwgMGx1KTsKLSAgICB0ZXN0VUludDY0TEVC
RGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhhMywgMHg5Ziwg
MHhkMiwgMHhlZiwgMHg4YSwgMHg0ZSB9LCAxLCBmYWxzZSwgMHgwbHUsIDBsdSk7Ci0gICAgdGVz
dFVJbnQ2NExFQkRlY29kZSh7IDB4ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4
ZmYsIDB4ZWYsIDB4ZDgsIDB4ZWUsIDB4YWEsIDB4YmIgfSwgMCwgZmFsc2UsIDB4MGx1LCAwbHUp
OwotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweGZm
LCAweGNiLCAweGJhLCAweDhmLCAweGE5LCAweGE4LCAweDA1IH0sIDAsIGZhbHNlLCAweDBsdSwg
MGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwg
MHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCwgMHg4MCB9LCAwLCBtYWtlVW5leHBl
Y3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDY0
TEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhhMywgMHg5
ZiwgMHhkMiwgMHhlZiwgMHg4YSwgMHg0ZSB9LCAxLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdF
cnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHg4
MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhmZiwgMHhlZiwgMHhkOCwgMHhlZSwg
MHhhYSwgMHhiYiB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAw
eDBsdSwgMGx1KTsKKyAgICB0ZXN0VUludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwg
MHhmNCwgMHhmZiwgMHhjYiwgMHhiYSwgMHg4ZiwgMHhhOSwgMHhhOCwgMHgwNSB9LCAwLCBtYWtl
VW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBsdSwgMGx1KTsKICAgICAvLyBU
ZXN0IGRlY29kZSBvZmYgZW5kIG9mIGFycmF5Ci0gICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4
ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMiwgZmFsc2UsIDB4MGx1
LCAwbHUpOwotICAgIHRlc3RVSW50NjRMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAweGFiLCAweDhh
LCAweDlhLCAweGEzLCAweGZmIH0sIDIsIGZhbHNlLCAweDBsdSwgMGx1KTsKLSAgICB0ZXN0VUlu
dDY0TEVCRGVjb2RlKHsgMHg5MiwgMHhmMywgMHg4NSwgMHhmZiwgMHhmNCwgMHhmZiwgMHhjYiwg
MHhiYSwgMHg4ZiB9LCAxLCBmYWxzZSwgMHgwbHUsIDBsdSk7CisgICAgdGVzdFVJbnQ2NExFQkRl
Y29kZSh7IDB4ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMiwgbWFr
ZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OlJlY292ZXJhYmxlKSwgMHgwbHUsIDBsdSk7Cisg
ICAgdGVzdFVJbnQ2NExFQkRlY29kZSh7IDB4OTIsIDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4
ZmYsIDB4Y2IsIDB4YmEsIDB4OGYgfSwgMSwgbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6
OlJlY292ZXJhYmxlKSwgMHgwbHUsIDBsdSk7CiB9CiAKLXN0YXRpYyB2b2lkIHRlc3RJbnQzMkxF
QkRlY29kZShzdGQ6OmluaXRpYWxpemVyX2xpc3Q8dWludDhfdD4gZGF0YSwgc2l6ZV90IHN0YXJ0
T2Zmc2V0LCBib29sIGV4cGVjdGVkU3RhdHVzLCBpbnQzMl90IGV4cGVjdGVkUmVzdWx0LCBzaXpl
X3QgZXhwZWN0ZWRPZmZzZXQpCitzdGF0aWMgdm9pZCB0ZXN0SW50MzJMRUJEZWNvZGUoc3RkOjpp
bml0aWFsaXplcl9saXN0PHVpbnQ4X3Q+IGRhdGEsIHNpemVfdCBzdGFydE9mZnNldCwgV1RGOjpM
RUJEZWNvZGVyOjpSZXN1bHQgZXhwZWN0ZWRTdGF0dXMsIGludDMyX3QgZXhwZWN0ZWRSZXN1bHQs
IHNpemVfdCBleHBlY3RlZE9mZnNldCkKIHsKICAgICBWZWN0b3I8dWludDhfdD4gdmVjdG9yKGRh
dGEpOwogICAgIGludDMyX3QgcmVzdWx0OwotICAgIGJvb2wgc3RhdHVzID0gV1RGOjpMRUJEZWNv
ZGVyOjpkZWNvZGVJbnQzMih2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iuc2l6ZSgpLCBzdGFydE9mZnNl
dCwgcmVzdWx0KTsKLSAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRTdGF0dXMsIHN0YXR1cyk7Ci0gICAg
aWYgKGV4cGVjdGVkU3RhdHVzKSB7CisgICAgYXV0byBzdGF0dXMgPSBXVEY6OkxFQkRlY29kZXI6
OmRlY29kZUludDMyKHZlY3Rvci5kYXRhKCksIHZlY3Rvci5zaXplKCksIHN0YXJ0T2Zmc2V0LCBy
ZXN1bHQpOworICAgIEVYUEVDVF9UUlVFKGV4cGVjdGVkU3RhdHVzID09IHN0YXR1cyk7CisgICAg
aWYgKCEhZXhwZWN0ZWRTdGF0dXMpIHsKICAgICAgICAgRVhQRUNUX0VRKGV4cGVjdGVkUmVzdWx0
LCByZXN1bHQpOwogICAgICAgICBFWFBFQ1RfRVEoZXhwZWN0ZWRPZmZzZXQsIHN0YXJ0T2Zmc2V0
KTsKICAgICB9CkBAIC0xNTIsNDUgKzE1OCw0OCBAQCBzdGF0aWMgdm9pZCB0ZXN0SW50MzJMRUJE
ZWNvZGUoc3RkOjppbml0aWFsaXplcl9saXN0PHVpbnQ4X3Q+IGRhdGEsIHNpemVfdCBzdGFydAog
VEVTVChXVEYsIExFQkRlY29kZXJJbnQzMikKIHsKICAgICAvLyBTaW1wbGUgdGVzdHMgdGhhdCB1
c2UgYWxsIHRoZSBiaXRzIGluIHRoZSBhcnJheQotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4
MDcgfSwgMCwgdHJ1ZSwgMHg3LCAxbHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4Nzcg
fSwgMCwgdHJ1ZSwgLTB4OSwgMWx1KTsKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDgwLCAw
eDA3IH0sIDAsIHRydWUsIDB4MzgwLCAybHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4
ODksIDB4MTIgfSwgMCwgdHJ1ZSwgMHg5MDksIDJsdSk7Ci0gICAgdGVzdEludDMyTEVCRGVjb2Rl
KHsgMHhmMywgMHg4NSwgMHgwMiB9LCAwLCB0cnVlLCAweDgyZjMsIDNsdSk7Ci0gICAgdGVzdElu
dDMyTEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCB9LCAwLCB0cnVlLCAweGZlOWZj
MmYzLCA0bHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4
ZjQsIDB4N2YgfSwgMCwgdHJ1ZSwgMHhmZTlmYzJmMywgNWx1KTsKKyAgICB0ZXN0SW50MzJMRUJE
ZWNvZGUoeyAweDA3IH0sIDAsIHsgfSwgMHg3LCAxbHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29k
ZSh7IDB4NzcgfSwgMCwgeyB9LCAtMHg5LCAxbHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7
IDB4ODAsIDB4MDcgfSwgMCwgeyB9LCAweDM4MCwgMmx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNv
ZGUoeyAweDg5LCAweDEyIH0sIDAsIHsgfSwgMHg5MDksIDJsdSk7CisgICAgdGVzdEludDMyTEVC
RGVjb2RlKHsgMHhmMywgMHg4NSwgMHgwMiB9LCAwLCB7IH0sIDB4ODJmMywgM2x1KTsKKyAgICB0
ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweDc0IH0sIDAsIHsgfSwgMHhm
ZTlmYzJmMywgNGx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZm
LCAweGY0LCAweDdmIH0sIDAsIHsgfSwgMHhmZTlmYzJmMywgNWx1KTsKICAgICAvLyBUZXN0IHdp
dGggZXh0cmEgdHJhaWxpbmcgbnVtYmVycwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4MDcs
IDB4ODAgfSwgMCwgdHJ1ZSwgMHg3LCAxbHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4
MDcsIDB4NzUgfSwgMCwgdHJ1ZSwgMHg3LCAxbHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7
IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQsIDB4NDMgfSwgMCwgdHJ1ZSwgMHhmZTlmYzJmMywgNGx1
KTsKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweDc0LCAweDgw
IH0sIDAsIHRydWUsIDB4ZmU5ZmMyZjMsIDRsdSk7CisgICAgdGVzdEludDMyTEVCRGVjb2RlKHsg
MHgwNywgMHg4MCB9LCAwLCB7IH0sIDB4NywgMWx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUo
eyAweDA3LCAweDc1IH0sIDAsIHsgfSwgMHg3LCAxbHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29k
ZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQsIDB4NDMgfSwgMCwgeyB9LCAweGZlOWZjMmYzLCA0
bHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4NzQsIDB4
ODAgfSwgMCwgeyB9LCAweGZlOWZjMmYzLCA0bHUpOwogICAgIC8vIFRlc3Qgd2l0aCBwcmVjZWVk
aW5nIG51bWJlcnMKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYzLCAweDA3IH0sIDEsIHRy
dWUsIDB4NywgMmx1KTsKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDAzLCAweDA3IH0sIDEs
IHRydWUsIDB4NywgMmx1KTsKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAw
eDQzLCAweDY3LCAweDc5LCAweDc3IH0sIDUsIHRydWUsIC0weDksIDZsdSk7Ci0gICAgdGVzdElu
dDMyTEVCRGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmNywgMHg4NCwgMHg3NyB9LCA1LCB0
cnVlLCAtMHg5LCA2bHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4
NDMsIDB4ZjMsIDB4ODUsIDB4MDIgfSwgMywgdHJ1ZSwgMHg4MmYzLCA2bHUpOworICAgIHRlc3RJ
bnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4MDcgfSwgMSwgeyB9LCAweDcsIDJsdSk7CisgICAgdGVz
dEludDMyTEVCRGVjb2RlKHsgMHgwMywgMHgwNyB9LCAxLCB7IH0sIDB4NywgMmx1KTsKKyAgICB0
ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweDY3LCAweDc5LCAweDc3IH0s
IDUsIHsgfSwgLTB4OSwgNmx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUz
LCAweDQzLCAweGY3LCAweDg0LCAweDc3IH0sIDUsIHsgfSwgLTB4OSwgNmx1KTsKKyAgICB0ZXN0
SW50MzJMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGYzLCAweDg1LCAweDAyIH0sIDMs
IHsgfSwgMHg4MmYzLCA2bHUpOwogICAgIC8vIFRlc3QgaW4gdGhlIG1pZGRsZQotICAgIHRlc3RJ
bnQzMkxFQkRlY29kZSh7IDB4ZjMsIDB4MDcsIDB4ODkgfSwgMSwgdHJ1ZSwgMHg3LCAybHUpOwot
ICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4MDMsIDB4MDcsIDB4MjMgfSwgMSwgdHJ1ZSwgMHg3
LCAybHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4Njcs
IDB4NzksIDB4NzcsIDB4NDMgfSwgNSwgdHJ1ZSwgLTB4OSwgNmx1KTsKLSAgICB0ZXN0SW50MzJM
RUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGY3LCAweDg0LCAweDc3LCAweGY5IH0sIDUs
IHRydWUsIC0weDksIDZsdSk7Ci0gICAgdGVzdEludDMyTEVCRGVjb2RlKHsgMHhmMiwgMHg1Mywg
MHg0MywgMHhmMywgMHg4NSwgMHgwMiwgMHhhNCB9LCAzLCB0cnVlLCAweDgyZjMsIDZsdSk7Cisg
ICAgdGVzdEludDMyTEVCRGVjb2RlKHsgMHhmMywgMHgwNywgMHg4OSB9LCAxLCB7IH0sIDB4Nywg
Mmx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDAzLCAweDA3LCAweDIzIH0sIDEsIHsg
fSwgMHg3LCAybHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMs
IDB4NjcsIDB4NzksIDB4NzcsIDB4NDMgfSwgNSwgeyB9LCAtMHg5LCA2bHUpOworICAgIHRlc3RJ
bnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4ZjcsIDB4ODQsIDB4NzcsIDB4Zjkg
fSwgNSwgeyB9LCAtMHg5LCA2bHUpOworICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4ZjIsIDB4
NTMsIDB4NDMsIDB4ZjMsIDB4ODUsIDB4MDIsIDB4YTQgfSwgMywgeyB9LCAweDgyZjMsIDZsdSk7
CisgICAgLy8gVGVzdCBkZWNvZGUgdG9vIHNob3J0CisgICAgdGVzdEludDMyTEVCRGVjb2RlKHsg
MHg4MCB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpLCAw
eDAsIDBsdSk7CisgICAgdGVzdEludDMyTEVCRGVjb2RlKHsgMHg4MCwgMHg4MSB9LCAwLCBtYWtl
VW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpLCAweDAsIDBsdSk7CiAgICAg
Ly8gVGVzdCBkZWNvZGUgdG9vIGxvbmcKLSAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDgwLCAw
eDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwIH0sIDAsIGZhbHNlLCAweDAsIDBsdSk7Ci0gICAg
dGVzdEludDMyTEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywg
MHhmZiB9LCAxLCBmYWxzZSwgMHgwLCAwbHUpOwotICAgIHRlc3RJbnQzMkxFQkRlY29kZSh7IDB4
ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMCwgZmFsc2UsIDB4MCwg
MGx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAweDgwLCAweDgwLCAw
eDgwLCAweDgwIH0sIDAsIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCksIDB4
MCwgMGx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAweGFiLCAweDhh
LCAweDlhLCAweGEzLCAweGZmIH0sIDEsIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpG
YXRhbCksIDB4MCwgMGx1KTsKKyAgICB0ZXN0SW50MzJMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAw
eGFiLCAweDhhLCAweDlhLCAweGEzLCAweGZmIH0sIDAsIG1ha2VVbmV4cGVjdGVkKFN0cmVhbWlu
Z0Vycm9yOjpGYXRhbCksIDB4MCwgMGx1KTsKICAgICAvLyBUZXN0IGRlY29kZSBvZmYgZW5kIG9m
IGFycmF5Ci0gICAgdGVzdEludDMyTEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwg
MHg5YSwgMHhhMywgMHhmZiB9LCAyLCBmYWxzZSwgMHgwLCAwbHUpOworICAgIHRlc3RJbnQzMkxF
QkRlY29kZSh7IDB4ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMiwg
bWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJyb3I6OkZhdGFsKSwgMHgwLCAwbHUpOwogfQogCi1z
dGF0aWMgdm9pZCB0ZXN0SW50NjRMRUJEZWNvZGUoc3RkOjppbml0aWFsaXplcl9saXN0PHVpbnQ4
X3Q+IGRhdGEsIHNpemVfdCBzdGFydE9mZnNldCwgYm9vbCBleHBlY3RlZFN0YXR1cywgaW50NjRf
dCBleHBlY3RlZFJlc3VsdCwgc2l6ZV90IGV4cGVjdGVkT2Zmc2V0KQorc3RhdGljIHZvaWQgdGVz
dEludDY0TEVCRGVjb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx1aW50OF90PiBkYXRhLCBzaXpl
X3Qgc3RhcnRPZmZzZXQsIFdURjo6TEVCRGVjb2Rlcjo6UmVzdWx0IGV4cGVjdGVkU3RhdHVzLCBp
bnQ2NF90IGV4cGVjdGVkUmVzdWx0LCBzaXplX3QgZXhwZWN0ZWRPZmZzZXQpCiB7CiAgICAgVmVj
dG9yPHVpbnQ4X3Q+IHZlY3RvcihkYXRhKTsKICAgICBpbnQ2NF90IHJlc3VsdDsKLSAgICBib29s
IHN0YXR1cyA9IFdURjo6TEVCRGVjb2Rlcjo6ZGVjb2RlSW50NjQodmVjdG9yLmRhdGEoKSwgdmVj
dG9yLnNpemUoKSwgc3RhcnRPZmZzZXQsIHJlc3VsdCk7Ci0gICAgRVhQRUNUX0VRKGV4cGVjdGVk
U3RhdHVzLCBzdGF0dXMpOwotICAgIGlmIChleHBlY3RlZFN0YXR1cykgeworICAgIGF1dG8gc3Rh
dHVzID0gV1RGOjpMRUJEZWNvZGVyOjpkZWNvZGVJbnQ2NCh2ZWN0b3IuZGF0YSgpLCB2ZWN0b3Iu
c2l6ZSgpLCBzdGFydE9mZnNldCwgcmVzdWx0KTsKKyAgICBFWFBFQ1RfVFJVRShleHBlY3RlZFN0
YXR1cyA9PSBzdGF0dXMpOworICAgIGlmICghIWV4cGVjdGVkU3RhdHVzKSB7CiAgICAgICAgIEVY
UEVDVF9FUShleHBlY3RlZFJlc3VsdCwgcmVzdWx0KTsKICAgICAgICAgRVhQRUNUX0VRKGV4cGVj
dGVkT2Zmc2V0LCBzdGFydE9mZnNldCk7CiAgICAgfQpAQCAtMTk5LDQyICsyMDgsNTAgQEAgc3Rh
dGljIHZvaWQgdGVzdEludDY0TEVCRGVjb2RlKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDx1aW50OF90
PiBkYXRhLCBzaXplX3Qgc3RhcnQKIFRFU1QoV1RGLCBMRUJEZWNvZGVySW50NjQpCiB7CiAgICAg
Ly8gU2ltcGxlIHRlc3RzIHRoYXQgdXNlIGFsbCB0aGUgYml0cyBpbiB0aGUgYXJyYXkKLSAgICB0
ZXN0SW50NjRMRUJEZWNvZGUoeyAweDA3IH0sIDAsIHRydWUsIDB4NywgMWx1KTsKLSAgICB0ZXN0
SW50NjRMRUJEZWNvZGUoeyAweDc3IH0sIDAsIHRydWUsIC0weDksIDFsdSk7Ci0gICAgdGVzdElu
dDY0TEVCRGVjb2RlKHsgMHg4MCwgMHgwNyB9LCAwLCB0cnVlLCAweDM4MCwgMmx1KTsKLSAgICB0
ZXN0SW50NjRMRUJEZWNvZGUoeyAweDg5LCAweDEyIH0sIDAsIHRydWUsIDB4OTA5LCAybHUpOwot
ICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4MDIgfSwgMCwgdHJ1ZSwgMHg4
MmYzLCAzbHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4
NzQgfSwgMCwgdHJ1ZSwgMHhmZmZmZmZmZmZlOWZjMmYzLCA0bHUpOwotICAgIHRlc3RJbnQ2NExF
QkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQsIDB4N2YgfSwgMCwgdHJ1ZSwgMHhmZmZm
ZmZmZmZlOWZjMmYzLCA1bHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUs
IDB4ZmYsIDB4ZjQsIDB4M2YgfSwgMCwgdHJ1ZSwgMHgzZmU5ZmMyZjMsIDVsdSk7Ci0gICAgdGVz
dEludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHhmNCwgMHg4ZiwgMHgxYSB9LCAw
LCB0cnVlLCAweGQwZmU5ZmMyZjMsIDZsdSk7Ci0gICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhm
MywgMHg4NSwgMHhmZiwgMHhmNCwgMHg4ZiwgMHg5YSwgMHg4MCwgMHgyYSB9LCAwLCB0cnVlLCAw
eDU0MDBkMGZlOWZjMmYzLCA4bHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4
ODUsIDB4ZmYsIDB4ZjQsIDB4OGYsIDB4OWEsIDB4ODAsIDB4YWEsIDB4NDEgfSwgMCwgdHJ1ZSwg
MHhjMTU0MDBkMGZlOWZjMmYzLCA5bHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMs
IDB4ODUsIDB4ZmYsIDB4ZjQsIDB4OGYsIDB4OWEsIDB4ODAsIDB4YWEsIDB4YzEsIDB4MDEgfSwg
MCwgdHJ1ZSwgMHhjMTU0MDBkMGZlOWZjMmYzLCAxMGx1KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNv
ZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweDhmLCAweDlhLCAweDgwLCAweGFhLCAweGMx
LCAweDYyIH0sIDAsIHRydWUsIDB4NDE1NDAwZDBmZTlmYzJmMywgMTBsdSk7CisgICAgdGVzdElu
dDY0TEVCRGVjb2RlKHsgMHgwNyB9LCAwLCB7IH0sIDB4NywgMWx1KTsKKyAgICB0ZXN0SW50NjRM
RUJEZWNvZGUoeyAweDc3IH0sIDAsIHsgfSwgLTB4OSwgMWx1KTsKKyAgICB0ZXN0SW50NjRMRUJE
ZWNvZGUoeyAweDgwLCAweDA3IH0sIDAsIHsgfSwgMHgzODAsIDJsdSk7CisgICAgdGVzdEludDY0
TEVCRGVjb2RlKHsgMHg4OSwgMHgxMiB9LCAwLCB7IH0sIDB4OTA5LCAybHUpOworICAgIHRlc3RJ
bnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4MDIgfSwgMCwgeyB9LCAweDgyZjMsIDNsdSk7
CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCB9LCAwLCB7
IH0sIDB4ZmZmZmZmZmZmZTlmYzJmMywgNGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAw
eGYzLCAweDg1LCAweGZmLCAweGY0LCAweDdmIH0sIDAsIHsgfSwgMHhmZmZmZmZmZmZlOWZjMmYz
LCA1bHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQs
IDB4M2YgfSwgMCwgeyB9LCAweDNmZTlmYzJmMywgNWx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNv
ZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0LCAweDhmLCAweDFhIH0sIDAsIHsgfSwgMHhkMGZl
OWZjMmYzLCA2bHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYs
IDB4ZjQsIDB4OGYsIDB4OWEsIDB4ODAsIDB4MmEgfSwgMCwgeyB9LCAweDU0MDBkMGZlOWZjMmYz
LCA4bHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4ODUsIDB4ZmYsIDB4ZjQs
IDB4OGYsIDB4OWEsIDB4ODAsIDB4YWEsIDB4NDEgfSwgMCwgeyB9LCAweGMxNTQwMGQwZmU5ZmMy
ZjMsIDlsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHhm
NCwgMHg4ZiwgMHg5YSwgMHg4MCwgMHhhYSwgMHhjMSwgMHgwMSB9LCAwLCB7IH0sIDB4YzE1NDAw
ZDBmZTlmYzJmMywgMTBsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhmMywgMHg4NSwg
MHhmZiwgMHhmNCwgMHg4ZiwgMHg5YSwgMHg4MCwgMHhhYSwgMHhjMSwgMHg2MiB9LCAwLCB7IH0s
IDB4NDE1NDAwZDBmZTlmYzJmMywgMTBsdSk7CiAgICAgLy8gVGVzdCB3aXRoIGV4dHJhIHRyYWls
aW5nIG51bWJlcnMKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDA3LCAweDgwIH0sIDAsIHRy
dWUsIDB4NywgMWx1KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDA3LCAweDc1IH0sIDAs
IHRydWUsIDB4NywgMWx1KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAw
eGZmLCAweDc0LCAweDQzIH0sIDAsIHRydWUsIDB4ZmZmZmZmZmZmZTlmYzJmMywgNGx1KTsKLSAg
ICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweDc0LCAweDgwIH0sIDAs
IHRydWUsIDB4ZmZmZmZmZmZmZTlmYzJmMywgNGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUo
eyAweDA3LCAweDgwIH0sIDAsIHsgfSwgMHg3LCAxbHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29k
ZSh7IDB4MDcsIDB4NzUgfSwgMCwgeyB9LCAweDcsIDFsdSk7CisgICAgdGVzdEludDY0TEVCRGVj
b2RlKHsgMHhmMywgMHg4NSwgMHhmZiwgMHg3NCwgMHg0MyB9LCAwLCB7IH0sIDB4ZmZmZmZmZmZm
ZTlmYzJmMywgNGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZm
LCAweDc0LCAweDgwIH0sIDAsIHsgfSwgMHhmZmZmZmZmZmZlOWZjMmYzLCA0bHUpOwogICAgIC8v
IFRlc3Qgd2l0aCBwcmVjZWVkaW5nIG51bWJlcnMKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAw
eGYzLCAweDA3IH0sIDEsIHRydWUsIDB4NywgMmx1KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUo
eyAweDAzLCAweDA3IH0sIDEsIHRydWUsIDB4NywgMmx1KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNv
ZGUoeyAweGYyLCAweDUzLCAweDQzLCAweDY3LCAweDc5LCAweDc3IH0sIDUsIHRydWUsIC0weDks
IDZsdSk7Ci0gICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmNywg
MHg4NCwgMHg3NyB9LCA1LCB0cnVlLCAtMHg5LCA2bHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29k
ZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4ZjMsIDB4ODUsIDB4MDIgfSwgMywgdHJ1ZSwgMHg4MmYz
LCA2bHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4MDcgfSwgMSwgeyB9LCAw
eDcsIDJsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHgwMywgMHgwNyB9LCAxLCB7IH0s
IDB4NywgMmx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAw
eDY3LCAweDc5LCAweDc3IH0sIDUsIHsgfSwgLTB4OSwgNmx1KTsKKyAgICB0ZXN0SW50NjRMRUJE
ZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGY3LCAweDg0LCAweDc3IH0sIDUsIHsgfSwgLTB4
OSwgNmx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGYz
LCAweDg1LCAweDAyIH0sIDMsIHsgfSwgMHg4MmYzLCA2bHUpOwogICAgIC8vIFRlc3QgaW4gdGhl
IG1pZGRsZQotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjMsIDB4MDcsIDB4ODkgfSwgMSwg
dHJ1ZSwgMHg3LCAybHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4MDMsIDB4MDcsIDB4
MjMgfSwgMSwgdHJ1ZSwgMHg3LCAybHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjIs
IDB4NTMsIDB4NDMsIDB4NjcsIDB4NzksIDB4NzcsIDB4NDMgfSwgNSwgdHJ1ZSwgLTB4OSwgNmx1
KTsKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYyLCAweDUzLCAweDQzLCAweGY3LCAweDg0
LCAweDc3LCAweGY5IH0sIDUsIHRydWUsIC0weDksIDZsdSk7Ci0gICAgdGVzdEludDY0TEVCRGVj
b2RlKHsgMHhmMiwgMHg1MywgMHg0MywgMHhmMywgMHg4NSwgMHgwMiwgMHhhNCB9LCAzLCB0cnVl
LCAweDgyZjMsIDZsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHhmMywgMHgwNywgMHg4
OSB9LCAxLCB7IH0sIDB4NywgMmx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDAzLCAw
eDA3LCAweDIzIH0sIDEsIHsgfSwgMHg3LCAybHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7
IDB4ZjIsIDB4NTMsIDB4NDMsIDB4NjcsIDB4NzksIDB4NzcsIDB4NDMgfSwgNSwgeyB9LCAtMHg5
LCA2bHUpOworICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4Zjcs
IDB4ODQsIDB4NzcsIDB4ZjkgfSwgNSwgeyB9LCAtMHg5LCA2bHUpOworICAgIHRlc3RJbnQ2NExF
QkRlY29kZSh7IDB4ZjIsIDB4NTMsIDB4NDMsIDB4ZjMsIDB4ODUsIDB4MDIsIDB4YTQgfSwgMywg
eyB9LCAweDgyZjMsIDZsdSk7CisgICAgLy8gVGVzdCBkZWNvZGUgdG9vIHNob3J0CisgICAgdGVz
dEludDY0TEVCRGVjb2RlKHsgMHg4MCB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJv
cjo6UmVjb3ZlcmFibGUpLCAweDAsIDBsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHg4
MCwgMHg4MSB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUp
LCAweDAsIDBsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHg4MCwg
MHg4MCwgMHg4MCwgMHg4MCB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVj
b3ZlcmFibGUpLCAweDAsIDBsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4
MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhmZiB9LCAxLCBtYWtlVW5leHBlY3RlZChTdHJl
YW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpLCAweDAsIDBsdSk7CisgICAgdGVzdEludDY0TEVCRGVj
b2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhmZiB9LCAwLCBtYWtl
VW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFibGUpLCAweDAsIDBsdSk7CiAgICAg
Ly8gVGVzdCBkZWNvZGUgdG9vIGxvbmcKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDgwLCAw
eDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwIH0sIDAsIGZhbHNlLCAweDAsIDBsdSk7Ci0gICAg
dGVzdEludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywg
MHhmZiB9LCAxLCBmYWxzZSwgMHgwLCAwbHUpOwotICAgIHRlc3RJbnQ2NExFQkRlY29kZSh7IDB4
ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4ZmYgfSwgMCwgZmFsc2UsIDB4MCwg
MGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDgwLCAweDgwLCAweDgwLCAweDgwLCAw
eDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwLCAweDgwIH0sIDAsIG1ha2VVbmV4cGVj
dGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCksIDB4MGx1LCAwbHUpOworICAgIHRlc3RJbnQ2NExF
QkRlY29kZSh7IDB4ODAsIDB4ODAsIDB4YWIsIDB4OGEsIDB4OWEsIDB4YTMsIDB4YTMsIDB4OWYs
IDB4ZDIsIDB4ZWYsIDB4OGEsIDB4NGUgfSwgMSwgbWFrZVVuZXhwZWN0ZWQoU3RyZWFtaW5nRXJy
b3I6OkZhdGFsKSwgMHgwbHUsIDBsdSk7CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHg4MCwg
MHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwgMHhhMywgMHhmZiwgMHhlZiwgMHhkOCwgMHhlZSwgMHhh
YSwgMHhiYiB9LCAwLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6RmF0YWwpLCAweDBs
dSwgMGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweGYzLCAweDg1LCAweGZmLCAweGY0
LCAweGZmLCAweGNiLCAweGJhLCAweDhmLCAweGE5LCAweGE4LCAweDA1IH0sIDAsIG1ha2VVbmV4
cGVjdGVkKFN0cmVhbWluZ0Vycm9yOjpGYXRhbCksIDB4MGx1LCAwbHUpOwogICAgIC8vIFRlc3Qg
ZGVjb2RlIG9mZiBlbmQgb2YgYXJyYXkKLSAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDgwLCAw
eDgwLCAweGFiLCAweDhhLCAweDlhLCAweGEzLCAweGZmIH0sIDIsIGZhbHNlLCAweDAsIDBsdSk7
CisgICAgdGVzdEludDY0TEVCRGVjb2RlKHsgMHg4MCwgMHg4MCwgMHhhYiwgMHg4YSwgMHg5YSwg
MHhhMywgMHhmZiB9LCAyLCBtYWtlVW5leHBlY3RlZChTdHJlYW1pbmdFcnJvcjo6UmVjb3ZlcmFi
bGUpLCAweDBsdSwgMGx1KTsKKyAgICB0ZXN0SW50NjRMRUJEZWNvZGUoeyAweDkyLCAweGYzLCAw
eDg1LCAweGZmLCAweGY0LCAweGZmLCAweGNiLCAweGJhLCAweDhmIH0sIDEsIG1ha2VVbmV4cGVj
dGVkKFN0cmVhbWluZ0Vycm9yOjpSZWNvdmVyYWJsZSksIDB4MGx1LCAwbHUpOwogfQogCiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>