<?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>79584</bug_id>
          
          <creation_ts>2012-02-25 15:55:50 -0800</creation_ts>
          <short_desc>LLInt assembly file should be split into 32-bit and 64-bit parts</short_desc>
          <delta_ts>2012-02-25 16:19:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>565036</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 15:55:50 -0800</bug_when>
    <thetext>And offlineasm should support the notion of having multiple files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565037</commentid>
    <comment_count>1</comment_count>
      <attachid>128887</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 16:03:27 -0800</bug_when>
    <thetext>Created attachment 128887
the patch

Most of this patch is just moving a file.  It&apos;s not really that big, I promise!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>565045</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2012-02-25 16:19:42 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/108913</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128887</attachid>
            <date>2012-02-25 16:03:27 -0800</date>
            <delta_ts>2012-02-25 16:16:03 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>splitllint_patch_1.diff</filename>
            <type>text/plain</type>
            <size>151903</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA4OTEwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDEyLTAyLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
TExJbnQgYXNzZW1ibHkgZmlsZSBzaG91bGQgYmUgc3BsaXQgaW50byAzMi1iaXQgYW5kIDY0LWJp
dCBwYXJ0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Nzk1ODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisg
ICAgICAgIE1vdmVkIExvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIHRvIExvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc20uIEdhdmUgb2ZmbGluZWFzbQorICAgICAgICB0aGUgYWJpbGl0eSB0byBpbmNs
dWRlIGZpbGVzLCBhbmQgY29ycmVjdGx5IHRyYWNrIGRlcGVuZGVuY2llczogaXQgcmVzdHJpY3Rz
CisgICAgICAgIHRoZSBpbmxpbmUgbWVjaGFuaXNtIHRvIHVzaW5nIHRoZSBzYW1lIGRpcmVjdG9y
eSBhcyB0aGUgc291cmNlIGZpbGUsIGFuZCB1c2VzCisgICAgICAgIHRoZSBTSEExIGhhc2ggb2Yg
YWxsIC5hc20gZmlsZXMgaW4gdGhhdCBkaXJlY3RvcnkgYXMgYW4gaW5wdXQgaGFzaC4KKworICAg
ICAgICAqIGxsaW50L0xMSW50T2ZmbGluZUFzbUNvbmZpZy5oOgorICAgICAgICAqIGxsaW50L0xv
d0xldmVsSW50ZXJwcmV0ZXIuYXNtOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0
ZXIzMl82NC5hc206IEFkZGVkLgorICAgICAgICAgICAgLSBUaGlzIGlzIGp1c3QgdGhlIGVudGly
ZSBjb250ZW50cyBvZiB3aGF0IHdhcyBwcmV2aW91c2x5IExvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbTogQWRkZWQuCisgICAg
ICAgICogb2ZmbGluZWFzbS9hc20ucmI6CisgICAgICAgICogb2ZmbGluZWFzbS9hc3QucmI6Cisg
ICAgICAgICogb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiOgorICAgICAg
ICAqIG9mZmxpbmVhc20vcGFyc2VyLnJiOgorICAgICAgICAqIG9mZmxpbmVhc20vc2VsZl9oYXNo
LnJiOgorCiAyMDEyLTAyLTI1ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAg
ICAgICAgT2ZmbGluZWFzbSBzaG91bGQgc3VwcG9ydCBYODZfNjQKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVBc21Db25maWcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTExJbnRPZmZsaW5lQXNtQ29uZmlnLmgJKHJldmlz
aW9uIDEwODkwOSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9MTEludE9mZmxpbmVB
c21Db25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksMTIgQEAKICNkZWZpbmUgT0ZG
TElORV9BU01fWDg2XzY0IDAKICNlbmRpZgogCisjaWYgVVNFKEpTVkFMVUU2NCkKKyNkZWZpbmUg
T0ZGTElORV9BU01fSlNWQUxVRTY0IDEKKyNlbHNlCisjZGVmaW5lIE9GRkxJTkVfQVNNX0pTVkFM
VUU2NCAwCisjZW5kaWYKKwogI2lmICFBU1NFUlRfRElTQUJMRUQKICNkZWZpbmUgT0ZGTElORV9B
U01fQVNTRVJUX0VOQUJMRUQgMQogI2Vsc2UKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9s
bGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyMzJfNjQuYXNtCShyZXZpc2lv
biAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIz
Ml82NC5hc20JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjM5MCBAQAorIyBDb3B5cmlnaHQgKEMp
IDIwMTEsIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworCisjIENyYXNoIGNvdXJzZSBvbiB0aGUgbGFu
Z3VhZ2UgdGhhdCB0aGlzIGlzIHdyaXR0ZW4gaW4gKHdoaWNoIEkganVzdCBjYWxsCisjICJhc3Nl
bWJseSIgZXZlbiB0aG91Z2ggaXQncyBtb3JlIHRoYW4gdGhhdCk6CisjCisjIC0gTW9zdGx5IGdh
cy1zdHlsZSBvcGVyYW5kIG9yZGVyaW5nLiBUaGUgbGFzdCBvcGVyYW5kIHRlbmRzIHRvIGJlIHRo
ZQorIyAgIGRlc3RpbmF0aW9uLiBTbyAiYSA6PSBiIiBpcyB3cml0dGVuIGFzICJtb3YgYiwgYSIu
IEJ1dCB1bmxpa2UgZ2FzLAorIyAgIGNvbXBhcmlzb25zIGFyZSBpbi1vcmRlciwgc28gImlmIChh
IDwgYikiIGlzIHdyaXR0ZW4gYXMKKyMgICAiYmlsdCBhLCBiLCAuLi4iLgorIworIyAtICJiIiA9
IGJ5dGUsICJoIiA9IDE2LWJpdCB3b3JkLCAiaSIgPSAzMi1iaXQgd29yZCwgInAiID0gcG9pbnRl
ci4KKyMgICBDdXJyZW50bHkgdGhpcyBpcyBqdXN0IDMyLWJpdCBzbyAiaSIgYW5kICJwIiBhcmUg
aW50ZXJjaGFuZ2VhYmxlCisjICAgZXhjZXB0IHdoZW4gYW4gb3Agc3VwcG9ydHMgb25lIGJ1dCBu
b3QgdGhlIG90aGVyLgorIworIyAtIEluIGdlbmVyYWwsIHZhbGlkIG9wZXJhbmRzIGZvciBtYWNy
byBpbnZvY2F0aW9ucyBhbmQgaW5zdHJ1Y3Rpb25zIGFyZQorIyAgIHJlZ2lzdGVycyAoZWcgInQw
IiksIGFkZHJlc3NlcyAoZWcgIjRbdDBdIiksIGJhc2UtaW5kZXggYWRkcmVzc2VzCisjICAgKGVn
ICI3W3QwLCB0MSwgMl0iKSwgYWJzb2x1dGUgYWRkcmVzc2VzIChlZyAiMHhhMDAwMDAwMFtdIiks
IG9yIGxhYmVscworIyAgIChlZyAiX2ZvbyIgb3IgIi5mb28iKS4gTWFjcm8gaW52b2NhdGlvbnMg
Y2FuIGFsc28gdGFrZSBhbm9ueW1vdXMKKyMgICBtYWNyb3MgYXMgb3BlcmFuZHMuIEluc3RydWN0
aW9ucyBjYW5ub3QgdGFrZSBhbm9ueW1vdXMgbWFjcm9zLgorIworIyAtIExhYmVscyBtdXN0IGhh
dmUgbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGVpdGhlciAiXyIgb3IgIi4iLiAgQSAiLiIgbGFiZWwK
KyMgICBpcyBsb2NhbCBhbmQgZ2V0cyByZW5hbWVkIGJlZm9yZSBjb2RlIGdlbiB0byBtaW5pbWl6
ZSBuYW1lc3BhY2UKKyMgICBwb2xsdXRpb24uIEEgIl8iIGxhYmVsIGlzIGFuIGV4dGVybiBzeW1i
b2wgKGkuZS4gIi5nbG9ibCIpLiBUaGUgIl8iCisjICAgbWF5IG9yIG1heSBub3QgYmUgcmVtb3Zl
ZCBkdXJpbmcgY29kZSBnZW4gZGVwZW5kaW5nIG9uIHdoZXRoZXIgdGhlIGFzbQorIyAgIGNvbnZl
bnRpb25zIGZvciBDIG5hbWUgbWFuZ2xpbmcgb24gdGhlIHRhcmdldCBwbGF0Zm9ybSBtYW5kYXRl
IGEgIl8iCisjICAgcHJlZml4LgorIworIyAtIEEgIm1hY3JvIiBpcyBhIGxhbWJkYSBleHByZXNz
aW9uLCB3aGljaCBtYXkgYmUgZWl0aGVyIGFub255bW91cyBvcgorIyAgIG5hbWVkLiBCdXQgdGhp
cyBoYXMgY2F2ZWF0cy4gIm1hY3JvIiBjYW4gdGFrZSB6ZXJvIG9yIG1vcmUgYXJndW1lbnRzLAor
IyAgIHdoaWNoIG1heSBiZSBtYWNyb3Mgb3IgYW55IHZhbGlkIG9wZXJhbmRzLCBidXQgaXQgY2Fu
IG9ubHkgcmV0dXJuCisjICAgY29kZS4gQnV0IHlvdSBjYW4gZG8gVHVyaW5nLWNvbXBsZXRlIHRo
aW5ncyB2aWEgY29udGludWF0aW9uIHBhc3NpbmcKKyMgICBzdHlsZTogIm1hY3JvIGZvbyAoYSwg
YikgYihhKSBlbmQgZm9vKGZvbywgZm9vKSIuIEFjdHVhbGx5LCBkb24ndCBkbworIyAgIHRoYXQs
IHNpbmNlIHlvdSdsbCBqdXN0IGNyYXNoIHRoZSBhc3NlbWJsZXIuCisjCisjIC0gQW4gImlmIiBp
cyBhIGNvbmRpdGlvbmFsIG9uIHNldHRpbmdzLiBBbnkgaWRlbnRpZmllciBzdXBwbGllZCBpbiB0
aGUKKyMgICBwcmVkaWNhdGUgb2YgYW4gImlmIiBpcyBhc3N1bWVkIHRvIGJlIGEgI2RlZmluZSB0
aGF0IGlzIGF2YWlsYWJsZQorIyAgIGR1cmluZyBjb2RlIGdlbi4gU28geW91IGNhbid0IHVzZSAi
aWYiIGZvciBjb21wdXRhdGlvbiBpbiBhIG1hY3JvLCBidXQKKyMgICB5b3UgY2FuIHVzZSBpdCB0
byBzZWxlY3QgZGlmZmVyZW50IHBpZWNlcyBvZiBjb2RlIGZvciBkaWZmZXJlbnQKKyMgICBwbGF0
Zm9ybXMuCisjCisjIC0gQXJndW1lbnRzIHRvIG1hY3JvcyBmb2xsb3cgbGV4aWNhbCBzY29waW5n
IHJhdGhlciB0aGFuIGR5bmFtaWMgc2NvcGluZy4KKyMgICBDb25zdCdzIGFsc28gZm9sbG93IGxl
eGljYWwgc2NvcGluZyBhbmQgbWF5IG92ZXJyaWRlIChoaWRlKSBhcmd1bWVudHMKKyMgICBvciBv
dGhlciBjb25zdHMuIEFsbCB2YXJpYWJsZXMgKGFyZ3VtZW50cyBhbmQgY29uc3RhbnRzKSBjYW4g
YmUgYm91bmQKKyMgICB0byBvcGVyYW5kcy4gQWRkaXRpb25hbGx5LCBhcmd1bWVudHMgKGJ1dCBu
b3QgY29uc3RhbnRzKSBjYW4gYmUgYm91bmQKKyMgICB0byBtYWNyb3MuCisKKworIyBCZWxvdyB3
ZSBoYXZlIGEgYnVuY2ggb2YgY29uc3RhbnQgZGVjbGFyYXRpb25zLiBFYWNoIGNvbnN0YW50IG11
c3QgaGF2ZQorIyBhIGNvcnJlc3BvbmRpbmcgQVNTRVJUKCkgaW4gTExJbnREYXRhLmNwcC4KKwor
IyBUaGVzZSBkZWNsYXJhdGlvbnMgbXVzdCBtYXRjaCBpbnRlcnByZXRlci9SZWdpc3RlckZpbGUu
aC4KK2NvbnN0IENhbGxGcmFtZUhlYWRlclNpemUgPSA0OAorY29uc3QgQXJndW1lbnRDb3VudCA9
IC00OAorY29uc3QgQ2FsbGVyRnJhbWUgPSAtNDAKK2NvbnN0IENhbGxlZSA9IC0zMgorY29uc3Qg
U2NvcGVDaGFpbiA9IC0yNAorY29uc3QgUmV0dXJuUEMgPSAtMTYKK2NvbnN0IENvZGVCbG9jayA9
IC04CisKK2NvbnN0IFRoaXNBcmd1bWVudE9mZnNldCA9IC1DYWxsRnJhbWVIZWFkZXJTaXplIC0g
OAorCisjIERlY2xhcmUgc29tZSBhbGlhc2VzIGZvciB0aGUgcmVnaXN0ZXJzIHdlIHdpbGwgdXNl
LgorY29uc3QgUEMgPSB0NAorCisjIE9mZnNldHMgbmVlZGVkIGZvciByZWFzb25pbmcgYWJvdXQg
dmFsdWUgcmVwcmVzZW50YXRpb24uCitpZiBCSUdfRU5ESUFOCisgICAgY29uc3QgVGFnT2Zmc2V0
ID0gMAorICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSA0CitlbHNlCisgICAgY29uc3QgVGFnT2Zm
c2V0ID0gNAorICAgIGNvbnN0IFBheWxvYWRPZmZzZXQgPSAwCitlbmQKKworIyBWYWx1ZSByZXBy
ZXNlbnRhdGlvbiBjb25zdGFudHMuCitjb25zdCBJbnQzMlRhZyA9IC0xCitjb25zdCBCb29sZWFu
VGFnID0gLTIKK2NvbnN0IE51bGxUYWcgPSAtMworY29uc3QgVW5kZWZpbmVkVGFnID0gLTQKK2Nv
bnN0IENlbGxUYWcgPSAtNQorY29uc3QgRW1wdHlWYWx1ZVRhZyA9IC02Citjb25zdCBEZWxldGVk
VmFsdWVUYWcgPSAtNworY29uc3QgTG93ZXN0VGFnID0gRGVsZXRlZFZhbHVlVGFnCisKKyMgVHlw
ZSBjb25zdGFudHMuCitjb25zdCBTdHJpbmdUeXBlID0gNQorY29uc3QgT2JqZWN0VHlwZSA9IDEz
CisKKyMgVHlwZSBmbGFncyBjb25zdGFudHMuCitjb25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVk
ID0gMQorY29uc3QgSW1wbGVtZW50c0hhc0luc3RhbmNlID0gMgorY29uc3QgSW1wbGVtZW50c0Rl
ZmF1bHRIYXNJbnN0YW5jZSA9IDgKKworIyBIZWFwIGFsbG9jYXRpb24gY29uc3RhbnRzLgorY29u
c3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4ID0gMworCisjIEJ5dGVjb2RlIG9wZXJhbmQg
Y29uc3RhbnRzLgorY29uc3QgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXggPSAweDQwMDAwMDAw
CisKKyMgQ29kZSB0eXBlIGNvbnN0YW50cy4KK2NvbnN0IEdsb2JhbENvZGUgPSAwCitjb25zdCBF
dmFsQ29kZSA9IDEKK2NvbnN0IEZ1bmN0aW9uQ29kZSA9IDIKKworIyBUaGUgaW50ZXJwcmV0ZXIg
c3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJndW1lbnQgY291bnQuCitjb25zdCBMTEludFJl
dHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09mZnNldAorCisjIFRoaXMgbXVzdCBtYXRjaCB3
dGYvVmVjdG9yLmguCitjb25zdCBWZWN0b3JTaXplT2Zmc2V0ID0gMAorY29uc3QgVmVjdG9yQnVm
ZmVyT2Zmc2V0ID0gNAorCisjIFN0cmluZyBmbGFncy4KK2NvbnN0IEhhc2hGbGFnczhCaXRCdWZm
ZXIgPSA2NAorCisjIFV0aWxpdGllcworbWFjcm8gY3Jhc2goKQorICAgIHN0b3JlaSAwLCAweGJi
YWRiZWVmW10KKyAgICBtb3ZlIDAsIHQwCisgICAgY2FsbCB0MAorZW5kCisKK21hY3JvIGFzc2Vy
dChhc3NlcnRpb24pCisgICAgaWYgQVNTRVJUX0VOQUJMRUQKKyAgICAgICAgYXNzZXJ0aW9uKC5v
aykKKyAgICAgICAgY3Jhc2goKQorICAgIC5vazoKKyAgICBlbmQKK2VuZAorCittYWNybyBwcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVzdGluYXRpb25SZWdpc3RlcikKKyAgICBpZiBB
Uk12NworICAgICAgICBtb3ZlIGxyLCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzaWYgWDg2
CisgICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lzdGVyCisgICAgZWxzZQorICAgICAgICBlcnJv
cgorICAgIGVuZAorZW5kCisKK21hY3JvIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHNvdXJjZVJlZ2lzdGVyKQorICAgIGlmIEFSTXY3CisgICAgICAgIG1vdmUgc291cmNlUmVnaXN0
ZXIsIGxyCisgICAgZWxzaWYgWDg2CisgICAgICAgIHB1c2ggc291cmNlUmVnaXN0ZXIKKyAgICBl
bHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCitlbmQKKworbWFjcm8gZGlzcGF0Y2goYWR2YW5j
ZSkKKyAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQworICAgIGptcCBbUENdCitlbmQKKworbWFjcm8g
ZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHBjT2Zmc2V0KQorICAgIGxzaGlmdGkgMiwgcGNPZmZz
ZXQKKyAgICBhZGRwIHBjT2Zmc2V0LCBQQworICAgIGptcCBbUENdCitlbmQKKworbWFjcm8gZGlz
cGF0Y2hCcmFuY2gocGNPZmZzZXQpCisgICAgbG9hZGkgcGNPZmZzZXQsIHQwCisgICAgZGlzcGF0
Y2hCcmFuY2hXaXRoT2Zmc2V0KHQwKQorZW5kCisKK21hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkK
KyAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCisgICAgam1wIFtQ
Q10KK2VuZAorCittYWNybyBjQ2FsbDIoZnVuY3Rpb24sIGFyZzEsIGFyZzIpCisgICAgaWYgQVJN
djcKKyAgICAgICAgbW92ZSBhcmcxLCB0MAorICAgICAgICBtb3ZlIGFyZzIsIHQxCisgICAgZWxz
aWYgWDg2CisgICAgICAgIHBva2UgYXJnMSwgMAorICAgICAgICBwb2tlIGFyZzIsIDEKKyAgICBl
bHNlCisgICAgICAgIGVycm9yCisgICAgZW5kCisgICAgY2FsbCBmdW5jdGlvbgorZW5kCisKKyMg
VGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFyZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVk
aWF0ZXMuCittYWNybyBjQ2FsbDQoZnVuY3Rpb24sIGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCisg
ICAgaWYgQVJNdjcKKyAgICAgICAgbW92ZSBhcmcxLCB0MAorICAgICAgICBtb3ZlIGFyZzIsIHQx
CisgICAgICAgIG1vdmUgYXJnMywgdDIKKyAgICAgICAgbW92ZSBhcmc0LCB0MworICAgIGVsc2lm
IFg4NgorICAgICAgICBwb2tlIGFyZzEsIDAKKyAgICAgICAgcG9rZSBhcmcyLCAxCisgICAgICAg
IHBva2UgYXJnMywgMgorICAgICAgICBwb2tlIGFyZzQsIDMKKyAgICBlbHNlCisgICAgICAgIGVy
cm9yCisgICAgZW5kCisgICAgY2FsbCBmdW5jdGlvbgorZW5kCisKK21hY3JvIGNhbGxTbG93UGF0
aChzbG93X3BhdGgpCisgICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykKKyAgICBtb3ZlIHQw
LCBQQworICAgIG1vdmUgdDEsIGNmcgorZW5kCisKKyMgRGVidWdnaW5nIG9wZXJhdGlvbiBpZiB5
b3UnZCBsaWtlIHRvIHByaW50IGFuIG9wZXJhbmQgaW4gdGhlIGluc3RydWN0aW9uIHN0cmVhbS4g
ZnJvbVdoZXJlCisjIHNob3VsZCBiZSBhbiBpbW1lZGlhdGUgaW50ZWdlciAtIGFueSBpbnRlZ2Vy
IHlvdSBsaWtlOyB1c2UgaXQgdG8gaWRlbnRpZnkgdGhlIHBsYWNlIHlvdSdyZQorIyBkZWJ1Z2dp
bmcgZnJvbS4gb3BlcmFuZCBzaG91bGQgbGlrZXdpc2UgYmUgYW4gaW1tZWRpYXRlLCBhbmQgc2hv
dWxkIGlkZW50aWZ5IHRoZSBvcGVyYW5kCisjIGluIHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0geW91
J2QgbGlrZSB0byBwcmludCBvdXQuCittYWNybyB0cmFjZU9wZXJhbmQoZnJvbVdoZXJlLCBvcGVy
YW5kKQorICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vfb3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdoZXJl
LCBvcGVyYW5kKQorICAgIG1vdmUgdDAsIFBDCisgICAgbW92ZSB0MSwgY2ZyCitlbmQKKworIyBE
ZWJ1Z2dpbmcgb3BlcmF0aW9uIGlmIHlvdSdkIGxpa2UgdG8gcHJpbnQgdGhlIHZhbHVlIG9mIGFu
IG9wZXJhbmQgaW4gdGhlIGluc3RydWN0aW9uCisjIHN0cmVhbS4gU2FtZSBhcyB0cmFjZU9wZXJh
bmQoKSwgYnV0IGFzc3VtZXMgdGhhdCB0aGUgb3BlcmFuZCBpcyBhIHJlZ2lzdGVyLCBhbmQgcHJp
bnRzIGl0cworIyB2YWx1ZS4KK21hY3JvIHRyYWNlVmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQor
ICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUsIGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFu
ZCkKKyAgICBtb3ZlIHQwLCBQQworICAgIG1vdmUgdDEsIGNmcgorZW5kCisKK21hY3JvIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBpZiBFWEVDVVRJT05fVFJBQ0lORworICAgICAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3RyYWNlKQorICAgIGVuZAorZW5kCisKKyMgQ2FsbCBhIHNsb3dfcGF0aCBmb3Ig
Y2FsbCBvcGNvZGVzLgorbWFjcm8gY2FsbENhbGxTbG93UGF0aChhZHZhbmNlLCBzbG93X3BhdGgs
IGFjdGlvbikKKyAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQywgdDAKKyAgICBzdG9yZXAgdDAsIEFy
Z3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQorICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwg
UEMpCisgICAgbW92ZSB0MSwgY2ZyCisgICAgYWN0aW9uKHQwKQorZW5kCisKK21hY3JvIHNsb3dQ
YXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93X3BhdGgpCisgICAgY2FsbENhbGxTbG93UGF0aCgKKyAg
ICAgICAgYWR2YW5jZSwKKyAgICAgICAgc2xvd19wYXRoLAorICAgICAgICBtYWNybyAoY2FsbGVl
KQorICAgICAgICAgICAgY2FsbCBjYWxsZWUKKyAgICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxs
KCkKKyAgICAgICAgZW5kKQorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50
LCBhY3Rpb24pCisgICAgaWYgSklUX0VOQUJMRUQKKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQwCisgICAgICAgIGJhZGRpcyBpbmNyZW1lbnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1
dGVDb3VudGVyW3QwXSwgLmNvbnRpbnVlCisgICAgICAgIGFjdGlvbigpCisgICAgLmNvbnRpbnVl
OgorICAgIGVuZAorZW5kCisKK21hY3JvIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBj
aGVja1N3aXRjaFRvSklUKAorICAgICAgICAxLAorICAgICAgICBtYWNybyAoKQorICAgICAgICAg
ICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICAgICAgICAg
IGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwgUEMpCisgICAgICAgICAgICBtb3ZlIHQxLCBj
ZnIKKyAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNvdmVyCisgICAgICAgICAgICBqbXAgdDAKKyAg
ICAgICAgLnJlY292ZXI6CisgICAgICAgICAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zm
c2V0W2Nmcl0sIFBDCisgICAgICAgIGVuZCkKK2VuZAorCittYWNybyBjaGVja1N3aXRjaFRvSklU
Rm9yRXBpbG9ndWUoKQorICAgIGNoZWNrU3dpdGNoVG9KSVQoCisgICAgICAgIDEwLAorICAgICAg
ICBtYWNybyAoKQorICAgICAgICAgICAgY2FsbFNsb3dQYXRoKF9sbGludF9yZXBsYWNlKQorICAg
ICAgICBlbmQpCitlbmQKKworbWFjcm8gYXNzZXJ0Tm90Q29uc3RhbnQoaW5kZXgpCisgICAgYXNz
ZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9r
IGVuZCkKK2VuZAorCisjIEluZGV4LCB0YWcsIGFuZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50
IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90CisjIGNoYW5nZWQuCittYWNybyBsb2FkQ29uc3RhbnRP
clZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxvYWQpCisgICAgYmlndGVxIGluZGV4LCBGaXJzdENv
bnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50CisgICAgbG9hZGkgVGFnT2Zmc2V0W2Nmciwg
aW5kZXgsIDhdLCB0YWcKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdLCBw
YXlsb2FkCisgICAgam1wIC5kb25lCisuY29uc3RhbnQ6CisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHBheWxvYWQKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fY29uc3RhbnRSZWdpc3RlcnMgKyBW
ZWN0b3JCdWZmZXJPZmZzZXRbcGF5bG9hZF0sIHBheWxvYWQKKyAgICAjIFRoZXJlIGlzIGEgYml0
IG9mIGV2aWwgaGVyZTogaWYgdGhlIGluZGV4IGNvbnRhaW5zIGEgdmFsdWUgPj0gRmlyc3RDb25z
dGFudFJlZ2lzdGVySW5kZXgsCisgICAgIyB0aGVuIHZhbHVlIDw8IDMgd2lsbCBiZSBlcXVhbCB0
byAodmFsdWUgLSBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCkgPDwgMy4KKyAgICBsb2FkcCBU
YWdPZmZzZXRbcGF5bG9hZCwgaW5kZXgsIDhdLCB0YWcKKyAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0
W3BheWxvYWQsIGluZGV4LCA4XSwgcGF5bG9hZAorLmRvbmU6CitlbmQKKworIyBJbmRleCBhbmQg
cGF5bG9hZCBtYXkgYmUgdGhlIHNhbWUgcmVnaXN0ZXIuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQu
CittYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyhpbmRleCwgdGFnLCBwYXlsb2FkKQor
ICAgIGJpZ3RlcSBpbmRleCwgRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIC5jb25zdGFudAor
ICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIGluZGV4LCA4XSwgdGFnCisgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIGluZGV4LCA4XSwgcGF5bG9hZAorICAgIGptcCAuZG9uZQorLmNvbnN0YW50
OgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0YWcKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1f
Y29uc3RhbnRSZWdpc3RlcnMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdGFnXSwgdGFnCisgICAgIyBU
aGVyZSBpcyBhIGJpdCBvZiBldmlsIGhlcmU6IGlmIHRoZSBpbmRleCBjb250YWlucyBhIHZhbHVl
ID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LAorICAgICMgdGhlbiB2YWx1ZSA8PCAzIHdp
bGwgYmUgZXF1YWwgdG8gKHZhbHVlIC0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpIDw8IDMu
CisgICAgbHNoaWZ0aSAzLCBpbmRleAorICAgIGFkZHAgaW5kZXgsIHRhZworICAgIGxvYWRwIFBh
eWxvYWRPZmZzZXRbdGFnXSwgcGF5bG9hZAorICAgIGxvYWRwIFRhZ09mZnNldFt0YWddLCB0YWcK
Ky5kb25lOgorZW5kCisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkVGFnQ3Vz
dG9tKGluZGV4LCB0YWdDaGVjaywgcGF5bG9hZCkKKyAgICBiaWd0ZXEgaW5kZXgsIEZpcnN0Q29u
c3RhbnRSZWdpc3RlckluZGV4LCAuY29uc3RhbnQKKyAgICB0YWdDaGVjayhUYWdPZmZzZXRbY2Zy
LCBpbmRleCwgOF0pCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XSwgcGF5
bG9hZAorICAgIGptcCAuZG9uZQorLmNvbnN0YW50OgorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJd
LCBwYXlsb2FkCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVj
dG9yQnVmZmVyT2Zmc2V0W3BheWxvYWRdLCBwYXlsb2FkCisgICAgIyBUaGVyZSBpcyBhIGJpdCBv
ZiBldmlsIGhlcmU6IGlmIHRoZSBpbmRleCBjb250YWlucyBhIHZhbHVlID49IEZpcnN0Q29uc3Rh
bnRSZWdpc3RlckluZGV4LAorICAgICMgdGhlbiB2YWx1ZSA8PCAzIHdpbGwgYmUgZXF1YWwgdG8g
KHZhbHVlIC0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgpIDw8IDMuCisgICAgdGFnQ2hlY2so
VGFnT2Zmc2V0W3BheWxvYWQsIGluZGV4LCA4XSkKKyAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3Bh
eWxvYWQsIGluZGV4LCA4XSwgcGF5bG9hZAorLmRvbmU6CitlbmQKKworIyBJbmRleCBhbmQgcGF5
bG9hZCBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3RlcnMuIEluZGV4IGlzIG5vdCBtdXRhdGVkLiBV
c2UKKyMgdGhpcyBpZiB5b3Uga25vdyB3aGF0IHRoZSB0YWcgb2YgdGhlIHZhcmlhYmxlIHNob3Vs
ZCBiZS4gRG9pbmcgdGhlIHRhZworIyB0ZXN0IGFzIHBhcnQgb2YgbG9hZGluZyB0aGUgdmFyaWFi
bGUgcmVkdWNlcyByZWdpc3RlciB1c2UsIGJ1dCBtYXkgbm90CisjIGJlIGZhc3RlciB0aGFuIGRv
aW5nIGxvYWRDb25zdGFudE9yVmFyaWFibGUgZm9sbG93ZWQgYnkgYSBicmFuY2ggb24gdGhlCisj
IHRhZy4KK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKGluZGV4LCBleHBlY3Rl
ZFRhZywgcGF5bG9hZCwgc2xvdykKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZFRh
Z0N1c3RvbSgKKyAgICAgICAgaW5kZXgsCisgICAgICAgIG1hY3JvIChhY3R1YWxUYWcpIGJpbmVx
IGFjdHVhbFRhZywgZXhwZWN0ZWRUYWcsIHNsb3cgZW5kLAorICAgICAgICBwYXlsb2FkKQorZW5k
CisKK21hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkVW5jaGVja2VkKGluZGV4LCBw
YXlsb2FkKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkVGFnQ3VzdG9tKAorICAg
ICAgICBpbmRleCwKKyAgICAgICAgbWFjcm8gKGFjdHVhbFRhZykgZW5kLAorICAgICAgICBwYXls
b2FkKQorZW5kCisKK21hY3JvIHdyaXRlQmFycmllcih0YWcsIHBheWxvYWQpCisgICAgIyBOb3Ro
aW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24ndCBoYXZlIGEgZ2VuZXJhdGlvbmFsIG9yIGluY3JlbWVu
dGFsIGNvbGxlY3Rvci4KK2VuZAorCittYWNybyB2YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2FkLCBw
cm9maWxlKQorICAgIGlmIFZBTFVFX1BST0ZJTEVSCisgICAgICAgIHN0b3JlaSB0YWcsIFZhbHVl
UHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0W3Byb2ZpbGVdCisgICAgICAgIHN0b3JlaSBw
YXlsb2FkLCBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFBheWxvYWRPZmZzZXRbcHJvZmlsZV0K
KyAgICBlbmQKK2VuZAorCisKKyMgSW5kaWNhdGUgdGhlIGJlZ2lubmluZyBvZiBMTEludC4KK19s
bGludF9iZWdpbjoKKyAgICBjcmFzaCgpCisKKworIyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRl
cnByZXRlcgorCittYWNybyBmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVn
aXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAg
SlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIK
KyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRS
ZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCitlbmQKKworbWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1
Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCisgICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHRhcmdldFJlZ2lzdGVyCisgICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKKyAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6
Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIK
K2VuZAorCittYWNybyBub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikK
KyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFyZ2V0UmVnaXN0ZXIKK2VuZAorCittYWNybyBm
dW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VSZWdpc3RlcikKKyAgICBzdG9yZXAgc291cmNl
UmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCitlbmQKKworbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxv
Y2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCisgICAgIyBOb3RoaW5nIHRvIGRvIQorZW5kCisKKyMg
RG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhl
IFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgorIyBpbiB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9s
b2d1ZSBlbnRyeSBPU1IuCittYWNybyBwcm9sb2d1ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9j
a1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xvd1BhdGgpCisgICAgcHJlc2VydmVSZXR1cm5B
ZGRyZXNzQWZ0ZXJDYWxsKHQyKQorICAgIAorICAgICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFu
ZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgorICAgIHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQor
ICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCisgICAgICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQ
YXRoKQorICAgIGVuZAorICAgIGNvZGVCbG9ja0dldHRlcih0MSkKKyAgICBpZiBKSVRfRU5BQkxF
RAorICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2NrOjptX2xsaW50RXhlY3V0ZUNvdW50ZXJbdDFd
LCAuY29udGludWUKKyAgICAgICAgY0NhbGwyKG9zclNsb3dQYXRoLCBjZnIsIFBDKQorICAgICAg
ICBtb3ZlIHQxLCBjZnIKKyAgICAgICAgYnRweiB0MCwgLnJlY292ZXIKKyAgICAgICAgbG9hZHAg
UmV0dXJuUENbY2ZyXSwgdDIKKyAgICAgICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1
cm4odDIpCisgICAgICAgIGptcCB0MAorICAgIC5yZWNvdmVyOgorICAgICAgICBjb2RlQmxvY2tH
ZXR0ZXIodDEpCisgICAgLmNvbnRpbnVlOgorICAgIGVuZAorICAgIGNvZGVCbG9ja1NldHRlcih0
MSkKKyAgICAKKyAgICAjIFNldCB1cCB0aGUgUEMuCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2lu
c3RydWN0aW9uc1t0MV0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjpJbnN0cnVjdGlvbnM6Om1f
aW5zdHJ1Y3Rpb25zICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QwXSwgUEMKK2VuZAorCisjIEV4cGVj
dHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2
ZXMgYmVoaW5kLgorIyBNdXN0IGNhbGwgZGlzcGF0Y2goMCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgor
bWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihwcm9maWxlQXJnU2tpcCkKKyAgICBpZiBWQUxV
RV9QUk9GSUxFUgorICAgICAgICAjIFByb2ZpbGUgdGhlIGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVs
eSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRvIHRoaXMuIFRoaXMKKyAgICAgICAgIyBjb2Rl
IGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ugb2YgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJp
bmcgYmV0d2VlbgorICAgICAgICAjIGFyZ3VtZW50cyBhbmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBk
ZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRvd24tdG8temVybworICAgICAgICAjIGxvb3As
IGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRocmVlIHJlZ2lzdGVycyBzbyBhcyB0byBwcmVz
ZXJ2ZSB0aGUgUEMgYW5kCisgICAgICAgICMgdGhlIGNvZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0
aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0dGVuIGluIGEgbW9yZQorICAgICAgICAjIG9w
dGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRoYXQgaGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdp
c3RlcnMgYXZhaWxhYmxlCisgICAgICAgICMgZm9yIGFyYml0cmFyeSB1c2UgaW4gdGhlIGludGVy
cHJldGVyLgorICAgICAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQw
CisgICAgICAgIGFkZGkgLXByb2ZpbGVBcmdTa2lwLCB0MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhh
dCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQorICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWd0
ZXEgdDAsIDAsIG9rIGVuZCkKKyAgICAgICAgYnRpeiB0MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUK
KyAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2FyZ3VtZW50VmFsdWVQcm9maWxlcyArIFZlY3Rv
ckJ1ZmZlck9mZnNldFt0MV0sIHQzCisgICAgICAgIG11bGkgc2l6ZW9mIFZhbHVlUHJvZmlsZSwg
dDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVuZ3RoIHJlZHVjdGlvbiEKKyAgICAgICAgbmVn
aSB0MAorICAgICAgICBsc2hpZnRpIDMsIHQwCisgICAgICAgIGFkZHAgdDIsIHQzCisgICAgLmFy
Z3VtZW50UHJvZmlsZUxvb3A6CisgICAgICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRh
Z09mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgIHN1
YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKKyAgICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJn
U2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRh
Z09mZnNldFt0M10KKyAgICAgICAgbG9hZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9m
ZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhbY2ZyLCB0MF0sIHQyCisgICAgICAgIHN0b3Jl
aSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2YgVmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxl
OjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3QzXQorICAgICAgICBiYWRkaW56IDgsIHQwLCAu
YXJndW1lbnRQcm9maWxlTG9vcAorICAgIC5hcmd1bWVudFByb2ZpbGVEb25lOgorICAgIGVuZAor
ICAgICAgICAKKyAgICAjIENoZWNrIHN0YWNrIGhlaWdodC4KKyAgICBsb2FkaSBDb2RlQmxvY2s6
Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAKKyAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xv
YmFsRGF0YVt0MV0sIHQyCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0s
IHQyICAgIyBGSVhNRTogQ2FuIGdldCB0byB0aGUgUmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0
YWNrRnJhbWUKKyAgICBsc2hpZnRpIDMsIHQwCisgICAgYWRkcCB0MCwgY2ZyLCB0MAorICAgIGJw
YWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmlsZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJd
LCB0MCwgLnN0YWNrSGVpZ2h0T0sKKworICAgICMgU3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAt
IG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lz
dGVyX2ZpbGVfY2hlY2spCisuc3RhY2tIZWlnaHRPSzoKK2VuZAorCisjIEV4cGVjdHMgdGhhdCBD
b2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5k
LgorbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRvbmVMYWJlbCwgc2xvd19wYXRoKQorICAgIGxv
YWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENvdW50W2Nmcl0sIHQwCisgICAgYmlhZXEgdDAs
IENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3QxXSwgZG9uZUxhYmVsCisgICAgY0NhbGwyKHNs
b3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xvd19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2Nv
bDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAwID0+IGVycm9yCisgICAgbW92ZSB0MSwgY2Zy
CisgICAgYnRpeiB0MCwgLmNvbnRpbnVlCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFs
RGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0
MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFd
CisuY29udGludWU6CisgICAgIyBSZWxvYWQgQ29kZUJsb2NrIGFuZCBQQywgc2luY2UgdGhlIHNs
b3dfcGF0aCBjbG9iYmVyZWQgaXQuCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCisgICAg
bG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIHQwCisgICAgbG9hZHAgQ29kZUJs
b2NrOjpJbnN0cnVjdGlvbnM6Om1faW5zdHJ1Y3Rpb25zICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3Qw
XSwgUEMKKyAgICBqbXAgZG9uZUxhYmVsCitlbmQKKworX2xsaW50X3Byb2dyYW1fcHJvbG9ndWU6
CisgICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2RlQmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29k
ZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCisg
ICAgZGlzcGF0Y2goMCkKKworCitfbGxpbnRfZXZhbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShu
b3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9s
bGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9wcm9sb2d1ZSkKKyAgICBkaXNwYXRjaCgwKQor
CisKK19sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9wcm9sb2d1ZToKKyAgICBwcm9sb2d1ZShmdW5j
dGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxp
bnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxsLCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVu
Y3Rpb25fZm9yX2NhbGwpCisuZnVuY3Rpb25Gb3JDYWxsQmVnaW46CisgICAgZnVuY3Rpb25Jbml0
aWFsaXphdGlvbigwKQorICAgIGRpc3BhdGNoKDApCisgICAgCisKK19sbGludF9mdW5jdGlvbl9m
b3JfY29uc3RydWN0X3Byb2xvZ3VlOgorICAgIHByb2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0
Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29z
cl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25f
Zm9yX2NvbnN0cnVjdCkKKy5mdW5jdGlvbkZvckNvbnN0cnVjdEJlZ2luOgorICAgIGZ1bmN0aW9u
SW5pdGlhbGl6YXRpb24oMSkKKyAgICBkaXNwYXRjaCgwKQorICAgIAorCitfbGxpbnRfZnVuY3Rp
b25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6CisgICAgcHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29k
ZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9m
dW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3Jf
Y2FsbCkKKyAgICBmdW5jdGlvbkFyaXR5Q2hlY2soLmZ1bmN0aW9uRm9yQ2FsbEJlZ2luLCBfbGxp
bnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykKKworCitfbGxpbnRfZnVuY3Rpb25fZm9yX2Nv
bnN0cnVjdF9hcml0eV9jaGVjazoKKyAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENv
ZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3Jf
ZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNoZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVj
a19mb3JfY29uc3RydWN0KQorICAgIGZ1bmN0aW9uQXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDb25z
dHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9jb25zdHJ1Y3RfYXJpdHlDaGVjaykKKworIyBJ
bnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKKworX2xsaW50X29wX2VudGVyOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkaSBDb2Rl
QmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyCisgICAgYnRpeiB0MiwgLm9wRW50ZXJEb25lCisgICAg
bW92ZSBVbmRlZmluZWRUYWcsIHQwCisgICAgbW92ZSAwLCB0MQorLm9wRW50ZXJMb29wOgorICAg
IHN1YmkgMSwgdDIKKyAgICBzdG9yZWkgdDAsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQorICAgIHN0
b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XQorICAgIGJ0aW56IHQyLCAub3BFbnRl
ckxvb3AKKy5vcEVudGVyRG9uZToKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGludF9vcF9jcmVh
dGVfYWN0aXZhdGlvbjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgNFtQQ10sIHQw
CisgICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCBFbXB0eVZhbHVlVGFnLCAub3BDcmVh
dGVBY3RpdmF0aW9uRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0
ZV9hY3RpdmF0aW9uKQorLm9wQ3JlYXRlQWN0aXZhdGlvbkRvbmU6CisgICAgZGlzcGF0Y2goMikK
KworCitfbGxpbnRfb3BfaW5pdF9sYXp5X3JlZzoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
bG9hZGkgNFtQQ10sIHQwCisgICAgc3RvcmVpIEVtcHR5VmFsdWVUYWcsIFRhZ09mZnNldFtjZnIs
IHQwLCA4XQorICAgIHN0b3JlaSAwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfY3JlYXRlX2FyZ3VtZW50czoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgNFtQQ10sIHQwCisgICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAs
IDhdLCBFbXB0eVZhbHVlVGFnLCAub3BDcmVhdGVBcmd1bWVudHNEb25lCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2FyZ3VtZW50cykKKy5vcENyZWF0ZUFyZ3VtZW50
c0RvbmU6CisgICAgZGlzcGF0Y2goMikKKworCittYWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qo
c2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09mZnNldCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0
Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCisgICAgaWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKKyAg
ICAgICAgam1wIHNsb3dDYXNlCisgICAgZWxzZQorICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6
ZUNsYXNzID0KKyAgICAgICAgICAgIEpTR2xvYmFsRGF0YTo6aGVhcCArCisgICAgICAgICAgICBI
ZWFwOjptX29iamVjdFNwYWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNw
YWNlICsKKyAgICAgICAgICAgIE1hcmtlZFNwYWNlOjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRv
cnMgKworICAgICAgICAgICAgc2l6ZUNsYXNzSW5kZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9y
CisgICAgICAgIAorICAgICAgICAjIEZJWE1FOiB3ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBp
biBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4KKyAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHNjcmF0Y2gxCisgICAgICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gx
XSwgc2NyYXRjaDEKKyAgICAgICAgCisgICAgICAgICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUg
ZnJlZSBsaXN0LiAgICAKKyAgICAgICAgbG9hZHAgb2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtl
ZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3NjcmF0Y2gxXSwgcmVzdWx0CisgICAgICAgIGJ0
cHogcmVzdWx0LCBzbG93Q2FzZQorICAgICAgICAKKyAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVj
dCBmcm9tIHRoZSBmcmVlIGxpc3QuCisgICAgICAgIGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgor
ICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9mZnNldE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxv
Y2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNoMV0KKyAgICAKKyAgICAgICAgIyBJbml0aWFs
aXplIHRoZSBvYmplY3QuCisgICAgICAgIGxvYWRwIGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0s
IHNjcmF0Y2gyCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMiwgW3Jlc3VsdF0KKyAgICAgICAgc3Rv
cmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0cnVjdHVyZVtyZXN1bHRdCisgICAgICAgIHN0b3Jl
cCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFtyZXN1bHRdCisgICAgICAgIGFkZHAgc2l6ZW9m
IEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gxCisgICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNP
YmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jlc3VsdF0KKyAgICBlbmQKK2VuZAorCitfbGxpbnRf
b3BfY3JlYXRlX3RoaXM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0
MAorICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQw
LCA4XSwgQ2VsbFRhZywgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0
W2NmciwgdDAsIDhdLCB0MAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQor
ICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QxXSwgT2Jq
ZWN0VHlwZSwgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBsb2FkcCBKU09iamVjdDo6bV9pbmhlcml0
b3JJRFt0MF0sIHQyCisgICAgYnRweiB0MiwgLm9wQ3JlYXRlVGhpc1Nsb3cKKyAgICBhbGxvY2F0
ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4LCBKU0dsb2JhbERhdGE6
OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQyLCB0MCwgdDEsIHQzLCAub3BDcmVhdGVUaGlzU2xv
dykKKyAgICBsb2FkaSA0W1BDXSwgdDEKKyAgICBzdG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0W2Nm
ciwgdDEsIDhdCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCisgICAg
ZGlzcGF0Y2goMykKKworLm9wQ3JlYXRlVGhpc1Nsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfY3JlYXRlX3RoaXMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3Bf
Z2V0X2NhbGxlZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgNFtQQ10sIHQwCisg
ICAgbG9hZHAgUGF5bG9hZE9mZnNldCArIENhbGxlZVtjZnJdLCB0MQorICAgIHN0b3JlaSBDZWxs
VGFnLCBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0KKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRb
Y2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9jb252ZXJ0X3RoaXM6
CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGJpbmVxIFRh
Z09mZnNldFtjZnIsIHQwLCA4XSwgQ2VsbFRhZywgLm9wQ29udmVydFRoaXNTbG93CisgICAgbG9h
ZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3Ry
dWN0dXJlW3QwXSwgdDAKKyAgICBiYmIgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86
Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcENvbnZlcnRUaGlzU2xvdworICAgIGRpc3BhdGNo
KDIpCisKKy5vcENvbnZlcnRUaGlzU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF9jb252ZXJ0X3RoaXMpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfbmV3X29i
amVjdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQw
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAg
SlNHbG9iYWxPYmplY3Q6Om1fZW1wdHlPYmplY3RTdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGFsbG9j
YXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0
YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDEsIHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNs
b3cpCisgICAgbG9hZGkgNFtQQ10sIHQxCisgICAgc3RvcmVpIENlbGxUYWcsIFRhZ09mZnNldFtj
ZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQorICAg
IGRpc3BhdGNoKDIpCisKKy5vcE5ld09iamVjdFNsb3c6CisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfbmV3X29iamVjdCkKKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF9u
ZXdfYXJyYXk6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX25ld19hcnJheSkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdf
YXJyYXlfYnVmZmVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVyKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xs
aW50X29wX25ld19yZWdleHA6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX25ld19yZWdleHApCisgICAgZGlzcGF0Y2goMykKKworCitfbGxp
bnRfb3BfbW92OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA4W1BDXSwgdDEKKyAg
ICBsb2FkaSA0W1BDXSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQxLCB0MiwgdDMp
CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0KKyAgICBzdG9yZWkgdDMsIFBh
eWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9u
b3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRp
IDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyLCB0MykKKyAgICBi
aW5lcSB0MiwgQm9vbGVhblRhZywgLm9wTm90U2xvdworICAgIHhvcmkgMSwgdDMKKyAgICBzdG9y
ZWkgdDIsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNl
dFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKy5vcE5vdFNsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfbm90KQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50
X29wX2VxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxMltQQ10sIHQyCisgICAg
bG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQwLCB0MiwgdDApCisgICAgYmluZXEgdDIs
IHQzLCAub3BFcVNsb3cKKyAgICBiaWVxIHQyLCBDZWxsVGFnLCAub3BFcVNsb3cKKyAgICBiaWIg
dDIsIExvd2VzdFRhZywgLm9wRXFTbG93CisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgY2llcSB0
MCwgdDEsIHQwCisgICAgc3RvcmVpIEJvb2xlYW5UYWcsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQor
ICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XQorICAgIGRpc3BhdGNoKDQp
CisKKy5vcEVxU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9lcSkKKyAg
ICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9lcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkaSA0W1BDXSwgdDMKKyAgICBhc3NlcnRO
b3RDb25zdGFudCh0MCkKKyAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCisgICAg
bG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKKyAgICBiaW5lcSB0MSwgQ2VsbFRh
ZywgLm9wRXFOdWxsSW1tZWRpYXRlCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0s
IHQxCisgICAgdGJueiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0
MV0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHQxCisgICAgam1wIC5vcEVxTnVsbE5vdEltbWVk
aWF0ZQorLm9wRXFOdWxsSW1tZWRpYXRlOgorICAgIGNpZXEgdDEsIE51bGxUYWcsIHQyCisgICAg
Y2llcSB0MSwgVW5kZWZpbmVkVGFnLCB0MQorICAgIG9yaSB0MiwgdDEKKy5vcEVxTnVsbE5vdElt
bWVkaWF0ZToKKyAgICBzdG9yZWkgQm9vbGVhblRhZywgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCisg
ICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAgZGlzcGF0Y2goMykK
KworCitfbGxpbnRfb3BfbmVxOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxMltQ
Q10sIHQyCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0
MiwgdDMsIHQxKQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQwLCB0MiwgdDApCisg
ICAgYmluZXEgdDIsIHQzLCAub3BOZXFTbG93CisgICAgYmllcSB0MiwgQ2VsbFRhZywgLm9wTmVx
U2xvdworICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAub3BOZXFTbG93CisgICAgbG9hZGkgNFtQQ10s
IHQyCisgICAgY2luZXEgdDAsIHQxLCB0MAorICAgIHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZz
ZXRbY2ZyLCB0MiwgOF0KKyAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0K
KyAgICBkaXNwYXRjaCg0KQorCisub3BOZXFTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX25lcSkKKyAgICBkaXNwYXRjaCg0KQorICAgIAorCitfbGxpbnRfb3BfbmVxX251
bGw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRp
IDRbUENdLCB0MworICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQorICAgIGxvYWRpIFRhZ09mZnNl
dFtjZnIsIHQwLCA4XSwgdDEKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0
MAorICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BOZXFOdWxsSW1tZWRpYXRlCisgICAgbG9hZHAg
SlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgdGJ6IFN0cnVjdHVyZTo6bV90eXBlSW5m
byArIFR5cGVJbmZvOjptX2ZsYWdzW3QxXSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgdDEKKyAg
ICBqbXAgLm9wTmVxTnVsbE5vdEltbWVkaWF0ZQorLm9wTmVxTnVsbEltbWVkaWF0ZToKKyAgICBj
aW5lcSB0MSwgTnVsbFRhZywgdDIKKyAgICBjaW5lcSB0MSwgVW5kZWZpbmVkVGFnLCB0MQorICAg
IGFuZGkgdDIsIHQxCisub3BOZXFOdWxsTm90SW1tZWRpYXRlOgorICAgIHN0b3JlaSBCb29sZWFu
VGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRb
Y2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCgzKQorCisKK21hY3JvIHN0cmljdEVxKGVxdWFsaXR5
T3BlcmF0aW9uLCBzbG93X3BhdGgpCisgICAgbG9hZGkgMTJbUENdLCB0MgorICAgIGxvYWRpIDhb
UENdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKKyAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MCwgdDIsIHQwKQorICAgIGJpbmVxIHQyLCB0MywgLnNs
b3cKKyAgICBiaWIgdDIsIExvd2VzdFRhZywgLnNsb3cKKyAgICBiaW5lcSB0MiwgQ2VsbFRhZywg
Lm5vdFN0cmluZworICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MgorICAgIGxv
YWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0MworICAgIGJibmVxIFN0cnVjdHVyZTo6bV90
eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDJdLCBTdHJpbmdUeXBlLCAubm90U3RyaW5nCisg
ICAgYmJlcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QzXSwgU3Ry
aW5nVHlwZSwgLnNsb3cKKy5ub3RTdHJpbmc6CisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgZXF1
YWxpdHlPcGVyYXRpb24odDAsIHQxLCB0MCkKKyAgICBzdG9yZWkgQm9vbGVhblRhZywgVGFnT2Zm
c2V0W2NmciwgdDIsIDhdCisgICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhd
CisgICAgZGlzcGF0Y2goNCkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkK
KyAgICBkaXNwYXRjaCg0KQorZW5kCisKK19sbGludF9vcF9zdHJpY3RlcToKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgc3RyaWN0RXEobWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpZXEg
bGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsIF9sbGludF9zbG93X3BhdGhfc3RyaWN0ZXEpCisKKwor
X2xsaW50X29wX25zdHJpY3RlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgc3RyaWN0RXEo
bWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpbmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5k
LCBfbGxpbnRfc2xvd19wYXRoX25zdHJpY3RlcSkKKworCitfbGxpbnRfb3BfbGVzczoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykK
KyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9sZXNzZXE6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2xlc3NlcSkKKyAgICBkaXNw
YXRjaCg0KQorCisKK19sbGludF9vcF9ncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9ncmVhdGVyKQorICAgIGRpc3BhdGNoKDQp
CisKKworX2xsaW50X29wX2dyZWF0ZXJlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3JlYXRlcmVxKQorICAgIGRpc3BhdGNoKDQpCisK
KworX2xsaW50X29wX3ByZV9pbmM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDRb
UENdLCB0MAorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgSW50MzJUYWcsIC5vcFBy
ZUluY1Nsb3cKKyAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MQorICAgIGJh
ZGRpbyAxLCB0MSwgLm9wUHJlSW5jU2xvdworICAgIHN0b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDIpCisKKy5vcFByZUluY1Nsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJlX2luYykKKyAgICBkaXNwYXRjaCgyKQorCisKK19s
bGludF9vcF9wcmVfZGVjOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA0W1BDXSwg
dDAKKyAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIEludDMyVGFnLCAub3BQcmVEZWNT
bG93CisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDEKKyAgICBic3ViaW8g
MSwgdDEsIC5vcFByZURlY1Nsb3cKKyAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0
MCwgOF0KKyAgICBkaXNwYXRjaCgyKQorCisub3BQcmVEZWNTbG93OgorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3ByZV9kZWMpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRf
b3BfcG9zdF9pbmM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAor
ICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgSW50
MzJUYWcsIC5vcFBvc3RJbmNTbG93CisgICAgYmllcSB0MCwgdDEsIC5vcFBvc3RJbmNEb25lCisg
ICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKKyAgICBtb3ZlIHQyLCB0Mwor
ICAgIGJhZGRpbyAxLCB0MywgLm9wUG9zdEluY1Nsb3cKKyAgICBzdG9yZWkgSW50MzJUYWcsIFRh
Z09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFtjZnIsIHQx
LCA4XQorICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQorLm9wUG9zdElu
Y0RvbmU6CisgICAgZGlzcGF0Y2goMykKKworLm9wUG9zdEluY1Nsb3c6CisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcG9zdF9pbmMpCisgICAgZGlzcGF0Y2goMykKKworCitfbGxp
bnRfb3BfcG9zdF9kZWM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0
MAorICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwg
SW50MzJUYWcsIC5vcFBvc3REZWNTbG93CisgICAgYmllcSB0MCwgdDEsIC5vcFBvc3REZWNEb25l
CisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDIKKyAgICBtb3ZlIHQyLCB0
MworICAgIGJzdWJpbyAxLCB0MywgLm9wUG9zdERlY1Nsb3cKKyAgICBzdG9yZWkgSW50MzJUYWcs
IFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFtjZnIs
IHQxLCA4XQorICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQorLm9wUG9z
dERlY0RvbmU6CisgICAgZGlzcGF0Y2goMykKKworLm9wUG9zdERlY1Nsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9zdF9kZWMpCisgICAgZGlzcGF0Y2goMykKKworCitf
bGxpbnRfb3BfdG9fanNudW1iZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhb
UENdLCB0MAorICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUo
dDAsIHQyLCB0MykKKyAgICBiaWVxIHQyLCBJbnQzMlRhZywgLm9wVG9Kc251bWJlcklzSW50Cisg
ICAgYmlhZXEgdDIsIEVtcHR5VmFsdWVUYWcsIC5vcFRvSnNudW1iZXJTbG93Cisub3BUb0pzbnVt
YmVySXNJbnQ6CisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBzdG9y
ZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BU
b0pzbnVtYmVyU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90b19qc251
bWJlcikKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9uZWdhdGU6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRpIDRbUENdLCB0MworICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQxLCB0MikKKyAgICBiaW5lcSB0MSwgSW50MzJU
YWcsIC5vcE5lZ2F0ZVNyY05vdEludAorICAgIGJ0aXogdDIsIDB4N2ZmZmZmZmYsIC5vcE5lZ2F0
ZVNsb3cKKyAgICBuZWdpIHQyCisgICAgc3RvcmVpIEludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCB0
MywgOF0KKyAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNw
YXRjaCgzKQorLm9wTmVnYXRlU3JjTm90SW50OgorICAgIGJpYSB0MSwgTG93ZXN0VGFnLCAub3BO
ZWdhdGVTbG93CisgICAgeG9yaSAweDgwMDAwMDAwLCB0MQorICAgIHN0b3JlaSB0MSwgVGFnT2Zm
c2V0W2NmciwgdDMsIDhdCisgICAgc3RvcmVpIHQyLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhd
CisgICAgZGlzcGF0Y2goMykKKworLm9wTmVnYXRlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9uZWdhdGUpCisgICAgZGlzcGF0Y2goMykKKworCittYWNybyBiaW5hcnlP
cEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBz
bG93X3BhdGgpCisgICAgbG9hZGkgMTJbUENdLCB0MgorICAgIGxvYWRpIDhbUENdLCB0MAorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKKyAgICBsb2FkQ29uc3RhbnRPclZh
cmlhYmxlMlJlZyh0MCwgdDIsIHQwKQorICAgIGJpbmVxIHQyLCBJbnQzMlRhZywgLm9wMU5vdElu
dAorICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLm9wMk5vdEludAorICAgIGxvYWRpIDRbUENdLCB0
MgorICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9yZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCisg
ICAgZGlzcGF0Y2goNSkKKworLm9wMU5vdEludDoKKyAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVm
aW5pdGVseSBub3QgYW4gaW50LCB0aGUgc2Vjb25kIG9wZXJhbmQgY291bGQgYmUgYW55dGhpbmcu
CisgICAgYmlhIHQyLCBMb3dlc3RUYWcsIC5zbG93CisgICAgYmliIHQzLCBMb3dlc3RUYWcsIC5v
cDFOb3RJbnRPcDJEb3VibGUKKyAgICBiaW5lcSB0MywgSW50MzJUYWcsIC5zbG93CisgICAgY2ky
ZCB0MSwgZnQxCisgICAgam1wIC5vcDFOb3RJbnRSZWFkeQorLm9wMU5vdEludE9wMkRvdWJsZToK
KyAgICBmaWkyZCB0MSwgdDMsIGZ0MQorLm9wMU5vdEludFJlYWR5OgorICAgIGxvYWRpIDRbUENd
LCB0MQorICAgIGZpaTJkIHQwLCB0MiwgZnQwCisgICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQw
KQorICAgIHN0b3JlZCBmdDAsIFtjZnIsIHQxLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcDJO
b3RJbnQ6CisgICAgIyBGaXJzdCBvcGVyYW5kIGlzIGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vj
b25kIG9wZXJhbmQgaXMgZGVmaW5pdGVseSBub3QuCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAg
YmlhIHQzLCBMb3dlc3RUYWcsIC5zbG93CisgICAgY2kyZCB0MCwgZnQwCisgICAgZmlpMmQgdDEs
IHQzLCBmdDEKKyAgICBkb3VibGVPcGVyYXRpb24oZnQxLCBmdDApCisgICAgc3RvcmVkIGZ0MCwg
W2NmciwgdDIsIDhdCisgICAgZGlzcGF0Y2goNSkKKworLnNsb3c6CisgICAgY2FsbFNsb3dQYXRo
KHNsb3dfcGF0aCkKKyAgICBkaXNwYXRjaCg1KQorZW5kCisKK21hY3JvIGJpbmFyeU9wKGludGVn
ZXJPcGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwgc2xvd19wYXRoKQorICAgIGJpbmFyeU9wQ3Vz
dG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChpbnQzMlRhZywgbGVmdCwgcmlnaHQsIHNsb3csIGlu
ZGV4KQorICAgICAgICAgICAgaW50ZWdlck9wZXJhdGlvbihsZWZ0LCByaWdodCwgc2xvdykKKyAg
ICAgICAgICAgIHN0b3JlaSBpbnQzMlRhZywgVGFnT2Zmc2V0W2NmciwgaW5kZXgsIDhdCisgICAg
ICAgICAgICBzdG9yZWkgcmlnaHQsIFBheWxvYWRPZmZzZXRbY2ZyLCBpbmRleCwgOF0KKyAgICAg
ICAgZW5kLAorICAgICAgICBkb3VibGVPcGVyYXRpb24sIHNsb3dfcGF0aCkKK2VuZAorCitfbGxp
bnRfb3BfYWRkOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaW5hcnlPcCgKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSBiYWRkaW8gbGVmdCwgcmlnaHQsIHNsb3cgZW5kLAor
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIGFkZGQgbGVmdCwgcmlnaHQgZW5kLAorICAgICAg
ICBfbGxpbnRfc2xvd19wYXRoX2FkZCkKKworCitfbGxpbnRfb3BfbXVsOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBiaW5hcnlPcEN1c3RvbVN0b3JlKAorICAgICAgICBtYWNybyAoaW50MzJU
YWcsIGxlZnQsIHJpZ2h0LCBzbG93LCBpbmRleCkKKyAgICAgICAgICAgIGNvbnN0IHNjcmF0Y2gg
PSBpbnQzMlRhZyAgICMgV2Uga25vdyB0aGF0IHdlIGNhbiByZXVzZSB0aGUgaW50MzJUYWcgcmVn
aXN0ZXIgc2luY2UgaXQgaGFzIGEgY29uc3RhbnQuCisgICAgICAgICAgICBtb3ZlIHJpZ2h0LCBz
Y3JhdGNoCisgICAgICAgICAgICBibXVsaW8gbGVmdCwgc2NyYXRjaCwgc2xvdworICAgICAgICAg
ICAgYnRpbnogc2NyYXRjaCwgLmRvbmUKKyAgICAgICAgICAgIGJpbHQgbGVmdCwgMCwgc2xvdwor
ICAgICAgICAgICAgYmlsdCByaWdodCwgMCwgc2xvdworICAgICAgICAuZG9uZToKKyAgICAgICAg
ICAgIHN0b3JlaSBJbnQzMlRhZywgVGFnT2Zmc2V0W2NmciwgaW5kZXgsIDhdCisgICAgICAgICAg
ICBzdG9yZWkgc2NyYXRjaCwgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XQorICAgICAgICBl
bmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgbXVsZCBsZWZ0LCByaWdodCBlbmQsCisg
ICAgICAgIF9sbGludF9zbG93X3BhdGhfbXVsKQorCisKK19sbGludF9vcF9zdWI6CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGJpbmFyeU9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHNsb3cpIGJzdWJpbyBsZWZ0LCByaWdodCwgc2xvdyBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCkgc3ViZCBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhf
c3ViKQorCisKK19sbGludF9vcF9kaXY6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpbmFy
eU9wQ3VzdG9tU3RvcmUoCisgICAgICAgIG1hY3JvIChpbnQzMlRhZywgbGVmdCwgcmlnaHQsIHNs
b3csIGluZGV4KQorICAgICAgICAgICAgY2kyZCBsZWZ0LCBmdDAKKyAgICAgICAgICAgIGNpMmQg
cmlnaHQsIGZ0MQorICAgICAgICAgICAgZGl2ZCBmdDAsIGZ0MQorICAgICAgICAgICAgYmNkMmkg
ZnQxLCByaWdodCwgLm5vdEludAorICAgICAgICAgICAgc3RvcmVpIGludDMyVGFnLCBUYWdPZmZz
ZXRbY2ZyLCBpbmRleCwgOF0KKyAgICAgICAgICAgIHN0b3JlaSByaWdodCwgUGF5bG9hZE9mZnNl
dFtjZnIsIGluZGV4LCA4XQorICAgICAgICAgICAgam1wIC5kb25lCisgICAgICAgIC5ub3RJbnQ6
CisgICAgICAgICAgICBzdG9yZWQgZnQxLCBbY2ZyLCBpbmRleCwgOF0KKyAgICAgICAgLmRvbmU6
CisgICAgICAgIGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBkaXZkIGxlZnQsIHJp
Z2h0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9kaXYpCisKKworX2xsaW50X29wX21v
ZDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfbW9kKQorICAgIGRpc3BhdGNoKDQpCisKKworbWFjcm8gYml0T3Aob3BlcmF0aW9uLCBzbG93
X3BhdGgsIGFkdmFuY2UpCisgICAgbG9hZGkgMTJbUENdLCB0MgorICAgIGxvYWRpIDhbUENdLCB0
MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQzLCB0MSkKKyAgICBsb2FkQ29uc3Rh
bnRPclZhcmlhYmxlMlJlZyh0MCwgdDIsIHQwKQorICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLnNs
b3cKKyAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5zbG93CisgICAgbG9hZGkgNFtQQ10sIHQyCisg
ICAgb3BlcmF0aW9uKHQxLCB0MCwgLnNsb3cpCisgICAgc3RvcmVpIHQzLCBUYWdPZmZzZXRbY2Zy
LCB0MiwgOF0KKyAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KKyAgICBk
aXNwYXRjaChhZHZhbmNlKQorCisuc2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoc2xvd19wYXRoKQor
ICAgIGRpc3BhdGNoKGFkdmFuY2UpCitlbmQKKworX2xsaW50X29wX2xzaGlmdDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dykgbHNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfbHNo
aWZ0LAorICAgICAgICA0KQorCisKK19sbGludF9vcF9yc2hpZnQ6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGJpdE9wKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHJzaGlm
dGkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3JzaGlmdCwKKyAg
ICAgICAgNCkKKworCitfbGxpbnRfb3BfdXJzaGlmdDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisg
ICAgYml0T3AoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykKKyAgICAgICAgICAg
IHVyc2hpZnRpIGxlZnQsIHJpZ2h0CisgICAgICAgICAgICBiaWx0IHJpZ2h0LCAwLCBzbG93Cisg
ICAgICAgIGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF91cnNoaWZ0LAorICAgICAgICA0
KQorCisKK19sbGludF9vcF9iaXRhbmQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGJpdE9w
KAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGFuZGkgbGVmdCwgcmlnaHQgZW5k
LAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdGFuZCwKKyAgICAgICAgNSkKKworCitfbGxp
bnRfb3BfYml0eG9yOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAg
bWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KSB4b3JpIGxlZnQsIHJpZ2h0IGVuZCwKKyAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9iaXR4b3IsCisgICAgICAgIDUpCisKKworX2xsaW50X29wX2JpdG9y
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBiaXRPcCgKKyAgICAgICAgbWFjcm8gKGxlZnQs
IHJpZ2h0LCBzbG93KSBvcmkgbGVmdCwgcmlnaHQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19w
YXRoX2JpdG9yLAorICAgICAgICA1KQorCisKK19sbGludF9vcF9iaXRub3Q6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MQorICAgIGxvYWRpIDRbUENdLCB0MAorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDEsIHQyLCB0MykKKyAgICBiaW5lcSB0MiwgSW50MzJU
YWcsIC5vcEJpdG5vdFNsb3cKKyAgICBub3RpIHQzCisgICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRb
Y2ZyLCB0MCwgOF0KKyAgICBzdG9yZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KKyAg
ICBkaXNwYXRjaCgzKQorCisub3BCaXRub3RTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2JpdG5vdCkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9jaGVja19o
YXNfaW5zdGFuY2U6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDRbUENdLCB0MQor
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQxLCBDZWxsVGFnLCB0MCwgLm9wQ2hl
Y2tIYXNJbnN0YW5jZVNsb3cpCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQw
CisgICAgYnRieiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0MF0s
IEltcGxlbWVudHNIYXNJbnN0YW5jZSwgLm9wQ2hlY2tIYXNJbnN0YW5jZVNsb3cKKyAgICBkaXNw
YXRjaCgyKQorCisub3BDaGVja0hhc0luc3RhbmNlU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xs
aW50X3Nsb3dfcGF0aF9jaGVja19oYXNfaW5zdGFuY2UpCisgICAgZGlzcGF0Y2goMikKKworCitf
bGxpbnRfb3BfaW5zdGFuY2VvZjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgIyBDaGVjayB0
aGF0IGJhc2VWYWwgaW1wbGVtZW50cyB0aGUgZGVmYXVsdCBIYXNJbnN0YW5jZSBiZWhhdmlvci4K
KyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBkZXByZWNhdGVkLgorICAgIGxvYWRpIDEyW1BD
XSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZFVuY2hlY2tlZCh0MSwgdDAp
CisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQwCisgICAgYnRieiBTdHJ1Y3R1
cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0MF0sIEltcGxlbWVudHNEZWZhdWx0
SGFzSW5zdGFuY2UsIC5vcEluc3RhbmNlb2ZTbG93CisgICAgCisgICAgIyBBY3R1YWxseSBkbyB0
aGUgd29yay4KKyAgICBsb2FkaSAxNltQQ10sIHQwCisgICAgbG9hZGkgNFtQQ10sIHQzCisgICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQxLCAub3BJbnN0YW5j
ZW9mU2xvdykKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QxXSwgdDIKKyAgICBiYmIg
U3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0sIE9iamVjdFR5cGUs
IC5vcEluc3RhbmNlb2ZTbG93CisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQyLCAub3BJbnN0YW5jZW9mU2xvdykKKyAg
ICAKKyAgICAjIFJlZ2lzdGVyIHN0YXRlOiB0MSA9IHByb3RvdHlwZSwgdDIgPSB2YWx1ZQorICAg
IG1vdmUgMSwgdDAKKy5vcEluc3RhbmNlb2ZMb29wOgorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1
Y3R1cmVbdDJdLCB0MgorICAgIGxvYWRpIFN0cnVjdHVyZTo6bV9wcm90b3R5cGUgKyBQYXlsb2Fk
T2Zmc2V0W3QyXSwgdDIKKyAgICBicGVxIHQyLCB0MSwgLm9wSW5zdGFuY2VvZkRvbmUKKyAgICBi
dGlueiB0MiwgLm9wSW5zdGFuY2VvZkxvb3AKKworICAgIG1vdmUgMCwgdDAKKy5vcEluc3RhbmNl
b2ZEb25lOgorICAgIHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KKyAg
ICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCg1KQor
Cisub3BJbnN0YW5jZW9mU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9p
bnN0YW5jZW9mKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX3R5cGVvZjoKKyAgICB0
cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdHlwZW9m
KQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX3VuZGVmaW5lZDoKKyAgICB0cmFj
ZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfdW5kZWZp
bmVkKQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2lzX2Jvb2xlYW46CisgICAgdHJh
Y2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Jvb2xl
YW4pCisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfbnVtYmVyOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19udW1iZXIp
CisgICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfc3RyaW5nOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19zdHJpbmcpCisg
ICAgZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfb2JqZWN0OgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pc19vYmplY3QpCisgICAg
ZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfaXNfZnVuY3Rpb246CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX2Z1bmN0aW9uKQorICAg
IGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX2luOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9pbikKKyAgICBkaXNwYXRjaCg0KQorCisK
K19sbGludF9vcF9yZXNvbHZlOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX3Jlc29sdmVfc2tpcDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9za2lwKQorICAgIGRpc3BhdGNoKDUpCisKKworbWFj
cm8gcmVzb2x2ZUdsb2JhbChzaXplLCBzbG93KQorICAgICMgT3BlcmFuZHMgYXJlIGFzIGZvbGxv
d3M6CisgICAgIyA0W1BDXSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZC4KKyAgICAjIDhbUENd
ICAgUHJvcGVydHkgaWRlbnRpZmllciBpbmRleCBpbiB0aGUgY29kZSBibG9jay4KKyAgICAjIDEy
W1BDXSAgU3RydWN0dXJlIHBvaW50ZXIsIGluaXRpYWxpemVkIHRvIDAgYnkgYnl0ZWNvZGUgZ2Vu
ZXJhdG9yLgorICAgICMgMTZbUENdICBPZmZzZXQgaW4gZ2xvYmFsIG9iamVjdCwgaW5pdGlhbGl6
ZWQgdG8gMCBieSBieXRlY29kZSBnZW5lcmF0b3IuCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0s
IHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCisgICAgbG9h
ZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCisgICAgYnBuZXEgdDEsIDEyW1BDXSwgc2xv
dworICAgIGxvYWRpIDE2W1BDXSwgdDEKKyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0
b3JhZ2VbdDBdLCB0MAorICAgIGxvYWRpIFRhZ09mZnNldFt0MCwgdDEsIDhdLCB0MgorICAgIGxv
YWRpIFBheWxvYWRPZmZzZXRbdDAsIHQxLCA4XSwgdDMKKyAgICBsb2FkaSA0W1BDXSwgdDAKKyAg
ICBzdG9yZWkgdDIsIFRhZ09mZnNldFtjZnIsIHQwLCA4XQorICAgIHN0b3JlaSB0MywgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XQorICAgIGxvYWRpIChzaXplIC0gMSkgKiA0W1BDXSwgdDAKKyAg
ICB2YWx1ZVByb2ZpbGUodDIsIHQzLCB0MCkKK2VuZAorCitfbGxpbnRfb3BfcmVzb2x2ZV9nbG9i
YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIHJlc29sdmVHbG9iYWwoNiwgLm9wUmVzb2x2
ZUdsb2JhbFNsb3cpCisgICAgZGlzcGF0Y2goNikKKworLm9wUmVzb2x2ZUdsb2JhbFNsb3c6Cisg
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVzb2x2ZV9nbG9iYWwpCisgICAgZGlz
cGF0Y2goNikKKworCisjIEdpdmVzIHlvdSB0aGUgc2NvcGUgaW4gdDAsIHdoaWxlIGFsbG93aW5n
IHlvdSB0byBvcHRpb25hbGx5IHBlcmZvcm0gYWRkaXRpb25hbCBjaGVja3Mgb24gdGhlCisjIHNj
b3BlcyBhcyB0aGV5IGFyZSB0cmF2ZXJzZWQuIHNjb3BlQ2hlY2soKSBpcyBjYWxsZWQgd2l0aCB0
d28gYXJndW1lbnRzOiB0aGUgcmVnaXN0ZXIKKyMgaG9sZGluZyB0aGUgc2NvcGUsIGFuZCBhIHJl
Z2lzdGVyIHRoYXQgY2FuIGJlIHVzZWQgZm9yIHNjcmF0Y2guIE5vdGUgdGhhdCB0aGlzIGRvZXMg
bm90CisjIHVzZSB0Mywgc28geW91IGNhbiBob2xkIHN0dWZmIGluIHQzIGlmIG5lZWQgYmUuCitt
YWNybyBnZXRTY29wZShkZUJydWlqaW5JbmRleE9wZXJhbmQsIHNjb3BlQ2hlY2spCisgICAgbG9h
ZHAgU2NvcGVDaGFpbiArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDAKKyAgICBsb2FkaSBkZUJydWlq
aW5JbmRleE9wZXJhbmQsIHQyCisgICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKyAgICAKKyAgICBs
b2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDEKKyAgICBiaW5lcSBDb2RlQmxvY2s6Om1fY29kZVR5cGVb
dDFdLCBGdW5jdGlvbkNvZGUsIC5sb29wCisgICAgYnRieiBDb2RlQmxvY2s6Om1fbmVlZHNGdWxs
U2NvcGVDaGFpblt0MV0sIC5sb29wCisgICAgCisgICAgbG9hZGkgQ29kZUJsb2NrOjptX2FjdGl2
YXRpb25SZWdpc3Rlclt0MV0sIHQxCisKKyAgICAjIE5lZWQgdG8gY29uZGl0aW9uYWxseSBza2lw
IG92ZXIgb25lIHNjb3BlLgorICAgIGJpZXEgVGFnT2Zmc2V0W2NmciwgdDEsIDhdLCBFbXB0eVZh
bHVlVGFnLCAubm9BY3RpdmF0aW9uCisgICAgc2NvcGVDaGVjayh0MCwgdDEpCisgICAgbG9hZHAg
U2NvcGVDaGFpbk5vZGU6Om5leHRbdDBdLCB0MAorLm5vQWN0aXZhdGlvbjoKKyAgICBzdWJpIDEs
IHQyCisgICAgCisgICAgYnRpeiB0MiwgLmRvbmUKKy5sb29wOgorICAgIHNjb3BlQ2hlY2sodDAs
IHQxKQorICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpuZXh0W3QwXSwgdDAKKyAgICBzdWJpIDEs
IHQyCisgICAgYnRpbnogdDIsIC5sb29wCisKKy5kb25lOgorZW5kCisKK19sbGludF9vcF9yZXNv
bHZlX2dsb2JhbF9keW5hbWljOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBKSVRT
dGFja0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDMKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmFj
dGl2YXRpb25TdHJ1Y3R1cmVbdDNdLCB0MworICAgIGdldFNjb3BlKAorICAgICAgICAyMFtQQ10s
CisgICAgICAgIG1hY3JvIChzY29wZSwgc2NyYXRjaCkKKyAgICAgICAgICAgIGxvYWRwIFNjb3Bl
Q2hhaW5Ob2RlOjpvYmplY3Rbc2NvcGVdLCBzY3JhdGNoCisgICAgICAgICAgICBicG5lcSBKU0Nl
bGw6Om1fc3RydWN0dXJlW3NjcmF0Y2hdLCB0MywgLm9wUmVzb2x2ZUdsb2JhbER5bmFtaWNTdXBl
clNsb3cKKyAgICAgICAgZW5kKQorICAgIHJlc29sdmVHbG9iYWwoNywgLm9wUmVzb2x2ZUdsb2Jh
bER5bmFtaWNTbG93KQorICAgIGRpc3BhdGNoKDcpCisKKy5vcFJlc29sdmVHbG9iYWxEeW5hbWlj
U3VwZXJTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfZm9y
X3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWMpCisgICAgZGlzcGF0Y2goNykKKworLm9wUmVzb2x2ZUds
b2JhbER5bmFtaWNTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29s
dmVfZ2xvYmFsX2R5bmFtaWMpCisgICAgZGlzcGF0Y2goNykKKworCitfbGxpbnRfb3BfZ2V0X3Nj
b3BlZF92YXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgT3BlcmFuZHMgYXJlIGFzIGZv
bGxvd3M6CisgICAgIyA0W1BDXSAgIERlc3RpbmF0aW9uIGZvciB0aGUgbG9hZC4KKyAgICAjIDhb
UENdICAgSW5kZXggb2YgcmVnaXN0ZXIgaW4gdGhlIHNjb3BlLgorICAgICMgMTJbUENdICBEZSBC
cnVpamluIGluZGV4LgorICAgIGdldFNjb3BlKDEyW1BDXSwgbWFjcm8gKHNjb3BlLCBzY3JhdGNo
KSBlbmQpCisgICAgbG9hZGkgNFtQQ10sIHQxCisgICAgbG9hZGkgOFtQQ10sIHQyCisgICAgbG9h
ZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFt0MF0sIHQwCisgICAgbG9hZHAgSlNWYXJpYWJsZU9i
amVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRpIFRhZ09mZnNldFt0MCwgdDIsIDhd
LCB0MworICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdDAsIHQyLCA4XSwgdDAKKyAgICBzdG9yZWkg
dDMsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQxLCA4XQorICAgIGxvYWRpIDE2W1BDXSwgdDEKKyAgICB2YWx1ZVByb2ZpbGUodDMsIHQw
LCB0MSkKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9wdXRfc2NvcGVkX3ZhcjoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgZ2V0U2NvcGUoOFtQQ10sIG1hY3JvIChzY29wZSwgc2Ny
YXRjaCkgZW5kKQorICAgIGxvYWRpIDEyW1BDXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHQxLCB0MywgdDIpCisgICAgbG9hZGkgNFtQQ10sIHQxCisgICAgd3JpdGVCYXJyaWVyKHQz
LCB0MikKKyAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3QwXSwgdDAKKyAgICBsb2Fk
cCBKU1ZhcmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCisgICAgc3RvcmVpIHQzLCBU
YWdPZmZzZXRbdDAsIHQxLCA4XQorICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFt0MCwgdDEs
IDhdCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRfb3BfZ2V0X2dsb2JhbF92YXI6CisgICAg
dHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDhbUENdLCB0MQorICAgIGxvYWRpIDRbUENdLCB0
MworICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MAorICAgIGxvYWRwIENvZGVCbG9jazo6bV9n
bG9iYWxPYmplY3RbdDBdLCB0MAorICAgIGxvYWRwIEpTR2xvYmFsT2JqZWN0OjptX3JlZ2lzdGVy
c1t0MF0sIHQwCisgICAgbG9hZGkgVGFnT2Zmc2V0W3QwLCB0MSwgOF0sIHQyCisgICAgbG9hZGkg
UGF5bG9hZE9mZnNldFt0MCwgdDEsIDhdLCB0MQorICAgIHN0b3JlaSB0MiwgVGFnT2Zmc2V0W2Nm
ciwgdDMsIDhdCisgICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCisgICAg
bG9hZGkgMTJbUENdLCB0MworICAgIHZhbHVlUHJvZmlsZSh0MiwgdDEsIHQzKQorICAgIGRpc3Bh
dGNoKDQpCisKKworX2xsaW50X29wX3B1dF9nbG9iYWxfdmFyOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBsb2FkaSA4W1BDXSwgdDEKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDAKKyAg
ICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAKKyAgICBsb2FkcCBKU0ds
b2JhbE9iamVjdDo6bV9yZWdpc3RlcnNbdDBdLCB0MAorICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDEsIHQyLCB0MykKKyAgICBsb2FkaSA0W1BDXSwgdDEKKyAgICB3cml0ZUJhcnJpZXIodDIs
IHQzKQorICAgIHN0b3JlaSB0MiwgVGFnT2Zmc2V0W3QwLCB0MSwgOF0KKyAgICBzdG9yZWkgdDMs
IFBheWxvYWRPZmZzZXRbdDAsIHQxLCA4XQorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29w
X3Jlc29sdmVfYmFzZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9s
bGludF9zbG93X3BhdGhfcmVzb2x2ZV9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50
X29wX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHM6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2Vuc3VyZV9wcm9wZXJ0eV9leGlzdHMpCisgICAg
ZGlzcGF0Y2goMykKKworCitfbGxpbnRfb3BfcmVzb2x2ZV93aXRoX2Jhc2U6CisgICAgdHJhY2VF
eGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmVfd2l0
aF9iYXNlKQorICAgIGRpc3BhdGNoKDUpCisKKworX2xsaW50X29wX3Jlc29sdmVfd2l0aF90aGlz
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9yZXNvbHZlX3dpdGhfdGhpcykKKyAgICBkaXNwYXRjaCg1KQorCisKK19sbGludF9vcF9nZXRf
YnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgICMgV2Ugb25seSBkbyBtb25vbW9ycGhp
YyBnZXRfYnlfaWQgY2FjaGluZyBmb3Igbm93LCBhbmQgd2UgZG8gbm90IG1vZGlmeSB0aGUKKyAg
ICAjIG9wY29kZS4gV2UgZG8sIGhvd2V2ZXIsIGFsbG93IGZvciB0aGUgY2FjaGUgdG8gY2hhbmdl
IGFueXRpbWUgaWYgZmFpbHMsIHNpbmNlCisgICAgIyBwaW5nLXBvbmdpbmcgaXMgZnJlZS4gQXQg
YmVzdCB3ZSBnZXQgbHVja3kgYW5kIHRoZSBnZXRfYnlfaWQgd2lsbCBjb250aW51ZQorICAgICMg
dG8gdGFrZSBmYXN0IHBhdGggb24gdGhlIG5ldyBjYWNoZS4gQXQgd29yc3Qgd2UgdGFrZSBzbG93
IHBhdGgsIHdoaWNoIGlzIHdoYXQKKyAgICAjIHdlIHdvdWxkIGhhdmUgYmVlbiBkb2luZyBhbnl3
YXkuCisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZGkgMTZbUENdLCB0MQorICAgIGxvYWRD
b25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxsVGFnLCB0MywgLm9wR2V0QnlJZFNsb3cp
CisgICAgbG9hZGkgMjBbUENdLCB0MgorICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3Rv
cmFnZVt0M10sIHQwCisgICAgYnBuZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0M10sIHQxLCAub3BH
ZXRCeUlkU2xvdworICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGxvYWRpIFRhZ09mZnNldFt0MCwg
dDJdLCB0MworICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdDAsIHQyXSwgdDIKKyAgICBzdG9yZWkg
dDMsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQorICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQxLCA4XQorICAgIGxvYWRpIDMyW1BDXSwgdDEKKyAgICB2YWx1ZVByb2ZpbGUodDMsIHQy
LCB0MSkKKyAgICBkaXNwYXRjaCg5KQorCisub3BHZXRCeUlkU2xvdzoKKyAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfaWQpCisgICAgZGlzcGF0Y2goOSkKKworCitfbGxp
bnRfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGg6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxv
YWRpIDhbUENdLCB0MAorICAgIGxvYWRpIDRbUENdLCB0MQorICAgIGJpbmVxIFRhZ09mZnNldFtj
ZnIsIHQwLCA4XSwgRW1wdHlWYWx1ZVRhZywgLm9wR2V0QXJndW1lbnRzTGVuZ3RoU2xvdworICAg
IGxvYWRpIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQyCisgICAgc3ViaSAx
LCB0MgorICAgIHN0b3JlaSBJbnQzMlRhZywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCisgICAgc3Rv
cmVpIHQyLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDEsIDhdCisgICAgZGlzcGF0Y2goNCkKKworLm9w
R2V0QXJndW1lbnRzTGVuZ3RoU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9nZXRfYXJndW1lbnRzX2xlbmd0aCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19sbGludF9vcF9w
dXRfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDRbUENdLCB0MworICAg
IGxvYWRpIDE2W1BDXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0Mywg
Q2VsbFRhZywgdDAsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpIDEyW1BDXSwgdDIKKyAgICBs
b2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGJwbmVxIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKKyAgICBsb2FkaSAyMFtQQ10s
IHQxCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDIsIHQwLCB0MikKKyAgICB3cml0
ZUJhcnJpZXIodDAsIHQyKQorICAgIHN0b3JlaSB0MCwgVGFnT2Zmc2V0W3QzLCB0MV0KKyAgICBz
dG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbdDMsIHQxXQorICAgIGRpc3BhdGNoKDkpCisKKy5vcFB1
dEJ5SWRTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pZCkK
KyAgICBkaXNwYXRjaCg5KQorCisKK21hY3JvIHB1dEJ5SWRUcmFuc2l0aW9uKGFkZGl0aW9uYWxD
aGVja3MpCisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGxvYWRpIDRbUENdLCB0MworICAgIGxv
YWRpIDE2W1BDXSwgdDEKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MywgQ2Vs
bFRhZywgdDAsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpIDEyW1BDXSwgdDIKKyAgICBicG5l
cSBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEsIC5vcFB1dEJ5SWRTbG93CisgICAgYWRkaXRp
b25hbENoZWNrcyh0MSwgdDMsIC5vcFB1dEJ5SWRTbG93KQorICAgIGxvYWRpIDIwW1BDXSwgdDEK
KyAgICBsb2FkcCBKU09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDBdLCB0MworICAgIGFkZHAg
dDEsIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDIsIHQxLCB0MikKKyAgICB3
cml0ZUJhcnJpZXIodDEsIHQyKQorICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W3QzXQorICAgIGxv
YWRpIDI0W1BDXSwgdDEKKyAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbdDNdCisgICAgc3Rv
cmVwIHQxLCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXQorICAgIGRpc3BhdGNoKDkpCitlbmQKKwor
X2xsaW50X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX2RpcmVjdDoKKyAgICBwdXRCeUlkVHJhbnNp
dGlvbihtYWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KSBlbmQpCisKKworX2xsaW50
X29wX3B1dF9ieV9pZF90cmFuc2l0aW9uX25vcm1hbDoKKyAgICBwdXRCeUlkVHJhbnNpdGlvbigK
KyAgICAgICAgbWFjcm8gKG9sZFN0cnVjdHVyZSwgc2NyYXRjaCwgc2xvdykKKyAgICAgICAgICAg
IGNvbnN0IHByb3RvQ2VsbCA9IG9sZFN0cnVjdHVyZSAgICMgUmV1c2luZyB0aGUgb2xkU3RydWN0
dXJlIHJlZ2lzdGVyIGZvciB0aGUgcHJvdG8KKyAgICAgICAgCisgICAgICAgICAgICBsb2FkcCAy
OFtQQ10sIHNjcmF0Y2gKKyAgICAgICAgICAgIGFzc2VydChtYWNybyAob2spIGJ0cG56IHNjcmF0
Y2gsIG9rIGVuZCkKKyAgICAgICAgICAgIGxvYWRwIFN0cnVjdHVyZUNoYWluOjptX3ZlY3Rvcltz
Y3JhdGNoXSwgc2NyYXRjaAorICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRwbnogc2Ny
YXRjaCwgb2sgZW5kKQorICAgICAgICAgICAgYmllcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlICsg
VGFnT2Zmc2V0W29sZFN0cnVjdHVyZV0sIE51bGxUYWcsIC5kb25lCisgICAgICAgIC5sb29wOgor
ICAgICAgICAgICAgbG9hZGkgU3RydWN0dXJlOjptX3Byb3RvdHlwZSArIFBheWxvYWRPZmZzZXRb
b2xkU3RydWN0dXJlXSwgcHJvdG9DZWxsCisgICAgICAgICAgICBsb2FkcCBKU0NlbGw6Om1fc3Ry
dWN0dXJlW3Byb3RvQ2VsbF0sIG9sZFN0cnVjdHVyZQorICAgICAgICAgICAgYnBuZXEgb2xkU3Ry
dWN0dXJlLCBbc2NyYXRjaF0sIHNsb3cKKyAgICAgICAgICAgIGFkZHAgNCwgc2NyYXRjaAorICAg
ICAgICAgICAgYmluZXEgU3RydWN0dXJlOjptX3Byb3RvdHlwZSArIFRhZ09mZnNldFtvbGRTdHJ1
Y3R1cmVdLCBOdWxsVGFnLCAubG9vcAorICAgICAgICAuZG9uZToKKyAgICAgICAgZW5kKQorCisK
K19sbGludF9vcF9kZWxfYnlfaWQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2RlbF9ieV9pZCkKKyAgICBkaXNwYXRjaCg0KQorCisKK19s
bGludF9vcF9nZXRfYnlfdmFsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDEKKyAgICBsb2FkaSA4W1BDXSwgdDIKKyAgICBsb2FkaSAxMltQQ10sIHQz
CisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDFdLCB0MQorICAgIGxvYWRDb25z
dGFudE9yVmFyaWFibGVQYXlsb2FkKHQyLCBDZWxsVGFnLCB0MCwgLm9wR2V0QnlWYWxTbG93KQor
ICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5mb1t0MV0sIHQyCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDMsIEludDMyVGFnLCB0MSwgLm9wR2V0QnlWYWxT
bG93KQorICAgIGJwbmVxIFt0MF0sIHQyLCAub3BHZXRCeVZhbFNsb3cKKyAgICBsb2FkcCBKU0Fy
cmF5OjptX3N0b3JhZ2VbdDBdLCB0MworICAgIGJpYWVxIHQxLCBKU0FycmF5OjptX3ZlY3Rvckxl
bmd0aFt0MF0sIC5vcEdldEJ5VmFsU2xvdworICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGxvYWRp
IEFycmF5U3RvcmFnZTo6bV92ZWN0b3IgKyBUYWdPZmZzZXRbdDMsIHQxLCA4XSwgdDIKKyAgICBs
b2FkaSBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yICsgUGF5bG9hZE9mZnNldFt0MywgdDEsIDhdLCB0
MQorICAgIGJpZXEgdDIsIEVtcHR5VmFsdWVUYWcsIC5vcEdldEJ5VmFsU2xvdworICAgIHN0b3Jl
aSB0MiwgVGFnT2Zmc2V0W2NmciwgdDAsIDhdCisgICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0
W2NmciwgdDAsIDhdCisgICAgbG9hZGkgMTZbUENdLCB0MAorICAgIHZhbHVlUHJvZmlsZSh0Miwg
dDEsIHQwKQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEJ5VmFsU2xvdzoKKyAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKDUpCisKKwor
X2xsaW50X29wX2dldF9hcmd1bWVudF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAg
IGxvYWRpIDhbUENdLCB0MAorICAgIGxvYWRpIDEyW1BDXSwgdDEKKyAgICBiaW5lcSBUYWdPZmZz
ZXRbY2ZyLCB0MCwgOF0sIEVtcHR5VmFsdWVUYWcsIC5vcEdldEFyZ3VtZW50QnlWYWxTbG93Cisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDEsIEludDMyVGFnLCB0MiwgLm9wR2V0
QXJndW1lbnRCeVZhbFNsb3cpCisgICAgYWRkaSAxLCB0MgorICAgIGxvYWRpIEFyZ3VtZW50Q291
bnQgKyBQYXlsb2FkT2Zmc2V0W2Nmcl0sIHQxCisgICAgYmlhZXEgdDIsIHQxLCAub3BHZXRBcmd1
bWVudEJ5VmFsU2xvdworICAgIG5lZ2kgdDIKKyAgICBsb2FkaSA0W1BDXSwgdDMKKyAgICBsb2Fk
aSBUaGlzQXJndW1lbnRPZmZzZXQgKyBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0sIHQwCisgICAgbG9h
ZGkgVGhpc0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgdDEKKyAg
ICBzdG9yZWkgdDAsIFRhZ09mZnNldFtjZnIsIHQzLCA4XQorICAgIHN0b3JlaSB0MSwgUGF5bG9h
ZE9mZnNldFtjZnIsIHQzLCA4XQorICAgIGRpc3BhdGNoKDUpCisKKy5vcEdldEFyZ3VtZW50QnlW
YWxTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9hcmd1bWVudF9i
eV92YWwpCisgICAgZGlzcGF0Y2goNSkKKworCitfbGxpbnRfb3BfZ2V0X2J5X3BuYW1lOgorICAg
IHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxMltQQ10sIHQwCisgICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQxLCAub3BHZXRCeVBuYW1lU2xvdykKKyAg
ICBsb2FkaSAxNltQQ10sIHQwCisgICAgYnBuZXEgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwg
OF0sIC5vcEdldEJ5UG5hbWVTbG93CisgICAgbG9hZGkgOFtQQ10sIHQwCisgICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQyLCAub3BHZXRCeVBuYW1lU2xvdykK
KyAgICBsb2FkaSAyMFtQQ10sIHQwCisgICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4
XSwgdDMKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwgdDAKKyAgICBicG5lcSB0
MCwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1Y3R1cmVbdDNdLCAub3BHZXRC
eVBuYW1lU2xvdworICAgIGxvYWRpIDI0W1BDXSwgdDAKKyAgICBsb2FkaSBbY2ZyLCB0MCwgOF0s
IHQwCisgICAgc3ViaSAxLCB0MAorICAgIGJpYWVxIHQwLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9y
OjptX251bUNhY2hlYWJsZVNsb3RzW3QzXSwgLm9wR2V0QnlQbmFtZVNsb3cKKyAgICBsb2FkcCBK
U09iamVjdDo6bV9wcm9wZXJ0eVN0b3JhZ2VbdDJdLCB0MgorICAgIGxvYWRpIFRhZ09mZnNldFt0
MiwgdDAsIDhdLCB0MQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbdDIsIHQwLCA4XSwgdDMKKyAg
ICBsb2FkaSA0W1BDXSwgdDAKKyAgICBzdG9yZWkgdDEsIFRhZ09mZnNldFtjZnIsIHQwLCA4XQor
ICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoKDcp
CisKKy5vcEdldEJ5UG5hbWVTbG93OgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X2dldF9ieV9wbmFtZSkKKyAgICBkaXNwYXRjaCg3KQorCisKK19sbGludF9vcF9wdXRfYnlfdmFs
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDEsIC5vcFB1dEJ5VmFsU2xvdykK
KyAgICBsb2FkaSA4W1BDXSwgdDAKKyAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0
MCwgSW50MzJUYWcsIHQyLCAub3BQdXRCeVZhbFNsb3cpCisgICAgbG9hZHAgQ29kZUJsb2NrW2Nm
cl0sIHQwCisgICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2JhbERhdGFbdDBdLCB0MAorICAgIGxv
YWRwIEpTR2xvYmFsRGF0YTo6anNBcnJheUNsYXNzSW5mb1t0MF0sIHQwCisgICAgYnBuZXEgW3Qx
XSwgdDAsIC5vcFB1dEJ5VmFsU2xvdworICAgIGJpYWVxIHQyLCBKU0FycmF5OjptX3ZlY3Rvckxl
bmd0aFt0MV0sIC5vcFB1dEJ5VmFsU2xvdworICAgIGxvYWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0
MV0sIHQwCisgICAgYmllcSBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yICsgVGFnT2Zmc2V0W3QwLCB0
MiwgOF0sIEVtcHR5VmFsdWVUYWcsIC5vcFB1dEJ5VmFsRW1wdHkKKy5vcFB1dEJ5VmFsU3RvcmVS
ZXN1bHQ6CisgICAgbG9hZGkgMTJbUENdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUy
UmVnKHQzLCB0MSwgdDMpCisgICAgd3JpdGVCYXJyaWVyKHQxLCB0MykKKyAgICBzdG9yZWkgdDEs
IEFycmF5U3RvcmFnZTo6bV92ZWN0b3IgKyBUYWdPZmZzZXRbdDAsIHQyLCA4XQorICAgIHN0b3Jl
aSB0MywgQXJyYXlTdG9yYWdlOjptX3ZlY3RvciArIFBheWxvYWRPZmZzZXRbdDAsIHQyLCA4XQor
ICAgIGRpc3BhdGNoKDQpCisKKy5vcFB1dEJ5VmFsRW1wdHk6CisgICAgYWRkaSAxLCBBcnJheVN0
b3JhZ2U6Om1fbnVtVmFsdWVzSW5WZWN0b3JbdDBdCisgICAgYmliIHQyLCBBcnJheVN0b3JhZ2U6
Om1fbGVuZ3RoW3QwXSwgLm9wUHV0QnlWYWxTdG9yZVJlc3VsdAorICAgIGFkZGkgMSwgdDIsIHQx
CisgICAgc3RvcmVpIHQxLCBBcnJheVN0b3JhZ2U6Om1fbGVuZ3RoW3QwXQorICAgIGptcCAub3BQ
dXRCeVZhbFN0b3JlUmVzdWx0CisKKy5vcFB1dEJ5VmFsU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfdmFsKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50
X29wX2RlbF9ieV92YWw6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0aChf
bGxpbnRfc2xvd19wYXRoX2RlbF9ieV92YWwpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxpbnRf
b3BfcHV0X2J5X2luZGV4OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgo
X2xsaW50X3Nsb3dfcGF0aF9wdXRfYnlfaW5kZXgpCisgICAgZGlzcGF0Y2goNCkKKworCitfbGxp
bnRfb3BfcHV0X2dldHRlcl9zZXR0ZXI6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9nZXR0ZXJfc2V0dGVyKQorICAgIGRpc3BhdGNo
KDUpCisKKworX2xsaW50X29wX2xvb3A6CisgICAgbm9wCitfbGxpbnRfb3Bfam1wOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBkaXNwYXRjaEJyYW5jaCg0W1BDXSkKKworCitfbGxpbnRfb3Bf
am1wX3Njb3BlczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfam1wX3Njb3BlcykKKyAgICBkaXNwYXRjaCgwKQorCisKK21hY3JvIGp1bXBU
cnVlT3JGYWxzZShjb25kaXRpb25PcCwgc2xvdykKKyAgICBsb2FkaSA0W1BDXSwgdDEKKyAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgQm9vbGVhblRhZywgdDAsIC5zbG93KQor
ICAgIGNvbmRpdGlvbk9wKHQwLCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMpCisKKy50YXJnZXQ6
CisgICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10pCisKKy5zbG93OgorICAgIGNhbGxTbG93UGF0aChz
bG93KQorICAgIGRpc3BhdGNoKDApCitlbmQKKworX2xsaW50X29wX2xvb3BfaWZfdHJ1ZToKKyAg
ICBub3AKK19sbGludF9vcF9qdHJ1ZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAganVtcFRy
dWVPckZhbHNlKAorICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkgYnRpbnogdmFsdWUsIHRh
cmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfanRydWUpCisKKworX2xsaW50X29w
X2xvb3BfaWZfZmFsc2U6CisgICAgbm9wCitfbGxpbnRfb3BfamZhbHNlOgorICAgIHRyYWNlRXhl
Y3V0aW9uKCkKKyAgICBqdW1wVHJ1ZU9yRmFsc2UoCisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFy
Z2V0KSBidGl6IHZhbHVlLCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2pm
YWxzZSkKKworCittYWNybyBlcXVhbE51bGwoY2VsbEhhbmRsZXIsIGltbWVkaWF0ZUhhbmRsZXIp
CisgICAgbG9hZGkgNFtQQ10sIHQwCisgICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCB0
MQorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCisgICAgYmluZXEgdDEs
IENlbGxUYWcsIC5pbW1lZGlhdGUKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwg
dDIKKyAgICBjZWxsSGFuZGxlcihTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV9m
bGFnc1t0Ml0sIC50YXJnZXQpCisgICAgZGlzcGF0Y2goMykKKworLnRhcmdldDoKKyAgICBkaXNw
YXRjaEJyYW5jaCg4W1BDXSkKKworLmltbWVkaWF0ZToKKyAgICBvcmkgMSwgdDEKKyAgICBpbW1l
ZGlhdGVIYW5kbGVyKHQxLCAudGFyZ2V0KQorICAgIGRpc3BhdGNoKDMpCitlbmQKKworX2xsaW50
X29wX2plcV9udWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBlcXVhbE51bGwoCisgICAg
ICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGJueiB2YWx1ZSwgTWFzcXVlcmFkZXNBc1VuZGVm
aW5lZCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJpZXEgdmFs
dWUsIE51bGxUYWcsIHRhcmdldCBlbmQpCisgICAgCisKK19sbGludF9vcF9qbmVxX251bGw6Cisg
ICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGVxdWFsTnVsbCgKKyAgICAgICAgbWFjcm8gKHZhbHVl
LCB0YXJnZXQpIGJ0YnogdmFsdWUsIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHRhcmdldCBlbmQs
CisgICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBiaW5lcSB2YWx1ZSwgTnVsbFRhZywgdGFy
Z2V0IGVuZCkKKworCitfbGxpbnRfb3Bfam5lcV9wdHI6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGxvYWRpIDRbUENdLCB0MAorICAgIGxvYWRpIDhbUENdLCB0MQorICAgIGJpbmVxIFRhZ09m
ZnNldFtjZnIsIHQwLCA4XSwgQ2VsbFRhZywgLm9wSm5lcVB0ckJyYW5jaAorICAgIGJwZXEgUGF5
bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDEsIC5vcEpuZXFQdHJGYWxsVGhyb3VnaAorLm9wSm5l
cVB0ckJyYW5jaDoKKyAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCisub3BKbmVxUHRyRmFsbFRo
cm91Z2g6CisgICAgZGlzcGF0Y2goNCkKKworCittYWNybyBjb21wYXJlKGludGVnZXJDb21wYXJl
LCBkb3VibGVDb21wYXJlLCBzbG93X3BhdGgpCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgbG9h
ZGkgOFtQQ10sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDAsIHQxKQorICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQzLCB0MiwgdDMpCisgICAgYmluZXEgdDAsIElu
dDMyVGFnLCAub3AxTm90SW50CisgICAgYmluZXEgdDIsIEludDMyVGFnLCAub3AyTm90SW50Cisg
ICAgaW50ZWdlckNvbXBhcmUodDEsIHQzLCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQor
Cisub3AxTm90SW50OgorICAgIGJpYSB0MCwgTG93ZXN0VGFnLCAuc2xvdworICAgIGJpYiB0Miwg
TG93ZXN0VGFnLCAub3AxTm90SW50T3AyRG91YmxlCisgICAgYmluZXEgdDIsIEludDMyVGFnLCAu
c2xvdworICAgIGNpMmQgdDMsIGZ0MQorICAgIGptcCAub3AxTm90SW50UmVhZHkKKy5vcDFOb3RJ
bnRPcDJEb3VibGU6CisgICAgZmlpMmQgdDMsIHQyLCBmdDEKKy5vcDFOb3RJbnRSZWFkeToKKyAg
ICBmaWkyZCB0MSwgdDAsIGZ0MAorICAgIGRvdWJsZUNvbXBhcmUoZnQwLCBmdDEsIC5qdW1wVGFy
Z2V0KQorICAgIGRpc3BhdGNoKDQpCisKKy5vcDJOb3RJbnQ6CisgICAgY2kyZCB0MSwgZnQwCisg
ICAgYmlhIHQyLCBMb3dlc3RUYWcsIC5zbG93CisgICAgZmlpMmQgdDMsIHQyLCBmdDEKKyAgICBk
b3VibGVDb21wYXJlKGZ0MCwgZnQxLCAuanVtcFRhcmdldCkKKyAgICBkaXNwYXRjaCg0KQorCisu
anVtcFRhcmdldDoKKyAgICBkaXNwYXRjaEJyYW5jaCgxMltQQ10pCisKKy5zbG93OgorICAgIGNh
bGxTbG93UGF0aChzbG93X3BhdGgpCisgICAgZGlzcGF0Y2goMCkKK2VuZAorCitfbGxpbnRfb3Bf
bG9vcF9pZl9sZXNzOgorICAgIG5vcAorX2xsaW50X29wX2psZXNzOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBjb21wYXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkg
YmlsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJkbHQgbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9z
bG93X3BhdGhfamxlc3MpCisKKworX2xsaW50X29wX2pubGVzczoKKyAgICB0cmFjZUV4ZWN1dGlv
bigpCisgICAgY29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJp
Z3RlcSBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0
LCB0YXJnZXQpIGJkZ3RlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxp
bnRfc2xvd19wYXRoX2pubGVzcykKKworCitfbGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyOgorICAg
IG5vcAorX2xsaW50X29wX2pncmVhdGVyOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBjb21w
YXJlKAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0LCByaWdo
dCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3Qg
bGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0
ZXIpCisKKworX2xsaW50X29wX2puZ3JlYXRlcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAg
Y29tcGFyZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJkbHRlcXVuIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19w
YXRoX2puZ3JlYXRlcikKKworCitfbGxpbnRfb3BfbG9vcF9pZl9sZXNzZXE6CisgICAgbm9wCitf
bGxpbnRfb3Bfamxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFyZSgKKyAg
ICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHRlcSBsZWZ0LCByaWdodCwgdGFy
Z2V0IGVuZCwKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkbHRlcSBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKKyAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qbGVzc2VxKQor
CisKK19sbGludF9vcF9qbmxlc3NlcToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY29tcGFy
ZSgKKyAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3QgbGVmdCwgcmlnaHQs
IHRhcmdldCBlbmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0dW4g
bGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNz
ZXEpCisKKworX2xsaW50X29wX2xvb3BfaWZfZ3JlYXRlcmVxOgorICAgIG5vcAorX2xsaW50X29w
X2pncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBhcmUoCisgICAgICAg
IG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0ZXEgbGVmdCwgcmlnaHQsIHRhcmdldCBl
bmQsCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiZGd0ZXEgbGVmdCwgcmln
aHQsIHRhcmdldCBlbmQsCisgICAgICAgIF9sbGludF9zbG93X3BhdGhfamdyZWF0ZXJlcSkKKwor
CitfbGxpbnRfb3Bfam5ncmVhdGVyZXE6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNvbXBh
cmUoCisgICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0
LCB0YXJnZXQgZW5kLAorICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRsdHVu
IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAorICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2puZ3Jl
YXRlcmVxKQorCisKK19sbGludF9vcF9sb29wX2hpbnQ6CisgICAgdHJhY2VFeGVjdXRpb24oKQor
ICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JMb29wKCkKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGlu
dF9vcF9zd2l0Y2hfaW1tOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxMltQQ10s
IHQyCisgICAgbG9hZGkgNFtQQ10sIHQzCisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0Miwg
dDEsIHQwKQorICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgorICAgIGxvYWRwIENvZGVCbG9j
azo6bV9yYXJlRGF0YVt0Ml0sIHQyCisgICAgbXVsaSBzaXplb2YgU2ltcGxlSnVtcFRhYmxlLCB0
MyAgICMgRklYTUU6IHdvdWxkIGJlIG5pY2UgdG8gcGVlcGhvbGUgdGhpcyEKKyAgICBsb2FkcCBD
b2RlQmxvY2s6OlJhcmVEYXRhOjptX2ltbWVkaWF0ZVN3aXRjaEp1bXBUYWJsZXMgKyBWZWN0b3JC
dWZmZXJPZmZzZXRbdDJdLCB0MgorICAgIGFkZHAgdDMsIHQyCisgICAgYmluZXEgdDEsIEludDMy
VGFnLCAub3BTd2l0Y2hJbW1Ob3RJbnQKKyAgICBzdWJpIFNpbXBsZUp1bXBUYWJsZTo6bWluW3Qy
XSwgdDAKKyAgICBiaWFlcSB0MCwgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVj
dG9yU2l6ZU9mZnNldFt0Ml0sIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCisgICAgbG9hZHAgU2lt
cGxlSnVtcFRhYmxlOjpicmFuY2hPZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDMK
KyAgICBsb2FkaSBbdDMsIHQwLCA0XSwgdDEKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hJbW1GYWxs
VGhyb3VnaAorICAgIGRpc3BhdGNoQnJhbmNoV2l0aE9mZnNldCh0MSkKKworLm9wU3dpdGNoSW1t
Tm90SW50OgorICAgIGJpYiB0MSwgTG93ZXN0VGFnLCAub3BTd2l0Y2hJbW1TbG93ICAjIEdvIHRv
IHNsb3cgcGF0aCBpZiBpdCdzIGEgZG91YmxlLgorLm9wU3dpdGNoSW1tRmFsbFRocm91Z2g6Cisg
ICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10pCisKKy5vcFN3aXRjaEltbVNsb3c6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3dpdGNoX2ltbSkKKyAgICBkaXNwYXRjaCgwKQorCisK
K19sbGludF9vcF9zd2l0Y2hfY2hhcjoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkg
MTJbUENdLCB0MgorICAgIGxvYWRpIDRbUENdLCB0MworICAgIGxvYWRDb25zdGFudE9yVmFyaWFi
bGUodDIsIHQxLCB0MCkKKyAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdDIKKyAgICBsb2FkcCBD
b2RlQmxvY2s6Om1fcmFyZURhdGFbdDJdLCB0MgorICAgIG11bGkgc2l6ZW9mIFNpbXBsZUp1bXBU
YWJsZSwgdDMKKyAgICBsb2FkcCBDb2RlQmxvY2s6OlJhcmVEYXRhOjptX2NoYXJhY3RlclN3aXRj
aEp1bXBUYWJsZXMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgorICAgIGFkZHAgdDMsIHQy
CisgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFN3aXRjaENoYXJGYWxsVGhyb3VnaAorICAgIGxv
YWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQorICAgIGJibmVxIFN0cnVjdHVyZTo6bV90
eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDFdLCBTdHJpbmdUeXBlLCAub3BTd2l0Y2hDaGFy
RmFsbFRocm91Z2gKKyAgICBsb2FkcCBKU1N0cmluZzo6bV92YWx1ZVt0MF0sIHQwCisgICAgYmlu
ZXEgU3RyaW5nSW1wbDo6bV9sZW5ndGhbdDBdLCAxLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gK
KyAgICBsb2FkcCBTdHJpbmdJbXBsOjptX2RhdGE4W3QwXSwgdDEKKyAgICBidGlueiBTdHJpbmdJ
bXBsOjptX2hhc2hBbmRGbGFnc1t0MF0sIEhhc2hGbGFnczhCaXRCdWZmZXIsIC5vcFN3aXRjaENo
YXI4Qml0CisgICAgbG9hZGggW3QxXSwgdDAKKyAgICBqbXAgLm9wU3dpdGNoQ2hhclJlYWR5Cisu
b3BTd2l0Y2hDaGFyOEJpdDoKKyAgICBsb2FkYiBbdDFdLCB0MAorLm9wU3dpdGNoQ2hhclJlYWR5
OgorICAgIHN1YmkgU2ltcGxlSnVtcFRhYmxlOjptaW5bdDJdLCB0MAorICAgIGJpYWVxIHQwLCBT
aW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JTaXplT2Zmc2V0W3QyXSwgLm9w
U3dpdGNoQ2hhckZhbGxUaHJvdWdoCisgICAgbG9hZHAgU2ltcGxlSnVtcFRhYmxlOjpicmFuY2hP
ZmZzZXRzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QyXSwgdDIKKyAgICBsb2FkaSBbdDIsIHQwLCA0
XSwgdDEKKyAgICBidGl6IHQxLCAub3BTd2l0Y2hJbW1GYWxsVGhyb3VnaAorICAgIGRpc3BhdGNo
QnJhbmNoV2l0aE9mZnNldCh0MSkKKworLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdoOgorICAgIGRp
c3BhdGNoQnJhbmNoKDhbUENdKQorCisKK19sbGludF9vcF9zd2l0Y2hfc3RyaW5nOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hf
c3RyaW5nKQorICAgIGRpc3BhdGNoKDApCisKKworX2xsaW50X29wX25ld19mdW5jOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBidGl6IDEyW1BDXSwgLm9wTmV3RnVuY1VuY2hlY2tlZAorICAg
IGxvYWRpIDRbUENdLCB0MQorICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQxLCA4XSwgRW1wdHlW
YWx1ZVRhZywgLm9wTmV3RnVuY0RvbmUKKy5vcE5ld0Z1bmNVbmNoZWNrZWQ6CisgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmMpCisub3BOZXdGdW5jRG9uZToKKyAgICBk
aXNwYXRjaCg0KQorCisKK19sbGludF9vcF9uZXdfZnVuY19leHA6CisgICAgdHJhY2VFeGVjdXRp
b24oKQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19mdW5jX2V4cCkKKyAg
ICBkaXNwYXRjaCgzKQorCisKK21hY3JvIGRvQ2FsbChzbG93X3BhdGgpCisgICAgbG9hZGkgNFtQ
Q10sIHQwCisgICAgbG9hZGkgMTZbUENdLCB0MQorICAgIGxvYWRwIExMSW50Q2FsbExpbmtJbmZv
OjpjYWxsZWVbdDFdLCB0MgorICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBD
ZWxsVGFnLCB0MywgLm9wQ2FsbFNsb3cpCisgICAgYmluZXEgdDMsIHQyLCAub3BDYWxsU2xvdwor
ICAgIGxvYWRpIDEyW1BDXSwgdDMKKyAgICBhZGRwIDI0LCBQQworICAgIGxzaGlmdGkgMywgdDMK
KyAgICBhZGRwIGNmciwgdDMgICMgdDMgY29udGFpbnMgdGhlIG5ldyB2YWx1ZSBvZiBjZnIKKyAg
ICBsb2FkcCBKU0Z1bmN0aW9uOjptX3Njb3BlQ2hhaW5bdDJdLCB0MAorICAgIHN0b3JlaSB0Miwg
Q2FsbGVlICsgUGF5bG9hZE9mZnNldFt0M10KKyAgICBzdG9yZWkgdDAsIFNjb3BlQ2hhaW4gKyBQ
YXlsb2FkT2Zmc2V0W3QzXQorICAgIGxvYWRpIDggLSAyNFtQQ10sIHQyCisgICAgc3RvcmVpIFBD
LCBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0KKyAgICBzdG9yZXAgY2ZyLCBDYWxsZXJG
cmFtZVt0M10KKyAgICBzdG9yZWkgdDIsIEFyZ3VtZW50Q291bnQgKyBQYXlsb2FkT2Zmc2V0W3Qz
XQorICAgIHN0b3JlaSBDZWxsVGFnLCBDYWxsZWUgKyBUYWdPZmZzZXRbdDNdCisgICAgc3RvcmVp
IENlbGxUYWcsIFNjb3BlQ2hhaW4gKyBUYWdPZmZzZXRbdDNdCisgICAgbW92ZSB0MywgY2ZyCisg
ICAgY2FsbCBMTEludENhbGxMaW5rSW5mbzo6bWFjaGluZUNvZGVUYXJnZXRbdDFdCisgICAgZGlz
cGF0Y2hBZnRlckNhbGwoKQorCisub3BDYWxsU2xvdzoKKyAgICBzbG93UGF0aEZvckNhbGwoNiwg
c2xvd19wYXRoKQorZW5kCisKK19sbGludF9vcF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkK
KyAgICBkb0NhbGwoX2xsaW50X3Nsb3dfcGF0aF9jYWxsKQorCisKK19sbGludF9vcF9jb25zdHJ1
Y3Q6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2Nv
bnN0cnVjdCkKKworCitfbGxpbnRfb3BfY2FsbF92YXJhcmdzOgorICAgIHRyYWNlRXhlY3V0aW9u
KCkKKyAgICBzbG93UGF0aEZvckNhbGwoNiwgX2xsaW50X3Nsb3dfcGF0aF9jYWxsX3ZhcmFyZ3Mp
CisKKworX2xsaW50X29wX2NhbGxfZXZhbDoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgCisg
ICAgIyBFdmFsIGlzIGV4ZWN1dGVkIGluIG9uZSBvZiB0d28gbW9kZXM6CisgICAgIworICAgICMg
MSkgV2UgZmluZCB0aGF0IHdlJ3JlIHJlYWxseSBpbnZva2luZyBldmFsKCkgaW4gd2hpY2ggY2Fz
ZSB0aGUKKyAgICAjICAgIGV4ZWN1dGlvbiBpcyBwZXJmb21lZCBlbnRpcmVseSBpbnNpZGUgdGhl
IHNsb3dfcGF0aCwgYW5kIGl0CisgICAgIyAgICByZXR1cm5zIHRoZSBQQyBvZiBhIGZ1bmN0aW9u
IHRoYXQganVzdCByZXR1cm5zIHRoZSByZXR1cm4gdmFsdWUKKyAgICAjICAgIHRoYXQgdGhlIGV2
YWwgcmV0dXJuZWQuCisgICAgIworICAgICMgMikgV2UgZmluZCB0aGF0IHdlJ3JlIGludm9raW5n
IHNvbWV0aGluZyBjYWxsZWQgZXZhbCgpIHRoYXQgaXMgbm90CisgICAgIyAgICB0aGUgcmVhbCBl
dmFsLiBUaGVuIHRoZSBzbG93X3BhdGggcmV0dXJucyB0aGUgUEMgb2YgdGhlIHRoaW5nIHRvCisg
ICAgIyAgICBjYWxsLCBhbmQgd2UgY2FsbCBpdC4KKyAgICAjCisgICAgIyBUaGlzIGFsbG93cyB1
cyB0byBoYW5kbGUgdHdvIGNhc2VzLCB3aGljaCB3b3VsZCByZXF1aXJlIGEgdG90YWwgb2YKKyAg
ICAjIHVwIHRvIGZvdXIgcGllY2VzIG9mIHN0YXRlIHRoYXQgY2Fubm90IGJlIGVhc2lseSBwYWNr
ZWQgaW50byB0d28KKyAgICAjIHJlZ2lzdGVycyAoQyBmdW5jdGlvbnMgY2FuIHJldHVybiB1cCB0
byB0d28gcmVnaXN0ZXJzLCBlYXNpbHkpOgorICAgICMKKyAgICAjIC0gVGhlIGNhbGwgZnJhbWUg
cmVnaXN0ZXIuIFRoaXMgbWF5IG9yIG1heSBub3QgaGF2ZSBiZWVuIG1vZGlmaWVkCisgICAgIyAg
IGJ5IHRoZSBzbG93X3BhdGgsIGJ1dCB0aGUgY29udmVudGlvbiBpcyB0aGF0IGl0IHJldHVybnMg
aXQuIEl0J3Mgbm90CisgICAgIyAgIHRvdGFsbHkgY2xlYXIgaWYgdGhhdCdzIG5lY2Vzc2FyeSwg
c2luY2UgdGhlIGNmciBpcyBjYWxsZWUgc2F2ZS4KKyAgICAjICAgQnV0IHRoYXQncyBvdXIgc3R5
bGUgaW4gdGhpcyBoZXJlIGludGVycHJldGVyIHNvIHdlIHN0aWNrIHdpdGggaXQuCisgICAgIwor
ICAgICMgLSBBIGJpdCB0byBzYXkgaWYgdGhlIHNsb3dfcGF0aCBzdWNjZXNzZnVsbHkgZXhlY3V0
ZWQgdGhlIGV2YWwgYW5kIGhhcworICAgICMgICB0aGUgcmV0dXJuIHZhbHVlLCBvciBkaWQgbm90
IGV4ZWN1dGUgdGhlIGV2YWwgYnV0IGhhcyBhIFBDIGZvciB1cworICAgICMgICB0byBjYWxsLgor
ICAgICMKKyAgICAjIC0gRWl0aGVyOgorICAgICMgICAtIFRoZSBKUyByZXR1cm4gdmFsdWUgKHR3
byByZWdpc3RlcnMpLCBvcgorICAgICMKKyAgICAjICAgLSBUaGUgUEMgdG8gY2FsbC4KKyAgICAj
CisgICAgIyBJdCB0dXJucyBvdXQgdG8gYmUgZWFzaWVyIHRvIGp1c3QgYWx3YXlzIGhhdmUgdGhp
cyByZXR1cm4gdGhlIGNmcgorICAgICMgYW5kIGEgUEMgdG8gY2FsbCwgYW5kIHRoYXQgUEMgbWF5
IGJlIGEgZHVtbXkgdGh1bmsgdGhhdCBqdXN0CisgICAgIyByZXR1cm5zIHRoZSBKUyB2YWx1ZSB0
aGF0IHRoZSBldmFsIHJldHVybmVkLgorICAgIAorICAgIHNsb3dQYXRoRm9yQ2FsbCg0LCBfbGxp
bnRfc2xvd19wYXRoX2NhbGxfZXZhbCkKKworCitfbGxpbnRfZ2VuZXJpY19yZXR1cm5fcG9pbnQ6
CisgICAgZGlzcGF0Y2hBZnRlckNhbGwoKQorCisKK19sbGludF9vcF90ZWFyX29mZl9hY3RpdmF0
aW9uOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBsb2Fk
aSA4W1BDXSwgdDEKKyAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0sIEVtcHR5VmFsdWVU
YWcsIC5vcFRlYXJPZmZBY3RpdmF0aW9uQ3JlYXRlZAorICAgIGJpZXEgVGFnT2Zmc2V0W2Nmciwg
dDEsIDhdLCBFbXB0eVZhbHVlVGFnLCAub3BUZWFyT2ZmQWN0aXZhdGlvbk5vdENyZWF0ZWQKKy5v
cFRlYXJPZmZBY3RpdmF0aW9uQ3JlYXRlZDoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3df
cGF0aF90ZWFyX29mZl9hY3RpdmF0aW9uKQorLm9wVGVhck9mZkFjdGl2YXRpb25Ob3RDcmVhdGVk
OgorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50X29wX3RlYXJfb2ZmX2FyZ3VtZW50czoKKyAg
ICB0cmFjZUV4ZWN1dGlvbigpCisgICAgbG9hZGkgNFtQQ10sIHQwCisgICAgc3ViaSAxLCB0MCAg
ICMgR2V0IHRoZSB1bm1vZGlmaWVkQXJndW1lbnRzUmVnaXN0ZXIKKyAgICBiaWVxIFRhZ09mZnNl
dFtjZnIsIHQwLCA4XSwgRW1wdHlWYWx1ZVRhZywgLm9wVGVhck9mZkFyZ3VtZW50c05vdENyZWF0
ZWQKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90ZWFyX29mZl9hcmd1bWVudHMp
Cisub3BUZWFyT2ZmQXJndW1lbnRzTm90Q3JlYXRlZDoKKyAgICBkaXNwYXRjaCgyKQorCisKK21h
Y3JvIGRvUmV0dXJuKCkKKyAgICBsb2FkcCBSZXR1cm5QQ1tjZnJdLCB0MgorICAgIGxvYWRwIENh
bGxlckZyYW1lW2Nmcl0sIGNmcgorICAgIHJlc3RvcmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJu
KHQyKQorICAgIHJldAorZW5kCisKK19sbGludF9vcF9yZXQ6CisgICAgdHJhY2VFeGVjdXRpb24o
KQorICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCisgICAgbG9hZGkgNFtQQ10sIHQy
CisgICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEsIHQwKQorICAgIGRvUmV0dXJuKCkK
KworCitfbGxpbnRfb3BfY2FsbF9wdXRfcmVzdWx0OgorICAgIGxvYWRpIDRbUENdLCB0MgorICAg
IGxvYWRpIDhbUENdLCB0MworICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCisg
ICAgc3RvcmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCisgICAgdmFsdWVQcm9maWxl
KHQxLCB0MCwgdDMpCisgICAgdHJhY2VFeGVjdXRpb24oKSAjIE5lZWRzIHRvIGJlIGhlcmUgYmVj
YXVzZSBpdCB3b3VsZCBjbG9iYmVyIHQxLCB0MAorICAgIGRpc3BhdGNoKDMpCisKKworX2xsaW50
X29wX3JldF9vYmplY3Rfb3JfdGhpczoKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2hlY2tT
d2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKKyAgICBsb2FkaSA0W1BDXSwgdDIKKyAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQyLCB0MSwgdDApCisgICAgYmluZXEgdDEsIENlbGxUYWcsIC5vcFJl
dE9iamVjdE9yVGhpc05vdE9iamVjdAorICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBd
LCB0MgorICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3Qy
XSwgT2JqZWN0VHlwZSwgLm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0CisgICAgZG9SZXR1cm4o
KQorCisub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3Q6CisgICAgbG9hZGkgOFtQQ10sIHQyCisg
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEsIHQwKQorICAgIGRvUmV0dXJuKCkKKwor
CitfbGxpbnRfb3BfbWV0aG9kX2NoZWNrOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICAjIFdl
IGlnbm9yZSBtZXRob2QgY2hlY2tzIGFuZCB1c2Ugbm9ybWFsIGdldF9ieV9pZCBvcHRpbWl6YXRp
b25zLgorICAgIGRpc3BhdGNoKDEpCisKKworX2xsaW50X29wX3N0cmNhdDoKKyAgICB0cmFjZUV4
ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfc3RyY2F0KQorICAg
IGRpc3BhdGNoKDQpCisKKworX2xsaW50X29wX3RvX3ByaW1pdGl2ZToKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgbG9hZGkgOFtQQ10sIHQyCisgICAgbG9hZGkgNFtQQ10sIHQzCisgICAgbG9h
ZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDEsIHQwKQorICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAu
b3BUb1ByaW1pdGl2ZUlzSW1tCisgICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQy
CisgICAgYmJuZXEgU3RydWN0dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0Ml0s
IFN0cmluZ1R5cGUsIC5vcFRvUHJpbWl0aXZlU2xvd0Nhc2UKKy5vcFRvUHJpbWl0aXZlSXNJbW06
CisgICAgc3RvcmVpIHQxLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBzdG9yZWkgdDAsIFBh
eWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KKyAgICBkaXNwYXRjaCgzKQorCisub3BUb1ByaW1pdGl2
ZVNsb3dDYXNlOgorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RvX3ByaW1pdGl2
ZSkKKyAgICBkaXNwYXRjaCgzKQorCisKK19sbGludF9vcF9nZXRfcG5hbWVzOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9nZXRfcG5hbWVz
KQorICAgIGRpc3BhdGNoKDApICMgVGhlIHNsb3dfcGF0aCBlaXRoZXIgYWR2YW5jZXMgdGhlIFBD
IG9yIGp1bXBzIHVzIHRvIHNvbWV3aGVyZSBlbHNlLgorCisKK19sbGludF9vcF9uZXh0X3BuYW1l
OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSAxMltQQ10sIHQxCisgICAgbG9hZGkg
MTZbUENdLCB0MgorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0sIHQwCisgICAg
YmllcSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4XSwgLm9wTmV4dFBuYW1lRW5kCisgICAg
bG9hZGkgMjBbUENdLCB0MgorICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0sIHQy
CisgICAgbG9hZHAgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9qc1N0cmluZ3NbdDJdLCB0Mwor
ICAgIGxvYWRpIFt0MywgdDAsIDhdLCB0MworICAgIGFkZGkgMSwgdDAKKyAgICBzdG9yZWkgdDAs
IFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KKyAgICBsb2FkaSA0W1BDXSwgdDEKKyAgICBzdG9y
ZWkgQ2VsbFRhZywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCisgICAgc3RvcmVpIHQzLCBQYXlsb2Fk
T2Zmc2V0W2NmciwgdDEsIDhdCisgICAgbG9hZGkgOFtQQ10sIHQzCisgICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIHQzLCA4XSwgdDMKKyAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3Qz
XSwgdDEKKyAgICBicG5lcSB0MSwgSlNQcm9wZXJ0eU5hbWVJdGVyYXRvcjo6bV9jYWNoZWRTdHJ1
Y3R1cmVbdDJdLCAub3BOZXh0UG5hbWVTbG93CisgICAgbG9hZHAgSlNQcm9wZXJ0eU5hbWVJdGVy
YXRvcjo6bV9jYWNoZWRQcm90b3R5cGVDaGFpblt0Ml0sIHQwCisgICAgbG9hZHAgU3RydWN0dXJl
Q2hhaW46Om1fdmVjdG9yW3QwXSwgdDAKKyAgICBidHB6IFt0MF0sIC5vcE5leHRQbmFtZVRhcmdl
dAorLm9wTmV4dFBuYW1lQ2hlY2tQcm90b3R5cGVMb29wOgorICAgIGJpZXEgU3RydWN0dXJlOjpt
X3Byb3RvdHlwZSArIFRhZ09mZnNldFt0MV0sIE51bGxUYWcsIC5vcE5leHRQbmFtZVNsb3cKKyAg
ICBsb2FkcCBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlICsgUGF5bG9hZE9mZnNldFt0MV0sIHQyCisg
ICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0Ml0sIHQxCisgICAgYnBuZXEgdDEsIFt0MF0s
IC5vcE5leHRQbmFtZVNsb3cKKyAgICBhZGRwIDQsIHQwCisgICAgYnRwbnogW3QwXSwgLm9wTmV4
dFBuYW1lQ2hlY2tQcm90b3R5cGVMb29wCisub3BOZXh0UG5hbWVUYXJnZXQ6CisgICAgZGlzcGF0
Y2hCcmFuY2goMjRbUENdKQorCisub3BOZXh0UG5hbWVFbmQ6CisgICAgZGlzcGF0Y2goNykKKwor
Lm9wTmV4dFBuYW1lU2xvdzoKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXh0
X3BuYW1lKSAjIFRoaXMgZWl0aGVyIGtlZXBzIHRoZSBQQyB3aGVyZSBpdCB3YXMgKGNhdXNpbmcg
dXMgdG8gbG9vcCkgb3Igc2V0cyBpdCB0byB0YXJnZXQuCisgICAgZGlzcGF0Y2goMCkKKworCitf
bGxpbnRfb3BfcHVzaF9zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9zY29wZSkKKyAgICBkaXNwYXRjaCgyKQorCisKK19s
bGludF9vcF9wb3Bfc2NvcGU6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX3BvcF9zY29wZSkKKyAgICBkaXNwYXRjaCgxKQorCisKK19sbGlu
dF9vcF9wdXNoX25ld19zY29wZToKKyAgICB0cmFjZUV4ZWN1dGlvbigpCisgICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfcHVzaF9uZXdfc2NvcGUpCisgICAgZGlzcGF0Y2goNCkKKwor
CitfbGxpbnRfb3BfY2F0Y2g6CisgICAgIyBUaGlzIGlzIHdoZXJlIHdlIGVuZCB1cCBmcm9tIHRo
ZSBKSVQncyB0aHJvdyB0cmFtcG9saW5lIChiZWNhdXNlIHRoZQorICAgICMgbWFjaGluZSBjb2Rl
IHJldHVybiBhZGRyZXNzIHdpbGwgYmUgc2V0IHRvIF9sbGludF9vcF9jYXRjaCksIGFuZCBmcm9t
CisgICAgIyB0aGUgaW50ZXJwcmV0ZXIncyB0aHJvdyB0cmFtcG9saW5lIChzZWUgX2xsaW50X3Ro
cm93X3RyYW1wb2xpbmUpLgorICAgICMgVGhlIEpJVCB0aHJvd2luZyBwcm90b2NvbCBjYWxscyBm
b3IgdGhlIGNmciB0byBiZSBpbiB0MC4gVGhlIHRocm93aW5nCisgICAgIyBjb2RlIG11c3QgaGF2
ZSBrbm93biB0aGF0IHdlIHdlcmUgdGhyb3dpbmcgdG8gdGhlIGludGVycHJldGVyLCBhbmQgaGF2
ZQorICAgICMgc2V0IEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93Lgor
ICAgIG1vdmUgdDAsIGNmcgorICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3Bd
LCB0MworICAgIGxvYWRpIEpTR2xvYmFsRGF0YTo6dGFyZ2V0SW50ZXJwcmV0ZXJQQ0ZvclRocm93
W3QzXSwgUEMKKyAgICBsb2FkaSBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvbiArIFBheWxvYWRPZmZz
ZXRbdDNdLCB0MAorICAgIGxvYWRpIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uICsgVGFnT2Zmc2V0
W3QzXSwgdDEKKyAgICBzdG9yZWkgMCwgSlNHbG9iYWxEYXRhOjpleGNlcHRpb24gKyBQYXlsb2Fk
T2Zmc2V0W3QzXQorICAgIHN0b3JlaSBFbXB0eVZhbHVlVGFnLCBKU0dsb2JhbERhdGE6OmV4Y2Vw
dGlvbiArIFRhZ09mZnNldFt0M10gICAgICAgCisgICAgbG9hZGkgNFtQQ10sIHQyCisgICAgc3Rv
cmVpIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCisgICAgc3RvcmVpIHQxLCBUYWdPZmZz
ZXRbY2ZyLCB0MiwgOF0KKyAgICB0cmFjZUV4ZWN1dGlvbigpICAjIFRoaXMgbmVlZHMgdG8gYmUg
aGVyZSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gY2xvYmJlciB0MCwgdDEsIHQyLCB0MyBhYm92
ZS4KKyAgICBkaXNwYXRjaCgyKQorCisKK19sbGludF9vcF90aHJvdzoKKyAgICB0cmFjZUV4ZWN1
dGlvbigpCisgICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdGhyb3cpCisgICAgZGlz
cGF0Y2goMikKKworCitfbGxpbnRfb3BfdGhyb3dfcmVmZXJlbmNlX2Vycm9yOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvd19yZWZl
cmVuY2VfZXJyb3IpCisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfanNyOgorICAgIHRy
YWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA0W1BDXSwgdDAKKyAgICBhZGRpIDMgKiA0LCBQQywg
dDEKKyAgICBzdG9yZWkgdDEsIFtjZnIsIHQwLCA4XQorICAgIGRpc3BhdGNoQnJhbmNoKDhbUENd
KQorCisKK19sbGludF9vcF9zcmV0OgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkaSA0
W1BDXSwgdDAKKyAgICBsb2FkcCBbY2ZyLCB0MCwgOF0sIFBDCisgICAgZGlzcGF0Y2goMCkKKwor
CitfbGxpbnRfb3BfZGVidWc6CisgICAgdHJhY2VFeGVjdXRpb24oKQorICAgIGNhbGxTbG93UGF0
aChfbGxpbnRfc2xvd19wYXRoX2RlYnVnKQorICAgIGRpc3BhdGNoKDQpCisKKworX2xsaW50X29w
X3Byb2ZpbGVfd2lsbF9jYWxsOgorICAgIHRyYWNlRXhlY3V0aW9uKCkKKyAgICBsb2FkcCBKSVRT
dGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vbc3BdLCB0MAorICAgIGJ0cHogW3Qw
XSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQorICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX3Byb2ZpbGVfd2lsbF9jYWxsKQorLm9wUHJvZmlsZVdpbGxDYWxsRG9uZToKKyAgICBkaXNw
YXRjaCgyKQorCisKK19sbGludF9vcF9wcm9maWxlX2RpZF9jYWxsOgorICAgIHRyYWNlRXhlY3V0
aW9uKCkKKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjplbmFibGVkUHJvZmlsZXJSZWZlcmVuY2Vb
c3BdLCB0MAorICAgIGJ0cHogW3QwXSwgLm9wUHJvZmlsZVdpbGxDYWxsRG9uZQorICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Byb2ZpbGVfZGlkX2NhbGwpCisub3BQcm9maWxlRGlk
Q2FsbERvbmU6CisgICAgZGlzcGF0Y2goMikKKworCitfbGxpbnRfb3BfZW5kOgorICAgIHRyYWNl
RXhlY3V0aW9uKCkKKyAgICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQorICAgIGxvYWRp
IDRbUENdLCB0MAorICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKKyAgICBsb2Fk
aSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAorICAgIGRvUmV0dXJuKCkKKworCitfbGxp
bnRfdGhyb3dfZnJvbV9zbG93X3BhdGhfdHJhbXBvbGluZToKKyAgICAjIFdoZW4gdGhyb3dpbmcg
ZnJvbSB0aGUgaW50ZXJwcmV0ZXIgKGkuZS4gdGhyb3dpbmcgZnJvbSBMTEludFNsb3dQYXRocyks
IHNvCisgICAgIyB0aGUgdGhyb3cgdGFyZ2V0IGlzIG5vdCBuZWNlc3NhcmlseSBpbnRlcnByZXRl
ZCBjb2RlLCB3ZSBjb21lIHRvIGhlcmUuCisgICAgIyBUaGlzIGVzc2VudGlhbGx5IGVtdWxhdGVz
IHRoZSBKSVQncyB0aHJvd2luZyBwcm90b2NvbC4KKyAgICBsb2FkcCBKSVRTdGFja0ZyYW1lOjpn
bG9iYWxEYXRhW3NwXSwgdDEKKyAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxGcmFtZUZvclRo
cm93W3QxXSwgdDAKKyAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5lUENGb3JUaHJv
d1t0MV0KKworCitfbGxpbnRfdGhyb3dfZHVyaW5nX2NhbGxfdHJhbXBvbGluZToKKyAgICBwcmVz
ZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwodDIpCisgICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6
Z2xvYmFsRGF0YVtzcF0sIHQxCisgICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpjYWxsRnJhbWVGb3JU
aHJvd1t0MV0sIHQwCisgICAgam1wIEpTR2xvYmFsRGF0YTo6dGFyZ2V0TWFjaGluZVBDRm9yVGhy
b3dbdDFdCisKKworIyBMYXN0bHksIG1ha2Ugc3VyZSB0aGF0IHdlIGNhbiBsaW5rIGV2ZW4gdGhv
dWdoIHdlIGRvbid0IHN1cHBvcnQgYWxsIG9wY29kZXMuCisjIFRoZXNlIG9wY29kZXMgc2hvdWxk
IG5ldmVyIGFyaXNlIHdoZW4gdXNpbmcgTExJbnQgb3IgZWl0aGVyIEpJVC4gV2UgYXNzZXJ0Cisj
IGFzIG11Y2guCisKK21hY3JvIG5vdFN1cHBvcnRlZCgpCisgICAgaWYgQVNTRVJUX0VOQUJMRUQK
KyAgICAgICAgY3Jhc2goKQorICAgIGVsc2UKKyAgICAgICAgIyBXZSBzaG91bGQgdXNlIHdoYXRl
dmVyIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBpbnN0cnVjdGlvbiBpcywganVzdCB0bworICAgICAg
ICAjIGVuc3VyZSB0aGF0IHRoZXJlIGlzIGEgZ2FwIGJldHdlZW4gaW5zdHJ1Y3Rpb24gbGFiZWxz
LiBJZiBtdWx0aXBsZQorICAgICAgICAjIHNtYWxsZXN0IGluc3RydWN0aW9ucyBleGlzdCwgd2Ug
c2hvdWxkIHBpY2sgdGhlIG9uZSB0aGF0IGlzIG1vc3QKKyAgICAgICAgIyBsaWtlbHkgcmVzdWx0
IGluIGV4ZWN1dGlvbiBiZWluZyBoYWx0ZWQuIEN1cnJlbnRseSB0aGF0IGlzIHRoZSBicmVhawor
ICAgICAgICAjIGluc3RydWN0aW9uIG9uIGFsbCBhcmNoaXRlY3R1cmVzIHdlJ3JlIGludGVyZXN0
ZWQgaW4uIChCcmVhayBpcyBpbnQzCisgICAgICAgICMgb24gSW50ZWwsIHdoaWNoIGlzIDEgYnl0
ZSwgYW5kIGJrcHQgb24gQVJNdjcsIHdoaWNoIGlzIDIgYnl0ZXMuKQorICAgICAgICBicmVhawor
ICAgIGVuZAorZW5kCisKK19sbGludF9vcF9nZXRfYXJyYXlfbGVuZ3RoOgorICAgIG5vdFN1cHBv
cnRlZCgpCisKK19sbGludF9vcF9nZXRfYnlfaWRfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkK
KworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkK
KworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkK
KworX2xsaW50X29wX2dldF9ieV9pZF9jdXN0b21fc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQor
CitfbGxpbnRfb3BfZ2V0X2J5X2lkX2dlbmVyaWM6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfY2hhaW46CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfcHJvdG86CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xs
aW50X29wX2dldF9ieV9pZF9nZXR0ZXJfc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxp
bnRfb3BfZ2V0X2J5X2lkX3Byb3RvOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9n
ZXRfYnlfaWRfc2VsZjoKKyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfZ2V0X3N0cmlu
Z19sZW5ndGg6CisgICAgbm90U3VwcG9ydGVkKCkKKworX2xsaW50X29wX3B1dF9ieV9pZF9nZW5l
cmljOgorICAgIG5vdFN1cHBvcnRlZCgpCisKK19sbGludF9vcF9wdXRfYnlfaWRfcmVwbGFjZToK
KyAgICBub3RTdXBwb3J0ZWQoKQorCitfbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb246Cisg
ICAgbm90U3VwcG9ydGVkKCkKKworCisjIEluZGljYXRlIHRoZSBlbmQgb2YgTExJbnQuCitfbGxp
bnRfZW5kOgorICAgIGNyYXNoKCkKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50
L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5hc20JKHJldmlzaW9uIDApCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyNyBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTEsIDIwMTIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
IyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKworCisjIE5vdCBzdXBwb3J0ZWQgeWV0LCBzbyBnaXZlIHVwLgorZXJyb3IK
KwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIu
YXNtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZlbElu
dGVycHJldGVyLmFzbQkocmV2aXNpb24gMTA4OTA1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwyMzcw
ICsyMSw5IEBACiAjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgogCi0KLSMgQ3Jhc2ggY291cnNlIG9uIHRoZSBsYW5ndWFnZSB0aGF0IHRoaXMgaXMgd3Jp
dHRlbiBpbiAod2hpY2ggSSBqdXN0IGNhbGwKLSMgImFzc2VtYmx5IiBldmVuIHRob3VnaCBpdCdz
IG1vcmUgdGhhbiB0aGF0KToKLSMKLSMgLSBNb3N0bHkgZ2FzLXN0eWxlIG9wZXJhbmQgb3JkZXJp
bmcuIFRoZSBsYXN0IG9wZXJhbmQgdGVuZHMgdG8gYmUgdGhlCi0jICAgZGVzdGluYXRpb24uIFNv
ICJhIDo9IGIiIGlzIHdyaXR0ZW4gYXMgIm1vdiBiLCBhIi4gQnV0IHVubGlrZSBnYXMsCi0jICAg
Y29tcGFyaXNvbnMgYXJlIGluLW9yZGVyLCBzbyAiaWYgKGEgPCBiKSIgaXMgd3JpdHRlbiBhcwot
IyAgICJiaWx0IGEsIGIsIC4uLiIuCi0jCi0jIC0gImIiID0gYnl0ZSwgImgiID0gMTYtYml0IHdv
cmQsICJpIiA9IDMyLWJpdCB3b3JkLCAicCIgPSBwb2ludGVyLgotIyAgIEN1cnJlbnRseSB0aGlz
IGlzIGp1c3QgMzItYml0IHNvICJpIiBhbmQgInAiIGFyZSBpbnRlcmNoYW5nZWFibGUKLSMgICBl
eGNlcHQgd2hlbiBhbiBvcCBzdXBwb3J0cyBvbmUgYnV0IG5vdCB0aGUgb3RoZXIuCi0jCi0jIC0g
SW4gZ2VuZXJhbCwgdmFsaWQgb3BlcmFuZHMgZm9yIG1hY3JvIGludm9jYXRpb25zIGFuZCBpbnN0
cnVjdGlvbnMgYXJlCi0jICAgcmVnaXN0ZXJzIChlZyAidDAiKSwgYWRkcmVzc2VzIChlZyAiNFt0
MF0iKSwgYmFzZS1pbmRleCBhZGRyZXNzZXMKLSMgICAoZWcgIjdbdDAsIHQxLCAyXSIpLCBhYnNv
bHV0ZSBhZGRyZXNzZXMgKGVnICIweGEwMDAwMDAwW10iKSwgb3IgbGFiZWxzCi0jICAgKGVnICJf
Zm9vIiBvciAiLmZvbyIpLiBNYWNybyBpbnZvY2F0aW9ucyBjYW4gYWxzbyB0YWtlIGFub255bW91
cwotIyAgIG1hY3JvcyBhcyBvcGVyYW5kcy4gSW5zdHJ1Y3Rpb25zIGNhbm5vdCB0YWtlIGFub255
bW91cyBtYWNyb3MuCi0jCi0jIC0gTGFiZWxzIG11c3QgaGF2ZSBuYW1lcyB0aGF0IGJlZ2luIHdp
dGggZWl0aGVyICJfIiBvciAiLiIuICBBICIuIiBsYWJlbAotIyAgIGlzIGxvY2FsIGFuZCBnZXRz
IHJlbmFtZWQgYmVmb3JlIGNvZGUgZ2VuIHRvIG1pbmltaXplIG5hbWVzcGFjZQotIyAgIHBvbGx1
dGlvbi4gQSAiXyIgbGFiZWwgaXMgYW4gZXh0ZXJuIHN5bWJvbCAoaS5lLiAiLmdsb2JsIikuIFRo
ZSAiXyIKLSMgICBtYXkgb3IgbWF5IG5vdCBiZSByZW1vdmVkIGR1cmluZyBjb2RlIGdlbiBkZXBl
bmRpbmcgb24gd2hldGhlciB0aGUgYXNtCi0jICAgY29udmVudGlvbnMgZm9yIEMgbmFtZSBtYW5n
bGluZyBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtIG1hbmRhdGUgYSAiXyIKLSMgICBwcmVmaXguCi0j
Ci0jIC0gQSAibWFjcm8iIGlzIGEgbGFtYmRhIGV4cHJlc3Npb24sIHdoaWNoIG1heSBiZSBlaXRo
ZXIgYW5vbnltb3VzIG9yCi0jICAgbmFtZWQuIEJ1dCB0aGlzIGhhcyBjYXZlYXRzLiAibWFjcm8i
IGNhbiB0YWtlIHplcm8gb3IgbW9yZSBhcmd1bWVudHMsCi0jICAgd2hpY2ggbWF5IGJlIG1hY3Jv
cyBvciBhbnkgdmFsaWQgb3BlcmFuZHMsIGJ1dCBpdCBjYW4gb25seSByZXR1cm4KLSMgICBjb2Rl
LiBCdXQgeW91IGNhbiBkbyBUdXJpbmctY29tcGxldGUgdGhpbmdzIHZpYSBjb250aW51YXRpb24g
cGFzc2luZwotIyAgIHN0eWxlOiAibWFjcm8gZm9vIChhLCBiKSBiKGEpIGVuZCBmb28oZm9vLCBm
b28pIi4gQWN0dWFsbHksIGRvbid0IGRvCi0jICAgdGhhdCwgc2luY2UgeW91J2xsIGp1c3QgY3Jh
c2ggdGhlIGFzc2VtYmxlci4KLSMKLSMgLSBBbiAiaWYiIGlzIGEgY29uZGl0aW9uYWwgb24gc2V0
dGluZ3MuIEFueSBpZGVudGlmaWVyIHN1cHBsaWVkIGluIHRoZQotIyAgIHByZWRpY2F0ZSBvZiBh
biAiaWYiIGlzIGFzc3VtZWQgdG8gYmUgYSAjZGVmaW5lIHRoYXQgaXMgYXZhaWxhYmxlCi0jICAg
ZHVyaW5nIGNvZGUgZ2VuLiBTbyB5b3UgY2FuJ3QgdXNlICJpZiIgZm9yIGNvbXB1dGF0aW9uIGlu
IGEgbWFjcm8sIGJ1dAotIyAgIHlvdSBjYW4gdXNlIGl0IHRvIHNlbGVjdCBkaWZmZXJlbnQgcGll
Y2VzIG9mIGNvZGUgZm9yIGRpZmZlcmVudAotIyAgIHBsYXRmb3Jtcy4KLSMKLSMgLSBBcmd1bWVu
dHMgdG8gbWFjcm9zIGZvbGxvdyBsZXhpY2FsIHNjb3BpbmcgcmF0aGVyIHRoYW4gZHluYW1pYyBz
Y29waW5nLgotIyAgIENvbnN0J3MgYWxzbyBmb2xsb3cgbGV4aWNhbCBzY29waW5nIGFuZCBtYXkg
b3ZlcnJpZGUgKGhpZGUpIGFyZ3VtZW50cwotIyAgIG9yIG90aGVyIGNvbnN0cy4gQWxsIHZhcmlh
YmxlcyAoYXJndW1lbnRzIGFuZCBjb25zdGFudHMpIGNhbiBiZSBib3VuZAotIyAgIHRvIG9wZXJh
bmRzLiBBZGRpdGlvbmFsbHksIGFyZ3VtZW50cyAoYnV0IG5vdCBjb25zdGFudHMpIGNhbiBiZSBi
b3VuZAotIyAgIHRvIG1hY3Jvcy4KLQotCi0jIEJlbG93IHdlIGhhdmUgYSBidW5jaCBvZiBjb25z
dGFudCBkZWNsYXJhdGlvbnMuIEVhY2ggY29uc3RhbnQgbXVzdCBoYXZlCi0jIGEgY29ycmVzcG9u
ZGluZyBBU1NFUlQoKSBpbiBMTEludERhdGEuY3BwLgotCi0jIFRoZXNlIGRlY2xhcmF0aW9ucyBt
dXN0IG1hdGNoIGludGVycHJldGVyL1JlZ2lzdGVyRmlsZS5oLgotY29uc3QgQ2FsbEZyYW1lSGVh
ZGVyU2l6ZSA9IDQ4Ci1jb25zdCBBcmd1bWVudENvdW50ID0gLTQ4Ci1jb25zdCBDYWxsZXJGcmFt
ZSA9IC00MAotY29uc3QgQ2FsbGVlID0gLTMyCi1jb25zdCBTY29wZUNoYWluID0gLTI0Ci1jb25z
dCBSZXR1cm5QQyA9IC0xNgotY29uc3QgQ29kZUJsb2NrID0gLTgKLQotY29uc3QgVGhpc0FyZ3Vt
ZW50T2Zmc2V0ID0gLUNhbGxGcmFtZUhlYWRlclNpemUgLSA4Ci0KLSMgRGVjbGFyZSBzb21lIGFs
aWFzZXMgZm9yIHRoZSByZWdpc3RlcnMgd2Ugd2lsbCB1c2UuCi1jb25zdCBQQyA9IHQ0Ci0KLSMg
T2Zmc2V0cyBuZWVkZWQgZm9yIHJlYXNvbmluZyBhYm91dCB2YWx1ZSByZXByZXNlbnRhdGlvbi4K
LWlmIEJJR19FTkRJQU4KLSAgICBjb25zdCBUYWdPZmZzZXQgPSAwCi0gICAgY29uc3QgUGF5bG9h
ZE9mZnNldCA9IDQKK2lmIEpTVkFMVUU2NAorICAgIGluY2x1ZGUgTG93TGV2ZWxJbnRlcnByZXRl
cjY0CiBlbHNlCi0gICAgY29uc3QgVGFnT2Zmc2V0ID0gNAotICAgIGNvbnN0IFBheWxvYWRPZmZz
ZXQgPSAwCi1lbmQKLQotIyBWYWx1ZSByZXByZXNlbnRhdGlvbiBjb25zdGFudHMuCi1jb25zdCBJ
bnQzMlRhZyA9IC0xCi1jb25zdCBCb29sZWFuVGFnID0gLTIKLWNvbnN0IE51bGxUYWcgPSAtMwot
Y29uc3QgVW5kZWZpbmVkVGFnID0gLTQKLWNvbnN0IENlbGxUYWcgPSAtNQotY29uc3QgRW1wdHlW
YWx1ZVRhZyA9IC02Ci1jb25zdCBEZWxldGVkVmFsdWVUYWcgPSAtNwotY29uc3QgTG93ZXN0VGFn
ID0gRGVsZXRlZFZhbHVlVGFnCi0KLSMgVHlwZSBjb25zdGFudHMuCi1jb25zdCBTdHJpbmdUeXBl
ID0gNQotY29uc3QgT2JqZWN0VHlwZSA9IDEzCi0KLSMgVHlwZSBmbGFncyBjb25zdGFudHMuCi1j
b25zdCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMQotY29uc3QgSW1wbGVtZW50c0hhc0luc3Rh
bmNlID0gMgotY29uc3QgSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSA9IDgKLQotIyBIZWFw
IGFsbG9jYXRpb24gY29uc3RhbnRzLgotY29uc3QgSlNGaW5hbE9iamVjdFNpemVDbGFzc0luZGV4
ID0gMwotCi0jIEJ5dGVjb2RlIG9wZXJhbmQgY29uc3RhbnRzLgotY29uc3QgRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXggPSAweDQwMDAwMDAwCi0KLSMgQ29kZSB0eXBlIGNvbnN0YW50cy4KLWNv
bnN0IEdsb2JhbENvZGUgPSAwCi1jb25zdCBFdmFsQ29kZSA9IDEKLWNvbnN0IEZ1bmN0aW9uQ29k
ZSA9IDIKLQotIyBUaGUgaW50ZXJwcmV0ZXIgc3RlYWxzIHRoZSB0YWcgd29yZCBvZiB0aGUgYXJn
dW1lbnQgY291bnQuCi1jb25zdCBMTEludFJldHVyblBDID0gQXJndW1lbnRDb3VudCArIFRhZ09m
ZnNldAotCi0jIFRoaXMgbXVzdCBtYXRjaCB3dGYvVmVjdG9yLmguCi1jb25zdCBWZWN0b3JTaXpl
T2Zmc2V0ID0gMAotY29uc3QgVmVjdG9yQnVmZmVyT2Zmc2V0ID0gNAotCi0jIFN0cmluZyBmbGFn
cy4KLWNvbnN0IEhhc2hGbGFnczhCaXRCdWZmZXIgPSA2NAotCi0jIFV0aWxpdGllcwotbWFjcm8g
Y3Jhc2goKQotICAgIHN0b3JlaSAwLCAweGJiYWRiZWVmW10KLSAgICBtb3ZlIDAsIHQwCi0gICAg
Y2FsbCB0MAotZW5kCi0KLW1hY3JvIGFzc2VydChhc3NlcnRpb24pCi0gICAgaWYgQVNTRVJUX0VO
QUJMRUQKLSAgICAgICAgYXNzZXJ0aW9uKC5vaykKLSAgICAgICAgY3Jhc2goKQotICAgIC5vazoK
LSAgICBlbmQKLWVuZAotCi1tYWNybyBwcmVzZXJ2ZVJldHVybkFkZHJlc3NBZnRlckNhbGwoZGVz
dGluYXRpb25SZWdpc3RlcikKLSAgICBpZiBBUk12NwotICAgICAgICBtb3ZlIGxyLCBkZXN0aW5h
dGlvblJlZ2lzdGVyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBvcCBkZXN0aW5hdGlvblJlZ2lz
dGVyCi0gICAgZWxzZQotICAgICAgICBlcnJvcgotICAgIGVuZAotZW5kCi0KLW1hY3JvIHJlc3Rv
cmVSZXR1cm5BZGRyZXNzQmVmb3JlUmV0dXJuKHNvdXJjZVJlZ2lzdGVyKQotICAgIGlmIEFSTXY3
Ci0gICAgICAgIG1vdmUgc291cmNlUmVnaXN0ZXIsIGxyCi0gICAgZWxzaWYgWDg2Ci0gICAgICAg
IHB1c2ggc291cmNlUmVnaXN0ZXIKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi1l
bmQKLQotbWFjcm8gZGlzcGF0Y2goYWR2YW5jZSkKLSAgICBhZGRwIGFkdmFuY2UgKiA0LCBQQwot
ICAgIGptcCBbUENdCi1lbmQKLQotbWFjcm8gZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHBjT2Zm
c2V0KQotICAgIGxzaGlmdGkgMiwgcGNPZmZzZXQKLSAgICBhZGRwIHBjT2Zmc2V0LCBQQwotICAg
IGptcCBbUENdCi1lbmQKLQotbWFjcm8gZGlzcGF0Y2hCcmFuY2gocGNPZmZzZXQpCi0gICAgbG9h
ZGkgcGNPZmZzZXQsIHQwCi0gICAgZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHQwKQotZW5kCi0K
LW1hY3JvIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICBsb2FkaSBBcmd1bWVudENvdW50ICsgVGFn
T2Zmc2V0W2Nmcl0sIFBDCi0gICAgam1wIFtQQ10KLWVuZAotCi1tYWNybyBjQ2FsbDIoZnVuY3Rp
b24sIGFyZzEsIGFyZzIpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBhcmcxLCB0MAotICAg
ICAgICBtb3ZlIGFyZzIsIHQxCi0gICAgZWxzaWYgWDg2Ci0gICAgICAgIHBva2UgYXJnMSwgMAot
ICAgICAgICBwb2tlIGFyZzIsIDEKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0g
ICAgY2FsbCBmdW5jdGlvbgotZW5kCi0KLSMgVGhpcyBiYXJlbHkgd29ya3MuIGFyZzMgYW5kIGFy
ZzQgc2hvdWxkIHByb2JhYmx5IGJlIGltbWVkaWF0ZXMuCi1tYWNybyBjQ2FsbDQoZnVuY3Rpb24s
IGFyZzEsIGFyZzIsIGFyZzMsIGFyZzQpCi0gICAgaWYgQVJNdjcKLSAgICAgICAgbW92ZSBhcmcx
LCB0MAotICAgICAgICBtb3ZlIGFyZzIsIHQxCi0gICAgICAgIG1vdmUgYXJnMywgdDIKLSAgICAg
ICAgbW92ZSBhcmc0LCB0MwotICAgIGVsc2lmIFg4NgotICAgICAgICBwb2tlIGFyZzEsIDAKLSAg
ICAgICAgcG9rZSBhcmcyLCAxCi0gICAgICAgIHBva2UgYXJnMywgMgotICAgICAgICBwb2tlIGFy
ZzQsIDMKLSAgICBlbHNlCi0gICAgICAgIGVycm9yCi0gICAgZW5kCi0gICAgY2FsbCBmdW5jdGlv
bgotZW5kCi0KLW1hY3JvIGNhbGxTbG93UGF0aChzbG93X3BhdGgpCi0gICAgY0NhbGwyKHNsb3df
cGF0aCwgY2ZyLCBQQykKLSAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUgdDEsIGNmcgotZW5kCi0K
LSMgRGVidWdnaW5nIG9wZXJhdGlvbiBpZiB5b3UnZCBsaWtlIHRvIHByaW50IGFuIG9wZXJhbmQg
aW4gdGhlIGluc3RydWN0aW9uIHN0cmVhbS4gZnJvbVdoZXJlCi0jIHNob3VsZCBiZSBhbiBpbW1l
ZGlhdGUgaW50ZWdlciAtIGFueSBpbnRlZ2VyIHlvdSBsaWtlOyB1c2UgaXQgdG8gaWRlbnRpZnkg
dGhlIHBsYWNlIHlvdSdyZQotIyBkZWJ1Z2dpbmcgZnJvbS4gb3BlcmFuZCBzaG91bGQgbGlrZXdp
c2UgYmUgYW4gaW1tZWRpYXRlLCBhbmQgc2hvdWxkIGlkZW50aWZ5IHRoZSBvcGVyYW5kCi0jIGlu
IHRoZSBpbnN0cnVjdGlvbiBzdHJlYW0geW91J2QgbGlrZSB0byBwcmludCBvdXQuCi1tYWNybyB0
cmFjZU9wZXJhbmQoZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIGNDYWxsNChfbGxpbnRfdHJhY2Vf
b3BlcmFuZCwgY2ZyLCBQQywgZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIG1vdmUgdDAsIFBDCi0g
ICAgbW92ZSB0MSwgY2ZyCi1lbmQKLQotIyBEZWJ1Z2dpbmcgb3BlcmF0aW9uIGlmIHlvdSdkIGxp
a2UgdG8gcHJpbnQgdGhlIHZhbHVlIG9mIGFuIG9wZXJhbmQgaW4gdGhlIGluc3RydWN0aW9uCi0j
IHN0cmVhbS4gU2FtZSBhcyB0cmFjZU9wZXJhbmQoKSwgYnV0IGFzc3VtZXMgdGhhdCB0aGUgb3Bl
cmFuZCBpcyBhIHJlZ2lzdGVyLCBhbmQgcHJpbnRzIGl0cwotIyB2YWx1ZS4KLW1hY3JvIHRyYWNl
VmFsdWUoZnJvbVdoZXJlLCBvcGVyYW5kKQotICAgIGNDYWxsNChfbGxpbnRfdHJhY2VfdmFsdWUs
IGNmciwgUEMsIGZyb21XaGVyZSwgb3BlcmFuZCkKLSAgICBtb3ZlIHQwLCBQQwotICAgIG1vdmUg
dDEsIGNmcgotZW5kCi0KLW1hY3JvIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBpZiBFWEVDVVRJT05f
VFJBQ0lORwotICAgICAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3RyYWNlKQotICAgIGVuZAotZW5k
Ci0KLSMgQ2FsbCBhIHNsb3dfcGF0aCBmb3IgY2FsbCBvcGNvZGVzLgotbWFjcm8gY2FsbENhbGxT
bG93UGF0aChhZHZhbmNlLCBzbG93X3BhdGgsIGFjdGlvbikKLSAgICBhZGRwIGFkdmFuY2UgKiA0
LCBQQywgdDAKLSAgICBzdG9yZXAgdDAsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQot
ICAgIGNDYWxsMihzbG93X3BhdGgsIGNmciwgUEMpCi0gICAgbW92ZSB0MSwgY2ZyCi0gICAgYWN0
aW9uKHQwKQotZW5kCi0KLW1hY3JvIHNsb3dQYXRoRm9yQ2FsbChhZHZhbmNlLCBzbG93X3BhdGgp
Ci0gICAgY2FsbENhbGxTbG93UGF0aCgKLSAgICAgICAgYWR2YW5jZSwKLSAgICAgICAgc2xvd19w
YXRoLAotICAgICAgICBtYWNybyAoY2FsbGVlKQotICAgICAgICAgICAgY2FsbCBjYWxsZWUKLSAg
ICAgICAgICAgIGRpc3BhdGNoQWZ0ZXJDYWxsKCkKLSAgICAgICAgZW5kKQotZW5kCi0KLW1hY3Jv
IGNoZWNrU3dpdGNoVG9KSVQoaW5jcmVtZW50LCBhY3Rpb24pCi0gICAgaWYgSklUX0VOQUJMRUQK
LSAgICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgICAgIGJhZGRpcyBpbmNyZW1l
bnQsIENvZGVCbG9jazo6bV9sbGludEV4ZWN1dGVDb3VudGVyW3QwXSwgLmNvbnRpbnVlCi0gICAg
ICAgIGFjdGlvbigpCi0gICAgLmNvbnRpbnVlOgotICAgIGVuZAotZW5kCi0KLW1hY3JvIGNoZWNr
U3dpdGNoVG9KSVRGb3JMb29wKCkKLSAgICBjaGVja1N3aXRjaFRvSklUKAotICAgICAgICAxLAot
ICAgICAgICBtYWNybyAoKQotICAgICAgICAgICAgc3RvcmVpIFBDLCBBcmd1bWVudENvdW50ICsg
VGFnT2Zmc2V0W2Nmcl0KLSAgICAgICAgICAgIGNDYWxsMihfbGxpbnRfbG9vcF9vc3IsIGNmciwg
UEMpCi0gICAgICAgICAgICBtb3ZlIHQxLCBjZnIKLSAgICAgICAgICAgIGJ0cHogdDAsIC5yZWNv
dmVyCi0gICAgICAgICAgICBqbXAgdDAKLSAgICAgICAgLnJlY292ZXI6Ci0gICAgICAgICAgICBs
b2FkaSBBcmd1bWVudENvdW50ICsgVGFnT2Zmc2V0W2Nmcl0sIFBDCi0gICAgICAgIGVuZCkKLWVu
ZAotCi1tYWNybyBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGNoZWNrU3dpdGNo
VG9KSVQoCi0gICAgICAgIDEwLAotICAgICAgICBtYWNybyAoKQotICAgICAgICAgICAgY2FsbFNs
b3dQYXRoKF9sbGludF9yZXBsYWNlKQotICAgICAgICBlbmQpCi1lbmQKLQotbWFjcm8gYXNzZXJ0
Tm90Q29uc3RhbnQoaW5kZXgpCi0gICAgYXNzZXJ0KG1hY3JvIChvaykgYmlsdCBpbmRleCwgRmly
c3RDb25zdGFudFJlZ2lzdGVySW5kZXgsIG9rIGVuZCkKLWVuZAotCi0jIEluZGV4LCB0YWcsIGFu
ZCBwYXlsb2FkIG11c3QgYmUgZGlmZmVyZW50IHJlZ2lzdGVycy4gSW5kZXggaXMgbm90Ci0jIGNo
YW5nZWQuCi1tYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKGluZGV4LCB0YWcsIHBheWxvYWQp
Ci0gICAgYmlndGVxIGluZGV4LCBGaXJzdENvbnN0YW50UmVnaXN0ZXJJbmRleCwgLmNvbnN0YW50
Ci0gICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgaW5kZXgsIDhdLCB0YWcKLSAgICBsb2FkaSBQYXls
b2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdLCBwYXlsb2FkCi0gICAgam1wIC5kb25lCi0uY29uc3Rh
bnQ6Ci0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHBheWxvYWQKLSAgICBsb2FkcCBDb2RlQmxv
Y2s6Om1fY29uc3RhbnRSZWdpc3RlcnMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbcGF5bG9hZF0sIHBh
eWxvYWQKLSAgICAjIFRoZXJlIGlzIGEgYml0IG9mIGV2aWwgaGVyZTogaWYgdGhlIGluZGV4IGNv
bnRhaW5zIGEgdmFsdWUgPj0gRmlyc3RDb25zdGFudFJlZ2lzdGVySW5kZXgsCi0gICAgIyB0aGVu
IHZhbHVlIDw8IDMgd2lsbCBiZSBlcXVhbCB0byAodmFsdWUgLSBGaXJzdENvbnN0YW50UmVnaXN0
ZXJJbmRleCkgPDwgMy4KLSAgICBsb2FkcCBUYWdPZmZzZXRbcGF5bG9hZCwgaW5kZXgsIDhdLCB0
YWcKLSAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3BheWxvYWQsIGluZGV4LCA4XSwgcGF5bG9hZAot
LmRvbmU6Ci1lbmQKLQotIyBJbmRleCBhbmQgcGF5bG9hZCBtYXkgYmUgdGhlIHNhbWUgcmVnaXN0
ZXIuIEluZGV4IG1heSBiZSBjbG9iYmVyZWQuCi1tYWNybyBsb2FkQ29uc3RhbnRPclZhcmlhYmxl
MlJlZyhpbmRleCwgdGFnLCBwYXlsb2FkKQotICAgIGJpZ3RlcSBpbmRleCwgRmlyc3RDb25zdGFu
dFJlZ2lzdGVySW5kZXgsIC5jb25zdGFudAotICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIGluZGV4
LCA4XSwgdGFnCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIGluZGV4LCA4XSwgcGF5bG9h
ZAotICAgIGptcCAuZG9uZQotLmNvbnN0YW50OgotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0
YWcKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fY29uc3RhbnRSZWdpc3RlcnMgKyBWZWN0b3JCdWZm
ZXJPZmZzZXRbdGFnXSwgdGFnCi0gICAgIyBUaGVyZSBpcyBhIGJpdCBvZiBldmlsIGhlcmU6IGlm
IHRoZSBpbmRleCBjb250YWlucyBhIHZhbHVlID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4
LAotICAgICMgdGhlbiB2YWx1ZSA8PCAzIHdpbGwgYmUgZXF1YWwgdG8gKHZhbHVlIC0gRmlyc3RD
b25zdGFudFJlZ2lzdGVySW5kZXgpIDw8IDMuCi0gICAgbHNoaWZ0aSAzLCBpbmRleAotICAgIGFk
ZHAgaW5kZXgsIHRhZwotICAgIGxvYWRwIFBheWxvYWRPZmZzZXRbdGFnXSwgcGF5bG9hZAotICAg
IGxvYWRwIFRhZ09mZnNldFt0YWddLCB0YWcKLS5kb25lOgotZW5kCi0KLW1hY3JvIGxvYWRDb25z
dGFudE9yVmFyaWFibGVQYXlsb2FkVGFnQ3VzdG9tKGluZGV4LCB0YWdDaGVjaywgcGF5bG9hZCkK
LSAgICBiaWd0ZXEgaW5kZXgsIEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LCAuY29uc3RhbnQK
LSAgICB0YWdDaGVjayhUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0pCi0gICAgbG9hZGkgUGF5bG9h
ZE9mZnNldFtjZnIsIGluZGV4LCA4XSwgcGF5bG9hZAotICAgIGptcCAuZG9uZQotLmNvbnN0YW50
OgotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCBwYXlsb2FkCi0gICAgbG9hZHAgQ29kZUJsb2Nr
OjptX2NvbnN0YW50UmVnaXN0ZXJzICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3BheWxvYWRdLCBwYXls
b2FkCi0gICAgIyBUaGVyZSBpcyBhIGJpdCBvZiBldmlsIGhlcmU6IGlmIHRoZSBpbmRleCBjb250
YWlucyBhIHZhbHVlID49IEZpcnN0Q29uc3RhbnRSZWdpc3RlckluZGV4LAotICAgICMgdGhlbiB2
YWx1ZSA8PCAzIHdpbGwgYmUgZXF1YWwgdG8gKHZhbHVlIC0gRmlyc3RDb25zdGFudFJlZ2lzdGVy
SW5kZXgpIDw8IDMuCi0gICAgdGFnQ2hlY2soVGFnT2Zmc2V0W3BheWxvYWQsIGluZGV4LCA4XSkK
LSAgICBsb2FkcCBQYXlsb2FkT2Zmc2V0W3BheWxvYWQsIGluZGV4LCA4XSwgcGF5bG9hZAotLmRv
bmU6Ci1lbmQKLQotIyBJbmRleCBhbmQgcGF5bG9hZCBtdXN0IGJlIGRpZmZlcmVudCByZWdpc3Rl
cnMuIEluZGV4IGlzIG5vdCBtdXRhdGVkLiBVc2UKLSMgdGhpcyBpZiB5b3Uga25vdyB3aGF0IHRo
ZSB0YWcgb2YgdGhlIHZhcmlhYmxlIHNob3VsZCBiZS4gRG9pbmcgdGhlIHRhZwotIyB0ZXN0IGFz
IHBhcnQgb2YgbG9hZGluZyB0aGUgdmFyaWFibGUgcmVkdWNlcyByZWdpc3RlciB1c2UsIGJ1dCBt
YXkgbm90Ci0jIGJlIGZhc3RlciB0aGFuIGRvaW5nIGxvYWRDb25zdGFudE9yVmFyaWFibGUgZm9s
bG93ZWQgYnkgYSBicmFuY2ggb24gdGhlCi0jIHRhZy4KLW1hY3JvIGxvYWRDb25zdGFudE9yVmFy
aWFibGVQYXlsb2FkKGluZGV4LCBleHBlY3RlZFRhZywgcGF5bG9hZCwgc2xvdykKLSAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZFRhZ0N1c3RvbSgKLSAgICAgICAgaW5kZXgsCi0gICAg
ICAgIG1hY3JvIChhY3R1YWxUYWcpIGJpbmVxIGFjdHVhbFRhZywgZXhwZWN0ZWRUYWcsIHNsb3cg
ZW5kLAotICAgICAgICBwYXlsb2FkKQotZW5kCi0KLW1hY3JvIGxvYWRDb25zdGFudE9yVmFyaWFi
bGVQYXlsb2FkVW5jaGVja2VkKGluZGV4LCBwYXlsb2FkKQotICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGVQYXlsb2FkVGFnQ3VzdG9tKAotICAgICAgICBpbmRleCwKLSAgICAgICAgbWFjcm8gKGFj
dHVhbFRhZykgZW5kLAotICAgICAgICBwYXlsb2FkKQotZW5kCi0KLW1hY3JvIHdyaXRlQmFycmll
cih0YWcsIHBheWxvYWQpCi0gICAgIyBOb3RoaW5nIHRvIGRvLCBzaW5jZSB3ZSBkb24ndCBoYXZl
IGEgZ2VuZXJhdGlvbmFsIG9yIGluY3JlbWVudGFsIGNvbGxlY3Rvci4KLWVuZAotCi1tYWNybyB2
YWx1ZVByb2ZpbGUodGFnLCBwYXlsb2FkLCBwcm9maWxlKQotICAgIGlmIFZBTFVFX1BST0ZJTEVS
Ci0gICAgICAgIHN0b3JlaSB0YWcsIFZhbHVlUHJvZmlsZTo6bV9idWNrZXRzICsgVGFnT2Zmc2V0
W3Byb2ZpbGVdCi0gICAgICAgIHN0b3JlaSBwYXlsb2FkLCBWYWx1ZVByb2ZpbGU6Om1fYnVja2V0
cyArIFBheWxvYWRPZmZzZXRbcHJvZmlsZV0KLSAgICBlbmQKLWVuZAotCi0KLSMgSW5kaWNhdGUg
dGhlIGJlZ2lubmluZyBvZiBMTEludC4KLV9sbGludF9iZWdpbjoKLSAgICBjcmFzaCgpCi0KLQot
IyBFbnRyeXBvaW50cyBpbnRvIHRoZSBpbnRlcnByZXRlcgotCi1tYWNybyBmdW5jdGlvbkZvckNh
bGxDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0s
IHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNGdW5jdGlvbjo6bV9leGVjdXRhYmxlW3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAgICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6
Om1fY29kZUJsb2NrRm9yQ2FsbFt0YXJnZXRSZWdpc3Rlcl0sIHRhcmdldFJlZ2lzdGVyCi1lbmQK
LQotbWFjcm8gZnVuY3Rpb25Gb3JDb25zdHJ1Y3RDb2RlQmxvY2tHZXR0ZXIodGFyZ2V0UmVnaXN0
ZXIpCi0gICAgbG9hZHAgQ2FsbGVlW2Nmcl0sIHRhcmdldFJlZ2lzdGVyCi0gICAgbG9hZHAgSlNG
dW5jdGlvbjo6bV9leGVjdXRhYmxlW3RhcmdldFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLSAg
ICBsb2FkcCBGdW5jdGlvbkV4ZWN1dGFibGU6Om1fY29kZUJsb2NrRm9yQ29uc3RydWN0W3Rhcmdl
dFJlZ2lzdGVyXSwgdGFyZ2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBub3RGdW5jdGlvbkNvZGVC
bG9ja0dldHRlcih0YXJnZXRSZWdpc3RlcikKLSAgICBsb2FkcCBDb2RlQmxvY2tbY2ZyXSwgdGFy
Z2V0UmVnaXN0ZXIKLWVuZAotCi1tYWNybyBmdW5jdGlvbkNvZGVCbG9ja1NldHRlcihzb3VyY2VS
ZWdpc3RlcikKLSAgICBzdG9yZXAgc291cmNlUmVnaXN0ZXIsIENvZGVCbG9ja1tjZnJdCi1lbmQK
LQotbWFjcm8gbm90RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIoc291cmNlUmVnaXN0ZXIpCi0gICAg
IyBOb3RoaW5nIHRvIGRvIQotZW5kCi0KLSMgRG8gdGhlIGJhcmUgbWluaW11bSByZXF1aXJlZCB0
byBleGVjdXRlIGNvZGUuIFNldHMgdXAgdGhlIFBDLCBsZWF2ZSB0aGUgQ29kZUJsb2NrKgotIyBp
biB0MS4gTWF5IGFsc28gdHJpZ2dlciBwcm9sb2d1ZSBlbnRyeSBPU1IuCi1tYWNybyBwcm9sb2d1
ZShjb2RlQmxvY2tHZXR0ZXIsIGNvZGVCbG9ja1NldHRlciwgb3NyU2xvd1BhdGgsIHRyYWNlU2xv
d1BhdGgpCi0gICAgcHJlc2VydmVSZXR1cm5BZGRyZXNzQWZ0ZXJDYWxsKHQyKQotICAgIAotICAg
ICMgU2V0IHVwIHRoZSBjYWxsIGZyYW1lIGFuZCBjaGVjayBpZiB3ZSBzaG91bGQgT1NSLgotICAg
IHN0b3JlcCB0MiwgUmV0dXJuUENbY2ZyXQotICAgIGlmIEVYRUNVVElPTl9UUkFDSU5HCi0gICAg
ICAgIGNhbGxTbG93UGF0aCh0cmFjZVNsb3dQYXRoKQotICAgIGVuZAotICAgIGNvZGVCbG9ja0dl
dHRlcih0MSkKLSAgICBpZiBKSVRfRU5BQkxFRAotICAgICAgICBiYWRkaXMgNSwgQ29kZUJsb2Nr
OjptX2xsaW50RXhlY3V0ZUNvdW50ZXJbdDFdLCAuY29udGludWUKLSAgICAgICAgY0NhbGwyKG9z
clNsb3dQYXRoLCBjZnIsIFBDKQotICAgICAgICBtb3ZlIHQxLCBjZnIKLSAgICAgICAgYnRweiB0
MCwgLnJlY292ZXIKLSAgICAgICAgbG9hZHAgUmV0dXJuUENbY2ZyXSwgdDIKLSAgICAgICAgcmVz
dG9yZVJldHVybkFkZHJlc3NCZWZvcmVSZXR1cm4odDIpCi0gICAgICAgIGptcCB0MAotICAgIC5y
ZWNvdmVyOgotICAgICAgICBjb2RlQmxvY2tHZXR0ZXIodDEpCi0gICAgLmNvbnRpbnVlOgotICAg
IGVuZAotICAgIGNvZGVCbG9ja1NldHRlcih0MSkKLSAgICAKLSAgICAjIFNldCB1cCB0aGUgUEMu
Ci0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9uc1t0MV0sIHQwCi0gICAgbG9hZHAg
Q29kZUJsb2NrOjpJbnN0cnVjdGlvbnM6Om1faW5zdHJ1Y3Rpb25zICsgVmVjdG9yQnVmZmVyT2Zm
c2V0W3QwXSwgUEMKLWVuZAotCi0jIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdo
aWNoIGlzIHdoYXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotIyBNdXN0IGNhbGwgZGlzcGF0
Y2goMCkgYWZ0ZXIgY2FsbGluZyB0aGlzLgotbWFjcm8gZnVuY3Rpb25Jbml0aWFsaXphdGlvbihw
cm9maWxlQXJnU2tpcCkKLSAgICBpZiBWQUxVRV9QUk9GSUxFUgotICAgICAgICAjIFByb2ZpbGUg
dGhlIGFyZ3VtZW50cy4gVW5mb3J0dW5hdGVseSwgd2UgaGF2ZSBubyBjaG9pY2UgYnV0IHRvIGRv
IHRoaXMuIFRoaXMKLSAgICAgICAgIyBjb2RlIGlzIHByZXR0eSBob3JyZW5kb3VzIGJlY2F1c2Ug
b2YgdGhlIGRpZmZlcmVuY2UgaW4gb3JkZXJpbmcgYmV0d2VlbgotICAgICAgICAjIGFyZ3VtZW50
cyBhbmQgdmFsdWUgcHJvZmlsZXMsIHRoZSBkZXNpcmUgdG8gaGF2ZSBhIHNpbXBsZSBsb29wLWRv
d24tdG8temVybwotICAgICAgICAjIGxvb3AsIGFuZCB0aGUgZGVzaXJlIHRvIHVzZSBvbmx5IHRo
cmVlIHJlZ2lzdGVycyBzbyBhcyB0byBwcmVzZXJ2ZSB0aGUgUEMgYW5kCi0gICAgICAgICMgdGhl
IGNvZGUgYmxvY2suIEl0IGlzIGxpa2VseSB0aGF0IHRoaXMgY29kZSBzaG91bGQgYmUgcmV3cml0
dGVuIGluIGEgbW9yZQotICAgICAgICAjIG9wdGltYWwgd2F5IGZvciBhcmNoaXRlY3R1cmVzIHRo
YXQgaGF2ZSBtb3JlIHRoYW4gZml2ZSByZWdpc3RlcnMgYXZhaWxhYmxlCi0gICAgICAgICMgZm9y
IGFyYml0cmFyeSB1c2UgaW4gdGhlIGludGVycHJldGVyLgotICAgICAgICBsb2FkaSBDb2RlQmxv
Y2s6Om1fbnVtUGFyYW1ldGVyc1t0MV0sIHQwCi0gICAgICAgIGFkZGkgLXByb2ZpbGVBcmdTa2lw
LCB0MCAjIFVzZSBhZGRpIGJlY2F1c2UgdGhhdCdzIHdoYXQgaGFzIHRoZSBwZWVwaG9sZQotICAg
ICAgICBhc3NlcnQobWFjcm8gKG9rKSBiaWd0ZXEgdDAsIDAsIG9rIGVuZCkKLSAgICAgICAgYnRp
eiB0MCwgLmFyZ3VtZW50UHJvZmlsZURvbmUKLSAgICAgICAgbG9hZHAgQ29kZUJsb2NrOjptX2Fy
Z3VtZW50VmFsdWVQcm9maWxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0MV0sIHQzCi0gICAgICAg
IG11bGkgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDAsIHQyICMgQWFhYWFoaGhoISBOZWVkIHN0cmVu
Z3RoIHJlZHVjdGlvbiEKLSAgICAgICAgbmVnaSB0MAotICAgICAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgICAgIGFkZHAgdDIsIHQzCi0gICAgLmFyZ3VtZW50UHJvZmlsZUxvb3A6Ci0gICAgICAgIGxv
YWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAq
IDhbY2ZyLCB0MF0sIHQyCi0gICAgICAgIHN1YnAgc2l6ZW9mIFZhbHVlUHJvZmlsZSwgdDMKLSAg
ICAgICAgc3RvcmVpIHQyLCBwcm9maWxlQXJnU2tpcCAqIHNpemVvZiBWYWx1ZVByb2ZpbGUgKyBW
YWx1ZVByb2ZpbGU6Om1fYnVja2V0cyArIFRhZ09mZnNldFt0M10KLSAgICAgICAgbG9hZGkgVGhp
c0FyZ3VtZW50T2Zmc2V0ICsgUGF5bG9hZE9mZnNldCArIDggLSBwcm9maWxlQXJnU2tpcCAqIDhb
Y2ZyLCB0MF0sIHQyCi0gICAgICAgIHN0b3JlaSB0MiwgcHJvZmlsZUFyZ1NraXAgKiBzaXplb2Yg
VmFsdWVQcm9maWxlICsgVmFsdWVQcm9maWxlOjptX2J1Y2tldHMgKyBQYXlsb2FkT2Zmc2V0W3Qz
XQotICAgICAgICBiYWRkaW56IDgsIHQwLCAuYXJndW1lbnRQcm9maWxlTG9vcAotICAgIC5hcmd1
bWVudFByb2ZpbGVEb25lOgotICAgIGVuZAotICAgICAgICAKLSAgICAjIENoZWNrIHN0YWNrIGhl
aWdodC4KLSAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtQ2FsbGVlUmVnaXN0ZXJzW3QxXSwgdDAK
LSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQyCi0gICAgbG9hZHAgSlNH
bG9iYWxEYXRhOjppbnRlcnByZXRlclt0Ml0sIHQyICAgIyBGSVhNRTogQ2FuIGdldCB0byB0aGUg
UmVnaXN0ZXJGaWxlIGZyb20gdGhlIEpJVFN0YWNrRnJhbWUKLSAgICBsc2hpZnRpIDMsIHQwCi0g
ICAgYWRkcCB0MCwgY2ZyLCB0MAotICAgIGJwYWVxIEludGVycHJldGVyOjptX3JlZ2lzdGVyRmls
ZSArIFJlZ2lzdGVyRmlsZTo6bV9lbmRbdDJdLCB0MCwgLnN0YWNrSGVpZ2h0T0sKLQotICAgICMg
U3RhY2sgaGVpZ2h0IGNoZWNrIGZhaWxlZCAtIG5lZWQgdG8gY2FsbCBhIHNsb3dfcGF0aC4KLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3JlZ2lzdGVyX2ZpbGVfY2hlY2spCi0uc3RhY2tIZWlnaHRP
SzoKLWVuZAotCi0jIEV4cGVjdHMgdGhhdCBDb2RlQmxvY2sgaXMgaW4gdDEsIHdoaWNoIGlzIHdo
YXQgcHJvbG9ndWUoKSBsZWF2ZXMgYmVoaW5kLgotbWFjcm8gZnVuY3Rpb25Bcml0eUNoZWNrKGRv
bmVMYWJlbCwgc2xvd19wYXRoKQotICAgIGxvYWRpIFBheWxvYWRPZmZzZXQgKyBBcmd1bWVudENv
dW50W2Nmcl0sIHQwCi0gICAgYmlhZXEgdDAsIENvZGVCbG9jazo6bV9udW1QYXJhbWV0ZXJzW3Qx
XSwgZG9uZUxhYmVsCi0gICAgY0NhbGwyKHNsb3dfcGF0aCwgY2ZyLCBQQykgICAjIFRoaXMgc2xv
d19wYXRoIGhhcyBhIHNpbXBsZSBwcm90b2NvbDogdDAgPSAwID0+IG5vIGVycm9yLCB0MCAhPSAw
ID0+IGVycm9yCi0gICAgbW92ZSB0MSwgY2ZyCi0gICAgYnRpeiB0MCwgLmNvbnRpbnVlCi0gICAg
bG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFsRGF0YVtzcF0sIHQxCi0gICAgbG9hZHAgSlNHbG9i
YWxEYXRhOjpjYWxsRnJhbWVGb3JUaHJvd1t0MV0sIHQwCi0gICAgam1wIEpTR2xvYmFsRGF0YTo6
dGFyZ2V0TWFjaGluZVBDRm9yVGhyb3dbdDFdCi0uY29udGludWU6Ci0gICAgIyBSZWxvYWQgQ29k
ZUJsb2NrIGFuZCBQQywgc2luY2UgdGhlIHNsb3dfcGF0aCBjbG9iYmVyZWQgaXQuCi0gICAgbG9h
ZHAgQ29kZUJsb2NrW2Nmcl0sIHQxCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2luc3RydWN0aW9u
c1t0MV0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjpJbnN0cnVjdGlvbnM6Om1faW5zdHJ1Y3Rp
b25zICsgVmVjdG9yQnVmZmVyT2Zmc2V0W3QwXSwgUEMKLSAgICBqbXAgZG9uZUxhYmVsCi1lbmQK
LQotX2xsaW50X3Byb2dyYW1fcHJvbG9ndWU6Ci0gICAgcHJvbG9ndWUobm90RnVuY3Rpb25Db2Rl
QmxvY2tHZXR0ZXIsIG5vdEZ1bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3Ny
LCBfbGxpbnRfdHJhY2VfcHJvbG9ndWUpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfZXZh
bF9wcm9sb2d1ZToKLSAgICBwcm9sb2d1ZShub3RGdW5jdGlvbkNvZGVCbG9ja0dldHRlciwgbm90
RnVuY3Rpb25Db2RlQmxvY2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3IsIF9sbGludF90cmFjZV9w
cm9sb2d1ZSkKLSAgICBkaXNwYXRjaCgwKQotCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY2FsbF9w
cm9sb2d1ZToKLSAgICBwcm9sb2d1ZShmdW5jdGlvbkZvckNhbGxDb2RlQmxvY2tHZXR0ZXIsIGZ1
bmN0aW9uQ29kZUJsb2NrU2V0dGVyLCBfbGxpbnRfZW50cnlfb3NyX2Z1bmN0aW9uX2Zvcl9jYWxs
LCBfbGxpbnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NhbGwpCi0uZnVuY3Rpb25Gb3JD
YWxsQmVnaW46Ci0gICAgZnVuY3Rpb25Jbml0aWFsaXphdGlvbigwKQotICAgIGRpc3BhdGNoKDAp
Ci0gICAgCi0KLV9sbGludF9mdW5jdGlvbl9mb3JfY29uc3RydWN0X3Byb2xvZ3VlOgotICAgIHBy
b2xvZ3VlKGZ1bmN0aW9uRm9yQ29uc3RydWN0Q29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVC
bG9ja1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY29uc3RydWN0LCBfbGxp
bnRfdHJhY2VfcHJvbG9ndWVfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdCkKLS5mdW5jdGlvbkZvckNv
bnN0cnVjdEJlZ2luOgotICAgIGZ1bmN0aW9uSW5pdGlhbGl6YXRpb24oMSkKLSAgICBkaXNwYXRj
aCgwKQotICAgIAotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NhbGxfYXJpdHlfY2hlY2s6Ci0gICAg
cHJvbG9ndWUoZnVuY3Rpb25Gb3JDYWxsQ29kZUJsb2NrR2V0dGVyLCBmdW5jdGlvbkNvZGVCbG9j
a1NldHRlciwgX2xsaW50X2VudHJ5X29zcl9mdW5jdGlvbl9mb3JfY2FsbF9hcml0eUNoZWNrLCBf
bGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY2FsbCkKLSAgICBmdW5jdGlvbkFyaXR5Q2hlY2so
LmZ1bmN0aW9uRm9yQ2FsbEJlZ2luLCBfbGxpbnRfc2xvd19wYXRoX2NhbGxfYXJpdHlDaGVjaykK
LQotCi1fbGxpbnRfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eV9jaGVjazoKLSAgICBwcm9s
b2d1ZShmdW5jdGlvbkZvckNvbnN0cnVjdENvZGVCbG9ja0dldHRlciwgZnVuY3Rpb25Db2RlQmxv
Y2tTZXR0ZXIsIF9sbGludF9lbnRyeV9vc3JfZnVuY3Rpb25fZm9yX2NvbnN0cnVjdF9hcml0eUNo
ZWNrLCBfbGxpbnRfdHJhY2VfYXJpdHlDaGVja19mb3JfY29uc3RydWN0KQotICAgIGZ1bmN0aW9u
QXJpdHlDaGVjayguZnVuY3Rpb25Gb3JDb25zdHJ1Y3RCZWdpbiwgX2xsaW50X3Nsb3dfcGF0aF9j
b25zdHJ1Y3RfYXJpdHlDaGVjaykKLQotIyBJbnN0cnVjdGlvbiBpbXBsZW1lbnRhdGlvbnMKLQot
X2xsaW50X29wX2VudGVyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDIKLSAgICBsb2FkaSBDb2RlQmxvY2s6Om1fbnVtVmFyc1t0Ml0sIHQyCi0gICAg
YnRpeiB0MiwgLm9wRW50ZXJEb25lCi0gICAgbW92ZSBVbmRlZmluZWRUYWcsIHQwCi0gICAgbW92
ZSAwLCB0MQotLm9wRW50ZXJMb29wOgotICAgIHN1YmkgMSwgdDIKLSAgICBzdG9yZWkgdDAsIFRh
Z09mZnNldFtjZnIsIHQyLCA4XQotICAgIHN0b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQy
LCA4XQotICAgIGJ0aW56IHQyLCAub3BFbnRlckxvb3AKLS5vcEVudGVyRG9uZToKLSAgICBkaXNw
YXRjaCgxKQotCi0KLV9sbGludF9vcF9jcmVhdGVfYWN0aXZhdGlvbjoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgbG9hZGkgNFtQQ10sIHQwCi0gICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAs
IDhdLCBFbXB0eVZhbHVlVGFnLCAub3BDcmVhdGVBY3RpdmF0aW9uRG9uZQotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2NyZWF0ZV9hY3RpdmF0aW9uKQotLm9wQ3JlYXRlQWN0aXZh
dGlvbkRvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfaW5pdF9sYXp5X3JlZzoK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgNFtQQ10sIHQwCi0gICAgc3RvcmVpIEVt
cHR5VmFsdWVUYWcsIFRhZ09mZnNldFtjZnIsIHQwLCA4XQotICAgIHN0b3JlaSAwLCBQYXlsb2Fk
T2Zmc2V0W2NmciwgdDAsIDhdCi0gICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfY3JlYXRl
X2FyZ3VtZW50czoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgNFtQQ10sIHQwCi0g
ICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCBFbXB0eVZhbHVlVGFnLCAub3BDcmVhdGVB
cmd1bWVudHNEb25lCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX2Fy
Z3VtZW50cykKLS5vcENyZWF0ZUFyZ3VtZW50c0RvbmU6Ci0gICAgZGlzcGF0Y2goMikKLQotCi1t
YWNybyBhbGxvY2F0ZUJhc2ljSlNPYmplY3Qoc2l6ZUNsYXNzSW5kZXgsIGNsYXNzSW5mb09mZnNl
dCwgc3RydWN0dXJlLCByZXN1bHQsIHNjcmF0Y2gxLCBzY3JhdGNoMiwgc2xvd0Nhc2UpCi0gICAg
aWYgQUxXQVlTX0FMTE9DQVRFX1NMT1cKLSAgICAgICAgam1wIHNsb3dDYXNlCi0gICAgZWxzZQot
ICAgICAgICBjb25zdCBvZmZzZXRPZk15U2l6ZUNsYXNzID0KLSAgICAgICAgICAgIEpTR2xvYmFs
RGF0YTo6aGVhcCArCi0gICAgICAgICAgICBIZWFwOjptX29iamVjdFNwYWNlICsKLSAgICAgICAg
ICAgIE1hcmtlZFNwYWNlOjptX25vcm1hbFNwYWNlICsKLSAgICAgICAgICAgIE1hcmtlZFNwYWNl
OjpTdWJzcGFjZTo6cHJlY2lzZUFsbG9jYXRvcnMgKwotICAgICAgICAgICAgc2l6ZUNsYXNzSW5k
ZXggKiBzaXplb2YgTWFya2VkQWxsb2NhdG9yCi0gICAgICAgIAotICAgICAgICAjIEZJWE1FOiB3
ZSBjYW4gZ2V0IHRoZSBnbG9iYWwgZGF0YSBpbiBvbmUgbG9hZCBmcm9tIHRoZSBzdGFjay4KLSAg
ICAgICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHNjcmF0Y2gxCi0gICAgICAgIGxvYWRwIENvZGVC
bG9jazo6bV9nbG9iYWxEYXRhW3NjcmF0Y2gxXSwgc2NyYXRjaDEKLSAgICAgICAgCi0gICAgICAg
ICMgR2V0IHRoZSBvYmplY3QgZnJvbSB0aGUgZnJlZSBsaXN0LiAgICAKLSAgICAgICAgbG9hZHAg
b2Zmc2V0T2ZNeVNpemVDbGFzcyArIE1hcmtlZEFsbG9jYXRvcjo6bV9maXJzdEZyZWVDZWxsW3Nj
cmF0Y2gxXSwgcmVzdWx0Ci0gICAgICAgIGJ0cHogcmVzdWx0LCBzbG93Q2FzZQotICAgICAgICAK
LSAgICAgICAgIyBSZW1vdmUgdGhlIG9iamVjdCBmcm9tIHRoZSBmcmVlIGxpc3QuCi0gICAgICAg
IGxvYWRwIFtyZXN1bHRdLCBzY3JhdGNoMgotICAgICAgICBzdG9yZXAgc2NyYXRjaDIsIG9mZnNl
dE9mTXlTaXplQ2xhc3MgKyBNYXJrZWRBbGxvY2F0b3I6Om1fZmlyc3RGcmVlQ2VsbFtzY3JhdGNo
MV0KLSAgICAKLSAgICAgICAgIyBJbml0aWFsaXplIHRoZSBvYmplY3QuCi0gICAgICAgIGxvYWRw
IGNsYXNzSW5mb09mZnNldFtzY3JhdGNoMV0sIHNjcmF0Y2gyCi0gICAgICAgIHN0b3JlcCBzY3Jh
dGNoMiwgW3Jlc3VsdF0KLSAgICAgICAgc3RvcmVwIHN0cnVjdHVyZSwgSlNDZWxsOjptX3N0cnVj
dHVyZVtyZXN1bHRdCi0gICAgICAgIHN0b3JlcCAwLCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFty
ZXN1bHRdCi0gICAgICAgIGFkZHAgc2l6ZW9mIEpTT2JqZWN0LCByZXN1bHQsIHNjcmF0Y2gxCi0g
ICAgICAgIHN0b3JlcCBzY3JhdGNoMSwgSlNPYmplY3Q6Om1fcHJvcGVydHlTdG9yYWdlW3Jlc3Vs
dF0KLSAgICBlbmQKLWVuZAotCi1fbGxpbnRfb3BfY3JlYXRlX3RoaXM6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGFzc2VydE5vdENvbnN0YW50KHQwKQot
ICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgQ2VsbFRhZywgLm9wQ3JlYXRlVGhpc1Ns
b3cKLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAotICAgIGxvYWRwIEpT
Q2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MQotICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8g
KyBUeXBlSW5mbzo6bV90eXBlW3QxXSwgT2JqZWN0VHlwZSwgLm9wQ3JlYXRlVGhpc1Nsb3cKLSAg
ICBsb2FkcCBKU09iamVjdDo6bV9pbmhlcml0b3JJRFt0MF0sIHQyCi0gICAgYnRweiB0MiwgLm9w
Q3JlYXRlVGhpc1Nsb3cKLSAgICBhbGxvY2F0ZUJhc2ljSlNPYmplY3QoSlNGaW5hbE9iamVjdFNp
emVDbGFzc0luZGV4LCBKU0dsb2JhbERhdGE6OmpzRmluYWxPYmplY3RDbGFzc0luZm8sIHQyLCB0
MCwgdDEsIHQzLCAub3BDcmVhdGVUaGlzU2xvdykKLSAgICBsb2FkaSA0W1BDXSwgdDEKLSAgICBz
dG9yZWkgQ2VsbFRhZywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgc3RvcmVpIHQwLCBQYXls
b2FkT2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgZGlzcGF0Y2goMykKLQotLm9wQ3JlYXRlVGhpc1Ns
b3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfY3JlYXRlX3RoaXMpCi0gICAg
ZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfZ2V0X2NhbGxlZToKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgbG9hZGkgNFtQQ10sIHQwCi0gICAgbG9hZHAgUGF5bG9hZE9mZnNldCArIENhbGxl
ZVtjZnJdLCB0MQotICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0KLSAg
ICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICBkaXNwYXRjaCgyKQot
Ci0KLV9sbGludF9vcF9jb252ZXJ0X3RoaXM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxv
YWRpIDRbUENdLCB0MAotICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgQ2VsbFRhZywg
Lm9wQ29udmVydFRoaXNTbG93Ci0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwg
dDAKLSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKLSAgICBiYmIgU3RydWN0
dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MF0sIE9iamVjdFR5cGUsIC5vcENv
bnZlcnRUaGlzU2xvdwotICAgIGRpc3BhdGNoKDIpCi0KLS5vcENvbnZlcnRUaGlzU2xvdzoKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9jb252ZXJ0X3RoaXMpCi0gICAgZGlzcGF0
Y2goMikKLQotCi1fbGxpbnRfb3BfbmV3X29iamVjdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9hZHAgQ29kZUJsb2NrOjptX2dsb2Jh
bE9iamVjdFt0MF0sIHQwCi0gICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1fZW1wdHlPYmplY3RT
dHJ1Y3R1cmVbdDBdLCB0MQotICAgIGFsbG9jYXRlQmFzaWNKU09iamVjdChKU0ZpbmFsT2JqZWN0
U2l6ZUNsYXNzSW5kZXgsIEpTR2xvYmFsRGF0YTo6anNGaW5hbE9iamVjdENsYXNzSW5mbywgdDEs
IHQwLCB0MiwgdDMsIC5vcE5ld09iamVjdFNsb3cpCi0gICAgbG9hZGkgNFtQQ10sIHQxCi0gICAg
c3RvcmVpIENlbGxUYWcsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQotICAgIHN0b3JlaSB0MCwgUGF5
bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIGRpc3BhdGNoKDIpCi0KLS5vcE5ld09iamVjdFNs
b3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X29iamVjdCkKLSAgICBk
aXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXk6Ci0gICAgdHJhY2VFeGVjdXRpb24o
KQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19hcnJheSkKLSAgICBkaXNw
YXRjaCg0KQotCi0KLV9sbGludF9vcF9uZXdfYXJyYXlfYnVmZmVyOgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfYXJyYXlfYnVmZmVy
KQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX25ld19yZWdleHA6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25ld19yZWdleHAp
Ci0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfbW92OgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBsb2FkaSA4W1BDXSwgdDEKLSAgICBsb2FkaSA0W1BDXSwgdDAKLSAgICBsb2FkQ29u
c3RhbnRPclZhcmlhYmxlKHQxLCB0MiwgdDMpCi0gICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2Zy
LCB0MCwgOF0KLSAgICBzdG9yZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICBk
aXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9ub3Q6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRpIDRbUENdLCB0MQotICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUodDAsIHQyLCB0MykKLSAgICBiaW5lcSB0MiwgQm9vbGVhblRhZywgLm9wTm90U2xv
dwotICAgIHhvcmkgMSwgdDMKLSAgICBzdG9yZWkgdDIsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQot
ICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIGRpc3BhdGNoKDMp
Ci0KLS5vcE5vdFNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbm90KQot
ICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICBsb2FkaSAxMltQQ10sIHQyCi0gICAgbG9hZGkgOFtQQ10sIHQwCi0gICAgbG9hZENvbnN0
YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUyUmVn
KHQwLCB0MiwgdDApCi0gICAgYmluZXEgdDIsIHQzLCAub3BFcVNsb3cKLSAgICBiaWVxIHQyLCBD
ZWxsVGFnLCAub3BFcVNsb3cKLSAgICBiaWIgdDIsIExvd2VzdFRhZywgLm9wRXFTbG93Ci0gICAg
bG9hZGkgNFtQQ10sIHQyCi0gICAgY2llcSB0MCwgdDEsIHQwCi0gICAgc3RvcmVpIEJvb2xlYW5U
YWcsIFRhZ09mZnNldFtjZnIsIHQyLCA4XQotICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQyLCA4XQotICAgIGRpc3BhdGNoKDQpCi0KLS5vcEVxU2xvdzoKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9lcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9l
cV9udWxsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkaSA4W1BDXSwgdDAKLSAgICBs
b2FkaSA0W1BDXSwgdDMKLSAgICBhc3NlcnROb3RDb25zdGFudCh0MCkKLSAgICBsb2FkaSBUYWdP
ZmZzZXRbY2ZyLCB0MCwgOF0sIHQxCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4
XSwgdDAKLSAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wRXFOdWxsSW1tZWRpYXRlCi0gICAgbG9h
ZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCi0gICAgdGJueiBTdHJ1Y3R1cmU6Om1fdHlw
ZUluZm8gKyBUeXBlSW5mbzo6bV9mbGFnc1t0MV0sIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQsIHQx
Ci0gICAgam1wIC5vcEVxTnVsbE5vdEltbWVkaWF0ZQotLm9wRXFOdWxsSW1tZWRpYXRlOgotICAg
IGNpZXEgdDEsIE51bGxUYWcsIHQyCi0gICAgY2llcSB0MSwgVW5kZWZpbmVkVGFnLCB0MQotICAg
IG9yaSB0MiwgdDEKLS5vcEVxTnVsbE5vdEltbWVkaWF0ZToKLSAgICBzdG9yZWkgQm9vbGVhblRh
ZywgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCi0gICAgc3RvcmVpIHQxLCBQYXlsb2FkT2Zmc2V0W2Nm
ciwgdDMsIDhdCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfbmVxOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBsb2FkaSAxMltQQ10sIHQyCi0gICAgbG9hZGkgOFtQQ10sIHQwCi0g
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQotICAgIGxvYWRDb25zdGFudE9y
VmFyaWFibGUyUmVnKHQwLCB0MiwgdDApCi0gICAgYmluZXEgdDIsIHQzLCAub3BOZXFTbG93Ci0g
ICAgYmllcSB0MiwgQ2VsbFRhZywgLm9wTmVxU2xvdwotICAgIGJpYiB0MiwgTG93ZXN0VGFnLCAu
b3BOZXFTbG93Ci0gICAgbG9hZGkgNFtQQ10sIHQyCi0gICAgY2luZXEgdDAsIHQxLCB0MAotICAg
IHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBzdG9yZWkgdDAs
IFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBkaXNwYXRjaCg0KQotCi0ub3BOZXFTbG93
OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX25lcSkKLSAgICBkaXNwYXRjaCg0
KQotICAgIAotCi1fbGxpbnRfb3BfbmVxX251bGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRpIDRbUENdLCB0MwotICAgIGFzc2VydE5vdENvbnN0
YW50KHQwKQotICAgIGxvYWRpIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgdDEKLSAgICBsb2FkaSBQ
YXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MAotICAgIGJpbmVxIHQxLCBDZWxsVGFnLCAub3BO
ZXFOdWxsSW1tZWRpYXRlCi0gICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCi0g
ICAgdGJ6IFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QxXSwgTWFz
cXVlcmFkZXNBc1VuZGVmaW5lZCwgdDEKLSAgICBqbXAgLm9wTmVxTnVsbE5vdEltbWVkaWF0ZQot
Lm9wTmVxTnVsbEltbWVkaWF0ZToKLSAgICBjaW5lcSB0MSwgTnVsbFRhZywgdDIKLSAgICBjaW5l
cSB0MSwgVW5kZWZpbmVkVGFnLCB0MQotICAgIGFuZGkgdDIsIHQxCi0ub3BOZXFOdWxsTm90SW1t
ZWRpYXRlOgotICAgIHN0b3JlaSBCb29sZWFuVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KLSAg
ICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MywgOF0KLSAgICBkaXNwYXRjaCgzKQot
Ci0KLW1hY3JvIHN0cmljdEVxKGVxdWFsaXR5T3BlcmF0aW9uLCBzbG93X3BhdGgpCi0gICAgbG9h
ZGkgMTJbUENdLCB0MgotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRDb25zdGFudE9yVmFy
aWFibGUodDIsIHQzLCB0MSkKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MCwgdDIs
IHQwKQotICAgIGJpbmVxIHQyLCB0MywgLnNsb3cKLSAgICBiaWIgdDIsIExvd2VzdFRhZywgLnNs
b3cKLSAgICBiaW5lcSB0MiwgQ2VsbFRhZywgLm5vdFN0cmluZwotICAgIGxvYWRwIEpTQ2VsbDo6
bV9zdHJ1Y3R1cmVbdDBdLCB0MgotICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0
MwotICAgIGJibmVxIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX3R5cGVbdDJd
LCBTdHJpbmdUeXBlLCAubm90U3RyaW5nCi0gICAgYmJlcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8g
KyBUeXBlSW5mbzo6bV90eXBlW3QzXSwgU3RyaW5nVHlwZSwgLnNsb3cKLS5ub3RTdHJpbmc6Ci0g
ICAgbG9hZGkgNFtQQ10sIHQyCi0gICAgZXF1YWxpdHlPcGVyYXRpb24odDAsIHQxLCB0MCkKLSAg
ICBzdG9yZWkgQm9vbGVhblRhZywgVGFnT2Zmc2V0W2NmciwgdDIsIDhdCi0gICAgc3RvcmVpIHQw
LCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdCi0gICAgZGlzcGF0Y2goNCkKLQotLnNsb3c6Ci0g
ICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBkaXNwYXRjaCg0KQotZW5kCi0KLV9sbGlu
dF9vcF9zdHJpY3RlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgc3RyaWN0RXEobWFjcm8g
KGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNpZXEgbGVmdCwgcmlnaHQsIHJlc3VsdCBlbmQsIF9sbGlu
dF9zbG93X3BhdGhfc3RyaWN0ZXEpCi0KLQotX2xsaW50X29wX25zdHJpY3RlcToKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgc3RyaWN0RXEobWFjcm8gKGxlZnQsIHJpZ2h0LCByZXN1bHQpIGNp
bmVxIGxlZnQsIHJpZ2h0LCByZXN1bHQgZW5kLCBfbGxpbnRfc2xvd19wYXRoX25zdHJpY3RlcSkK
LQotCi1fbGxpbnRfb3BfbGVzczoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQ
YXRoKF9sbGludF9zbG93X3BhdGhfbGVzcykKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9v
cF9sZXNzZXE6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2xlc3NlcSkKLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9ncmVhdGVy
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF9ncmVhdGVyKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX2dyZWF0ZXJlcToKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ3Jl
YXRlcmVxKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX3ByZV9pbmM6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDRbUENdLCB0MAotICAgIGJpbmVxIFRhZ09mZnNldFtj
ZnIsIHQwLCA4XSwgSW50MzJUYWcsIC5vcFByZUluY1Nsb3cKLSAgICBsb2FkaSBQYXlsb2FkT2Zm
c2V0W2NmciwgdDAsIDhdLCB0MQotICAgIGJhZGRpbyAxLCB0MSwgLm9wUHJlSW5jU2xvdwotICAg
IHN0b3JlaSB0MSwgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XQotICAgIGRpc3BhdGNoKDIpCi0K
LS5vcFByZUluY1Nsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJlX2lu
YykKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9wcmVfZGVjOgotICAgIHRyYWNlRXhl
Y3V0aW9uKCkKLSAgICBsb2FkaSA0W1BDXSwgdDAKLSAgICBiaW5lcSBUYWdPZmZzZXRbY2ZyLCB0
MCwgOF0sIEludDMyVGFnLCAub3BQcmVEZWNTbG93Ci0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtj
ZnIsIHQwLCA4XSwgdDEKLSAgICBic3ViaW8gMSwgdDEsIC5vcFByZURlY1Nsb3cKLSAgICBzdG9y
ZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICBkaXNwYXRjaCgyKQotCi0ub3BQ
cmVEZWNTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3ByZV9kZWMpCi0g
ICAgZGlzcGF0Y2goMikKLQotCi1fbGxpbnRfb3BfcG9zdF9pbmM6Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRpIDRbUENdLCB0MQotICAgIGJpbmVx
IFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgSW50MzJUYWcsIC5vcFBvc3RJbmNTbG93Ci0gICAgYmll
cSB0MCwgdDEsIC5vcFBvc3RJbmNEb25lCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQw
LCA4XSwgdDIKLSAgICBtb3ZlIHQyLCB0MwotICAgIGJhZGRpbyAxLCB0MywgLm9wUG9zdEluY1Ns
b3cKLSAgICBzdG9yZWkgSW50MzJUYWcsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQotICAgIHN0b3Jl
aSB0MiwgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIHN0b3JlaSB0MywgUGF5bG9hZE9m
ZnNldFtjZnIsIHQwLCA4XQotLm9wUG9zdEluY0RvbmU6Ci0gICAgZGlzcGF0Y2goMykKLQotLm9w
UG9zdEluY1Nsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9zdF9pbmMp
Ci0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfcG9zdF9kZWM6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRpIDRbUENdLCB0MQotICAgIGJp
bmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgSW50MzJUYWcsIC5vcFBvc3REZWNTbG93Ci0gICAg
YmllcSB0MCwgdDEsIC5vcFBvc3REZWNEb25lCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIs
IHQwLCA4XSwgdDIKLSAgICBtb3ZlIHQyLCB0MwotICAgIGJzdWJpbyAxLCB0MywgLm9wUG9zdERl
Y1Nsb3cKLSAgICBzdG9yZWkgSW50MzJUYWcsIFRhZ09mZnNldFtjZnIsIHQxLCA4XQotICAgIHN0
b3JlaSB0MiwgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIHN0b3JlaSB0MywgUGF5bG9h
ZE9mZnNldFtjZnIsIHQwLCA4XQotLm9wUG9zdERlY0RvbmU6Ci0gICAgZGlzcGF0Y2goMykKLQot
Lm9wUG9zdERlY1Nsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9zdF9k
ZWMpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfdG9fanNudW1iZXI6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRpIDRbUENdLCB0MQot
ICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQyLCB0MykKLSAgICBiaWVxIHQyLCBJbnQz
MlRhZywgLm9wVG9Kc251bWJlcklzSW50Ci0gICAgYmlhZXEgdDIsIEVtcHR5VmFsdWVUYWcsIC5v
cFRvSnNudW1iZXJTbG93Ci0ub3BUb0pzbnVtYmVySXNJbnQ6Ci0gICAgc3RvcmVpIHQyLCBUYWdP
ZmZzZXRbY2ZyLCB0MSwgOF0KLSAgICBzdG9yZWkgdDMsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwg
OF0KLSAgICBkaXNwYXRjaCgzKQotCi0ub3BUb0pzbnVtYmVyU2xvdzoKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF90b19qc251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9s
bGludF9vcF9uZWdhdGU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDhbUENdLCB0
MAotICAgIGxvYWRpIDRbUENdLCB0MwotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDAsIHQx
LCB0MikKLSAgICBiaW5lcSB0MSwgSW50MzJUYWcsIC5vcE5lZ2F0ZVNyY05vdEludAotICAgIGJ0
aXogdDIsIDB4N2ZmZmZmZmYsIC5vcE5lZ2F0ZVNsb3cKLSAgICBuZWdpIHQyCi0gICAgc3RvcmVp
IEludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MywgOF0KLSAgICBzdG9yZWkgdDIsIFBheWxvYWRP
ZmZzZXRbY2ZyLCB0MywgOF0KLSAgICBkaXNwYXRjaCgzKQotLm9wTmVnYXRlU3JjTm90SW50Ogot
ICAgIGJpYSB0MSwgTG93ZXN0VGFnLCAub3BOZWdhdGVTbG93Ci0gICAgeG9yaSAweDgwMDAwMDAw
LCB0MQotICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCi0gICAgc3RvcmVpIHQy
LCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCi0gICAgZGlzcGF0Y2goMykKLQotLm9wTmVnYXRl
U2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZWdhdGUpCi0gICAgZGlz
cGF0Y2goMykKLQotCi1tYWNybyBiaW5hcnlPcEN1c3RvbVN0b3JlKGludGVnZXJPcGVyYXRpb25B
bmRTdG9yZSwgZG91YmxlT3BlcmF0aW9uLCBzbG93X3BhdGgpCi0gICAgbG9hZGkgMTJbUENdLCB0
MgotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQz
LCB0MSkKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MCwgdDIsIHQwKQotICAgIGJp
bmVxIHQyLCBJbnQzMlRhZywgLm9wMU5vdEludAotICAgIGJpbmVxIHQzLCBJbnQzMlRhZywgLm9w
Mk5vdEludAotICAgIGxvYWRpIDRbUENdLCB0MgotICAgIGludGVnZXJPcGVyYXRpb25BbmRTdG9y
ZSh0MywgdDEsIHQwLCAuc2xvdywgdDIpCi0gICAgZGlzcGF0Y2goNSkKLQotLm9wMU5vdEludDoK
LSAgICAjIEZpcnN0IG9wZXJhbmQgaXMgZGVmaW5pdGVseSBub3QgYW4gaW50LCB0aGUgc2Vjb25k
IG9wZXJhbmQgY291bGQgYmUgYW55dGhpbmcuCi0gICAgYmlhIHQyLCBMb3dlc3RUYWcsIC5zbG93
Ci0gICAgYmliIHQzLCBMb3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKLSAgICBiaW5lcSB0
MywgSW50MzJUYWcsIC5zbG93Ci0gICAgY2kyZCB0MSwgZnQxCi0gICAgam1wIC5vcDFOb3RJbnRS
ZWFkeQotLm9wMU5vdEludE9wMkRvdWJsZToKLSAgICBmaWkyZCB0MSwgdDMsIGZ0MQotLm9wMU5v
dEludFJlYWR5OgotICAgIGxvYWRpIDRbUENdLCB0MQotICAgIGZpaTJkIHQwLCB0MiwgZnQwCi0g
ICAgZG91YmxlT3BlcmF0aW9uKGZ0MSwgZnQwKQotICAgIHN0b3JlZCBmdDAsIFtjZnIsIHQxLCA4
XQotICAgIGRpc3BhdGNoKDUpCi0KLS5vcDJOb3RJbnQ6Ci0gICAgIyBGaXJzdCBvcGVyYW5kIGlz
IGRlZmluaXRlbHkgYW4gaW50LCB0aGUgc2Vjb25kIG9wZXJhbmQgaXMgZGVmaW5pdGVseSBub3Qu
Ci0gICAgbG9hZGkgNFtQQ10sIHQyCi0gICAgYmlhIHQzLCBMb3dlc3RUYWcsIC5zbG93Ci0gICAg
Y2kyZCB0MCwgZnQwCi0gICAgZmlpMmQgdDEsIHQzLCBmdDEKLSAgICBkb3VibGVPcGVyYXRpb24o
ZnQxLCBmdDApCi0gICAgc3RvcmVkIGZ0MCwgW2NmciwgdDIsIDhdCi0gICAgZGlzcGF0Y2goNSkK
LQotLnNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBkaXNwYXRjaCg1KQot
ZW5kCi0KLW1hY3JvIGJpbmFyeU9wKGludGVnZXJPcGVyYXRpb24sIGRvdWJsZU9wZXJhdGlvbiwg
c2xvd19wYXRoKQotICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCi0gICAgICAgIG1hY3JvIChpbnQz
MlRhZywgbGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQotICAgICAgICAgICAgaW50ZWdlck9wZXJh
dGlvbihsZWZ0LCByaWdodCwgc2xvdykKLSAgICAgICAgICAgIHN0b3JlaSBpbnQzMlRhZywgVGFn
T2Zmc2V0W2NmciwgaW5kZXgsIDhdCi0gICAgICAgICAgICBzdG9yZWkgcmlnaHQsIFBheWxvYWRP
ZmZzZXRbY2ZyLCBpbmRleCwgOF0KLSAgICAgICAgZW5kLAotICAgICAgICBkb3VibGVPcGVyYXRp
b24sIHNsb3dfcGF0aCkKKyAgICBpbmNsdWRlIExvd0xldmVsSW50ZXJwcmV0ZXIzMl82NAogZW5k
CiAKLV9sbGludF9vcF9hZGQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGJpbmFyeU9wKAot
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIGJhZGRpbyBsZWZ0LCByaWdodCwgc2xv
dyBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCkgYWRkZCBsZWZ0LCByaWdodCBlbmQs
Ci0gICAgICAgIF9sbGludF9zbG93X3BhdGhfYWRkKQotCi0KLV9sbGludF9vcF9tdWw6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGJpbmFyeU9wQ3VzdG9tU3RvcmUoCi0gICAgICAgIG1hY3Jv
IChpbnQzMlRhZywgbGVmdCwgcmlnaHQsIHNsb3csIGluZGV4KQotICAgICAgICAgICAgY29uc3Qg
c2NyYXRjaCA9IGludDMyVGFnICAgIyBXZSBrbm93IHRoYXQgd2UgY2FuIHJldXNlIHRoZSBpbnQz
MlRhZyByZWdpc3RlciBzaW5jZSBpdCBoYXMgYSBjb25zdGFudC4KLSAgICAgICAgICAgIG1vdmUg
cmlnaHQsIHNjcmF0Y2gKLSAgICAgICAgICAgIGJtdWxpbyBsZWZ0LCBzY3JhdGNoLCBzbG93Ci0g
ICAgICAgICAgICBidGlueiBzY3JhdGNoLCAuZG9uZQotICAgICAgICAgICAgYmlsdCBsZWZ0LCAw
LCBzbG93Ci0gICAgICAgICAgICBiaWx0IHJpZ2h0LCAwLCBzbG93Ci0gICAgICAgIC5kb25lOgot
ICAgICAgICAgICAgc3RvcmVpIEludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCBpbmRleCwgOF0KLSAg
ICAgICAgICAgIHN0b3JlaSBzY3JhdGNoLCBQYXlsb2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdCi0g
ICAgICAgIGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0KSBtdWxkIGxlZnQsIHJpZ2h0
IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9tdWwpCi0KLQotX2xsaW50X29wX3N1YjoK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgYmluYXJ5T3AoCi0gICAgICAgIG1hY3JvIChsZWZ0
LCByaWdodCwgc2xvdykgYnN1YmlvIGxlZnQsIHJpZ2h0LCBzbG93IGVuZCwKLSAgICAgICAgbWFj
cm8gKGxlZnQsIHJpZ2h0KSBzdWJkIGxlZnQsIHJpZ2h0IGVuZCwKLSAgICAgICAgX2xsaW50X3Ns
b3dfcGF0aF9zdWIpCi0KLQotX2xsaW50X29wX2RpdjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgYmluYXJ5T3BDdXN0b21TdG9yZSgKLSAgICAgICAgbWFjcm8gKGludDMyVGFnLCBsZWZ0LCBy
aWdodCwgc2xvdywgaW5kZXgpCi0gICAgICAgICAgICBjaTJkIGxlZnQsIGZ0MAotICAgICAgICAg
ICAgY2kyZCByaWdodCwgZnQxCi0gICAgICAgICAgICBkaXZkIGZ0MCwgZnQxCi0gICAgICAgICAg
ICBiY2QyaSBmdDEsIHJpZ2h0LCAubm90SW50Ci0gICAgICAgICAgICBzdG9yZWkgaW50MzJUYWcs
IFRhZ09mZnNldFtjZnIsIGluZGV4LCA4XQotICAgICAgICAgICAgc3RvcmVpIHJpZ2h0LCBQYXls
b2FkT2Zmc2V0W2NmciwgaW5kZXgsIDhdCi0gICAgICAgICAgICBqbXAgLmRvbmUKLSAgICAgICAg
Lm5vdEludDoKLSAgICAgICAgICAgIHN0b3JlZCBmdDEsIFtjZnIsIGluZGV4LCA4XQotICAgICAg
ICAuZG9uZToKLSAgICAgICAgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQpIGRpdmQg
bGVmdCwgcmlnaHQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2RpdikKLQotCi1fbGxp
bnRfb3BfbW9kOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9tb2QpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1tYWNybyBiaXRPcChvcGVyYXRp
b24sIHNsb3dfcGF0aCwgYWR2YW5jZSkKLSAgICBsb2FkaSAxMltQQ10sIHQyCi0gICAgbG9hZGkg
OFtQQ10sIHQwCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MiwgdDMsIHQxKQotICAgIGxv
YWRDb25zdGFudE9yVmFyaWFibGUyUmVnKHQwLCB0MiwgdDApCi0gICAgYmluZXEgdDMsIEludDMy
VGFnLCAuc2xvdwotICAgIGJpbmVxIHQyLCBJbnQzMlRhZywgLnNsb3cKLSAgICBsb2FkaSA0W1BD
XSwgdDIKLSAgICBvcGVyYXRpb24odDEsIHQwLCAuc2xvdykKLSAgICBzdG9yZWkgdDMsIFRhZ09m
ZnNldFtjZnIsIHQyLCA4XQotICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQyLCA4
XQotICAgIGRpc3BhdGNoKGFkdmFuY2UpCi0KLS5zbG93OgotICAgIGNhbGxTbG93UGF0aChzbG93
X3BhdGgpCi0gICAgZGlzcGF0Y2goYWR2YW5jZSkKLWVuZAotCi1fbGxpbnRfb3BfbHNoaWZ0Ogot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBiaXRPcCgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJp
Z2h0LCBzbG93KSBsc2hpZnRpIGxlZnQsIHJpZ2h0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3df
cGF0aF9sc2hpZnQsCi0gICAgICAgIDQpCi0KLQotX2xsaW50X29wX3JzaGlmdDoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgYml0T3AoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xv
dykgcnNoaWZ0aSBsZWZ0LCByaWdodCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfcnNo
aWZ0LAotICAgICAgICA0KQotCi0KLV9sbGludF9vcF91cnNoaWZ0OgotICAgIHRyYWNlRXhlY3V0
aW9uKCkKLSAgICBiaXRPcCgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCBzbG93KQotICAg
ICAgICAgICAgdXJzaGlmdGkgbGVmdCwgcmlnaHQKLSAgICAgICAgICAgIGJpbHQgcmlnaHQsIDAs
IHNsb3cKLSAgICAgICAgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX3Vyc2hpZnQsCi0g
ICAgICAgIDQpCi0KLQotX2xsaW50X29wX2JpdGFuZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgYml0T3AoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgc2xvdykgYW5kaSBsZWZ0LCBy
aWdodCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3BhdGhfYml0YW5kLAotICAgICAgICA1KQot
Ci0KLV9sbGludF9vcF9iaXR4b3I6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGJpdE9wKAot
ICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHNsb3cpIHhvcmkgbGVmdCwgcmlnaHQgZW5kLAot
ICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2JpdHhvciwKLSAgICAgICAgNSkKLQotCi1fbGxpbnRf
b3BfYml0b3I6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGJpdE9wKAotICAgICAgICBtYWNy
byAobGVmdCwgcmlnaHQsIHNsb3cpIG9yaSBsZWZ0LCByaWdodCBlbmQsCi0gICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfYml0b3IsCi0gICAgICAgIDUpCi0KLQotX2xsaW50X29wX2JpdG5vdDoKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgOFtQQ10sIHQxCi0gICAgbG9hZGkgNFtQQ10s
IHQwCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZSh0MSwgdDIsIHQzKQotICAgIGJpbmVxIHQy
LCBJbnQzMlRhZywgLm9wQml0bm90U2xvdwotICAgIG5vdGkgdDMKLSAgICBzdG9yZWkgdDIsIFRh
Z09mZnNldFtjZnIsIHQwLCA4XQotICAgIHN0b3JlaSB0MywgUGF5bG9hZE9mZnNldFtjZnIsIHQw
LCA4XQotICAgIGRpc3BhdGNoKDMpCi0KLS5vcEJpdG5vdFNsb3c6Ci0gICAgY2FsbFNsb3dQYXRo
KF9sbGludF9zbG93X3BhdGhfYml0bm90KQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29w
X2NoZWNrX2hhc19pbnN0YW5jZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgNFtQ
Q10sIHQxCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDEsIENlbGxUYWcsIHQw
LCAub3BDaGVja0hhc0luc3RhbmNlU2xvdykKLSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJl
W3QwXSwgdDAKLSAgICBidGJ6IFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2Zs
YWdzW3QwXSwgSW1wbGVtZW50c0hhc0luc3RhbmNlLCAub3BDaGVja0hhc0luc3RhbmNlU2xvdwot
ICAgIGRpc3BhdGNoKDIpCi0KLS5vcENoZWNrSGFzSW5zdGFuY2VTbG93OgotICAgIGNhbGxTbG93
UGF0aChfbGxpbnRfc2xvd19wYXRoX2NoZWNrX2hhc19pbnN0YW5jZSkKLSAgICBkaXNwYXRjaCgy
KQotCi0KLV9sbGludF9vcF9pbnN0YW5jZW9mOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICAj
IENoZWNrIHRoYXQgYmFzZVZhbCBpbXBsZW1lbnRzIHRoZSBkZWZhdWx0IEhhc0luc3RhbmNlIGJl
aGF2aW9yLgotICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIGJlIGRlcHJlY2F0ZWQuCi0gICAgbG9h
ZGkgMTJbUENdLCB0MQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkVW5jaGVja2Vk
KHQxLCB0MCkKLSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDAKLSAgICBidGJ6
IFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjptX2ZsYWdzW3QwXSwgSW1wbGVtZW50
c0RlZmF1bHRIYXNJbnN0YW5jZSwgLm9wSW5zdGFuY2VvZlNsb3cKLSAgICAKLSAgICAjIEFjdHVh
bGx5IGRvIHRoZSB3b3JrLgotICAgIGxvYWRpIDE2W1BDXSwgdDAKLSAgICBsb2FkaSA0W1BDXSwg
dDMKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDEsIC5v
cEluc3RhbmNlb2ZTbG93KQotICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDFdLCB0Mgot
ICAgIGJiYiBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90eXBlW3QyXSwgT2Jq
ZWN0VHlwZSwgLm9wSW5zdGFuY2VvZlNsb3cKLSAgICBsb2FkaSA4W1BDXSwgdDAKLSAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDIsIC5vcEluc3RhbmNlb2ZT
bG93KQotICAgIAotICAgICMgUmVnaXN0ZXIgc3RhdGU6IHQxID0gcHJvdG90eXBlLCB0MiA9IHZh
bHVlCi0gICAgbW92ZSAxLCB0MAotLm9wSW5zdGFuY2VvZkxvb3A6Ci0gICAgbG9hZHAgSlNDZWxs
OjptX3N0cnVjdHVyZVt0Ml0sIHQyCi0gICAgbG9hZGkgU3RydWN0dXJlOjptX3Byb3RvdHlwZSAr
IFBheWxvYWRPZmZzZXRbdDJdLCB0MgotICAgIGJwZXEgdDIsIHQxLCAub3BJbnN0YW5jZW9mRG9u
ZQotICAgIGJ0aW56IHQyLCAub3BJbnN0YW5jZW9mTG9vcAotCi0gICAgbW92ZSAwLCB0MAotLm9w
SW5zdGFuY2VvZkRvbmU6Ci0gICAgc3RvcmVpIEJvb2xlYW5UYWcsIFRhZ09mZnNldFtjZnIsIHQz
LCA4XQotICAgIHN0b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4XQotICAgIGRpc3Bh
dGNoKDUpCi0KLS5vcEluc3RhbmNlb2ZTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xv
d19wYXRoX2luc3RhbmNlb2YpCi0gICAgZGlzcGF0Y2goNSkKLQotCi1fbGxpbnRfb3BfdHlwZW9m
OgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0
aF90eXBlb2YpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfdW5kZWZpbmVkOgot
ICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9p
c191bmRlZmluZWQpCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaXNfYm9vbGVhbjoK
LSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhf
aXNfYm9vbGVhbikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19udW1iZXI6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lz
X251bWJlcikKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19zdHJpbmc6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX3N0
cmluZykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19vYmplY3Q6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2lzX29iamVj
dCkKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9pc19mdW5jdGlvbjoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfaXNfZnVuY3Rp
b24pCi0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfaW46Ci0gICAgdHJhY2VFeGVjdXRp
b24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2luKQotICAgIGRpc3BhdGNo
KDQpCi0KLQotX2xsaW50X29wX3Jlc29sdmU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Jlc29sdmUpCi0gICAgZGlzcGF0Y2goNCkKLQot
Ci1fbGxpbnRfb3BfcmVzb2x2ZV9za2lwOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxs
U2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX3NraXApCi0gICAgZGlzcGF0Y2goNSkK
LQotCi1tYWNybyByZXNvbHZlR2xvYmFsKHNpemUsIHNsb3cpCi0gICAgIyBPcGVyYW5kcyBhcmUg
YXMgZm9sbG93czoKLSAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgotICAg
ICMgOFtQQ10gICBQcm9wZXJ0eSBpZGVudGlmaWVyIGluZGV4IGluIHRoZSBjb2RlIGJsb2NrLgot
ICAgICMgMTJbUENdICBTdHJ1Y3R1cmUgcG9pbnRlciwgaW5pdGlhbGl6ZWQgdG8gMCBieSBieXRl
Y29kZSBnZW5lcmF0b3IuCi0gICAgIyAxNltQQ10gIE9mZnNldCBpbiBnbG9iYWwgb2JqZWN0LCBp
bml0aWFsaXplZCB0byAwIGJ5IGJ5dGVjb2RlIGdlbmVyYXRvci4KLSAgICBsb2FkcCBDb2RlQmxv
Y2tbY2ZyXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsT2JqZWN0W3QwXSwgdDAK
LSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QwXSwgdDEKLSAgICBicG5lcSB0MSwgMTJb
UENdLCBzbG93Ci0gICAgbG9hZGkgMTZbUENdLCB0MQotICAgIGxvYWRwIEpTT2JqZWN0OjptX3By
b3BlcnR5U3RvcmFnZVt0MF0sIHQwCi0gICAgbG9hZGkgVGFnT2Zmc2V0W3QwLCB0MSwgOF0sIHQy
Ci0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0MCwgdDEsIDhdLCB0MwotICAgIGxvYWRpIDRbUENd
LCB0MAotICAgIHN0b3JlaSB0MiwgVGFnT2Zmc2V0W2NmciwgdDAsIDhdCi0gICAgc3RvcmVpIHQz
LCBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdCi0gICAgbG9hZGkgKHNpemUgLSAxKSAqIDRbUENd
LCB0MAotICAgIHZhbHVlUHJvZmlsZSh0MiwgdDMsIHQwKQotZW5kCi0KLV9sbGludF9vcF9yZXNv
bHZlX2dsb2JhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgcmVzb2x2ZUdsb2JhbCg2LCAu
b3BSZXNvbHZlR2xvYmFsU2xvdykKLSAgICBkaXNwYXRjaCg2KQotCi0ub3BSZXNvbHZlR2xvYmFs
U2xvdzoKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2dsb2JhbCkK
LSAgICBkaXNwYXRjaCg2KQotCi0KLSMgR2l2ZXMgeW91IHRoZSBzY29wZSBpbiB0MCwgd2hpbGUg
YWxsb3dpbmcgeW91IHRvIG9wdGlvbmFsbHkgcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcyBvbiB0
aGUKLSMgc2NvcGVzIGFzIHRoZXkgYXJlIHRyYXZlcnNlZC4gc2NvcGVDaGVjaygpIGlzIGNhbGxl
ZCB3aXRoIHR3byBhcmd1bWVudHM6IHRoZSByZWdpc3RlcgotIyBob2xkaW5nIHRoZSBzY29wZSwg
YW5kIGEgcmVnaXN0ZXIgdGhhdCBjYW4gYmUgdXNlZCBmb3Igc2NyYXRjaC4gTm90ZSB0aGF0IHRo
aXMgZG9lcyBub3QKLSMgdXNlIHQzLCBzbyB5b3UgY2FuIGhvbGQgc3R1ZmYgaW4gdDMgaWYgbmVl
ZCBiZS4KLW1hY3JvIGdldFNjb3BlKGRlQnJ1aWppbkluZGV4T3BlcmFuZCwgc2NvcGVDaGVjaykK
LSAgICBsb2FkcCBTY29wZUNoYWluICsgUGF5bG9hZE9mZnNldFtjZnJdLCB0MAotICAgIGxvYWRp
IGRlQnJ1aWppbkluZGV4T3BlcmFuZCwgdDIKLSAgICAKLSAgICBidGl6IHQyLCAuZG9uZQotICAg
IAotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MQotICAgIGJpbmVxIENvZGVCbG9jazo6bV9j
b2RlVHlwZVt0MV0sIEZ1bmN0aW9uQ29kZSwgLmxvb3AKLSAgICBidGJ6IENvZGVCbG9jazo6bV9u
ZWVkc0Z1bGxTY29wZUNoYWluW3QxXSwgLmxvb3AKLSAgICAKLSAgICBsb2FkaSBDb2RlQmxvY2s6
Om1fYWN0aXZhdGlvblJlZ2lzdGVyW3QxXSwgdDEKLQotICAgICMgTmVlZCB0byBjb25kaXRpb25h
bGx5IHNraXAgb3ZlciBvbmUgc2NvcGUuCi0gICAgYmllcSBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0s
IEVtcHR5VmFsdWVUYWcsIC5ub0FjdGl2YXRpb24KLSAgICBzY29wZUNoZWNrKHQwLCB0MSkKLSAg
ICBsb2FkcCBTY29wZUNoYWluTm9kZTo6bmV4dFt0MF0sIHQwCi0ubm9BY3RpdmF0aW9uOgotICAg
IHN1YmkgMSwgdDIKLSAgICAKLSAgICBidGl6IHQyLCAuZG9uZQotLmxvb3A6Ci0gICAgc2NvcGVD
aGVjayh0MCwgdDEpCi0gICAgbG9hZHAgU2NvcGVDaGFpbk5vZGU6Om5leHRbdDBdLCB0MAotICAg
IHN1YmkgMSwgdDIKLSAgICBidGlueiB0MiwgLmxvb3AKLQotLmRvbmU6Ci1lbmQKLQotX2xsaW50
X29wX3Jlc29sdmVfZ2xvYmFsX2R5bmFtaWM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxv
YWRwIEpJVFN0YWNrRnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MwotICAgIGxvYWRwIEpTR2xvYmFs
RGF0YTo6YWN0aXZhdGlvblN0cnVjdHVyZVt0M10sIHQzCi0gICAgZ2V0U2NvcGUoCi0gICAgICAg
IDIwW1BDXSwKLSAgICAgICAgbWFjcm8gKHNjb3BlLCBzY3JhdGNoKQotICAgICAgICAgICAgbG9h
ZHAgU2NvcGVDaGFpbk5vZGU6Om9iamVjdFtzY29wZV0sIHNjcmF0Y2gKLSAgICAgICAgICAgIGJw
bmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbc2NyYXRjaF0sIHQzLCAub3BSZXNvbHZlR2xvYmFsRHlu
YW1pY1N1cGVyU2xvdwotICAgICAgICBlbmQpCi0gICAgcmVzb2x2ZUdsb2JhbCg3LCAub3BSZXNv
bHZlR2xvYmFsRHluYW1pY1Nsb3cpCi0gICAgZGlzcGF0Y2goNykKLQotLm9wUmVzb2x2ZUdsb2Jh
bER5bmFtaWNTdXBlclNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVz
b2x2ZV9mb3JfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKLSAgICBkaXNwYXRjaCg3KQotCi0ub3BS
ZXNvbHZlR2xvYmFsRHluYW1pY1Nsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3Bh
dGhfcmVzb2x2ZV9nbG9iYWxfZHluYW1pYykKLSAgICBkaXNwYXRjaCg3KQotCi0KLV9sbGludF9v
cF9nZXRfc2NvcGVkX3ZhcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBPcGVyYW5kcyBh
cmUgYXMgZm9sbG93czoKLSAgICAjIDRbUENdICAgRGVzdGluYXRpb24gZm9yIHRoZSBsb2FkLgot
ICAgICMgOFtQQ10gICBJbmRleCBvZiByZWdpc3RlciBpbiB0aGUgc2NvcGUuCi0gICAgIyAxMltQ
Q10gIERlIEJydWlqaW4gaW5kZXguCi0gICAgZ2V0U2NvcGUoMTJbUENdLCBtYWNybyAoc2NvcGUs
IHNjcmF0Y2gpIGVuZCkKLSAgICBsb2FkaSA0W1BDXSwgdDEKLSAgICBsb2FkaSA4W1BDXSwgdDIK
LSAgICBsb2FkcCBTY29wZUNoYWluTm9kZTo6b2JqZWN0W3QwXSwgdDAKLSAgICBsb2FkcCBKU1Zh
cmlhYmxlT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCi0gICAgbG9hZGkgVGFnT2Zmc2V0W3Qw
LCB0MiwgOF0sIHQzCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0MCwgdDIsIDhdLCB0MAotICAg
IHN0b3JlaSB0MywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgc3RvcmVpIHQwLCBQYXlsb2Fk
T2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgbG9hZGkgMTZbUENdLCB0MQotICAgIHZhbHVlUHJvZmls
ZSh0MywgdDAsIHQxKQotICAgIGRpc3BhdGNoKDUpCi0KLQotX2xsaW50X29wX3B1dF9zY29wZWRf
dmFyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBnZXRTY29wZSg4W1BDXSwgbWFjcm8gKHNj
b3BlLCBzY3JhdGNoKSBlbmQpCi0gICAgbG9hZGkgMTJbUENdLCB0MQotICAgIGxvYWRDb25zdGFu
dE9yVmFyaWFibGUodDEsIHQzLCB0MikKLSAgICBsb2FkaSA0W1BDXSwgdDEKLSAgICB3cml0ZUJh
cnJpZXIodDMsIHQyKQotICAgIGxvYWRwIFNjb3BlQ2hhaW5Ob2RlOjpvYmplY3RbdDBdLCB0MAot
ICAgIGxvYWRwIEpTVmFyaWFibGVPYmplY3Q6Om1fcmVnaXN0ZXJzW3QwXSwgdDAKLSAgICBzdG9y
ZWkgdDMsIFRhZ09mZnNldFt0MCwgdDEsIDhdCi0gICAgc3RvcmVpIHQyLCBQYXlsb2FkT2Zmc2V0
W3QwLCB0MSwgOF0KLSAgICBkaXNwYXRjaCg0KQotCi0KLV9sbGludF9vcF9nZXRfZ2xvYmFsX3Zh
cjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgOFtQQ10sIHQxCi0gICAgbG9hZGkg
NFtQQ10sIHQzCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQwCi0gICAgbG9hZHAgQ29kZUJs
b2NrOjptX2dsb2JhbE9iamVjdFt0MF0sIHQwCi0gICAgbG9hZHAgSlNHbG9iYWxPYmplY3Q6Om1f
cmVnaXN0ZXJzW3QwXSwgdDAKLSAgICBsb2FkaSBUYWdPZmZzZXRbdDAsIHQxLCA4XSwgdDIKLSAg
ICBsb2FkaSBQYXlsb2FkT2Zmc2V0W3QwLCB0MSwgOF0sIHQxCi0gICAgc3RvcmVpIHQyLCBUYWdP
ZmZzZXRbY2ZyLCB0MywgOF0KLSAgICBzdG9yZWkgdDEsIFBheWxvYWRPZmZzZXRbY2ZyLCB0Mywg
OF0KLSAgICBsb2FkaSAxMltQQ10sIHQzCi0gICAgdmFsdWVQcm9maWxlKHQyLCB0MSwgdDMpCi0g
ICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfcHV0X2dsb2JhbF92YXI6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIGxvYWRpIDhbUENdLCB0MQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJd
LCB0MAotICAgIGxvYWRwIENvZGVCbG9jazo6bV9nbG9iYWxPYmplY3RbdDBdLCB0MAotICAgIGxv
YWRwIEpTR2xvYmFsT2JqZWN0OjptX3JlZ2lzdGVyc1t0MF0sIHQwCi0gICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MSwgdDIsIHQzKQotICAgIGxvYWRpIDRbUENdLCB0MQotICAgIHdyaXRlQmFy
cmllcih0MiwgdDMpCi0gICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbdDAsIHQxLCA4XQotICAgIHN0
b3JlaSB0MywgUGF5bG9hZE9mZnNldFt0MCwgdDEsIDhdCi0gICAgZGlzcGF0Y2goMykKLQotCi1f
bGxpbnRfb3BfcmVzb2x2ZV9iYXNlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xv
d1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9yZXNvbHZlX2Jhc2UpCi0gICAgZGlzcGF0Y2goNSkKLQot
Ci1fbGxpbnRfb3BfZW5zdXJlX3Byb3BlcnR5X2V4aXN0czoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZW5zdXJlX3Byb3BlcnR5X2V4aXN0
cykKLSAgICBkaXNwYXRjaCgzKQotCi0KLV9sbGludF9vcF9yZXNvbHZlX3dpdGhfYmFzZToKLSAg
ICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcmVz
b2x2ZV93aXRoX2Jhc2UpCi0gICAgZGlzcGF0Y2goNSkKLQotCi1fbGxpbnRfb3BfcmVzb2x2ZV93
aXRoX3RoaXM6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX3Jlc29sdmVfd2l0aF90aGlzKQotICAgIGRpc3BhdGNoKDUpCi0KLQotX2xsaW50
X29wX2dldF9ieV9pZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgIyBXZSBvbmx5IGRvIG1v
bm9tb3JwaGljIGdldF9ieV9pZCBjYWNoaW5nIGZvciBub3csIGFuZCB3ZSBkbyBub3QgbW9kaWZ5
IHRoZQotICAgICMgb3Bjb2RlLiBXZSBkbywgaG93ZXZlciwgYWxsb3cgZm9yIHRoZSBjYWNoZSB0
byBjaGFuZ2UgYW55dGltZSBpZiBmYWlscywgc2luY2UKLSAgICAjIHBpbmctcG9uZ2luZyBpcyBm
cmVlLiBBdCBiZXN0IHdlIGdldCBsdWNreSBhbmQgdGhlIGdldF9ieV9pZCB3aWxsIGNvbnRpbnVl
Ci0gICAgIyB0byB0YWtlIGZhc3QgcGF0aCBvbiB0aGUgbmV3IGNhY2hlLiBBdCB3b3JzdCB3ZSB0
YWtlIHNsb3cgcGF0aCwgd2hpY2ggaXMgd2hhdAotICAgICMgd2Ugd291bGQgaGF2ZSBiZWVuIGRv
aW5nIGFueXdheS4KLSAgICBsb2FkaSA4W1BDXSwgdDAKLSAgICBsb2FkaSAxNltQQ10sIHQxCi0g
ICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDAsIENlbGxUYWcsIHQzLCAub3BHZXRC
eUlkU2xvdykKLSAgICBsb2FkaSAyMFtQQ10sIHQyCi0gICAgbG9hZHAgSlNPYmplY3Q6Om1fcHJv
cGVydHlTdG9yYWdlW3QzXSwgdDAKLSAgICBicG5lcSBKU0NlbGw6Om1fc3RydWN0dXJlW3QzXSwg
dDEsIC5vcEdldEJ5SWRTbG93Ci0gICAgbG9hZGkgNFtQQ10sIHQxCi0gICAgbG9hZGkgVGFnT2Zm
c2V0W3QwLCB0Ml0sIHQzCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0MCwgdDJdLCB0MgotICAg
IHN0b3JlaSB0MywgVGFnT2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgc3RvcmVpIHQyLCBQYXlsb2Fk
T2Zmc2V0W2NmciwgdDEsIDhdCi0gICAgbG9hZGkgMzJbUENdLCB0MQotICAgIHZhbHVlUHJvZmls
ZSh0MywgdDIsIHQxKQotICAgIGRpc3BhdGNoKDkpCi0KLS5vcEdldEJ5SWRTbG93OgotICAgIGNh
bGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV9pZCkKLSAgICBkaXNwYXRjaCg5KQot
Ci0KLV9sbGludF9vcF9nZXRfYXJndW1lbnRzX2xlbmd0aDoKLSAgICB0cmFjZUV4ZWN1dGlvbigp
Ci0gICAgbG9hZGkgOFtQQ10sIHQwCi0gICAgbG9hZGkgNFtQQ10sIHQxCi0gICAgYmluZXEgVGFn
T2Zmc2V0W2NmciwgdDAsIDhdLCBFbXB0eVZhbHVlVGFnLCAub3BHZXRBcmd1bWVudHNMZW5ndGhT
bG93Ci0gICAgbG9hZGkgQXJndW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDIKLSAg
ICBzdWJpIDEsIHQyCi0gICAgc3RvcmVpIEludDMyVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0K
LSAgICBzdG9yZWkgdDIsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KLSAgICBkaXNwYXRjaCg0
KQotCi0ub3BHZXRBcmd1bWVudHNMZW5ndGhTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRf
c2xvd19wYXRoX2dldF9hcmd1bWVudHNfbGVuZ3RoKQotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xs
aW50X29wX3B1dF9ieV9pZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgNFtQQ10s
IHQzCi0gICAgbG9hZGkgMTZbUENdLCB0MQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXls
b2FkKHQzLCBDZWxsVGFnLCB0MCwgLm9wUHV0QnlJZFNsb3cpCi0gICAgbG9hZGkgMTJbUENdLCB0
MgotICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQzCi0gICAgYnBu
ZXEgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxLCAub3BQdXRCeUlkU2xvdwotICAgIGxvYWRp
IDIwW1BDXSwgdDEKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MiwgdDAsIHQyKQot
ICAgIHdyaXRlQmFycmllcih0MCwgdDIpCi0gICAgc3RvcmVpIHQwLCBUYWdPZmZzZXRbdDMsIHQx
XQotICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFt0MywgdDFdCi0gICAgZGlzcGF0Y2goOSkK
LQotLm9wUHV0QnlJZFNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0
X2J5X2lkKQotICAgIGRpc3BhdGNoKDkpCi0KLQotbWFjcm8gcHV0QnlJZFRyYW5zaXRpb24oYWRk
aXRpb25hbENoZWNrcykKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgbG9hZGkgNFtQQ10sIHQz
Ci0gICAgbG9hZGkgMTZbUENdLCB0MQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2Fk
KHQzLCBDZWxsVGFnLCB0MCwgLm9wUHV0QnlJZFNsb3cpCi0gICAgbG9hZGkgMTJbUENdLCB0Mgot
ICAgIGJwbmVxIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdLCB0MSwgLm9wUHV0QnlJZFNsb3cKLSAg
ICBhZGRpdGlvbmFsQ2hlY2tzKHQxLCB0MywgLm9wUHV0QnlJZFNsb3cpCi0gICAgbG9hZGkgMjBb
UENdLCB0MQotICAgIGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0MF0sIHQzCi0g
ICAgYWRkcCB0MSwgdDMKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlMlJlZyh0MiwgdDEsIHQy
KQotICAgIHdyaXRlQmFycmllcih0MSwgdDIpCi0gICAgc3RvcmVpIHQxLCBUYWdPZmZzZXRbdDNd
Ci0gICAgbG9hZGkgMjRbUENdLCB0MQotICAgIHN0b3JlaSB0MiwgUGF5bG9hZE9mZnNldFt0M10K
LSAgICBzdG9yZXAgdDEsIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDBdCi0gICAgZGlzcGF0Y2goOSkK
LWVuZAotCi1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fZGlyZWN0OgotICAgIHB1dEJ5
SWRUcmFuc2l0aW9uKG1hY3JvIChvbGRTdHJ1Y3R1cmUsIHNjcmF0Y2gsIHNsb3cpIGVuZCkKLQot
Ci1fbGxpbnRfb3BfcHV0X2J5X2lkX3RyYW5zaXRpb25fbm9ybWFsOgotICAgIHB1dEJ5SWRUcmFu
c2l0aW9uKAotICAgICAgICBtYWNybyAob2xkU3RydWN0dXJlLCBzY3JhdGNoLCBzbG93KQotICAg
ICAgICAgICAgY29uc3QgcHJvdG9DZWxsID0gb2xkU3RydWN0dXJlICAgIyBSZXVzaW5nIHRoZSBv
bGRTdHJ1Y3R1cmUgcmVnaXN0ZXIgZm9yIHRoZSBwcm90bwotICAgICAgICAKLSAgICAgICAgICAg
IGxvYWRwIDI4W1BDXSwgc2NyYXRjaAotICAgICAgICAgICAgYXNzZXJ0KG1hY3JvIChvaykgYnRw
bnogc2NyYXRjaCwgb2sgZW5kKQotICAgICAgICAgICAgbG9hZHAgU3RydWN0dXJlQ2hhaW46Om1f
dmVjdG9yW3NjcmF0Y2hdLCBzY3JhdGNoCi0gICAgICAgICAgICBhc3NlcnQobWFjcm8gKG9rKSBi
dHBueiBzY3JhdGNoLCBvayBlbmQpCi0gICAgICAgICAgICBiaWVxIFN0cnVjdHVyZTo6bV9wcm90
b3R5cGUgKyBUYWdPZmZzZXRbb2xkU3RydWN0dXJlXSwgTnVsbFRhZywgLmRvbmUKLSAgICAgICAg
Lmxvb3A6Ci0gICAgICAgICAgICBsb2FkaSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlICsgUGF5bG9h
ZE9mZnNldFtvbGRTdHJ1Y3R1cmVdLCBwcm90b0NlbGwKLSAgICAgICAgICAgIGxvYWRwIEpTQ2Vs
bDo6bV9zdHJ1Y3R1cmVbcHJvdG9DZWxsXSwgb2xkU3RydWN0dXJlCi0gICAgICAgICAgICBicG5l
cSBvbGRTdHJ1Y3R1cmUsIFtzY3JhdGNoXSwgc2xvdwotICAgICAgICAgICAgYWRkcCA0LCBzY3Jh
dGNoCi0gICAgICAgICAgICBiaW5lcSBTdHJ1Y3R1cmU6Om1fcHJvdG90eXBlICsgVGFnT2Zmc2V0
W29sZFN0cnVjdHVyZV0sIE51bGxUYWcsIC5sb29wCi0gICAgICAgIC5kb25lOgotICAgICAgICBl
bmQpCi0KLQotX2xsaW50X29wX2RlbF9ieV9pZDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAg
Y2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X2lkKQotICAgIGRpc3BhdGNoKDQp
Ci0KLQotX2xsaW50X29wX2dldF9ieV92YWw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxv
YWRwIENvZGVCbG9ja1tjZnJdLCB0MQotICAgIGxvYWRpIDhbUENdLCB0MgotICAgIGxvYWRpIDEy
W1BDXSwgdDMKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MV0sIHQxCi0gICAg
bG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxvYWQodDIsIENlbGxUYWcsIHQwLCAub3BHZXRCeVZh
bFNsb3cpCi0gICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0FycmF5Q2xhc3NJbmZvW3QxXSwgdDIK
LSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MywgSW50MzJUYWcsIHQxLCAub3BH
ZXRCeVZhbFNsb3cpCi0gICAgYnBuZXEgW3QwXSwgdDIsIC5vcEdldEJ5VmFsU2xvdwotICAgIGxv
YWRwIEpTQXJyYXk6Om1fc3RvcmFnZVt0MF0sIHQzCi0gICAgYmlhZXEgdDEsIEpTQXJyYXk6Om1f
dmVjdG9yTGVuZ3RoW3QwXSwgLm9wR2V0QnlWYWxTbG93Ci0gICAgbG9hZGkgNFtQQ10sIHQwCi0g
ICAgbG9hZGkgQXJyYXlTdG9yYWdlOjptX3ZlY3RvciArIFRhZ09mZnNldFt0MywgdDEsIDhdLCB0
MgotICAgIGxvYWRpIEFycmF5U3RvcmFnZTo6bV92ZWN0b3IgKyBQYXlsb2FkT2Zmc2V0W3QzLCB0
MSwgOF0sIHQxCi0gICAgYmllcSB0MiwgRW1wdHlWYWx1ZVRhZywgLm9wR2V0QnlWYWxTbG93Ci0g
ICAgc3RvcmVpIHQyLCBUYWdPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICBzdG9yZWkgdDEsIFBheWxv
YWRPZmZzZXRbY2ZyLCB0MCwgOF0KLSAgICBsb2FkaSAxNltQQ10sIHQwCi0gICAgdmFsdWVQcm9m
aWxlKHQyLCB0MSwgdDApCi0gICAgZGlzcGF0Y2goNSkKLQotLm9wR2V0QnlWYWxTbG93OgotICAg
IGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dldF9ieV92YWwpCi0gICAgZGlzcGF0Y2go
NSkKLQotCi1fbGxpbnRfb3BfZ2V0X2FyZ3VtZW50X2J5X3ZhbDoKLSAgICB0cmFjZUV4ZWN1dGlv
bigpCi0gICAgbG9hZGkgOFtQQ10sIHQwCi0gICAgbG9hZGkgMTJbUENdLCB0MQotICAgIGJpbmVx
IFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgRW1wdHlWYWx1ZVRhZywgLm9wR2V0QXJndW1lbnRCeVZh
bFNsb3cKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MSwgSW50MzJUYWcsIHQy
LCAub3BHZXRBcmd1bWVudEJ5VmFsU2xvdykKLSAgICBhZGRpIDEsIHQyCi0gICAgbG9hZGkgQXJn
dW1lbnRDb3VudCArIFBheWxvYWRPZmZzZXRbY2ZyXSwgdDEKLSAgICBiaWFlcSB0MiwgdDEsIC5v
cEdldEFyZ3VtZW50QnlWYWxTbG93Ci0gICAgbmVnaSB0MgotICAgIGxvYWRpIDRbUENdLCB0Mwot
ICAgIGxvYWRpIFRoaXNBcmd1bWVudE9mZnNldCArIFRhZ09mZnNldFtjZnIsIHQyLCA4XSwgdDAK
LSAgICBsb2FkaSBUaGlzQXJndW1lbnRPZmZzZXQgKyBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhd
LCB0MQotICAgIHN0b3JlaSB0MCwgVGFnT2Zmc2V0W2NmciwgdDMsIDhdCi0gICAgc3RvcmVpIHQx
LCBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdCi0gICAgZGlzcGF0Y2goNSkKLQotLm9wR2V0QXJn
dW1lbnRCeVZhbFNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZ2V0X2Fy
Z3VtZW50X2J5X3ZhbCkKLSAgICBkaXNwYXRjaCg1KQotCi0KLV9sbGludF9vcF9nZXRfYnlfcG5h
bWU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDEyW1BDXSwgdDAKLSAgICBsb2Fk
Q29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDEsIC5vcEdldEJ5UG5hbWVT
bG93KQotICAgIGxvYWRpIDE2W1BDXSwgdDAKLSAgICBicG5lcSB0MSwgUGF5bG9hZE9mZnNldFtj
ZnIsIHQwLCA4XSwgLm9wR2V0QnlQbmFtZVNsb3cKLSAgICBsb2FkaSA4W1BDXSwgdDAKLSAgICBs
b2FkQ29uc3RhbnRPclZhcmlhYmxlUGF5bG9hZCh0MCwgQ2VsbFRhZywgdDIsIC5vcEdldEJ5UG5h
bWVTbG93KQotICAgIGxvYWRpIDIwW1BDXSwgdDAKLSAgICBsb2FkaSBQYXlsb2FkT2Zmc2V0W2Nm
ciwgdDAsIDhdLCB0MwotICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1cmVbdDJdLCB0MAotICAg
IGJwbmVxIHQwLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX2NhY2hlZFN0cnVjdHVyZVt0M10s
IC5vcEdldEJ5UG5hbWVTbG93Ci0gICAgbG9hZGkgMjRbUENdLCB0MAotICAgIGxvYWRpIFtjZnIs
IHQwLCA4XSwgdDAKLSAgICBzdWJpIDEsIHQwCi0gICAgYmlhZXEgdDAsIEpTUHJvcGVydHlOYW1l
SXRlcmF0b3I6Om1fbnVtQ2FjaGVhYmxlU2xvdHNbdDNdLCAub3BHZXRCeVBuYW1lU2xvdwotICAg
IGxvYWRwIEpTT2JqZWN0OjptX3Byb3BlcnR5U3RvcmFnZVt0Ml0sIHQyCi0gICAgbG9hZGkgVGFn
T2Zmc2V0W3QyLCB0MCwgOF0sIHQxCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFt0MiwgdDAsIDhd
LCB0MwotICAgIGxvYWRpIDRbUENdLCB0MAotICAgIHN0b3JlaSB0MSwgVGFnT2Zmc2V0W2Nmciwg
dDAsIDhdCi0gICAgc3RvcmVpIHQzLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdCi0gICAgZGlz
cGF0Y2goNykKLQotLm9wR2V0QnlQbmFtZVNsb3c6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9z
bG93X3BhdGhfZ2V0X2J5X3BuYW1lKQotICAgIGRpc3BhdGNoKDcpCi0KLQotX2xsaW50X29wX3B1
dF9ieV92YWw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDRbUENdLCB0MAotICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQwLCBDZWxsVGFnLCB0MSwgLm9wUHV0QnlW
YWxTbG93KQotICAgIGxvYWRpIDhbUENdLCB0MAotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQ
YXlsb2FkKHQwLCBJbnQzMlRhZywgdDIsIC5vcFB1dEJ5VmFsU2xvdykKLSAgICBsb2FkcCBDb2Rl
QmxvY2tbY2ZyXSwgdDAKLSAgICBsb2FkcCBDb2RlQmxvY2s6Om1fZ2xvYmFsRGF0YVt0MF0sIHQw
Ci0gICAgbG9hZHAgSlNHbG9iYWxEYXRhOjpqc0FycmF5Q2xhc3NJbmZvW3QwXSwgdDAKLSAgICBi
cG5lcSBbdDFdLCB0MCwgLm9wUHV0QnlWYWxTbG93Ci0gICAgYmlhZXEgdDIsIEpTQXJyYXk6Om1f
dmVjdG9yTGVuZ3RoW3QxXSwgLm9wUHV0QnlWYWxTbG93Ci0gICAgbG9hZHAgSlNBcnJheTo6bV9z
dG9yYWdlW3QxXSwgdDAKLSAgICBiaWVxIEFycmF5U3RvcmFnZTo6bV92ZWN0b3IgKyBUYWdPZmZz
ZXRbdDAsIHQyLCA4XSwgRW1wdHlWYWx1ZVRhZywgLm9wUHV0QnlWYWxFbXB0eQotLm9wUHV0QnlW
YWxTdG9yZVJlc3VsdDoKLSAgICBsb2FkaSAxMltQQ10sIHQzCi0gICAgbG9hZENvbnN0YW50T3JW
YXJpYWJsZTJSZWcodDMsIHQxLCB0MykKLSAgICB3cml0ZUJhcnJpZXIodDEsIHQzKQotICAgIHN0
b3JlaSB0MSwgQXJyYXlTdG9yYWdlOjptX3ZlY3RvciArIFRhZ09mZnNldFt0MCwgdDIsIDhdCi0g
ICAgc3RvcmVpIHQzLCBBcnJheVN0b3JhZ2U6Om1fdmVjdG9yICsgUGF5bG9hZE9mZnNldFt0MCwg
dDIsIDhdCi0gICAgZGlzcGF0Y2goNCkKLQotLm9wUHV0QnlWYWxFbXB0eToKLSAgICBhZGRpIDEs
IEFycmF5U3RvcmFnZTo6bV9udW1WYWx1ZXNJblZlY3Rvclt0MF0KLSAgICBiaWIgdDIsIEFycmF5
U3RvcmFnZTo6bV9sZW5ndGhbdDBdLCAub3BQdXRCeVZhbFN0b3JlUmVzdWx0Ci0gICAgYWRkaSAx
LCB0MiwgdDEKLSAgICBzdG9yZWkgdDEsIEFycmF5U3RvcmFnZTo6bV9sZW5ndGhbdDBdCi0gICAg
am1wIC5vcFB1dEJ5VmFsU3RvcmVSZXN1bHQKLQotLm9wUHV0QnlWYWxTbG93OgotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV92YWwpCi0gICAgZGlzcGF0Y2goNCkKLQot
Ci1fbGxpbnRfb3BfZGVsX2J5X3ZhbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNs
b3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVsX2J5X3ZhbCkKLSAgICBkaXNwYXRjaCg0KQotCi0K
LV9sbGludF9vcF9wdXRfYnlfaW5kZXg6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxT
bG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3B1dF9ieV9pbmRleCkKLSAgICBkaXNwYXRjaCg0KQot
Ci0KLV9sbGludF9vcF9wdXRfZ2V0dGVyX3NldHRlcjoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHV0X2dldHRlcl9zZXR0ZXIpCi0gICAg
ZGlzcGF0Y2goNSkKLQotCi1fbGxpbnRfb3BfbG9vcDoKLSAgICBub3AKLV9sbGludF9vcF9qbXA6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGRpc3BhdGNoQnJhbmNoKDRbUENdKQotCi0KLV9s
bGludF9vcF9qbXBfc2NvcGVzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1Bh
dGgoX2xsaW50X3Nsb3dfcGF0aF9qbXBfc2NvcGVzKQotICAgIGRpc3BhdGNoKDApCi0KLQotbWFj
cm8ganVtcFRydWVPckZhbHNlKGNvbmRpdGlvbk9wLCBzbG93KQotICAgIGxvYWRpIDRbUENdLCB0
MQotICAgIGxvYWRDb25zdGFudE9yVmFyaWFibGVQYXlsb2FkKHQxLCBCb29sZWFuVGFnLCB0MCwg
LnNsb3cpCi0gICAgY29uZGl0aW9uT3AodDAsIC50YXJnZXQpCi0gICAgZGlzcGF0Y2goMykKLQot
LnRhcmdldDoKLSAgICBkaXNwYXRjaEJyYW5jaCg4W1BDXSkKLQotLnNsb3c6Ci0gICAgY2FsbFNs
b3dQYXRoKHNsb3cpCi0gICAgZGlzcGF0Y2goMCkKLWVuZAotCi1fbGxpbnRfb3BfbG9vcF9pZl90
cnVlOgotICAgIG5vcAotX2xsaW50X29wX2p0cnVlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBqdW1wVHJ1ZU9yRmFsc2UoCi0gICAgICAgIG1hY3JvICh2YWx1ZSwgdGFyZ2V0KSBidGlueiB2
YWx1ZSwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qdHJ1ZSkKLQotCi1f
bGxpbnRfb3BfbG9vcF9pZl9mYWxzZToKLSAgICBub3AKLV9sbGludF9vcF9qZmFsc2U6Ci0gICAg
dHJhY2VFeGVjdXRpb24oKQotICAgIGp1bXBUcnVlT3JGYWxzZSgKLSAgICAgICAgbWFjcm8gKHZh
bHVlLCB0YXJnZXQpIGJ0aXogdmFsdWUsIHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93
X3BhdGhfamZhbHNlKQotCi0KLW1hY3JvIGVxdWFsTnVsbChjZWxsSGFuZGxlciwgaW1tZWRpYXRl
SGFuZGxlcikKLSAgICBsb2FkaSA0W1BDXSwgdDAKLSAgICBsb2FkaSBUYWdPZmZzZXRbY2ZyLCB0
MCwgOF0sIHQxCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQwLCA4XSwgdDAKLSAgICBi
aW5lcSB0MSwgQ2VsbFRhZywgLmltbWVkaWF0ZQotICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1Y3R1
cmVbdDBdLCB0MgotICAgIGNlbGxIYW5kbGVyKFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJ
bmZvOjptX2ZsYWdzW3QyXSwgLnRhcmdldCkKLSAgICBkaXNwYXRjaCgzKQotCi0udGFyZ2V0Ogot
ICAgIGRpc3BhdGNoQnJhbmNoKDhbUENdKQotCi0uaW1tZWRpYXRlOgotICAgIG9yaSAxLCB0MQot
ICAgIGltbWVkaWF0ZUhhbmRsZXIodDEsIC50YXJnZXQpCi0gICAgZGlzcGF0Y2goMykKLWVuZAot
Ci1fbGxpbnRfb3BfamVxX251bGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGVxdWFsTnVs
bCgKLSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJ0Ym56IHZhbHVlLCBNYXNxdWVyYWRl
c0FzVW5kZWZpbmVkLCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAodmFsdWUsIHRhcmdldCkg
YmllcSB2YWx1ZSwgTnVsbFRhZywgdGFyZ2V0IGVuZCkKLSAgICAKLQotX2xsaW50X29wX2puZXFf
bnVsbDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZXF1YWxOdWxsKAotICAgICAgICBtYWNy
byAodmFsdWUsIHRhcmdldCkgYnRieiB2YWx1ZSwgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCwgdGFy
Z2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKHZhbHVlLCB0YXJnZXQpIGJpbmVxIHZhbHVlLCBOdWxs
VGFnLCB0YXJnZXQgZW5kKQotCi0KLV9sbGludF9vcF9qbmVxX3B0cjoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgbG9hZGkgNFtQQ10sIHQwCi0gICAgbG9hZGkgOFtQQ10sIHQxCi0gICAgYmlu
ZXEgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCBDZWxsVGFnLCAub3BKbmVxUHRyQnJhbmNoCi0gICAg
YnBlcSBQYXlsb2FkT2Zmc2V0W2NmciwgdDAsIDhdLCB0MSwgLm9wSm5lcVB0ckZhbGxUaHJvdWdo
Ci0ub3BKbmVxUHRyQnJhbmNoOgotICAgIGRpc3BhdGNoQnJhbmNoKDEyW1BDXSkKLS5vcEpuZXFQ
dHJGYWxsVGhyb3VnaDoKLSAgICBkaXNwYXRjaCg0KQotCi0KLW1hY3JvIGNvbXBhcmUoaW50ZWdl
ckNvbXBhcmUsIGRvdWJsZUNvbXBhcmUsIHNsb3dfcGF0aCkKLSAgICBsb2FkaSA0W1BDXSwgdDIK
LSAgICBsb2FkaSA4W1BDXSwgdDMKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MCwg
dDEpCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZTJSZWcodDMsIHQyLCB0MykKLSAgICBiaW5l
cSB0MCwgSW50MzJUYWcsIC5vcDFOb3RJbnQKLSAgICBiaW5lcSB0MiwgSW50MzJUYWcsIC5vcDJO
b3RJbnQKLSAgICBpbnRlZ2VyQ29tcGFyZSh0MSwgdDMsIC5qdW1wVGFyZ2V0KQotICAgIGRpc3Bh
dGNoKDQpCi0KLS5vcDFOb3RJbnQ6Ci0gICAgYmlhIHQwLCBMb3dlc3RUYWcsIC5zbG93Ci0gICAg
YmliIHQyLCBMb3dlc3RUYWcsIC5vcDFOb3RJbnRPcDJEb3VibGUKLSAgICBiaW5lcSB0MiwgSW50
MzJUYWcsIC5zbG93Ci0gICAgY2kyZCB0MywgZnQxCi0gICAgam1wIC5vcDFOb3RJbnRSZWFkeQot
Lm9wMU5vdEludE9wMkRvdWJsZToKLSAgICBmaWkyZCB0MywgdDIsIGZ0MQotLm9wMU5vdEludFJl
YWR5OgotICAgIGZpaTJkIHQxLCB0MCwgZnQwCi0gICAgZG91YmxlQ29tcGFyZShmdDAsIGZ0MSwg
Lmp1bXBUYXJnZXQpCi0gICAgZGlzcGF0Y2goNCkKLQotLm9wMk5vdEludDoKLSAgICBjaTJkIHQx
LCBmdDAKLSAgICBiaWEgdDIsIExvd2VzdFRhZywgLnNsb3cKLSAgICBmaWkyZCB0MywgdDIsIGZ0
MQotICAgIGRvdWJsZUNvbXBhcmUoZnQwLCBmdDEsIC5qdW1wVGFyZ2V0KQotICAgIGRpc3BhdGNo
KDQpCi0KLS5qdW1wVGFyZ2V0OgotICAgIGRpc3BhdGNoQnJhbmNoKDEyW1BDXSkKLQotLnNsb3c6
Ci0gICAgY2FsbFNsb3dQYXRoKHNsb3dfcGF0aCkKLSAgICBkaXNwYXRjaCgwKQotZW5kCi0KLV9s
bGludF9vcF9sb29wX2lmX2xlc3M6Ci0gICAgbm9wCi1fbGxpbnRfb3Bfamxlc3M6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwg
dGFyZ2V0KSBiaWx0IGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmRsdCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAg
X2xsaW50X3Nsb3dfcGF0aF9qbGVzcykKLQotCi1fbGxpbnRfb3Bfam5sZXNzOgotICAgIHRyYWNl
RXhlY3V0aW9uKCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRh
cmdldCkgYmlndGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVm
dCwgcmlnaHQsIHRhcmdldCkgYmRndGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAg
ICAgIF9sbGludF9zbG93X3BhdGhfam5sZXNzKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2dyZWF0
ZXI6Ci0gICAgbm9wCi1fbGxpbnRfb3BfamdyZWF0ZXI6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQot
ICAgIGNvbXBhcmUoCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0KSBiaWd0IGxl
ZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdl
dCkgYmRndCBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qZ3JlYXRlcikKLQotCi1fbGxpbnRfb3Bfam5ncmVhdGVyOgotICAgIHRyYWNlRXhlY3V0aW9u
KCkKLSAgICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmls
dGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQs
IHRhcmdldCkgYmRsdGVxdW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGlu
dF9zbG93X3BhdGhfam5ncmVhdGVyKQotCi0KLV9sbGludF9vcF9sb29wX2lmX2xlc3NlcToKLSAg
ICBub3AKLV9sbGludF9vcF9qbGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjb21w
YXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlsdGVxIGxlZnQsIHJp
Z2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmRs
dGVxIGxlZnQsIHJpZ2h0LCB0YXJnZXQgZW5kLAotICAgICAgICBfbGxpbnRfc2xvd19wYXRoX2ps
ZXNzZXEpCi0KLQotX2xsaW50X29wX2pubGVzc2VxOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjb21wYXJlKAotICAgICAgICBtYWNybyAobGVmdCwgcmlnaHQsIHRhcmdldCkgYmlndCBsZWZ0
LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQp
IGJkZ3R1biBsZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0
aF9qbmxlc3NlcSkKLQotCi1fbGxpbnRfb3BfbG9vcF9pZl9ncmVhdGVyZXE6Ci0gICAgbm9wCi1f
bGxpbnRfb3BfamdyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY29tcGFyZSgK
LSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpZ3RlcSBsZWZ0LCByaWdodCwg
dGFyZ2V0IGVuZCwKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJkZ3RlcSBs
ZWZ0LCByaWdodCwgdGFyZ2V0IGVuZCwKLSAgICAgICAgX2xsaW50X3Nsb3dfcGF0aF9qZ3JlYXRl
cmVxKQotCi0KLV9sbGludF9vcF9qbmdyZWF0ZXJlcToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0g
ICAgY29tcGFyZSgKLSAgICAgICAgbWFjcm8gKGxlZnQsIHJpZ2h0LCB0YXJnZXQpIGJpbHQgbGVm
dCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIG1hY3JvIChsZWZ0LCByaWdodCwgdGFyZ2V0
KSBiZGx0dW4gbGVmdCwgcmlnaHQsIHRhcmdldCBlbmQsCi0gICAgICAgIF9sbGludF9zbG93X3Bh
dGhfam5ncmVhdGVyZXEpCi0KLQotX2xsaW50X29wX2xvb3BfaGludDoKLSAgICB0cmFjZUV4ZWN1
dGlvbigpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVEZvckxvb3AoKQotICAgIGRpc3BhdGNoKDEpCi0K
LQotX2xsaW50X29wX3N3aXRjaF9pbW06Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRp
IDEyW1BDXSwgdDIKLSAgICBsb2FkaSA0W1BDXSwgdDMKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlh
YmxlKHQyLCB0MSwgdDApCi0gICAgbG9hZHAgQ29kZUJsb2NrW2Nmcl0sIHQyCi0gICAgbG9hZHAg
Q29kZUJsb2NrOjptX3JhcmVEYXRhW3QyXSwgdDIKLSAgICBtdWxpIHNpemVvZiBTaW1wbGVKdW1w
VGFibGUsIHQzICAgIyBGSVhNRTogd291bGQgYmUgbmljZSB0byBwZWVwaG9sZSB0aGlzIQotICAg
IGxvYWRwIENvZGVCbG9jazo6UmFyZURhdGE6Om1faW1tZWRpYXRlU3dpdGNoSnVtcFRhYmxlcyAr
IFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQyCi0gICAgYWRkcCB0MywgdDIKLSAgICBiaW5lcSB0
MSwgSW50MzJUYWcsIC5vcFN3aXRjaEltbU5vdEludAotICAgIHN1YmkgU2ltcGxlSnVtcFRhYmxl
OjptaW5bdDJdLCB0MAotICAgIGJpYWVxIHQwLCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNl
dHMgKyBWZWN0b3JTaXplT2Zmc2V0W3QyXSwgLm9wU3dpdGNoSW1tRmFsbFRocm91Z2gKLSAgICBs
b2FkcCBTaW1wbGVKdW1wVGFibGU6OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRb
dDJdLCB0MwotICAgIGxvYWRpIFt0MywgdDAsIDRdLCB0MQotICAgIGJ0aXogdDEsIC5vcFN3aXRj
aEltbUZhbGxUaHJvdWdoCi0gICAgZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHQxKQotCi0ub3BT
d2l0Y2hJbW1Ob3RJbnQ6Ci0gICAgYmliIHQxLCBMb3dlc3RUYWcsIC5vcFN3aXRjaEltbVNsb3cg
ICMgR28gdG8gc2xvdyBwYXRoIGlmIGl0J3MgYSBkb3VibGUuCi0ub3BTd2l0Y2hJbW1GYWxsVGhy
b3VnaDoKLSAgICBkaXNwYXRjaEJyYW5jaCg4W1BDXSkKLQotLm9wU3dpdGNoSW1tU2xvdzoKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zd2l0Y2hfaW1tKQotICAgIGRpc3BhdGNo
KDApCi0KLQotX2xsaW50X29wX3N3aXRjaF9jaGFyOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBsb2FkaSAxMltQQ10sIHQyCi0gICAgbG9hZGkgNFtQQ10sIHQzCi0gICAgbG9hZENvbnN0YW50
T3JWYXJpYWJsZSh0MiwgdDEsIHQwKQotICAgIGxvYWRwIENvZGVCbG9ja1tjZnJdLCB0MgotICAg
IGxvYWRwIENvZGVCbG9jazo6bV9yYXJlRGF0YVt0Ml0sIHQyCi0gICAgbXVsaSBzaXplb2YgU2lt
cGxlSnVtcFRhYmxlLCB0MwotICAgIGxvYWRwIENvZGVCbG9jazo6UmFyZURhdGE6Om1fY2hhcmFj
dGVyU3dpdGNoSnVtcFRhYmxlcyArIFZlY3RvckJ1ZmZlck9mZnNldFt0Ml0sIHQyCi0gICAgYWRk
cCB0MywgdDIKLSAgICBiaW5lcSB0MSwgQ2VsbFRhZywgLm9wU3dpdGNoQ2hhckZhbGxUaHJvdWdo
Ci0gICAgbG9hZHAgSlNDZWxsOjptX3N0cnVjdHVyZVt0MF0sIHQxCi0gICAgYmJuZXEgU3RydWN0
dXJlOjptX3R5cGVJbmZvICsgVHlwZUluZm86Om1fdHlwZVt0MV0sIFN0cmluZ1R5cGUsIC5vcFN3
aXRjaENoYXJGYWxsVGhyb3VnaAotICAgIGxvYWRwIEpTU3RyaW5nOjptX3ZhbHVlW3QwXSwgdDAK
LSAgICBiaW5lcSBTdHJpbmdJbXBsOjptX2xlbmd0aFt0MF0sIDEsIC5vcFN3aXRjaENoYXJGYWxs
VGhyb3VnaAotICAgIGxvYWRwIFN0cmluZ0ltcGw6Om1fZGF0YThbdDBdLCB0MQotICAgIGJ0aW56
IFN0cmluZ0ltcGw6Om1faGFzaEFuZEZsYWdzW3QwXSwgSGFzaEZsYWdzOEJpdEJ1ZmZlciwgLm9w
U3dpdGNoQ2hhcjhCaXQKLSAgICBsb2FkaCBbdDFdLCB0MAotICAgIGptcCAub3BTd2l0Y2hDaGFy
UmVhZHkKLS5vcFN3aXRjaENoYXI4Qml0OgotICAgIGxvYWRiIFt0MV0sIHQwCi0ub3BTd2l0Y2hD
aGFyUmVhZHk6Ci0gICAgc3ViaSBTaW1wbGVKdW1wVGFibGU6Om1pblt0Ml0sIHQwCi0gICAgYmlh
ZXEgdDAsIFNpbXBsZUp1bXBUYWJsZTo6YnJhbmNoT2Zmc2V0cyArIFZlY3RvclNpemVPZmZzZXRb
dDJdLCAub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2gKLSAgICBsb2FkcCBTaW1wbGVKdW1wVGFibGU6
OmJyYW5jaE9mZnNldHMgKyBWZWN0b3JCdWZmZXJPZmZzZXRbdDJdLCB0MgotICAgIGxvYWRpIFt0
MiwgdDAsIDRdLCB0MQotICAgIGJ0aXogdDEsIC5vcFN3aXRjaEltbUZhbGxUaHJvdWdoCi0gICAg
ZGlzcGF0Y2hCcmFuY2hXaXRoT2Zmc2V0KHQxKQotCi0ub3BTd2l0Y2hDaGFyRmFsbFRocm91Z2g6
Ci0gICAgZGlzcGF0Y2hCcmFuY2goOFtQQ10pCi0KLQotX2xsaW50X29wX3N3aXRjaF9zdHJpbmc6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRo
X3N3aXRjaF9zdHJpbmcpCi0gICAgZGlzcGF0Y2goMCkKLQotCi1fbGxpbnRfb3BfbmV3X2Z1bmM6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGJ0aXogMTJbUENdLCAub3BOZXdGdW5jVW5jaGVj
a2VkCi0gICAgbG9hZGkgNFtQQ10sIHQxCi0gICAgYmluZXEgVGFnT2Zmc2V0W2NmciwgdDEsIDhd
LCBFbXB0eVZhbHVlVGFnLCAub3BOZXdGdW5jRG9uZQotLm9wTmV3RnVuY1VuY2hlY2tlZDoKLSAg
ICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9uZXdfZnVuYykKLS5vcE5ld0Z1bmNEb25l
OgotICAgIGRpc3BhdGNoKDQpCi0KLQotX2xsaW50X29wX25ld19mdW5jX2V4cDoKLSAgICB0cmFj
ZUV4ZWN1dGlvbigpCi0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfbmV3X2Z1bmNf
ZXhwKQotICAgIGRpc3BhdGNoKDMpCi0KLQotbWFjcm8gZG9DYWxsKHNsb3dfcGF0aCkKLSAgICBs
b2FkaSA0W1BDXSwgdDAKLSAgICBsb2FkaSAxNltQQ10sIHQxCi0gICAgbG9hZHAgTExJbnRDYWxs
TGlua0luZm86OmNhbGxlZVt0MV0sIHQyCi0gICAgbG9hZENvbnN0YW50T3JWYXJpYWJsZVBheWxv
YWQodDAsIENlbGxUYWcsIHQzLCAub3BDYWxsU2xvdykKLSAgICBiaW5lcSB0MywgdDIsIC5vcENh
bGxTbG93Ci0gICAgbG9hZGkgMTJbUENdLCB0MwotICAgIGFkZHAgMjQsIFBDCi0gICAgbHNoaWZ0
aSAzLCB0MwotICAgIGFkZHAgY2ZyLCB0MyAgIyB0MyBjb250YWlucyB0aGUgbmV3IHZhbHVlIG9m
IGNmcgotICAgIGxvYWRwIEpTRnVuY3Rpb246Om1fc2NvcGVDaGFpblt0Ml0sIHQwCi0gICAgc3Rv
cmVpIHQyLCBDYWxsZWUgKyBQYXlsb2FkT2Zmc2V0W3QzXQotICAgIHN0b3JlaSB0MCwgU2NvcGVD
aGFpbiArIFBheWxvYWRPZmZzZXRbdDNdCi0gICAgbG9hZGkgOCAtIDI0W1BDXSwgdDIKLSAgICBz
dG9yZWkgUEMsIEFyZ3VtZW50Q291bnQgKyBUYWdPZmZzZXRbY2ZyXQotICAgIHN0b3JlcCBjZnIs
IENhbGxlckZyYW1lW3QzXQotICAgIHN0b3JlaSB0MiwgQXJndW1lbnRDb3VudCArIFBheWxvYWRP
ZmZzZXRbdDNdCi0gICAgc3RvcmVpIENlbGxUYWcsIENhbGxlZSArIFRhZ09mZnNldFt0M10KLSAg
ICBzdG9yZWkgQ2VsbFRhZywgU2NvcGVDaGFpbiArIFRhZ09mZnNldFt0M10KLSAgICBtb3ZlIHQz
LCBjZnIKLSAgICBjYWxsIExMSW50Q2FsbExpbmtJbmZvOjptYWNoaW5lQ29kZVRhcmdldFt0MV0K
LSAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCi0KLS5vcENhbGxTbG93OgotICAgIHNsb3dQYXRoRm9y
Q2FsbCg2LCBzbG93X3BhdGgpCi1lbmQKLQotX2xsaW50X29wX2NhbGw6Ci0gICAgdHJhY2VFeGVj
dXRpb24oKQotICAgIGRvQ2FsbChfbGxpbnRfc2xvd19wYXRoX2NhbGwpCi0KLQotX2xsaW50X29w
X2NvbnN0cnVjdDoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgZG9DYWxsKF9sbGludF9zbG93
X3BhdGhfY29uc3RydWN0KQotCi0KLV9sbGludF9vcF9jYWxsX3ZhcmFyZ3M6Ci0gICAgdHJhY2VF
eGVjdXRpb24oKQotICAgIHNsb3dQYXRoRm9yQ2FsbCg2LCBfbGxpbnRfc2xvd19wYXRoX2NhbGxf
dmFyYXJncykKLQotCi1fbGxpbnRfb3BfY2FsbF9ldmFsOgotICAgIHRyYWNlRXhlY3V0aW9uKCkK
LSAgICAKLSAgICAjIEV2YWwgaXMgZXhlY3V0ZWQgaW4gb25lIG9mIHR3byBtb2RlczoKLSAgICAj
Ci0gICAgIyAxKSBXZSBmaW5kIHRoYXQgd2UncmUgcmVhbGx5IGludm9raW5nIGV2YWwoKSBpbiB3
aGljaCBjYXNlIHRoZQotICAgICMgICAgZXhlY3V0aW9uIGlzIHBlcmZvbWVkIGVudGlyZWx5IGlu
c2lkZSB0aGUgc2xvd19wYXRoLCBhbmQgaXQKLSAgICAjICAgIHJldHVybnMgdGhlIFBDIG9mIGEg
ZnVuY3Rpb24gdGhhdCBqdXN0IHJldHVybnMgdGhlIHJldHVybiB2YWx1ZQotICAgICMgICAgdGhh
dCB0aGUgZXZhbCByZXR1cm5lZC4KLSAgICAjCi0gICAgIyAyKSBXZSBmaW5kIHRoYXQgd2UncmUg
aW52b2tpbmcgc29tZXRoaW5nIGNhbGxlZCBldmFsKCkgdGhhdCBpcyBub3QKLSAgICAjICAgIHRo
ZSByZWFsIGV2YWwuIFRoZW4gdGhlIHNsb3dfcGF0aCByZXR1cm5zIHRoZSBQQyBvZiB0aGUgdGhp
bmcgdG8KLSAgICAjICAgIGNhbGwsIGFuZCB3ZSBjYWxsIGl0LgotICAgICMKLSAgICAjIFRoaXMg
YWxsb3dzIHVzIHRvIGhhbmRsZSB0d28gY2FzZXMsIHdoaWNoIHdvdWxkIHJlcXVpcmUgYSB0b3Rh
bCBvZgotICAgICMgdXAgdG8gZm91ciBwaWVjZXMgb2Ygc3RhdGUgdGhhdCBjYW5ub3QgYmUgZWFz
aWx5IHBhY2tlZCBpbnRvIHR3bwotICAgICMgcmVnaXN0ZXJzIChDIGZ1bmN0aW9ucyBjYW4gcmV0
dXJuIHVwIHRvIHR3byByZWdpc3RlcnMsIGVhc2lseSk6Ci0gICAgIwotICAgICMgLSBUaGUgY2Fs
bCBmcmFtZSByZWdpc3Rlci4gVGhpcyBtYXkgb3IgbWF5IG5vdCBoYXZlIGJlZW4gbW9kaWZpZWQK
LSAgICAjICAgYnkgdGhlIHNsb3dfcGF0aCwgYnV0IHRoZSBjb252ZW50aW9uIGlzIHRoYXQgaXQg
cmV0dXJucyBpdC4gSXQncyBub3QKLSAgICAjICAgdG90YWxseSBjbGVhciBpZiB0aGF0J3MgbmVj
ZXNzYXJ5LCBzaW5jZSB0aGUgY2ZyIGlzIGNhbGxlZSBzYXZlLgotICAgICMgICBCdXQgdGhhdCdz
IG91ciBzdHlsZSBpbiB0aGlzIGhlcmUgaW50ZXJwcmV0ZXIgc28gd2Ugc3RpY2sgd2l0aCBpdC4K
LSAgICAjCi0gICAgIyAtIEEgYml0IHRvIHNheSBpZiB0aGUgc2xvd19wYXRoIHN1Y2Nlc3NmdWxs
eSBleGVjdXRlZCB0aGUgZXZhbCBhbmQgaGFzCi0gICAgIyAgIHRoZSByZXR1cm4gdmFsdWUsIG9y
IGRpZCBub3QgZXhlY3V0ZSB0aGUgZXZhbCBidXQgaGFzIGEgUEMgZm9yIHVzCi0gICAgIyAgIHRv
IGNhbGwuCi0gICAgIwotICAgICMgLSBFaXRoZXI6Ci0gICAgIyAgIC0gVGhlIEpTIHJldHVybiB2
YWx1ZSAodHdvIHJlZ2lzdGVycyksIG9yCi0gICAgIwotICAgICMgICAtIFRoZSBQQyB0byBjYWxs
LgotICAgICMKLSAgICAjIEl0IHR1cm5zIG91dCB0byBiZSBlYXNpZXIgdG8ganVzdCBhbHdheXMg
aGF2ZSB0aGlzIHJldHVybiB0aGUgY2ZyCi0gICAgIyBhbmQgYSBQQyB0byBjYWxsLCBhbmQgdGhh
dCBQQyBtYXkgYmUgYSBkdW1teSB0aHVuayB0aGF0IGp1c3QKLSAgICAjIHJldHVybnMgdGhlIEpT
IHZhbHVlIHRoYXQgdGhlIGV2YWwgcmV0dXJuZWQuCi0gICAgCi0gICAgc2xvd1BhdGhGb3JDYWxs
KDQsIF9sbGludF9zbG93X3BhdGhfY2FsbF9ldmFsKQotCi0KLV9sbGludF9nZW5lcmljX3JldHVy
bl9wb2ludDoKLSAgICBkaXNwYXRjaEFmdGVyQ2FsbCgpCi0KLQotX2xsaW50X29wX3RlYXJfb2Zm
X2FjdGl2YXRpb246Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDRbUENdLCB0MAot
ICAgIGxvYWRpIDhbUENdLCB0MQotICAgIGJpbmVxIFRhZ09mZnNldFtjZnIsIHQwLCA4XSwgRW1w
dHlWYWx1ZVRhZywgLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVkCi0gICAgYmllcSBUYWdPZmZz
ZXRbY2ZyLCB0MSwgOF0sIEVtcHR5VmFsdWVUYWcsIC5vcFRlYXJPZmZBY3RpdmF0aW9uTm90Q3Jl
YXRlZAotLm9wVGVhck9mZkFjdGl2YXRpb25DcmVhdGVkOgotICAgIGNhbGxTbG93UGF0aChfbGxp
bnRfc2xvd19wYXRoX3RlYXJfb2ZmX2FjdGl2YXRpb24pCi0ub3BUZWFyT2ZmQWN0aXZhdGlvbk5v
dENyZWF0ZWQ6Ci0gICAgZGlzcGF0Y2goMykKLQotCi1fbGxpbnRfb3BfdGVhcl9vZmZfYXJndW1l
bnRzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkaSA0W1BDXSwgdDAKLSAgICBzdWJp
IDEsIHQwICAgIyBHZXQgdGhlIHVubW9kaWZpZWRBcmd1bWVudHNSZWdpc3RlcgotICAgIGJpZXEg
VGFnT2Zmc2V0W2NmciwgdDAsIDhdLCBFbXB0eVZhbHVlVGFnLCAub3BUZWFyT2ZmQXJndW1lbnRz
Tm90Q3JlYXRlZAotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3RlYXJfb2ZmX2Fy
Z3VtZW50cykKLS5vcFRlYXJPZmZBcmd1bWVudHNOb3RDcmVhdGVkOgotICAgIGRpc3BhdGNoKDIp
Ci0KLQotbWFjcm8gZG9SZXR1cm4oKQotICAgIGxvYWRwIFJldHVyblBDW2Nmcl0sIHQyCi0gICAg
bG9hZHAgQ2FsbGVyRnJhbWVbY2ZyXSwgY2ZyCi0gICAgcmVzdG9yZVJldHVybkFkZHJlc3NCZWZv
cmVSZXR1cm4odDIpCi0gICAgcmV0Ci1lbmQKLQotX2xsaW50X29wX3JldDoKLSAgICB0cmFjZUV4
ZWN1dGlvbigpCi0gICAgY2hlY2tTd2l0Y2hUb0pJVEZvckVwaWxvZ3VlKCkKLSAgICBsb2FkaSA0
W1BDXSwgdDIKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSwgdDApCi0gICAgZG9S
ZXR1cm4oKQotCi0KLV9sbGludF9vcF9jYWxsX3B1dF9yZXN1bHQ6Ci0gICAgbG9hZGkgNFtQQ10s
IHQyCi0gICAgbG9hZGkgOFtQQ10sIHQzCi0gICAgc3RvcmVpIHQxLCBUYWdPZmZzZXRbY2ZyLCB0
MiwgOF0KLSAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICB2YWx1
ZVByb2ZpbGUodDEsIHQwLCB0MykKLSAgICB0cmFjZUV4ZWN1dGlvbigpICMgTmVlZHMgdG8gYmUg
aGVyZSBiZWNhdXNlIGl0IHdvdWxkIGNsb2JiZXIgdDEsIHQwCi0gICAgZGlzcGF0Y2goMykKLQot
Ci1fbGxpbnRfb3BfcmV0X29iamVjdF9vcl90aGlzOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAg
ICBjaGVja1N3aXRjaFRvSklURm9yRXBpbG9ndWUoKQotICAgIGxvYWRpIDRbUENdLCB0MgotICAg
IGxvYWRDb25zdGFudE9yVmFyaWFibGUodDIsIHQxLCB0MCkKLSAgICBiaW5lcSB0MSwgQ2VsbFRh
ZywgLm9wUmV0T2JqZWN0T3JUaGlzTm90T2JqZWN0Ci0gICAgbG9hZHAgSlNDZWxsOjptX3N0cnVj
dHVyZVt0MF0sIHQyCi0gICAgYmJiIFN0cnVjdHVyZTo6bV90eXBlSW5mbyArIFR5cGVJbmZvOjpt
X3R5cGVbdDJdLCBPYmplY3RUeXBlLCAub3BSZXRPYmplY3RPclRoaXNOb3RPYmplY3QKLSAgICBk
b1JldHVybigpCi0KLS5vcFJldE9iamVjdE9yVGhpc05vdE9iamVjdDoKLSAgICBsb2FkaSA4W1BD
XSwgdDIKLSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSwgdDApCi0gICAgZG9SZXR1
cm4oKQotCi0KLV9sbGludF9vcF9tZXRob2RfY2hlY2s6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQot
ICAgICMgV2UgaWdub3JlIG1ldGhvZCBjaGVja3MgYW5kIHVzZSBub3JtYWwgZ2V0X2J5X2lkIG9w
dGltaXphdGlvbnMuCi0gICAgZGlzcGF0Y2goMSkKLQotCi1fbGxpbnRfb3Bfc3RyY2F0OgotICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9zdHJj
YXQpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1fbGxpbnRfb3BfdG9fcHJpbWl0aXZlOgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBsb2FkaSA4W1BDXSwgdDIKLSAgICBsb2FkaSA0W1BDXSwgdDMK
LSAgICBsb2FkQ29uc3RhbnRPclZhcmlhYmxlKHQyLCB0MSwgdDApCi0gICAgYmluZXEgdDEsIENl
bGxUYWcsIC5vcFRvUHJpbWl0aXZlSXNJbW0KLSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJl
W3QwXSwgdDIKLSAgICBiYm5lcSBTdHJ1Y3R1cmU6Om1fdHlwZUluZm8gKyBUeXBlSW5mbzo6bV90
eXBlW3QyXSwgU3RyaW5nVHlwZSwgLm9wVG9QcmltaXRpdmVTbG93Q2FzZQotLm9wVG9QcmltaXRp
dmVJc0ltbToKLSAgICBzdG9yZWkgdDEsIFRhZ09mZnNldFtjZnIsIHQzLCA4XQotICAgIHN0b3Jl
aSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQzLCA4XQotICAgIGRpc3BhdGNoKDMpCi0KLS5vcFRv
UHJpbWl0aXZlU2xvd0Nhc2U6Ci0gICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfdG9f
cHJpbWl0aXZlKQotICAgIGRpc3BhdGNoKDMpCi0KLQotX2xsaW50X29wX2dldF9wbmFtZXM6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX2dl
dF9wbmFtZXMpCi0gICAgZGlzcGF0Y2goMCkgIyBUaGUgc2xvd19wYXRoIGVpdGhlciBhZHZhbmNl
cyB0aGUgUEMgb3IganVtcHMgdXMgdG8gc29tZXdoZXJlIGVsc2UuCi0KLQotX2xsaW50X29wX25l
eHRfcG5hbWU6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDEyW1BDXSwgdDEKLSAg
ICBsb2FkaSAxNltQQ10sIHQyCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XSwg
dDAKLSAgICBiaWVxIHQwLCBQYXlsb2FkT2Zmc2V0W2NmciwgdDIsIDhdLCAub3BOZXh0UG5hbWVF
bmQKLSAgICBsb2FkaSAyMFtQQ10sIHQyCi0gICAgbG9hZGkgUGF5bG9hZE9mZnNldFtjZnIsIHQy
LCA4XSwgdDIKLSAgICBsb2FkcCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX2pzU3RyaW5nc1t0
Ml0sIHQzCi0gICAgbG9hZGkgW3QzLCB0MCwgOF0sIHQzCi0gICAgYWRkaSAxLCB0MAotICAgIHN0
b3JlaSB0MCwgUGF5bG9hZE9mZnNldFtjZnIsIHQxLCA4XQotICAgIGxvYWRpIDRbUENdLCB0MQot
ICAgIHN0b3JlaSBDZWxsVGFnLCBUYWdPZmZzZXRbY2ZyLCB0MSwgOF0KLSAgICBzdG9yZWkgdDMs
IFBheWxvYWRPZmZzZXRbY2ZyLCB0MSwgOF0KLSAgICBsb2FkaSA4W1BDXSwgdDMKLSAgICBsb2Fk
aSBQYXlsb2FkT2Zmc2V0W2NmciwgdDMsIDhdLCB0MwotICAgIGxvYWRwIEpTQ2VsbDo6bV9zdHJ1
Y3R1cmVbdDNdLCB0MQotICAgIGJwbmVxIHQxLCBKU1Byb3BlcnR5TmFtZUl0ZXJhdG9yOjptX2Nh
Y2hlZFN0cnVjdHVyZVt0Ml0sIC5vcE5leHRQbmFtZVNsb3cKLSAgICBsb2FkcCBKU1Byb3BlcnR5
TmFtZUl0ZXJhdG9yOjptX2NhY2hlZFByb3RvdHlwZUNoYWluW3QyXSwgdDAKLSAgICBsb2FkcCBT
dHJ1Y3R1cmVDaGFpbjo6bV92ZWN0b3JbdDBdLCB0MAotICAgIGJ0cHogW3QwXSwgLm9wTmV4dFBu
YW1lVGFyZ2V0Ci0ub3BOZXh0UG5hbWVDaGVja1Byb3RvdHlwZUxvb3A6Ci0gICAgYmllcSBTdHJ1
Y3R1cmU6Om1fcHJvdG90eXBlICsgVGFnT2Zmc2V0W3QxXSwgTnVsbFRhZywgLm9wTmV4dFBuYW1l
U2xvdwotICAgIGxvYWRwIFN0cnVjdHVyZTo6bV9wcm90b3R5cGUgKyBQYXlsb2FkT2Zmc2V0W3Qx
XSwgdDIKLSAgICBsb2FkcCBKU0NlbGw6Om1fc3RydWN0dXJlW3QyXSwgdDEKLSAgICBicG5lcSB0
MSwgW3QwXSwgLm9wTmV4dFBuYW1lU2xvdwotICAgIGFkZHAgNCwgdDAKLSAgICBidHBueiBbdDBd
LCAub3BOZXh0UG5hbWVDaGVja1Byb3RvdHlwZUxvb3AKLS5vcE5leHRQbmFtZVRhcmdldDoKLSAg
ICBkaXNwYXRjaEJyYW5jaCgyNFtQQ10pCi0KLS5vcE5leHRQbmFtZUVuZDoKLSAgICBkaXNwYXRj
aCg3KQotCi0ub3BOZXh0UG5hbWVTbG93OgotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19w
YXRoX25leHRfcG5hbWUpICMgVGhpcyBlaXRoZXIga2VlcHMgdGhlIFBDIHdoZXJlIGl0IHdhcyAo
Y2F1c2luZyB1cyB0byBsb29wKSBvciBzZXRzIGl0IHRvIHRhcmdldC4KLSAgICBkaXNwYXRjaCgw
KQotCi0KLV9sbGludF9vcF9wdXNoX3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX3Njb3BlKQotICAgIGRpc3BhdGNoKDIp
Ci0KLQotX2xsaW50X29wX3BvcF9zY29wZToKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcG9wX3Njb3BlKQotICAgIGRpc3BhdGNoKDEpCi0K
LQotX2xsaW50X29wX3B1c2hfbmV3X3Njb3BlOgotICAgIHRyYWNlRXhlY3V0aW9uKCkKLSAgICBj
YWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF9wdXNoX25ld19zY29wZSkKLSAgICBkaXNwYXRj
aCg0KQotCi0KLV9sbGludF9vcF9jYXRjaDoKLSAgICAjIFRoaXMgaXMgd2hlcmUgd2UgZW5kIHVw
IGZyb20gdGhlIEpJVCdzIHRocm93IHRyYW1wb2xpbmUgKGJlY2F1c2UgdGhlCi0gICAgIyBtYWNo
aW5lIGNvZGUgcmV0dXJuIGFkZHJlc3Mgd2lsbCBiZSBzZXQgdG8gX2xsaW50X29wX2NhdGNoKSwg
YW5kIGZyb20KLSAgICAjIHRoZSBpbnRlcnByZXRlcidzIHRocm93IHRyYW1wb2xpbmUgKHNlZSBf
bGxpbnRfdGhyb3dfdHJhbXBvbGluZSkuCi0gICAgIyBUaGUgSklUIHRocm93aW5nIHByb3RvY29s
IGNhbGxzIGZvciB0aGUgY2ZyIHRvIGJlIGluIHQwLiBUaGUgdGhyb3dpbmcKLSAgICAjIGNvZGUg
bXVzdCBoYXZlIGtub3duIHRoYXQgd2Ugd2VyZSB0aHJvd2luZyB0byB0aGUgaW50ZXJwcmV0ZXIs
IGFuZCBoYXZlCi0gICAgIyBzZXQgSlNHbG9iYWxEYXRhOjp0YXJnZXRJbnRlcnByZXRlclBDRm9y
VGhyb3cuCi0gICAgbW92ZSB0MCwgY2ZyCi0gICAgbG9hZHAgSklUU3RhY2tGcmFtZTo6Z2xvYmFs
RGF0YVtzcF0sIHQzCi0gICAgbG9hZGkgSlNHbG9iYWxEYXRhOjp0YXJnZXRJbnRlcnByZXRlclBD
Rm9yVGhyb3dbdDNdLCBQQwotICAgIGxvYWRpIEpTR2xvYmFsRGF0YTo6ZXhjZXB0aW9uICsgUGF5
bG9hZE9mZnNldFt0M10sIHQwCi0gICAgbG9hZGkgSlNHbG9iYWxEYXRhOjpleGNlcHRpb24gKyBU
YWdPZmZzZXRbdDNdLCB0MQotICAgIHN0b3JlaSAwLCBKU0dsb2JhbERhdGE6OmV4Y2VwdGlvbiAr
IFBheWxvYWRPZmZzZXRbdDNdCi0gICAgc3RvcmVpIEVtcHR5VmFsdWVUYWcsIEpTR2xvYmFsRGF0
YTo6ZXhjZXB0aW9uICsgVGFnT2Zmc2V0W3QzXSAgICAgICAKLSAgICBsb2FkaSA0W1BDXSwgdDIK
LSAgICBzdG9yZWkgdDAsIFBheWxvYWRPZmZzZXRbY2ZyLCB0MiwgOF0KLSAgICBzdG9yZWkgdDEs
IFRhZ09mZnNldFtjZnIsIHQyLCA4XQotICAgIHRyYWNlRXhlY3V0aW9uKCkgICMgVGhpcyBuZWVk
cyB0byBiZSBoZXJlIGJlY2F1c2Ugd2UgZG9uJ3Qgd2FudCB0byBjbG9iYmVyIHQwLCB0MSwgdDIs
IHQzIGFib3ZlLgotICAgIGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Rocm93OgotICAgIHRy
YWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX2xsaW50X3Nsb3dfcGF0aF90aHJvdykK
LSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF90aHJvd19yZWZlcmVuY2VfZXJyb3I6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfbGxpbnRfc2xvd19wYXRoX3Ro
cm93X3JlZmVyZW5jZV9lcnJvcikKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9qc3I6
Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxvYWRpIDRbUENdLCB0MAotICAgIGFkZGkgMyAq
IDQsIFBDLCB0MQotICAgIHN0b3JlaSB0MSwgW2NmciwgdDAsIDhdCi0gICAgZGlzcGF0Y2hCcmFu
Y2goOFtQQ10pCi0KLQotX2xsaW50X29wX3NyZXQ6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAg
IGxvYWRpIDRbUENdLCB0MAotICAgIGxvYWRwIFtjZnIsIHQwLCA4XSwgUEMKLSAgICBkaXNwYXRj
aCgwKQotCi0KLV9sbGludF9vcF9kZWJ1ZzoKLSAgICB0cmFjZUV4ZWN1dGlvbigpCi0gICAgY2Fs
bFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfZGVidWcpCi0gICAgZGlzcGF0Y2goNCkKLQotCi1f
bGxpbnRfb3BfcHJvZmlsZV93aWxsX2NhbGw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGxv
YWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJlZmVyZW5jZVtzcF0sIHQwCi0gICAg
YnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCi0gICAgY2FsbFNsb3dQYXRoKF9sbGlu
dF9zbG93X3BhdGhfcHJvZmlsZV93aWxsX2NhbGwpCi0ub3BQcm9maWxlV2lsbENhbGxEb25lOgot
ICAgIGRpc3BhdGNoKDIpCi0KLQotX2xsaW50X29wX3Byb2ZpbGVfZGlkX2NhbGw6Ci0gICAgdHJh
Y2VFeGVjdXRpb24oKQotICAgIGxvYWRwIEpJVFN0YWNrRnJhbWU6OmVuYWJsZWRQcm9maWxlclJl
ZmVyZW5jZVtzcF0sIHQwCi0gICAgYnRweiBbdDBdLCAub3BQcm9maWxlV2lsbENhbGxEb25lCi0g
ICAgY2FsbFNsb3dQYXRoKF9sbGludF9zbG93X3BhdGhfcHJvZmlsZV9kaWRfY2FsbCkKLS5vcFBy
b2ZpbGVEaWRDYWxsRG9uZToKLSAgICBkaXNwYXRjaCgyKQotCi0KLV9sbGludF9vcF9lbmQ6Ci0g
ICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNoZWNrU3dpdGNoVG9KSVRGb3JFcGlsb2d1ZSgpCi0g
ICAgbG9hZGkgNFtQQ10sIHQwCi0gICAgbG9hZGkgVGFnT2Zmc2V0W2NmciwgdDAsIDhdLCB0MQot
ICAgIGxvYWRpIFBheWxvYWRPZmZzZXRbY2ZyLCB0MCwgOF0sIHQwCi0gICAgZG9SZXR1cm4oKQot
Ci0KLV9sbGludF90aHJvd19mcm9tX3Nsb3dfcGF0aF90cmFtcG9saW5lOgotICAgICMgV2hlbiB0
aHJvd2luZyBmcm9tIHRoZSBpbnRlcnByZXRlciAoaS5lLiB0aHJvd2luZyBmcm9tIExMSW50U2xv
d1BhdGhzKSwgc28KLSAgICAjIHRoZSB0aHJvdyB0YXJnZXQgaXMgbm90IG5lY2Vzc2FyaWx5IGlu
dGVycHJldGVkIGNvZGUsIHdlIGNvbWUgdG8gaGVyZS4KLSAgICAjIFRoaXMgZXNzZW50aWFsbHkg
ZW11bGF0ZXMgdGhlIEpJVCdzIHRocm93aW5nIHByb3RvY29sLgotICAgIGxvYWRwIEpJVFN0YWNr
RnJhbWU6Omdsb2JhbERhdGFbc3BdLCB0MQotICAgIGxvYWRwIEpTR2xvYmFsRGF0YTo6Y2FsbEZy
YW1lRm9yVGhyb3dbdDFdLCB0MAotICAgIGptcCBKU0dsb2JhbERhdGE6OnRhcmdldE1hY2hpbmVQ
Q0ZvclRocm93W3QxXQotCi0KLV9sbGludF90aHJvd19kdXJpbmdfY2FsbF90cmFtcG9saW5lOgot
ICAgIHByZXNlcnZlUmV0dXJuQWRkcmVzc0FmdGVyQ2FsbCh0MikKLSAgICBsb2FkcCBKSVRTdGFj
a0ZyYW1lOjpnbG9iYWxEYXRhW3NwXSwgdDEKLSAgICBsb2FkcCBKU0dsb2JhbERhdGE6OmNhbGxG
cmFtZUZvclRocm93W3QxXSwgdDAKLSAgICBqbXAgSlNHbG9iYWxEYXRhOjp0YXJnZXRNYWNoaW5l
UENGb3JUaHJvd1t0MV0KLQotCi0jIExhc3RseSwgbWFrZSBzdXJlIHRoYXQgd2UgY2FuIGxpbmsg
ZXZlbiB0aG91Z2ggd2UgZG9uJ3Qgc3VwcG9ydCBhbGwgb3Bjb2Rlcy4KLSMgVGhlc2Ugb3Bjb2Rl
cyBzaG91bGQgbmV2ZXIgYXJpc2Ugd2hlbiB1c2luZyBMTEludCBvciBlaXRoZXIgSklULiBXZSBh
c3NlcnQKLSMgYXMgbXVjaC4KLQotbWFjcm8gbm90U3VwcG9ydGVkKCkKLSAgICBpZiBBU1NFUlRf
RU5BQkxFRAotICAgICAgICBjcmFzaCgpCi0gICAgZWxzZQotICAgICAgICAjIFdlIHNob3VsZCB1
c2Ugd2hhdGV2ZXIgdGhlIHNtYWxsZXN0IHBvc3NpYmxlIGluc3RydWN0aW9uIGlzLCBqdXN0IHRv
Ci0gICAgICAgICMgZW5zdXJlIHRoYXQgdGhlcmUgaXMgYSBnYXAgYmV0d2VlbiBpbnN0cnVjdGlv
biBsYWJlbHMuIElmIG11bHRpcGxlCi0gICAgICAgICMgc21hbGxlc3QgaW5zdHJ1Y3Rpb25zIGV4
aXN0LCB3ZSBzaG91bGQgcGljayB0aGUgb25lIHRoYXQgaXMgbW9zdAotICAgICAgICAjIGxpa2Vs
eSByZXN1bHQgaW4gZXhlY3V0aW9uIGJlaW5nIGhhbHRlZC4gQ3VycmVudGx5IHRoYXQgaXMgdGhl
IGJyZWFrCi0gICAgICAgICMgaW5zdHJ1Y3Rpb24gb24gYWxsIGFyY2hpdGVjdHVyZXMgd2UncmUg
aW50ZXJlc3RlZCBpbi4gKEJyZWFrIGlzIGludDMKLSAgICAgICAgIyBvbiBJbnRlbCwgd2hpY2gg
aXMgMSBieXRlLCBhbmQgYmtwdCBvbiBBUk12Nywgd2hpY2ggaXMgMiBieXRlcy4pCi0gICAgICAg
IGJyZWFrCi0gICAgZW5kCi1lbmQKLQotX2xsaW50X29wX2dldF9hcnJheV9sZW5ndGg6Ci0gICAg
bm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX2dldF9ieV9pZF9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9jaGFpbjoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9wcm90bzoKLSAgICBub3RTdXBw
b3J0ZWQoKQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2N1c3RvbV9zZWxmOgotICAgIG5vdFN1cHBv
cnRlZCgpCi0KLV9sbGludF9vcF9nZXRfYnlfaWRfZ2VuZXJpYzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9jaGFpbjoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9wcm90bzoKLSAgICBub3RTdXBwb3J0ZWQo
KQotCi1fbGxpbnRfb3BfZ2V0X2J5X2lkX2dldHRlcl9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgp
Ci0KLV9sbGludF9vcF9nZXRfYnlfaWRfcHJvdG86Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xs
aW50X29wX2dldF9ieV9pZF9zZWxmOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9n
ZXRfc3RyaW5nX2xlbmd0aDoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi1fbGxpbnRfb3BfcHV0X2J5
X2lkX2dlbmVyaWM6Ci0gICAgbm90U3VwcG9ydGVkKCkKLQotX2xsaW50X29wX3B1dF9ieV9pZF9y
ZXBsYWNlOgotICAgIG5vdFN1cHBvcnRlZCgpCi0KLV9sbGludF9vcF9wdXRfYnlfaWRfdHJhbnNp
dGlvbjoKLSAgICBub3RTdXBwb3J0ZWQoKQotCi0KLSMgSW5kaWNhdGUgdGhlIGVuZCBvZiBMTElu
dC4KLV9sbGludF9lbmQ6Ci0gICAgY3Jhc2goKQotCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hc20ucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXNtLnJiCShyZXZpc2lvbiAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9hc20ucmIJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwxMCArMTI5LDkg
QEAgb3V0cHV0RmxubSA9IEFSR1Yuc2hpZnQKICRzdGRlcnIucHV0cyAib2ZmbGluZWFzbTogUGFy
c2luZyAje2FzbUZpbGV9IGFuZCAje29mZnNldHNGaWxlfSBhbmQgY3JlYXRpbmcgYXNzZW1ibHkg
ZmlsZSAje291dHB1dEZsbm19LiIKIAogY29uZmlndXJhdGlvbkxpc3QgPSBvZmZzZXRzQW5kQ29u
ZmlndXJhdGlvbkluZGV4KG9mZnNldHNGaWxlKQotaW5wdXREYXRhID0gSU86OnJlYWQoYXNtRmls
ZSkKIAogaW5wdXRIYXNoID0KLSAgICAiLy8gb2ZmbGluZWFzbSBpbnB1dCBoYXNoOiAiICsgRGln
ZXN0OjpTSEExLmhleGRpZ2VzdChpbnB1dERhdGEpICsKKyAgICAiLy8gb2ZmbGluZWFzbSBpbnB1
dCBoYXNoOiAiICsgcGFyc2VIYXNoKGFzbUZpbGUpICsKICAgICAiICIgKyBEaWdlc3Q6OlNIQTEu
aGV4ZGlnZXN0KGNvbmZpZ3VyYXRpb25MaXN0Lm1hcHt8dnwgKHZbMF0gKyBbdlsxXV0pLmpvaW4o
JyAnKX0uam9pbignICcpKSArCiAgICAgIiAiICsgc2VsZkhhc2gKIApAQCAtMTU0LDcgKzE1Myw3
IEBAIEZpbGUub3BlbihvdXRwdXRGbG5tLCAidyIpIHsKICAgICAKICAgICAkYXNtID0gQXNzZW1i
bGVyLm5ldygkb3V0cHV0KQogICAgIAotICAgIGFzdCA9IHBhcnNlKGxleChpbnB1dERhdGEpKQor
ICAgIGFzdCA9IHBhcnNlKGFzbUZpbGUpCiAgICAgCiAgICAgY29uZmlndXJhdGlvbkxpc3QuZWFj
aCB7CiAgICAgICAgIHwgY29uZmlndXJhdGlvbiB8CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvb2ZmbGluZWFzbS9hc3QucmIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L29mZmxpbmVhc20vYXN0LnJiCShyZXZpc2lvbiAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvb2ZmbGluZWFzbS9hc3QucmIJKHdvcmtpbmcgY29weSkKQEAgLTU3LDcgKzU3LDcgQEAg
Y2xhc3MgTm9kZQogICAgIGVuZAogICAgIAogICAgIGRlZiBjb2RlT3JpZ2luU3RyaW5nCi0gICAg
ICAgICJsaW5lIG51bWJlciAje0Bjb2RlT3JpZ2lufSIKKyAgICAgICAgQGNvZGVPcmlnaW4udG9f
cwogICAgIGVuZAogICAgIAogICAgIGRlZiBkZXNjZW5kYW50cwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL29mZmxpbmVhc20vZ2VuZXJhdGVfb2Zmc2V0X2V4dHJhY3Rvci5yYgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRf
ZXh0cmFjdG9yLnJiCShyZXZpc2lvbiAxMDg5MDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
b2ZmbGluZWFzbS9nZW5lcmF0ZV9vZmZzZXRfZXh0cmFjdG9yLnJiCSh3b3JraW5nIGNvcHkpCkBA
IC00NSw4ICs0NSw3IEBAIGRlZiBlbWl0TWFnaWNOdW1iZXIKICAgICB9CiBlbmQKIAotaW5wdXRE
YXRhID0gSU86OnJlYWQoaW5wdXRGbG5tKQotaW5wdXRIYXNoID0gIi8vIG9mZmxpbmVhc20gaW5w
dXQgaGFzaDogI3tEaWdlc3Q6OlNIQTEuaGV4ZGlnZXN0KGlucHV0RGF0YSl9ICN7c2VsZkhhc2h9
IgoraW5wdXRIYXNoID0gIi8vIG9mZmxpbmVhc20gaW5wdXQgaGFzaDogI3twYXJzZUhhc2goaW5w
dXRGbG5tKX0gI3tzZWxmSGFzaH0iCiAKIGlmIEZpbGVUZXN0LmV4aXN0PyBvdXRwdXRGbG5tCiAg
ICAgRmlsZS5vcGVuKG91dHB1dEZsbm0sICJyIikgewpAQCAtNTksNyArNTgsNyBAQCBpZiBGaWxl
VGVzdC5leGlzdD8gb3V0cHV0RmxubQogICAgIH0KIGVuZAogCi1vcmlnaW5hbEFTVCA9IHBhcnNl
KGxleChpbnB1dERhdGEpKQorb3JpZ2luYWxBU1QgPSBwYXJzZShpbnB1dEZsbm0pCiAKICMKICMg
T3B0aW1pemUgdGhlIEFTVCB0byBtYWtlIGNvbmZpZ3VyYXRpb24gZXh0cmFjdGlvbiBmYXN0ZXIu
IFRoaXMgcmVkdWNlcyB0aGUgQVNUIHRvIGEgZm9ybQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9vZmZsaW5lYXNtL3BhcnNlci5yYgkocmV2aXNpb24gMTA4OTA1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL29mZmxpbmVhc20vcGFyc2VyLnJiCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw3
ICsyMywyMiBAQAogCiByZXF1aXJlICJhc3QiCiByZXF1aXJlICJpbnN0cnVjdGlvbnMiCityZXF1
aXJlICJwYXRobmFtZSIKIHJlcXVpcmUgInJlZ2lzdGVycyIKK3JlcXVpcmUgInNlbGZfaGFzaCIK
KworY2xhc3MgQ29kZU9yaWdpbgorICAgIGF0dHJfcmVhZGVyIDpmaWxlTmFtZSwgOmxpbmVOdW1i
ZXIKKyAgICAKKyAgICBkZWYgaW5pdGlhbGl6ZShmaWxlTmFtZSwgbGluZU51bWJlcikKKyAgICAg
ICAgQGZpbGVOYW1lID0gZmlsZU5hbWUKKyAgICAgICAgQGxpbmVOdW1iZXIgPSBsaW5lTnVtYmVy
CisgICAgZW5kCisgICAgCisgICAgZGVmIHRvX3MKKyAgICAgICAgIiN7ZmlsZU5hbWV9OiN7bGlu
ZU51bWJlcn0iCisgICAgZW5kCitlbmQKIAogY2xhc3MgVG9rZW4KICAgICBhdHRyX3JlYWRlciA6
Y29kZU9yaWdpbiwgOnN0cmluZwpAQCAtNDYsNyArNjEsNyBAQCBjbGFzcyBUb2tlbgogICAgIGVu
ZAogICAgIAogICAgIGRlZiB0b19zCi0gICAgICAgICIje0BzdHJpbmcuaW5zcGVjdH0gYXQgbGlu
ZSAje2NvZGVPcmlnaW59IgorICAgICAgICAiI3tAc3RyaW5nLmluc3BlY3R9IGF0ICN7Y29kZU9y
aWdpbn0iCiAgICAgZW5kCiAgICAgCiAgICAgZGVmIHBhcnNlRXJyb3IoKmNvbW1lbnQpCkBAIC02
Miw3ICs3Nyw4IEBAIGVuZAogIyBUaGUgbGV4ZXIuIFRha2VzIGEgc3RyaW5nIGFuZCByZXR1cm5z
IGFuIGFycmF5IG9mIHRva2Vucy4KICMKIAotZGVmIGxleChzdHIpCitkZWYgbGV4KHN0ciwgZmls
ZU5hbWUpCisgICAgZmlsZU5hbWUgPSBQYXRobmFtZS5uZXcoZmlsZU5hbWUpCiAgICAgcmVzdWx0
ID0gW10KICAgICBsaW5lTnVtYmVyID0gMQogICAgIHdoaWxlIG5vdCBzdHIuZW1wdHk/CkBAIC03
MCwyOCArODYsMjggQEAgZGVmIGxleChzdHIpCiAgICAgICAgIHdoZW4gL1xBXCMoW15cbl0qKS8K
ICAgICAgICAgICAgICMgY29tbWVudCwgaWdub3JlCiAgICAgICAgIHdoZW4gL1xBXG4vCi0gICAg
ICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KGxpbmVOdW1iZXIsICQmKQorICAgICAgICAgICAg
cmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhmaWxlTmFtZSwgbGluZU51bWJlciks
ICQmKQogICAgICAgICAgICAgbGluZU51bWJlciArPSAxCiAgICAgICAgIHdoZW4gL1xBW2EtekEt
Wl0oW2EtekEtWjAtOV9dKikvCi0gICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KGxpbmVO
dW1iZXIsICQmKQorICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5l
dyhmaWxlTmFtZSwgbGluZU51bWJlciksICQmKQogICAgICAgICB3aGVuIC9cQVwuKFthLXpBLVow
LTlfXSopLwotICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhsaW5lTnVtYmVyLCAkJikK
KyAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5hbWUs
IGxpbmVOdW1iZXIpLCAkJikKICAgICAgICAgd2hlbiAvXEFfKFthLXpBLVowLTlfXSopLwotICAg
ICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhsaW5lTnVtYmVyLCAkJikKKyAgICAgICAgICAg
IHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIp
LCAkJikKICAgICAgICAgd2hlbiAvXEEoWyBcdF0rKS8KICAgICAgICAgICAgICMgd2hpdGVzcGFj
ZSwgaWdub3JlCiAgICAgICAgIHdoZW4gL1xBMHgoWzAtOWEtZkEtRl0rKS8KLSAgICAgICAgICAg
IHJlc3VsdCA8PCBUb2tlbi5uZXcobGluZU51bWJlciwgJCYuaGV4LnRvX3MpCisgICAgICAgICAg
ICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVy
KSwgJCYuaGV4LnRvX3MpCiAgICAgICAgIHdoZW4gL1xBMChbMC03XSspLwotICAgICAgICAgICAg
cmVzdWx0IDw8IFRva2VuLm5ldyhsaW5lTnVtYmVyLCAkJi5vY3QudG9fcykKKyAgICAgICAgICAg
IHJlc3VsdCA8PCBUb2tlbi5uZXcoQ29kZU9yaWdpbi5uZXcoZmlsZU5hbWUsIGxpbmVOdW1iZXIp
LCAkJi5vY3QudG9fcykKICAgICAgICAgd2hlbiAvXEEoWzAtOV0rKS8KLSAgICAgICAgICAgIHJl
c3VsdCA8PCBUb2tlbi5uZXcobGluZU51bWJlciwgJCYpCisgICAgICAgICAgICByZXN1bHQgPDwg
VG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKSwgJCYpCiAgICAg
ICAgIHdoZW4gL1xBOjovCi0gICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KGxpbmVOdW1i
ZXIsICQmKQorICAgICAgICAgICAgcmVzdWx0IDw8IFRva2VuLm5ldyhDb2RlT3JpZ2luLm5ldyhm
aWxlTmFtZSwgbGluZU51bWJlciksICQmKQogICAgICAgICB3aGVuIC9cQVs6LFwoXClcW1xdPVwr
XC0qXS8KLSAgICAgICAgICAgIHJlc3VsdCA8PCBUb2tlbi5uZXcobGluZU51bWJlciwgJCYpCisg
ICAgICAgICAgICByZXN1bHQgPDwgVG9rZW4ubmV3KENvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBs
aW5lTnVtYmVyKSwgJCYpCiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHJhaXNlICJMZXhlciBl
cnJvciBhdCBsaW5lIG51bWJlciAje2xpbmVOdW1iZXJ9LCB1bmV4cGVjdGVkIHNlcXVlbmNlICN7
c3RyWzAuLjIwXS5pbnNwZWN0fSIKKyAgICAgICAgICAgIHJhaXNlICJMZXhlciBlcnJvciBhdCAj
e0NvZGVPcmlnaW4ubmV3KGZpbGVOYW1lLCBsaW5lTnVtYmVyKS50b19zfSwgdW5leHBlY3RlZCBz
ZXF1ZW5jZSAje3N0clswLi4yMF0uaW5zcGVjdH0iCiAgICAgICAgIGVuZAogICAgICAgICBzdHIg
PSAkfi5wb3N0X21hdGNoCiAgICAgZW5kCkBAIC0xMTEsNyArMTI3LDcgQEAgZGVmIGlzSW5zdHJ1
Y3Rpb24odG9rZW4pCiBlbmQKIAogZGVmIGlzS2V5d29yZCh0b2tlbikKLSAgICB0b2tlbiA9fiAv
XEEoKHRydWUpfChmYWxzZSl8KGlmKXwodGhlbil8KGVsc2UpfChlbHNpZil8KGVuZCl8KGFuZCl8
KG9yKXwobm90KXwobWFjcm8pfChjb25zdCl8KHNpemVvZil8KGVycm9yKSlcWi8gb3IKKyAgICB0
b2tlbiA9fiAvXEEoKHRydWUpfChmYWxzZSl8KGlmKXwodGhlbil8KGVsc2UpfChlbHNpZil8KGVu
ZCl8KGFuZCl8KG9yKXwobm90KXwobWFjcm8pfChjb25zdCl8KHNpemVvZil8KGVycm9yKXwoaW5j
bHVkZSkpXFovIG9yCiAgICAgICAgIHRva2VuID1+IFJFR0lTVEVSX1BBVFRFUk4gb3IKICAgICAg
ICAgdG9rZW4gPX4gSU5TVFJVQ1RJT05fUEFUVEVSTgogZW5kCkBAIC0xNDIsOCArMTU4LDggQEAg
ZW5kCiAjCiAKIGNsYXNzIFBhcnNlcgotICAgIGRlZiBpbml0aWFsaXplKHRva2VucykKLSAgICAg
ICAgQHRva2VucyA9IHRva2VucworICAgIGRlZiBpbml0aWFsaXplKGRhdGEsIGZpbGVOYW1lKQor
ICAgICAgICBAdG9rZW5zID0gbGV4KGRhdGEsIGZpbGVOYW1lKQogICAgICAgICBAaWR4ID0gMAog
ICAgIGVuZAogICAgIApAQCAtNTcxLDYgKzU4NywxNCBAQCBjbGFzcyBQYXJzZXIKICAgICAgICAg
ICAgICAgICAgICAgbGlzdCA8PCBMb2NhbExhYmVsLmZvck5hbWUoY29kZU9yaWdpbiwgbmFtZSkK
ICAgICAgICAgICAgICAgICBlbmQKICAgICAgICAgICAgICAgICBAaWR4ICs9IDEKKyAgICAgICAg
ICAgIGVsc2lmIEB0b2tlbnNbQGlkeF0gPT0gImluY2x1ZGUiCisgICAgICAgICAgICAgICAgQGlk
eCArPSAxCisgICAgICAgICAgICAgICAgcGFyc2VFcnJvciB1bmxlc3MgaXNJZGVudGlmaWVyKEB0
b2tlbnNbQGlkeF0pCisgICAgICAgICAgICAgICAgbW9kdWxlTmFtZSA9IEB0b2tlbnNbQGlkeF0u
c3RyaW5nCisgICAgICAgICAgICAgICAgZmlsZU5hbWUgPSBAdG9rZW5zW0BpZHhdLmNvZGVPcmln
aW4uZmlsZU5hbWUuZGlybmFtZSArIChtb2R1bGVOYW1lICsgIi5hc20iKQorICAgICAgICAgICAg
ICAgIEBpZHggKz0gMQorICAgICAgICAgICAgICAgICRzdGRlcnIucHV0cyAib2ZmbGluZWFzbTog
SW5jbHVkaW5nIGZpbGUgI3tmaWxlTmFtZX0iCisgICAgICAgICAgICAgICAgbGlzdCA8PCBwYXJz
ZShmaWxlTmFtZSkKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBwYXJzZUVycm9y
ICJFeHBlY3RpbmcgdGVybWluYWwgI3tmaW5hbH0gI3tjb21tZW50fSIKICAgICAgICAgICAgIGVu
ZApAQCAtNTc5LDggKzYwMywxNiBAQCBjbGFzcyBQYXJzZXIKICAgICBlbmQKIGVuZAogCi1kZWYg
cGFyc2UodG9rZW5zKQotICAgIHBhcnNlciA9IFBhcnNlci5uZXcodG9rZW5zKQorZGVmIHBhcnNl
RGF0YShkYXRhLCBmaWxlTmFtZSkKKyAgICBwYXJzZXIgPSBQYXJzZXIubmV3KGRhdGEsIGZpbGVO
YW1lKQogICAgIHBhcnNlci5wYXJzZVNlcXVlbmNlKG5pbCwgIiIpCiBlbmQKIAorZGVmIHBhcnNl
KGZpbGVOYW1lKQorICAgIHBhcnNlRGF0YShJTzo6cmVhZChmaWxlTmFtZSksIGZpbGVOYW1lKQor
ZW5kCisKK2RlZiBwYXJzZUhhc2goZmlsZU5hbWUpCisgICAgZGlySGFzaChQYXRobmFtZS5uZXco
ZmlsZU5hbWUpLmRpcm5hbWUsIC9cLmFzbSQvKQorZW5kCisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9vZmZsaW5lYXNtL3NlbGZfaGFzaC5yYgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvb2ZmbGluZWFzbS9zZWxmX2hhc2gucmIJKHJldmlzaW9uIDEwODkwNSkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9vZmZsaW5lYXNtL3NlbGZfaGFzaC5yYgkod29ya2luZyBj
b3B5KQpAQCAtMjUsMjIgKzI1LDMzIEBAIHJlcXVpcmUgImRpZ2VzdC9zaGExIgogcmVxdWlyZSAi
cGF0aG5hbWUiCiAKICMKLSMgc2VsZkhhc2ggLT4gU0hBMSBoZXhkaWdlc3QKKyMgZGlySGFzaChk
aXJlY3RvcnksIHJlZ2V4cCkgLT4gU0hBMSBoZXhkaWdlc3QKICMKLSMgUmV0dXJucyBhIGhhc2gg
b2YgdGhlIG9mZmxpbmVhc20gc291cmNlIGNvZGUuIFRoaXMgYWxsb3dzIGRlcGVuZGVuY3kKLSMg
dHJhY2tpbmcgZm9yIG5vdCBqdXN0IGNoYW5nZXMgaW4gaW5wdXQsIGJ1dCBhbHNvIGNoYW5nZXMg
aW4gdGhlIGFzc2VtYmxlcgotIyBpdHNlbGYuCisjIFJldHVybnMgYSBoYXNoIG9mIGFsbCBmaWxl
cyBpbiB0aGUgZ2l2ZW4gZGlyZWN0b3J5IHRoYXQgZml0IHRoZSBnaXZlbgorIyBwYXR0ZXJuLgog
IwogCi1kZWYgc2VsZkhhc2gKK2RlZiBkaXJIYXNoKGRpcmVjdG9yeSwgcmVnZXhwKQorICAgIGRp
cmVjdG9yeSA9IFBhdGhuYW1lLm5ldyhkaXJlY3RvcnkpCiAgICAgY29udGVudHMgPSAiIgotICAg
IG15UGF0aCA9IFBhdGhuYW1lLm5ldyhfX0ZJTEVfXykuZGlybmFtZQotICAgIERpci5mb3JlYWNo
KG15UGF0aCkgeworICAgIERpci5mb3JlYWNoKGRpcmVjdG9yeSkgewogICAgICAgICB8IGVudHJ5
IHwKLSAgICAgICAgaWYgZW50cnkgPX4gL1wucmIkLwotICAgICAgICAgICAgY29udGVudHMgKz0g
SU86OnJlYWQobXlQYXRoICsgZW50cnkpCisgICAgICAgIGlmIGVudHJ5ID1+IHJlZ2V4cAorICAg
ICAgICAgICAgY29udGVudHMgKz0gSU86OnJlYWQoZGlyZWN0b3J5ICsgZW50cnkpCiAgICAgICAg
IGVuZAogICAgIH0KICAgICByZXR1cm4gRGlnZXN0OjpTSEExLmhleGRpZ2VzdChjb250ZW50cykK
IGVuZAogCisjCisjIHNlbGZIYXNoIC0+IFNIQTEgaGV4ZGlnZXN0CisjCisjIFJldHVybnMgYSBo
YXNoIG9mIHRoZSBvZmZsaW5lYXNtIHNvdXJjZSBjb2RlLiBUaGlzIGFsbG93cyBkZXBlbmRlbmN5
CisjIHRyYWNraW5nIGZvciBub3QganVzdCBjaGFuZ2VzIGluIGlucHV0LCBidXQgYWxzbyBjaGFu
Z2VzIGluIHRoZSBhc3NlbWJsZXIKKyMgaXRzZWxmLgorIworCitkZWYgc2VsZkhhc2gKKyAgICBk
aXJIYXNoKFBhdGhuYW1lLm5ldyhfX0ZJTEVfXykuZGlybmFtZSwgL1wucmIkLykKK2VuZAorCg==
</data>
<flag name="review"
          id="131395"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>