<?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>54188</bug_id>
          
          <creation_ts>2011-02-10 02:42:14 -0800</creation_ts>
          <short_desc>Remove PCRE source from trunk</short_desc>
          <delta_ts>2011-02-10 07:49:07 -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="Peter Varga">pvarga</reporter>
          <assigned_to name="Peter Varga">pvarga</assigned_to>
          <cc>barraclough</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>zherczeg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>348902</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-02-10 02:42:14 -0800</bug_when>
    <thetext>The PCRE library isn&apos;t used anymore. The remaining sources and entries in project files should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348908</commentid>
    <comment_count>1</comment_count>
      <attachid>81943</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-02-10 02:58:06 -0800</bug_when>
    <thetext>Created attachment 81943
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348927</commentid>
    <comment_count>2</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-02-10 04:04:20 -0800</bug_when>
    <thetext>Attachment 81943 did not build on gtk:
Build output: http://queues.webkit.org/results/7886273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348929</commentid>
    <comment_count>3</comment_count>
      <attachid>81943</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-10 04:08:54 -0800</bug_when>
    <thetext>Comment on attachment 81943
proposed patch

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

&gt; Source/JavaScriptCore/GNUmakefile.am:-52
&gt;  	Source/JavaScriptCore/runtime/StringPrototype.lut.h \
&gt; -	Source/JavaScriptCore/pcre/chartables.c

Please remove the last backslash:
Source/JavaScriptCore/runtime/StringPrototype.lut.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348933</commentid>
    <comment_count>4</comment_count>
      <attachid>81949</attachid>
    <who name="Peter Varga">pvarga</who>
    <bug_when>2011-02-10 04:17:26 -0800</bug_when>
    <thetext>Created attachment 81949
proposed patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348955</commentid>
    <comment_count>5</comment_count>
      <attachid>81949</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-10 04:47:40 -0800</bug_when>
    <thetext>Comment on attachment 81949
proposed patch v2

Great work Peter! We don&apos;t need pcre anymore, r=me.

Unfortunately EWS bots can&apos;t apply vcproj changes because of different line breaks. :(
Please make sure you don&apos;t break any build, and watch the buildbots. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349060</commentid>
    <comment_count>6</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-02-10 07:45:29 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/78211</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81943</attachid>
            <date>2011-02-10 02:58:06 -0800</date>
            <delta_ts>2011-02-10 04:17:26 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>remove-pcre.patch</filename>
            <type>text/plain</type>
            <size>409703</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXggY2I2ODFkZC4uZjNkNDdmNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FuZHJvaWQubWsKQEAgLTYxLDEyICs2MSw2IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBc
CiAJcGFyc2VyL1BhcnNlci5jcHAgXAogCXBhcnNlci9QYXJzZXJBcmVuYS5jcHAgXAogCVwKLQlw
Y3JlL3BjcmVfY29tcGlsZS5jcHAgXAotCXBjcmUvcGNyZV9leGVjLmNwcCBcCi0JcGNyZS9wY3Jl
X3RhYmxlcy5jcHAgXAotCXBjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKLQlwY3JlL3Bj
cmVfeGNsYXNzLmNwcCBcCi0JXAogCXByb2ZpbGVyL1Byb2ZpbGUuY3BwIFwKIAlwcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcCBcCiAJcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwIFwKQEAgLTIy
NiwxMSArMjIwLDQgQEAgJChMRVhFUl9IRUFERVIpOiAkKExPQ0FMX1BBVEgpL2NyZWF0ZV9oYXNo
X3RhYmxlCiAkKExFWEVSX0hFQURFUik6ICQoaW50ZXJtZWRpYXRlcykvJS5sdXQuaCA6ICQoTE9D
QUxfUEFUSCkvcGFyc2VyL0tleXdvcmRzLnRhYmxlCiAJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNv
dXJjZSkKIAotQ0hBUlRBQkxFUyA6PSAkKGludGVybWVkaWF0ZXMpL2NoYXJ0YWJsZXMuYwotJChD
SEFSVEFCTEVTKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKLSQoQ0hBUlRBQkxFUyk6
IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBwZXJsICQoUFJJVkFURV9QQVRIKS9wY3JlL2RmdGFibGVz
ICRACi0kKENIQVJUQUJMRVMpOiAkKExPQ0FMX1BBVEgpL3BjcmUvZGZ0YWJsZXMKLSQoQ0hBUlRB
QkxFUyk6ICQoTE9DQUxfUEFUSCkvcGNyZS9wY3JlX2ludGVybmFsLmgKLQkkKHRyYW5zZm9ybS1n
ZW5lcmF0ZWQtc291cmNlKQotCi1MT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEpTQ19PQkpF
Q1RTKSAkKExFWEVSX0hFQURFUikgJChDSEFSVEFCTEVTKQorTE9DQUxfR0VORVJBVEVEX1NPVVJD
RVMgKz0gJChKU0NfT0JKRUNUUykgJChMRVhFUl9IRUFERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggZGMwNzgyOC4uOTc3ZDM4OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMjYsMTIgKzI2LDYgQEAKICMgd3RmIHNvdXJj
ZSBmaWxlcwogCiBMT0NBTF9TUkNfRklMRVMgOj0gXAotCXBjcmUvcGNyZV9jb21waWxlLmNwcCBc
Ci0JcGNyZS9wY3JlX2V4ZWMuY3BwIFwKLQlwY3JlL3BjcmVfdGFibGVzLmNwcCBcCi0JcGNyZS9w
Y3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgXAotCXBjcmUvcGNyZV94Y2xhc3MuY3BwIFwKLQlcCiAJ
d3RmL0Fzc2VydGlvbnMuY3BwIFwKIAl3dGYvQnl0ZUFycmF5LmNwcCBcCiAJd3RmL0NyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCkBAIC02NiwxNSArNjAsMyBAQCBMT0NBTF9TUkNf
RklMRVMgOj0gXAogCXd0Zi91bmljb2RlL1VURjguY3BwIFwKIAlcCiAJd3RmL3VuaWNvZGUvaWN1
L0NvbGxhdG9ySUNVLmNwcAotCi1DSEFSVEFCTEVTIDo9ICQoaW50ZXJtZWRpYXRlcykvY2hhcnRh
Ymxlcy5jCi0kKENIQVJUQUJMRVMpOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9QQVRIKQotJChD
SEFSVEFCTEVTKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChQUklWQVRFX1BBVEgpL3Bj
cmUvZGZ0YWJsZXMgJEAKLSQoQ0hBUlRBQkxFUyk6ICQoTE9DQUxfUEFUSCkvcGNyZS9kZnRhYmxl
cwotJChDSEFSVEFCTEVTKTogJChMT0NBTF9QQVRIKS9wY3JlL3BjcmVfaW50ZXJuYWwuaAotCSQo
dHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCi0KLSQoaW50ZXJtZWRpYXRlcykvcGNyZS9wY3Jl
X3RhYmxlcy5vIDogJChDSEFSVEFCTEVTKQotCi0jIFdlIGRvIG5vdCBhZGQgJChDSEFSVEFCTEVT
KSB0byBMT0NBTF9HRU5FUkFURURfU09VUkNFUyBiZWNhdXNlIHRoZSBjaGFydGFibGVzLmMgZmls
ZQotIyBpcyBleHBsaWNpdGx5ICNpbmNsdWRlZCBpbiBwY3JlX3RhYmxlcy5jcHAuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTY4NWVjZi4uZjE4ODI2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAsNyArMTAsNiBAQCBTRVQoSmF2YVNjcmlw
dENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50
ZXJwcmV0ZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCiAgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9wYXJzZXIiCi0gICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9wY3JlIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJvZmlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9ydW50aW1lIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0veWFyciIKQEAgLTY5
LDEyICs2OCw2IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcGFyc2VyL1BhcnNl
ckFyZW5hLmNwcAogICAgIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAogCi0gICAgcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwCi0gICAgcGNyZS9wY3JlX2V4ZWMuY3BwCi0gICAgcGNyZS9wY3Jl
X3RhYmxlcy5jcHAKLSAgICBwY3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcAotICAgIHBjcmUv
cGNyZV94Y2xhc3MuY3BwCi0KICAgICBwcm9maWxlci9Qcm9maWxlLmNwcAogICAgIHByb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuY3BwCiAgICAgcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCkBAIC0y
MTEsMTUgKzIwNCw2IEBAIEVOREZPUkVBQ0ggKCkKIEdFTkVSQVRFX0hBU0hfTFVUKCR7SkFWQVND
UklQVENPUkVfRElSfS9wYXJzZXIvS2V5d29yZHMudGFibGUgJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9MZXhlci5sdXQuaCBNQUlOX0RFUEVOREVOQ1kpCiBMSVNUKEFQUEVORCBKYXZhU2NyaXB0Q29y
ZV9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTGV4ZXIubHV0LmgpCiAKLSMgR0VORVJB
VE9SOiAiY2hhcnRhYmxlcy5jIjogY29tcGlsZSBhbmQgZXhlY3V0ZSB0aGUgY2hhcnRhYmxlcyBn
ZW5lcmF0b3IgKGFuZCBhZGQgaXQgdG8gc291cmNlcykKLUFERF9DVVNUT01fQ09NTUFORCgKLSAg
ICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9jaGFydGFibGVzLmMKLSAgICBNQUlOX0RF
UEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BjcmUvZGZ0YWJsZXMKLSAgICBDT01NQU5E
ICR7UEVSTF9FWEVDVVRBQkxFfSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGNyZS9kZnRhYmxlcyAt
LXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1J9IiAke0RFUklWRURf
U09VUkNFU19ESVJ9L2NoYXJ0YWJsZXMuYwotICAgIFZFUkJBVElNKQotQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BjcmUvcGNyZV90YWJsZXMuY3BwICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vY2hhcnRhYmxlcy5jKQotCi0KICNHRU5FUkFUT1I6ICJSZWdFeHBK
aXRUYWJsZXMuaCI6IHRhYmxlcyB1c2VkIGJ5IFlhcnIKIEFERF9DVVNUT01fQ09NTUFORCgKICAg
ICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9SZWdFeHBKaXRUYWJsZXMuaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxZjY4NGQ0Li4wZmY5Y2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjcsNyAr
MjcsNiBAQAogVlBBVEggPSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkgXAogICAgICQoSmF2YVNj
cmlwdENvcmUpL3BhcnNlciBcCi0gICAgJChKYXZhU2NyaXB0Q29yZSkvcGNyZSBcCiAgICAgJChK
YXZhU2NyaXB0Q29yZSkvZG9jcyBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvcnVudGltZSBcCiAg
ICAgJChKYXZhU2NyaXB0Q29yZSkvaW50ZXJwcmV0ZXIgXApAQCAtNDksNyArNDgsNiBAQCBhbGwg
OiBcCiAgICAgUmVnRXhwSml0VGFibGVzLmggXAogICAgIFJlZ0V4cE9iamVjdC5sdXQuaCBcCiAg
ICAgU3RyaW5nUHJvdG90eXBlLmx1dC5oIFwKLSAgICBjaGFydGFibGVzLmMgXAogICAgIGRvY3Mv
Ynl0ZWNvZGUuaHRtbCBcCiAjCiAKQEAgLTYwLDExICs1OCw2IEBAIGFsbCA6IFwKIExleGVyLmx1
dC5oOiBjcmVhdGVfaGFzaF90YWJsZSBLZXl3b3Jkcy50YWJsZQogCSReID4gJEAKIAotIyBjaGFy
YWN0ZXIgdGFibGVzIGZvciBQQ1JFCi0KLWNoYXJ0YWJsZXMuYyA6IGRmdGFibGVzCi0JJF4gJEAK
LQogZG9jcy9ieXRlY29kZS5odG1sOiBtYWtlLWJ5dGVjb2RlLWRvY3MucGwgSW50ZXJwcmV0ZXIu
Y3BwIAogCXBlcmwgJF4gJEAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rl
cml2ZWRTb3VyY2VzLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5w
cm8KaW5kZXggNGQ3MjRiZS4uZWFjNGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0Rlcml2ZWRTb3VyY2VzLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMucHJvCkBAIC04MywxNSArODMsNiBAQCBtc3Zjc3R1YnMuaW5wdXQgPSBKSVRfU1RV
Ql9GSUxFUwogbXN2Y3N0dWJzLkNPTkZJRyArPSBub19saW5rCiBhZGRFeHRyYUNvbXBpbGVyKG1z
dmNzdHVicykKIAotIyBHRU5FUkFUT1I6ICJjaGFydGFibGVzLmMiOiBjb21waWxlIGFuZCBleGVj
dXRlIHRoZSBjaGFydGFibGVzIGdlbmVyYXRvciAoYW5kIGFkZCBpdCB0byBzb3VyY2VzKQotd2lu
MzItbXN2Yyp8d2luY2UqOiBQUkVQUk9DRVNTT1IgPSAiLS1wcmVwcm9jZXNzb3I9XCIkJFFNQUtF
X0NDIC9FXCIiCi1jdGdlbi5vdXRwdXQgPSAkJEpTQ19HRU5FUkFURURfU09VUkNFU19ESVIvY2hh
cnRhYmxlcy5jCi1jdGdlbi53a1NjcmlwdCA9ICQkUFdEL3BjcmUvZGZ0YWJsZXMKLWN0Z2VuLmlu
cHV0ID0gY3RnZW4ud2tTY3JpcHQKLWN0Z2VuLmNvbW1hbmRzID0gcGVybCAkJGN0Z2VuLndrU2Ny
aXB0ICR7UU1BS0VfRklMRV9PVVR9ICQkUFJFUFJPQ0VTU09SCi1jdGdlbi5jbGVhbiA9ICR7UU1B
S0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX0pTQ19HRU5FUkFURURfU09VUkNFU19ESVJ9JHtRTUFL
RV9GSUxFX0JBU0V9Ci1hZGRFeHRyYUNvbXBpbGVyKGN0Z2VuKQotCiAjR0VORVJBVE9SOiAiUmVn
RXhwSml0VGFibGVzLmgiOiB0YWJsZXMgdXNlZCBieSBZYXJyCiByZXRnZW4ub3V0cHV0ID0gJCRK
U0NfR0VORVJBVEVEX1NPVVJDRVNfRElSL1JlZ0V4cEppdFRhYmxlcy5oCiByZXRnZW4ud2tTY3Jp
cHQgPSAkJFBXRC9jcmVhdGVfcmVnZXhfdGFibGVzIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDY5NjI1ODQuLmI0MDAwZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTExLDcgKzExLDYgQEAgamF2YXNjcmlwdGNvcmVfY3BwZmxhZ3MgKz0gXAog
CS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQgXAogCS1JJChzcmNkaXIpL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIgXAotCS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlIFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIgXAogCS1JJChzcmNk
aXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lIFwKIAktSSQoc3JjZGlyKS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmIFwKQEAgLTIzLDcgKzIyLDYgQEAgamF2YXNjcmlwdGNvcmVfY3Bw
ZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS95YXJyIFwKIAkt
SSQodG9wX2J1aWxkZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUgXAogCS1JJCh0b3BfYnVpbGRk
aXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIgXAotCS1JJCh0b3BfYnVpbGRkaXIpL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlIFwKIAktSSQodG9wX2J1aWxkZGlyKS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZQogCiBqYXZhc2NyaXB0Y29yZV9oX2FwaSArPSBcCkBAIC00OSw3
ICs0Nyw2IEBAIGphdmFzY3JpcHRjb3JlX2J1aWx0X25vc291cmNlcyArPSBcCiAJU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IubHV0LmggXAogCVNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVjdC5sdXQuaCBcCiAJU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBlLmx1dC5oIFwKLQlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGNyZS9jaGFydGFibGVzLmMKIAogamF2YXNjcmlwdGNvcmVfc291cmNlcyArPSBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0LmggXApAQCAtMjA2LDE0ICsyMDMs
NiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3Bh
cnNlci9Tb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGFyc2VyL1N5bnRheENoZWNrZXIuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNy
ZV9jb21waWxlLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNw
cCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5oIFwKLQlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfdGFibGVzLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91
Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3hj
bGFzcy5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3VjcGludGVybmFsLmggXAog
CVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxsSWRlbnRpZmllci5oIFwKIAlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5jcHAgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNwcCBcCkBAIC02MjIsOSArNjExLDYg
QEAgU291cmNlL0phdmFTY3JpcHRDb3JlLyUubHV0Lmg6ICQoc3JjZGlyKS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9SZWdFeHBK
aXRUYWJsZXMuaDogJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9jcmVhdGVfcmVnZXhf
dGFibGVzCiAJJChBTV9WX0dFTikkKFBZVEhPTikgJF4gPiAkQAogCi1Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGNyZS9jaGFydGFibGVzLmM6ICQoc3JjZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cGNyZS9kZnRhYmxlcwotCSQoQU1fVl9HRU4pJChQRVJMKSAkXiAkQAotCiBqc2M6ICQoamF2YXNj
cmlwdGNvcmVfYnVpbHRfbm9zb3VyY2VzKSBQcm9ncmFtcy9qc2MtQFdFQktJVEdUS19BUElfTUFK
T1JfVkVSU0lPTkAkKEVYRUVYVCk7CiAKIGJpbl9QUk9HUkFNUyArPSBcCkBAIC02OTksMTAgKzY4
NSw2IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pY3UvTElDRU5T
RSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS9SRUFETUUgXAogCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wYXJzZXIvS2V5d29yZHMudGFibGUgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL0FVVEhPUlMgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL0NPUFlJTkcgXAotCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGNyZS91Y3B0YWJsZS5jcHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9USEFOS1MKIAog
IyBDbGVhbiBydWxlcyBmb3IgSmF2YVNjcmlwdENvcmUKQEAgLTcxNSw3ICs2OTcsNiBAQCBDTEVB
TkZJTEVTICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1
Y3Rvci5sdXQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwT2JqZWN0
Lmx1dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUu
bHV0LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL2NoYXJ0YWJsZXMuYyBcCiAJUHJv
Z3JhbXMvanNjIFwKIAlQcm9ncmFtcy9qc2MtQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAg
XAogCVByb2dyYW1zL21pbmlkb20KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5neXBpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
Lmd5cGkKaW5kZXggY2ZkYmZhMS4uM2Q1NDdkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmd5cGkKQEAgLTE0OCwxNSArMTQ4LDYgQEAKICAgICAgICAgICAgICdwYXJz
ZXIvU291cmNlUHJvdmlkZXJDYWNoZS5oJywKICAgICAgICAgICAgICdwYXJzZXIvU291cmNlUHJv
dmlkZXJDYWNoZUl0ZW0uaCcsCiAgICAgICAgICAgICAncGFyc2VyL1N5bnRheENoZWNrZXIuaCcs
Ci0gICAgICAgICAgICAncGNyZS9wY3JlLmgnLAotICAgICAgICAgICAgJ3BjcmUvcGNyZV9jb21w
aWxlLmNwcCcsCi0gICAgICAgICAgICAncGNyZS9wY3JlX2V4ZWMuY3BwJywKLSAgICAgICAgICAg
ICdwY3JlL3BjcmVfaW50ZXJuYWwuaCcsCi0gICAgICAgICAgICAncGNyZS9wY3JlX3RhYmxlcy5j
cHAnLAotICAgICAgICAgICAgJ3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwJywKLSAgICAg
ICAgICAgICdwY3JlL3BjcmVfeGNsYXNzLmNwcCcsCi0gICAgICAgICAgICAncGNyZS91Y3BpbnRl
cm5hbC5oJywKLSAgICAgICAgICAgICdwY3JlL3VjcHRhYmxlLmNwcCcsCiAgICAgICAgICAgICAn
cHJvZmlsZXIvQ2FsbElkZW50aWZpZXIuaCcsCiAgICAgICAgICAgICAncHJvZmlsZXIvUHJvZmls
ZS5jcHAnLAogICAgICAgICAgICAgJ3Byb2ZpbGVyL1Byb2ZpbGUuaCcsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUub3JkZXIKaW5kZXggM2NiM2QxZC4uOWU0MDA0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgpAQCAtMTg1LDExICsx
ODUsOSBAQCBfX1pOM1dURjMxY2xlYXJQdGhyZWFkSGFuZGxlRm9ySWRlbnRpZmllckVqCiBfX1pO
M1dURjEyZGV0YWNoVGhyZWFkRWoKIF9fWk4zV1RGTDI2cHRocmVhZEhhbmRsZUZvcklkZW50aWZp
ZXJFagogX19aTjdXZWJDb3JlNlN0cmluZ0MxRVBLdGoKLV9fWjE1anNSZWdFeHBDb21waWxlUEt0
aTI0SlNSZWdFeHBJZ25vcmVDYXNlT3B0aW9uMjNKU1JlZ0V4cE11bHRpbGluZU9wdGlvblBqUFBL
YwogX19aTDMwY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3RoUEt0aTI0SlNSZWdFeHBJZ25v
cmVDYXNlT3B0aW9uUjExQ29tcGlsZURhdGFSOUVycm9yQ29kZQogX19aTDExY2hlY2tFc2NhcGVQ
UEt0UzBfUDlFcnJvckNvZGVpYgogX19aTDEzY29tcGlsZUJyYW5jaGlQaVBQaFBQS3RTM19QOUVy
cm9yQ29kZVNfU19SMTFDb21waWxlRGF0YQotX19aMTVqc1JlZ0V4cEV4ZWN1dGVQSzhKU1JlZ0V4
cFBLdGlpUGlpCiBfX1pMNW1hdGNoUEt0UEtoaVI5TWF0Y2hEYXRhCiBfX1pON1dlYkNvcmU2U3Ry
aW5nNmZvcm1hdEVQS2N6CiBfX1pOSzdXZWJDb3JlNlN0cmluZzE5Y2hhcmFjdGVyU3RhcnRpbmdB
dEVqCkBAIC0xNTM0LDcgKzE1MzIsNiBAQCBfX1pOM1dURjZWZWN0b3JJdExtMEVFNmFwcGVuZEl0
RUV2UEtUX20KIF9jdGlfb3BfdG9fcHJpbWl0aXZlCiBfX1pOM0pTQzE1Y29uc3RydWN0TnVtYmVy
RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRQogX19aTkszSlNDMTJOdW1iZXJPYmplY3Q5Y2xh
c3NJbmZvRXYKLV9fWjEyanNSZWdFeHBGcmVlUDhKU1JlZ0V4cAogX19aTjNKU0MxM0Jvb2xlYW5P
YmplY3REMUV2CiBfX1pOM0pTQ0wxOHN0cmluZ0Zyb21DaGFyQ29kZUVQTlNfOUV4ZWNTdGF0ZUVQ
TlNfOEpTT2JqZWN0RU5TXzdKU1ZhbHVlRVJLTlNfN0FyZ0xpc3RFCiBfX1pOM0pTQzEwbWFrZVN0
cmluZ0lQS2NOU183VVN0cmluZ0VTMl9FRVMzX1RfVDBfVDFfCkBAIC0xNTQ1LDcgKzE1NDIsNiBA
QCBfX1pOM0pTQzhKU09iamVjdDE4Z2V0UHJpbWl0aXZlTnVtYmVyRVBOU185RXhlY1N0YXRlRVJk
Uk5TXzdKU1ZhbHVlRQogX19aTjNKU0NMMjRkYXRlUHJvdG9GdW5jR2V0RnVsbFllYXJFUE5TXzlF
eGVjU3RhdGVFUE5TXzhKU09iamVjdEVOU183SlNWYWx1ZUVSS05TXzdBcmdMaXN0RQogX19aTjNK
U0MxMlJlZ0V4cE9iamVjdDNwdXRFUE5TXzlFeGVjU3RhdGVFUktOU18xMElkZW50aWZpZXJFTlNf
N0pTVmFsdWVFUk5TXzE1UHV0UHJvcGVydHlTbG90RQogX19aTjNKU0NMMjRzZXRSZWdFeHBPYmpl
Y3RMYXN0SW5kZXhFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEVOU183SlNWYWx1ZUUKLV9f
WjE1anNjX3BjcmVfeGNsYXNzaVBLaAogX19aTjNKU0NMMjhyZWdFeHBDb25zdHJ1Y3RvckxlZnRD
b250ZXh0RVBOU185RXhlY1N0YXRlRU5TXzdKU1ZhbHVlRVJLTlNfMTBJZGVudGlmaWVyRQogX19a
TkszSlNDMTdSZWdFeHBDb25zdHJ1Y3RvcjE0Z2V0TGVmdENvbnRleHRFUE5TXzlFeGVjU3RhdGVF
CiBfY3RpX3RvX29iamVjdApAQCAtMTc5MCw3ICsxNzg2LDYgQEAgX19aTjNKU0NMMjhkYXRlUHJv
dG9GdW5jR2V0TWlsbGlTZWNvbmRzRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RFTlNfN0pT
VmFsdWUKIF9fWk4zSlNDMTBtYWtlU3RyaW5nSU5TXzdVU3RyaW5nRVMxX0VFUzFfVF9UMF8KIF9f
Wk4zSlNDMTN0cnlNYWtlU3RyaW5nSU5TXzdVU3RyaW5nRVMxX0VFTjNXVEYxMFBhc3NSZWZQdHJJ
TjdXZWJDb3JlMTBTdHJpbmdJbXBsRUVFVF9UMF8KIF9fWk4zSlNDMjNNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjhicmFuY2gxNkVOUzBfOUNvbmRpdGlvbkVOU18yMkFic3RyYWN0TWFjcm9Bc3NlbWJs
ZXJJTlNfMTJYODZBc3NlbWJsZXJFRTlCYXNlSW5kZXhFTlM0XzVJbW0zMkUKLV9fWjIyanNjX3Bj
cmVfdWNwX290aGVyY2FzZWoKIF9fWk4zSlNDOEpTU3RyaW5nMThnZXRPd25Qcm9wZXJ0eVNsb3RF
UE5TXzlFeGVjU3RhdGVFalJOU18xMlByb3BlcnR5U2xvdEUKIF9fWk4zSlNDTDI0ZGF0ZVByb3Rv
RnVuY1NldFVUQ0hvdXJzRVBOU185RXhlY1N0YXRlRVBOU184SlNPYmplY3RFTlNfN0pTVmFsdWVF
UktOU183QXJnTGlzdEUKIF9fWk4zSlNDTDI2ZGF0ZVByb3RvRnVuY1NldFVUQ01pbnV0ZXNFUE5T
XzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEVOU183SlNWYWx1ZUVSS05TXzdBcmdMaXN0RQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaSBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkKaW5kZXggMDY2MTNhMS4uZmYwYmUz
MSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpCkBAIC0zMSw3ICsz
MSw2IEBAIEpBVkFTQ1JJUFRDT1JFX0lOQ0xVREVQQVRIID0gXAogICAgICQkUFdEL2ludGVycHJl
dGVyIFwKICAgICAkJFBXRC9qaXQgXAogICAgICQkUFdEL3BhcnNlciBcCi0gICAgJCRQV0QvcGNy
ZSBcCiAgICAgJCRQV0QvcHJvZmlsZXIgXAogICAgICQkUFdEL3J1bnRpbWUgXAogICAgICQkUFdE
L3d0ZiBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlR2VuZXJhdGVkLm1ha2UgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlR2VuZXJhdGVkLm1ha2UKaW5kZXggMGRlY2VmYS4uMzE0YTc5NCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZUdlbmVyYXRlZC5tYWtlCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmVHZW5lcmF0ZWQubWFrZQpAQCAtMzksNyArMzksNiBAQCBhbGw6CiAgICAgeGNvcHkgL3kgL2Qg
Ii4uXC4uXGRlYnVnZ2VyXCouaCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVccHJp
dmF0ZVxKYXZhU2NyaXB0Q29yZSIKICAgICB4Y29weSAveSAvZCAiLi5cLi5ccHJvZmlsZXJcKi5o
IiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3Jl
IgogICAgIHhjb3B5IC95IC9kICIuLlwuLlxjcmVhdGVfaGFzaF90YWJsZSIgIiVDb25maWd1cmF0
aW9uQnVpbGREaXIlXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSIKLSAgICB4Y29weSAv
eSAvZCAiLi5cLi5ccGNyZVxwY3JlLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRl
XHByaXZhdGVcSmF2YVNjcmlwdENvcmUiCiAgICAgeGNvcHkgL3kgL2QgIi4uXC4uXHd0Zlx0ZXh0
XEF0b21pY1N0cmluZy5jcHAiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXHByaXZh
dGVcSmF2YVNjcmlwdENvcmUiCiAgICAgeGNvcHkgL3kgL2QgIi4uXC4uXHd0Zlx0ZXh0XFN0cmlu
Z0J1aWxkZXIuY3BwIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxwcml2YXRlXEph
dmFTY3JpcHRDb3JlIgogICAgIHhjb3B5IC95IC9kICIuLlwuLlx3dGZcdGV4dFxTdHJpbmdJbXBs
LmNwcCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0
Q29yZSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggY2MyNWM0MC4uZDQ4MTM5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Nyw5ICsyODcsNiBAQAogCQk5MEQz
NDY5QzBFMjg1MjgwMDA5NDkyRUUgLyogUmVmQ291bnRlZExlYWtDb3VudGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQzNDY5QjBFMjg1MjgwMDA5
NDkyRUUgLyogUmVmQ291bnRlZExlYWtDb3VudGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTMwNTJDMzQwRkI3OTIxOTAwNDhGREMzIC8qIFBh
cnNlckFyZW5hLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzMDUyQzMyMEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgKi87IH07CiAJ
CTkzMDUyQzM1MEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNTJDMzMwRkI3OTIxOTAwNDhGREMz
IC8qIFBhcnNlckFyZW5hLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsK
LQkJOTMwNzU0QzEwOEIwRjY4MDAwQUIzMDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3NTRCRjA4QjBGNjgwMDBB
QjMwNTYgLyogcGNyZV9jb21waWxlLmNwcCAqLzsgfTsKLQkJOTMwNzU0RDAwOEIwRjc0NjAwQUIz
MDU2IC8qIHBjcmVfdGFibGVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDkzMDc1NENFMDhCMEY3NDUwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jcHAg
Ki87IH07Ci0JCTkzMDc1NEVCMDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzU0RTkwOEIwRjc4
NTAwQUIzMDU2IC8qIHBjcmVfZXhlYy5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZMQUdT
ID0gIi1mbm8tbW92ZS1sb29wLWludmFyaWFudHMiOyB9OyB9OwogCQk5MzJGNUJEMzA4MjJBMUM3
MDA3MzY5NzUgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU2MEE0Q0YwNEIzQjNFNzAwOEFFOTUyIC8q
IENvcmVGb3VuZGF0aW9uLmZyYW1ld29yayAqLzsgfTsKIAkJOTMyRjVCRDUwODIyQTFDNzAwNzM2
OTc1IC8qIEZvdW5kYXRpb24uZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGMEVCNjEwNUM4NkM2QjAwRTZERjFCIC8qIEZvdW5kYXRp
b24uZnJhbWV3b3JrICovOyB9OwogCQk5MzJGNUJENjA4MjJBMUM3MDA3MzY5NzUgLyogbGlib2Jq
Yy5keWxpYiBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxRjBFQzA3MDVDODZDOUEwMEU2REYxQiAvKiBsaWJvYmpjLmR5bGliICovOyB9OwpAQCAtMzAw
LDkgKzI5Nyw3IEBACiAJCTkzMzA0MDJDMEU2QTc2NDAwMDc4NkU2QSAvKiBTbWFsbFN0cmluZ3Mu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzMDNG
RTgwRTZBNzJCNTAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgKi87IH07CiAJCTkzMzVGMjRE
MTJFNjc2NUIwMDJCNTU1MyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMzQ1QTg3MTJEODM4QzQwMDMw
MkJFMyAvKiBTdHJpbmdSZWN1cnNpb25DaGVja2VyLmNwcCAqLzsgfTsKIAkJOTMzRjVDREMxMjY5
MjI5QjAwNDkxOTFFIC8qIE51bGxQdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTM3MDEzNDgw
Q0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNzAxMzQ3MENBOTdFMEUwMEZBMTRE
MyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgKi87IHNldHRpbmdzID0ge0NPTVBJTEVSX0ZM
QUdTID0gIi1Xbm8tc2lnbi1jb21wYXJlIjsgfTsgfTsKIAkJOTM4NTRBOUExMkM5M0QzQjAwREFB
Rjc3IC8qIE51bGxQdHIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTM4NTRBOTkxMkM5M0QzQjAwREFBRjc3IC8qIE51bGxQdHIuY3BwICovOyB9Owot
CQk5M0UyNkJENDA4QjE1MTQxMDBGODUyMjYgLyogcGNyZV94Y2xhc3MuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFMjZCRDMwOEIxNTE0MTAwRjg1
MjI2IC8qIHBjcmVfeGNsYXNzLmNwcCAqLzsgfTsKIAkJOTUzNEFBRkIwRTVCN0E5NjAwQjhBNDVC
IC8qIEpTUHJvZmlsZXJQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NTJDNjNBQzBFNDc3N0Q2MDBDMTM5MzYgLyogSlNQcm9maWxlclByaXZh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
NTc0MkY2NTBERDExRjVBMDAwOTE3RkIgLyogUHJvZmlsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTc0MkY2MzBERDExRjVBMDAwOTE3RkIgLyog
UHJvZmlsZS5jcHAgKi87IH07CiAJCTk1QUI4MzQyMERBNDMyMjUwMEJDODNGMyAvKiBQcm9maWxl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFC
ODMyRTBEQTQyQ0FEMDBCQzgzRjMgLyogUHJvZmlsZXIuY3BwICovOyB9OwpAQCAtNDgyLDggKzQ3
Nyw2IEBACiAJCUJDMThDNDRBMEUxNkY1Q0QwMEIzNDQ2MCAvKiBPd25QdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDNGNTY3MDk5MTE4RkEwMEFE
NzFCOCAvKiBPd25QdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlCQzE4QzQ0QjBFMTZGNUNEMDBCMzQ0NjAgLyogUGFyc2VyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YwQjNBQTA5QkI0REMwMDA2
OEZDRTMgLyogUGFyc2VyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsK
IAkJQkMxOEM0NEMwRTE2RjVDRDAwQjM0NDYwIC8qIFBhc3NSZWZQdHIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1ODBGNzk1MDk0MDcwNTYwMDgyQzIx
OSAvKiBQYXNzUmVmUHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQkMxOEM0NEQwRTE2RjVDRDAwQjM0NDYwIC8qIHBjcmUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDY1NDE3MjBGMDM5RTA4QjkwMDU4
QkZFQiAvKiBwY3JlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKLQkJQkMxOEM0NEUwRTE2RjVDRDAwQjM0NDYwIC8qIHBjcmVfaW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2QkU1MDhCMTUx
NzEwMEY4NTIyNiAvKiBwY3JlX2ludGVybmFsLmggKi87IH07CiAJCUJDMThDNDRGMEUxNkY1Q0Qw
MEIzNDQ2MCAvKiBQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNjVENkQ4N0UwOUI1QTMyRTAwMDJFNEQ3IC8qIFBsYXRmb3JtLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTAwRTE2
RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk1NzQyRjY0MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxOEM0NTEw
RTE2RjVDRDAwQjM0NDYwIC8qIFByb2ZpbGVOb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUFCODM1NTBEQTQzQjQ0MDBCQzgzRjMgLyogUHJvZmls
ZU5vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtNTE0LDcgKzUwNyw2IEBACiAJCUJDMThDNDZGMEUxNkY1Q0QwMEIzNDQ2MCAvKiBUQ1N5c3Rl
bUFsbG9jLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2
NTQxQkQ3MTA4RTgwQTE3MDAyQ0JFRTcgLyogVENTeXN0ZW1BbGxvYy5oICovOyB9OwogCQlCQzE4
QzQ3MDBFMTZGNUNEMDBCMzQ0NjAgLyogVGhyZWFkaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUVFNzkyMjBENkM5NUNEMDBGRUEzQkEgLyogVGhy
ZWFkaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMxOEM0NzEwRTE2RjVDRDAwQjM0NDYwIC8qIFRocmVhZFNwZWNpZmljLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUI3QzhCRDBEQTNBMzM2MDA3
NEIwREMgLyogVGhyZWFkU3BlY2lmaWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ3MjBFMTZGNUNEMDBCMzQ0NjAgLyogdWNwaW50ZXJu
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2
QkZDMDhCMTUxRDQwMEY4NTIyNiAvKiB1Y3BpbnRlcm5hbC5oICovOyB9OwogCQlCQzE4QzQ3MzBF
MTZGNUNEMDBCMzQ0NjAgLyogVW5pY29kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTE5NTY3OTQwOUU3Q0YxMjAwQjg5RDEzIC8qIFVuaWNvZGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE4QzQ3
NDBFMTZGNUNEMDBCMzQ0NjAgLyogVW5pY29kZUljdS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE5NTY3OEYwOUU3Q0YxMjAwQjg5RDEzIC8qIFVuaWNv
ZGVJY3UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzE4QzQ3NTBFMTZGNUNEMDBCMzQ0NjAgLyogVW51c2VkUGFyYW0uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNUFGNDZCMDlFOUQ5REIwMEFDRDFE
OCAvKiBVbnVzZWRQYXJhbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04MTQsNyArODA2LDYgQEAKIAkJNjUyMjQ2QTQwQzhEN0EwRTAwN0JEQUY3
IC8qIEhhc2hJdGVyYXRvcnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFz
aEl0ZXJhdG9ycy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTQwMEMwRjBBNjlC
QUYyMDA1MDk4ODcgLyogUHJvcGVydHlOYW1lQXJyYXkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFByb3BlcnR5TmFtZUFycmF5LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNjU0MDBDMTAwQTY5QkFGMjAwNTA5ODg3IC8qIFByb3BlcnR5TmFtZUFy
cmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9wZXJ0eU5hbWVBcnJh
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2NTQxNzIwRjAzOUUwOEI5MDA1OEJG
RUIgLyogcGNyZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwY3JlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsK
IAkJNjU0MUJENkUwOEU4MEExNzAwMkNCRUU3IC8qIFRDUGFnZU1hcC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUQ1BhZ2VNYXAuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxQkQ2RjA4RTgwQTE3MDAy
Q0JFRTcgLyogVENTcGluTG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUQ1NwaW5Mb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRh
YldpZHRoID0gODsgfTsKIAkJNjU0MUJENzAwOEU4MEExNzAwMkNCRUU3IC8qIFRDU3lzdGVtQWxs
b2MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVENTeXN0ZW1BbGxvYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKQEAgLTgyOCw3ICs4MTksNiBAQAogCQk2NTgwRjc5NTA5NDA3MDU2MDA4MkMyMTkg
LyogUGFzc1JlZlB0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXNzUmVmUHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJNjU5MkMzMTYwOThCN0RFMTAwMDNENEY2IC8qIFZlY3Rvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTY1OTJDMzE3MDk4QjdERTEwMDAzRDRGNiAvKiBWZWN0b3JUcmFpdHMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlY3RvclRyYWl0cy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2NUIxNzRCRTA5RDEwMDAyMDA4MjAzMzkgLyogY2hhcnRhYmxl
cy5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgZmlsZUVuY29kaW5nID0gMzA7IHBhdGggPSBjaGFydGFibGVzLmM7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1QzAyRkJCMDYzNzQ2MkEwMDNFN0VFNiAvKiBQcm90
ZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFByb3RlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2
NUM2NDdCMzA5M0VGOEQ2MDAyMkMzODAgLyogUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZlB0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1QzdBMTcxMEE4RUFBQ0IwMEZBMzdFQSAvKiBK
U1dyYXBwZXJPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV3JhcHBlck9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05MzIs
OSArOTIyLDYgQEAKIAkJOTMwM0Y1QTQwOTkxMUE1ODAwQUQ3MUI4IC8qIE93bkFycmF5UHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE93bkFycmF5UHRyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDUyQzMyMEZCNzkyMTkwMDQ4RkRDMyAvKiBQYXJzZXJB
cmVuYS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJzZXJBcmVu
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMDUyQzMzMEZCNzkyMTkwMDQ4
RkRDMyAvKiBQYXJzZXJBcmVuYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
YXJzZXJBcmVuYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MzA3NTRCRjA4QjBG
NjgwMDBBQjMwNTYgLyogcGNyZV9jb21waWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHBjcmVfY29tcGlsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTMwNzU0Q0UwOEIwRjc0NTAwQUIz
MDU2IC8qIHBjcmVfdGFibGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHBjcmVfdGFibGVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk5MzA3NTRFOTA4QjBGNzg1MDBBQjMwNTYgLyogcGNy
ZV9leGVjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IHBjcmVfZXhlYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgfTsKIAkJOTMwREFEMDMwRkIxRUIxQTAwODJEMjA1IC8qIE5vZGVDb25zdHJ1Y3RvcnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTm9kZUNvbnN0cnVjdG9ycy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzIyQTAwMzA2QzM0MUQzMDA5MDY3QkIgLyog
bGliaWN1Y29yZS5keWxpYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBuYW1lID0gbGliaWN1Y29yZS5keWxp
YjsgcGF0aCA9IC91c3IvbGliL2xpYmljdWNvcmUuZHlsaWI7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CiAJCTkzMkY1QkQ4MDgyMkExQzcwMDczNjk3NSAvKiBJbmZvLnBsaXN0ICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnBsaXN0LnhtbDsgcGF0aCA9IEluZm8ucGxpc3Q7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAxOyB9OwpAQCAtOTQ5LDcgKzkzNiw2IEBA
CiAJCTkzM0Y1Q0RCMTI2OTIyNjkwMDQ5MTkxRSAvKiBOdWxsUHRyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE51bGxQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTM1QUY0NjkwOUU5RDlEQjAwQUNEMUQ4IC8qIEZvcndhcmQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRm9yd2FyZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MzVBRjQ2QjA5RTlEOURCMDBBQ0QxRDggLyogVW51c2VkUGFyYW0uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVW51c2VkUGFyYW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTM3MDEzNDcwQ0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IHBjcmVfdWNwX3NlYXJj
aGZ1bmNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM3NEQzQTcwMzhEOUQ3
NDAwODYzNUNFIC8qIFNjb3BlQ2hhaW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZUNoYWluLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHRhYldpZHRoID0gODsgfTsKIAkJOTM3NEQzQTgwMzhEOUQ3NDAwODYzNUNFIC8qIFNjb3BlQ2hh
aW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGlu
ZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBTY29wZUNoYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4
OyB9OwogCQk5MzdCNjNDQzA5RTc2NkQyMDBBNjcxREQgLyogRGVyaXZlZFNvdXJjZXMubWFrZSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gc291cmNlY29k
ZS5tYWtlOyBmaWxlRW5jb2RpbmcgPSA0OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMubWFrZTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdXNlc1RhYnMgPSAxOyB9OwpAQCAtOTYxLDkgKzk0Nyw2IEBA
CiAJCTkzQURGQ0U2MENDQkQ3QUMwMEQzMEIwOCAvKiBKU0FycmF5LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5M0I2QTBERTBBQTY0REE0MDA3NkRFMjcgLyogR2V0UHRyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZXRQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTNDRURERkIwRUE5MUVFNjAwMjU4RUJFIC8qIFJlZ0V4cE1hdGNoZXNBcnJheS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZWdFeHBNYXRjaGVzQXJyYXkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTNFMjZCRDMwOEIxNTE0MTAwRjg1MjI2IC8q
IHBjcmVfeGNsYXNzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IHBjcmVfeGNsYXNzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OwotCQk5M0UyNkJFNTA4QjE1MTcxMDBGODUyMjYgLyogcGNyZV9pbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwY3JlX2ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsg
fTsKLQkJOTNFMjZCRkMwOEIxNTFENDAwRjg1MjI2IC8qIHVjcGludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHVjcGludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTNGMEIzQTkwOUJC
NERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YwQjNB
QTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0YxOTgxQTA4
MjQ1QUFFMDAxRTlBQkMgLyogS2V5d29yZHMudGFibGUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBLZXl3b3Jkcy50YWJsZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
dGFiV2lkdGggPSA4OyB9OwpAQCAtMTMyNiw3ICsxMzA5LDYgQEAKIAkJCQkxNDI5RDc3QTBFRDIw
RDczMDBCODk2MTkgLyogaW50ZXJwcmV0ZXIgKi8sCiAJCQkJMTQyOUQ5MkMwRUQyMkQ3MDAwQjg5
NjE5IC8qIGppdCAqLywKIAkJCQk3RTM5RDgzNzBFQzNBMzg4MDAzQUYxMUEgLyogcGFyc2VyICov
LAotCQkJCTY1NDE3MjAzMDM5RTAxRjkwMDU4QkZFQiAvKiBwY3JlICovLAogCQkJCTk1QUI4MzFB
MERBNDJDNjkwMEJDODNGMyAvKiBwcm9maWxlciAqLywKIAkJCQk3RUY2RTBCQjBFQjdBMUVDMDA3
OUFGQUYgLyogcnVudGltZSAqLywKIAkJCQkxNDEyMTEwMDBBNDg3NzI2MDA0ODAyNTUgLyogdGVz
dHMgKi8sCkBAIC0xNTA5LDcgKzE0OTEsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKIAkJCQlCQzE4QzUyMzBFMTZGQzhBMDBCMzQ0NjAgLyogQXJyYXlQcm90b3R5cGUu
bHV0LmggKi8sCi0JCQkJNjVCMTc0QkUwOUQxMDAwMjAwODIwMzM5IC8qIGNoYXJ0YWJsZXMuYyAq
LywKIAkJCQlCQ0QyMDNFNzBFMTcxOEY0MDAyQzdFODIgLyogRGF0ZVByb3RvdHlwZS5sdXQuaCAq
LywKIAkJCQlCQzgxNDlBRjEyRjg5RjUzMDA3QjJDMzIgLyogSGVhZGVyRGV0ZWN0aW9uLmggKi8s
CiAJCQkJQkM4N0NEQjgxMDcxMkFDQTAwMDYxNENGIC8qIEpTT05PYmplY3QubHV0LmggKi8sCkBA
IC0xNjU1LDIzICsxNjM2LDYgQEAKIAkJCXRhYldpZHRoID0gNDsKIAkJCXVzZXNUYWJzID0gMDsK
IAkJfTsKLQkJNjU0MTcyMDMwMzlFMDFGOTAwNThCRkVCIC8qIHBjcmUgKi8gPSB7Ci0JCQlpc2Eg
PSBQQlhHcm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTY1NDE3MjBGMDM5RTA4QjkwMDU4QkZF
QiAvKiBwY3JlLmggKi8sCi0JCQkJOTMwNzU0QkYwOEIwRjY4MDAwQUIzMDU2IC8qIHBjcmVfY29t
cGlsZS5jcHAgKi8sCi0JCQkJOTMwNzU0RTkwOEIwRjc4NTAwQUIzMDU2IC8qIHBjcmVfZXhlYy5j
cHAgKi8sCi0JCQkJOTNFMjZCRTUwOEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCAq
LywKLQkJCQk5MzA3NTRDRTA4QjBGNzQ1MDBBQjMwNTYgLyogcGNyZV90YWJsZXMuY3BwICovLAot
CQkJCTkzNzAxMzQ3MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAg
Ki8sCi0JCQkJOTNFMjZCRDMwOEIxNTE0MTAwRjg1MjI2IC8qIHBjcmVfeGNsYXNzLmNwcCAqLywK
LQkJCQk5M0UyNkJGQzA4QjE1MUQ0MDBGODUyMjYgLyogdWNwaW50ZXJuYWwuaCAqLywKLQkJCSk7
Ci0JCQlwYXRoID0gcGNyZTsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCQl0YWJXaWR0
aCA9IDQ7Ci0JCQl1c2VzVGFicyA9IDA7Ci0JCX07CiAJCTdFMzlEODFEMEVDMzhFRkEwMDNBRjEx
QSAvKiBieXRlY29tcGlsZXIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKApAQCAtMjMzOCw4ICsyMzAyLDYgQEAKIAkJCQlCQ0ZCRTY5NjEyMjU2MEU4MDAzMDlFOUQg
LyogUGFzc093bkFycmF5UHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NERENDg1MzBGQUVBODUw
MDBENkI0RUIgLyogUGFzc093blB0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0NEMwRTE2
RjVDRDAwQjM0NDYwIC8qIFBhc3NSZWZQdHIuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMThDNDRE
MEUxNkY1Q0QwMEIzNDQ2MCAvKiBwY3JlLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ0RTBF
MTZGNUNEMDBCMzQ0NjAgLyogcGNyZV9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMx
OEM0NEYwRTE2RjVDRDAwQjM0NDYwIC8qIFBsYXRmb3JtLmggaW4gSGVhZGVycyAqLywKIAkJCQlB
N0Q2NDlBQTEwMTUyMjRFMDA5QjJFMUIgLyogUG9zc2libHlOdWxsLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yNDIxLDcgKzIzODMsNiBAQAogCQkJCTE0QTQyRTQwMEY0RjYwRUUwMDU5OTA5OSAvKiBU
aW1lb3V0Q2hlY2tlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ1MzcyNkYwRTFDNTQ4ODAwMjFF
NTQ5IC8qIFRyYWNpbmcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBCNEQ3RTYzMEYzMTlBQzgwMEFE
N0U1OCAvKiBUeXBlVHJhaXRzLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE4QzQ3MjBFMTZGNUNE
MDBCMzQ0NjAgLyogdWNwaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMThDNDczMEUx
NkY1Q0QwMEIzNDQ2MCAvKiBVbmljb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQ3NDBF
MTZGNUNEMDBCMzQ0NjAgLyogVW5pY29kZUljdS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0
NzUwRTE2RjVDRDAwQjM0NDYwIC8qIFVudXNlZFBhcmFtLmggaW4gSGVhZGVycyAqLywKQEAgLTI4
NzAsMTEgKzI4MzEsNiBAQAogCQkJCTk3MTRBRjVFMTIyRjMyMDcwMDkyRDlGNSAvKiBQYXJzZWRV
UkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ4RjIxQkMxMDdFQzU0RDAwNDJFQzJDIC8qIFBh
cnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzA1MkMzNDBGQjc5MjE5MDA0OEZEQzMgLyog
UGFyc2VyQXJlbmEuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTMwNzU0QzEwOEIwRjY4MDAwQUIz
MDU2IC8qIHBjcmVfY29tcGlsZS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MzA3NTRFQjA4QjBG
Nzg1MDBBQjMwNTYgLyogcGNyZV9leGVjLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkzMDc1NEQw
MDhCMEY3NDYwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5
MzcwMTM0ODBDQTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJOTNFMjZCRDQwOEIxNTE0MTAwRjg1MjI2IC8qIHBjcmVfeGNsYXNzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTk1NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxl
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk1Q0Q0NTc2MEUxQzRGREQwMDg1MzU4RSAvKiBQcm9m
aWxlR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk1QUI4MzU2MERBNDNDMzAwMEJD
ODNGMyAvKiBQcm9maWxlTm9kZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9wY3JlL0FVVEhPUlMgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNy
ZS9BVVRIT1JTCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkYmFjMmE1Li4wMDAwMDAw
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL0FVVEhPUlMKKysrIC9kZXYvbnVsbApA
QCAtMSwxMiArMCwwIEBACi1PcmlnaW5hbGx5IHdyaXR0ZW4gYnk6ICBQaGlsaXAgSGF6ZWwKLUVt
YWlsIGxvY2FsIHBhcnQ6ICAgICAgIHBoMTAKLUVtYWlsIGRvbWFpbjogICAgICAgICAgIGNhbS5h
Yy51awotCi1Vbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBDb21wdXRpbmcgU2VydmljZSwKLUNhbWJy
aWRnZSwgRW5nbGFuZC4gUGhvbmU6ICs0NCAxMjIzIDMzNDcxNC4KLQotQ29weXJpZ2h0IChjKSAx
OTk3LTIwMDUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0K
LUFkYXB0ZWQgZm9yIEphdmFTY3JpcHRDb3JlIGFuZCBXZWJLaXQgYnkgQXBwbGUgSW5jLgotCi1D
b3B5cmlnaHQgKGMpIDIwMDUsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvQ09QWUlORyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL0NPUFlJTkcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDZmZmRjMjQuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUv
Q09QWUlORworKysgL2Rldi9udWxsCkBAIC0xLDM1ICswLDAgQEAKLVBDUkUgaXMgYSBsaWJyYXJ5
IG9mIGZ1bmN0aW9ucyB0byBzdXBwb3J0IHJlZ3VsYXIgZXhwcmVzc2lvbnMgd2hvc2Ugc3ludGF4
Ci1hbmQgc2VtYW50aWNzIGFyZSBhcyBjbG9zZSBhcyBwb3NzaWJsZSB0byB0aG9zZSBvZiB0aGUg
UGVybCA1IGxhbmd1YWdlLgotCi1UaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0
aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLXN0YXJ0ZWQgb3V0IGFzIGEgY29w
eSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgotcmVtb3Zl
ZC4KLQotQ29weXJpZ2h0IChjKSAxOTk3LTIwMDUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2
ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWUgb2YgQXBwbGUKLSAgICAgIEluYy4gbm9y
IHRoZSBuYW1lcyBvZiB0aGVpciBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
cgotICAgICAgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yCi0gICAgICB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9k
ZnRhYmxlcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCA2NjliOTQ4Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wY3JlL2RmdGFibGVzCisrKyAvZGV2L251bGwKQEAgLTEsMjczICswLDAgQEAKLSMh
L3Vzci9iaW4vcGVybCAtdwotIwotIyBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBv
ZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLSMgc3RhcnRlZCBvdXQgYXMg
YSBjb3B5IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi0j
IHJlbW92ZWQuIFRoaXMgbGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHBy
ZXNzaW9uIGZlYXR1cmVzCi0jIHJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNw
ZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCi0jIG5lZWRlZCBieSBKYXZh
U2NyaXB0Q29yZSBhbmQgdGhlIHJlc3Qgb2YgV2ViS2l0LgotIyAKLSMgICAgICAgICAgICAgICAg
ICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0jICAgICAgICAgICAgQ29weXJp
Z2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSMgIENvcHlyaWdodCAo
QykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgotIyAKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgbWV0OgotIyAKLSMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotIyAgICAgICB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotIyAK
LSMgICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSMgICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotIyAgICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotIyAKLSMgICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1i
cmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSMgICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSMgICAgICAg
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LSMgCi0jIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0jIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFCi0jIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotIyBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0jIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotIyBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
IyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRQotIyBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSMgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLQotIyBUaGlzIGlzIGEgZnJlZXN0YW5kaW5nIHN1cHBvcnQgcHJv
Z3JhbSB0byBnZW5lcmF0ZSBhIGZpbGUgY29udGFpbmluZwotIyBjaGFyYWN0ZXIgdGFibGVzLiBU
aGUgdGFibGVzIGFyZSBidWlsdCBhY2NvcmRpbmcgdG8gdGhlIGRlZmF1bHQgQwotIyBsb2NhbGUu
Ci0KLXVzZSBzdHJpY3Q7Ci0KLXVzZSBGaWxlOjpCYXNlbmFtZTsKLXVzZSBGaWxlOjpTcGVjOwot
dXNlIEZpbGU6OlRlbXAgcXcodGVtcGZpbGUpOwotdXNlIEdldG9wdDo6TG9uZzsKLQotc3ViIHJl
YWRIZWFkZXJWYWx1ZXMoKTsKLQotbXkgJXBjcmVfaW50ZXJuYWw7Ci0KLWlmIChzY2FsYXIoQEFS
R1YpIDwgMSkgewotICAgIHByaW50IFNUREVSUiAiVXNhZ2U6ICIsIGJhc2VuYW1lKCQwKSwgIiBb
LS1wcmVwcm9jZXNzb3I9cHJvZ3JhbV0gb3V0cHV0LWZpbGVcbiI7Ci0gICAgZXhpdCAxOwotfQot
Ci1teSAkb3V0cHV0RmlsZTsKLW15ICRwcmVwcm9jZXNzb3I7Ci1HZXRPcHRpb25zKCdwcmVwcm9j
ZXNzb3I9cycgPT4gXCRwcmVwcm9jZXNzb3IpOwotaWYgKG5vdCAkcHJlcHJvY2Vzc29yKSB7Ci0g
ICAgJHByZXByb2Nlc3NvciA9ICJjcHAiOwotfQotCi0kb3V0cHV0RmlsZSA9ICRBUkdWWzBdOwot
ZGllKCdNdXN0IHNwZWNpZnkgb3V0cHV0IGZpbGUuJykgdW5sZXNzIGRlZmluZWQoJG91dHB1dEZp
bGUpOwotCi1yZWFkSGVhZGVyVmFsdWVzKCk7Ci0KLW9wZW4oT1VULCAiPiIsICRvdXRwdXRGaWxl
KSBvciBkaWUgIiQhIjsKLWJpbm1vZGUoT1VUKTsKLQotcHJpbnRmKE9VVAotICAgICIvKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuIiAuCi0gICAgIiog
ICAgICBQZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqXG4iIC4KLSAg
ICAiKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxu
IiAuCi0gICAgIi8qIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IHdyaXR0ZW4gYnkgdGhlIGRm
dGFibGVzIGF1eGlsaWFyeSBcbiIgLgotICAgICJwcm9ncmFtLiBJZiB5b3UgZWRpdCBpdCBieSBo
YW5kLCB5b3UgbWlnaHQgbGlrZSB0byBlZGl0IHRoZSBNYWtlZmlsZSB0byBcbiIgLgotICAgICJw
cmV2ZW50IGl0cyBldmVyIGJlaW5nIHJlZ2VuZXJhdGVkLlxuXG4iKTsKLXByaW50ZihPVVQKLSAg
ICAiVGhpcyBmaWxlIGNvbnRhaW5zIHRoZSBkZWZhdWx0IHRhYmxlcyBmb3IgY2hhcmFjdGVycyB3
aXRoIGNvZGVzIGxlc3MgdGhhblxuIiAuCi0gICAgIjEyOCAoQVNDSUkgY2hhcmFjdGVycykuIFRo
ZXNlIHRhYmxlcyBhcmUgdXNlZCB3aGVuIG5vIGV4dGVybmFsIHRhYmxlcyBhcmVcbiIgLgotICAg
ICJwYXNzZWQgdG8gUENSRS4gKi9cblxuIiAuCi0gICAgImNvbnN0IHVuc2lnbmVkIGNoYXIganNj
X3BjcmVfZGVmYXVsdF90YWJsZXNbJWRdID0ge1xuXG4iIC4KLSAgICAiLyogVGhpcyB0YWJsZSBp
cyBhIGxvd2VyIGNhc2luZyB0YWJsZS4gKi9cblxuIiwgJHBjcmVfaW50ZXJuYWx7dGFibGVzX2xl
bmd0aH0pOwotCi1pZiAoJHBjcmVfaW50ZXJuYWx7bGNjX29mZnNldH0gIT0gMCkgewotICAgIGRp
ZSAibGNjX29mZnNldCAhPSAwIjsKLX0KLQotcHJpbnRmKE9VVCAiICAiKTsKLWZvciAobXkgJGkg
PSAwOyAkaSA8IDEyODsgJGkrKykgewotICAgIGlmICgoJGkgJiA3KSA9PSAwICYmICRpICE9IDAp
IHsKLSAgICAgICAgcHJpbnRmKE9VVCAiXG4gICIpOwotICAgIH0KLSAgICBwcmludGYoT1VUICIw
eCUwMlgiLCBvcmQobGMoY2hyKCRpKSkpKTsKLSAgICBpZiAoJGkgIT0gMTI3KSB7Ci0gICAgICAg
IHByaW50ZihPVVQgIiwgIik7Ci0gICAgfQotfQotcHJpbnRmKE9VVCAiLFxuXG4iKTsKLQotcHJp
bnRmKE9VVCAiLyogVGhpcyB0YWJsZSBpcyBhIGNhc2UgZmxpcHBpbmcgdGFibGUuICovXG5cbiIp
OwotCi1pZiAoJHBjcmVfaW50ZXJuYWx7ZmNjX29mZnNldH0gIT0gMTI4KSB7Ci0gIGRpZSAiZmNj
X29mZnNldCAhPSAxMjgiOwotfQotCi1wcmludGYoT1VUICIgICIpOwotZm9yIChteSAkaSA9IDA7
ICRpIDwgMTI4OyAkaSsrKSB7Ci0gICAgaWYgKCgkaSAmIDcpID09IDAgJiYgJGkgIT0gMCkgewot
ICAgICAgICBwcmludGYoT1VUICJcbiAgIik7Ci0gICAgfQotICAgIG15ICRjID0gY2hyKCRpKTsK
LSAgICBwcmludGYoT1VUICIweCUwMlgiLCAkYyA9fiAvW1s6bG93ZXI6XV0vID8gb3JkKHVjKCRj
KSkgOiBvcmQobGMoJGMpKSk7Ci0gICAgaWYgKCRpICE9IDEyNykgewotICAgICAgICBwcmludGYo
T1VUICIsICIpOwotICAgIH0KLX0KLXByaW50ZihPVVQgIixcblxuIik7Ci0KLXByaW50ZihPVVQK
LSAgICAiLyogVGhpcyB0YWJsZSBjb250YWlucyBiaXQgbWFwcyBmb3IgdmFyaW91cyBjaGFyYWN0
ZXIgY2xhc3Nlcy5cbiIgLgotICAgICJFYWNoIG1hcCBpcyAzMiBieXRlcyBsb25nIGFuZCB0aGUg
Yml0cyBydW4gZnJvbSB0aGUgbGVhc3RcbiIgLgotICAgICJzaWduaWZpY2FudCBlbmQgb2YgZWFj
aCBieXRlLiBUaGUgY2xhc3NlcyBhcmU6IHNwYWNlLCBkaWdpdCwgd29yZC4gKi9cblxuIik7Ci0K
LWlmICgkcGNyZV9pbnRlcm5hbHtjYml0c19vZmZzZXR9ICE9ICRwY3JlX2ludGVybmFse2ZjY19v
ZmZzZXR9ICsgMTI4KSB7Ci0gICAgZGllICJjYml0c19vZmZzZXQgIT0gZmNjX29mZnNldCArIDEy
OCI7Ci19Ci0KLW15IEBjYml0X3RhYmxlID0gKDApIHggJHBjcmVfaW50ZXJuYWx7Y2JpdF9sZW5n
dGh9OwotZm9yIChteSAkaSA9IG9yZCgnMCcpOyAkaSA8PSBvcmQoJzknKTsgJGkrKykgewotICAg
ICRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFse2NiaXRfZGlnaXR9ICsgJGkgLyA4XSB8PSAxIDw8
ICgkaSAmIDcpOwotfQotJGNiaXRfdGFibGVbJHBjcmVfaW50ZXJuYWx7Y2JpdF93b3JkfSArIG9y
ZCgnXycpIC8gOF0gfD0gMSA8PCAob3JkKCdfJykgJiA3KTsKLWZvciAobXkgJGkgPSAwOyAkaSA8
IDEyODsgJGkrKykgewotICAgIG15ICRjID0gY2hyKCRpKTsKLSAgICBpZiAoJGMgPX4gL1tbOmFs
bnVtOl1dLykgewotICAgICAgICAkY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtjYml0X3dvcmR9
ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOwotICAgIH0KLSAgICBpZiAoJGMgPX4gL1tbOnNw
YWNlOl1dLykgewotICAgICAgICAkY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtjYml0X3NwYWNl
fSArICRpIC8gOF0gfD0gMSA8PCAoJGkgJiA3KTsKLSAgICB9Ci19Ci0KLXByaW50ZihPVVQgIiAg
Iik7Ci1mb3IgKG15ICRpID0gMDsgJGkgPCAkcGNyZV9pbnRlcm5hbHtjYml0X2xlbmd0aH07ICRp
KyspIHsKLSAgICBpZiAoKCRpICYgNykgPT0gMCAmJiAkaSAhPSAwKSB7Ci0gICAgICAgIGlmICgo
JGkgJiAzMSkgPT0gMCkgewotICAgICAgICAgICAgcHJpbnRmKE9VVCAiXG4iKTsKLSAgICAgICAg
fQotICAgICAgICBwcmludGYoT1VUICJcbiAgIik7Ci0gICAgfQotICAgIHByaW50ZihPVVQgIjB4
JTAyWCIsICRjYml0X3RhYmxlWyRpXSk7Ci0gICAgaWYgKCRpICE9ICRwY3JlX2ludGVybmFse2Ni
aXRfbGVuZ3RofSAtIDEpIHsKLSAgICAgICAgcHJpbnRmKE9VVCAiLCAiKTsKLSAgICB9Ci19Ci1w
cmludGYoT1VUICIsXG5cbiIpOwotCi1wcmludGYoT1VUCi0gICAgIi8qIFRoaXMgdGFibGUgaWRl
bnRpZmllcyB2YXJpb3VzIGNsYXNzZXMgb2YgY2hhcmFjdGVyIGJ5IGluZGl2aWR1YWwgYml0czpc
biIgLgotICAgICIgIDB4JTAyeCAgIHdoaXRlIHNwYWNlIGNoYXJhY3RlclxuIiAuCi0gICAgIiAg
MHglMDJ4ICAgaGV4YWRlY2ltYWwgZGlnaXRcbiIgLgotICAgICIgIDB4JTAyeCAgIGFscGhhbnVt
ZXJpYyBvciAnXydcbiovXG5cbiIsCi0gICAgJHBjcmVfaW50ZXJuYWx7Y3R5cGVfc3BhY2V9LCAk
cGNyZV9pbnRlcm5hbHtjdHlwZV94ZGlnaXR9LCAkcGNyZV9pbnRlcm5hbHtjdHlwZV93b3JkfSk7
Ci0KLWlmICgkcGNyZV9pbnRlcm5hbHtjdHlwZXNfb2Zmc2V0fSAhPSAkcGNyZV9pbnRlcm5hbHtj
Yml0c19vZmZzZXR9ICsgJHBjcmVfaW50ZXJuYWx7Y2JpdF9sZW5ndGh9KSB7Ci0gICAgZGllICJj
dHlwZXNfb2Zmc2V0ICE9IGNiaXRzX29mZnNldCArIGNiaXRfbGVuZ3RoIjsKLX0KLQotcHJpbnRm
KE9VVCAiICAiKTsKLWZvciAobXkgJGkgPSAwOyAkaSA8IDEyODsgJGkrKykgewotICAgIG15ICR4
ID0gMDsKLSAgICBteSAkYyA9IGNocigkaSk7Ci0gICAgaWYgKCRjID1+IC9bWzpzcGFjZTpdXS8p
IHsKLSAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVfc3BhY2V9OwotICAgIH0KLSAg
ICBpZiAoJGMgPX4gL1tbOnhkaWdpdDpdXS8pIHsKLSAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJu
YWx7Y3R5cGVfeGRpZ2l0fTsKLSAgICB9Ci0gICAgaWYgKCRjID1+IC9bWzphbG51bTpdX10vKSB7
Ci0gICAgICAgICR4ICs9ICRwY3JlX2ludGVybmFse2N0eXBlX3dvcmR9OwotICAgIH0KLSAgICBw
cmludGYoT1VUICIweCUwMlgiLCAkeCk7Ci0gICAgaWYgKCRpICE9IDEyNykgewotICAgICAgICBw
cmludGYoT1VUICIsICIpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIHByaW50ZihPVVQgIn07Iik7
Ci0gICAgfQotICAgIGlmICgoJGkgJiA3KSA9PSA3KSB7Ci0gICAgICAgIHByaW50ZihPVVQgIiAv
KiAiKTsKLSAgICAgICAgbXkgJGQgPSBjaHIoJGkgLSA3KTsKLSAgICAgICAgaWYgKCRkID1+IC9b
WzpwcmludDpdXS8pIHsKLSAgICAgICAgICAgIHByaW50ZihPVVQgIiAlYyAtIiwgJGkgLSA3KTsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHByaW50ZihPVVQgIiUzZC0iLCAkaSAtIDcp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICgkYyA9fiBtL1tbOnByaW50Ol1dLykgewotICAgICAg
ICAgICAgcHJpbnRmKE9VVCAiICVjICIsICRpKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIHByaW50ZihPVVQgIiUzZCIsICRpKTsKLSAgICAgICAgfQotICAgICAgICBwcmludGYoT1VU
ICIgKi9cbiIpOwotICAgICAgICBpZiAoJGkgIT0gMTI3KSB7Ci0gICAgICAgICAgICBwcmludGYo
T1VUICIgICIpOwotICAgICAgICB9Ci0gICAgfQotfQotCi1pZiAoJHBjcmVfaW50ZXJuYWx7dGFi
bGVzX2xlbmd0aH0gIT0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVzX29mZnNldH0gKyAxMjgpIHsKLSAg
ICBkaWUgInRhYmxlc19sZW5ndGggIT0gY3R5cGVzX29mZnNldCArIDEyOCI7Ci19Ci0KLXByaW50
ZihPVVQgIlxuXG4vKiBFbmQgb2YgY2hhcnRhYmxlcy5jICovXG4iKTsKLQotY2xvc2UoT1VUKTsK
LQotZXhpdCAwOwotCi1zdWIgcmVhZEhlYWRlclZhbHVlcygpCi17Ci0gICAgbXkgQHZhcmlhYmxl
cyA9IHF3KAotICAgICAgICBjYml0X2RpZ2l0Ci0gICAgICAgIGNiaXRfbGVuZ3RoCi0gICAgICAg
IGNiaXRfc3BhY2UKLSAgICAgICAgY2JpdF93b3JkCi0gICAgICAgIGNiaXRzX29mZnNldAotICAg
ICAgICBjdHlwZV9zcGFjZQotICAgICAgICBjdHlwZV93b3JkCi0gICAgICAgIGN0eXBlX3hkaWdp
dAotICAgICAgICBjdHlwZXNfb2Zmc2V0Ci0gICAgICAgIGZjY19vZmZzZXQKLSAgICAgICAgbGNj
X29mZnNldAotICAgICAgICB0YWJsZXNfbGVuZ3RoCi0gICAgKTsKLQotICAgIGxvY2FsICQvID0g
dW5kZWY7Ci0KLSAgICBteSAkaGVhZGVyUGF0aCA9IEZpbGU6OlNwZWMtPmNhdGZpbGUoZGlybmFt
ZSgkMCksICJwY3JlX2ludGVybmFsLmgiKTsKLSAKLSAgICBteSAoJGZoLCAkdGVtcEZpbGUpID0g
dGVtcGZpbGUoCi0gICAgICAgIGJhc2VuYW1lKCQwKSAuICItWFhYWFhYWFgiLAotICAgICAgICBE
SVIgPT4gRmlsZTo6U3BlYy0+dG1wZGlyKCksCi0gICAgICAgIFNVRkZJWCA9PiAiLmluIiwKLSAg
ICAgICAgVU5MSU5LID0+IDAsCi0gICAgKTsKLQotICAgIHByaW50ICRmaCAiI2RlZmluZSBERlRB
QkxFU1xuXG4iOwotCi0gICAgb3BlbihIRUFERVIsICI8IiwgJGhlYWRlclBhdGgpIG9yIGRpZSAi
JCEiOwotICAgIHByaW50ICRmaCA8SEVBREVSPjsKLSAgICBjbG9zZShIRUFERVIpOwotCi0gICAg
cHJpbnQgJGZoICJcblxuIjsKLQotICAgIGZvciBteSAkdiAoQHZhcmlhYmxlcykgewotICAgICAg
ICBwcmludCAkZmggIlwkcGNyZV9pbnRlcm5hbHtcIiR2XCJ9ID0gJHY7XG4iOwotICAgIH0KLQot
ICAgIGNsb3NlKCRmaCk7Ci0KLSAgICBvcGVuKENQUCwgIiRwcmVwcm9jZXNzb3IgXCIkdGVtcEZp
bGVcIiB8Iikgb3IgZGllICIkISI7Ci0gICAgbXkgJGNvbnRlbnQgPSA8Q1BQPjsKLSAgICBjbG9z
ZShDUFApOwotICAgIAotICAgIGV2YWwgJGNvbnRlbnQ7Ci0gICAgZGllICIkQCIgaWYgJEA7Ci0g
ICAgdW5saW5rICR0ZW1wRmlsZTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wY3JlL3BjcmUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTUwNDRmZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2OCArMCwwIEBACi0v
KiBUaGlzIGlzIHRoZSBwdWJsaWMgaGVhZGVyIGZpbGUgZm9yIEphdmFTY3JpcHRDb3JlJ3MgdmFy
aWFudCBvZiB0aGUgUENSRQotbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5IHN0YXJ0ZWQgb3V0
IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZQotZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJl
ZW4gcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZQotcmVndWxhciBl
eHByZXNzaW9uIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlCi1z
cGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucyBuZWVkZWQgYnkgSmF2YVNj
cmlwdENvcmUgYW5kIHRoZQotcmVzdCBvZiBXZWJLaXQuCi0KLSAgICAgICAgICAgQ29weXJpZ2h0
IChjKSAxOTk3LTIwMDUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMp
IDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQot
ICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVu
aXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hU
IEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZ
UklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgot
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0qLwotCi0vLyBGSVhNRTogVGhpcyBmaWxlIG5lZWRzIHRvIGJlIHJlbmFtZWQgdG8gSlNS
ZWdFeHAuaDsgaXQncyBubyBsb25nZXIgUENSRS4KLQotI2lmbmRlZiBKU1JlZ0V4cF9oCi0jZGVm
aW5lIEpTUmVnRXhwX2gKLQotI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KLQotc3Ry
dWN0IEpTUmVnRXhwOwotCi1lbnVtIEpTUmVnRXhwSWdub3JlQ2FzZU9wdGlvbiB7IEpTUmVnRXhw
RG9Ob3RJZ25vcmVDYXNlLCBKU1JlZ0V4cElnbm9yZUNhc2UgfTsKLWVudW0gSlNSZWdFeHBNdWx0
aWxpbmVPcHRpb24geyBKU1JlZ0V4cFNpbmdsZUxpbmUsIEpTUmVnRXhwTXVsdGlsaW5lIH07Ci0K
LS8qIGpzUmVnRXhwRXhlY3V0ZSBlcnJvciBjb2RlcyAqLwotY29uc3QgaW50IEpTUmVnRXhwRXJy
b3JOb01hdGNoID0gLTE7Ci1jb25zdCBpbnQgSlNSZWdFeHBFcnJvckhpdExpbWl0ID0gLTI7Ci1j
b25zdCBpbnQgSlNSZWdFeHBFcnJvck5vTWVtb3J5ID0gLTM7Ci1jb25zdCBpbnQgSlNSZWdFeHBF
cnJvckludGVybmFsID0gLTQ7Ci0KLUpTUmVnRXhwKiBqc1JlZ0V4cENvbXBpbGUoY29uc3QgVUNo
YXIqIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoLAotICAgIEpTUmVnRXhwSWdub3JlQ2FzZU9w
dGlvbiwgSlNSZWdFeHBNdWx0aWxpbmVPcHRpb24sCi0gICAgdW5zaWduZWQqIG51bVN1YnBhdHRl
cm5zLCBjb25zdCBjaGFyKiogZXJyb3JNZXNzYWdlKTsKLQotaW50IGpzUmVnRXhwRXhlY3V0ZShj
b25zdCBKU1JlZ0V4cCosCi0gICAgY29uc3QgVUNoYXIqIHN1YmplY3QsIGludCBzdWJqZWN0TGVu
Z3RoLCBpbnQgc3RhcnRPZmZzZXQsCi0gICAgaW50KiBvZmZzZXRzVmVjdG9yLCBpbnQgb2Zmc2V0
c1ZlY3Rvckxlbmd0aCk7Ci0KLXZvaWQganNSZWdFeHBGcmVlKEpTUmVnRXhwKik7Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5wcmkgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLnByaQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMzY1MmQ5NS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlLnByaQorKysgL2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLSMgUGVybCBDb21wYXRpYmxl
IFJlZ3VsYXIgRXhwcmVzc2lvbnMgLSBRdDQgYnVpbGQgaW5mbwotVlBBVEggKz0gJCRQV0QKLUlO
Q0xVREVQQVRIICs9ICQkUFdEICQkT1VUUFVUX0RJUi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZ2Vu
ZXJhdGVkCi1ERVBFTkRQQVRIICs9ICQkUFdECi0KLVNPVVJDRVMgKz0gXAotICAgIHBjcmVfY29t
cGlsZS5jcHAgXAotICAgIHBjcmVfZXhlYy5jcHAgXAotICAgIHBjcmVfdGFibGVzLmNwcCBcCi0g
ICAgcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKLSAgICBwY3JlX3hjbGFzcy5jcHAKLQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDlkNDcyZDguLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI3MDggKzAsMCBA
QAotLyogVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUgbGlicmFy
eS4gV2hpbGUgdGhpcyBsaWJyYXJ5Ci1zdGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFu
eSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KLXJlbW92ZWQuIFRoaXMgbGlicmFy
eSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzCi1yZXF1
aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9u
bHkgdGhlIGZ1bmN0aW9ucwotbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBv
ZiBXZWJLaXQuCi0KLSAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxp
cCBIYXplbAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9m
IENhbWJyaWRnZQotICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNywgMjAw
OCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gICAgQ29weXJpZ2h0IChD
KSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0KLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
Ci0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLQotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlk
Z2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSovCi0KLS8qIFRoaXMg
bW9kdWxlIGNvbnRhaW5zIHRoZSBleHRlcm5hbCBmdW5jdGlvbiBqc1JlZ0V4cEV4ZWN1dGUoKSwg
YWxvbmcgd2l0aAotc3VwcG9ydGluZyBpbnRlcm5hbCBmdW5jdGlvbnMgdGhhdCBhcmUgbm90IHVz
ZWQgYnkgb3RoZXIgbW9kdWxlcy4gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVk
ZSAicGNyZV9pbnRlcm5hbC5oIgotCi0jaW5jbHVkZSA8c3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3Rm
L0FTQ0lJQ1R5cGUuaD4KLSNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgotI2luY2x1ZGUgPHd0
Zi9GaXhlZEFycmF5Lmg+Ci0jaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotCi11c2luZyBu
YW1lc3BhY2UgV1RGOwotCi0vKiBOZWdhdGl2ZSB2YWx1ZXMgZm9yIHRoZSBmaXJzdGNoYXIgYW5k
IHJlcWNoYXIgdmFyaWFibGVzICovCi0KLSNkZWZpbmUgUkVRX1VOU0VUICgtMikKLSNkZWZpbmUg
UkVRX05PTkUgICgtMSkKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioKLSogICAgICBDb2RlIHBhcmFtZXRlcnMgYW5kIHN0YXRpYyB0YWJsZXMgICAg
ICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
LwotCi0vKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBvbiB0aGUgbmVzdGVkIGJyYWNrZXQgc3Rh
Y2tzIGF0IGNvbXBpbGUgdGltZS4gVGhpcwotYXBwbGllcyB0byB0aGUgbmVzdGluZyBvZiBhbGwg
a2luZHMgb2YgcGFyZW50aGVzZXMuIEl0IGRvZXMgbm90IGxpbWl0Ci11bi1uZXN0ZWQsIG5vbi1j
YXB0dXJpbmcgcGFyZW50aGVzZXMuIFRoaXMgbnVtYmVyIGNhbiBiZSBtYWRlIGJpZ2dlciBpZgot
bmVjZXNzYXJ5IC0gaXQgaXMgdXNlZCB0byBkaW1lbnNpb24gb25lIGludCBhbmQgb25lIHVuc2ln
bmVkIGNoYXIgdmVjdG9yIGF0Ci1jb21waWxlIHRpbWUuICovCi0KLSNkZWZpbmUgQlJBU1RBQ0tf
U0laRSAyMDAKLQotLyogVGFibGUgZm9yIGhhbmRsaW5nIGVzY2FwZWQgY2hhcmFjdGVycyBpbiB0
aGUgcmFuZ2UgJzAnLSd6Jy4gUG9zaXRpdmUgcmV0dXJucwotYXJlIHNpbXBsZSBkYXRhIHZhbHVl
czsgbmVnYXRpdmUgdmFsdWVzIGFyZSBmb3Igc3BlY2lhbCB0aGluZ3MgbGlrZSBcZCBhbmQgc28K
LW9uLiBaZXJvIG1lYW5zIGZ1cnRoZXIgcHJvY2Vzc2luZyBpcyBuZWVkZWQgKGZvciB0aGluZ3Mg
bGlrZSBceCksIG9yIHRoZSBlc2NhcGUKLWlzIGludmFsaWQuICovCi0KLXN0YXRpYyBjb25zdCBz
aG9ydCBlc2NhcGVzW10gPSB7Ci0gICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAg
MCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAvKiAwIC0gNyAqLwotICAgICAwLCAgICAgIDAs
ICAgICc6JywgICAgJzsnLCAgICAnPCcsICAgICc9JywgICAgJz4nLCAgICAnPycsICAgLyogOCAt
ID8gKi8KLSAgICdAJywgICAgICAwLCAtRVNDX0IsICAgICAgMCwgLUVTQ19ELCAgICAgIDAsICAg
ICAgMCwgICAgICAwLCAgIC8qIEAgLSBHICovCi0gICAgIDAsICAgICAgMCwgICAgICAwLCAgICAg
IDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAvKiBIIC0gTyAqLwotICAgICAw
LCAgICAgIDAsICAgICAgMCwgLUVTQ19TLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAtRVNDX1cs
ICAgLyogUCAtIFcgKi8KLSAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICdbJywgICAnXFwnLCAg
ICAnXScsICAgICdeJywgICAgJ18nLCAgIC8qIFggLSBfICovCi0gICAnYCcsICAgICAgNywgLUVT
Q19iLCAgICAgIDAsIC1FU0NfZCwgICAgICAwLCAgICdcZicsICAgICAgMCwgICAvKiBgIC0gZyAq
LwotICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAnXG4n
LCAgICAgIDAsICAgLyogaCAtIG8gKi8KLSAgICAgMCwgICAgICAwLCAgICAnXHInLCAtRVNDX3Ms
ICAgJ1x0JywgICAgICAwLCAgJ1x2JywgLUVTQ193LCAgIC8qIHAgLSB3ICovCi0gICAgIDAsICAg
ICAgMCwgICAgICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
KiB4IC0geiAqLwotfTsKLQotLyogRXJyb3IgY29kZSBudW1iZXJzLiBUaGV5IGFyZSBnaXZlbiBu
YW1lcyBzbyB0aGF0IHRoZXkgY2FuIG1vcmUgZWFzaWx5IGJlCi10cmFja2VkLiAqLwotCi1lbnVt
IEVycm9yQ29kZSB7Ci0gICAgRVJSMCwgRVJSMSwgRVJSMiwgRVJSMywgRVJSNCwgRVJSNSwgRVJS
NiwgRVJSNywgRVJSOCwgRVJSOSwKLSAgICBFUlIxMCwgRVJSMTEsIEVSUjEyLCBFUlIxMywgRVJS
MTQsIEVSUjE1LCBFUlIxNiwgRVJSMTcKLX07Ci0KLS8qIFRoZSB0ZXh0cyBvZiBjb21waWxlLXRp
bWUgZXJyb3IgbWVzc2FnZXMuIFRoZXNlIGFyZSAiY2hhciAqIiBiZWNhdXNlIHRoZXkKLWFyZSBw
YXNzZWQgdG8gdGhlIG91dHNpZGUgd29ybGQuICovCi0KLXN0YXRpYyBjb25zdCBjaGFyKiBlcnJv
clRleHQoRXJyb3JDb2RlIGNvZGUpCi17Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgZXJyb3JUZXh0
c1tdID0KLSAgICAgIC8qIDEgKi8KLSAgICAgICJcXCBhdCBlbmQgb2YgcGF0dGVyblwwIgotICAg
ICAgIlxcYyBhdCBlbmQgb2YgcGF0dGVyblwwIgotICAgICAgImNoYXJhY3RlciB2YWx1ZSBpbiBc
XHh7Li4ufSBzZXF1ZW5jZSBpcyB0b28gbGFyZ2VcMCIKLSAgICAgICJudW1iZXJzIG91dCBvZiBv
cmRlciBpbiB7fSBxdWFudGlmaWVyXDAiCi0gICAgICAvKiA1ICovCi0gICAgICAibnVtYmVyIHRv
byBiaWcgaW4ge30gcXVhbnRpZmllclwwIgotICAgICAgIm1pc3NpbmcgdGVybWluYXRpbmcgXSBm
b3IgY2hhcmFjdGVyIGNsYXNzXDAiCi0gICAgICAiaW50ZXJuYWwgZXJyb3I6IGNvZGUgb3ZlcmZs
b3dcMCIKLSAgICAgICJyYW5nZSBvdXQgb2Ygb3JkZXIgaW4gY2hhcmFjdGVyIGNsYXNzXDAiCi0g
ICAgICAibm90aGluZyB0byByZXBlYXRcMCIKLSAgICAgIC8qIDEwICovCi0gICAgICAidW5tYXRj
aGVkIHBhcmVudGhlc2VzXDAiCi0gICAgICAiaW50ZXJuYWwgZXJyb3I6IHVuZXhwZWN0ZWQgcmVw
ZWF0XDAiCi0gICAgICAidW5yZWNvZ25pemVkIGNoYXJhY3RlciBhZnRlciAoP1wwIgotICAgICAg
ImZhaWxlZCB0byBnZXQgbWVtb3J5XDAiCi0gICAgICAibWlzc2luZyApXDAiCi0gICAgICAvKiAx
NSAqLwotICAgICAgInJlZmVyZW5jZSB0byBub24tZXhpc3RlbnQgc3VicGF0dGVyblwwIgotICAg
ICAgInJlZ3VsYXIgZXhwcmVzc2lvbiB0b28gbGFyZ2VcMCIKLSAgICAgICJwYXJlbnRoZXNlcyBu
ZXN0ZWQgdG9vIGRlZXBseSIKLSAgICA7Ci0KLSAgICBpbnQgaSA9IGNvZGU7Ci0gICAgY29uc3Qg
Y2hhciogdGV4dCA9IGVycm9yVGV4dHM7Ci0gICAgd2hpbGUgKGkgPiAxKQotICAgICAgICBpIC09
ICEqdGV4dCsrOwotICAgIHJldHVybiB0ZXh0OwotfQotCi0vKiBTdHJ1Y3R1cmUgZm9yIHBhc3Np
bmcgInN0YXRpYyIgaW5mb3JtYXRpb24gYXJvdW5kIGJldHdlZW4gdGhlIGZ1bmN0aW9ucwotZG9p
bmcgdGhlIGNvbXBpbGluZy4gKi8KLQotc3RydWN0IENvbXBpbGVEYXRhIHsKLSAgICBDb21waWxl
RGF0YSgpIHsKLSAgICAgICAgdG9wQmFja3JlZiA9IDA7Ci0gICAgICAgIGJhY2tyZWZNYXAgPSAw
OwotICAgICAgICByZXFWYXJ5T3B0ID0gMDsKLSAgICAgICAgbmVlZE91dGVyQnJhY2tldCA9IGZh
bHNlOwotICAgICAgICBudW1DYXB0dXJpbmdCcmFja2V0cyA9IDA7Ci0gICAgfQotICAgIGludCB0
b3BCYWNrcmVmOyAgICAgICAgICAgIC8qIE1heGltdW0gYmFjayByZWZlcmVuY2UgKi8KLSAgICB1
bnNpZ25lZCBiYWNrcmVmTWFwOyAgICAgICAvKiBCaXRtYXAgb2YgbG93IGJhY2sgcmVmcyAqLwot
ICAgIGludCByZXFWYXJ5T3B0OyAgICAgICAgICAgIC8qICJBZnRlciB2YXJpYWJsZSBpdGVtIiBm
bGFnIGZvciByZXFCeXRlICovCi0gICAgYm9vbCBuZWVkT3V0ZXJCcmFja2V0OwotICAgIGludCBu
dW1DYXB0dXJpbmdCcmFja2V0czsKLX07Ci0KLS8qIERlZmluaXRpb25zIHRvIGFsbG93IG11dHVh
bCByZWN1cnNpb24gKi8KLQotc3RhdGljIGJvb2wgY29tcGlsZUJyYWNrZXQoaW50LCBpbnQqLCB1
bnNpZ25lZCBjaGFyKiosIGNvbnN0IFVDaGFyKiosIGNvbnN0IFVDaGFyKiwgRXJyb3JDb2RlKiwg
aW50LCBpbnQqLCBpbnQqLCBDb21waWxlRGF0YSYpOwotc3RhdGljIGJvb2wgYnJhY2tldElzQW5j
aG9yZWQoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSk7Ci1zdGF0aWMgYm9vbCBicmFja2V0TmVl
ZHNMaW5lU3RhcnQoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSwgdW5zaWduZWQgY2FwdHVyZU1h
cCwgdW5zaWduZWQgYmFja3JlZk1hcCk7Ci1zdGF0aWMgaW50IGJyYWNrZXRGaW5kRmlyc3RBc3Nl
cnRlZENoYXJhY3Rlcihjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlLCBib29sIGluYXNzZXJ0KTsK
LQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSog
ICAgICAgICAgICBIYW5kbGUgZXNjYXBlcyAgICAgICAgICAgICAgICAgICAgICAqCi0qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGZ1
bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgXCBoYXMgYmVlbiBlbmNvdW50ZXJlZC4gSXQgZWl0aGVy
IHJldHVybnMgYQotcG9zaXRpdmUgdmFsdWUgZm9yIGEgc2ltcGxlIGVzY2FwZSBzdWNoIGFzIFxu
LCBvciBhIG5lZ2F0aXZlIHZhbHVlIHdoaWNoCi1lbmNvZGVzIG9uZSBvZiB0aGUgbW9yZSBjb21w
bGljYXRlZCB0aGluZ3Mgc3VjaCBhcyBcZC4gV2hlbiBVVEYtOCBpcyBlbmFibGVkLAotYSBwb3Np
dGl2ZSB2YWx1ZSBncmVhdGVyIHRoYW4gMjU1IG1heSBiZSByZXR1cm5lZC4gT24gZW50cnksIHB0
ciBpcyBwb2ludGluZyBhdAotdGhlIFwuIE9uIGV4aXQsIGl0IGlzIG9uIHRoZSBmaW5hbCBjaGFy
YWN0ZXIgb2YgdGhlIGVzY2FwZSBzZXF1ZW5jZS4KLQotQXJndW1lbnRzOgotICBwdHJQdHIgICAg
ICAgICBwb2ludHMgdG8gdGhlIHBhdHRlcm4gcG9zaXRpb24gcG9pbnRlcgotICBlcnJvckNvZGVQ
dHIgICBwb2ludHMgdG8gdGhlIGVycm9yY29kZSB2YXJpYWJsZQotICBicmFjb3VudCAgICAgICBu
dW1iZXIgb2YgcHJldmlvdXMgZXh0cmFjdGluZyBicmFja2V0cwotICBvcHRpb25zICAgICAgICB0
aGUgb3B0aW9ucyBiaXRzCi0gIGlzQ2xhc3MgICAgICAgIHRydWUgaWYgaW5zaWRlIGEgY2hhcmFj
dGVyIGNsYXNzCi0KLVJldHVybnM6ICAgICAgICAgemVybyBvciBwb3NpdGl2ZSA9PiBhIGRhdGEg
Y2hhcmFjdGVyCi0gICAgICAgICAgICAgICAgIG5lZ2F0aXZlID0+IGEgc3BlY2lhbCBlc2NhcGUg
c2VxdWVuY2UKLSAgICAgICAgICAgICAgICAgb24gZXJyb3IsIGVycm9yUHRyIGlzIHNldAotKi8K
LQotc3RhdGljIGludCBjaGVja0VzY2FwZShjb25zdCBVQ2hhcioqIHB0clB0ciwgY29uc3QgVUNo
YXIqIHBhdHRlcm5FbmQsIEVycm9yQ29kZSogZXJyb3JDb2RlUHRyLCBpbnQgYnJhY291bnQsIGJv
b2wgaXNDbGFzcykKLXsKLSAgICBjb25zdCBVQ2hhciogcHRyID0gKnB0clB0ciArIDE7Ci0KLSAg
ICAvKiBJZiBiYWNrc2xhc2ggaXMgYXQgdGhlIGVuZCBvZiB0aGUgcGF0dGVybiwgaXQncyBhbiBl
cnJvci4gKi8KLSAgICBpZiAocHRyID09IHBhdHRlcm5FbmQpIHsKLSAgICAgICAgKmVycm9yQ29k
ZVB0ciA9IEVSUjE7Ci0gICAgICAgICpwdHJQdHIgPSBwdHI7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLSAgICAKLSAgICBpbnQgYyA9ICpwdHI7Ci0gICAgCi0gICAgLyogTm9uLWFscGhhbWVy
aWNzIGFyZSBsaXRlcmFscy4gRm9yIGRpZ2l0cyBvciBsZXR0ZXJzLCBkbyBhbiBpbml0aWFsIGxv
b2t1cCBpbgotICAgICBhIHRhYmxlLiBBIG5vbi16ZXJvIHJlc3VsdCBpcyBzb21ldGhpbmcgdGhh
dCBjYW4gYmUgcmV0dXJuZWQgaW1tZWRpYXRlbHkuCi0gICAgIE90aGVyd2lzZSBmdXJ0aGVyIHBy
b2Nlc3NpbmcgbWF5IGJlIHJlcXVpcmVkLiAqLwotICAgIAotICAgIGlmIChjIDwgJzAnIHx8IGMg
PiAneicpIHsgLyogTm90IGFscGhhbWVyaWMgKi8KLSAgICB9IGVsc2UgaWYgKGludCBlc2NhcGVW
YWx1ZSA9IGVzY2FwZXNbYyAtICcwJ10pIHsKLSAgICAgICAgYyA9IGVzY2FwZVZhbHVlOwotICAg
ICAgICBpZiAoaXNDbGFzcykgewotICAgICAgICAgICAgaWYgKC1jID09IEVTQ19iKQotICAgICAg
ICAgICAgICAgIGMgPSAnXGInOyAvKiBcYiBpcyBiYWNrc2xhc2ggaW4gYSBjbGFzcyAqLwotICAg
ICAgICAgICAgZWxzZSBpZiAoLWMgPT0gRVNDX0IpCi0gICAgICAgICAgICAgICAgYyA9ICdCJzsg
LyogYW5kIFxCIGlzIGEgY2FwaXRhbCBCIGluIGEgY2xhc3MgKGluIGJyb3dzZXJzIGV2ZW50IHRo
b3VnaCBFQ01BU2NyaXB0IDE1LjEwLjIuMTkgc2F5cyBpdCByYWlzZXMgYW4gZXJyb3IpICovCi0g
ICAgICAgIH0KLSAgICAvKiBFc2NhcGVzIHRoYXQgbmVlZCBmdXJ0aGVyIHByb2Nlc3NpbmcsIG9y
IGFyZSBpbGxlZ2FsLiAqLwotICAgIAotICAgIH0gZWxzZSB7Ci0gICAgICAgIHN3aXRjaCAoYykg
ewotICAgICAgICAgICAgY2FzZSAnMSc6Ci0gICAgICAgICAgICBjYXNlICcyJzoKLSAgICAgICAg
ICAgIGNhc2UgJzMnOgotICAgICAgICAgICAgY2FzZSAnNCc6Ci0gICAgICAgICAgICBjYXNlICc1
JzoKLSAgICAgICAgICAgIGNhc2UgJzYnOgotICAgICAgICAgICAgY2FzZSAnNyc6Ci0gICAgICAg
ICAgICBjYXNlICc4JzoKLSAgICAgICAgICAgIGNhc2UgJzknOgotICAgICAgICAgICAgICAgIC8q
IEVzY2FwZSBzZXF1ZW5jZXMgc3RhcnRpbmcgd2l0aCBhIG5vbi16ZXJvIGRpZ2l0IGFyZSBiYWNr
cmVmZXJlbmNlcywKLSAgICAgICAgICAgICAgICAgdW5sZXNzIHRoZXJlIGFyZSBpbnN1ZmZpY2ll
bnQgYnJhY2tldHMsIGluIHdoaWNoIGNhc2UgdGhleSBhcmUgb2N0YWwKLSAgICAgICAgICAgICAg
ICAgZXNjYXBlIHNlcXVlbmNlcy4gVGhvc2Ugc2VxdWVuY2VzIGVuZCBvbiB0aGUgZmlyc3Qgbm9u
LW9jdGFsIGNoYXJhY3RlcgotICAgICAgICAgICAgICAgICBvciB3aGVuIHdlIG92ZXJmbG93IDAt
MjU1LCB3aGljaGV2ZXIgY29tZXMgZmlyc3QuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKCFpc0NsYXNzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFy
KiBvbGRwdHIgPSBwdHI7Ci0gICAgICAgICAgICAgICAgICAgIGMgLT0gJzAnOwotICAgICAgICAg
ICAgICAgICAgICB3aGlsZSAoKHB0ciArIDEgPCBwYXR0ZXJuRW5kKSAmJiBpc0FTQ0lJRGlnaXQo
cHRyWzFdKSAmJiBjIDw9IGJyYWNvdW50KQotICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGMg
KiAxMCArICooKytwdHIpIC0gJzAnOwotICAgICAgICAgICAgICAgICAgICBpZiAoYyA8PSBicmFj
b3VudCkgewotICAgICAgICAgICAgICAgICAgICAgICAgYyA9IC0oRVNDX1JFRiArIGMpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgcHRyID0gb2xkcHRyOyAgICAgIC8qIFB1dCB0aGUgcG9pbnRlciBiYWNr
IGFuZCBmYWxsIHRocm91Z2ggKi8KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogSGFuZGxlIGFuIG9jdGFsIG51bWJlciBmb2xsb3dpbmcgXC4g
SWYgdGhlIGZpcnN0IGRpZ2l0IGlzIDggb3IgOSwKLSAgICAgICAgICAgICAgICAgdGhpcyBpcyBu
b3Qgb2N0YWwuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKChjID0g
KnB0cikgPj0gJzgnKSB7Ci0gICAgICAgICAgICAgICAgICAgIGMgPSAnXFwnOwotICAgICAgICAg
ICAgICAgICAgICBwdHIgLT0gMTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgfQotCi0gICAgICAgICAgICAvKiBcMCBhbHdheXMgc3RhcnRzIGFuIG9jdGFsIG51
bWJlciwgYnV0IHdlIG1heSBkcm9wIHRocm91Z2ggdG8gaGVyZSB3aXRoIGEKLSAgICAgICAgICAg
ICBsYXJnZXIgZmlyc3Qgb2N0YWwgZGlnaXQuICovCi0KLSAgICAgICAgICAgIGNhc2UgJzAnOiB7
Ci0gICAgICAgICAgICAgICAgYyAtPSAnMCc7Ci0gICAgICAgICAgICAgICAgaW50IGk7Ci0gICAg
ICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8PSAyOyArK2kpIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKHB0ciArIGkgPj0gcGF0dGVybkVuZCB8fCBwdHJbaV0gPCAnMCcgfHwgcHRyW2ldID4g
JzcnKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
IGludCBjYyA9IGMgKiA4ICsgcHRyW2ldIC0gJzAnOwotICAgICAgICAgICAgICAgICAgICBpZiAo
Y2MgPiAyNTUpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgYyA9IGNjOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBwdHIgKz0g
aSAtIDE7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAg
ICAgIGNhc2UgJ3gnOiB7Ci0gICAgICAgICAgICAgICAgYyA9IDA7Ci0gICAgICAgICAgICAgICAg
aW50IGk7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8PSAyOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHB0ciArIGkgPj0gcGF0dGVybkVuZCB8fCAhaXNBU0NJSUhleERp
Z2l0KHB0cltpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAneCc7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGludCBjYyA9IHB0cltp
XTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNjID49ICdhJykKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNjIC09IDMyOyAgICAgICAgICAgICAvKiBDb252ZXJ0IHRvIHVwcGVyIGNhc2UgKi8K
LSAgICAgICAgICAgICAgICAgICAgYyA9IGMgKiAxNiArIGNjIC0gKChjYyA8ICdBJykgPyAnMCcg
OiAoJ0EnIC0gMTApKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgcHRyICs9
IGkgLSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBjYXNlICd1JzogewotICAgICAgICAgICAgICAgIGMgPSAwOwotICAgICAgICAgICAgICAg
IGludCBpOwotICAgICAgICAgICAgICAgIGZvciAoaSA9IDE7IGkgPD0gNDsgKytpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChwdHIgKyBpID49IHBhdHRlcm5FbmQgfHwgIWlzQVNDSUlIZXhE
aWdpdChwdHJbaV0pKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gJ3UnOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBpbnQgY2MgPSBwdHJb
aV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChjYyA+PSAnYScpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjYyAtPSAzMjsgICAgICAgICAgICAgLyogQ29udmVydCB0byB1cHBlciBjYXNlICov
Ci0gICAgICAgICAgICAgICAgICAgIGMgPSBjICogMTYgKyBjYyAtICgoY2MgPCAnQScpID8gJzAn
IDogKCdBJyAtIDEwKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHB0ciAr
PSBpIC0gMTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgY2FzZSAnYyc6Ci0gICAgICAgICAgICAgICAgaWYgKCsrcHRyID09IHBhdHRlcm5FbmQp
IHsKLSAgICAgICAgICAgICAgICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjI7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiAwOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBjID0gKnB0cjsKLQotICAgICAgICAgICAgICAgIC8qIFRvIG1hdGNo
IEZpcmVmb3gsIGluc2lkZSBhIGNoYXJhY3RlciBjbGFzcywgd2UgYWxzbyBhY2NlcHQKLSAgICAg
ICAgICAgICAgICAgICBudW1iZXJzIGFuZCAnXycgYXMgY29udHJvbCBjaGFyYWN0ZXJzICovCi0g
ICAgICAgICAgICAgICAgaWYgKCghaXNDbGFzcyAmJiAhaXNBU0NJSUFscGhhKGMpKSB8fCAoIWlz
QVNDSUlBbHBoYW51bWVyaWMoYykgJiYgYyAhPSAnXycpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGMgPSAnXFwnOwotICAgICAgICAgICAgICAgICAgICBwdHIgLT0gMjsKLSAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgLyogQSBs
ZXR0ZXIgaXMgdXBwZXItY2FzZWQ7IHRoZW4gdGhlIDB4NDAgYml0IGlzIGZsaXBwZWQuIFRoaXMg
Y29kaW5nCi0gICAgICAgICAgICAgICAgIGlzIEFTQ0lJLXNwZWNpZmljLCBidXQgdGhlbiB0aGUg
d2hvbGUgY29uY2VwdCBvZiBcY3ggaXMgQVNDSUktc3BlY2lmaWMuICovCi0gICAgICAgICAgICAg
ICAgYyA9IHRvQVNDSUlVcHBlcihjKSBeIDB4NDA7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICB9Ci0gICAgfQotICAgIAotICAgICpwdHJQdHIgPSBwdHI7Ci0gICAgcmV0dXJu
IGM7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCi0qICAgICAgICAgICAgQ2hlY2sgZm9yIGNvdW50ZWQgcmVwZWF0ICAgICAgICAgICAgKgot
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyog
VGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgd2hlbiBhICd7JyBpcyBlbmNvdW50ZXJlZCBpbiBhIHBs
YWNlIHdoZXJlIGl0IG1pZ2h0Ci1zdGFydCBhIHF1YW50aWZpZXIuIEl0IGxvb2tzIGFoZWFkIHRv
IHNlZSBpZiBpdCByZWFsbHkgaXMgYSBxdWFudGlmaWVyIG9yIG5vdC4KLUl0IGlzIG9ubHkgYSBx
dWFudGlmaWVyIGlmIGl0IGlzIG9uZSBvZiB0aGUgZm9ybXMge2RkZH0ge2RkZCx9IG9yIHtkZGQs
ZGRkfQotd2hlcmUgdGhlIGRkZHMgYXJlIGRpZ2l0cy4KLQotQXJndW1lbnRzOgotICBwICAgICAg
ICAgcG9pbnRlciB0byB0aGUgZmlyc3QgY2hhciBhZnRlciAneycKLQotUmV0dXJuczogICAgdHJ1
ZSBvciBmYWxzZQotKi8KLQotc3RhdGljIGJvb2wgaXNDb3VudGVkUmVwZWF0KGNvbnN0IFVDaGFy
KiBwLCBjb25zdCBVQ2hhciogcGF0dGVybkVuZCkKLXsKLSAgICBpZiAocCA+PSBwYXR0ZXJuRW5k
IHx8ICFpc0FTQ0lJRGlnaXQoKnApKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcCsrOwot
ICAgIHdoaWxlIChwIDwgcGF0dGVybkVuZCAmJiBpc0FTQ0lJRGlnaXQoKnApKQotICAgICAgICBw
Kys7Ci0gICAgaWYgKHAgPCBwYXR0ZXJuRW5kICYmICpwID09ICd9JykKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgCi0gICAgaWYgKHAgPj0gcGF0dGVybkVuZCB8fCAqcCsrICE9ICcsJykKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmIChwIDwgcGF0dGVybkVuZCAmJiAqcCA9PSAnfScp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIAotICAgIGlmIChwID49IHBhdHRlcm5FbmQgfHwg
IWlzQVNDSUlEaWdpdCgqcCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwKys7Ci0gICAg
d2hpbGUgKHAgPCBwYXR0ZXJuRW5kICYmIGlzQVNDSUlEaWdpdCgqcCkpCi0gICAgICAgIHArKzsK
LSAgICAKLSAgICByZXR1cm4gKHAgPCBwYXR0ZXJuRW5kICYmICpwID09ICd9Jyk7Ci19Ci0KLS8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAg
ICAgUmVhZCByZXBlYXQgY291bnRzICAgICAgICAgICAgICAgICAgICAgKgotKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogUmVhZCBhbiBpdGVt
IG9mIHRoZSBmb3JtIHtuLG19IGFuZCByZXR1cm4gdGhlIHZhbHVlcy4gVGhpcyBpcyBjYWxsZWQg
b25seQotYWZ0ZXIgaXNDb3VudGVkUmVwZWF0KCkgaGFzIGNvbmZpcm1lZCB0aGF0IGEgcmVwZWF0
LWNvdW50IHF1YW50aWZpZXIgZXhpc3RzLAotc28gdGhlIHN5bnRheCBpcyBndWFyYW50ZWVkIHRv
IGJlIGNvcnJlY3QsIGJ1dCB3ZSBuZWVkIHRvIGNoZWNrIHRoZSB2YWx1ZXMuCi0KLUFyZ3VtZW50
czoKLSAgcCAgICAgICAgICAgICAgcG9pbnRlciB0byBmaXJzdCBjaGFyIGFmdGVyICd7JwotICBt
aW5wICAgICAgICAgICBwb2ludGVyIHRvIGludCBmb3IgbWluCi0gIG1heHAgICAgICAgICAgIHBv
aW50ZXIgdG8gaW50IGZvciBtYXgKLSAgICAgICAgICAgICAgICAgcmV0dXJuZWQgYXMgLTEgaWYg
bm8gbWF4Ci0gIGVycm9yQ29kZVB0ciAgIHBvaW50cyB0byBlcnJvciBjb2RlIHZhcmlhYmxlCi0K
LVJldHVybnM6ICAgICAgICAgcG9pbnRlciB0byAnfScgb24gc3VjY2VzczsKLSAgICAgICAgICAg
ICAgICAgY3VycmVudCBwdHIgb24gZXJyb3IsIHdpdGggZXJyb3JDb2RlUHRyIHNldCBub24temVy
bwotKi8KLQotc3RhdGljIGNvbnN0IFVDaGFyKiByZWFkUmVwZWF0Q291bnRzKGNvbnN0IFVDaGFy
KiBwLCBpbnQqIG1pbnAsIGludCogbWF4cCwgRXJyb3JDb2RlKiBlcnJvckNvZGVQdHIpCi17Ci0g
ICAgaW50IG1pbiA9IDA7Ci0gICAgaW50IG1heCA9IC0xOwotICAgIAotICAgIC8qIFJlYWQgdGhl
IG1pbmltdW0gdmFsdWUgYW5kIGRvIGEgcGFyYW5vaWQgY2hlY2s6IGEgbmVnYXRpdmUgdmFsdWUg
aW5kaWNhdGVzCi0gICAgIGFuIGludGVnZXIgb3ZlcmZsb3cuICovCi0gICAgCi0gICAgd2hpbGUg
KGlzQVNDSUlEaWdpdCgqcCkpCi0gICAgICAgIG1pbiA9IG1pbiAqIDEwICsgKnArKyAtICcwJzsK
LSAgICBpZiAobWluIDwgMCB8fCBtaW4gPiA2NTUzNSkgewotICAgICAgICAqZXJyb3JDb2RlUHRy
ID0gRVJSNTsKLSAgICAgICAgcmV0dXJuIHA7Ci0gICAgfQotICAgIAotICAgIC8qIFJlYWQgdGhl
IG1heGltdW0gdmFsdWUgaWYgdGhlcmUgaXMgb25lLCBhbmQgYWdhaW4gZG8gYSBwYXJhbm9pZCBv
biBpdHMgc2l6ZS4KLSAgICAgQWxzbywgbWF4IG11c3Qgbm90IGJlIGxlc3MgdGhhbiBtaW4uICov
Ci0gICAgCi0gICAgaWYgKCpwID09ICd9JykKLSAgICAgICAgbWF4ID0gbWluOwotICAgIGVsc2Ug
ewotICAgICAgICBpZiAoKigrK3ApICE9ICd9JykgewotICAgICAgICAgICAgbWF4ID0gMDsKLSAg
ICAgICAgICAgIHdoaWxlIChpc0FTQ0lJRGlnaXQoKnApKQotICAgICAgICAgICAgICAgIG1heCA9
IG1heCAqIDEwICsgKnArKyAtICcwJzsKLSAgICAgICAgICAgIGlmIChtYXggPCAwIHx8IG1heCA+
IDY1NTM1KSB7Ci0gICAgICAgICAgICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjU7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIHA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAobWF4IDwg
bWluKSB7Ci0gICAgICAgICAgICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjQ7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIHA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0g
ICAgLyogRmlsbCBpbiB0aGUgcmVxdWlyZWQgdmFyaWFibGVzLCBhbmQgcGFzcyBiYWNrIHRoZSBw
b2ludGVyIHRvIHRoZSB0ZXJtaW5hdGluZwotICAgICAnfScuICovCi0gICAgCi0gICAgKm1pbnAg
PSBtaW47Ci0gICAgKm1heHAgPSBtYXg7Ci0gICAgcmV0dXJuIHA7Ci19Ci0KLS8qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgRmluZCBmaXJz
dCBzaWduaWZpY2FudCBvcCBjb2RlICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogVGhpcyBpcyBjYWxsZWQgYnkgc2V2
ZXJhbCBmdW5jdGlvbnMgdGhhdCBzY2FuIGEgY29tcGlsZWQgZXhwcmVzc2lvbiBsb29raW5nCi1m
b3IgYSBmaXhlZCBmaXJzdCBjaGFyYWN0ZXIsIG9yIGFuIGFuY2hvcmluZyBvcCBjb2RlIGV0Yy4g
SXQgc2tpcHMgb3ZlciB0aGluZ3MKLXRoYXQgZG8gbm90IGluZmx1ZW5jZSB0aGlzLgotCi1Bcmd1
bWVudHM6Ci0gIGNvZGUgICAgICAgICBwb2ludGVyIHRvIHRoZSBzdGFydCBvZiB0aGUgZ3JvdXAK
LVJldHVybnM6ICAgICAgIHBvaW50ZXIgdG8gdGhlIGZpcnN0IHNpZ25pZmljYW50IG9wY29kZQot
Ki8KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGZpcnN0U2lnbmlmaWNhbnRPcGNvZGUo
Y29uc3QgdW5zaWduZWQgY2hhciogY29kZSkKLXsKLSAgICB3aGlsZSAoKmNvZGUgPT0gT1BfQlJB
TlVNQkVSKQotICAgICAgICBjb2RlICs9IDM7Ci0gICAgcmV0dXJuIGNvZGU7Ci19Ci0KLXN0YXRp
YyBjb25zdCB1bnNpZ25lZCBjaGFyKiBmaXJzdFNpZ25pZmljYW50T3Bjb2RlU2tpcHBpbmdBc3Nl
cnRpb25zKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUpCi17Ci0gICAgd2hpbGUgKHRydWUpIHsK
LSAgICAgICAgc3dpdGNoICgqY29kZSkgewotICAgICAgICAgICAgY2FzZSBPUF9BU1NFUlRfTk9U
OgotICAgICAgICAgICAgICAgIGFkdmFuY2VUb0VuZE9mQnJhY2tldChjb2RlKTsKLSAgICAgICAg
ICAgICAgICBjb2RlICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIE9QX1dPUkRfQk9VTkRBUlk6Ci0gICAgICAgICAgICBjYXNlIE9QX05P
VF9XT1JEX0JPVU5EQVJZOgotICAgICAgICAgICAgICAgICsrY29kZTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgT1BfQlJBTlVNQkVSOgotICAgICAgICAgICAgICAg
IGNvZGUgKz0gMzsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGRlZmF1bHQ6
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNvZGU7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLS8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAg
ICAgICBHZXQgb3RoZXJjYXNlIHJhbmdlICAgICAgICAgICAgICAgICAgKgotKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogVGhpcyBmdW5jdGlv
biBpcyBwYXNzZWQgdGhlIHN0YXJ0IGFuZCBlbmQgb2YgYSBjbGFzcyByYW5nZSwgaW4gVVRGLTgg
bW9kZQotd2l0aCBVQ1Agc3VwcG9ydC4gSXQgc2VhcmNoZXMgdXAgdGhlIGNoYXJhY3RlcnMsIGxv
b2tpbmcgZm9yIGludGVybmFsIHJhbmdlcyBvZgotY2hhcmFjdGVycyBpbiB0aGUgIm90aGVyIiBj
YXNlLiBFYWNoIGNhbGwgcmV0dXJucyB0aGUgbmV4dCBvbmUsIHVwZGF0aW5nIHRoZQotc3RhcnQg
YWRkcmVzcy4KLQotQXJndW1lbnRzOgotICBjcHRyICAgICAgICBwb2ludHMgdG8gc3RhcnRpbmcg
Y2hhcmFjdGVyIHZhbHVlOyB1cGRhdGVkCi0gIGQgICAgICAgICAgIGVuZCB2YWx1ZQotICBvY3B0
ciAgICAgICB3aGVyZSB0byBwdXQgc3RhcnQgb2Ygb3RoZXJjYXNlIHJhbmdlCi0gIG9kcHRyICAg
ICAgIHdoZXJlIHRvIHB1dCBlbmQgb2Ygb3RoZXJjYXNlIHJhbmdlCi0KLVlpZWxkOiAgICAgICAg
dHJ1ZSB3aGVuIHJhbmdlIHJldHVybmVkOyBmYWxzZSB3aGVuIG5vIG1vcmUKLSovCi0KLXN0YXRp
YyBib29sIGdldE90aGVyY2FzZVJhbmdlKGludCogY3B0ciwgaW50IGQsIGludCogb2NwdHIsIGlu
dCogb2RwdHIpCi17Ci0gICAgaW50IGMsIG90aGVyY2FzZSA9IDA7Ci0gICAgCi0gICAgZm9yIChj
ID0gKmNwdHI7IGMgPD0gZDsgYysrKSB7Ci0gICAgICAgIGlmICgob3RoZXJjYXNlID0ganNjX3Bj
cmVfdWNwX290aGVyY2FzZShjKSkgPj0gMCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgIH0KLSAg
ICAKLSAgICBpZiAoYyA+IGQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAqb2Nw
dHIgPSBvdGhlcmNhc2U7Ci0gICAgaW50IG5leHQgPSBvdGhlcmNhc2UgKyAxOwotICAgIAotICAg
IGZvciAoKytjOyBjIDw9IGQ7IGMrKykgewotICAgICAgICBpZiAoanNjX3BjcmVfdWNwX290aGVy
Y2FzZShjKSAhPSBuZXh0KQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIG5leHQrKzsKLSAg
ICB9Ci0gICAgCi0gICAgKm9kcHRyID0gbmV4dCAtIDE7Ci0gICAgKmNwdHIgPSBjOwotICAgIAot
ICAgIHJldHVybiB0cnVlOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKgotICogICAgICAgQ29udmVydCBjaGFyYWN0ZXIgdmFsdWUgdG8gVVRG
LTggICAgICAgICAqCi0gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8KLQotLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhbiBpbnRlZ2VyIHZhbHVlIGluIHRo
ZSByYW5nZSAwIC0gMHg3ZmZmZmZmZgotIGFuZCBlbmNvZGVzIGl0IGFzIGEgVVRGLTggY2hhcmFj
dGVyIGluIDAgdG8gNiBieXRlcy4KLSAKLSBBcmd1bWVudHM6Ci0gY3ZhbHVlICAgICB0aGUgY2hh
cmFjdGVyIHZhbHVlCi0gYnVmZmVyICAgICBwb2ludGVyIHRvIGJ1ZmZlciBmb3IgcmVzdWx0IC0g
YXQgbGVhc3QgNiBieXRlcyBsb25nCi0gCi0gUmV0dXJuczogICAgIG51bWJlciBvZiBjaGFyYWN0
ZXJzIHBsYWNlZCBpbiB0aGUgYnVmZmVyCi0gKi8KLQotc3RhdGljIGludCBlbmNvZGVVVEY4KGlu
dCBjdmFsdWUsIHVuc2lnbmVkIGNoYXIgKmJ1ZmZlcikKLXsKLSAgICBpbnQgaTsKLSAgICBmb3Ig
KGkgPSAwOyBpIDwganNjX3BjcmVfdXRmOF90YWJsZTFfc2l6ZTsgaSsrKQotICAgICAgICBpZiAo
Y3ZhbHVlIDw9IGpzY19wY3JlX3V0ZjhfdGFibGUxW2ldKQotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgYnVmZmVyICs9IGk7Ci0gICAgZm9yIChpbnQgaiA9IGk7IGogPiAwOyBqLS0pIHsKLSAgICAg
ICAgKmJ1ZmZlci0tID0gMHg4MCB8IChjdmFsdWUgJiAweDNmKTsKLSAgICAgICAgY3ZhbHVlID4+
PSA2OwotICAgIH0KLSAgICAqYnVmZmVyID0ganNjX3BjcmVfdXRmOF90YWJsZTJbaV0gfCBjdmFs
dWU7Ci0gICAgcmV0dXJuIGkgKyAxOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgICAgQ29tcGlsZSBvbmUgYnJhbmNoICAg
ICAgICAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCi0KLS8qIFNjYW4gdGhlIHBhdHRlcm4sIGNvbXBpbGluZyBpdCBpbnRvIHRo
ZSBjb2RlIHZlY3Rvci4KLQotQXJndW1lbnRzOgotICBvcHRpb25zICAgICAgICB0aGUgb3B0aW9u
IGJpdHMKLSAgYnJhY2tldHMgICAgICAgcG9pbnRzIHRvIG51bWJlciBvZiBleHRyYWN0aW5nIGJy
YWNrZXRzIHVzZWQKLSAgY29kZVB0ciAgICAgICAgcG9pbnRzIHRvIHRoZSBwb2ludGVyIHRvIHRo
ZSBjdXJyZW50IGNvZGUgcG9pbnQKLSAgcHRyUHRyICAgICAgICAgcG9pbnRzIHRvIHRoZSBjdXJy
ZW50IHBhdHRlcm4gcG9pbnRlcgotICBlcnJvckNvZGVQdHIgICBwb2ludHMgdG8gZXJyb3IgY29k
ZSB2YXJpYWJsZQotICBmaXJzdGJ5dGVwdHIgICBzZXQgdG8gaW5pdGlhbCBsaXRlcmFsIGNoYXJh
Y3Rlciwgb3IgPCAwIChSRVFfVU5TRVQsIFJFUV9OT05FKQotICByZXFieXRlcHRyICAgICBzZXQg
dG8gdGhlIGxhc3QgbGl0ZXJhbCBjaGFyYWN0ZXIgcmVxdWlyZWQsIGVsc2UgPCAwCi0gIGNkICAg
ICAgICAgICAgIGNvbnRhaW5zIHBvaW50ZXJzIHRvIHRhYmxlcyBldGMuCi0KLVJldHVybnM6ICAg
ICAgICAgdHJ1ZSBvbiBzdWNjZXNzCi0gICAgICAgICAgICAgICAgIGZhbHNlLCB3aXRoICplcnJv
ckNvZGVQdHIgc2V0IG5vbi16ZXJvIG9uIGVycm9yCi0qLwotCi1zdGF0aWMgaW5saW5lIGJvb2wg
c2FmZWx5Q2hlY2tOZXh0Q2hhcihjb25zdCBVQ2hhciogcHRyLCBjb25zdCBVQ2hhciogcGF0dGVy
bkVuZCwgVUNoYXIgZXhwZWN0ZWQpCi17Ci0gICAgcmV0dXJuICgocHRyICsgMSA8IHBhdHRlcm5F
bmQpICYmIHB0clsxXSA9PSBleHBlY3RlZCk7Ci19Ci0KLXN0YXRpYyBib29sCi1jb21waWxlQnJh
bmNoKGludCBvcHRpb25zLCBpbnQqIGJyYWNrZXRzLCB1bnNpZ25lZCBjaGFyKiogY29kZVB0ciwK
LSAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiogcHRyUHRyLCBjb25zdCBVQ2hhciogcGF0dGVy
bkVuZCwgRXJyb3JDb2RlKiBlcnJvckNvZGVQdHIsIGludCAqZmlyc3RieXRlcHRyLAotICAgICAg
ICAgICAgICAgaW50KiByZXFieXRlcHRyLCBDb21waWxlRGF0YSYgY2QpCi17Ci0gICAgaW50IHJl
cGVhdFR5cGUsIG9wVHlwZTsKLSAgICBpbnQgcmVwZWF0TWluID0gMCwgcmVwZWF0X21heCA9IDA7
ICAgICAgLyogVG8gcGxlYXNlIHBpY2t5IGNvbXBpbGVycyAqLwotICAgIGludCBicmF2YWx1ZSA9
IDA7Ci0gICAgaW50IHJlcXZhcnksIHRlbXByZXF2YXJ5OwotICAgIGludCBjOwotICAgIHVuc2ln
bmVkIGNoYXIqIGNvZGUgPSAqY29kZVB0cjsKLSAgICB1bnNpZ25lZCBjaGFyKiB0ZW1wY29kZTsK
LSAgICBib29sIGRpZEdyb3VwU2V0Rmlyc3RCeXRlID0gZmFsc2U7Ci0gICAgY29uc3QgVUNoYXIq
IHB0ciA9ICpwdHJQdHI7Ci0gICAgY29uc3QgVUNoYXIqIHRlbXBwdHI7Ci0gICAgdW5zaWduZWQg
Y2hhciogcHJldmlvdXMgPSBOVUxMOwotICAgIHVuc2lnbmVkIGNoYXIgY2xhc3NiaXRzWzMyXTsK
LSAgICAKLSAgICBib29sIGNsYXNzX3V0Zjg7Ci0gICAgdW5zaWduZWQgY2hhciogY2xhc3NfdXRm
OGRhdGE7Ci0gICAgdW5zaWduZWQgY2hhciB1dGY4X2NoYXJbNl07Ci0gICAgCi0gICAgLyogSW5p
dGlhbGl6ZSBubyBmaXJzdCBieXRlLCBubyByZXF1aXJlZCBieXRlLiBSRVFfVU5TRVQgbWVhbnMg
Im5vIGNoYXIKLSAgICAgbWF0Y2hpbmcgZW5jb3VudGVyZWQgeWV0Ii4gSXQgZ2V0cyBjaGFuZ2Vk
IHRvIFJFUV9OT05FIGlmIHdlIGhpdCBzb21ldGhpbmcgdGhhdAotICAgICBtYXRjaGVzIGEgbm9u
LWZpeGVkIGNoYXIgZmlyc3QgY2hhcjsgcmVxQnl0ZSBqdXN0IHJlbWFpbnMgdW5zZXQgaWYgd2Ug
bmV2ZXIKLSAgICAgZmluZCBvbmUuCi0gICAgIAotICAgICBXaGVuIHdlIGhpdCBhIHJlcGVhdCB3
aG9zZSBtaW5pbXVtIGlzIHplcm8sIHdlIG1heSBoYXZlIHRvIGFkanVzdCB0aGVzZSB2YWx1ZXMK
LSAgICAgdG8gdGFrZSB0aGUgemVybyByZXBlYXQgaW50byBhY2NvdW50LiBUaGlzIGlzIGltcGxl
bWVudGVkIGJ5IHNldHRpbmcgdGhlbSB0bwotICAgICB6ZXJvRmlyc3RCeXRlIGFuZCB6ZXJvUmVx
Qnl0ZSB3aGVuIHN1Y2ggYSByZXBlYXQgaXMgZW5jb3VudGVyZWQuIFRoZSBpbmRpdmlkdWFsCi0g
ICAgIGl0ZW0gdHlwZXMgdGhhdCBjYW4gYmUgcmVwZWF0ZWQgc2V0IHRoZXNlIGJhY2tvZmYgdmFy
aWFibGVzIGFwcHJvcHJpYXRlbHkuICovCi0gICAgCi0gICAgaW50IGZpcnN0Qnl0ZSA9IFJFUV9V
TlNFVDsKLSAgICBpbnQgcmVxQnl0ZSA9IFJFUV9VTlNFVDsKLSAgICBpbnQgemVyb1JlcUJ5dGUg
PSBSRVFfVU5TRVQ7Ci0gICAgaW50IHplcm9GaXJzdEJ5dGUgPSBSRVFfVU5TRVQ7Ci0gICAgCi0g
ICAgLyogVGhlIHZhcmlhYmxlIHJlcUNhc2VPcHQgY29udGFpbnMgZWl0aGVyIHRoZSBSRVFfSUdO
T1JFX0NBU0UgdmFsdWUgb3IgemVybywKLSAgICAgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IHNl
dHRpbmcgb2YgdGhlIGlnbm9yZXMtY2FzZSBmbGFnLiBSRVFfSUdOT1JFX0NBU0UgaXMgYSBiaXQK
LSAgICAgdmFsdWUgPiAyNTUuIEl0IGlzIGFkZGVkIGludG8gdGhlIGZpcnN0Qnl0ZSBvciByZXFC
eXRlIHZhcmlhYmxlcyB0byByZWNvcmQgdGhlCi0gICAgIGNhc2Ugc3RhdHVzIG9mIHRoZSB2YWx1
ZS4gVGhpcyBpcyB1c2VkIG9ubHkgZm9yIEFTQ0lJIGNoYXJhY3RlcnMuICovCi0gICAgCi0gICAg
aW50IHJlcUNhc2VPcHQgPSAob3B0aW9ucyAmIElnbm9yZUNhc2VPcHRpb24pID8gUkVRX0lHTk9S
RV9DQVNFIDogMDsKLSAgICAKLSAgICAvKiBTd2l0Y2ggb24gbmV4dCBjaGFyYWN0ZXIgdW50aWwg
dGhlIGVuZCBvZiB0aGUgYnJhbmNoICovCi0gICAgCi0gICAgZm9yICg7OyBwdHIrKykgewotICAg
ICAgICBib29sIG5lZ2F0ZUNsYXNzOwotICAgICAgICBib29sIHNob3VsZEZsaXBOZWdhdGlvbjsg
LyogSWYgYSBuZWdhdGl2ZSBzcGVjaWFsIHN1Y2ggYXMgXFMgaXMgdXNlZCwgd2Ugc2hvdWxkIG5l
Z2F0ZSB0aGUgd2hvbGUgY2xhc3MgdG8gcHJvcGVybHkgc3VwcG9ydCBVbmljb2RlLiAqLwotICAg
ICAgICBpbnQgY2xhc3NDaGFyQ291bnQ7Ci0gICAgICAgIGludCBjbGFzc0xhc3RDaGFyOwotICAg
ICAgICBpbnQgc2tpcEJ5dGVzOwotICAgICAgICBpbnQgc3ViUmVxQnl0ZTsKLSAgICAgICAgaW50
IHN1YkZpcnN0Qnl0ZTsKLSAgICAgICAgaW50IG1jTGVuZ3RoOwotICAgICAgICB1bnNpZ25lZCBj
aGFyIG1jYnVmZmVyWzhdOwotICAgICAgICAKLSAgICAgICAgLyogTmV4dCBieXRlIGluIHRoZSBw
YXR0ZXJuICovCi0gICAgICAgIAotICAgICAgICBjID0gcHRyIDwgcGF0dGVybkVuZCA/ICpwdHIg
OiAwOwotICAgICAgICAKLSAgICAgICAgLyogRmlsbCBpbiBsZW5ndGggb2YgYSBwcmV2aW91cyBj
YWxsb3V0LCBleGNlcHQgd2hlbiB0aGUgbmV4dCB0aGluZyBpcwotICAgICAgICAgYSBxdWFudGlm
aWVyLiAqLwotICAgICAgICAKLSAgICAgICAgYm9vbCBpc1F1YW50aWZpZXIgPSBjID09ICcqJyB8
fCBjID09ICcrJyB8fCBjID09ICc/JyB8fCAoYyA9PSAneycgJiYgaXNDb3VudGVkUmVwZWF0KHB0
ciArIDEsIHBhdHRlcm5FbmQpKTsKLSAgICAgICAgCi0gICAgICAgIHN3aXRjaCAoYykgewotICAg
ICAgICAgICAgLyogVGhlIGJyYW5jaCB0ZXJtaW5hdGVzIGF0IGVuZCBvZiBzdHJpbmcsIHwsIG9y
ICkuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIDA6Ci0gICAgICAgICAg
ICAgICAgaWYgKHB0ciA8IHBhdHRlcm5FbmQpCi0gICAgICAgICAgICAgICAgICAgIGdvdG8gTk9S
TUFMX0NIQVI7Ci0gICAgICAgICAgICAgICAgLy8gRW5kIG9mIHN0cmluZzsgZmFsbCB0aHJvdWdo
Ci0gICAgICAgICAgICBjYXNlICd8JzoKLSAgICAgICAgICAgIGNhc2UgJyknOgotICAgICAgICAg
ICAgICAgICpmaXJzdGJ5dGVwdHIgPSBmaXJzdEJ5dGU7Ci0gICAgICAgICAgICAgICAgKnJlcWJ5
dGVwdHIgPSByZXFCeXRlOwotICAgICAgICAgICAgICAgICpjb2RlUHRyID0gY29kZTsKLSAgICAg
ICAgICAgICAgICAqcHRyUHRyID0gcHRyOwotICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogSGFuZGxlIHNpbmdsZS1jaGFyYWN0ZXIg
bWV0YWNoYXJhY3RlcnMuIEluIG11bHRpbGluZSBtb2RlLCBeIGRpc2FibGVzCi0gICAgICAgICAg
ICAgdGhlIHNldHRpbmcgb2YgYW55IGZvbGxvd2luZyBjaGFyIGFzIGEgZmlyc3QgY2hhcmFjdGVy
LiAqLwotCi0gICAgICAgICAgICBjYXNlICdeJzoKLSAgICAgICAgICAgICAgICBpZiAob3B0aW9u
cyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVMaW5lc09wdGlvbikgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoZmlyc3RCeXRlID09IFJFUV9VTlNFVCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0Qnl0ZSA9IFJFUV9OT05FOwotICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfQk9M
OwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0g
T1BfQ0lSQzsKLSAgICAgICAgICAgICAgICBwcmV2aW91cyA9IE5VTEw7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIGNhc2UgJyQnOgotICAgICAgICAgICAgICAgIHByZXZp
b3VzID0gTlVMTDsKLSAgICAgICAgICAgICAgICBpZiAob3B0aW9ucyAmIE1hdGNoQWNyb3NzTXVs
dGlwbGVMaW5lc09wdGlvbikKLSAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9FT0w7Ci0g
ICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0RPTEw7
Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgICAgIC8qIFRoZXJlIGNhbiBuZXZl
ciBiZSBhIGZpcnN0IGNoYXIgaWYgJy4nIGlzIGZpcnN0LCB3aGF0ZXZlciBoYXBwZW5zIGFib3V0
Ci0gICAgICAgICAgICAgcmVwZWF0cy4gVGhlIHZhbHVlIG9mIHJlcUJ5dGUgZG9lc24ndCBjaGFu
Z2UgZWl0aGVyLiAqLwotCi0gICAgICAgICAgICBjYXNlICcuJzoKLSAgICAgICAgICAgICAgICBp
ZiAoZmlyc3RCeXRlID09IFJFUV9VTlNFVCkKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RCeXRl
ID0gUkVRX05PTkU7Ci0gICAgICAgICAgICAgICAgemVyb0ZpcnN0Qnl0ZSA9IGZpcnN0Qnl0ZTsK
LSAgICAgICAgICAgICAgICB6ZXJvUmVxQnl0ZSA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAg
cHJldmlvdXMgPSBjb2RlOwotICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9OT1RfTkVXTElO
RTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IC8qIENoYXJhY3RlciBjbGFzc2VzLiBJZiB0aGUgaW5jbHVkZWQgY2hhcmFjdGVycyBhcmUgYWxs
IDwgMjU2LCB3ZSBidWlsZCBhCi0gICAgICAgICAgICAgMzItYnl0ZSBiaXRtYXAgb2YgdGhlIHBl
cm1pdHRlZCBjaGFyYWN0ZXJzLCBleGNlcHQgaW4gdGhlIHNwZWNpYWwgY2FzZQotICAgICAgICAg
ICAgIHdoZXJlIHRoZXJlIGlzIG9ubHkgb25lIHN1Y2ggY2hhcmFjdGVyLiBGb3IgbmVnYXRlZCBj
bGFzc2VzLCB3ZSBidWlsZCB0aGUKLSAgICAgICAgICAgICBtYXAgYXMgdXN1YWwsIHRoZW4gaW52
ZXJ0IGl0IGF0IHRoZSBlbmQuIEhvd2V2ZXIsIHdlIHVzZSBhIGRpZmZlcmVudCBvcGNvZGUKLSAg
ICAgICAgICAgICBzbyB0aGF0IGRhdGEgY2hhcmFjdGVycyA+IDI1NSBjYW4gYmUgaGFuZGxlZCBj
b3JyZWN0bHkuCi0gICAgICAgICAgICAgCi0gICAgICAgICAgICAgSWYgdGhlIGNsYXNzIGNvbnRh
aW5zIGNoYXJhY3RlcnMgb3V0c2lkZSB0aGUgMC0yNTUgcmFuZ2UsIGEgZGlmZmVyZW50Ci0gICAg
ICAgICAgICAgb3Bjb2RlIGlzIGNvbXBpbGVkLiBJdCBtYXkgb3B0aW9uYWxseSBoYXZlIGEgYml0
IG1hcCBmb3IgY2hhcmFjdGVycyA8IDI1NiwKLSAgICAgICAgICAgICBidXQgdGhvc2UgYWJvdmUg
YXJlIGFyZSBleHBsaWNpdGx5IGxpc3RlZCBhZnRlcndhcmRzLiBBIGZsYWcgYnl0ZSB0ZWxscwot
ICAgICAgICAgICAgIHdoZXRoZXIgdGhlIGJpdG1hcCBpcyBwcmVzZW50LCBhbmQgd2hldGhlciB0
aGlzIGlzIGEgbmVnYXRlZCBjbGFzcyBvciBub3QuCi0gICAgICAgICAgICAgKi8KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgJ1snOiB7Ci0gICAgICAgICAgICAgICAgcHJldmlv
dXMgPSBjb2RlOwotICAgICAgICAgICAgICAgIHNob3VsZEZsaXBOZWdhdGlvbiA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFBDUkUgc3VwcG9ydHMgUE9TSVgg
Y2xhc3Mgc3R1ZmYgaW5zaWRlIGEgY2xhc3MuIFBlcmwgZ2l2ZXMgYW4gZXJyb3IgaWYKLSAgICAg
ICAgICAgICAgICAgdGhleSBhcmUgZW5jb3VudGVyZWQgYXQgdGhlIHRvcCBsZXZlbCwgc28gd2Un
bGwgZG8gdGhhdCB0b28uICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyog
SWYgdGhlIGZpcnN0IGNoYXJhY3RlciBpcyAnXicsIHNldCB0aGUgbmVnYXRpb24gZmxhZyBhbmQg
c2tpcCBpdC4gKi8KLQotICAgICAgICAgICAgICAgIGlmIChwdHIgKyAxID49IHBhdHRlcm5FbmQp
IHsKLSAgICAgICAgICAgICAgICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjY7Ci0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBpZiAocHRyWzFdID09ICdeJykgewotICAgICAgICAgICAgICAgICAgICBuZWdhdGVDbGFz
cyA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICsrcHRyOwotICAgICAgICAgICAgICAgIH0g
ZWxzZQotICAgICAgICAgICAgICAgICAgICBuZWdhdGVDbGFzcyA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEtlZXAgYSBjb3VudCBvZiBjaGFycyB3aXRoIHZh
bHVlcyA8IDI1NiBzbyB0aGF0IHdlIGNhbiBvcHRpbWl6ZSB0aGUgY2FzZQotICAgICAgICAgICAg
ICAgICBvZiBqdXN0IGEgc2luZ2xlIGNoYXJhY3RlciAoYXMgbG9uZyBhcyBpdCdzIDwgMjU2KS4g
Rm9yIGhpZ2hlciB2YWx1ZWQgVVRGLTgKLSAgICAgICAgICAgICAgICAgY2hhcmFjdGVycywgd2Ug
ZG9uJ3QgeWV0IGRvIGFueSBvcHRpbWl6YXRpb24uICovCi0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgY2xhc3NDaGFyQ291bnQgPSAwOwotICAgICAgICAgICAgICAgIGNsYXNzTGFz
dENoYXIgPSAtMTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjbGFzc191dGY4
ID0gZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAvKiBObyBjaGFycyA+PSAyNTYgKi8KLSAg
ICAgICAgICAgICAgICBjbGFzc191dGY4ZGF0YSA9IGNvZGUgKyBMSU5LX1NJWkUgKyAzNDsgICAv
KiBGb3IgVVRGLTggaXRlbXMgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAv
KiBJbml0aWFsaXplIHRoZSAzMi1jaGFyIGJpdCBtYXAgdG8gYWxsIHplcm9zLiBXZSBoYXZlIHRv
IGJ1aWxkIHRoZQotICAgICAgICAgICAgICAgICBtYXAgaW4gYSB0ZW1wb3JhcnkgYml0IG9mIHN0
b3JlLCBpbiBjYXNlIHRoZSBjbGFzcyBjb250YWlucyBvbmx5IDEKLSAgICAgICAgICAgICAgICAg
Y2hhcmFjdGVyICg8IDI1NiksIGJlY2F1c2UgaW4gdGhhdCBjYXNlIHRoZSBjb21waWxlZCBjb2Rl
IGRvZXNuJ3QgdXNlIHRoZQotICAgICAgICAgICAgICAgICBiaXQgbWFwLiAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIG1lbXNldChjbGFzc2JpdHMsIDAsIDMyICogc2l6ZW9m
KHVuc2lnbmVkIGNoYXIpKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBQ
cm9jZXNzIGNoYXJhY3RlcnMgdW50aWwgXSBpcyByZWFjaGVkLiBUaGUgZmlyc3QgcGFzcwotICAg
ICAgICAgICAgICAgICB0aHJvdWdoIHRoZSByZWdleCBjaGVja2VkIHRoZSBvdmVyYWxsIHN5bnRh
eCwgc28gd2UgZG9uJ3QgbmVlZCB0byBiZSB2ZXJ5Ci0gICAgICAgICAgICAgICAgIHN0cmljdCBo
ZXJlLiBBdCB0aGUgc3RhcnQgb2YgdGhlIGxvb3AsIGMgY29udGFpbnMgdGhlIGZpcnN0IGJ5dGUg
b2YgdGhlCi0gICAgICAgICAgICAgICAgIGNoYXJhY3Rlci4gKi8KLQotICAgICAgICAgICAgICAg
IHdoaWxlICgoKytwdHIgPCBwYXR0ZXJuRW5kKSAmJiAoYyA9ICpwdHIpICE9ICddJykgewotICAg
ICAgICAgICAgICAgICAgICAvKiBCYWNrc2xhc2ggbWF5IGludHJvZHVjZSBhIHNpbmdsZSBjaGFy
YWN0ZXIsIG9yIGl0IG1heSBpbnRyb2R1Y2Ugb25lCi0gICAgICAgICAgICAgICAgICAgICBvZiB0
aGUgc3BlY2lhbHMsIHdoaWNoIGp1c3Qgc2V0IGEgZmxhZy4gRXNjYXBlZCBpdGVtcyBhcmUgY2hl
Y2tlZCBmb3IKLSAgICAgICAgICAgICAgICAgICAgIHZhbGlkaXR5IGluIHRoZSBwcmUtY29tcGls
aW5nIHBhc3MuIFRoZSBzZXF1ZW5jZSBcYiBpcyBhIHNwZWNpYWwgY2FzZS4KLSAgICAgICAgICAg
ICAgICAgICAgIEluc2lkZSBhIGNsYXNzIChhbmQgb25seSB0aGVyZSkgaXQgaXMgdHJlYXRlZCBh
cyBiYWNrc3BhY2UuIEVsc2V3aGVyZQotICAgICAgICAgICAgICAgICAgICAgaXQgbWFya3MgYSB3
b3JkIGJvdW5kYXJ5LiBPdGhlciBlc2NhcGVzIGhhdmUgcHJlc2V0IG1hcHMgcmVhZHkgdG8KLSAg
ICAgICAgICAgICAgICAgICAgIG9yIGludG8gdGhlIG9uZSB3ZSBhcmUgYnVpbGRpbmcuIFdlIGFz
c3VtZSB0aGV5IGhhdmUgbW9yZSB0aGFuIG9uZQotICAgICAgICAgICAgICAgICAgICAgY2hhcmFj
dGVyIGluIHRoZW0sIHNvIHNldCBjbGFzc0NoYXJDb3VudCBiaWdnZXIgdGhhbiBvbmUuICovCi0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoYyA9PSAnXFwnKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hlY2tFc2NhcGUoJnB0ciwgcGF0dGVybkVu
ZCwgZXJyb3JDb2RlUHRyLCBjZC5udW1DYXB0dXJpbmdCcmFja2V0cywgdHJ1ZSk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoYyA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzc0NoYXJDb3VudCArPSAyOyAgICAgLyogR3JlYXRlciB0aGFuIDEgaXMgd2hhdCBtYXR0
ZXJzICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgtYykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVTQ19kOgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBjKyspCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2NdIHw9IGNsYXNzQml0bWFwRm9y
Q2hhcihjICsgY2JpdF9kaWdpdCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVTQ19EOgotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2hvdWxkRmxpcE5lZ2F0aW9uID0gdHJ1ZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsgYysrKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzYml0c1tjXSB8PSB+Y2xhc3NC
aXRtYXBGb3JDaGFyKGMgKyBjYml0X2RpZ2l0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRVNDX3c6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbY10gfD0gY2xhc3NC
aXRtYXBGb3JDaGFyKGMgKyBjYml0X3dvcmQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFU0NfVzoKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEZsaXBOZWdhdGlvbiA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbY10gfD0g
fmNsYXNzQml0bWFwRm9yQ2hhcihjICsgY2JpdF93b3JkKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRVNDX3M6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2NdIHw9
IGNsYXNzQml0bWFwRm9yQ2hhcihjICsgY2JpdF9zcGFjZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVTQ19TOgotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRmxpcE5lZ2F0aW9uID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAz
MjsgYysrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2Jp
dHNbY10gfD0gfmNsYXNzQml0bWFwRm9yQ2hhcihjICsgY2JpdF9zcGFjZSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
VW5yZWNvZ25pemVkIGVzY2FwZXMgYXJlIGZhdWx0ZWQgaWYgUENSRSBpcyBydW5uaW5nIGluIGl0
cwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmljdCBtb2RlLiBCeSBk
ZWZhdWx0LCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIFBlcmwsIHRoZXkgYXJlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJlYXRlZCBhcyBsaXRlcmFscy4gKi8KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9
ICpwdHI7ICAgICAgICAgICAgICAvKiBUaGUgZmluYWwgY2hhcmFjdGVyICovCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0NoYXJDb3VudCAtPSAyOyAgLyogVW5kbyB0
aGUgZGVmYXVsdCBjb3VudCBmcm9tIGFib3ZlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBGYWxsIHRocm91Z2ggaWYgd2UgaGF2ZSBhIHNp
bmdsZSBjaGFyYWN0ZXIgKGMgPj0gMCkuIFRoaXMgbWF5IGJlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgPiAyNTYgaW4gVVRGLTggbW9kZS4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICB9ICAgLyogRW5kIG9mIGJhY2tzbGFzaCBoYW5kbGluZyAqLwot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogQSBzaW5nbGUgY2hh
cmFjdGVyIG1heSBiZSBmb2xsb3dlZCBieSAnLScgdG8gZm9ybSBhIHJhbmdlLiBIb3dldmVyLAot
ICAgICAgICAgICAgICAgICAgICAgUGVybCBkb2VzIG5vdCBwZXJtaXQgJ10nIHRvIGJlIHRoZSBl
bmQgb2YgdGhlIHJhbmdlLiBBICctJyBjaGFyYWN0ZXIKLSAgICAgICAgICAgICAgICAgICAgIGhl
cmUgaXMgdHJlYXRlZCBhcyBhIGxpdGVyYWwuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICBpZiAoKHB0ciArIDIgPCBwYXR0ZXJuRW5kKSAmJiBwdHJbMV0gPT0g
Jy0nICYmIHB0clsyXSAhPSAnXScpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSAy
OwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQg
ZCA9ICpwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
ICAgIC8qIFRoZSBzZWNvbmQgcGFydCBvZiBhIHJhbmdlIGNhbiBiZSBhIHNpbmdsZS1jaGFyYWN0
ZXIgZXNjYXBlLCBidXQKLSAgICAgICAgICAgICAgICAgICAgICAgICBub3QgYW55IG9mIHRoZSBv
dGhlciBlc2NhcGVzLiBQZXJsIDUuNiB0cmVhdHMgYSBoeXBoZW4gYXMgYSBsaXRlcmFsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gc3VjaCBjaXJjdW1zdGFuY2VzLiAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA9PSAnXFwnKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIG9sZHB0ciA9IHB0cjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gY2hlY2tFc2NhcGUoJnB0ciwgcGF0dGVy
bkVuZCwgZXJyb3JDb2RlUHRyLCBjZC5udW1DYXB0dXJpbmdCcmFja2V0cywgdHJ1ZSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog
XFggaXMgbGl0ZXJhbCBYOyBhbnkgb3RoZXIgc3BlY2lhbCBtZWFucyB0aGUgJy0nIHdhcyBsaXRl
cmFsICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGQgPCAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciA9IG9sZHB0ciAtIDI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdvdG8gTE9ORV9TSU5HTEVfQ0hBUkFDVEVSOyAgLyogQSBmZXcg
bGluZXMgYmVsb3cgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIFRoZSBjaGVjayB0aGF0IHRoZSB0d28gdmFsdWVzIGFyZSBpbiB0aGUgY29y
cmVjdCBvcmRlciBoYXBwZW5zIGluCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGhlIHByZS1w
YXNzLiBPcHRpbWl6ZSBvbmUtY2hhcmFjdGVyIHJhbmdlcyAqLwotICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA9PSBjKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdvdG8gTE9ORV9TSU5HTEVfQ0hBUkFDVEVSOyAgLyogQSBmZXcgbGlu
ZXMgYmVsb3cgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgLyogSW4gVVRGLTggbW9kZSwgaWYgdGhlIHVwcGVyIGxpbWl0IGlzID4gMjU1LCBvciA+
IDEyNyBmb3IgY2FzZWxlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGluZywgd2Ug
aGF2ZSB0byB1c2UgYW4gWENMQVNTIHdpdGggZXh0cmEgZGF0YSBpdGVtcy4gQ2FzZWxlc3MKLSAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXRjaGluZyBmb3IgY2hhcmFjdGVycyA+IDEyNyBpcyBh
dmFpbGFibGUgb25seSBpZiBVQ1Agc3VwcG9ydCBpcwotICAgICAgICAgICAgICAgICAgICAgICAg
IGF2YWlsYWJsZS4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKChkID4gMjU1IHx8ICgob3B0aW9ucyAmIElnbm9yZUNhc2VPcHRpb24pICYm
IGQgPiAxMjcpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjggPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIFdpdGggVUNQIHN1cHBvcnQsIHdlIGNhbiBmaW5kIHRoZSBvdGhlciBjYXNlIGVx
dWl2YWxlbnRzIG9mCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSByZWxldmFudCBj
aGFyYWN0ZXJzLiBUaGVyZSBtYXkgYmUgc2V2ZXJhbCByYW5nZXMuIE9wdGltaXplIGhvdwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGV5IGZpdCB3aXRoIHRoZSBiYXNpYyByYW5nZS4g
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAob3B0aW9ucyAmIElnbm9yZUNhc2VPcHRpb24pIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IG9jYywgb2NkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpbnQgY2MgPSBjOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb3Jp
Z2QgPSBkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoZ2V0T3RoZXJj
YXNlUmFuZ2UoJmNjLCBvcmlnZCwgJm9jYywgJm9jZCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChvY2MgPj0gYyAmJiBvY2QgPD0gZCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgIC8qIFNraXAgZW1iZWRkZWQgcmFu
Z2VzICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvY2MgPCBjICAmJiBvY2QgPj0gYyAtIDEpICAg
ICAgICAvKiBFeHRlbmQgdGhlIGJhc2ljIHJhbmdlICovCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGlmIHRo
ZXJlIGlzIG92ZXJsYXAsICAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjID0gb2NjOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIG5vdGluZyB0aGF0IGlm
IG9jYyA8IGMgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250
aW51ZTsgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNhbid0IGhhdmUgb2NkID4gZCAg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogYmVjYXVzZSBhIHN1YnJhbmdlIGlzICAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9jZCA+IGQgJiYgb2NjIDw9IGQgKyAxKSAg
ICAgICAgIC8qIGFsd2F5cyBzaG9ydGVyIHRoYW4gICAgKi8KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogdGhl
IGJhc2ljIHJhbmdlLiAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGQgPSBvY2Q7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChvY2MgPT0gb2NkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1NJTkdMRTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1JBTkdFOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IGVuY29kZVVURjgo
b2NjLCBjbGFzc191dGY4ZGF0YSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc191dGY4ZGF0YSAr
PSBlbmNvZGVVVEY4KG9jZCwgY2xhc3NfdXRmOGRhdGEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vdyByZWNv
cmQgdGhlIG9yaWdpbmFsIHJhbmdlLCBwb3NzaWJseSBtb2RpZmllZCBmb3IgVUNQIGNhc2VsZXNz
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJsYXBwaW5nIHJhbmdlcy4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAq
Y2xhc3NfdXRmOGRhdGErKyA9IFhDTF9SQU5HRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjbGFzc191dGY4ZGF0YSArPSBlbmNvZGVVVEY4KGMsIGNsYXNzX3V0ZjhkYXRhKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBlbmNvZGVVVEY4KGQsIGNs
YXNzX3V0ZjhkYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBXaXRoIFVDUCBzdXBwb3J0LCB3ZSBhcmUgZG9uZS4gV2l0aG91
dCBVQ1Agc3VwcG9ydCwgdGhlcmUgaXMgbm8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FzZWxlc3MgbWF0Y2hpbmcgZm9yIFVURi04IGNoYXJhY3RlcnMgPiAxMjc7IHdlIGNhbiB1c2Ug
dGhlIGJpdCBtYXAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHRoZSBzbWFsbGVy
IG9uZXMuICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7ICAgIC8qIFdpdGggbmV4dCBjaGFyYWN0ZXIgaW4gdGhlIGNs
YXNzICovCi0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdlIHVzZSB0aGUgYml0IG1hcCBmb3IgYWxs
IGNhc2VzIHdoZW4gbm90IGluIFVURi04IG1vZGU7IGVsc2UKLSAgICAgICAgICAgICAgICAgICAg
ICAgICByYW5nZXMgdGhhdCBsaWUgZW50aXJlbHkgd2l0aGluIDAtMTI3IHdoZW4gdGhlcmUgaXMg
VUNQIHN1cHBvcnQ7IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcGFydGlhbCBy
YW5nZXMgd2l0aG91dCBVQ1Agc3VwcG9ydC4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7IGMgPD0gZDsgYysrKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2MvOF0gfD0gKDEgPDwgKGMmNykpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgdWMgPSBmbGlwQ2FzZShjKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW3VjLzhdIHw9ICgxIDw8ICh1
YyY3KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNsYXNzQ2hhckNvdW50Kys7ICAgICAgICAgICAgICAgIC8qIGluIGNhc2UgYSBv
bmUtY2hhciByYW5nZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTGFzdENo
YXIgPSBjOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAvKiBHbyBnZXQgdGhlIG5l
eHQgY2hhciBpbiB0aGUgY2xhc3MgKi8KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSGFuZGxlIGEgbG9uZSBzaW5nbGUg
Y2hhcmFjdGVyIC0gd2UgY2FuIGdldCBoZXJlIGZvciBhIG5vcm1hbAotICAgICAgICAgICAgICAg
ICAgICAgbm9uLWVzY2FwZSBjaGFyLCBvciBhZnRlciBcIHRoYXQgaW50cm9kdWNlcyBhIHNpbmds
ZSBjaGFyYWN0ZXIgb3IgZm9yIGFuCi0gICAgICAgICAgICAgICAgICAgICBhcHBhcmVudCByYW5n
ZSB0aGF0IGlzbid0LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBM
T05FX1NJTkdMRV9DSEFSQUNURVI6Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAvKiBIYW5kbGUgYSBjaGFyYWN0ZXIgdGhhdCBjYW5ub3QgZ28gaW4gdGhlIGJpdCBt
YXAgKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmICgoYyA+
IDI1NSB8fCAoKG9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0aW9uKSAmJiBjID4gMTI3KSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjggPSB0cnVlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfU0lOR0xFOwotICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3NfdXRmOGRhdGEgKz0gZW5jb2RlVVRGOChjLCBjbGFzc191dGY4ZGF0YSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChv
cHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGludCBvdGhlcmNhc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChvdGhlcmNh
c2UgPSBqc2NfcGNyZV91Y3Bfb3RoZXJjYXNlKGMpKSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1NJTkdMRTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NfdXRmOGRhdGEgKz0gZW5jb2RlVVRGOChvdGhl
cmNhc2UsIGNsYXNzX3V0ZjhkYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgYSBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzYml0c1tjLzhdIHw9ICgxIDw8IChjJjcp
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlv
bikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBmbGlwQ2FzZShjKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbYy84XSB8PSAoMSA8PCAoYyY3KSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0No
YXJDb3VudCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NMYXN0Q2hhciA9IGM7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogSWYgY2xhc3NDaGFyQ291bnQgaXMgMSwgd2Ugc2F3IHByZWNp
c2VseSBvbmUgY2hhcmFjdGVyIHdob3NlIHZhbHVlIGlzCi0gICAgICAgICAgICAgICAgIGxlc3Mg
dGhhbiAyNTYuIEluIG5vbi1VVEYtOCBtb2RlIHdlIGNhbiBhbHdheXMgb3B0aW1pemUuIEluIFVU
Ri04IG1vZGUsIHdlCi0gICAgICAgICAgICAgICAgIGNhbiBvcHRpbWl6ZSB0aGUgbmVnYXRpdmUg
Y2FzZSBvbmx5IGlmIHRoZXJlIHdlcmUgbm8gY2hhcmFjdGVycyA+PSAxMjgKLSAgICAgICAgICAg
ICAgICAgYmVjYXVzZSBPUF9OT1QgYW5kIHRoZSByZWxhdGVkIG9wY29kZXMgbGlrZSBPUF9OT1RT
VEFSIG9wZXJhdGUgb24KLSAgICAgICAgICAgICAgICAgc2luZ2xlLWJ5dGVzIG9ubHkuIFRoaXMg
aXMgYW4gaGlzdG9yaWNhbCBoYW5nb3Zlci4gTWF5YmUgb25lIGRheSB3ZSBjYW4KLSAgICAgICAg
ICAgICAgICAgdGlkeSB0aGVzZSBvcGNvZGVzIHRvIGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3Rl
cnMuCi0gICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICBUaGUgb3B0aW1pemF0aW9u
IHRocm93cyBhd2F5IHRoZSBiaXQgbWFwLiBXZSB0dXJuIHRoZSBpdGVtIGludG8gYQotICAgICAg
ICAgICAgICAgICAxLWNoYXJhY3RlciBPUF9DSEFSW05DXSBpZiBpdCdzIHBvc2l0aXZlLCBvciBP
UF9OT1QgaWYgaXQncyBuZWdhdGl2ZS4gTm90ZQotICAgICAgICAgICAgICAgICB0aGF0IE9QX05P
VCBkb2VzIG5vdCBzdXBwb3J0IG11bHRpYnl0ZSBjaGFyYWN0ZXJzLiBJbiB0aGUgcG9zaXRpdmUg
Y2FzZSwgaXQKLSAgICAgICAgICAgICAgICAgY2FuIGNhdXNlIGZpcnN0Qnl0ZSB0byBiZSBzZXQu
IE90aGVyd2lzZSwgdGhlcmUgY2FuIGJlIG5vIGZpcnN0IGNoYXIgaWYKLSAgICAgICAgICAgICAg
ICAgdGhpcyBpdGVtIGlzIGZpcnN0LCB3aGF0ZXZlciByZXBlYXQgY291bnQgbWF5IGZvbGxvdy4g
SW4gdGhlIGNhc2Ugb2YKLSAgICAgICAgICAgICAgICAgcmVxQnl0ZSwgc2F2ZSB0aGUgcHJldmlv
dXMgdmFsdWUgZm9yIHJlaW5zdGF0aW5nLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGlmIChjbGFzc0NoYXJDb3VudCA9PSAxICYmICghY2xhc3NfdXRmOCAmJiAoIW5lZ2F0
ZUNsYXNzIHx8IGNsYXNzTGFzdENoYXIgPCAxMjgpKSkgewotICAgICAgICAgICAgICAgICAgICB6
ZXJvUmVxQnl0ZSA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAvKiBUaGUgT1BfTk9UIG9wY29kZSB3b3JrcyBvbiBvbmUtYnl0ZSBjaGFyYWN0ZXJz
IG9ubHkuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAo
bmVnYXRlQ2xhc3MpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0g
UkVRX1VOU0VUKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IFJFUV9O
T05FOwotICAgICAgICAgICAgICAgICAgICAgICAgemVyb0ZpcnN0Qnl0ZSA9IGZpcnN0Qnl0ZTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9OT1Q7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAqY29kZSsrID0gY2xhc3NMYXN0Q2hhcjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAvKiBGb3IgYSBzaW5nbGUsIHBvc2l0aXZlIGNoYXJhY3Rlciwg
Z2V0IHRoZSB2YWx1ZSBpbnRvIGMsIGFuZAotICAgICAgICAgICAgICAgICAgICAgdGhlbiB3ZSBj
YW4gaGFuZGxlIHRoaXMgd2l0aCB0aGUgbm9ybWFsIG9uZS1jaGFyYWN0ZXIgY29kZS4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGMgPSBjbGFzc0xhc3RDaGFy
OwotICAgICAgICAgICAgICAgICAgICBnb3RvIE5PUk1BTF9DSEFSOwotICAgICAgICAgICAgICAg
IH0gICAgICAgLyogRW5kIG9mIDEtY2hhciBvcHRpbWl6YXRpb24gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBUaGUgZ2VuZXJhbCBjYXNlIC0gbm90IHRoZSBvbmUtY2hh
ciBvcHRpbWl6YXRpb24uIElmIHRoaXMgaXMgdGhlIGZpcnN0Ci0gICAgICAgICAgICAgICAgIHRo
aW5nIGluIHRoZSBicmFuY2gsIHRoZXJlIGNhbiBiZSBubyBmaXJzdCBjaGFyIHNldHRpbmcsIHdo
YXRldmVyIHRoZQotICAgICAgICAgICAgICAgICByZXBlYXQgY291bnQuIEFueSByZXFCeXRlIHNl
dHRpbmcgbXVzdCByZW1haW4gdW5jaGFuZ2VkIGFmdGVyIGFueSBraW5kIG9mCi0gICAgICAgICAg
ICAgICAgIHJlcGVhdC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAo
Zmlyc3RCeXRlID09IFJFUV9VTlNFVCkgZmlyc3RCeXRlID0gUkVRX05PTkU7Ci0gICAgICAgICAg
ICAgICAgemVyb0ZpcnN0Qnl0ZSA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAgICAgICB6ZXJvUmVx
Qnl0ZSA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYg
dGhlcmUgYXJlIGNoYXJhY3RlcnMgd2l0aCB2YWx1ZXMgPiAyNTUsIHdlIGhhdmUgdG8gY29tcGls
ZSBhbgotICAgICAgICAgICAgICAgICBleHRlbmRlZCBjbGFzcywgd2l0aCBpdHMgb3duIG9wY29k
ZS4gSWYgdGhlcmUgYXJlIG5vIGNoYXJhY3RlcnMgPCAyNTYsCi0gICAgICAgICAgICAgICAgIHdl
IGNhbiBvbWl0IHRoZSBiaXRtYXAuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgaWYgKGNsYXNzX3V0ZjggJiYgIXNob3VsZEZsaXBOZWdhdGlvbikgewotICAgICAgICAgICAg
ICAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9FTkQ7ICAgIC8qIE1hcmtzIHRoZSBlbmQg
b2YgZXh0cmEgZGF0YSAqLwotICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfWENMQVNT
OwotICAgICAgICAgICAgICAgICAgICBjb2RlICs9IExJTktfU0laRTsKLSAgICAgICAgICAgICAg
ICAgICAgKmNvZGUgPSBuZWdhdGVDbGFzcz8gWENMX05PVCA6IDA7Ci0gICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBJZiB0aGUgbWFwIGlzIHJlcXVpcmVkLCBpbnN0
YWxsIGl0LCBhbmQgbW92ZSBvbiB0byB0aGUgZW5kIG9mCi0gICAgICAgICAgICAgICAgICAgICB0
aGUgZXh0cmEgZGF0YSAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGNsYXNzQ2hhckNvdW50ID4gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgKmNv
ZGUrKyB8PSBYQ0xfTUFQOwotICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGNvZGUsIGNs
YXNzYml0cywgMzIpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29kZSA9IGNsYXNzX3V0Zjhk
YXRhOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAvKiBJZiB0aGUgbWFwIGlzIG5vdCByZXF1aXJlZCwgc2xpZGUgZG93biB0
aGUgZXh0cmEgZGF0YS4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxlbiA9IGNsYXNzX3V0Zjhk
YXRhIC0gKGNvZGUgKyAzMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZW1tb3ZlKGNvZGUg
KyAxLCBjb2RlICsgMzMsIGxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb2RlICs9IGxl
biArIDE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIC8qIE5vdyBmaWxsIGluIHRoZSBjb21wbGV0ZSBsZW5ndGggb2YgdGhl
IGl0ZW0gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIHB1dExp
bmtWYWx1ZShwcmV2aW91cyArIDEsIGNvZGUgLSBwcmV2aW91cyk7Ci0gICAgICAgICAgICAgICAg
ICAgIGJyZWFrOyAgIC8qIEVuZCBvZiBjbGFzcyBoYW5kbGluZyAqLwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiB0aGVyZSBhcmUgbm8g
Y2hhcmFjdGVycyA+IDI1NSwgbmVnYXRlIHRoZSAzMi1ieXRlIG1hcCBpZiBuZWNlc3NhcnksCi0g
ICAgICAgICAgICAgICAgIGFuZCBjb3B5IGl0IGludG8gdGhlIGNvZGUgdmVjdG9yLiBJZiB0aGlz
IGlzIHRoZSBmaXJzdCB0aGluZyBpbiB0aGUgYnJhbmNoLAotICAgICAgICAgICAgICAgICB0aGVy
ZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBzZXR0aW5nLCB3aGF0ZXZlciB0aGUgcmVwZWF0IGNvdW50
LiBBbnkgcmVxQnl0ZQotICAgICAgICAgICAgICAgICBzZXR0aW5nIG11c3QgcmVtYWluIHVuY2hh
bmdlZCBhZnRlciBhbnkga2luZCBvZiByZXBlYXQuICovCi0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgKmNvZGUrKyA9IChuZWdhdGVDbGFzcyA9PSBzaG91bGRGbGlwTmVnYXRpb24p
ID8gT1BfQ0xBU1MgOiBPUF9OQ0xBU1M7Ci0gICAgICAgICAgICAgICAgaWYgKG5lZ2F0ZUNsYXNz
KQotICAgICAgICAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNvZGVbY10gPSB+Y2xhc3NiaXRzW2NdOwotICAgICAgICAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGNvZGUsIGNsYXNzYml0cywgMzIpOwot
ICAgICAgICAgICAgICAgIGNvZGUgKz0gMzI7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBWYXJpb3VzIGtpbmRz
IG9mIHJlcGVhdDsgJ3snIGlzIG5vdCBuZWNlc3NhcmlseSBhIHF1YW50aWZpZXIsIGJ1dCB0aGlz
Ci0gICAgICAgICAgICAgaGFzIGJlZW4gdGVzdGVkIGFib3ZlLiAqLwotCi0gICAgICAgICAgICBj
YXNlICd7JzoKLSAgICAgICAgICAgICAgICBpZiAoIWlzUXVhbnRpZmllcikKLSAgICAgICAgICAg
ICAgICAgICAgZ290byBOT1JNQUxfQ0hBUjsKLSAgICAgICAgICAgICAgICBwdHIgPSByZWFkUmVw
ZWF0Q291bnRzKHB0ciArIDEsICZyZXBlYXRNaW4sICZyZXBlYXRfbWF4LCBlcnJvckNvZGVQdHIp
OwotICAgICAgICAgICAgICAgIGlmICgqZXJyb3JDb2RlUHRyKQotICAgICAgICAgICAgICAgICAg
ICBnb3RvIEZBSUxFRDsKLSAgICAgICAgICAgICAgICBnb3RvIFJFUEVBVDsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIGNhc2UgJyonOgotICAgICAgICAgICAgICAgIHJlcGVhdE1pbiA9
IDA7Ci0gICAgICAgICAgICAgICAgcmVwZWF0X21heCA9IC0xOwotICAgICAgICAgICAgICAgIGdv
dG8gUkVQRUFUOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSAnKyc6Ci0gICAg
ICAgICAgICAgICAgcmVwZWF0TWluID0gMTsKLSAgICAgICAgICAgICAgICByZXBlYXRfbWF4ID0g
LTE7Ci0gICAgICAgICAgICAgICAgZ290byBSRVBFQVQ7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICBjYXNlICc/JzoKLSAgICAgICAgICAgICAgICByZXBlYXRNaW4gPSAwOwotICAgICAg
ICAgICAgICAgIHJlcGVhdF9tYXggPSAxOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
UkVQRUFUOgotICAgICAgICAgICAgICAgIGlmICghcHJldmlvdXMpIHsKLSAgICAgICAgICAgICAg
ICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjk7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gRkFJ
TEVEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAocmVwZWF0TWluID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RCeXRlID0g
emVyb0ZpcnN0Qnl0ZTsgICAgLyogQWRqdXN0IGZvciB6ZXJvIHJlcGVhdCAqLwotICAgICAgICAg
ICAgICAgICAgICByZXFCeXRlID0gemVyb1JlcUJ5dGU7ICAgICAgICAvKiBEaXR0byAqLwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBSZW1l
bWJlciB3aGV0aGVyIHRoaXMgaXMgYSB2YXJpYWJsZSBsZW5ndGggcmVwZWF0ICovCi0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgcmVxdmFyeSA9IChyZXBlYXRNaW4gPT0gcmVwZWF0
X21heCkgPyAwIDogUkVRX1ZBUlk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
b3BUeXBlID0gMDsgICAgICAgICAgICAgICAgICAgIC8qIERlZmF1bHQgc2luZ2xlLWNoYXIgb3Ag
Y29kZXMgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBTYXZlIHN0YXJ0
IG9mIHByZXZpb3VzIGl0ZW0sIGluIGNhc2Ugd2UgaGF2ZSB0byBtb3ZlIGl0IHVwIHRvIG1ha2Ug
c3BhY2UKLSAgICAgICAgICAgICAgICAgZm9yIGFuIGluc2VydGVkIE9QX09OQ0UgZm9yIHRoZSBh
ZGRpdGlvbmFsICcrJyBleHRlbnNpb24uICovCi0gICAgICAgICAgICAgICAgLyogRklYTUU6IFBy
b2JhYmx5IGRvbid0IG5lZWQgdGhpcyBiZWNhdXNlIHdlIGRvbid0IHVzZSBPUF9PTkNFLiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHRlbXBjb2RlID0gcHJldmlvdXM7Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYgdGhlIG5leHQgY2hhcmFjdGVy
IGlzICcrJywgd2UgaGF2ZSBhIHBvc3Nlc3NpdmUgcXVhbnRpZmllci4gVGhpcwotICAgICAgICAg
ICAgICAgICBpbXBsaWVzIGdyZWVkaW5lc3MsIHdoYXRldmVyIHRoZSBzZXR0aW5nIG9mIHRoZSBQ
Q1JFX1VOR1JFRURZIG9wdGlvbi4KLSAgICAgICAgICAgICAgICAgSWYgdGhlIG5leHQgY2hhcmFj
dGVyIGlzICc/JyB0aGlzIGlzIGEgbWluaW1pemluZyByZXBlYXQsIGJ5IGRlZmF1bHQsCi0gICAg
ICAgICAgICAgICAgIGJ1dCBpZiBQQ1JFX1VOR1JFRURZIGlzIHNldCwgaXQgd29ya3MgdGhlIG90
aGVyIHdheSByb3VuZC4gV2UgY2hhbmdlIHRoZQotICAgICAgICAgICAgICAgICByZXBlYXQgdHlw
ZSB0byB0aGUgbm9uLWRlZmF1bHQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgaWYgKHNhZmVseUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAnPycpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHJlcGVhdFR5cGUgPSAxOwotICAgICAgICAgICAgICAgICAgICBwdHIr
KzsKLSAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgcmVwZWF0VHlw
ZSA9IDA7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYgcHJldmlvdXMg
d2FzIGEgY2hhcmFjdGVyIG1hdGNoLCBhYm9saXNoIHRoZSBpdGVtIGFuZCBnZW5lcmF0ZSBhCi0g
ICAgICAgICAgICAgICAgIHJlcGVhdCBpdGVtIGluc3RlYWQuIElmIGEgY2hhciBpdGVtIGhhcyBh
IG1pbnVtdW0gb2YgbW9yZSB0aGFuIG9uZSwgZW5zdXJlCi0gICAgICAgICAgICAgICAgIHRoYXQg
aXQgaXMgc2V0IGluIHJlcUJ5dGUgLSBpdCBtaWdodCBub3QgYmUgaWYgYSBzZXF1ZW5jZSBzdWNo
IGFzIHh7M30gaXMKLSAgICAgICAgICAgICAgICAgdGhlIGZpcnN0IHRoaW5nIGluIGEgYnJhbmNo
IGJlY2F1c2UgdGhlIHggd2lsbCBoYXZlIGdvbmUgaW50byBmaXJzdEJ5dGUKLSAgICAgICAgICAg
ICAgICAgaW5zdGVhZC4gICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYg
KCpwcmV2aW91cyA9PSBPUF9DSEFSIHx8ICpwcmV2aW91cyA9PSBPUF9DSEFSX0lHTk9SSU5HX0NB
U0UpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogRGVhbCB3aXRoIFVURi04IGNoYXJhY3RlcnMg
dGhhdCB0YWtlIHVwIG1vcmUgdGhhbiBvbmUgYnl0ZS4gSXQncwotICAgICAgICAgICAgICAgICAg
ICAgZWFzaWVyIHRvIHdyaXRlIHRoaXMgb3V0IHNlcGFyYXRlbHkgdGhhbiB0cnkgdG8gbWFjcmlm
eSBpdC4gVXNlIGMgdG8KLSAgICAgICAgICAgICAgICAgICAgIGhvbGQgdGhlIGxlbmd0aCBvZiB0
aGUgY2hhcmFjdGVyIGluIGJ5dGVzLCBwbHVzIDB4ODAgdG8gZmxhZyB0aGF0IGl0J3MgYQotICAg
ICAgICAgICAgICAgICAgICAgbGVuZ3RoIHJhdGhlciB0aGFuIGEgc21hbGwgY2hhcmFjdGVyLiAq
LwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvZGVbLTFd
ICYgMHg4MCkgewotICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqbGFzdGNo
YXIgPSBjb2RlIC0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCgqbGFzdGNoYXIg
JiAweGMwKSA9PSAweDgwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RjaGFyLS07
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gY29kZSAtIGxhc3RjaGFyOyAgICAgICAgICAg
IC8qIExlbmd0aCBvZiBVVEYtOCBjaGFyYWN0ZXIgKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
IG1lbWNweSh1dGY4X2NoYXIsIGxhc3RjaGFyLCBjKTsgLyogU2F2ZSB0aGUgY2hhciAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgYyB8PSAweDgwOyAgICAgICAgICAgICAgICAgICAgICAvKiBG
bGFnIGMgYXMgYSBsZW5ndGggKi8KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjb2RlWy0xXTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRNaW4gPiAxKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlcUJ5dGUgPSBjIHwgcmVxQ2FzZU9wdCB8IGNkLnJlcVZhcnlPcHQ7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIGdvdG8gT1VUUFVUX1NJTkdMRV9SRVBFQVQ7ICAgLyogQ29kZSBzaGFyZWQgd2l0aCBz
aW5nbGUgY2hhcmFjdGVyIHR5cGVzICovCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwcmV2aW91cyA9PSBPUF9BU0NJSV9DSEFS
IHx8ICpwcmV2aW91cyA9PSBPUF9BU0NJSV9MRVRURVJfSUdOT1JJTkdfQ0FTRSkgewotICAgICAg
ICAgICAgICAgICAgICBjID0gcHJldmlvdXNbMV07Ci0gICAgICAgICAgICAgICAgICAgIGlmIChy
ZXBlYXRNaW4gPiAxKQotICAgICAgICAgICAgICAgICAgICAgICAgcmVxQnl0ZSA9IGMgfCByZXFD
YXNlT3B0IHwgY2QucmVxVmFyeU9wdDsKLSAgICAgICAgICAgICAgICAgICAgZ290byBPVVRQVVRf
U0lOR0xFX1JFUEVBVDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogSWYgcHJldmlvdXMgd2FzIGEgc2luZ2xlIG5lZ2F0ZWQgY2hhcmFjdGVy
IChbXmFdIG9yIHNpbWlsYXIpLCB3ZSB1c2UKLSAgICAgICAgICAgICAgICAgb25lIG9mIHRoZSBz
cGVjaWFsIG9wY29kZXMsIHJlcGxhY2luZyBpdC4gVGhlIGNvZGUgaXMgc2hhcmVkIHdpdGggc2lu
Z2xlLQotICAgICAgICAgICAgICAgICBjaGFyYWN0ZXIgcmVwZWF0cyBieSBzZXR0aW5nIG9wdF90
eXBlIHRvIGFkZCBhIHN1aXRhYmxlIG9mZnNldCBpbnRvCi0gICAgICAgICAgICAgICAgIHJlcGVh
dFR5cGUuIE9QX05PVCBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGZvciBzaW5nbGUtYnl0ZSBjaGFy
cy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBlbHNlIGlmICgqcHJldmlv
dXMgPT0gT1BfTk9UKSB7Ci0gICAgICAgICAgICAgICAgICAgIG9wVHlwZSA9IE9QX05PVFNUQVIg
LSBPUF9TVEFSOyAgLyogVXNlICJub3QiIG9wY29kZXMgKi8KLSAgICAgICAgICAgICAgICAgICAg
YyA9IHByZXZpb3VzWzFdOwotICAgICAgICAgICAgICAgICAgICBnb3RvIE9VVFBVVF9TSU5HTEVf
UkVQRUFUOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAvKiBJZiBwcmV2aW91cyB3YXMgYSBjaGFyYWN0ZXIgdHlwZSBtYXRjaCAoXGQgb3Igc2lt
aWxhciksIGFib2xpc2ggaXQgYW5kCi0gICAgICAgICAgICAgICAgIGNyZWF0ZSBhIHN1aXRhYmxl
IHJlcGVhdCBpdGVtLiBUaGUgY29kZSBpcyBzaGFyZWQgd2l0aCBzaW5nbGUtY2hhcmFjdGVyCi0g
ICAgICAgICAgICAgICAgIHJlcGVhdHMgYnkgc2V0dGluZyBvcFR5cGUgdG8gYWRkIGEgc3VpdGFi
bGUgb2Zmc2V0IGludG8gcmVwZWF0VHlwZS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBlbHNlIGlmICgqcHJldmlvdXMgPD0gT1BfTk9UX05FV0xJTkUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgb3BUeXBlID0gT1BfVFlQRVNUQVIgLSBPUF9TVEFSOyAgLyogVXNlIHR5cGUg
b3Bjb2RlcyAqLwotICAgICAgICAgICAgICAgICAgICBjID0gKnByZXZpb3VzOwotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBPVVRQVVRfU0lOR0xFX1JFUEVBVDoKLSAgICAg
ICAgICAgICAgICAgICAgaW50IHByb3BfdHlwZSA9IC0xOwotICAgICAgICAgICAgICAgICAgICBp
bnQgcHJvcF92YWx1ZSA9IC0xOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgdW5zaWduZWQgY2hhciogb2xkY29kZSA9IGNvZGU7Ci0gICAgICAgICAgICAgICAgICAg
IGNvZGUgPSBwcmV2aW91czsgICAgICAgICAgICAgICAgICAvKiBVc3VhbGx5IG92ZXJ3cml0ZSBw
cmV2aW91cyBpdGVtICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAvKiBJZiB0aGUgbWF4aW11bSBpcyB6ZXJvIHRoZW4gdGhlIG1pbmltdW0gbXVzdCBhbHNvIGJl
IHplcm87IFBlcmwgYWxsb3dzCi0gICAgICAgICAgICAgICAgICAgICB0aGlzIGNhc2UsIHNvIHdl
IGRvIHRvbyAtIGJ5IHNpbXBseSBvbWl0dGluZyB0aGUgaXRlbSBhbHRvZ2V0aGVyLiAqLwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0g
MCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRU5EX1JFUEVBVDsKLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIENvbWJpbmUgdGhlIG9wVHlwZSB3aXRo
IHRoZSByZXBlYXRUeXBlICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICByZXBlYXRUeXBlICs9IG9wVHlwZTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIC8qIEEgbWluaW11bSBvZiB6ZXJvIGlzIGhhbmRsZWQgZWl0aGVyIGFzIHRo
ZSBzcGVjaWFsIGNhc2UgKiBvciA/LCBvciBhcwotICAgICAgICAgICAgICAgICAgICAgYW4gVVBU
Tywgd2l0aCB0aGUgbWF4aW11bSBnaXZlbi4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIGlmIChyZXBlYXRNaW4gPT0gMCkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlcGVhdF9tYXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
KmNvZGUrKyA9IE9QX1NUQVIgKyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICAgICAg
ZWxzZSBpZiAocmVwZWF0X21heCA9PSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpj
b2RlKysgPSBPUF9RVUVSWSArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfVVBUTyArIHJl
cGVhdFR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0MkJ5dGVWYWx1ZUFuZEFk
dmFuY2UoY29kZSwgcmVwZWF0X21heCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIC8qIEEgcmVwZWF0IG1pbmltdW0gb2YgMSBpcyBvcHRpbWl6ZWQgaW50byBzb21lIHNwZWNp
YWwgY2FzZXMuIElmIHRoZQotICAgICAgICAgICAgICAgICAgICAgbWF4aW11bSBpcyB1bmxpbWl0
ZWQsIHdlIHVzZSBPUF9QTFVTLiBPdGhlcndpc2UsIHRoZSBvcmlnaW5hbCBpdGVtIGl0Ci0gICAg
ICAgICAgICAgICAgICAgICBsZWZ0IGluIHBsYWNlIGFuZCwgaWYgdGhlIG1heGltdW0gaXMgZ3Jl
YXRlciB0aGFuIDEsIHdlIHVzZSBPUF9VUFRPIHdpdGgKLSAgICAgICAgICAgICAgICAgICAgIG9u
ZSBsZXNzIHRoYW4gdGhlIG1heGltdW0uICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICBlbHNlIGlmIChyZXBlYXRNaW4gPT0gMSkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKmNvZGUrKyA9IE9QX1BMVVMgKyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSA9IG9sZGNvZGU7ICAg
ICAgICAgICAgICAgICAvKiBsZWF2ZSBwcmV2aW91cyBpdGVtIGluIHBsYWNlICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0gMSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ290byBFTkRfUkVQRUFUOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICpjb2RlKysgPSBPUF9VUFRPICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXQyQnl0ZVZhbHVlQW5kQWR2YW5jZShjb2RlLCByZXBlYXRfbWF4IC0gMSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIFRoZSBjYXNlIHtuLG59IGlz
IGp1c3QgYW4gRVhBQ1QsIHdoaWxlIHRoZSBnZW5lcmFsIGNhc2Uge24sbX0gaXMKLSAgICAgICAg
ICAgICAgICAgICAgIGhhbmRsZWQgYXMgYW4gRVhBQ1QgZm9sbG93ZWQgYnkgYW4gVVBUTy4gKi8K
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0VYQUNUICsgb3BUeXBlOyAgLyogTkIgRVhB
Q1QgZG9lc24ndCBoYXZlIHJlcGVhdFR5cGUgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIHB1
dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUsIHJlcGVhdE1pbik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIGlzIHVu
bGltaXRlZCwgaW5zZXJ0IGFuIE9QX1NUQVIuIEJlZm9yZSBkb2luZyBzbywKLSAgICAgICAgICAg
ICAgICAgICAgICAgICB3ZSBoYXZlIHRvIGluc2VydCB0aGUgY2hhcmFjdGVyIGZvciB0aGUgcHJl
dmlvdXMgY29kZS4gRm9yIGEgcmVwZWF0ZWQKLSAgICAgICAgICAgICAgICAgICAgICAgICBVbmlj
b2RlIHByb3BlcnR5IG1hdGNoLCB0aGVyZSBhcmUgdHdvIGV4dHJhIGJ5dGVzIHRoYXQgZGVmaW5l
IHRoZQotICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkIHByb3BlcnR5LiBJbiBVVEYt
OCBtb2RlLCBsb25nIGNoYXJhY3RlcnMgaGF2ZSB0aGVpciBsZW5ndGggaW4KLSAgICAgICAgICAg
ICAgICAgICAgICAgICBjLCB3aXRoIHRoZSAweDgwIGJpdCBhcyBhIGZsYWcuICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRfbWF4
IDwgMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID49IDEyOCkgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgdXRmOF9jaGFyLCBjICYg
Nyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgKz0gYyAmIDc7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKmNvZGUrKyA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwcm9wX3R5cGUgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KmNvZGUrKyA9IHByb3BfdHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICpjb2RlKysgPSBwcm9wX3ZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICpjb2RlKysgPSBPUF9TVEFSICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
LyogRWxzZSBpbnNlcnQgYW4gVVBUTyBpZiB0aGUgbWF4IGlzIGdyZWF0ZXIgdGhhbiB0aGUgbWlu
LCBhZ2FpbgotICAgICAgICAgICAgICAgICAgICAgICAgIHByZWNlZGVkIGJ5IHRoZSBjaGFyYWN0
ZXIsIGZvciB0aGUgcHJldmlvdXNseSBpbnNlcnRlZCBjb2RlLiAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChyZXBlYXRfbWF4ICE9
IHJlcGVhdE1pbikgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjID49IDEyOCkg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgdXRmOF9jaGFy
LCBjICYgNyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgKz0gYyAmIDc7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICpjb2RlKysgPSBjOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChwcm9wX3R5cGUgPj0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29k
ZSsrID0gcHJvcF90eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsr
ID0gcHJvcF92YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmVwZWF0X21heCAtPSByZXBlYXRNaW47Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX1VQVE8gKyByZXBlYXRUeXBlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHB1dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUsIHJlcGVhdF9t
YXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBUaGUgY2hhcmFjdGVy
IG9yIGNoYXJhY3RlciB0eXBlIGl0c2VsZiBjb21lcyBsYXN0IGluIGFsbCBjYXNlcy4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChjID49IDEyOCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgbWVtY3B5KGNvZGUsIHV0ZjhfY2hhciwgYyAmIDcpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgY29kZSArPSBjICYgNzsKLSAgICAgICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gYzsKLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIEZvciBhIHJlcGVhdGVkIFVuaWNv
ZGUgcHJvcGVydHkgbWF0Y2gsIHRoZXJlIGFyZSB0d28gZXh0cmEgYnl0ZXMgdGhhdAotICAgICAg
ICAgICAgICAgICAgICAgZGVmaW5lIHRoZSByZXF1aXJlZCBwcm9wZXJ0eS4gKi8KLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wX3R5cGUgPj0gMCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdHlwZTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICpjb2RlKysgPSBwcm9wX3ZhbHVlOwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8q
IElmIHByZXZpb3VzIHdhcyBhIGNoYXJhY3RlciBjbGFzcyBvciBhIGJhY2sgcmVmZXJlbmNlLCB3
ZSBwdXQgdGhlIHJlcGVhdAotICAgICAgICAgICAgICAgICBzdHVmZiBhZnRlciBpdCwgYnV0IGp1
c3Qgc2tpcCB0aGUgaXRlbSBpZiB0aGUgcmVwZWF0IHdhcyB7MCwwfS4gKi8KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBlbHNlIGlmICgqcHJldmlvdXMgPT0gT1BfQ0xBU1MgfHwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAqcHJldmlvdXMgPT0gT1BfTkNMQVNTIHx8Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgKnByZXZpb3VzID09IE9QX1hDTEFTUyB8fAotICAgICAgICAg
ICAgICAgICAgICAgICAgICpwcmV2aW91cyA9PSBPUF9SRUYpCi0gICAgICAgICAgICAgICAgewot
ICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAwKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBjb2RlID0gcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3Rv
IEVORF9SRVBFQVQ7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRNaW4gPT0gMCAmJiByZXBlYXRfbWF4ID09
IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0NSU1RBUiArIHJlcGVh
dFR5cGU7Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdE1pbiA9PSAxICYmIHJl
cGVhdF9tYXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfQ1JQ
TFVTICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVwZWF0TWlu
ID09IDAgJiYgcmVwZWF0X21heCA9PSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUr
KyA9IE9QX0NSUVVFUlkgKyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9DUlJBTkdFICsgcmVwZWF0VHlw
ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUs
IHJlcGVhdE1pbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAt
MSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRfbWF4ID0gMDsgIC8qIDItYnl0
ZSBlbmNvZGluZyBmb3IgbWF4ICovCi0gICAgICAgICAgICAgICAgICAgICAgICBwdXQyQnl0ZVZh
bHVlQW5kQWR2YW5jZShjb2RlLCByZXBlYXRfbWF4KTsKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJ
ZiBwcmV2aW91cyB3YXMgYSBicmFja2V0IGdyb3VwLCB3ZSBtYXkgaGF2ZSB0byByZXBsaWNhdGUg
aXQgaW4gY2VydGFpbgotICAgICAgICAgICAgICAgICBjYXNlcy4gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBlbHNlIGlmICgqcHJldmlvdXMgPj0gT1BfQlJBKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGludCBrZXRvZmZzZXQgPSAwOwotICAgICAgICAgICAgICAgICAgICBp
bnQgbGVuID0gY29kZSAtIHByZXZpb3VzOwotICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyKiBicmFsaW5rID0gTlVMTDsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIHJlcGVhdCBjb3VudCBpcyB1bmxpbWl0ZWQsIGZpbmQg
dGhlIGVuZCBvZiB0aGUgYnJhY2tldAotICAgICAgICAgICAgICAgICAgICAgYnkgc2Nhbm5pbmcg
dGhyb3VnaCBmcm9tIHRoZSBzdGFydCwgYW5kIGNvbXB1dGUgdGhlIG9mZnNldCBiYWNrIHRvIGl0
Ci0gICAgICAgICAgICAgICAgICAgICBmcm9tIHRoZSBjdXJyZW50IGNvZGUgcG9pbnRlci4gVGhl
cmUgbWF5IGJlIGFuIE9QX09QVCBzZXR0aW5nIGZvbGxvd2luZwotICAgICAgICAgICAgICAgICAg
ICAgdGhlIGZpbmFsIEtFVCwgc28gd2UgY2FuJ3QgZmluZCB0aGUgZW5kIGp1c3QgYnkgZ29pbmcg
YmFjayBmcm9tIHRoZSBjb2RlCi0gICAgICAgICAgICAgICAgICAgICBwb2ludGVyLiAqLwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0g
LTEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGtldCA9
IHByZXZpb3VzOwotICAgICAgICAgICAgICAgICAgICAgICAgYWR2YW5jZVRvRW5kT2ZCcmFja2V0
KGtldCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBrZXRvZmZzZXQgPSBjb2RlIC0ga2V0Owot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAvKiBUaGUgY2FzZSBvZiBhIHplcm8gbWluaW11bSBpcyBzcGVjaWFsIGJlY2F1c2Ug
b2YgdGhlIG5lZWQgdG8gc3RpY2sKLSAgICAgICAgICAgICAgICAgICAgIE9QX0JSQVpFUk8gaW4g
ZnJvbnQgb2YgaXQsIGFuZCBiZWNhdXNlIHRoZSBncm91cCBhcHBlYXJzIG9uY2UgaW4gdGhlCi0g
ICAgICAgICAgICAgICAgICAgICBkYXRhLCB3aGVyZWFzIGluIG90aGVyIGNhc2VzIGl0IGFwcGVh
cnMgdGhlIG1pbmltdW0gbnVtYmVyIG9mIHRpbWVzLiBGb3IKLSAgICAgICAgICAgICAgICAgICAg
IHRoaXMgcmVhc29uLCBpdCBpcyBzaW1wbGVzdCB0byB0cmVhdCB0aGlzIGNhc2Ugc2VwYXJhdGVs
eSwgYXMgb3RoZXJ3aXNlCi0gICAgICAgICAgICAgICAgICAgICB0aGUgY29kZSBnZXRzIGZhciB0
b28gbWVzc3kuIFRoZXJlIGFyZSBzZXZlcmFsIHNwZWNpYWwgc3ViY2FzZXMgd2hlbiB0aGUKLSAg
ICAgICAgICAgICAgICAgICAgIG1pbmltdW0gaXMgemVyby4gKi8KLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRNaW4gPT0gMCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgLyogSWYgdGhlIG1heGltdW0gaXMgYWxzbyB6ZXJvLCB3ZSBqdXN0IG9t
aXQgdGhlIGdyb3VwIGZyb20gdGhlIG91dHB1dAotICAgICAgICAgICAgICAgICAgICAgICAgIGFs
dG9nZXRoZXIuICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChyZXBlYXRfbWF4ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb2RlID0gcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBFTkRf
UkVQRUFUOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiB0aGUgbWF4aW11bSBpcyAxIG9yIHVu
bGltaXRlZCwgd2UganVzdCBoYXZlIHRvIHN0aWNrIGluIHRoZQotICAgICAgICAgICAgICAgICAg
ICAgICAgIEJSQVpFUk8gYW5kIGRvIG5vIG1vcmUgYXQgdGhpcyBwb2ludC4gSG93ZXZlciwgd2Ug
ZG8gbmVlZCB0byBhZGp1c3QKLSAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgT1BfUkVDVVJT
RSBjYWxscyBpbnNpZGUgdGhlIGdyb3VwIHRoYXQgcmVmZXIgdG8gdGhlIGdyb3VwIGl0c2VsZiBv
cgotICAgICAgICAgICAgICAgICAgICAgICAgIGFueSBpbnRlcm5hbCBncm91cCwgYmVjYXVzZSB0
aGUgb2Zmc2V0IGlzIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSB3aG9sZQotICAgICAgICAgICAgICAg
ICAgICAgICAgIHJlZ2V4LiBUZW1wb3JhcmlseSB0ZXJtaW5hdGUgdGhlIHBhdHRlcm4gd2hpbGUg
ZG9pbmcgdGhpcy4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlcGVhdF9tYXggPD0gMSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICpjb2RlID0gT1BfRU5EOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbW1vdmUo
cHJldmlvdXMrMSwgcHJldmlvdXMsIGxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29kZSsrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpwcmV2aW91cysrID0gT1BfQlJB
WkVSTyArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXhpbXVt
IGlzIGdyZWF0ZXIgdGhhbiAxIGFuZCBsaW1pdGVkLCB3ZSBoYXZlIHRvIHJlcGxpY2F0ZQotICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGEgbmVzdGVkIGZhc2hpb24sIHN0aWNraW5nIE9QX0JS
QVpFUk8gYmVmb3JlIGVhY2ggc2V0IG9mIGJyYWNrZXRzLgotICAgICAgICAgICAgICAgICAgICAg
ICAgIFRoZSBmaXJzdCBvbmUgaGFzIHRvIGJlIGhhbmRsZWQgY2FyZWZ1bGx5IGJlY2F1c2UgaXQn
cyB0aGUgb3JpZ2luYWwKLSAgICAgICAgICAgICAgICAgICAgICAgICBjb3B5LCB3aGljaCBoYXMg
dG8gYmUgbW92ZWQgdXAuIFRoZSByZW1haW5kZXIgY2FuIGJlIGhhbmRsZWQgYnkgY29kZQotICAg
ICAgICAgICAgICAgICAgICAgICAgIHRoYXQgaXMgY29tbW9uIHdpdGggdGhlIG5vbi16ZXJvIG1p
bmltdW0gY2FzZSBiZWxvdy4gV2UgaGF2ZSB0bwotICAgICAgICAgICAgICAgICAgICAgICAgIGFk
anVzdCB0aGUgdmFsdWUgb2YgcmVwZWF0X21heCwgc2luY2Ugb25lIGxlc3MgY29weSBpcyByZXF1
aXJlZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUgPSBPUF9FTkQ7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVtbW92ZShwcmV2aW91cyArIDIgKyBMSU5LX1NJ
WkUsIHByZXZpb3VzLCBsZW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgKz0g
MiArIExJTktfU0laRTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqcHJldmlvdXMrKyA9
IE9QX0JSQVpFUk8gKyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpw
cmV2aW91cysrID0gT1BfQlJBOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIFdlIGNoYWluIHRvZ2V0aGVyIHRoZSBicmFja2V0IG9m
ZnNldCBmaWVsZHMgdGhhdCBoYXZlIHRvIGJlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZpbGxlZCBpbiBsYXRlciB3aGVuIHRoZSBlbmRzIG9mIHRoZSBicmFja2V0cyBhcmUgcmVhY2hl
ZC4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgb2Zmc2V0ID0gKCFicmFsaW5rKSA/IDAgOiBwcmV2aW91cyAtIGJyYWxpbms7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhbGluayA9IHByZXZpb3VzOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1dExpbmtWYWx1ZUFsbG93WmVyb0FuZEFkdmFuY2UocHJl
dmlvdXMsIG9mZnNldCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdF9tYXgtLTsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgLyogSWYgdGhlIG1pbmltdW0gaXMgZ3JlYXRlciB0aGFuIHplcm8sIHJlcGxpY2F0ZSB0aGUg
Z3JvdXAgYXMgbWFueQotICAgICAgICAgICAgICAgICAgICAgdGltZXMgYXMgbmVjZXNzYXJ5LCBh
bmQgYWRqdXN0IHRoZSBtYXhpbXVtIHRvIHRoZSBudW1iZXIgb2Ygc3Vic2VxdWVudAotICAgICAg
ICAgICAgICAgICAgICAgY29waWVzIHRoYXQgd2UgbmVlZC4gSWYgd2Ugc2V0IGEgZmlyc3QgY2hh
ciBmcm9tIHRoZSBncm91cCwgYW5kIGRpZG4ndAotICAgICAgICAgICAgICAgICAgICAgc2V0IGEg
cmVxdWlyZWQgY2hhciwgY29weSB0aGUgbGF0dGVyIGZyb20gdGhlIGZvcm1lci4gKi8KLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKHJlcGVhdE1pbiA+IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoZGlkR3JvdXBTZXRGaXJzdEJ5dGUgJiYgcmVxQnl0ZSA8IDApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlcUJ5dGUgPSBmaXJzdEJ5dGU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCByZXBlYXRNaW47IGkrKykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgcHJldmlvdXMsIGxlbik7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGUgKz0gbGVuOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChyZXBlYXRfbWF4ID4gMCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICByZXBlYXRfbWF4IC09IHJlcGVhdE1pbjsKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogVGhpcyBjb2RlIGlz
IGNvbW1vbiB0byBib3RoIHRoZSB6ZXJvIGFuZCBub24temVybyBtaW5pbXVtIGNhc2VzLiBJZgot
ICAgICAgICAgICAgICAgICAgICAgdGhlIG1heGltdW0gaXMgbGltaXRlZCwgaXQgcmVwbGljYXRl
cyB0aGUgZ3JvdXAgaW4gYSBuZXN0ZWQgZmFzaGlvbiwKLSAgICAgICAgICAgICAgICAgICAgIHJl
bWVtYmVyaW5nIHRoZSBicmFja2V0IHN0YXJ0cyBvbiBhIHN0YWNrLiBJbiB0aGUgY2FzZSBvZiBh
IHplcm8gbWluaW11bSwKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBmaXJzdCBvbmUgd2FzIHNl
dCB1cCBhYm92ZS4gSW4gYWxsIGNhc2VzIHRoZSByZXBlYXRfbWF4IG5vdyBzcGVjaWZpZXMKLSAg
ICAgICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgb2YgYWRkaXRpb25hbCBjb3BpZXMgbmVlZGVk
LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVh
dF9tYXggPj0gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IHJlcGVh
dF9tYXggLSAxOyBpID49IDA7IGktLSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpj
b2RlKysgPSBPUF9CUkFaRVJPICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBBbGwgYnV0IHRoZSBmaW5hbCBj
b3B5IHN0YXJ0IGEgbmV3IG5lc3RpbmcsIG1haW50YWluaW5nIHRoZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjaGFpbiBvZiBicmFja2V0cyBvdXRzdGFuZGluZy4gKi8KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaSAh
PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9CUkE7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoIWJyYWxpbmsp
ID8gMCA6IGNvZGUgLSBicmFsaW5rOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmFsaW5rID0gY29kZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TGlua1Zh
bHVlQWxsb3daZXJvQW5kQWR2YW5jZShjb2RlLCBvZmZzZXQpOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgcHJldmlvdXMsIGxlbik7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29kZSArPSBsZW47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vdyBj
aGFpbiB0aHJvdWdoIHRoZSBwZW5kaW5nIGJyYWNrZXRzLCBhbmQgZmlsbCBpbiB0aGVpciBsZW5n
dGgKLSAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHMgKHdoaWNoIGFyZSBob2xkaW5nIHRo
ZSBjaGFpbiBsaW5rcyBwcm8gdGVtKS4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGJyYWxpbmspIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpbnQgb2Zmc2V0ID0gY29kZSAtIGJyYWxpbmsgKyAxOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIqIGJyYSA9IGNvZGUgLSBvZmZzZXQ7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9sZGxpbmtvZmZzZXQgPSBnZXRMaW5rVmFsdWVB
bGxvd1plcm8oYnJhICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhbGluayA9
ICghb2xkbGlua29mZnNldCkgPyAwIDogYnJhbGluayAtIG9sZGxpbmtvZmZzZXQ7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0tFVDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwdXRMaW5rVmFsdWVBbmRBZHZhbmNlKGNvZGUsIG9mZnNldCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHV0TGlua1ZhbHVlKGJyYSArIDEsIG9mZnNldCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIGlzIHVubGlt
aXRlZCwgc2V0IGEgcmVwZWF0ZXIgaW4gdGhlIGZpbmFsIGNvcHkuIFdlCi0gICAgICAgICAgICAg
ICAgICAgICBjYW4ndCBqdXN0IG9mZnNldCBiYWNrd2FyZHMgZnJvbSB0aGUgY3VycmVudCBjb2Rl
IHBvaW50LCBiZWNhdXNlIHdlCi0gICAgICAgICAgICAgICAgICAgICBkb24ndCBrbm93IGlmIHRo
ZXJlJ3MgYmVlbiBhbiBvcHRpb25zIHJlc2V0dGluZyBhZnRlciB0aGUga2V0LiBUaGUKLSAgICAg
ICAgICAgICAgICAgICAgIGNvcnJlY3Qgb2Zmc2V0IHdhcyBjb21wdXRlZCBhYm92ZS4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGNvZGVbLWtldG9mZnNldF0gPSBPUF9LRVRSTUFYICsgcmVwZWF0VHlwZTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLy8g
QSBxdWFudGlmaWVyIGFmdGVyIGFuIGFzc2VydGlvbiBpcyBtb3N0bHkgbWVhbmluZ2xlc3MsIGJ1
dCBpdAotICAgICAgICAgICAgICAgIC8vIGNhbiBudWxsaWZ5IHRoZSBhc3NlcnRpb24gaWYgaXQg
aGFzIGEgMCBtaW5pbXVtLgotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwcmV2aW91cyA9PSBP
UF9BU1NFUlQgfHwgKnByZXZpb3VzID09IE9QX0FTU0VSVF9OT1QpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlcGVhdE1pbiA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb2Rl
ID0gcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICBnb3RvIEVORF9SRVBFQVQ7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogRWxzZSB0aGVyZSdzIHNvbWUga2luZCBvZiBzaGFtYmxlcyAq
LwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJSMTE7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8g
RkFJTEVEOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAvKiBJbiBhbGwgY2FzZSB3ZSBubyBsb25nZXIgaGF2ZSBhIHByZXZpb3VzIGl0ZW0uIFdl
IGFsc28gc2V0IHRoZQotICAgICAgICAgICAgICAgICAiZm9sbG93cyB2YXJ5aW5nIHN0cmluZyIg
ZmxhZyBmb3Igc3Vic2VxdWVudGx5IGVuY291bnRlcmVkIHJlcWJ5dGVzIGlmCi0gICAgICAgICAg
ICAgICAgIGl0IGlzbid0IGFscmVhZHkgc2V0IGFuZCB3ZSBoYXZlIGp1c3QgcGFzc2VkIGEgdmFy
eWluZyBsZW5ndGggaXRlbS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEVORF9S
RVBFQVQ6Ci0gICAgICAgICAgICAgICAgcHJldmlvdXMgPSBOVUxMOwotICAgICAgICAgICAgICAg
IGNkLnJlcVZhcnlPcHQgfD0gcmVxdmFyeTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIFN0YXJ0IG9mIG5lc3RlZCBicmFja2V0IHN1Yi1l
eHByZXNzaW9uLCBvciBjb21tZW50IG9yIGxvb2thaGVhZCBvcgotICAgICAgICAgICAgIGxvb2ti
ZWhpbmQgb3Igb3B0aW9uIHNldHRpbmcgb3IgY29uZGl0aW9uLiBGaXJzdCBkZWFsIHdpdGggc3Bl
Y2lhbCB0aGluZ3MKLSAgICAgICAgICAgICB0aGF0IGNhbiBjb21lIGFmdGVyIGEgYnJhY2tldDsg
YWxsIGFyZSBpbnRyb2R1Y2VkIGJ5ID8sIGFuZCB0aGUgYXBwZWFyYW5jZQotICAgICAgICAgICAg
IG9mIGFueSBvZiB0aGVtIG1lYW5zIHRoYXQgdGhpcyBpcyBub3QgYSByZWZlcmVuY2luZyBncm91
cC4gVGhleSB3ZXJlCi0gICAgICAgICAgICAgY2hlY2tlZCBmb3IgdmFsaWRpdHkgaW4gdGhlIGZp
cnN0IHBhc3Mgb3ZlciB0aGUgc3RyaW5nLCBzbyB3ZSBkb24ndCBoYXZlIHRvCi0gICAgICAgICAg
ICAgY2hlY2sgZm9yIHN5bnRheCBlcnJvcnMgaGVyZS4gICovCi0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICBjYXNlICcoJzoKLSAgICAgICAgICAgICAgICBza2lwQnl0ZXMgPSAwOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICgqKCsrcHRyKSA9PSAnPycpIHsKLSAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoICgqKCsrcHRyKSkgewotICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSAnOic6ICAgICAgICAgICAgICAgICAvKiBOb24tZXh0cmFjdGluZyBicmFja2V0
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhdmFsdWUgPSBPUF9CUkE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICBjYXNlICc9JzogICAgICAgICAgICAgICAgIC8qIFBvc2l0aXZlIGxvb2thaGVhZCAq
LwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYXZhbHVlID0gT1BfQVNTRVJUOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSAnISc6ICAgICAgICAgICAgICAgICAvKiBOZWdhdGl2ZSBsb29rYWhlYWQg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmF2YWx1ZSA9IE9QX0FTU0VSVF9OT1Q7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAvKiBDaGFyYWN0ZXIgYWZ0ZXIgKD8gbm90IHNwZWNpYWxseSByZWNvZ25p
emVkICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICplcnJvckNvZGVQdHIg
PSBFUlIxMjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIEZBSUxFRDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogRWxzZSB3ZSBoYXZlIGEgcmVmZXJlbmNpbmcgZ3JvdXA7IGFk
anVzdCB0aGUgb3Bjb2RlLiBJZiB0aGUgYnJhY2tldAotICAgICAgICAgICAgICAgICBudW1iZXIg
aXMgZ3JlYXRlciB0aGFuIEVYVFJBQ1RfQkFTSUNfTUFYLCB3ZSBzZXQgdGhlIG9wY29kZSBvbmUg
aGlnaGVyLCBhbmQKLSAgICAgICAgICAgICAgICAgYXJyYW5nZSBmb3IgdGhlIHRydWUgbnVtYmVy
IHRvIGZvbGxvdyBsYXRlciwgaW4gYW4gT1BfQlJBTlVNQkVSIGl0ZW0uICovCi0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgr
KygqYnJhY2tldHMpID4gRVhUUkFDVF9CQVNJQ19NQVgpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyYXZhbHVlID0gT1BfQlJBICsgRVhUUkFDVF9CQVNJQ19NQVggKyAxOwotICAgICAgICAg
ICAgICAgICAgICAgICAgY29kZVsxICsgTElOS19TSVpFXSA9IE9QX0JSQU5VTUJFUjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHB1dDJCeXRlVmFsdWUoY29kZSArIDIgKyBMSU5LX1NJWkUsICpi
cmFja2V0cyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBza2lwQnl0ZXMgPSAzOwotICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGJyYXZhbHVlID0gT1BfQlJBICsgKmJyYWNrZXRzOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBQcm9jZXNzIG5lc3RlZCBi
cmFja2V0ZWQgcmUuIFdlIGNvcHkgY29kZSBpbnRvIGEgbm9uLXZhcmlhYmxlCi0gICAgICAgICAg
ICAgICAgIGluIG9yZGVyIHRvIGJlIGFibGUgdG8gcGFzcyBpdHMgYWRkcmVzcyBiZWNhdXNlIHNv
bWUgY29tcGlsZXJzCi0gICAgICAgICAgICAgICAgIGNvbXBsYWluIG90aGVyd2lzZS4gUGFzcyBp
biBhIG5ldyBzZXR0aW5nIGZvciB0aGUgaW1zIG9wdGlvbnMKLSAgICAgICAgICAgICAgICAgaWYg
dGhleSBoYXZlIGNoYW5nZWQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cHJldmlvdXMgPSBjb2RlOwotICAgICAgICAgICAgICAgICpjb2RlID0gYnJhdmFsdWU7Ci0gICAg
ICAgICAgICAgICAgdGVtcGNvZGUgPSBjb2RlOwotICAgICAgICAgICAgICAgIHRlbXByZXF2YXJ5
ID0gY2QucmVxVmFyeU9wdDsgICAgIC8qIFNhdmUgdmFsdWUgYmVmb3JlIGJyYWNrZXQgKi8KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWNvbXBpbGVCcmFja2V0KAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmFja2V0cywgICAgICAgICAgICAgICAgICAgICAvKiBFeHRy
YWN0aW5nIGJyYWNrZXQgY291bnQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJnRlbXBjb2RlLCAgICAgICAgICAgICAgICAgICAgLyogV2hlcmUgdG8gcHV0IGNvZGUgKHVw
ZGF0ZWQpICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwdHIsICAgICAg
ICAgICAgICAgICAgICAgICAgIC8qIElucHV0IHBvaW50ZXIgKHVwZGF0ZWQpICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm5FbmQsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVycm9yQ29kZVB0ciwgICAgICAgICAgICAgICAgIC8qIFdoZXJl
IHRvIHB1dCBhbiBlcnJvciBtZXNzYWdlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNraXBCeXRlcywgICAgICAgICAgICAgICAgICAgIC8qIFNraXAgb3ZlciBPUF9CUkFO
VU1CRVIgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN1YkZpcnN0Qnl0
ZSwgICAgICAgICAgICAgICAgLyogRm9yIHBvc3NpYmxlIGZpcnN0IGNoYXIgKi8KLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnN1YlJlcUJ5dGUsICAgICAgICAgICAgICAgICAg
LyogRm9yIHBvc3NpYmxlIGxhc3QgY2hhciAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjZCkpICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUYWJsZXMgYmxvY2sgKi8K
LSAgICAgICAgICAgICAgICAgICAgZ290byBGQUlMRUQ7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogQXQgdGhlIGVuZCBvZiBjb21waWxpbmcsIGNvZGUgaXMgc3RpbGwgcG9p
bnRpbmcgdG8gdGhlIHN0YXJ0IG9mIHRoZQotICAgICAgICAgICAgICAgICBncm91cCwgd2hpbGUg
dGVtcGNvZGUgaGFzIGJlZW4gdXBkYXRlZCB0byBwb2ludCBwYXN0IHRoZSBlbmQgb2YgdGhlIGdy
b3VwCi0gICAgICAgICAgICAgICAgIGFuZCBhbnkgb3B0aW9uIHJlc2V0dGluZyB0aGF0IG1heSBm
b2xsb3cgaXQuIFRoZSBwYXR0ZXJuIHBvaW50ZXIgKHB0cikKLSAgICAgICAgICAgICAgICAgaXMg
b24gdGhlIGJyYWNrZXQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyog
SGFuZGxlIHVwZGF0aW5nIG9mIHRoZSByZXF1aXJlZCBhbmQgZmlyc3QgY2hhcmFjdGVycy4gVXBk
YXRlIGZvciBub3JtYWwKLSAgICAgICAgICAgICAgICAgYnJhY2tldHMgb2YgYWxsIGtpbmRzLCBh
bmQgY29uZGl0aW9ucyB3aXRoIHR3byBicmFuY2hlcyAoc2VlIGNvZGUgYWJvdmUpLgotICAgICAg
ICAgICAgICAgICBJZiB0aGUgYnJhY2tldCBpcyBmb2xsb3dlZCBieSBhIHF1YW50aWZpZXIgd2l0
aCB6ZXJvIHJlcGVhdCwgd2UgaGF2ZSB0bwotICAgICAgICAgICAgICAgICBiYWNrIG9mZi4gSGVu
Y2UgdGhlIGRlZmluaXRpb24gb2YgemVyb1JlcUJ5dGUgYW5kIHplcm9GaXJzdEJ5dGUgb3V0c2lk
ZSB0aGUKLSAgICAgICAgICAgICAgICAgbWFpbiBsb29wIHNvIHRoYXQgdGhleSBjYW4gYmUgYWNj
ZXNzZWQgZm9yIHRoZSBiYWNrIG9mZi4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICB6ZXJvUmVxQnl0ZSA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAgemVyb0ZpcnN0Qnl0
ZSA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAgICAgICBkaWRHcm91cFNldEZpcnN0Qnl0ZSA9IGZh
bHNlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChicmF2YWx1ZSA+PSBP
UF9CUkEpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogSWYgd2UgaGF2ZSBub3QgeWV0IHNldCBh
IGZpcnN0Qnl0ZSBpbiB0aGlzIGJyYW5jaCwgdGFrZSBpdCBmcm9tIHRoZQotICAgICAgICAgICAg
ICAgICAgICAgc3VicGF0dGVybiwgcmVtZW1iZXJpbmcgdGhhdCBpdCB3YXMgc2V0IGhlcmUgc28g
dGhhdCBhIHJlcGVhdCBvZiBtb3JlCi0gICAgICAgICAgICAgICAgICAgICB0aGFuIG9uZSBjYW4g
cmVwbGljYXRlIGl0IGFzIHJlcUJ5dGUgaWYgbmVjZXNzYXJ5LiBJZiB0aGUgc3VicGF0dGVybiBo
YXMKLSAgICAgICAgICAgICAgICAgICAgIG5vIGZpcnN0Qnl0ZSwgc2V0ICJub25lIiBmb3IgdGhl
IHdob2xlIGJyYW5jaC4gSW4gYm90aCBjYXNlcywgYSB6ZXJvCi0gICAgICAgICAgICAgICAgICAg
ICByZXBlYXQgZm9yY2VzIGZpcnN0Qnl0ZSB0byAibm9uZSIuICovCi0gICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRlID09IFJFUV9VTlNFVCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1YkZpcnN0Qnl0ZSA+PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZmlyc3RCeXRlID0gc3ViRmlyc3RCeXRlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRpZEdyb3VwU2V0Rmlyc3RCeXRlID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBSRVFfTk9ORTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHplcm9GaXJzdEJ5dGUgPSBSRVFfTk9ORTsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSWYgZmlyc3RC
eXRlIHdhcyBwcmV2aW91c2x5IHNldCwgY29udmVydCB0aGUgc3VicGF0dGVybidzIGZpcnN0Qnl0
ZQotICAgICAgICAgICAgICAgICAgICAgaW50byByZXFCeXRlIGlmIHRoZXJlIHdhc24ndCBvbmUs
IHVzaW5nIHRoZSB2YXJ5IGZsYWcgdGhhdCB3YXMgaW4KLSAgICAgICAgICAgICAgICAgICAgIGV4
aXN0ZW5jZSBiZWZvcmVoYW5kLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoc3ViRmlyc3RCeXRlID49IDAgJiYgc3ViUmVxQnl0ZSA8IDApCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzdWJSZXFCeXRlID0gc3ViRmlyc3RCeXRlIHwgdGVtcHJl
cXZhcnk7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBJZiB0
aGUgc3VicGF0dGVybiBzZXQgYSByZXF1aXJlZCBieXRlIChvciBzZXQgYSBmaXJzdCBieXRlIHRo
YXQgaXNuJ3QKLSAgICAgICAgICAgICAgICAgICAgIHJlYWxseSB0aGUgZmlyc3QgYnl0ZSAtIHNl
ZSBhYm92ZSksIHNldCBpdC4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChzdWJSZXFCeXRlID49IDApCi0gICAgICAgICAgICAgICAgICAgICAgICByZXFC
eXRlID0gc3ViUmVxQnl0ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgLyogRm9yIGEgZm9yd2FyZCBhc3NlcnRpb24sIHdlIHRha2UgdGhlIHJl
cUJ5dGUsIGlmIHNldC4gVGhpcyBjYW4gYmUKLSAgICAgICAgICAgICAgICAgaGVscGZ1bCBpZiB0
aGUgcGF0dGVybiB0aGF0IGZvbGxvd3MgdGhlIGFzc2VydGlvbiBkb2Vzbid0IHNldCBhIGRpZmZl
cmVudAotICAgICAgICAgICAgICAgICBjaGFyLiBGb3IgZXhhbXBsZSwgaXQncyB1c2VmdWwgZm9y
IC8oPz1hYmNkZSkuKy8uIFdlIGNhbid0IHNldCBmaXJzdEJ5dGUKLSAgICAgICAgICAgICAgICAg
Zm9yIGFuIGFzc2VydGlvbiwgaG93ZXZlciBiZWNhdXNlIGl0IGxlYWRzIHRvIGluY29ycmVjdCBl
ZmZlY3QgZm9yIHBhdHRlcm5zCi0gICAgICAgICAgICAgICAgIHN1Y2ggYXMgLyg/PWEpYS4rLyB3
aGVuIHRoZSAicmVhbCIgImEiIHdvdWxkIHRoZW4gYmVjb21lIGEgcmVxQnl0ZSBpbnN0ZWFkCi0g
ICAgICAgICAgICAgICAgIG9mIGEgZmlyc3RCeXRlLiBUaGlzIGlzIG92ZXJjb21lIGJ5IGEgc2Nh
biBhdCB0aGUgZW5kIGlmIHRoZXJlJ3Mgbm8KLSAgICAgICAgICAgICAgICAgZmlyc3RCeXRlLCBs
b29raW5nIGZvciBhbiBhc3NlcnRlZCBmaXJzdCBjaGFyLiAqLwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKGJyYXZhbHVlID09IE9QX0FTU0VSVCAmJiBzdWJSZXFC
eXRlID49IDApCi0gICAgICAgICAgICAgICAgICAgIHJlcUJ5dGUgPSBzdWJSZXFCeXRlOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIE5vdyB1cGRhdGUgdGhlIG1haW4gY29k
ZSBwb2ludGVyIHRvIHRoZSBlbmQgb2YgdGhlIGdyb3VwLiAqLwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIGNvZGUgPSB0ZW1wY29kZTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAvKiBFcnJvciBpZiBoaXQgZW5kIG9mIHBhdHRlcm4gKi8KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBpZiAocHRyID49IHBhdHRlcm5FbmQgfHwgKnB0ciAhPSAn
KScpIHsKLSAgICAgICAgICAgICAgICAgICAgKmVycm9yQ29kZVB0ciA9IEVSUjE0OwotICAgICAg
ICAgICAgICAgICAgICBnb3RvIEZBSUxFRDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBDaGVjayBcIGZv
ciBiZWluZyBhIHJlYWwgbWV0YWNoYXJhY3RlcjsgaWYgbm90LCBmYWxsIHRocm91Z2ggYW5kIGhh
bmRsZQotICAgICAgICAgICAgIGl0IGFzIGEgZGF0YSBjaGFyYWN0ZXIgYXQgdGhlIHN0YXJ0IG9m
IGEgc3RyaW5nLiBFc2NhcGUgaXRlbXMgYXJlIGNoZWNrZWQKLSAgICAgICAgICAgICBmb3IgdmFs
aWRpdHkgaW4gdGhlIHByZS1jb21waWxpbmcgcGFzcy4gKi8KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgIGNhc2UgJ1xcJzoKLSAgICAgICAgICAgICAgICB0ZW1wcHRyID0gcHRyOwotICAg
ICAgICAgICAgICAgIGMgPSBjaGVja0VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCBlcnJvckNvZGVQ
dHIsIGNkLm51bUNhcHR1cmluZ0JyYWNrZXRzLCBmYWxzZSk7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgLyogSGFuZGxlIG1ldGFjaGFyYWN0ZXJzIGludHJvZHVjZWQgYnkgXC4g
Rm9yIG9uZXMgbGlrZSBcZCwgdGhlIEVTQ18gdmFsdWVzCi0gICAgICAgICAgICAgICAgIGFyZSBh
cnJhbmdlZCB0byBiZSB0aGUgbmVnYXRpb24gb2YgdGhlIGNvcnJlc3BvbmRpbmcgT1BfdmFsdWVz
LiBGb3IgdGhlCi0gICAgICAgICAgICAgICAgIGJhY2sgcmVmZXJlbmNlcywgdGhlIHZhbHVlcyBh
cmUgRVNDX1JFRiBwbHVzIHRoZSByZWZlcmVuY2UgbnVtYmVyLiBPbmx5Ci0gICAgICAgICAgICAg
ICAgIGJhY2sgcmVmZXJlbmNlcyBhbmQgdGhvc2UgdHlwZXMgdGhhdCBjb25zdW1lIGEgY2hhcmFj
dGVyIG1heSBiZSByZXBlYXRlZC4KLSAgICAgICAgICAgICAgICAgV2UgY2FuIHRlc3QgZm9yIHZh
bHVlcyBiZXR3ZWVuIEVTQ19iIGFuZCBFU0NfdyBmb3IgdGhlIGxhdHRlcjsgdGhpcyBtYXkKLSAg
ICAgICAgICAgICAgICAgaGF2ZSB0byBjaGFuZ2UgaWYgYW55IG5ldyBvbmVzIGFyZSBldmVyIGNy
ZWF0ZWQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGMgPCAwKSB7
Ci0gICAgICAgICAgICAgICAgICAgIC8qIEZvciBtZXRhc2VxdWVuY2VzIHRoYXQgYWN0dWFsbHkg
bWF0Y2ggYSBjaGFyYWN0ZXIsIHdlIGRpc2FibGUgdGhlCi0gICAgICAgICAgICAgICAgICAgICBz
ZXR0aW5nIG9mIGEgZmlyc3QgY2hhcmFjdGVyIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gc2V0
LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGZpcnN0
Qnl0ZSA9PSBSRVFfVU5TRVQgJiYgLWMgPiBFU0NfYiAmJiAtYyA8PSBFU0NfdykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IFJFUV9OT05FOwotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgLyogU2V0IHZhbHVlcyB0byByZXNldCB0byBpZiB0aGlz
IGlzIGZvbGxvd2VkIGJ5IGEgemVybyByZXBlYXQuICovCi0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICB6ZXJvRmlyc3RCeXRlID0gZmlyc3RCeXRlOwotICAgICAgICAg
ICAgICAgICAgICB6ZXJvUmVxQnl0ZSA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAvKiBCYWNrIHJlZmVyZW5jZXMgYXJlIGhhbmRsZWQgc3BlY2lh
bGx5ICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoLWMg
Pj0gRVNDX1JFRikgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50IG51bWJlciA9IC1jIC0g
RVNDX1JFRjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHByZXZpb3VzID0gY29kZTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9SRUY7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBwdXQyQnl0ZVZhbHVlQW5kQWR2YW5jZShjb2RlLCBudW1iZXIpOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBG
b3IgdGhlIHJlc3QsIHdlIGNhbiBvYnRhaW4gdGhlIE9QIHZhbHVlIGJ5IG5lZ2F0aW5nIHRoZSBl
c2NhcGUKLSAgICAgICAgICAgICAgICAgICAgIHZhbHVlICovCi0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHBy
ZXZpb3VzID0gKC1jID4gRVNDX2IgJiYgLWMgPD0gRVNDX3cpID8gY29kZSA6IE5VTEw7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gLWM7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZhbGwgdGhyb3VnaC4gKi8KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBIYW5kbGUgYSBsaXRlcmFsIGNoYXJhY3Rlci4g
SXQgaXMgZ3VhcmFudGVlZCBub3QgdG8gYmUgd2hpdGVzcGFjZSBvciAjCi0gICAgICAgICAgICAg
ICAgIHdoZW4gdGhlIGV4dGVuZGVkIGZsYWcgaXMgc2V0LiBJZiB3ZSBhcmUgaW4gVVRGLTggbW9k
ZSwgaXQgbWF5IGJlIGEKLSAgICAgICAgICAgICAgICAgbXVsdGktYnl0ZSBsaXRlcmFsIGNoYXJh
Y3Rlci4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgTk9STUFMX0NIQVI6Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cHJldmlvdXMgPSBjb2RlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChj
IDwgMTI4KSB7Ci0gICAgICAgICAgICAgICAgICAgIG1jTGVuZ3RoID0gMTsKLSAgICAgICAgICAg
ICAgICAgICAgbWNidWZmZXJbMF0gPSBjOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikgJiYgKGMgfCAweDIw
KSA+PSAnYScgJiYgKGMgfCAweDIwKSA8PSAneicpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICpjb2RlKysgPSBPUF9BU0NJSV9MRVRURVJfSUdOT1JJTkdfQ0FTRTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICpjb2RlKysgPSBjIHwgMHgyMDsKLSAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBPUF9BU0NJSV9DSEFSOwotICAg
ICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IGM7Ci0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtY0xlbmd0aCA9
IGVuY29kZVVURjgoYywgbWNidWZmZXIpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgKmNvZGUrKyA9IChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikgPyBPUF9D
SEFSX0lHTk9SSU5HX0NBU0UgOiBPUF9DSEFSOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGMg
PSAwOyBjIDwgbWNMZW5ndGg7IGMrKykKLSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysg
PSBtY2J1ZmZlcltjXTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogU2V0IHRoZSBmaXJzdCBhbmQgcmVxdWlyZWQgYnl0ZXMgYXBwcm9wcmlh
dGVseS4gSWYgbm8gcHJldmlvdXMgZmlyc3QKLSAgICAgICAgICAgICAgICAgYnl0ZSwgc2V0IGl0
IGZyb20gdGhpcyBjaGFyYWN0ZXIsIGJ1dCByZXZlcnQgdG8gbm9uZSBvbiBhIHplcm8gcmVwZWF0
LgotICAgICAgICAgICAgICAgICBPdGhlcndpc2UsIGxlYXZlIHRoZSBmaXJzdEJ5dGUgdmFsdWUg
YWxvbmUsIGFuZCBkb24ndCBjaGFuZ2UgaXQgb24gYSB6ZXJvCi0gICAgICAgICAgICAgICAgIHJl
cGVhdC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoZmlyc3RCeXRl
ID09IFJFUV9VTlNFVCkgewotICAgICAgICAgICAgICAgICAgICB6ZXJvRmlyc3RCeXRlID0gUkVR
X05PTkU7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBjaGFyYWN0ZXIg
aXMgbW9yZSB0aGFuIG9uZSBieXRlIGxvbmcsIHdlIGNhbiBzZXQgZmlyc3RCeXRlCi0gICAgICAg
ICAgICAgICAgICAgICBvbmx5IGlmIGl0IGlzIG5vdCB0byBiZSBtYXRjaGVkIGNhc2VsZXNzbHku
ICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAobWNMZW5n
dGggPT0gMSB8fCByZXFDYXNlT3B0ID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZp
cnN0Qnl0ZSA9IG1jYnVmZmVyWzBdIHwgcmVxQ2FzZU9wdDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChtY0xlbmd0aCAhPSAxKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcUJ5
dGUgPSBjb2RlWy0xXSB8IGNkLnJlcVZhcnlPcHQ7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RCeXRl
ID0gcmVxQnl0ZSA9IFJFUV9OT05FOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBmaXJzdEJ5dGUgd2FzIHByZXZpb3VzbHkgc2V0OyB3ZSBj
YW4gc2V0IHJlcUJ5dGUgb25seSB0aGUgbGVuZ3RoIGlzCi0gICAgICAgICAgICAgICAgIDEgb3Ig
dGhlIG1hdGNoaW5nIGlzIGNhc2VmdWwuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9GaXJzdEJ5dGUgPSBmaXJzdEJ5
dGU7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKG1jTGVuZ3RoID09IDEgfHwgcmVxQ2FzZU9wdCA9PSAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgcmVxQnl0ZSA9IGNvZGVbLTFdIHwgcmVxQ2FzZU9wdCB8IGNkLnJl
cVZhcnlPcHQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGJyZWFrOyAgICAgICAgICAgIC8qIEVuZCBvZiBsaXRlcmFsIGNoYXJhY3RlciBoYW5k
bGluZyAqLwotICAgICAgICB9Ci0gICAgfSAgICAgICAgICAgICAgICAgICAvKiBlbmQgb2YgYmln
IGxvb3AgKi8KLSAgICAKLSAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSBieSBmYWxs
aW5nIHRocm91Z2gsIG9ubHkgYnkgYSBnb3RvIGZvciBhbGwgdGhlCi0gICAgIGVycm9yIHN0YXRl
cy4gUGFzcyBiYWNrIHRoZSBwb3NpdGlvbiBpbiB0aGUgcGF0dGVybiBzbyB0aGF0IGl0IGNhbiBi
ZSBkaXNwbGF5ZWQKLSAgICAgdG8gdGhlIHVzZXIgZm9yIGRpYWdub3NpbmcgdGhlIGVycm9yLiAq
LwotICAgIAotRkFJTEVEOgotICAgICpwdHJQdHIgPSBwdHI7Ci0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgot
KiAgICAgQ29tcGlsZSBzZXF1ZW5jZSBvZiBhbHRlcm5hdGl2ZXMgICAgICAgICAgICoKLSoqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIE9uIGVu
dHJ5LCBwdHIgaXMgcG9pbnRpbmcgcGFzdCB0aGUgYnJhY2tldCBjaGFyYWN0ZXIsIGJ1dCBvbiBy
ZXR1cm4KLWl0IHBvaW50cyB0byB0aGUgY2xvc2luZyBicmFja2V0LCBvciB2ZXJ0aWNhbCBiYXIs
IG9yIGVuZCBvZiBzdHJpbmcuCi1UaGUgY29kZSB2YXJpYWJsZSBpcyBwb2ludGluZyBhdCB0aGUg
Ynl0ZSBpbnRvIHdoaWNoIHRoZSBCUkEgb3BlcmF0b3IgaGFzIGJlZW4KLXN0b3JlZC4gSWYgdGhl
IGltcyBvcHRpb25zIGFyZSBjaGFuZ2VkIGF0IHRoZSBzdGFydCAoZm9yIGEgKD9pbXM6IGdyb3Vw
KSBvcgotZHVyaW5nIGFueSBicmFuY2gsIHdlIG5lZWQgdG8gaW5zZXJ0IGFuIE9QX09QVCBpdGVt
IGF0IHRoZSBzdGFydCBvZiBldmVyeQotZm9sbG93aW5nIGJyYW5jaCB0byBlbnN1cmUgdGhleSBn
ZXQgc2V0IGNvcnJlY3RseSBhdCBydW4gdGltZSwgYW5kIGFsc28gcGFzcwotdGhlIG5ldyBvcHRp
b25zIGludG8gZXZlcnkgc3Vic2VxdWVudCBicmFuY2ggY29tcGlsZS4KLQotQXJndW1lbnQ6Ci0g
IG9wdGlvbnMgICAgICAgIG9wdGlvbiBiaXRzLCBpbmNsdWRpbmcgYW55IGNoYW5nZXMgZm9yIHRo
aXMgc3VicGF0dGVybgotICBicmFja2V0cyAgICAgICAtPiBpbnQgY29udGFpbmluZyB0aGUgbnVt
YmVyIG9mIGV4dHJhY3RpbmcgYnJhY2tldHMgdXNlZAotICBjb2RlUHRyICAgICAgICAtPiB0aGUg
YWRkcmVzcyBvZiB0aGUgY3VycmVudCBjb2RlIHBvaW50ZXIKLSAgcHRyUHRyICAgICAgICAgLT4g
dGhlIGFkZHJlc3Mgb2YgdGhlIGN1cnJlbnQgcGF0dGVybiBwb2ludGVyCi0gIGVycm9yQ29kZVB0
ciAgIC0+IHBvaW50ZXIgdG8gZXJyb3IgY29kZSB2YXJpYWJsZQotICBza2lwQnl0ZXMgICAgICBz
a2lwIHRoaXMgbWFueSBieXRlcyBhdCBzdGFydCAoZm9yIE9QX0JSQU5VTUJFUikKLSAgZmlyc3Ri
eXRlcHRyICAgcGxhY2UgdG8gcHV0IHRoZSBmaXJzdCByZXF1aXJlZCBjaGFyYWN0ZXIsIG9yIGEg
bmVnYXRpdmUgbnVtYmVyCi0gIHJlcWJ5dGVwdHIgICAgIHBsYWNlIHRvIHB1dCB0aGUgbGFzdCBy
ZXF1aXJlZCBjaGFyYWN0ZXIsIG9yIGEgbmVnYXRpdmUgbnVtYmVyCi0gIGNkICAgICAgICAgICAg
IHBvaW50cyB0byB0aGUgZGF0YSBibG9jayB3aXRoIHRhYmxlcyBwb2ludGVycyBldGMuCi0KLVJl
dHVybnM6ICAgICAgdHJ1ZSBvbiBzdWNjZXNzCi0qLwotCi1zdGF0aWMgYm9vbAotY29tcGlsZUJy
YWNrZXQoaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVuc2lnbmVkIGNoYXIqKiBjb2RlUHRy
LAotICAgIGNvbnN0IFVDaGFyKiogcHRyUHRyLCBjb25zdCBVQ2hhciogcGF0dGVybkVuZCwgRXJy
b3JDb2RlKiBlcnJvckNvZGVQdHIsIGludCBza2lwQnl0ZXMsCi0gICAgaW50KiBmaXJzdGJ5dGVw
dHIsIGludCogcmVxYnl0ZXB0ciwgQ29tcGlsZURhdGEmIGNkKQotewotICAgIGNvbnN0IFVDaGFy
KiBwdHIgPSAqcHRyUHRyOwotICAgIHVuc2lnbmVkIGNoYXIqIGNvZGUgPSAqY29kZVB0cjsKLSAg
ICB1bnNpZ25lZCBjaGFyKiBsYXN0QnJhbmNoID0gY29kZTsKLSAgICB1bnNpZ25lZCBjaGFyKiBz
dGFydF9icmFja2V0ID0gY29kZTsKLSAgICBpbnQgZmlyc3RCeXRlID0gUkVRX1VOU0VUOwotICAg
IGludCByZXFCeXRlID0gUkVRX1VOU0VUOwotICAgIAotICAgIC8qIE9mZnNldCBpcyBzZXQgemVy
byB0byBtYXJrIHRoYXQgdGhpcyBicmFja2V0IGlzIHN0aWxsIG9wZW4gKi8KLSAgICAKLSAgICBw
dXRMaW5rVmFsdWVBbGxvd1plcm8oY29kZSArIDEsIDApOwotICAgIGNvZGUgKz0gMSArIExJTktf
U0laRSArIHNraXBCeXRlczsKLSAgICAKLSAgICAvKiBMb29wIGZvciBlYWNoIGFsdGVybmF0aXZl
IGJyYW5jaCAqLwotICAgIAotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIC8qIE5vdyBjb21w
aWxlIHRoZSBicmFuY2ggKi8KLSAgICAgICAgCi0gICAgICAgIGludCBicmFuY2hGaXJzdEJ5dGU7
Ci0gICAgICAgIGludCBicmFuY2hSZXFCeXRlOwotICAgICAgICBpZiAoIWNvbXBpbGVCcmFuY2go
b3B0aW9ucywgYnJhY2tldHMsICZjb2RlLCAmcHRyLCBwYXR0ZXJuRW5kLCBlcnJvckNvZGVQdHIs
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgJmJyYW5jaEZpcnN0Qnl0ZSwgJmJyYW5jaFJl
cUJ5dGUsIGNkKSkgewotICAgICAgICAgICAgKnB0clB0ciA9IHB0cjsKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgLyogSWYgdGhpcyBpcyB0
aGUgZmlyc3QgYnJhbmNoLCB0aGUgZmlyc3RCeXRlIGFuZCByZXFCeXRlIHZhbHVlcyBmb3IgdGhl
Ci0gICAgICAgICBicmFuY2ggYmVjb21lIHRoZSB2YWx1ZXMgZm9yIHRoZSByZWdleC4gKi8KLSAg
ICAgICAgCi0gICAgICAgIGlmICgqbGFzdEJyYW5jaCAhPSBPUF9BTFQpIHsKLSAgICAgICAgICAg
IGZpcnN0Qnl0ZSA9IGJyYW5jaEZpcnN0Qnl0ZTsKLSAgICAgICAgICAgIHJlcUJ5dGUgPSBicmFu
Y2hSZXFCeXRlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvKiBJZiB0aGlzIGlzIG5v
dCB0aGUgZmlyc3QgYnJhbmNoLCB0aGUgZmlyc3QgY2hhciBhbmQgcmVxQnl0ZSBoYXZlIHRvCi0g
ICAgICAgICBtYXRjaCB0aGUgdmFsdWVzIGZyb20gYWxsIHRoZSBwcmV2aW91cyBicmFuY2hlcywg
ZXhjZXB0IHRoYXQgaWYgdGhlIHByZXZpb3VzCi0gICAgICAgICB2YWx1ZSBmb3IgcmVxQnl0ZSBk
aWRuJ3QgaGF2ZSBSRVFfVkFSWSBzZXQsIGl0IGNhbiBzdGlsbCBtYXRjaCwgYW5kIHdlIHNldAot
ICAgICAgICAgUkVRX1ZBUlkgZm9yIHRoZSByZWdleC4gKi8KLSAgICAgICAgCi0gICAgICAgIGVs
c2UgewotICAgICAgICAgICAgLyogSWYgd2UgcHJldmlvdXNseSBoYWQgYSBmaXJzdEJ5dGUsIGJ1
dCBpdCBkb2Vzbid0IG1hdGNoIHRoZSBuZXcgYnJhbmNoLAotICAgICAgICAgICAgIHdlIGhhdmUg
dG8gYWJhbmRvbiB0aGUgZmlyc3RCeXRlIGZvciB0aGUgcmVnZXgsIGJ1dCBpZiB0aGVyZSB3YXMg
cHJldmlvdXNseQotICAgICAgICAgICAgIG5vIHJlcUJ5dGUsIGl0IHRha2VzIG9uIHRoZSB2YWx1
ZSBvZiB0aGUgb2xkIGZpcnN0Qnl0ZS4gKi8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYg
KGZpcnN0Qnl0ZSA+PSAwICYmIGZpcnN0Qnl0ZSAhPSBicmFuY2hGaXJzdEJ5dGUpIHsKLSAgICAg
ICAgICAgICAgICBpZiAocmVxQnl0ZSA8IDApCi0gICAgICAgICAgICAgICAgICAgIHJlcUJ5dGUg
PSBmaXJzdEJ5dGU7Ci0gICAgICAgICAgICAgICAgZmlyc3RCeXRlID0gUkVRX05PTkU7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIElmIHdlIChub3cgb3IgZnJv
bSBiZWZvcmUpIGhhdmUgbm8gZmlyc3RCeXRlLCBhIGZpcnN0Qnl0ZSBmcm9tIHRoZQotICAgICAg
ICAgICAgIGJyYW5jaCBiZWNvbWVzIGEgcmVxQnl0ZSBpZiB0aGVyZSBpc24ndCBhIGJyYW5jaCBy
ZXFCeXRlLiAqLwotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoZmlyc3RCeXRlIDwgMCAm
JiBicmFuY2hGaXJzdEJ5dGUgPj0gMCAmJiBicmFuY2hSZXFCeXRlIDwgMCkKLSAgICAgICAgICAg
ICAgICBicmFuY2hSZXFCeXRlID0gYnJhbmNoRmlyc3RCeXRlOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvKiBOb3cgZW5zdXJlIHRoYXQgdGhlIHJlcWJ5dGVzIG1hdGNoICovCi0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIGlmICgocmVxQnl0ZSAmIH5SRVFfVkFSWSkgIT0gKGJyYW5jaFJl
cUJ5dGUgJiB+UkVRX1ZBUlkpKQotICAgICAgICAgICAgICAgIHJlcUJ5dGUgPSBSRVFfTk9ORTsK
LSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICByZXFCeXRlIHw9IGJyYW5jaFJlcUJ5
dGU7ICAgLyogVG8gIm9yIiBSRVFfVkFSWSAqLwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAg
ICAvKiBSZWFjaGVkIGVuZCBvZiBleHByZXNzaW9uLCBlaXRoZXIgJyknIG9yIGVuZCBvZiBwYXR0
ZXJuLiBHbyBiYWNrIHRocm91Z2gKLSAgICAgICAgIHRoZSBhbHRlcm5hdGl2ZSBicmFuY2hlcyBh
bmQgcmV2ZXJzZSB0aGUgY2hhaW4gb2Ygb2Zmc2V0cywgd2l0aCB0aGUgZmllbGQgaW4KLSAgICAg
ICAgIHRoZSBCUkEgaXRlbSBub3cgYmVjb21pbmcgYW4gb2Zmc2V0IHRvIHRoZSBmaXJzdCBhbHRl
cm5hdGl2ZS4gSWYgdGhlcmUgYXJlCi0gICAgICAgICBubyBhbHRlcm5hdGl2ZXMsIGl0IHBvaW50
cyB0byB0aGUgZW5kIG9mIHRoZSBncm91cC4gVGhlIGxlbmd0aCBpbiB0aGUKLSAgICAgICAgIHRl
cm1pbmF0aW5nIGtldCBpcyBhbHdheXMgdGhlIGxlbmd0aCBvZiB0aGUgd2hvbGUgYnJhY2tldGVk
IGl0ZW0uIElmIGFueSBvZgotICAgICAgICAgdGhlIGltcyBvcHRpb25zIHdlcmUgY2hhbmdlZCBp
bnNpZGUgdGhlIGdyb3VwLCBjb21waWxlIGEgcmVzZXR0aW5nIG9wLWNvZGUKLSAgICAgICAgIGZv
bGxvd2luZywgZXhjZXB0IGF0IHRoZSB2ZXJ5IGVuZCBvZiB0aGUgcGF0dGVybi4gUmV0dXJuIGxl
YXZpbmcgdGhlIHBvaW50ZXIKLSAgICAgICAgIGF0IHRoZSB0ZXJtaW5hdGluZyBjaGFyLiAqLwot
ICAgICAgICAKLSAgICAgICAgaWYgKHB0ciA+PSBwYXR0ZXJuRW5kIHx8ICpwdHIgIT0gJ3wnKSB7
Ci0gICAgICAgICAgICBpbnQgbGVuZ3RoID0gY29kZSAtIGxhc3RCcmFuY2g7Ci0gICAgICAgICAg
ICBkbyB7Ci0gICAgICAgICAgICAgICAgaW50IHByZXZMZW5ndGggPSBnZXRMaW5rVmFsdWVBbGxv
d1plcm8obGFzdEJyYW5jaCArIDEpOwotICAgICAgICAgICAgICAgIHB1dExpbmtWYWx1ZShsYXN0
QnJhbmNoICsgMSwgbGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBsZW5ndGggPSBwcmV2TGVuZ3Ro
OwotICAgICAgICAgICAgICAgIGxhc3RCcmFuY2ggLT0gbGVuZ3RoOwotICAgICAgICAgICAgfSB3
aGlsZSAobGVuZ3RoID4gMCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIEZpbGwgaW4g
dGhlIGtldCAqLwotICAgICAgICAgICAgCi0gICAgICAgICAgICAqY29kZSA9IE9QX0tFVDsKLSAg
ICAgICAgICAgIHB1dExpbmtWYWx1ZShjb2RlICsgMSwgY29kZSAtIHN0YXJ0X2JyYWNrZXQpOwot
ICAgICAgICAgICAgY29kZSArPSAxICsgTElOS19TSVpFOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICAvKiBTZXQgdmFsdWVzIHRvIHBhc3MgYmFjayAqLwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICAqY29kZVB0ciA9IGNvZGU7Ci0gICAgICAgICAgICAqcHRyUHRyID0gcHRyOwotICAgICAg
ICAgICAgKmZpcnN0Ynl0ZXB0ciA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAgICpyZXFieXRlcHRy
ID0gcmVxQnl0ZTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgICAg
IAotICAgICAgICAvKiBBbm90aGVyIGJyYW5jaCBmb2xsb3dzOyBpbnNlcnQgYW4gIm9yIiBub2Rl
LiBJdHMgbGVuZ3RoIGZpZWxkIHBvaW50cyBiYWNrCi0gICAgICAgICB0byB0aGUgcHJldmlvdXMg
YnJhbmNoIHdoaWxlIHRoZSBicmFja2V0IHJlbWFpbnMgb3Blbi4gQXQgdGhlIGVuZCB0aGUgY2hh
aW4KLSAgICAgICAgIGlzIHJldmVyc2VkLiBJdCdzIGRvbmUgbGlrZSB0aGlzIHNvIHRoYXQgdGhl
IHN0YXJ0IG9mIHRoZSBicmFja2V0IGhhcyBhCi0gICAgICAgICB6ZXJvIG9mZnNldCB1bnRpbCBp
dCBpcyBjbG9zZWQsIG1ha2luZyBpdCBwb3NzaWJsZSB0byBkZXRlY3QgcmVjdXJzaW9uLiAqLwot
ICAgICAgICAKLSAgICAgICAgKmNvZGUgPSBPUF9BTFQ7Ci0gICAgICAgIHB1dExpbmtWYWx1ZShj
b2RlICsgMSwgY29kZSAtIGxhc3RCcmFuY2gpOwotICAgICAgICBsYXN0QnJhbmNoID0gY29kZTsK
LSAgICAgICAgY29kZSArPSAxICsgTElOS19TSVpFOwotICAgICAgICBwdHIrKzsKLSAgICB9Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICAgIENoZWNrIGZvciBhbmNob3JlZCBl
eHByZXNzaW9uICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KLQotLyogVHJ5IHRvIGZpbmQgb3V0IGlmIHRoaXMgaXMgYW4gYW5jaG9y
ZWQgcmVndWxhciBleHByZXNzaW9uLiBDb25zaWRlciBlYWNoCi1hbHRlcm5hdGl2ZSBicmFuY2gu
IElmIHRoZXkgYWxsIHN0YXJ0IE9QX0NJUkMsIG9yIHdpdGggYSBicmFja2V0Ci1hbGwgb2Ygd2hv
c2UgYWx0ZXJuYXRpdmVzIHN0YXJ0IE9QX0NJUkMgKHJlY3Vyc2UgYWQgbGliKSwgdGhlbgotaXQn
cyBhbmNob3JlZC4KLQotQXJndW1lbnRzOgotICBjb2RlICAgICAgICAgIHBvaW50cyB0byBzdGFy
dCBvZiBleHByZXNzaW9uICh0aGUgYnJhY2tldCkKLSAgY2FwdHVyZU1hcCAgICBhIGJpdG1hcCBv
ZiB3aGljaCBicmFja2V0cyB3ZSBhcmUgaW5zaWRlIHdoaWxlIHRlc3Rpbmc7IHRoaXMKLSAgICAg
ICAgICAgICAgICAgaGFuZGxlcyB1cCB0byBzdWJzdHJpbmcgMzE7IGFsbCBicmFja2V0cyBhZnRl
ciB0aGF0IHNoYXJlCi0gICAgICAgICAgICAgICAgIHRoZSB6ZXJvIGJpdAotICBiYWNrcmVmTWFw
ICAgIHRoZSBiYWNrIHJlZmVyZW5jZSBiaXRtYXAKLSovCi0KLXN0YXRpYyBib29sIGJyYW5jaElz
QW5jaG9yZWQoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSkKLXsKLSAgICBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBzY29kZSA9IGZpcnN0U2lnbmlmaWNhbnRPcGNvZGUoY29kZSk7Ci0gICAgaW50IG9w
ID0gKnNjb2RlOwotCi0gICAgLyogQnJhY2tldHMgKi8KLSAgICBpZiAob3AgPj0gT1BfQlJBIHx8
IG9wID09IE9QX0FTU0VSVCkKLSAgICAgICAgcmV0dXJuIGJyYWNrZXRJc0FuY2hvcmVkKHNjb2Rl
KTsKLQotICAgIC8qIENoZWNrIGZvciBleHBsaWNpdCBhbmNob3JpbmcgKi8gICAgCi0gICAgcmV0
dXJuIG9wID09IE9QX0NJUkM7Ci19Ci0KLXN0YXRpYyBib29sIGJyYWNrZXRJc0FuY2hvcmVkKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUpCi17Ci0gICAgZG8gewotICAgICAgICBpZiAoIWJyYW5j
aElzQW5jaG9yZWQoY29kZSArIDEgKyBMSU5LX1NJWkUpKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICBjb2RlICs9IGdldExpbmtWYWx1ZShjb2RlICsgMSk7Ci0gICAgfSB3aGls
ZSAoKmNvZGUgPT0gT1BfQUxUKTsgICAvKiBMb29wIGZvciBlYWNoIGFsdGVybmF0aXZlICovCi0g
ICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqCi0qICAgICAgICAgQ2hlY2sgZm9yIHN0YXJ0aW5nIHdpdGggXiBvciAu
KiAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKi8KLQotLyogVGhpcyBpcyBjYWxsZWQgdG8gZmluZCBvdXQgaWYgZXZlcnkgYnJhbmNoIHN0
YXJ0cyB3aXRoIF4gb3IgLiogc28gdGhhdAotImZpcnN0IGNoYXIiIHByb2Nlc3NpbmcgY2FuIGJl
IGRvbmUgdG8gc3BlZWQgdGhpbmdzIHVwIGluIG11bHRpbGluZQotbWF0Y2hpbmcgYW5kIGZvciBu
b24tRE9UQUxMIHBhdHRlcm5zIHRoYXQgc3RhcnQgd2l0aCAuKiAod2hpY2ggbXVzdCBzdGFydCBh
dAotdGhlIGJlZ2lubmluZyBvciBhZnRlciBcbikKLQotRXhjZXB0IHdoZW4gdGhlIC4qIGFwcGVh
cnMgaW5zaWRlIGNhcHR1cmluZyBwYXJlbnRoZXNlcywgYW5kIHRoZXJlIGlzIGEKLXN1YnNlcXVl
bnQgYmFjayByZWZlcmVuY2UgdG8gdGhvc2UgcGFyZW50aGVzZXMuIEJ5IGtlZXBpbmcgYSBiaXRt
YXAgb2YgdGhlCi1maXJzdCAzMSBiYWNrIHJlZmVyZW5jZXMsIHdlIGNhbiBjYXRjaCBzb21lIG9m
IHRoZSBtb3JlIGNvbW1vbiBjYXNlcyBtb3JlCi1wcmVjaXNlbHk7IGFsbCB0aGUgZ3JlYXRlciBi
YWNrIHJlZmVyZW5jZXMgc2hhcmUgYSBzaW5nbGUgYml0LgotCi1Bcmd1bWVudHM6Ci0gIGNvZGUg
ICAgICAgICAgcG9pbnRzIHRvIHN0YXJ0IG9mIGV4cHJlc3Npb24gKHRoZSBicmFja2V0KQotICBj
YXB0dXJlTWFwICAgIGEgYml0bWFwIG9mIHdoaWNoIGJyYWNrZXRzIHdlIGFyZSBpbnNpZGUgd2hp
bGUgdGVzdGluZzsgdGhpcwotICAgICAgICAgICAgICAgICBoYW5kbGVzIHVwIHRvIHN1YnN0cmlu
ZyAzMTsgYWxsIGJyYWNrZXRzIGFmdGVyIHRoYXQgc2hhcmUKLSAgICAgICAgICAgICAgICAgdGhl
IHplcm8gYml0Ci0gIGJhY2tyZWZNYXAgICAgdGhlIGJhY2sgcmVmZXJlbmNlIGJpdG1hcAotKi8K
LQotc3RhdGljIGJvb2wgYnJhbmNoTmVlZHNMaW5lU3RhcnQoY29uc3QgdW5zaWduZWQgY2hhciog
Y29kZSwgdW5zaWduZWQgY2FwdHVyZU1hcCwgdW5zaWduZWQgYmFja3JlZk1hcCkKLXsKLSAgICBj
b25zdCB1bnNpZ25lZCBjaGFyKiBzY29kZSA9IGZpcnN0U2lnbmlmaWNhbnRPcGNvZGUoY29kZSk7
Ci0gICAgaW50IG9wID0gKnNjb2RlOwotICAgIAotICAgIC8qIENhcHR1cmluZyBicmFja2V0cyAq
LwotICAgIGlmIChvcCA+IE9QX0JSQSkgewotICAgICAgICBpbnQgY2FwdHVyZU51bSA9IG9wIC0g
T1BfQlJBOwotICAgICAgICBpZiAoY2FwdHVyZU51bSA+IEVYVFJBQ1RfQkFTSUNfTUFYKQotICAg
ICAgICAgICAgY2FwdHVyZU51bSA9IGdldDJCeXRlVmFsdWUoc2NvZGUgKyAyICsgTElOS19TSVpF
KTsKLSAgICAgICAgaW50IGJyYWNrZXRNYXNrID0gKGNhcHR1cmVOdW0gPCAzMikgPyAoMSA8PCBj
YXB0dXJlTnVtKSA6IDE7Ci0gICAgICAgIHJldHVybiBicmFja2V0TmVlZHNMaW5lU3RhcnQoc2Nv
ZGUsIGNhcHR1cmVNYXAgfCBicmFja2V0TWFzaywgYmFja3JlZk1hcCk7Ci0gICAgfQotICAgIAot
ICAgIC8qIE90aGVyIGJyYWNrZXRzICovCi0gICAgaWYgKG9wID09IE9QX0JSQSB8fCBvcCA9PSBP
UF9BU1NFUlQpCi0gICAgICAgIHJldHVybiBicmFja2V0TmVlZHNMaW5lU3RhcnQoc2NvZGUsIGNh
cHR1cmVNYXAsIGJhY2tyZWZNYXApOwotICAgIAotICAgIC8qIC4qIG1lYW5zICJzdGFydCBhdCBz
dGFydCBvciBhZnRlciBcbiIgaWYgaXQgaXNuJ3QgaW4gYnJhY2tldHMgdGhhdAotICAgICBtYXkg
YmUgcmVmZXJlbmNlZC4gKi8KLSAgICAKLSAgICBpZiAob3AgPT0gT1BfVFlQRVNUQVIgfHwgb3Ag
PT0gT1BfVFlQRU1JTlNUQVIpCi0gICAgICAgIHJldHVybiBzY29kZVsxXSA9PSBPUF9OT1RfTkVX
TElORSAmJiAhKGNhcHR1cmVNYXAgJiBiYWNrcmVmTWFwKTsKLQotICAgIC8qIEV4cGxpY2l0IF4g
Ki8KLSAgICByZXR1cm4gb3AgPT0gT1BfQ0lSQyB8fCBvcCA9PSBPUF9CT0w7Ci19Ci0KLXN0YXRp
YyBib29sIGJyYWNrZXROZWVkc0xpbmVTdGFydChjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlLCB1
bnNpZ25lZCBjYXB0dXJlTWFwLCB1bnNpZ25lZCBiYWNrcmVmTWFwKQotewotICAgIGRvIHsKLSAg
ICAgICAgaWYgKCFicmFuY2hOZWVkc0xpbmVTdGFydChjb2RlICsgMSArIExJTktfU0laRSwgY2Fw
dHVyZU1hcCwgYmFja3JlZk1hcCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAg
IGNvZGUgKz0gZ2V0TGlua1ZhbHVlKGNvZGUgKyAxKTsKLSAgICB9IHdoaWxlICgqY29kZSA9PSBP
UF9BTFQpOyAgLyogTG9vcCBmb3IgZWFjaCBhbHRlcm5hdGl2ZSAqLwotICAgIHJldHVybiB0cnVl
OwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgotKiAgICAgICBDaGVjayBmb3IgYXNzZXJ0ZWQgZml4ZWQgZmlyc3QgY2hhciAgICAgICoKLSoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIER1
cmluZyBjb21waWxhdGlvbiwgdGhlICJmaXJzdCBjaGFyIiBzZXR0aW5ncyBmcm9tIGZvcndhcmQg
YXNzZXJ0aW9ucyBhcmUKLWRpc2NhcmRlZCwgYmVjYXVzZSB0aGV5IGNhbiBjYXVzZSBjb25mbGlj
dHMgd2l0aCBhY3R1YWwgbGl0ZXJhbHMgdGhhdCBmb2xsb3cuCi1Ib3dldmVyLCBpZiB3ZSBlbmQg
dXAgd2l0aG91dCBhIGZpcnN0IGNoYXIgc2V0dGluZyBmb3IgYW4gdW5hbmNob3JlZCBwYXR0ZXJu
LAotaXQgaXMgd29ydGggc2Nhbm5pbmcgdGhlIHJlZ2V4IHRvIHNlZSBpZiB0aGVyZSBpcyBhbiBp
bml0aWFsIGFzc2VydGVkIGZpcnN0Ci1jaGFyLiBJZiBhbGwgYnJhbmNoZXMgc3RhcnQgd2l0aCB0
aGUgc2FtZSBhc3NlcnRlZCBjaGFyLCBvciB3aXRoIGEgYnJhY2tldCBhbGwKLW9mIHdob3NlIGFs
dGVybmF0aXZlcyBzdGFydCB3aXRoIHRoZSBzYW1lIGFzc2VydGVkIGNoYXIgKHJlY3Vyc2UgYWQg
bGliKSwgdGhlbgotd2UgcmV0dXJuIHRoYXQgY2hhciwgb3RoZXJ3aXNlIC0xLgotCi1Bcmd1bWVu
dHM6Ci0gIGNvZGUgICAgICAgcG9pbnRzIHRvIHN0YXJ0IG9mIGV4cHJlc3Npb24gKHRoZSBicmFj
a2V0KQotICBvcHRpb25zICAgIHBvaW50ZXIgdG8gdGhlIG9wdGlvbnMgKHVzZWQgdG8gY2hlY2sg
Y2FzaW5nIGNoYW5nZXMpCi0gIGluYXNzZXJ0ICAgdHJ1ZSBpZiBpbiBhbiBhc3NlcnRpb24KLQot
UmV0dXJuczogICAgIC0xIG9yIHRoZSBmaXhlZCBmaXJzdCBjaGFyCi0qLwotCi1zdGF0aWMgaW50
IGJyYW5jaEZpbmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNv
ZGUsIGJvb2wgaW5hc3NlcnQpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgY2hhciogc2NvZGUgPSBm
aXJzdFNpZ25pZmljYW50T3Bjb2RlU2tpcHBpbmdBc3NlcnRpb25zKGNvZGUpOwotICAgIGludCBv
cCA9ICpzY29kZTsKLSAgICAKLSAgICBpZiAob3AgPj0gT1BfQlJBKQotICAgICAgICBvcCA9IE9Q
X0JSQTsKLSAgICAKLSAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgICAgIGRlZmF1bHQ6Ci0gICAgICAg
ICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAKLSAgICAgICAgY2FzZSBPUF9CUkE6Ci0gICAg
ICAgIGNhc2UgT1BfQVNTRVJUOgotICAgICAgICAgICAgcmV0dXJuIGJyYWNrZXRGaW5kRmlyc3RB
c3NlcnRlZENoYXJhY3RlcihzY29kZSwgb3AgPT0gT1BfQVNTRVJUKTsKLQotICAgICAgICBjYXNl
IE9QX0VYQUNUOgotICAgICAgICAgICAgc2NvZGUgKz0gMjsKLSAgICAgICAgICAgIC8qIEZhbGwg
dGhyb3VnaCAqLwotCi0gICAgICAgIGNhc2UgT1BfQ0hBUjoKLSAgICAgICAgY2FzZSBPUF9DSEFS
X0lHTk9SSU5HX0NBU0U6Ci0gICAgICAgIGNhc2UgT1BfQVNDSUlfQ0hBUjoKLSAgICAgICAgY2Fz
ZSBPUF9BU0NJSV9MRVRURVJfSUdOT1JJTkdfQ0FTRToKLSAgICAgICAgY2FzZSBPUF9QTFVTOgot
ICAgICAgICBjYXNlIE9QX01JTlBMVVM6Ci0gICAgICAgICAgICBpZiAoIWluYXNzZXJ0KQotICAg
ICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIHJldHVybiBzY29kZVsxXTsKLSAg
ICB9Ci19Ci0KLXN0YXRpYyBpbnQgYnJhY2tldEZpbmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUsIGJvb2wgaW5hc3NlcnQpCi17Ci0gICAgaW50IGMgPSAt
MTsKLSAgICBkbyB7Ci0gICAgICAgIGludCBkID0gYnJhbmNoRmluZEZpcnN0QXNzZXJ0ZWRDaGFy
YWN0ZXIoY29kZSArIDEgKyBMSU5LX1NJWkUsIGluYXNzZXJ0KTsKLSAgICAgICAgaWYgKGQgPCAw
KQotICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICBpZiAoYyA8IDApCi0gICAgICAgICAg
ICBjID0gZDsKLSAgICAgICAgZWxzZSBpZiAoYyAhPSBkKQotICAgICAgICAgICAgcmV0dXJuIC0x
OwotICAgICAgICBjb2RlICs9IGdldExpbmtWYWx1ZShjb2RlICsgMSk7Ci0gICAgfSB3aGlsZSAo
KmNvZGUgPT0gT1BfQUxUKTsKLSAgICByZXR1cm4gYzsKLX0KLQotc3RhdGljIGlubGluZSBpbnQg
bXVsdGlwbHlXaXRoT3ZlcmZsb3dDaGVjayhpbnQgYSwgaW50IGIpCi17Ci0gICAgaWYgKCFhIHx8
ICFiKQotICAgICAgICByZXR1cm4gMDsKLSAgICBpZiAoYSA+IE1BWF9QQVRURVJOX1NJWkUgLyBi
KQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgcmV0dXJuIGEgKiBiOwotfQotCi1zdGF0aWMgaW50
IGNhbGN1bGF0ZUNvbXBpbGVkUGF0dGVybkxlbmd0aChjb25zdCBVQ2hhciogcGF0dGVybiwgaW50
IHBhdHRlcm5MZW5ndGgsIEpTUmVnRXhwSWdub3JlQ2FzZU9wdGlvbiBpZ25vcmVDYXNlLAotICAg
IENvbXBpbGVEYXRhJiBjZCwgRXJyb3JDb2RlJiBlcnJvcmNvZGUpCi17Ci0gICAgLyogTWFrZSBh
IHBhc3Mgb3ZlciB0aGUgcGF0dGVybiB0byBjb21wdXRlIHRoZQotICAgICBhbW91bnQgb2Ygc3Rv
cmUgcmVxdWlyZWQgdG8gaG9sZCB0aGUgY29tcGlsZWQgY29kZS4gVGhpcyBkb2VzIG5vdCBoYXZl
IHRvIGJlCi0gICAgIHBlcmZlY3QgYXMgbG9uZyBhcyBlcnJvcnMgYXJlIG92ZXJlc3RpbWF0ZXMu
ICovCi0KLSAgICBpZiAocGF0dGVybkxlbmd0aCA+IE1BWF9QQVRURVJOX1NJWkUpIHsKLSAgICAg
ICAgZXJyb3Jjb2RlID0gRVJSMTY7Ci0gICAgICAgIHJldHVybiAtMTsKLSAgICB9Ci0KLSAgICBp
bnQgbGVuZ3RoID0gMSArIExJTktfU0laRTsgICAgICAvKiBGb3IgaW5pdGlhbCBCUkEgcGx1cyBs
ZW5ndGggKi8KLSAgICBpbnQgYnJhbmNoX2V4dHJhID0gMDsKLSAgICBpbnQgbGFzdGl0ZW1sZW5n
dGggPSAwOwotICAgIHVuc2lnbmVkIGJyYXN0YWNrcHRyID0gMDsKLSAgICBGaXhlZEFycmF5PGlu
dCwgQlJBU1RBQ0tfU0laRT4gYnJhc3RhY2s7Ci0gICAgRml4ZWRBcnJheTx1bnNpZ25lZCBjaGFy
LCBCUkFTVEFDS19TSVpFPiBicmFsZW5zdGFjazsKLSAgICBpbnQgYnJhY291bnQgPSAwOwotICAg
IAotICAgIGNvbnN0IFVDaGFyKiBwdHIgPSAoY29uc3QgVUNoYXIqKShwYXR0ZXJuIC0gMSk7Ci0g
ICAgY29uc3QgVUNoYXIqIHBhdHRlcm5FbmQgPSAoY29uc3QgVUNoYXIqKShwYXR0ZXJuICsgcGF0
dGVybkxlbmd0aCk7Ci0gICAgCi0gICAgd2hpbGUgKCsrcHRyIDwgcGF0dGVybkVuZCkgewotICAg
ICAgICBpbnQgbWluUmVwZWF0cyA9IDAsIG1heFJlcGVhdHMgPSAwOwotICAgICAgICBpbnQgYyA9
ICpwdHI7Ci0KLSAgICAgICAgc3dpdGNoIChjKSB7Ci0gICAgICAgICAgICAvKiBBIGJhY2tzbGFz
aGVkIGl0ZW0gbWF5IGJlIGFuIGVzY2FwZWQgZGF0YSBjaGFyYWN0ZXIgb3IgaXQgbWF5IGJlIGEK
LSAgICAgICAgICAgICBjaGFyYWN0ZXIgdHlwZS4gKi8KLQotICAgICAgICAgICAgY2FzZSAnXFwn
OgotICAgICAgICAgICAgICAgIGMgPSBjaGVja0VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCAmZXJy
b3Jjb2RlLCBjZC5udW1DYXB0dXJpbmdCcmFja2V0cywgZmFsc2UpOwotICAgICAgICAgICAgICAg
IGlmIChlcnJvcmNvZGUgIT0gMCkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGxhc3RpdGVtbGVuZ3RoID0gMTsgICAgIC8q
IERlZmF1bHQgbGVuZ3RoIG9mIGxhc3QgaXRlbSBmb3IgcmVwZWF0cyAqLwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIGlmIChjID49IDApIHsgICAgICAgICAgICAvKiBEYXRhIGNo
YXJhY3RlciAqLwotICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gMjsgICAgICAgICAgLyog
Rm9yIGEgb25lLWJ5dGUgY2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICBpZiAoYyA+IDEyNykgewotICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwganNjX3BjcmVfdXRm
OF90YWJsZTFfc2l6ZTsgaSsrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDw9
IGpzY19wY3JlX3V0ZjhfdGFibGUxW2ldKSBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGxlbmd0aCArPSBpOwotICAgICAgICAgICAgICAgICAgICAgICAgbGFzdGl0ZW1sZW5ndGggKz0g
aTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIC8qIE90aGVyIGVzY2FwZXMgbmVlZCBvbmUgYnl0ZSAqLwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGxlbmd0aCsrOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIC8qIEEgYmFjayByZWZlcmVuY2UgbmVlZHMgYW4gYWRkaXRpb25h
bCAyIGJ5dGVzLCBwbHVzIGVpdGhlciBvbmUgb3IgNQotICAgICAgICAgICAgICAgICBieXRlcyBm
b3IgYSByZXBlYXQuIFdlIGFsc28gbmVlZCB0byBrZWVwIHRoZSB2YWx1ZSBvZiB0aGUgaGlnaGVz
dAotICAgICAgICAgICAgICAgICBiYWNrIHJlZmVyZW5jZS4gKi8KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBpZiAoYyA8PSAtRVNDX1JFRikgewotICAgICAgICAgICAgICAgICAg
ICBpbnQgcmVmbnVtID0gLWMgLSBFU0NfUkVGOwotICAgICAgICAgICAgICAgICAgICBjZC5iYWNr
cmVmTWFwIHw9IChyZWZudW0gPCAzMikgPyAoMSA8PCByZWZudW0pIDogMTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlZm51bSA+IGNkLnRvcEJhY2tyZWYpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjZC50b3BCYWNrcmVmID0gcmVmbnVtOwotICAgICAgICAgICAgICAgICAgICBsZW5ndGgg
Kz0gMjsgICAvKiBGb3Igc2luZ2xlIGJhY2sgcmVmZXJlbmNlICovCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChzYWZlbHlDaGVja05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJ3snKSAmJiBpc0Nv
dW50ZWRSZXBlYXQocHRyICsgMiwgcGF0dGVybkVuZCkpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHB0ciA9IHJlYWRSZXBlYXRDb3VudHMocHRyICsgMiwgJm1pblJlcGVhdHMsICZtYXhSZXBl
YXRzLCAmZXJyb3Jjb2RlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcmNvZGUp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKChtaW5SZXBlYXRzID09IDAgJiYgKG1heFJlcGVhdHMgPT0gMSB8fCBtYXhS
ZXBlYXRzID09IC0xKSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluUmVwZWF0
cyA9PSAxICYmIG1heFJlcGVhdHMgPT0gLTEpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxlbmd0aCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCArPSA1OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNh
ZmVseUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAnPycpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgY2FzZSAnXic6ICAgICAvKiBTaW5nbGUtYnl0ZSBtZXRhY2hhcmFjdGVycyAqLwotICAg
ICAgICAgICAgY2FzZSAnLic6Ci0gICAgICAgICAgICBjYXNlICckJzoKLSAgICAgICAgICAgICAg
ICBsZW5ndGgrKzsKLSAgICAgICAgICAgICAgICBsYXN0aXRlbWxlbmd0aCA9IDE7Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlICcq
JzogICAgICAgICAgICAvKiBUaGVzZSByZXBlYXRzIHdvbid0IGJlIGFmdGVyIGJyYWNrZXRzOyAq
LwotICAgICAgICAgICAgY2FzZSAnKyc6ICAgICAgICAgICAgLyogdGhvc2UgYXJlIGhhbmRsZWQg
c2VwYXJhdGVseSAqLwotICAgICAgICAgICAgY2FzZSAnPyc6Ci0gICAgICAgICAgICAgICAgbGVu
Z3RoKys7Ci0gICAgICAgICAgICAgICAgZ290byBQT1NTRVNTSVZFOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgLyogVGhpcyBjb3ZlcnMgdGhlIGNhc2VzIG9mIGJyYWNlZCByZXBlYXRz
IGFmdGVyIGEgc2luZ2xlIGNoYXIsIG1ldGFjaGFyLAotICAgICAgICAgICAgIGNsYXNzLCBvciBi
YWNrIHJlZmVyZW5jZS4gKi8KLQotICAgICAgICAgICAgY2FzZSAneyc6Ci0gICAgICAgICAgICAg
ICAgaWYgKCFpc0NvdW50ZWRSZXBlYXQocHRyICsgMSwgcGF0dGVybkVuZCkpCi0gICAgICAgICAg
ICAgICAgICAgIGdvdG8gTk9STUFMX0NIQVI7Ci0gICAgICAgICAgICAgICAgcHRyID0gcmVhZFJl
cGVhdENvdW50cyhwdHIgKyAxLCAmbWluUmVwZWF0cywgJm1heFJlcGVhdHMsICZlcnJvcmNvZGUp
OwotICAgICAgICAgICAgICAgIGlmIChlcnJvcmNvZGUgIT0gMCkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFRoZXNl
IHNwZWNpYWwgY2FzZXMganVzdCBpbnNlcnQgb25lIGV4dHJhIG9wY29kZSAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGlmICgobWluUmVwZWF0cyA9PSAwICYmIChtYXhSZXBl
YXRzID09IDEgfHwgbWF4UmVwZWF0cyA9PSAtMSkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICht
aW5SZXBlYXRzID09IDEgJiYgbWF4UmVwZWF0cyA9PSAtMSkpCi0gICAgICAgICAgICAgICAgICAg
IGxlbmd0aCsrOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFRoZXNlIGNh
c2VzIG1pZ2h0IGluc2VydCBhZGRpdGlvbmFsIGNvcGllcyBvZiBhIHByZWNlZGluZyBjaGFyYWN0
ZXIuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChtaW5SZXBlYXRzICE9IDEpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCAtPSBsYXN0aXRlbWxlbmd0aDsgICAvKiBVbmNvdW50IHRoZSBvcmlnaW5hbCBj
aGFyIG9yIG1ldGFjaGFyICovCi0gICAgICAgICAgICAgICAgICAgICAgICBpZiAobWluUmVwZWF0
cyA+IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDMgKyBsYXN0aXRl
bWxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBsZW5n
dGggKz0gbGFzdGl0ZW1sZW5ndGggKyAoKG1heFJlcGVhdHMgPiAwKSA/IDMgOiAxKTsKLSAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHNhZmVs
eUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAnPycpKQotICAgICAgICAgICAgICAgICAg
ICBwdHIrKzsgICAgICAvKiBOZWVkcyBubyBleHRyYSBsZW5ndGggKi8KLQotICAgICAgICAgICAg
UE9TU0VTU0lWRTogICAgICAgICAgICAgICAgICAgICAvKiBUZXN0IGZvciBwb3NzZXNzaXZlIHF1
YW50aWZpZXIgKi8KLSAgICAgICAgICAgICAgICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIs
IHBhdHRlcm5FbmQsICcrJykpIHsKLSAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCArPSAyICsgMiAqIExJTktfU0laRTsgICAvKiBBbGxvdyBmb3Ig
YXRvbWljIGJyYWNrZXRzICovCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogQW4gYWx0ZXJuYXRpb24g
Y29udGFpbnMgYW4gb2Zmc2V0IHRvIHRoZSBuZXh0IGJyYW5jaCBvciBrZXQuIElmIGFueSBpbXMK
LSAgICAgICAgICAgICBvcHRpb25zIGNoYW5nZWQgaW4gdGhlIHByZXZpb3VzIGJyYW5jaChlcyks
IGFuZC9vciBpZiB3ZSBhcmUgaW4gYQotICAgICAgICAgICAgIGxvb2tiZWhpbmQgYXNzZXJ0aW9u
LCBleHRyYSBzcGFjZSB3aWxsIGJlIG5lZWRlZCBhdCB0aGUgc3RhcnQgb2YgdGhlCi0gICAgICAg
ICAgICAgYnJhbmNoLiBUaGlzIGlzIGhhbmRsZWQgYnkgYnJhbmNoX2V4dHJhLiAqLwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSAnfCc6Ci0gICAgICAgICAgICAgICAgaWYgKGJy
YXN0YWNrcHRyID09IDApCi0gICAgICAgICAgICAgICAgICAgIGNkLm5lZWRPdXRlckJyYWNrZXQg
PSB0cnVlOwotICAgICAgICAgICAgICAgIGxlbmd0aCArPSAxICsgTElOS19TSVpFICsgYnJhbmNo
X2V4dHJhOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgLyogQSBjaGFyYWN0ZXIgY2xhc3MgdXNlcyAzMyBjaGFyYWN0ZXJzIHByb3ZpZGVk
IHRoYXQgYWxsIHRoZSBjaGFyYWN0ZXIKLSAgICAgICAgICAgICB2YWx1ZXMgYXJlIGxlc3MgdGhh
biAyNTYuIE90aGVyd2lzZSwgaXQgdXNlcyBhIGJpdCBtYXAgZm9yIGxvdyB2YWx1ZWQKLSAgICAg
ICAgICAgICBjaGFyYWN0ZXJzLCBhbmQgaW5kaXZpZHVhbCBpdGVtcyBmb3Igb3RoZXJzLiBEb24n
dCB3b3JyeSBhYm91dCBjaGFyYWN0ZXIKLSAgICAgICAgICAgICB0eXBlcyB0aGF0IGFyZW4ndCBh
bGxvd2VkIGluIGNsYXNzZXMgLSB0aGV5J2xsIGdldCBwaWNrZWQgdXAgZHVyaW5nIHRoZQotICAg
ICAgICAgICAgIGNvbXBpbGUuIEEgY2hhcmFjdGVyIGNsYXNzIHRoYXQgY29udGFpbnMgb25seSBv
bmUgc2luZ2xlLWJ5dGUgY2hhcmFjdGVyCi0gICAgICAgICAgICAgdXNlcyAyIG9yIDMgYnl0ZXMs
IGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0IGlzIG5lZ2F0ZWQgb3Igbm90LiBOb3RpY2UgdGhpcwot
ICAgICAgICAgICAgIHdoZXJlIHdlIGNhbi4gKEluIFVURi04IG1vZGUgd2UgY2FuIGRvIHRoaXMg
b25seSBmb3IgY2hhcnMgPCAxMjguKSAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
Y2FzZSAnWyc6IHsKLSAgICAgICAgICAgICAgICBpbnQgY2xhc3Nfb3B0Y291bnQ7Ci0gICAgICAg
ICAgICAgICAgaWYgKCooKytwdHIpID09ICdeJykgewotICAgICAgICAgICAgICAgICAgICBjbGFz
c19vcHRjb3VudCA9IDEwOyAgLyogR3JlYXRlciB0aGFuIG9uZSAqLwotICAgICAgICAgICAgICAg
ICAgICBwdHIrKzsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICBjbGFzc19vcHRjb3VudCA9IDA7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgYm9vbCBjbGFzc191dGY4ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgZm9yICg7IHB0ciA8IHBhdHRlcm5FbmQgJiYgKnB0ciAhPSAnXSc7
ICsrcHRyKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIENoZWNrIGZvciBlc2NhcGVzICovCi0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAoKnB0ciA9PSAnXFwn
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gY2hlY2tFc2NhcGUoJnB0ciwgcGF0dGVy
bkVuZCwgJmVycm9yY29kZSwgY2QubnVtQ2FwdHVyaW5nQnJhY2tldHMsIHRydWUpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgLyogSGFuZGxlIGVzY2FwZXMgdGhhdCB0dXJuIGludG8gY2hhcmFjdGVy
cyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoYyA+PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gTk9OX1NQRUNJQUxf
Q0hBUkFDVEVSOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAvKiBFc2NhcGVzIHRoYXQgYXJlIG1ldGEtdGhpbmdzLiBUaGUgbm9ybWFsIG9uZXMganVz
dCBhZmZlY3QgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgYml0IG1hcCwgYnV0IFVuaWNv
ZGUgcHJvcGVydGllcyByZXF1aXJlIGFuIFhDTEFTUyBleHRlbmRlZCBpdGVtLiAqLwotICAgICAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3Nfb3B0Y291bnQgPSAxMDsgICAgICAgICAvKiBcZCwg
XHMgZXRjOyBtYWtlIHN1cmUgPiAxICovCi0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIEFueXRoaW5nIGVsc2UgaW5jcmVt
ZW50cyB0aGUgcG9zc2libGUgb3B0aW1pemF0aW9uIGNvdW50LiBXZSBoYXZlIHRvCi0gICAgICAg
ICAgICAgICAgICAgICBkZXRlY3QgcmFuZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gY29tcHV0ZSB0
aGUgbnVtYmVyIG9mIGV4dHJhIHJhbmdlcyBmb3IKLSAgICAgICAgICAgICAgICAgICAgIGNhc2Vs
ZXNzIHdpZGUgY2hhcmFjdGVycyB3aGVuIFVDUCBzdXBwb3J0IGlzIGF2YWlsYWJsZS4gSWYgdGhl
cmUgYXJlIHdpZGUKLSAgICAgICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMsIHdlIGFyZSBnb2lu
ZyB0byBoYXZlIHRvIHVzZSBhbiBYQ0xBU1MsIGV2ZW4gZm9yIHNpbmdsZQotICAgICAgICAgICAg
ICAgICAgICAgY2hhcmFjdGVycy4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICpwdHI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbWUgaGVy
ZSBmcm9tIGhhbmRsaW5nIFwgYWJvdmUgd2hlbiBpdCBlc2NhcGVzIHRvIGEgY2hhciB2YWx1ZSAq
LwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIE5PTl9TUEVD
SUFMX0NIQVJBQ1RFUjoKLSAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX29wdGNvdW50Kys7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBk
ID0gLTE7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihw
dHIsIHBhdHRlcm5FbmQsICctJykpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBVQ2hhciogaHlwdHIgPSBwdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
c2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICdcXCcpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkID0gY2hlY2tFc2NhcGUoJnB0ciwgcGF0dGVybkVuZCwgJmVycm9yY29kZSwgY2QubnVt
Q2FwdHVyaW5nQnJhY2tldHMsIHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZXJyb3Jjb2RlICE9IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2UgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkgJiYgcHRyWzFd
ICE9ICddJykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9ICorK3B0cjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IDApCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHB0ciA9IGh5cHRyOyAgICAgIC8qIGdvIGJhY2sgdG8gaHlwaGVuIGFzIGRh
dGEgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgZCA+PSAwIHdlIGhhdmUgYSByYW5nZS4g
SW4gVVRGLTggbW9kZSwgaWYgdGhlIGVuZCBpcyA+IDI1NSwgb3IgPgotICAgICAgICAgICAgICAg
ICAgICAgICAgIDEyNyBmb3IgY2FzZWxlc3MgbWF0Y2hpbmcsIHdlIHdpbGwgbmVlZCB0byB1c2Ug
YW4gWENMQVNTLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nf
b3B0Y291bnQgPSAxMDsgICAgIC8qIEVuc3VyZSA+IDEgKi8KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZCA8IGMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJy
b3Jjb2RlID0gRVJSODsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0x
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGQgPiAyNTUgfHwgKGlnbm9y
ZUNhc2UgJiYgZCA+IDEyNykpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVu
c2lnbmVkIGNoYXIgYnVmZmVyWzZdOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoIWNsYXNzX3V0ZjgpICAgICAgICAgLyogQWxsb3cgZm9yIFhDTEFTUyBvdmVyaGVhZCAqLwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjbGFzc191dGY4ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCArPSBMSU5LX1NJWkUgKyAyOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiB3ZSBoYXZlIFVDUCBzdXBwb3J0LCBmaW5k
IG91dCBob3cgbWFueSBleHRyYSByYW5nZXMgYXJlCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuZWVkZWQgdG8gbWFwIHRoZSBvdGhlciBjYXNlIG9mIGNoYXJhY3RlcnMgd2l0aGlu
IHRoaXMgcmFuZ2UuIFdlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXZlIHRv
IG1pbWljIHRoZSByYW5nZSBvcHRpbWl6YXRpb24gaGVyZSwgYmVjYXVzZSBleHRlbmRpbmcgdGhl
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSB1cHdhcmRzIG1pZ2h0IHB1
c2ggZCBvdmVyIGEgYm91bmRhcnkgdGhhdCBtYWtlcyBpdCB1c2UKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFub3RoZXIgYnl0ZSBpbiB0aGUgVVRGLTggcmVwcmVzZW50YXRpb24u
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaWdub3JlQ2FzZSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IG9jYywgb2NkOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGNjID0gYzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
dCBvcmlnZCA9IGQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAo
Z2V0T3RoZXJjYXNlUmFuZ2UoJmNjLCBvcmlnZCwgJm9jYywgJm9jZCkpIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2NjID49IGMgJiYgb2NkIDw9IGQpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8q
IFNraXAgZW1iZWRkZWQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2NjIDwgYyAg
JiYgb2NkID49IGMgLSAxKSAgLyogRXh0ZW5kIHRoZSBiYXNpYyByYW5nZSAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogaWYgdGhlcmUgaXMgb3ZlcmxhcCwgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjID0gb2NjOyAgICAgICAgICAgICAgICAgICAgIC8qIG5vdGlu
ZyB0aGF0IGlmIG9jYyA8IGMgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7ICAgICAgICAgICAgICAgICAgICAvKiB3ZSBjYW4ndCBoYXZlIG9j
ZCA+IGQgICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAvKiBiZWNhdXNlIGEgc3VicmFuZ2UgaXMgICovCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9jZCA+IGQgJiYgb2NjIDw9
IGQgKyAxKSAgIC8qIGFsd2F5cyBzaG9ydGVyIHRoYW4gICAgKi8KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHRo
ZSBiYXNpYyByYW5nZS4gICAgICAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZCA9IG9jZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFuIGV4dHJhIGl0ZW0gaXMgbmVlZGVk
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDEgKyBlbmNvZGVVVEY4KG9j
YywgYnVmZmVyKSArCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChv
Y2MgPT0gb2NkKSA/IDAgOiBlbmNvZGVVVEY4KG9jZCwgYnVmZmVyKSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIC8qIFRoZSBsZW5ndGggb2YgdGhlIChwb3NzaWJseSBleHRlbmRlZCkgcmFu
Z2UgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxlbmd0aCArPSAxICsgZW5jb2RlVVRGOChjLCBidWZmZXIpICsgZW5j
b2RlVVRGOChkLCBidWZmZXIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgaGF2ZSBh
IHNpbmdsZSBjaGFyYWN0ZXIuIFRoZXJlIGlzIG5vdGhpbmcgdG8gYmUgZG9uZSB1bmxlc3Mgd2UK
LSAgICAgICAgICAgICAgICAgICAgICAgICBhcmUgaW4gVVRGLTggbW9kZS4gSWYgdGhlIGNoYXIg
aXMgPiAyNTUsIG9yIDEyNyB3aGVuIGNhc2VsZXNzLCB3ZSBtdXN0Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsb3cgZm9yIGFuIFhDTF9TSU5HTEUgaXRlbSwgZG91YmxlZCBmb3IgY2FzZWxl
c3NuZXNzIGlmIHRoZXJlIGlzIFVDUAotICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnQu
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoYyA+IDI1NSB8fCAoaWdub3Jl
Q2FzZSAmJiBjID4gMTI3KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5z
aWduZWQgY2hhciBidWZmZXJbNl07Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNs
YXNzX29wdGNvdW50ID0gMTA7ICAgICAvKiBFbnN1cmUgPiAxICovCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmICghY2xhc3NfdXRmOCkgICAgICAgICAvKiBBbGxvdyBmb3IgWENM
QVNTIG92ZXJoZWFkICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjggPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IExJTktfU0laRSArIDI7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbGVuZ3RoICs9IChpZ25vcmVDYXNlID8gMiA6IDEpICogKDEgKyBlbmNvZGVVVEY4
KGMsIGJ1ZmZlcikpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAocHRyID49IHBhdHRlcm5FbmQp
IHsgICAvKiBNaXNzaW5nIHRlcm1pbmF0aW5nICddJyAqLwotICAgICAgICAgICAgICAgICAgICBl
cnJvcmNvZGUgPSBFUlI2OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFdlIGNhbiBv
cHRpbWl6ZSB3aGVuIHRoZXJlIHdhcyBvbmx5IG9uZSBvcHRpbWl6YWJsZSBjaGFyYWN0ZXIuCi0g
ICAgICAgICAgICAgICAgIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGRldGVjdCB0aGUgY2FzZSBv
ZiBhIG5lZ2F0ZWQgc2luZ2xlIGNoYXJhY3Rlci4KLSAgICAgICAgICAgICAgICAgSW4gdGhhdCBj
YXNlIHdlIGRvIGFuIGluY29ycmVjdCBsZW5ndGggY29tcHV0YXRpb24sIGJ1dCBpdCdzIG5vdCBh
IHNlcmlvdXMKLSAgICAgICAgICAgICAgICAgcHJvYmxlbSBiZWNhdXNlIHRoZSBjb21wdXRlZCBs
ZW5ndGggaXMgdG9vIGxhcmdlIHJhdGhlciB0aGFuIHRvbyBzbWFsbC4gKi8KLQotICAgICAgICAg
ICAgICAgIGlmIChjbGFzc19vcHRjb3VudCA9PSAxKQotICAgICAgICAgICAgICAgICAgICBnb3Rv
IE5PUk1BTF9DSEFSOwotCi0gICAgICAgICAgICAgICAgLyogSGVyZSwgd2UgaGFuZGxlIHJlcGVh
dHMgZm9yIHRoZSBjbGFzcyBvcGNvZGVzLiAqLwotICAgICAgICAgICAgICAgIHsKLSAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoICs9IDMzOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgLyogQSByZXBlYXQgbmVlZHMgZWl0aGVyIDEgb3IgNSBieXRlcy4gSWYgaXQg
aXMgYSBwb3NzZXNzaXZlIHF1YW50aWZpZXIsCi0gICAgICAgICAgICAgICAgICAgICB3ZSBhbHNv
IG5lZWQgZXh0cmEgZm9yIHdyYXBwaW5nIHRoZSB3aG9sZSB0aGluZyBpbiBhIHN1Yi1wYXR0ZXJu
LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNhZmVs
eUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAneycpICYmIGlzQ291bnRlZFJlcGVhdChw
dHIgKyAyLCBwYXR0ZXJuRW5kKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gcmVh
ZFJlcGVhdENvdW50cyhwdHIgKyAyLCAmbWluUmVwZWF0cywgJm1heFJlcGVhdHMsICZlcnJvcmNv
ZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgobWluUmVwZWF0cyA9PSAwICYmIChtYXhSZXBlYXRzID09IDEgfHwgbWF4UmVwZWF0cyA9
PSAtMSkpIHx8Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1pblJlcGVhdHMgPT0gMSAm
JiBtYXhSZXBlYXRzID09IC0xKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGgr
KzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsZW5ndGggKz0gNTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzYWZlbHlDaGVj
a05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJysnKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSAyICsg
MiAqIExJTktfU0laRTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2FmZWx5
Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICc/JykpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IC8qIEJyYWNrZXRzIG1heSBiZSBnZW51aW5lIGdyb3VwcyBvciBzcGVjaWFsIHRoaW5ncyAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSAnKCc6IHsKLSAgICAgICAgICAgICAg
ICBpbnQgYnJhbmNoX25ld2V4dHJhID0gMDsKLSAgICAgICAgICAgICAgICBpbnQgYnJhY2tldF9s
ZW5ndGggPSAxICsgTElOS19TSVpFOwotICAgICAgICAgICAgICAgIGJvb2wgY2FwdHVyaW5nID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSGFuZGxlIHNwZWNp
YWwgZm9ybXMgb2YgYnJhY2tldCwgd2hpY2ggYWxsIHN0YXJ0ICg/ICovCi0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgaWYgKHNhZmVseUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJu
RW5kLCAnPycpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoYyA9IChwdHIgKyAyIDwg
cGF0dGVybkVuZCA/IHB0clsyXSA6IDApKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBO
b24tcmVmZXJlbmNpbmcgZ3JvdXBzIGFuZCBsb29rYWhlYWRzIGp1c3QgbW92ZSB0aGUgcG9pbnRl
ciBvbiwgYW5kCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGhlbiBiZWhhdmUgbGlrZSBhIG5v
bi1zcGVjaWFsIGJyYWNrZXQsIGV4Y2VwdCB0aGF0IHRoZXkgZG9uJ3QgaW5jcmVtZW50Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgdGhlIGNvdW50IG9mIGV4dHJhY3RpbmcgYnJhY2tldHMuIERp
dHRvIGZvciB0aGUgIm9uY2Ugb25seSIgYnJhY2tldCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICB3aGljaCBpcyBpbiBQZXJsIGZyb20gdmVyc2lvbiA1LjAwNS4gKi8KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJzonOgotICAgICAg
ICAgICAgICAgICAgICAgICAgY2FzZSAnPSc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNl
ICchJzoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIgKz0gMjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8qIEVsc2UgbG9vcCBjaGVja2luZyB2YWxpZCBvcHRpb25z
IHVudGlsICkgaXMgbWV0LiBBbnl0aGluZyBlbHNlIGlzIGFuCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgZXJyb3IuIElmIHdlIGFyZSB3aXRob3V0IGFueSBicmFja2V0cywgaS5lLiBhdCB0b3Ag
bGV2ZWwsIHRoZSBzZXR0aW5ncwotICAgICAgICAgICAgICAgICAgICAgICAgIGFjdCBhcyBpZiBz
cGVjaWZpZWQgaW4gdGhlIG9wdGlvbnMsIHNvIG1hc3NhZ2UgdGhlIG9wdGlvbnMgaW1tZWRpYXRl
bHkuCi0gICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBpcyBmb3IgYmFja3dhcmQgY29tcGF0
aWJpbGl0eSB3aXRoIFBlcmwgNS4wMDQuICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGVycm9yY29kZSA9IEVSUjEyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAtMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICBjYXB0dXJpbmcgPSAxOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIC8qIENhcHR1cmluZyBicmFja2V0cyBtdXN0IGJlIGNvdW50ZWQgc28gd2Ug
Y2FuIHByb2Nlc3MgZXNjYXBlcyBpbiBhCi0gICAgICAgICAgICAgICAgIFBlcmxpc2ggd2F5LiBJ
ZiB0aGUgbnVtYmVyIGV4Y2VlZHMgRVhUUkFDVF9CQVNJQ19NQVggd2UgYXJlIGdvaW5nIHRvIG5l
ZWQKLSAgICAgICAgICAgICAgICAgYW4gYWRkaXRpb25hbCAzIGJ5dGVzIG9mIG1lbW9yeSBwZXIg
Y2FwdHVyaW5nIGJyYWNrZXQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
aWYgKGNhcHR1cmluZykgewotICAgICAgICAgICAgICAgICAgICBicmFjb3VudCsrOwotICAgICAg
ICAgICAgICAgICAgICBpZiAoYnJhY291bnQgPiBFWFRSQUNUX0JBU0lDX01BWCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyYWNrZXRfbGVuZ3RoICs9IDM7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFNhdmUgbGVuZ3RoIGZvciBjb21w
dXRpbmcgd2hvbGUgbGVuZ3RoIGF0IGVuZCBpZiB0aGVyZSdzIGEgcmVwZWF0IHRoYXQKLSAgICAg
ICAgICAgICAgICAgcmVxdWlyZXMgZHVwbGljYXRpb24gb2YgdGhlIGdyb3VwLiBBbHNvIHNhdmUg
dGhlIGN1cnJlbnQgdmFsdWUgb2YKLSAgICAgICAgICAgICAgICAgYnJhbmNoX2V4dHJhLCBhbmQg
c3RhcnQgdGhlIG5ldyBncm91cCB3aXRoIHRoZSBuZXcgdmFsdWUuIElmIG5vbi16ZXJvLCB0aGlz
Ci0gICAgICAgICAgICAgICAgIHdpbGwgZWl0aGVyIGJlIDIgZm9yIGEgKD9pbXN4OiBncm91cCwg
b3IgMyBmb3IgYSBsb29rYmVoaW5kIGFzc2VydGlvbi4gKi8KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBpZiAoYnJhc3RhY2twdHIgPj0gc2l6ZW9mKGJyYXN0YWNrKS9zaXplb2Yo
aW50KSkgewotICAgICAgICAgICAgICAgICAgICBlcnJvcmNvZGUgPSBFUlIxNzsKLSAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBicmFsZW5zdGFja1ticmFzdGFja3B0cl0gPSBicmFuY2hfZXh0
cmE7Ci0gICAgICAgICAgICAgICAgYnJhbmNoX2V4dHJhID0gYnJhbmNoX25ld2V4dHJhOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGJyYXN0YWNrW2JyYXN0YWNrcHRyKytdID0g
bGVuZ3RoOwotICAgICAgICAgICAgICAgIGxlbmd0aCArPSBicmFja2V0X2xlbmd0aDsKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyogSGFu
ZGxlIGtldC4gTG9vayBmb3Igc3Vic2VxdWVudCBtYXhSZXBlYXRzL21pblJlcGVhdHM7IGZvciBj
ZXJ0YWluIHNldHMgb2YgdmFsdWVzIHdlCi0gICAgICAgICAgICAgaGF2ZSB0byByZXBsaWNhdGUg
dGhpcyBicmFja2V0IHVwIHRvIHRoYXQgbWFueSB0aW1lcy4gSWYgYnJhc3RhY2twdHIgaXMKLSAg
ICAgICAgICAgICAwIHRoaXMgaXMgYW4gdW5tYXRjaGVkIGJyYWNrZXQgd2hpY2ggd2lsbCBnZW5l
cmF0ZSBhbiBlcnJvciwgYnV0IHRha2UgY2FyZQotICAgICAgICAgICAgIG5vdCB0byB0cnkgdG8g
YWNjZXNzIGJyYXN0YWNrWy0xXSB3aGVuIGNvbXB1dGluZyB0aGUgbGVuZ3RoIGFuZCByZXN0b3Jp
bmcKLSAgICAgICAgICAgICB0aGUgYnJhbmNoX2V4dHJhIHZhbHVlLiAqLwotCi0gICAgICAgICAg
ICBjYXNlICcpJzogewotICAgICAgICAgICAgICAgIGludCBkdXBsZW5ndGg7Ci0gICAgICAgICAg
ICAgICAgbGVuZ3RoICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgICAgICAgICAgaWYgKGJyYXN0
YWNrcHRyID4gMCkgewotICAgICAgICAgICAgICAgICAgICBkdXBsZW5ndGggPSBsZW5ndGggLSBi
cmFzdGFja1stLWJyYXN0YWNrcHRyXTsKLSAgICAgICAgICAgICAgICAgICAgYnJhbmNoX2V4dHJh
ID0gYnJhbGVuc3RhY2tbYnJhc3RhY2twdHJdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGR1cGxlbmd0aCA9IDA7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogTGVhdmUgcHRyIGF0IHRoZSBmaW5hbCBjaGFy
OyBmb3IgcmVhZFJlcGVhdENvdW50cyB0aGlzIGhhcHBlbnMKLSAgICAgICAgICAgICAgICAgYXV0
b21hdGljYWxseTsgZm9yIHRoZSBvdGhlcnMgd2UgbmVlZCBhbiBpbmNyZW1lbnQuICovCi0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKChwdHIgKyAxIDwgcGF0dGVybkVuZCkg
JiYgKGMgPSBwdHJbMV0pID09ICd7JyAmJiBpc0NvdW50ZWRSZXBlYXQocHRyICsgMiwgcGF0dGVy
bkVuZCkpIHsKLSAgICAgICAgICAgICAgICAgICAgcHRyID0gcmVhZFJlcGVhdENvdW50cyhwdHIg
KyAyLCAmbWluUmVwZWF0cywgJm1heFJlcGVhdHMsICZlcnJvcmNvZGUpOwotICAgICAgICAgICAg
ICAgICAgICBpZiAoZXJyb3Jjb2RlKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0x
OwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnKicpIHsKLSAgICAgICAgICAgICAg
ICAgICAgbWluUmVwZWF0cyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIG1heFJlcGVhdHMgPSAt
MTsKLSAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlm
IChjID09ICcrJykgewotICAgICAgICAgICAgICAgICAgICBtaW5SZXBlYXRzID0gMTsKLSAgICAg
ICAgICAgICAgICAgICAgbWF4UmVwZWF0cyA9IC0xOwotICAgICAgICAgICAgICAgICAgICBwdHIr
KzsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGMgPT0gJz8nKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIG1pblJlcGVhdHMgPSAwOwotICAgICAgICAgICAgICAgICAgICBtYXhSZXBlYXRzID0g
MTsKLSAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgbWluUmVwZWF0cyA9IDE7Ci0gICAgICAgICAgICAgICAgICAg
IG1heFJlcGVhdHMgPSAxOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAvKiBJZiB0aGUgbWluaW11bSBpcyB6ZXJvLCB3ZSBoYXZlIHRvIGFsbG93
IGZvciBhbiBPUF9CUkFaRVJPIGJlZm9yZSB0aGUKLSAgICAgICAgICAgICAgICAgZ3JvdXAsIGFu
ZCBpZiB0aGUgbWF4aW11bSBpcyBncmVhdGVyIHRoYW4gemVybywgd2UgaGF2ZSB0byByZXBsaWNh
dGUKLSAgICAgICAgICAgICAgICAgbWF4dmFsLTEgdGltZXM7IGVhY2ggcmVwbGljYXRpb24gYWNx
dWlyZXMgYW4gT1BfQlJBWkVSTyBwbHVzIGEgbmVzdGluZwotICAgICAgICAgICAgICAgICBicmFj
a2V0IHNldC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpbnQgcmVwZWF0
c0xlbmd0aDsKLSAgICAgICAgICAgICAgICBpZiAobWluUmVwZWF0cyA9PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGxlbmd0aCsrOwotICAgICAgICAgICAgICAgICAgICBpZiAobWF4UmVwZWF0
cyA+IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdHNMZW5ndGggPSBtdWx0aXBs
eVdpdGhPdmVyZmxvd0NoZWNrKG1heFJlcGVhdHMgLSAxLCBkdXBsZW5ndGggKyAzICsgMiAqIExJ
TktfU0laRSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0c0xlbmd0aCA8IDAp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmNvZGUgPSBFUlIxNjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gcmVwZWF0c0xlbmd0aDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChsZW5ndGggPiBNQVhfUEFUVEVSTl9TSVpFKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jjb2RlID0gRVJSMTY7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIC8qIFdoZW4gdGhlIG1pbmltdW0gaXMgZ3JlYXRlciB0aGFuIHpl
cm8sIHdlIGhhdmUgdG8gcmVwbGljYXRlIHVwIHRvCi0gICAgICAgICAgICAgICAgIG1pbnZhbC0x
IHRpbWVzLCB3aXRoIG5vIGFkZGl0aW9ucyByZXF1aXJlZCBpbiB0aGUgY29waWVzLiBUaGVuLCBp
ZiB0aGVyZQotICAgICAgICAgICAgICAgICBpcyBhIGxpbWl0ZWQgbWF4aW11bSB3ZSBoYXZlIHRv
IHJlcGxpY2F0ZSB1cCB0byBtYXh2YWwtMSB0aW1lcyBhbGxvd2luZwotICAgICAgICAgICAgICAg
ICBmb3IgYSBCUkFaRVJPIGl0ZW0gYmVmb3JlIGVhY2ggb3B0aW9uYWwgY29weSBhbmQgbmVzdGlu
ZyBicmFja2V0cyBmb3IgYWxsCi0gICAgICAgICAgICAgICAgIGJ1dCBvbmUgb2YgdGhlIG9wdGlv
bmFsIGNvcGllcy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgcmVwZWF0c0xlbmd0aCA9IG11bHRpcGx5V2l0aE92ZXJmbG93
Q2hlY2sobWluUmVwZWF0cyAtIDEsIGR1cGxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChyZXBlYXRzTGVuZ3RoIDwgMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jjb2Rl
ID0gRVJSMTY7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IHJlcGVhdHNMZW5ndGg7
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChtYXhSZXBlYXRzID4gbWluUmVwZWF0cykgeyAvKiBO
ZWVkIHRoaXMgdGVzdCBhcyBtYXhSZXBlYXRzPS0xIG1lYW5zIG5vIGxpbWl0ICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICByZXBlYXRzTGVuZ3RoID0gbXVsdGlwbHlXaXRoT3ZlcmZsb3dDaGVj
ayhtYXhSZXBlYXRzIC0gbWluUmVwZWF0cywgZHVwbGVuZ3RoICsgMyArIDIgKiBMSU5LX1NJWkUp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdHNMZW5ndGggPCAwKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3Jjb2RlID0gRVJSMTY7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IHJlcGVhdHNMZW5ndGggLSAoMiArIDIgKiBM
SU5LX1NJWkUpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChsZW5ndGggPiBNQVhfUEFUVEVSTl9TSVpFKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBl
cnJvcmNvZGUgPSBFUlIxNjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAvKiBBbGxvdyBzcGFjZSBmb3Igb25jZSBicmFja2V0cyBmb3IgInBv
c3Nlc3NpdmUgcXVhbnRpZmllciIgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICcrJykpIHsKLSAgICAg
ICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSAyICsg
MiAqIExJTktfU0laRTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIE5vbi1zcGVjaWFsIGNoYXJhY3Rl
ci4gSXQgd29uJ3QgYmUgc3BhY2Ugb3IgIyBpbiBleHRlbmRlZCBtb2RlLCBzbyBpdCBpcwotICAg
ICAgICAgICAgIGFsd2F5cyBhIGdlbnVpbmUgY2hhcmFjdGVyLiBJZiB3ZSBhcmUgaW4gYSBcUS4u
LlxFIHNlcXVlbmNlLCBjaGVjayBmb3IgdGhlCi0gICAgICAgICAgICAgZW5kOyBpZiBub3QsIHdl
IGhhdmUgYSBsaXRlcmFsLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIE5PUk1BTF9DSEFSOgotICAgICAgICAgICAgICAgIGxlbmd0aCArPSAy
OyAgICAgICAgICAvKiBGb3IgYSBvbmUtYnl0ZSBjaGFyYWN0ZXIgKi8KLSAgICAgICAgICAgICAg
ICBsYXN0aXRlbWxlbmd0aCA9IDE7ICAgLyogRGVmYXVsdCBsZW5ndGggb2YgbGFzdCBpdGVtIGZv
ciByZXBlYXRzICovCi0KLSAgICAgICAgICAgICAgICBpZiAoYyA+IDEyNykgewotICAgICAgICAg
ICAgICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IGpz
Y19wY3JlX3V0ZjhfdGFibGUxX3NpemU7IGkrKykKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChjIDw9IGpzY19wY3JlX3V0ZjhfdGFibGUxW2ldKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gaTsKLSAgICAgICAgICAg
ICAgICAgICAgbGFzdGl0ZW1sZW5ndGggKz0gaTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgCi0gICAgbGVuZ3RoICs9IDIgKyBMSU5LX1NJWkU7ICAgIC8qIEZvciBmaW5hbCBLRVQgYW5k
IEVORCAqLwotCi0gICAgY2QubnVtQ2FwdHVyaW5nQnJhY2tldHMgPSBicmFjb3VudDsKLSAgICBy
ZXR1cm4gbGVuZ3RoOwotfQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKgotKiAgICAgICAgQ29tcGlsZSBhIFJlZ3VsYXIgRXhwcmVzc2lvbiAgICAg
ICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KiovCi0KLS8qIFRoaXMgZnVuY3Rpb24gdGFrZXMgYSBzdHJpbmcgYW5kIHJldHVybnMgYSBwb2lu
dGVyIHRvIGEgYmxvY2sgb2Ygc3RvcmUKLWhvbGRpbmcgYSBjb21waWxlZCB2ZXJzaW9uIG9mIHRo
ZSBleHByZXNzaW9uLiBUaGUgb3JpZ2luYWwgQVBJIGZvciB0aGlzCi1mdW5jdGlvbiBoYWQgbm8g
ZXJyb3IgY29kZSByZXR1cm4gdmFyaWFibGU7IGl0IGlzIHJldGFpbmVkIGZvciBiYWNrd2FyZHMK
LWNvbXBhdGliaWxpdHkuIFRoZSBuZXcgZnVuY3Rpb24gaXMgZ2l2ZW4gYSBuZXcgbmFtZS4KLQot
QXJndW1lbnRzOgotICBwYXR0ZXJuICAgICAgIHRoZSByZWd1bGFyIGV4cHJlc3Npb24KLSAgb3B0
aW9ucyAgICAgICB2YXJpb3VzIG9wdGlvbiBiaXRzCi0gIGVycm9yQ29kZVB0ciAgcG9pbnRlciB0
byBlcnJvciBjb2RlIHZhcmlhYmxlIChwY3JlX2NvbXBpbGUyKCkgb25seSkKLSAgICAgICAgICAg
ICAgICAgIGNhbiBiZSBOVUxMIGlmIHlvdSBkb24ndCB3YW50IGEgY29kZSB2YWx1ZQotICBlcnJv
clB0ciAgICAgIHBvaW50ZXIgdG8gcG9pbnRlciB0byBlcnJvciB0ZXh0Ci0gIGVycm9yb2Zmc2V0
ICAgcHRyIG9mZnNldCBpbiBwYXR0ZXJuIHdoZXJlIGVycm9yIHdhcyBkZXRlY3RlZAotICB0YWJs
ZXMgICAgICAgIHBvaW50ZXIgdG8gY2hhcmFjdGVyIHRhYmxlcyBvciBOVUxMCi0KLVJldHVybnM6
ICAgICAgICBwb2ludGVyIHRvIGNvbXBpbGVkIGRhdGEgYmxvY2ssIG9yIE5VTEwgb24gZXJyb3Is
Ci0gICAgICAgICAgICAgICAgd2l0aCBlcnJvclB0ciBhbmQgZXJyb3JvZmZzZXQgc2V0Ci0qLwot
Ci1zdGF0aWMgaW5saW5lIEpTUmVnRXhwKiByZXR1cm5FcnJvcihFcnJvckNvZGUgZXJyb3Jjb2Rl
LCBjb25zdCBjaGFyKiogZXJyb3JQdHIpCi17Ci0gICAgKmVycm9yUHRyID0gZXJyb3JUZXh0KGVy
cm9yY29kZSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLUpTUmVnRXhwKiBqc1JlZ0V4cENvbXBpbGUo
Y29uc3QgVUNoYXIqIHBhdHRlcm4sIGludCBwYXR0ZXJuTGVuZ3RoLAotICAgICAgICAgICAgICAg
IEpTUmVnRXhwSWdub3JlQ2FzZU9wdGlvbiBpZ25vcmVDYXNlLCBKU1JlZ0V4cE11bHRpbGluZU9w
dGlvbiBtdWx0aWxpbmUsCi0gICAgICAgICAgICAgICAgdW5zaWduZWQqIG51bVN1YnBhdHRlcm5z
LCBjb25zdCBjaGFyKiogZXJyb3JQdHIpCi17Ci0gICAgLyogV2UgY2FuJ3QgcGFzcyBiYWNrIGFu
IGVycm9yIG1lc3NhZ2UgaWYgZXJyb3JQdHIgaXMgTlVMTDsgSSBndWVzcyB0aGUgYmVzdCB3ZQot
ICAgICBjYW4gZG8gaXMganVzdCByZXR1cm4gTlVMTCwgYnV0IHdlIGNhbiBzZXQgYSBjb2RlIHZh
bHVlIGlmIHRoZXJlIGlzIGEgY29kZSBwb2ludGVyLiAqLwotICAgIGlmICghZXJyb3JQdHIpCi0g
ICAgICAgIHJldHVybiAwOwotICAgICplcnJvclB0ciA9IE5VTEw7Ci0gICAgCi0gICAgQ29tcGls
ZURhdGEgY2Q7Ci0gICAgCi0gICAgRXJyb3JDb2RlIGVycm9yY29kZSA9IEVSUjA7Ci0gICAgLyog
Q2FsbCB0aGlzIG9uY2UganVzdCB0byBjb3VudCB0aGUgYnJhY2tldHMuICovCi0gICAgY2FsY3Vs
YXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3RoKHBhdHRlcm4sIHBhdHRlcm5MZW5ndGgsIGlnbm9yZUNh
c2UsIGNkLCBlcnJvcmNvZGUpOwotICAgIC8qIENhbGwgaXQgYWdhaW4gdG8gY29tcHV0ZSB0aGUg
bGVuZ3RoLiAqLwotICAgIGludCBsZW5ndGggPSBjYWxjdWxhdGVDb21waWxlZFBhdHRlcm5MZW5n
dGgocGF0dGVybiwgcGF0dGVybkxlbmd0aCwgaWdub3JlQ2FzZSwgY2QsIGVycm9yY29kZSk7Ci0g
ICAgaWYgKGVycm9yY29kZSkKLSAgICAgICAgcmV0dXJuIHJldHVybkVycm9yKGVycm9yY29kZSwg
ZXJyb3JQdHIpOwotICAgIAotICAgIGlmIChsZW5ndGggPiBNQVhfUEFUVEVSTl9TSVpFKQotICAg
ICAgICByZXR1cm4gcmV0dXJuRXJyb3IoRVJSMTYsIGVycm9yUHRyKTsKLSAgICAKLSAgICBzaXpl
X3Qgc2l6ZSA9IGxlbmd0aCArIHNpemVvZihKU1JlZ0V4cCk7Ci0jaWYgUkVHRVhQX0hJU1RPR1JB
TQotICAgIHNpemVfdCBzdHJpbmdPZmZzZXQgPSAoc2l6ZSArIHNpemVvZihVQ2hhcikgLSAxKSAv
IHNpemVvZihVQ2hhcikgKiBzaXplb2YoVUNoYXIpOwotICAgIHNpemUgPSBzdHJpbmdPZmZzZXQg
KyBwYXR0ZXJuTGVuZ3RoICogc2l6ZW9mKFVDaGFyKTsKLSNlbmRpZgotICAgIEpTUmVnRXhwKiBy
ZSA9IHJlaW50ZXJwcmV0X2Nhc3RfcHRyPEpTUmVnRXhwKj4obmV3IGNoYXJbc2l6ZV0pOwotICAg
IAotICAgIGlmICghcmUpCi0gICAgICAgIHJldHVybiByZXR1cm5FcnJvcihFUlIxMywgZXJyb3JQ
dHIpOwotICAgIAotICAgIHJlLT5vcHRpb25zID0gKGlnbm9yZUNhc2UgPyBJZ25vcmVDYXNlT3B0
aW9uIDogMCkgfCAobXVsdGlsaW5lID8gTWF0Y2hBY3Jvc3NNdWx0aXBsZUxpbmVzT3B0aW9uIDog
MCk7Ci0gICAgCi0gICAgLyogVGhlIHN0YXJ0aW5nIHBvaW50cyBvZiB0aGUgbmFtZS9udW1iZXIg
dHJhbnNsYXRpb24gdGFibGUgYW5kIG9mIHRoZSBjb2RlIGFyZQotICAgICBwYXNzZWQgYXJvdW5k
IGluIHRoZSBjb21waWxlIGRhdGEgYmxvY2suICovCi0gICAgCi0gICAgY29uc3QgdW5zaWduZWQg
Y2hhciogY29kZVN0YXJ0ID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIqKShyZSArIDEpOwotICAgIAot
ICAgIC8qIFNldCB1cCBhIHN0YXJ0aW5nLCBub24tZXh0cmFjdGluZyBicmFja2V0LCB0aGVuIGNv
bXBpbGUgdGhlIGV4cHJlc3Npb24uIE9uCi0gICAgIGVycm9yLCBlcnJvcmNvZGUgd2lsbCBiZSBz
ZXQgbm9uLXplcm8sIHNvIHdlIGRvbid0IG5lZWQgdG8gbG9vayBhdCB0aGUgcmVzdWx0Ci0gICAg
IG9mIHRoZSBmdW5jdGlvbiBoZXJlLiAqLwotICAgIAotICAgIGNvbnN0IFVDaGFyKiBwdHIgPSAo
Y29uc3QgVUNoYXIqKXBhdHRlcm47Ci0gICAgY29uc3QgVUNoYXIqIHBhdHRlcm5FbmQgPSBwYXR0
ZXJuICsgcGF0dGVybkxlbmd0aDsKLSAgICB1bnNpZ25lZCBjaGFyKiBjb2RlID0gY29uc3RfY2Fz
dDx1bnNpZ25lZCBjaGFyKj4oY29kZVN0YXJ0KTsKLSAgICBpbnQgZmlyc3RCeXRlLCByZXFCeXRl
OwotICAgIGludCBicmFja2V0Q291bnQgPSAwOwotICAgIGlmICghY2QubmVlZE91dGVyQnJhY2tl
dCkKLSAgICAgICAgY29tcGlsZUJyYW5jaChyZS0+b3B0aW9ucywgJmJyYWNrZXRDb3VudCwgJmNv
ZGUsICZwdHIsIHBhdHRlcm5FbmQsICZlcnJvcmNvZGUsICZmaXJzdEJ5dGUsICZyZXFCeXRlLCBj
ZCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgICpjb2RlID0gT1BfQlJBOwotICAgICAgICBjb21waWxl
QnJhY2tldChyZS0+b3B0aW9ucywgJmJyYWNrZXRDb3VudCwgJmNvZGUsICZwdHIsIHBhdHRlcm5F
bmQsICZlcnJvcmNvZGUsIDAsICZmaXJzdEJ5dGUsICZyZXFCeXRlLCBjZCk7Ci0gICAgfQotICAg
IHJlLT50b3BCcmFja2V0ID0gYnJhY2tldENvdW50OwotICAgIHJlLT50b3BCYWNrcmVmID0gY2Qu
dG9wQmFja3JlZjsKLSAgICAKLSAgICAvKiBJZiBub3QgcmVhY2hlZCBlbmQgb2YgcGF0dGVybiBv
biBzdWNjZXNzLCB0aGVyZSdzIGFuIGV4Y2VzcyBicmFja2V0LiAqLwotICAgIAotICAgIGlmIChl
cnJvcmNvZGUgPT0gMCAmJiBwdHIgPCBwYXR0ZXJuRW5kKQotICAgICAgICBlcnJvcmNvZGUgPSBF
UlIxMDsKLSAgICAKLSAgICAvKiBGaWxsIGluIHRoZSB0ZXJtaW5hdGluZyBzdGF0ZSBhbmQgY2hl
Y2sgZm9yIGRpc2FzdHJvdXMgb3ZlcmZsb3csIGJ1dAotICAgICBpZiBkZWJ1Z2dpbmcsIGxlYXZl
IHRoZSB0ZXN0IHRpbGwgYWZ0ZXIgdGhpbmdzIGFyZSBwcmludGVkIG91dC4gKi8KLSAgICAKLSAg
ICAqY29kZSsrID0gT1BfRU5EOwotCi0gICAgQVNTRVJUKGNvZGUgLSBjb2RlU3RhcnQgPD0gbGVu
Z3RoKTsKLSAgICBpZiAoY29kZSAtIGNvZGVTdGFydCA+IGxlbmd0aCkKLSAgICAgICAgZXJyb3Jj
b2RlID0gRVJSNzsKLSAgICAKLSAgICAvKiBHaXZlIGFuIGVycm9yIGlmIHRoZXJlJ3MgYmFjayBy
ZWZlcmVuY2UgdG8gYSBub24tZXhpc3RlbnQgY2FwdHVyaW5nCi0gICAgIHN1YnBhdHRlcm4uICov
Ci0gICAgCi0gICAgaWYgKHJlLT50b3BCYWNrcmVmID4gcmUtPnRvcEJyYWNrZXQpCi0gICAgICAg
IGVycm9yY29kZSA9IEVSUjE1OwotICAgIAotICAgIC8qIEZhaWxlZCB0byBjb21waWxlLCBvciBl
cnJvciB3aGlsZSBwb3N0LXByb2Nlc3NpbmcgKi8KLSAgICAKLSAgICBpZiAoZXJyb3Jjb2RlICE9
IEVSUjApIHsKLSAgICAgICAgZGVsZXRlIFtdIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlKTsK
LSAgICAgICAgcmV0dXJuIHJldHVybkVycm9yKGVycm9yY29kZSwgZXJyb3JQdHIpOwotICAgIH0K
LSAgICAKLSAgICAvKiBJZiB0aGUgYW5jaG9yZWQgb3B0aW9uIHdhcyBub3QgcGFzc2VkLCBzZXQg
dGhlIGZsYWcgaWYgd2UgY2FuIGRldGVybWluZSB0aGF0Ci0gICAgIHRoZSBwYXR0ZXJuIGlzIGFu
Y2hvcmVkIGJ5IHZpcnR1ZSBvZiBeIGNoYXJhY3RlcnMgb3IgXEEgb3IgYW55dGhpbmcgZWxzZSAo
c3VjaAotICAgICBhcyBzdGFydGluZyB3aXRoIC4qIHdoZW4gRE9UQUxMIGlzIHNldCkuCi0gICAg
IAotICAgICBPdGhlcndpc2UsIGlmIHdlIGtub3cgd2hhdCB0aGUgZmlyc3QgY2hhcmFjdGVyIGhh
cyB0byBiZSwgc2F2ZSBpdCwgYmVjYXVzZSB0aGF0Ci0gICAgIHNwZWVkcyB1cCB1bmFuY2hvcmVk
IG1hdGNoZXMgbm8gZW5kLiBJZiBub3QsIHNlZSBpZiB3ZSBjYW4gc2V0IHRoZQotICAgICBVc2VN
dWx0aUxpbmVGaXJzdEJ5dGVPcHRpbWl6YXRpb25PcHRpb24gZmxhZy4gVGhpcyBpcyBoZWxwZnVs
IGZvciBtdWx0aWxpbmUgbWF0Y2hlcyB3aGVuIGFsbCBicmFuY2hlcwotICAgICBzdGFydCB3aXRo
IF4uIGFuZCBhbHNvIHdoZW4gYWxsIGJyYW5jaGVzIHN0YXJ0IHdpdGggLiogZm9yIG5vbi1ET1RB
TEwgbWF0Y2hlcy4KLSAgICAgKi8KLSAgICAKLSAgICBpZiAoY2QubmVlZE91dGVyQnJhY2tldCA/
IGJyYWNrZXRJc0FuY2hvcmVkKGNvZGVTdGFydCkgOiBicmFuY2hJc0FuY2hvcmVkKGNvZGVTdGFy
dCkpCi0gICAgICAgIHJlLT5vcHRpb25zIHw9IElzQW5jaG9yZWRPcHRpb247Ci0gICAgZWxzZSB7
Ci0gICAgICAgIGlmIChmaXJzdEJ5dGUgPCAwKSB7Ci0gICAgICAgICAgICBmaXJzdEJ5dGUgPSAo
Y2QubmVlZE91dGVyQnJhY2tldAotICAgICAgICAgICAgICAgICAgICA/IGJyYWNrZXRGaW5kRmly
c3RBc3NlcnRlZENoYXJhY3Rlcihjb2RlU3RhcnQsIGZhbHNlKQotICAgICAgICAgICAgICAgICAg
ICA6IGJyYW5jaEZpbmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKGNvZGVTdGFydCwgZmFsc2UpKQot
ICAgICAgICAgICAgICAgIHwgKChyZS0+b3B0aW9ucyAmIElnbm9yZUNhc2VPcHRpb24pID8gUkVR
X0lHTk9SRV9DQVNFIDogMCk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKGZpcnN0Qnl0ZSA+PSAw
KSB7Ci0gICAgICAgICAgICBpbnQgY2ggPSBmaXJzdEJ5dGUgJiAyNTU7Ci0gICAgICAgICAgICBp
ZiAoY2ggPCAxMjcpIHsKLSAgICAgICAgICAgICAgICByZS0+Zmlyc3RCeXRlID0gKChmaXJzdEJ5
dGUgJiBSRVFfSUdOT1JFX0NBU0UpICYmIGZsaXBDYXNlKGNoKSA9PSBjaCkgPyBjaCA6IGZpcnN0
Qnl0ZTsKLSAgICAgICAgICAgICAgICByZS0+b3B0aW9ucyB8PSBVc2VGaXJzdEJ5dGVPcHRpbWl6
YXRpb25PcHRpb247Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICBpZiAoY2QubmVlZE91dGVyQnJhY2tldCA/IGJyYWNrZXROZWVkc0xpbmVTdGFydChjb2RlU3Rh
cnQsIDAsIGNkLmJhY2tyZWZNYXApIDogYnJhbmNoTmVlZHNMaW5lU3RhcnQoY29kZVN0YXJ0LCAw
LCBjZC5iYWNrcmVmTWFwKSkKLSAgICAgICAgICAgICAgICByZS0+b3B0aW9ucyB8PSBVc2VNdWx0
aUxpbmVGaXJzdEJ5dGVPcHRpbWl6YXRpb25PcHRpb247Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
Ci0gICAgLyogRm9yIGFuIGFuY2hvcmVkIHBhdHRlcm4sIHdlIHVzZSB0aGUgInJlcXVpcmVkIGJ5
dGUiIG9ubHkgaWYgaXQgZm9sbG93cyBhCi0gICAgIHZhcmlhYmxlIGxlbmd0aCBpdGVtIGluIHRo
ZSByZWdleC4gUmVtb3ZlIHRoZSBjYXNlbGVzcyBmbGFnIGZvciBub24tY2FzZWFibGUKLSAgICAg
Ynl0ZXMuICovCi0gICAgCi0gICAgaWYgKHJlcUJ5dGUgPj0gMCAmJiAoIShyZS0+b3B0aW9ucyAm
IElzQW5jaG9yZWRPcHRpb24pIHx8IChyZXFCeXRlICYgUkVRX1ZBUlkpKSkgewotICAgICAgICBp
bnQgY2ggPSByZXFCeXRlICYgMjU1OwotICAgICAgICBpZiAoY2ggPCAxMjcpIHsKLSAgICAgICAg
ICAgIHJlLT5yZXFCeXRlID0gKChyZXFCeXRlICYgUkVRX0lHTk9SRV9DQVNFKSAmJiBmbGlwQ2Fz
ZShjaCkgPT0gY2gpID8gKHJlcUJ5dGUgJiB+UkVRX0lHTk9SRV9DQVNFKSA6IHJlcUJ5dGU7Ci0g
ICAgICAgICAgICByZS0+b3B0aW9ucyB8PSBVc2VSZXF1aXJlZEJ5dGVPcHRpbWl6YXRpb25PcHRp
b247Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0jaWYgUkVHRVhQX0hJU1RPR1JBTQotICAgIHJl
LT5zdHJpbmdPZmZzZXQgPSBzdHJpbmdPZmZzZXQ7Ci0gICAgcmUtPnN0cmluZ0xlbmd0aCA9IHBh
dHRlcm5MZW5ndGg7Ci0gICAgbWVtY3B5KHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJlKSArIHN0
cmluZ09mZnNldCwgcGF0dGVybiwgcGF0dGVybkxlbmd0aCAqIDIpOwotI2VuZGlmCi0KLSAgICBp
ZiAobnVtU3VicGF0dGVybnMpCi0gICAgICAgICpudW1TdWJwYXR0ZXJucyA9IHJlLT50b3BCcmFj
a2V0OwotICAgIHJldHVybiByZTsKLX0KLQotdm9pZCBqc1JlZ0V4cEZyZWUoSlNSZWdFeHAqIHJl
KQotewotICAgIGRlbGV0ZSBbXSByZWludGVycHJldF9jYXN0PGNoYXIqPihyZSk7Ci19CmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggYjcwMThhYS4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNy
ZS9wY3JlX2V4ZWMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjE3OSArMCwwIEBACi0vKiBUaGlz
IGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0
aGlzIGxpYnJhcnkKLXN0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBm
ZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgotcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBw
b3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKLXJlcXVpcmVkIGJ5IHRo
ZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVu
Y3Rpb25zCi1uZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4K
LQotICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0g
ICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdl
Ci0gICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJp
YyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
IElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8KLQotLyogVGhpcyBtb2R1bGUgY29u
dGFpbnMganNSZWdFeHBFeGVjdXRlKCksIHRoZSBleHRlcm5hbGx5IHZpc2libGUgZnVuY3Rpb24K
LXRoYXQgZG9lcyBwYXR0ZXJuIG1hdGNoaW5nIHVzaW5nIGFuIE5GQSBhbGdvcml0aG0sIGZvbGxv
d2luZyB0aGUgcnVsZXMgZnJvbQotdGhlIEphdmFTY3JpcHQgc3BlY2lmaWNhdGlvbi4gVGhlcmUg
YXJlIGFsc28gc29tZSBzdXBwb3J0aW5nIGZ1bmN0aW9ucy4gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotI2luY2x1ZGUgPGxpbWl0cy5oPgot
I2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi0j
aWYgUkVHRVhQX0hJU1RPR1JBTQotI2luY2x1ZGUgPHd0Zi9EYXRlTWF0aC5oPgotI2luY2x1ZGUg
PHJ1bnRpbWUvVVN0cmluZy5oPgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci0KLSNp
ZiBIQVZFKENPTVBVVEVEX0dPVE8pCi0jZGVmaW5lIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRD
SF9SRUNVUlNJT04KLS8vI2RlZmluZSBVU0VfQ09NUFVURURfR09UT19GT1JfTUFUQ0hfT1BDT0RF
X0xPT1AKLSNlbmRpZgotCi0vKiBBdm9pZCB3YXJuaW5ncyBvbiBXaW5kb3dzLiAqLwotI3VuZGVm
IG1pbgotI3VuZGVmIG1heAotCi0jaWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9S
RUNVUlNJT04KLXR5cGVkZWYgaW50IFJldHVybkxvY2F0aW9uOwotI2Vsc2UKLXR5cGVkZWYgdm9p
ZCogUmV0dXJuTG9jYXRpb247Ci0jZW5kaWYKLQotI2lmICFSRUdFWFBfSElTVE9HUkFNCi0KLWNs
YXNzIEhpc3RvZ3JhbVRpbWVMb2dnZXIgewotcHVibGljOgotICAgIEhpc3RvZ3JhbVRpbWVMb2dn
ZXIoY29uc3QgSlNSZWdFeHAqKSB7IH0KLX07Ci0KLSNlbHNlCi0KLXVzaW5nIG5hbWVzcGFjZSBK
U0M7Ci0KLWNsYXNzIEhpc3RvZ3JhbSB7Ci1wdWJsaWM6Ci0gICAgfkhpc3RvZ3JhbSgpOwotICAg
IHZvaWQgYWRkKGNvbnN0IEpTUmVnRXhwKiwgZG91YmxlKTsKLQotcHJpdmF0ZToKLSAgICB0eXBl
ZGVmIEhhc2hNYXA8UmVmUHRyPFN0cmluZ0ltcGw+LCBkb3VibGU+IE1hcDsKLSAgICBNYXAgdGlt
ZXM7Ci19OwotCi1jbGFzcyBIaXN0b2dyYW1UaW1lTG9nZ2VyIHsKLXB1YmxpYzoKLSAgICBIaXN0
b2dyYW1UaW1lTG9nZ2VyKGNvbnN0IEpTUmVnRXhwKik7Ci0gICAgfkhpc3RvZ3JhbVRpbWVMb2dn
ZXIoKTsKLQotcHJpdmF0ZToKLSAgICBjb25zdCBKU1JlZ0V4cCogbV9yZTsKLSAgICBkb3VibGUg
bV9zdGFydFRpbWU7Ci19OwotCi0jZW5kaWYKLQotLyogU3RydWN0dXJlIGZvciBidWlsZGluZyBh
IGNoYWluIG9mIGRhdGEgZm9yIGhvbGRpbmcgdGhlIHZhbHVlcyBvZgotdGhlIHN1YmplY3QgcG9p
bnRlciBhdCB0aGUgc3RhcnQgb2YgZWFjaCBicmFja2V0LCB1c2VkIHRvIGRldGVjdCB3aGVuCi1h
biBlbXB0eSBzdHJpbmcgaGFzIGJlZW4gbWF0Y2hlZCBieSBhIGJyYWNrZXQgdG8gYnJlYWsgaW5m
aW5pdGUgbG9vcHMuICovIAotc3RydWN0IEJyYWNrZXRDaGFpbk5vZGUgewotICAgIEJyYWNrZXRD
aGFpbk5vZGUqIHByZXZpb3VzQnJhY2tldDsKLSAgICBjb25zdCBVQ2hhciogYnJhY2tldFN0YXJ0
OwotfTsKLQotc3RydWN0IE1hdGNoRnJhbWUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwotcHVibGljOgotICAgIFJldHVybkxvY2F0aW9uIHJldHVybkxvY2F0aW9uOwotICAgIHN0cnVj
dCBNYXRjaEZyYW1lKiBwcmV2aW91c0ZyYW1lOwotICAgIAotICAgIC8qIEZ1bmN0aW9uIGFyZ3Vt
ZW50cyB0aGF0IG1heSBjaGFuZ2UgKi8KLSAgICBzdHJ1Y3QgewotICAgICAgICBjb25zdCBVQ2hh
ciogc3ViamVjdFB0cjsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5zdHJ1Y3Rpb25Q
dHI7Ci0gICAgICAgIGludCBvZmZzZXRUb3A7Ci0gICAgICAgIEJyYWNrZXRDaGFpbk5vZGUqIGJy
YWNrZXRDaGFpbjsKLSAgICB9IGFyZ3M7Ci0gICAgCi0gICAgCi0gICAgLyogUENSRSB1c2VzICJm
YWtlIiByZWN1cnNpb24gYnVpbHQgb2ZmIG9mIGdvdG9zLCB0aHVzCi0gICAgIHN0YWNrLWJhc2Vk
IGxvY2FsIHZhcmlhYmxlcyBhcmUgbm90IHNhZmUgdG8gdXNlLiAgSW5zdGVhZCB3ZSBoYXZlIHRv
Ci0gICAgIHN0b3JlIGxvY2FsIHZhcmlhYmxlcyBvbiB0aGUgY3VycmVudCBNYXRjaEZyYW1lLiAq
LwotICAgIHN0cnVjdCB7Ci0gICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGE7Ci0gICAg
ICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHN0YXJ0T2ZSZXBlYXRpbmdCcmFja2V0OwotICAgICAg
ICBjb25zdCBVQ2hhciogc3ViamVjdFB0ckF0U3RhcnRPZkluc3RydWN0aW9uOyAvLyBTZXZlcmFs
IGluc3RydXRpb25zIHN0YXNoIGF3YXkgYSBzdWJqZWN0UHRyIGhlcmUgZm9yIGxhdGVyIGNvbXBh
cmUKLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogaW5zdHJ1Y3Rpb25QdHJBdFN0YXJ0T2ZP
bmNlOwotICAgICAgICAKLSAgICAgICAgaW50IHJlcGVhdE90aGVyY2FzZTsKLSAgICAgICAgCi0g
ICAgICAgIGludCBjdHlwZTsKLSAgICAgICAgaW50IGZjOwotICAgICAgICBpbnQgZmk7Ci0gICAg
ICAgIGludCBsZW5ndGg7Ci0gICAgICAgIGludCBtYXg7Ci0gICAgICAgIGludCBudW1iZXI7Ci0g
ICAgICAgIGludCBvZmZzZXQ7Ci0gICAgICAgIGludCBzYXZlT2Zmc2V0MTsKLSAgICAgICAgaW50
IHNhdmVPZmZzZXQyOwotICAgICAgICBpbnQgc2F2ZU9mZnNldDM7Ci0gICAgICAgIAotICAgICAg
ICBCcmFja2V0Q2hhaW5Ob2RlIGJyYWNrZXRDaGFpbk5vZGU7Ci0gICAgfSBsb2NhbHM7Ci19Owot
Ci0vKiBTdHJ1Y3R1cmUgZm9yIHBhc3NpbmcgInN0YXRpYyIgaW5mb3JtYXRpb24gYXJvdW5kIGJl
dHdlZW4gdGhlIGZ1bmN0aW9ucwotZG9pbmcgdHJhZGl0aW9uYWwgTkZBIG1hdGNoaW5nLCBzbyB0
aGF0IHRoZXkgYXJlIHRocmVhZC1zYWZlLiAqLwotCi1zdHJ1Y3QgTWF0Y2hEYXRhIHsKLSAgaW50
KiAgIG9mZnNldFZlY3RvcjsgICAgICAgICAvKiBPZmZzZXQgdmVjdG9yICovCi0gIGludCAgICBv
ZmZzZXRFbmQ7ICAgICAgICAgICAgLyogT25lIHBhc3QgdGhlIGVuZCAqLwotICBpbnQgICAgb2Zm
c2V0TWF4OyAgICAgICAgICAgIC8qIFRoZSBtYXhpbXVtIHVzYWJsZSBmb3IgcmV0dXJuIGRhdGEg
Ki8KLSAgYm9vbCAgIG9mZnNldE92ZXJmbG93OyAgICAgICAvKiBTZXQgaWYgdG9vIG1hbnkgZXh0
cmFjdGlvbnMgKi8KLSAgY29uc3QgVUNoYXIqICBzdGFydFN1YmplY3Q7ICAgICAgICAgLyogU3Rh
cnQgb2YgdGhlIHN1YmplY3Qgc3RyaW5nICovCi0gIGNvbnN0IFVDaGFyKiAgZW5kU3ViamVjdDsg
ICAgICAgICAgIC8qIEVuZCBvZiB0aGUgc3ViamVjdCBzdHJpbmcgKi8KLSAgY29uc3QgVUNoYXIq
ICBlbmRNYXRjaFB0cjsgICAgICAgICAvKiBTdWJqZWN0IHBvc2l0aW9uIGF0IGVuZCBtYXRjaCAq
LwotICBpbnQgICAgZW5kT2Zmc2V0VG9wOyAgICAgICAgLyogSGlnaHdhdGVyIG1hcmsgYXQgZW5k
IG9mIG1hdGNoICovCi0gIGJvb2wgICBtdWx0aWxpbmU7Ci0gIGJvb2wgICBpZ25vcmVDYXNlOwot
fTsKLQotLyogVGhlIG1heGltdW0gcmVtYWluaW5nIGxlbmd0aCBvZiBzdWJqZWN0IHdlIGFyZSBw
cmVwYXJlZCB0byBzZWFyY2ggZm9yIGEKLXJlcUJ5dGUgbWF0Y2guICovCi0KLSNkZWZpbmUgUkVR
X0JZVEVfTUFYIDEwMDAKLQotLyogVGhlIGJlbG93IGxpbWl0IHJlc3RyaWN0cyB0aGUgbnVtYmVy
IG9mICJyZWN1cnNpdmUiIG1hdGNoIGNhbGxzIGluIG9yZGVyIHRvCi1hdm9pZCBzcGVuZGluZyBl
eHBvbmVudGlhbCB0aW1lIG9uIGNvbXBsZXggcmVndWxhciBleHByZXNzaW9ucy4gKi8KLQotc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIG1hdGNoTGltaXQgPSAxMDAwMDAwOwotCi0jaWZkZWYgREVCVUcK
LS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAg
ICAgICBEZWJ1Z2dpbmcgZnVuY3Rpb24gdG8gcHJpbnQgY2hhcnMgICAgICAgKgotKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogUHJpbnQgYSBz
ZXF1ZW5jZSBvZiBjaGFycyBpbiBwcmludGFibGUgZm9ybWF0LCBzdG9wcGluZyBhdCB0aGUgZW5k
IG9mIHRoZQotc3ViamVjdCBpZiB0aGUgcmVxdWVzdGVkLgotCi1Bcmd1bWVudHM6Ci0gIHAgICAg
ICAgICAgIHBvaW50cyB0byBjaGFyYWN0ZXJzCi0gIGxlbmd0aCAgICAgIG51bWJlciB0byBwcmlu
dAotICBpc1N1YmplY3QgIHRydWUgaWYgcHJpbnRpbmcgZnJvbSB3aXRoaW4gbWQuc3RhcnRTdWJq
ZWN0Ci0gIG1kICAgICAgICAgIHBvaW50ZXIgdG8gbWF0Y2hpbmcgZGF0YSBibG9jaywgaWYgaXNT
dWJqZWN0IGlzIHRydWUKLSovCi0KLXN0YXRpYyB2b2lkIHBjaGFycyhjb25zdCBVQ2hhciogcCwg
aW50IGxlbmd0aCwgYm9vbCBpc1N1YmplY3QsIGNvbnN0IE1hdGNoRGF0YSYgbWQpCi17Ci0gICAg
aWYgKGlzU3ViamVjdCAmJiBsZW5ndGggPiBtZC5lbmRTdWJqZWN0IC0gcCkKLSAgICAgICAgbGVu
Z3RoID0gbWQuZW5kU3ViamVjdCAtIHA7Ci0gICAgd2hpbGUgKGxlbmd0aC0tID4gMCkgewotICAg
ICAgICBpbnQgYzsKLSAgICAgICAgaWYgKGlzQVNDSUlQcmludGFibGUoYyA9ICoocCsrKSkpCi0g
ICAgICAgICAgICBwcmludGYoIiVjIiwgYyk7Ci0gICAgICAgIGVsc2UgaWYgKGMgPCAyNTYpCi0g
ICAgICAgICAgICBwcmludGYoIlxceCUwMngiLCBjKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgcHJpbnRmKCJcXHh7JXh9IiwgYyk7Ci0gICAgfQotfQotI2VuZGlmCi0KLS8qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICAgIE1hdGNo
IGEgYmFjay1yZWZlcmVuY2UgICAgICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogSWYgYSBiYWNrIHJlZmVyZW5jZSBo
YXNuJ3QgYmVlbiBzZXQsIHRoZSBsZW5ndGggdGhhdCBpcyBwYXNzZWQgaXMgZ3JlYXRlcgotdGhh
biB0aGUgbnVtYmVyIG9mIGNoYXJhY3RlcnMgbGVmdCBpbiB0aGUgc3RyaW5nLCBzbyB0aGUgbWF0
Y2ggZmFpbHMuCi0KLUFyZ3VtZW50czoKLSAgb2Zmc2V0ICAgICAgaW5kZXggaW50byB0aGUgb2Zm
c2V0IHZlY3RvcgotICBzdWJqZWN0UHRyICAgICAgICBwb2ludHMgaW50byB0aGUgc3ViamVjdAot
ICBsZW5ndGggICAgICBsZW5ndGggdG8gYmUgbWF0Y2hlZAotICBtZCAgICAgICAgICBwb2ludHMg
dG8gbWF0Y2ggZGF0YSBibG9jawotCi1SZXR1cm5zOiAgICAgIHRydWUgaWYgbWF0Y2hlZAotKi8K
LQotc3RhdGljIGJvb2wgbWF0Y2hSZWYoaW50IG9mZnNldCwgY29uc3QgVUNoYXIqIHN1YmplY3RQ
dHIsIGludCBsZW5ndGgsIGNvbnN0IE1hdGNoRGF0YSYgbWQpCi17Ci0gICAgY29uc3QgVUNoYXIq
IHAgPSBtZC5zdGFydFN1YmplY3QgKyBtZC5vZmZzZXRWZWN0b3Jbb2Zmc2V0XTsKLSAgICAKLSNp
ZmRlZiBERUJVRwotICAgIGlmIChzdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAg
IHByaW50ZigibWF0Y2hpbmcgc3ViamVjdCA8bnVsbD4iKTsKLSAgICBlbHNlIHsKLSAgICAgICAg
cHJpbnRmKCJtYXRjaGluZyBzdWJqZWN0ICIpOwotICAgICAgICBwY2hhcnMoc3ViamVjdFB0ciwg
bGVuZ3RoLCB0cnVlLCBtZCk7Ci0gICAgfQotICAgIHByaW50ZigiIGFnYWluc3QgYmFja3JlZiAi
KTsKLSAgICBwY2hhcnMocCwgbGVuZ3RoLCBmYWxzZSwgbWQpOwotICAgIHByaW50ZigiXG4iKTsK
LSNlbmRpZgotICAgIAotICAgIC8qIEFsd2F5cyBmYWlsIGlmIG5vdCBlbm91Z2ggY2hhcmFjdGVy
cyBsZWZ0ICovCi0gICAgCi0gICAgaWYgKGxlbmd0aCA+IG1kLmVuZFN1YmplY3QgLSBzdWJqZWN0
UHRyKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgLyogU2VwYXJhdGUgdGhlIGNh
c2VsZXNzcyBjYXNlIGZvciBzcGVlZCAqLwotICAgIAotICAgIGlmIChtZC5pZ25vcmVDYXNlKSB7
Ci0gICAgICAgIHdoaWxlIChsZW5ndGgtLSA+IDApIHsKLSAgICAgICAgICAgIFVDaGFyIGMgPSAq
cCsrOwotICAgICAgICAgICAgaW50IG90aGVyY2FzZSA9IGpzY19wY3JlX3VjcF9vdGhlcmNhc2Uo
Yyk7Ci0gICAgICAgICAgICBVQ2hhciBkID0gKnN1YmplY3RQdHIrKzsKLSAgICAgICAgICAgIGlm
IChjICE9IGQgJiYgb3RoZXJjYXNlICE9IGQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9Ci0gICAgfQotICAgIGVsc2UgewotICAgICAgICB3aGlsZSAobGVuZ3RoLS0g
PiAwKQotICAgICAgICAgICAgaWYgKCpwKysgIT0gKnN1YmplY3RQdHIrKykKLSAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi0j
aWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9SRUNVUlNJT04KLQotLyogVXNlIG51
bWJlcmVkIGxhYmVscyBhbmQgc3dpdGNoIHN0YXRlbWVudCBhdCB0aGUgYm90dG9tIG9mIHRoZSBt
YXRjaCBmdW5jdGlvbi4gKi8KLQotI2RlZmluZSBSTUFUQ0hfV0hFUkUobnVtKSBudW0KLSNkZWZp
bmUgUlJFVFVSTl9MQUJFTCBSUkVUVVJOX1NXSVRDSAotCi0jZWxzZQotCi0vKiBVc2UgR0NDJ3Mg
Y29tcHV0ZWQgZ290byBleHRlbnNpb24uICovCi0KLS8qIEZvciBvbmUgdGVzdCBjYXNlIHRoaXMg
aXMgbW9yZSB0aGFuIDQwJSBmYXN0ZXIgdGhhbiB0aGUgc3dpdGNoIHN0YXRlbWVudC4KLVdlIGNv
dWxkIGF2b2lkIHRoZSB1c2Ugb2YgdGhlIG51bSBhcmd1bWVudCBlbnRpcmVseSBieSB1c2luZyBs
b2NhbCBsYWJlbHMsCi1idXQgdXNpbmcgaXQgZm9yIHRoZSBHQ0MgY2FzZSBhcyB3ZWxsIGFzIHRo
ZSBub24tR0NDIGNhc2UgYWxsb3dzIHVzIHRvIHNoYXJlCi1hIGJpdCBtb3JlIGNvZGUgYW5kIG5v
dGljZSBpZiB3ZSB1c2UgY29uZmxpY3RpbmcgbnVtYmVycy4qLwotCi0jZGVmaW5lIFJNQVRDSF9X
SEVSRShudW0pICYmUlJFVFVSTl8jI251bQotI2RlZmluZSBSUkVUVVJOX0xBQkVMICpzdGFjay5j
dXJyZW50RnJhbWUtPnJldHVybkxvY2F0aW9uCi0KLSNlbmRpZgotCi0jZGVmaW5lIFJFQ1VSU0lW
RV9NQVRDSF9DT01NT04obnVtKSBcCi0gICAgZ290byBSRUNVUlNFO1wKLSAgICBSUkVUVVJOXyMj
bnVtOiBcCi0gICAgc3RhY2sucG9wQ3VycmVudEZyYW1lKCk7Ci0KLSNkZWZpbmUgUkVDVVJTSVZF
X01BVENIKG51bSwgcmEsIHJiKSBcCi0gICAgZG8geyBcCi0gICAgICAgIHN0YWNrLnB1c2hOZXdG
cmFtZSgocmEpLCAocmIpLCBSTUFUQ0hfV0hFUkUobnVtKSk7IFwKLSAgICAgICAgUkVDVVJTSVZF
X01BVENIX0NPTU1PTihudW0pIFwKLSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIFJFQ1VSU0lW
RV9NQVRDSF9ORVdfR1JPVVAobnVtLCByYSwgcmIpIFwKLSAgICBkbyB7IFwKLSAgICAgICAgc3Rh
Y2sucHVzaE5ld0ZyYW1lKChyYSksIChyYiksIFJNQVRDSF9XSEVSRShudW0pKTsgXAotICAgICAg
ICBzdGFydE5ld0dyb3VwKHN0YWNrLmN1cnJlbnRGcmFtZSk7IFwKLSAgICAgICAgUkVDVVJTSVZF
X01BVENIX0NPTU1PTihudW0pIFwKLSAgICB9IHdoaWxlICgwKQotCi0jZGVmaW5lIFJSRVRVUk4g
Z290byBSUkVUVVJOX0xBQkVMCi0KLSNkZWZpbmUgUlJFVFVSTl9OT19NQVRDSCBkbyB7IGlzTWF0
Y2ggPSBmYWxzZTsgUlJFVFVSTjsgfSB3aGlsZSAoMCkKLQotLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICBNYXRjaCBmcm9tIGN1cnJl
bnQgcG9zaXRpb24gICAgICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLwotCi0vKiBPbiBlbnRyeSBpbnN0cnVjdGlvblB0ciBwb2ludHMg
dG8gdGhlIGZpcnN0IG9wY29kZSwgYW5kIHN1YmplY3RQdHIgdG8gdGhlIGZpcnN0IGNoYXJhY3Rl
cgotaW4gdGhlIHN1YmplY3Qgc3RyaW5nLCB3aGlsZSBzdWJzdHJpbmdTdGFydCBob2xkcyB0aGUg
dmFsdWUgb2Ygc3ViamVjdFB0ciBhdCB0aGUgc3RhcnQgb2YgdGhlCi1sYXN0IGJyYWNrZXRlZCBn
cm91cCAtIHVzZWQgZm9yIGJyZWFraW5nIGluZmluaXRlIGxvb3BzIG1hdGNoaW5nIHplcm8tbGVu
Z3RoCi1zdHJpbmdzLiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCByZWN1cnNpdmVseSBpbiBtYW55
IGNpcmN1bXN0YW5jZXMuIFdoZW5ldmVyIGl0Ci1yZXR1cm5zIGEgbmVnYXRpdmUgKGVycm9yKSBy
ZXNwb25zZSwgdGhlIG91dGVyIG1hdGNoKCkgY2FsbCBtdXN0IGFsc28gcmV0dXJuIHRoZQotc2Ft
ZSByZXNwb25zZS4KLQotQXJndW1lbnRzOgotICAgc3ViamVjdFB0ciAgICAgICAgcG9pbnRlciBp
biBzdWJqZWN0Ci0gICBpbnN0cnVjdGlvblB0ciAgICAgICBwb3NpdGlvbiBpbiBjb2RlCi0gICBv
ZmZzZXRUb3AgIGN1cnJlbnQgdG9wIHBvaW50ZXIKLSAgIG1kICAgICAgICAgIHBvaW50ZXIgdG8g
InN0YXRpYyIgaW5mbyBmb3IgdGhlIG1hdGNoCi0KLVJldHVybnM6ICAgICAgIDEgaWYgbWF0Y2hl
ZCAgICAgICAgICApICB0aGVzZSB2YWx1ZXMgYXJlID49IDAKLSAgICAgICAgICAgICAgIDAgaWYg
ZmFpbGVkIHRvIG1hdGNoICApCi0gICAgICAgICAgICAgICBhIG5lZ2F0aXZlIGVycm9yIHZhbHVl
IGlmIGFib3J0ZWQgYnkgYW4gZXJyb3IgY29uZGl0aW9uCi0gICAgICAgICAgICAgICAgIChlLmcu
IHN0b3BwZWQgYnkgcmVwZWF0ZWQgY2FsbCBvciByZWN1cnNpb24gbGltaXQpCi0qLwotCi1zdGF0
aWMgY29uc3QgdW5zaWduZWQgbnVtRnJhbWVzT25TdGFjayA9IDE2OwotCi1zdHJ1Y3QgTWF0Y2hT
dGFjayB7Ci0gICAgTWF0Y2hTdGFjaygpCi0gICAgICAgIDogZnJhbWVzRW5kKGZyYW1lcyArIG51
bUZyYW1lc09uU3RhY2spCi0gICAgICAgICwgY3VycmVudEZyYW1lKGZyYW1lcykKLSAgICAgICAg
LCBzaXplKDEpIC8vIG1hdGNoKCkgY3JlYXRlcyBhY2Nlc3NlcyB0aGUgZmlyc3QgZnJhbWUgdy9v
IGNhbGxpbmcgcHVzaE5ld0ZyYW1lCi0gICAgewotICAgICAgICBBU1NFUlQoKHNpemVvZihmcmFt
ZXMpIC8gc2l6ZW9mKGZyYW1lc1swXSkpID09IG51bUZyYW1lc09uU3RhY2spOwotICAgIH0KLSAg
ICAKLSAgICBNYXRjaEZyYW1lIGZyYW1lc1tudW1GcmFtZXNPblN0YWNrXTsKLSAgICBNYXRjaEZy
YW1lKiBmcmFtZXNFbmQ7Ci0gICAgTWF0Y2hGcmFtZSogY3VycmVudEZyYW1lOwotICAgIHVuc2ln
bmVkIHNpemU7Ci0gICAgCi0gICAgaW5saW5lIGJvb2wgY2FuVXNlU3RhY2tCdWZmZXJGb3JOZXh0
RnJhbWUoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHNpemUgPCBudW1GcmFtZXNPblN0YWNrOwot
ICAgIH0KLSAgICAKLSAgICBpbmxpbmUgTWF0Y2hGcmFtZSogYWxsb2NhdGVOZXh0RnJhbWUoKQot
ICAgIHsKLSAgICAgICAgaWYgKGNhblVzZVN0YWNrQnVmZmVyRm9yTmV4dEZyYW1lKCkpCi0gICAg
ICAgICAgICByZXR1cm4gY3VycmVudEZyYW1lICsgMTsKLSAgICAgICAgcmV0dXJuIG5ldyBNYXRj
aEZyYW1lOwotICAgIH0KLSAgICAKLSAgICBpbmxpbmUgdm9pZCBwdXNoTmV3RnJhbWUoY29uc3Qg
dW5zaWduZWQgY2hhciogaW5zdHJ1Y3Rpb25QdHIsIEJyYWNrZXRDaGFpbk5vZGUqIGJyYWNrZXRD
aGFpbiwgUmV0dXJuTG9jYXRpb24gcmV0dXJuTG9jYXRpb24pCi0gICAgewotICAgICAgICBNYXRj
aEZyYW1lKiBuZXdmcmFtZSA9IGFsbG9jYXRlTmV4dEZyYW1lKCk7Ci0gICAgICAgIG5ld2ZyYW1l
LT5wcmV2aW91c0ZyYW1lID0gY3VycmVudEZyYW1lOwotCi0gICAgICAgIG5ld2ZyYW1lLT5hcmdz
LnN1YmplY3RQdHIgPSBjdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgbmV3
ZnJhbWUtPmFyZ3Mub2Zmc2V0VG9wID0gY3VycmVudEZyYW1lLT5hcmdzLm9mZnNldFRvcDsKLSAg
ICAgICAgbmV3ZnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPSBpbnN0cnVjdGlvblB0cjsKLSAg
ICAgICAgbmV3ZnJhbWUtPmFyZ3MuYnJhY2tldENoYWluID0gYnJhY2tldENoYWluOwotICAgICAg
ICBuZXdmcmFtZS0+cmV0dXJuTG9jYXRpb24gPSByZXR1cm5Mb2NhdGlvbjsKLSAgICAgICAgc2l6
ZSsrOwotCi0gICAgICAgIGN1cnJlbnRGcmFtZSA9IG5ld2ZyYW1lOwotICAgIH0KLSAgICAKLSAg
ICBpbmxpbmUgdm9pZCBwb3BDdXJyZW50RnJhbWUoKQotICAgIHsKLSAgICAgICAgTWF0Y2hGcmFt
ZSogb2xkRnJhbWUgPSBjdXJyZW50RnJhbWU7Ci0gICAgICAgIGN1cnJlbnRGcmFtZSA9IGN1cnJl
bnRGcmFtZS0+cHJldmlvdXNGcmFtZTsKLSAgICAgICAgaWYgKHNpemUgPiBudW1GcmFtZXNPblN0
YWNrKQotICAgICAgICAgICAgZGVsZXRlIG9sZEZyYW1lOwotICAgICAgICBzaXplLS07Ci0gICAg
fQotCi0gICAgdm9pZCBwb3BBbGxGcmFtZXMoKQotICAgIHsKLSAgICAgICAgd2hpbGUgKHNpemUp
Ci0gICAgICAgICAgICBwb3BDdXJyZW50RnJhbWUoKTsKLSAgICB9Ci19OwotCi1zdGF0aWMgaW50
IG1hdGNoRXJyb3IoaW50IGVycm9yQ29kZSwgTWF0Y2hTdGFjayYgc3RhY2spCi17Ci0gICAgc3Rh
Y2sucG9wQWxsRnJhbWVzKCk7Ci0gICAgcmV0dXJuIGVycm9yQ29kZTsKLX0KLQotLyogR2V0IHRo
ZSBuZXh0IFVURi04IGNoYXJhY3Rlciwgbm90IGFkdmFuY2luZyB0aGUgcG9pbnRlciwgaW5jcmVt
ZW50aW5nIGxlbmd0aAotIGlmIHRoZXJlIGFyZSBleHRyYSBieXRlcy4gVGhpcyBpcyBjYWxsZWQg
d2hlbiB3ZSBrbm93IHdlIGFyZSBpbiBVVEYtOCBtb2RlLiAqLwotCi1zdGF0aWMgaW5saW5lIHZv
aWQgZ2V0VVRGOENoYXJBbmRJbmNyZW1lbnRMZW5ndGgoaW50JiBjLCBjb25zdCB1bnNpZ25lZCBj
aGFyKiBzdWJqZWN0UHRyLCBpbnQmIGxlbikKLXsKLSAgICBjID0gKnN1YmplY3RQdHI7Ci0gICAg
aWYgKChjICYgMHhjMCkgPT0gMHhjMCkgewotICAgICAgICBpbnQgZ2NhYSA9IGpzY19wY3JlX3V0
ZjhfdGFibGU0W2MgJiAweDNmXTsgIC8qIE51bWJlciBvZiBhZGRpdGlvbmFsIGJ5dGVzICovCi0g
ICAgICAgIGludCBnY3NzID0gNiAqIGdjYWE7Ci0gICAgICAgIGMgPSAoYyAmIGpzY19wY3JlX3V0
ZjhfdGFibGUzW2djYWFdKSA8PCBnY3NzOwotICAgICAgICBmb3IgKGludCBnY2lpID0gMTsgZ2Np
aSA8PSBnY2FhOyBnY2lpKyspIHsKLSAgICAgICAgICAgIGdjc3MgLT0gNjsKLSAgICAgICAgICAg
IGMgfD0gKHN1YmplY3RQdHJbZ2NpaV0gJiAweDNmKSA8PCBnY3NzOwotICAgICAgICB9Ci0gICAg
ICAgIGxlbiArPSBnY2FhOwotICAgIH0KLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHN0YXJ0TmV3
R3JvdXAoTWF0Y2hGcmFtZSogY3VycmVudEZyYW1lKQotewotICAgIC8qIEF0IHRoZSBzdGFydCBv
ZiBhIGJyYWNrZXRlZCBncm91cCwgYWRkIHRoZSBjdXJyZW50IHN1YmplY3QgcG9pbnRlciB0byB0
aGUKLSAgICAgc3RhY2sgb2Ygc3VjaCBwb2ludGVycywgdG8gYmUgcmUtaW5zdGF0ZWQgYXQgdGhl
IGVuZCBvZiB0aGUgZ3JvdXAgd2hlbiB3ZSBoaXQKLSAgICAgdGhlIGNsb3Npbmcga2V0LiBXaGVu
IG1hdGNoKCkgaXMgY2FsbGVkIGluIG90aGVyIGNpcmN1bXN0YW5jZXMsIHdlIGRvbid0IGFkZCB0
bwotICAgICB0aGlzIHN0YWNrLiAqLwotICAgIAotICAgIGN1cnJlbnRGcmFtZS0+bG9jYWxzLmJy
YWNrZXRDaGFpbk5vZGUucHJldmlvdXNCcmFja2V0ID0gY3VycmVudEZyYW1lLT5hcmdzLmJyYWNr
ZXRDaGFpbjsKLSAgICBjdXJyZW50RnJhbWUtPmxvY2Fscy5icmFja2V0Q2hhaW5Ob2RlLmJyYWNr
ZXRTdGFydCA9IGN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgIGN1cnJlbnRGcmFt
ZS0+YXJncy5icmFja2V0Q2hhaW4gPSAmY3VycmVudEZyYW1lLT5sb2NhbHMuYnJhY2tldENoYWlu
Tm9kZTsKLX0KLQotLy8gRklYTUU6ICJtaW5pbWl6ZSIgbWVhbnMgIm5vdCBncmVlZHkiLCB3ZSBz
aG91bGQgaW52ZXJ0IHRoZSBjYWxsZXJzIHRvIGFzayBmb3IgImdyZWVkeSIgdG8gYmUgbGVzcyBj
b25mdXNpbmcKLXN0YXRpYyBpbmxpbmUgdm9pZCByZXBlYXRJbmZvcm1hdGlvbkZyb21JbnN0cnVj
dGlvbk9mZnNldChpbnQgaW5zdHJ1Y3Rpb25PZmZzZXQsIGJvb2wmIG1pbmltaXplLCBpbnQmIG1p
bmltdW1SZXBlYXRzLCBpbnQmIG1heGltdW1SZXBlYXRzKQotewotICAgIC8vIEluc3RydWN0aW9u
IG9mZnNldHMgYXJlIGJhc2VkIG9mZiBvZiBPUF9DUlNUQVIsIE9QX1NUQVIsIE9QX1RZUEVTVEFS
LCBPUF9OT1RTVEFSCi0gICAgc3RhdGljIGNvbnN0IGNoYXIgbWluaW11bVJlcGVhdHNGcm9tSW5z
dHJ1Y3Rpb25PZmZzZXRbXSA9IHsgMCwgMCwgMSwgMSwgMCwgMCB9OwotICAgIHN0YXRpYyBjb25z
dCBpbnQgbWF4aW11bVJlcGVhdHNGcm9tSW5zdHJ1Y3Rpb25PZmZzZXRbXSA9IHsgSU5UX01BWCwg
SU5UX01BWCwgSU5UX01BWCwgSU5UX01BWCwgMSwgMSB9OwotCi0gICAgQVNTRVJUKGluc3RydWN0
aW9uT2Zmc2V0ID49IDApOwotICAgIEFTU0VSVChpbnN0cnVjdGlvbk9mZnNldCA8PSAoT1BfQ1JN
SU5RVUVSWSAtIE9QX0NSU1RBUikpOwotCi0gICAgbWluaW1pemUgPSAoaW5zdHJ1Y3Rpb25PZmZz
ZXQgJiAxKTsgLy8gdGhpcyBhc3N1bWVzIG9yZGVyaW5nOiBJbnN0cnVjdGlvbiwgTWluaW1pemVJ
bnN0cnVjdGlvbiwgSW5zdHJ1Y3Rpb24yLCBNaW5pbWl6ZUluc3RydWN0aW9uMgotICAgIG1pbmlt
dW1SZXBlYXRzID0gbWluaW11bVJlcGVhdHNGcm9tSW5zdHJ1Y3Rpb25PZmZzZXRbaW5zdHJ1Y3Rp
b25PZmZzZXRdOwotICAgIG1heGltdW1SZXBlYXRzID0gbWF4aW11bVJlcGVhdHNGcm9tSW5zdHJ1
Y3Rpb25PZmZzZXRbaW5zdHJ1Y3Rpb25PZmZzZXRdOwotfQotCi1zdGF0aWMgaW50IG1hdGNoKGNv
bnN0IFVDaGFyKiBzdWJqZWN0UHRyLCBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnN0cnVjdGlvblB0
ciwgaW50IG9mZnNldFRvcCwgTWF0Y2hEYXRhJiBtZCkKLXsKLSAgICBib29sIGlzTWF0Y2ggPSBm
YWxzZTsKLSAgICBpbnQgbWluOwotICAgIGJvb2wgbWluaW1pemUgPSBmYWxzZTsgLyogSW5pdGlh
bGl6YXRpb24gbm90IHJlYWxseSBuZWVkZWQsIGJ1dCBzb21lIGNvbXBpbGVycyB0aGluayBzby4g
Ki8KLSAgICB1bnNpZ25lZCByZW1haW5pbmdNYXRjaENvdW50ID0gbWF0Y2hMaW1pdDsKLSAgICBp
bnQgb3RoZXJjYXNlOyAvKiBEZWNsYXJlIGhlcmUgdG8gYXZvaWQgZXJyb3JzIGR1cmluZyBqdW1w
cyAqLwotICAgIAotICAgIE1hdGNoU3RhY2sgc3RhY2s7Ci0KLSAgICAvKiBUaGUgb3Bjb2RlIGp1
bXAgdGFibGUuICovCi0jaWZkZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENIX09QQ09ERV9M
T09QCi0jZGVmaW5lIEVNSVRfSlVNUF9UQUJMRV9FTlRSWShvcGNvZGUpICYmTEFCRUxfT1BfIyNv
cGNvZGUsCi0gICAgc3RhdGljIHZvaWQqIG9wY29kZUp1bXBUYWJsZVsyNTZdID0geyBGT1JfRUFD
SF9PUENPREUoRU1JVF9KVU1QX1RBQkxFX0VOVFJZKSB9OwotI3VuZGVmIEVNSVRfSlVNUF9UQUJM
RV9FTlRSWQotI2VuZGlmCi0gICAgCi0gICAgLyogT25lLXRpbWUgc2V0dXAgb2YgdGhlIG9wY29k
ZSBqdW1wIHRhYmxlLiAqLwotI2lmZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9PUENP
REVfTE9PUAotICAgIGZvciAoaW50IGkgPSAyNTU7ICFvcGNvZGVKdW1wVGFibGVbaV07IGktLSkK
LSAgICAgICAgb3Bjb2RlSnVtcFRhYmxlW2ldID0gJiZDQVBUVVJJTkdfQlJBQ0tFVDsKLSNlbmRp
ZgotICAgIAotI2lmZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9SRUNVUlNJT04KLSAg
ICAvLyBTaGFyayBzaG93cyB0aGlzIGFzIGEgaG90IGxpbmUKLSAgICAvLyBVc2luZyBhIHN0YXRp
YyBjb25zdCBoZXJlIG1ha2VzIHRoaXMgbGluZSBkaXNhcHBlYXIsIGJ1dCBtYWtlcyBsYXRlciBh
Y2Nlc3MgaG90dGVyIChub3Qgc3VyZSB3aHkpCi0gICAgc3RhY2suY3VycmVudEZyYW1lLT5yZXR1
cm5Mb2NhdGlvbiA9ICYmUkVUVVJOOwotI2Vsc2UKLSAgICBzdGFjay5jdXJyZW50RnJhbWUtPnJl
dHVybkxvY2F0aW9uID0gMDsKLSNlbmRpZgotICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyID0gc3ViamVjdFB0cjsKLSAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5z
dHJ1Y3Rpb25QdHIgPSBpbnN0cnVjdGlvblB0cjsKLSAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Mub2Zmc2V0VG9wID0gb2Zmc2V0VG9wOwotICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5i
cmFja2V0Q2hhaW4gPSAwOwotICAgIHN0YXJ0TmV3R3JvdXAoc3RhY2suY3VycmVudEZyYW1lKTsK
LSAgICAKLSAgICAvKiBUaGlzIGlzIHdoZXJlIGNvbnRyb2wganVtcHMgYmFjayB0byB0byBlZmZl
Y3QgInJlY3Vyc2lvbiIgKi8KLSAgICAKLVJFQ1VSU0U6Ci0gICAgaWYgKCEtLXJlbWFpbmluZ01h
dGNoQ291bnQpCi0gICAgICAgIHJldHVybiBtYXRjaEVycm9yKEpTUmVnRXhwRXJyb3JIaXRMaW1p
dCwgc3RhY2spOwotCi0gICAgLyogTm93IHN0YXJ0IHByb2Nlc3NpbmcgdGhlIG9wZXJhdGlvbnMu
ICovCi0gICAgCi0jaWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9PUENPREVfTE9P
UAotICAgIHdoaWxlICh0cnVlKQotI2VuZGlmCi0gICAgewotICAgICAgICAKLSNpZmRlZiBVU0Vf
Q09NUFVURURfR09UT19GT1JfTUFUQ0hfT1BDT0RFX0xPT1AKLSNkZWZpbmUgQkVHSU5fT1BDT0RF
KG9wY29kZSkgTEFCRUxfT1BfIyNvcGNvZGUKLSNkZWZpbmUgTkVYVF9PUENPREUgZ290byAqb3Bj
b2RlSnVtcFRhYmxlWypzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHJdCi0j
ZWxzZQotI2RlZmluZSBCRUdJTl9PUENPREUob3Bjb2RlKSBjYXNlIE9QXyMjb3Bjb2RlCi0jZGVm
aW5lIE5FWFRfT1BDT0RFIGNvbnRpbnVlCi0jZW5kaWYKLSAgICAgICAgCi0jaWZkZWYgVVNFX0NP
TVBVVEVEX0dPVE9fRk9SX01BVENIX09QQ09ERV9MT09QCi0gICAgICAgIE5FWFRfT1BDT0RFOwot
I2Vsc2UKLSAgICAgICAgc3dpdGNoICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyKQotI2VuZGlmCi0gICAgICAgIHsKLSAgICAgICAgICAgIC8qIE5vbi1jYXB0dXJpbmcg
YnJhY2tldDogb3B0aW1pemVkICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJ
Tl9PUENPREUoQlJBKToKLSAgICAgICAgICAgIE5PTl9DQVBUVVJJTkdfQlJBQ0tFVDoKLSAgICAg
ICAgICAgICAgICBEUFJJTlRGKCgic3RhcnQgYnJhY2tldCAwXG4iKSk7Ci0gICAgICAgICAgICAg
ICAgZG8gewotICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0hfTkVXX0dST1VQKDIs
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEgKyBMSU5LX1NJWkUs
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAg
ICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAg
ICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciAr
PSBnZXRMaW5rVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsg
MSk7Ci0gICAgICAgICAgICAgICAgfSB3aGlsZSAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5p
bnN0cnVjdGlvblB0ciA9PSBPUF9BTFQpOwotICAgICAgICAgICAgICAgIERQUklOVEYoKCJicmFj
a2V0IDAgZmFpbGVkXG4iKSk7Ci0gICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIC8qIFNraXAgb3ZlciBsYXJnZSBleHRyYWN0aW9uIG51bWJlciBk
YXRhIGlmIGVuY291bnRlcmVkLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKEJSQU5VTUJFUik6Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDM7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBFbmQgb2YgdGhlIHBhdHRlcm4uICov
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoRU5EKToKLSAgICAg
ICAgICAgICAgICBtZC5lbmRNYXRjaFB0ciA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJq
ZWN0UHRyOyAgICAgICAgICAvKiBSZWNvcmQgd2hlcmUgd2UgZW5kZWQgKi8KLSAgICAgICAgICAg
ICAgICBtZC5lbmRPZmZzZXRUb3AgPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mub2Zmc2V0VG9w
OyAgIC8qIGFuZCBob3cgbWFueSBleHRyYWN0cyB3ZXJlIHRha2VuICovCi0gICAgICAgICAgICAg
ICAgaXNNYXRjaCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIC8qIEFzc2VydGlvbiBicmFja2V0cy4gQ2hlY2sgdGhlIGFsdGVy
bmF0aXZlIGJyYW5jaGVzIGluIHR1cm4gLSB0aGUKLSAgICAgICAgICAgICBtYXRjaGluZyB3b24n
dCBwYXNzIHRoZSBLRVQgZm9yIGFuIGFzc2VydGlvbi4gSWYgYW55IG9uZSBicmFuY2ggbWF0Y2hl
cywKLSAgICAgICAgICAgICB0aGUgYXNzZXJ0aW9uIGlzIHRydWUuIExvb2tiZWhpbmQgYXNzZXJ0
aW9ucyBoYXZlIGFuIE9QX1JFVkVSU0UgaXRlbSBhdCB0aGUKLSAgICAgICAgICAgICBzdGFydCBv
ZiBlYWNoIGJyYW5jaCB0byBtb3ZlIHRoZSBjdXJyZW50IHBvaW50IGJhY2t3YXJkcywgc28gdGhl
IGNvZGUgYXQKLSAgICAgICAgICAgICB0aGlzIGxldmVsIGlzIGlkZW50aWNhbCB0byB0aGUgbG9v
a2FoZWFkIGNhc2UuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENP
REUoQVNTRVJUKToKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIFJF
Q1VSU0lWRV9NQVRDSF9ORVdfR1JPVVAoNiwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyICsgMSArIExJTktfU0laRSwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSBnZXRMaW5r
VmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAg
ICAgICAgICAgICAgfSB3aGlsZSAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlv
blB0ciA9PSBPUF9BTFQpOwotICAgICAgICAgICAgICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmluc3RydWN0aW9uUHRyID09IE9QX0tFVCkKLSAgICAgICAgICAgICAgICAgICAgUlJF
VFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBDb250
aW51ZSBmcm9tIGFmdGVyIHRoZSBhc3NlcnRpb24sIHVwZGF0aW5nIHRoZSBvZmZzZXRzIGhpZ2gg
d2F0ZXIKLSAgICAgICAgICAgICAgICAgbWFyaywgc2luY2UgZXh0cmFjdHMgbWF5IGhhdmUgYmVl
biB0YWtlbiBkdXJpbmcgdGhlIGFzc2VydGlvbi4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBhZHZhbmNlVG9FbmRPZkJyYWNrZXQoc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
Lmluc3RydWN0aW9uUHRyKTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMSArIExJTktfU0laRTsKLSAgICAgICAgICAgICAgICBzdGFj
ay5jdXJyZW50RnJhbWUtPmFyZ3Mub2Zmc2V0VG9wID0gbWQuZW5kT2Zmc2V0VG9wOwotICAgICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyog
TmVnYXRpdmUgYXNzZXJ0aW9uOiBhbGwgYnJhbmNoZXMgbXVzdCBmYWlsIHRvIG1hdGNoICovCi0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoQVNTRVJUX05PVCk6Ci0g
ICAgICAgICAgICAgICAgZG8gewotICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0hf
TkVXX0dST1VQKDcsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEg
KyBMSU5LX1NJWkUsIE5VTEwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSBnZXRMaW5rVmFs
dWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAgICAg
ICAgICAgICAgfSB3aGlsZSAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0
ciA9PSBPUF9BTFQpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAxICsgTElOS19TSVpFOwotICAgICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyog
QW4gYWx0ZXJuYXRpb24gaXMgdGhlIGVuZCBvZiBhIGJyYW5jaDsgc2NhbiBhbG9uZyB0byBmaW5k
IHRoZSBlbmQgb2YgdGhlCi0gICAgICAgICAgICAgYnJhY2tldGVkIGdyb3VwIGFuZCBnbyB0byB0
aGVyZS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShBTFQp
OgotICAgICAgICAgICAgICAgIGFkdmFuY2VUb0VuZE9mQnJhY2tldChzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIpOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogQlJBWkVSTyBhbmQgQlJBTUlOWkVSTyBv
Y2N1ciBqdXN0IGJlZm9yZSBhIGJyYWNrZXQgZ3JvdXAsIGluZGljYXRpbmcKLSAgICAgICAgICAg
ICB0aGF0IGl0IG1heSBvY2N1ciB6ZXJvIHRpbWVzLiBJdCBtYXkgcmVwZWF0IGluZmluaXRlbHks
IG9yIG5vdCBhdCBhbGwgLQotICAgICAgICAgICAgIGkuZS4gaXQgY291bGQgYmUgKCkqIG9yICgp
PyBpbiB0aGUgcGF0dGVybi4gQnJhY2tldHMgd2l0aCBmaXhlZCB1cHBlcgotICAgICAgICAgICAg
IHJlcGVhdCBsaW1pdHMgYXJlIGNvbXBpbGVkIGFzIGEgbnVtYmVyIG9mIGNvcGllcywgd2l0aCB0
aGUgb3B0aW9uYWwgb25lcwotICAgICAgICAgICAgIHByZWNlZGVkIGJ5IEJSQVpFUk8gb3IgQlJB
TUlOWkVSTy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShC
UkFaRVJPKTogewotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN0
YXJ0T2ZSZXBlYXRpbmdCcmFja2V0ID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICsgMTsKLSAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0hfTkVXX0dST1VQKDE0
LCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdGFydE9mUmVwZWF0aW5nQnJhY2tldCwgc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgaWYg
KGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAg
YWR2YW5jZVRvRW5kT2ZCcmFja2V0KHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN0YXJ0T2ZS
ZXBlYXRpbmdCcmFja2V0KTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdGFydE9mUmVw
ZWF0aW5nQnJhY2tldCArIDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENP
REU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9P
UENPREUoQlJBTUlOWkVSTyk6IHsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5zdGFydE9mUmVwZWF0aW5nQnJhY2tldCA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0ciArIDE7Ci0gICAgICAgICAgICAgICAgYWR2YW5jZVRvRW5kT2ZCcmFj
a2V0KHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN0YXJ0T2ZSZXBlYXRpbmdCcmFja2V0KTsK
LSAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0hfTkVXX0dST1VQKDE1LCBzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5zdGFydE9mUmVwZWF0aW5nQnJhY2tldCArIDEgKyBMSU5LX1NJWkUs
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAg
IGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAg
ICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgLyogRW5kIG9mIGEgZ3JvdXAsIHJlcGVhdGVkIG9yIG5vbi1yZXBlYXRpbmcuIElm
IHdlIGFyZSBhdCB0aGUgZW5kIG9mCi0gICAgICAgICAgICAgYW4gYXNzZXJ0aW9uICJncm91cCIs
IHN0b3AgbWF0Y2hpbmcgYW5kIHJldHVybiAxLCBidXQgcmVjb3JkIHRoZQotICAgICAgICAgICAg
IGN1cnJlbnQgaGlnaCB3YXRlciBtYXJrIGZvciB1c2UgYnkgcG9zaXRpdmUgYXNzZXJ0aW9ucy4g
RG8gdGhpcyBhbHNvCi0gICAgICAgICAgICAgZm9yIHRoZSAib25jZSIgKG5vdC1iYWNrdXAgdXAp
IGdyb3Vwcy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShL
RVQpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKEtFVFJNSU4pOgotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKEtFVFJNQVgpOgotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmluc3RydWN0aW9uUHRyQXRTdGFydE9mT25jZSA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5pbnN0cnVjdGlvblB0ciAtIGdldExpbmtWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24gPSBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluLT5icmFja2V0U3RhcnQ7Ci0KLSAgICAgICAgICAgICAg
ICAvKiBCYWNrIHVwIHRoZSBzdGFjayBvZiBicmFja2V0IHN0YXJ0IHBvaW50ZXJzLiAqLwotCi0g
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbiA9IHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4tPnByZXZpb3VzQnJhY2tldDsKLQot
ICAgICAgICAgICAgICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rp
b25QdHJBdFN0YXJ0T2ZPbmNlID09IE9QX0FTU0VSVCB8fCAqc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMuaW5zdHJ1Y3Rpb25QdHJBdFN0YXJ0T2ZPbmNlID09IE9QX0FTU0VSVF9OT1QpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbWQuZW5kT2Zmc2V0VG9wID0gc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLm9mZnNldFRvcDsKLSAgICAgICAgICAgICAgICAgICAgaXNNYXRjaCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIC8qIEluIGFsbCBvdGhlciBjYXNlcyBleGNlcHQgYSBjb25k
aXRpb25hbCBncm91cCB3ZSBoYXZlIHRvIGNoZWNrIHRoZQotICAgICAgICAgICAgICAgICBncm91
cCBudW1iZXIgYmFjayBhdCB0aGUgc3RhcnQgYW5kIGlmIG5lY2Vzc2FyeSBjb21wbGV0ZSBoYW5k
bGluZyBhbgotICAgICAgICAgICAgICAgICBleHRyYWN0aW9uIGJ5IHNldHRpbmcgdGhlIG9mZnNl
dHMgYW5kIGJ1bXBpbmcgdGhlIGhpZ2ggd2F0ZXIgbWFyay4gKi8KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPSAqc3Rh
Y2suY3VycmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rpb25QdHJBdFN0YXJ0T2ZPbmNlIC0gT1Bf
QlJBOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZvciBleHRlbmRlZCBl
eHRyYWN0aW9uIGJyYWNrZXRzIChsYXJnZSBudW1iZXIpLCB3ZSBoYXZlIHRvIGZpc2ggb3V0Ci0g
ICAgICAgICAgICAgICAgIHRoZSBudW1iZXIgZnJvbSBhIGR1bW15IG9wY29kZSBhdCB0aGUgc3Rh
cnQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLm51bWJlciA+IEVYVFJBQ1RfQkFTSUNfTUFYKQotICAgICAgICAgICAg
ICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPSBnZXQyQnl0ZVZhbHVl
KHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmluc3RydWN0aW9uUHRyQXRTdGFydE9mT25jZSAr
IDIgKyBMSU5LX1NJWkUpOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLm9mZnNldCA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51bWJlciA8PCAxOwotICAg
ICAgICAgICAgICAgIAotI2lmZGVmIERFQlVHCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJlbmQg
YnJhY2tldCAlZCIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51bWJlcik7Ci0gICAgICAg
ICAgICAgICAgcHJpbnRmKCJcbiIpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgLyogVGVzdCBmb3IgYSBudW1iZXJlZCBncm91cC4gVGhpcyBpbmNsdWRlcyBncm91
cHMgY2FsbGVkIGFzIGEgcmVzdWx0Ci0gICAgICAgICAgICAgICAgIG9mIHJlY3Vyc2lvbi4gTm90
ZSB0aGF0IHdob2xlLXBhdHRlcm4gcmVjdXJzaW9uIGlzIGNvZGVkIGFzIGEgcmVjdXJzZQotICAg
ICAgICAgICAgICAgICBpbnRvIGdyb3VwIDAsIHNvIGl0IHdvbid0IGJlIHBpY2tlZCB1cCBoZXJl
LiBJbnN0ZWFkLCB3ZSBjYXRjaCBpdCB3aGVuCi0gICAgICAgICAgICAgICAgIHRoZSBPUF9FTkQg
aXMgcmVhY2hlZC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3Rh
Y2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVyID4gMCkgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0ID49IG1kLm9mZnNldE1heCkK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1kLm9mZnNldE92ZXJmbG93ID0gdHJ1ZTsKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZC5vZmZzZXRW
ZWN0b3Jbc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0XSA9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBtZC5vZmZzZXRWZWN0b3JbbWQub2Zmc2V0RW5kIC0gc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMubnVtYmVyXTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1kLm9mZnNldFZl
Y3RvcltzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQrMV0gPSBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAtIG1kLnN0YXJ0U3ViamVjdDsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mub2Zmc2V0VG9wIDw9IHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mub2Zmc2V0VG9wID0gc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMub2Zmc2V0ICsgMjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBGb3IgYSBub24tcmVw
ZWF0aW5nIGtldCwganVzdCBjb250aW51ZSBhdCB0aGlzIGxldmVsLiBUaGlzIGFsc28KLSAgICAg
ICAgICAgICAgICAgaGFwcGVucyBmb3IgYSByZXBlYXRpbmcga2V0IGlmIG5vIGNoYXJhY3RlcnMg
d2VyZSBtYXRjaGVkIGluIHRoZSBncm91cC4KLSAgICAgICAgICAgICAgICAgVGhpcyBpcyB0aGUg
Zm9yY2libGUgYnJlYWtpbmcgb2YgaW5maW5pdGUgbG9vcHMgYXMgaW1wbGVtZW50ZWQgaW4gUGVy
bAotICAgICAgICAgICAgICAgICA1LjAwNS4gSWYgdGhlcmUgaXMgYW4gb3B0aW9ucyByZXNldCwg
aXQgd2lsbCBnZXQgb2JleWVkIGluIHRoZSBub3JtYWwKLSAgICAgICAgICAgICAgICAgY291cnNl
IG9mIGV2ZW50cy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoKnN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9PSBPUF9LRVQgfHwgc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMuc3ViamVjdFB0ckF0U3RhcnRPZkluc3RydWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAg
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAxICsgTElOS19TSVpF
OwotICAgICAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogVGhlIHJlcGVhdGluZyBrZXRzIHRy
eSB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBvciByZXN0YXJ0IGZyb20gdGhlCi0gICAgICAgICAg
ICAgICAgIHByZWNlZGluZyBicmFja2V0LCBpbiB0aGUgYXBwcm9wcmlhdGUgb3JkZXIuICovCi0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCpzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfS0VUUk1JTikgewotICAgICAgICAgICAgICAgICAg
ICBSRUNVUlNJVkVfTUFUQ0goMTYsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlv
blB0ciArIDEgKyBMSU5LX1NJWkUsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hh
aW4pOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9ORVdf
R1JPVVAoMTcsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmluc3RydWN0aW9uUHRyQXRTdGFy
dE9mT25jZSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVS
TjsKLSAgICAgICAgICAgICAgICB9IGVsc2UgeyAvKiBPUF9LRVRSTUFYICovCi0gICAgICAgICAg
ICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9ORVdfR1JPVVAoMTgsIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLmluc3RydWN0aW9uUHRyQXRTdGFydE9mT25jZSwgc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQot
ICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgUkVD
VVJTSVZFX01BVENIKDE5LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIg
KyAxICsgTElOS19TSVpFLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBSUkVUVVJOOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogU3RhcnQgb2Ygc3ViamVjdC4gKi8KLQot
ICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENJUkMpOgotICAgICAgICAgICAgICAgIGlmIChzdGFj
ay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBtZC5zdGFydFN1YmplY3QpCi0gICAg
ICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAgTkVY
VF9PUENPREU7Ci0KLSAgICAgICAgICAgIC8qIEFmdGVyIGludGVybmFsIG5ld2xpbmUgaWYgbXVs
dGlsaW5lLiAqLwotCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoQk9MKToKLSAgICAgICAgICAg
ICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgIT0gbWQuc3RhcnRT
dWJqZWN0ICYmICFpc05ld2xpbmUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHJb
LTFdKSkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAg
ICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKzsKLSAgICAgICAg
ICAgICAgICBORVhUX09QQ09ERTsKLQotICAgICAgICAgICAgLyogRW5kIG9mIHN1YmplY3QuICov
Ci0KLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShET0xMKToKLSAgICAgICAgICAgICAgICBpZiAo
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPCBtZC5lbmRTdWJqZWN0KQotICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIE5F
WFRfT1BDT0RFOwotCi0gICAgICAgICAgICAvKiBCZWZvcmUgaW50ZXJuYWwgbmV3bGluZSBpZiBt
dWx0aWxpbmUuICovCi0KLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShFT0wpOgotICAgICAgICAg
ICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA8IG1kLmVuZFN1
YmplY3QgJiYgIWlzTmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIp
KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAg
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogV29yZCBi
b3VuZGFyeSBhc3NlcnRpb25zICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJ
Tl9PUENPREUoTk9UX1dPUkRfQk9VTkRBUlkpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKFdP
UkRfQk9VTkRBUlkpOiB7Ci0gICAgICAgICAgICAgICAgYm9vbCBjdXJyZW50Q2hhcklzV29yZENo
YXIgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBib29sIHByZXZpb3VzQ2hhcklzV29yZENoYXIg
PSBmYWxzZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPiBtZC5zdGFydFN1YmplY3QpCi0gICAgICAgICAg
ICAgICAgICAgIHByZXZpb3VzQ2hhcklzV29yZENoYXIgPSBpc1dvcmRDaGFyKHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyWy0xXSk7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyIDwgbWQuZW5kU3ViamVjdCkKLSAgICAgICAg
ICAgICAgICAgICAgY3VycmVudENoYXJJc1dvcmRDaGFyID0gaXNXb3JkQ2hhcigqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIE5vdyBzZWUgaWYgdGhlIHNpdHVhdGlvbiBpcyB3aGF0IHdlIHdhbnQgKi8KLSAg
ICAgICAgICAgICAgICBib29sIHdvcmRCb3VuZGFyeURlc2lyZWQgPSAoKnN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrID09IE9QX1dPUkRfQk9VTkRBUlkpOwotICAgICAg
ICAgICAgICAgIGlmICh3b3JkQm91bmRhcnlEZXNpcmVkID8gY3VycmVudENoYXJJc1dvcmRDaGFy
ID09IHByZXZpb3VzQ2hhcklzV29yZENoYXIgOiBjdXJyZW50Q2hhcklzV29yZENoYXIgIT0gcHJl
dmlvdXNDaGFySXNXb3JkQ2hhcikKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRD
SDsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciB0eXBlOyBp
bmxpbmUgZm9yIHNwZWVkICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9P
UENPREUoTk9UX05FV0xJTkUpOgotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIGlmIChpc05ld2xpbmUoKnN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKyspKQotICAgICAgICAgICAgICAgICAgICBS
UkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotCi0gICAg
ICAgICAgICBCRUdJTl9PUENPREUoTk9UX0RJR0lUKToKLSAgICAgICAgICAgICAgICBpZiAoc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAg
ICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAoaXNB
U0NJSURpZ2l0KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cisrKSkKLSAgICAg
ICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKzsKLSAgICAgICAgICAgICAgICBORVhU
X09QQ09ERTsKLQotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKERJR0lUKToKLSAgICAgICAgICAg
ICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3Vi
amVjdCkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAg
ICAgICBpZiAoIWlzQVNDSUlEaWdpdCgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQ
dHIrKykpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAg
ICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAg
ICAgICAgICAgTkVYVF9PUENPREU7Ci0KLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShOT1RfV0hJ
VEVTUEFDRSk6Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5f
Tk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaWYgKGlzU3BhY2VDaGFyKCpzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0cisrKSkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9O
T19NQVRDSDsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1
Y3Rpb25QdHIrKzsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLQotICAgICAgICAgICAg
QkVHSU5fT1BDT0RFKFdISVRFU1BBQ0UpOgotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIGlmICghaXNTcGFjZUNo
YXIoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKyspKQotICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RF
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5PVF9XT1JEQ0hB
Uik6Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0
UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFU
Q0g7Ci0gICAgICAgICAgICAgICAgaWYgKGlzV29yZENoYXIoKnN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyKyspKQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENI
OwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0
cisrOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgQkVHSU5fT1BDT0RFKFdPUkRDSEFSKToKLSAgICAgICAgICAgICAgICBpZiAoc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAg
ICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAoIWlz
V29yZENoYXIoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKyspKQotICAgICAg
ICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIE5FWFRf
T1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0Y2ggYSBiYWNrIHJl
ZmVyZW5jZSwgcG9zc2libHkgcmVwZWF0ZWRseS4gTG9vayBwYXN0IHRoZSBlbmQgb2YgdGhlCi0g
ICAgICAgICAgICAgaXRlbSB0byBzZWUgaWYgdGhlcmUgaXMgcmVwZWF0IGluZm9ybWF0aW9uIGZv
bGxvd2luZy4gVGhlIGNvZGUgaXMgc2ltaWxhcgotICAgICAgICAgICAgIHRvIHRoYXQgZm9yIGNo
YXJhY3RlciBjbGFzc2VzLCBidXQgcmVwZWF0ZWQgZm9yIGVmZmljaWVuY3kuIFRoZW4gb2JleQot
ICAgICAgICAgICAgIHNpbWlsYXIgY29kZSB0byBjaGFyYWN0ZXIgdHlwZSByZXBlYXRzIC0gd3Jp
dHRlbiBvdXQgYWdhaW4gZm9yIHNwZWVkLgotICAgICAgICAgICAgIEhvd2V2ZXIsIGlmIHRoZSBy
ZWZlcmVuY2VkIHN0cmluZyBpcyB0aGUgZW1wdHkgc3RyaW5nLCBhbHdheXMgdHJlYXQKLSAgICAg
ICAgICAgICBpdCBhcyBtYXRjaGVkLCBhbnkgbnVtYmVyIG9mIHRpbWVzIChvdGhlcndpc2UgdGhl
cmUgY291bGQgYmUgaW5maW5pdGUKLSAgICAgICAgICAgICBsb29wcykuICovCi0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoUkVGKToKLSAgICAgICAgICAgICAgICBz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEpIDw8IDE7ICAgICAgICAgICAgICAg
LyogRG91YmxlZCByZWYgbnVtYmVyICovCi0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDM7ICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogQWR2YW5jZSBwYXN0IGl0ZW0gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAvKiBJZiB0aGUgcmVmZXJlbmNlIGlzIHVuc2V0LCBzZXQgdGhlIGxlbmd0aCB0byBi
ZSBsb25nZXIgdGhhbiB0aGUgYW1vdW50Ci0gICAgICAgICAgICAgICAgIG9mIHN1YmplY3QgbGVm
dDsgdGhpcyBlbnN1cmVzIHRoYXQgZXZlcnkgYXR0ZW1wdCBhdCBhIG1hdGNoIGZhaWxzLiBXZQot
ICAgICAgICAgICAgICAgICBjYW4ndCBqdXN0IGZhaWwgaGVyZSwgYmVjYXVzZSBvZiB0aGUgcG9z
c2liaWxpdHkgb2YgcXVhbnRpZmllcnMgd2l0aCB6ZXJvCi0gICAgICAgICAgICAgICAgIG1pbmlt
YS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMub2Zmc2V0ID49IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5vZmZzZXRU
b3AgfHwgbWQub2Zmc2V0VmVjdG9yW3N0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldF0g
PCAwKQotICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5n
dGggPSAwOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoID0gbWQub2Zmc2V0VmVjdG9yW3N0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLm9mZnNldCsxXSAtIG1kLm9mZnNldFZlY3RvcltzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5vZmZzZXRdOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IC8qIFNldCB1cCBmb3IgcmVwZXRpdGlvbiwgb3IgaGFuZGxlIHRoZSBub24tcmVwZWF0ZWQgY2Fz
ZSAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHN3aXRjaCAoKnN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cikgewotICAgICAgICAgICAgICAgICAgICBj
YXNlIE9QX0NSU1RBUjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6Ci0g
ICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JQTFVTOgotICAgICAgICAgICAgICAgICAgICBj
YXNlIE9QX0NSTUlOUExVUzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlFVRVJZOgot
ICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICByZXBlYXRJbmZvcm1hdGlvbkZyb21JbnN0cnVjdGlvbk9mZnNldCgqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKysgLSBPUF9DUlNUQVIsIG1pbmltaXplLCBt
aW4sIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBjYXNlIE9QX0NSUkFOR0U6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5H
RToKLSAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltaXplID0gKCpzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfQ1JNSU5SQU5HRSk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBtaW4gPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5p
bnN0cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMubWF4ID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKyAzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFj
ay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBJTlRfTUFYOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9
IDU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyogTm8gcmVwZWF0
IGZvbGxvd3MgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0Y2hSZWYoc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoLCBtZCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICs9IHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgICAgIE5FWFRfT1BD
T0RFOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAvKiBJZiB0aGUgbGVuZ3RoIG9mIHRoZSByZWZlcmVuY2UgaXMgemVybywganVzdCBjb250aW51
ZSB3aXRoIHRoZQotICAgICAgICAgICAgICAgICBtYWluIGxvb3AuICovCi0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0
aCA9PSAwKQotICAgICAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBGaXJzdCwgZW5zdXJlIHRoZSBtaW5pbXVtIG51bWJlciBv
ZiBtYXRjaGVzIGFyZSBwcmVzZW50LiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGlmICghbWF0Y2hSZWYoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0LCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
bGVuZ3RoLCBtZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwot
ICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAr
PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIG1pbiA9IG1heCwgY29udGlu
dWUgYXQgdGhlIHNhbWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpb24uCi0gICAgICAgICAgICAgICAg
IFRoZXkgYXJlIG5vdCBib3RoIGFsbG93ZWQgdG8gYmUgemVyby4gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBpZiAobWluID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
Lm1heCkKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogSWYgbWluaW1pemluZywga2VlcCB0cnlpbmcgYW5kIGFkdmFu
Y2luZyB0aGUgcG9pbnRlciAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChtaW5pbWl6ZSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkrKykgewot
ICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDIwLCBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFj
a2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5tYXggfHwgIW1hdGNoUmVmKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCwg
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmxlbmd0aCwgbWQpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0ciArPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGg7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhl
cmUgKi8KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgLyogSWYgbWF4aW1pemluZywgZmluZCB0aGUgbG9uZ2VzdCBzdHJpbmcgYW5kIHdvcmsgYmFj
a3dhcmRzICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0
YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbWF0
Y2hSZWYoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0LCBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoLCBt
ZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciArPSBzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAgICAgd2hpbGUgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlv
bikgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDIxLCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyIC09IHN0YWNrLmN1cnJlbnRG
cmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgLyogTWF0Y2ggYSBiaXQtbWFwcGVkIGNoYXJhY3RlciBjbGFzcywgcG9zc2li
bHkgcmVwZWF0ZWRseS4gVGhpcyBvcCBjb2RlIGlzCi0gICAgICAgICAgICAgdXNlZCB3aGVuIGFs
bCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgY2xhc3MgaGF2ZSB2YWx1ZXMgaW4gdGhlIHJhbmdlIDAt
MjU1LAotICAgICAgICAgICAgIGFuZCBlaXRoZXIgdGhlIG1hdGNoaW5nIGlzIGNhc2VmdWwsIG9y
IHRoZSBjaGFyYWN0ZXJzIGFyZSBpbiB0aGUgcmFuZ2UKLSAgICAgICAgICAgICAwLTEyNyB3aGVu
IFVURi04IHByb2Nlc3NpbmcgaXMgZW5hYmxlZC4gVGhlIG9ubHkgZGlmZmVyZW5jZSBiZXR3ZWVu
Ci0gICAgICAgICAgICAgT1BfQ0xBU1MgYW5kIE9QX05DTEFTUyBvY2N1cnMgd2hlbiBhIGRhdGEg
Y2hhcmFjdGVyIG91dHNpZGUgdGhlIHJhbmdlIGlzCi0gICAgICAgICAgICAgZW5jb3VudGVyZWQu
Ci0gICAgICAgICAgICAgCi0gICAgICAgICAgICAgRmlyc3QsIGxvb2sgcGFzdCB0aGUgZW5kIG9m
IHRoZSBpdGVtIHRvIHNlZSBpZiB0aGVyZSBpcyByZXBlYXQgaW5mb3JtYXRpb24KLSAgICAgICAg
ICAgICBmb2xsb3dpbmcuIFRoZW4gb2JleSBzaW1pbGFyIGNvZGUgdG8gY2hhcmFjdGVyIHR5cGUg
cmVwZWF0cyAtIHdyaXR0ZW4gb3V0Ci0gICAgICAgICAgICAgYWdhaW4gZm9yIHNwZWVkLiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5DTEFTUyk6Ci0gICAg
ICAgICAgICBCRUdJTl9PUENPREUoQ0xBU1MpOgotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmRhdGEgPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rp
b25QdHIgKyAxOyAgICAgICAgICAgICAgICAvKiBTYXZlIGZvciBtYXRjaGluZyAqLwotICAgICAg
ICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAzMzsg
ICAgICAgICAgICAgICAgICAgICAvKiBBZHZhbmNlIHBhc3QgdGhlIGl0ZW0gKi8KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKCpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlNUQVI6
Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5TVEFSOgotICAgICAgICAgICAgICAg
ICAgICBjYXNlIE9QX0NSUExVUzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUk1JTlBM
VVM6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JRVUVSWToKLSAgICAgICAgICAgICAg
ICAgICAgY2FzZSBPUF9DUk1JTlFVRVJZOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0
SW5mb3JtYXRpb25Gcm9tSW5zdHJ1Y3Rpb25PZmZzZXQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0cisrIC0gT1BfQ1JTVEFSLCBtaW5pbWl6ZSwgbWluLCBzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5tYXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlJB
TkdFOgotICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX0NSTUlOUkFOR0U6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBtaW5pbWl6ZSA9ICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyID09IE9QX0NSTUlOUkFOR0UpOwotICAgICAgICAgICAgICAgICAgICAgICAgbWlu
ID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIg
KyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
Lm1heCA9IGdldDJCeXRlVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyICsgMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMubWF4ID09IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubWF4ID0gSU5UX01BWDsKLSAgICAgICAgICAgICAgICAgICAgICAg
IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSA1OwotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAvKiBObyByZXBlYXQgZm9sbG93cyAq
LwotICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMubWF4ID0gMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBGaXJzdCwgZW5zdXJl
IHRoZSBtaW5pbXVtIG51bWJlciBvZiBtYXRjaGVzIGFyZSBwcmVzZW50LiAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9O
T19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLnN1YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGMgPiAyNTUpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5k
YXRhWy0xXSA9PSBPUF9DTEFTUykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJO
X05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCEoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZGF0YVtjIC8gOF0gJiAo
MSA8PCAoYyAmIDcpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19N
QVRDSDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBtYXggPT0gbWluIHdlIGNhbiBjb250aW51
ZSB3aXRoIHRoZSBtYWluIGxvb3Agd2l0aG91dCB0aGUKLSAgICAgICAgICAgICAgICAgbmVlZCB0
byByZWN1cnNlLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChtaW4g
PT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KQotICAgICAgICAgICAgICAgICAgICBO
RVhUX09QQ09ERTsgICAgICAKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJ
ZiBtaW5pbWl6aW5nLCBrZWVwIHRlc3RpbmcgdGhlIHJlc3Qgb2YgdGhlIGV4cHJlc3Npb24gYW5k
IGFkdmFuY2luZwotICAgICAgICAgICAgICAgICB0aGUgcG9pbnRlciB3aGlsZSBpdCBtYXRjaGVz
IHRoZSBjbGFzcy4gKi8KLSAgICAgICAgICAgICAgICBpZiAobWluaW1pemUpIHsKLSAgICAgICAg
ICAgICAgICAgICAgZm9yIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA9IG1pbjs7IHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IFJFQ1VSU0lWRV9NQVRDSCgyMiwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJS
RVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMuZmkgPj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4IHx8IHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGludCBjID0g
KnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKys7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoYyA+IDI1NSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRhWy0xXSA9PSBPUF9DTEFTUykKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAg
IH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5kYXRhW2MvOF0gJiAoMSA8PCAoYyY3KSkpID09IDApCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgLyogQ29udHJvbCBu
ZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
LyogSWYgbWF4aW1pemluZywgZmluZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBydW4sIHRoZW4gd29y
ayBiYWNrd2FyZHMuICovCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVj
dGlvbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8IHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVj
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBjID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPiAyNTUpIHsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZGF0YVstMV0gPT0gT1BfQ0xB
U1MpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIShz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRhW2MgLyA4XSAmICgxIDw8IChjICYgNykpKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCgy
NCwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp
c01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHItLSA9
PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rp
b24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlm
IHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAqLwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0Y2ggYW4gZXh0ZW5kZWQgY2hhcmFj
dGVyIGNsYXNzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RF
KFhDTEFTUyk6Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZGF0
YSA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEgKyBMSU5LX1NJ
WkU7ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNoaW5nICovCi0gICAgICAgICAgICAg
ICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IGdldExpbmtWYWx1
ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsgICAgICAgICAg
ICAgICAgICAgICAgLyogQWR2YW5jZSBwYXN0IHRoZSBpdGVtICovCi0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgc3dpdGNoICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JTVEFSOgotICAgICAg
ICAgICAgICAgICAgICBjYXNlIE9QX0NSTUlOU1RBUjoKLSAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBPUF9DUlBMVVM6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5QTFVTOgotICAg
ICAgICAgICAgICAgICAgICBjYXNlIE9QX0NSUVVFUlk6Ci0gICAgICAgICAgICAgICAgICAgIGNh
c2UgT1BfQ1JNSU5RVUVSWToKLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdEluZm9ybWF0
aW9uRnJvbUluc3RydWN0aW9uT2Zmc2V0KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1
Y3Rpb25QdHIrKyAtIE9QX0NSU1RBUiwgbWluaW1pemUsIG1pbiwgc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMubWF4KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JSQU5HRToKLSAg
ICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUk1JTlJBTkdFOgotICAgICAgICAgICAgICAgICAg
ICAgICAgbWluaW1pemUgPSAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0
ciA9PSBPUF9DUk1JTlJBTkdFKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IGdldDJC
eXRlVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBn
ZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDMp
OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
Lm1heCA9PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLm1heCA9IElOVF9NQVg7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gNTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6ICAgICAgICAgICAgICAgLyogTm8gcmVwZWF0IGZvbGxvd3MgKi8KLSAgICAg
ICAgICAgICAgICAgICAgICAgIG1pbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9
IDE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNl
bnQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7
IGkgPD0gbWluOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAg
ICBpZiAoIWpzY19wY3JlX3hjbGFzcyhjLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRh
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIG1heCA9PSBt
aW4gd2UgY2FuIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCB3aXRob3V0IHRoZQotICAgICAg
ICAgICAgICAgICBuZWVkIHRvIHJlY3Vyc2UuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKG1pbiA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpCi0gICAg
ICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIElmIG1pbmltaXppbmcsIGtlZXAgdGVzdGluZyB0aGUgcmVzdCBvZiB0aGUgZXhw
cmVzc2lvbiBhbmQgYWR2YW5jaW5nCi0gICAgICAgICAgICAgICAgIHRoZSBwb2ludGVyIHdoaWxl
IGl0IG1hdGNoZXMgdGhlIGNsYXNzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmIChtaW5pbWl6ZSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkr
KykgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDI2LCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5tYXggfHwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0g
bWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICghanNjX3BjcmVfeGNsYXNz
KGMsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmRhdGEpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYgbWF4aW1pemluZywgZmlu
ZCB0aGUgbG9uZ2VzdCBwb3NzaWJsZSBydW4sIHRoZW4gd29yayBiYWNrd2FyZHMuICovCi0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlv
biA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAg
ICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4
OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
IWpzY19wY3JlX3hjbGFzcyhjLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRhKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZm9yKDs7KSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBSRUNVUlNJVkVfTUFUQ0goMjcsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVj
dGlvblB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5zdWJqZWN0UHRyLS0gPT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVj
dFB0ckF0U3RhcnRPZkluc3RydWN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBwb3MgKi8KLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVy
IHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0Y2gg
YSBzaW5nbGUgY2hhcmFjdGVyLCBjYXNlZnVsbHkgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShDSEFSKToKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5sZW5ndGggPSAxOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIGdldFVURjhDaGFy
QW5kSW5jcmVtZW50TGVuZ3RoKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjLCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmlu
c3RydWN0aW9uUHRyICs9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAg
ICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQu
ZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAg
ICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgIT0gKnN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKyspCi0gICAgICAgICAgICAgICAgICAgIFJSRVRV
Uk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGNhc2VsZXNzbHkg
Ki8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDSEFSX0lHTk9S
SU5HX0NBU0UpOiB7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
bGVuZ3RoID0gMTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5z
dHJ1Y3Rpb25QdHIrKzsKLSAgICAgICAgICAgICAgICBnZXRVVEY4Q2hhckFuZEluY3JlbWVudExl
bmd0aChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYywgc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGgpOwot
ICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciAr
PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgaWYg
KHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0g
ICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaW50
IGRjID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKys7Ci0gICAgICAgICAg
ICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjICE9IGRjICYmIGpzY19wY3Jl
X3VjcF9vdGhlcmNhc2Uoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMpICE9IGRjKQotICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIE5FWFRf
T1BDT0RFOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyog
TWF0Y2ggYSBzaW5nbGUgQVNDSUkgY2hhcmFjdGVyLiAqLwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgQkVHSU5fT1BDT0RFKEFTQ0lJX0NIQVIpOgotICAgICAgICAgICAgICAgIGlmICht
ZC5lbmRTdWJqZWN0ID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKQotICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIGlmICgq
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgIT0gc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmluc3RydWN0aW9uUHRyWzFdKQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05P
X01BVENIOwotICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHI7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICs9IDI7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBvbmUgb2YgdHdvIGNhc2VzIG9mIGFuIEFTQ0lJIGxl
dHRlci4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShBU0NJ
SV9MRVRURVJfSUdOT1JJTkdfQ0FTRSk6Ci0gICAgICAgICAgICAgICAgaWYgKG1kLmVuZFN1Ympl
Y3QgPT0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpCi0gICAgICAgICAgICAg
ICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaWYgKCgqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgfCAweDIwKSAhPSBzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHJbMV0pCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9f
TUFUQ0g7Ci0gICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0cjsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rp
b25QdHIgKz0gMjsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3RlciByZXBlYXRlZGx5OyBk
aWZmZXJlbnQgb3Bjb2RlcyBzaGFyZSBjb2RlLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgQkVHSU5fT1BDT0RFKEVYQUNUKToKLSAgICAgICAgICAgICAgICBtaW4gPSBzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgIG1pbmltaXplID0g
ZmFsc2U7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICs9IDM7Ci0gICAgICAgICAgICAgICAgZ290byBSRVBFQVRDSEFSOwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKFVQVE8pOgotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKE1JTlVQVE8pOgotICAgICAgICAgICAgICAgIG1pbiA9IDA7Ci0gICAgICAgICAg
ICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4ID0gZ2V0MkJ5dGVWYWx1ZShzdGFj
ay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsKLSAgICAgICAgICAgICAg
ICBtaW5pbWl6ZSA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0g
T1BfTUlOVVBUTzsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5z
dHJ1Y3Rpb25QdHIgKz0gMzsKLSAgICAgICAgICAgICAgICBnb3RvIFJFUEVBVENIQVI7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoU1RBUik6Ci0gICAgICAgICAg
ICBCRUdJTl9PUENPREUoTUlOU1RBUik6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoUExVUyk6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoTUlOUExVUyk6Ci0gICAgICAgICAgICBCRUdJTl9P
UENPREUoUVVFUlkpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE1JTlFVRVJZKToKLSAgICAg
ICAgICAgICAgICByZXBlYXRJbmZvcm1hdGlvbkZyb21JbnN0cnVjdGlvbk9mZnNldCgqc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKysgLSBPUF9TVEFSLCBtaW5pbWl6ZSwg
bWluLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIC8qIENvbW1vbiBjb2RlIGZvciBhbGwgcmVwZWF0ZWQgc2luZ2xlLWNo
YXJhY3RlciBtYXRjaGVzLiBXZSBjYW4gZ2l2ZQotICAgICAgICAgICAgICAgICB1cCBxdWlja2x5
IGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBjaGFyYWN0ZXJz
IGxlZnQgaW4KLSAgICAgICAgICAgICAgICAgdGhlIHN1YmplY3QuICovCi0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICBSRVBFQVRDSEFSOgotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aCA9IDE7Ci0gICAgICAgICAg
ICAgICAgZ2V0VVRGOENoYXJBbmRJbmNyZW1lbnRMZW5ndGgoc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMuZmMsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBpZiAobWluICog
KHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjID4gMHhGRkZGID8gMiA6IDEpID4gbWQuZW5k
U3ViamVjdCAtIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKQotICAgICAgICAg
ICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5sZW5ndGg7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLmZjIDw9IDB4RkZGRikgewotICAgICAgICAgICAgICAgICAgICBv
dGhlcmNhc2UgPSBtZC5pZ25vcmVDYXNlID8ganNjX3BjcmVfdWNwX290aGVyY2FzZShzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5mYykgOiAtMTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRy
ICE9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjICYmICpzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0ciAhPSBvdGhlcmNhc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChtaW4gPT0gc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubWF4KQotICAgICAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENP
REU7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAobWluaW1p
emUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
LnJlcGVhdE90aGVyY2FzZSA9IG90aGVyY2FzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPSBtaW47OyBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5maSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZF
X01BVENIKDI4LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVU
VVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggfHwgc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmZjICYmICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0
ciAhPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5yZXBlYXRPdGhlcmNhc2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIg
cmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFy
dE9mSW5zdHJ1Y3Rpb24gPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjICYmICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0ciAhPSBvdGhlcmNhc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB3aGlsZSAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIg
Pj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3RhcnRPZkluc3RydWN0
aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDI5LCBz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp
c01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIC0tc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQ
dHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBS
UkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgfSBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgLyogTm8gY2FzZSBvbiBzdXJyb2dhdGUgcGFpcnMs
IHNvIG5vIG5lZWQgdG8gYm90aGVyIHdpdGggIm90aGVyY2FzZSIuICovCi0gICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtaW47IGkr
KykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0ciAhPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYykKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAg
ICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgKz0gMjsKLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
aWYgKG1pbiA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIGlmIChtaW5pbWl6ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA9IG1pbjs7IHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmZpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFU
Q0goMzAsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLmZpID49IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCB8fCBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
ICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgIT0gc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMuZmMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIgKz0gMjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24gPSBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50
IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0ciA+IG1kLmVuZFN1YmplY3QgLSAyKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKnN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZj
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciArPSAyOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUg
KHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCgzMSwgc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWlu
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAtPSAyOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5l
dmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAv
KiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgLyogTWF0Y2ggYSBuZWdhdGVkIHNpbmdsZSBvbmUtYnl0ZSBjaGFyYWN0ZXIuICovCi0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoTk9UKTogewotICAgICAg
ICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5l
bmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAg
ICAgICAgICAgIGludCBiID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRy
WzFdOwotICAgICAgICAgICAgICAgIGludCBjID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyKys7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmlu
c3RydWN0aW9uUHRyICs9IDI7Ci0gICAgICAgICAgICAgICAgaWYgKG1kLmlnbm9yZUNhc2UpIHsK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGMgPCAxMjgpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjID0gdG9Mb3dlckNhc2UoYyk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0b0xvd2VyQ2Fz
ZShiKSA9PSBjKQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAg
ICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBpZiAoYiA9PSBjKQot
ICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9uZS1ieXRl
IGNoYXJhY3RlciByZXBlYXRlZGx5LiBUaGlzIGlzIGFsbW9zdCBhCi0gICAgICAgICAgICAgcmVw
ZWF0IG9mIHRoZSBjb2RlIGZvciBhIHJlcGVhdGVkIHNpbmdsZSBjaGFyYWN0ZXIsIGJ1dCBJIGhh
dmVuJ3QgZm91bmQgYQotICAgICAgICAgICAgIG5pY2Ugd2F5IG9mIGNvbW1vbmluZyB0aGVzZSB1
cCB0aGF0IGRvZXNuJ3QgcmVxdWlyZSBhIHRlc3Qgb2YgdGhlCi0gICAgICAgICAgICAgcG9zaXRp
dmUvbmVnYXRpdmUgb3B0aW9uIGZvciBlYWNoIGNoYXJhY3RlciBtYXRjaC4gTWF5YmUgdGhhdCB3
b3VsZG4ndCBhZGQKLSAgICAgICAgICAgICB2ZXJ5IG11Y2ggdG8gdGhlIHRpbWUgdGFrZW4sIGJ1
dCBjaGFyYWN0ZXIgbWF0Y2hpbmcgKmlzKiB3aGF0IHRoaXMgaXMgYWxsCi0gICAgICAgICAgICAg
YWJvdXQuLi4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShO
T1RFWEFDVCk6Ci0gICAgICAgICAgICAgICAgbWluID0gc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMubWF4ID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rp
b25QdHIgKyAxKTsKLSAgICAgICAgICAgICAgICBtaW5pbWl6ZSA9IGZhbHNlOwotICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAzOwotICAg
ICAgICAgICAgICAgIGdvdG8gUkVQRUFUTk9UQ0hBUjsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShOT1RVUFRPKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShO
T1RNSU5VUFRPKToKLSAgICAgICAgICAgICAgICBtaW4gPSAwOwotICAgICAgICAgICAgICAgIHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9IGdldDJCeXRlVmFsdWUoc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAgICAgICAgICAgICAgbWluaW1p
emUgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyID09IE9QX05PVE1J
TlVQVE87Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICs9IDM7Ci0gICAgICAgICAgICAgICAgZ290byBSRVBFQVROT1RDSEFSOwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5PVFNUQVIpOgotICAgICAgICAg
ICAgQkVHSU5fT1BDT0RFKE5PVE1JTlNUQVIpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5P
VFBMVVMpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5PVE1JTlBMVVMpOgotICAgICAgICAg
ICAgQkVHSU5fT1BDT0RFKE5PVFFVRVJZKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShOT1RN
SU5RVUVSWSk6Ci0gICAgICAgICAgICAgICAgcmVwZWF0SW5mb3JtYXRpb25Gcm9tSW5zdHJ1Y3Rp
b25PZmZzZXQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrIC0gT1Bf
Tk9UU1RBUiwgbWluaW1pemUsIG1pbiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KTsK
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIENvbW1vbiBjb2RlIGZvciBhbGwgcmVw
ZWF0ZWQgc2luZ2xlLWJ5dGUgbWF0Y2hlcy4gV2UgY2FuIGdpdmUgdXAgcXVpY2tseQotICAgICAg
ICAgICAgIGlmIHRoZXJlIGFyZSBmZXdlciB0aGFuIHRoZSBtaW5pbXVtIG51bWJlciBvZiBieXRl
cyBsZWZ0IGluIHRoZQotICAgICAgICAgICAgIHN1YmplY3QuICovCi0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICBSRVBFQVROT1RDSEFSOgotICAgICAgICAgICAgICAgIGlmIChtaW4gPiBt
ZC5lbmRTdWJqZWN0IC0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpCi0gICAg
ICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMuZmMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogVGhlIGNv
ZGUgaXMgZHVwbGljYXRlZCBmb3IgdGhlIGNhc2VsZXNzIGFuZCBjYXNlZnVsIGNhc2VzLCBmb3Ig
c3BlZWQsCi0gICAgICAgICAgICAgICAgIHNpbmNlIG1hdGNoaW5nIGNoYXJhY3RlcnMgaXMgbGlr
ZWx5IHRvIGJlIHF1aXRlIGNvbW1vbi4gRmlyc3QsIGVuc3VyZSB0aGUKLSAgICAgICAgICAgICAg
ICAgbWluaW11bSBudW1iZXIgb2YgbWF0Y2hlcyBhcmUgcHJlc2VudC4gSWYgbWluID0gbWF4LCBj
b250aW51ZSBhdCB0aGUgc2FtZQotICAgICAgICAgICAgICAgICBsZXZlbCB3aXRob3V0IHJlY3Vy
c2luZy4gT3RoZXJ3aXNlLCBpZiBtaW5pbWl6aW5nLCBrZWVwIHRyeWluZyB0aGUgcmVzdCBvZgot
ICAgICAgICAgICAgICAgICB0aGUgZXhwcmVzc2lvbiBhbmQgYWR2YW5jaW5nIG9uZSBtYXRjaGlu
ZyBjaGFyYWN0ZXIgaWYgZmFpbGluZywgdXAgdG8gdGhlCi0gICAgICAgICAgICAgICAgIG1heGlt
dW0uIEFsdGVybmF0aXZlbHksIGlmIG1heGltaXppbmcsIGZpbmQgdGhlIG1heGltdW0gbnVtYmVy
IG9mCi0gICAgICAgICAgICAgICAgIGNoYXJhY3RlcnMgYW5kIHdvcmsgYmFja3dhcmRzLiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIERQUklOVEYoKCJuZWdhdGl2ZSBtYXRj
aGluZyAlY3slZCwlZH1cbiIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjLCBtaW4sIHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCkpOwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIGlmIChtZC5pZ25vcmVDYXNlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyA8IDEyOCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjID0gdG9Mb3dlckNhc2Uoc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMuZmMpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWluOyBpKyspIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGludCBkID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKys7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IDEyOCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBkID0gdG9Mb3dlckNhc2UoZCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgPT0gZCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAobWluID09IHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLm1heCkKLSAgICAgICAgICAgICAgICAgICAgICAgIE5FWFRfT1BD
T0RFOyAgICAgIAotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYg
KG1pbmltaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1cnJlbnRG
cmFtZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkrKykg
ewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCgzOCwgc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRj
aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgZCA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMTI4KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkID0gdG9Mb3dlckNhc2UoZCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpID49IHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCB8fCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0IHx8IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
LmZjID09IGQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9s
IG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBNYXhpbWl6ZSBjYXNlICovCi0gICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0
T2ZJbnN0cnVjdGlvbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAg
ICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBp
ID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGQgPSAqc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGQgPCAxMjgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSB0b0xvd2VyQ2Fz
ZShkKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMuZmMgPT0gZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVf
TUFUQ0goNDAsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRV
Uk47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyLS0gPT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0
ckF0U3RhcnRPZkluc3RydWN0aW9uKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsgICAgICAgIC8qIFN0b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogQ2FzZWZ1bCBjb21wYXJp
c29ucyAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGQgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQ
dHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5mYyA9PSBkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFU
Q0g7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAobWlu
ID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG1pbmltaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
ZmkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCg0Miwg
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgZCA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggfHwg
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCB8fCBz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyA9PSBkKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
LyogTWF4aW1pemUgY2FzZSAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24gPSBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8IHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLm1heDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBkID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyA9
PSBkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZm9yICg7
OykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCg0NCwgc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNN
YXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQ
dHItLSA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5z
dHJ1Y3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAg
LyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBwb3MgKi8KLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5l
dmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0
Y2ggYSBzaW5nbGUgY2hhcmFjdGVyIHR5cGUgcmVwZWF0ZWRseTsgc2V2ZXJhbCBkaWZmZXJlbnQg
b3Bjb2RlcwotICAgICAgICAgICAgIHNoYXJlIGNvZGUuIFRoaXMgaXMgdmVyeSBzaW1pbGFyIHRv
IHRoZSBjb2RlIGZvciBzaW5nbGUgY2hhcmFjdGVycywgYnV0IHdlCi0gICAgICAgICAgICAgcmVw
ZWF0IGl0IGluIHRoZSBpbnRlcmVzdHMgb2YgZWZmaWNpZW5jeS4gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFRVhBQ1QpOgotICAgICAgICAgICAgICAg
IG1pbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9IGdldDJCeXRlVmFsdWUoc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAgICAgICAgICAg
ICAgbWluaW1pemUgPSB0cnVlOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5pbnN0cnVjdGlvblB0ciArPSAzOwotICAgICAgICAgICAgICAgIGdvdG8gUkVQRUFUVFlQ
RTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFVVBUTyk6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoVFlQRU1JTlVQVE8pOgotICAgICAgICAgICAgICAg
IG1pbiA9IDA7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4
ID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIg
KyAxKTsKLSAgICAgICAgICAgICAgICBtaW5pbWl6ZSA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfVFlQRU1JTlVQVE87Ci0gICAgICAgICAgICAgICAgc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDM7Ci0gICAgICAgICAgICAg
ICAgZ290byBSRVBFQVRUWVBFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKFRZUEVTVEFSKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFTUlOU1RBUik6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoVFlQRVBMVVMpOgotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKFRZUEVNSU5QTFVTKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFUVVFUlkp
OgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKFRZUEVNSU5RVUVSWSk6Ci0gICAgICAgICAgICAg
ICAgcmVwZWF0SW5mb3JtYXRpb25Gcm9tSW5zdHJ1Y3Rpb25PZmZzZXQoKnN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrIC0gT1BfVFlQRVNUQVIsIG1pbmltaXplLCBtaW4s
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCk7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogQ29tbW9uIGNvZGUgZm9yIGFsbCByZXBlYXRlZCBzaW5nbGUgY2hhcmFj
dGVyIHR5cGUgbWF0Y2hlcy4gTm90ZSB0aGF0Ci0gICAgICAgICAgICAgICAgIGluIFVURi04IG1v
ZGUsICcuJyBtYXRjaGVzIGEgY2hhcmFjdGVyIG9mIGFueSBsZW5ndGgsIGJ1dCBmb3IgdGhlIG90
aGVyCi0gICAgICAgICAgICAgICAgIGNoYXJhY3RlciB0eXBlcywgdGhlIHZhbGlkIGNoYXJhY3Rl
cnMgYXJlIGFsbCBvbmUtYnl0ZSBsb25nLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgUkVQRUFUVFlQRToKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5jdHlwZSA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKzsgICAg
ICAvKiBDb2RlIGZvciB0aGUgY2hhcmFjdGVyIHR5cGUgKi8KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAvKiBGaXJzdCwgZW5zdXJlIHRoZSBtaW5pbXVtIG51bWJlciBvZiBtYXRj
aGVzIGFyZSBwcmVzZW50LiBVc2UgaW5saW5lCi0gICAgICAgICAgICAgICAgIGNvZGUgZm9yIG1h
eGltaXppbmcgdGhlIHNwZWVkLCBhbmQgZG8gdGhlIHR5cGUgdGVzdCBvbmNlIGF0IHRoZSBzdGFy
dAotICAgICAgICAgICAgICAgICAoaS5lLiBrZWVwIGl0IG91dCBvZiB0aGUgbG9vcCkuIEFsc28g
d2UgY2FuIHRlc3QgdGhhdCB0aGVyZSBhcmUgYXQgbGVhc3QKLSAgICAgICAgICAgICAgICAgdGhl
IG1pbmltdW0gbnVtYmVyIG9mIGNoYXJhY3RlcnMgYmVmb3JlIHdlIHN0YXJ0LiAqLwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChtaW4gPiBtZC5lbmRTdWJqZWN0IC0gc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpCi0gICAgICAgICAgICAgICAgICAgIFJS
RVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaWYgKG1pbiA+IDApIHsKLSAgICAgICAg
ICAgICAgICAgICAgc3dpdGNoIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5jdHlwZSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9OT1RfTkVXTElORToKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNOZXdsaW5lKCpzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX0RJ
R0lUOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1p
bjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FTQ0lJRGln
aXQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSBPUF9ESUdJVDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIWlzQVNDSUlEaWdpdCgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIp
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NwYWNlQ2hhcigqc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX1dI
SVRFU1BBQ0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkg
PD0gbWluOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1Nw
YWNlQ2hhcigqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0
cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgICAgICBjYXNlIE9QX05PVF9XT1JEQ0hBUjoKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNXb3JkQ2hhcigqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9O
T19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX1dPUkRDSEFSOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXb3JkQ2hhcigqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0
OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaEVycm9yKEpTUmVnRXhwRXJyb3JJ
bnRlcm5hbCwgc3RhY2spOwotICAgICAgICAgICAgICAgICAgICB9ICAvKiBFbmQgc3dpdGNoKHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmN0eXBlKSAqLwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBtaW4gPSBtYXgsIGNvbnRpbnVl
IGF0IHRoZSBzYW1lIGxldmVsIHdpdGhvdXQgcmVjdXJzaW5nICovCi0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgaWYgKG1pbiA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5t
YXgpCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOyAgICAKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBJZiBtaW5pbWl6aW5nLCB3ZSBoYXZlIHRvIHRlc3QgdGhl
IHJlc3Qgb2YgdGhlIHBhdHRlcm4gYmVmb3JlIGVhY2gKLSAgICAgICAgICAgICAgICAgc3Vic2Vx
dWVudCBtYXRjaC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAobWlu
aW1pemUpIHsKLSAgICAgICAgICAgICAgICAgICAgZm9yIChzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5maSA9IG1pbjs7IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpKyspIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCg0OCwgc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENo
YWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3Rh
Y2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
bWF4IHx8IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1Ympl
Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRj
aCAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuY3R5cGUpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYXNlIE9QX05PVF9ORVdMSU5FOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNOZXdsaW5lKGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgT1BfTk9UX0RJR0lUOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoaXNBU0NJSURpZ2l0KGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2UgT1BfRElHSVQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNBU0NJ
SURpZ2l0KGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9U
X1dISVRFU1BBQ0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1NwYWNl
Q2hhcihjKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX1dISVRF
U1BBQ0U6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNTcGFjZUNoYXIo
YykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9OT1RfV09SRENI
QVI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1dvcmRDaGFyKGMpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfV09SRENIQVI6Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXb3JkQ2hhcihjKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNSZWdFeHBFcnJvckludGVybmFsLCBzdGFjayk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYgbWF4aW1p
emluZyBpdCBpcyB3b3J0aCB1c2luZyBpbmxpbmUgY29kZSBmb3Igc3BlZWQsIGRvaW5nIHRoZSB0
eXBlCi0gICAgICAgICAgICAgICAgIHRlc3Qgb25jZSBhdCB0aGUgc3RhcnQgKGkuZS4ga2VlcCBp
dCBvdXQgb2YgdGhlIGxvb3ApLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5z
dWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24gPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cjsgIC8qIFJlbWVtYmVyIHdoZXJlIHdlIHN0YXJ0ZWQgKi8KLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMuY3R5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX05F
V0xJTkU6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+
PSBtZC5lbmRTdWJqZWN0IHx8IGlzTmV3bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLm1heDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFj
ay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCBjID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRy
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNBU0NJSURpZ2l0KGMpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBPUF9ESUdJVDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
KGludCBpID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50
IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KGMpKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBP
UF9OT1RfV0hJVEVTUEFDRToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBp
ID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAq
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChpc1NwYWNlQ2hhcihjKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfV0hJVEVT
UEFDRToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwg
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49
IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmICghaXNTcGFjZUNoYXIoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX05PVF9XT1JEQ0hBUjoKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1
YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1dv
cmRDaGFyKGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9XT1JEQ0hBUjoKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNXb3JkQ2hhcihjKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3Io
SlNSZWdFeHBFcnJvckludGVybmFsLCBzdGFjayk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyIGlzIG5vdyBwYXN0IHRoZSBlbmQgb2YgdGhlIG1heGltdW0g
cnVuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBmb3IgKDs7
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0goNTIsIHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyLS0gPT0gc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3RhcnRPZkluc3RydWN0aW9uKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBv
cmlnaW5hbCBwb3MgKi8KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgLyogR2V0IGhlcmUgaWYgd2UgY2FuJ3QgbWFrZSBpdCBt
YXRjaCB3aXRoIGFueSBwZXJtaXR0ZWQgcmVwZXRpdGlvbnMgKi8KLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoQ1JNSU5QTFVTKToKLSAgICAgICAgICAg
IEJFR0lOX09QQ09ERShDUk1JTlFVRVJZKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDUk1J
TlJBTkdFKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDUk1JTlNUQVIpOgotICAgICAgICAg
ICAgQkVHSU5fT1BDT0RFKENSUExVUyk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoQ1JRVUVS
WSk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoQ1JSQU5HRSk6Ci0gICAgICAgICAgICBCRUdJ
Tl9PUENPREUoQ1JTVEFSKToKLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySW50ZXJuYWws
IHN0YWNrKTsKLSAgICAgICAgICAgICAgICAKLSNpZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1Jf
TUFUQ0hfT1BDT0RFX0xPT1AKLSAgICAgICAgICAgIENBUFRVUklOR19CUkFDS0VUOgotI2Vsc2UK
LSAgICAgICAgICAgIGRlZmF1bHQ6Ci0jZW5kaWYKLSAgICAgICAgICAgICAgICAvKiBPcGVuaW5n
IGNhcHR1cmluZyBicmFja2V0LiBJZiB0aGVyZSBpcyBzcGFjZSBpbiB0aGUgb2Zmc2V0IHZlY3Rv
ciwgc2F2ZQotICAgICAgICAgICAgICAgICB0aGUgY3VycmVudCBzdWJqZWN0IHBvc2l0aW9uIGlu
IHRoZSB3b3JraW5nIHNsb3QgYXQgdGhlIHRvcCBvZiB0aGUgdmVjdG9yLiBXZQotICAgICAgICAg
ICAgICAgICBtdXN0bid0IGNoYW5nZSB0aGUgY3VycmVudCB2YWx1ZXMgb2YgdGhlIGRhdGEgc2xv
dCwgYmVjYXVzZSB0aGV5IG1heSBiZSBzZXQKLSAgICAgICAgICAgICAgICAgZnJvbSBhIHByZXZp
b3VzIGl0ZXJhdGlvbiBvZiB0aGlzIGdyb3VwLCBhbmQgYmUgcmVmZXJyZWQgdG8gYnkgYSByZWZl
cmVuY2UKLSAgICAgICAgICAgICAgICAgaW5zaWRlIHRoZSBncm91cC4KLSAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgIElmIHRoZSBicmFja2V0IGZhaWxzIHRvIG1hdGNoLCB3ZSBu
ZWVkIHRvIHJlc3RvcmUgdGhpcyB2YWx1ZSBhbmQgYWxzbyB0aGUKLSAgICAgICAgICAgICAgICAg
dmFsdWVzIG9mIHRoZSBmaW5hbCBvZmZzZXRzLCBpbiBjYXNlIHRoZXkgd2VyZSBzZXQgYnkgYSBw
cmV2aW91cyBpdGVyYXRpb24gb2YKLSAgICAgICAgICAgICAgICAgdGhlIHNhbWUgYnJhY2tldC4K
LSAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgIElmIHRoZXJlIGlzbid0IGVub3Vn
aCBzcGFjZSBpbiB0aGUgb2Zmc2V0IHZlY3RvciwgdHJlYXQgdGhpcyBhcyBpZiBpdCB3ZXJlIGEK
LSAgICAgICAgICAgICAgICAgbm9uLWNhcHR1cmluZyBicmFja2V0LiBEb24ndCB3b3JyeSBhYm91
dCBzZXR0aW5nIHRoZSBmbGFnIGZvciB0aGUgZXJyb3IgY2FzZQotICAgICAgICAgICAgICAgICBo
ZXJlOyB0aGF0IGlzIGhhbmRsZWQgaW4gdGhlIGNvZGUgZm9yIEtFVC4gKi8KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBBU1NFUlQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5p
bnN0cnVjdGlvblB0ciA+IE9QX0JSQSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVyID0gKnN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0ciAtIE9QX0JSQTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAvKiBGb3IgZXh0ZW5kZWQgZXh0cmFjdGlvbiBicmFja2V0cyAobGFyZ2UgbnVt
YmVyKSwgd2UgaGF2ZSB0byBmaXNoIG91dCB0aGUKLSAgICAgICAgICAgICAgICAgbnVtYmVyIGZy
b20gYSBkdW1teSBvcGNvZGUgYXQgdGhlIHN0YXJ0LiAqLwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPiBFWFRS
QUNUX0JBU0lDX01BWCkKLSAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMubnVtYmVyID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5z
dHJ1Y3Rpb25QdHIgKyAyICsgTElOS19TSVpFKTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1i
ZXIgPDwgMTsKLSAgICAgICAgICAgICAgICAKLSNpZmRlZiBERUJVRwotICAgICAgICAgICAgICAg
IHByaW50Zigic3RhcnQgYnJhY2tldCAlZCBzdWJqZWN0PSIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLm51bWJlcik7Ci0gICAgICAgICAgICAgICAgcGNoYXJzKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5zdWJqZWN0UHRyLCAxNiwgdHJ1ZSwgbWQpOwotICAgICAgICAgICAgICAgIHByaW50
ZigiXG4iKTsKLSNlbmRpZgotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgPCBtZC5vZmZzZXRNYXgpIHsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc2F2ZU9mZnNldDEgPSBt
ZC5vZmZzZXRWZWN0b3Jbc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0XTsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc2F2ZU9mZnNldDIgPSBt
ZC5vZmZzZXRWZWN0b3Jbc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0ICsgMV07Ci0g
ICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnNhdmVPZmZzZXQz
ID0gbWQub2Zmc2V0VmVjdG9yW21kLm9mZnNldEVuZCAtIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLm51bWJlcl07Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBE
UFJJTlRGKCgic2F2aW5nICVkICVkICVkXG4iLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5z
YXZlT2Zmc2V0MSwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc2F2ZU9mZnNldDIsIHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLnNhdmVPZmZzZXQzKSk7Ci0gICAgICAgICAgICAgICAgICAg
IG1kLm9mZnNldFZlY3RvclttZC5vZmZzZXRFbmQgLSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5udW1iZXJdID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgLSBtZC5zdGFy
dFN1YmplY3Q7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBkbyB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0hfTkVXX0dST1VQKDEsIHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEgKyBMSU5LX1NJWkUsIHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVj
dGlvblB0ciArPSBnZXRMaW5rVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgIH0gd2hpbGUgKCpzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfQUxUKTsKLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIERQUklOVEYoKCJicmFja2V0ICVkIGZhaWxlZFxuIiwg
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVyKSk7Ci0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICBtZC5vZmZzZXRWZWN0b3Jbc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMub2Zmc2V0XSA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnNhdmVPZmZzZXQx
OwotICAgICAgICAgICAgICAgICAgICBtZC5vZmZzZXRWZWN0b3Jbc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMub2Zmc2V0ICsgMV0gPSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zYXZlT2Zm
c2V0MjsKLSAgICAgICAgICAgICAgICAgICAgbWQub2Zmc2V0VmVjdG9yW21kLm9mZnNldEVuZCAt
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51bWJlcl0gPSBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5zYXZlT2Zmc2V0MzsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIC8qIEluc3VmZmljaWVudCByb29tIGZvciBzYXZpbmcgY2FwdHVyZWQgY29u
dGVudHMgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBnb3RvIE5PTl9DQVBU
VVJJTkdfQlJBQ0tFVDsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgLyogRG8gbm90IHN0
aWNrIGFueSBjb2RlIGluIGhlcmUgd2l0aG91dCBtdWNoIHRob3VnaHQ7IGl0IGlzIGFzc3VtZWQK
LSAgICAgICAgIHRoYXQgImNvbnRpbnVlIiBpbiB0aGUgY29kZSBhYm92ZSBjb21lcyBvdXQgdG8g
aGVyZSB0byByZXBlYXQgdGhlIG1haW4KLSAgICAgICAgIGxvb3AuICovCi0gICAgICAgIAotICAg
IH0gLyogRW5kIG9mIG1haW4gbG9vcCAqLwotICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIAotI2lmbmRlZiBVU0VfQ09NUFVURURfR09UT19GT1JfTUFUQ0hfUkVDVVJTSU9OCi0g
ICAgCi1SUkVUVVJOX1NXSVRDSDoKLSAgICBzd2l0Y2ggKHN0YWNrLmN1cnJlbnRGcmFtZS0+cmV0
dXJuTG9jYXRpb24pIHsKLSAgICAgICAgY2FzZSAwOiBnb3RvIFJFVFVSTjsKLSAgICAgICAgY2Fz
ZSAxOiBnb3RvIFJSRVRVUk5fMTsKLSAgICAgICAgY2FzZSAyOiBnb3RvIFJSRVRVUk5fMjsKLSAg
ICAgICAgY2FzZSA2OiBnb3RvIFJSRVRVUk5fNjsKLSAgICAgICAgY2FzZSA3OiBnb3RvIFJSRVRV
Uk5fNzsKLSAgICAgICAgY2FzZSAxNDogZ290byBSUkVUVVJOXzE0OwotICAgICAgICBjYXNlIDE1
OiBnb3RvIFJSRVRVUk5fMTU7Ci0gICAgICAgIGNhc2UgMTY6IGdvdG8gUlJFVFVSTl8xNjsKLSAg
ICAgICAgY2FzZSAxNzogZ290byBSUkVUVVJOXzE3OwotICAgICAgICBjYXNlIDE4OiBnb3RvIFJS
RVRVUk5fMTg7Ci0gICAgICAgIGNhc2UgMTk6IGdvdG8gUlJFVFVSTl8xOTsKLSAgICAgICAgY2Fz
ZSAyMDogZ290byBSUkVUVVJOXzIwOwotICAgICAgICBjYXNlIDIxOiBnb3RvIFJSRVRVUk5fMjE7
Ci0gICAgICAgIGNhc2UgMjI6IGdvdG8gUlJFVFVSTl8yMjsKLSAgICAgICAgY2FzZSAyNDogZ290
byBSUkVUVVJOXzI0OwotICAgICAgICBjYXNlIDI2OiBnb3RvIFJSRVRVUk5fMjY7Ci0gICAgICAg
IGNhc2UgMjc6IGdvdG8gUlJFVFVSTl8yNzsKLSAgICAgICAgY2FzZSAyODogZ290byBSUkVUVVJO
XzI4OwotICAgICAgICBjYXNlIDI5OiBnb3RvIFJSRVRVUk5fMjk7Ci0gICAgICAgIGNhc2UgMzA6
IGdvdG8gUlJFVFVSTl8zMDsKLSAgICAgICAgY2FzZSAzMTogZ290byBSUkVUVVJOXzMxOwotICAg
ICAgICBjYXNlIDM4OiBnb3RvIFJSRVRVUk5fMzg7Ci0gICAgICAgIGNhc2UgNDA6IGdvdG8gUlJF
VFVSTl80MDsKLSAgICAgICAgY2FzZSA0MjogZ290byBSUkVUVVJOXzQyOwotICAgICAgICBjYXNl
IDQ0OiBnb3RvIFJSRVRVUk5fNDQ7Ci0gICAgICAgIGNhc2UgNDg6IGdvdG8gUlJFVFVSTl80ODsK
LSAgICAgICAgY2FzZSA1MjogZ290byBSUkVUVVJOXzUyOwotICAgIH0KLSAgICAKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySW50
ZXJuYWwsIHN0YWNrKTsKLSAgICAKLSNlbmRpZgotICAgIAotUkVUVVJOOgotICAgIHJldHVybiBp
c01hdGNoOwotfQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0qICAgICAgICAgRXhlY3V0ZSBhIFJlZ3VsYXIgRXhwcmVzc2lvbiAgICAgICAg
ICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
LQotLyogVGhpcyBmdW5jdGlvbiBhcHBsaWVzIGEgY29tcGlsZWQgcmUgdG8gYSBzdWJqZWN0IHN0
cmluZyBhbmQgcGlja3Mgb3V0Ci1wb3J0aW9ucyBvZiB0aGUgc3RyaW5nIGlmIGl0IG1hdGNoZXMu
IFR3byBlbGVtZW50cyBpbiB0aGUgdmVjdG9yIGFyZSBzZXQgZm9yCi1lYWNoIHN1YnN0cmluZzog
dGhlIG9mZnNldHMgdG8gdGhlIHN0YXJ0IGFuZCBlbmQgb2YgdGhlIHN1YnN0cmluZy4KLQotQXJn
dW1lbnRzOgotICByZSAgICAgICAgICAgICAgcG9pbnRzIHRvIHRoZSBjb21waWxlZCBleHByZXNz
aW9uCi0gIGV4dHJhX2RhdGEgICAgICBwb2ludHMgdG8gZXh0cmEgZGF0YSBvciBpcyBOVUxMCi0g
IHN1YmplY3QgICAgICAgICBwb2ludHMgdG8gdGhlIHN1YmplY3Qgc3RyaW5nCi0gIGxlbmd0aCAg
ICAgICAgICBsZW5ndGggb2Ygc3ViamVjdCBzdHJpbmcgKG1heSBjb250YWluIGJpbmFyeSB6ZXJv
cykKLSAgc3RhcnRfb2Zmc2V0ICAgIHdoZXJlIHRvIHN0YXJ0IGluIHRoZSBzdWJqZWN0IHN0cmlu
ZwotICBvcHRpb25zICAgICAgICAgb3B0aW9uIGJpdHMKLSAgb2Zmc2V0cyAgICAgICAgIHBvaW50
cyB0byBhIHZlY3RvciBvZiBpbnRzIHRvIGJlIGZpbGxlZCBpbiB3aXRoIG9mZnNldHMKLSAgb2Zm
c2V0Q291bnQgICAgIHRoZSBudW1iZXIgb2YgZWxlbWVudHMgaW4gdGhlIHZlY3RvcgotCi1SZXR1
cm5zOiAgICAgICAgICA+IDAgPT4gc3VjY2VzczsgdmFsdWUgaXMgdGhlIG51bWJlciBvZiBlbGVt
ZW50cyBmaWxsZWQgaW4KLSAgICAgICAgICAgICAgICAgID0gMCA9PiBzdWNjZXNzLCBidXQgb2Zm
c2V0cyBpcyBub3QgYmlnIGVub3VnaAotICAgICAgICAgICAgICAgICAgIC0xID0+IGZhaWxlZCB0
byBtYXRjaAotICAgICAgICAgICAgICAgICA8IC0xID0+IHNvbWUga2luZCBvZiB1bmV4cGVjdGVk
IHByb2JsZW0KLSovCi0KLXN0YXRpYyB2b2lkIHRyeUZpcnN0Qnl0ZU9wdGltaXphdGlvbihjb25z
dCBVQ2hhciomIHN1YmplY3RQdHIsIGNvbnN0IFVDaGFyKiBlbmRTdWJqZWN0LCBpbnQgZmlyc3RC
eXRlLCBib29sIGZpcnN0Qnl0ZUlzQ2FzZWxlc3MsIGJvb2wgdXNlTXVsdGlMaW5lRmlyc3RDaGFy
T3B0aW1pemF0aW9uLCBjb25zdCBVQ2hhciogb3JpZ2luYWxTdWJqZWN0U3RhcnQpCi17Ci0gICAg
Ly8gSWYgZmlyc3RCeXRlIGlzIHNldCwgdHJ5IHNjYW5uaW5nIHRvIHRoZSBmaXJzdCBpbnN0YW5j
ZSBvZiB0aGF0IGJ5dGUKLSAgICAvLyBubyBuZWVkIHRvIHRyeSBhbmQgbWF0Y2ggYWdhaW5zdCBh
bnkgZWFybGllciBwYXJ0IG9mIHRoZSBzdWJqZWN0IHN0cmluZy4KLSAgICBpZiAoZmlyc3RCeXRl
ID49IDApIHsKLSAgICAgICAgVUNoYXIgZmlyc3RDaGFyID0gZmlyc3RCeXRlOwotICAgICAgICBp
ZiAoZmlyc3RCeXRlSXNDYXNlbGVzcykKLSAgICAgICAgICAgIHdoaWxlIChzdWJqZWN0UHRyIDwg
ZW5kU3ViamVjdCkgewotICAgICAgICAgICAgICAgIGludCBjID0gKnN1YmplY3RQdHI7Ci0gICAg
ICAgICAgICAgICAgaWYgKGMgPiAxMjcpCi0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgIGlmICh0b0xvd2VyQ2FzZShjKSA9PSBmaXJzdENoYXIpCi0gICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIHN1YmplY3RQdHIrKzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICB3aGlsZSAoc3ViamVjdFB0ciA8IGVu
ZFN1YmplY3QgJiYgKnN1YmplY3RQdHIgIT0gZmlyc3RDaGFyKQotICAgICAgICAgICAgICAgIHN1
YmplY3RQdHIrKzsKLSAgICAgICAgfQotICAgIH0gZWxzZSBpZiAodXNlTXVsdGlMaW5lRmlyc3RD
aGFyT3B0aW1pemF0aW9uKSB7Ci0gICAgICAgIC8qIE9yIHRvIGp1c3QgYWZ0ZXIgXG4gZm9yIGEg
bXVsdGlsaW5lIG1hdGNoIGlmIHBvc3NpYmxlICovCi0gICAgICAgIC8vIEknbSBub3Qgc3VyZSB3
aHkgdGhpcyAhPSBvcmlnaW5hbFN1YmplY3RTdGFydCBjaGVjayBpcyBuZWNlc3NhcnkgLS0gZWNz
IDExLzE4LzA3Ci0gICAgICAgIGlmIChzdWJqZWN0UHRyID4gb3JpZ2luYWxTdWJqZWN0U3RhcnQp
IHsKLSAgICAgICAgICAgIHdoaWxlIChzdWJqZWN0UHRyIDwgZW5kU3ViamVjdCAmJiAhaXNOZXds
aW5lKHN1YmplY3RQdHJbLTFdKSkKLSAgICAgICAgICAgICAgICBzdWJqZWN0UHRyKys7Ci0gICAg
ICAgIH0KLSAgICB9Ci19Ci0KLXN0YXRpYyBib29sIHRyeVJlcXVpcmVkQnl0ZU9wdGltaXphdGlv
bihjb25zdCBVQ2hhciomIHN1YmplY3RQdHIsIGNvbnN0IFVDaGFyKiBlbmRTdWJqZWN0LCBpbnQg
cmVxQnl0ZSwgaW50IHJlcUJ5dGUyLCBib29sIHJlcUJ5dGVJc0Nhc2VsZXNzLCBib29sIGhhc0Zp
cnN0Qnl0ZSwgY29uc3QgVUNoYXIqJiByZXFCeXRlUHRyKQotewotICAgIC8qIElmIHJlcUJ5dGUg
aXMgc2V0LCB3ZSBrbm93IHRoYXQgdGhhdCBjaGFyYWN0ZXIgbXVzdCBhcHBlYXIgaW4gdGhlIHN1
YmplY3QKLSAgICAgZm9yIHRoZSBtYXRjaCB0byBzdWNjZWVkLiBJZiB0aGUgZmlyc3QgY2hhcmFj
dGVyIGlzIHNldCwgcmVxQnl0ZSBtdXN0IGJlCi0gICAgIGxhdGVyIGluIHRoZSBzdWJqZWN0OyBv
dGhlcndpc2UgdGhlIHRlc3Qgc3RhcnRzIGF0IHRoZSBtYXRjaCBwb2ludC4gVGhpcwotICAgICBv
cHRpbWl6YXRpb24gY2FuIHNhdmUgYSBodWdlIGFtb3VudCBvZiBiYWNrdHJhY2tpbmcgaW4gcGF0
dGVybnMgd2l0aCBuZXN0ZWQKLSAgICAgdW5saW1pdGVkIHJlcGVhdHMgdGhhdCBhcmVuJ3QgZ29p
bmcgdG8gbWF0Y2guIFdyaXRpbmcgc2VwYXJhdGUgY29kZSBmb3IKLSAgICAgY2FzZWQvY2FzZWxl
c3MgdmVyc2lvbnMgbWFrZXMgaXQgZ28gZmFzdGVyLCBhcyBkb2VzIHVzaW5nIGFuIGF1dG9pbmNy
ZW1lbnQKLSAgICAgYW5kIGJhY2tpbmcgb2ZmIG9uIGEgbWF0Y2guCi0gICAgIAotICAgICBIT1dF
VkVSOiB3aGVuIHRoZSBzdWJqZWN0IHN0cmluZyBpcyB2ZXJ5LCB2ZXJ5IGxvbmcsIHNlYXJjaGlu
ZyB0byBpdHMgZW5kIGNhbgotICAgICB0YWtlIGEgbG9uZyB0aW1lLCBhbmQgZ2l2ZSBiYWQgcGVy
Zm9ybWFuY2Ugb24gcXVpdGUgb3JkaW5hcnkgcGF0dGVybnMuIFRoaXMKLSAgICAgc2hvd2VkIHVw
IHdoZW4gc29tZWJvZHkgd2FzIG1hdGNoaW5nIC9eQy8gb24gYSAzMi1tZWdhYnl0ZSBzdHJpbmcu
Li4gc28gd2UKLSAgICAgZG9uJ3QgZG8gdGhpcyB3aGVuIHRoZSBzdHJpbmcgaXMgc3VmZmljaWVu
dGx5IGxvbmcuCi0gICAgKi8KLQotICAgIGlmIChyZXFCeXRlID49IDAgJiYgZW5kU3ViamVjdCAt
IHN1YmplY3RQdHIgPCBSRVFfQllURV9NQVgpIHsKLSAgICAgICAgY29uc3QgVUNoYXIqIHAgPSBz
dWJqZWN0UHRyICsgKGhhc0ZpcnN0Qnl0ZSA/IDEgOiAwKTsKLQotICAgICAgICAvKiBXZSBkb24n
dCBuZWVkIHRvIHJlcGVhdCB0aGUgc2VhcmNoIGlmIHdlIGhhdmVuJ3QgeWV0IHJlYWNoZWQgdGhl
Ci0gICAgICAgICBwbGFjZSB3ZSBmb3VuZCBpdCBhdCBsYXN0IHRpbWUuICovCi0KLSAgICAgICAg
aWYgKHAgPiByZXFCeXRlUHRyKSB7Ci0gICAgICAgICAgICBpZiAocmVxQnl0ZUlzQ2FzZWxlc3Mp
IHsKLSAgICAgICAgICAgICAgICB3aGlsZSAocCA8IGVuZFN1YmplY3QpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaW50IHBwID0gKnArKzsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHBwID09IHJl
cUJ5dGUgfHwgcHAgPT0gcmVxQnl0ZTIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHAtLTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICB3
aGlsZSAocCA8IGVuZFN1YmplY3QpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKCpwKysgPT0g
cmVxQnl0ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgcC0tOwotICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIElmIHdlIGNhbid0IGZpbmQgdGhlIHJl
cXVpcmVkIGNoYXJhY3RlciwgYnJlYWsgdGhlIG1hdGNoaW5nIGxvb3AgKi8KLQotICAgICAgICAg
ICAgaWYgKHAgPj0gZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgICAgICAgICAgLyogSWYgd2UgaGF2ZSBmb3VuZCB0aGUgcmVxdWlyZWQgY2hhcmFjdGVyLCBz
YXZlIHRoZSBwb2ludCB3aGVyZSB3ZQotICAgICAgICAgICAgIGZvdW5kIGl0LCBzbyB0aGF0IHdl
IGRvbid0IHNlYXJjaCBhZ2FpbiBuZXh0IHRpbWUgcm91bmQgdGhlIGxvb3AgaWYKLSAgICAgICAg
ICAgICB0aGUgc3RhcnQgaGFzbid0IHBhc3NlZCB0aGlzIGNoYXJhY3RlciB5ZXQuICovCi0KLSAg
ICAgICAgICAgIHJlcUJ5dGVQdHIgPSBwOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotaW50IGpzUmVnRXhwRXhlY3V0ZShjb25zdCBKU1JlZ0V4cCogcmUsCi0gICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBzdWJqZWN0LCBpbnQgbGVuZ3RoLCBpbnQgc3Rh
cnRfb2Zmc2V0LCBpbnQqIG9mZnNldHMsCi0gICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXRD
b3VudCkKLXsKLSAgICBBU1NFUlQocmUpOwotICAgIEFTU0VSVChzdWJqZWN0IHx8ICFsZW5ndGgp
OwotICAgIEFTU0VSVChvZmZzZXRDb3VudCA+PSAwKTsKLSAgICBBU1NFUlQob2Zmc2V0cyB8fCBv
ZmZzZXRDb3VudCA9PSAwKTsKLQotICAgIEhpc3RvZ3JhbVRpbWVMb2dnZXIgbG9nZ2VyKHJlKTsK
LQotICAgIE1hdGNoRGF0YSBtYXRjaEJsb2NrOwotICAgIG1hdGNoQmxvY2suc3RhcnRTdWJqZWN0
ID0gc3ViamVjdDsKLSAgICBtYXRjaEJsb2NrLmVuZFN1YmplY3QgPSBtYXRjaEJsb2NrLnN0YXJ0
U3ViamVjdCArIGxlbmd0aDsKLSAgICBjb25zdCBVQ2hhciogZW5kU3ViamVjdCA9IG1hdGNoQmxv
Y2suZW5kU3ViamVjdDsKLSAgICAKLSAgICBtYXRjaEJsb2NrLm11bHRpbGluZSA9IChyZS0+b3B0
aW9ucyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVMaW5lc09wdGlvbik7Ci0gICAgbWF0Y2hCbG9jay5p
Z25vcmVDYXNlID0gKHJlLT5vcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbik7Ci0gICAgCi0gICAg
LyogSWYgdGhlIGV4cHJlc3Npb24gaGFzIGdvdCBtb3JlIGJhY2sgcmVmZXJlbmNlcyB0aGFuIHRo
ZSBvZmZzZXRzIHN1cHBsaWVkIGNhbgotICAgICBob2xkLCB3ZSBnZXQgYSB0ZW1wb3JhcnkgY2h1
bmsgb2Ygd29ya2luZyBzdG9yZSB0byB1c2UgZHVyaW5nIHRoZSBtYXRjaGluZy4KLSAgICAgT3Ro
ZXJ3aXNlLCB3ZSBjYW4gdXNlIHRoZSB2ZWN0b3Igc3VwcGxpZWQsIHJvdW5kaW5nIGRvd24gaXRz
IHNpemUgdG8gYSBtdWx0aXBsZQotICAgICBvZiAzLiAqLwotICAgIAotICAgIGludCBvY291bnQg
PSBvZmZzZXRDb3VudCAtIChvZmZzZXRDb3VudCAlIDMpOwotICAgIAotICAgIC8vIEZJWE1FOiBU
aGlzIGlzIGxhbWUgdGhhdCB3ZSBoYXZlIHRvIHNlY29uZC1ndWVzcyBvdXIgY2FsbGVyIGhlcmUu
Ci0gICAgLy8gVGhlIEFQSSBzaG91bGQgY2hhbmdlIHRvIGVpdGhlciBmYWlsLWhhcmQgd2hlbiB3
ZSBkb24ndCBoYXZlIGVub3VnaCBvZmZzZXQgc3BhY2UKLSAgICAvLyBvciB0aGF0IHdlIHNob3Vs
ZG4ndCBhc2sgb3VyIGNhbGxlcnMgdG8gcHJlLWFsbG9jYXRlIGluIHRoZSBmaXJzdCBwbGFjZS4K
LSAgICBib29sIHVzaW5nVGVtcG9yYXJ5T2Zmc2V0cyA9IGZhbHNlOwotICAgIGlmIChyZS0+dG9w
QmFja3JlZiA+IDAgJiYgcmUtPnRvcEJhY2tyZWYgPj0gb2NvdW50LzMpIHsKLSAgICAgICAgb2Nv
dW50ID0gcmUtPnRvcEJhY2tyZWYgKiAzICsgMzsKLSAgICAgICAgbWF0Y2hCbG9jay5vZmZzZXRW
ZWN0b3IgPSBuZXcgaW50W29jb3VudF07Ci0gICAgICAgIGlmICghbWF0Y2hCbG9jay5vZmZzZXRW
ZWN0b3IpCi0gICAgICAgICAgICByZXR1cm4gSlNSZWdFeHBFcnJvck5vTWVtb3J5OwotICAgICAg
ICB1c2luZ1RlbXBvcmFyeU9mZnNldHMgPSB0cnVlOwotICAgIH0gZWxzZQotICAgICAgICBtYXRj
aEJsb2NrLm9mZnNldFZlY3RvciA9IG9mZnNldHM7Ci0gICAgCi0gICAgbWF0Y2hCbG9jay5vZmZz
ZXRFbmQgPSBvY291bnQ7Ci0gICAgbWF0Y2hCbG9jay5vZmZzZXRNYXggPSAoMipvY291bnQpLzM7
Ci0gICAgbWF0Y2hCbG9jay5vZmZzZXRPdmVyZmxvdyA9IGZhbHNlOwotICAgIAotICAgIC8qIENv
bXB1dGUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG9mZnNldHMgdGhhdCB3ZSBuZWVkIHRvIHJlc2V0
IGVhY2ggdGltZS4gRG9pbmcKLSAgICAgdGhpcyBtYWtlcyBhIGh1Z2UgZGlmZmVyZW5jZSB0byBl
eGVjdXRpb24gdGltZSB3aGVuIHRoZXJlIGFyZW4ndCBtYW55IGJyYWNrZXRzCi0gICAgIGluIHRo
ZSBwYXR0ZXJuLiAqLwotICAgIAotICAgIGludCByZXNldENvdW50ID0gMiArIHJlLT50b3BCcmFj
a2V0ICogMjsKLSAgICBpZiAocmVzZXRDb3VudCA+IG9mZnNldENvdW50KQotICAgICAgICByZXNl
dENvdW50ID0gb2NvdW50OwotICAgIAotICAgIC8qIFJlc2V0IHRoZSB3b3JraW5nIHZhcmlhYmxl
IGFzc29jaWF0ZWQgd2l0aCBlYWNoIGV4dHJhY3Rpb24uIFRoZXNlIHNob3VsZAotICAgICBuZXZl
ciBiZSB1c2VkIHVubGVzcyBwcmV2aW91c2x5IHNldCwgYnV0IHRoZXkgZ2V0IHNhdmVkIGFuZCBy
ZXN0b3JlZCwgYW5kIHNvIHdlCi0gICAgIGluaXRpYWxpemUgdGhlbSB0byBhdm9pZCByZWFkaW5n
IHVuaW5pdGlhbGl6ZWQgbG9jYXRpb25zLiAqLwotICAgIAotICAgIGlmIChtYXRjaEJsb2NrLm9m
ZnNldFZlY3RvcikgewotICAgICAgICBpbnQqIGlwdHIgPSBtYXRjaEJsb2NrLm9mZnNldFZlY3Rv
ciArIG9jb3VudDsKLSAgICAgICAgaW50KiBpZW5kID0gaXB0ciAtIHJlc2V0Q291bnQvMiArIDE7
Ci0gICAgICAgIHdoaWxlICgtLWlwdHIgPj0gaWVuZCkKLSAgICAgICAgICAgICppcHRyID0gLTE7
Ci0gICAgfQotICAgIAotICAgIC8qIFNldCB1cCB0aGUgZmlyc3QgY2hhcmFjdGVyIHRvIG1hdGNo
LCBpZiBhdmFpbGFibGUuIFRoZSBmaXJzdEJ5dGUgdmFsdWUgaXMKLSAgICAgbmV2ZXIgc2V0IGZv
ciBhbiBhbmNob3JlZCByZWd1bGFyIGV4cHJlc3Npb24sIGJ1dCB0aGUgYW5jaG9yaW5nIG1heSBi
ZSBmb3JjZWQKLSAgICAgYXQgcnVuIHRpbWUsIHNvIHdlIGhhdmUgdG8gdGVzdCBmb3IgYW5jaG9y
aW5nLiBUaGUgZmlyc3QgY2hhciBtYXkgYmUgdW5zZXQgZm9yCi0gICAgIGFuIHVuYW5jaG9yZWQg
cGF0dGVybiwgb2YgY291cnNlLiBJZiB0aGVyZSdzIG5vIGZpcnN0IGNoYXIgYW5kIHRoZSBwYXR0
ZXJuIHdhcwotICAgICBzdHVkaWVkLCB0aGVyZSBtYXkgYmUgYSBiaXRtYXAgb2YgcG9zc2libGUg
Zmlyc3QgY2hhcmFjdGVycy4gKi8KLSAgICAKLSAgICBib29sIGZpcnN0Qnl0ZUlzQ2FzZWxlc3Mg
PSBmYWxzZTsKLSAgICBpbnQgZmlyc3RCeXRlID0gLTE7Ci0gICAgaWYgKHJlLT5vcHRpb25zICYg
VXNlRmlyc3RCeXRlT3B0aW1pemF0aW9uT3B0aW9uKSB7Ci0gICAgICAgIGZpcnN0Qnl0ZSA9IHJl
LT5maXJzdEJ5dGUgJiAyNTU7Ci0gICAgICAgIGlmICgoZmlyc3RCeXRlSXNDYXNlbGVzcyA9IChy
ZS0+Zmlyc3RCeXRlICYgUkVRX0lHTk9SRV9DQVNFKSkpCi0gICAgICAgICAgICBmaXJzdEJ5dGUg
PSB0b0xvd2VyQ2FzZShmaXJzdEJ5dGUpOwotICAgIH0KLSAgICAKLSAgICAvKiBGb3IgYW5jaG9y
ZWQgb3IgdW5hbmNob3JlZCBtYXRjaGVzLCB0aGVyZSBtYXkgYmUgYSAibGFzdCBrbm93biByZXF1
aXJlZAotICAgICBjaGFyYWN0ZXIiIHNldC4gKi8KLSAgICAKLSAgICBib29sIHJlcUJ5dGVJc0Nh
c2VsZXNzID0gZmFsc2U7Ci0gICAgaW50IHJlcUJ5dGUgPSAtMTsKLSAgICBpbnQgcmVxQnl0ZTIg
PSAtMTsKLSAgICBpZiAocmUtPm9wdGlvbnMgJiBVc2VSZXF1aXJlZEJ5dGVPcHRpbWl6YXRpb25P
cHRpb24pIHsKLSAgICAgICAgcmVxQnl0ZSA9IHJlLT5yZXFCeXRlICYgMjU1OyAvLyBGSVhNRTog
VGhpcyBvcHRpbWl6YXRpb24gY291bGQgYmUgbWFkZSB0byB3b3JrIGZvciBVVEYxNiBjaGFycyBh
cyB3ZWxsLi4uCi0gICAgICAgIHJlcUJ5dGVJc0Nhc2VsZXNzID0gKHJlLT5yZXFCeXRlICYgUkVR
X0lHTk9SRV9DQVNFKTsKLSAgICAgICAgcmVxQnl0ZTIgPSBmbGlwQ2FzZShyZXFCeXRlKTsKLSAg
ICB9Ci0gICAgCi0gICAgLyogTG9vcCBmb3IgaGFuZGxpbmcgdW5hbmNob3JlZCByZXBlYXRlZCBt
YXRjaGluZyBhdHRlbXB0czsgZm9yIGFuY2hvcmVkIHJlZ2V4cwotICAgICB0aGUgbG9vcCBydW5z
IGp1c3Qgb25jZS4gKi8KLSAgICAKLSAgICBjb25zdCBVQ2hhciogc3RhcnRNYXRjaCA9IHN1Ympl
Y3QgKyBzdGFydF9vZmZzZXQ7Ci0gICAgY29uc3QgVUNoYXIqIHJlcUJ5dGVQdHIgPSBzdGFydE1h
dGNoIC0gMTsKLSAgICBib29sIHVzZU11bHRpTGluZUZpcnN0Q2hhck9wdGltaXphdGlvbiA9IHJl
LT5vcHRpb25zICYgVXNlTXVsdGlMaW5lRmlyc3RCeXRlT3B0aW1pemF0aW9uT3B0aW9uOwotICAg
IAotICAgIGRvIHsKLSAgICAgICAgLyogUmVzZXQgdGhlIG1heGltdW0gbnVtYmVyIG9mIGV4dHJh
Y3Rpb25zIHdlIG1pZ2h0IHNlZS4gKi8KLSAgICAgICAgaWYgKG1hdGNoQmxvY2sub2Zmc2V0VmVj
dG9yKSB7Ci0gICAgICAgICAgICBpbnQqIGlwdHIgPSBtYXRjaEJsb2NrLm9mZnNldFZlY3RvcjsK
LSAgICAgICAgICAgIGludCogaWVuZCA9IGlwdHIgKyByZXNldENvdW50OwotICAgICAgICAgICAg
d2hpbGUgKGlwdHIgPCBpZW5kKQotICAgICAgICAgICAgICAgICppcHRyKysgPSAtMTsKLSAgICAg
ICAgfQotICAgICAgICAKLSAgICAgICAgdHJ5Rmlyc3RCeXRlT3B0aW1pemF0aW9uKHN0YXJ0TWF0
Y2gsIGVuZFN1YmplY3QsIGZpcnN0Qnl0ZSwgZmlyc3RCeXRlSXNDYXNlbGVzcywgdXNlTXVsdGlM
aW5lRmlyc3RDaGFyT3B0aW1pemF0aW9uLCBtYXRjaEJsb2NrLnN0YXJ0U3ViamVjdCArIHN0YXJ0
X29mZnNldCk7Ci0gICAgICAgIGlmICh0cnlSZXF1aXJlZEJ5dGVPcHRpbWl6YXRpb24oc3RhcnRN
YXRjaCwgZW5kU3ViamVjdCwgcmVxQnl0ZSwgcmVxQnl0ZTIsIHJlcUJ5dGVJc0Nhc2VsZXNzLCBm
aXJzdEJ5dGUgPj0gMCwgcmVxQnl0ZVB0cikpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgLyogV2hlbiBhIG1hdGNoIG9jY3Vycywgc3Vic3RyaW5ncyB3aWxs
IGJlIHNldCBmb3IgYWxsIGludGVybmFsIGV4dHJhY3Rpb25zOwotICAgICAgICAgd2UganVzdCBu
ZWVkIHRvIHNldCB1cCB0aGUgd2hvbGUgdGhpbmcgYXMgc3Vic3RyaW5nIDAgYmVmb3JlIHJldHVy
bmluZy4gSWYKLSAgICAgICAgIHRoZXJlIHdlcmUgdG9vIG1hbnkgZXh0cmFjdGlvbnMsIHNldCB0
aGUgcmV0dXJuIGNvZGUgdG8gemVyby4gSW4gdGhlIGNhc2UKLSAgICAgICAgIHdoZXJlIHdlIGhh
ZCB0byBnZXQgc29tZSBsb2NhbCBzdG9yZSB0byBob2xkIG9mZnNldHMgZm9yIGJhY2tyZWZlcmVu
Y2VzLCBjb3B5Ci0gICAgICAgICB0aG9zZSBiYWNrIHJlZmVyZW5jZXMgdGhhdCB3ZSBjYW4uIElu
IHRoaXMgY2FzZSB0aGVyZSBuZWVkIG5vdCBiZSBvdmVyZmxvdwotICAgICAgICAgaWYgY2VydGFp
biBwYXJ0cyBvZiB0aGUgcGF0dGVybiB3ZXJlIG5vdCB1c2VkLiAqLwotICAgICAgICAKLSAgICAg
ICAgLyogVGhlIGNvZGUgc3RhcnRzIGFmdGVyIHRoZSBKU1JlZ0V4cCBibG9jayBhbmQgdGhlIGNh
cHR1cmUgbmFtZSB0YWJsZS4gKi8KLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogc3RhcnRf
Y29kZSA9IChjb25zdCB1bnNpZ25lZCBjaGFyKikocmUgKyAxKTsKLSAgICAgICAgCi0gICAgICAg
IGludCByZXR1cm5Db2RlID0gbWF0Y2goc3RhcnRNYXRjaCwgc3RhcnRfY29kZSwgMiwgbWF0Y2hC
bG9jayk7Ci0gICAgICAgIAotICAgICAgICAvKiBXaGVuIHRoZSByZXN1bHQgaXMgbm8gbWF0Y2gs
IGFkdmFuY2UgdGhlIHBvaW50ZXIgdG8gdGhlIG5leHQgY2hhcmFjdGVyCi0gICAgICAgICBhbmQg
Y29udGludWUuICovCi0gICAgICAgIGlmIChyZXR1cm5Db2RlID09IDApIHsKLSAgICAgICAgICAg
IHN0YXJ0TWF0Y2grKzsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0KLSAgICAg
ICAgaWYgKHJldHVybkNvZGUgIT0gMSkgewotICAgICAgICAgICAgQVNTRVJUKHJldHVybkNvZGUg
PT0gSlNSZWdFeHBFcnJvckhpdExpbWl0IHx8IHJldHVybkNvZGUgPT0gSlNSZWdFeHBFcnJvck5v
TWVtb3J5KTsKLSAgICAgICAgICAgIERQUklOVEYoKCI+Pj4+IGVycm9yOiByZXR1cm5pbmcgJWRc
biIsIHJldHVybkNvZGUpKTsKLSAgICAgICAgICAgIHJldHVybiByZXR1cm5Db2RlOwotICAgICAg
ICB9Ci0gICAgICAgIAotICAgICAgICAvKiBXZSBoYXZlIGEgbWF0Y2ghIENvcHkgdGhlIG9mZnNl
dCBpbmZvcm1hdGlvbiBmcm9tIHRlbXBvcmFyeSBzdG9yZSBpZgotICAgICAgICAgbmVjZXNzYXJ5
ICovCi0gICAgICAgIAotICAgICAgICBpZiAodXNpbmdUZW1wb3JhcnlPZmZzZXRzKSB7Ci0gICAg
ICAgICAgICBpZiAob2Zmc2V0Q291bnQgPj0gNCkgewotICAgICAgICAgICAgICAgIG1lbWNweShv
ZmZzZXRzICsgMiwgbWF0Y2hCbG9jay5vZmZzZXRWZWN0b3IgKyAyLCAob2Zmc2V0Q291bnQgLSAy
KSAqIHNpemVvZihpbnQpKTsKLSAgICAgICAgICAgICAgICBEUFJJTlRGKCgiQ29waWVkIG9mZnNl
dHMgZnJvbSB0ZW1wb3JhcnkgbWVtb3J5XG4iKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBpZiAobWF0Y2hCbG9jay5lbmRPZmZzZXRUb3AgPiBvZmZzZXRDb3VudCkKLSAgICAgICAgICAg
ICAgICBtYXRjaEJsb2NrLm9mZnNldE92ZXJmbG93ID0gdHJ1ZTsKLSAgICAgICAgICAgIAotICAg
ICAgICAgICAgRFBSSU5URigoIkZyZWVpbmcgdGVtcG9yYXJ5IG1lbW9yeVxuIikpOwotICAgICAg
ICAgICAgZGVsZXRlIFtdIG1hdGNoQmxvY2sub2Zmc2V0VmVjdG9yOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICByZXR1cm5Db2RlID0gbWF0Y2hCbG9jay5vZmZzZXRPdmVyZmxvdyA/IDAg
OiBtYXRjaEJsb2NrLmVuZE9mZnNldFRvcCAvIDI7Ci0gICAgICAgIAotICAgICAgICBpZiAob2Zm
c2V0Q291bnQgPCAyKQotICAgICAgICAgICAgcmV0dXJuQ29kZSA9IDA7Ci0gICAgICAgIGVsc2Ug
ewotICAgICAgICAgICAgb2Zmc2V0c1swXSA9IHN0YXJ0TWF0Y2ggLSBtYXRjaEJsb2NrLnN0YXJ0
U3ViamVjdDsKLSAgICAgICAgICAgIG9mZnNldHNbMV0gPSBtYXRjaEJsb2NrLmVuZE1hdGNoUHRy
IC0gbWF0Y2hCbG9jay5zdGFydFN1YmplY3Q7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAg
IERQUklOVEYoKCI+Pj4+IHJldHVybmluZyAlZFxuIiwgcmV0dXJuQ29kZSkpOwotICAgICAgICBy
ZXR1cm4gcmV0dXJuQ29kZTsKLSAgICB9IHdoaWxlICghKHJlLT5vcHRpb25zICYgSXNBbmNob3Jl
ZE9wdGlvbikgJiYgc3RhcnRNYXRjaCA8PSBlbmRTdWJqZWN0KTsKLSAgICAKLSAgICBpZiAodXNp
bmdUZW1wb3JhcnlPZmZzZXRzKSB7Ci0gICAgICAgIERQUklOVEYoKCJGcmVlaW5nIHRlbXBvcmFy
eSBtZW1vcnlcbiIpKTsKLSAgICAgICAgZGVsZXRlIFtdIG1hdGNoQmxvY2sub2Zmc2V0VmVjdG9y
OwotICAgIH0KLSAgICAKLSAgICBEUFJJTlRGKCgiPj4+PiByZXR1cm5pbmcgUENSRV9FUlJPUl9O
T01BVENIXG4iKSk7Ci0gICAgcmV0dXJuIEpTUmVnRXhwRXJyb3JOb01hdGNoOwotfQotCi0jaWYg
UkVHRVhQX0hJU1RPR1JBTQotCi1jbGFzcyBDb21wYXJlSGlzdG9ncmFtRW50cmllcyB7Ci1wdWJs
aWM6Ci0gICAgYm9vbCBvcGVyYXRvcigpKGNvbnN0IHBhaXI8VVN0cmluZywgZG91YmxlPiYgYSwg
Y29uc3QgcGFpcjxVU3RyaW5nLCBkb3VibGU+JiBiKQotICAgIHsKLSAgICAgICAgaWYgKGEuc2Vj
b25kID09IGIuc2Vjb25kKQotICAgICAgICAgICAgcmV0dXJuIGEuZmlyc3QgPCBiLmZpcnN0Owot
ICAgICAgICByZXR1cm4gYS5zZWNvbmQgPCBiLnNlY29uZDsKLSAgICB9Ci19OwotCi1IaXN0b2dy
YW06On5IaXN0b2dyYW0oKQotewotICAgIFZlY3RvcjxwYWlyPFVTdHJpbmcsIGRvdWJsZT4gPiB2
YWx1ZXM7Ci0gICAgTWFwOjppdGVyYXRvciBlbmQgPSB0aW1lcy5lbmQoKTsKLSAgICBmb3IgKE1h
cDo6aXRlcmF0b3IgaXQgPSB0aW1lcy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCi0gICAgICAg
IHZhbHVlcy5hcHBlbmQoKml0KTsKLSAgICBzb3J0KHZhbHVlcy5iZWdpbigpLCB2YWx1ZXMuZW5k
KCksIENvbXBhcmVIaXN0b2dyYW1FbnRyaWVzKCkpOwotICAgIHNpemVfdCBzaXplID0gdmFsdWVz
LnNpemUoKTsKLSAgICBwcmludGYoIlJlZ3VsYXIgRXhwcmVzc2lvbnMsIHNvcnRlZCBieSB0aW1l
IHNwZW50IGV2YWx1YXRpbmcgdGhlbTpcbiIpOwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
c2l6ZTsgKytpKQotICAgICAgICBwcmludGYoIiAgICAlZiAtICVzXG4iLCB2YWx1ZXNbc2l6ZSAt
IGkgLSAxXS5zZWNvbmQsIHZhbHVlc1tzaXplIC0gaSAtIDFdLmZpcnN0LnV0ZjgoKS5jX3N0cigp
KTsKLX0KLQotdm9pZCBIaXN0b2dyYW06OmFkZChjb25zdCBKU1JlZ0V4cCogcmUsIGRvdWJsZSBl
bGFwc2VkVGltZSkKLXsKLSAgICBVU3RyaW5nIHN0cmluZyhyZWludGVycHJldF9jYXN0PGNvbnN0
IFVDaGFyKj4ocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4ocmUpICsgcmUtPnN0cmluZ09m
ZnNldCksIHJlLT5zdHJpbmdMZW5ndGgpOwotICAgIGlmIChyZS0+b3B0aW9ucyAmIElnbm9yZUNh
c2VPcHRpb24gJiYgcmUtPm9wdGlvbnMgJiBNYXRjaEFjcm9zc011bHRpcGxlTGluZXNPcHRpb24p
Ci0gICAgICAgIHN0cmluZyArPSAiIChtdWx0aS1saW5lLCBpZ25vcmUgY2FzZSkiOwotICAgIGVs
c2UgewotICAgICAgICBpZiAocmUtPm9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0aW9uKQotICAgICAg
ICAgICAgc3RyaW5nICs9ICIgKGlnbm9yZSBjYXNlKSI7Ci0gICAgICAgIGlmIChyZS0+b3B0aW9u
cyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVMaW5lc09wdGlvbikKLSAgICAgICAgICAgIHN0cmluZyAr
PSAiIChtdWx0aS1saW5lKSI7Ci0gICAgfQotICAgIHBhaXI8TWFwOjppdGVyYXRvciwgYm9vbD4g
cmVzdWx0ID0gdGltZXMuYWRkKHN0cmluZy5pbXBsKCksIGVsYXBzZWRUaW1lKTsKLSAgICBpZiAo
IXJlc3VsdC5zZWNvbmQpCi0gICAgICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kICs9IGVsYXBzZWRU
aW1lOwotfQotCi1IaXN0b2dyYW1UaW1lTG9nZ2VyOjpIaXN0b2dyYW1UaW1lTG9nZ2VyKGNvbnN0
IEpTUmVnRXhwKiByZSkKLSAgICA6IG1fcmUocmUpCi0gICAgLCBtX3N0YXJ0VGltZShjdXJyZW50
VGltZU1TKCkpCi17Ci19Ci0KLUhpc3RvZ3JhbVRpbWVMb2dnZXI6On5IaXN0b2dyYW1UaW1lTG9n
Z2VyKCkKLXsKLSAgICBzdGF0aWMgSGlzdG9ncmFtIGhpc3RvZ3JhbTsKLSAgICBoaXN0b2dyYW0u
YWRkKG1fcmUsIGN1cnJlbnRUaW1lTVMoKSAtIG1fc3RhcnRUaW1lKTsKLX0KLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMTZiYjUuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCisrKyAvZGV2L251bGwKQEAgLTEsNDU1ICswLDAgQEAK
LS8qIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJhcnku
IFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1hbnkg
b2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi1yZW1vdmVkLiBUaGlzIGxpYnJhcnkg
bm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmZWF0dXJlcwotcmVxdWly
ZWQgYnkgdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbiwgYW5kIGhhcyBvbmx5
IHRoZSBmdW5jdGlvbnMKLW5lZWRlZCBieSBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlIHJlc3Qgb2Yg
V2ViS2l0LgotCi0gICAgICAgICAgICAgICAgIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQaGlsaXAg
SGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBD
YW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDgs
IDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
LAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJp
ZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1J
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0vKiBUaGlz
IGhlYWRlciBjb250YWlucyBkZWZpbml0aW9ucyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUg
ZGlmZmVyZW50Ci1tb2R1bGVzLCBidXQgd2hpY2ggYXJlIG5vdCByZWxldmFudCB0byB0aGUgZXhw
b3J0ZWQgQVBJLiBUaGlzIGluY2x1ZGVzIHNvbWUKLWZ1bmN0aW9ucyB3aG9zZSBuYW1lcyBhbGwg
YmVnaW4gd2l0aCAiX3BjcmVfIi4gKi8KLQotI2lmbmRlZiBQQ1JFX0lOVEVSTkFMX0gKLSNkZWZp
bmUgUENSRV9JTlRFUk5BTF9ICi0KLS8qIEJpdCBkZWZpbml0aW9ucyBmb3IgZW50cmllcyBpbiB0
aGUgcGNyZV9jdHlwZXMgdGFibGUuICovCi0KLSNkZWZpbmUgY3R5cGVfc3BhY2UgICAweDAxCi0j
ZGVmaW5lIGN0eXBlX3hkaWdpdCAgMHgwOAotI2RlZmluZSBjdHlwZV93b3JkICAgIDB4MTAgICAv
KiBhbHBoYW1lcmljIG9yICdfJyAqLwotCi0vKiBPZmZzZXRzIGZvciB0aGUgYml0bWFwIHRhYmxl
cyBpbiBwY3JlX2NiaXRzLiBFYWNoIHRhYmxlIGNvbnRhaW5zIGEgc2V0Ci1vZiBiaXRzIGZvciBh
IGNsYXNzIG1hcC4gU29tZSBjbGFzc2VzIGFyZSBidWlsdCBieSBjb21iaW5pbmcgdGhlc2UgdGFi
bGVzLiAqLwotCi0jZGVmaW5lIGNiaXRfc3BhY2UgICAgIDAgICAgICAvKiBccyAqLwotI2RlZmlu
ZSBjYml0X2RpZ2l0ICAgIDMyICAgICAgLyogXGQgKi8KLSNkZWZpbmUgY2JpdF93b3JkICAgICA2
NCAgICAgIC8qIFx3ICovCi0jZGVmaW5lIGNiaXRfbGVuZ3RoICAgOTYgICAgICAvKiBMZW5ndGgg
b2YgdGhlIGNiaXRzIHRhYmxlICovCi0KLS8qIE9mZnNldHMgb2YgdGhlIHZhcmlvdXMgdGFibGVz
IGZyb20gdGhlIGJhc2UgdGFibGVzIHBvaW50ZXIsIGFuZAotdG90YWwgbGVuZ3RoLiAqLwotCi0j
ZGVmaW5lIGxjY19vZmZzZXQgICAgICAwCi0jZGVmaW5lIGZjY19vZmZzZXQgICAgMTI4Ci0jZGVm
aW5lIGNiaXRzX29mZnNldCAgMjU2Ci0jZGVmaW5lIGN0eXBlc19vZmZzZXQgKGNiaXRzX29mZnNl
dCArIGNiaXRfbGVuZ3RoKQotI2RlZmluZSB0YWJsZXNfbGVuZ3RoIChjdHlwZXNfb2Zmc2V0ICsg
MTI4KQotCi0jaWZuZGVmIERGVEFCTEVTCi0KLS8vIENoYW5nZSB0aGUgZm9sbG93aW5nIHRvIDEg
dG8gZHVtcCB1c2VkIHJlZ3VsYXIgZXhwcmVzc2lvbnMgYXQgcHJvY2VzcyBleGl0IHRpbWUuCi0j
ZGVmaW5lIFJFR0VYUF9ISVNUT0dSQU0gMAotCi0jaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgotCi0j
aWYgQ09NUElMRVIoTVNWQykKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MjMyKQotI3ByYWdt
YSB3YXJuaW5nKGRpc2FibGU6IDQyNDQpCi0jZW5kaWYKLQotI2luY2x1ZGUgInBjcmUuaCIKLQot
LyogVGhlIHZhbHVlIG9mIExJTktfU0laRSBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMg
dXNlZCB0byBzdG9yZSBsaW5rcyBhcwotb2Zmc2V0cyB3aXRoaW4gdGhlIGNvbXBpbGVkIHJlZ2V4
LiBUaGUgZGVmYXVsdCBpcyAyLCB3aGljaCBhbGxvd3MgZm9yIGNvbXBpbGVkCi1wYXR0ZXJucyB1
cCB0byA2NEsgbG9uZy4gKi8KLQotI2RlZmluZSBMSU5LX1NJWkUgICAzCi0KLS8qIERlZmluZSBE
RUJVRyB0byBnZXQgZGVidWdnaW5nIG91dHB1dCBvbiBzdGRvdXQuICovCi0KLSNpZiAwCi0jZGVm
aW5lIERFQlVHCi0jZW5kaWYKLQotLyogVXNlIGEgbWFjcm8gZm9yIGRlYnVnZ2luZyBwcmludGlu
ZywgJ2NhdXNlIHRoYXQgZWxpbWluYXRlcyB0aGUgdXNlIG9mICNpZmRlZgotaW5saW5lLCBhbmQg
dGhlcmUgYXJlICpzdGlsbCogc3R1cGlkIGNvbXBpbGVycyBhYm91dCB0aGF0IGRvbid0IGxpa2Ug
aW5kZW50ZWQKLXByZS1wcm9jZXNzb3Igc3RhdGVtZW50cywgb3IgYXQgbGVhc3QgdGhlcmUgd2Vy
ZSB3aGVuIEkgZmlyc3Qgd3JvdGUgdGhpcy4gQWZ0ZXIKLWFsbCwgaXQgaGFkIG9ubHkgYmVlbiBh
Ym91dCAxMCB5ZWFycyB0aGVuLi4uICovCi0KLSNpZmRlZiBERUJVRwotI2RlZmluZSBEUFJJTlRG
KHApIHByaW50ZiBwCi0jZWxzZQotI2RlZmluZSBEUFJJTlRGKHApIC8qbm90aGluZyovCi0jZW5k
aWYKLQotLyogUENSRSBrZWVwcyBvZmZzZXRzIGluIGl0cyBjb21waWxlZCBjb2RlIGFzIDItYnl0
ZSBxdWFudGl0aWVzIChhbHdheXMgc3RvcmVkCi1pbiBiaWctZW5kaWFuIG9yZGVyKSBieSBkZWZh
dWx0LiBUaGVzZSBhcmUgdXNlZCwgZm9yIGV4YW1wbGUsIHRvIGxpbmsgZnJvbSB0aGUKLXN0YXJ0
IG9mIGEgc3VicGF0dGVybiB0byBpdHMgYWx0ZXJuYXRpdmVzIGFuZCBpdHMgZW5kLiBUaGUgdXNl
IG9mIDIgYnl0ZXMgcGVyCi1vZmZzZXQgbGltaXRzIHRoZSBzaXplIG9mIHRoZSBjb21waWxlZCBy
ZWdleCB0byBhcm91bmQgNjRLLCB3aGljaCBpcyBiaWcgZW5vdWdoCi1mb3IgYWxtb3N0IGV2ZXJ5
Ym9keS4gSG93ZXZlciwgSSByZWNlaXZlZCBhIHJlcXVlc3QgZm9yIGFuIGV2ZW4gYmlnZ2VyIGxp
bWl0LgotRm9yIHRoaXMgcmVhc29uLCBhbmQgYWxzbyB0byBtYWtlIHRoZSBjb2RlIGVhc2llciB0
byBtYWludGFpbiwgdGhlIHN0b3JpbmcgYW5kCi1sb2FkaW5nIG9mIG9mZnNldHMgZnJvbSB0aGUg
Ynl0ZSBzdHJpbmcgaXMgbm93IGhhbmRsZWQgYnkgdGhlIGZ1bmN0aW9ucyB0aGF0IGFyZQotZGVm
aW5lZCBoZXJlLiAqLwotCi0vKiBQQ1JFIHVzZXMgc29tZSBvdGhlciAyLWJ5dGUgcXVhbnRpdGll
cyB0aGF0IGRvIG5vdCBjaGFuZ2Ugd2hlbiB0aGUgc2l6ZSBvZgotb2Zmc2V0cyBjaGFuZ2VzLiBU
aGVyZSBhcmUgdXNlZCBmb3IgcmVwZWF0IGNvdW50cyBhbmQgZm9yIG90aGVyIHRoaW5ncyBzdWNo
IGFzCi1jYXB0dXJpbmcgcGFyZW50aGVzaXMgbnVtYmVycyBpbiBiYWNrIHJlZmVyZW5jZXMuICov
Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXQyQnl0ZVZhbHVlKHVuc2lnbmVkIGNoYXIqIG9wY29k
ZVB0ciwgaW50IHZhbHVlKQotewotICAgIEFTU0VSVCh2YWx1ZSA+PSAwICYmIHZhbHVlIDw9IDB4
RkZGRik7Ci0gICAgb3Bjb2RlUHRyWzBdID0gdmFsdWUgPj4gODsKLSAgICBvcGNvZGVQdHJbMV0g
PSB2YWx1ZTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHB1dDNCeXRlVmFsdWUodW5zaWduZWQg
Y2hhciogb3Bjb2RlUHRyLCBpbnQgdmFsdWUpCi17Ci0gICAgQVNTRVJUKHZhbHVlID49IDAgJiYg
dmFsdWUgPD0gMHhGRkZGRkYpOwotICAgIG9wY29kZVB0clswXSA9IHZhbHVlID4+IDE2OwotICAg
IG9wY29kZVB0clsxXSA9IHZhbHVlID4+IDg7Ci0gICAgb3Bjb2RlUHRyWzJdID0gdmFsdWU7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdldDJCeXRlVmFsdWUoY29uc3QgdW5zaWduZWQgY2hhciog
b3Bjb2RlUHRyKQotewotICAgIHJldHVybiAob3Bjb2RlUHRyWzBdIDw8IDgpIHwgb3Bjb2RlUHRy
WzFdOwotfQotCi1zdGF0aWMgaW5saW5lIGludCBnZXQzQnl0ZVZhbHVlKGNvbnN0IHVuc2lnbmVk
IGNoYXIqIG9wY29kZVB0cikKLXsKLSAgICByZXR1cm4gKG9wY29kZVB0clswXSA8PCAxNikgfCAo
b3Bjb2RlUHRyWzFdIDw8IDgpIHwgb3Bjb2RlUHRyWzJdOwotfQotCi1zdGF0aWMgaW5saW5lIHZv
aWQgcHV0MkJ5dGVWYWx1ZUFuZEFkdmFuY2UodW5zaWduZWQgY2hhciomIG9wY29kZVB0ciwgaW50
IHZhbHVlKQotewotICAgIHB1dDJCeXRlVmFsdWUob3Bjb2RlUHRyLCB2YWx1ZSk7Ci0gICAgb3Bj
b2RlUHRyICs9IDI7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXQzQnl0ZVZhbHVlQW5kQWR2
YW5jZSh1bnNpZ25lZCBjaGFyKiYgb3Bjb2RlUHRyLCBpbnQgdmFsdWUpCi17Ci0gICAgcHV0M0J5
dGVWYWx1ZShvcGNvZGVQdHIsIHZhbHVlKTsKLSAgICBvcGNvZGVQdHIgKz0gMzsKLX0KLQotc3Rh
dGljIGlubGluZSB2b2lkIHB1dExpbmtWYWx1ZUFsbG93WmVybyh1bnNpZ25lZCBjaGFyKiBvcGNv
ZGVQdHIsIGludCB2YWx1ZSkKLXsKLSNpZiBMSU5LX1NJWkUgPT0gMwotICAgIHB1dDNCeXRlVmFs
dWUob3Bjb2RlUHRyLCB2YWx1ZSk7Ci0jZWxpZiBMSU5LX1NJWkUgPT0gMgotICAgIHB1dDJCeXRl
VmFsdWUob3Bjb2RlUHRyLCB2YWx1ZSk7Ci0jZWxzZQotIyAgIGVycm9yIExJTktfU0laRSBub3Qg
c3VwcG9ydGVkLgotI2VuZGlmCi19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdldExpbmtWYWx1ZUFs
bG93WmVybyhjb25zdCB1bnNpZ25lZCBjaGFyKiBvcGNvZGVQdHIpCi17Ci0jaWYgTElOS19TSVpF
ID09IDMKLSAgICByZXR1cm4gZ2V0M0J5dGVWYWx1ZShvcGNvZGVQdHIpOwotI2VsaWYgTElOS19T
SVpFID09IDIKLSAgICByZXR1cm4gZ2V0MkJ5dGVWYWx1ZShvcGNvZGVQdHIpOwotI2Vsc2UKLSMg
ICBlcnJvciBMSU5LX1NJWkUgbm90IHN1cHBvcnRlZC4KLSNlbmRpZgotfQotCi0jZGVmaW5lIE1B
WF9QQVRURVJOX1NJWkUgMTAyNCAqIDEwMjQgLy8gRGVyaXZlZCBieSBlbXBpcmljYWwgdGVzdGlu
ZyBvZiBjb21waWxlIHRpbWUgaW4gUENSRSBhbmQgV1JFQy4KLUNPTVBJTEVfQVNTRVJUKE1BWF9Q
QVRURVJOX1NJWkUgPCAoMSA8PCAoOCAqIExJTktfU0laRSkpLCBwY3JlX21heF9wYXR0ZXJuX2Zp
dHNfaW5fYnl0ZWNvZGUpOwotCi1zdGF0aWMgaW5saW5lIHZvaWQgcHV0TGlua1ZhbHVlKHVuc2ln
bmVkIGNoYXIqIG9wY29kZVB0ciwgaW50IHZhbHVlKQotewotICAgIEFTU0VSVCh2YWx1ZSk7Ci0g
ICAgcHV0TGlua1ZhbHVlQWxsb3daZXJvKG9wY29kZVB0ciwgdmFsdWUpOwotfQotCi1zdGF0aWMg
aW5saW5lIGludCBnZXRMaW5rVmFsdWUoY29uc3QgdW5zaWduZWQgY2hhciogb3Bjb2RlUHRyKQot
ewotICAgIGludCB2YWx1ZSA9IGdldExpbmtWYWx1ZUFsbG93WmVybyhvcGNvZGVQdHIpOwotICAg
IEFTU0VSVCh2YWx1ZSk7Ci0gICAgcmV0dXJuIHZhbHVlOwotfQotCi1zdGF0aWMgaW5saW5lIHZv
aWQgcHV0TGlua1ZhbHVlQW5kQWR2YW5jZSh1bnNpZ25lZCBjaGFyKiYgb3Bjb2RlUHRyLCBpbnQg
dmFsdWUpCi17Ci0gICAgcHV0TGlua1ZhbHVlKG9wY29kZVB0ciwgdmFsdWUpOwotICAgIG9wY29k
ZVB0ciArPSBMSU5LX1NJWkU7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRMaW5rVmFsdWVB
bGxvd1plcm9BbmRBZHZhbmNlKHVuc2lnbmVkIGNoYXIqJiBvcGNvZGVQdHIsIGludCB2YWx1ZSkK
LXsKLSAgICBwdXRMaW5rVmFsdWVBbGxvd1plcm8ob3Bjb2RlUHRyLCB2YWx1ZSk7Ci0gICAgb3Bj
b2RlUHRyICs9IExJTktfU0laRTsKLX0KLQotLy8gRklYTUU6IFRoZXNlIGFyZSByZWFsbHkgbW9y
ZSBvZiBhICJjb21waWxlZCByZWdleHAgc3RhdGUiIHRoYW4gInJlZ2V4cCBvcHRpb25zIgotZW51
bSBSZWdFeHBPcHRpb25zIHsKLSAgICBVc2VGaXJzdEJ5dGVPcHRpbWl6YXRpb25PcHRpb24gPSAw
eDQwMDAwMDAwLCAgLyogZmlyc3RCeXRlIGlzIHNldCAqLwotICAgIFVzZVJlcXVpcmVkQnl0ZU9w
dGltaXphdGlvbk9wdGlvbiA9IDB4MjAwMDAwMDAsICAvKiByZXFCeXRlIGlzIHNldCAqLwotICAg
IFVzZU11bHRpTGluZUZpcnN0Qnl0ZU9wdGltaXphdGlvbk9wdGlvbiA9IDB4MTAwMDAwMDAsICAv
KiBzdGFydCBhZnRlciBcbiBmb3IgbXVsdGlsaW5lICovCi0gICAgSXNBbmNob3JlZE9wdGlvbiA9
IDB4MDIwMDAwMDAsICAvKiBjYW4ndCB1c2UgcGFydGlhbCB3aXRoIHRoaXMgcmVnZXggKi8KLSAg
ICBJZ25vcmVDYXNlT3B0aW9uID0gMHgwMDAwMDAwMSwKLSAgICBNYXRjaEFjcm9zc011bHRpcGxl
TGluZXNPcHRpb24gPSAweDAwMDAwMDAyCi19OwotCi0vKiBGbGFncyBhZGRlZCB0byBmaXJzdEJ5
dGUgb3IgcmVxQnl0ZTsgYSAibm9uLWxpdGVyYWwiIGl0ZW0gaXMgZWl0aGVyIGEKLXZhcmlhYmxl
LWxlbmd0aCByZXBlYXQsIG9yIGEgYW55dGhpbmcgb3RoZXIgdGhhbiBsaXRlcmFsIGNoYXJhY3Rl
cnMuICovCi0KLSNkZWZpbmUgUkVRX0lHTk9SRV9DQVNFIDB4MDEwMCAgICAvKiBpbmRpY2F0ZXMg
c2hvdWxkIGlnbm9yZSBjYXNlICovCi0jZGVmaW5lIFJFUV9WQVJZICAgICAweDAyMDAgICAgLyog
cmVxQnl0ZSBmb2xsb3dlZCBub24tbGl0ZXJhbCBpdGVtICovCi0KLS8qIE1pc2NlbGxhbmVvdXMg
ZGVmaW5pdGlvbnMgKi8KLQotLyogRmxhZyBiaXRzIGFuZCBkYXRhIHR5cGVzIGZvciB0aGUgZXh0
ZW5kZWQgY2xhc3MgKE9QX1hDTEFTUykgZm9yIGNsYXNzZXMgdGhhdAotY29udGFpbiBVVEYtOCBj
aGFyYWN0ZXJzIHdpdGggdmFsdWVzIGdyZWF0ZXIgdGhhbiAyNTUuICovCi0KLSNkZWZpbmUgWENM
X05PVCAgICAweDAxICAgIC8qIEZsYWc6IHRoaXMgaXMgYSBuZWdhdGl2ZSBjbGFzcyAqLwotI2Rl
ZmluZSBYQ0xfTUFQICAgIDB4MDIgICAgLyogRmxhZzogYSAzMi1ieXRlIG1hcCBpcyBwcmVzZW50
ICovCi0KLSNkZWZpbmUgWENMX0VORCAgICAgICAwICAgIC8qIE1hcmtzIGVuZCBvZiBpbmRpdmlk
dWFsIGl0ZW1zICovCi0jZGVmaW5lIFhDTF9TSU5HTEUgICAgMSAgICAvKiBTaW5nbGUgaXRlbSAo
b25lIG11bHRpYnl0ZSBjaGFyKSBmb2xsb3dzICovCi0jZGVmaW5lIFhDTF9SQU5HRSAgICAgMiAg
ICAvKiBBIHJhbmdlICh0d28gbXVsdGlieXRlIGNoYXJzKSBmb2xsb3dzICovCi0KLS8qIFRoZXNl
IGFyZSBlc2NhcGVkIGl0ZW1zIHRoYXQgYXJlbid0IGp1c3QgYW4gZW5jb2Rpbmcgb2YgYSBwYXJ0
aWN1bGFyIGRhdGEKLXZhbHVlIHN1Y2ggYXMgXG4uIFRoZXkgbXVzdCBoYXZlIG5vbi16ZXJvIHZh
bHVlcywgYXMgY2hlY2tfZXNjYXBlKCkgcmV0dXJucwotdGhlaXIgbmVnYXRpb24uIEFsc28sIHRo
ZXkgbXVzdCBhcHBlYXIgaW4gdGhlIHNhbWUgb3JkZXIgYXMgaW4gdGhlIG9wY29kZQotZGVmaW5p
dGlvbnMgYmVsb3csIHVwIHRvIEVTQ193LiBUaGUgZmluYWwgb25lIG11c3QgYmUKLUVTQ19SRUYg
YXMgc3Vic2VxdWVudCB2YWx1ZXMgYXJlIHVzZWQgZm9yIFwxLCBcMiwgXDMsIGV0Yy4gVGhlcmUg
aXMgYXJlIHR3bwotdGVzdHMgaW4gdGhlIGNvZGUgZm9yIGFuIGVzY2FwZSA+IEVTQ19iIGFuZCA8
PSBFU0NfdyB0bwotZGV0ZWN0IHRoZSB0eXBlcyB0aGF0IG1heSBiZSByZXBlYXRlZC4gVGhlc2Ug
YXJlIHRoZSB0eXBlcyB0aGF0IGNvbnN1bWUKLWNoYXJhY3RlcnMuIElmIGFueSBuZXcgZXNjYXBl
cyBhcmUgcHV0IGluIGJldHdlZW4gdGhhdCBkb24ndCBjb25zdW1lIGEKLWNoYXJhY3RlciwgdGhh
dCBjb2RlIHdpbGwgaGF2ZSB0byBjaGFuZ2UuICovCi0KLWVudW0geyBFU0NfQiA9IDEsIEVTQ19i
LCBFU0NfRCwgRVNDX2QsIEVTQ19TLCBFU0NfcywgRVNDX1csIEVTQ193LCBFU0NfUkVGIH07Ci0K
LS8qIE9wY29kZSB0YWJsZTogT1BfQlJBIG11c3QgYmUgbGFzdCwgYXMgYWxsIHZhbHVlcyA+PSBp
dCBhcmUgdXNlZCBmb3IgYnJhY2tldHMKLXRoYXQgZXh0cmFjdCBzdWJzdHJpbmdzLiBTdGFydGlu
ZyBmcm9tIDEgKGkuZS4gYWZ0ZXIgT1BfRU5EKSwgdGhlIHZhbHVlcyB1cCB0bwotT1BfRU9EIG11
c3QgY29ycmVzcG9uZCBpbiBvcmRlciB0byB0aGUgbGlzdCBvZiBlc2NhcGVzIGltbWVkaWF0ZWx5
IGFib3ZlLgotTm90ZSB0aGF0IHdoZW5ldmVyIHRoaXMgbGlzdCBpcyB1cGRhdGVkLCB0aGUgdHdv
IG1hY3JvIGRlZmluaXRpb25zIHRoYXQgZm9sbG93Ci1tdXN0IGFsc28gYmUgdXBkYXRlZCB0byBt
YXRjaC4gKi8KLQotI2RlZmluZSBGT1JfRUFDSF9PUENPREUobWFjcm8pIFwKLSAgICBtYWNybyhF
TkQpIFwKLSAgICBcCi0gICAgbWFjcm8oTk9UX1dPUkRfQk9VTkRBUlkpIFwKLSAgICBtYWNybyhX
T1JEX0JPVU5EQVJZKSBcCi0gICAgbWFjcm8oTk9UX0RJR0lUKSBcCi0gICAgbWFjcm8oRElHSVQp
IFwKLSAgICBtYWNybyhOT1RfV0hJVEVTUEFDRSkgXAotICAgIG1hY3JvKFdISVRFU1BBQ0UpIFwK
LSAgICBtYWNybyhOT1RfV09SRENIQVIpIFwKLSAgICBtYWNybyhXT1JEQ0hBUikgXAotICAgIFwK
LSAgICBtYWNybyhOT1RfTkVXTElORSkgXAotICAgIFwKLSAgICBtYWNybyhDSVJDKSBcCi0gICAg
bWFjcm8oRE9MTCkgXAotICAgIG1hY3JvKEJPTCkgXAotICAgIG1hY3JvKEVPTCkgXAotICAgIG1h
Y3JvKENIQVIpIFwKLSAgICBtYWNybyhDSEFSX0lHTk9SSU5HX0NBU0UpIFwKLSAgICBtYWNybyhB
U0NJSV9DSEFSKSBcCi0gICAgbWFjcm8oQVNDSUlfTEVUVEVSX0lHTk9SSU5HX0NBU0UpIFwKLSAg
ICBtYWNybyhOT1QpIFwKLSAgICBcCi0gICAgbWFjcm8oU1RBUikgXAotICAgIG1hY3JvKE1JTlNU
QVIpIFwKLSAgICBtYWNybyhQTFVTKSBcCi0gICAgbWFjcm8oTUlOUExVUykgXAotICAgIG1hY3Jv
KFFVRVJZKSBcCi0gICAgbWFjcm8oTUlOUVVFUlkpIFwKLSAgICBtYWNybyhVUFRPKSBcCi0gICAg
bWFjcm8oTUlOVVBUTykgXAotICAgIG1hY3JvKEVYQUNUKSBcCi0gICAgXAotICAgIG1hY3JvKE5P
VFNUQVIpIFwKLSAgICBtYWNybyhOT1RNSU5TVEFSKSBcCi0gICAgbWFjcm8oTk9UUExVUykgXAot
ICAgIG1hY3JvKE5PVE1JTlBMVVMpIFwKLSAgICBtYWNybyhOT1RRVUVSWSkgXAotICAgIG1hY3Jv
KE5PVE1JTlFVRVJZKSBcCi0gICAgbWFjcm8oTk9UVVBUTykgXAotICAgIG1hY3JvKE5PVE1JTlVQ
VE8pIFwKLSAgICBtYWNybyhOT1RFWEFDVCkgXAotICAgIFwKLSAgICBtYWNybyhUWVBFU1RBUikg
XAotICAgIG1hY3JvKFRZUEVNSU5TVEFSKSBcCi0gICAgbWFjcm8oVFlQRVBMVVMpIFwKLSAgICBt
YWNybyhUWVBFTUlOUExVUykgXAotICAgIG1hY3JvKFRZUEVRVUVSWSkgXAotICAgIG1hY3JvKFRZ
UEVNSU5RVUVSWSkgXAotICAgIG1hY3JvKFRZUEVVUFRPKSBcCi0gICAgbWFjcm8oVFlQRU1JTlVQ
VE8pIFwKLSAgICBtYWNybyhUWVBFRVhBQ1QpIFwKLSAgICBcCi0gICAgbWFjcm8oQ1JTVEFSKSBc
Ci0gICAgbWFjcm8oQ1JNSU5TVEFSKSBcCi0gICAgbWFjcm8oQ1JQTFVTKSBcCi0gICAgbWFjcm8o
Q1JNSU5QTFVTKSBcCi0gICAgbWFjcm8oQ1JRVUVSWSkgXAotICAgIG1hY3JvKENSTUlOUVVFUlkp
IFwKLSAgICBtYWNybyhDUlJBTkdFKSBcCi0gICAgbWFjcm8oQ1JNSU5SQU5HRSkgXAotICAgIFwK
LSAgICBtYWNybyhDTEFTUykgXAotICAgIG1hY3JvKE5DTEFTUykgXAotICAgIG1hY3JvKFhDTEFT
UykgXAotICAgIFwKLSAgICBtYWNybyhSRUYpIFwKLSAgICBcCi0gICAgbWFjcm8oQUxUKSBcCi0g
ICAgbWFjcm8oS0VUKSBcCi0gICAgbWFjcm8oS0VUUk1BWCkgXAotICAgIG1hY3JvKEtFVFJNSU4p
IFwKLSAgICBcCi0gICAgbWFjcm8oQVNTRVJUKSBcCi0gICAgbWFjcm8oQVNTRVJUX05PVCkgXAot
ICAgIFwKLSAgICBtYWNybyhCUkFaRVJPKSBcCi0gICAgbWFjcm8oQlJBTUlOWkVSTykgXAotICAg
IG1hY3JvKEJSQU5VTUJFUikgXAotICAgIG1hY3JvKEJSQSkKLQotI2RlZmluZSBPUENPREVfRU5V
TV9WQUxVRShvcGNvZGUpIE9QXyMjb3Bjb2RlLAotZW51bSB7IEZPUl9FQUNIX09QQ09ERShPUENP
REVfRU5VTV9WQUxVRSkgfTsKLQotLyogV0FSTklORyBXQVJOSU5HIFdBUk5JTkc6IFRoZXJlIGlz
IGFuIGltcGxpY2l0IGFzc3VtcHRpb24gaW4gcGNyZS5jIGFuZAotc3R1ZHkuYyB0aGF0IGFsbCBv
cGNvZGVzIGFyZSBsZXNzIHRoYW4gMTI4IGluIHZhbHVlLiBUaGlzIG1ha2VzIGhhbmRsaW5nIFVU
Ri04Ci1jaGFyYWN0ZXIgc2VxdWVuY2VzIGVhc2llci4gKi8KLQotLyogVGhlIGhpZ2hlc3QgZXh0
cmFjdGlvbiBudW1iZXIgYmVmb3JlIHdlIGhhdmUgdG8gc3RhcnQgdXNpbmcgYWRkaXRpb25hbAot
Ynl0ZXMuIChPcmlnaW5hbGx5IFBDUkUgZGlkbid0IGhhdmUgc3VwcG9ydCBmb3IgZXh0cmFjdGlv
biBjb3VudHMgaGlnaGVyIHRoYW4KLXRoaXMgbnVtYmVyLikgVGhlIHZhbHVlIGlzIGxpbWl0ZWQg
YnkgdGhlIG51bWJlciBvZiBvcGNvZGVzIGxlZnQgYWZ0ZXIgT1BfQlJBLAotaS5lLiAyNTUgLSBP
UF9CUkEuIFdlIGFjdHVhbGx5IHNldCBpdCBhIGJpdCBsb3dlciB0byBsZWF2ZSByb29tIGZvciBh
ZGRpdGlvbmFsCi1vcGNvZGVzLiAqLwotCi0vKiBGSVhNRTogTm90ZSB0aGF0IE9QX0JSQSArIDEw
MCBpcyA+IDEyOCwgc28gdGhlIHR3byBjb21tZW50cyBhYm92ZQotYXJlIGluIGNvbmZsaWN0ISAq
LwotCi0jZGVmaW5lIEVYVFJBQ1RfQkFTSUNfTUFYICAxMDAKLQotLyogVGhlIGNvZGUgdmVjdG9y
IHJ1bnMgb24gYXMgbG9uZyBhcyBuZWNlc3NhcnkgYWZ0ZXIgdGhlIGVuZC4gKi8KLQotc3RydWN0
IEpTUmVnRXhwIHsKLSAgICB1bnNpZ25lZCBvcHRpb25zOwotCi0gICAgdW5zaWduZWQgc2hvcnQg
dG9wQnJhY2tldDsKLSAgICB1bnNpZ25lZCBzaG9ydCB0b3BCYWNrcmVmOwotICAgIAotICAgIHVu
c2lnbmVkIHNob3J0IGZpcnN0Qnl0ZTsKLSAgICB1bnNpZ25lZCBzaG9ydCByZXFCeXRlOwotCi0j
aWYgUkVHRVhQX0hJU1RPR1JBTQotICAgIHNpemVfdCBzdHJpbmdPZmZzZXQ7Ci0gICAgc2l6ZV90
IHN0cmluZ0xlbmd0aDsKLSNlbmRpZgotfTsKLQotLyogSW50ZXJuYWwgc2hhcmVkIGRhdGEgdGFi
bGVzLiBUaGVzZSBhcmUgdGFibGVzIHRoYXQgYXJlIHVzZWQgYnkgbW9yZSB0aGFuIG9uZQotIG9m
IHRoZSBleHBvcnRlZCBwdWJsaWMgZnVuY3Rpb25zLiBUaGV5IGhhdmUgdG8gYmUgImV4dGVybmFs
IiBpbiB0aGUgQyBzZW5zZSwKLSBidXQgYXJlIG5vdCBwYXJ0IG9mIHRoZSBQQ1JFIHB1YmxpYyBB
UEkuIFRoZSBkYXRhIGZvciB0aGVzZSB0YWJsZXMgaXMgaW4gdGhlCi0gcGNyZV90YWJsZXMuYyBt
b2R1bGUuICovCi0KLSNkZWZpbmUganNjX3BjcmVfdXRmOF90YWJsZTFfc2l6ZSA2Ci0KLWV4dGVy
biBjb25zdCBpbnQgICAganNjX3BjcmVfdXRmOF90YWJsZTFbNl07Ci1leHRlcm4gY29uc3QgaW50
ICAgIGpzY19wY3JlX3V0ZjhfdGFibGUyWzZdOwotZXh0ZXJuIGNvbnN0IGludCAgICBqc2NfcGNy
ZV91dGY4X3RhYmxlM1s2XTsKLWV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFyIGpzY19wY3JlX3V0
ZjhfdGFibGU0WzB4NDBdOwotCi1leHRlcm4gY29uc3QgdW5zaWduZWQgY2hhciBqc2NfcGNyZV9k
ZWZhdWx0X3RhYmxlc1t0YWJsZXNfbGVuZ3RoXTsKLQotc3RhdGljIGlubGluZSB1bnNpZ25lZCBj
aGFyIHRvTG93ZXJDYXNlKHVuc2lnbmVkIGNoYXIgYykKLXsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgY2hhciogbG93ZXJDYXNlQ2hhcnMgPSBqc2NfcGNyZV9kZWZhdWx0X3RhYmxlcyArIGxj
Y19vZmZzZXQ7Ci0gICAgcmV0dXJuIGxvd2VyQ2FzZUNoYXJzW2NdOwotfQotCi1zdGF0aWMgaW5s
aW5lIHVuc2lnbmVkIGNoYXIgZmxpcENhc2UodW5zaWduZWQgY2hhciBjKQotewotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBjaGFyKiBmbGlwcGVkQ2FzZUNoYXJzID0ganNjX3BjcmVfZGVmYXVs
dF90YWJsZXMgKyBmY2Nfb2Zmc2V0OwotICAgIHJldHVybiBmbGlwcGVkQ2FzZUNoYXJzW2NdOwot
fQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNoYXIgY2xhc3NCaXRtYXBGb3JDaGFyKHVuc2ln
bmVkIGNoYXIgYykKLXsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciogY2hhckNsYXNz
Qml0bWFwcyA9IGpzY19wY3JlX2RlZmF1bHRfdGFibGVzICsgY2JpdHNfb2Zmc2V0OwotICAgIHJl
dHVybiBjaGFyQ2xhc3NCaXRtYXBzW2NdOwotfQotCi1zdGF0aWMgaW5saW5lIHVuc2lnbmVkIGNo
YXIgY2hhclR5cGVGb3JDaGFyKHVuc2lnbmVkIGNoYXIgYykKLXsKLSAgICBjb25zdCB1bnNpZ25l
ZCBjaGFyKiBjaGFyVHlwZU1hcCA9IGpzY19wY3JlX2RlZmF1bHRfdGFibGVzICsgY3R5cGVzX29m
ZnNldDsKLSAgICByZXR1cm4gY2hhclR5cGVNYXBbY107Ci19Ci0KLXN0YXRpYyBpbmxpbmUgYm9v
bCBpc1dvcmRDaGFyKFVDaGFyIGMpCi17Ci0gICAgcmV0dXJuIGMgPCAxMjggJiYgKGNoYXJUeXBl
Rm9yQ2hhcihjKSAmIGN0eXBlX3dvcmQpOwotfQotCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNTcGFj
ZUNoYXIoVUNoYXIgYykKLXsKLSAgICByZXR1cm4gKGMgPCAxMjggJiYgKGNoYXJUeXBlRm9yQ2hh
cihjKSAmIGN0eXBlX3NwYWNlKSkgfHwgYyA9PSAweDAwQTA7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBpc05ld2xpbmUoVUNoYXIgbmwpCi17Ci0gICAgcmV0dXJuIChubCA9PSAweEEgfHwgbmwg
PT0gMHhEIHx8IG5sID09IDB4MjAyOCB8fCBubCA9PSAweDIwMjkpOwotfQotCi1zdGF0aWMgaW5s
aW5lIGJvb2wgaXNCcmFja2V0U3RhcnRPcGNvZGUodW5zaWduZWQgY2hhciBvcGNvZGUpCi17Ci0g
ICAgaWYgKG9wY29kZSA+PSBPUF9CUkEpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHN3aXRj
aCAob3Bjb2RlKSB7Ci0gICAgICAgIGNhc2UgT1BfQVNTRVJUOgotICAgICAgICBjYXNlIE9QX0FT
U0VSVF9OT1Q6Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBh
ZHZhbmNlVG9FbmRPZkJyYWNrZXQoY29uc3QgdW5zaWduZWQgY2hhciomIG9wY29kZVB0cikKLXsK
LSAgICBBU1NFUlQoaXNCcmFja2V0U3RhcnRPcGNvZGUoKm9wY29kZVB0cikgfHwgKm9wY29kZVB0
ciA9PSBPUF9BTFQpOwotICAgIGRvCi0gICAgICAgIG9wY29kZVB0ciArPSBnZXRMaW5rVmFsdWUo
b3Bjb2RlUHRyICsgMSk7Ci0gICAgd2hpbGUgKCpvcGNvZGVQdHIgPT0gT1BfQUxUKTsKLX0KLQot
LyogSW50ZXJuYWwgc2hhcmVkIGZ1bmN0aW9ucy4gVGhlc2UgYXJlIGZ1bmN0aW9ucyB0aGF0IGFy
ZSB1c2VkIGluIG1vcmUKLXRoYXQgb25lIG9mIHRoZSBzb3VyY2UgZmlsZXMuIFRoZXkgaGF2ZSB0
byBoYXZlIGV4dGVybmFsIGxpbmthZ2UsIGJ1dAotYnV0IGFyZSBub3QgcGFydCBvZiB0aGUgcHVi
bGljIEFQSSBhbmQgc28gbm90IGV4cG9ydGVkIGZyb20gdGhlIGxpYnJhcnkuICovCi0KLWV4dGVy
biBpbnQganNjX3BjcmVfdWNwX290aGVyY2FzZSh1bnNpZ25lZCk7Ci1leHRlcm4gYm9vbCBqc2Nf
cGNyZV94Y2xhc3MoaW50LCBjb25zdCB1bnNpZ25lZCBjaGFyKik7Ci0KLSNlbmRpZgotCi0jZW5k
aWYKLQotLyogRW5kIG9mIHBjcmVfaW50ZXJuYWwuaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV90YWJsZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV90YWJsZXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4Njk2
ODc5Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdGFibGVz
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLS8qIFRoaXMgaXMgSmF2YVNjcmlw
dENvcmUncyB2YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQot
c3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBD
UkUgaGF2ZSBiZWVuCi1yZW1vdmVkLiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhl
IHJlZ3VsYXIgZXhwcmVzc2lvbiBmZWF0dXJlcwotcmVxdWlyZWQgYnkgdGhlIEphdmFTY3JpcHQg
bGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbiwgYW5kIGhhcyBvbmx5IHRoZSBmdW5jdGlvbnMKLW5lZWRl
ZCBieSBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlIHJlc3Qgb2YgV2ViS2l0LgotCi0gICAgICAgICAg
ICAgICAgIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLSAgICAgICAgICAgQ29w
eXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSAgICBDb3B5cmln
aHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0vKiBUaGlzIG1vZHVsZSBjb250YWlucyBzb21l
IGZpeGVkIHRhYmxlcyB0aGF0IGFyZSB1c2VkIGJ5IG1vcmUgdGhhbiBvbmUgb2YgdGhlCi1QQ1JF
IGNvZGUgbW9kdWxlcy4gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgInBjcmVf
aW50ZXJuYWwuaCIKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogICAgICAgICAgIFRhYmxlcyBmb3IgVVRGLTggc3VwcG9ydCAgICAgICAgICAg
ICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwot
Ci0vKiBUaGVzZSBhcmUgdGhlIGJyZWFrcG9pbnRzIGZvciBkaWZmZXJlbnQgbnVtYmVycyBvZiBi
eXRlcyBpbiBhIFVURi04Ci1jaGFyYWN0ZXIuICovCi0KLWNvbnN0IGludCBqc2NfcGNyZV91dGY4
X3RhYmxlMVs2XSA9Ci0gIHsgMHg3ZiwgMHg3ZmYsIDB4ZmZmZiwgMHgxZmZmZmYsIDB4M2ZmZmZm
ZiwgMHg3ZmZmZmZmZn07Ci0KLS8qIFRoZXNlIGFyZSB0aGUgaW5kaWNhdG9yIGJpdHMgYW5kIHRo
ZSBtYXNrIGZvciB0aGUgZGF0YSBiaXRzIHRvIHNldCBpbiB0aGUKLWZpcnN0IGJ5dGUgb2YgYSBj
aGFyYWN0ZXIsIGluZGV4ZWQgYnkgdGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIGJ5dGVzLiAqLwot
Ci1jb25zdCBpbnQganNjX3BjcmVfdXRmOF90YWJsZTJbNl0gPSB7IDAsICAgIDB4YzAsIDB4ZTAs
IDB4ZjAsIDB4ZjgsIDB4ZmN9OwotY29uc3QgaW50IGpzY19wY3JlX3V0ZjhfdGFibGUzWzZdID0g
eyAweGZmLCAweDFmLCAweDBmLCAweDA3LCAweDAzLCAweDAxfTsKLQotLyogVGFibGUgb2YgdGhl
IG51bWJlciBvZiBleHRyYSBjaGFyYWN0ZXJzLCBpbmRleGVkIGJ5IHRoZSBmaXJzdCBjaGFyYWN0
ZXIKLW1hc2tlZCB3aXRoIDB4M2YuIFRoZSBoaWdoZXN0IG51bWJlciBmb3IgYSB2YWxpZCBVVEYt
OCBjaGFyYWN0ZXIgaXMgaW4gZmFjdAotMHgzZC4gKi8KLQotY29uc3QgdW5zaWduZWQgY2hhciBq
c2NfcGNyZV91dGY4X3RhYmxlNFsweDQwXSA9IHsKLSAgMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEs
MSwxLDEsMSwKLSAgMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwKLSAgMiwyLDIsMiwy
LDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwKLSAgMywzLDMsMywzLDMsMywzLDQsNCw0LDQsNSw1LDUs
NSB9OwotCi0jaW5jbHVkZSAiY2hhcnRhYmxlcy5jIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCBkMjA1MmIyLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDk5ICswLDAg
QEAKLS8qIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJh
cnkuIFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1h
bnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi1yZW1vdmVkLiBUaGlzIGxpYnJh
cnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmZWF0dXJlcwotcmVx
dWlyZWQgYnkgdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbiwgYW5kIGhhcyBv
bmx5IHRoZSBmdW5jdGlvbnMKLW5lZWRlZCBieSBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlIHJlc3Qg
b2YgV2ViS2l0LgotCi0gICAgICAgICAgICAgICAgIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQaGls
aXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBv
ZiBDYW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90
aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Ft
YnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQot
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQot
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0KLS8q
IFRoaXMgbW9kdWxlIGNvbnRhaW5zIGNvZGUgZm9yIHNlYXJjaGluZyB0aGUgdGFibGUgb2YgVW5p
Y29kZSBjaGFyYWN0ZXIKLXByb3BlcnRpZXMuICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJwY3JlX2ludGVybmFsLmgiCi0KLSNpbmNsdWRlICJ1Y3BpbnRlcm5hbC5oIiAgICAg
ICAvKiBJbnRlcm5hbCB0YWJsZSBkZXRhaWxzICovCi0jaW5jbHVkZSAidWNwdGFibGUuY3BwIiAg
ICAgICAgLyogVGhlIHRhYmxlIGl0c2VsZiAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICBTZWFyY2ggdGFibGUgYW5kIHJldHVy
biBvdGhlciBjYXNlICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCi0KLS8qIElmIHRoZSBnaXZlbiBjaGFyYWN0ZXIgaXMgYSBsZXR0ZXIs
IGFuZCB0aGVyZSBpcyBhbm90aGVyIGNhc2UgZm9yIHRoZQotbGV0dGVyLCByZXR1cm4gdGhlIG90
aGVyIGNhc2UuIE90aGVyd2lzZSwgcmV0dXJuIC0xLgotCi1Bcmd1bWVudHM6Ci0gIGMgICAgICAg
ICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUKLQotUmV0dXJuczogICAgICB0aGUgb3RoZXIgY2FzZSBv
ciAtMSBpZiBub25lCi0qLwotCi1pbnQganNjX3BjcmVfdWNwX290aGVyY2FzZSh1bnNpZ25lZCBj
KQotewotICAgIGludCBib3QgPSAwOwotICAgIGludCB0b3AgPSBzaXplb2YodWNwX3RhYmxlKSAv
IHNpemVvZihjbm9kZSk7Ci0gICAgaW50IG1pZDsKLSAgICAKLSAgICAvKiBUaGUgdGFibGUgaXMg
c2VhcmNoZWQgdXNpbmcgYSBiaW5hcnkgY2hvcC4gWW91IG1pZ2h0IHRoaW5rIHRoYXQgdXNpbmcK
LSAgICAgaW50ZXJtZWRpYXRlIHZhcmlhYmxlcyB0byBob2xkIHNvbWUgb2YgdGhlIGNvbW1vbiBl
eHByZXNzaW9ucyB3b3VsZCBzcGVlZAotICAgICB0aGluZ3MgdXAsIGJ1dCB0ZXN0cyB3aXRoIGdj
YyAzLjQuNCBvbiBMaW51eCBzaG93ZWQgdGhhdCwgb24gdGhlIGNvbnRyYXJ5LCBpdAotICAgICBt
YWtlcyB0aGluZ3MgYSBsb3Qgc2xvd2VyLiAqLwotICAgIAotICAgIGZvciAoOzspIHsKLSAgICAg
ICAgaWYgKHRvcCA8PSBib3QpCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIG1pZCA9
IChib3QgKyB0b3ApID4+IDE7Ci0gICAgICAgIGlmIChjID09ICh1Y3BfdGFibGVbbWlkXS5mMCAm
IGYwX2NoYXJtYXNrKSkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBpZiAoYyA8ICh1Y3Bf
dGFibGVbbWlkXS5mMCAmIGYwX2NoYXJtYXNrKSkKLSAgICAgICAgICAgIHRvcCA9IG1pZDsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBpZiAoKHVjcF90YWJsZVttaWRdLmYwICYgZjBfcmFu
Z2VmbGFnKSAmJiAoYyA8PSAodWNwX3RhYmxlW21pZF0uZjAgJiBmMF9jaGFybWFzaykgKyAodWNw
X3RhYmxlW21pZF0uZjEgJiBmMV9yYW5nZW1hc2spKSkKLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGJvdCA9IG1pZCArIDE7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAg
LyogRm91bmQgYW4gZW50cnkgaW4gdGhlIHRhYmxlLiBSZXR1cm4gLTEgZm9yIGEgcmFuZ2UgZW50
cnkuIE90aGVyd2lzZSByZXR1cm4KLSAgICAgdGhlIG90aGVyIGNhc2UgaWYgdGhlcmUgaXMgb25l
LCBlbHNlIC0xLiAqLwotICAgIAotICAgIGlmICh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX3Jhbmdl
ZmxhZykKLSAgICAgICAgcmV0dXJuIC0xOwotICAgIAotICAgIGludCBvZmZzZXQgPSB1Y3BfdGFi
bGVbbWlkXS5mMSAmIGYxX2Nhc2VtYXNrOwotICAgIGlmIChvZmZzZXQgJiBmMV9jYXNlbmVnKQot
ICAgICAgICBvZmZzZXQgfD0gZjFfY2FzZW5lZzsKLSAgICByZXR1cm4gIW9mZnNldCA/IC0xIDog
c3RhdGljX2Nhc3Q8aW50PihjICsgb2Zmc2V0KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9wY3JlL3BjcmVfeGNsYXNzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3BjcmVfeGNsYXNzLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTMyZWRk
NC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3hjbGFzcy5j
cHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMTUgKzAsMCBAQAotLyogVGhpcyBpcyBKYXZhU2NyaXB0
Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUgbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5Ci1z
dGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENS
RSBoYXZlIGJlZW4KLXJlbW92ZWQuIFRoaXMgbGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUg
cmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzCi1yZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBs
YW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucwotbmVlZGVk
IGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBvZiBXZWJLaXQuCi0KLSAgICAgICAgICAg
ICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAotICAgICAgICAgICBDb3B5
cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotICAgIENvcHlyaWdo
dCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBp
dHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSovCi0KLS8qIFRoaXMgbW9kdWxlIGNvbnRhaW5zIGFuIGlu
dGVybmFsIGZ1bmN0aW9uIHRoYXQgaXMgdXNlZCB0byBtYXRjaCBhbiBleHRlbmRlZAotY2xhc3Mg
KG9uZSB0aGF0IGNvbnRhaW5zIGNoYXJhY3RlcnMgd2hvc2UgdmFsdWVzIGFyZSA+IDI1NSkuICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCi0KLS8q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAg
IE1hdGNoIGNoYXJhY3RlciBhZ2FpbnN0IGFuIFhDTEFTUyAgICAgICAgKgotKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogVGhpcyBmdW5jdGlv
biBpcyBjYWxsZWQgdG8gbWF0Y2ggYSBjaGFyYWN0ZXIgYWdhaW5zdCBhbiBleHRlbmRlZCBjbGFz
cyB0aGF0Ci1taWdodCBjb250YWluIHZhbHVlcyA+IDI1NS4KLQotQXJndW1lbnRzOgotICBjICAg
ICAgICAgICB0aGUgY2hhcmFjdGVyCi0gIGRhdGEgICAgICAgIHBvaW50cyB0byB0aGUgZmxhZyBi
eXRlIG9mIHRoZSBYQ0xBU1MgZGF0YQotCi1SZXR1cm5zOiAgICAgIHRydWUgaWYgY2hhcmFjdGVy
IG1hdGNoZXMsIGVsc2UgZmFsc2UKLSovCi0KLS8qIEdldCB0aGUgbmV4dCBVVEYtOCBjaGFyYWN0
ZXIsIGFkdmFuY2luZyB0aGUgcG9pbnRlci4gVGhpcyBpcyBjYWxsZWQgd2hlbiB3ZQotIGtub3cg
d2UgYXJlIGluIFVURi04IG1vZGUuICovCi0KLXN0YXRpYyBpbmxpbmUgdm9pZCBnZXRVVEY4Q2hh
ckFuZEFkdmFuY2VQb2ludGVyKGludCYgYywgY29uc3QgdW5zaWduZWQgY2hhciomIHN1YmplY3RQ
dHIpCi17Ci0gICAgYyA9ICpzdWJqZWN0UHRyKys7Ci0gICAgaWYgKChjICYgMHhjMCkgPT0gMHhj
MCkgewotICAgICAgICBpbnQgZ2NhYSA9IGpzY19wY3JlX3V0ZjhfdGFibGU0W2MgJiAweDNmXTsg
IC8qIE51bWJlciBvZiBhZGRpdGlvbmFsIGJ5dGVzICovCi0gICAgICAgIGludCBnY3NzID0gNiAq
IGdjYWE7Ci0gICAgICAgIGMgPSAoYyAmIGpzY19wY3JlX3V0ZjhfdGFibGUzW2djYWFdKSA8PCBn
Y3NzOwotICAgICAgICB3aGlsZSAoZ2NhYS0tID4gMCkgewotICAgICAgICAgICAgZ2NzcyAtPSA2
OwotICAgICAgICAgICAgYyB8PSAoKnN1YmplY3RQdHIrKyAmIDB4M2YpIDw8IGdjc3M7Ci0gICAg
ICAgIH0KLSAgICB9Ci19Ci0KLWJvb2wganNjX3BjcmVfeGNsYXNzKGludCBjLCBjb25zdCB1bnNp
Z25lZCBjaGFyKiBkYXRhKQotewotICAgIGJvb2wgbmVnYXRlZCA9ICgqZGF0YSAmIFhDTF9OT1Qp
OwotICAgIAotICAgIC8qIENoYXJhY3RlciB2YWx1ZXMgPCAyNTYgYXJlIG1hdGNoZWQgYWdhaW5z
dCBhIGJpdG1hcCwgaWYgb25lIGlzIHByZXNlbnQuIElmCi0gICAgIG5vdCwgd2Ugc3RpbGwgY2Fy
cnkgb24sIGJlY2F1c2UgdGhlcmUgbWF5IGJlIHJhbmdlcyB0aGF0IHN0YXJ0IGJlbG93IDI1NiBp
biB0aGUKLSAgICAgYWRkaXRpb25hbCBkYXRhLiAqLwotICAgIAotICAgIGlmIChjIDwgMjU2KSB7
Ci0gICAgICAgIGlmICgoKmRhdGEgJiBYQ0xfTUFQKSAhPSAwICYmIChkYXRhWzEgKyBjLzhdICYg
KDEgPDwgKGMmNykpKSAhPSAwKQotICAgICAgICAgICAgcmV0dXJuICFuZWdhdGVkOyAgIC8qIGNo
YXIgZm91bmQgKi8KLSAgICB9Ci0gICAgCi0gICAgLyogRmlyc3Qgc2tpcCB0aGUgYml0IG1hcCBp
ZiBwcmVzZW50LiBUaGVuIG1hdGNoIGFnYWluc3QgdGhlIGxpc3Qgb2YgVW5pY29kZQotICAgICBw
cm9wZXJ0aWVzIG9yIGxhcmdlIGNoYXJzIG9yIHJhbmdlcyB0aGF0IGVuZCB3aXRoIGEgbGFyZ2Ug
Y2hhci4gV2Ugd29uJ3QgZXZlcgotICAgICBlbmNvdW50ZXIgWENMX1BST1Agb3IgWENMX05PVFBS
T1Agd2hlbiBVQ1Agc3VwcG9ydCBpcyBub3QgY29tcGlsZWQuICovCi0gICAgCi0gICAgaWYgKCgq
ZGF0YSsrICYgWENMX01BUCkgIT0gMCkKLSAgICAgICAgZGF0YSArPSAzMjsKLSAgICAKLSAgICBp
bnQgdDsKLSAgICB3aGlsZSAoKHQgPSAqZGF0YSsrKSAhPSBYQ0xfRU5EKSB7Ci0gICAgICAgIGlm
ICh0ID09IFhDTF9TSU5HTEUpIHsKLSAgICAgICAgICAgIGludCB4OwotICAgICAgICAgICAgZ2V0
VVRGOENoYXJBbmRBZHZhbmNlUG9pbnRlcih4LCBkYXRhKTsKLSAgICAgICAgICAgIGlmIChjID09
IHgpCi0gICAgICAgICAgICAgICAgcmV0dXJuICFuZWdhdGVkOwotICAgICAgICB9Ci0gICAgICAg
IGVsc2UgaWYgKHQgPT0gWENMX1JBTkdFKSB7Ci0gICAgICAgICAgICBpbnQgeCwgeTsKLSAgICAg
ICAgICAgIGdldFVURjhDaGFyQW5kQWR2YW5jZVBvaW50ZXIoeCwgZGF0YSk7Ci0gICAgICAgICAg
ICBnZXRVVEY4Q2hhckFuZEFkdmFuY2VQb2ludGVyKHksIGRhdGEpOwotICAgICAgICAgICAgaWYg
KGMgPj0geCAmJiBjIDw9IHkpCi0gICAgICAgICAgICAgICAgcmV0dXJuICFuZWdhdGVkOwotICAg
ICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBuZWdhdGVkOyAgIC8qIGNoYXIgZGlkIG5v
dCBtYXRjaCAqLwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvdWNw
aW50ZXJuYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3VjcGludGVybmFsLmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4YmM0YWEuLjAwMDAwMDAKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BjcmUvdWNwaW50ZXJuYWwuaAorKysgL2Rldi9udWxsCkBAIC0xLDEy
NiArMCwwIEBACi0vKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENS
RSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLXN0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQ
Q1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgotcmVtb3ZlZC4gVGhp
cyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVy
ZXMKLXJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFu
ZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCi1uZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRo
ZSByZXN0IG9mIFdlYktpdC4KLQotICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4g
YnkgUGhpbGlwIEhhemVsCi0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZl
cnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAy
MDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwK
LSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRn
ZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29m
dHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklC
VVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8KLQotLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICAgIFVu
aWNvZGUgUHJvcGVydHkgVGFibGUgaGFuZGxlciAgICAgICAqCi0qKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBJbnRlcm5hbCBoZWFkZXIgZmls
ZSBkZWZpbmluZyB0aGUgbGF5b3V0IG9mIHRoZSBiaXRzIGluIGVhY2ggcGFpciBvZiAzMi1iaXQK
LXdvcmRzIHRoYXQgZm9ybSBhIGRhdGEgaXRlbSBpbiB0aGUgdGFibGUuICovCi0KLXR5cGVkZWYg
c3RydWN0IGNub2RlIHsKLSAgdW5zaWduZWQgZjA7Ci0gIHVuc2lnbmVkIGYxOwotfSBjbm9kZTsK
LQotLyogVGhpbmdzIGZvciB0aGUgZjAgZmllbGQgKi8KLQotI2RlZmluZSBmMF9zY3JpcHRtYXNr
ICAgMHhmZjAwMDAwMCAgLyogTWFzayBmb3Igc2NyaXB0IGZpZWxkICovCi0jZGVmaW5lIGYwX3Nj
cmlwdHNoaWZ0ICAgICAgICAgIDI0ICAvKiBTaGlmdCBmb3Igc2NyaXB0IHZhbHVlICovCi0jZGVm
aW5lIGYwX3JhbmdlZmxhZyAgICAweDAwZjAwMDAwICAvKiBGbGFnIGZvciBhIHJhbmdlIGl0ZW0g
Ki8KLSNkZWZpbmUgZjBfY2hhcm1hc2sgICAgIDB4MDAxZmZmZmYgIC8qIE1hc2sgZm9yIGNvZGUg
cG9pbnQgdmFsdWUgKi8KLQotLyogVGhpbmdzIGZvciB0aGUgZjEgZmllbGQgKi8KLQotI2RlZmlu
ZSBmMV90eXBlbWFzayAgICAgMHhmYzAwMDAwMCAgLyogTWFzayBmb3IgY2hhciB0eXBlIGZpZWxk
ICovCi0jZGVmaW5lIGYxX3R5cGVzaGlmdCAgICAgICAgICAgIDI2ICAvKiBTaGlmdCBmb3IgdGhl
IHR5cGUgZmllbGQgKi8KLSNkZWZpbmUgZjFfcmFuZ2VtYXNrICAgIDB4MDAwMGZmZmYgIC8qIE1h
c2sgZm9yIGEgcmFuZ2Ugb2Zmc2V0ICovCi0jZGVmaW5lIGYxX2Nhc2VtYXNrICAgICAweDAwMDBm
ZmZmICAvKiBNYXNrIGZvciBhIGNhc2Ugb2Zmc2V0ICovCi0jZGVmaW5lIGYxX2Nhc2VuZWcgICAg
ICAweGZmZmY4MDAwICAvKiBCaXRzIGZvciBuZWdhdGlvbiAqLwotCi0vKiBUaGUgZGF0YSBjb25z
aXN0cyBvZiBhIHZlY3RvciBvZiBzdHJ1Y3R1cmVzIG9mIHR5cGUgY25vZGUuIFRoZSB0d28gdW5z
aWduZWQKLTMyLWJpdCBpbnRlZ2VycyBhcmUgdXNlZCBhcyBmb2xsb3dzOgotCi0oZjApICgxKSBU
aGUgbW9zdCBzaWduaWZpY2FudCBieXRlIGhvbGRzIHRoZSBzY3JpcHQgbnVtYmVyLiBUaGUgbnVt
YmVycyBhcmUKLSAgICAgICAgIGRlZmluZWQgYnkgdGhlIGVudW0gaW4gdWNwLmguCi0KLSAgICAg
KDIpIFRoZSAweDAwODAwMDAwIGJpdCBpcyBzZXQgaWYgdGhpcyBlbnRyeSBkZWZpbmVzIGEgcmFu
Z2Ugb2YgY2hhcmFjdGVycy4KLSAgICAgICAgIEl0IGlzIG5vdCBzZXQgaWYgdGhpcyBlbnRyeSBk
ZWZpbmVzIGEgc2luZ2xlIGNoYXJhY3RlcgotCi0gICAgICgzKSBUaGUgMHgwMDYwMDAwMCBiaXRz
IGFyZSBzcGFyZS4KLQotICAgICAoNCkgVGhlIDB4MDAxZmZmZmYgYml0cyBjb250YWluIHRoZSBj
b2RlIHBvaW50LiBObyBVbmljb2RlIGNvZGUgcG9pbnQgd2lsbAotICAgICAgICAgZXZlciBiZSBn
cmVhdGVyIHRoYW4gMHgwMDEwZmZmZiwgc28gdGhpcyBzaG91bGQgYmUgT0sgZm9yIGV2ZXIuCi0K
LShmMSkgKDEpIFRoZSAweGZjMDAwMDAwIGJpdHMgY29udGFpbiB0aGUgY2hhcmFjdGVyIHR5cGUg
bnVtYmVyLiBUaGUgbnVtYmVycyBhcmUKLSAgICAgICAgIGRlZmluZWQgYnkgYW4gZW51bSBpbiB1
Y3AuaC4KLQotICAgICAoMikgVGhlIDB4MDNmZjAwMDAgYml0cyBhcmUgc3BhcmUuCi0KLSAgICAg
KDMpIFRoZSAweDAwMDBmZmZmIGJpdHMgY29udGFpbiBFSVRIRVIgdGhlIHVuc2lnbmVkIG9mZnNl
dCB0byB0aGUgdG9wIG9mCi0gICAgICAgICByYW5nZSBpZiB0aGlzIGVudHJ5IGRlZmluZXMgYSBy
YW5nZSwgT1IgdGhlICpzaWduZWQqIG9mZnNldCB0byB0aGUKLSAgICAgICAgIGNoYXJhY3Rlcidz
ICJvdGhlciBjYXNlIiBwYXJ0bmVyIGlmIHRoaXMgZW50cnkgZGVmaW5lcyBhIHNpbmdsZQotICAg
ICAgICAgY2hhcmFjdGVyLiBUaGVyZSBpcyBubyBwYXJ0bmVyIGlmIHRoZSB2YWx1ZSBpcyB6ZXJv
LgotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi18IHNjcmlwdCAoOCkgfC58LnwufCBjb2RlcG9p
bnQgKDIxKSB8fCB0eXBlICg2KSB8LnwufCBzcGFyZSAoOCkgfCBvZmZzZXQgKDE2KSB8Ci0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAgIHwgfCB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCB8Ci0gICAgICAgICAgICAgIHwgfCB8LT4gc3BhcmUgICAgICAgICAgICAg
ICAgICAgICAgfCB8LT4gc3BhcmUKLSAgICAgICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8Ci0gICAgICAgICAgICAgIHwgfC0+IHNwYXJlICAgICAgICAgICAgICAg
ICAgICAgICAgfC0+IHNwYXJlCi0gICAgICAgICAgICAgIHwKLSAgICAgICAgICAgICAgfC0+IHJh
bmdlIGZsYWcKLQotVGhlIHVwcGVyL2xvd2VyIGNhc2luZyBpbmZvcm1hdGlvbiBpcyBzZXQgb25s
eSBmb3IgY2hhcmFjdGVycyB0aGF0IGNvbWUgaW4KLXBhaXJzLiBUaGUgbm9uLW9uZS10by1vbmUg
bWFwcGluZ3MgaW4gdGhlIFVuaWNvZGUgZGF0YSBhcmUgaWdub3JlZC4KLQotV2hlbiBzZWFyY2hp
bmcgdGhlIGRhdGEsIHByb2NlZWQgYXMgZm9sbG93czoKLQotKDEpIFNldCB1cCBmb3IgYSBiaW5h
cnkgY2hvcCBzZWFyY2guCi0KLSgyKSBJZiB0aGUgdG9wIGlzIG5vdCBncmVhdGVyIHRoYW4gdGhl
IGJvdHRvbSwgdGhlIGNoYXJhY3RlciBpcyBub3QgaW4gdGhlCi0gICAgdGFibGUuIEl0cyB0eXBl
IG11c3QgdGhlcmVmb3JlIGJlICJDbiIgKCJVbmRlZmluZWQiKS4KLQotKDMpIEZpbmQgdGhlIG1p
ZGRsZSB2ZWN0b3IgZWxlbWVudC4KLQotKDQpIEV4dHJhY3QgdGhlIGNvZGUgcG9pbnQgYW5kIGNv
bXBhcmUuIElmIGVxdWFsLCB3ZSBhcmUgZG9uZS4KLQotKDUpIElmIHRoZSB0ZXN0IGNoYXJhY3Rl
ciBpcyBzbWFsbGVyLCBzZXQgdGhlIHRvcCB0byB0aGUgY3VycmVudCBwb2ludCwgYW5kCi0gICAg
Z290byAoMikuCi0KLSg2KSBJZiB0aGUgY3VycmVudCBlbnRyeSBkZWZpbmVzIGEgcmFuZ2UsIGNv
bXB1dGUgdGhlIGxhc3QgY2hhcmFjdGVyIGJ5IGFkZGluZwotICAgIHRoZSBvZmZzZXQsIGFuZCBz
ZWUgaWYgdGhlIHRlc3QgY2hhcmFjdGVyIGlzIHdpdGhpbiB0aGUgcmFuZ2UuIElmIGl0IGlzLAot
ICAgIHdlIGFyZSBkb25lLgotCi0oNykgT3RoZXJ3aXNlLCBzZXQgdGhlIGJvdHRvbSB0byBvbmUg
ZWxlbWVudCBwYXN0IHRoZSBjdXJyZW50IHBvaW50IGFuZCBnb3RvCi0gICAgKDIpLgotKi8KLQot
LyogRW5kIG9mIHVjcGludGVybmFsLmggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wY3JlL3VjcHRhYmxlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3VjcHRh
YmxlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDExZjdmNS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS91Y3B0YWJsZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwyOTY4ICswLDAgQEAKLS8qIFRoaXMgc291cmNlIG1vZHVsZSBpcyBhdXRvbWF0aWNh
bGx5IGdlbmVyYXRlZCBmcm9tIHRoZSBVbmljb2RlCi1wcm9wZXJ0eSB0YWJsZS4gU2VlIHVjcGlu
dGVybmFsLmggZm9yIGEgZGVzY3JpcHRpb24gb2YgdGhlIGxheW91dC4gKi8KLQotc3RhdGljIGNv
bnN0IGNub2RlIHVjcF90YWJsZVtdID0gewotICB7IDB4MDk4MDAwMDAsIDB4MDAwMDAwMWYgfSwK
LSAgeyAweDA5MDAwMDIwLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMDAyMSwgMHg1NDAwMDAw
MiB9LAotICB7IDB4MDkwMDAwMjQsIDB4NWMwMDAwMDAgfSwKLSAgeyAweDA5ODAwMDI1LCAweDU0
MDAwMDAyIH0sCi0gIHsgMHgwOTAwMDAyOCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwMjks
IDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDJhLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAw
MDAyYiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMDAwMmMsIDB4NTQwMDAwMDAgfSwKLSAgeyAw
eDA5MDAwMDJkLCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMDAyZSwgMHg1NDAwMDAwMSB9LAot
ICB7IDB4MDk4MDAwMzAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDA5ODAwMDNhLCAweDU0MDAwMDAx
IH0sCi0gIHsgMHgwOTgwMDAzYywgMHg2NDAwMDAwMiB9LAotICB7IDB4MDk4MDAwM2YsIDB4NTQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMDQxLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0Miwg
MHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNDMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAw
MDQ0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0NSwgMHgyNDAwMDAyMCB9LAotICB7IDB4
MjEwMDAwNDYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDQ3LCAweDI0MDAwMDIwIH0sCi0g
IHsgMHgyMTAwMDA0OCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNDksIDB4MjQwMDAwMjAg
fSwKLSAgeyAweDIxMDAwMDRhLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0YiwgMHgyNDAw
MDAyMCB9LAotICB7IDB4MjEwMDAwNGMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDRkLCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0ZSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAw
NGYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDUwLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgy
MTAwMDA1MSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNTIsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDIxMDAwMDUzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1NCwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MjEwMDAwNTUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDU2LCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgyMTAwMDA1NywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNTgsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDU5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1
YSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MDkwMDAwNWIsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDAwMDVjLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDA1ZCwgMHg0ODAwMDAwMCB9LAotICB7
IDB4MDkwMDAwNWUsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDVmLCAweDQwMDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMDA2MCwgMHg2MDAwMDAwMCB9LAotICB7IDB4MjEwMDAwNjEsIDB4MTQwMGZm
ZTAgfSwKLSAgeyAweDIxMDAwMDYyLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2MywgMHgx
NDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNjQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDY1
LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2NiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEw
MDAwNjcsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDY4LCAweDE0MDBmZmUwIH0sCi0gIHsg
MHgyMTAwMDA2OSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNmEsIDB4MTQwMGZmZTAgfSwK
LSAgeyAweDIxMDAwMDZiLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2YywgMHgxNDAwZmZl
MCB9LAotICB7IDB4MjEwMDAwNmQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDZlLCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2ZiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzAs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDcxLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAw
MDA3MiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzMsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDIxMDAwMDc0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3NSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MjEwMDAwNzYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDc3LCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgyMTAwMDA3OCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzksIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDIxMDAwMDdhLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwOTAwMDA3Yiwg
MHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwN2MsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAw
MDdkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDA3ZSwgMHg2NDAwMDAwMCB9LAotICB7IDB4
MDk4MDAwN2YsIDB4MDAwMDAwMjAgfSwKLSAgeyAweDA5MDAwMGEwLCAweDc0MDAwMDAwIH0sCi0g
IHsgMHgwOTAwMDBhMSwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDk4MDAwYTIsIDB4NWMwMDAwMDMg
fSwKLSAgeyAweDA5ODAwMGE2LCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwOTAwMDBhOCwgMHg2MDAw
MDAwMCB9LAotICB7IDB4MDkwMDAwYTksIDB4NjgwMDAwMDAgfSwKLSAgeyAweDIxMDAwMGFhLCAw
eDE0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBhYiwgMHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDAw
YWMsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGFkLCAweDA0MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMDBhZSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwYWYsIDB4NjAwMDAwMDAgfSwKLSAg
eyAweDA5MDAwMGIwLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBiMSwgMHg2NDAwMDAwMCB9
LAotICB7IDB4MDk4MDAwYjIsIDB4M2MwMDAwMDEgfSwKLSAgeyAweDA5MDAwMGI0LCAweDYwMDAw
MDAwIH0sCi0gIHsgMHgwOTAwMDBiNSwgMHgxNDAwMDJlNyB9LAotICB7IDB4MDkwMDAwYjYsIDB4
NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGI3LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBi
OCwgMHg2MDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYjksIDB4M2MwMDAwMDAgfSwKLSAgeyAweDIx
MDAwMGJhLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBiYiwgMHg0YzAwMDAwMCB9LAotICB7
IDB4MDk4MDAwYmMsIDB4M2MwMDAwMDIgfSwKLSAgeyAweDA5MDAwMGJmLCAweDU0MDAwMDAwIH0s
Ci0gIHsgMHgyMTAwMDBjMCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzEsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDAwMGMyLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjMywgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGM1
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjNiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MDAwYzcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGM4LCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgyMTAwMDBjOSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwY2EsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDIxMDAwMGNiLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjYywgMHgyNDAwMDAy
MCB9LAotICB7IDB4MjEwMDAwY2QsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGNlLCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjZiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZDAs
IDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGQxLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAw
MDBkMiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZDMsIDB4MjQwMDAwMjAgfSwKLSAgeyAw
eDIxMDAwMGQ0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkNSwgMHgyNDAwMDAyMCB9LAot
ICB7IDB4MjEwMDAwZDYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDA5MDAwMGQ3LCAweDY0MDAwMDAw
IH0sCi0gIHsgMHgyMTAwMDBkOCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZDksIDB4MjQw
MDAwMjAgfSwKLSAgeyAweDIxMDAwMGRhLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkYiwg
MHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZGMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAw
MGRkLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkZSwgMHgyNDAwMDAyMCB9LAotICB7IDB4
MjEwMDAwZGYsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMGUwLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwMDBlMSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZTIsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDAwMGUzLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlNCwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMDAwZTUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGU2LCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlNywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAw
ZTgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGU5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgy
MTAwMDBlYSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZWIsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDIxMDAwMGVjLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlZCwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MjEwMDAwZWUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGVmLCAweDE0MDBm
ZmUwIH0sCi0gIHsgMHgyMTAwMDBmMCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjEsIDB4
MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGYyLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBm
MywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIx
MDAwMGY1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmNiwgMHgxNDAwZmZlMCB9LAotICB7
IDB4MDkwMDAwZjcsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMGY4LCAweDE0MDBmZmUwIH0s
Ci0gIHsgMHgyMTAwMDBmOSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZmEsIDB4MTQwMGZm
ZTAgfSwKLSAgeyAweDIxMDAwMGZiLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmYywgMHgx
NDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZmQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGZl
LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmZiwgMHgxNDAwMDA3OSB9LAotICB7IDB4MjEw
MDAxMDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTAxLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDEwMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMDMsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMTA0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEwNSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxMDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTA3LCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMDks
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTBhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MDEwYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMTBkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwZSwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAxMGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTEwLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDExMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMTIsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMTEzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDExNCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MTE2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExNywgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDAxMTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTE5LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDExYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMWIsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAwMTFjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExZCwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDAxMWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTFmLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEyMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAx
MjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTIyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDEyMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMjQsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAwMTI1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEyNiwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAxMjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTI4LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDEyOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMmEsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTJiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEy
YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMTJlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEyZiwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxMzAsIDB4MjQwMGZmMzkgfSwKLSAgeyAweDIxMDAwMTMxLCAweDE0MDBmZjE4IH0s
Ci0gIHsgMHgyMTAwMDEzMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMzMsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMTM0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEzNSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTM3
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEzOCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEw
MDAxMzksIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTNhLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDEzYiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxM2MsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMTNkLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEzZSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxM2YsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTQwLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0MSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNDIs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTQzLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MDE0NCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNDUsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMTQ2LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0NywgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAxNDgsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTQ5LCAweDE0MDAwMDAw
IH0sCi0gIHsgMHgyMTAwMDE0YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNGIsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMTRjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE0ZCwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MTRmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE1MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAxNTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTUyLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDE1MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNTQsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMTU1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE1NiwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAxNTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTU4LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
NWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTViLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDE1YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNWQsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMTVlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1ZiwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAxNjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTYxLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDE2MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNjMsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTY0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE2
NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMTY3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2OCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAxNjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTZhLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMDE2YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNmMsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAwMTZkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2ZSwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNmYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTcw
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDAxNzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTczLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDE3NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNzUsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMTc2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3NywgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxNzgsIDB4MjQwMGZmODcgfSwKLSAgeyAweDIxMDAwMTc5LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3YSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxN2Is
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTdjLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDE3ZCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxN2UsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMTdmLCAweDE0MDBmZWQ0IH0sCi0gIHsgMHgyMTAwMDE4MCwgMHgxNDAwMDAwMCB9LAot
ICB7IDB4MjEwMDAxODEsIDB4MjQwMDAwZDIgfSwKLSAgeyAweDIxMDAwMTgyLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDE4MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxODQsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMTg1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE4Niwg
MHgyNDAwMDBjZSB9LAotICB7IDB4MjEwMDAxODcsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MTg4LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE4OSwgMHgyNDAwMDBjZCB9LAotICB7IDB4
MjEwMDAxOGEsIDB4MjQwMDAwY2QgfSwKLSAgeyAweDIxMDAwMThiLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDE4YywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxOGQsIDB4MTQwMDAwMDAg
fSwKLSAgeyAweDIxMDAwMThlLCAweDI0MDAwMDRmIH0sCi0gIHsgMHgyMTAwMDE4ZiwgMHgyNDAw
MDBjYSB9LAotICB7IDB4MjEwMDAxOTAsIDB4MjQwMDAwY2IgfSwKLSAgeyAweDIxMDAwMTkxLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE5MiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
OTMsIDB4MjQwMDAwY2QgfSwKLSAgeyAweDIxMDAwMTk0LCAweDI0MDAwMGNmIH0sCi0gIHsgMHgy
MTAwMDE5NSwgMHgxNDAwMDA2MSB9LAotICB7IDB4MjEwMDAxOTYsIDB4MjQwMDAwZDMgfSwKLSAg
eyAweDIxMDAwMTk3LCAweDI0MDAwMGQxIH0sCi0gIHsgMHgyMTAwMDE5OCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAxOTksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTlhLCAweDE0MDAw
MGEzIH0sCi0gIHsgMHgyMTAwMDE5YiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAxOWMsIDB4
MjQwMDAwZDMgfSwKLSAgeyAweDIxMDAwMTlkLCAweDI0MDAwMGQ1IH0sCi0gIHsgMHgyMTAwMDE5
ZSwgMHgxNDAwMDA4MiB9LAotICB7IDB4MjEwMDAxOWYsIDB4MjQwMDAwZDYgfSwKLSAgeyAweDIx
MDAwMWEwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFhMSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxYTIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWEzLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDFhNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYTUsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMWE2LCAweDI0MDAwMGRhIH0sCi0gIHsgMHgyMTAwMDFhNywgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYTgsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWE5
LCAweDI0MDAwMGRhIH0sCi0gIHsgMHgyMTgwMDFhYSwgMHgxNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxYWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWFkLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDFhZSwgMHgyNDAwMDBkYSB9LAotICB7IDB4MjEwMDAxYWYsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMWIwLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFiMSwgMHgyNDAwMDBk
OSB9LAotICB7IDB4MjEwMDAxYjIsIDB4MjQwMDAwZDkgfSwKLSAgeyAweDIxMDAwMWIzLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFiNCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYjUs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWI2LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDFiNywgMHgyNDAwMDBkYiB9LAotICB7IDB4MjEwMDAxYjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMWI5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFiYSwgMHgxNDAwMDAwMCB9LAot
ICB7IDB4MjEwMDAxYmIsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIxMDAwMWJjLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDFiZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYmUsIDB4MTQw
MDAwMDAgfSwKLSAgeyAweDIxMDAwMWJmLCAweDE0MDAwMDM4IH0sCi0gIHsgMHgyMTgwMDFjMCwg
MHgxYzAwMDAwMyB9LAotICB7IDB4MjEwMDAxYzQsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDIxMDAw
MWM1LCAweDIwMDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFjNiwgMHgxNDAwZmZmZSB9LAotICB7IDB4
MjEwMDAxYzcsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDIxMDAwMWM4LCAweDIwMDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDFjOSwgMHgxNDAwZmZmZSB9LAotICB7IDB4MjEwMDAxY2EsIDB4MjQwMDAwMDIg
fSwKLSAgeyAweDIxMDAwMWNiLCAweDIwMDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFjYywgMHgxNDAw
ZmZmZSB9LAotICB7IDB4MjEwMDAxY2QsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWNlLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFjZiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAx
ZDAsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWQxLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDFkMiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZDMsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAwMWQ0LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFkNSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAxZDYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWQ3LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDFkOCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZDksIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWRhLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFk
YiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZGMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMWRkLCAweDE0MDBmZmIxIH0sCi0gIHsgMHgyMTAwMDFkZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAxZGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWUwLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMDFlMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZTIsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAwMWUzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFlNCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWU2
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDAxZTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWU5LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDFlYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZWIsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMWVjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlZCwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxZWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWVmLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFmMCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAxZjEs
IDB4MjQwMDAwMDIgfSwKLSAgeyAweDIxMDAwMWYyLCAweDIwMDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDFmMywgMHgxNDAwZmZmZSB9LAotICB7IDB4MjEwMDAxZjQsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMWY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFmNiwgMHgyNDAwZmY5ZiB9LAot
ICB7IDB4MjEwMDAxZjcsIDB4MjQwMGZmYzggfSwKLSAgeyAweDIxMDAwMWY4LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDFmOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZmEsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMWZiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFmYywg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MWZlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFmZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDAyMDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjAxLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDIwMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMDMsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAwMjA0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIwNSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDAyMDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjA3LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAy
MDksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjBhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDIwYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMGMsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAwMjBkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwZSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAyMGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjEwLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDIxMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMTIsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjEzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIx
NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMjE2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIxNywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAyMTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjE5LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDIxYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMWIsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMjFjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIxZCwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjFm
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIyMCwgMHgyNDAwZmY3ZSB9LAotICB7IDB4MjEw
MDAyMjEsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjIyLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDIyMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMjQsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMjI1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIyNiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAyMjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjI4LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMmEs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjJiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDIyYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMjJlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyZiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAyMzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjMxLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMDIzMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMzMsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxODAwMjM0LCAweDE0MDAwMDA1IH0sCi0gIHsgMHgyMTAwMDIzYSwg
MHgyNDAwMDAwMCB9LAotICB7IDB4MjEwMDAyM2IsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MjNjLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIzZCwgMHgyNDAwZmY1ZCB9LAotICB7IDB4
MjEwMDAyM2UsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDIxODAwMjNmLCAweDE0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDI0MSwgMHgyNDAwMDA1MyB9LAotICB7IDB4MjE4MDAyNTAsIDB4MTQwMDAwMDIg
fSwKLSAgeyAweDIxMDAwMjUzLCAweDE0MDBmZjJlIH0sCi0gIHsgMHgyMTAwMDI1NCwgMHgxNDAw
ZmYzMiB9LAotICB7IDB4MjEwMDAyNTUsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjU2LCAw
eDE0MDBmZjMzIH0sCi0gIHsgMHgyMTAwMDI1NywgMHgxNDAwZmYzMyB9LAotICB7IDB4MjEwMDAy
NTgsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjU5LCAweDE0MDBmZjM2IH0sCi0gIHsgMHgy
MTAwMDI1YSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAyNWIsIDB4MTQwMGZmMzUgfSwKLSAg
eyAweDIxODAwMjVjLCAweDE0MDAwMDAzIH0sCi0gIHsgMHgyMTAwMDI2MCwgMHgxNDAwZmYzMyB9
LAotICB7IDB4MjE4MDAyNjEsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjYzLCAweDE0MDBm
ZjMxIH0sCi0gIHsgMHgyMTgwMDI2NCwgMHgxNDAwMDAwMyB9LAotICB7IDB4MjEwMDAyNjgsIDB4
MTQwMGZmMmYgfSwKLSAgeyAweDIxMDAwMjY5LCAweDE0MDBmZjJkIH0sCi0gIHsgMHgyMTgwMDI2
YSwgMHgxNDAwMDAwNCB9LAotICB7IDB4MjEwMDAyNmYsIDB4MTQwMGZmMmQgfSwKLSAgeyAweDIx
ODAwMjcwLCAweDE0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDI3MiwgMHgxNDAwZmYyYiB9LAotICB7
IDB4MjE4MDAyNzMsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjc1LCAweDE0MDBmZjJhIH0s
Ci0gIHsgMHgyMTgwMDI3NiwgMHgxNDAwMDAwOSB9LAotICB7IDB4MjEwMDAyODAsIDB4MTQwMGZm
MjYgfSwKLSAgeyAweDIxODAwMjgxLCAweDE0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDI4MywgMHgx
NDAwZmYyNiB9LAotICB7IDB4MjE4MDAyODQsIDB4MTQwMDAwMDMgfSwKLSAgeyAweDIxMDAwMjg4
LCAweDE0MDBmZjI2IH0sCi0gIHsgMHgyMTAwMDI4OSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEw
MDAyOGEsIDB4MTQwMGZmMjcgfSwKLSAgeyAweDIxMDAwMjhiLCAweDE0MDBmZjI3IH0sCi0gIHsg
MHgyMTgwMDI4YywgMHgxNDAwMDAwNSB9LAotICB7IDB4MjEwMDAyOTIsIDB4MTQwMGZmMjUgfSwK
LSAgeyAweDIxMDAwMjkzLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDI5NCwgMHgxNDAwZmZh
ZCB9LAotICB7IDB4MjE4MDAyOTUsIDB4MTQwMDAwMWEgfSwKLSAgeyAweDIxODAwMmIwLCAweDE4
MDAwMDExIH0sCi0gIHsgMHgwOTgwMDJjMiwgMHg2MDAwMDAwMyB9LAotICB7IDB4MDk4MDAyYzYs
IDB4MTgwMDAwMGIgfSwKLSAgeyAweDA5ODAwMmQyLCAweDYwMDAwMDBkIH0sCi0gIHsgMHgyMTgw
MDJlMCwgMHgxODAwMDAwNCB9LAotICB7IDB4MDk4MDAyZTUsIDB4NjAwMDAwMDggfSwKLSAgeyAw
eDA5MDAwMmVlLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMDJlZiwgMHg2MDAwMDAxMCB9LAot
ICB7IDB4MWI4MDAzMDAsIDB4MzAwMDAwNDQgfSwKLSAgeyAweDFiMDAwMzQ1LCAweDMwMDAwMDU0
IH0sCi0gIHsgMHgxYjgwMDM0NiwgMHgzMDAwMDAyOSB9LAotICB7IDB4MTM4MDAzNzQsIDB4NjAw
MDAwMDEgfSwKLSAgeyAweDEzMDAwMzdhLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDM3ZSwg
MHg1NDAwMDAwMCB9LAotICB7IDB4MTM4MDAzODQsIDB4NjAwMDAwMDEgfSwKLSAgeyAweDEzMDAw
Mzg2LCAweDI0MDAwMDI2IH0sCi0gIHsgMHgwOTAwMDM4NywgMHg1NDAwMDAwMCB9LAotICB7IDB4
MTMwMDAzODgsIDB4MjQwMDAwMjUgfSwKLSAgeyAweDEzMDAwMzg5LCAweDI0MDAwMDI1IH0sCi0g
IHsgMHgxMzAwMDM4YSwgMHgyNDAwMDAyNSB9LAotICB7IDB4MTMwMDAzOGMsIDB4MjQwMDAwNDAg
fSwKLSAgeyAweDEzMDAwMzhlLCAweDI0MDAwMDNmIH0sCi0gIHsgMHgxMzAwMDM4ZiwgMHgyNDAw
MDAzZiB9LAotICB7IDB4MTMwMDAzOTAsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAwMzkxLCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5MiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAz
OTMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzk0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgx
MzAwMDM5NSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOTYsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDEzMDAwMzk3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5OCwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MTMwMDAzOTksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzlhLCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgxMzAwMDM5YiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOWMsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzlkLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5
ZSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOWYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEz
MDAwM2EwLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNhMSwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MTMwMDAzYTMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2E0LCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgxMzAwMDNhNSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTYsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDEzMDAwM2E3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNhOCwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2Fh
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNhYiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMw
MDAzYWMsIDB4MTQwMGZmZGEgfSwKLSAgeyAweDEzMDAwM2FkLCAweDE0MDBmZmRiIH0sCi0gIHsg
MHgxMzAwMDNhZSwgMHgxNDAwZmZkYiB9LAotICB7IDB4MTMwMDAzYWYsIDB4MTQwMGZmZGIgfSwK
LSAgeyAweDEzMDAwM2IwLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMDNiMSwgMHgxNDAwZmZl
MCB9LAotICB7IDB4MTMwMDAzYjIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2IzLCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiNCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYjUs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2I2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAw
MDNiNywgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYjgsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDEzMDAwM2I5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiYSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MTMwMDAzYmIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2JjLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgxMzAwMDNiZCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYmUsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDEzMDAwM2JmLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjMCwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYzEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAw
M2MyLCAweDE0MDBmZmUxIH0sCi0gIHsgMHgxMzAwMDNjMywgMHgxNDAwZmZlMCB9LAotICB7IDB4
MTMwMDAzYzQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2M1LCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgxMzAwMDNjNiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYzcsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDEzMDAwM2M4LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjOSwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MTMwMDAzY2EsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2NiLCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjYywgMHgxNDAwZmZjMCB9LAotICB7IDB4MTMwMDAz
Y2QsIDB4MTQwMGZmYzEgfSwKLSAgeyAweDEzMDAwM2NlLCAweDE0MDBmZmMxIH0sCi0gIHsgMHgx
MzAwMDNkMCwgMHgxNDAwZmZjMiB9LAotICB7IDB4MTMwMDAzZDEsIDB4MTQwMGZmYzcgfSwKLSAg
eyAweDEzODAwM2QyLCAweDI0MDAwMDAyIH0sCi0gIHsgMHgxMzAwMDNkNSwgMHgxNDAwZmZkMSB9
LAotICB7IDB4MTMwMDAzZDYsIDB4MTQwMGZmY2EgfSwKLSAgeyAweDEzMDAwM2Q3LCAweDE0MDAw
MDAwIH0sCi0gIHsgMHgxMzAwMDNkOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MTMwMDAzZDksIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2RhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgxMzAwMDNk
YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDEz
MDAwM2RkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNkZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MTMwMDAzZGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2UwLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgxMzAwMDNlMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDAzZTIsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBhMDAwM2UzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMDNlNCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGEwMDAzZTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAwM2U2
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEw
MDAzZTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2U5LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYTAwMDNlYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDAzZWIsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBhMDAwM2VjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlZCwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGEwMDAzZWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2VmLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNmMCwgMHgxNDAwZmZhYSB9LAotICB7IDB4MTMwMDAzZjEs
IDB4MTQwMGZmYjAgfSwKLSAgeyAweDEzMDAwM2YyLCAweDE0MDAwMDA3IH0sCi0gIHsgMHgxMzAw
MDNmMywgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDAzZjQsIDB4MjQwMGZmYzQgfSwKLSAgeyAw
eDEzMDAwM2Y1LCAweDE0MDBmZmEwIH0sCi0gIHsgMHgxMzAwMDNmNiwgMHg2NDAwMDAwMCB9LAot
ICB7IDB4MTMwMDAzZjcsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDEzMDAwM2Y4LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgxMzAwMDNmOSwgMHgyNDAwZmZmOSB9LAotICB7IDB4MTMwMDAzZmEsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDEzMDAwM2ZiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNmYywg
MHgxNDAwMDAwMCB9LAotICB7IDB4MTM4MDAzZmQsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDBjMDAw
NDAwLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwMSwgMHgyNDAwMDA1MCB9LAotICB7IDB4
MGMwMDA0MDIsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDAzLCAweDI0MDAwMDUwIH0sCi0g
IHsgMHgwYzAwMDQwNCwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MDUsIDB4MjQwMDAwNTAg
fSwKLSAgeyAweDBjMDAwNDA2LCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwNywgMHgyNDAw
MDA1MCB9LAotICB7IDB4MGMwMDA0MDgsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDA5LCAw
eDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwYSwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0
MGIsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDBjLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgw
YzAwMDQwZCwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MGUsIDB4MjQwMDAwNTAgfSwKLSAg
eyAweDBjMDAwNDBmLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQxMCwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MGMwMDA0MTEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDEyLCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgwYzAwMDQxMywgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MTQsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDE1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQx
NiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MTcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBj
MDAwNDE4LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxOSwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MGMwMDA0MWEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDFiLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgwYzAwMDQxYywgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MWQsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDBjMDAwNDFlLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxZiwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjAsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDIx
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyMiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMw
MDA0MjMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDI0LCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgwYzAwMDQyNSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjYsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDBjMDAwNDI3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyOCwgMHgyNDAwMDAy
MCB9LAotICB7IDB4MGMwMDA0MjksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDJhLCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyYiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MmMs
IDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDJkLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAw
MDQyZSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MmYsIDB4MjQwMDAwMjAgfSwKLSAgeyAw
eDBjMDAwNDMwLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzMSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MGMwMDA0MzIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDMzLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgwYzAwMDQzNCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzUsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDBjMDAwNDM2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzNywg
MHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAw
NDM5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzYSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MGMwMDA0M2IsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDNjLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgwYzAwMDQzZCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0M2UsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDBjMDAwNDNmLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0MCwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MGMwMDA0NDEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQyLCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0MywgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0
NDQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQ1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgw
YzAwMDQ0NiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NDcsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDBjMDAwNDQ4LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0OSwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MGMwMDA0NGEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDRiLCAweDE0MDBm
ZmUwIH0sCi0gIHsgMHgwYzAwMDQ0YywgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NGQsIDB4
MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDRlLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0
ZiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NTAsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBj
MDAwNDUxLCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1MiwgMHgxNDAwZmZiMCB9LAotICB7
IDB4MGMwMDA0NTMsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDU0LCAweDE0MDBmZmIwIH0s
Ci0gIHsgMHgwYzAwMDQ1NSwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTYsIDB4MTQwMGZm
YjAgfSwKLSAgeyAweDBjMDAwNDU3LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1OCwgMHgx
NDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTksIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDVh
LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1YiwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMw
MDA0NWMsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDVkLCAweDE0MDBmZmIwIH0sCi0gIHsg
MHgwYzAwMDQ1ZSwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NWYsIDB4MTQwMGZmYjAgfSwK
LSAgeyAweDBjMDAwNDYwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ2MSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGMwMDA0NjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDYzLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ2NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NjUs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDY2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAw
MDQ2NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDBjMDAwNDY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ2YSwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MGMwMDA0NmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDZjLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgwYzAwMDQ2ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NmUsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDBjMDAwNDZmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ3MCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NzEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAw
NDcyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ3MywgMHgxNDAwZmZmZiB9LAotICB7IDB4
MGMwMDA0NzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDc1LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgwYzAwMDQ3NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NzcsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBjMDAwNDc4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ3OSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGMwMDA0N2EsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDdiLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ3YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0
N2QsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDdlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDQ3ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ODAsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNDgxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ4MiwgMHg2ODAwMDAwMCB9
LAotICB7IDB4MGM4MDA0ODMsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDBjODAwNDg4LCAweDJjMDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDQ4YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OGIsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDhjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ4
ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBj
MDAwNDhmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ5MCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGMwMDA0OTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDkyLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwYzAwMDQ5MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OTQsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBjMDAwNDk1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ5NiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDk4
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMw
MDA0OWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDliLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYzAwMDQ5YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OWQsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBjMDAwNDllLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5ZiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGMwMDA0YTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGExLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YTMs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGE0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAw
MDRhNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDBjMDAwNGE3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhOCwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MGMwMDA0YTksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGFhLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgwYzAwMDRhYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YWMsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDBjMDAwNGFkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhZSwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAw
NGIwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRiMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MGMwMDA0YjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGIzLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgwYzAwMDRiNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YjUsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBjMDAwNGI2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRiNywgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGMwMDA0YjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGI5LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRiYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0
YmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGJjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDRiZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YmUsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNGJmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRjMCwgMHgyNDAwMDAwMCB9
LAotICB7IDB4MGMwMDA0YzEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGMyLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYzAwMDRjMywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YzQsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGM1LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRj
NiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YzcsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBj
MDAwNGM4LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRjOSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGMwMDA0Y2EsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGNiLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwYzAwMDRjYywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0Y2QsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBjMDAwNGNlLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRkMCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZDEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGQy
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRkMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMw
MDA0ZDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGQ1LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYzAwMDRkNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZDcsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBjMDAwNGQ4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRkOSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGMwMDA0ZGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGRiLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRkYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZGQs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGRlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAw
MDRkZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDBjMDAwNGUxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRlMiwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MGMwMDA0ZTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGU0LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgwYzAwMDRlNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZTYsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDBjMDAwNGU3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRlOCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZTksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAw
NGVhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MGMwMDA0ZWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGVkLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgwYzAwMDRlZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZWYsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBjMDAwNGYwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRmMSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGMwMDA0ZjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGYzLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRmNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0
ZjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGY2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDRmNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZjgsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNGY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDUwMCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGMwMDA1MDEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNTAyLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDUwMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA1MDQsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTA1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDUw
NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MDcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBj
MDAwNTA4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUwOSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGMwMDA1MGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTBiLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYzAwMDUwYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MGQsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBjMDAwNTBlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUwZiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MDEwMDA1MzEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTMy
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzMywgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEw
MDA1MzQsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTM1LCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgwMTAwMDUzNiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1MzcsIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDAxMDAwNTM4LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzOSwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MDEwMDA1M2EsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTNiLCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzYywgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1M2Qs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTNlLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAw
MDUzZiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDAsIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDAxMDAwNTQxLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0MiwgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MDEwMDA1NDMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQ0LCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgwMTAwMDU0NSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDYsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDAxMDAwNTQ3LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0OCwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDksIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAw
NTRhLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0YiwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MDEwMDA1NGMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTRkLCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgwMTAwMDU0ZSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NGYsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDAxMDAwNTUwLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU1MSwgMHgyNDAw
MDAzMCB9LAotICB7IDB4MDEwMDA1NTIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTUzLCAw
eDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU1NCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1
NTUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTU2LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgw
MTAwMDU1OSwgMHgxODAwMDAwMCB9LAotICB7IDB4MDE4MDA1NWEsIDB4NTQwMDAwMDUgfSwKLSAg
eyAweDAxMDAwNTYxLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2MiwgMHgxNDAwZmZkMCB9
LAotICB7IDB4MDEwMDA1NjMsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTY0LCAweDE0MDBm
ZmQwIH0sCi0gIHsgMHgwMTAwMDU2NSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NjYsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTY3LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2
OCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NjksIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAx
MDAwNTZhLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2YiwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MDEwMDA1NmMsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTZkLCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgwMTAwMDU2ZSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NmYsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDAxMDAwNTcwLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3MSwgMHgx
NDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzIsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTcz
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3NCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEw
MDA1NzUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTc2LCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgwMTAwMDU3NywgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzgsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDAxMDAwNTc5LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3YSwgMHgxNDAwZmZk
MCB9LAotICB7IDB4MDEwMDA1N2IsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTdjLCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3ZCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1N2Us
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTdmLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAw
MDU4MCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1ODEsIDB4MTQwMGZmZDAgfSwKLSAgeyAw
eDAxMDAwNTgyLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU4MywgMHgxNDAwZmZkMCB9LAot
ICB7IDB4MDEwMDA1ODQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTg1LCAweDE0MDBmZmQw
IH0sCi0gIHsgMHgwMTAwMDU4NiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1ODcsIDB4MTQw
MDAwMDAgfSwKLSAgeyAweDA5MDAwNTg5LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwMTAwMDU4YSwg
MHg0NDAwMDAwMCB9LAotICB7IDB4MTk4MDA1OTEsIDB4MzAwMDAwMjggfSwKLSAgeyAweDE5ODAw
NWJiLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgxOTAwMDViZSwgMHg1NDAwMDAwMCB9LAotICB7IDB4
MTkwMDA1YmYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDE5MDAwNWMwLCAweDU0MDAwMDAwIH0sCi0g
IHsgMHgxOTgwMDVjMSwgMHgzMDAwMDAwMSB9LAotICB7IDB4MTkwMDA1YzMsIDB4NTQwMDAwMDAg
fSwKLSAgeyAweDE5ODAwNWM0LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxOTAwMDVjNiwgMHg1NDAw
MDAwMCB9LAotICB7IDB4MTkwMDA1YzcsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDE5ODAwNWQwLCAw
eDFjMDAwMDFhIH0sCi0gIHsgMHgxOTgwMDVmMCwgMHgxYzAwMDAwMiB9LAotICB7IDB4MTk4MDA1
ZjMsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5ODAwNjAwLCAweDA0MDAwMDAzIH0sCi0gIHsgMHgw
MDAwMDYwYiwgMHg1YzAwMDAwMCB9LAotICB7IDB4MDk4MDA2MGMsIDB4NTQwMDAwMDEgfSwKLSAg
eyAweDAwODAwNjBlLCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwMDgwMDYxMCwgMHgzMDAwMDAwNSB9
LAotICB7IDB4MDkwMDA2MWIsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDAwODAwNjFlLCAweDU0MDAw
MDAxIH0sCi0gIHsgMHgwMDgwMDYyMSwgMHgxYzAwMDAxOSB9LAotICB7IDB4MDkwMDA2NDAsIDB4
MTgwMDAwMDAgfSwKLSAgeyAweDAwODAwNjQxLCAweDFjMDAwMDA5IH0sCi0gIHsgMHgxYjgwMDY0
YiwgMHgzMDAwMDAxMyB9LAotICB7IDB4MDk4MDA2NjAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDAw
ODAwNjZhLCAweDU0MDAwMDAzIH0sCi0gIHsgMHgwMDgwMDY2ZSwgMHgxYzAwMDAwMSB9LAotICB7
IDB4MWIwMDA2NzAsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDAwODAwNjcxLCAweDFjMDAwMDYyIH0s
Ci0gIHsgMHgwMDAwMDZkNCwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDAwMDA2ZDUsIDB4MWMwMDAw
MDAgfSwKLSAgeyAweDAwODAwNmQ2LCAweDMwMDAwMDA2IH0sCi0gIHsgMHgwOTAwMDZkZCwgMHgw
NDAwMDAwMCB9LAotICB7IDB4MDAwMDA2ZGUsIDB4MmMwMDAwMDAgfSwKLSAgeyAweDAwODAwNmRm
LCAweDMwMDAwMDA1IH0sCi0gIHsgMHgwMDgwMDZlNSwgMHgxODAwMDAwMSB9LAotICB7IDB4MDA4
MDA2ZTcsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDAwMDAwNmU5LCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgwMDgwMDZlYSwgMHgzMDAwMDAwMyB9LAotICB7IDB4MDA4MDA2ZWUsIDB4MWMwMDAwMDEgfSwK
LSAgeyAweDAwODAwNmYwLCAweDM0MDAwMDA5IH0sCi0gIHsgMHgwMDgwMDZmYSwgMHgxYzAwMDAw
MiB9LAotICB7IDB4MDA4MDA2ZmQsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDAwMDAwNmZmLCAweDFj
MDAwMDAwIH0sCi0gIHsgMHgzMTgwMDcwMCwgMHg1NDAwMDAwZCB9LAotICB7IDB4MzEwMDA3MGYs
IDB4MDQwMDAwMDAgfSwKLSAgeyAweDMxMDAwNzEwLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgzMTAw
MDcxMSwgMHgzMDAwMDAwMCB9LAotICB7IDB4MzE4MDA3MTIsIDB4MWMwMDAwMWQgfSwKLSAgeyAw
eDMxODAwNzMwLCAweDMwMDAwMDFhIH0sCi0gIHsgMHgzMTgwMDc0ZCwgMHgxYzAwMDAyMCB9LAot
ICB7IDB4Mzc4MDA3ODAsIDB4MWMwMDAwMjUgfSwKLSAgeyAweDM3ODAwN2E2LCAweDMwMDAwMDBh
IH0sCi0gIHsgMHgzNzAwMDdiMSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MGU4MDA5MDEsIDB4MzAw
MDAwMDEgfSwKLSAgeyAweDBlMDAwOTAzLCAweDI4MDAwMDAwIH0sCi0gIHsgMHgwZTgwMDkwNCwg
MHgxYzAwMDAzNSB9LAotICB7IDB4MGUwMDA5M2MsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDBlMDAw
OTNkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwZTgwMDkzZSwgMHgyODAwMDAwMiB9LAotICB7IDB4
MGU4MDA5NDEsIDB4MzAwMDAwMDcgfSwKLSAgeyAweDBlODAwOTQ5LCAweDI4MDAwMDAzIH0sCi0g
IHsgMHgwZTAwMDk0ZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MGUwMDA5NTAsIDB4MWMwMDAwMDAg
fSwKLSAgeyAweDBlODAwOTUxLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgwZTgwMDk1OCwgMHgxYzAw
MDAwOSB9LAotICB7IDB4MGU4MDA5NjIsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDA5ODAwOTY0LCAw
eDU0MDAwMDAxIH0sCi0gIHsgMHgwZTgwMDk2NiwgMHgzNDAwMDAwOSB9LAotICB7IDB4MDkwMDA5
NzAsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDBlMDAwOTdkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgw
MjAwMDk4MSwgMHgzMDAwMDAwMCB9LAotICB7IDB4MDI4MDA5ODIsIDB4MjgwMDAwMDEgfSwKLSAg
eyAweDAyODAwOTg1LCAweDFjMDAwMDA3IH0sCi0gIHsgMHgwMjgwMDk4ZiwgMHgxYzAwMDAwMSB9
LAotICB7IDB4MDI4MDA5OTMsIDB4MWMwMDAwMTUgfSwKLSAgeyAweDAyODAwOWFhLCAweDFjMDAw
MDA2IH0sCi0gIHsgMHgwMjAwMDliMiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MDI4MDA5YjYsIDB4
MWMwMDAwMDMgfSwKLSAgeyAweDAyMDAwOWJjLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgwMjAwMDli
ZCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MDI4MDA5YmUsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDAy
ODAwOWMxLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgwMjgwMDljNywgMHgyODAwMDAwMSB9LAotICB7
IDB4MDI4MDA5Y2IsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDAyMDAwOWNkLCAweDMwMDAwMDAwIH0s
Ci0gIHsgMHgwMjAwMDljZSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MDIwMDA5ZDcsIDB4MjgwMDAw
MDAgfSwKLSAgeyAweDAyODAwOWRjLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgwMjgwMDlkZiwgMHgx
YzAwMDAwMiB9LAotICB7IDB4MDI4MDA5ZTIsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDAyODAwOWU2
LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgwMjgwMDlmMCwgMHgxYzAwMDAwMSB9LAotICB7IDB4MDI4
MDA5ZjIsIDB4NWMwMDAwMDEgfSwKLSAgeyAweDAyODAwOWY0LCAweDNjMDAwMDA1IH0sCi0gIHsg
MHgwMjAwMDlmYSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MTU4MDBhMDEsIDB4MzAwMDAwMDEgfSwK
LSAgeyAweDE1MDAwYTAzLCAweDI4MDAwMDAwIH0sCi0gIHsgMHgxNTgwMGEwNSwgMHgxYzAwMDAw
NSB9LAotICB7IDB4MTU4MDBhMGYsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDE1ODAwYTEzLCAweDFj
MDAwMDE1IH0sCi0gIHsgMHgxNTgwMGEyYSwgMHgxYzAwMDAwNiB9LAotICB7IDB4MTU4MDBhMzIs
IDB4MWMwMDAwMDEgfSwKLSAgeyAweDE1ODAwYTM1LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgxNTgw
MGEzOCwgMHgxYzAwMDAwMSB9LAotICB7IDB4MTUwMDBhM2MsIDB4MzAwMDAwMDAgfSwKLSAgeyAw
eDE1ODAwYTNlLCAweDI4MDAwMDAyIH0sCi0gIHsgMHgxNTgwMGE0MSwgMHgzMDAwMDAwMSB9LAot
ICB7IDB4MTU4MDBhNDcsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE1ODAwYTRiLCAweDMwMDAwMDAy
IH0sCi0gIHsgMHgxNTgwMGE1OSwgMHgxYzAwMDAwMyB9LAotICB7IDB4MTUwMDBhNWUsIDB4MWMw
MDAwMDAgfSwKLSAgeyAweDE1ODAwYTY2LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgxNTgwMGE3MCwg
MHgzMDAwMDAwMSB9LAotICB7IDB4MTU4MDBhNzIsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDE0ODAw
YTgxLCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxNDAwMGE4MywgMHgyODAwMDAwMCB9LAotICB7IDB4
MTQ4MDBhODUsIDB4MWMwMDAwMDggfSwKLSAgeyAweDE0ODAwYThmLCAweDFjMDAwMDAyIH0sCi0g
IHsgMHgxNDgwMGE5MywgMHgxYzAwMDAxNSB9LAotICB7IDB4MTQ4MDBhYWEsIDB4MWMwMDAwMDYg
fSwKLSAgeyAweDE0ODAwYWIyLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgxNDgwMGFiNSwgMHgxYzAw
MDAwNCB9LAotICB7IDB4MTQwMDBhYmMsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDE0MDAwYWJkLCAw
eDFjMDAwMDAwIH0sCi0gIHsgMHgxNDgwMGFiZSwgMHgyODAwMDAwMiB9LAotICB7IDB4MTQ4MDBh
YzEsIDB4MzAwMDAwMDQgfSwKLSAgeyAweDE0ODAwYWM3LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgx
NDAwMGFjOSwgMHgyODAwMDAwMCB9LAotICB7IDB4MTQ4MDBhY2IsIDB4MjgwMDAwMDEgfSwKLSAg
eyAweDE0MDAwYWNkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxNDAwMGFkMCwgMHgxYzAwMDAwMCB9
LAotICB7IDB4MTQ4MDBhZTAsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDE0ODAwYWUyLCAweDMwMDAw
MDAxIH0sCi0gIHsgMHgxNDgwMGFlNiwgMHgzNDAwMDAwOSB9LAotICB7IDB4MTQwMDBhZjEsIDB4
NWMwMDAwMDAgfSwKLSAgeyAweDJiMDAwYjAxLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyYjgwMGIw
MiwgMHgyODAwMDAwMSB9LAotICB7IDB4MmI4MDBiMDUsIDB4MWMwMDAwMDcgfSwKLSAgeyAweDJi
ODAwYjBmLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgyYjgwMGIxMywgMHgxYzAwMDAxNSB9LAotICB7
IDB4MmI4MDBiMmEsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDJiODAwYjMyLCAweDFjMDAwMDAxIH0s
Ci0gIHsgMHgyYjgwMGIzNSwgMHgxYzAwMDAwNCB9LAotICB7IDB4MmIwMDBiM2MsIDB4MzAwMDAw
MDAgfSwKLSAgeyAweDJiMDAwYjNkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyYjAwMGIzZSwgMHgy
ODAwMDAwMCB9LAotICB7IDB4MmIwMDBiM2YsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDJiMDAwYjQw
LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgyYjgwMGI0MSwgMHgzMDAwMDAwMiB9LAotICB7IDB4MmI4
MDBiNDcsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDJiODAwYjRiLCAweDI4MDAwMDAxIH0sCi0gIHsg
MHgyYjAwMGI0ZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MmIwMDBiNTYsIDB4MzAwMDAwMDAgfSwK
LSAgeyAweDJiMDAwYjU3LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgyYjgwMGI1YywgMHgxYzAwMDAw
MSB9LAotICB7IDB4MmI4MDBiNWYsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDJiODAwYjY2LCAweDM0
MDAwMDA5IH0sCi0gIHsgMHgyYjAwMGI3MCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MmIwMDBiNzEs
IDB4MWMwMDAwMDAgfSwKLSAgeyAweDM1MDAwYjgyLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzNTAw
MGI4MywgMHgxYzAwMDAwMCB9LAotICB7IDB4MzU4MDBiODUsIDB4MWMwMDAwMDUgfSwKLSAgeyAw
eDM1ODAwYjhlLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgzNTgwMGI5MiwgMHgxYzAwMDAwMyB9LAot
ICB7IDB4MzU4MDBiOTksIDB4MWMwMDAwMDEgfSwKLSAgeyAweDM1MDAwYjljLCAweDFjMDAwMDAw
IH0sCi0gIHsgMHgzNTgwMGI5ZSwgMHgxYzAwMDAwMSB9LAotICB7IDB4MzU4MDBiYTMsIDB4MWMw
MDAwMDEgfSwKLSAgeyAweDM1ODAwYmE4LCAweDFjMDAwMDAyIH0sCi0gIHsgMHgzNTgwMGJhZSwg
MHgxYzAwMDAwYiB9LAotICB7IDB4MzU4MDBiYmUsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDM1MDAw
YmMwLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzNTgwMGJjMSwgMHgyODAwMDAwMSB9LAotICB7IDB4
MzU4MDBiYzYsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDM1ODAwYmNhLCAweDI4MDAwMDAyIH0sCi0g
IHsgMHgzNTAwMGJjZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MzUwMDBiZDcsIDB4MjgwMDAwMDAg
fSwKLSAgeyAweDM1ODAwYmU2LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgzNTgwMGJmMCwgMHgzYzAw
MDAwMiB9LAotICB7IDB4MzU4MDBiZjMsIDB4NjgwMDAwMDUgfSwKLSAgeyAweDM1MDAwYmY5LCAw
eDVjMDAwMDAwIH0sCi0gIHsgMHgzNTAwMGJmYSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MzY4MDBj
MDEsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDM2ODAwYzA1LCAweDFjMDAwMDA3IH0sCi0gIHsgMHgz
NjgwMGMwZSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MzY4MDBjMTIsIDB4MWMwMDAwMTYgfSwKLSAg
eyAweDM2ODAwYzJhLCAweDFjMDAwMDA5IH0sCi0gIHsgMHgzNjgwMGMzNSwgMHgxYzAwMDAwNCB9
LAotICB7IDB4MzY4MDBjM2UsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDM2ODAwYzQxLCAweDI4MDAw
MDAzIH0sCi0gIHsgMHgzNjgwMGM0NiwgMHgzMDAwMDAwMiB9LAotICB7IDB4MzY4MDBjNGEsIDB4
MzAwMDAwMDMgfSwKLSAgeyAweDM2ODAwYzU1LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgzNjgwMGM2
MCwgMHgxYzAwMDAwMSB9LAotICB7IDB4MzY4MDBjNjYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDFj
ODAwYzgyLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgxYzgwMGM4NSwgMHgxYzAwMDAwNyB9LAotICB7
IDB4MWM4MDBjOGUsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDFjODAwYzkyLCAweDFjMDAwMDE2IH0s
Ci0gIHsgMHgxYzgwMGNhYSwgMHgxYzAwMDAwOSB9LAotICB7IDB4MWM4MDBjYjUsIDB4MWMwMDAw
MDQgfSwKLSAgeyAweDFjMDAwY2JjLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxYzAwMGNiZCwgMHgx
YzAwMDAwMCB9LAotICB7IDB4MWMwMDBjYmUsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDFjMDAwY2Jm
LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxYzgwMGNjMCwgMHgyODAwMDAwNCB9LAotICB7IDB4MWMw
MDBjYzYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFjODAwY2M3LCAweDI4MDAwMDAxIH0sCi0gIHsg
MHgxYzgwMGNjYSwgMHgyODAwMDAwMSB9LAotICB7IDB4MWM4MDBjY2MsIDB4MzAwMDAwMDEgfSwK
LSAgeyAweDFjODAwY2Q1LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgxYzAwMGNkZSwgMHgxYzAwMDAw
MCB9LAotICB7IDB4MWM4MDBjZTAsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDFjODAwY2U2LCAweDM0
MDAwMDA5IH0sCi0gIHsgMHgyNDgwMGQwMiwgMHgyODAwMDAwMSB9LAotICB7IDB4MjQ4MDBkMDUs
IDB4MWMwMDAwMDcgfSwKLSAgeyAweDI0ODAwZDBlLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgyNDgw
MGQxMiwgMHgxYzAwMDAxNiB9LAotICB7IDB4MjQ4MDBkMmEsIDB4MWMwMDAwMGYgfSwKLSAgeyAw
eDI0ODAwZDNlLCAweDI4MDAwMDAyIH0sCi0gIHsgMHgyNDgwMGQ0MSwgMHgzMDAwMDAwMiB9LAot
ICB7IDB4MjQ4MDBkNDYsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDI0ODAwZDRhLCAweDI4MDAwMDAy
IH0sCi0gIHsgMHgyNDAwMGQ0ZCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MjQwMDBkNTcsIDB4Mjgw
MDAwMDAgfSwKLSAgeyAweDI0ODAwZDYwLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgyNDgwMGQ2Niwg
MHgzNDAwMDAwOSB9LAotICB7IDB4MmY4MDBkODIsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDJmODAw
ZDg1LCAweDFjMDAwMDExIH0sCi0gIHsgMHgyZjgwMGQ5YSwgMHgxYzAwMDAxNyB9LAotICB7IDB4
MmY4MDBkYjMsIDB4MWMwMDAwMDggfSwKLSAgeyAweDJmMDAwZGJkLCAweDFjMDAwMDAwIH0sCi0g
IHsgMHgyZjgwMGRjMCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MmYwMDBkY2EsIDB4MzAwMDAwMDAg
fSwKLSAgeyAweDJmODAwZGNmLCAweDI4MDAwMDAyIH0sCi0gIHsgMHgyZjgwMGRkMiwgMHgzMDAw
MDAwMiB9LAotICB7IDB4MmYwMDBkZDYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDJmODAwZGQ4LCAw
eDI4MDAwMDA3IH0sCi0gIHsgMHgyZjgwMGRmMiwgMHgyODAwMDAwMSB9LAotICB7IDB4MmYwMDBk
ZjQsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDM4ODAwZTAxLCAweDFjMDAwMDJmIH0sCi0gIHsgMHgz
ODAwMGUzMSwgMHgzMDAwMDAwMCB9LAotICB7IDB4Mzg4MDBlMzIsIDB4MWMwMDAwMDEgfSwKLSAg
eyAweDM4ODAwZTM0LCAweDMwMDAwMDA2IH0sCi0gIHsgMHgwOTAwMGUzZiwgMHg1YzAwMDAwMCB9
LAotICB7IDB4Mzg4MDBlNDAsIDB4MWMwMDAwMDUgfSwKLSAgeyAweDM4MDAwZTQ2LCAweDE4MDAw
MDAwIH0sCi0gIHsgMHgzODgwMGU0NywgMHgzMDAwMDAwNyB9LAotICB7IDB4MzgwMDBlNGYsIDB4
NTQwMDAwMDAgfSwKLSAgeyAweDM4ODAwZTUwLCAweDM0MDAwMDA5IH0sCi0gIHsgMHgzODgwMGU1
YSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MjA4MDBlODEsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDIw
MDAwZTg0LCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyMDgwMGU4NywgMHgxYzAwMDAwMSB9LAotICB7
IDB4MjAwMDBlOGEsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIwMDAwZThkLCAweDFjMDAwMDAwIH0s
Ci0gIHsgMHgyMDgwMGU5NCwgMHgxYzAwMDAwMyB9LAotICB7IDB4MjA4MDBlOTksIDB4MWMwMDAw
MDYgfSwKLSAgeyAweDIwODAwZWExLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgyMDAwMGVhNSwgMHgx
YzAwMDAwMCB9LAotICB7IDB4MjAwMDBlYTcsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIwODAwZWFh
LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgyMDgwMGVhZCwgMHgxYzAwMDAwMyB9LAotICB7IDB4MjAw
MDBlYjEsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDIwODAwZWIyLCAweDFjMDAwMDAxIH0sCi0gIHsg
MHgyMDgwMGViNCwgMHgzMDAwMDAwNSB9LAotICB7IDB4MjA4MDBlYmIsIDB4MzAwMDAwMDEgfSwK
LSAgeyAweDIwMDAwZWJkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyMDgwMGVjMCwgMHgxYzAwMDAw
NCB9LAotICB7IDB4MjAwMDBlYzYsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDIwODAwZWM4LCAweDMw
MDAwMDA1IH0sCi0gIHsgMHgyMDgwMGVkMCwgMHgzNDAwMDAwOSB9LAotICB7IDB4MjA4MDBlZGMs
IDB4MWMwMDAwMDEgfSwKLSAgeyAweDM5MDAwZjAwLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgzOTgw
MGYwMSwgMHg2ODAwMDAwMiB9LAotICB7IDB4Mzk4MDBmMDQsIDB4NTQwMDAwMGUgfSwKLSAgeyAw
eDM5ODAwZjEzLCAweDY4MDAwMDA0IH0sCi0gIHsgMHgzOTgwMGYxOCwgMHgzMDAwMDAwMSB9LAot
ICB7IDB4Mzk4MDBmMWEsIDB4NjgwMDAwMDUgfSwKLSAgeyAweDM5ODAwZjIwLCAweDM0MDAwMDA5
IH0sCi0gIHsgMHgzOTgwMGYyYSwgMHgzYzAwMDAwOSB9LAotICB7IDB4MzkwMDBmMzQsIDB4Njgw
MDAwMDAgfSwKLSAgeyAweDM5MDAwZjM1LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzNiwg
MHg2ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmMzcsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDM5MDAw
ZjM4LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzOSwgMHgzMDAwMDAwMCB9LAotICB7IDB4
MzkwMDBmM2EsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDM5MDAwZjNiLCAweDQ4MDAwMDAwIH0sCi0g
IHsgMHgzOTAwMGYzYywgMHg1ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmM2QsIDB4NDgwMDAwMDAg
fSwKLSAgeyAweDM5ODAwZjNlLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgzOTgwMGY0MCwgMHgxYzAw
MDAwNyB9LAotICB7IDB4Mzk4MDBmNDksIDB4MWMwMDAwMjEgfSwKLSAgeyAweDM5ODAwZjcxLCAw
eDMwMDAwMDBkIH0sCi0gIHsgMHgzOTAwMGY3ZiwgMHgyODAwMDAwMCB9LAotICB7IDB4Mzk4MDBm
ODAsIDB4MzAwMDAwMDQgfSwKLSAgeyAweDM5MDAwZjg1LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgz
OTgwMGY4NiwgMHgzMDAwMDAwMSB9LAotICB7IDB4Mzk4MDBmODgsIDB4MWMwMDAwMDMgfSwKLSAg
eyAweDM5ODAwZjkwLCAweDMwMDAwMDA3IH0sCi0gIHsgMHgzOTgwMGY5OSwgMHgzMDAwMDAyMyB9
LAotICB7IDB4Mzk4MDBmYmUsIDB4NjgwMDAwMDcgfSwKLSAgeyAweDM5MDAwZmM2LCAweDMwMDAw
MDAwIH0sCi0gIHsgMHgzOTgwMGZjNywgMHg2ODAwMDAwNSB9LAotICB7IDB4MzkwMDBmY2YsIDB4
NjgwMDAwMDAgfSwKLSAgeyAweDM5ODAwZmQwLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgyNjgwMTAw
MCwgMHgxYzAwMDAyMSB9LAotICB7IDB4MjY4MDEwMjMsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDI2
ODAxMDI5LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgyNjAwMTAyYywgMHgyODAwMDAwMCB9LAotICB7
IDB4MjY4MDEwMmQsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDI2MDAxMDMxLCAweDI4MDAwMDAwIH0s
Ci0gIHsgMHgyNjAwMTAzMiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MjY4MDEwMzYsIDB4MzAwMDAw
MDEgfSwKLSAgeyAweDI2MDAxMDM4LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgyNjAwMTAzOSwgMHgz
MDAwMDAwMCB9LAotICB7IDB4MjY4MDEwNDAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDI2ODAxMDRh
LCAweDU0MDAwMDA1IH0sCi0gIHsgMHgyNjgwMTA1MCwgMHgxYzAwMDAwNSB9LAotICB7IDB4MjY4
MDEwNTYsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDI2ODAxMDU4LCAweDMwMDAwMDAxIH0sCi0gIHsg
MHgxMDAwMTBhMCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYTEsIDB4MjQwMDFjNjAgfSwK
LSAgeyAweDEwMDAxMGEyLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhMywgMHgyNDAwMWM2
MCB9LAotICB7IDB4MTAwMDEwYTQsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGE1LCAweDI0
MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhNiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYTcs
IDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGE4LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAw
MTBhOSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYWEsIDB4MjQwMDFjNjAgfSwKLSAgeyAw
eDEwMDAxMGFiLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhYywgMHgyNDAwMWM2MCB9LAot
ICB7IDB4MTAwMDEwYWQsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGFlLCAweDI0MDAxYzYw
IH0sCi0gIHsgMHgxMDAwMTBhZiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjAsIDB4MjQw
MDFjNjAgfSwKLSAgeyAweDEwMDAxMGIxLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiMiwg
MHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjMsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAx
MGI0LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiNSwgMHgyNDAwMWM2MCB9LAotICB7IDB4
MTAwMDEwYjYsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGI3LCAweDI0MDAxYzYwIH0sCi0g
IHsgMHgxMDAwMTBiOCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjksIDB4MjQwMDFjNjAg
fSwKLSAgeyAweDEwMDAxMGJhLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiYiwgMHgyNDAw
MWM2MCB9LAotICB7IDB4MTAwMDEwYmMsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGJkLCAw
eDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiZSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEw
YmYsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGMwLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgx
MDAwMTBjMSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYzIsIDB4MjQwMDFjNjAgfSwKLSAg
eyAweDEwMDAxMGMzLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBjNCwgMHgyNDAwMWM2MCB9
LAotICB7IDB4MTAwMDEwYzUsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwODAxMGQwLCAweDFjMDAw
MDJhIH0sCi0gIHsgMHgwOTAwMTBmYiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MTAwMDEwZmMsIDB4
MTgwMDAwMDAgfSwKLSAgeyAweDE3ODAxMTAwLCAweDFjMDAwMDU5IH0sCi0gIHsgMHgxNzgwMTE1
ZiwgMHgxYzAwMDA0MyB9LAotICB7IDB4MTc4MDExYTgsIDB4MWMwMDAwNTEgfSwKLSAgeyAweDBm
ODAxMjAwLCAweDFjMDAwMDQ4IH0sCi0gIHsgMHgwZjgwMTI0YSwgMHgxYzAwMDAwMyB9LAotICB7
IDB4MGY4MDEyNTAsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmMDAxMjU4LCAweDFjMDAwMDAwIH0s
Ci0gIHsgMHgwZjgwMTI1YSwgMHgxYzAwMDAwMyB9LAotICB7IDB4MGY4MDEyNjAsIDB4MWMwMDAw
MjggfSwKLSAgeyAweDBmODAxMjhhLCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwZjgwMTI5MCwgMHgx
YzAwMDAyMCB9LAotICB7IDB4MGY4MDEyYjIsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDBmODAxMmI4
LCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwZjAwMTJjMCwgMHgxYzAwMDAwMCB9LAotICB7IDB4MGY4
MDEyYzIsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDBmODAxMmM4LCAweDFjMDAwMDBlIH0sCi0gIHsg
MHgwZjgwMTJkOCwgMHgxYzAwMDAzOCB9LAotICB7IDB4MGY4MDEzMTIsIDB4MWMwMDAwMDMgfSwK
LSAgeyAweDBmODAxMzE4LCAweDFjMDAwMDQyIH0sCi0gIHsgMHgwZjAwMTM1ZiwgMHgzMDAwMDAw
MCB9LAotICB7IDB4MGYwMDEzNjAsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDBmODAxMzYxLCAweDU0
MDAwMDA3IH0sCi0gIHsgMHgwZjgwMTM2OSwgMHgzYzAwMDAxMyB9LAotICB7IDB4MGY4MDEzODAs
IDB4MWMwMDAwMGYgfSwKLSAgeyAweDBmODAxMzkwLCAweDY4MDAwMDA5IH0sCi0gIHsgMHgwODgw
MTNhMCwgMHgxYzAwMDA1NCB9LAotICB7IDB4MDc4MDE0MDEsIDB4MWMwMDAyNmIgfSwKLSAgeyAw
eDA3ODAxNjZkLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwNzgwMTY2ZiwgMHgxYzAwMDAwNyB9LAot
ICB7IDB4MjgwMDE2ODAsIDB4NzQwMDAwMDAgfSwKLSAgeyAweDI4ODAxNjgxLCAweDFjMDAwMDE5
IH0sCi0gIHsgMHgyODAwMTY5YiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MjgwMDE2OWMsIDB4NDgw
MDAwMDAgfSwKLSAgeyAweDJkODAxNmEwLCAweDFjMDAwMDRhIH0sCi0gIHsgMHgwOTgwMTZlYiwg
MHg1NDAwMDAwMiB9LAotICB7IDB4MmQ4MDE2ZWUsIDB4MzgwMDAwMDIgfSwKLSAgeyAweDMyODAx
NzAwLCAweDFjMDAwMDBjIH0sCi0gIHsgMHgzMjgwMTcwZSwgMHgxYzAwMDAwMyB9LAotICB7IDB4
MzI4MDE3MTIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDE4ODAxNzIwLCAweDFjMDAwMDExIH0sCi0g
IHsgMHgxODgwMTczMiwgMHgzMDAwMDAwMiB9LAotICB7IDB4MDk4MDE3MzUsIDB4NTQwMDAwMDEg
fSwKLSAgeyAweDA2ODAxNzQwLCAweDFjMDAwMDExIH0sCi0gIHsgMHgwNjgwMTc1MiwgMHgzMDAw
MDAwMSB9LAotICB7IDB4MzM4MDE3NjAsIDB4MWMwMDAwMGMgfSwKLSAgeyAweDMzODAxNzZlLCAw
eDFjMDAwMDAyIH0sCi0gIHsgMHgzMzgwMTc3MiwgMHgzMDAwMDAwMSB9LAotICB7IDB4MWY4MDE3
ODAsIDB4MWMwMDAwMzMgfSwKLSAgeyAweDFmODAxN2I0LCAweDA0MDAwMDAxIH0sCi0gIHsgMHgx
ZjAwMTdiNiwgMHgyODAwMDAwMCB9LAotICB7IDB4MWY4MDE3YjcsIDB4MzAwMDAwMDYgfSwKLSAg
eyAweDFmODAxN2JlLCAweDI4MDAwMDA3IH0sCi0gIHsgMHgxZjAwMTdjNiwgMHgzMDAwMDAwMCB9
LAotICB7IDB4MWY4MDE3YzcsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDFmODAxN2M5LCAweDMwMDAw
MDBhIH0sCi0gIHsgMHgxZjgwMTdkNCwgMHg1NDAwMDAwMiB9LAotICB7IDB4MWYwMDE3ZDcsIDB4
MTgwMDAwMDAgfSwKLSAgeyAweDFmODAxN2Q4LCAweDU0MDAwMDAyIH0sCi0gIHsgMHgxZjAwMTdk
YiwgMHg1YzAwMDAwMCB9LAotICB7IDB4MWYwMDE3ZGMsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDFm
MDAxN2RkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxZjgwMTdlMCwgMHgzNDAwMDAwOSB9LAotICB7
IDB4MWY4MDE3ZjAsIDB4M2MwMDAwMDkgfSwKLSAgeyAweDI1ODAxODAwLCAweDU0MDAwMDA1IH0s
Ci0gIHsgMHgyNTAwMTgwNiwgMHg0NDAwMDAwMCB9LAotICB7IDB4MjU4MDE4MDcsIDB4NTQwMDAw
MDMgfSwKLSAgeyAweDI1ODAxODBiLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgyNTAwMTgwZSwgMHg3
NDAwMDAwMCB9LAotICB7IDB4MjU4MDE4MTAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDI1ODAxODIw
LCAweDFjMDAwMDIyIH0sCi0gIHsgMHgyNTAwMTg0MywgMHgxODAwMDAwMCB9LAotICB7IDB4MjU4
MDE4NDQsIDB4MWMwMDAwMzMgfSwKLSAgeyAweDI1ODAxODgwLCAweDFjMDAwMDI4IH0sCi0gIHsg
MHgyNTAwMThhOSwgMHgzMDAwMDAwMCB9LAotICB7IDB4MjI4MDE5MDAsIDB4MWMwMDAwMWMgfSwK
LSAgeyAweDIyODAxOTIwLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgyMjgwMTkyMywgMHgyODAwMDAw
MyB9LAotICB7IDB4MjI4MDE5MjcsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDIyODAxOTI5LCAweDI4
MDAwMDAyIH0sCi0gIHsgMHgyMjgwMTkzMCwgMHgyODAwMDAwMSB9LAotICB7IDB4MjIwMDE5MzIs
IDB4MzAwMDAwMDAgfSwKLSAgeyAweDIyODAxOTMzLCAweDI4MDAwMDA1IH0sCi0gIHsgMHgyMjgw
MTkzOSwgMHgzMDAwMDAwMiB9LAotICB7IDB4MjIwMDE5NDAsIDB4NjgwMDAwMDAgfSwKLSAgeyAw
eDIyODAxOTQ0LCAweDU0MDAwMDAxIH0sCi0gIHsgMHgyMjgwMTk0NiwgMHgzNDAwMDAwOSB9LAot
ICB7IDB4MzQ4MDE5NTAsIDB4MWMwMDAwMWQgfSwKLSAgeyAweDM0ODAxOTcwLCAweDFjMDAwMDA0
IH0sCi0gIHsgMHgyNzgwMTk4MCwgMHgxYzAwMDAyOSB9LAotICB7IDB4Mjc4MDE5YjAsIDB4Mjgw
MDAwMTAgfSwKLSAgeyAweDI3ODAxOWMxLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgyNzgwMTljOCwg
MHgyODAwMDAwMSB9LAotICB7IDB4Mjc4MDE5ZDAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDI3ODAx
OWRlLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgxZjgwMTllMCwgMHg2ODAwMDAxZiB9LAotICB7IDB4
MDU4MDFhMDAsIDB4MWMwMDAwMTYgfSwKLSAgeyAweDA1ODAxYTE3LCAweDMwMDAwMDAxIH0sCi0g
IHsgMHgwNTgwMWExOSwgMHgyODAwMDAwMiB9LAotICB7IDB4MDU4MDFhMWUsIDB4NTQwMDAwMDEg
fSwKLSAgeyAweDIxODAxZDAwLCAweDE0MDAwMDJiIH0sCi0gIHsgMHgyMTgwMWQyYywgMHgxODAw
MDAzNSB9LAotICB7IDB4MjE4MDFkNjIsIDB4MTQwMDAwMTUgfSwKLSAgeyAweDBjMDAxZDc4LCAw
eDE4MDAwMDAwIH0sCi0gIHsgMHgyMTgwMWQ3OSwgMHgxNDAwMDAyMSB9LAotICB7IDB4MjE4MDFk
OWIsIDB4MTgwMDAwMjQgfSwKLSAgeyAweDFiODAxZGMwLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgy
MTAwMWUwMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMDEsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZTAyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUwMywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlMDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTA1LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWUwNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMDcsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTA4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUw
OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZTBiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUwYywgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlMGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTBlLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWUwZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMTAsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZTExLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUxMiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTE0
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlMTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTE3LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWUxOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMTksIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZTFhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxYiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlMWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTFkLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUxZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMWYs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTIwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWUyMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZTIzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUyNCwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDFlMjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTI2LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWUyNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMjgsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZTI5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUyYSwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZTJjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlMmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTJmLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWUzMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMzEsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZTMyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUzMywgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlMzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTM1LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
MzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTM4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWUzOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlM2EsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZTNiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzYywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlM2QsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTNlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWUzZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNDAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTQxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU0
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNDMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZTQ0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0NSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlNDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTQ3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWU0OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNDksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZTRhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0YiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTRk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU0ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlNGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTUwLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWU1MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNTIsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZTUzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU1NCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlNTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTU2LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNTgs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTU5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MWU1YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNWIsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZTVjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1ZCwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlNWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTVmLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWU2MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNjEsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZTYyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU2Mywg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNjQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZTY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlNjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTY4LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWU2OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNmEsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZTZiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2YywgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlNmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTZlLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU2ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
NzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTcxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWU3MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNzMsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZTc0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU3NSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlNzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTc3LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWU3OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNzksIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTdhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU3
YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlN2MsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZTdkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU3ZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlN2YsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTgwLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWU4MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlODIsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZTgzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU4NCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlODUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTg2
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlODgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTg5LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWU4YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlOGIsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZThjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4ZCwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlOGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZThmLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU5MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlOTEs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTkyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWU5MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlOTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZTk1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTgwMWU5NiwgMHgxNDAwMDAwNCB9LAot
ICB7IDB4MjEwMDFlOWIsIDB4MTQwMGZmYzUgfSwKLSAgeyAweDIxMDAxZWEwLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWVhMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYTIsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZWEzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVhNCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZWE2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhNywgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlYTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWE5LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWVhYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYWIsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZWFjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhZCwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlYWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWFmLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWViMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
YjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWIyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWViMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYjQsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZWI1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWViNiwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlYjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWI4LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWViOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYmEsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWJiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVi
YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZWJlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWViZiwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlYzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWMxLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWVjMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYzMsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZWM0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVjNSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWM3
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlYzksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWNhLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWVjYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlY2MsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZWNkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjZSwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlY2YsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWQwLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVkMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZDIs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWQzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MWVkNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZDUsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZWQ2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVkNywgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlZDgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWQ5LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWVkYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZGIsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZWRjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVkZCwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZWRmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVlMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlZTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWUyLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWVlMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZTQsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZWU1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVlNiwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlZTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWU4LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
ZWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWViLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWVlYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZWQsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZWVlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlZiwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlZjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWYxLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWVmMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZjMsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWY0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVm
NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZWY3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVmOCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlZjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAxZjAwLCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWYwMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMDIsIDB4MTQwMDAw
MDggfSwKLSAgeyAweDEzMDAxZjAzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYwNCwgMHgx
NDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMDUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjA2
LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYwNywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMw
MDFmMDgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjA5LCAweDI0MDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWYwYSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMGIsIDB4MjQwMGZmZjggfSwK
LSAgeyAweDEzMDAxZjBjLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYwZCwgMHgyNDAwZmZm
OCB9LAotICB7IDB4MTMwMDFmMGUsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjBmLCAweDI0
MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYxMCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMTEs
IDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjEyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAw
MWYxMywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMTQsIDB4MTQwMDAwMDggfSwKLSAgeyAw
eDEzMDAxZjE1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYxOCwgMHgyNDAwZmZmOCB9LAot
ICB7IDB4MTMwMDFmMTksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjFhLCAweDI0MDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWYxYiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMWMsIDB4MjQw
MGZmZjggfSwKLSAgeyAweDEzMDAxZjFkLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYyMCwg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZjIyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYyMywgMHgxNDAwMDAwOCB9LAotICB7IDB4
MTMwMDFmMjQsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjI1LCAweDE0MDAwMDA4IH0sCi0g
IHsgMHgxMzAwMWYyNiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjcsIDB4MTQwMDAwMDgg
fSwKLSAgeyAweDEzMDAxZjI4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYyOSwgMHgyNDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmMmEsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjJiLCAw
eDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYyYywgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFm
MmQsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjJlLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgx
MzAwMWYyZiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMzAsIDB4MTQwMDAwMDggfSwKLSAg
eyAweDEzMDAxZjMxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYzMiwgMHgxNDAwMDAwOCB9
LAotICB7IDB4MTMwMDFmMzMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjM0LCAweDE0MDAw
MDA4IH0sCi0gIHsgMHgxMzAwMWYzNSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMzYsIDB4
MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjM3LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYz
OCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMzksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEz
MDAxZjNhLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYzYiwgMHgyNDAwZmZmOCB9LAotICB7
IDB4MTMwMDFmM2MsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjNkLCAweDI0MDBmZmY4IH0s
Ci0gIHsgMHgxMzAwMWYzZSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmM2YsIDB4MjQwMGZm
ZjggfSwKLSAgeyAweDEzMDAxZjQwLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY0MSwgMHgx
NDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNDIsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjQz
LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY0NCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMw
MDFmNDUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjQ4LCAweDI0MDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWY0OSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNGEsIDB4MjQwMGZmZjggfSwK
LSAgeyAweDEzMDAxZjRiLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY0YywgMHgyNDAwZmZm
OCB9LAotICB7IDB4MTMwMDFmNGQsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjUwLCAweDE0
MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWY1MSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNTIs
IDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZjUzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAw
MWY1NCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmNTUsIDB4MTQwMDAwMDggfSwKLSAgeyAw
eDEzMDAxZjU2LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWY1NywgMHgxNDAwMDAwOCB9LAot
ICB7IDB4MTMwMDFmNTksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjViLCAweDI0MDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWY1ZCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNWYsIDB4MjQw
MGZmZjggfSwKLSAgeyAweDEzMDAxZjYwLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY2MSwg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNjIsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZjYzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY2NCwgMHgxNDAwMDAwOCB9LAotICB7IDB4
MTMwMDFmNjUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjY2LCAweDE0MDAwMDA4IH0sCi0g
IHsgMHgxMzAwMWY2NywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNjgsIDB4MjQwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZjY5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2YSwgMHgyNDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmNmIsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjZjLCAw
eDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2ZCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFm
NmUsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjZmLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgx
MzAwMWY3MCwgMHgxNDAwMDA0YSB9LAotICB7IDB4MTMwMDFmNzEsIDB4MTQwMDAwNGEgfSwKLSAg
eyAweDEzMDAxZjcyLCAweDE0MDAwMDU2IH0sCi0gIHsgMHgxMzAwMWY3MywgMHgxNDAwMDA1NiB9
LAotICB7IDB4MTMwMDFmNzQsIDB4MTQwMDAwNTYgfSwKLSAgeyAweDEzMDAxZjc1LCAweDE0MDAw
MDU2IH0sCi0gIHsgMHgxMzAwMWY3NiwgMHgxNDAwMDA2NCB9LAotICB7IDB4MTMwMDFmNzcsIDB4
MTQwMDAwNjQgfSwKLSAgeyAweDEzMDAxZjc4LCAweDE0MDAwMDgwIH0sCi0gIHsgMHgxMzAwMWY3
OSwgMHgxNDAwMDA4MCB9LAotICB7IDB4MTMwMDFmN2EsIDB4MTQwMDAwNzAgfSwKLSAgeyAweDEz
MDAxZjdiLCAweDE0MDAwMDcwIH0sCi0gIHsgMHgxMzAwMWY3YywgMHgxNDAwMDA3ZSB9LAotICB7
IDB4MTMwMDFmN2QsIDB4MTQwMDAwN2UgfSwKLSAgeyAweDEzMDAxZjgwLCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWY4MSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmODIsIDB4MTQwMDAw
MDggfSwKLSAgeyAweDEzMDAxZjgzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY4NCwgMHgx
NDAwMDAwOCB9LAotICB7IDB4MTMwMDFmODUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjg2
LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY4NywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMw
MDFmODgsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjg5LCAweDIwMDBmZmY4IH0sCi0gIHsg
MHgxMzAwMWY4YSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOGIsIDB4MjAwMGZmZjggfSwK
LSAgeyAweDEzMDAxZjhjLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY4ZCwgMHgyMDAwZmZm
OCB9LAotICB7IDB4MTMwMDFmOGUsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjhmLCAweDIw
MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY5MCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmOTEs
IDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjkyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAw
MWY5MywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmOTQsIDB4MTQwMDAwMDggfSwKLSAgeyAw
eDEzMDAxZjk1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY5NiwgMHgxNDAwMDAwOCB9LAot
ICB7IDB4MTMwMDFmOTcsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjk4LCAweDIwMDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWY5OSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOWEsIDB4MjAw
MGZmZjggfSwKLSAgeyAweDEzMDAxZjliLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY5Yywg
MHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOWQsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAx
ZjllLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY5ZiwgMHgyMDAwZmZmOCB9LAotICB7IDB4
MTMwMDFmYTAsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmExLCAweDE0MDAwMDA4IH0sCi0g
IHsgMHgxMzAwMWZhMiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYTMsIDB4MTQwMDAwMDgg
fSwKLSAgeyAweDEzMDAxZmE0LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhNSwgMHgxNDAw
MDAwOCB9LAotICB7IDB4MTMwMDFmYTYsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmE3LCAw
eDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhOCwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFm
YTksIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZmFhLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgx
MzAwMWZhYiwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmYWMsIDB4MjAwMGZmZjggfSwKLSAg
eyAweDEzMDAxZmFkLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZhZSwgMHgyMDAwZmZmOCB9
LAotICB7IDB4MTMwMDFmYWYsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZmIwLCAweDE0MDAw
MDA4IH0sCi0gIHsgMHgxMzAwMWZiMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYjIsIDB4
MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZmIzLCAweDE0MDAwMDA5IH0sCi0gIHsgMHgxMzAwMWZi
NCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTM4MDFmYjYsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDEz
MDAxZmI4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZiOSwgMHgyNDAwZmZmOCB9LAotICB7
IDB4MTMwMDFmYmEsIDB4MjQwMGZmYjYgfSwKLSAgeyAweDEzMDAxZmJiLCAweDI0MDBmZmI2IH0s
Ci0gIHsgMHgxMzAwMWZiYywgMHgyMDAwZmZmNyB9LAotICB7IDB4MTMwMDFmYmQsIDB4NjAwMDAw
MDAgfSwKLSAgeyAweDEzMDAxZmJlLCAweDE0MDBlM2RiIH0sCi0gIHsgMHgxMzgwMWZiZiwgMHg2
MDAwMDAwMiB9LAotICB7IDB4MTMwMDFmYzIsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZmMz
LCAweDE0MDAwMDA5IH0sCi0gIHsgMHgxMzAwMWZjNCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTM4
MDFmYzYsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDEzMDAxZmM4LCAweDI0MDBmZmFhIH0sCi0gIHsg
MHgxMzAwMWZjOSwgMHgyNDAwZmZhYSB9LAotICB7IDB4MTMwMDFmY2EsIDB4MjQwMGZmYWEgfSwK
LSAgeyAweDEzMDAxZmNiLCAweDI0MDBmZmFhIH0sCi0gIHsgMHgxMzAwMWZjYywgMHgyMDAwZmZm
NyB9LAotICB7IDB4MTM4MDFmY2QsIDB4NjAwMDAwMDIgfSwKLSAgeyAweDEzMDAxZmQwLCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZkMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTM4MDFmZDIs
IDB4MTQwMDAwMDEgfSwKLSAgeyAweDEzODAxZmQ2LCAweDE0MDAwMDAxIH0sCi0gIHsgMHgxMzAw
MWZkOCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmZDksIDB4MjQwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZmRhLCAweDI0MDBmZjljIH0sCi0gIHsgMHgxMzAwMWZkYiwgMHgyNDAwZmY5YyB9LAot
ICB7IDB4MTM4MDFmZGQsIDB4NjAwMDAwMDIgfSwKLSAgeyAweDEzMDAxZmUwLCAweDE0MDAwMDA4
IH0sCi0gIHsgMHgxMzAwMWZlMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTM4MDFmZTIsIDB4MTQw
MDAwMDIgfSwKLSAgeyAweDEzMDAxZmU1LCAweDE0MDAwMDA3IH0sCi0gIHsgMHgxMzgwMWZlNiwg
MHgxNDAwMDAwMSB9LAotICB7IDB4MTMwMDFmZTgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAx
ZmU5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZlYSwgMHgyNDAwZmY5MCB9LAotICB7IDB4
MTMwMDFmZWIsIDB4MjQwMGZmOTAgfSwKLSAgeyAweDEzMDAxZmVjLCAweDI0MDBmZmY5IH0sCi0g
IHsgMHgxMzgwMWZlZCwgMHg2MDAwMDAwMiB9LAotICB7IDB4MTMwMDFmZjIsIDB4MTQwMDAwMDAg
fSwKLSAgeyAweDEzMDAxZmYzLCAweDE0MDAwMDA5IH0sCi0gIHsgMHgxMzAwMWZmNCwgMHgxNDAw
MDAwMCB9LAotICB7IDB4MTM4MDFmZjYsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDEzMDAxZmY4LCAw
eDI0MDBmZjgwIH0sCi0gIHsgMHgxMzAwMWZmOSwgMHgyNDAwZmY4MCB9LAotICB7IDB4MTMwMDFm
ZmEsIDB4MjQwMGZmODIgfSwKLSAgeyAweDEzMDAxZmZiLCAweDI0MDBmZjgyIH0sCi0gIHsgMHgx
MzAwMWZmYywgMHgyMDAwZmZmNyB9LAotICB7IDB4MTM4MDFmZmQsIDB4NjAwMDAwMDEgfSwKLSAg
eyAweDA5ODAyMDAwLCAweDc0MDAwMDBhIH0sCi0gIHsgMHgwOTgwMjAwYiwgMHgwNDAwMDAwNCB9
LAotICB7IDB4MDk4MDIwMTAsIDB4NDQwMDAwMDUgfSwKLSAgeyAweDA5ODAyMDE2LCAweDU0MDAw
MDAxIH0sCi0gIHsgMHgwOTAwMjAxOCwgMHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDIwMTksIDB4
NGMwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDFhLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjAx
YiwgMHg1MDAwMDAwMSB9LAotICB7IDB4MDkwMDIwMWQsIDB4NGMwMDAwMDAgfSwKLSAgeyAweDA5
MDAyMDFlLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjAxZiwgMHg1MDAwMDAwMCB9LAotICB7
IDB4MDk4MDIwMjAsIDB4NTQwMDAwMDcgfSwKLSAgeyAweDA5MDAyMDI4LCAweDZjMDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjAyOSwgMHg3MDAwMDAwMCB9LAotICB7IDB4MDk4MDIwMmEsIDB4MDQwMDAw
MDQgfSwKLSAgeyAweDA5MDAyMDJmLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjAzMCwgMHg1
NDAwMDAwOCB9LAotICB7IDB4MDkwMDIwMzksIDB4NTAwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDNh
LCAweDRjMDAwMDAwIH0sCi0gIHsgMHgwOTgwMjAzYiwgMHg1NDAwMDAwMyB9LAotICB7IDB4MDk4
MDIwM2YsIDB4NDAwMDAwMDEgfSwKLSAgeyAweDA5ODAyMDQxLCAweDU0MDAwMDAyIH0sCi0gIHsg
MHgwOTAwMjA0NCwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMDIwNDUsIDB4NTgwMDAwMDAgfSwK
LSAgeyAweDA5MDAyMDQ2LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjA0NywgMHg1NDAwMDAw
YSB9LAotICB7IDB4MDkwMDIwNTIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDUzLCAweDU0
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjA1NCwgMHg0MDAwMDAwMCB9LAotICB7IDB4MDk4MDIwNTUs
IDB4NTQwMDAwMDkgfSwKLSAgeyAweDA5MDAyMDVmLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgwOTgw
MjA2MCwgMHgwNDAwMDAwMyB9LAotICB7IDB4MDk4MDIwNmEsIDB4MDQwMDAwMDUgfSwKLSAgeyAw
eDA5MDAyMDcwLCAweDNjMDAwMDAwIH0sCi0gIHsgMHgyMTAwMjA3MSwgMHgxNDAwMDAwMCB9LAot
ICB7IDB4MDk4MDIwNzQsIDB4M2MwMDAwMDUgfSwKLSAgeyAweDA5ODAyMDdhLCAweDY0MDAwMDAy
IH0sCi0gIHsgMHgwOTAwMjA3ZCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDIwN2UsIDB4NDgw
MDAwMDAgfSwKLSAgeyAweDIxMDAyMDdmLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjA4MCwg
MHgzYzAwMDAwOSB9LAotICB7IDB4MDk4MDIwOGEsIDB4NjQwMDAwMDIgfSwKLSAgeyAweDA5MDAy
MDhkLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjA4ZSwgMHg0ODAwMDAwMCB9LAotICB7IDB4
MjE4MDIwOTAsIDB4MTgwMDAwMDQgfSwKLSAgeyAweDA5ODAyMGEwLCAweDVjMDAwMDE1IH0sCi0g
IHsgMHgxYjgwMjBkMCwgMHgzMDAwMDAwYyB9LAotICB7IDB4MWI4MDIwZGQsIDB4MmMwMDAwMDMg
fSwKLSAgeyAweDFiMDAyMGUxLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxYjgwMjBlMiwgMHgyYzAw
MDAwMiB9LAotICB7IDB4MWI4MDIwZTUsIDB4MzAwMDAwMDYgfSwKLSAgeyAweDA5ODAyMTAwLCAw
eDY4MDAwMDAxIH0sCi0gIHsgMHgwOTAwMjEwMiwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDk4MDIx
MDMsIDB4NjgwMDAwMDMgfSwKLSAgeyAweDA5MDAyMTA3LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgw
OTgwMjEwOCwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDkwMDIxMGEsIDB4MTQwMDAwMDAgfSwKLSAg
eyAweDA5ODAyMTBiLCAweDI0MDAwMDAyIH0sCi0gIHsgMHgwOTgwMjEwZSwgMHgxNDAwMDAwMSB9
LAotICB7IDB4MDk4MDIxMTAsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDA5MDAyMTEzLCAweDE0MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMjExNCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDIxMTUsIDB4
MjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMTE2LCAweDY4MDAwMDAyIH0sCi0gIHsgMHgwOTgwMjEx
OSwgMHgyNDAwMDAwNCB9LAotICB7IDB4MDk4MDIxMWUsIDB4NjgwMDAwMDUgfSwKLSAgeyAweDA5
MDAyMTI0LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjEyNSwgMHg2ODAwMDAwMCB9LAotICB7
IDB4MTMwMDIxMjYsIDB4MjQwMGUyYTMgfSwKLSAgeyAweDA5MDAyMTI3LCAweDY4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjEyOCwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDkwMDIxMjksIDB4NjgwMDAw
MDAgfSwKLSAgeyAweDIxMDAyMTJhLCAweDI0MDBkZjQxIH0sCi0gIHsgMHgyMTAwMjEyYiwgMHgy
NDAwZGZiYSB9LAotICB7IDB4MDk4MDIxMmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDA5MDAyMTJl
LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjEyZiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MDk4
MDIxMzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDA5MDAyMTMyLCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgwOTAwMjEzMywgMHgyNDAwMDAwMCB9LAotICB7IDB4MDkwMDIxMzQsIDB4MTQwMDAwMDAgfSwK
LSAgeyAweDA5ODAyMTM1LCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwOTAwMjEzOSwgMHgxNDAwMDAw
MCB9LAotICB7IDB4MDk4MDIxM2EsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5ODAyMTNjLCAweDE0
MDAwMDAxIH0sCi0gIHsgMHgwOTgwMjEzZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MDk4MDIxNDAs
IDB4NjQwMDAwMDQgfSwKLSAgeyAweDA5MDAyMTQ1LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTgw
MjE0NiwgMHgxNDAwMDAwMyB9LAotICB7IDB4MDkwMDIxNGEsIDB4NjgwMDAwMDAgfSwKLSAgeyAw
eDA5MDAyMTRiLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjE0YywgMHg2ODAwMDAwMCB9LAot
ICB7IDB4MDk4MDIxNTMsIDB4M2MwMDAwMGMgfSwKLSAgeyAweDA5MDAyMTYwLCAweDM4MDAwMDEw
IH0sCi0gIHsgMHgwOTAwMjE2MSwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjIsIDB4Mzgw
MDAwMTAgfSwKLSAgeyAweDA5MDAyMTYzLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2NCwg
MHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjUsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAy
MTY2LCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2NywgMHgzODAwMDAxMCB9LAotICB7IDB4
MDkwMDIxNjgsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTY5LCAweDM4MDAwMDEwIH0sCi0g
IHsgMHgwOTAwMjE2YSwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNmIsIDB4MzgwMDAwMTAg
fSwKLSAgeyAweDA5MDAyMTZjLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2ZCwgMHgzODAw
MDAxMCB9LAotICB7IDB4MDkwMDIxNmUsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTZmLCAw
eDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE3MCwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIx
NzEsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTcyLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgw
OTAwMjE3MywgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxNzQsIDB4MzgwMGZmZjAgfSwKLSAg
eyAweDA5MDAyMTc1LCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3NiwgMHgzODAwZmZmMCB9
LAotICB7IDB4MDkwMDIxNzcsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTc4LCAweDM4MDBm
ZmYwIH0sCi0gIHsgMHgwOTAwMjE3OSwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxN2EsIDB4
MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTdiLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3
YywgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxN2QsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5
MDAyMTdlLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3ZiwgMHgzODAwZmZmMCB9LAotICB7
IDB4MDk4MDIxODAsIDB4MzgwMDAwMDMgfSwKLSAgeyAweDA5ODAyMTkwLCAweDY0MDAwMDA0IH0s
Ci0gIHsgMHgwOTgwMjE5NSwgMHg2ODAwMDAwNCB9LAotICB7IDB4MDk4MDIxOWEsIDB4NjQwMDAw
MDEgfSwKLSAgeyAweDA5ODAyMTljLCAweDY4MDAwMDAzIH0sCi0gIHsgMHgwOTAwMjFhMCwgMHg2
NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxYTEsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAyMWEz
LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjFhNCwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDkw
MDIxYTYsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMWE3LCAweDY4MDAwMDA2IH0sCi0gIHsg
MHgwOTAwMjFhZSwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxYWYsIDB4NjgwMDAwMWUgfSwK
LSAgeyAweDA5ODAyMWNlLCAweDY0MDAwMDAxIH0sCi0gIHsgMHgwOTgwMjFkMCwgMHg2ODAwMDAw
MSB9LAotICB7IDB4MDkwMDIxZDIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMWQzLCAweDY4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjFkNCwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxZDUs
IDB4NjgwMDAwMWUgfSwKLSAgeyAweDA5ODAyMWY0LCAweDY0MDAwMTBiIH0sCi0gIHsgMHgwOTgw
MjMwMCwgMHg2ODAwMDAwNyB9LAotICB7IDB4MDk4MDIzMDgsIDB4NjQwMDAwMDMgfSwKLSAgeyAw
eDA5ODAyMzBjLCAweDY4MDAwMDEzIH0sCi0gIHsgMHgwOTgwMjMyMCwgMHg2NDAwMDAwMSB9LAot
ICB7IDB4MDk4MDIzMjIsIDB4NjgwMDAwMDYgfSwKLSAgeyAweDA5MDAyMzI5LCAweDU4MDAwMDAw
IH0sCi0gIHsgMHgwOTAwMjMyYSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDIzMmIsIDB4Njgw
MDAwNTAgfSwKLSAgeyAweDA5MDAyMzdjLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjM3ZCwg
MHg2ODAwMDAxZCB9LAotICB7IDB4MDk4MDIzOWIsIDB4NjQwMDAwMTggfSwKLSAgeyAweDA5MDAy
M2I0LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjNiNSwgMHg0ODAwMDAwMCB9LAotICB7IDB4
MDkwMDIzYjYsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5ODAyM2I3LCAweDY4MDAwMDI0IH0sCi0g
IHsgMHgwOTgwMjQwMCwgMHg2ODAwMDAyNiB9LAotICB7IDB4MDk4MDI0NDAsIDB4NjgwMDAwMGEg
fSwKLSAgeyAweDA5ODAyNDYwLCAweDNjMDAwMDNiIH0sCi0gIHsgMHgwOTgwMjQ5YywgMHg2ODAw
MDAxOSB9LAotICB7IDB4MDkwMDI0YjYsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGI3LCAw
eDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiOCwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0
YjksIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGJhLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgw
OTAwMjRiYiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YmMsIDB4NjgwMDAwMWEgfSwKLSAg
eyAweDA5MDAyNGJkLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiZSwgMHg2ODAwMDAxYSB9
LAotICB7IDB4MDkwMDI0YmYsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGMwLCAweDY4MDAw
MDFhIH0sCi0gIHsgMHgwOTAwMjRjMSwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzIsIDB4
NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGMzLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRj
NCwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzUsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5
MDAyNGM2LCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjNywgMHg2ODAwMDAxYSB9LAotICB7
IDB4MDkwMDI0YzgsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGM5LCAweDY4MDAwMDFhIH0s
Ci0gIHsgMHgwOTAwMjRjYSwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0Y2IsIDB4NjgwMDAw
MWEgfSwKLSAgeyAweDA5MDAyNGNjLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjZCwgMHg2
ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0Y2UsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGNm
LCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRkMCwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkw
MDI0ZDEsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQyLCAweDY4MDBmZmU2IH0sCi0gIHsg
MHgwOTAwMjRkMywgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZDQsIDB4NjgwMGZmZTYgfSwK
LSAgeyAweDA5MDAyNGQ1LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkNiwgMHg2ODAwZmZl
NiB9LAotICB7IDB4MDkwMDI0ZDcsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQ4LCAweDY4
MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkOSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZGEs
IDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGRiLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAw
MjRkYywgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZGQsIDB4NjgwMGZmZTYgfSwKLSAgeyAw
eDA5MDAyNGRlLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkZiwgMHg2ODAwZmZlNiB9LAot
ICB7IDB4MDkwMDI0ZTAsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGUxLCAweDY4MDBmZmU2
IH0sCi0gIHsgMHgwOTAwMjRlMiwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTMsIDB4Njgw
MGZmZTYgfSwKLSAgeyAweDA5MDAyNGU0LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRlNSwg
MHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTYsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAy
NGU3LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRlOCwgMHg2ODAwZmZlNiB9LAotICB7IDB4
MDkwMDI0ZTksIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5ODAyNGVhLCAweDNjMDAwMDE1IH0sCi0g
IHsgMHgwOTgwMjUwMCwgMHg2ODAwMDBiNiB9LAotICB7IDB4MDkwMDI1YjcsIDB4NjQwMDAwMDAg
fSwKLSAgeyAweDA5ODAyNWI4LCAweDY4MDAwMDA4IH0sCi0gIHsgMHgwOTAwMjVjMSwgMHg2NDAw
MDAwMCB9LAotICB7IDB4MDk4MDI1YzIsIDB4NjgwMDAwMzUgfSwKLSAgeyAweDA5ODAyNWY4LCAw
eDY0MDAwMDA3IH0sCi0gIHsgMHgwOTgwMjYwMCwgMHg2ODAwMDA2ZSB9LAotICB7IDB4MDkwMDI2
NmYsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyNjcwLCAweDY4MDAwMDJjIH0sCi0gIHsgMHgw
OTgwMjZhMCwgMHg2ODAwMDAxMSB9LAotICB7IDB4MDk4MDI3MDEsIDB4NjgwMDAwMDMgfSwKLSAg
eyAweDA5ODAyNzA2LCAweDY4MDAwMDAzIH0sCi0gIHsgMHgwOTgwMjcwYywgMHg2ODAwMDAxYiB9
LAotICB7IDB4MDk4MDI3MjksIDB4NjgwMDAwMjIgfSwKLSAgeyAweDA5MDAyNzRkLCAweDY4MDAw
MDAwIH0sCi0gIHsgMHgwOTgwMjc0ZiwgMHg2ODAwMDAwMyB9LAotICB7IDB4MDkwMDI3NTYsIDB4
NjgwMDAwMDAgfSwKLSAgeyAweDA5ODAyNzU4LCAweDY4MDAwMDA2IH0sCi0gIHsgMHgwOTgwMjc2
MSwgMHg2ODAwMDAwNiB9LAotICB7IDB4MDkwMDI3NjgsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDAyNzY5LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc2YSwgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMDI3NmIsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzZjLCAweDU4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjc2ZCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NmUsIDB4NTgwMDAw
MDAgfSwKLSAgeyAweDA5MDAyNzZmLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc3MCwgMHg1
ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NzEsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzcy
LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc3MywgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkw
MDI3NzQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzc1LCAweDQ4MDAwMDAwIH0sCi0gIHsg
MHgwOTgwMjc3NiwgMHgzYzAwMDAxZCB9LAotICB7IDB4MDkwMDI3OTQsIDB4NjgwMDAwMDAgfSwK
LSAgeyAweDA5ODAyNzk4LCAweDY4MDAwMDE3IH0sCi0gIHsgMHgwOTgwMjdiMSwgMHg2ODAwMDAw
ZCB9LAotICB7IDB4MDk4MDI3YzAsIDB4NjQwMDAwMDQgfSwKLSAgeyAweDA5MDAyN2M1LCAweDU4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjdjNiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3ZDAs
IDB4NjQwMDAwMTUgfSwKLSAgeyAweDA5MDAyN2U2LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAw
MjdlNywgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3ZTgsIDB4NTgwMDAwMDAgfSwKLSAgeyAw
eDA5MDAyN2U5LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjdlYSwgMHg1ODAwMDAwMCB9LAot
ICB7IDB4MDkwMDI3ZWIsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODAyN2YwLCAweDY0MDAwMDBm
IH0sCi0gIHsgMHgwNDgwMjgwMCwgMHg2ODAwMDBmZiB9LAotICB7IDB4MDk4MDI5MDAsIDB4NjQw
MDAwODIgfSwKLSAgeyAweDA5MDAyOTgzLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4NCwg
MHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5ODUsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAy
OTg2LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4NywgMHg1ODAwMDAwMCB9LAotICB7IDB4
MDkwMDI5ODgsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTg5LCAweDU4MDAwMDAwIH0sCi0g
IHsgMHgwOTAwMjk4YSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OGIsIDB4NTgwMDAwMDAg
fSwKLSAgeyAweDA5MDAyOThjLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4ZCwgMHg1ODAw
MDAwMCB9LAotICB7IDB4MDkwMDI5OGUsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOThmLCAw
eDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5MCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5
OTEsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTkyLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMjk5MywgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OTQsIDB4NDgwMDAwMDAgfSwKLSAg
eyAweDA5MDAyOTk1LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5NiwgMHg0ODAwMDAwMCB9
LAotICB7IDB4MDkwMDI5OTcsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTk4LCAweDQ4MDAw
MDAwIH0sCi0gIHsgMHgwOTgwMjk5OSwgMHg2NDAwMDAzZSB9LAotICB7IDB4MDkwMDI5ZDgsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOWQ5LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjlk
YSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5ZGIsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5
ODAyOWRjLCAweDY0MDAwMDFmIH0sCi0gIHsgMHgwOTAwMjlmYywgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMDI5ZmQsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODAyOWZlLCAweDY0MDAwMTAxIH0s
Ci0gIHsgMHgwOTgwMmIwMCwgMHg2ODAwMDAxMyB9LAotICB7IDB4MTEwMDJjMDAsIDB4MjQwMDAw
MzAgfSwKLSAgeyAweDExMDAyYzAxLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwMiwgMHgy
NDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzA0
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwNSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEw
MDJjMDYsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzA3LCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgxMTAwMmMwOCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDksIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDExMDAyYzBhLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwYiwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MTEwMDJjMGMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzBkLCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwZSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMGYs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzEwLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAw
MmMxMSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTIsIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDExMDAyYzEzLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxNCwgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MTEwMDJjMTUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzE2LCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgxMTAwMmMxNywgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTgsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDExMDAyYzE5LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxYSwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMWIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAy
YzFjLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxZCwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MTEwMDJjMWUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzFmLCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgxMTAwMmMyMCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMjEsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDExMDAyYzIyLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyMywgMHgyNDAw
MDAzMCB9LAotICB7IDB4MTEwMDJjMjQsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzI1LCAw
eDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyNiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJj
MjcsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzI4LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgx
MTAwMmMyOSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMmEsIDB4MjQwMDAwMzAgfSwKLSAg
eyAweDExMDAyYzJiLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyYywgMHgyNDAwMDAzMCB9
LAotICB7IDB4MTEwMDJjMmQsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzJlLCAweDI0MDAw
MDMwIH0sCi0gIHsgMHgxMTAwMmMzMCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzEsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzMyLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMz
MywgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDEx
MDAyYzM1LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzNiwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MTEwMDJjMzcsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzM4LCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgxMTAwMmMzOSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjM2EsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDExMDAyYzNiLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzYywgMHgx
NDAwZmZkMCB9LAotICB7IDB4MTEwMDJjM2QsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzNl
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzZiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEw
MDJjNDAsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQxLCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgxMTAwMmM0MiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDMsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDExMDAyYzQ0LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0NSwgMHgxNDAwZmZk
MCB9LAotICB7IDB4MTEwMDJjNDYsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQ3LCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0OCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDks
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzRhLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAw
MmM0YiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNGMsIDB4MTQwMGZmZDAgfSwKLSAgeyAw
eDExMDAyYzRkLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0ZSwgMHgxNDAwZmZkMCB9LAot
ICB7IDB4MTEwMDJjNGYsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzUwLCAweDE0MDBmZmQw
IH0sCi0gIHsgMHgxMTAwMmM1MSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTIsIDB4MTQw
MGZmZDAgfSwKLSAgeyAweDExMDAyYzUzLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1NCwg
MHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAy
YzU2LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1NywgMHgxNDAwZmZkMCB9LAotICB7IDB4
MTEwMDJjNTgsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzU5LCAweDE0MDBmZmQwIH0sCi0g
IHsgMHgxMTAwMmM1YSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNWIsIDB4MTQwMGZmZDAg
fSwKLSAgeyAweDExMDAyYzVjLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1ZCwgMHgxNDAw
ZmZkMCB9LAotICB7IDB4MTEwMDJjNWUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDBhMDAyYzgwLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM4MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJj
ODIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzgzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgw
YTAwMmM4NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjODUsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDBhMDAyYzg2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM4NywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MGEwMDJjODgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzg5LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYTAwMmM4YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOGIsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzhjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM4
ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBh
MDAyYzhmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM5MCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGEwMDJjOTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzkyLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwYTAwMmM5MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOTQsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBhMDAyYzk1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM5NiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzk4
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEw
MDJjOWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzliLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYTAwMmM5YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOWQsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBhMDAyYzllLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5ZiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGEwMDJjYTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2ExLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYTMs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2E0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAw
MmNhNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDBhMDAyY2E3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhOCwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MGEwMDJjYTksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2FhLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgwYTAwMmNhYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYWMsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDBhMDAyY2FkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhZSwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAy
Y2IwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNiMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MGEwMDJjYjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2IzLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgwYTAwMmNiNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYjUsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBhMDAyY2I2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNiNywgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGEwMDJjYjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2I5LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNiYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJj
YmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2JjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YTAwMmNiZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYmUsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBhMDAyY2JmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNjMCwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGEwMDJjYzEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2MyLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYTAwMmNjMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYzQsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2M1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNj
NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBh
MDAyY2M4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNjOSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGEwMDJjY2EsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2NiLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYTAwMmNjYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjY2QsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBhMDAyY2NlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNjZiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2Qx
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNkMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEw
MDJjZDMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2Q0LCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYTAwMmNkNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZDYsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBhMDAyY2Q3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNkOCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGEwMDJjZDksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2RhLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNkYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZGMs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2RkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAw
MmNkZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBhMDAyY2UwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNlMSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGEwMDJjZTIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2UzLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYTAwMmNlNCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MGE4MDJjZTUsIDB4Njgw
MDAwMDUgfSwKLSAgeyAweDBhODAyY2Y5LCAweDU0MDAwMDAzIH0sCi0gIHsgMHgwYTAwMmNmZCwg
MHgzYzAwMDAwMCB9LAotICB7IDB4MGE4MDJjZmUsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDEwMDAy
ZDAwLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwMSwgMHgxNDAwZTNhMCB9LAotICB7IDB4
MTAwMDJkMDIsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDAzLCAweDE0MDBlM2EwIH0sCi0g
IHsgMHgxMDAwMmQwNCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMDUsIDB4MTQwMGUzYTAg
fSwKLSAgeyAweDEwMDAyZDA2LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwNywgMHgxNDAw
ZTNhMCB9LAotICB7IDB4MTAwMDJkMDgsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDA5LCAw
eDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwYSwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJk
MGIsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDBjLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgx
MDAwMmQwZCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMGUsIDB4MTQwMGUzYTAgfSwKLSAg
eyAweDEwMDAyZDBmLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxMCwgMHgxNDAwZTNhMCB9
LAotICB7IDB4MTAwMDJkMTEsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDEyLCAweDE0MDBl
M2EwIH0sCi0gIHsgMHgxMDAwMmQxMywgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMTQsIDB4
MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDE1LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQx
NiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMTcsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEw
MDAyZDE4LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxOSwgMHgxNDAwZTNhMCB9LAotICB7
IDB4MTAwMDJkMWEsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDFiLCAweDE0MDBlM2EwIH0s
Ci0gIHsgMHgxMDAwMmQxYywgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMWQsIDB4MTQwMGUz
YTAgfSwKLSAgeyAweDEwMDAyZDFlLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxZiwgMHgx
NDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMjAsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDIx
LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQyMiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAw
MDJkMjMsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDI0LCAweDE0MDBlM2EwIH0sCi0gIHsg
MHgxMDAwMmQyNSwgMHgxNDAwZTNhMCB9LAotICB7IDB4M2E4MDJkMzAsIDB4MWMwMDAwMzUgfSwK
LSAgeyAweDNhMDAyZDZmLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwZjgwMmQ4MCwgMHgxYzAwMDAx
NiB9LAotICB7IDB4MGY4MDJkYTAsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmODAyZGE4LCAweDFj
MDAwMDA2IH0sCi0gIHsgMHgwZjgwMmRiMCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGY4MDJkYjgs
IDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmODAyZGMwLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwZjgw
MmRjOCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGY4MDJkZDAsIDB4MWMwMDAwMDYgfSwKLSAgeyAw
eDBmODAyZGQ4LCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwOTgwMmUwMCwgMHg1NDAwMDAwMSB9LAot
ICB7IDB4MDkwMDJlMDIsIDB4NTAwMDAwMDAgfSwKLSAgeyAweDA5MDAyZTAzLCAweDRjMDAwMDAw
IH0sCi0gIHsgMHgwOTAwMmUwNCwgMHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMDUsIDB4NGMw
MDAwMDAgfSwKLSAgeyAweDA5ODAyZTA2LCAweDU0MDAwMDAyIH0sCi0gIHsgMHgwOTAwMmUwOSwg
MHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMGEsIDB4NGMwMDAwMDAgfSwKLSAgeyAweDA5MDAy
ZTBiLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMmUwYywgMHg1MDAwMDAwMCB9LAotICB7IDB4
MDkwMDJlMGQsIDB4NGMwMDAwMDAgfSwKLSAgeyAweDA5ODAyZTBlLCAweDU0MDAwMDA4IH0sCi0g
IHsgMHgwOTAwMmUxNywgMHg0NDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMWMsIDB4NTAwMDAwMDAg
fSwKLSAgeyAweDA5MDAyZTFkLCAweDRjMDAwMDAwIH0sCi0gIHsgMHgxNjgwMmU4MCwgMHg2ODAw
MDAxOSB9LAotICB7IDB4MTY4MDJlOWIsIDB4NjgwMDAwNTggfSwKLSAgeyAweDE2ODAyZjAwLCAw
eDY4MDAwMGQ1IH0sCi0gIHsgMHgwOTgwMmZmMCwgMHg2ODAwMDAwYiB9LAotICB7IDB4MDkwMDMw
MDAsIDB4NzQwMDAwMDAgfSwKLSAgeyAweDA5ODAzMDAxLCAweDU0MDAwMDAyIH0sCi0gIHsgMHgw
OTAwMzAwNCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MTYwMDMwMDUsIDB4MTgwMDAwMDAgfSwKLSAg
eyAweDA5MDAzMDA2LCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxNjAwMzAwNywgMHgzODAwMDAwMCB9
LAotICB7IDB4MDkwMDMwMDgsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDA5LCAweDQ4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMzAwYSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMGIsIDB4
NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDBjLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAw
ZCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMGUsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDAzMDBmLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxMCwgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMDMwMTEsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODAzMDEyLCAweDY4MDAwMDAxIH0s
Ci0gIHsgMHgwOTAwMzAxNCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMTUsIDB4NDgwMDAw
MDAgfSwKLSAgeyAweDA5MDAzMDE2LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxNywgMHg0
ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMTgsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDE5
LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxYSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkw
MDMwMWIsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDFjLCAweDQ0MDAwMDAwIH0sCi0gIHsg
MHgwOTAwMzAxZCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDk4MDMwMWUsIDB4NDgwMDAwMDEgfSwK
LSAgeyAweDA5MDAzMDIwLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgxNjgwMzAyMSwgMHgzODAwMDAw
OCB9LAotICB7IDB4MWI4MDMwMmEsIDB4MzAwMDAwMDUgfSwKLSAgeyAweDA5MDAzMDMwLCAweDQ0
MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzAzMSwgMHgxODAwMDAwNCB9LAotICB7IDB4MDk4MDMwMzYs
IDB4NjgwMDAwMDEgfSwKLSAgeyAweDE2ODAzMDM4LCAweDM4MDAwMDAyIH0sCi0gIHsgMHgxNjAw
MzAzYiwgMHgxODAwMDAwMCB9LAotICB7IDB4MDkwMDMwM2MsIDB4MWMwMDAwMDAgfSwKLSAgeyAw
eDA5MDAzMDNkLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzAzZSwgMHg2ODAwMDAwMSB9LAot
ICB7IDB4MWE4MDMwNDEsIDB4MWMwMDAwNTUgfSwKLSAgeyAweDFiODAzMDk5LCAweDMwMDAwMDAx
IH0sCi0gIHsgMHgwOTgwMzA5YiwgMHg2MDAwMDAwMSB9LAotICB7IDB4MWE4MDMwOWQsIDB4MTgw
MDAwMDEgfSwKLSAgeyAweDFhMDAzMDlmLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwOTAwMzBhMCwg
MHg0NDAwMDAwMCB9LAotICB7IDB4MWQ4MDMwYTEsIDB4MWMwMDAwNTkgfSwKLSAgeyAweDA5MDAz
MGZiLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzBmYywgMHgxODAwMDAwMiB9LAotICB7IDB4
MWQwMDMwZmYsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDAzODAzMTA1LCAweDFjMDAwMDI3IH0sCi0g
IHsgMHgxNzgwMzEzMSwgMHgxYzAwMDA1ZCB9LAotICB7IDB4MDk4MDMxOTAsIDB4NjgwMDAwMDEg
fSwKLSAgeyAweDA5ODAzMTkyLCAweDNjMDAwMDAzIH0sCi0gIHsgMHgwOTgwMzE5NiwgMHg2ODAw
MDAwOSB9LAotICB7IDB4MDM4MDMxYTAsIDB4MWMwMDAwMTcgfSwKLSAgeyAweDA5ODAzMWMwLCAw
eDY4MDAwMDBmIH0sCi0gIHsgMHgxZDgwMzFmMCwgMHgxYzAwMDAwZiB9LAotICB7IDB4MTc4MDMy
MDAsIDB4NjgwMDAwMWUgfSwKLSAgeyAweDA5ODAzMjIwLCAweDNjMDAwMDA5IH0sCi0gIHsgMHgw
OTgwMzIyYSwgMHg2ODAwMDAxOSB9LAotICB7IDB4MDkwMDMyNTAsIDB4NjgwMDAwMDAgfSwKLSAg
eyAweDA5ODAzMjUxLCAweDNjMDAwMDBlIH0sCi0gIHsgMHgxNzgwMzI2MCwgMHg2ODAwMDAxZiB9
LAotICB7IDB4MDk4MDMyODAsIDB4M2MwMDAwMDkgfSwKLSAgeyAweDA5ODAzMjhhLCAweDY4MDAw
MDI2IH0sCi0gIHsgMHgwOTgwMzJiMSwgMHgzYzAwMDAwZSB9LAotICB7IDB4MDk4MDMyYzAsIDB4
NjgwMDAwM2UgfSwKLSAgeyAweDA5ODAzMzAwLCAweDY4MDAwMGZmIH0sCi0gIHsgMHgxNjgwMzQw
MCwgMHgxYzAwMTliNSB9LAotICB7IDB4MDk4MDRkYzAsIDB4NjgwMDAwM2YgfSwKLSAgeyAweDE2
ODA0ZTAwLCAweDFjMDA1MWJiIH0sCi0gIHsgMHgzYzgwYTAwMCwgMHgxYzAwMDAxNCB9LAotICB7
IDB4M2MwMGEwMTUsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDNjODBhMDE2LCAweDFjMDAwNDc2IH0s
Ci0gIHsgMHgzYzgwYTQ5MCwgMHg2ODAwMDAzNiB9LAotICB7IDB4MDk4MGE3MDAsIDB4NjAwMDAw
MTYgfSwKLSAgeyAweDMwODBhODAwLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzMDAwYTgwMiwgMHgy
ODAwMDAwMCB9LAotICB7IDB4MzA4MGE4MDMsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDMwMDBhODA2
LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzMDgwYTgwNywgMHgxYzAwMDAwMyB9LAotICB7IDB4MzAw
MGE4MGIsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDMwODBhODBjLCAweDFjMDAwMDE2IH0sCi0gIHsg
MHgzMDgwYTgyMywgMHgyODAwMDAwMSB9LAotICB7IDB4MzA4MGE4MjUsIDB4MzAwMDAwMDEgfSwK
LSAgeyAweDMwMDBhODI3LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgzMDgwYTgyOCwgMHg2ODAwMDAw
MyB9LAotICB7IDB4MTc4MGFjMDAsIDB4MWMwMDJiYTMgfSwKLSAgeyAweDA5ODBkODAwLCAweDEw
MDAwMzdmIH0sCi0gIHsgMHgwOTgwZGI4MCwgMHgxMDAwMDA3ZiB9LAotICB7IDB4MDk4MGRjMDAs
IDB4MTAwMDAzZmYgfSwKLSAgeyAweDA5ODBlMDAwLCAweDBjMDAxOGZmIH0sCi0gIHsgMHgxNjgw
ZjkwMCwgMHgxYzAwMDEyZCB9LAotICB7IDB4MTY4MGZhMzAsIDB4MWMwMDAwM2EgfSwKLSAgeyAw
eDE2ODBmYTcwLCAweDFjMDAwMDY5IH0sCi0gIHsgMHgyMTgwZmIwMCwgMHgxNDAwMDAwNiB9LAot
ICB7IDB4MDE4MGZiMTMsIDB4MTQwMDAwMDQgfSwKLSAgeyAweDE5MDBmYjFkLCAweDFjMDAwMDAw
IH0sCi0gIHsgMHgxOTAwZmIxZSwgMHgzMDAwMDAwMCB9LAotICB7IDB4MTk4MGZiMWYsIDB4MWMw
MDAwMDkgfSwKLSAgeyAweDE5MDBmYjI5LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgxOTgwZmIyYSwg
MHgxYzAwMDAwYyB9LAotICB7IDB4MTk4MGZiMzgsIDB4MWMwMDAwMDQgfSwKLSAgeyAweDE5MDBm
YjNlLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxOTgwZmI0MCwgMHgxYzAwMDAwMSB9LAotICB7IDB4
MTk4MGZiNDMsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDE5ODBmYjQ2LCAweDFjMDAwMDZiIH0sCi0g
IHsgMHgwMDgwZmJkMywgMHgxYzAwMDE2YSB9LAotICB7IDB4MDkwMGZkM2UsIDB4NTgwMDAwMDAg
fSwKLSAgeyAweDA5MDBmZDNmLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwMDgwZmQ1MCwgMHgxYzAw
MDAzZiB9LAotICB7IDB4MDA4MGZkOTIsIDB4MWMwMDAwMzUgfSwKLSAgeyAweDAwODBmZGYwLCAw
eDFjMDAwMDBiIH0sCi0gIHsgMHgwMDAwZmRmYywgMHg1YzAwMDAwMCB9LAotICB7IDB4MDkwMGZk
ZmQsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDFiODBmZTAwLCAweDMwMDAwMDBmIH0sCi0gIHsgMHgw
OTgwZmUxMCwgMHg1NDAwMDAwNiB9LAotICB7IDB4MDkwMGZlMTcsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5MDBmZTE4LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUxOSwgMHg1NDAwMDAwMCB9
LAotICB7IDB4MWI4MGZlMjAsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDA5MDBmZTMwLCAweDU0MDAw
MDAwIH0sCi0gIHsgMHgwOTgwZmUzMSwgMHg0NDAwMDAwMSB9LAotICB7IDB4MDk4MGZlMzMsIDB4
NDAwMDAwMDEgfSwKLSAgeyAweDA5MDBmZTM1LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUz
NiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlMzcsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDBmZTM4LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUzOSwgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMGZlM2EsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTNiLCAweDU4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwZmUzYywgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlM2QsIDB4NTgwMDAw
MDAgfSwKLSAgeyAweDA5MDBmZTNlLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUzZiwgMHg1
ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNDAsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTQx
LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU0MiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkw
MGZlNDMsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTQ0LCAweDQ4MDAwMDAwIH0sCi0gIHsg
MHgwOTgwZmU0NSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDkwMGZlNDcsIDB4NTgwMDAwMDAgfSwK
LSAgeyAweDA5MDBmZTQ4LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgwZmU0OSwgMHg1NDAwMDAw
MyB9LAotICB7IDB4MDk4MGZlNGQsIDB4NDAwMDAwMDIgfSwKLSAgeyAweDA5ODBmZTUwLCAweDU0
MDAwMDAyIH0sCi0gIHsgMHgwOTgwZmU1NCwgMHg1NDAwMDAwMyB9LAotICB7IDB4MDkwMGZlNTgs
IDB4NDQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTU5LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAw
ZmU1YSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNWIsIDB4NTgwMDAwMDAgfSwKLSAgeyAw
eDA5MDBmZTVjLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU1ZCwgMHg1ODAwMDAwMCB9LAot
ICB7IDB4MDkwMGZlNWUsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODBmZTVmLCAweDU0MDAwMDAy
IH0sCi0gIHsgMHgwOTAwZmU2MiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMGZlNjMsIDB4NDQw
MDAwMDAgfSwKLSAgeyAweDA5ODBmZTY0LCAweDY0MDAwMDAyIH0sCi0gIHsgMHgwOTAwZmU2OCwg
MHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMGZlNjksIDB4NWMwMDAwMDAgfSwKLSAgeyAweDA5ODBm
ZTZhLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwMDgwZmU3MCwgMHgxYzAwMDAwNCB9LAotICB7IDB4
MDA4MGZlNzYsIDB4MWMwMDAwODYgfSwKLSAgeyAweDA5MDBmZWZmLCAweDA0MDAwMDAwIH0sCi0g
IHsgMHgwOTgwZmYwMSwgMHg1NDAwMDAwMiB9LAotICB7IDB4MDkwMGZmMDQsIDB4NWMwMDAwMDAg
fSwKLSAgeyAweDA5ODBmZjA1LCAweDU0MDAwMDAyIH0sCi0gIHsgMHgwOTAwZmYwOCwgMHg1ODAw
MDAwMCB9LAotICB7IDB4MDkwMGZmMDksIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjBhLCAw
eDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYwYiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMGZm
MGMsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjBkLCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgw
OTgwZmYwZSwgMHg1NDAwMDAwMSB9LAotICB7IDB4MDk4MGZmMTAsIDB4MzQwMDAwMDkgfSwKLSAg
eyAweDA5ODBmZjFhLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwOTgwZmYxYywgMHg2NDAwMDAwMiB9
LAotICB7IDB4MDk4MGZmMWYsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDIxMDBmZjIxLCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgyMTAwZmYyMiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMjMsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjI0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYy
NSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMjYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIx
MDBmZjI3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyOCwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MjEwMGZmMjksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjJhLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgyMTAwZmYyYiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMmMsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDBmZjJkLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyZSwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMmYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjMw
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzMSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MGZmMzIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjMzLCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgyMTAwZmYzNCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMzUsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDIxMDBmZjM2LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzNywgMHgyNDAwMDAy
MCB9LAotICB7IDB4MjEwMGZmMzgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjM5LCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzYSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MDkwMGZmM2Is
IDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjNjLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAw
ZmYzZCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZmM2UsIDB4NjAwMDAwMDAgfSwKLSAgeyAw
eDA5MDBmZjNmLCAweDQwMDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY0MCwgMHg2MDAwMDAwMCB9LAot
ICB7IDB4MjEwMGZmNDEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjQyLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgyMTAwZmY0MywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDQsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDIxMDBmZjQ1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0Niwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDcsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBm
ZjQ4LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0OSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MjEwMGZmNGEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjRiLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwZmY0YywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNGQsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDBmZjRlLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0ZiwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMGZmNTAsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjUxLCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1MiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZm
NTMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjU0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgy
MTAwZmY1NSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNTYsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDIxMDBmZjU3LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1OCwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MjEwMGZmNTksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjVhLCAweDE0MDBm
ZmUwIH0sCi0gIHsgMHgwOTAwZmY1YiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZmNWMsIDB4
NjQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjVkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY1
ZSwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMGZmNWYsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDBmZjYwLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY2MSwgMHg1NDAwMDAwMCB9LAotICB7
IDB4MDkwMGZmNjIsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjYzLCAweDQ4MDAwMDAwIH0s
Ci0gIHsgMHgwOTgwZmY2NCwgMHg1NDAwMDAwMSB9LAotICB7IDB4MWQ4MGZmNjYsIDB4MWMwMDAw
MDkgfSwKLSAgeyAweDA5MDBmZjcwLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgxZDgwZmY3MSwgMHgx
YzAwMDAyYyB9LAotICB7IDB4MDk4MGZmOWUsIDB4MTgwMDAwMDEgfSwKLSAgeyAweDE3ODBmZmEw
LCAweDFjMDAwMDFlIH0sCi0gIHsgMHgxNzgwZmZjMiwgMHgxYzAwMDAwNSB9LAotICB7IDB4MTc4
MGZmY2EsIDB4MWMwMDAwMDUgfSwKLSAgeyAweDE3ODBmZmQyLCAweDFjMDAwMDA1IH0sCi0gIHsg
MHgxNzgwZmZkYSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MDk4MGZmZTAsIDB4NWMwMDAwMDEgfSwK
LSAgeyAweDA5MDBmZmUyLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmZlMywgMHg2MDAwMDAw
MCB9LAotICB7IDB4MDkwMGZmZTQsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5ODBmZmU1LCAweDVj
MDAwMDAxIH0sCi0gIHsgMHgwOTAwZmZlOCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDk4MGZmZTks
IDB4NjQwMDAwMDMgfSwKLSAgeyAweDA5ODBmZmVkLCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwOTgw
ZmZmOSwgMHgwNDAwMDAwMiB9LAotICB7IDB4MDk4MGZmZmMsIDB4NjgwMDAwMDEgfSwKLSAgeyAw
eDIzODEwMDAwLCAweDFjMDAwMDBiIH0sCi0gIHsgMHgyMzgxMDAwZCwgMHgxYzAwMDAxOSB9LAot
ICB7IDB4MjM4MTAwMjgsIDB4MWMwMDAwMTIgfSwKLSAgeyAweDIzODEwMDNjLCAweDFjMDAwMDAx
IH0sCi0gIHsgMHgyMzgxMDAzZiwgMHgxYzAwMDAwZSB9LAotICB7IDB4MjM4MTAwNTAsIDB4MWMw
MDAwMGQgfSwKLSAgeyAweDIzODEwMDgwLCAweDFjMDAwMDdhIH0sCi0gIHsgMHgwOTgxMDEwMCwg
MHg1NDAwMDAwMSB9LAotICB7IDB4MDkwMTAxMDIsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5ODEw
MTA3LCAweDNjMDAwMDJjIH0sCi0gIHsgMHgwOTgxMDEzNywgMHg2ODAwMDAwOCB9LAotICB7IDB4
MTM4MTAxNDAsIDB4MzgwMDAwMzQgfSwKLSAgeyAweDEzODEwMTc1LCAweDNjMDAwMDAzIH0sCi0g
IHsgMHgxMzgxMDE3OSwgMHg2ODAwMDAxMCB9LAotICB7IDB4MTMwMTAxOGEsIDB4M2MwMDAwMDAg
fSwKLSAgeyAweDI5ODEwMzAwLCAweDFjMDAwMDFlIH0sCi0gIHsgMHgyOTgxMDMyMCwgMHgzYzAw
MDAwMyB9LAotICB7IDB4MTI4MTAzMzAsIDB4MWMwMDAwMTkgfSwKLSAgeyAweDEyMDEwMzRhLCAw
eDM4MDAwMDAwIH0sCi0gIHsgMHgzYjgxMDM4MCwgMHgxYzAwMDAxZCB9LAotICB7IDB4M2IwMTAz
OWYsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDJhODEwM2EwLCAweDFjMDAwMDIzIH0sCi0gIHsgMHgy
YTgxMDNjOCwgMHgxYzAwMDAwNyB9LAotICB7IDB4MmEwMTAzZDAsIDB4NjgwMDAwMDAgfSwKLSAg
eyAweDJhODEwM2QxLCAweDM4MDAwMDA0IH0sCi0gIHsgMHgwZDAxMDQwMCwgMHgyNDAwMDAyOCB9
LAotICB7IDB4MGQwMTA0MDEsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDAyLCAweDI0MDAw
MDI4IH0sCi0gIHsgMHgwZDAxMDQwMywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MDQsIDB4
MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDA1LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQw
NiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MDcsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBk
MDEwNDA4LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwOSwgMHgyNDAwMDAyOCB9LAotICB7
IDB4MGQwMTA0MGEsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDBiLCAweDI0MDAwMDI4IH0s
Ci0gIHsgMHgwZDAxMDQwYywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MGQsIDB4MjQwMDAw
MjggfSwKLSAgeyAweDBkMDEwNDBlLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwZiwgMHgy
NDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTAsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDEx
LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxMiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQw
MTA0MTMsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDE0LCAweDI0MDAwMDI4IH0sCi0gIHsg
MHgwZDAxMDQxNSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTYsIDB4MjQwMDAwMjggfSwK
LSAgeyAweDBkMDEwNDE3LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxOCwgMHgyNDAwMDAy
OCB9LAotICB7IDB4MGQwMTA0MTksIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDFhLCAweDI0
MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxYiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MWMs
IDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDFkLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAx
MDQxZSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MWYsIDB4MjQwMDAwMjggfSwKLSAgeyAw
eDBkMDEwNDIwLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyMSwgMHgyNDAwMDAyOCB9LAot
ICB7IDB4MGQwMTA0MjIsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDIzLCAweDI0MDAwMDI4
IH0sCi0gIHsgMHgwZDAxMDQyNCwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjUsIDB4MjQw
MDAwMjggfSwKLSAgeyAweDBkMDEwNDI2LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyNywg
MHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjgsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEw
NDI5LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQyYSwgMHgxNDAwZmZkOCB9LAotICB7IDB4
MGQwMTA0MmIsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDJjLCAweDE0MDBmZmQ4IH0sCi0g
IHsgMHgwZDAxMDQyZCwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MmUsIDB4MTQwMGZmZDgg
fSwKLSAgeyAweDBkMDEwNDJmLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzMCwgMHgxNDAw
ZmZkOCB9LAotICB7IDB4MGQwMTA0MzEsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDMyLCAw
eDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzMywgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0
MzQsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDM1LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgw
ZDAxMDQzNiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MzcsIDB4MTQwMGZmZDggfSwKLSAg
eyAweDBkMDEwNDM4LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzOSwgMHgxNDAwZmZkOCB9
LAotICB7IDB4MGQwMTA0M2EsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDNiLCAweDE0MDBm
ZmQ4IH0sCi0gIHsgMHgwZDAxMDQzYywgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0M2QsIDB4
MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDNlLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQz
ZiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDAsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBk
MDEwNDQxLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0MiwgMHgxNDAwZmZkOCB9LAotICB7
IDB4MGQwMTA0NDMsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQ0LCAweDE0MDBmZmQ4IH0s
Ci0gIHsgMHgwZDAxMDQ0NSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDYsIDB4MTQwMGZm
ZDggfSwKLSAgeyAweDBkMDEwNDQ3LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0OCwgMHgx
NDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDksIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDRh
LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0YiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQw
MTA0NGMsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDRkLCAweDE0MDBmZmQ4IH0sCi0gIHsg
MHgwZDAxMDQ0ZSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NGYsIDB4MTQwMGZmZDggfSwK
LSAgeyAweDJlODEwNDUwLCAweDFjMDAwMDRkIH0sCi0gIHsgMHgyYzgxMDRhMCwgMHgzNDAwMDAw
OSB9LAotICB7IDB4MGI4MTA4MDAsIDB4MWMwMDAwMDUgfSwKLSAgeyAweDBiMDEwODA4LCAweDFj
MDAwMDAwIH0sCi0gIHsgMHgwYjgxMDgwYSwgMHgxYzAwMDAyYiB9LAotICB7IDB4MGI4MTA4Mzcs
IDB4MWMwMDAwMDEgfSwKLSAgeyAweDBiMDEwODNjLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwYjAx
MDgzZiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MWUwMTBhMDAsIDB4MWMwMDAwMDAgfSwKLSAgeyAw
eDFlODEwYTAxLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgxZTgxMGEwNSwgMHgzMDAwMDAwMSB9LAot
ICB7IDB4MWU4MTBhMGMsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDFlODEwYTEwLCAweDFjMDAwMDAz
IH0sCi0gIHsgMHgxZTgxMGExNSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MWU4MTBhMTksIDB4MWMw
MDAwMWEgfSwKLSAgeyAweDFlODEwYTM4LCAweDMwMDAwMDAyIH0sCi0gIHsgMHgxZTAxMGEzZiwg
MHgzMDAwMDAwMCB9LAotICB7IDB4MWU4MTBhNDAsIDB4M2MwMDAwMDcgfSwKLSAgeyAweDFlODEw
YTUwLCAweDU0MDAwMDA4IH0sCi0gIHsgMHgwOTgxZDAwMCwgMHg2ODAwMDBmNSB9LAotICB7IDB4
MDk4MWQxMDAsIDB4NjgwMDAwMjYgfSwKLSAgeyAweDA5ODFkMTJhLCAweDY4MDAwMDNhIH0sCi0g
IHsgMHgwOTgxZDE2NSwgMHgyODAwMDAwMSB9LAotICB7IDB4MWI4MWQxNjcsIDB4MzAwMDAwMDIg
fSwKLSAgeyAweDA5ODFkMTZhLCAweDY4MDAwMDAyIH0sCi0gIHsgMHgwOTgxZDE2ZCwgMHgyODAw
MDAwNSB9LAotICB7IDB4MDk4MWQxNzMsIDB4MDQwMDAwMDcgfSwKLSAgeyAweDFiODFkMTdiLCAw
eDMwMDAwMDA3IH0sCi0gIHsgMHgwOTgxZDE4MywgMHg2ODAwMDAwMSB9LAotICB7IDB4MWI4MWQx
ODUsIDB4MzAwMDAwMDYgfSwKLSAgeyAweDA5ODFkMThjLCAweDY4MDAwMDFkIH0sCi0gIHsgMHgx
YjgxZDFhYSwgMHgzMDAwMDAwMyB9LAotICB7IDB4MDk4MWQxYWUsIDB4NjgwMDAwMmYgfSwKLSAg
eyAweDEzODFkMjAwLCAweDY4MDAwMDQxIH0sCi0gIHsgMHgxMzgxZDI0MiwgMHgzMDAwMDAwMiB9
LAotICB7IDB4MTMwMWQyNDUsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5ODFkMzAwLCAweDY4MDAw
MDU2IH0sCi0gIHsgMHgwOTgxZDQwMCwgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ0MWEsIDB4
MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNDM0LCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDQ0
ZSwgMHgxNDAwMDAwNiB9LAotICB7IDB4MDk4MWQ0NTYsIDB4MTQwMDAwMTEgfSwKLSAgeyAweDA5
ODFkNDY4LCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDQ4MiwgMHgxNDAwMDAxOSB9LAotICB7
IDB4MDkwMWQ0OWMsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNDllLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwOTAxZDRhMiwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDk4MWQ0YTUsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDA5ODFkNGE5LCAweDI0MDAwMDAzIH0sCi0gIHsgMHgwOTgxZDRhZSwgMHgy
NDAwMDAwNyB9LAotICB7IDB4MDk4MWQ0YjYsIDB4MTQwMDAwMDMgfSwKLSAgeyAweDA5MDFkNGJi
LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDRiZCwgMHgxNDAwMDAwNiB9LAotICB7IDB4MDk4
MWQ0YzUsIDB4MTQwMDAwMGEgfSwKLSAgeyAweDA5ODFkNGQwLCAweDI0MDAwMDE5IH0sCi0gIHsg
MHgwOTgxZDRlYSwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1MDQsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDA5ODFkNTA3LCAweDI0MDAwMDAzIH0sCi0gIHsgMHgwOTgxZDUwZCwgMHgyNDAwMDAw
NyB9LAotICB7IDB4MDk4MWQ1MTYsIDB4MjQwMDAwMDYgfSwKLSAgeyAweDA5ODFkNTFlLCAweDE0
MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDUzOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MDk4MWQ1M2Is
IDB4MjQwMDAwMDMgfSwKLSAgeyAweDA5ODFkNTQwLCAweDI0MDAwMDA0IH0sCi0gIHsgMHgwOTAx
ZDU0NiwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDk4MWQ1NGEsIDB4MjQwMDAwMDYgfSwKLSAgeyAw
eDA5ODFkNTUyLCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDU2YywgMHgyNDAwMDAxOSB9LAot
ICB7IDB4MDk4MWQ1ODYsIDB4MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNWEwLCAweDI0MDAwMDE5
IH0sCi0gIHsgMHgwOTgxZDViYSwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1ZDQsIDB4MjQw
MDAwMTkgfSwKLSAgeyAweDA5ODFkNWVlLCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDYwOCwg
MHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ2MjIsIDB4MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFk
NjNjLCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDY1NiwgMHgxNDAwMDAxOSB9LAotICB7IDB4
MDk4MWQ2NzAsIDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNjhhLCAweDE0MDAwMDFiIH0sCi0g
IHsgMHgwOTgxZDZhOCwgMHgyNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ2YzEsIDB4NjQwMDAwMDAg
fSwKLSAgeyAweDA5ODFkNmMyLCAweDE0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDZkYiwgMHg2NDAw
MDAwMCB9LAotICB7IDB4MDk4MWQ2ZGMsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDA5ODFkNmUyLCAw
eDI0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDZmYiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ2
ZmMsIDB4MTQwMDAwMTggfSwKLSAgeyAweDA5MDFkNzE1LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgw
OTgxZDcxNiwgMHgxNDAwMDAwNSB9LAotICB7IDB4MDk4MWQ3MWMsIDB4MjQwMDAwMTggfSwKLSAg
eyAweDA5MDFkNzM1LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDczNiwgMHgxNDAwMDAxOCB9
LAotICB7IDB4MDkwMWQ3NGYsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNzUwLCAweDE0MDAw
MDA1IH0sCi0gIHsgMHgwOTgxZDc1NiwgMHgyNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ3NmYsIDB4
NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNzcwLCAweDE0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDc4
OSwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ3OGEsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDA5
ODFkNzkwLCAweDI0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDdhOSwgMHg2NDAwMDAwMCB9LAotICB7
IDB4MDk4MWQ3YWEsIDB4MTQwMDAwMTggfSwKLSAgeyAweDA5MDFkN2MzLCAweDY0MDAwMDAwIH0s
Ci0gIHsgMHgwOTgxZDdjNCwgMHgxNDAwMDAwNSB9LAotICB7IDB4MDk4MWQ3Y2UsIDB4MzQwMDAw
MzEgfSwKLSAgeyAweDE2ODIwMDAwLCAweDFjMDBhNmQ2IH0sCi0gIHsgMHgxNjgyZjgwMCwgMHgx
YzAwMDIxZCB9LAotICB7IDB4MDkwZTAwMDEsIDB4MDQwMDAwMDAgfSwKLSAgeyAweDA5OGUwMDIw
LCAweDA0MDAwMDVmIH0sCi0gIHsgMHgxYjhlMDEwMCwgMHgzMDAwMDBlZiB9LAotICB7IDB4MDk4
ZjAwMDAsIDB4MGMwMGZmZmQgfSwKLSAgeyAweDA5OTAwMDAwLCAweDBjMDBmZmZkIH0sCi19Owpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dzY3JpcHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3NjcmlwdAppbmRleCA4ZDdmNjljLi44ZTI3MzA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3NjcmlwdAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Nj
cmlwdApAQCAtMjksNyArMjksNyBAQCBpbXBvcnQgY29tbWFuZHMKIAogZnJvbSBzZXR0aW5ncyBp
bXBvcnQgKgogCi1qc2NvcmVfZXhjbHVkZXMgPSBbJ2NoYXJ0YWJsZXMuYycsICdqc2MuY3BwJywg
J3VjcHRhYmxlLmNwcCcsJ1Byb2ZpbGVyU2VydmVyLm1tJywgJ0V4ZWN1dGFibGVBbGxvY2F0b3JQ
b3NpeC5jcHAnXQoranNjb3JlX2V4Y2x1ZGVzID0gWydqc2MuY3BwJywgJ1Byb2ZpbGVyU2VydmVy
Lm1tJywgJ0V4ZWN1dGFibGVBbGxvY2F0b3JQb3NpeC5jcHAnXQoganNjb3JlX2V4Y2x1ZGVzLmV4
dGVuZChnZXRfZXhjbHVkZXMoanNjb3JlX2RpciwgWycqQnJldy5jcHAnLCAnKkNGLmNwcCcsICcq
U3ltYmlhbi5jcHAnXSkpCiAKIHNvdXJjZXMgPSBbXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvRm9yd2FyZGluZ0hlYWRlcnMvcGNyZS9wY3JlLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9G
b3J3YXJkaW5nSGVhZGVycy9wY3JlL3BjcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggNDdjMGQzZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9Gb3J3YXJkaW5nSGVh
ZGVycy9wY3JlL3BjcmUuaAorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9wY3JlLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
LnBybyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCmluZGV4IDVmNmUyNGQuLjk4ZjRkMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIucHJvCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIucHJvCkBAIC00NSw3ICs0NSw2IEBAIFdFQktJVDJfSU5DTFVERVBBVEggPSBc
CiAgICAgJCRQV0QvLi4vSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIgXAogICAgICQkUFdELy4u
L0phdmFTY3JpcHRDb3JlL2ppdCBcCiAgICAgJCRQV0QvLi4vSmF2YVNjcmlwdENvcmUvcGFyc2Vy
IFwKLSAgICAkJFBXRC8uLi9KYXZhU2NyaXB0Q29yZS9wY3JlIFwKICAgICAkJFBXRC8uLi9KYXZh
U2NyaXB0Q29yZS9wcm9maWxlciBcCiAgICAgJCRQV0QvLi4vSmF2YVNjcmlwdENvcmUvcnVudGlt
ZSBcCiAgICAgJCRQV0QvLi4vSmF2YVNjcmlwdENvcmUvd3RmIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9jbWFrZS9XZWJLaXRGUy5jbWFrZSBiL1NvdXJjZS9jbWFrZS9XZWJLaXRGUy5jbWFrZQppbmRl
eCBhMjExN2NkLi43NGU3ZmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21h
a2UKKysrIGIvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlCkBAIC0xLDYgKzEsNSBAQAogU0VU
KERFUklWRURfU09VUkNFU19ESVIgIiR7Q01BS0VfQklOQVJZX0RJUn0vRGVyaXZlZFNvdXJjZXMi
KQogCiBGSUxFKE1BS0VfRElSRUNUT1JZICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0pCi1GSUxFKE1B
S0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFTY3JpcHRDb3JlL3Bj
cmUpCiBGSUxFKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJUn0vU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUpCiBGSUxFKE1BS0VfRElSRUNUT1JZICR7Q01BS0VfQklOQVJZX0RJ
Un0vUHJvZ3JhbXMpCmRpZmYgLS1naXQgYS9Ub29scy93eC9idWlsZC9zZXR0aW5ncy5weSBiL1Rv
b2xzL3d4L2J1aWxkL3NldHRpbmdzLnB5CmluZGV4IGFhMjY0MDEuLjJiNzU3YzQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL3d4L2J1aWxkL3NldHRpbmdzLnB5CisrKyBiL1Rvb2xzL3d4L2J1aWxkL3NldHRp
bmdzLnB5CkBAIC04Niw3ICs4Niw2IEBAIGpzY29yZV9kaXJzID0gWwogICAgICdpbnRlcnByZXRl
cicsCiAgICAgJ2ppdCcsCiAgICAgJ3BhcnNlcicsCi0gICAgJ3BjcmUnLAogICAgICdwcm9maWxl
cicsCiAgICAgJ3J1bnRpbWUnLAogICAgICd3dGYnLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagppbmRleCA1MTRkN2M4Li40OWJi
MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvagpAQCAtMTMzOSw0MiArMTMzOSw2IEBACiAJCQk8L0ZpbGU+DQogCQk8L0Zp
bHRlcj4NCiAJCTxGaWx0ZXINCi0JCQlOYW1lPSJwY3JlIg0KLQkJCT4NCi0JCQk8RmlsZQ0KLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZS5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0K
LQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlX2NvbXBpbGUuY3Bw
Ig0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5c
Li5ccGNyZVxwY3JlX2V4ZWMuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlX2ludGVybmFsLmgiDQotCQkJCT4NCi0J
CQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVf
dGFibGVzLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIg0KLQkJCQk+DQotCQkJ
PC9GaWxlPg0KLQkJCTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlX3hj
bGFzcy5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQ
YXRoPSIuLlwuLlxwY3JlXHVjcGludGVybmFsLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQk8
L0ZpbHRlcj4NCi0JCTxGaWx0ZXINCiAJCQlOYW1lPSJBUEkiDQogCQkJPg0KIAkJCTxGaWxlDQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUNvbW1vbi52c3Byb3BzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZUNvbW1vbi52c3Byb3BzCmluZGV4IDJhODViZWIuLjRhN2Y0ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmVDb21tb24udnNwcm9wcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlQ29tbW9u
LnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPg0KIAk8VG9vbA0KIAkJTmFtZT0iVkNDTENvbXBp
bGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcSmF2YVNjcmlwdENvcmVcRGVyaXZlZFNvdXJjZXNcJnF1b3Q7
Oy4uLy4uLzsuLi8uLi9BUEkvOy4uLy4uL3BjcmUvOy4uLy4uL3BhcnNlci87Li4vLi4vYnl0ZWNv
bXBpbGVyLzsuLi8uLi9qaXQvOy4uLy4uL3J1bnRpbWUvOy4uLy4uL2J5dGVjb2RlLzsuLi8uLi9p
bnRlcnByZXRlci87Li4vLi4vd3RmLzsuLi8uLi9wcm9maWxlcjsuLi8uLi9hc3NlbWJsZXIvOy4u
Ly4uL2RlYnVnZ2VyLzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90Ozsm
cXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQo
Q29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJp
ZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDsiDQorCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVj
dG9yaWVzPSImcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXEphdmFTY3JpcHRDb3Jl
XERlcml2ZWRTb3VyY2VzXCZxdW90OzsuLi8uLi87Li4vLi4vQVBJLzsuLi8uLi9wYXJzZXIvOy4u
Ly4uL2J5dGVjb21waWxlci87Li4vLi4vaml0LzsuLi8uLi9ydW50aW1lLzsuLi8uLi9ieXRlY29k
ZS87Li4vLi4vaW50ZXJwcmV0ZXIvOy4uLy4uL3d0Zi87Li4vLi4vcHJvZmlsZXI7Li4vLi4vYXNz
ZW1ibGVyLzsuLi8uLi9kZWJ1Z2dlci87JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1
ZGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90
OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxKYXZhU2NyaXB0Q29yZSZxdW90OzsmcXVvdDsk
KENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2Vi
S2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7Ig0KIAkJUHJlcHJvY2Vzc29y
RGVmaW5pdGlvbnM9Il9fU1REX0MiDQogCQlGb3JjZWRJbmNsdWRlRmlsZXM9IklDVVZlcnNpb24u
aCINCiAJLz4NCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL1dURi9XVEZDb21tb24udnNwcm9wcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURkNvbW1vbi52c3Byb3BzCmluZGV4IGI3NGI5Mzku
LjZlMjMyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS52Y3Byb2ovV1RGL1dURkNvbW1vbi52c3Byb3BzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURkNvbW1vbi52c3Byb3BzCkBAIC03LDcgKzcs
NyBAQAogCT4NCiAJPFRvb2wNCiAJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlBZGRpdGlv
bmFsSW5jbHVkZURpcmVjdG9yaWVzPSImcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
XEphdmFTY3JpcHRDb3JlXERlcml2ZWRTb3VyY2VzXCZxdW90OzsuLi8uLi87JnF1b3Q7Li4vLi4v
b3Mtd2luMzIvJnF1b3Q7Oy4uLy4uL3BjcmUvOy4uLy4uL3BhcnNlci87Li4vLi4vd3RmLzsuLi8u
Li93dGYvdW5pY29kZS87JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJp
dmF0ZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZSZxdW90OzsuLi8u
Li8uLi9pY3UvaW5jbHVkZTsuLi8uLi9iaW5kaW5nczsuLi8uLi9iaW5kaW5ncy9jOy4uLy4uL2Jp
bmRpbmdzL2puaTsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxKYXZhU2Ny
aXB0Q29yZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFk
cyZxdW90OyINCisJCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmpcSmF2YVNjcmlwdENvcmVcRGVyaXZlZFNvdXJjZXNcJnF1b3Q7
Oy4uLy4uLzsmcXVvdDsuLi8uLi9vcy13aW4zMi8mcXVvdDs7Li4vLi4vcGFyc2VyLzsuLi8uLi93
dGYvOy4uLy4uL3d0Zi91bmljb2RlLzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5j
bHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1
b3Q7Oy4uLy4uLy4uL2ljdS9pbmNsdWRlOy4uLy4uL2JpbmRpbmdzOy4uLy4uL2JpbmRpbmdzL2M7
Li4vLi4vYmluZGluZ3Mvam5pOyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRl
XEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
XHB0aHJlYWRzJnF1b3Q7Ig0KIAkJUHJlcHJvY2Vzc29yRGVmaW5pdGlvbnM9Il9fU1REX0MiDQog
CQlGb3JjZWRJbmNsdWRlRmlsZXM9IklDVVZlcnNpb24uaCINCiAJCVByb2dyYW1EYXRhQmFzZUZp
bGVOYW1lPSIkKE91dERpcilcJChUYXJnZXROYW1lKS52YzgwLnBkYiINCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL2pzYy9qc2NDb21tb24u
dnNwcm9wcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovanNj
L2pzY0NvbW1vbi52c3Byb3BzCmluZGV4IGQxYzM2MzguLjNlMzI5YzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovanNjL2pzY0NvbW1vbi52
c3Byb3BzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ov
anNjL2pzY0NvbW1vbi52c3Byb3BzCkBAIC02LDcgKzYsNyBAQAogCT4NCiAJPFRvb2wNCiAJCU5h
bWU9IlZDQ0xDb21waWxlclRvb2wiDQotCQlBZGRpdGlvbmFsSW5jbHVkZURpcmVjdG9yaWVzPSIm
cXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKENvbmZp
Z3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJh
dGlvbkJ1aWxkRGlyKVxvYmpcSmF2YVNjcmlwdENvcmVcRGVyaXZlZFNvdXJjZXNcJnF1b3Q7Oy4u
Ly4uLzsmcXVvdDsuLi8uLi9vcy13aW4zMi8mcXVvdDs7Li4vLi4vcGNyZS87Li4vLi4vYXNzZW1i
bGVyLzsuLi8uLi9BUEkvOy4uLy4uL3BhcnNlci87Li4vLi4vcnVudGltZS87Li4vLi4vVk0vOy4u
Ly4uL2J5dGVjb2RlLzsuLi8uLi9pbnRlcnByZXRlci87Li4vLi4vd3RmLzsuLi8uLi9kZWJ1Z2dl
ci87Li4vLi4vYnl0ZWNvbXBpbGVyLzsuLi8uLi9wcm9maWxlcjsuLi8uLi9qaXQvOyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQoV2ViS2l0
TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7Ig0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rv
cmllcz0iJnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqXEphdmFTY3JpcHRDb3JlXERlcml2ZWRTb3VyY2VzXCZx
dW90OzsuLi8uLi87JnF1b3Q7Li4vLi4vb3Mtd2luMzIvJnF1b3Q7Oy4uLy4uL2Fzc2VtYmxlci87
Li4vLi4vQVBJLzsuLi8uLi9wYXJzZXIvOy4uLy4uL3J1bnRpbWUvOy4uLy4uL1ZNLzsuLi8uLi9i
eXRlY29kZS87Li4vLi4vaW50ZXJwcmV0ZXIvOy4uLy4uL3d0Zi87Li4vLi4vZGVidWdnZXIvOy4u
Ly4uL2J5dGVjb21waWxlci87Li4vLi4vcHJvZmlsZXI7Li4vLi4vaml0LzsmcXVvdDskKFdlYktp
dExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OzsmcXVvdDskKFdlYktpdExpYnJh
cmllc0RpcilcaW5jbHVkZSZxdW90OyINCiAJCVByZXByb2Nlc3NvckRlZmluaXRpb25zPSJfX1NU
RF9DIg0KIAkJRm9yY2VkSW5jbHVkZUZpbGVzPSJJQ1VWZXJzaW9uLmgiDQogCQlGb3JjZWRVc2lu
Z0ZpbGVzPSIiDQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGNlMTQxYTcuLjI1M2U0ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMi0xMCAgUGV0ZXIgVmFy
Z2EgIDxwdmFyZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW1vdmUgUENSRSBzb3VyY2UgZnJvbSB0cnVuaworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODgKKworICAgICAgICAq
IHd4L2J1aWxkL3NldHRpbmdzLnB5OgorCiAyMDExLTAyLTEwICBQaGlsaXBwZSBOb3JtYW5kICA8
cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBidWlsZCBmaXgu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAyZjY3Yzg3Li4zODdiNTZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMS0wMi0xMCAgUGV0ZXIgVmFyZ2Eg
IDxwdmFyZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmUgUENSRSBzb3VyY2UgZnJvbSB0cnVuaworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODgKKworICAgICAgICAqIEFu
ZHJvaWQubWs6CisgICAgICAgICogQW5kcm9pZC52OC53dGYubWs6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBEZXJp
dmVkU291cmNlcy5wcm86CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogSmF2
YVNjcmlwdENvcmUuZ3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5vcmRlcjoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS5wcmk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAgICAgKiBKYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVDb21tb24udnNwcm9w
czoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmVHZW5lcmF0ZWQubWFrZToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS52Y3Byb2ov
V1RGL1dURkNvbW1vbi52c3Byb3BzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9q
c2MvanNjQ29tbW9uLnZzcHJvcHM6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwY3JlL0FVVEhPUlM6IFJlbW92ZWQuCisgICAg
ICAgICogcGNyZS9DT1BZSU5HOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvZGZ0YWJsZXM6IFJl
bW92ZWQuCisgICAgICAgICogcGNyZS9wY3JlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGNyZS9w
Y3JlLnByaTogUmVtb3ZlZC4KKyAgICAgICAgKiBwY3JlL3BjcmVfY29tcGlsZS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogcGNyZS9wY3JlX2V4ZWMuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBj
cmUvcGNyZV9pbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZV90YWJsZXMu
Y3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwOiBS
ZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZV94Y2xhc3MuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIHBjcmUvdWNwaW50ZXJuYWwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwY3JlL3VjcHRhYmxl
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiB3c2NyaXB0OgorCiAyMDExLTAyLTA5ICBNYXJrIFJv
d2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwppbmRleCA2NmNlZWFhLi4zOTVjOTVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTEtMDItMTAgIFBldGVyIFZhcmdhICA8cHZhcmdhQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVt
b3ZlIFBDUkUgc291cmNlIGZyb20gdHJ1bmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU0MTg4CisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVycy9w
Y3JlL3BjcmUuaDogUmVtb3ZlZC4KKwogMjAxMS0wMi0wOSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCmluZGV4IDkxMWEzMTguLjUyZjI2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxMS0wMi0xMCAgUGV0ZXIgVmFyZ2EgIDxwdmFyZ2FAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgUENSRSBz
b3VyY2UgZnJvbSB0cnVuaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQxODgKKworICAgICAgICAqIFdlYktpdDIucHJvOgorCiAyMDExLTAyLTA5ICBC
cmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXIt
c3RhbXBlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IDIwNTA2YTIuLmY0ZGMwNmMgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMi0xMCAgUGV0ZXIgVmFyZ2EgIDxwdmFyZ2FA
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgUENSRSBzb3VyY2UgZnJvbSB0cnVuaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODgKKworICAgICAgICAqIFNvdXJjZS9jbWFr
ZS9XZWJLaXRGUy5jbWFrZToKKwogMjAxMS0wMi0wOSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFN0ZXZlIEJsb2NrLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81949</attachid>
            <date>2011-02-10 04:17:26 -0800</date>
            <delta_ts>2011-02-10 07:49:07 -0800</delta_ts>
            <desc>proposed patch v2</desc>
            <filename>remove-pcre-v2.patch</filename>
            <type>text/plain</type>
            <size>409815</size>
            <attacher name="Peter Varga">pvarga</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BbmRyb2lkLm1rIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKaW5kZXggY2I2ODFkZC4uZjNkNDdmNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQubWsKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FuZHJvaWQubWsKQEAgLTYxLDEyICs2MSw2IEBAIExPQ0FMX1NSQ19GSUxFUyA6PSBc
CiAJcGFyc2VyL1BhcnNlci5jcHAgXAogCXBhcnNlci9QYXJzZXJBcmVuYS5jcHAgXAogCVwKLQlw
Y3JlL3BjcmVfY29tcGlsZS5jcHAgXAotCXBjcmUvcGNyZV9leGVjLmNwcCBcCi0JcGNyZS9wY3Jl
X3RhYmxlcy5jcHAgXAotCXBjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKLQlwY3JlL3Bj
cmVfeGNsYXNzLmNwcCBcCi0JXAogCXByb2ZpbGVyL1Byb2ZpbGUuY3BwIFwKIAlwcm9maWxlci9Q
cm9maWxlR2VuZXJhdG9yLmNwcCBcCiAJcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwIFwKQEAgLTIy
NiwxMSArMjIwLDQgQEAgJChMRVhFUl9IRUFERVIpOiAkKExPQ0FMX1BBVEgpL2NyZWF0ZV9oYXNo
X3RhYmxlCiAkKExFWEVSX0hFQURFUik6ICQoaW50ZXJtZWRpYXRlcykvJS5sdXQuaCA6ICQoTE9D
QUxfUEFUSCkvcGFyc2VyL0tleXdvcmRzLnRhYmxlCiAJJCh0cmFuc2Zvcm0tZ2VuZXJhdGVkLXNv
dXJjZSkKIAotQ0hBUlRBQkxFUyA6PSAkKGludGVybWVkaWF0ZXMpL2NoYXJ0YWJsZXMuYwotJChD
SEFSVEFCTEVTKTogUFJJVkFURV9QQVRIIDo9ICQoTE9DQUxfUEFUSCkKLSQoQ0hBUlRBQkxFUyk6
IFBSSVZBVEVfQ1VTVE9NX1RPT0wgPSBwZXJsICQoUFJJVkFURV9QQVRIKS9wY3JlL2RmdGFibGVz
ICRACi0kKENIQVJUQUJMRVMpOiAkKExPQ0FMX1BBVEgpL3BjcmUvZGZ0YWJsZXMKLSQoQ0hBUlRB
QkxFUyk6ICQoTE9DQUxfUEFUSCkvcGNyZS9wY3JlX2ludGVybmFsLmgKLQkkKHRyYW5zZm9ybS1n
ZW5lcmF0ZWQtc291cmNlKQotCi1MT0NBTF9HRU5FUkFURURfU09VUkNFUyArPSAkKEpTQ19PQkpF
Q1RTKSAkKExFWEVSX0hFQURFUikgJChDSEFSVEFCTEVTKQorTE9DQUxfR0VORVJBVEVEX1NPVVJD
RVMgKz0gJChKU0NfT0JKRUNUUykgJChMRVhFUl9IRUFERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQW5kcm9pZC52OC53dGYubWsgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
QW5kcm9pZC52OC53dGYubWsKaW5kZXggZGMwNzgyOC4uOTc3ZDM4OSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FuZHJvaWQudjgud3RmLm1rCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BbmRyb2lkLnY4Lnd0Zi5tawpAQCAtMjYsMTIgKzI2LDYgQEAKICMgd3RmIHNvdXJj
ZSBmaWxlcwogCiBMT0NBTF9TUkNfRklMRVMgOj0gXAotCXBjcmUvcGNyZV9jb21waWxlLmNwcCBc
Ci0JcGNyZS9wY3JlX2V4ZWMuY3BwIFwKLQlwY3JlL3BjcmVfdGFibGVzLmNwcCBcCi0JcGNyZS9w
Y3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgXAotCXBjcmUvcGNyZV94Y2xhc3MuY3BwIFwKLQlcCiAJ
d3RmL0Fzc2VydGlvbnMuY3BwIFwKIAl3dGYvQnl0ZUFycmF5LmNwcCBcCiAJd3RmL0NyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcCBcCkBAIC02NiwxNSArNjAsMyBAQCBMT0NBTF9TUkNf
RklMRVMgOj0gXAogCXd0Zi91bmljb2RlL1VURjguY3BwIFwKIAlcCiAJd3RmL3VuaWNvZGUvaWN1
L0NvbGxhdG9ySUNVLmNwcAotCi1DSEFSVEFCTEVTIDo9ICQoaW50ZXJtZWRpYXRlcykvY2hhcnRh
Ymxlcy5jCi0kKENIQVJUQUJMRVMpOiBQUklWQVRFX1BBVEggOj0gJChMT0NBTF9QQVRIKQotJChD
SEFSVEFCTEVTKTogUFJJVkFURV9DVVNUT01fVE9PTCA9IHBlcmwgJChQUklWQVRFX1BBVEgpL3Bj
cmUvZGZ0YWJsZXMgJEAKLSQoQ0hBUlRBQkxFUyk6ICQoTE9DQUxfUEFUSCkvcGNyZS9kZnRhYmxl
cwotJChDSEFSVEFCTEVTKTogJChMT0NBTF9QQVRIKS9wY3JlL3BjcmVfaW50ZXJuYWwuaAotCSQo
dHJhbnNmb3JtLWdlbmVyYXRlZC1zb3VyY2UpCi0KLSQoaW50ZXJtZWRpYXRlcykvcGNyZS9wY3Jl
X3RhYmxlcy5vIDogJChDSEFSVEFCTEVTKQotCi0jIFdlIGRvIG5vdCBhZGQgJChDSEFSVEFCTEVT
KSB0byBMT0NBTF9HRU5FUkFURURfU09VUkNFUyBiZWNhdXNlIHRoZSBjaGFydGFibGVzLmMgZmls
ZQotIyBpcyBleHBsaWNpdGx5ICNpbmNsdWRlZCBpbiBwY3JlX3RhYmxlcy5jcHAuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggZTY4NWVjZi4uZjE4ODI2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTAsNyArMTAsNiBAQCBTRVQoSmF2YVNjcmlw
dENvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50
ZXJwcmV0ZXIiCiAgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCiAgICAgIiR7SkFWQVND
UklQVENPUkVfRElSfS9wYXJzZXIiCi0gICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9wY3JlIgog
ICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJvZmlsZXIiCiAgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9ydW50aW1lIgogICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0veWFyciIKQEAgLTY5
LDEyICs2OCw2IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VTCiAgICAgcGFyc2VyL1BhcnNl
ckFyZW5hLmNwcAogICAgIHBhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmNwcAogCi0gICAgcGNy
ZS9wY3JlX2NvbXBpbGUuY3BwCi0gICAgcGNyZS9wY3JlX2V4ZWMuY3BwCi0gICAgcGNyZS9wY3Jl
X3RhYmxlcy5jcHAKLSAgICBwY3JlL3BjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcAotICAgIHBjcmUv
cGNyZV94Y2xhc3MuY3BwCi0KICAgICBwcm9maWxlci9Qcm9maWxlLmNwcAogICAgIHByb2ZpbGVy
L1Byb2ZpbGVHZW5lcmF0b3IuY3BwCiAgICAgcHJvZmlsZXIvUHJvZmlsZU5vZGUuY3BwCkBAIC0y
MTEsMTUgKzIwNCw2IEBAIEVOREZPUkVBQ0ggKCkKIEdFTkVSQVRFX0hBU0hfTFVUKCR7SkFWQVND
UklQVENPUkVfRElSfS9wYXJzZXIvS2V5d29yZHMudGFibGUgJHtERVJJVkVEX1NPVVJDRVNfRElS
fS9MZXhlci5sdXQuaCBNQUlOX0RFUEVOREVOQ1kpCiBMSVNUKEFQUEVORCBKYXZhU2NyaXB0Q29y
ZV9IRUFERVJTICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0vTGV4ZXIubHV0LmgpCiAKLSMgR0VORVJB
VE9SOiAiY2hhcnRhYmxlcy5jIjogY29tcGlsZSBhbmQgZXhlY3V0ZSB0aGUgY2hhcnRhYmxlcyBn
ZW5lcmF0b3IgKGFuZCBhZGQgaXQgdG8gc291cmNlcykKLUFERF9DVVNUT01fQ09NTUFORCgKLSAg
ICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9jaGFydGFibGVzLmMKLSAgICBNQUlOX0RF
UEVOREVOQ1kgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BjcmUvZGZ0YWJsZXMKLSAgICBDT01NQU5E
ICR7UEVSTF9FWEVDVVRBQkxFfSAke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcGNyZS9kZnRhYmxlcyAt
LXByZXByb2Nlc3NvciAiJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1J9IiAke0RFUklWRURf
U09VUkNFU19ESVJ9L2NoYXJ0YWJsZXMuYwotICAgIFZFUkJBVElNKQotQUREX1NPVVJDRV9ERVBF
TkRFTkNJRVMoJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BjcmUvcGNyZV90YWJsZXMuY3BwICR7REVS
SVZFRF9TT1VSQ0VTX0RJUn0vY2hhcnRhYmxlcy5jKQotCi0KICNHRU5FUkFUT1I6ICJSZWdFeHBK
aXRUYWJsZXMuaCI6IHRhYmxlcyB1c2VkIGJ5IFlhcnIKIEFERF9DVVNUT01fQ09NTUFORCgKICAg
ICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9SZWdFeHBKaXRUYWJsZXMuaApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCAxZjY4NGQ0Li4wZmY5Y2Rm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMjcsNyAr
MjcsNiBAQAogVlBBVEggPSBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkgXAogICAgICQoSmF2YVNj
cmlwdENvcmUpL3BhcnNlciBcCi0gICAgJChKYXZhU2NyaXB0Q29yZSkvcGNyZSBcCiAgICAgJChK
YXZhU2NyaXB0Q29yZSkvZG9jcyBcCiAgICAgJChKYXZhU2NyaXB0Q29yZSkvcnVudGltZSBcCiAg
ICAgJChKYXZhU2NyaXB0Q29yZSkvaW50ZXJwcmV0ZXIgXApAQCAtNDksNyArNDgsNiBAQCBhbGwg
OiBcCiAgICAgUmVnRXhwSml0VGFibGVzLmggXAogICAgIFJlZ0V4cE9iamVjdC5sdXQuaCBcCiAg
ICAgU3RyaW5nUHJvdG90eXBlLmx1dC5oIFwKLSAgICBjaGFydGFibGVzLmMgXAogICAgIGRvY3Mv
Ynl0ZWNvZGUuaHRtbCBcCiAjCiAKQEAgLTYwLDExICs1OCw2IEBAIGFsbCA6IFwKIExleGVyLmx1
dC5oOiBjcmVhdGVfaGFzaF90YWJsZSBLZXl3b3Jkcy50YWJsZQogCSReID4gJEAKIAotIyBjaGFy
YWN0ZXIgdGFibGVzIGZvciBQQ1JFCi0KLWNoYXJ0YWJsZXMuYyA6IGRmdGFibGVzCi0JJF4gJEAK
LQogZG9jcy9ieXRlY29kZS5odG1sOiBtYWtlLWJ5dGVjb2RlLWRvY3MucGwgSW50ZXJwcmV0ZXIu
Y3BwIAogCXBlcmwgJF4gJEAKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0Rl
cml2ZWRTb3VyY2VzLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9EZXJpdmVkU291cmNlcy5w
cm8KaW5kZXggNGQ3MjRiZS4uZWFjNGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0Rlcml2ZWRTb3VyY2VzLnBybworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvRGVyaXZl
ZFNvdXJjZXMucHJvCkBAIC04MywxNSArODMsNiBAQCBtc3Zjc3R1YnMuaW5wdXQgPSBKSVRfU1RV
Ql9GSUxFUwogbXN2Y3N0dWJzLkNPTkZJRyArPSBub19saW5rCiBhZGRFeHRyYUNvbXBpbGVyKG1z
dmNzdHVicykKIAotIyBHRU5FUkFUT1I6ICJjaGFydGFibGVzLmMiOiBjb21waWxlIGFuZCBleGVj
dXRlIHRoZSBjaGFydGFibGVzIGdlbmVyYXRvciAoYW5kIGFkZCBpdCB0byBzb3VyY2VzKQotd2lu
MzItbXN2Yyp8d2luY2UqOiBQUkVQUk9DRVNTT1IgPSAiLS1wcmVwcm9jZXNzb3I9XCIkJFFNQUtF
X0NDIC9FXCIiCi1jdGdlbi5vdXRwdXQgPSAkJEpTQ19HRU5FUkFURURfU09VUkNFU19ESVIvY2hh
cnRhYmxlcy5jCi1jdGdlbi53a1NjcmlwdCA9ICQkUFdEL3BjcmUvZGZ0YWJsZXMKLWN0Z2VuLmlu
cHV0ID0gY3RnZW4ud2tTY3JpcHQKLWN0Z2VuLmNvbW1hbmRzID0gcGVybCAkJGN0Z2VuLndrU2Ny
aXB0ICR7UU1BS0VfRklMRV9PVVR9ICQkUFJFUFJPQ0VTU09SCi1jdGdlbi5jbGVhbiA9ICR7UU1B
S0VfRklMRV9PVVR9ICR7UU1BS0VfVkFSX0pTQ19HRU5FUkFURURfU09VUkNFU19ESVJ9JHtRTUFL
RV9GSUxFX0JBU0V9Ci1hZGRFeHRyYUNvbXBpbGVyKGN0Z2VuKQotCiAjR0VORVJBVE9SOiAiUmVn
RXhwSml0VGFibGVzLmgiOiB0YWJsZXMgdXNlZCBieSBZYXJyCiByZXRnZW4ub3V0cHV0ID0gJCRK
U0NfR0VORVJBVEVEX1NPVVJDRVNfRElSL1JlZ0V4cEppdFRhYmxlcy5oCiByZXRnZW4ud2tTY3Jp
cHQgPSAkJFBXRC9jcmVhdGVfcmVnZXhfdGFibGVzIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZ3lwaQppbmRleCBjZmRiZmExLi4zZDU0N2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpAQCAtMTQ4LDE1ICsxNDgsNiBAQAogICAgICAg
ICAgICAgJ3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlLmgnLAogICAgICAgICAgICAgJ3BhcnNl
ci9Tb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oJywKICAgICAgICAgICAgICdwYXJzZXIvU3ludGF4
Q2hlY2tlci5oJywKLSAgICAgICAgICAgICdwY3JlL3BjcmUuaCcsCi0gICAgICAgICAgICAncGNy
ZS9wY3JlX2NvbXBpbGUuY3BwJywKLSAgICAgICAgICAgICdwY3JlL3BjcmVfZXhlYy5jcHAnLAot
ICAgICAgICAgICAgJ3BjcmUvcGNyZV9pbnRlcm5hbC5oJywKLSAgICAgICAgICAgICdwY3JlL3Bj
cmVfdGFibGVzLmNwcCcsCi0gICAgICAgICAgICAncGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5j
cHAnLAotICAgICAgICAgICAgJ3BjcmUvcGNyZV94Y2xhc3MuY3BwJywKLSAgICAgICAgICAgICdw
Y3JlL3VjcGludGVybmFsLmgnLAotICAgICAgICAgICAgJ3BjcmUvdWNwdGFibGUuY3BwJywKICAg
ICAgICAgICAgICdwcm9maWxlci9DYWxsSWRlbnRpZmllci5oJywKICAgICAgICAgICAgICdwcm9m
aWxlci9Qcm9maWxlLmNwcCcsCiAgICAgICAgICAgICAncHJvZmlsZXIvUHJvZmlsZS5oJywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlciBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5vcmRlcgppbmRleCAzY2IzZDFkLi45
ZTQwMDRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
b3JkZXIKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLm9yZGVyCkBA
IC0xODUsMTEgKzE4NSw5IEBAIF9fWk4zV1RGMzFjbGVhclB0aHJlYWRIYW5kbGVGb3JJZGVudGlm
aWVyRWoKIF9fWk4zV1RGMTJkZXRhY2hUaHJlYWRFagogX19aTjNXVEZMMjZwdGhyZWFkSGFuZGxl
Rm9ySWRlbnRpZmllckVqCiBfX1pON1dlYkNvcmU2U3RyaW5nQzFFUEt0agotX19aMTVqc1JlZ0V4
cENvbXBpbGVQS3RpMjRKU1JlZ0V4cElnbm9yZUNhc2VPcHRpb24yM0pTUmVnRXhwTXVsdGlsaW5l
T3B0aW9uUGpQUEtjCiBfX1pMMzBjYWxjdWxhdGVDb21waWxlZFBhdHRlcm5MZW5ndGhQS3RpMjRK
U1JlZ0V4cElnbm9yZUNhc2VPcHRpb25SMTFDb21waWxlRGF0YVI5RXJyb3JDb2RlCiBfX1pMMTFj
aGVja0VzY2FwZVBQS3RTMF9QOUVycm9yQ29kZWliCiBfX1pMMTNjb21waWxlQnJhbmNoaVBpUFBo
UFBLdFMzX1A5RXJyb3JDb2RlU19TX1IxMUNvbXBpbGVEYXRhCi1fX1oxNWpzUmVnRXhwRXhlY3V0
ZVBLOEpTUmVnRXhwUEt0aWlQaWkKIF9fWkw1bWF0Y2hQS3RQS2hpUjlNYXRjaERhdGEKIF9fWk43
V2ViQ29yZTZTdHJpbmc2Zm9ybWF0RVBLY3oKIF9fWk5LN1dlYkNvcmU2U3RyaW5nMTljaGFyYWN0
ZXJTdGFydGluZ0F0RWoKQEAgLTE1MzQsNyArMTUzMiw2IEBAIF9fWk4zV1RGNlZlY3Rvckl0TG0w
RUU2YXBwZW5kSXRFRXZQS1RfbQogX2N0aV9vcF90b19wcmltaXRpdmUKIF9fWk4zSlNDMTVjb25z
dHJ1Y3ROdW1iZXJFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFCiBfX1pOSzNKU0MxMk51bWJl
ck9iamVjdDljbGFzc0luZm9FdgotX19aMTJqc1JlZ0V4cEZyZWVQOEpTUmVnRXhwCiBfX1pOM0pT
QzEzQm9vbGVhbk9iamVjdEQxRXYKIF9fWk4zSlNDTDE4c3RyaW5nRnJvbUNoYXJDb2RlRVBOU185
RXhlY1N0YXRlRVBOU184SlNPYmplY3RFTlNfN0pTVmFsdWVFUktOU183QXJnTGlzdEUKIF9fWk4z
SlNDMTBtYWtlU3RyaW5nSVBLY05TXzdVU3RyaW5nRVMyX0VFUzNfVF9UMF9UMV8KQEAgLTE1NDUs
NyArMTU0Miw2IEBAIF9fWk4zSlNDOEpTT2JqZWN0MThnZXRQcmltaXRpdmVOdW1iZXJFUE5TXzlF
eGVjU3RhdGVFUmRSTlNfN0pTVmFsdWVFCiBfX1pOM0pTQ0wyNGRhdGVQcm90b0Z1bmNHZXRGdWxs
WWVhckVQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RU5TXzdKU1ZhbHVlRVJLTlNfN0FyZ0xp
c3RFCiBfX1pOM0pTQzEyUmVnRXhwT2JqZWN0M3B1dEVQTlNfOUV4ZWNTdGF0ZUVSS05TXzEwSWRl
bnRpZmllckVOU183SlNWYWx1ZUVSTlNfMTVQdXRQcm9wZXJ0eVNsb3RFCiBfX1pOM0pTQ0wyNHNl
dFJlZ0V4cE9iamVjdExhc3RJbmRleEVQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RU5TXzdK
U1ZhbHVlRQotX19aMTVqc2NfcGNyZV94Y2xhc3NpUEtoCiBfX1pOM0pTQ0wyOHJlZ0V4cENvbnN0
cnVjdG9yTGVmdENvbnRleHRFUE5TXzlFeGVjU3RhdGVFTlNfN0pTVmFsdWVFUktOU18xMElkZW50
aWZpZXJFCiBfX1pOSzNKU0MxN1JlZ0V4cENvbnN0cnVjdG9yMTRnZXRMZWZ0Q29udGV4dEVQTlNf
OUV4ZWNTdGF0ZUUKIF9jdGlfdG9fb2JqZWN0CkBAIC0xNzkwLDcgKzE3ODYsNiBAQCBfX1pOM0pT
Q0wyOGRhdGVQcm90b0Z1bmNHZXRNaWxsaVNlY29uZHNFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09i
amVjdEVOU183SlNWYWx1ZQogX19aTjNKU0MxMG1ha2VTdHJpbmdJTlNfN1VTdHJpbmdFUzFfRUVT
MV9UX1QwXwogX19aTjNKU0MxM3RyeU1ha2VTdHJpbmdJTlNfN1VTdHJpbmdFUzFfRUVOM1dURjEw
UGFzc1JlZlB0cklON1dlYkNvcmUxMFN0cmluZ0ltcGxFRUVUX1QwXwogX19aTjNKU0MyM01hY3Jv
QXNzZW1ibGVyWDg2Q29tbW9uOGJyYW5jaDE2RU5TMF85Q29uZGl0aW9uRU5TXzIyQWJzdHJhY3RN
YWNyb0Fzc2VtYmxlcklOU18xMlg4NkFzc2VtYmxlckVFOUJhc2VJbmRleEVOUzRfNUltbTMyRQot
X19aMjJqc2NfcGNyZV91Y3Bfb3RoZXJjYXNlagogX19aTjNKU0M4SlNTdHJpbmcxOGdldE93blBy
b3BlcnR5U2xvdEVQTlNfOUV4ZWNTdGF0ZUVqUk5TXzEyUHJvcGVydHlTbG90RQogX19aTjNKU0NM
MjRkYXRlUHJvdG9GdW5jU2V0VVRDSG91cnNFUE5TXzlFeGVjU3RhdGVFUE5TXzhKU09iamVjdEVO
U183SlNWYWx1ZUVSS05TXzdBcmdMaXN0RQogX19aTjNKU0NMMjZkYXRlUHJvdG9GdW5jU2V0VVRD
TWludXRlc0VQTlNfOUV4ZWNTdGF0ZUVQTlNfOEpTT2JqZWN0RU5TXzdKU1ZhbHVlRVJLTlNfN0Fy
Z0xpc3RFCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
cHJpIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnByaQppbmRleCAwNjYx
M2ExLi5mZjBiZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUucHJpCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkK
QEAgLTMxLDcgKzMxLDYgQEAgSkFWQVNDUklQVENPUkVfSU5DTFVERVBBVEggPSBcCiAgICAgJCRQ
V0QvaW50ZXJwcmV0ZXIgXAogICAgICQkUFdEL2ppdCBcCiAgICAgJCRQV0QvcGFyc2VyIFwKLSAg
ICAkJFBXRC9wY3JlIFwKICAgICAkJFBXRC9wcm9maWxlciBcCiAgICAgJCRQV0QvcnVudGltZSBc
CiAgICAgJCRQV0Qvd3RmIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQu
bWFrZSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmVHZW5lcmF0ZWQubWFrZQppbmRleCAwZGVjZWZhLi4zMTRh
Nzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlR2VuZXJhdGVkLm1ha2UKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZUdlbmVyYXRlZC5tYWtlCkBAIC0zOSw3ICszOSw2IEBAIGFsbDoKICAgICB4
Y29weSAveSAvZCAiLi5cLi5cZGVidWdnZXJcKi5oIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVc
aW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlIgogICAgIHhjb3B5IC95IC9kICIuLlwuLlxw
cm9maWxlclwqLmgiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRlXHByaXZhdGVcSmF2
YVNjcmlwdENvcmUiCiAgICAgeGNvcHkgL3kgL2QgIi4uXC4uXGNyZWF0ZV9oYXNoX3RhYmxlIiAi
JUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3JlIgot
ICAgIHhjb3B5IC95IC9kICIuLlwuLlxwY3JlXHBjcmUuaCIgIiVDb25maWd1cmF0aW9uQnVpbGRE
aXIlXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSIKICAgICB4Y29weSAveSAvZCAiLi5c
Li5cd3RmXHRleHRcQXRvbWljU3RyaW5nLmNwcCIgIiVDb25maWd1cmF0aW9uQnVpbGREaXIlXGlu
Y2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZSIKICAgICB4Y29weSAveSAvZCAiLi5cLi5cd3Rm
XHRleHRcU3RyaW5nQnVpbGRlci5jcHAiICIlQ29uZmlndXJhdGlvbkJ1aWxkRGlyJVxpbmNsdWRl
XHByaXZhdGVcSmF2YVNjcmlwdENvcmUiCiAgICAgeGNvcHkgL3kgL2QgIi4uXC4uXHd0Zlx0ZXh0
XFN0cmluZ0ltcGwuY3BwIiAiJUNvbmZpZ3VyYXRpb25CdWlsZERpciVcaW5jbHVkZVxwcml2YXRl
XEphdmFTY3JpcHRDb3JlIgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYzI1YzQw
Li5kNDgxMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjg3LDkgKzI4Nyw2
IEBACiAJCTkwRDM0NjlDMEUyODUyODAwMDk0OTJFRSAvKiBSZWZDb3VudGVkTGVha0NvdW50ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDM0NjlC
MEUyODUyODAwMDk0OTJFRSAvKiBSZWZDb3VudGVkTGVha0NvdW50ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzA1MkMzNDBGQjc5MjE5MDA0
OEZEQzMgLyogUGFyc2VyQXJlbmEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTMwNTJDMzIwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmNw
cCAqLzsgfTsKIAkJOTMwNTJDMzUwRkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA1MkMzMzBGQjc5
MjE5MDA0OEZEQzMgLyogUGFyc2VyQXJlbmEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
ICgpOyB9OyB9OwotCQk5MzA3NTRDMTA4QjBGNjgwMDBBQjMwNTYgLyogcGNyZV9jb21waWxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMDc1NEJG
MDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2NvbXBpbGUuY3BwICovOyB9OwotCQk5MzA3NTREMDA4
QjBGNzQ2MDBBQjMwNTYgLyogcGNyZV90YWJsZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwNzU0Q0UwOEIwRjc0NTAwQUIzMDU2IC8qIHBjcmVf
dGFibGVzLmNwcCAqLzsgfTsKLQkJOTMwNzU0RUIwOEIwRjc4NTAwQUIzMDU2IC8qIHBjcmVfZXhl
Yy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzA3
NTRFOTA4QjBGNzg1MDBBQjMwNTYgLyogcGNyZV9leGVjLmNwcCAqLzsgc2V0dGluZ3MgPSB7Q09N
UElMRVJfRkxBR1MgPSAiLWZuby1tb3ZlLWxvb3AtaW52YXJpYW50cyI7IH07IH07CiAJCTkzMkY1
QkQzMDgyMkExQzcwMDczNjk3NSAvKiBDb3JlRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3
b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTYwQTRDRjA0QjNCM0U3
MDA4QUU5NTIgLyogQ29yZUZvdW5kYXRpb24uZnJhbWV3b3JrICovOyB9OwogCQk5MzJGNUJENTA4
MjJBMUM3MDA3MzY5NzUgLyogRm91bmRhdGlvbi5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUYwRUI2MTA1Qzg2QzZCMDBFNkRGMUIg
LyogRm91bmRhdGlvbi5mcmFtZXdvcmsgKi87IH07CiAJCTkzMkY1QkQ2MDgyMkExQzcwMDczNjk3
NSAvKiBsaWJvYmpjLmR5bGliIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTFGMEVDMDcwNUM4NkM5QTAwRTZERjFCIC8qIGxpYm9iamMuZHlsaWIgKi87
IH07CkBAIC0zMDAsOSArMjk3LDcgQEAKIAkJOTMzMDQwMkMwRTZBNzY0MDAwNzg2RTZBIC8qIFNt
YWxsU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzMwM0ZFODBFNkE3MkI1MDA3ODZFNkEgLyogU21hbGxTdHJpbmdzLmNwcCAqLzsgfTsK
IAkJOTMzNUYyNEQxMkU2NzY1QjAwMkI1NTUzIC8qIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzNDVBODcx
MkQ4MzhDNDAwMzAyQkUzIC8qIFN0cmluZ1JlY3Vyc2lvbkNoZWNrZXIuY3BwICovOyB9OwogCQk5
MzNGNUNEQzEyNjkyMjlCMDA0OTE5MUUgLyogTnVsbFB0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMzRjVDREIxMjY5MjI2OTAwNDkxOTFFIC8qIE51
bGxQdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owot
CQk5MzcwMTM0ODBDQTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM3MDEzNDcwQ0E5
N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJjaGZ1bmNzLmNwcCAqLzsgc2V0dGluZ3MgPSB7
Q09NUElMRVJfRkxBR1MgPSAiLVduby1zaWduLWNvbXBhcmUiOyB9OyB9OwogCQk5Mzg1NEE5QTEy
QzkzRDNCMDBEQUFGNzcgLyogTnVsbFB0ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzg1NEE5OTEyQzkzRDNCMDBEQUFGNzcgLyogTnVsbFB0ci5j
cHAgKi87IH07Ci0JCTkzRTI2QkQ0MDhCMTUxNDEwMEY4NTIyNiAvKiBwY3JlX3hjbGFzcy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNkJEMzA4
QjE1MTQxMDBGODUyMjYgLyogcGNyZV94Y2xhc3MuY3BwICovOyB9OwogCQk5NTM0QUFGQjBFNUI3
QTk2MDBCOEE0NUIgLyogSlNQcm9maWxlclByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1MkM2M0FDMEU0Nzc3RDYwMEMxMzkzNiAvKiBKU1By
b2ZpbGVyUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTk1NzQyRjY1MEREMTFGNUEwMDA5MTdGQiAvKiBQcm9maWxlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1NzQyRjYzMEREMTFGNUEw
MDA5MTdGQiAvKiBQcm9maWxlLmNwcCAqLzsgfTsKIAkJOTVBQjgzNDIwREE0MzIyNTAwQkM4M0Yz
IC8qIFByb2ZpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk1QUI4MzJFMERBNDJDQUQwMEJDODNGMyAvKiBQcm9maWxlci5jcHAgKi87IH07CkBA
IC00ODIsOCArNDc3LDYgQEAKIAkJQkMxOEM0NEEwRTE2RjVDRDAwQjM0NDYwIC8qIE93blB0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMwM0Y1Njcw
OTkxMThGQTAwQUQ3MUI4IC8qIE93blB0ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCUJDMThDNDRCMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQYXJzZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRjBCM0FB
MDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
ICgpOyB9OyB9OwogCQlCQzE4QzQ0QzBFMTZGNUNEMDBCMzQ0NjAgLyogUGFzc1JlZlB0ci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU4MEY3OTUwOTQw
NzA1NjAwODJDMjE5IC8qIFBhc3NSZWZQdHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ0RDBFMTZGNUNEMDBCMzQ0NjAgLyogcGNyZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU0MTcyMEYw
MzlFMDhCOTAwNThCRkVCIC8qIHBjcmUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwotCQlCQzE4QzQ0RTBFMTZGNUNEMDBCMzQ0NjAgLyogcGNyZV9pbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNF
MjZCRTUwOEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCAqLzsgfTsKIAkJQkMxOEM0
NEYwRTE2RjVDRDAwQjM0NDYwIC8qIFBsYXRmb3JtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUQ2RDg3RTA5QjVBMzJFMDAwMkU0RDcgLyogUGxhdGZv
cm0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlC
QzE4QzQ1MDBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU3NDJGNjQwREQxMUY1QTAwMDkxN0ZCIC8qIFBy
b2ZpbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzE4QzQ1MTBFMTZGNUNEMDBCMzQ0NjAgLyogUHJvZmlsZU5vZGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QUI4MzU1MERBNDNCNDQwMEJDODNG
MyAvKiBQcm9maWxlTm9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC01MTQsNyArNTA3LDYgQEAKIAkJQkMxOEM0NkYwRTE2RjVDRDAwQjM0NDYw
IC8qIFRDU3lzdGVtQWxsb2MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDY1NDFCRDcxMDhFODBBMTcwMDJDQkVFNyAvKiBUQ1N5c3RlbUFsbG9jLmggKi87
IH07CiAJCUJDMThDNDcwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBUaHJlYWRpbmcuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxRUU3OTIyMEQ2Qzk1Q0QwMEZF
QTNCQSAvKiBUaHJlYWRpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCQzE4QzQ3MTBFMTZGNUNEMDBCMzQ0NjAgLyogVGhyZWFkU3BlY2lmaWMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQjdDOEJE
MERBM0EzMzYwMDc0QjBEQyAvKiBUaHJlYWRTcGVjaWZpYy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMThDNDcyMEUxNkY1Q0QwMEIzNDQ2MCAv
KiB1Y3BpbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTNFMjZCRkMwOEIxNTFENDAwRjg1MjI2IC8qIHVjcGludGVybmFsLmggKi87IH07CiAJ
CUJDMThDNDczMEUxNkY1Q0QwMEIzNDQ2MCAvKiBVbmljb2RlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk1Njc5NDA5RTdDRjEyMDBCODlEMTMgLyog
VW5pY29kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDMThDNDc0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBVbmljb2RlSWN1LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk1Njc4RjA5RTdDRjEyMDBCODlE
MTMgLyogVW5pY29kZUljdS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUJDMThDNDc1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBVbnVzZWRQYXJhbS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QUY0NkIwOUU5
RDlEQjAwQUNEMUQ4IC8qIFVudXNlZFBhcmFtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgxNCw3ICs4MDYsNiBAQAogCQk2NTIyNDZBNDBDOEQ3
QTBFMDA3QkRBRjcgLyogSGFzaEl0ZXJhdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBIYXNoSXRlcmF0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1
NDAwQzBGMEE2OUJBRjIwMDUwOTg4NyAvKiBQcm9wZXJ0eU5hbWVBcnJheS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlOYW1lQXJyYXkuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTQwMEMxMDBBNjlCQUYyMDA1MDk4ODcgLyogUHJv
cGVydHlOYW1lQXJyYXkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb3Bl
cnR5TmFtZUFycmF5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1NDE3MjBGMDM5
RTA4QjkwMDU4QkZFQiAvKiBwY3JlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IHBjcmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lk
dGggPSA4OyB9OwogCQk2NTQxQkQ2RTA4RTgwQTE3MDAyQ0JFRTcgLyogVENQYWdlTWFwLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRDUGFnZU1h
cC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTY1NDFCRDZG
MDhFODBBMTcwMDJDQkVFNyAvKiBUQ1NwaW5Mb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRDU3BpbkxvY2suaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTQxQkQ3MDA4RTgwQTE3MDAyQ0JFRTcgLyog
VENTeXN0ZW1BbGxvYy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBUQ1N5c3RlbUFsbG9jLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtODI4LDcgKzgxOSw2IEBACiAJCTY1ODBGNzk1MDk0MDcw
NTYwMDgyQzIxOSAvKiBQYXNzUmVmUHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhc3NSZWZQdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OwogCQk2NTkyQzMxNjA5OEI3REUxMDAwM0Q0RjYgLyogVmVjdG9y
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWZWN0b3IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU5MkMzMTcwOThCN0RFMTAwMDNENEY2IC8qIFZlY3RvclRy
YWl0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmVjdG9yVHJhaXRzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTY1QjE3NEJFMDlEMTAwMDIwMDgyMDMzOSAv
KiBjaGFydGFibGVzLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBmaWxlRW5jb2RpbmcgPSAzMDsgcGF0aCA9IGNoYXJ0YWJs
ZXMuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjVDMDJGQkIwNjM3NDYyQTAwM0U3
RUU2IC8qIFByb3RlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUHJvdGVjdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9
IDg7IH07CiAJCTY1QzY0N0IzMDkzRUY4RDYwMDIyQzM4MCAvKiBSZWZQdHIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmUHRyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJNjVDN0ExNzEwQThFQUFDQjAw
RkEzN0VBIC8qIEpTV3JhcHBlck9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXcmFwcGVyT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTkzMiw5ICs5MjIsNiBAQAogCQk5MzAzRjVBNDA5OTExQTU4MDBBRDcxQjggLyogT3du
QXJyYXlQdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gT3duQXJyYXlQdHIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNTJDMzIwRkI3OTIxOTAwNDhGREMz
IC8qIFBhcnNlckFyZW5hLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFBhcnNlckFyZW5hLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTMwNTJDMzMw
RkI3OTIxOTAwNDhGREMzIC8qIFBhcnNlckFyZW5hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBhcnNlckFyZW5hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkz
MDc1NEJGMDhCMEY2ODAwMEFCMzA1NiAvKiBwY3JlX2NvbXBpbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcGNyZV9jb21waWxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwotCQk5MzA3NTRDRTA4
QjBGNzQ1MDBBQjMwNTYgLyogcGNyZV90YWJsZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcGNyZV90YWJsZXMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTkzMDc1NEU5MDhCMEY3ODUwMEFC
MzA1NiAvKiBwY3JlX2V4ZWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gcGNyZV9leGVjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5MzBEQUQwMzBGQjFFQjFBMDA4MkQyMDUgLyogTm9kZUNv
bnN0cnVjdG9ycy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOb2RlQ29uc3Ry
dWN0b3JzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzMjJBMDAzMDZDMzQxRDMw
MDkwNjdCQiAvKiBsaWJpY3Vjb3JlLmR5bGliICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7IG5hbWUgPSBsaWJp
Y3Vjb3JlLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGliaWN1Y29yZS5keWxpYjsgc291cmNlVHJl
ZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJOTMyRjVCRDgwODIyQTFDNzAwNzM2OTc1IC8qIEluZm8u
cGxpc3QgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQucGxpc3QueG1sOyBwYXRoID0gSW5mby5wbGlzdDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDE7IH07CkBAIC05NDks
NyArOTM2LDYgQEAKIAkJOTMzRjVDREIxMjY5MjI2OTAwNDkxOTFFIC8qIE51bGxQdHIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTnVsbFB0ci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzVBRjQ2OTA5RTlEOURCMDBBQ0QxRDggLyogRm9yd2FyZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3J3YXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzNUFGNDZCMDlFOUQ5REIwMEFDRDFEOCAvKiBVbnVzZWRQYXJhbS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBVbnVzZWRQYXJhbS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk5MzcwMTM0NzBDQTk3RTBFMDBGQTE0RDMgLyogcGNyZV91Y3Bf
c2VhcmNoZnVuY3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcGNy
ZV91Y3Bfc2VhcmNoZnVuY3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5Mzc0
RDNBNzAzOEQ5RDc0MDA4NjM1Q0UgLyogU2NvcGVDaGFpbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlQ2hhaW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5Mzc0RDNBODAzOEQ5RDc0MDA4NjM1Q0Ug
LyogU2NvcGVDaGFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNjb3BlQ2hhaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IH07CiAJCTkzN0I2M0NDMDlFNzY2RDIwMEE2NzFERCAvKiBEZXJpdmVkU291
cmNlcy5tYWtlICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLm1ha2U7IGZpbGVFbmNvZGluZyA9IDQ7IHBhdGggPSBEZXJpdmVkU291cmNl
cy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB1c2VzVGFicyA9IDE7IH07CkBAIC05NjEs
OSArOTQ3LDYgQEAKIAkJOTNBREZDRTYwQ0NCRDdBQzAwRDMwQjA4IC8qIEpTQXJyYXkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNBcnJheS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQjZBMERFMEFBNjREQTQwMDc2REUyNyAvKiBHZXRQdHIu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdldFB0ci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0NFRERGQjBFQTkxRUU2MDAyNThFQkUgLyogUmVnRXhwTWF0
Y2hlc0FycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ0V4cE1hdGNo
ZXNBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0UyNkJEMzA4QjE1MTQx
MDBGODUyMjYgLyogcGNyZV94Y2xhc3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gcGNyZV94Y2xhc3MuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07Ci0JCTkzRTI2QkU1MDhCMTUxNzEwMEY4NTIyNiAv
KiBwY3JlX2ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IHBjcmVfaW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFi
V2lkdGggPSA4OyB9OwotCQk5M0UyNkJGQzA4QjE1MUQ0MDBGODUyMjYgLyogdWNwaW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gdWNw
aW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwogCQk5
M0YwQjNBOTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzRjBCM0FBMDlCQjREQzAwMDY4RkNFMyAvKiBQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTkzRjE5ODFBMDgyNDVBQUUwMDFFOUFCQyAvKiBLZXl3b3Jkcy50YWJsZSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEtleXdvcmRzLnRhYmxlOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CkBAIC0xMzI2LDcgKzEzMDksNiBAQAogCQkJCTE0
MjlENzdBMEVEMjBENzMwMEI4OTYxOSAvKiBpbnRlcnByZXRlciAqLywKIAkJCQkxNDI5RDkyQzBF
RDIyRDcwMDBCODk2MTkgLyogaml0ICovLAogCQkJCTdFMzlEODM3MEVDM0EzODgwMDNBRjExQSAv
KiBwYXJzZXIgKi8sCi0JCQkJNjU0MTcyMDMwMzlFMDFGOTAwNThCRkVCIC8qIHBjcmUgKi8sCiAJ
CQkJOTVBQjgzMUEwREE0MkM2OTAwQkM4M0YzIC8qIHByb2ZpbGVyICovLAogCQkJCTdFRjZFMEJC
MEVCN0ExRUMwMDc5QUZBRiAvKiBydW50aW1lICovLAogCQkJCTE0MTIxMTAwMEE0ODc3MjYwMDQ4
MDI1NSAvKiB0ZXN0cyAqLywKQEAgLTE1MDksNyArMTQ5MSw2IEBACiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDMThDNTIzMEUxNkZDOEEwMEIzNDQ2MCAvKiBBcnJh
eVByb3RvdHlwZS5sdXQuaCAqLywKLQkJCQk2NUIxNzRCRTA5RDEwMDAyMDA4MjAzMzkgLyogY2hh
cnRhYmxlcy5jICovLAogCQkJCUJDRDIwM0U3MEUxNzE4RjQwMDJDN0U4MiAvKiBEYXRlUHJvdG90
eXBlLmx1dC5oICovLAogCQkJCUJDODE0OUFGMTJGODlGNTMwMDdCMkMzMiAvKiBIZWFkZXJEZXRl
Y3Rpb24uaCAqLywKIAkJCQlCQzg3Q0RCODEwNzEyQUNBMDAwNjE0Q0YgLyogSlNPTk9iamVjdC5s
dXQuaCAqLywKQEAgLTE2NTUsMjMgKzE2MzYsNiBAQAogCQkJdGFiV2lkdGggPSA0OwogCQkJdXNl
c1RhYnMgPSAwOwogCQl9OwotCQk2NTQxNzIwMzAzOUUwMUY5MDA1OEJGRUIgLyogcGNyZSAqLyA9
IHsKLQkJCWlzYSA9IFBCWEdyb3VwOwotCQkJY2hpbGRyZW4gPSAoCi0JCQkJNjU0MTcyMEYwMzlF
MDhCOTAwNThCRkVCIC8qIHBjcmUuaCAqLywKLQkJCQk5MzA3NTRCRjA4QjBGNjgwMDBBQjMwNTYg
LyogcGNyZV9jb21waWxlLmNwcCAqLywKLQkJCQk5MzA3NTRFOTA4QjBGNzg1MDBBQjMwNTYgLyog
cGNyZV9leGVjLmNwcCAqLywKLQkJCQk5M0UyNkJFNTA4QjE1MTcxMDBGODUyMjYgLyogcGNyZV9p
bnRlcm5hbC5oICovLAotCQkJCTkzMDc1NENFMDhCMEY3NDUwMEFCMzA1NiAvKiBwY3JlX3RhYmxl
cy5jcHAgKi8sCi0JCQkJOTM3MDEzNDcwQ0E5N0UwRTAwRkExNEQzIC8qIHBjcmVfdWNwX3NlYXJj
aGZ1bmNzLmNwcCAqLywKLQkJCQk5M0UyNkJEMzA4QjE1MTQxMDBGODUyMjYgLyogcGNyZV94Y2xh
c3MuY3BwICovLAotCQkJCTkzRTI2QkZDMDhCMTUxRDQwMEY4NTIyNiAvKiB1Y3BpbnRlcm5hbC5o
ICovLAotCQkJKTsKLQkJCXBhdGggPSBwY3JlOwotCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
LQkJCXRhYldpZHRoID0gNDsKLQkJCXVzZXNUYWJzID0gMDsKLQkJfTsKIAkJN0UzOUQ4MUQwRUMz
OEVGQTAwM0FGMTFBIC8qIGJ5dGVjb21waWxlciAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0yMzM4LDggKzIzMDIsNiBAQAogCQkJCUJDRkJFNjk2MTIyNTYw
RTgwMDMwOUU5RCAvKiBQYXNzT3duQXJyYXlQdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ0REQ0
ODUzMEZBRUE4NTAwMEQ2QjRFQiAvKiBQYXNzT3duUHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzE4QzQ0QzBFMTZGNUNEMDBCMzQ0NjAgLyogUGFzc1JlZlB0ci5oIGluIEhlYWRlcnMgKi8sCi0J
CQkJQkMxOEM0NEQwRTE2RjVDRDAwQjM0NDYwIC8qIHBjcmUuaCBpbiBIZWFkZXJzICovLAotCQkJ
CUJDMThDNDRFMEUxNkY1Q0QwMEIzNDQ2MCAvKiBwY3JlX2ludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzQ0RjBFMTZGNUNEMDBCMzQ0NjAgLyogUGxhdGZvcm0uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE3RDY0OUFBMTAxNTIyNEUwMDlCMkUxQiAvKiBQb3NzaWJseU51bGwuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDUwMEUxNkY1Q0QwMEIzNDQ2MCAvKiBQcm9maWxlLmggaW4g
SGVhZGVycyAqLywKQEAgLTI0MjEsNyArMjM4Myw2IEBACiAJCQkJMTRBNDJFNDAwRjRGNjBFRTAw
NTk5MDk5IC8qIFRpbWVvdXRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1RDUzNzI2RjBF
MUM1NDg4MDAyMUU1NDkgLyogVHJhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEI0RDdFNjMw
RjMxOUFDODAwQUQ3RTU4IC8qIFR5cGVUcmFpdHMuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMThD
NDcyMEUxNkY1Q0QwMEIzNDQ2MCAvKiB1Y3BpbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkMxOEM0NzMwRTE2RjVDRDAwQjM0NDYwIC8qIFVuaWNvZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDc0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBVbmljb2RlSWN1LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzE4QzQ3NTBFMTZGNUNEMDBCMzQ0NjAgLyogVW51c2VkUGFyYW0uaCBpbiBIZWFkZXJz
ICovLApAQCAtMjg3MCwxMSArMjgzMSw2IEBACiAJCQkJOTcxNEFGNUUxMjJGMzIwNzAwOTJEOUY1
IC8qIFBhcnNlZFVSTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDhGMjFCQzEwN0VDNTREMDA0
MkVDMkMgLyogUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzMDUyQzM0MEZCNzkyMTkw
MDQ4RkRDMyAvKiBQYXJzZXJBcmVuYS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MzA3NTRDMTA4
QjBGNjgwMDBBQjMwNTYgLyogcGNyZV9jb21waWxlLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkz
MDc1NEVCMDhCMEY3ODUwMEFCMzA1NiAvKiBwY3JlX2V4ZWMuY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJOTMwNzU0RDAwOEIwRjc0NjAwQUIzMDU2IC8qIHBjcmVfdGFibGVzLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTkzNzAxMzQ4MENBOTdFMEUwMEZBMTREMyAvKiBwY3JlX3VjcF9zZWFyY2hmdW5j
cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5M0UyNkJENDA4QjE1MTQxMDBGODUyMjYgLyogcGNy
ZV94Y2xhc3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTU3NDJGNjUwREQxMUY1QTAwMDkxN0ZC
IC8qIFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTVDRDQ1NzYwRTFDNEZERDAwODUz
NThFIC8qIFByb2ZpbGVHZW5lcmF0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTVBQjgzNTYw
REE0M0MzMDAwQkM4M0YzIC8qIFByb2ZpbGVOb2RlLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvQVVUSE9SUyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wY3JlL0FVVEhPUlMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRiYWMy
YTUuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvQVVUSE9SUworKysg
L2Rldi9udWxsCkBAIC0xLDEyICswLDAgQEAKLU9yaWdpbmFsbHkgd3JpdHRlbiBieTogIFBoaWxp
cCBIYXplbAotRW1haWwgbG9jYWwgcGFydDogICAgICAgcGgxMAotRW1haWwgZG9tYWluOiAgICAg
ICAgICAgY2FtLmFjLnVrCi0KLVVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIENvbXB1dGluZyBTZXJ2
aWNlLAotQ2FtYnJpZGdlLCBFbmdsYW5kLiBQaG9uZTogKzQ0IDEyMjMgMzM0NzE0LgotCi1Db3B5
cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZS4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLQotQWRhcHRlZCBmb3IgSmF2YVNjcmlwdENvcmUgYW5kIFdlYktpdCBieSBBcHBs
ZSBJbmMuCi0KLUNvcHlyaWdodCAoYykgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9D
T1BZSU5HIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvQ09QWUlORwpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNmZmZGMyNC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcGNyZS9DT1BZSU5HCisrKyAvZGV2L251bGwKQEAgLTEsMzUgKzAsMCBAQAotUENSRSBp
cyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3
aG9zZSBzeW50YXgKLWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRo
b3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCi0KLVRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2
YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBv
dXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBi
ZWVuCi1yZW1vdmVkLgotCi1Db3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENh
bWJyaWRnZS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
IG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZSBvZiBBcHBsZQotICAg
ICAgSW5jLiBub3IgdGhlIG5hbWVzIG9mIHRoZWlyIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yCi0gICAgICBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3IKLSAgICAgIHdyaXR0ZW4gcGVybWlzc2lvbi4K
LQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1Q
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wY3JlL2RmdGFibGVzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDY2OWI5NDguLjAwMDAwMDAKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMKKysrIC9kZXYvbnVsbApAQCAtMSwyNzMg
KzAsMCBAQAotIyEvdXNyL2Jpbi9wZXJsIC13Ci0jCi0jIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUn
cyB2YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQotIyBzdGFy
dGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBo
YXZlIGJlZW4KLSMgcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSBy
ZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKLSMgcmVxdWlyZWQgYnkgdGhlIEphdmFTY3JpcHQg
bGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbiwgYW5kIGhhcyBvbmx5IHRoZSBmdW5jdGlvbnMKLSMgbmVl
ZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBvZiBXZWJLaXQuCi0jIAotIyAgICAg
ICAgICAgICAgICAgIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLSMgICAgICAg
ICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotIyAg
Q29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0jIAotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotIyBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0jIAotIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2Us
Ci0jICAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0jIAotIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0jIAotIyAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJz
aXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotIyAgICAgICBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotIyAgICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgotIyAKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi0jIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSMgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UKLSMgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi0jIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSMg
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0jIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0jIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0jIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi0jIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jIFRoaXMgaXMgYSBmcmVlc3RhbmRpbmcg
c3VwcG9ydCBwcm9ncmFtIHRvIGdlbmVyYXRlIGEgZmlsZSBjb250YWluaW5nCi0jIGNoYXJhY3Rl
ciB0YWJsZXMuIFRoZSB0YWJsZXMgYXJlIGJ1aWx0IGFjY29yZGluZyB0byB0aGUgZGVmYXVsdCBD
Ci0jIGxvY2FsZS4KLQotdXNlIHN0cmljdDsKLQotdXNlIEZpbGU6OkJhc2VuYW1lOwotdXNlIEZp
bGU6OlNwZWM7Ci11c2UgRmlsZTo6VGVtcCBxdyh0ZW1wZmlsZSk7Ci11c2UgR2V0b3B0OjpMb25n
OwotCi1zdWIgcmVhZEhlYWRlclZhbHVlcygpOwotCi1teSAlcGNyZV9pbnRlcm5hbDsKLQotaWYg
KHNjYWxhcihAQVJHVikgPCAxKSB7Ci0gICAgcHJpbnQgU1RERVJSICJVc2FnZTogIiwgYmFzZW5h
bWUoJDApLCAiIFstLXByZXByb2Nlc3Nvcj1wcm9ncmFtXSBvdXRwdXQtZmlsZVxuIjsKLSAgICBl
eGl0IDE7Ci19Ci0KLW15ICRvdXRwdXRGaWxlOwotbXkgJHByZXByb2Nlc3NvcjsKLUdldE9wdGlv
bnMoJ3ByZXByb2Nlc3Nvcj1zJyA9PiBcJHByZXByb2Nlc3Nvcik7Ci1pZiAobm90ICRwcmVwcm9j
ZXNzb3IpIHsKLSAgICAkcHJlcHJvY2Vzc29yID0gImNwcCI7Ci19Ci0KLSRvdXRwdXRGaWxlID0g
JEFSR1ZbMF07Ci1kaWUoJ011c3Qgc3BlY2lmeSBvdXRwdXQgZmlsZS4nKSB1bmxlc3MgZGVmaW5l
ZCgkb3V0cHV0RmlsZSk7Ci0KLXJlYWRIZWFkZXJWYWx1ZXMoKTsKLQotb3BlbihPVVQsICI+Iiwg
JG91dHB1dEZpbGUpIG9yIGRpZSAiJCEiOwotYmlubW9kZShPVVQpOwotCi1wcmludGYoT1VUCi0g
ICAgIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4i
IC4KLSAgICAiKiAgICAgIFBlcmwtQ29tcGF0aWJsZSBSZWd1bGFyIEV4cHJlc3Npb25zICAgICAg
ICpcbiIgLgotICAgICIqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqL1xuXG4iIC4KLSAgICAiLyogVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgd3JpdHRl
biBieSB0aGUgZGZ0YWJsZXMgYXV4aWxpYXJ5IFxuIiAuCi0gICAgInByb2dyYW0uIElmIHlvdSBl
ZGl0IGl0IGJ5IGhhbmQsIHlvdSBtaWdodCBsaWtlIHRvIGVkaXQgdGhlIE1ha2VmaWxlIHRvIFxu
IiAuCi0gICAgInByZXZlbnQgaXRzIGV2ZXIgYmVpbmcgcmVnZW5lcmF0ZWQuXG5cbiIpOwotcHJp
bnRmKE9VVAotICAgICJUaGlzIGZpbGUgY29udGFpbnMgdGhlIGRlZmF1bHQgdGFibGVzIGZvciBj
aGFyYWN0ZXJzIHdpdGggY29kZXMgbGVzcyB0aGFuXG4iIC4KLSAgICAiMTI4IChBU0NJSSBjaGFy
YWN0ZXJzKS4gVGhlc2UgdGFibGVzIGFyZSB1c2VkIHdoZW4gbm8gZXh0ZXJuYWwgdGFibGVzIGFy
ZVxuIiAuCi0gICAgInBhc3NlZCB0byBQQ1JFLiAqL1xuXG4iIC4KLSAgICAiY29uc3QgdW5zaWdu
ZWQgY2hhciBqc2NfcGNyZV9kZWZhdWx0X3RhYmxlc1slZF0gPSB7XG5cbiIgLgotICAgICIvKiBU
aGlzIHRhYmxlIGlzIGEgbG93ZXIgY2FzaW5nIHRhYmxlLiAqL1xuXG4iLCAkcGNyZV9pbnRlcm5h
bHt0YWJsZXNfbGVuZ3RofSk7Ci0KLWlmICgkcGNyZV9pbnRlcm5hbHtsY2Nfb2Zmc2V0fSAhPSAw
KSB7Ci0gICAgZGllICJsY2Nfb2Zmc2V0ICE9IDAiOwotfQotCi1wcmludGYoT1VUICIgICIpOwot
Zm9yIChteSAkaSA9IDA7ICRpIDwgMTI4OyAkaSsrKSB7Ci0gICAgaWYgKCgkaSAmIDcpID09IDAg
JiYgJGkgIT0gMCkgewotICAgICAgICBwcmludGYoT1VUICJcbiAgIik7Ci0gICAgfQotICAgIHBy
aW50ZihPVVQgIjB4JTAyWCIsIG9yZChsYyhjaHIoJGkpKSkpOwotICAgIGlmICgkaSAhPSAxMjcp
IHsKLSAgICAgICAgcHJpbnRmKE9VVCAiLCAiKTsKLSAgICB9Ci19Ci1wcmludGYoT1VUICIsXG5c
biIpOwotCi1wcmludGYoT1VUICIvKiBUaGlzIHRhYmxlIGlzIGEgY2FzZSBmbGlwcGluZyB0YWJs
ZS4gKi9cblxuIik7Ci0KLWlmICgkcGNyZV9pbnRlcm5hbHtmY2Nfb2Zmc2V0fSAhPSAxMjgpIHsK
LSAgZGllICJmY2Nfb2Zmc2V0ICE9IDEyOCI7Ci19Ci0KLXByaW50ZihPVVQgIiAgIik7Ci1mb3Ig
KG15ICRpID0gMDsgJGkgPCAxMjg7ICRpKyspIHsKLSAgICBpZiAoKCRpICYgNykgPT0gMCAmJiAk
aSAhPSAwKSB7Ci0gICAgICAgIHByaW50ZihPVVQgIlxuICAiKTsKLSAgICB9Ci0gICAgbXkgJGMg
PSBjaHIoJGkpOwotICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICRjID1+IC9bWzpsb3dlcjpdXS8g
PyBvcmQodWMoJGMpKSA6IG9yZChsYygkYykpKTsKLSAgICBpZiAoJGkgIT0gMTI3KSB7Ci0gICAg
ICAgIHByaW50ZihPVVQgIiwgIik7Ci0gICAgfQotfQotcHJpbnRmKE9VVCAiLFxuXG4iKTsKLQot
cHJpbnRmKE9VVAotICAgICIvKiBUaGlzIHRhYmxlIGNvbnRhaW5zIGJpdCBtYXBzIGZvciB2YXJp
b3VzIGNoYXJhY3RlciBjbGFzc2VzLlxuIiAuCi0gICAgIkVhY2ggbWFwIGlzIDMyIGJ5dGVzIGxv
bmcgYW5kIHRoZSBiaXRzIHJ1biBmcm9tIHRoZSBsZWFzdFxuIiAuCi0gICAgInNpZ25pZmljYW50
IGVuZCBvZiBlYWNoIGJ5dGUuIFRoZSBjbGFzc2VzIGFyZTogc3BhY2UsIGRpZ2l0LCB3b3JkLiAq
L1xuXG4iKTsKLQotaWYgKCRwY3JlX2ludGVybmFse2NiaXRzX29mZnNldH0gIT0gJHBjcmVfaW50
ZXJuYWx7ZmNjX29mZnNldH0gKyAxMjgpIHsKLSAgICBkaWUgImNiaXRzX29mZnNldCAhPSBmY2Nf
b2Zmc2V0ICsgMTI4IjsKLX0KLQotbXkgQGNiaXRfdGFibGUgPSAoMCkgeCAkcGNyZV9pbnRlcm5h
bHtjYml0X2xlbmd0aH07Ci1mb3IgKG15ICRpID0gb3JkKCcwJyk7ICRpIDw9IG9yZCgnOScpOyAk
aSsrKSB7Ci0gICAgJGNiaXRfdGFibGVbJHBjcmVfaW50ZXJuYWx7Y2JpdF9kaWdpdH0gKyAkaSAv
IDhdIHw9IDEgPDwgKCRpICYgNyk7Ci19Ci0kY2JpdF90YWJsZVskcGNyZV9pbnRlcm5hbHtjYml0
X3dvcmR9ICsgb3JkKCdfJykgLyA4XSB8PSAxIDw8IChvcmQoJ18nKSAmIDcpOwotZm9yIChteSAk
aSA9IDA7ICRpIDwgMTI4OyAkaSsrKSB7Ci0gICAgbXkgJGMgPSBjaHIoJGkpOwotICAgIGlmICgk
YyA9fiAvW1s6YWxudW06XV0vKSB7Ci0gICAgICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFs
e2NiaXRfd29yZH0gKyAkaSAvIDhdIHw9IDEgPDwgKCRpICYgNyk7Ci0gICAgfQotICAgIGlmICgk
YyA9fiAvW1s6c3BhY2U6XV0vKSB7Ci0gICAgICAgICRjYml0X3RhYmxlWyRwY3JlX2ludGVybmFs
e2NiaXRfc3BhY2V9ICsgJGkgLyA4XSB8PSAxIDw8ICgkaSAmIDcpOwotICAgIH0KLX0KLQotcHJp
bnRmKE9VVCAiICAiKTsKLWZvciAobXkgJGkgPSAwOyAkaSA8ICRwY3JlX2ludGVybmFse2NiaXRf
bGVuZ3RofTsgJGkrKykgewotICAgIGlmICgoJGkgJiA3KSA9PSAwICYmICRpICE9IDApIHsKLSAg
ICAgICAgaWYgKCgkaSAmIDMxKSA9PSAwKSB7Ci0gICAgICAgICAgICBwcmludGYoT1VUICJcbiIp
OwotICAgICAgICB9Ci0gICAgICAgIHByaW50ZihPVVQgIlxuICAiKTsKLSAgICB9Ci0gICAgcHJp
bnRmKE9VVCAiMHglMDJYIiwgJGNiaXRfdGFibGVbJGldKTsKLSAgICBpZiAoJGkgIT0gJHBjcmVf
aW50ZXJuYWx7Y2JpdF9sZW5ndGh9IC0gMSkgewotICAgICAgICBwcmludGYoT1VUICIsICIpOwot
ICAgIH0KLX0KLXByaW50ZihPVVQgIixcblxuIik7Ci0KLXByaW50ZihPVVQKLSAgICAiLyogVGhp
cyB0YWJsZSBpZGVudGlmaWVzIHZhcmlvdXMgY2xhc3NlcyBvZiBjaGFyYWN0ZXIgYnkgaW5kaXZp
ZHVhbCBiaXRzOlxuIiAuCi0gICAgIiAgMHglMDJ4ICAgd2hpdGUgc3BhY2UgY2hhcmFjdGVyXG4i
IC4KLSAgICAiICAweCUwMnggICBoZXhhZGVjaW1hbCBkaWdpdFxuIiAuCi0gICAgIiAgMHglMDJ4
ICAgYWxwaGFudW1lcmljIG9yICdfJ1xuKi9cblxuIiwKLSAgICAkcGNyZV9pbnRlcm5hbHtjdHlw
ZV9zcGFjZX0sICRwY3JlX2ludGVybmFse2N0eXBlX3hkaWdpdH0sICRwY3JlX2ludGVybmFse2N0
eXBlX3dvcmR9KTsKLQotaWYgKCRwY3JlX2ludGVybmFse2N0eXBlc19vZmZzZXR9ICE9ICRwY3Jl
X2ludGVybmFse2NiaXRzX29mZnNldH0gKyAkcGNyZV9pbnRlcm5hbHtjYml0X2xlbmd0aH0pIHsK
LSAgICBkaWUgImN0eXBlc19vZmZzZXQgIT0gY2JpdHNfb2Zmc2V0ICsgY2JpdF9sZW5ndGgiOwot
fQotCi1wcmludGYoT1VUICIgICIpOwotZm9yIChteSAkaSA9IDA7ICRpIDwgMTI4OyAkaSsrKSB7
Ci0gICAgbXkgJHggPSAwOwotICAgIG15ICRjID0gY2hyKCRpKTsKLSAgICBpZiAoJGMgPX4gL1tb
OnNwYWNlOl1dLykgewotICAgICAgICAkeCArPSAkcGNyZV9pbnRlcm5hbHtjdHlwZV9zcGFjZX07
Ci0gICAgfQotICAgIGlmICgkYyA9fiAvW1s6eGRpZ2l0Ol1dLykgewotICAgICAgICAkeCArPSAk
cGNyZV9pbnRlcm5hbHtjdHlwZV94ZGlnaXR9OwotICAgIH0KLSAgICBpZiAoJGMgPX4gL1tbOmFs
bnVtOl1fXS8pIHsKLSAgICAgICAgJHggKz0gJHBjcmVfaW50ZXJuYWx7Y3R5cGVfd29yZH07Ci0g
ICAgfQotICAgIHByaW50ZihPVVQgIjB4JTAyWCIsICR4KTsKLSAgICBpZiAoJGkgIT0gMTI3KSB7
Ci0gICAgICAgIHByaW50ZihPVVQgIiwgIik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgcHJpbnRm
KE9VVCAifTsiKTsKLSAgICB9Ci0gICAgaWYgKCgkaSAmIDcpID09IDcpIHsKLSAgICAgICAgcHJp
bnRmKE9VVCAiIC8qICIpOwotICAgICAgICBteSAkZCA9IGNocigkaSAtIDcpOwotICAgICAgICBp
ZiAoJGQgPX4gL1tbOnByaW50Ol1dLykgewotICAgICAgICAgICAgcHJpbnRmKE9VVCAiICVjIC0i
LCAkaSAtIDcpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHJpbnRmKE9VVCAiJTNk
LSIsICRpIC0gNyk7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCRjID1+IG0vW1s6cHJpbnQ6XV0v
KSB7Ci0gICAgICAgICAgICBwcmludGYoT1VUICIgJWMgIiwgJGkpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgcHJpbnRmKE9VVCAiJTNkIiwgJGkpOwotICAgICAgICB9Ci0gICAgICAg
IHByaW50ZihPVVQgIiAqL1xuIik7Ci0gICAgICAgIGlmICgkaSAhPSAxMjcpIHsKLSAgICAgICAg
ICAgIHByaW50ZihPVVQgIiAgIik7Ci0gICAgICAgIH0KLSAgICB9Ci19Ci0KLWlmICgkcGNyZV9p
bnRlcm5hbHt0YWJsZXNfbGVuZ3RofSAhPSAkcGNyZV9pbnRlcm5hbHtjdHlwZXNfb2Zmc2V0fSAr
IDEyOCkgewotICAgIGRpZSAidGFibGVzX2xlbmd0aCAhPSBjdHlwZXNfb2Zmc2V0ICsgMTI4IjsK
LX0KLQotcHJpbnRmKE9VVCAiXG5cbi8qIEVuZCBvZiBjaGFydGFibGVzLmMgKi9cbiIpOwotCi1j
bG9zZShPVVQpOwotCi1leGl0IDA7Ci0KLXN1YiByZWFkSGVhZGVyVmFsdWVzKCkKLXsKLSAgICBt
eSBAdmFyaWFibGVzID0gcXcoCi0gICAgICAgIGNiaXRfZGlnaXQKLSAgICAgICAgY2JpdF9sZW5n
dGgKLSAgICAgICAgY2JpdF9zcGFjZQotICAgICAgICBjYml0X3dvcmQKLSAgICAgICAgY2JpdHNf
b2Zmc2V0Ci0gICAgICAgIGN0eXBlX3NwYWNlCi0gICAgICAgIGN0eXBlX3dvcmQKLSAgICAgICAg
Y3R5cGVfeGRpZ2l0Ci0gICAgICAgIGN0eXBlc19vZmZzZXQKLSAgICAgICAgZmNjX29mZnNldAot
ICAgICAgICBsY2Nfb2Zmc2V0Ci0gICAgICAgIHRhYmxlc19sZW5ndGgKLSAgICApOwotCi0gICAg
bG9jYWwgJC8gPSB1bmRlZjsKLQotICAgIG15ICRoZWFkZXJQYXRoID0gRmlsZTo6U3BlYy0+Y2F0
ZmlsZShkaXJuYW1lKCQwKSwgInBjcmVfaW50ZXJuYWwuaCIpOwotIAotICAgIG15ICgkZmgsICR0
ZW1wRmlsZSkgPSB0ZW1wZmlsZSgKLSAgICAgICAgYmFzZW5hbWUoJDApIC4gIi1YWFhYWFhYWCIs
Ci0gICAgICAgIERJUiA9PiBGaWxlOjpTcGVjLT50bXBkaXIoKSwKLSAgICAgICAgU1VGRklYID0+
ICIuaW4iLAotICAgICAgICBVTkxJTksgPT4gMCwKLSAgICApOwotCi0gICAgcHJpbnQgJGZoICIj
ZGVmaW5lIERGVEFCTEVTXG5cbiI7Ci0KLSAgICBvcGVuKEhFQURFUiwgIjwiLCAkaGVhZGVyUGF0
aCkgb3IgZGllICIkISI7Ci0gICAgcHJpbnQgJGZoIDxIRUFERVI+OwotICAgIGNsb3NlKEhFQURF
Uik7Ci0KLSAgICBwcmludCAkZmggIlxuXG4iOwotCi0gICAgZm9yIG15ICR2IChAdmFyaWFibGVz
KSB7Ci0gICAgICAgIHByaW50ICRmaCAiXCRwY3JlX2ludGVybmFse1wiJHZcIn0gPSAkdjtcbiI7
Ci0gICAgfQotCi0gICAgY2xvc2UoJGZoKTsKLQotICAgIG9wZW4oQ1BQLCAiJHByZXByb2Nlc3Nv
ciBcIiR0ZW1wRmlsZVwiIHwiKSBvciBkaWUgIiQhIjsKLSAgICBteSAkY29udGVudCA9IDxDUFA+
OwotICAgIGNsb3NlKENQUCk7Ci0gICAgCi0gICAgZXZhbCAkY29udGVudDsKLSAgICBkaWUgIiRA
IiBpZiAkQDsKLSAgICB1bmxpbmsgJHRlbXBGaWxlOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNy
ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTA0NGZkLi4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDY4
ICswLDAgQEAKLS8qIFRoaXMgaXMgdGhlIHB1YmxpYyBoZWFkZXIgZmlsZSBmb3IgSmF2YVNjcmlw
dENvcmUncyB2YXJpYW50IG9mIHRoZSBQQ1JFCi1saWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkg
c3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1hbnkgb2YgdGhlCi1mZWF0dXJlcyBvZiBQ
Q1JFIGhhdmUgYmVlbiByZW1vdmVkLiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhl
Ci1yZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMgcmVxdWlyZWQgYnkgdGhlIEphdmFTY3JpcHQg
bGFuZ3VhZ2UKLXNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zIG5lZWRl
ZCBieSBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlCi1yZXN0IG9mIFdlYktpdC4KLQotICAgICAgICAg
ICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotICAgIENv
cHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAg
ICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLSovCi0KLS8vIEZJWE1FOiBUaGlzIGZpbGUgbmVlZHMgdG8gYmUgcmVu
YW1lZCB0byBKU1JlZ0V4cC5oOyBpdCdzIG5vIGxvbmdlciBQQ1JFLgotCi0jaWZuZGVmIEpTUmVn
RXhwX2gKLSNkZWZpbmUgSlNSZWdFeHBfaAotCi0jaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgotCi1zdHJ1Y3QgSlNSZWdFeHA7Ci0KLWVudW0gSlNSZWdFeHBJZ25vcmVDYXNlT3B0aW9u
IHsgSlNSZWdFeHBEb05vdElnbm9yZUNhc2UsIEpTUmVnRXhwSWdub3JlQ2FzZSB9OwotZW51bSBK
U1JlZ0V4cE11bHRpbGluZU9wdGlvbiB7IEpTUmVnRXhwU2luZ2xlTGluZSwgSlNSZWdFeHBNdWx0
aWxpbmUgfTsKLQotLyoganNSZWdFeHBFeGVjdXRlIGVycm9yIGNvZGVzICovCi1jb25zdCBpbnQg
SlNSZWdFeHBFcnJvck5vTWF0Y2ggPSAtMTsKLWNvbnN0IGludCBKU1JlZ0V4cEVycm9ySGl0TGlt
aXQgPSAtMjsKLWNvbnN0IGludCBKU1JlZ0V4cEVycm9yTm9NZW1vcnkgPSAtMzsKLWNvbnN0IGlu
dCBKU1JlZ0V4cEVycm9ySW50ZXJuYWwgPSAtNDsKLQotSlNSZWdFeHAqIGpzUmVnRXhwQ29tcGls
ZShjb25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgsCi0gICAgSlNSZWdFeHBJ
Z25vcmVDYXNlT3B0aW9uLCBKU1JlZ0V4cE11bHRpbGluZU9wdGlvbiwKLSAgICB1bnNpZ25lZCog
bnVtU3VicGF0dGVybnMsIGNvbnN0IGNoYXIqKiBlcnJvck1lc3NhZ2UpOwotCi1pbnQganNSZWdF
eHBFeGVjdXRlKGNvbnN0IEpTUmVnRXhwKiwKLSAgICBjb25zdCBVQ2hhciogc3ViamVjdCwgaW50
IHN1YmplY3RMZW5ndGgsIGludCBzdGFydE9mZnNldCwKLSAgICBpbnQqIG9mZnNldHNWZWN0b3Is
IGludCBvZmZzZXRzVmVjdG9yTGVuZ3RoKTsKLQotdm9pZCBqc1JlZ0V4cEZyZWUoSlNSZWdFeHAq
KTsKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3Jl
LnByaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUucHJpCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAzNjUyZDk1Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmUucHJpCisrKyAvZGV2L251bGwKQEAgLTEsMTIgKzAsMCBAQAotIyBQZXJs
IENvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAtIFF0NCBidWlsZCBpbmZvCi1WUEFUSCAr
PSAkJFBXRAotSU5DTFVERVBBVEggKz0gJCRQV0QgJCRPVVRQVVRfRElSL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9nZW5lcmF0ZWQKLURFUEVORFBBVEggKz0gJCRQV0QKLQotU09VUkNFUyArPSBcCi0g
ICAgcGNyZV9jb21waWxlLmNwcCBcCi0gICAgcGNyZV9leGVjLmNwcCBcCi0gICAgcGNyZV90YWJs
ZXMuY3BwIFwKLSAgICBwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgXAotICAgIHBjcmVfeGNsYXNz
LmNwcAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBp
bGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOWQ0NzJkOC4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MjcwOCArMCwwIEBACi0vKiBUaGlzIGlzIEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUg
UENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlzIGxpYnJhcnkKLXN0YXJ0ZWQgb3V0IGFzIGEgY29weSBv
ZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgotcmVtb3ZlZC4g
VGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVh
dHVyZXMKLXJlcXVpcmVkIGJ5IHRoZSBKYXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24s
IGFuZCBoYXMgb25seSB0aGUgZnVuY3Rpb25zCi1uZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5k
IHRoZSByZXN0IG9mIFdlYktpdC4KLQotICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0
ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAgICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVu
aXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0gICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAgICBD
b3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLQotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5
IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAg
ICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8K
LQotLyogVGhpcyBtb2R1bGUgY29udGFpbnMgdGhlIGV4dGVybmFsIGZ1bmN0aW9uIGpzUmVnRXhw
RXhlY3V0ZSgpLCBhbG9uZyB3aXRoCi1zdXBwb3J0aW5nIGludGVybmFsIGZ1bmN0aW9ucyB0aGF0
IGFyZSBub3QgdXNlZCBieSBvdGhlciBtb2R1bGVzLiAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCi0KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNp
bmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgotI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0j
aW5jbHVkZSA8d3RmL0ZpeGVkQXJyYXkuaD4KLSNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci0KLS8qIE5lZ2F0aXZlIHZhbHVlcyBmb3IgdGhlIGZp
cnN0Y2hhciBhbmQgcmVxY2hhciB2YXJpYWJsZXMgKi8KLQotI2RlZmluZSBSRVFfVU5TRVQgKC0y
KQotI2RlZmluZSBSRVFfTk9ORSAgKC0xKQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgIENvZGUgcGFyYW1ldGVycyBhbmQgc3RhdGlj
IHRhYmxlcyAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKiovCi0KLS8qIE1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBuZXN0ZWQg
YnJhY2tldCBzdGFja3MgYXQgY29tcGlsZSB0aW1lLiBUaGlzCi1hcHBsaWVzIHRvIHRoZSBuZXN0
aW5nIG9mIGFsbCBraW5kcyBvZiBwYXJlbnRoZXNlcy4gSXQgZG9lcyBub3QgbGltaXQKLXVuLW5l
c3RlZCwgbm9uLWNhcHR1cmluZyBwYXJlbnRoZXNlcy4gVGhpcyBudW1iZXIgY2FuIGJlIG1hZGUg
YmlnZ2VyIGlmCi1uZWNlc3NhcnkgLSBpdCBpcyB1c2VkIHRvIGRpbWVuc2lvbiBvbmUgaW50IGFu
ZCBvbmUgdW5zaWduZWQgY2hhciB2ZWN0b3IgYXQKLWNvbXBpbGUgdGltZS4gKi8KLQotI2RlZmlu
ZSBCUkFTVEFDS19TSVpFIDIwMAotCi0vKiBUYWJsZSBmb3IgaGFuZGxpbmcgZXNjYXBlZCBjaGFy
YWN0ZXJzIGluIHRoZSByYW5nZSAnMCctJ3onLiBQb3NpdGl2ZSByZXR1cm5zCi1hcmUgc2ltcGxl
IGRhdGEgdmFsdWVzOyBuZWdhdGl2ZSB2YWx1ZXMgYXJlIGZvciBzcGVjaWFsIHRoaW5ncyBsaWtl
IFxkIGFuZCBzbwotb24uIFplcm8gbWVhbnMgZnVydGhlciBwcm9jZXNzaW5nIGlzIG5lZWRlZCAo
Zm9yIHRoaW5ncyBsaWtlIFx4KSwgb3IgdGhlIGVzY2FwZQotaXMgaW52YWxpZC4gKi8KLQotc3Rh
dGljIGNvbnN0IHNob3J0IGVzY2FwZXNbXSA9IHsKLSAgICAgMCwgICAgICAwLCAgICAgIDAsICAg
ICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgIC8qIDAgLSA3ICovCi0gICAg
IDAsICAgICAgMCwgICAgJzonLCAgICAnOycsICAgICc8JywgICAgJz0nLCAgICAnPicsICAgICc/
JywgICAvKiA4IC0gPyAqLwotICAgJ0AnLCAgICAgIDAsIC1FU0NfQiwgICAgICAwLCAtRVNDX0Qs
ICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgLyogQCAtIEcgKi8KLSAgICAgMCwgICAgICAwLCAg
ICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgICAwLCAgIC8qIEggLSBP
ICovCi0gICAgIDAsICAgICAgMCwgICAgICAwLCAtRVNDX1MsICAgICAgMCwgICAgICAwLCAgICAg
IDAsIC1FU0NfVywgICAvKiBQIC0gVyAqLwotICAgICAwLCAgICAgIDAsICAgICAgMCwgICAgJ1sn
LCAgICdcXCcsICAgICddJywgICAgJ14nLCAgICAnXycsICAgLyogWCAtIF8gKi8KLSAgICdgJywg
ICAgICA3LCAtRVNDX2IsICAgICAgMCwgLUVTQ19kLCAgICAgIDAsICAgJ1xmJywgICAgICAwLCAg
IC8qIGAgLSBnICovCi0gICAgIDAsICAgICAgMCwgICAgICAwLCAgICAgIDAsICAgICAgMCwgICAg
ICAwLCAgICdcbicsICAgICAgMCwgICAvKiBoIC0gbyAqLwotICAgICAwLCAgICAgIDAsICAgICdc
cicsIC1FU0NfcywgICAnXHQnLCAgICAgIDAsICAnXHYnLCAtRVNDX3csICAgLyogcCAtIHcgKi8K
LSAgICAgMCwgICAgICAwLCAgICAgIDAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIC8qIHggLSB6ICovCi19OwotCi0vKiBFcnJvciBjb2RlIG51bWJlcnMuIFRoZXkg
YXJlIGdpdmVuIG5hbWVzIHNvIHRoYXQgdGhleSBjYW4gbW9yZSBlYXNpbHkgYmUKLXRyYWNrZWQu
ICovCi0KLWVudW0gRXJyb3JDb2RlIHsKLSAgICBFUlIwLCBFUlIxLCBFUlIyLCBFUlIzLCBFUlI0
LCBFUlI1LCBFUlI2LCBFUlI3LCBFUlI4LCBFUlI5LAotICAgIEVSUjEwLCBFUlIxMSwgRVJSMTIs
IEVSUjEzLCBFUlIxNCwgRVJSMTUsIEVSUjE2LCBFUlIxNwotfTsKLQotLyogVGhlIHRleHRzIG9m
IGNvbXBpbGUtdGltZSBlcnJvciBtZXNzYWdlcy4gVGhlc2UgYXJlICJjaGFyICoiIGJlY2F1c2Ug
dGhleQotYXJlIHBhc3NlZCB0byB0aGUgb3V0c2lkZSB3b3JsZC4gKi8KLQotc3RhdGljIGNvbnN0
IGNoYXIqIGVycm9yVGV4dChFcnJvckNvZGUgY29kZSkKLXsKLSAgICBzdGF0aWMgY29uc3QgY2hh
ciBlcnJvclRleHRzW10gPQotICAgICAgLyogMSAqLwotICAgICAgIlxcIGF0IGVuZCBvZiBwYXR0
ZXJuXDAiCi0gICAgICAiXFxjIGF0IGVuZCBvZiBwYXR0ZXJuXDAiCi0gICAgICAiY2hhcmFjdGVy
IHZhbHVlIGluIFxceHsuLi59IHNlcXVlbmNlIGlzIHRvbyBsYXJnZVwwIgotICAgICAgIm51bWJl
cnMgb3V0IG9mIG9yZGVyIGluIHt9IHF1YW50aWZpZXJcMCIKLSAgICAgIC8qIDUgKi8KLSAgICAg
ICJudW1iZXIgdG9vIGJpZyBpbiB7fSBxdWFudGlmaWVyXDAiCi0gICAgICAibWlzc2luZyB0ZXJt
aW5hdGluZyBdIGZvciBjaGFyYWN0ZXIgY2xhc3NcMCIKLSAgICAgICJpbnRlcm5hbCBlcnJvcjog
Y29kZSBvdmVyZmxvd1wwIgotICAgICAgInJhbmdlIG91dCBvZiBvcmRlciBpbiBjaGFyYWN0ZXIg
Y2xhc3NcMCIKLSAgICAgICJub3RoaW5nIHRvIHJlcGVhdFwwIgotICAgICAgLyogMTAgKi8KLSAg
ICAgICJ1bm1hdGNoZWQgcGFyZW50aGVzZXNcMCIKLSAgICAgICJpbnRlcm5hbCBlcnJvcjogdW5l
eHBlY3RlZCByZXBlYXRcMCIKLSAgICAgICJ1bnJlY29nbml6ZWQgY2hhcmFjdGVyIGFmdGVyICg/
XDAiCi0gICAgICAiZmFpbGVkIHRvIGdldCBtZW1vcnlcMCIKLSAgICAgICJtaXNzaW5nIClcMCIK
LSAgICAgIC8qIDE1ICovCi0gICAgICAicmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBzdWJwYXR0
ZXJuXDAiCi0gICAgICAicmVndWxhciBleHByZXNzaW9uIHRvbyBsYXJnZVwwIgotICAgICAgInBh
cmVudGhlc2VzIG5lc3RlZCB0b28gZGVlcGx5IgotICAgIDsKLQotICAgIGludCBpID0gY29kZTsK
LSAgICBjb25zdCBjaGFyKiB0ZXh0ID0gZXJyb3JUZXh0czsKLSAgICB3aGlsZSAoaSA+IDEpCi0g
ICAgICAgIGkgLT0gISp0ZXh0Kys7Ci0gICAgcmV0dXJuIHRleHQ7Ci19Ci0KLS8qIFN0cnVjdHVy
ZSBmb3IgcGFzc2luZyAic3RhdGljIiBpbmZvcm1hdGlvbiBhcm91bmQgYmV0d2VlbiB0aGUgZnVu
Y3Rpb25zCi1kb2luZyB0aGUgY29tcGlsaW5nLiAqLwotCi1zdHJ1Y3QgQ29tcGlsZURhdGEgewot
ICAgIENvbXBpbGVEYXRhKCkgewotICAgICAgICB0b3BCYWNrcmVmID0gMDsKLSAgICAgICAgYmFj
a3JlZk1hcCA9IDA7Ci0gICAgICAgIHJlcVZhcnlPcHQgPSAwOwotICAgICAgICBuZWVkT3V0ZXJC
cmFja2V0ID0gZmFsc2U7Ci0gICAgICAgIG51bUNhcHR1cmluZ0JyYWNrZXRzID0gMDsKLSAgICB9
Ci0gICAgaW50IHRvcEJhY2tyZWY7ICAgICAgICAgICAgLyogTWF4aW11bSBiYWNrIHJlZmVyZW5j
ZSAqLwotICAgIHVuc2lnbmVkIGJhY2tyZWZNYXA7ICAgICAgIC8qIEJpdG1hcCBvZiBsb3cgYmFj
ayByZWZzICovCi0gICAgaW50IHJlcVZhcnlPcHQ7ICAgICAgICAgICAgLyogIkFmdGVyIHZhcmlh
YmxlIGl0ZW0iIGZsYWcgZm9yIHJlcUJ5dGUgKi8KLSAgICBib29sIG5lZWRPdXRlckJyYWNrZXQ7
Ci0gICAgaW50IG51bUNhcHR1cmluZ0JyYWNrZXRzOwotfTsKLQotLyogRGVmaW5pdGlvbnMgdG8g
YWxsb3cgbXV0dWFsIHJlY3Vyc2lvbiAqLwotCi1zdGF0aWMgYm9vbCBjb21waWxlQnJhY2tldChp
bnQsIGludCosIHVuc2lnbmVkIGNoYXIqKiwgY29uc3QgVUNoYXIqKiwgY29uc3QgVUNoYXIqLCBF
cnJvckNvZGUqLCBpbnQsIGludCosIGludCosIENvbXBpbGVEYXRhJik7Ci1zdGF0aWMgYm9vbCBi
cmFja2V0SXNBbmNob3JlZChjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlKTsKLXN0YXRpYyBib29s
IGJyYWNrZXROZWVkc0xpbmVTdGFydChjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlLCB1bnNpZ25l
ZCBjYXB0dXJlTWFwLCB1bnNpZ25lZCBiYWNrcmVmTWFwKTsKLXN0YXRpYyBpbnQgYnJhY2tldEZp
bmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKGNvbnN0IHVuc2lnbmVkIGNoYXIqIGNvZGUsIGJvb2wg
aW5hc3NlcnQpOwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKgotKiAgICAgICAgICAgIEhhbmRsZSBlc2NhcGVzICAgICAgICAgICAgICAgICAgICAg
ICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0K
LS8qIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHdoZW4gYSBcIGhhcyBiZWVuIGVuY291bnRlcmVk
LiBJdCBlaXRoZXIgcmV0dXJucyBhCi1wb3NpdGl2ZSB2YWx1ZSBmb3IgYSBzaW1wbGUgZXNjYXBl
IHN1Y2ggYXMgXG4sIG9yIGEgbmVnYXRpdmUgdmFsdWUgd2hpY2gKLWVuY29kZXMgb25lIG9mIHRo
ZSBtb3JlIGNvbXBsaWNhdGVkIHRoaW5ncyBzdWNoIGFzIFxkLiBXaGVuIFVURi04IGlzIGVuYWJs
ZWQsCi1hIHBvc2l0aXZlIHZhbHVlIGdyZWF0ZXIgdGhhbiAyNTUgbWF5IGJlIHJldHVybmVkLiBP
biBlbnRyeSwgcHRyIGlzIHBvaW50aW5nIGF0Ci10aGUgXC4gT24gZXhpdCwgaXQgaXMgb24gdGhl
IGZpbmFsIGNoYXJhY3RlciBvZiB0aGUgZXNjYXBlIHNlcXVlbmNlLgotCi1Bcmd1bWVudHM6Ci0g
IHB0clB0ciAgICAgICAgIHBvaW50cyB0byB0aGUgcGF0dGVybiBwb3NpdGlvbiBwb2ludGVyCi0g
IGVycm9yQ29kZVB0ciAgIHBvaW50cyB0byB0aGUgZXJyb3Jjb2RlIHZhcmlhYmxlCi0gIGJyYWNv
dW50ICAgICAgIG51bWJlciBvZiBwcmV2aW91cyBleHRyYWN0aW5nIGJyYWNrZXRzCi0gIG9wdGlv
bnMgICAgICAgIHRoZSBvcHRpb25zIGJpdHMKLSAgaXNDbGFzcyAgICAgICAgdHJ1ZSBpZiBpbnNp
ZGUgYSBjaGFyYWN0ZXIgY2xhc3MKLQotUmV0dXJuczogICAgICAgICB6ZXJvIG9yIHBvc2l0aXZl
ID0+IGEgZGF0YSBjaGFyYWN0ZXIKLSAgICAgICAgICAgICAgICAgbmVnYXRpdmUgPT4gYSBzcGVj
aWFsIGVzY2FwZSBzZXF1ZW5jZQotICAgICAgICAgICAgICAgICBvbiBlcnJvciwgZXJyb3JQdHIg
aXMgc2V0Ci0qLwotCi1zdGF0aWMgaW50IGNoZWNrRXNjYXBlKGNvbnN0IFVDaGFyKiogcHRyUHRy
LCBjb25zdCBVQ2hhciogcGF0dGVybkVuZCwgRXJyb3JDb2RlKiBlcnJvckNvZGVQdHIsIGludCBi
cmFjb3VudCwgYm9vbCBpc0NsYXNzKQotewotICAgIGNvbnN0IFVDaGFyKiBwdHIgPSAqcHRyUHRy
ICsgMTsKLQotICAgIC8qIElmIGJhY2tzbGFzaCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBwYXR0ZXJu
LCBpdCdzIGFuIGVycm9yLiAqLwotICAgIGlmIChwdHIgPT0gcGF0dGVybkVuZCkgewotICAgICAg
ICAqZXJyb3JDb2RlUHRyID0gRVJSMTsKLSAgICAgICAgKnB0clB0ciA9IHB0cjsKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotICAgIAotICAgIGludCBjID0gKnB0cjsKLSAgICAKLSAgICAvKiBO
b24tYWxwaGFtZXJpY3MgYXJlIGxpdGVyYWxzLiBGb3IgZGlnaXRzIG9yIGxldHRlcnMsIGRvIGFu
IGluaXRpYWwgbG9va3VwIGluCi0gICAgIGEgdGFibGUuIEEgbm9uLXplcm8gcmVzdWx0IGlzIHNv
bWV0aGluZyB0aGF0IGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVseS4KLSAgICAgT3RoZXJ3aXNl
IGZ1cnRoZXIgcHJvY2Vzc2luZyBtYXkgYmUgcmVxdWlyZWQuICovCi0gICAgCi0gICAgaWYgKGMg
PCAnMCcgfHwgYyA+ICd6JykgeyAvKiBOb3QgYWxwaGFtZXJpYyAqLwotICAgIH0gZWxzZSBpZiAo
aW50IGVzY2FwZVZhbHVlID0gZXNjYXBlc1tjIC0gJzAnXSkgewotICAgICAgICBjID0gZXNjYXBl
VmFsdWU7Ci0gICAgICAgIGlmIChpc0NsYXNzKSB7Ci0gICAgICAgICAgICBpZiAoLWMgPT0gRVND
X2IpCi0gICAgICAgICAgICAgICAgYyA9ICdcYic7IC8qIFxiIGlzIGJhY2tzbGFzaCBpbiBhIGNs
YXNzICovCi0gICAgICAgICAgICBlbHNlIGlmICgtYyA9PSBFU0NfQikKLSAgICAgICAgICAgICAg
ICBjID0gJ0InOyAvKiBhbmQgXEIgaXMgYSBjYXBpdGFsIEIgaW4gYSBjbGFzcyAoaW4gYnJvd3Nl
cnMgZXZlbnQgdGhvdWdoIEVDTUFTY3JpcHQgMTUuMTAuMi4xOSBzYXlzIGl0IHJhaXNlcyBhbiBl
cnJvcikgKi8KLSAgICAgICAgfQotICAgIC8qIEVzY2FwZXMgdGhhdCBuZWVkIGZ1cnRoZXIgcHJv
Y2Vzc2luZywgb3IgYXJlIGlsbGVnYWwuICovCi0gICAgCi0gICAgfSBlbHNlIHsKLSAgICAgICAg
c3dpdGNoIChjKSB7Ci0gICAgICAgICAgICBjYXNlICcxJzoKLSAgICAgICAgICAgIGNhc2UgJzIn
OgotICAgICAgICAgICAgY2FzZSAnMyc6Ci0gICAgICAgICAgICBjYXNlICc0JzoKLSAgICAgICAg
ICAgIGNhc2UgJzUnOgotICAgICAgICAgICAgY2FzZSAnNic6Ci0gICAgICAgICAgICBjYXNlICc3
JzoKLSAgICAgICAgICAgIGNhc2UgJzgnOgotICAgICAgICAgICAgY2FzZSAnOSc6Ci0gICAgICAg
ICAgICAgICAgLyogRXNjYXBlIHNlcXVlbmNlcyBzdGFydGluZyB3aXRoIGEgbm9uLXplcm8gZGln
aXQgYXJlIGJhY2tyZWZlcmVuY2VzLAotICAgICAgICAgICAgICAgICB1bmxlc3MgdGhlcmUgYXJl
IGluc3VmZmljaWVudCBicmFja2V0cywgaW4gd2hpY2ggY2FzZSB0aGV5IGFyZSBvY3RhbAotICAg
ICAgICAgICAgICAgICBlc2NhcGUgc2VxdWVuY2VzLiBUaG9zZSBzZXF1ZW5jZXMgZW5kIG9uIHRo
ZSBmaXJzdCBub24tb2N0YWwgY2hhcmFjdGVyCi0gICAgICAgICAgICAgICAgIG9yIHdoZW4gd2Ug
b3ZlcmZsb3cgMC0yNTUsIHdoaWNoZXZlciBjb21lcyBmaXJzdC4gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBpZiAoIWlzQ2xhc3MpIHsKLSAgICAgICAgICAgICAgICAgICAg
Y29uc3QgVUNoYXIqIG9sZHB0ciA9IHB0cjsKLSAgICAgICAgICAgICAgICAgICAgYyAtPSAnMCc7
Ci0gICAgICAgICAgICAgICAgICAgIHdoaWxlICgocHRyICsgMSA8IHBhdHRlcm5FbmQpICYmIGlz
QVNDSUlEaWdpdChwdHJbMV0pICYmIGMgPD0gYnJhY291bnQpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjID0gYyAqIDEwICsgKigrK3B0cikgLSAnMCc7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChjIDw9IGJyYWNvdW50KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0gLShFU0NfUkVG
ICsgYyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICBwdHIgPSBvbGRwdHI7ICAgICAgLyogUHV0IHRoZSBw
b2ludGVyIGJhY2sgYW5kIGZhbGwgdGhyb3VnaCAqLwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBIYW5kbGUgYW4gb2N0YWwgbnVtYmVyIGZv
bGxvd2luZyBcLiBJZiB0aGUgZmlyc3QgZGlnaXQgaXMgOCBvciA5LAotICAgICAgICAgICAgICAg
ICB0aGlzIGlzIG5vdCBvY3RhbC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAoKGMgPSAqcHRyKSA+PSAnOCcpIHsKLSAgICAgICAgICAgICAgICAgICAgYyA9ICdcXCc7
Ci0gICAgICAgICAgICAgICAgICAgIHB0ciAtPSAxOwotICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIC8qIFwwIGFsd2F5cyBzdGFydHMg
YW4gb2N0YWwgbnVtYmVyLCBidXQgd2UgbWF5IGRyb3AgdGhyb3VnaCB0byBoZXJlIHdpdGggYQot
ICAgICAgICAgICAgIGxhcmdlciBmaXJzdCBvY3RhbCBkaWdpdC4gKi8KLQotICAgICAgICAgICAg
Y2FzZSAnMCc6IHsKLSAgICAgICAgICAgICAgICBjIC09ICcwJzsKLSAgICAgICAgICAgICAgICBp
bnQgaTsKLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IDI7ICsraSkgewotICAgICAg
ICAgICAgICAgICAgICBpZiAocHRyICsgaSA+PSBwYXR0ZXJuRW5kIHx8IHB0cltpXSA8ICcwJyB8
fCBwdHJbaV0gPiAnNycpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgaW50IGNjID0gYyAqIDggKyBwdHJbaV0gLSAnMCc7Ci0gICAgICAgICAgICAg
ICAgICAgIGlmIChjYyA+IDI1NSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICBjID0gY2M7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIHB0ciArPSBpIC0gMTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0K
LQotICAgICAgICAgICAgY2FzZSAneCc6IHsKLSAgICAgICAgICAgICAgICBjID0gMDsKLSAgICAg
ICAgICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IDI7ICsr
aSkgewotICAgICAgICAgICAgICAgICAgICBpZiAocHRyICsgaSA+PSBwYXR0ZXJuRW5kIHx8ICFp
c0FTQ0lJSGV4RGlnaXQocHRyW2ldKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgYyA9ICd4
JzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGkgPSAxOwotICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgaW50
IGNjID0gcHRyW2ldOwotICAgICAgICAgICAgICAgICAgICBpZiAoY2MgPj0gJ2EnKQotICAgICAg
ICAgICAgICAgICAgICAgICAgY2MgLT0gMzI7ICAgICAgICAgICAgIC8qIENvbnZlcnQgdG8gdXBw
ZXIgY2FzZSAqLwotICAgICAgICAgICAgICAgICAgICBjID0gYyAqIDE2ICsgY2MgLSAoKGNjIDwg
J0EnKSA/ICcwJyA6ICgnQScgLSAxMCkpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBwdHIgKz0gaSAtIDE7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICB9
Ci0KLSAgICAgICAgICAgIGNhc2UgJ3UnOiB7Ci0gICAgICAgICAgICAgICAgYyA9IDA7Ci0gICAg
ICAgICAgICAgICAgaW50IGk7Ci0gICAgICAgICAgICAgICAgZm9yIChpID0gMTsgaSA8PSA0OyAr
K2kpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHB0ciArIGkgPj0gcGF0dGVybkVuZCB8fCAh
aXNBU0NJSUhleERpZ2l0KHB0cltpXSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSAn
dSc7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpID0gMTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGlu
dCBjYyA9IHB0cltpXTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNjID49ICdhJykKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNjIC09IDMyOyAgICAgICAgICAgICAvKiBDb252ZXJ0IHRvIHVw
cGVyIGNhc2UgKi8KLSAgICAgICAgICAgICAgICAgICAgYyA9IGMgKiAxNiArIGNjIC0gKChjYyA8
ICdBJykgPyAnMCcgOiAoJ0EnIC0gMTApKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgcHRyICs9IGkgLSAxOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICBjYXNlICdjJzoKLSAgICAgICAgICAgICAgICBpZiAoKytwdHIgPT0g
cGF0dGVybkVuZCkgewotICAgICAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJSMjsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGMgPSAqcHRyOwotCi0gICAgICAgICAgICAgICAg
LyogVG8gbWF0Y2ggRmlyZWZveCwgaW5zaWRlIGEgY2hhcmFjdGVyIGNsYXNzLCB3ZSBhbHNvIGFj
Y2VwdAotICAgICAgICAgICAgICAgICAgIG51bWJlcnMgYW5kICdfJyBhcyBjb250cm9sIGNoYXJh
Y3RlcnMgKi8KLSAgICAgICAgICAgICAgICBpZiAoKCFpc0NsYXNzICYmICFpc0FTQ0lJQWxwaGEo
YykpIHx8ICghaXNBU0NJSUFscGhhbnVtZXJpYyhjKSAmJiBjICE9ICdfJykpIHsKLSAgICAgICAg
ICAgICAgICAgICAgYyA9ICdcXCc7Ci0gICAgICAgICAgICAgICAgICAgIHB0ciAtPSAyOwotICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICAvKiBBIGxldHRlciBpcyB1cHBlci1jYXNlZDsgdGhlbiB0aGUgMHg0MCBiaXQgaXMgZmxp
cHBlZC4gVGhpcyBjb2RpbmcKLSAgICAgICAgICAgICAgICAgaXMgQVNDSUktc3BlY2lmaWMsIGJ1
dCB0aGVuIHRoZSB3aG9sZSBjb25jZXB0IG9mIFxjeCBpcyBBU0NJSS1zcGVjaWZpYy4gKi8KLSAg
ICAgICAgICAgICAgICBjID0gdG9BU0NJSVVwcGVyKGMpIF4gMHg0MDsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgKnB0clB0ciA9IHB0cjsK
LSAgICByZXR1cm4gYzsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKLSogICAgICAgICAgICBDaGVjayBmb3IgY291bnRlZCByZXBlYXQgICAg
ICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLwotCi0vKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgJ3snIGlzIGVuY291bnRl
cmVkIGluIGEgcGxhY2Ugd2hlcmUgaXQgbWlnaHQKLXN0YXJ0IGEgcXVhbnRpZmllci4gSXQgbG9v
a3MgYWhlYWQgdG8gc2VlIGlmIGl0IHJlYWxseSBpcyBhIHF1YW50aWZpZXIgb3Igbm90LgotSXQg
aXMgb25seSBhIHF1YW50aWZpZXIgaWYgaXQgaXMgb25lIG9mIHRoZSBmb3JtcyB7ZGRkfSB7ZGRk
LH0gb3Ige2RkZCxkZGR9Ci13aGVyZSB0aGUgZGRkcyBhcmUgZGlnaXRzLgotCi1Bcmd1bWVudHM6
Ci0gIHAgICAgICAgICBwb2ludGVyIHRvIHRoZSBmaXJzdCBjaGFyIGFmdGVyICd7JwotCi1SZXR1
cm5zOiAgICB0cnVlIG9yIGZhbHNlCi0qLwotCi1zdGF0aWMgYm9vbCBpc0NvdW50ZWRSZXBlYXQo
Y29uc3QgVUNoYXIqIHAsIGNvbnN0IFVDaGFyKiBwYXR0ZXJuRW5kKQotewotICAgIGlmIChwID49
IHBhdHRlcm5FbmQgfHwgIWlzQVNDSUlEaWdpdCgqcCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBwKys7Ci0gICAgd2hpbGUgKHAgPCBwYXR0ZXJuRW5kICYmIGlzQVNDSUlEaWdpdCgqcCkp
Ci0gICAgICAgIHArKzsKLSAgICBpZiAocCA8IHBhdHRlcm5FbmQgJiYgKnAgPT0gJ30nKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAKLSAgICBpZiAocCA+PSBwYXR0ZXJuRW5kIHx8ICpwKysg
IT0gJywnKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHAgPCBwYXR0ZXJuRW5kICYm
ICpwID09ICd9JykKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgCi0gICAgaWYgKHAgPj0gcGF0
dGVybkVuZCB8fCAhaXNBU0NJSURpZ2l0KCpwKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHArKzsKLSAgICB3aGlsZSAocCA8IHBhdHRlcm5FbmQgJiYgaXNBU0NJSURpZ2l0KCpwKSkKLSAg
ICAgICAgcCsrOwotICAgIAotICAgIHJldHVybiAocCA8IHBhdHRlcm5FbmQgJiYgKnAgPT0gJ30n
KTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogICAgICAgICBSZWFkIHJlcGVhdCBjb3VudHMgICAgICAgICAgICAgICAgICAgICAqCi0q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBS
ZWFkIGFuIGl0ZW0gb2YgdGhlIGZvcm0ge24sbX0gYW5kIHJldHVybiB0aGUgdmFsdWVzLiBUaGlz
IGlzIGNhbGxlZCBvbmx5Ci1hZnRlciBpc0NvdW50ZWRSZXBlYXQoKSBoYXMgY29uZmlybWVkIHRo
YXQgYSByZXBlYXQtY291bnQgcXVhbnRpZmllciBleGlzdHMsCi1zbyB0aGUgc3ludGF4IGlzIGd1
YXJhbnRlZWQgdG8gYmUgY29ycmVjdCwgYnV0IHdlIG5lZWQgdG8gY2hlY2sgdGhlIHZhbHVlcy4K
LQotQXJndW1lbnRzOgotICBwICAgICAgICAgICAgICBwb2ludGVyIHRvIGZpcnN0IGNoYXIgYWZ0
ZXIgJ3snCi0gIG1pbnAgICAgICAgICAgIHBvaW50ZXIgdG8gaW50IGZvciBtaW4KLSAgbWF4cCAg
ICAgICAgICAgcG9pbnRlciB0byBpbnQgZm9yIG1heAotICAgICAgICAgICAgICAgICByZXR1cm5l
ZCBhcyAtMSBpZiBubyBtYXgKLSAgZXJyb3JDb2RlUHRyICAgcG9pbnRzIHRvIGVycm9yIGNvZGUg
dmFyaWFibGUKLQotUmV0dXJuczogICAgICAgICBwb2ludGVyIHRvICd9JyBvbiBzdWNjZXNzOwot
ICAgICAgICAgICAgICAgICBjdXJyZW50IHB0ciBvbiBlcnJvciwgd2l0aCBlcnJvckNvZGVQdHIg
c2V0IG5vbi16ZXJvCi0qLwotCi1zdGF0aWMgY29uc3QgVUNoYXIqIHJlYWRSZXBlYXRDb3VudHMo
Y29uc3QgVUNoYXIqIHAsIGludCogbWlucCwgaW50KiBtYXhwLCBFcnJvckNvZGUqIGVycm9yQ29k
ZVB0cikKLXsKLSAgICBpbnQgbWluID0gMDsKLSAgICBpbnQgbWF4ID0gLTE7Ci0gICAgCi0gICAg
LyogUmVhZCB0aGUgbWluaW11bSB2YWx1ZSBhbmQgZG8gYSBwYXJhbm9pZCBjaGVjazogYSBuZWdh
dGl2ZSB2YWx1ZSBpbmRpY2F0ZXMKLSAgICAgYW4gaW50ZWdlciBvdmVyZmxvdy4gKi8KLSAgICAK
LSAgICB3aGlsZSAoaXNBU0NJSURpZ2l0KCpwKSkKLSAgICAgICAgbWluID0gbWluICogMTAgKyAq
cCsrIC0gJzAnOwotICAgIGlmIChtaW4gPCAwIHx8IG1pbiA+IDY1NTM1KSB7Ci0gICAgICAgICpl
cnJvckNvZGVQdHIgPSBFUlI1OwotICAgICAgICByZXR1cm4gcDsKLSAgICB9Ci0gICAgCi0gICAg
LyogUmVhZCB0aGUgbWF4aW11bSB2YWx1ZSBpZiB0aGVyZSBpcyBvbmUsIGFuZCBhZ2FpbiBkbyBh
IHBhcmFub2lkIG9uIGl0cyBzaXplLgotICAgICBBbHNvLCBtYXggbXVzdCBub3QgYmUgbGVzcyB0
aGFuIG1pbi4gKi8KLSAgICAKLSAgICBpZiAoKnAgPT0gJ30nKQotICAgICAgICBtYXggPSBtaW47
Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmICgqKCsrcCkgIT0gJ30nKSB7Ci0gICAgICAgICAgICBt
YXggPSAwOwotICAgICAgICAgICAgd2hpbGUgKGlzQVNDSUlEaWdpdCgqcCkpCi0gICAgICAgICAg
ICAgICAgbWF4ID0gbWF4ICogMTAgKyAqcCsrIC0gJzAnOwotICAgICAgICAgICAgaWYgKG1heCA8
IDAgfHwgbWF4ID4gNjU1MzUpIHsKLSAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJS
NTsKLSAgICAgICAgICAgICAgICByZXR1cm4gcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IGlmIChtYXggPCBtaW4pIHsKLSAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJSNDsK
LSAgICAgICAgICAgICAgICByZXR1cm4gcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAg
IH0KLSAgICAKLSAgICAvKiBGaWxsIGluIHRoZSByZXF1aXJlZCB2YXJpYWJsZXMsIGFuZCBwYXNz
IGJhY2sgdGhlIHBvaW50ZXIgdG8gdGhlIHRlcm1pbmF0aW5nCi0gICAgICd9Jy4gKi8KLSAgICAK
LSAgICAqbWlucCA9IG1pbjsKLSAgICAqbWF4cCA9IG1heDsKLSAgICByZXR1cm4gcDsKLX0KLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICBGaW5kIGZpcnN0IHNpZ25pZmljYW50IG9wIGNvZGUgICAgICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGlzIGNh
bGxlZCBieSBzZXZlcmFsIGZ1bmN0aW9ucyB0aGF0IHNjYW4gYSBjb21waWxlZCBleHByZXNzaW9u
IGxvb2tpbmcKLWZvciBhIGZpeGVkIGZpcnN0IGNoYXJhY3Rlciwgb3IgYW4gYW5jaG9yaW5nIG9w
IGNvZGUgZXRjLiBJdCBza2lwcyBvdmVyIHRoaW5ncwotdGhhdCBkbyBub3QgaW5mbHVlbmNlIHRo
aXMuCi0KLUFyZ3VtZW50czoKLSAgY29kZSAgICAgICAgIHBvaW50ZXIgdG8gdGhlIHN0YXJ0IG9m
IHRoZSBncm91cAotUmV0dXJuczogICAgICAgcG9pbnRlciB0byB0aGUgZmlyc3Qgc2lnbmlmaWNh
bnQgb3Bjb2RlCi0qLwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgY2hhciogZmlyc3RTaWduaWZp
Y2FudE9wY29kZShjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlKQotewotICAgIHdoaWxlICgqY29k
ZSA9PSBPUF9CUkFOVU1CRVIpCi0gICAgICAgIGNvZGUgKz0gMzsKLSAgICByZXR1cm4gY29kZTsK
LX0KLQotc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGZpcnN0U2lnbmlmaWNhbnRPcGNvZGVT
a2lwcGluZ0Fzc2VydGlvbnMoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSkKLXsKLSAgICB3aGls
ZSAodHJ1ZSkgewotICAgICAgICBzd2l0Y2ggKCpjb2RlKSB7Ci0gICAgICAgICAgICBjYXNlIE9Q
X0FTU0VSVF9OT1Q6Ci0gICAgICAgICAgICAgICAgYWR2YW5jZVRvRW5kT2ZCcmFja2V0KGNvZGUp
OwotICAgICAgICAgICAgICAgIGNvZGUgKz0gMSArIExJTktfU0laRTsKLSAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgT1BfV09SRF9CT1VOREFSWToKLSAgICAgICAgICAg
IGNhc2UgT1BfTk9UX1dPUkRfQk9VTkRBUlk6Ci0gICAgICAgICAgICAgICAgKytjb2RlOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBPUF9CUkFOVU1CRVI6Ci0gICAg
ICAgICAgICAgICAgY29kZSArPSAzOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICByZXR1cm4gY29kZTsKLSAgICAgICAgfQotICAg
IH0KLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogICAgICAgICAgIEdldCBvdGhlcmNhc2UgcmFuZ2UgICAgICAgICAgICAgICAgICAqCi0q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBU
aGlzIGZ1bmN0aW9uIGlzIHBhc3NlZCB0aGUgc3RhcnQgYW5kIGVuZCBvZiBhIGNsYXNzIHJhbmdl
LCBpbiBVVEYtOCBtb2RlCi13aXRoIFVDUCBzdXBwb3J0LiBJdCBzZWFyY2hlcyB1cCB0aGUgY2hh
cmFjdGVycywgbG9va2luZyBmb3IgaW50ZXJuYWwgcmFuZ2VzIG9mCi1jaGFyYWN0ZXJzIGluIHRo
ZSAib3RoZXIiIGNhc2UuIEVhY2ggY2FsbCByZXR1cm5zIHRoZSBuZXh0IG9uZSwgdXBkYXRpbmcg
dGhlCi1zdGFydCBhZGRyZXNzLgotCi1Bcmd1bWVudHM6Ci0gIGNwdHIgICAgICAgIHBvaW50cyB0
byBzdGFydGluZyBjaGFyYWN0ZXIgdmFsdWU7IHVwZGF0ZWQKLSAgZCAgICAgICAgICAgZW5kIHZh
bHVlCi0gIG9jcHRyICAgICAgIHdoZXJlIHRvIHB1dCBzdGFydCBvZiBvdGhlcmNhc2UgcmFuZ2UK
LSAgb2RwdHIgICAgICAgd2hlcmUgdG8gcHV0IGVuZCBvZiBvdGhlcmNhc2UgcmFuZ2UKLQotWWll
bGQ6ICAgICAgICB0cnVlIHdoZW4gcmFuZ2UgcmV0dXJuZWQ7IGZhbHNlIHdoZW4gbm8gbW9yZQot
Ki8KLQotc3RhdGljIGJvb2wgZ2V0T3RoZXJjYXNlUmFuZ2UoaW50KiBjcHRyLCBpbnQgZCwgaW50
KiBvY3B0ciwgaW50KiBvZHB0cikKLXsKLSAgICBpbnQgYywgb3RoZXJjYXNlID0gMDsKLSAgICAK
LSAgICBmb3IgKGMgPSAqY3B0cjsgYyA8PSBkOyBjKyspIHsKLSAgICAgICAgaWYgKChvdGhlcmNh
c2UgPSBqc2NfcGNyZV91Y3Bfb3RoZXJjYXNlKGMpKSA+PSAwKQotICAgICAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIAotICAgIGlmIChjID4gZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IAotICAgICpvY3B0ciA9IG90aGVyY2FzZTsKLSAgICBpbnQgbmV4dCA9IG90aGVyY2FzZSArIDE7
Ci0gICAgCi0gICAgZm9yICgrK2M7IGMgPD0gZDsgYysrKSB7Ci0gICAgICAgIGlmIChqc2NfcGNy
ZV91Y3Bfb3RoZXJjYXNlKGMpICE9IG5leHQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
bmV4dCsrOwotICAgIH0KLSAgICAKLSAgICAqb2RwdHIgPSBuZXh0IC0gMTsKLSAgICAqY3B0ciA9
IGM7Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqCi0gKiAgICAgICBDb252ZXJ0IGNoYXJhY3RlciB2
YWx1ZSB0byBVVEYtOCAgICAgICAgICoKLSAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGZ1bmN0aW9uIHRha2VzIGFuIGludGVnZXIg
dmFsdWUgaW4gdGhlIHJhbmdlIDAgLSAweDdmZmZmZmZmCi0gYW5kIGVuY29kZXMgaXQgYXMgYSBV
VEYtOCBjaGFyYWN0ZXIgaW4gMCB0byA2IGJ5dGVzLgotIAotIEFyZ3VtZW50czoKLSBjdmFsdWUg
ICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUKLSBidWZmZXIgICAgIHBvaW50ZXIgdG8gYnVmZmVyIGZv
ciByZXN1bHQgLSBhdCBsZWFzdCA2IGJ5dGVzIGxvbmcKLSAKLSBSZXR1cm5zOiAgICAgbnVtYmVy
IG9mIGNoYXJhY3RlcnMgcGxhY2VkIGluIHRoZSBidWZmZXIKLSAqLwotCi1zdGF0aWMgaW50IGVu
Y29kZVVURjgoaW50IGN2YWx1ZSwgdW5zaWduZWQgY2hhciAqYnVmZmVyKQotewotICAgIGludCBp
OwotICAgIGZvciAoaSA9IDA7IGkgPCBqc2NfcGNyZV91dGY4X3RhYmxlMV9zaXplOyBpKyspCi0g
ICAgICAgIGlmIChjdmFsdWUgPD0ganNjX3BjcmVfdXRmOF90YWJsZTFbaV0pCi0gICAgICAgICAg
ICBicmVhazsKLSAgICBidWZmZXIgKz0gaTsKLSAgICBmb3IgKGludCBqID0gaTsgaiA+IDA7IGot
LSkgewotICAgICAgICAqYnVmZmVyLS0gPSAweDgwIHwgKGN2YWx1ZSAmIDB4M2YpOwotICAgICAg
ICBjdmFsdWUgPj49IDY7Ci0gICAgfQotICAgICpidWZmZXIgPSBqc2NfcGNyZV91dGY4X3RhYmxl
MltpXSB8IGN2YWx1ZTsKLSAgICByZXR1cm4gaSArIDE7Ci19Ci0KLS8qKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICAgICBDb21waWxlIG9u
ZSBicmFuY2ggICAgICAgICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogU2NhbiB0aGUgcGF0dGVybiwgY29tcGlsaW5n
IGl0IGludG8gdGhlIGNvZGUgdmVjdG9yLgotCi1Bcmd1bWVudHM6Ci0gIG9wdGlvbnMgICAgICAg
IHRoZSBvcHRpb24gYml0cwotICBicmFja2V0cyAgICAgICBwb2ludHMgdG8gbnVtYmVyIG9mIGV4
dHJhY3RpbmcgYnJhY2tldHMgdXNlZAotICBjb2RlUHRyICAgICAgICBwb2ludHMgdG8gdGhlIHBv
aW50ZXIgdG8gdGhlIGN1cnJlbnQgY29kZSBwb2ludAotICBwdHJQdHIgICAgICAgICBwb2ludHMg
dG8gdGhlIGN1cnJlbnQgcGF0dGVybiBwb2ludGVyCi0gIGVycm9yQ29kZVB0ciAgIHBvaW50cyB0
byBlcnJvciBjb2RlIHZhcmlhYmxlCi0gIGZpcnN0Ynl0ZXB0ciAgIHNldCB0byBpbml0aWFsIGxp
dGVyYWwgY2hhcmFjdGVyLCBvciA8IDAgKFJFUV9VTlNFVCwgUkVRX05PTkUpCi0gIHJlcWJ5dGVw
dHIgICAgIHNldCB0byB0aGUgbGFzdCBsaXRlcmFsIGNoYXJhY3RlciByZXF1aXJlZCwgZWxzZSA8
IDAKLSAgY2QgICAgICAgICAgICAgY29udGFpbnMgcG9pbnRlcnMgdG8gdGFibGVzIGV0Yy4KLQot
UmV0dXJuczogICAgICAgICB0cnVlIG9uIHN1Y2Nlc3MKLSAgICAgICAgICAgICAgICAgZmFsc2Us
IHdpdGggKmVycm9yQ29kZVB0ciBzZXQgbm9uLXplcm8gb24gZXJyb3IKLSovCi0KLXN0YXRpYyBp
bmxpbmUgYm9vbCBzYWZlbHlDaGVja05leHRDaGFyKGNvbnN0IFVDaGFyKiBwdHIsIGNvbnN0IFVD
aGFyKiBwYXR0ZXJuRW5kLCBVQ2hhciBleHBlY3RlZCkKLXsKLSAgICByZXR1cm4gKChwdHIgKyAx
IDwgcGF0dGVybkVuZCkgJiYgcHRyWzFdID09IGV4cGVjdGVkKTsKLX0KLQotc3RhdGljIGJvb2wK
LWNvbXBpbGVCcmFuY2goaW50IG9wdGlvbnMsIGludCogYnJhY2tldHMsIHVuc2lnbmVkIGNoYXIq
KiBjb2RlUHRyLAotICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqKiBwdHJQdHIsIGNvbnN0IFVD
aGFyKiBwYXR0ZXJuRW5kLCBFcnJvckNvZGUqIGVycm9yQ29kZVB0ciwgaW50ICpmaXJzdGJ5dGVw
dHIsCi0gICAgICAgICAgICAgICBpbnQqIHJlcWJ5dGVwdHIsIENvbXBpbGVEYXRhJiBjZCkKLXsK
LSAgICBpbnQgcmVwZWF0VHlwZSwgb3BUeXBlOwotICAgIGludCByZXBlYXRNaW4gPSAwLCByZXBl
YXRfbWF4ID0gMDsgICAgICAvKiBUbyBwbGVhc2UgcGlja3kgY29tcGlsZXJzICovCi0gICAgaW50
IGJyYXZhbHVlID0gMDsKLSAgICBpbnQgcmVxdmFyeSwgdGVtcHJlcXZhcnk7Ci0gICAgaW50IGM7
Ci0gICAgdW5zaWduZWQgY2hhciogY29kZSA9ICpjb2RlUHRyOwotICAgIHVuc2lnbmVkIGNoYXIq
IHRlbXBjb2RlOwotICAgIGJvb2wgZGlkR3JvdXBTZXRGaXJzdEJ5dGUgPSBmYWxzZTsKLSAgICBj
b25zdCBVQ2hhciogcHRyID0gKnB0clB0cjsKLSAgICBjb25zdCBVQ2hhciogdGVtcHB0cjsKLSAg
ICB1bnNpZ25lZCBjaGFyKiBwcmV2aW91cyA9IE5VTEw7Ci0gICAgdW5zaWduZWQgY2hhciBjbGFz
c2JpdHNbMzJdOwotICAgIAotICAgIGJvb2wgY2xhc3NfdXRmODsKLSAgICB1bnNpZ25lZCBjaGFy
KiBjbGFzc191dGY4ZGF0YTsKLSAgICB1bnNpZ25lZCBjaGFyIHV0ZjhfY2hhcls2XTsKLSAgICAK
LSAgICAvKiBJbml0aWFsaXplIG5vIGZpcnN0IGJ5dGUsIG5vIHJlcXVpcmVkIGJ5dGUuIFJFUV9V
TlNFVCBtZWFucyAibm8gY2hhcgotICAgICBtYXRjaGluZyBlbmNvdW50ZXJlZCB5ZXQiLiBJdCBn
ZXRzIGNoYW5nZWQgdG8gUkVRX05PTkUgaWYgd2UgaGl0IHNvbWV0aGluZyB0aGF0Ci0gICAgIG1h
dGNoZXMgYSBub24tZml4ZWQgY2hhciBmaXJzdCBjaGFyOyByZXFCeXRlIGp1c3QgcmVtYWlucyB1
bnNldCBpZiB3ZSBuZXZlcgotICAgICBmaW5kIG9uZS4KLSAgICAgCi0gICAgIFdoZW4gd2UgaGl0
IGEgcmVwZWF0IHdob3NlIG1pbmltdW0gaXMgemVybywgd2UgbWF5IGhhdmUgdG8gYWRqdXN0IHRo
ZXNlIHZhbHVlcwotICAgICB0byB0YWtlIHRoZSB6ZXJvIHJlcGVhdCBpbnRvIGFjY291bnQuIFRo
aXMgaXMgaW1wbGVtZW50ZWQgYnkgc2V0dGluZyB0aGVtIHRvCi0gICAgIHplcm9GaXJzdEJ5dGUg
YW5kIHplcm9SZXFCeXRlIHdoZW4gc3VjaCBhIHJlcGVhdCBpcyBlbmNvdW50ZXJlZC4gVGhlIGlu
ZGl2aWR1YWwKLSAgICAgaXRlbSB0eXBlcyB0aGF0IGNhbiBiZSByZXBlYXRlZCBzZXQgdGhlc2Ug
YmFja29mZiB2YXJpYWJsZXMgYXBwcm9wcmlhdGVseS4gKi8KLSAgICAKLSAgICBpbnQgZmlyc3RC
eXRlID0gUkVRX1VOU0VUOwotICAgIGludCByZXFCeXRlID0gUkVRX1VOU0VUOwotICAgIGludCB6
ZXJvUmVxQnl0ZSA9IFJFUV9VTlNFVDsKLSAgICBpbnQgemVyb0ZpcnN0Qnl0ZSA9IFJFUV9VTlNF
VDsKLSAgICAKLSAgICAvKiBUaGUgdmFyaWFibGUgcmVxQ2FzZU9wdCBjb250YWlucyBlaXRoZXIg
dGhlIFJFUV9JR05PUkVfQ0FTRSB2YWx1ZSBvciB6ZXJvLAotICAgICBhY2NvcmRpbmcgdG8gdGhl
IGN1cnJlbnQgc2V0dGluZyBvZiB0aGUgaWdub3Jlcy1jYXNlIGZsYWcuIFJFUV9JR05PUkVfQ0FT
RSBpcyBhIGJpdAotICAgICB2YWx1ZSA+IDI1NS4gSXQgaXMgYWRkZWQgaW50byB0aGUgZmlyc3RC
eXRlIG9yIHJlcUJ5dGUgdmFyaWFibGVzIHRvIHJlY29yZCB0aGUKLSAgICAgY2FzZSBzdGF0dXMg
b2YgdGhlIHZhbHVlLiBUaGlzIGlzIHVzZWQgb25seSBmb3IgQVNDSUkgY2hhcmFjdGVycy4gKi8K
LSAgICAKLSAgICBpbnQgcmVxQ2FzZU9wdCA9IChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikg
PyBSRVFfSUdOT1JFX0NBU0UgOiAwOwotICAgIAotICAgIC8qIFN3aXRjaCBvbiBuZXh0IGNoYXJh
Y3RlciB1bnRpbCB0aGUgZW5kIG9mIHRoZSBicmFuY2ggKi8KLSAgICAKLSAgICBmb3IgKDs7IHB0
cisrKSB7Ci0gICAgICAgIGJvb2wgbmVnYXRlQ2xhc3M7Ci0gICAgICAgIGJvb2wgc2hvdWxkRmxp
cE5lZ2F0aW9uOyAvKiBJZiBhIG5lZ2F0aXZlIHNwZWNpYWwgc3VjaCBhcyBcUyBpcyB1c2VkLCB3
ZSBzaG91bGQgbmVnYXRlIHRoZSB3aG9sZSBjbGFzcyB0byBwcm9wZXJseSBzdXBwb3J0IFVuaWNv
ZGUuICovCi0gICAgICAgIGludCBjbGFzc0NoYXJDb3VudDsKLSAgICAgICAgaW50IGNsYXNzTGFz
dENoYXI7Ci0gICAgICAgIGludCBza2lwQnl0ZXM7Ci0gICAgICAgIGludCBzdWJSZXFCeXRlOwot
ICAgICAgICBpbnQgc3ViRmlyc3RCeXRlOwotICAgICAgICBpbnQgbWNMZW5ndGg7Ci0gICAgICAg
IHVuc2lnbmVkIGNoYXIgbWNidWZmZXJbOF07Ci0gICAgICAgIAotICAgICAgICAvKiBOZXh0IGJ5
dGUgaW4gdGhlIHBhdHRlcm4gKi8KLSAgICAgICAgCi0gICAgICAgIGMgPSBwdHIgPCBwYXR0ZXJu
RW5kID8gKnB0ciA6IDA7Ci0gICAgICAgIAotICAgICAgICAvKiBGaWxsIGluIGxlbmd0aCBvZiBh
IHByZXZpb3VzIGNhbGxvdXQsIGV4Y2VwdCB3aGVuIHRoZSBuZXh0IHRoaW5nIGlzCi0gICAgICAg
ICBhIHF1YW50aWZpZXIuICovCi0gICAgICAgIAotICAgICAgICBib29sIGlzUXVhbnRpZmllciA9
IGMgPT0gJyonIHx8IGMgPT0gJysnIHx8IGMgPT0gJz8nIHx8IChjID09ICd7JyAmJiBpc0NvdW50
ZWRSZXBlYXQocHRyICsgMSwgcGF0dGVybkVuZCkpOwotICAgICAgICAKLSAgICAgICAgc3dpdGNo
IChjKSB7Ci0gICAgICAgICAgICAvKiBUaGUgYnJhbmNoIHRlcm1pbmF0ZXMgYXQgZW5kIG9mIHN0
cmluZywgfCwgb3IgKS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgMDoK
LSAgICAgICAgICAgICAgICBpZiAocHRyIDwgcGF0dGVybkVuZCkKLSAgICAgICAgICAgICAgICAg
ICAgZ290byBOT1JNQUxfQ0hBUjsKLSAgICAgICAgICAgICAgICAvLyBFbmQgb2Ygc3RyaW5nOyBm
YWxsIHRocm91Z2gKLSAgICAgICAgICAgIGNhc2UgJ3wnOgotICAgICAgICAgICAgY2FzZSAnKSc6
Ci0gICAgICAgICAgICAgICAgKmZpcnN0Ynl0ZXB0ciA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAg
ICAgICAqcmVxYnl0ZXB0ciA9IHJlcUJ5dGU7Ci0gICAgICAgICAgICAgICAgKmNvZGVQdHIgPSBj
b2RlOwotICAgICAgICAgICAgICAgICpwdHJQdHIgPSBwdHI7Ci0gICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBIYW5kbGUgc2luZ2xl
LWNoYXJhY3RlciBtZXRhY2hhcmFjdGVycy4gSW4gbXVsdGlsaW5lIG1vZGUsIF4gZGlzYWJsZXMK
LSAgICAgICAgICAgICB0aGUgc2V0dGluZyBvZiBhbnkgZm9sbG93aW5nIGNoYXIgYXMgYSBmaXJz
dCBjaGFyYWN0ZXIuICovCi0KLSAgICAgICAgICAgIGNhc2UgJ14nOgotICAgICAgICAgICAgICAg
IGlmIChvcHRpb25zICYgTWF0Y2hBY3Jvc3NNdWx0aXBsZUxpbmVzT3B0aW9uKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gUkVRX1VOU0VUKQotICAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RCeXRlID0gUkVRX05PTkU7Ci0gICAgICAgICAgICAgICAgICAgICpjb2Rl
KysgPSBPUF9CT0w7Ci0gICAgICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAg
ICpjb2RlKysgPSBPUF9DSVJDOwotICAgICAgICAgICAgICAgIHByZXZpb3VzID0gTlVMTDsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgY2FzZSAnJCc6Ci0gICAgICAgICAg
ICAgICAgcHJldmlvdXMgPSBOVUxMOwotICAgICAgICAgICAgICAgIGlmIChvcHRpb25zICYgTWF0
Y2hBY3Jvc3NNdWx0aXBsZUxpbmVzT3B0aW9uKQotICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9
IE9QX0VPTDsKLSAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAqY29kZSsr
ID0gT1BfRE9MTDsKLSAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgLyogVGhl
cmUgY2FuIG5ldmVyIGJlIGEgZmlyc3QgY2hhciBpZiAnLicgaXMgZmlyc3QsIHdoYXRldmVyIGhh
cHBlbnMgYWJvdXQKLSAgICAgICAgICAgICByZXBlYXRzLiBUaGUgdmFsdWUgb2YgcmVxQnl0ZSBk
b2Vzbid0IGNoYW5nZSBlaXRoZXIuICovCi0KLSAgICAgICAgICAgIGNhc2UgJy4nOgotICAgICAg
ICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gUkVRX1VOU0VUKQotICAgICAgICAgICAgICAgICAg
ICBmaXJzdEJ5dGUgPSBSRVFfTk9ORTsKLSAgICAgICAgICAgICAgICB6ZXJvRmlyc3RCeXRlID0g
Zmlyc3RCeXRlOwotICAgICAgICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAg
ICAgICAgICAgICBwcmV2aW91cyA9IGNvZGU7Ci0gICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9Q
X05PVF9ORVdMSU5FOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgLyogQ2hhcmFjdGVyIGNsYXNzZXMuIElmIHRoZSBpbmNsdWRlZCBjaGFyYWN0
ZXJzIGFyZSBhbGwgPCAyNTYsIHdlIGJ1aWxkIGEKLSAgICAgICAgICAgICAzMi1ieXRlIGJpdG1h
cCBvZiB0aGUgcGVybWl0dGVkIGNoYXJhY3RlcnMsIGV4Y2VwdCBpbiB0aGUgc3BlY2lhbCBjYXNl
Ci0gICAgICAgICAgICAgd2hlcmUgdGhlcmUgaXMgb25seSBvbmUgc3VjaCBjaGFyYWN0ZXIuIEZv
ciBuZWdhdGVkIGNsYXNzZXMsIHdlIGJ1aWxkIHRoZQotICAgICAgICAgICAgIG1hcCBhcyB1c3Vh
bCwgdGhlbiBpbnZlcnQgaXQgYXQgdGhlIGVuZC4gSG93ZXZlciwgd2UgdXNlIGEgZGlmZmVyZW50
IG9wY29kZQotICAgICAgICAgICAgIHNvIHRoYXQgZGF0YSBjaGFyYWN0ZXJzID4gMjU1IGNhbiBi
ZSBoYW5kbGVkIGNvcnJlY3RseS4KLSAgICAgICAgICAgICAKLSAgICAgICAgICAgICBJZiB0aGUg
Y2xhc3MgY29udGFpbnMgY2hhcmFjdGVycyBvdXRzaWRlIHRoZSAwLTI1NSByYW5nZSwgYSBkaWZm
ZXJlbnQKLSAgICAgICAgICAgICBvcGNvZGUgaXMgY29tcGlsZWQuIEl0IG1heSBvcHRpb25hbGx5
IGhhdmUgYSBiaXQgbWFwIGZvciBjaGFyYWN0ZXJzIDwgMjU2LAotICAgICAgICAgICAgIGJ1dCB0
aG9zZSBhYm92ZSBhcmUgYXJlIGV4cGxpY2l0bHkgbGlzdGVkIGFmdGVyd2FyZHMuIEEgZmxhZyBi
eXRlIHRlbGxzCi0gICAgICAgICAgICAgd2hldGhlciB0aGUgYml0bWFwIGlzIHByZXNlbnQsIGFu
ZCB3aGV0aGVyIHRoaXMgaXMgYSBuZWdhdGVkIGNsYXNzIG9yIG5vdC4KLSAgICAgICAgICAgICAq
LwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSAnWyc6IHsKLSAgICAgICAgICAg
ICAgICBwcmV2aW91cyA9IGNvZGU7Ci0gICAgICAgICAgICAgICAgc2hvdWxkRmxpcE5lZ2F0aW9u
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogUENSRSBzdXBw
b3J0cyBQT1NJWCBjbGFzcyBzdHVmZiBpbnNpZGUgYSBjbGFzcy4gUGVybCBnaXZlcyBhbiBlcnJv
ciBpZgotICAgICAgICAgICAgICAgICB0aGV5IGFyZSBlbmNvdW50ZXJlZCBhdCB0aGUgdG9wIGxl
dmVsLCBzbyB3ZSdsbCBkbyB0aGF0IHRvby4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAvKiBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIGlzICdeJywgc2V0IHRoZSBuZWdhdGlv
biBmbGFnIGFuZCBza2lwIGl0LiAqLwotCi0gICAgICAgICAgICAgICAgaWYgKHB0ciArIDEgPj0g
cGF0dGVybkVuZCkgewotICAgICAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJSNjsK
LSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGlmIChwdHJbMV0gPT0gJ14nKSB7Ci0gICAgICAgICAgICAgICAgICAg
IG5lZ2F0ZUNsYXNzID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgKytwdHI7Ci0gICAgICAg
ICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5lZ2F0ZUNsYXNzID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogS2VlcCBhIGNvdW50IG9mIGNo
YXJzIHdpdGggdmFsdWVzIDwgMjU2IHNvIHRoYXQgd2UgY2FuIG9wdGltaXplIHRoZSBjYXNlCi0g
ICAgICAgICAgICAgICAgIG9mIGp1c3QgYSBzaW5nbGUgY2hhcmFjdGVyIChhcyBsb25nIGFzIGl0
J3MgPCAyNTYpLiBGb3IgaGlnaGVyIHZhbHVlZCBVVEYtOAotICAgICAgICAgICAgICAgICBjaGFy
YWN0ZXJzLCB3ZSBkb24ndCB5ZXQgZG8gYW55IG9wdGltaXphdGlvbi4gKi8KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICBjbGFzc0NoYXJDb3VudCA9IDA7Ci0gICAgICAgICAgICAg
ICAgY2xhc3NMYXN0Q2hhciA9IC0xOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGNsYXNzX3V0ZjggPSBmYWxzZTsgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vIGNoYXJzID49
IDI1NiAqLwotICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhID0gY29kZSArIExJTktfU0la
RSArIDM0OyAgIC8qIEZvciBVVEYtOCBpdGVtcyAqLwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIC8qIEluaXRpYWxpemUgdGhlIDMyLWNoYXIgYml0IG1hcCB0byBhbGwgemVyb3Mu
IFdlIGhhdmUgdG8gYnVpbGQgdGhlCi0gICAgICAgICAgICAgICAgIG1hcCBpbiBhIHRlbXBvcmFy
eSBiaXQgb2Ygc3RvcmUsIGluIGNhc2UgdGhlIGNsYXNzIGNvbnRhaW5zIG9ubHkgMQotICAgICAg
ICAgICAgICAgICBjaGFyYWN0ZXIgKDwgMjU2KSwgYmVjYXVzZSBpbiB0aGF0IGNhc2UgdGhlIGNv
bXBpbGVkIGNvZGUgZG9lc24ndCB1c2UgdGhlCi0gICAgICAgICAgICAgICAgIGJpdCBtYXAuICov
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbWVtc2V0KGNsYXNzYml0cywgMCwg
MzIgKiBzaXplb2YodW5zaWduZWQgY2hhcikpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIFByb2Nlc3MgY2hhcmFjdGVycyB1bnRpbCBdIGlzIHJlYWNoZWQuIFRoZSBmaXJz
dCBwYXNzCi0gICAgICAgICAgICAgICAgIHRocm91Z2ggdGhlIHJlZ2V4IGNoZWNrZWQgdGhlIG92
ZXJhbGwgc3ludGF4LCBzbyB3ZSBkb24ndCBuZWVkIHRvIGJlIHZlcnkKLSAgICAgICAgICAgICAg
ICAgc3RyaWN0IGhlcmUuIEF0IHRoZSBzdGFydCBvZiB0aGUgbG9vcCwgYyBjb250YWlucyB0aGUg
Zmlyc3QgYnl0ZSBvZiB0aGUKLSAgICAgICAgICAgICAgICAgY2hhcmFjdGVyLiAqLwotCi0gICAg
ICAgICAgICAgICAgd2hpbGUgKCgrK3B0ciA8IHBhdHRlcm5FbmQpICYmIChjID0gKnB0cikgIT0g
J10nKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8qIEJhY2tzbGFzaCBtYXkgaW50cm9kdWNlIGEg
c2luZ2xlIGNoYXJhY3Rlciwgb3IgaXQgbWF5IGludHJvZHVjZSBvbmUKLSAgICAgICAgICAgICAg
ICAgICAgIG9mIHRoZSBzcGVjaWFscywgd2hpY2gganVzdCBzZXQgYSBmbGFnLiBFc2NhcGVkIGl0
ZW1zIGFyZSBjaGVja2VkIGZvcgotICAgICAgICAgICAgICAgICAgICAgdmFsaWRpdHkgaW4gdGhl
IHByZS1jb21waWxpbmcgcGFzcy4gVGhlIHNlcXVlbmNlIFxiIGlzIGEgc3BlY2lhbCBjYXNlLgot
ICAgICAgICAgICAgICAgICAgICAgSW5zaWRlIGEgY2xhc3MgKGFuZCBvbmx5IHRoZXJlKSBpdCBp
cyB0cmVhdGVkIGFzIGJhY2tzcGFjZS4gRWxzZXdoZXJlCi0gICAgICAgICAgICAgICAgICAgICBp
dCBtYXJrcyBhIHdvcmQgYm91bmRhcnkuIE90aGVyIGVzY2FwZXMgaGF2ZSBwcmVzZXQgbWFwcyBy
ZWFkeSB0bwotICAgICAgICAgICAgICAgICAgICAgb3IgaW50byB0aGUgb25lIHdlIGFyZSBidWls
ZGluZy4gV2UgYXNzdW1lIHRoZXkgaGF2ZSBtb3JlIHRoYW4gb25lCi0gICAgICAgICAgICAgICAg
ICAgICBjaGFyYWN0ZXIgaW4gdGhlbSwgc28gc2V0IGNsYXNzQ2hhckNvdW50IGJpZ2dlciB0aGFu
IG9uZS4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChj
ID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGVja0VzY2FwZSgmcHRy
LCBwYXR0ZXJuRW5kLCBlcnJvckNvZGVQdHIsIGNkLm51bUNhcHR1cmluZ0JyYWNrZXRzLCB0cnVl
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjIDwgMCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzQ2hhckNvdW50ICs9IDI7ICAgICAvKiBHcmVhdGVyIHRoYW4gMSBp
cyB3aGF0IG1hdHRlcnMgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKC1j
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRVNDX2Q6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGMgPSAwOyBjIDwgMzI7IGMrKykKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbY10gfD0gY2xh
c3NCaXRtYXBGb3JDaGFyKGMgKyBjYml0X2RpZ2l0KTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgRVNDX0Q6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRGbGlwTmVnYXRpb24gPSB0cnVlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChjID0gMDsgYyA8IDMyOyBj
KyspCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2Nd
IHw9IH5jbGFzc0JpdG1hcEZvckNoYXIoYyArIGNiaXRfZGlnaXQpOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBFU0NfdzoK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsg
YysrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzYml0c1tj
XSB8PSBjbGFzc0JpdG1hcEZvckNoYXIoYyArIGNiaXRfd29yZCk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEVTQ19XOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRmxpcE5lZ2F0aW9uID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMg
PCAzMjsgYysrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNz
Yml0c1tjXSB8PSB+Y2xhc3NCaXRtYXBGb3JDaGFyKGMgKyBjYml0X3dvcmQpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBF
U0NfczoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMg
PCAzMjsgYysrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFz
c2JpdHNbY10gfD0gY2xhc3NCaXRtYXBGb3JDaGFyKGMgKyBjYml0X3NwYWNlKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2Ug
RVNDX1M6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRGbGlwTmVn
YXRpb24gPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChj
ID0gMDsgYyA8IDMyOyBjKyspCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzYml0c1tjXSB8PSB+Y2xhc3NCaXRtYXBGb3JDaGFyKGMgKyBjYml0X3NwYWNlKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBVbnJlY29nbml6ZWQgZXNjYXBlcyBhcmUgZmF1bHRlZCBpZiBQQ1JFIGlzIHJ1
bm5pbmcgaW4gaXRzCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaWN0
IG1vZGUuIEJ5IGRlZmF1bHQsIGZvciBjb21wYXRpYmlsaXR5IHdpdGggUGVybCwgdGhleSBhcmUK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmVhdGVkIGFzIGxpdGVyYWxz
LiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjID0gKnB0cjsgICAgICAgICAgICAgIC8qIFRoZSBmaW5hbCBjaGFyYWN0ZXIgKi8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzQ2hhckNvdW50IC09IDI7
ICAvKiBVbmRvIHRoZSBkZWZhdWx0IGNvdW50IGZyb20gYWJvdmUgKi8KLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIEZhbGwgdGhyb3VnaCBpZiB3
ZSBoYXZlIGEgc2luZ2xlIGNoYXJhY3RlciAoYyA+PSAwKS4gVGhpcyBtYXkgYmUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICA+IDI1NiBpbiBVVEYtOCBtb2RlLiAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIH0gICAvKiBFbmQgb2YgYmFja3NsYXNoIGhh
bmRsaW5nICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBB
IHNpbmdsZSBjaGFyYWN0ZXIgbWF5IGJlIGZvbGxvd2VkIGJ5ICctJyB0byBmb3JtIGEgcmFuZ2Uu
IEhvd2V2ZXIsCi0gICAgICAgICAgICAgICAgICAgICBQZXJsIGRvZXMgbm90IHBlcm1pdCAnXScg
dG8gYmUgdGhlIGVuZCBvZiB0aGUgcmFuZ2UuIEEgJy0nIGNoYXJhY3RlcgotICAgICAgICAgICAg
ICAgICAgICAgaGVyZSBpcyB0cmVhdGVkIGFzIGEgbGl0ZXJhbC4gKi8KLSAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmICgocHRyICsgMiA8IHBhdHRlcm5FbmQpICYm
IHB0clsxXSA9PSAnLScgJiYgcHRyWzJdICE9ICddJykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgcHRyICs9IDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBkID0gKnB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgLyogVGhlIHNlY29uZCBwYXJ0IG9mIGEgcmFuZ2UgY2FuIGJlIGEgc2lu
Z2xlLWNoYXJhY3RlciBlc2NhcGUsIGJ1dAotICAgICAgICAgICAgICAgICAgICAgICAgIG5vdCBh
bnkgb2YgdGhlIG90aGVyIGVzY2FwZXMuIFBlcmwgNS42IHRyZWF0cyBhIGh5cGhlbiBhcyBhIGxp
dGVyYWwKLSAgICAgICAgICAgICAgICAgICAgICAgICBpbiBzdWNoIGNpcmN1bXN0YW5jZXMuICov
Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChk
ID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBVQ2hhciogb2xk
cHRyID0gcHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBjaGVja0VzY2FwZSgm
cHRyLCBwYXR0ZXJuRW5kLCBlcnJvckNvZGVQdHIsIGNkLm51bUNhcHR1cmluZ0JyYWNrZXRzLCB0
cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAvKiBcWCBpcyBsaXRlcmFsIFg7IGFueSBvdGhlciBzcGVjaWFsIG1lYW5zIHRoZSAn
LScgd2FzIGxpdGVyYWwgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZCA8IDAp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gb2xkcHRyIC0gMjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBMT05FX1NJTkdMRV9DSEFSQUNURVI7
ICAvKiBBIGZldyBsaW5lcyBiZWxvdyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgLyogVGhlIGNoZWNrIHRoYXQgdGhlIHR3byB2YWx1ZXMgYXJl
IGluIHRoZSBjb3JyZWN0IG9yZGVyIGhhcHBlbnMgaW4KLSAgICAgICAgICAgICAgICAgICAgICAg
ICB0aGUgcHJlLXBhc3MuIE9wdGltaXplIG9uZS1jaGFyYWN0ZXIgcmFuZ2VzICovCi0gICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkID09IGMpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBMT05FX1NJTkdMRV9DSEFSQUNURVI7ICAv
KiBBIGZldyBsaW5lcyBiZWxvdyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAvKiBJbiBVVEYtOCBtb2RlLCBpZiB0aGUgdXBwZXIgbGltaXQgaXMg
PiAyNTUsIG9yID4gMTI3IGZvciBjYXNlbGVzcwotICAgICAgICAgICAgICAgICAgICAgICAgIG1h
dGNoaW5nLCB3ZSBoYXZlIHRvIHVzZSBhbiBYQ0xBU1Mgd2l0aCBleHRyYSBkYXRhIGl0ZW1zLiBD
YXNlbGVzcwotICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoaW5nIGZvciBjaGFyYWN0ZXJz
ID4gMTI3IGlzIGF2YWlsYWJsZSBvbmx5IGlmIFVDUCBzdXBwb3J0IGlzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgYXZhaWxhYmxlLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoKGQgPiAyNTUgfHwgKChvcHRpb25zICYgSWdub3JlQ2Fz
ZU9wdGlvbikgJiYgZCA+IDEyNykpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xh
c3NfdXRmOCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLyogV2l0aCBVQ1Agc3VwcG9ydCwgd2UgY2FuIGZpbmQgdGhlIG90
aGVyIGNhc2UgZXF1aXZhbGVudHMgb2YKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhl
IHJlbGV2YW50IGNoYXJhY3RlcnMuIFRoZXJlIG1heSBiZSBzZXZlcmFsIHJhbmdlcy4gT3B0aW1p
emUgaG93Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZXkgZml0IHdpdGggdGhlIGJh
c2ljIHJhbmdlLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChvcHRpb25zICYgSWdub3JlQ2FzZU9wdGlvbikgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2NjLCBvY2Q7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGludCBjYyA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBvcmlnZCA9IGQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxl
IChnZXRPdGhlcmNhc2VSYW5nZSgmY2MsIG9yaWdkLCAmb2NjLCAmb2NkKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9jYyA+PSBjICYmIG9jZCA8PSBkKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAgLyogU2tpcCBl
bWJlZGRlZCByYW5nZXMgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9jYyA8IGMgICYmIG9jZCA+
PSBjIC0gMSkgICAgICAgIC8qIEV4dGVuZCB0aGUgYmFzaWMgcmFuZ2UgKi8KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLyogaWYgdGhlcmUgaXMgb3ZlcmxhcCwgICAqLwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGMgPSBvY2M7ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogbm90
aW5nIHRoYXQgaWYgb2NjIDwgYyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2UgY2FuJ3QgaGF2
ZSBvY2QgPiBkICAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBiZWNhdXNlIGEgc3VicmFuZ2UgaXMgICov
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2NkID4gZCAmJiBvY2Mg
PD0gZCArIDEpICAgICAgICAgLyogYWx3YXlzIHNob3J0ZXIgdGhhbiAgICAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAvKiB0aGUgYmFzaWMgcmFuZ2UuICAgICAgICovCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZCA9IG9jZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKG9jYyA9PSBvY2QpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfU0lOR0xFOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfUkFOR0U7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NfdXRmOGRhdGEgKz0g
ZW5jb2RlVVRGOChvY2MsIGNsYXNzX3V0ZjhkYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNz
X3V0ZjhkYXRhICs9IGVuY29kZVVURjgob2NkLCBjbGFzc191dGY4ZGF0YSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
LyogTm93IHJlY29yZCB0aGUgb3JpZ2luYWwgcmFuZ2UsIHBvc3NpYmx5IG1vZGlmaWVkIGZvciBV
Q1AgY2FzZWxlc3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmxhcHBpbmcgcmFu
Z2VzLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX1JBTkdFOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IGVuY29kZVVURjgoYywgY2xhc3NfdXRmOGRh
dGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjhkYXRhICs9IGVuY29k
ZVVURjgoZCwgY2xhc3NfdXRmOGRhdGEpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFdpdGggVUNQIHN1cHBvcnQsIHdlIGFyZSBk
b25lLiBXaXRob3V0IFVDUCBzdXBwb3J0LCB0aGVyZSBpcyBubwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjYXNlbGVzcyBtYXRjaGluZyBmb3IgVVRGLTggY2hhcmFjdGVycyA+IDEyNzsg
d2UgY2FuIHVzZSB0aGUgYml0IG1hcAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Ig
dGhlIHNtYWxsZXIgb25lcy4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgLyogV2l0aCBuZXh0IGNoYXJhY3Rl
ciBpbiB0aGUgY2xhc3MgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgdXNlIHRoZSBiaXQg
bWFwIGZvciBhbGwgY2FzZXMgd2hlbiBub3QgaW4gVVRGLTggbW9kZTsgZWxzZQotICAgICAgICAg
ICAgICAgICAgICAgICAgIHJhbmdlcyB0aGF0IGxpZSBlbnRpcmVseSB3aXRoaW4gMC0xMjcgd2hl
biB0aGVyZSBpcyBVQ1Agc3VwcG9ydDsgZWxzZQotICAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciBwYXJ0aWFsIHJhbmdlcyB3aXRob3V0IFVDUCBzdXBwb3J0LiAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKDsgYyA8PSBkOyBjKyspIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbYy84XSB8PSAoMSA8PCAoYyY3
KSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBJZ25vcmVDYXNl
T3B0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB1YyA9IGZsaXBD
YXNlKGMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc2JpdHNbdWMvOF0g
fD0gKDEgPDwgKHVjJjcpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY2xhc3NDaGFyQ291bnQrKzsgICAgICAgICAgICAgICAgLyog
aW4gY2FzZSBhIG9uZS1jaGFyIHJhbmdlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2xhc3NMYXN0Q2hhciA9IGM7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOyAgIC8qIEdv
IGdldCB0aGUgbmV4dCBjaGFyIGluIHRoZSBjbGFzcyAqLwotICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgYSBs
b25lIHNpbmdsZSBjaGFyYWN0ZXIgLSB3ZSBjYW4gZ2V0IGhlcmUgZm9yIGEgbm9ybWFsCi0gICAg
ICAgICAgICAgICAgICAgICBub24tZXNjYXBlIGNoYXIsIG9yIGFmdGVyIFwgdGhhdCBpbnRyb2R1
Y2VzIGEgc2luZ2xlIGNoYXJhY3RlciBvciBmb3IgYW4KLSAgICAgICAgICAgICAgICAgICAgIGFw
cGFyZW50IHJhbmdlIHRoYXQgaXNuJ3QuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgIExPTkVfU0lOR0xFX0NIQVJBQ1RFUjoKLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBhIGNoYXJhY3RlciB0aGF0IGNhbm5vdCBnbyBp
biB0aGUgYml0IG1hcCAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKChjID4gMjU1IHx8ICgob3B0aW9ucyAmIElnbm9yZUNhc2VPcHRpb24pICYmIGMgPiAx
MjcpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NfdXRmOCA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAqY2xhc3NfdXRmOGRhdGErKyA9IFhDTF9TSU5HTEU7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBlbmNvZGVVVEY4KGMsIGNsYXNz
X3V0ZjhkYXRhKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKG9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0aW9uKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW50IG90aGVyY2FzZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoKG90aGVyY2FzZSA9IGpzY19wY3JlX3VjcF9vdGhlcmNhc2UoYykpID49IDApIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNsYXNzX3V0ZjhkYXRhKysgPSBYQ0xfU0lOR0xF
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc191dGY4ZGF0YSArPSBlbmNv
ZGVVVEY4KG90aGVyY2FzZSwgY2xhc3NfdXRmOGRhdGEpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBhIHNpbmdsZS1ieXRl
IGNoYXJhY3RlciAqLwotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NiaXRzW2MvOF0gfD0g
KDEgPDwgKGMmNykpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wdGlvbnMgJiBJZ25v
cmVDYXNlT3B0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGZsaXBDYXNl
KGMpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzYml0c1tjLzhdIHw9ICgxIDw8
IChjJjcpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNsYXNzQ2hhckNvdW50Kys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc0xhc3RD
aGFyID0gYzsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBjbGFzc0NoYXJDb3VudCBpcyAxLCB3
ZSBzYXcgcHJlY2lzZWx5IG9uZSBjaGFyYWN0ZXIgd2hvc2UgdmFsdWUgaXMKLSAgICAgICAgICAg
ICAgICAgbGVzcyB0aGFuIDI1Ni4gSW4gbm9uLVVURi04IG1vZGUgd2UgY2FuIGFsd2F5cyBvcHRp
bWl6ZS4gSW4gVVRGLTggbW9kZSwgd2UKLSAgICAgICAgICAgICAgICAgY2FuIG9wdGltaXplIHRo
ZSBuZWdhdGl2ZSBjYXNlIG9ubHkgaWYgdGhlcmUgd2VyZSBubyBjaGFyYWN0ZXJzID49IDEyOAot
ICAgICAgICAgICAgICAgICBiZWNhdXNlIE9QX05PVCBhbmQgdGhlIHJlbGF0ZWQgb3Bjb2RlcyBs
aWtlIE9QX05PVFNUQVIgb3BlcmF0ZSBvbgotICAgICAgICAgICAgICAgICBzaW5nbGUtYnl0ZXMg
b25seS4gVGhpcyBpcyBhbiBoaXN0b3JpY2FsIGhhbmdvdmVyLiBNYXliZSBvbmUgZGF5IHdlIGNh
bgotICAgICAgICAgICAgICAgICB0aWR5IHRoZXNlIG9wY29kZXMgdG8gaGFuZGxlIG11bHRpLWJ5
dGUgY2hhcmFjdGVycy4KLSAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgIFRoZSBv
cHRpbWl6YXRpb24gdGhyb3dzIGF3YXkgdGhlIGJpdCBtYXAuIFdlIHR1cm4gdGhlIGl0ZW0gaW50
byBhCi0gICAgICAgICAgICAgICAgIDEtY2hhcmFjdGVyIE9QX0NIQVJbTkNdIGlmIGl0J3MgcG9z
aXRpdmUsIG9yIE9QX05PVCBpZiBpdCdzIG5lZ2F0aXZlLiBOb3RlCi0gICAgICAgICAgICAgICAg
IHRoYXQgT1BfTk9UIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlieXRlIGNoYXJhY3RlcnMuIEluIHRo
ZSBwb3NpdGl2ZSBjYXNlLCBpdAotICAgICAgICAgICAgICAgICBjYW4gY2F1c2UgZmlyc3RCeXRl
IHRvIGJlIHNldC4gT3RoZXJ3aXNlLCB0aGVyZSBjYW4gYmUgbm8gZmlyc3QgY2hhciBpZgotICAg
ICAgICAgICAgICAgICB0aGlzIGl0ZW0gaXMgZmlyc3QsIHdoYXRldmVyIHJlcGVhdCBjb3VudCBt
YXkgZm9sbG93LiBJbiB0aGUgY2FzZSBvZgotICAgICAgICAgICAgICAgICByZXFCeXRlLCBzYXZl
IHRoZSBwcmV2aW91cyB2YWx1ZSBmb3IgcmVpbnN0YXRpbmcuICovCi0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgaWYgKGNsYXNzQ2hhckNvdW50ID09IDEgJiYgKCFjbGFzc191dGY4
ICYmICghbmVnYXRlQ2xhc3MgfHwgY2xhc3NMYXN0Q2hhciA8IDEyOCkpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIC8qIFRoZSBPUF9OT1Qgb3Bjb2RlIHdvcmtzIG9uIG9uZS1ieXRl
IGNoYXJhY3RlcnMgb25seS4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIGlmIChuZWdhdGVDbGFzcykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZp
cnN0Qnl0ZSA9PSBSRVFfVU5TRVQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RC
eXRlID0gUkVRX05PTkU7Ci0gICAgICAgICAgICAgICAgICAgICAgICB6ZXJvRmlyc3RCeXRlID0g
Zmlyc3RCeXRlOwotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX05PVDsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBjbGFzc0xhc3RDaGFyOwotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIEZvciBhIHNpbmdsZSwgcG9zaXRpdmUg
Y2hhcmFjdGVyLCBnZXQgdGhlIHZhbHVlIGludG8gYywgYW5kCi0gICAgICAgICAgICAgICAgICAg
ICB0aGVuIHdlIGNhbiBoYW5kbGUgdGhpcyB3aXRoIHRoZSBub3JtYWwgb25lLWNoYXJhY3RlciBj
b2RlLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgYyA9IGNs
YXNzTGFzdENoYXI7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gTk9STUFMX0NIQVI7Ci0gICAg
ICAgICAgICAgICAgfSAgICAgICAvKiBFbmQgb2YgMS1jaGFyIG9wdGltaXphdGlvbiAqLwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFRoZSBnZW5lcmFsIGNhc2UgLSBub3Qg
dGhlIG9uZS1jaGFyIG9wdGltaXphdGlvbi4gSWYgdGhpcyBpcyB0aGUgZmlyc3QKLSAgICAgICAg
ICAgICAgICAgdGhpbmcgaW4gdGhlIGJyYW5jaCwgdGhlcmUgY2FuIGJlIG5vIGZpcnN0IGNoYXIg
c2V0dGluZywgd2hhdGV2ZXIgdGhlCi0gICAgICAgICAgICAgICAgIHJlcGVhdCBjb3VudC4gQW55
IHJlcUJ5dGUgc2V0dGluZyBtdXN0IHJlbWFpbiB1bmNoYW5nZWQgYWZ0ZXIgYW55IGtpbmQgb2YK
LSAgICAgICAgICAgICAgICAgcmVwZWF0LiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gUkVRX1VOU0VUKSBmaXJzdEJ5dGUgPSBSRVFfTk9ORTsK
LSAgICAgICAgICAgICAgICB6ZXJvRmlyc3RCeXRlID0gZmlyc3RCeXRlOwotICAgICAgICAgICAg
ICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
ICAgICAvKiBJZiB0aGVyZSBhcmUgY2hhcmFjdGVycyB3aXRoIHZhbHVlcyA+IDI1NSwgd2UgaGF2
ZSB0byBjb21waWxlIGFuCi0gICAgICAgICAgICAgICAgIGV4dGVuZGVkIGNsYXNzLCB3aXRoIGl0
cyBvd24gb3Bjb2RlLiBJZiB0aGVyZSBhcmUgbm8gY2hhcmFjdGVycyA8IDI1NiwKLSAgICAgICAg
ICAgICAgICAgd2UgY2FuIG9taXQgdGhlIGJpdG1hcC4gKi8KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBpZiAoY2xhc3NfdXRmOCAmJiAhc2hvdWxkRmxpcE5lZ2F0aW9uKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICpjbGFzc191dGY4ZGF0YSsrID0gWENMX0VORDsgICAgLyogTWFy
a3MgdGhlIGVuZCBvZiBleHRyYSBkYXRhICovCi0gICAgICAgICAgICAgICAgICAgICpjb2RlKysg
PSBPUF9YQ0xBU1M7Ci0gICAgICAgICAgICAgICAgICAgIGNvZGUgKz0gTElOS19TSVpFOwotICAg
ICAgICAgICAgICAgICAgICAqY29kZSA9IG5lZ2F0ZUNsYXNzPyBYQ0xfTk9UIDogMDsKLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXAgaXMgcmVx
dWlyZWQsIGluc3RhbGwgaXQsIGFuZCBtb3ZlIG9uIHRvIHRoZSBlbmQgb2YKLSAgICAgICAgICAg
ICAgICAgICAgIHRoZSBleHRyYSBkYXRhICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICBpZiAoY2xhc3NDaGFyQ291bnQgPiAwKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAqY29kZSsrIHw9IFhDTF9NQVA7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZW1j
cHkoY29kZSwgY2xhc3NiaXRzLCAzMik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb2RlID0g
Y2xhc3NfdXRmOGRhdGE7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXAgaXMgbm90IHJlcXVpcmVkLCBz
bGlkZSBkb3duIHRoZSBleHRyYSBkYXRhLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgbGVuID0g
Y2xhc3NfdXRmOGRhdGEgLSAoY29kZSArIDMzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIG1l
bW1vdmUoY29kZSArIDEsIGNvZGUgKyAzMywgbGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNvZGUgKz0gbGVuICsgMTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogTm93IGZpbGwgaW4gdGhlIGNvbXBsZXRlIGxl
bmd0aCBvZiB0aGUgaXRlbSAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgcHV0TGlua1ZhbHVlKHByZXZpb3VzICsgMSwgY29kZSAtIHByZXZpb3VzKTsKLSAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7ICAgLyogRW5kIG9mIGNsYXNzIGhhbmRsaW5nICovCi0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIHRo
ZXJlIGFyZSBubyBjaGFyYWN0ZXJzID4gMjU1LCBuZWdhdGUgdGhlIDMyLWJ5dGUgbWFwIGlmIG5l
Y2Vzc2FyeSwKLSAgICAgICAgICAgICAgICAgYW5kIGNvcHkgaXQgaW50byB0aGUgY29kZSB2ZWN0
b3IuIElmIHRoaXMgaXMgdGhlIGZpcnN0IHRoaW5nIGluIHRoZSBicmFuY2gsCi0gICAgICAgICAg
ICAgICAgIHRoZXJlIGNhbiBiZSBubyBmaXJzdCBjaGFyIHNldHRpbmcsIHdoYXRldmVyIHRoZSBy
ZXBlYXQgY291bnQuIEFueSByZXFCeXRlCi0gICAgICAgICAgICAgICAgIHNldHRpbmcgbXVzdCBy
ZW1haW4gdW5jaGFuZ2VkIGFmdGVyIGFueSBraW5kIG9mIHJlcGVhdC4gKi8KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAqY29kZSsrID0gKG5lZ2F0ZUNsYXNzID09IHNob3VsZEZs
aXBOZWdhdGlvbikgPyBPUF9DTEFTUyA6IE9QX05DTEFTUzsKLSAgICAgICAgICAgICAgICBpZiAo
bmVnYXRlQ2xhc3MpCi0gICAgICAgICAgICAgICAgICAgIGZvciAoYyA9IDA7IGMgPCAzMjsgYysr
KQotICAgICAgICAgICAgICAgICAgICAgICAgY29kZVtjXSA9IH5jbGFzc2JpdHNbY107Ci0gICAg
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgY2xhc3Ni
aXRzLCAzMik7Ci0gICAgICAgICAgICAgICAgY29kZSArPSAzMjsKLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIFZh
cmlvdXMga2luZHMgb2YgcmVwZWF0OyAneycgaXMgbm90IG5lY2Vzc2FyaWx5IGEgcXVhbnRpZmll
ciwgYnV0IHRoaXMKLSAgICAgICAgICAgICBoYXMgYmVlbiB0ZXN0ZWQgYWJvdmUuICovCi0KLSAg
ICAgICAgICAgIGNhc2UgJ3snOgotICAgICAgICAgICAgICAgIGlmICghaXNRdWFudGlmaWVyKQot
ICAgICAgICAgICAgICAgICAgICBnb3RvIE5PUk1BTF9DSEFSOwotICAgICAgICAgICAgICAgIHB0
ciA9IHJlYWRSZXBlYXRDb3VudHMocHRyICsgMSwgJnJlcGVhdE1pbiwgJnJlcGVhdF9tYXgsIGVy
cm9yQ29kZVB0cik7Ci0gICAgICAgICAgICAgICAgaWYgKCplcnJvckNvZGVQdHIpCi0gICAgICAg
ICAgICAgICAgICAgIGdvdG8gRkFJTEVEOwotICAgICAgICAgICAgICAgIGdvdG8gUkVQRUFUOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgY2FzZSAnKic6Ci0gICAgICAgICAgICAgICAg
cmVwZWF0TWluID0gMDsKLSAgICAgICAgICAgICAgICByZXBlYXRfbWF4ID0gLTE7Ci0gICAgICAg
ICAgICAgICAgZ290byBSRVBFQVQ7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNl
ICcrJzoKLSAgICAgICAgICAgICAgICByZXBlYXRNaW4gPSAxOwotICAgICAgICAgICAgICAgIHJl
cGVhdF9tYXggPSAtMTsKLSAgICAgICAgICAgICAgICBnb3RvIFJFUEVBVDsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIGNhc2UgJz8nOgotICAgICAgICAgICAgICAgIHJlcGVhdE1pbiA9
IDA7Ci0gICAgICAgICAgICAgICAgcmVwZWF0X21heCA9IDE7Ci0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICBSRVBFQVQ6Ci0gICAgICAgICAgICAgICAgaWYgKCFwcmV2aW91cykgewotICAg
ICAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJSOTsKLSAgICAgICAgICAgICAgICAg
ICAgZ290byBGQUlMRUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIGlmIChyZXBlYXRNaW4gPT0gMCkgewotICAgICAgICAgICAgICAgICAgICBm
aXJzdEJ5dGUgPSB6ZXJvRmlyc3RCeXRlOyAgICAvKiBBZGp1c3QgZm9yIHplcm8gcmVwZWF0ICov
Ci0gICAgICAgICAgICAgICAgICAgIHJlcUJ5dGUgPSB6ZXJvUmVxQnl0ZTsgICAgICAgIC8qIERp
dHRvICovCi0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIC8qIFJlbWVtYmVyIHdoZXRoZXIgdGhpcyBpcyBhIHZhcmlhYmxlIGxlbmd0aCByZXBlYXQg
Ki8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICByZXF2YXJ5ID0gKHJlcGVhdE1p
biA9PSByZXBlYXRfbWF4KSA/IDAgOiBSRVFfVkFSWTsKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBvcFR5cGUgPSAwOyAgICAgICAgICAgICAgICAgICAgLyogRGVmYXVsdCBzaW5n
bGUtY2hhciBvcCBjb2RlcyAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8q
IFNhdmUgc3RhcnQgb2YgcHJldmlvdXMgaXRlbSwgaW4gY2FzZSB3ZSBoYXZlIHRvIG1vdmUgaXQg
dXAgdG8gbWFrZSBzcGFjZQotICAgICAgICAgICAgICAgICBmb3IgYW4gaW5zZXJ0ZWQgT1BfT05D
RSBmb3IgdGhlIGFkZGl0aW9uYWwgJysnIGV4dGVuc2lvbi4gKi8KLSAgICAgICAgICAgICAgICAv
KiBGSVhNRTogUHJvYmFibHkgZG9uJ3QgbmVlZCB0aGlzIGJlY2F1c2Ugd2UgZG9uJ3QgdXNlIE9Q
X09OQ0UuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgdGVtcGNvZGUgPSBw
cmV2aW91czsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiB0aGUgbmV4
dCBjaGFyYWN0ZXIgaXMgJysnLCB3ZSBoYXZlIGEgcG9zc2Vzc2l2ZSBxdWFudGlmaWVyLiBUaGlz
Ci0gICAgICAgICAgICAgICAgIGltcGxpZXMgZ3JlZWRpbmVzcywgd2hhdGV2ZXIgdGhlIHNldHRp
bmcgb2YgdGhlIFBDUkVfVU5HUkVFRFkgb3B0aW9uLgotICAgICAgICAgICAgICAgICBJZiB0aGUg
bmV4dCBjaGFyYWN0ZXIgaXMgJz8nIHRoaXMgaXMgYSBtaW5pbWl6aW5nIHJlcGVhdCwgYnkgZGVm
YXVsdCwKLSAgICAgICAgICAgICAgICAgYnV0IGlmIFBDUkVfVU5HUkVFRFkgaXMgc2V0LCBpdCB3
b3JrcyB0aGUgb3RoZXIgd2F5IHJvdW5kLiBXZSBjaGFuZ2UgdGhlCi0gICAgICAgICAgICAgICAg
IHJlcGVhdCB0eXBlIHRvIHRoZSBub24tZGVmYXVsdC4gKi8KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICc/
JykpIHsKLSAgICAgICAgICAgICAgICAgICAgcmVwZWF0VHlwZSA9IDE7Ci0gICAgICAgICAgICAg
ICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgICAg
ICByZXBlYXRUeXBlID0gMDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJ
ZiBwcmV2aW91cyB3YXMgYSBjaGFyYWN0ZXIgbWF0Y2gsIGFib2xpc2ggdGhlIGl0ZW0gYW5kIGdl
bmVyYXRlIGEKLSAgICAgICAgICAgICAgICAgcmVwZWF0IGl0ZW0gaW5zdGVhZC4gSWYgYSBjaGFy
IGl0ZW0gaGFzIGEgbWludW11bSBvZiBtb3JlIHRoYW4gb25lLCBlbnN1cmUKLSAgICAgICAgICAg
ICAgICAgdGhhdCBpdCBpcyBzZXQgaW4gcmVxQnl0ZSAtIGl0IG1pZ2h0IG5vdCBiZSBpZiBhIHNl
cXVlbmNlIHN1Y2ggYXMgeHszfSBpcwotICAgICAgICAgICAgICAgICB0aGUgZmlyc3QgdGhpbmcg
aW4gYSBicmFuY2ggYmVjYXVzZSB0aGUgeCB3aWxsIGhhdmUgZ29uZSBpbnRvIGZpcnN0Qnl0ZQot
ICAgICAgICAgICAgICAgICBpbnN0ZWFkLiAgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBpZiAoKnByZXZpb3VzID09IE9QX0NIQVIgfHwgKnByZXZpb3VzID09IE9QX0NIQVJf
SUdOT1JJTkdfQ0FTRSkgewotICAgICAgICAgICAgICAgICAgICAvKiBEZWFsIHdpdGggVVRGLTgg
Y2hhcmFjdGVycyB0aGF0IHRha2UgdXAgbW9yZSB0aGFuIG9uZSBieXRlLiBJdCdzCi0gICAgICAg
ICAgICAgICAgICAgICBlYXNpZXIgdG8gd3JpdGUgdGhpcyBvdXQgc2VwYXJhdGVseSB0aGFuIHRy
eSB0byBtYWNyaWZ5IGl0LiBVc2UgYyB0bwotICAgICAgICAgICAgICAgICAgICAgaG9sZCB0aGUg
bGVuZ3RoIG9mIHRoZSBjaGFyYWN0ZXIgaW4gYnl0ZXMsIHBsdXMgMHg4MCB0byBmbGFnIHRoYXQg
aXQncyBhCi0gICAgICAgICAgICAgICAgICAgICBsZW5ndGggcmF0aGVyIHRoYW4gYSBzbWFsbCBj
aGFyYWN0ZXIuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBp
ZiAoY29kZVstMV0gJiAweDgwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyICpsYXN0Y2hhciA9IGNvZGUgLSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUo
KCpsYXN0Y2hhciAmIDB4YzApID09IDB4ODApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
bGFzdGNoYXItLTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjb2RlIC0gbGFzdGNoYXI7
ICAgICAgICAgICAgLyogTGVuZ3RoIG9mIFVURi04IGNoYXJhY3RlciAqLwotICAgICAgICAgICAg
ICAgICAgICAgICAgbWVtY3B5KHV0ZjhfY2hhciwgbGFzdGNoYXIsIGMpOyAvKiBTYXZlIHRoZSBj
aGFyICovCi0gICAgICAgICAgICAgICAgICAgICAgICBjIHw9IDB4ODA7ICAgICAgICAgICAgICAg
ICAgICAgIC8qIEZsYWcgYyBhcyBhIGxlbmd0aCAqLwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgYyA9IGNv
ZGVbLTFdOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdE1pbiA+IDEpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVxQnl0ZSA9IGMgfCByZXFDYXNlT3B0IHwgY2QucmVx
VmFyeU9wdDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgZ290byBPVVRQVVRfU0lOR0xFX1JFUEVBVDsgICAvKiBDb2RlIHNo
YXJlZCB3aXRoIHNpbmdsZSBjaGFyYWN0ZXIgdHlwZXMgKi8KLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoKnByZXZpb3VzID09IE9Q
X0FTQ0lJX0NIQVIgfHwgKnByZXZpb3VzID09IE9QX0FTQ0lJX0xFVFRFUl9JR05PUklOR19DQVNF
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGMgPSBwcmV2aW91c1sxXTsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHJlcGVhdE1pbiA+IDEpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXFCeXRl
ID0gYyB8IHJlcUNhc2VPcHQgfCBjZC5yZXFWYXJ5T3B0OwotICAgICAgICAgICAgICAgICAgICBn
b3RvIE9VVFBVVF9TSU5HTEVfUkVQRUFUOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBwcmV2aW91cyB3YXMgYSBzaW5nbGUgbmVnYXRl
ZCBjaGFyYWN0ZXIgKFteYV0gb3Igc2ltaWxhciksIHdlIHVzZQotICAgICAgICAgICAgICAgICBv
bmUgb2YgdGhlIHNwZWNpYWwgb3Bjb2RlcywgcmVwbGFjaW5nIGl0LiBUaGUgY29kZSBpcyBzaGFy
ZWQgd2l0aCBzaW5nbGUtCi0gICAgICAgICAgICAgICAgIGNoYXJhY3RlciByZXBlYXRzIGJ5IHNl
dHRpbmcgb3B0X3R5cGUgdG8gYWRkIGEgc3VpdGFibGUgb2Zmc2V0IGludG8KLSAgICAgICAgICAg
ICAgICAgcmVwZWF0VHlwZS4gT1BfTk9UIGlzIGN1cnJlbnRseSB1c2VkIG9ubHkgZm9yIHNpbmds
ZS1ieXRlIGNoYXJzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKCpwcmV2aW91cyA9PSBPUF9OT1QpIHsKLSAgICAgICAgICAgICAgICAgICAgb3BUeXBlID0g
T1BfTk9UU1RBUiAtIE9QX1NUQVI7ICAvKiBVc2UgIm5vdCIgb3Bjb2RlcyAqLwotICAgICAgICAg
ICAgICAgICAgICBjID0gcHJldmlvdXNbMV07Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gT1VU
UFVUX1NJTkdMRV9SRVBFQVQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIC8qIElmIHByZXZpb3VzIHdhcyBhIGNoYXJhY3RlciB0eXBlIG1hdGNo
IChcZCBvciBzaW1pbGFyKSwgYWJvbGlzaCBpdCBhbmQKLSAgICAgICAgICAgICAgICAgY3JlYXRl
IGEgc3VpdGFibGUgcmVwZWF0IGl0ZW0uIFRoZSBjb2RlIGlzIHNoYXJlZCB3aXRoIHNpbmdsZS1j
aGFyYWN0ZXIKLSAgICAgICAgICAgICAgICAgcmVwZWF0cyBieSBzZXR0aW5nIG9wVHlwZSB0byBh
ZGQgYSBzdWl0YWJsZSBvZmZzZXQgaW50byByZXBlYXRUeXBlLiAqLwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwcmV2aW91cyA8PSBPUF9OT1RfTkVXTElORSkg
ewotICAgICAgICAgICAgICAgICAgICBvcFR5cGUgPSBPUF9UWVBFU1RBUiAtIE9QX1NUQVI7ICAv
KiBVc2UgdHlwZSBvcGNvZGVzICovCi0gICAgICAgICAgICAgICAgICAgIGMgPSAqcHJldmlvdXM7
Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIE9VVFBVVF9TSU5HTEVfUkVQ
RUFUOgotICAgICAgICAgICAgICAgICAgICBpbnQgcHJvcF90eXBlID0gLTE7Ci0gICAgICAgICAg
ICAgICAgICAgIGludCBwcm9wX3ZhbHVlID0gLTE7Ci0gICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyKiBvbGRjb2RlID0gY29kZTsKLSAgICAgICAg
ICAgICAgICAgICAgY29kZSA9IHByZXZpb3VzOyAgICAgICAgICAgICAgICAgIC8qIFVzdWFsbHkg
b3ZlcndyaXRlIHByZXZpb3VzIGl0ZW0gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIC8qIElmIHRoZSBtYXhpbXVtIGlzIHplcm8gdGhlbiB0aGUgbWluaW11bSBt
dXN0IGFsc28gYmUgemVybzsgUGVybCBhbGxvd3MKLSAgICAgICAgICAgICAgICAgICAgIHRoaXMg
Y2FzZSwgc28gd2UgZG8gdG9vIC0gYnkgc2ltcGx5IG9taXR0aW5nIHRoZSBpdGVtIGFsdG9nZXRo
ZXIuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAocmVw
ZWF0X21heCA9PSAwKQotICAgICAgICAgICAgICAgICAgICAgICAgZ290byBFTkRfUkVQRUFUOwot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogQ29tYmluZSB0aGUg
b3BUeXBlIHdpdGggdGhlIHJlcGVhdFR5cGUgKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgIHJlcGVhdFR5cGUgKz0gb3BUeXBlOwotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgLyogQSBtaW5pbXVtIG9mIHplcm8gaXMgaGFuZGxlZCBl
aXRoZXIgYXMgdGhlIHNwZWNpYWwgY2FzZSAqIG9yID8sIG9yIGFzCi0gICAgICAgICAgICAgICAg
ICAgICBhbiBVUFRPLCB3aXRoIHRoZSBtYXhpbXVtIGdpdmVuLiAqLwotICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdE1pbiA9PSAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAtMSkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqY29kZSsrID0gT1BfU1RBUiArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBlbHNlIGlmIChyZXBlYXRfbWF4ID09IDEpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKmNvZGUrKyA9IE9QX1FVRVJZICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBP
UF9VUFRPICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXQyQnl0
ZVZhbHVlQW5kQWR2YW5jZShjb2RlLCByZXBlYXRfbWF4KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgLyogQSByZXBlYXQgbWluaW11bSBvZiAxIGlzIG9wdGltaXplZCBpbnRv
IHNvbWUgc3BlY2lhbCBjYXNlcy4gSWYgdGhlCi0gICAgICAgICAgICAgICAgICAgICBtYXhpbXVt
IGlzIHVubGltaXRlZCwgd2UgdXNlIE9QX1BMVVMuIE90aGVyd2lzZSwgdGhlIG9yaWdpbmFsIGl0
ZW0gaXQKLSAgICAgICAgICAgICAgICAgICAgIGxlZnQgaW4gcGxhY2UgYW5kLCBpZiB0aGUgbWF4
aW11bSBpcyBncmVhdGVyIHRoYW4gMSwgd2UgdXNlIE9QX1VQVE8gd2l0aAotICAgICAgICAgICAg
ICAgICAgICAgb25lIGxlc3MgdGhhbiB0aGUgbWF4aW11bS4gKi8KLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJlcGVhdE1pbiA9PSAxKSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAtMSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAqY29kZSsrID0gT1BfUExVUyArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlID0g
b2xkY29kZTsgICAgICAgICAgICAgICAgIC8qIGxlYXZlIHByZXZpb3VzIGl0ZW0gaW4gcGxhY2Ug
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA9PSAxKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnb3RvIEVORF9SRVBFQVQ7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX1VQVE8gKyByZXBlYXRUeXBlOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUsIHJlcGVh
dF9tYXggLSAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogVGhlIGNh
c2Uge24sbn0gaXMganVzdCBhbiBFWEFDVCwgd2hpbGUgdGhlIGdlbmVyYWwgY2FzZSB7bixtfSBp
cwotICAgICAgICAgICAgICAgICAgICAgaGFuZGxlZCBhcyBhbiBFWEFDVCBmb2xsb3dlZCBieSBh
biBVUFRPLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfRVhBQ1QgKyBvcFR5cGU7
ICAvKiBOQiBFWEFDVCBkb2Vzbid0IGhhdmUgcmVwZWF0VHlwZSAqLwotICAgICAgICAgICAgICAg
ICAgICAgICAgcHV0MkJ5dGVWYWx1ZUFuZEFkdmFuY2UoY29kZSwgcmVwZWF0TWluKTsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYgdGhlIG1h
eGltdW0gaXMgdW5saW1pdGVkLCBpbnNlcnQgYW4gT1BfU1RBUi4gQmVmb3JlIGRvaW5nIHNvLAot
ICAgICAgICAgICAgICAgICAgICAgICAgIHdlIGhhdmUgdG8gaW5zZXJ0IHRoZSBjaGFyYWN0ZXIg
Zm9yIHRoZSBwcmV2aW91cyBjb2RlLiBGb3IgYSByZXBlYXRlZAotICAgICAgICAgICAgICAgICAg
ICAgICAgIFVuaWNvZGUgcHJvcGVydHkgbWF0Y2gsIHRoZXJlIGFyZSB0d28gZXh0cmEgYnl0ZXMg
dGhhdCBkZWZpbmUgdGhlCi0gICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgcHJvcGVy
dHkuIEluIFVURi04IG1vZGUsIGxvbmcgY2hhcmFjdGVycyBoYXZlIHRoZWlyIGxlbmd0aCBpbgot
ICAgICAgICAgICAgICAgICAgICAgICAgIGMsIHdpdGggdGhlIDB4ODAgYml0IGFzIGEgZmxhZy4g
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHJlcGVhdF9tYXggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGMgPj0g
MTI4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweShjb2RlLCB1dGY4
X2NoYXIsIGMgJiA3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSArPSBj
ICYgNzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gYzsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHByb3BfdHlwZSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqY29kZSsrID0gcHJvcF90eXBlOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdmFsdWU7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX1NUQVIgKyByZXBlYXRUeXBlOwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAvKiBFbHNlIGluc2VydCBhbiBVUFRPIGlmIHRoZSBtYXggaXMgZ3JlYXRlciB0
aGFuIHRoZSBtaW4sIGFnYWluCi0gICAgICAgICAgICAgICAgICAgICAgICAgcHJlY2VkZWQgYnkg
dGhlIGNoYXJhY3RlciwgZm9yIHRoZSBwcmV2aW91c2x5IGluc2VydGVkIGNvZGUuICovCi0gICAg
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJl
cGVhdF9tYXggIT0gcmVwZWF0TWluKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGMgPj0gMTI4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweShjb2Rl
LCB1dGY4X2NoYXIsIGMgJiA3KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29k
ZSArPSBjICYgNzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IGM7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHByb3BfdHlwZSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICpjb2RlKysgPSBwcm9wX3R5cGU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICpjb2RlKysgPSBwcm9wX3ZhbHVlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXBlYXRfbWF4IC09IHJlcGVhdE1pbjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfVVBUTyArIHJlcGVhdFR5cGU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0MkJ5dGVWYWx1ZUFuZEFkdmFuY2UoY29k
ZSwgcmVwZWF0X21heCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIFRo
ZSBjaGFyYWN0ZXIgb3IgY2hhcmFjdGVyIHR5cGUgaXRzZWxmIGNvbWVzIGxhc3QgaW4gYWxsIGNh
c2VzLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKGMg
Pj0gMTI4KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBtZW1jcHkoY29kZSwgdXRmOF9jaGFy
LCBjICYgNyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb2RlICs9IGMgJiA3OwotICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSBj
OwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogRm9yIGEgcmVw
ZWF0ZWQgVW5pY29kZSBwcm9wZXJ0eSBtYXRjaCwgdGhlcmUgYXJlIHR3byBleHRyYSBieXRlcyB0
aGF0Ci0gICAgICAgICAgICAgICAgICAgICBkZWZpbmUgdGhlIHJlcXVpcmVkIHByb3BlcnR5LiAq
LwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BfdHlw
ZSA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gcHJvcF90eXBlOwot
ICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IHByb3BfdmFsdWU7Ci0gICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgLyogSWYgcHJldmlvdXMgd2FzIGEgY2hhcmFjdGVyIGNsYXNzIG9yIGEgYmFjayBy
ZWZlcmVuY2UsIHdlIHB1dCB0aGUgcmVwZWF0Ci0gICAgICAgICAgICAgICAgIHN0dWZmIGFmdGVy
IGl0LCBidXQganVzdCBza2lwIHRoZSBpdGVtIGlmIHRoZSByZXBlYXQgd2FzIHswLDB9LiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwcmV2aW91cyA9PSBP
UF9DTEFTUyB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICpwcmV2aW91cyA9PSBPUF9OQ0xB
U1MgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAqcHJldmlvdXMgPT0gT1BfWENMQVNTIHx8
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgKnByZXZpb3VzID09IE9QX1JFRikKLSAgICAgICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRfbWF4ID09IDApIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNvZGUgPSBwcmV2aW91czsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGdvdG8gRU5EX1JFUEVBVDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdE1pbiA9PSAwICYmIHJl
cGVhdF9tYXggPT0gLTEpCi0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfQ1JT
VEFSICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAocmVwZWF0TWlu
ID09IDEgJiYgcmVwZWF0X21heCA9PSAtMSkKLSAgICAgICAgICAgICAgICAgICAgICAgICpjb2Rl
KysgPSBPUF9DUlBMVVMgKyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlm
IChyZXBlYXRNaW4gPT0gMCAmJiByZXBlYXRfbWF4ID09IDEpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAqY29kZSsrID0gT1BfQ1JRVUVSWSArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0NSUkFOR0Ug
KyByZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgICAgICAgICAgcHV0MkJ5dGVWYWx1ZUFuZEFk
dmFuY2UoY29kZSwgcmVwZWF0TWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBl
YXRfbWF4ID09IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdF9tYXggPSAw
OyAgLyogMi1ieXRlIGVuY29kaW5nIGZvciBtYXggKi8KLSAgICAgICAgICAgICAgICAgICAgICAg
IHB1dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUsIHJlcGVhdF9tYXgpOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIElmIHByZXZpb3VzIHdhcyBhIGJyYWNrZXQgZ3JvdXAsIHdlIG1heSBoYXZlIHRv
IHJlcGxpY2F0ZSBpdCBpbiBjZXJ0YWluCi0gICAgICAgICAgICAgICAgIGNhc2VzLiAqLwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGVsc2UgaWYgKCpwcmV2aW91cyA+PSBPUF9C
UkEpIHsKLSAgICAgICAgICAgICAgICAgICAgaW50IGtldG9mZnNldCA9IDA7Ci0gICAgICAgICAg
ICAgICAgICAgIGludCBsZW4gPSBjb2RlIC0gcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgICAg
IHVuc2lnbmVkIGNoYXIqIGJyYWxpbmsgPSBOVUxMOwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgLyogSWYgdGhlIG1heGltdW0gcmVwZWF0IGNvdW50IGlzIHVubGlt
aXRlZCwgZmluZCB0aGUgZW5kIG9mIHRoZSBicmFja2V0Ci0gICAgICAgICAgICAgICAgICAgICBi
eSBzY2FubmluZyB0aHJvdWdoIGZyb20gdGhlIHN0YXJ0LCBhbmQgY29tcHV0ZSB0aGUgb2Zmc2V0
IGJhY2sgdG8gaXQKLSAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIGN1cnJlbnQgY29kZSBw
b2ludGVyLiBUaGVyZSBtYXkgYmUgYW4gT1BfT1BUIHNldHRpbmcgZm9sbG93aW5nCi0gICAgICAg
ICAgICAgICAgICAgICB0aGUgZmluYWwgS0VULCBzbyB3ZSBjYW4ndCBmaW5kIHRoZSBlbmQganVz
dCBieSBnb2luZyBiYWNrIGZyb20gdGhlIGNvZGUKLSAgICAgICAgICAgICAgICAgICAgIHBvaW50
ZXIuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAocmVw
ZWF0X21heCA9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdW5zaWduZWQg
Y2hhcioga2V0ID0gcHJldmlvdXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICBhZHZhbmNlVG9F
bmRPZkJyYWNrZXQoa2V0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGtldG9mZnNldCA9IGNv
ZGUgLSBrZXQ7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIC8qIFRoZSBjYXNlIG9mIGEgemVybyBtaW5pbXVtIGlzIHNwZWNp
YWwgYmVjYXVzZSBvZiB0aGUgbmVlZCB0byBzdGljawotICAgICAgICAgICAgICAgICAgICAgT1Bf
QlJBWkVSTyBpbiBmcm9udCBvZiBpdCwgYW5kIGJlY2F1c2UgdGhlIGdyb3VwIGFwcGVhcnMgb25j
ZSBpbiB0aGUKLSAgICAgICAgICAgICAgICAgICAgIGRhdGEsIHdoZXJlYXMgaW4gb3RoZXIgY2Fz
ZXMgaXQgYXBwZWFycyB0aGUgbWluaW11bSBudW1iZXIgb2YgdGltZXMuIEZvcgotICAgICAgICAg
ICAgICAgICAgICAgdGhpcyByZWFzb24sIGl0IGlzIHNpbXBsZXN0IHRvIHRyZWF0IHRoaXMgY2Fz
ZSBzZXBhcmF0ZWx5LCBhcyBvdGhlcndpc2UKLSAgICAgICAgICAgICAgICAgICAgIHRoZSBjb2Rl
IGdldHMgZmFyIHRvbyBtZXNzeS4gVGhlcmUgYXJlIHNldmVyYWwgc3BlY2lhbCBzdWJjYXNlcyB3
aGVuIHRoZQotICAgICAgICAgICAgICAgICAgICAgbWluaW11bSBpcyB6ZXJvLiAqLwotICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdE1pbiA9PSAwKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiB0aGUgbWF4aW11bSBpcyBhbHNvIHplcm8s
IHdlIGp1c3Qgb21pdCB0aGUgZ3JvdXAgZnJvbSB0aGUgb3V0cHV0Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgYWx0b2dldGhlci4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdF9tYXggPT0gMCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvZGUgPSBwcmV2aW91czsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnb3RvIEVORF9SRVBFQVQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtYXhpbXVt
IGlzIDEgb3IgdW5saW1pdGVkLCB3ZSBqdXN0IGhhdmUgdG8gc3RpY2sgaW4gdGhlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgQlJBWkVSTyBhbmQgZG8gbm8gbW9yZSBhdCB0aGlzIHBvaW50LiBI
b3dldmVyLCB3ZSBkbyBuZWVkIHRvIGFkanVzdAotICAgICAgICAgICAgICAgICAgICAgICAgIGFu
eSBPUF9SRUNVUlNFIGNhbGxzIGluc2lkZSB0aGUgZ3JvdXAgdGhhdCByZWZlciB0byB0aGUgZ3Jv
dXAgaXRzZWxmIG9yCi0gICAgICAgICAgICAgICAgICAgICAgICAgYW55IGludGVybmFsIGdyb3Vw
LCBiZWNhdXNlIHRoZSBvZmZzZXQgaXMgZnJvbSB0aGUgc3RhcnQgb2YgdGhlIHdob2xlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgcmVnZXguIFRlbXBvcmFyaWx5IHRlcm1pbmF0ZSB0aGUgcGF0
dGVybiB3aGlsZSBkb2luZyB0aGlzLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0X21heCA8PSAxKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKmNvZGUgPSBPUF9FTkQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbWVtbW92ZShwcmV2aW91cysxLCBwcmV2aW91cywgbGVuKTsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb2RlKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnByZXZpb3Vz
KysgPSBPUF9CUkFaRVJPICsgcmVwZWF0VHlwZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgLyogSWYg
dGhlIG1heGltdW0gaXMgZ3JlYXRlciB0aGFuIDEgYW5kIGxpbWl0ZWQsIHdlIGhhdmUgdG8gcmVw
bGljYXRlCi0gICAgICAgICAgICAgICAgICAgICAgICAgaW4gYSBuZXN0ZWQgZmFzaGlvbiwgc3Rp
Y2tpbmcgT1BfQlJBWkVSTyBiZWZvcmUgZWFjaCBzZXQgb2YgYnJhY2tldHMuCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgVGhlIGZpcnN0IG9uZSBoYXMgdG8gYmUgaGFuZGxlZCBjYXJlZnVsbHkg
YmVjYXVzZSBpdCdzIHRoZSBvcmlnaW5hbAotICAgICAgICAgICAgICAgICAgICAgICAgIGNvcHks
IHdoaWNoIGhhcyB0byBiZSBtb3ZlZCB1cC4gVGhlIHJlbWFpbmRlciBjYW4gYmUgaGFuZGxlZCBi
eSBjb2RlCi0gICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBpcyBjb21tb24gd2l0aCB0aGUg
bm9uLXplcm8gbWluaW11bSBjYXNlIGJlbG93LiBXZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgYWRqdXN0IHRoZSB2YWx1ZSBvZiByZXBlYXRfbWF4LCBzaW5jZSBvbmUgbGVzcyBj
b3B5IGlzIHJlcXVpcmVkLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29kZSA9
IE9QX0VORDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1tb3ZlKHByZXZpb3VzICsg
MiArIExJTktfU0laRSwgcHJldmlvdXMsIGxlbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29kZSArPSAyICsgTElOS19TSVpFOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICpw
cmV2aW91cysrID0gT1BfQlJBWkVSTyArIHJlcGVhdFR5cGU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKnByZXZpb3VzKysgPSBPUF9CUkE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogV2UgY2hhaW4gdG9nZXRoZXIgdGhl
IGJyYWNrZXQgb2Zmc2V0IGZpZWxkcyB0aGF0IGhhdmUgdG8gYmUKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZmlsbGVkIGluIGxhdGVyIHdoZW4gdGhlIGVuZHMgb2YgdGhlIGJyYWNrZXRz
IGFyZSByZWFjaGVkLiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSAoIWJyYWxpbmspID8gMCA6IHByZXZpb3Vz
IC0gYnJhbGluazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmFsaW5rID0gcHJldmlv
dXM7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TGlua1ZhbHVlQWxsb3daZXJvQW5k
QWR2YW5jZShwcmV2aW91cywgb2Zmc2V0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0X21h
eC0tOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAvKiBJZiB0aGUgbWluaW11bSBpcyBncmVhdGVyIHRoYW4gemVybywgcmVw
bGljYXRlIHRoZSBncm91cCBhcyBtYW55Ci0gICAgICAgICAgICAgICAgICAgICB0aW1lcyBhcyBu
ZWNlc3NhcnksIGFuZCBhZGp1c3QgdGhlIG1heGltdW0gdG8gdGhlIG51bWJlciBvZiBzdWJzZXF1
ZW50Ci0gICAgICAgICAgICAgICAgICAgICBjb3BpZXMgdGhhdCB3ZSBuZWVkLiBJZiB3ZSBzZXQg
YSBmaXJzdCBjaGFyIGZyb20gdGhlIGdyb3VwLCBhbmQgZGlkbid0Ci0gICAgICAgICAgICAgICAg
ICAgICBzZXQgYSByZXF1aXJlZCBjaGFyLCBjb3B5IHRoZSBsYXR0ZXIgZnJvbSB0aGUgZm9ybWVy
LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0TWluID4gMSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIChkaWRHcm91cFNldEZpcnN0Qnl0ZSAmJiByZXFCeXRlIDwgMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxQnl0ZSA9IGZpcnN0Qnl0ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8IHJlcGVhdE1pbjsg
aSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweShjb2RlLCBwcmV2
aW91cywgbGVuKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZSArPSBsZW47
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlcGVhdF9tYXggPiAwKQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGVhdF9tYXggLT0gcmVwZWF0TWluOwotICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBU
aGlzIGNvZGUgaXMgY29tbW9uIHRvIGJvdGggdGhlIHplcm8gYW5kIG5vbi16ZXJvIG1pbmltdW0g
Y2FzZXMuIElmCi0gICAgICAgICAgICAgICAgICAgICB0aGUgbWF4aW11bSBpcyBsaW1pdGVkLCBp
dCByZXBsaWNhdGVzIHRoZSBncm91cCBpbiBhIG5lc3RlZCBmYXNoaW9uLAotICAgICAgICAgICAg
ICAgICAgICAgcmVtZW1iZXJpbmcgdGhlIGJyYWNrZXQgc3RhcnRzIG9uIGEgc3RhY2suIEluIHRo
ZSBjYXNlIG9mIGEgemVybyBtaW5pbXVtLAotICAgICAgICAgICAgICAgICAgICAgdGhlIGZpcnN0
IG9uZSB3YXMgc2V0IHVwIGFib3ZlLiBJbiBhbGwgY2FzZXMgdGhlIHJlcGVhdF9tYXggbm93IHNw
ZWNpZmllcwotICAgICAgICAgICAgICAgICAgICAgdGhlIG51bWJlciBvZiBhZGRpdGlvbmFsIGNv
cGllcyBuZWVkZWQuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAocmVwZWF0X21heCA+PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gcmVwZWF0X21heCAtIDE7IGkgPj0gMDsgaS0tKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKmNvZGUrKyA9IE9QX0JSQVpFUk8gKyByZXBlYXRUeXBlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIEFsbCBidXQg
dGhlIGZpbmFsIGNvcHkgc3RhcnQgYSBuZXcgbmVzdGluZywgbWFpbnRhaW5pbmcgdGhlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNoYWluIG9mIGJyYWNrZXRzIG91dHN0YW5kaW5nLiAq
LwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChpICE9IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUr
KyA9IE9QX0JSQTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IG9mZnNldCA9
ICghYnJhbGluaykgPyAwIDogY29kZSAtIGJyYWxpbms7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyYWxpbmsgPSBjb2RlOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwdXRMaW5rVmFsdWVBbGxvd1plcm9BbmRBZHZhbmNlKGNvZGUsIG9mZnNldCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1lbWNweShjb2RlLCBwcmV2aW91cywgbGVuKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlICs9IGxlbjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgLyogTm93IGNoYWluIHRocm91Z2ggdGhlIHBlbmRpbmcgYnJhY2tldHMsIGFuZCBmaWxsIGlu
IHRoZWlyIGxlbmd0aAotICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcyAod2hpY2ggYXJl
IGhvbGRpbmcgdGhlIGNoYWluIGxpbmtzIHBybyB0ZW0pLiAqLwotICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYnJhbGluaykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGludCBvZmZzZXQgPSBjb2RlIC0gYnJhbGluayArIDE7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciogYnJhID0gY29kZSAtIG9m
ZnNldDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2xkbGlua29mZnNldCA9IGdl
dExpbmtWYWx1ZUFsbG93WmVybyhicmEgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmFsaW5rID0gKCFvbGRsaW5rb2Zmc2V0KSA/IDAgOiBicmFsaW5rIC0gb2xkbGlua29mZnNl
dDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gT1BfS0VUOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHB1dExpbmtWYWx1ZUFuZEFkdmFuY2UoY29kZSwgb2Zmc2V0
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRMaW5rVmFsdWUoYnJhICsgMSwgb2Zm
c2V0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSWYgdGhlIG1heGlt
dW0gaXMgdW5saW1pdGVkLCBzZXQgYSByZXBlYXRlciBpbiB0aGUgZmluYWwgY29weS4gV2UKLSAg
ICAgICAgICAgICAgICAgICAgIGNhbid0IGp1c3Qgb2Zmc2V0IGJhY2t3YXJkcyBmcm9tIHRoZSBj
dXJyZW50IGNvZGUgcG9pbnQsIGJlY2F1c2Ugd2UKLSAgICAgICAgICAgICAgICAgICAgIGRvbid0
IGtub3cgaWYgdGhlcmUncyBiZWVuIGFuIG9wdGlvbnMgcmVzZXR0aW5nIGFmdGVyIHRoZSBrZXQu
IFRoZQotICAgICAgICAgICAgICAgICAgICAgY29ycmVjdCBvZmZzZXQgd2FzIGNvbXB1dGVkIGFi
b3ZlLiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICAgICAgY29kZVsta2V0b2Zmc2V0XSA9IE9QX0tFVFJNQVggKyBy
ZXBlYXRUeXBlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAvLyBBIHF1YW50aWZpZXIgYWZ0ZXIgYW4gYXNzZXJ0aW9uIGlzIG1vc3RseSBtZWFu
aW5nbGVzcywgYnV0IGl0Ci0gICAgICAgICAgICAgICAgLy8gY2FuIG51bGxpZnkgdGhlIGFzc2Vy
dGlvbiBpZiBpdCBoYXMgYSAwIG1pbmltdW0uCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoKnBy
ZXZpb3VzID09IE9QX0FTU0VSVCB8fCAqcHJldmlvdXMgPT0gT1BfQVNTRVJUX05PVCkgewotICAg
ICAgICAgICAgICAgICAgICBpZiAocmVwZWF0TWluID09IDApIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvZGUgPSBwcmV2aW91czsKLSAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRU5E
X1JFUEVBVDsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBFbHNlIHRoZXJlJ3Mgc29tZSBraW5kIG9m
IHNoYW1ibGVzICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSB7Ci0g
ICAgICAgICAgICAgICAgICAgICplcnJvckNvZGVQdHIgPSBFUlIxMTsKLSAgICAgICAgICAgICAg
ICAgICAgZ290byBGQUlMRUQ7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIC8qIEluIGFsbCBjYXNlIHdlIG5vIGxvbmdlciBoYXZlIGEgcHJldmlv
dXMgaXRlbS4gV2UgYWxzbyBzZXQgdGhlCi0gICAgICAgICAgICAgICAgICJmb2xsb3dzIHZhcnlp
bmcgc3RyaW5nIiBmbGFnIGZvciBzdWJzZXF1ZW50bHkgZW5jb3VudGVyZWQgcmVxYnl0ZXMgaWYK
LSAgICAgICAgICAgICAgICAgaXQgaXNuJ3QgYWxyZWFkeSBzZXQgYW5kIHdlIGhhdmUganVzdCBw
YXNzZWQgYSB2YXJ5aW5nIGxlbmd0aCBpdGVtLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgRU5EX1JFUEVBVDoKLSAgICAgICAgICAgICAgICBwcmV2aW91cyA9IE5VTEw7Ci0gICAg
ICAgICAgICAgICAgY2QucmVxVmFyeU9wdCB8PSByZXF2YXJ5OwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogU3RhcnQgb2YgbmVzdGVkIGJy
YWNrZXQgc3ViLWV4cHJlc3Npb24sIG9yIGNvbW1lbnQgb3IgbG9va2FoZWFkIG9yCi0gICAgICAg
ICAgICAgbG9va2JlaGluZCBvciBvcHRpb24gc2V0dGluZyBvciBjb25kaXRpb24uIEZpcnN0IGRl
YWwgd2l0aCBzcGVjaWFsIHRoaW5ncwotICAgICAgICAgICAgIHRoYXQgY2FuIGNvbWUgYWZ0ZXIg
YSBicmFja2V0OyBhbGwgYXJlIGludHJvZHVjZWQgYnkgPywgYW5kIHRoZSBhcHBlYXJhbmNlCi0g
ICAgICAgICAgICAgb2YgYW55IG9mIHRoZW0gbWVhbnMgdGhhdCB0aGlzIGlzIG5vdCBhIHJlZmVy
ZW5jaW5nIGdyb3VwLiBUaGV5IHdlcmUKLSAgICAgICAgICAgICBjaGVja2VkIGZvciB2YWxpZGl0
eSBpbiB0aGUgZmlyc3QgcGFzcyBvdmVyIHRoZSBzdHJpbmcsIHNvIHdlIGRvbid0IGhhdmUgdG8K
LSAgICAgICAgICAgICBjaGVjayBmb3Igc3ludGF4IGVycm9ycyBoZXJlLiAgKi8KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgIGNhc2UgJygnOgotICAgICAgICAgICAgICAgIHNraXBCeXRl
cyA9IDA7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCooKytwdHIpID09
ICc/JykgewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKCooKytwdHIpKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlICc6JzogICAgICAgICAgICAgICAgIC8qIE5vbi1leHRyYWN0
aW5nIGJyYWNrZXQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmF2YWx1ZSA9IE9Q
X0JSQTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgJz0nOiAgICAgICAgICAgICAgICAgLyogUG9zaXRpdmUg
bG9va2FoZWFkICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJhdmFsdWUgPSBPUF9B
U1NFUlQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlICchJzogICAgICAgICAgICAgICAgIC8qIE5lZ2F0aXZl
IGxvb2thaGVhZCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYXZhbHVlID0gT1Bf
QVNTRVJUX05PVDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgIC8qIENoYXJhY3RlciBhZnRlciAoPyBub3Qgc3BlY2lh
bGx5IHJlY29nbml6ZWQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKmVy
cm9yQ29kZVB0ciA9IEVSUjEyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gRkFJ
TEVEOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBFbHNlIHdlIGhhdmUgYSByZWZlcmVuY2lu
ZyBncm91cDsgYWRqdXN0IHRoZSBvcGNvZGUuIElmIHRoZSBicmFja2V0Ci0gICAgICAgICAgICAg
ICAgIG51bWJlciBpcyBncmVhdGVyIHRoYW4gRVhUUkFDVF9CQVNJQ19NQVgsIHdlIHNldCB0aGUg
b3Bjb2RlIG9uZSBoaWdoZXIsIGFuZAotICAgICAgICAgICAgICAgICBhcnJhbmdlIGZvciB0aGUg
dHJ1ZSBudW1iZXIgdG8gZm9sbG93IGxhdGVyLCBpbiBhbiBPUF9CUkFOVU1CRVIgaXRlbS4gKi8K
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKCsrKCpicmFja2V0cykgPiBFWFRSQUNUX0JBU0lDX01BWCkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgYnJhdmFsdWUgPSBPUF9CUkEgKyBFWFRSQUNUX0JBU0lDX01BWCArIDE7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb2RlWzEgKyBMSU5LX1NJWkVdID0gT1BfQlJBTlVN
QkVSOwotICAgICAgICAgICAgICAgICAgICAgICAgcHV0MkJ5dGVWYWx1ZShjb2RlICsgMiArIExJ
TktfU0laRSwgKmJyYWNrZXRzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHNraXBCeXRlcyA9
IDM7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgICAgICAgICAgYnJhdmFsdWUgPSBPUF9CUkEgKyAqYnJhY2tldHM7Ci0gICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIFByb2Nl
c3MgbmVzdGVkIGJyYWNrZXRlZCByZS4gV2UgY29weSBjb2RlIGludG8gYSBub24tdmFyaWFibGUK
LSAgICAgICAgICAgICAgICAgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byBwYXNzIGl0cyBhZGRyZXNz
IGJlY2F1c2Ugc29tZSBjb21waWxlcnMKLSAgICAgICAgICAgICAgICAgY29tcGxhaW4gb3RoZXJ3
aXNlLiBQYXNzIGluIGEgbmV3IHNldHRpbmcgZm9yIHRoZSBpbXMgb3B0aW9ucwotICAgICAgICAg
ICAgICAgICBpZiB0aGV5IGhhdmUgY2hhbmdlZC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBwcmV2aW91cyA9IGNvZGU7Ci0gICAgICAgICAgICAgICAgKmNvZGUgPSBicmF2
YWx1ZTsKLSAgICAgICAgICAgICAgICB0ZW1wY29kZSA9IGNvZGU7Ci0gICAgICAgICAgICAgICAg
dGVtcHJlcXZhcnkgPSBjZC5yZXFWYXJ5T3B0OyAgICAgLyogU2F2ZSB2YWx1ZSBiZWZvcmUgYnJh
Y2tldCAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmICghY29tcGlsZUJy
YWNrZXQoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyYWNrZXRzLCAgICAgICAgICAgICAgICAg
ICAgIC8qIEV4dHJhY3RpbmcgYnJhY2tldCBjb3VudCAqLwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAmdGVtcGNvZGUsICAgICAgICAgICAgICAgICAgICAvKiBXaGVyZSB0byBw
dXQgY29kZSAodXBkYXRlZCkgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
JnB0ciwgICAgICAgICAgICAgICAgICAgICAgICAgLyogSW5wdXQgcG9pbnRlciAodXBkYXRlZCkg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybkVuZCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JDb2RlUHRyLCAgICAgICAgICAgICAg
ICAgLyogV2hlcmUgdG8gcHV0IGFuIGVycm9yIG1lc3NhZ2UgKi8KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc2tpcEJ5dGVzLCAgICAgICAgICAgICAgICAgICAgLyogU2tpcCBv
dmVyIE9QX0JSQU5VTUJFUiAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAm
c3ViRmlyc3RCeXRlLCAgICAgICAgICAgICAgICAvKiBGb3IgcG9zc2libGUgZmlyc3QgY2hhciAq
LwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmc3ViUmVxQnl0ZSwgICAgICAg
ICAgICAgICAgICAvKiBGb3IgcG9zc2libGUgbGFzdCBjaGFyICovCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNkKSkgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIFRhYmxl
cyBibG9jayAqLwotICAgICAgICAgICAgICAgICAgICBnb3RvIEZBSUxFRDsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvKiBBdCB0aGUgZW5kIG9mIGNvbXBpbGluZywgY29kZSBp
cyBzdGlsbCBwb2ludGluZyB0byB0aGUgc3RhcnQgb2YgdGhlCi0gICAgICAgICAgICAgICAgIGdy
b3VwLCB3aGlsZSB0ZW1wY29kZSBoYXMgYmVlbiB1cGRhdGVkIHRvIHBvaW50IHBhc3QgdGhlIGVu
ZCBvZiB0aGUgZ3JvdXAKLSAgICAgICAgICAgICAgICAgYW5kIGFueSBvcHRpb24gcmVzZXR0aW5n
IHRoYXQgbWF5IGZvbGxvdyBpdC4gVGhlIHBhdHRlcm4gcG9pbnRlciAocHRyKQotICAgICAgICAg
ICAgICAgICBpcyBvbiB0aGUgYnJhY2tldC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAvKiBIYW5kbGUgdXBkYXRpbmcgb2YgdGhlIHJlcXVpcmVkIGFuZCBmaXJzdCBjaGFy
YWN0ZXJzLiBVcGRhdGUgZm9yIG5vcm1hbAotICAgICAgICAgICAgICAgICBicmFja2V0cyBvZiBh
bGwga2luZHMsIGFuZCBjb25kaXRpb25zIHdpdGggdHdvIGJyYW5jaGVzIChzZWUgY29kZSBhYm92
ZSkuCi0gICAgICAgICAgICAgICAgIElmIHRoZSBicmFja2V0IGlzIGZvbGxvd2VkIGJ5IGEgcXVh
bnRpZmllciB3aXRoIHplcm8gcmVwZWF0LCB3ZSBoYXZlIHRvCi0gICAgICAgICAgICAgICAgIGJh
Y2sgb2ZmLiBIZW5jZSB0aGUgZGVmaW5pdGlvbiBvZiB6ZXJvUmVxQnl0ZSBhbmQgemVyb0ZpcnN0
Qnl0ZSBvdXRzaWRlIHRoZQotICAgICAgICAgICAgICAgICBtYWluIGxvb3Agc28gdGhhdCB0aGV5
IGNhbiBiZSBhY2Nlc3NlZCBmb3IgdGhlIGJhY2sgb2ZmLiAqLwotICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAgICAgICAgICAgICB6
ZXJvRmlyc3RCeXRlID0gZmlyc3RCeXRlOwotICAgICAgICAgICAgICAgIGRpZEdyb3VwU2V0Rmly
c3RCeXRlID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGJy
YXZhbHVlID49IE9QX0JSQSkgewotICAgICAgICAgICAgICAgICAgICAvKiBJZiB3ZSBoYXZlIG5v
dCB5ZXQgc2V0IGEgZmlyc3RCeXRlIGluIHRoaXMgYnJhbmNoLCB0YWtlIGl0IGZyb20gdGhlCi0g
ICAgICAgICAgICAgICAgICAgICBzdWJwYXR0ZXJuLCByZW1lbWJlcmluZyB0aGF0IGl0IHdhcyBz
ZXQgaGVyZSBzbyB0aGF0IGEgcmVwZWF0IG9mIG1vcmUKLSAgICAgICAgICAgICAgICAgICAgIHRo
YW4gb25lIGNhbiByZXBsaWNhdGUgaXQgYXMgcmVxQnl0ZSBpZiBuZWNlc3NhcnkuIElmIHRoZSBz
dWJwYXR0ZXJuIGhhcwotICAgICAgICAgICAgICAgICAgICAgbm8gZmlyc3RCeXRlLCBzZXQgIm5v
bmUiIGZvciB0aGUgd2hvbGUgYnJhbmNoLiBJbiBib3RoIGNhc2VzLCBhIHplcm8KLSAgICAgICAg
ICAgICAgICAgICAgIHJlcGVhdCBmb3JjZXMgZmlyc3RCeXRlIHRvICJub25lIi4gKi8KLSAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEJ5dGUgPT0gUkVR
X1VOU0VUKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3ViRmlyc3RCeXRlID49IDAp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBzdWJGaXJzdEJ5dGU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkR3JvdXBTZXRGaXJzdEJ5dGUgPSB0cnVl
OwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgZWxz
ZQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0Qnl0ZSA9IFJFUV9OT05FOwotICAg
ICAgICAgICAgICAgICAgICAgICAgemVyb0ZpcnN0Qnl0ZSA9IFJFUV9OT05FOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAv
KiBJZiBmaXJzdEJ5dGUgd2FzIHByZXZpb3VzbHkgc2V0LCBjb252ZXJ0IHRoZSBzdWJwYXR0ZXJu
J3MgZmlyc3RCeXRlCi0gICAgICAgICAgICAgICAgICAgICBpbnRvIHJlcUJ5dGUgaWYgdGhlcmUg
d2Fzbid0IG9uZSwgdXNpbmcgdGhlIHZhcnkgZmxhZyB0aGF0IHdhcyBpbgotICAgICAgICAgICAg
ICAgICAgICAgZXhpc3RlbmNlIGJlZm9yZWhhbmQuICovCi0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdWJGaXJzdEJ5dGUgPj0gMCAmJiBzdWJSZXFC
eXRlIDwgMCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHN1YlJlcUJ5dGUgPSBzdWJGaXJzdEJ5
dGUgfCB0ZW1wcmVxdmFyeTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIC8qIElmIHRoZSBzdWJwYXR0ZXJuIHNldCBhIHJlcXVpcmVkIGJ5dGUgKG9yIHNldCBhIGZp
cnN0IGJ5dGUgdGhhdCBpc24ndAotICAgICAgICAgICAgICAgICAgICAgcmVhbGx5IHRoZSBmaXJz
dCBieXRlIC0gc2VlIGFib3ZlKSwgc2V0IGl0LiAqLwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHN1YlJlcUJ5dGUgPj0gMCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIHJlcUJ5dGUgPSBzdWJSZXFCeXRlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBGb3IgYSBmb3J3YXJkIGFzc2VydGlvbiwgd2Ug
dGFrZSB0aGUgcmVxQnl0ZSwgaWYgc2V0LiBUaGlzIGNhbiBiZQotICAgICAgICAgICAgICAgICBo
ZWxwZnVsIGlmIHRoZSBwYXR0ZXJuIHRoYXQgZm9sbG93cyB0aGUgYXNzZXJ0aW9uIGRvZXNuJ3Qg
c2V0IGEgZGlmZmVyZW50Ci0gICAgICAgICAgICAgICAgIGNoYXIuIEZvciBleGFtcGxlLCBpdCdz
IHVzZWZ1bCBmb3IgLyg/PWFiY2RlKS4rLy4gV2UgY2FuJ3Qgc2V0IGZpcnN0Qnl0ZQotICAgICAg
ICAgICAgICAgICBmb3IgYW4gYXNzZXJ0aW9uLCBob3dldmVyIGJlY2F1c2UgaXQgbGVhZHMgdG8g
aW5jb3JyZWN0IGVmZmVjdCBmb3IgcGF0dGVybnMKLSAgICAgICAgICAgICAgICAgc3VjaCBhcyAv
KD89YSlhLisvIHdoZW4gdGhlICJyZWFsIiAiYSIgd291bGQgdGhlbiBiZWNvbWUgYSByZXFCeXRl
IGluc3RlYWQKLSAgICAgICAgICAgICAgICAgb2YgYSBmaXJzdEJ5dGUuIFRoaXMgaXMgb3ZlcmNv
bWUgYnkgYSBzY2FuIGF0IHRoZSBlbmQgaWYgdGhlcmUncyBubwotICAgICAgICAgICAgICAgICBm
aXJzdEJ5dGUsIGxvb2tpbmcgZm9yIGFuIGFzc2VydGVkIGZpcnN0IGNoYXIuICovCi0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxzZSBpZiAoYnJhdmFsdWUgPT0gT1BfQVNTRVJU
ICYmIHN1YlJlcUJ5dGUgPj0gMCkKLSAgICAgICAgICAgICAgICAgICAgcmVxQnl0ZSA9IHN1YlJl
cUJ5dGU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogTm93IHVwZGF0ZSB0
aGUgbWFpbiBjb2RlIHBvaW50ZXIgdG8gdGhlIGVuZCBvZiB0aGUgZ3JvdXAuICovCi0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgY29kZSA9IHRlbXBjb2RlOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIC8qIEVycm9yIGlmIGhpdCBlbmQgb2YgcGF0dGVybiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChwdHIgPj0gcGF0dGVybkVuZCB8
fCAqcHRyICE9ICcpJykgewotICAgICAgICAgICAgICAgICAgICAqZXJyb3JDb2RlUHRyID0gRVJS
MTQ7Ci0gICAgICAgICAgICAgICAgICAgIGdvdG8gRkFJTEVEOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8q
IENoZWNrIFwgZm9yIGJlaW5nIGEgcmVhbCBtZXRhY2hhcmFjdGVyOyBpZiBub3QsIGZhbGwgdGhy
b3VnaCBhbmQgaGFuZGxlCi0gICAgICAgICAgICAgaXQgYXMgYSBkYXRhIGNoYXJhY3RlciBhdCB0
aGUgc3RhcnQgb2YgYSBzdHJpbmcuIEVzY2FwZSBpdGVtcyBhcmUgY2hlY2tlZAotICAgICAgICAg
ICAgIGZvciB2YWxpZGl0eSBpbiB0aGUgcHJlLWNvbXBpbGluZyBwYXNzLiAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgY2FzZSAnXFwnOgotICAgICAgICAgICAgICAgIHRlbXBwdHIg
PSBwdHI7Ci0gICAgICAgICAgICAgICAgYyA9IGNoZWNrRXNjYXBlKCZwdHIsIHBhdHRlcm5FbmQs
IGVycm9yQ29kZVB0ciwgY2QubnVtQ2FwdHVyaW5nQnJhY2tldHMsIGZhbHNlKTsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBIYW5kbGUgbWV0YWNoYXJhY3RlcnMgaW50cm9k
dWNlZCBieSBcLiBGb3Igb25lcyBsaWtlIFxkLCB0aGUgRVNDXyB2YWx1ZXMKLSAgICAgICAgICAg
ICAgICAgYXJlIGFycmFuZ2VkIHRvIGJlIHRoZSBuZWdhdGlvbiBvZiB0aGUgY29ycmVzcG9uZGlu
ZyBPUF92YWx1ZXMuIEZvciB0aGUKLSAgICAgICAgICAgICAgICAgYmFjayByZWZlcmVuY2VzLCB0
aGUgdmFsdWVzIGFyZSBFU0NfUkVGIHBsdXMgdGhlIHJlZmVyZW5jZSBudW1iZXIuIE9ubHkKLSAg
ICAgICAgICAgICAgICAgYmFjayByZWZlcmVuY2VzIGFuZCB0aG9zZSB0eXBlcyB0aGF0IGNvbnN1
bWUgYSBjaGFyYWN0ZXIgbWF5IGJlIHJlcGVhdGVkLgotICAgICAgICAgICAgICAgICBXZSBjYW4g
dGVzdCBmb3IgdmFsdWVzIGJldHdlZW4gRVNDX2IgYW5kIEVTQ193IGZvciB0aGUgbGF0dGVyOyB0
aGlzIG1heQotICAgICAgICAgICAgICAgICBoYXZlIHRvIGNoYW5nZSBpZiBhbnkgbmV3IG9uZXMg
YXJlIGV2ZXIgY3JlYXRlZC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBp
ZiAoYyA8IDApIHsKLSAgICAgICAgICAgICAgICAgICAgLyogRm9yIG1ldGFzZXF1ZW5jZXMgdGhh
dCBhY3R1YWxseSBtYXRjaCBhIGNoYXJhY3Rlciwgd2UgZGlzYWJsZSB0aGUKLSAgICAgICAgICAg
ICAgICAgICAgIHNldHRpbmcgb2YgYSBmaXJzdCBjaGFyYWN0ZXIgaWYgaXQgaGFzbid0IGFscmVh
ZHkgYmVlbiBzZXQuICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoZmlyc3RCeXRlID09IFJFUV9VTlNFVCAmJiAtYyA+IEVTQ19iICYmIC1jIDw9IEVTQ193
KQotICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RCeXRlID0gUkVRX05PTkU7Ci0gICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBTZXQgdmFsdWVzIHRvIHJlc2V0
IHRvIGlmIHRoaXMgaXMgZm9sbG93ZWQgYnkgYSB6ZXJvIHJlcGVhdC4gKi8KLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIHplcm9GaXJzdEJ5dGUgPSBmaXJzdEJ5dGU7
Ci0gICAgICAgICAgICAgICAgICAgIHplcm9SZXFCeXRlID0gcmVxQnl0ZTsKLSAgICAgICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIEJhY2sgcmVmZXJlbmNlcyBhcmUgaGFu
ZGxlZCBzcGVjaWFsbHkgKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIGlmICgtYyA+PSBFU0NfUkVGKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgbnVt
YmVyID0gLWMgLSBFU0NfUkVGOwotICAgICAgICAgICAgICAgICAgICAgICAgcHJldmlvdXMgPSBj
b2RlOwotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX1JFRjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHB1dDJCeXRlVmFsdWVBbmRBZHZhbmNlKGNvZGUsIG51bWJlcik7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIC8qIEZvciB0aGUgcmVzdCwgd2UgY2FuIG9idGFpbiB0aGUgT1AgdmFsdWUgYnkgbmVn
YXRpbmcgdGhlIGVzY2FwZQotICAgICAgICAgICAgICAgICAgICAgdmFsdWUgKi8KLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
ICAgICAgICAgcHJldmlvdXMgPSAoLWMgPiBFU0NfYiAmJiAtYyA8PSBFU0NfdykgPyBjb2RlIDog
TlVMTDsKLSAgICAgICAgICAgICAgICAgICAgICAgICpjb2RlKysgPSAtYzsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogRmFsbCB0aHJvdWdoLiAq
LwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEhhbmRsZSBhIGxpdGVyYWwg
Y2hhcmFjdGVyLiBJdCBpcyBndWFyYW50ZWVkIG5vdCB0byBiZSB3aGl0ZXNwYWNlIG9yICMKLSAg
ICAgICAgICAgICAgICAgd2hlbiB0aGUgZXh0ZW5kZWQgZmxhZyBpcyBzZXQuIElmIHdlIGFyZSBp
biBVVEYtOCBtb2RlLCBpdCBtYXkgYmUgYQotICAgICAgICAgICAgICAgICBtdWx0aS1ieXRlIGxp
dGVyYWwgY2hhcmFjdGVyLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICBOT1JNQUxfQ0hBUjoKLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBwcmV2aW91cyA9IGNvZGU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgaWYgKGMgPCAxMjgpIHsKLSAgICAgICAgICAgICAgICAgICAgbWNMZW5ndGggPSAxOwot
ICAgICAgICAgICAgICAgICAgICBtY2J1ZmZlclswXSA9IGM7Ci0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICBpZiAoKG9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0aW9uKSAm
JiAoYyB8IDB4MjApID49ICdhJyAmJiAoYyB8IDB4MjApIDw9ICd6JykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0FTQ0lJX0xFVFRFUl9JR05PUklOR19DQVNFOwotICAg
ICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IGMgfCAweDIwOwotICAgICAgICAgICAgICAg
ICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgKmNvZGUrKyA9IE9QX0FTQ0lJ
X0NIQVI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gYzsKLSAgICAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAg
IG1jTGVuZ3RoID0gZW5jb2RlVVRGOChjLCBtY2J1ZmZlcik7Ci0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAqY29kZSsrID0gKG9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0
aW9uKSA/IE9QX0NIQVJfSUdOT1JJTkdfQ0FTRSA6IE9QX0NIQVI7Ci0gICAgICAgICAgICAgICAg
ICAgIGZvciAoYyA9IDA7IGMgPCBtY0xlbmd0aDsgYysrKQotICAgICAgICAgICAgICAgICAgICAg
ICAgKmNvZGUrKyA9IG1jYnVmZmVyW2NdOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvKiBTZXQgdGhlIGZpcnN0IGFuZCByZXF1aXJlZCBieXRl
cyBhcHByb3ByaWF0ZWx5LiBJZiBubyBwcmV2aW91cyBmaXJzdAotICAgICAgICAgICAgICAgICBi
eXRlLCBzZXQgaXQgZnJvbSB0aGlzIGNoYXJhY3RlciwgYnV0IHJldmVydCB0byBub25lIG9uIGEg
emVybyByZXBlYXQuCi0gICAgICAgICAgICAgICAgIE90aGVyd2lzZSwgbGVhdmUgdGhlIGZpcnN0
Qnl0ZSB2YWx1ZSBhbG9uZSwgYW5kIGRvbid0IGNoYW5nZSBpdCBvbiBhIHplcm8KLSAgICAgICAg
ICAgICAgICAgcmVwZWF0LiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChmaXJzdEJ5dGUgPT0gUkVRX1VOU0VUKSB7Ci0gICAgICAgICAgICAgICAgICAgIHplcm9GaXJz
dEJ5dGUgPSBSRVFfTk9ORTsKLSAgICAgICAgICAgICAgICAgICAgemVyb1JlcUJ5dGUgPSByZXFC
eXRlOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogSWYgdGhl
IGNoYXJhY3RlciBpcyBtb3JlIHRoYW4gb25lIGJ5dGUgbG9uZywgd2UgY2FuIHNldCBmaXJzdEJ5
dGUKLSAgICAgICAgICAgICAgICAgICAgIG9ubHkgaWYgaXQgaXMgbm90IHRvIGJlIG1hdGNoZWQg
Y2FzZWxlc3NseS4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
IGlmIChtY0xlbmd0aCA9PSAxIHx8IHJlcUNhc2VPcHQgPT0gMCkgewotICAgICAgICAgICAgICAg
ICAgICAgICAgZmlyc3RCeXRlID0gbWNidWZmZXJbMF0gfCByZXFDYXNlT3B0OwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKG1jTGVuZ3RoICE9IDEpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVxQnl0ZSA9IGNvZGVbLTFdIHwgY2QucmVxVmFyeU9wdDsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAg
ICBmaXJzdEJ5dGUgPSByZXFCeXRlID0gUkVRX05PTkU7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIGZpcnN0Qnl0ZSB3YXMgcHJldmlvdXNs
eSBzZXQ7IHdlIGNhbiBzZXQgcmVxQnl0ZSBvbmx5IHRoZSBsZW5ndGggaXMKLSAgICAgICAgICAg
ICAgICAgMSBvciB0aGUgbWF0Y2hpbmcgaXMgY2FzZWZ1bC4gKi8KLSAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgemVyb0ZpcnN0Qnl0
ZSA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAgICAgICAgICAgemVyb1JlcUJ5dGUgPSByZXFCeXRl
OwotICAgICAgICAgICAgICAgICAgICBpZiAobWNMZW5ndGggPT0gMSB8fCByZXFDYXNlT3B0ID09
IDApCi0gICAgICAgICAgICAgICAgICAgICAgICByZXFCeXRlID0gY29kZVstMV0gfCByZXFDYXNl
T3B0IHwgY2QucmVxVmFyeU9wdDsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgLyogRW5kIG9mIGxpdGVyYWwgY2hh
cmFjdGVyIGhhbmRsaW5nICovCi0gICAgICAgIH0KLSAgICB9ICAgICAgICAgICAgICAgICAgIC8q
IGVuZCBvZiBiaWcgbG9vcCAqLwotICAgIAotICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBo
ZXJlIGJ5IGZhbGxpbmcgdGhyb3VnaCwgb25seSBieSBhIGdvdG8gZm9yIGFsbCB0aGUKLSAgICAg
ZXJyb3Igc3RhdGVzLiBQYXNzIGJhY2sgdGhlIHBvc2l0aW9uIGluIHRoZSBwYXR0ZXJuIHNvIHRo
YXQgaXQgY2FuIGJlIGRpc3BsYXllZAotICAgICB0byB0aGUgdXNlciBmb3IgZGlhZ25vc2luZyB0
aGUgZXJyb3IuICovCi0gICAgCi1GQUlMRUQ6Ci0gICAgKnB0clB0ciA9IHB0cjsKLSAgICByZXR1
cm4gZmFsc2U7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0qICAgICBDb21waWxlIHNlcXVlbmNlIG9mIGFsdGVybmF0aXZlcyAgICAgICAg
ICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
LQotLyogT24gZW50cnksIHB0ciBpcyBwb2ludGluZyBwYXN0IHRoZSBicmFja2V0IGNoYXJhY3Rl
ciwgYnV0IG9uIHJldHVybgotaXQgcG9pbnRzIHRvIHRoZSBjbG9zaW5nIGJyYWNrZXQsIG9yIHZl
cnRpY2FsIGJhciwgb3IgZW5kIG9mIHN0cmluZy4KLVRoZSBjb2RlIHZhcmlhYmxlIGlzIHBvaW50
aW5nIGF0IHRoZSBieXRlIGludG8gd2hpY2ggdGhlIEJSQSBvcGVyYXRvciBoYXMgYmVlbgotc3Rv
cmVkLiBJZiB0aGUgaW1zIG9wdGlvbnMgYXJlIGNoYW5nZWQgYXQgdGhlIHN0YXJ0IChmb3IgYSAo
P2ltczogZ3JvdXApIG9yCi1kdXJpbmcgYW55IGJyYW5jaCwgd2UgbmVlZCB0byBpbnNlcnQgYW4g
T1BfT1BUIGl0ZW0gYXQgdGhlIHN0YXJ0IG9mIGV2ZXJ5Ci1mb2xsb3dpbmcgYnJhbmNoIHRvIGVu
c3VyZSB0aGV5IGdldCBzZXQgY29ycmVjdGx5IGF0IHJ1biB0aW1lLCBhbmQgYWxzbyBwYXNzCi10
aGUgbmV3IG9wdGlvbnMgaW50byBldmVyeSBzdWJzZXF1ZW50IGJyYW5jaCBjb21waWxlLgotCi1B
cmd1bWVudDoKLSAgb3B0aW9ucyAgICAgICAgb3B0aW9uIGJpdHMsIGluY2x1ZGluZyBhbnkgY2hh
bmdlcyBmb3IgdGhpcyBzdWJwYXR0ZXJuCi0gIGJyYWNrZXRzICAgICAgIC0+IGludCBjb250YWlu
aW5nIHRoZSBudW1iZXIgb2YgZXh0cmFjdGluZyBicmFja2V0cyB1c2VkCi0gIGNvZGVQdHIgICAg
ICAgIC0+IHRoZSBhZGRyZXNzIG9mIHRoZSBjdXJyZW50IGNvZGUgcG9pbnRlcgotICBwdHJQdHIg
ICAgICAgICAtPiB0aGUgYWRkcmVzcyBvZiB0aGUgY3VycmVudCBwYXR0ZXJuIHBvaW50ZXIKLSAg
ZXJyb3JDb2RlUHRyICAgLT4gcG9pbnRlciB0byBlcnJvciBjb2RlIHZhcmlhYmxlCi0gIHNraXBC
eXRlcyAgICAgIHNraXAgdGhpcyBtYW55IGJ5dGVzIGF0IHN0YXJ0IChmb3IgT1BfQlJBTlVNQkVS
KQotICBmaXJzdGJ5dGVwdHIgICBwbGFjZSB0byBwdXQgdGhlIGZpcnN0IHJlcXVpcmVkIGNoYXJh
Y3Rlciwgb3IgYSBuZWdhdGl2ZSBudW1iZXIKLSAgcmVxYnl0ZXB0ciAgICAgcGxhY2UgdG8gcHV0
IHRoZSBsYXN0IHJlcXVpcmVkIGNoYXJhY3Rlciwgb3IgYSBuZWdhdGl2ZSBudW1iZXIKLSAgY2Qg
ICAgICAgICAgICAgcG9pbnRzIHRvIHRoZSBkYXRhIGJsb2NrIHdpdGggdGFibGVzIHBvaW50ZXJz
IGV0Yy4KLQotUmV0dXJuczogICAgICB0cnVlIG9uIHN1Y2Nlc3MKLSovCi0KLXN0YXRpYyBib29s
Ci1jb21waWxlQnJhY2tldChpbnQgb3B0aW9ucywgaW50KiBicmFja2V0cywgdW5zaWduZWQgY2hh
cioqIGNvZGVQdHIsCi0gICAgY29uc3QgVUNoYXIqKiBwdHJQdHIsIGNvbnN0IFVDaGFyKiBwYXR0
ZXJuRW5kLCBFcnJvckNvZGUqIGVycm9yQ29kZVB0ciwgaW50IHNraXBCeXRlcywKLSAgICBpbnQq
IGZpcnN0Ynl0ZXB0ciwgaW50KiByZXFieXRlcHRyLCBDb21waWxlRGF0YSYgY2QpCi17Ci0gICAg
Y29uc3QgVUNoYXIqIHB0ciA9ICpwdHJQdHI7Ci0gICAgdW5zaWduZWQgY2hhciogY29kZSA9ICpj
b2RlUHRyOwotICAgIHVuc2lnbmVkIGNoYXIqIGxhc3RCcmFuY2ggPSBjb2RlOwotICAgIHVuc2ln
bmVkIGNoYXIqIHN0YXJ0X2JyYWNrZXQgPSBjb2RlOwotICAgIGludCBmaXJzdEJ5dGUgPSBSRVFf
VU5TRVQ7Ci0gICAgaW50IHJlcUJ5dGUgPSBSRVFfVU5TRVQ7Ci0gICAgCi0gICAgLyogT2Zmc2V0
IGlzIHNldCB6ZXJvIHRvIG1hcmsgdGhhdCB0aGlzIGJyYWNrZXQgaXMgc3RpbGwgb3BlbiAqLwot
ICAgIAotICAgIHB1dExpbmtWYWx1ZUFsbG93WmVybyhjb2RlICsgMSwgMCk7Ci0gICAgY29kZSAr
PSAxICsgTElOS19TSVpFICsgc2tpcEJ5dGVzOwotICAgIAotICAgIC8qIExvb3AgZm9yIGVhY2gg
YWx0ZXJuYXRpdmUgYnJhbmNoICovCi0gICAgCi0gICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAg
LyogTm93IGNvbXBpbGUgdGhlIGJyYW5jaCAqLwotICAgICAgICAKLSAgICAgICAgaW50IGJyYW5j
aEZpcnN0Qnl0ZTsKLSAgICAgICAgaW50IGJyYW5jaFJlcUJ5dGU7Ci0gICAgICAgIGlmICghY29t
cGlsZUJyYW5jaChvcHRpb25zLCBicmFja2V0cywgJmNvZGUsICZwdHIsIHBhdHRlcm5FbmQsIGVy
cm9yQ29kZVB0ciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAmYnJhbmNoRmlyc3RCeXRl
LCAmYnJhbmNoUmVxQnl0ZSwgY2QpKSB7Ci0gICAgICAgICAgICAqcHRyUHRyID0gcHRyOwotICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAvKiBJ
ZiB0aGlzIGlzIHRoZSBmaXJzdCBicmFuY2gsIHRoZSBmaXJzdEJ5dGUgYW5kIHJlcUJ5dGUgdmFs
dWVzIGZvciB0aGUKLSAgICAgICAgIGJyYW5jaCBiZWNvbWUgdGhlIHZhbHVlcyBmb3IgdGhlIHJl
Z2V4LiAqLwotICAgICAgICAKLSAgICAgICAgaWYgKCpsYXN0QnJhbmNoICE9IE9QX0FMVCkgewot
ICAgICAgICAgICAgZmlyc3RCeXRlID0gYnJhbmNoRmlyc3RCeXRlOwotICAgICAgICAgICAgcmVx
Qnl0ZSA9IGJyYW5jaFJlcUJ5dGU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8qIElm
IHRoaXMgaXMgbm90IHRoZSBmaXJzdCBicmFuY2gsIHRoZSBmaXJzdCBjaGFyIGFuZCByZXFCeXRl
IGhhdmUgdG8KLSAgICAgICAgIG1hdGNoIHRoZSB2YWx1ZXMgZnJvbSBhbGwgdGhlIHByZXZpb3Vz
IGJyYW5jaGVzLCBleGNlcHQgdGhhdCBpZiB0aGUgcHJldmlvdXMKLSAgICAgICAgIHZhbHVlIGZv
ciByZXFCeXRlIGRpZG4ndCBoYXZlIFJFUV9WQVJZIHNldCwgaXQgY2FuIHN0aWxsIG1hdGNoLCBh
bmQgd2Ugc2V0Ci0gICAgICAgICBSRVFfVkFSWSBmb3IgdGhlIHJlZ2V4LiAqLwotICAgICAgICAK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAvKiBJZiB3ZSBwcmV2aW91c2x5IGhhZCBhIGZp
cnN0Qnl0ZSwgYnV0IGl0IGRvZXNuJ3QgbWF0Y2ggdGhlIG5ldyBicmFuY2gsCi0gICAgICAgICAg
ICAgd2UgaGF2ZSB0byBhYmFuZG9uIHRoZSBmaXJzdEJ5dGUgZm9yIHRoZSByZWdleCwgYnV0IGlm
IHRoZXJlIHdhcyBwcmV2aW91c2x5Ci0gICAgICAgICAgICAgbm8gcmVxQnl0ZSwgaXQgdGFrZXMg
b24gdGhlIHZhbHVlIG9mIHRoZSBvbGQgZmlyc3RCeXRlLiAqLwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoZmlyc3RCeXRlID49IDAgJiYgZmlyc3RCeXRlICE9IGJyYW5jaEZpcnN0Qnl0
ZSkgewotICAgICAgICAgICAgICAgIGlmIChyZXFCeXRlIDwgMCkKLSAgICAgICAgICAgICAgICAg
ICAgcmVxQnl0ZSA9IGZpcnN0Qnl0ZTsKLSAgICAgICAgICAgICAgICBmaXJzdEJ5dGUgPSBSRVFf
Tk9ORTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgLyogSWYgd2Ug
KG5vdyBvciBmcm9tIGJlZm9yZSkgaGF2ZSBubyBmaXJzdEJ5dGUsIGEgZmlyc3RCeXRlIGZyb20g
dGhlCi0gICAgICAgICAgICAgYnJhbmNoIGJlY29tZXMgYSByZXFCeXRlIGlmIHRoZXJlIGlzbid0
IGEgYnJhbmNoIHJlcUJ5dGUuICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmIChmaXJz
dEJ5dGUgPCAwICYmIGJyYW5jaEZpcnN0Qnl0ZSA+PSAwICYmIGJyYW5jaFJlcUJ5dGUgPCAwKQot
ICAgICAgICAgICAgICAgIGJyYW5jaFJlcUJ5dGUgPSBicmFuY2hGaXJzdEJ5dGU7Ci0gICAgICAg
ICAgICAKLSAgICAgICAgICAgIC8qIE5vdyBlbnN1cmUgdGhhdCB0aGUgcmVxYnl0ZXMgbWF0Y2gg
Ki8KLSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKChyZXFCeXRlICYgflJFUV9WQVJZKSAh
PSAoYnJhbmNoUmVxQnl0ZSAmIH5SRVFfVkFSWSkpCi0gICAgICAgICAgICAgICAgcmVxQnl0ZSA9
IFJFUV9OT05FOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHJlcUJ5dGUgfD0g
YnJhbmNoUmVxQnl0ZTsgICAvKiBUbyAib3IiIFJFUV9WQVJZICovCi0gICAgICAgIH0KLSAgICAg
ICAgCi0gICAgICAgIC8qIFJlYWNoZWQgZW5kIG9mIGV4cHJlc3Npb24sIGVpdGhlciAnKScgb3Ig
ZW5kIG9mIHBhdHRlcm4uIEdvIGJhY2sgdGhyb3VnaAotICAgICAgICAgdGhlIGFsdGVybmF0aXZl
IGJyYW5jaGVzIGFuZCByZXZlcnNlIHRoZSBjaGFpbiBvZiBvZmZzZXRzLCB3aXRoIHRoZSBmaWVs
ZCBpbgotICAgICAgICAgdGhlIEJSQSBpdGVtIG5vdyBiZWNvbWluZyBhbiBvZmZzZXQgdG8gdGhl
IGZpcnN0IGFsdGVybmF0aXZlLiBJZiB0aGVyZSBhcmUKLSAgICAgICAgIG5vIGFsdGVybmF0aXZl
cywgaXQgcG9pbnRzIHRvIHRoZSBlbmQgb2YgdGhlIGdyb3VwLiBUaGUgbGVuZ3RoIGluIHRoZQot
ICAgICAgICAgdGVybWluYXRpbmcga2V0IGlzIGFsd2F5cyB0aGUgbGVuZ3RoIG9mIHRoZSB3aG9s
ZSBicmFja2V0ZWQgaXRlbS4gSWYgYW55IG9mCi0gICAgICAgICB0aGUgaW1zIG9wdGlvbnMgd2Vy
ZSBjaGFuZ2VkIGluc2lkZSB0aGUgZ3JvdXAsIGNvbXBpbGUgYSByZXNldHRpbmcgb3AtY29kZQot
ICAgICAgICAgZm9sbG93aW5nLCBleGNlcHQgYXQgdGhlIHZlcnkgZW5kIG9mIHRoZSBwYXR0ZXJu
LiBSZXR1cm4gbGVhdmluZyB0aGUgcG9pbnRlcgotICAgICAgICAgYXQgdGhlIHRlcm1pbmF0aW5n
IGNoYXIuICovCi0gICAgICAgIAotICAgICAgICBpZiAocHRyID49IHBhdHRlcm5FbmQgfHwgKnB0
ciAhPSAnfCcpIHsKLSAgICAgICAgICAgIGludCBsZW5ndGggPSBjb2RlIC0gbGFzdEJyYW5jaDsK
LSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBpbnQgcHJldkxlbmd0aCA9IGdldExp
bmtWYWx1ZUFsbG93WmVybyhsYXN0QnJhbmNoICsgMSk7Ci0gICAgICAgICAgICAgICAgcHV0TGlu
a1ZhbHVlKGxhc3RCcmFuY2ggKyAxLCBsZW5ndGgpOwotICAgICAgICAgICAgICAgIGxlbmd0aCA9
IHByZXZMZW5ndGg7Ci0gICAgICAgICAgICAgICAgbGFzdEJyYW5jaCAtPSBsZW5ndGg7Ci0gICAg
ICAgICAgICB9IHdoaWxlIChsZW5ndGggPiAwKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
LyogRmlsbCBpbiB0aGUga2V0ICovCi0gICAgICAgICAgICAKLSAgICAgICAgICAgICpjb2RlID0g
T1BfS0VUOwotICAgICAgICAgICAgcHV0TGlua1ZhbHVlKGNvZGUgKyAxLCBjb2RlIC0gc3RhcnRf
YnJhY2tldCk7Ci0gICAgICAgICAgICBjb2RlICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgICAg
ICAKLSAgICAgICAgICAgIC8qIFNldCB2YWx1ZXMgdG8gcGFzcyBiYWNrICovCi0gICAgICAgICAg
ICAKLSAgICAgICAgICAgICpjb2RlUHRyID0gY29kZTsKLSAgICAgICAgICAgICpwdHJQdHIgPSBw
dHI7Ci0gICAgICAgICAgICAqZmlyc3RieXRlcHRyID0gZmlyc3RCeXRlOwotICAgICAgICAgICAg
KnJlcWJ5dGVwdHIgPSByZXFCeXRlOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IH0KLSAgICAgICAgCi0gICAgICAgIC8qIEFub3RoZXIgYnJhbmNoIGZvbGxvd3M7IGluc2VydCBh
biAib3IiIG5vZGUuIEl0cyBsZW5ndGggZmllbGQgcG9pbnRzIGJhY2sKLSAgICAgICAgIHRvIHRo
ZSBwcmV2aW91cyBicmFuY2ggd2hpbGUgdGhlIGJyYWNrZXQgcmVtYWlucyBvcGVuLiBBdCB0aGUg
ZW5kIHRoZSBjaGFpbgotICAgICAgICAgaXMgcmV2ZXJzZWQuIEl0J3MgZG9uZSBsaWtlIHRoaXMg
c28gdGhhdCB0aGUgc3RhcnQgb2YgdGhlIGJyYWNrZXQgaGFzIGEKLSAgICAgICAgIHplcm8gb2Zm
c2V0IHVudGlsIGl0IGlzIGNsb3NlZCwgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGRldGVjdCByZWN1
cnNpb24uICovCi0gICAgICAgIAotICAgICAgICAqY29kZSA9IE9QX0FMVDsKLSAgICAgICAgcHV0
TGlua1ZhbHVlKGNvZGUgKyAxLCBjb2RlIC0gbGFzdEJyYW5jaCk7Ci0gICAgICAgIGxhc3RCcmFu
Y2ggPSBjb2RlOwotICAgICAgICBjb2RlICs9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgIHB0cisr
OwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQotLyoqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICAgQ2hlY2sgZm9y
IGFuY2hvcmVkIGV4cHJlc3Npb24gICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUcnkgdG8gZmluZCBvdXQgaWYgdGhpcyBp
cyBhbiBhbmNob3JlZCByZWd1bGFyIGV4cHJlc3Npb24uIENvbnNpZGVyIGVhY2gKLWFsdGVybmF0
aXZlIGJyYW5jaC4gSWYgdGhleSBhbGwgc3RhcnQgT1BfQ0lSQywgb3Igd2l0aCBhIGJyYWNrZXQK
LWFsbCBvZiB3aG9zZSBhbHRlcm5hdGl2ZXMgc3RhcnQgT1BfQ0lSQyAocmVjdXJzZSBhZCBsaWIp
LCB0aGVuCi1pdCdzIGFuY2hvcmVkLgotCi1Bcmd1bWVudHM6Ci0gIGNvZGUgICAgICAgICAgcG9p
bnRzIHRvIHN0YXJ0IG9mIGV4cHJlc3Npb24gKHRoZSBicmFja2V0KQotICBjYXB0dXJlTWFwICAg
IGEgYml0bWFwIG9mIHdoaWNoIGJyYWNrZXRzIHdlIGFyZSBpbnNpZGUgd2hpbGUgdGVzdGluZzsg
dGhpcwotICAgICAgICAgICAgICAgICBoYW5kbGVzIHVwIHRvIHN1YnN0cmluZyAzMTsgYWxsIGJy
YWNrZXRzIGFmdGVyIHRoYXQgc2hhcmUKLSAgICAgICAgICAgICAgICAgdGhlIHplcm8gYml0Ci0g
IGJhY2tyZWZNYXAgICAgdGhlIGJhY2sgcmVmZXJlbmNlIGJpdG1hcAotKi8KLQotc3RhdGljIGJv
b2wgYnJhbmNoSXNBbmNob3JlZChjb25zdCB1bnNpZ25lZCBjaGFyKiBjb2RlKQotewotICAgIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIHNjb2RlID0gZmlyc3RTaWduaWZpY2FudE9wY29kZShjb2RlKTsK
LSAgICBpbnQgb3AgPSAqc2NvZGU7Ci0KLSAgICAvKiBCcmFja2V0cyAqLwotICAgIGlmIChvcCA+
PSBPUF9CUkEgfHwgb3AgPT0gT1BfQVNTRVJUKQotICAgICAgICByZXR1cm4gYnJhY2tldElzQW5j
aG9yZWQoc2NvZGUpOwotCi0gICAgLyogQ2hlY2sgZm9yIGV4cGxpY2l0IGFuY2hvcmluZyAqLyAg
ICAKLSAgICByZXR1cm4gb3AgPT0gT1BfQ0lSQzsKLX0KLQotc3RhdGljIGJvb2wgYnJhY2tldElz
QW5jaG9yZWQoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSkKLXsKLSAgICBkbyB7Ci0gICAgICAg
IGlmICghYnJhbmNoSXNBbmNob3JlZChjb2RlICsgMSArIExJTktfU0laRSkpCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGNvZGUgKz0gZ2V0TGlua1ZhbHVlKGNvZGUgKyAxKTsK
LSAgICB9IHdoaWxlICgqY29kZSA9PSBPUF9BTFQpOyAgIC8qIExvb3AgZm9yIGVhY2ggYWx0ZXJu
YXRpdmUgKi8KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICBDaGVjayBmb3Igc3RhcnRpbmcg
d2l0aCBeIG9yIC4qICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqLwotCi0vKiBUaGlzIGlzIGNhbGxlZCB0byBmaW5kIG91dCBpZiBldmVy
eSBicmFuY2ggc3RhcnRzIHdpdGggXiBvciAuKiBzbyB0aGF0Ci0iZmlyc3QgY2hhciIgcHJvY2Vz
c2luZyBjYW4gYmUgZG9uZSB0byBzcGVlZCB0aGluZ3MgdXAgaW4gbXVsdGlsaW5lCi1tYXRjaGlu
ZyBhbmQgZm9yIG5vbi1ET1RBTEwgcGF0dGVybnMgdGhhdCBzdGFydCB3aXRoIC4qICh3aGljaCBt
dXN0IHN0YXJ0IGF0Ci10aGUgYmVnaW5uaW5nIG9yIGFmdGVyIFxuKQotCi1FeGNlcHQgd2hlbiB0
aGUgLiogYXBwZWFycyBpbnNpZGUgY2FwdHVyaW5nIHBhcmVudGhlc2VzLCBhbmQgdGhlcmUgaXMg
YQotc3Vic2VxdWVudCBiYWNrIHJlZmVyZW5jZSB0byB0aG9zZSBwYXJlbnRoZXNlcy4gQnkga2Vl
cGluZyBhIGJpdG1hcCBvZiB0aGUKLWZpcnN0IDMxIGJhY2sgcmVmZXJlbmNlcywgd2UgY2FuIGNh
dGNoIHNvbWUgb2YgdGhlIG1vcmUgY29tbW9uIGNhc2VzIG1vcmUKLXByZWNpc2VseTsgYWxsIHRo
ZSBncmVhdGVyIGJhY2sgcmVmZXJlbmNlcyBzaGFyZSBhIHNpbmdsZSBiaXQuCi0KLUFyZ3VtZW50
czoKLSAgY29kZSAgICAgICAgICBwb2ludHMgdG8gc3RhcnQgb2YgZXhwcmVzc2lvbiAodGhlIGJy
YWNrZXQpCi0gIGNhcHR1cmVNYXAgICAgYSBiaXRtYXAgb2Ygd2hpY2ggYnJhY2tldHMgd2UgYXJl
IGluc2lkZSB3aGlsZSB0ZXN0aW5nOyB0aGlzCi0gICAgICAgICAgICAgICAgIGhhbmRsZXMgdXAg
dG8gc3Vic3RyaW5nIDMxOyBhbGwgYnJhY2tldHMgYWZ0ZXIgdGhhdCBzaGFyZQotICAgICAgICAg
ICAgICAgICB0aGUgemVybyBiaXQKLSAgYmFja3JlZk1hcCAgICB0aGUgYmFjayByZWZlcmVuY2Ug
Yml0bWFwCi0qLwotCi1zdGF0aWMgYm9vbCBicmFuY2hOZWVkc0xpbmVTdGFydChjb25zdCB1bnNp
Z25lZCBjaGFyKiBjb2RlLCB1bnNpZ25lZCBjYXB0dXJlTWFwLCB1bnNpZ25lZCBiYWNrcmVmTWFw
KQotewotICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIqIHNjb2RlID0gZmlyc3RTaWduaWZpY2FudE9w
Y29kZShjb2RlKTsKLSAgICBpbnQgb3AgPSAqc2NvZGU7Ci0gICAgCi0gICAgLyogQ2FwdHVyaW5n
IGJyYWNrZXRzICovCi0gICAgaWYgKG9wID4gT1BfQlJBKSB7Ci0gICAgICAgIGludCBjYXB0dXJl
TnVtID0gb3AgLSBPUF9CUkE7Ci0gICAgICAgIGlmIChjYXB0dXJlTnVtID4gRVhUUkFDVF9CQVNJ
Q19NQVgpCi0gICAgICAgICAgICBjYXB0dXJlTnVtID0gZ2V0MkJ5dGVWYWx1ZShzY29kZSArIDIg
KyBMSU5LX1NJWkUpOwotICAgICAgICBpbnQgYnJhY2tldE1hc2sgPSAoY2FwdHVyZU51bSA8IDMy
KSA/ICgxIDw8IGNhcHR1cmVOdW0pIDogMTsKLSAgICAgICAgcmV0dXJuIGJyYWNrZXROZWVkc0xp
bmVTdGFydChzY29kZSwgY2FwdHVyZU1hcCB8IGJyYWNrZXRNYXNrLCBiYWNrcmVmTWFwKTsKLSAg
ICB9Ci0gICAgCi0gICAgLyogT3RoZXIgYnJhY2tldHMgKi8KLSAgICBpZiAob3AgPT0gT1BfQlJB
IHx8IG9wID09IE9QX0FTU0VSVCkKLSAgICAgICAgcmV0dXJuIGJyYWNrZXROZWVkc0xpbmVTdGFy
dChzY29kZSwgY2FwdHVyZU1hcCwgYmFja3JlZk1hcCk7Ci0gICAgCi0gICAgLyogLiogbWVhbnMg
InN0YXJ0IGF0IHN0YXJ0IG9yIGFmdGVyIFxuIiBpZiBpdCBpc24ndCBpbiBicmFja2V0cyB0aGF0
Ci0gICAgIG1heSBiZSByZWZlcmVuY2VkLiAqLwotICAgIAotICAgIGlmIChvcCA9PSBPUF9UWVBF
U1RBUiB8fCBvcCA9PSBPUF9UWVBFTUlOU1RBUikKLSAgICAgICAgcmV0dXJuIHNjb2RlWzFdID09
IE9QX05PVF9ORVdMSU5FICYmICEoY2FwdHVyZU1hcCAmIGJhY2tyZWZNYXApOwotCi0gICAgLyog
RXhwbGljaXQgXiAqLwotICAgIHJldHVybiBvcCA9PSBPUF9DSVJDIHx8IG9wID09IE9QX0JPTDsK
LX0KLQotc3RhdGljIGJvb2wgYnJhY2tldE5lZWRzTGluZVN0YXJ0KGNvbnN0IHVuc2lnbmVkIGNo
YXIqIGNvZGUsIHVuc2lnbmVkIGNhcHR1cmVNYXAsIHVuc2lnbmVkIGJhY2tyZWZNYXApCi17Ci0g
ICAgZG8gewotICAgICAgICBpZiAoIWJyYW5jaE5lZWRzTGluZVN0YXJ0KGNvZGUgKyAxICsgTElO
S19TSVpFLCBjYXB0dXJlTWFwLCBiYWNrcmVmTWFwKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgY29kZSArPSBnZXRMaW5rVmFsdWUoY29kZSArIDEpOwotICAgIH0gd2hpbGUg
KCpjb2RlID09IE9QX0FMVCk7ICAvKiBMb29wIGZvciBlYWNoIGFsdGVybmF0aXZlICovCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqCi0qICAgICAgIENoZWNrIGZvciBhc3NlcnRlZCBmaXhlZCBmaXJzdCBjaGFy
ICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
Ki8KLQotLyogRHVyaW5nIGNvbXBpbGF0aW9uLCB0aGUgImZpcnN0IGNoYXIiIHNldHRpbmdzIGZy
b20gZm9yd2FyZCBhc3NlcnRpb25zIGFyZQotZGlzY2FyZGVkLCBiZWNhdXNlIHRoZXkgY2FuIGNh
dXNlIGNvbmZsaWN0cyB3aXRoIGFjdHVhbCBsaXRlcmFscyB0aGF0IGZvbGxvdy4KLUhvd2V2ZXIs
IGlmIHdlIGVuZCB1cCB3aXRob3V0IGEgZmlyc3QgY2hhciBzZXR0aW5nIGZvciBhbiB1bmFuY2hv
cmVkIHBhdHRlcm4sCi1pdCBpcyB3b3J0aCBzY2FubmluZyB0aGUgcmVnZXggdG8gc2VlIGlmIHRo
ZXJlIGlzIGFuIGluaXRpYWwgYXNzZXJ0ZWQgZmlyc3QKLWNoYXIuIElmIGFsbCBicmFuY2hlcyBz
dGFydCB3aXRoIHRoZSBzYW1lIGFzc2VydGVkIGNoYXIsIG9yIHdpdGggYSBicmFja2V0IGFsbAot
b2Ygd2hvc2UgYWx0ZXJuYXRpdmVzIHN0YXJ0IHdpdGggdGhlIHNhbWUgYXNzZXJ0ZWQgY2hhciAo
cmVjdXJzZSBhZCBsaWIpLCB0aGVuCi13ZSByZXR1cm4gdGhhdCBjaGFyLCBvdGhlcndpc2UgLTEu
Ci0KLUFyZ3VtZW50czoKLSAgY29kZSAgICAgICBwb2ludHMgdG8gc3RhcnQgb2YgZXhwcmVzc2lv
biAodGhlIGJyYWNrZXQpCi0gIG9wdGlvbnMgICAgcG9pbnRlciB0byB0aGUgb3B0aW9ucyAodXNl
ZCB0byBjaGVjayBjYXNpbmcgY2hhbmdlcykKLSAgaW5hc3NlcnQgICB0cnVlIGlmIGluIGFuIGFz
c2VydGlvbgotCi1SZXR1cm5zOiAgICAgLTEgb3IgdGhlIGZpeGVkIGZpcnN0IGNoYXIKLSovCi0K
LXN0YXRpYyBpbnQgYnJhbmNoRmluZEZpcnN0QXNzZXJ0ZWRDaGFyYWN0ZXIoY29uc3QgdW5zaWdu
ZWQgY2hhciogY29kZSwgYm9vbCBpbmFzc2VydCkKLXsKLSAgICBjb25zdCB1bnNpZ25lZCBjaGFy
KiBzY29kZSA9IGZpcnN0U2lnbmlmaWNhbnRPcGNvZGVTa2lwcGluZ0Fzc2VydGlvbnMoY29kZSk7
Ci0gICAgaW50IG9wID0gKnNjb2RlOwotICAgIAotICAgIGlmIChvcCA+PSBPUF9CUkEpCi0gICAg
ICAgIG9wID0gT1BfQlJBOwotICAgIAotICAgIHN3aXRjaCAob3ApIHsKLSAgICAgICAgZGVmYXVs
dDoKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgIAotICAgICAgICBjYXNlIE9Q
X0JSQToKLSAgICAgICAgY2FzZSBPUF9BU1NFUlQ6Ci0gICAgICAgICAgICByZXR1cm4gYnJhY2tl
dEZpbmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKHNjb2RlLCBvcCA9PSBPUF9BU1NFUlQpOwotCi0g
ICAgICAgIGNhc2UgT1BfRVhBQ1Q6Ci0gICAgICAgICAgICBzY29kZSArPSAyOwotICAgICAgICAg
ICAgLyogRmFsbCB0aHJvdWdoICovCi0KLSAgICAgICAgY2FzZSBPUF9DSEFSOgotICAgICAgICBj
YXNlIE9QX0NIQVJfSUdOT1JJTkdfQ0FTRToKLSAgICAgICAgY2FzZSBPUF9BU0NJSV9DSEFSOgot
ICAgICAgICBjYXNlIE9QX0FTQ0lJX0xFVFRFUl9JR05PUklOR19DQVNFOgotICAgICAgICBjYXNl
IE9QX1BMVVM6Ci0gICAgICAgIGNhc2UgT1BfTUlOUExVUzoKLSAgICAgICAgICAgIGlmICghaW5h
c3NlcnQpCi0gICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgcmV0dXJuIHNj
b2RlWzFdOwotICAgIH0KLX0KLQotc3RhdGljIGludCBicmFja2V0RmluZEZpcnN0QXNzZXJ0ZWRD
aGFyYWN0ZXIoY29uc3QgdW5zaWduZWQgY2hhciogY29kZSwgYm9vbCBpbmFzc2VydCkKLXsKLSAg
ICBpbnQgYyA9IC0xOwotICAgIGRvIHsKLSAgICAgICAgaW50IGQgPSBicmFuY2hGaW5kRmlyc3RB
c3NlcnRlZENoYXJhY3Rlcihjb2RlICsgMSArIExJTktfU0laRSwgaW5hc3NlcnQpOwotICAgICAg
ICBpZiAoZCA8IDApCi0gICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgIGlmIChjIDwgMCkK
LSAgICAgICAgICAgIGMgPSBkOwotICAgICAgICBlbHNlIGlmIChjICE9IGQpCi0gICAgICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICAgIGNvZGUgKz0gZ2V0TGlua1ZhbHVlKGNvZGUgKyAxKTsKLSAg
ICB9IHdoaWxlICgqY29kZSA9PSBPUF9BTFQpOwotICAgIHJldHVybiBjOwotfQotCi1zdGF0aWMg
aW5saW5lIGludCBtdWx0aXBseVdpdGhPdmVyZmxvd0NoZWNrKGludCBhLCBpbnQgYikKLXsKLSAg
ICBpZiAoIWEgfHwgIWIpCi0gICAgICAgIHJldHVybiAwOwotICAgIGlmIChhID4gTUFYX1BBVFRF
Uk5fU0laRSAvIGIpCi0gICAgICAgIHJldHVybiAtMTsKLSAgICByZXR1cm4gYSAqIGI7Ci19Ci0K
LXN0YXRpYyBpbnQgY2FsY3VsYXRlQ29tcGlsZWRQYXR0ZXJuTGVuZ3RoKGNvbnN0IFVDaGFyKiBw
YXR0ZXJuLCBpbnQgcGF0dGVybkxlbmd0aCwgSlNSZWdFeHBJZ25vcmVDYXNlT3B0aW9uIGlnbm9y
ZUNhc2UsCi0gICAgQ29tcGlsZURhdGEmIGNkLCBFcnJvckNvZGUmIGVycm9yY29kZSkKLXsKLSAg
ICAvKiBNYWtlIGEgcGFzcyBvdmVyIHRoZSBwYXR0ZXJuIHRvIGNvbXB1dGUgdGhlCi0gICAgIGFt
b3VudCBvZiBzdG9yZSByZXF1aXJlZCB0byBob2xkIHRoZSBjb21waWxlZCBjb2RlLiBUaGlzIGRv
ZXMgbm90IGhhdmUgdG8gYmUKLSAgICAgcGVyZmVjdCBhcyBsb25nIGFzIGVycm9ycyBhcmUgb3Zl
cmVzdGltYXRlcy4gKi8KLQotICAgIGlmIChwYXR0ZXJuTGVuZ3RoID4gTUFYX1BBVFRFUk5fU0la
RSkgewotICAgICAgICBlcnJvcmNvZGUgPSBFUlIxNjsKLSAgICAgICAgcmV0dXJuIC0xOwotICAg
IH0KLQotICAgIGludCBsZW5ndGggPSAxICsgTElOS19TSVpFOyAgICAgIC8qIEZvciBpbml0aWFs
IEJSQSBwbHVzIGxlbmd0aCAqLwotICAgIGludCBicmFuY2hfZXh0cmEgPSAwOwotICAgIGludCBs
YXN0aXRlbWxlbmd0aCA9IDA7Ci0gICAgdW5zaWduZWQgYnJhc3RhY2twdHIgPSAwOwotICAgIEZp
eGVkQXJyYXk8aW50LCBCUkFTVEFDS19TSVpFPiBicmFzdGFjazsKLSAgICBGaXhlZEFycmF5PHVu
c2lnbmVkIGNoYXIsIEJSQVNUQUNLX1NJWkU+IGJyYWxlbnN0YWNrOwotICAgIGludCBicmFjb3Vu
dCA9IDA7Ci0gICAgCi0gICAgY29uc3QgVUNoYXIqIHB0ciA9IChjb25zdCBVQ2hhciopKHBhdHRl
cm4gLSAxKTsKLSAgICBjb25zdCBVQ2hhciogcGF0dGVybkVuZCA9IChjb25zdCBVQ2hhciopKHBh
dHRlcm4gKyBwYXR0ZXJuTGVuZ3RoKTsKLSAgICAKLSAgICB3aGlsZSAoKytwdHIgPCBwYXR0ZXJu
RW5kKSB7Ci0gICAgICAgIGludCBtaW5SZXBlYXRzID0gMCwgbWF4UmVwZWF0cyA9IDA7Ci0gICAg
ICAgIGludCBjID0gKnB0cjsKLQotICAgICAgICBzd2l0Y2ggKGMpIHsKLSAgICAgICAgICAgIC8q
IEEgYmFja3NsYXNoZWQgaXRlbSBtYXkgYmUgYW4gZXNjYXBlZCBkYXRhIGNoYXJhY3RlciBvciBp
dCBtYXkgYmUgYQotICAgICAgICAgICAgIGNoYXJhY3RlciB0eXBlLiAqLwotCi0gICAgICAgICAg
ICBjYXNlICdcXCc6Ci0gICAgICAgICAgICAgICAgYyA9IGNoZWNrRXNjYXBlKCZwdHIsIHBhdHRl
cm5FbmQsICZlcnJvcmNvZGUsIGNkLm51bUNhcHR1cmluZ0JyYWNrZXRzLCBmYWxzZSk7Ci0gICAg
ICAgICAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKQotICAgICAgICAgICAgICAgICAgICByZXR1
cm4gLTE7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbGFzdGl0ZW1sZW5ndGgg
PSAxOyAgICAgLyogRGVmYXVsdCBsZW5ndGggb2YgbGFzdCBpdGVtIGZvciByZXBlYXRzICovCi0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKGMgPj0gMCkgeyAgICAgICAgICAg
IC8qIERhdGEgY2hhcmFjdGVyICovCi0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSAyOyAg
ICAgICAgICAvKiBGb3IgYSBvbmUtYnl0ZSBjaGFyYWN0ZXIgKi8KLSAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChjID4gMTI3KSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBq
c2NfcGNyZV91dGY4X3RhYmxlMV9zaXplOyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGMgPD0ganNjX3BjcmVfdXRmOF90YWJsZTFbaV0pIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoICs9IGk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBsYXN0aXRl
bWxlbmd0aCArPSBpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogT3RoZXIgZXNjYXBlcyBuZWVkIG9uZSBi
eXRlICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgbGVuZ3RoKys7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogQSBiYWNrIHJlZmVyZW5jZSBuZWVkcyBh
biBhZGRpdGlvbmFsIDIgYnl0ZXMsIHBsdXMgZWl0aGVyIG9uZSBvciA1Ci0gICAgICAgICAgICAg
ICAgIGJ5dGVzIGZvciBhIHJlcGVhdC4gV2UgYWxzbyBuZWVkIHRvIGtlZXAgdGhlIHZhbHVlIG9m
IHRoZSBoaWdoZXN0Ci0gICAgICAgICAgICAgICAgIGJhY2sgcmVmZXJlbmNlLiAqLwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChjIDw9IC1FU0NfUkVGKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGludCByZWZudW0gPSAtYyAtIEVTQ19SRUY7Ci0gICAgICAgICAgICAgICAg
ICAgIGNkLmJhY2tyZWZNYXAgfD0gKHJlZm51bSA8IDMyKSA/ICgxIDw8IHJlZm51bSkgOiAxOwot
ICAgICAgICAgICAgICAgICAgICBpZiAocmVmbnVtID4gY2QudG9wQmFja3JlZikKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGNkLnRvcEJhY2tyZWYgPSByZWZudW07Ci0gICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCArPSAyOyAgIC8qIEZvciBzaW5nbGUgYmFjayByZWZlcmVuY2UgKi8KLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHNhZmVseUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAn
eycpICYmIGlzQ291bnRlZFJlcGVhdChwdHIgKyAyLCBwYXR0ZXJuRW5kKSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgcHRyID0gcmVhZFJlcGVhdENvdW50cyhwdHIgKyAyLCAmbWluUmVwZWF0
cywgJm1heFJlcGVhdHMsICZlcnJvcmNvZGUpOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGVycm9yY29kZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoKG1pblJlcGVhdHMgPT0gMCAmJiAobWF4UmVwZWF0cyA9
PSAxIHx8IG1heFJlcGVhdHMgPT0gLTEpKSB8fAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChtaW5SZXBlYXRzID09IDEgJiYgbWF4UmVwZWF0cyA9PSAtMSkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICc/JykpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICBjYXNlICdeJzogICAgIC8qIFNpbmdsZS1ieXRlIG1ldGFjaGFyYWN0
ZXJzICovCi0gICAgICAgICAgICBjYXNlICcuJzoKLSAgICAgICAgICAgIGNhc2UgJyQnOgotICAg
ICAgICAgICAgICAgIGxlbmd0aCsrOwotICAgICAgICAgICAgICAgIGxhc3RpdGVtbGVuZ3RoID0g
MTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGNhc2UgJyonOiAgICAgICAgICAgIC8qIFRoZXNlIHJlcGVhdHMgd29uJ3QgYmUgYWZ0ZXIg
YnJhY2tldHM7ICovCi0gICAgICAgICAgICBjYXNlICcrJzogICAgICAgICAgICAvKiB0aG9zZSBh
cmUgaGFuZGxlZCBzZXBhcmF0ZWx5ICovCi0gICAgICAgICAgICBjYXNlICc/JzoKLSAgICAgICAg
ICAgICAgICBsZW5ndGgrKzsKLSAgICAgICAgICAgICAgICBnb3RvIFBPU1NFU1NJVkU7Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBUaGlzIGNvdmVycyB0aGUgY2FzZXMgb2YgYnJh
Y2VkIHJlcGVhdHMgYWZ0ZXIgYSBzaW5nbGUgY2hhciwgbWV0YWNoYXIsCi0gICAgICAgICAgICAg
Y2xhc3MsIG9yIGJhY2sgcmVmZXJlbmNlLiAqLwotCi0gICAgICAgICAgICBjYXNlICd7JzoKLSAg
ICAgICAgICAgICAgICBpZiAoIWlzQ291bnRlZFJlcGVhdChwdHIgKyAxLCBwYXR0ZXJuRW5kKSkK
LSAgICAgICAgICAgICAgICAgICAgZ290byBOT1JNQUxfQ0hBUjsKLSAgICAgICAgICAgICAgICBw
dHIgPSByZWFkUmVwZWF0Q291bnRzKHB0ciArIDEsICZtaW5SZXBlYXRzLCAmbWF4UmVwZWF0cywg
JmVycm9yY29kZSk7Ci0gICAgICAgICAgICAgICAgaWYgKGVycm9yY29kZSAhPSAwKQotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgLyogVGhlc2Ugc3BlY2lhbCBjYXNlcyBqdXN0IGluc2VydCBvbmUgZXh0cmEgb3Bjb2RlICov
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKChtaW5SZXBlYXRzID09IDAg
JiYgKG1heFJlcGVhdHMgPT0gMSB8fCBtYXhSZXBlYXRzID09IC0xKSkgfHwKLSAgICAgICAgICAg
ICAgICAgICAgKG1pblJlcGVhdHMgPT0gMSAmJiBtYXhSZXBlYXRzID09IC0xKSkKLSAgICAgICAg
ICAgICAgICAgICAgbGVuZ3RoKys7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
LyogVGhlc2UgY2FzZXMgbWlnaHQgaW5zZXJ0IGFkZGl0aW9uYWwgY29waWVzIG9mIGEgcHJlY2Vk
aW5nIGNoYXJhY3Rlci4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1pblJlcGVhdHMgIT0gMSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgbGVuZ3RoIC09IGxhc3RpdGVtbGVuZ3RoOyAgIC8qIFVuY291bnQgdGhl
IG9yaWdpbmFsIGNoYXIgb3IgbWV0YWNoYXIgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChtaW5SZXBlYXRzID4gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0g
MyArIGxhc3RpdGVtbGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgIGxlbmd0aCArPSBsYXN0aXRlbWxlbmd0aCArICgobWF4UmVwZWF0cyA+IDApID8gMyA6
IDEpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICc/JykpCi0gICAgICAg
ICAgICAgICAgICAgIHB0cisrOyAgICAgIC8qIE5lZWRzIG5vIGV4dHJhIGxlbmd0aCAqLwotCi0g
ICAgICAgICAgICBQT1NTRVNTSVZFOiAgICAgICAgICAgICAgICAgICAgIC8qIFRlc3QgZm9yIHBv
c3Nlc3NpdmUgcXVhbnRpZmllciAqLwotICAgICAgICAgICAgICAgIGlmIChzYWZlbHlDaGVja05l
eHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJysnKSkgewotICAgICAgICAgICAgICAgICAgICBwdHIr
KzsKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDIgKyAyICogTElOS19TSVpFOyAgIC8q
IEFsbG93IGZvciBhdG9taWMgYnJhY2tldHMgKi8KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBBbiBh
bHRlcm5hdGlvbiBjb250YWlucyBhbiBvZmZzZXQgdG8gdGhlIG5leHQgYnJhbmNoIG9yIGtldC4g
SWYgYW55IGltcwotICAgICAgICAgICAgIG9wdGlvbnMgY2hhbmdlZCBpbiB0aGUgcHJldmlvdXMg
YnJhbmNoKGVzKSwgYW5kL29yIGlmIHdlIGFyZSBpbiBhCi0gICAgICAgICAgICAgbG9va2JlaGlu
ZCBhc3NlcnRpb24sIGV4dHJhIHNwYWNlIHdpbGwgYmUgbmVlZGVkIGF0IHRoZSBzdGFydCBvZiB0
aGUKLSAgICAgICAgICAgICBicmFuY2guIFRoaXMgaXMgaGFuZGxlZCBieSBicmFuY2hfZXh0cmEu
ICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlICd8JzoKLSAgICAgICAgICAg
ICAgICBpZiAoYnJhc3RhY2twdHIgPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgY2QubmVlZE91
dGVyQnJhY2tldCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgbGVuZ3RoICs9IDEgKyBMSU5LX1NJ
WkUgKyBicmFuY2hfZXh0cmE7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAvKiBBIGNoYXJhY3RlciBjbGFzcyB1c2VzIDMzIGNoYXJhY3Rl
cnMgcHJvdmlkZWQgdGhhdCBhbGwgdGhlIGNoYXJhY3RlcgotICAgICAgICAgICAgIHZhbHVlcyBh
cmUgbGVzcyB0aGFuIDI1Ni4gT3RoZXJ3aXNlLCBpdCB1c2VzIGEgYml0IG1hcCBmb3IgbG93IHZh
bHVlZAotICAgICAgICAgICAgIGNoYXJhY3RlcnMsIGFuZCBpbmRpdmlkdWFsIGl0ZW1zIGZvciBv
dGhlcnMuIERvbid0IHdvcnJ5IGFib3V0IGNoYXJhY3RlcgotICAgICAgICAgICAgIHR5cGVzIHRo
YXQgYXJlbid0IGFsbG93ZWQgaW4gY2xhc3NlcyAtIHRoZXknbGwgZ2V0IHBpY2tlZCB1cCBkdXJp
bmcgdGhlCi0gICAgICAgICAgICAgY29tcGlsZS4gQSBjaGFyYWN0ZXIgY2xhc3MgdGhhdCBjb250
YWlucyBvbmx5IG9uZSBzaW5nbGUtYnl0ZSBjaGFyYWN0ZXIKLSAgICAgICAgICAgICB1c2VzIDIg
b3IgMyBieXRlcywgZGVwZW5kaW5nIG9uIHdoZXRoZXIgaXQgaXMgbmVnYXRlZCBvciBub3QuIE5v
dGljZSB0aGlzCi0gICAgICAgICAgICAgd2hlcmUgd2UgY2FuLiAoSW4gVVRGLTggbW9kZSB3ZSBj
YW4gZG8gdGhpcyBvbmx5IGZvciBjaGFycyA8IDEyOC4pICovCi0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICBjYXNlICdbJzogewotICAgICAgICAgICAgICAgIGludCBjbGFzc19vcHRjb3Vu
dDsKLSAgICAgICAgICAgICAgICBpZiAoKigrK3B0cikgPT0gJ14nKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGNsYXNzX29wdGNvdW50ID0gMTA7ICAvKiBHcmVhdGVyIHRoYW4gb25lICovCi0gICAg
ICAgICAgICAgICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNsYXNzX29wdGNvdW50ID0gMDsKLSAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICBib29sIGNsYXNzX3V0ZjggPSBmYWxzZTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBmb3IgKDsgcHRyIDwgcGF0dGVybkVuZCAmJiAq
cHRyICE9ICddJzsgKytwdHIpIHsKLSAgICAgICAgICAgICAgICAgICAgLyogQ2hlY2sgZm9yIGVz
Y2FwZXMgKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmICgq
cHRyID09ICdcXCcpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjaGVja0VzY2FwZSgm
cHRyLCBwYXR0ZXJuRW5kLCAmZXJyb3Jjb2RlLCBjZC5udW1DYXB0dXJpbmdCcmFja2V0cywgdHJ1
ZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3Jjb2RlICE9IDApCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBIYW5kbGUgZXNjYXBlcyB0aGF0IHR1cm4gaW50
byBjaGFyYWN0ZXJzICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChjID49IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBO
T05fU1BFQ0lBTF9DSEFSQUNURVI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8qIEVzY2FwZXMgdGhhdCBhcmUgbWV0YS10aGluZ3MuIFRoZSBub3Jt
YWwgb25lcyBqdXN0IGFmZmVjdCB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICBiaXQgbWFw
LCBidXQgVW5pY29kZSBwcm9wZXJ0aWVzIHJlcXVpcmUgYW4gWENMQVNTIGV4dGVuZGVkIGl0ZW0u
ICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGVs
c2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc19vcHRjb3VudCA9IDEwOyAgICAg
ICAgIC8qIFxkLCBccyBldGM7IG1ha2Ugc3VyZSA+IDEgKi8KLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogQW55dGhpbmcg
ZWxzZSBpbmNyZW1lbnRzIHRoZSBwb3NzaWJsZSBvcHRpbWl6YXRpb24gY291bnQuIFdlIGhhdmUg
dG8KLSAgICAgICAgICAgICAgICAgICAgIGRldGVjdCByYW5nZXMgaGVyZSBzbyB0aGF0IHdlIGNh
biBjb21wdXRlIHRoZSBudW1iZXIgb2YgZXh0cmEgcmFuZ2VzIGZvcgotICAgICAgICAgICAgICAg
ICAgICAgY2FzZWxlc3Mgd2lkZSBjaGFyYWN0ZXJzIHdoZW4gVUNQIHN1cHBvcnQgaXMgYXZhaWxh
YmxlLiBJZiB0aGVyZSBhcmUgd2lkZQotICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVycywg
d2UgYXJlIGdvaW5nIHRvIGhhdmUgdG8gdXNlIGFuIFhDTEFTUywgZXZlbiBmb3Igc2luZ2xlCi0g
ICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJzLiAqLwotICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjID0g
KnB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
LyogQ29tZSBoZXJlIGZyb20gaGFuZGxpbmcgXCBhYm92ZSB3aGVuIGl0IGVzY2FwZXMgdG8gYSBj
aGFyIHZhbHVlICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgTk9OX1NQRUNJQUxfQ0hBUkFDVEVSOgotICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3Nf
b3B0Y291bnQrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGQgPSAtMTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzYWZlbHlDaGVj
a05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJy0nKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IFVDaGFyKiBoeXB0ciA9IHB0cisrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChzYWZlbHlDaGVja05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJ1xcJykpIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGQgPSBjaGVja0VzY2FwZSgmcHRyLCBwYXR0ZXJuRW5kLCAmZXJyb3Jj
b2RlLCBjZC5udW1DYXB0dXJpbmdCcmFja2V0cywgdHJ1ZSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChlcnJvcmNvZGUgIT0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoKHB0ciArIDEgPCBwYXR0ZXJuRW5k
KSAmJiBwdHJbMV0gIT0gJ10nKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkID0g
KisrcHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcHRyID0gaHlwdHI7ICAgICAgLyogZ28gYmFjayB0byBo
eXBoZW4gYXMgZGF0YSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAvKiBJZiBkID49IDAgd2UgaGF2
ZSBhIHJhbmdlLiBJbiBVVEYtOCBtb2RlLCBpZiB0aGUgZW5kIGlzID4gMjU1LCBvciA+Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgMTI3IGZvciBjYXNlbGVzcyBtYXRjaGluZywgd2Ugd2lsbCBu
ZWVkIHRvIHVzZSBhbiBYQ0xBU1MuICovCi0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkID49IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjbGFzc19vcHRjb3VudCA9IDEwOyAgICAgLyogRW5zdXJlID4gMSAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChkIDwgYykgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBlcnJvcmNvZGUgPSBFUlI4OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoZCA+IDI1
NSB8fCAoaWdub3JlQ2FzZSAmJiBkID4gMTI3KSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgdW5zaWduZWQgY2hhciBidWZmZXJbNl07Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghY2xhc3NfdXRmOCkgICAgICAgICAvKiBBbGxvdyBmb3IgWENMQVNTIG92
ZXJoZWFkICovCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzX3V0ZjggPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IExJTktfU0laRSArIDI7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIElmIHdlIGhhdmUgVUNQIHN1
cHBvcnQsIGZpbmQgb3V0IGhvdyBtYW55IGV4dHJhIHJhbmdlcyBhcmUKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5lZWRlZCB0byBtYXAgdGhlIG90aGVyIGNhc2Ugb2YgY2hhcmFj
dGVycyB3aXRoaW4gdGhpcyByYW5nZS4gV2UKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGhhdmUgdG8gbWltaWMgdGhlIHJhbmdlIG9wdGltaXphdGlvbiBoZXJlLCBiZWNhdXNlIGV4
dGVuZGluZyB0aGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlIHVwd2Fy
ZHMgbWlnaHQgcHVzaCBkIG92ZXIgYSBib3VuZGFyeSB0aGF0IG1ha2VzIGl0IHVzZQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5vdGhlciBieXRlIGluIHRoZSBVVEYtOCByZXBy
ZXNlbnRhdGlvbi4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpZ25vcmVDYXNlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgb2NjLCBvY2Q7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbnQgY2MgPSBjOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW50IG9yaWdkID0gZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHdoaWxlIChnZXRPdGhlcmNhc2VSYW5nZSgmY2MsIG9yaWdkLCAmb2NjLCAmb2NkKSkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvY2MgPj0gYyAmJiBv
Y2QgPD0gZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7ICAgLyogU2tpcCBlbWJlZGRlZCAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChvY2MgPCBjICAmJiBvY2QgPj0gYyAtIDEpICAvKiBFeHRlbmQgdGhlIGJhc2ljIHJhbmdlICov
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAvKiBpZiB0aGVyZSBpcyBvdmVybGFwLCAgICovCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBvY2M7ICAgICAgICAgICAgICAgICAg
ICAgLyogbm90aW5nIHRoYXQgaWYgb2NjIDwgYyAqLwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsgICAgICAgICAgICAgICAgICAgIC8qIHdlIGNh
bid0IGhhdmUgb2NkID4gZCAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGJlY2F1c2UgYSBzdWJyYW5nZSBp
cyAgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAob2NkID4g
ZCAmJiBvY2MgPD0gZCArIDEpICAgLyogYWx3YXlzIHNob3J0ZXIgdGhhbiAgICAqLwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLyogdGhlIGJhc2ljIHJhbmdlLiAgICAgICAqLwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkID0gb2NkOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogQW4gZXh0cmEgaXRl
bSBpcyBuZWVkZWQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gMSArIGVu
Y29kZVVURjgob2NjLCBidWZmZXIpICsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoKG9jYyA9PSBvY2QpID8gMCA6IGVuY29kZVVURjgob2NkLCBidWZmZXIpKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLyogVGhlIGxlbmd0aCBvZiB0aGUgKHBvc3NpYmx5IGV4
dGVuZGVkKSByYW5nZSAqLwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoICs9IDEgKyBlbmNvZGVVVEY4KGMsIGJ1
ZmZlcikgKyBlbmNvZGVVVEY4KGQsIGJ1ZmZlcik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAv
KiBXZSBoYXZlIGEgc2luZ2xlIGNoYXJhY3Rlci4gVGhlcmUgaXMgbm90aGluZyB0byBiZSBkb25l
IHVubGVzcyB3ZQotICAgICAgICAgICAgICAgICAgICAgICAgIGFyZSBpbiBVVEYtOCBtb2RlLiBJ
ZiB0aGUgY2hhciBpcyA+IDI1NSwgb3IgMTI3IHdoZW4gY2FzZWxlc3MsIHdlIG11c3QKLSAgICAg
ICAgICAgICAgICAgICAgICAgICBhbGxvdyBmb3IgYW4gWENMX1NJTkdMRSBpdGVtLCBkb3VibGVk
IGZvciBjYXNlbGVzc25lc3MgaWYgdGhlcmUgaXMgVUNQCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgc3VwcG9ydC4gKi8KLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChjID4gMjU1
IHx8IChpZ25vcmVDYXNlICYmIGMgPiAxMjcpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBjaGFyIGJ1ZmZlcls2XTsKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2xhc3Nfb3B0Y291bnQgPSAxMDsgICAgIC8qIEVuc3VyZSA+IDEgKi8KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjbGFzc191dGY4KSAgICAgICAgIC8qIEFs
bG93IGZvciBYQ0xBU1Mgb3ZlcmhlYWQgKi8KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NfdXRmOCA9IHRy
dWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gTElOS19T
SVpFICsgMjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gKGlnbm9yZUNhc2UgPyAyIDogMSkgKiAoMSAr
IGVuY29kZVVURjgoYywgYnVmZmVyKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChwdHIgPj0g
cGF0dGVybkVuZCkgeyAgIC8qIE1pc3NpbmcgdGVybWluYXRpbmcgJ10nICovCi0gICAgICAgICAg
ICAgICAgICAgIGVycm9yY29kZSA9IEVSUjY7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiAt
MTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
LyogV2UgY2FuIG9wdGltaXplIHdoZW4gdGhlcmUgd2FzIG9ubHkgb25lIG9wdGltaXphYmxlIGNo
YXJhY3Rlci4KLSAgICAgICAgICAgICAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgZGV0ZWN0
IHRoZSBjYXNlIG9mIGEgbmVnYXRlZCBzaW5nbGUgY2hhcmFjdGVyLgotICAgICAgICAgICAgICAg
ICBJbiB0aGF0IGNhc2Ugd2UgZG8gYW4gaW5jb3JyZWN0IGxlbmd0aCBjb21wdXRhdGlvbiwgYnV0
IGl0J3Mgbm90IGEgc2VyaW91cwotICAgICAgICAgICAgICAgICBwcm9ibGVtIGJlY2F1c2UgdGhl
IGNvbXB1dGVkIGxlbmd0aCBpcyB0b28gbGFyZ2UgcmF0aGVyIHRoYW4gdG9vIHNtYWxsLiAqLwot
Ci0gICAgICAgICAgICAgICAgaWYgKGNsYXNzX29wdGNvdW50ID09IDEpCi0gICAgICAgICAgICAg
ICAgICAgIGdvdG8gTk9STUFMX0NIQVI7Ci0KLSAgICAgICAgICAgICAgICAvKiBIZXJlLCB3ZSBo
YW5kbGUgcmVwZWF0cyBmb3IgdGhlIGNsYXNzIG9wY29kZXMuICovCi0gICAgICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gMzM7Ci0gICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAvKiBBIHJlcGVhdCBuZWVkcyBlaXRoZXIgMSBvciA1IGJ5
dGVzLiBJZiBpdCBpcyBhIHBvc3Nlc3NpdmUgcXVhbnRpZmllciwKLSAgICAgICAgICAgICAgICAg
ICAgIHdlIGFsc28gbmVlZCBleHRyYSBmb3Igd3JhcHBpbmcgdGhlIHdob2xlIHRoaW5nIGluIGEg
c3ViLXBhdHRlcm4uICovCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihwdHIsIHBhdHRlcm5FbmQsICd7JykgJiYgaXNDb3Vu
dGVkUmVwZWF0KHB0ciArIDIsIHBhdHRlcm5FbmQpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBwdHIgPSByZWFkUmVwZWF0Q291bnRzKHB0ciArIDIsICZtaW5SZXBlYXRzLCAmbWF4UmVwZWF0
cywgJmVycm9yY29kZSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3Jjb2RlICE9
IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKChtaW5SZXBlYXRzID09IDAgJiYgKG1heFJlcGVhdHMgPT0gMSB8fCBt
YXhSZXBlYXRzID09IC0xKSkgfHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAobWluUmVw
ZWF0cyA9PSAxICYmIG1heFJlcGVhdHMgPT0gLTEpKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGxlbmd0aCsrOwotICAgICAgICAgICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGxlbmd0aCArPSA1OwotICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHNhZmVseUNoZWNrTmV4dENoYXIocHRyLCBwYXR0ZXJuRW5kLCAnKycpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoICs9IDIgKyAyICogTElOS19TSVpFOwotICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChzYWZlbHlDaGVja05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJz8nKSkKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgLyogQnJhY2tldHMgbWF5IGJlIGdlbnVpbmUgZ3JvdXBzIG9yIHNwZWNpYWwg
dGhpbmdzICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlICcoJzogewotICAg
ICAgICAgICAgICAgIGludCBicmFuY2hfbmV3ZXh0cmEgPSAwOwotICAgICAgICAgICAgICAgIGlu
dCBicmFja2V0X2xlbmd0aCA9IDEgKyBMSU5LX1NJWkU7Ci0gICAgICAgICAgICAgICAgYm9vbCBj
YXB0dXJpbmcgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBI
YW5kbGUgc3BlY2lhbCBmb3JtcyBvZiBicmFja2V0LCB3aGljaCBhbGwgc3RhcnQgKD8gKi8KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc2FmZWx5Q2hlY2tOZXh0Q2hhcihw
dHIsIHBhdHRlcm5FbmQsICc/JykpIHsKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChjID0g
KHB0ciArIDIgPCBwYXR0ZXJuRW5kID8gcHRyWzJdIDogMCkpIHsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIC8qIE5vbi1yZWZlcmVuY2luZyBncm91cHMgYW5kIGxvb2thaGVhZHMganVzdCBtb3Zl
IHRoZSBwb2ludGVyIG9uLCBhbmQKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGVuIGJlaGF2
ZSBsaWtlIGEgbm9uLXNwZWNpYWwgYnJhY2tldCwgZXhjZXB0IHRoYXQgdGhleSBkb24ndCBpbmNy
ZW1lbnQKLSAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgY291bnQgb2YgZXh0cmFjdGluZyBi
cmFja2V0cy4gRGl0dG8gZm9yIHRoZSAib25jZSBvbmx5IiBicmFja2V0LAotICAgICAgICAgICAg
ICAgICAgICAgICAgIHdoaWNoIGlzIGluIFBlcmwgZnJvbSB2ZXJzaW9uIDUuMDA1LiAqLwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAn
Oic6Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICc9JzoKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNhc2UgJyEnOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB0ciArPSAyOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgLyogRWxzZSBsb29wIGNoZWNraW5nIHZh
bGlkIG9wdGlvbnMgdW50aWwgKSBpcyBtZXQuIEFueXRoaW5nIGVsc2UgaXMgYW4KLSAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnJvci4gSWYgd2UgYXJlIHdpdGhvdXQgYW55IGJyYWNrZXRzLCBp
LmUuIGF0IHRvcCBsZXZlbCwgdGhlIHNldHRpbmdzCi0gICAgICAgICAgICAgICAgICAgICAgICAg
YWN0IGFzIGlmIHNwZWNpZmllZCBpbiB0aGUgb3B0aW9ucywgc28gbWFzc2FnZSB0aGUgb3B0aW9u
cyBpbW1lZGlhdGVseS4KLSAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIGlzIGZvciBiYWNr
d2FyZCBjb21wYXRpYmlsaXR5IHdpdGggUGVybCA1LjAwNC4gKi8KLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyb3Jjb2RlID0gRVJSMTI7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgICAgIGNhcHR1cmluZyA9IDE7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgLyogQ2FwdHVyaW5nIGJyYWNrZXRzIG11c3QgYmUgY291
bnRlZCBzbyB3ZSBjYW4gcHJvY2VzcyBlc2NhcGVzIGluIGEKLSAgICAgICAgICAgICAgICAgUGVy
bGlzaCB3YXkuIElmIHRoZSBudW1iZXIgZXhjZWVkcyBFWFRSQUNUX0JBU0lDX01BWCB3ZSBhcmUg
Z29pbmcgdG8gbmVlZAotICAgICAgICAgICAgICAgICBhbiBhZGRpdGlvbmFsIDMgYnl0ZXMgb2Yg
bWVtb3J5IHBlciBjYXB0dXJpbmcgYnJhY2tldC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICBpZiAoY2FwdHVyaW5nKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJyYWNvdW50
Kys7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChicmFjb3VudCA+IEVYVFJBQ1RfQkFTSUNfTUFY
KQotICAgICAgICAgICAgICAgICAgICAgICAgYnJhY2tldF9sZW5ndGggKz0gMzsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogU2F2ZSBsZW5n
dGggZm9yIGNvbXB1dGluZyB3aG9sZSBsZW5ndGggYXQgZW5kIGlmIHRoZXJlJ3MgYSByZXBlYXQg
dGhhdAotICAgICAgICAgICAgICAgICByZXF1aXJlcyBkdXBsaWNhdGlvbiBvZiB0aGUgZ3JvdXAu
IEFsc28gc2F2ZSB0aGUgY3VycmVudCB2YWx1ZSBvZgotICAgICAgICAgICAgICAgICBicmFuY2hf
ZXh0cmEsIGFuZCBzdGFydCB0aGUgbmV3IGdyb3VwIHdpdGggdGhlIG5ldyB2YWx1ZS4gSWYgbm9u
LXplcm8sIHRoaXMKLSAgICAgICAgICAgICAgICAgd2lsbCBlaXRoZXIgYmUgMiBmb3IgYSAoP2lt
c3g6IGdyb3VwLCBvciAzIGZvciBhIGxvb2tiZWhpbmQgYXNzZXJ0aW9uLiAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChicmFzdGFja3B0ciA+PSBzaXplb2YoYnJhc3Rh
Y2spL3NpemVvZihpbnQpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGVycm9yY29kZSA9IEVSUjE3
OwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGJyYWxlbnN0YWNrW2JyYXN0YWNrcHRyXSA9
IGJyYW5jaF9leHRyYTsKLSAgICAgICAgICAgICAgICBicmFuY2hfZXh0cmEgPSBicmFuY2hfbmV3
ZXh0cmE7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgYnJhc3RhY2tbYnJhc3Rh
Y2twdHIrK10gPSBsZW5ndGg7Ci0gICAgICAgICAgICAgICAgbGVuZ3RoICs9IGJyYWNrZXRfbGVu
Z3RoOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAvKiBIYW5kbGUga2V0LiBMb29rIGZvciBzdWJzZXF1ZW50IG1heFJlcGVhdHMvbWluUmVw
ZWF0czsgZm9yIGNlcnRhaW4gc2V0cyBvZiB2YWx1ZXMgd2UKLSAgICAgICAgICAgICBoYXZlIHRv
IHJlcGxpY2F0ZSB0aGlzIGJyYWNrZXQgdXAgdG8gdGhhdCBtYW55IHRpbWVzLiBJZiBicmFzdGFj
a3B0ciBpcwotICAgICAgICAgICAgIDAgdGhpcyBpcyBhbiB1bm1hdGNoZWQgYnJhY2tldCB3aGlj
aCB3aWxsIGdlbmVyYXRlIGFuIGVycm9yLCBidXQgdGFrZSBjYXJlCi0gICAgICAgICAgICAgbm90
IHRvIHRyeSB0byBhY2Nlc3MgYnJhc3RhY2tbLTFdIHdoZW4gY29tcHV0aW5nIHRoZSBsZW5ndGgg
YW5kIHJlc3RvcmluZwotICAgICAgICAgICAgIHRoZSBicmFuY2hfZXh0cmEgdmFsdWUuICovCi0K
LSAgICAgICAgICAgIGNhc2UgJyknOiB7Ci0gICAgICAgICAgICAgICAgaW50IGR1cGxlbmd0aDsK
LSAgICAgICAgICAgICAgICBsZW5ndGggKz0gMSArIExJTktfU0laRTsKLSAgICAgICAgICAgICAg
ICBpZiAoYnJhc3RhY2twdHIgPiAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGR1cGxlbmd0aCA9
IGxlbmd0aCAtIGJyYXN0YWNrWy0tYnJhc3RhY2twdHJdOwotICAgICAgICAgICAgICAgICAgICBi
cmFuY2hfZXh0cmEgPSBicmFsZW5zdGFja1ticmFzdGFja3B0cl07Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgZHVwbGVuZ3RoID0g
MDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBMZWF2ZSBwdHIgYXQgdGhl
IGZpbmFsIGNoYXI7IGZvciByZWFkUmVwZWF0Q291bnRzIHRoaXMgaGFwcGVucwotICAgICAgICAg
ICAgICAgICBhdXRvbWF0aWNhbGx5OyBmb3IgdGhlIG90aGVycyB3ZSBuZWVkIGFuIGluY3JlbWVu
dC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoKHB0ciArIDEgPCBw
YXR0ZXJuRW5kKSAmJiAoYyA9IHB0clsxXSkgPT0gJ3snICYmIGlzQ291bnRlZFJlcGVhdChwdHIg
KyAyLCBwYXR0ZXJuRW5kKSkgewotICAgICAgICAgICAgICAgICAgICBwdHIgPSByZWFkUmVwZWF0
Q291bnRzKHB0ciArIDIsICZtaW5SZXBlYXRzLCAmbWF4UmVwZWF0cywgJmVycm9yY29kZSk7Ci0g
ICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcmNvZGUpCi0gICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjID09ICcqJykgewotICAg
ICAgICAgICAgICAgICAgICBtaW5SZXBlYXRzID0gMDsKLSAgICAgICAgICAgICAgICAgICAgbWF4
UmVwZWF0cyA9IC0xOwotICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYgKGMgPT0gJysnKSB7Ci0gICAgICAgICAgICAgICAgICAgIG1pblJlcGVhdHMg
PSAxOwotICAgICAgICAgICAgICAgICAgICBtYXhSZXBlYXRzID0gLTE7Ci0gICAgICAgICAgICAg
ICAgICAgIHB0cisrOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYyA9PSAnPycpIHsKLSAg
ICAgICAgICAgICAgICAgICAgbWluUmVwZWF0cyA9IDA7Ci0gICAgICAgICAgICAgICAgICAgIG1h
eFJlcGVhdHMgPSAxOwotICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgICAg
ICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICBtaW5SZXBlYXRzID0gMTsKLSAgICAgICAg
ICAgICAgICAgICAgbWF4UmVwZWF0cyA9IDE7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIHRoZSBtaW5pbXVtIGlzIHplcm8sIHdlIGhh
dmUgdG8gYWxsb3cgZm9yIGFuIE9QX0JSQVpFUk8gYmVmb3JlIHRoZQotICAgICAgICAgICAgICAg
ICBncm91cCwgYW5kIGlmIHRoZSBtYXhpbXVtIGlzIGdyZWF0ZXIgdGhhbiB6ZXJvLCB3ZSBoYXZl
IHRvIHJlcGxpY2F0ZQotICAgICAgICAgICAgICAgICBtYXh2YWwtMSB0aW1lczsgZWFjaCByZXBs
aWNhdGlvbiBhY3F1aXJlcyBhbiBPUF9CUkFaRVJPIHBsdXMgYSBuZXN0aW5nCi0gICAgICAgICAg
ICAgICAgIGJyYWNrZXQgc2V0LiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IGludCByZXBlYXRzTGVuZ3RoOwotICAgICAgICAgICAgICAgIGlmIChtaW5SZXBlYXRzID09IDAp
IHsKLSAgICAgICAgICAgICAgICAgICAgbGVuZ3RoKys7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChtYXhSZXBlYXRzID4gMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgcmVwZWF0c0xlbmd0
aCA9IG11bHRpcGx5V2l0aE92ZXJmbG93Q2hlY2sobWF4UmVwZWF0cyAtIDEsIGR1cGxlbmd0aCAr
IDMgKyAyICogTElOS19TSVpFKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXBlYXRz
TGVuZ3RoIDwgMCkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yY29kZSA9IEVS
UjE2OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSByZXBlYXRz
TGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGxlbmd0aCA+IE1BWF9QQVRURVJO
X1NJWkUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmNvZGUgPSBFUlIxNjsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogV2hlbiB0aGUgbWluaW11bSBpcyBncmVh
dGVyIHRoYW4gemVybywgd2UgaGF2ZSB0byByZXBsaWNhdGUgdXAgdG8KLSAgICAgICAgICAgICAg
ICAgbWludmFsLTEgdGltZXMsIHdpdGggbm8gYWRkaXRpb25zIHJlcXVpcmVkIGluIHRoZSBjb3Bp
ZXMuIFRoZW4sIGlmIHRoZXJlCi0gICAgICAgICAgICAgICAgIGlzIGEgbGltaXRlZCBtYXhpbXVt
IHdlIGhhdmUgdG8gcmVwbGljYXRlIHVwIHRvIG1heHZhbC0xIHRpbWVzIGFsbG93aW5nCi0gICAg
ICAgICAgICAgICAgIGZvciBhIEJSQVpFUk8gaXRlbSBiZWZvcmUgZWFjaCBvcHRpb25hbCBjb3B5
IGFuZCBuZXN0aW5nIGJyYWNrZXRzIGZvciBhbGwKLSAgICAgICAgICAgICAgICAgYnV0IG9uZSBv
ZiB0aGUgb3B0aW9uYWwgY29waWVzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICByZXBlYXRzTGVuZ3RoID0gbXVsdGlwbHlX
aXRoT3ZlcmZsb3dDaGVjayhtaW5SZXBlYXRzIC0gMSwgZHVwbGVuZ3RoKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHJlcGVhdHNMZW5ndGggPCAwKSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBlcnJvcmNvZGUgPSBFUlIxNjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAtMTsK
LSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gcmVw
ZWF0c0xlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1heFJlcGVhdHMgPiBtaW5SZXBl
YXRzKSB7IC8qIE5lZWQgdGhpcyB0ZXN0IGFzIG1heFJlcGVhdHM9LTEgbWVhbnMgbm8gbGltaXQg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgIHJlcGVhdHNMZW5ndGggPSBtdWx0aXBseVdpdGhP
dmVyZmxvd0NoZWNrKG1heFJlcGVhdHMgLSBtaW5SZXBlYXRzLCBkdXBsZW5ndGggKyAzICsgMiAq
IExJTktfU0laRSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVwZWF0c0xlbmd0aCA8
IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcmNvZGUgPSBFUlIxNjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gLTE7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggKz0gcmVwZWF0c0xlbmd0aCAt
ICgyICsgMiAqIExJTktfU0laRSk7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGxlbmd0aCA+IE1BWF9QQVRURVJOX1NJWkUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGVycm9yY29kZSA9IEVSUjE2OwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIC0xOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEFsbG93IHNwYWNlIGZvciBvbmNlIGJyYWNr
ZXRzIGZvciAicG9zc2Vzc2l2ZSBxdWFudGlmaWVyIiAqLwotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIGlmIChzYWZlbHlDaGVja05leHRDaGFyKHB0ciwgcGF0dGVybkVuZCwgJysn
KSkgewotICAgICAgICAgICAgICAgICAgICBwdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgbGVu
Z3RoICs9IDIgKyAyICogTElOS19TSVpFOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyogTm9uLXNwZWNp
YWwgY2hhcmFjdGVyLiBJdCB3b24ndCBiZSBzcGFjZSBvciAjIGluIGV4dGVuZGVkIG1vZGUsIHNv
IGl0IGlzCi0gICAgICAgICAgICAgYWx3YXlzIGEgZ2VudWluZSBjaGFyYWN0ZXIuIElmIHdlIGFy
ZSBpbiBhIFxRLi4uXEUgc2VxdWVuY2UsIGNoZWNrIGZvciB0aGUKLSAgICAgICAgICAgICBlbmQ7
IGlmIG5vdCwgd2UgaGF2ZSBhIGxpdGVyYWwuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICBkZWZhdWx0OgotICAgICAgICAgICAgTk9STUFMX0NIQVI6Ci0gICAgICAgICAgICAgICAg
bGVuZ3RoICs9IDI7ICAgICAgICAgIC8qIEZvciBhIG9uZS1ieXRlIGNoYXJhY3RlciAqLwotICAg
ICAgICAgICAgICAgIGxhc3RpdGVtbGVuZ3RoID0gMTsgICAvKiBEZWZhdWx0IGxlbmd0aCBvZiBs
YXN0IGl0ZW0gZm9yIHJlcGVhdHMgKi8KLQotICAgICAgICAgICAgICAgIGlmIChjID4gMTI3KSB7
Ci0gICAgICAgICAgICAgICAgICAgIGludCBpOwotICAgICAgICAgICAgICAgICAgICBmb3IgKGkg
PSAwOyBpIDwganNjX3BjcmVfdXRmOF90YWJsZTFfc2l6ZTsgaSsrKQotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKGMgPD0ganNjX3BjcmVfdXRmOF90YWJsZTFbaV0pCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGxlbmd0aCArPSBpOwot
ICAgICAgICAgICAgICAgICAgICBsYXN0aXRlbWxlbmd0aCArPSBpOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
fQotICAgIH0KLSAgICAKLSAgICBsZW5ndGggKz0gMiArIExJTktfU0laRTsgICAgLyogRm9yIGZp
bmFsIEtFVCBhbmQgRU5EICovCi0KLSAgICBjZC5udW1DYXB0dXJpbmdCcmFja2V0cyA9IGJyYWNv
dW50OwotICAgIHJldHVybiBsZW5ndGg7Ci19Ci0KLS8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgICBDb21waWxlIGEgUmVndWxhciBFeHBy
ZXNzaW9uICAgICAgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KLQotLyogVGhpcyBmdW5jdGlvbiB0YWtlcyBhIHN0cmluZyBhbmQgcmV0
dXJucyBhIHBvaW50ZXIgdG8gYSBibG9jayBvZiBzdG9yZQotaG9sZGluZyBhIGNvbXBpbGVkIHZl
cnNpb24gb2YgdGhlIGV4cHJlc3Npb24uIFRoZSBvcmlnaW5hbCBBUEkgZm9yIHRoaXMKLWZ1bmN0
aW9uIGhhZCBubyBlcnJvciBjb2RlIHJldHVybiB2YXJpYWJsZTsgaXQgaXMgcmV0YWluZWQgZm9y
IGJhY2t3YXJkcwotY29tcGF0aWJpbGl0eS4gVGhlIG5ldyBmdW5jdGlvbiBpcyBnaXZlbiBhIG5l
dyBuYW1lLgotCi1Bcmd1bWVudHM6Ci0gIHBhdHRlcm4gICAgICAgdGhlIHJlZ3VsYXIgZXhwcmVz
c2lvbgotICBvcHRpb25zICAgICAgIHZhcmlvdXMgb3B0aW9uIGJpdHMKLSAgZXJyb3JDb2RlUHRy
ICBwb2ludGVyIHRvIGVycm9yIGNvZGUgdmFyaWFibGUgKHBjcmVfY29tcGlsZTIoKSBvbmx5KQot
ICAgICAgICAgICAgICAgICAgY2FuIGJlIE5VTEwgaWYgeW91IGRvbid0IHdhbnQgYSBjb2RlIHZh
bHVlCi0gIGVycm9yUHRyICAgICAgcG9pbnRlciB0byBwb2ludGVyIHRvIGVycm9yIHRleHQKLSAg
ZXJyb3JvZmZzZXQgICBwdHIgb2Zmc2V0IGluIHBhdHRlcm4gd2hlcmUgZXJyb3Igd2FzIGRldGVj
dGVkCi0gIHRhYmxlcyAgICAgICAgcG9pbnRlciB0byBjaGFyYWN0ZXIgdGFibGVzIG9yIE5VTEwK
LQotUmV0dXJuczogICAgICAgIHBvaW50ZXIgdG8gY29tcGlsZWQgZGF0YSBibG9jaywgb3IgTlVM
TCBvbiBlcnJvciwKLSAgICAgICAgICAgICAgICB3aXRoIGVycm9yUHRyIGFuZCBlcnJvcm9mZnNl
dCBzZXQKLSovCi0KLXN0YXRpYyBpbmxpbmUgSlNSZWdFeHAqIHJldHVybkVycm9yKEVycm9yQ29k
ZSBlcnJvcmNvZGUsIGNvbnN0IGNoYXIqKiBlcnJvclB0cikKLXsKLSAgICAqZXJyb3JQdHIgPSBl
cnJvclRleHQoZXJyb3Jjb2RlKTsKLSAgICByZXR1cm4gMDsKLX0KLQotSlNSZWdFeHAqIGpzUmVn
RXhwQ29tcGlsZShjb25zdCBVQ2hhciogcGF0dGVybiwgaW50IHBhdHRlcm5MZW5ndGgsCi0gICAg
ICAgICAgICAgICAgSlNSZWdFeHBJZ25vcmVDYXNlT3B0aW9uIGlnbm9yZUNhc2UsIEpTUmVnRXhw
TXVsdGlsaW5lT3B0aW9uIG11bHRpbGluZSwKLSAgICAgICAgICAgICAgICB1bnNpZ25lZCogbnVt
U3VicGF0dGVybnMsIGNvbnN0IGNoYXIqKiBlcnJvclB0cikKLXsKLSAgICAvKiBXZSBjYW4ndCBw
YXNzIGJhY2sgYW4gZXJyb3IgbWVzc2FnZSBpZiBlcnJvclB0ciBpcyBOVUxMOyBJIGd1ZXNzIHRo
ZSBiZXN0IHdlCi0gICAgIGNhbiBkbyBpcyBqdXN0IHJldHVybiBOVUxMLCBidXQgd2UgY2FuIHNl
dCBhIGNvZGUgdmFsdWUgaWYgdGhlcmUgaXMgYSBjb2RlIHBvaW50ZXIuICovCi0gICAgaWYgKCFl
cnJvclB0cikKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgKmVycm9yUHRyID0gTlVMTDsKLSAgICAK
LSAgICBDb21waWxlRGF0YSBjZDsKLSAgICAKLSAgICBFcnJvckNvZGUgZXJyb3Jjb2RlID0gRVJS
MDsKLSAgICAvKiBDYWxsIHRoaXMgb25jZSBqdXN0IHRvIGNvdW50IHRoZSBicmFja2V0cy4gKi8K
LSAgICBjYWxjdWxhdGVDb21waWxlZFBhdHRlcm5MZW5ndGgocGF0dGVybiwgcGF0dGVybkxlbmd0
aCwgaWdub3JlQ2FzZSwgY2QsIGVycm9yY29kZSk7Ci0gICAgLyogQ2FsbCBpdCBhZ2FpbiB0byBj
b21wdXRlIHRoZSBsZW5ndGguICovCi0gICAgaW50IGxlbmd0aCA9IGNhbGN1bGF0ZUNvbXBpbGVk
UGF0dGVybkxlbmd0aChwYXR0ZXJuLCBwYXR0ZXJuTGVuZ3RoLCBpZ25vcmVDYXNlLCBjZCwgZXJy
b3Jjb2RlKTsKLSAgICBpZiAoZXJyb3Jjb2RlKQotICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3Io
ZXJyb3Jjb2RlLCBlcnJvclB0cik7Ci0gICAgCi0gICAgaWYgKGxlbmd0aCA+IE1BWF9QQVRURVJO
X1NJWkUpCi0gICAgICAgIHJldHVybiByZXR1cm5FcnJvcihFUlIxNiwgZXJyb3JQdHIpOwotICAg
IAotICAgIHNpemVfdCBzaXplID0gbGVuZ3RoICsgc2l6ZW9mKEpTUmVnRXhwKTsKLSNpZiBSRUdF
WFBfSElTVE9HUkFNCi0gICAgc2l6ZV90IHN0cmluZ09mZnNldCA9IChzaXplICsgc2l6ZW9mKFVD
aGFyKSAtIDEpIC8gc2l6ZW9mKFVDaGFyKSAqIHNpemVvZihVQ2hhcik7Ci0gICAgc2l6ZSA9IHN0
cmluZ09mZnNldCArIHBhdHRlcm5MZW5ndGggKiBzaXplb2YoVUNoYXIpOwotI2VuZGlmCi0gICAg
SlNSZWdFeHAqIHJlID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8SlNSZWdFeHAqPihuZXcgY2hhcltz
aXplXSk7Ci0gICAgCi0gICAgaWYgKCFyZSkKLSAgICAgICAgcmV0dXJuIHJldHVybkVycm9yKEVS
UjEzLCBlcnJvclB0cik7Ci0gICAgCi0gICAgcmUtPm9wdGlvbnMgPSAoaWdub3JlQ2FzZSA/IEln
bm9yZUNhc2VPcHRpb24gOiAwKSB8IChtdWx0aWxpbmUgPyBNYXRjaEFjcm9zc011bHRpcGxlTGlu
ZXNPcHRpb24gOiAwKTsKLSAgICAKLSAgICAvKiBUaGUgc3RhcnRpbmcgcG9pbnRzIG9mIHRoZSBu
YW1lL251bWJlciB0cmFuc2xhdGlvbiB0YWJsZSBhbmQgb2YgdGhlIGNvZGUgYXJlCi0gICAgIHBh
c3NlZCBhcm91bmQgaW4gdGhlIGNvbXBpbGUgZGF0YSBibG9jay4gKi8KLSAgICAKLSAgICBjb25z
dCB1bnNpZ25lZCBjaGFyKiBjb2RlU3RhcnQgPSAoY29uc3QgdW5zaWduZWQgY2hhciopKHJlICsg
MSk7Ci0gICAgCi0gICAgLyogU2V0IHVwIGEgc3RhcnRpbmcsIG5vbi1leHRyYWN0aW5nIGJyYWNr
ZXQsIHRoZW4gY29tcGlsZSB0aGUgZXhwcmVzc2lvbi4gT24KLSAgICAgZXJyb3IsIGVycm9yY29k
ZSB3aWxsIGJlIHNldCBub24temVybywgc28gd2UgZG9uJ3QgbmVlZCB0byBsb29rIGF0IHRoZSBy
ZXN1bHQKLSAgICAgb2YgdGhlIGZ1bmN0aW9uIGhlcmUuICovCi0gICAgCi0gICAgY29uc3QgVUNo
YXIqIHB0ciA9IChjb25zdCBVQ2hhciopcGF0dGVybjsKLSAgICBjb25zdCBVQ2hhciogcGF0dGVy
bkVuZCA9IHBhdHRlcm4gKyBwYXR0ZXJuTGVuZ3RoOwotICAgIHVuc2lnbmVkIGNoYXIqIGNvZGUg
PSBjb25zdF9jYXN0PHVuc2lnbmVkIGNoYXIqPihjb2RlU3RhcnQpOwotICAgIGludCBmaXJzdEJ5
dGUsIHJlcUJ5dGU7Ci0gICAgaW50IGJyYWNrZXRDb3VudCA9IDA7Ci0gICAgaWYgKCFjZC5uZWVk
T3V0ZXJCcmFja2V0KQotICAgICAgICBjb21waWxlQnJhbmNoKHJlLT5vcHRpb25zLCAmYnJhY2tl
dENvdW50LCAmY29kZSwgJnB0ciwgcGF0dGVybkVuZCwgJmVycm9yY29kZSwgJmZpcnN0Qnl0ZSwg
JnJlcUJ5dGUsIGNkKTsKLSAgICBlbHNlIHsKLSAgICAgICAgKmNvZGUgPSBPUF9CUkE7Ci0gICAg
ICAgIGNvbXBpbGVCcmFja2V0KHJlLT5vcHRpb25zLCAmYnJhY2tldENvdW50LCAmY29kZSwgJnB0
ciwgcGF0dGVybkVuZCwgJmVycm9yY29kZSwgMCwgJmZpcnN0Qnl0ZSwgJnJlcUJ5dGUsIGNkKTsK
LSAgICB9Ci0gICAgcmUtPnRvcEJyYWNrZXQgPSBicmFja2V0Q291bnQ7Ci0gICAgcmUtPnRvcEJh
Y2tyZWYgPSBjZC50b3BCYWNrcmVmOwotICAgIAotICAgIC8qIElmIG5vdCByZWFjaGVkIGVuZCBv
ZiBwYXR0ZXJuIG9uIHN1Y2Nlc3MsIHRoZXJlJ3MgYW4gZXhjZXNzIGJyYWNrZXQuICovCi0gICAg
Ci0gICAgaWYgKGVycm9yY29kZSA9PSAwICYmIHB0ciA8IHBhdHRlcm5FbmQpCi0gICAgICAgIGVy
cm9yY29kZSA9IEVSUjEwOwotICAgIAotICAgIC8qIEZpbGwgaW4gdGhlIHRlcm1pbmF0aW5nIHN0
YXRlIGFuZCBjaGVjayBmb3IgZGlzYXN0cm91cyBvdmVyZmxvdywgYnV0Ci0gICAgIGlmIGRlYnVn
Z2luZywgbGVhdmUgdGhlIHRlc3QgdGlsbCBhZnRlciB0aGluZ3MgYXJlIHByaW50ZWQgb3V0LiAq
LwotICAgIAotICAgICpjb2RlKysgPSBPUF9FTkQ7Ci0KLSAgICBBU1NFUlQoY29kZSAtIGNvZGVT
dGFydCA8PSBsZW5ndGgpOwotICAgIGlmIChjb2RlIC0gY29kZVN0YXJ0ID4gbGVuZ3RoKQotICAg
ICAgICBlcnJvcmNvZGUgPSBFUlI3OwotICAgIAotICAgIC8qIEdpdmUgYW4gZXJyb3IgaWYgdGhl
cmUncyBiYWNrIHJlZmVyZW5jZSB0byBhIG5vbi1leGlzdGVudCBjYXB0dXJpbmcKLSAgICAgc3Vi
cGF0dGVybi4gKi8KLSAgICAKLSAgICBpZiAocmUtPnRvcEJhY2tyZWYgPiByZS0+dG9wQnJhY2tl
dCkKLSAgICAgICAgZXJyb3Jjb2RlID0gRVJSMTU7Ci0gICAgCi0gICAgLyogRmFpbGVkIHRvIGNv
bXBpbGUsIG9yIGVycm9yIHdoaWxlIHBvc3QtcHJvY2Vzc2luZyAqLwotICAgIAotICAgIGlmIChl
cnJvcmNvZGUgIT0gRVJSMCkgewotICAgICAgICBkZWxldGUgW10gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4ocmUpOwotICAgICAgICByZXR1cm4gcmV0dXJuRXJyb3IoZXJyb3Jjb2RlLCBlcnJvclB0
cik7Ci0gICAgfQotICAgIAotICAgIC8qIElmIHRoZSBhbmNob3JlZCBvcHRpb24gd2FzIG5vdCBw
YXNzZWQsIHNldCB0aGUgZmxhZyBpZiB3ZSBjYW4gZGV0ZXJtaW5lIHRoYXQKLSAgICAgdGhlIHBh
dHRlcm4gaXMgYW5jaG9yZWQgYnkgdmlydHVlIG9mIF4gY2hhcmFjdGVycyBvciBcQSBvciBhbnl0
aGluZyBlbHNlIChzdWNoCi0gICAgIGFzIHN0YXJ0aW5nIHdpdGggLiogd2hlbiBET1RBTEwgaXMg
c2V0KS4KLSAgICAgCi0gICAgIE90aGVyd2lzZSwgaWYgd2Uga25vdyB3aGF0IHRoZSBmaXJzdCBj
aGFyYWN0ZXIgaGFzIHRvIGJlLCBzYXZlIGl0LCBiZWNhdXNlIHRoYXQKLSAgICAgc3BlZWRzIHVw
IHVuYW5jaG9yZWQgbWF0Y2hlcyBubyBlbmQuIElmIG5vdCwgc2VlIGlmIHdlIGNhbiBzZXQgdGhl
Ci0gICAgIFVzZU11bHRpTGluZUZpcnN0Qnl0ZU9wdGltaXphdGlvbk9wdGlvbiBmbGFnLiBUaGlz
IGlzIGhlbHBmdWwgZm9yIG11bHRpbGluZSBtYXRjaGVzIHdoZW4gYWxsIGJyYW5jaGVzCi0gICAg
IHN0YXJ0IHdpdGggXi4gYW5kIGFsc28gd2hlbiBhbGwgYnJhbmNoZXMgc3RhcnQgd2l0aCAuKiBm
b3Igbm9uLURPVEFMTCBtYXRjaGVzLgotICAgICAqLwotICAgIAotICAgIGlmIChjZC5uZWVkT3V0
ZXJCcmFja2V0ID8gYnJhY2tldElzQW5jaG9yZWQoY29kZVN0YXJ0KSA6IGJyYW5jaElzQW5jaG9y
ZWQoY29kZVN0YXJ0KSkKLSAgICAgICAgcmUtPm9wdGlvbnMgfD0gSXNBbmNob3JlZE9wdGlvbjsK
LSAgICBlbHNlIHsKLSAgICAgICAgaWYgKGZpcnN0Qnl0ZSA8IDApIHsKLSAgICAgICAgICAgIGZp
cnN0Qnl0ZSA9IChjZC5uZWVkT3V0ZXJCcmFja2V0Ci0gICAgICAgICAgICAgICAgICAgID8gYnJh
Y2tldEZpbmRGaXJzdEFzc2VydGVkQ2hhcmFjdGVyKGNvZGVTdGFydCwgZmFsc2UpCi0gICAgICAg
ICAgICAgICAgICAgIDogYnJhbmNoRmluZEZpcnN0QXNzZXJ0ZWRDaGFyYWN0ZXIoY29kZVN0YXJ0
LCBmYWxzZSkpCi0gICAgICAgICAgICAgICAgfCAoKHJlLT5vcHRpb25zICYgSWdub3JlQ2FzZU9w
dGlvbikgPyBSRVFfSUdOT1JFX0NBU0UgOiAwKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoZmly
c3RCeXRlID49IDApIHsKLSAgICAgICAgICAgIGludCBjaCA9IGZpcnN0Qnl0ZSAmIDI1NTsKLSAg
ICAgICAgICAgIGlmIChjaCA8IDEyNykgewotICAgICAgICAgICAgICAgIHJlLT5maXJzdEJ5dGUg
PSAoKGZpcnN0Qnl0ZSAmIFJFUV9JR05PUkVfQ0FTRSkgJiYgZmxpcENhc2UoY2gpID09IGNoKSA/
IGNoIDogZmlyc3RCeXRlOwotICAgICAgICAgICAgICAgIHJlLT5vcHRpb25zIHw9IFVzZUZpcnN0
Qnl0ZU9wdGltaXphdGlvbk9wdGlvbjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgIGlmIChjZC5uZWVkT3V0ZXJCcmFja2V0ID8gYnJhY2tldE5lZWRzTGluZVN0
YXJ0KGNvZGVTdGFydCwgMCwgY2QuYmFja3JlZk1hcCkgOiBicmFuY2hOZWVkc0xpbmVTdGFydChj
b2RlU3RhcnQsIDAsIGNkLmJhY2tyZWZNYXApKQotICAgICAgICAgICAgICAgIHJlLT5vcHRpb25z
IHw9IFVzZU11bHRpTGluZUZpcnN0Qnl0ZU9wdGltaXphdGlvbk9wdGlvbjsKLSAgICAgICAgfQot
ICAgIH0KLSAgICAKLSAgICAvKiBGb3IgYW4gYW5jaG9yZWQgcGF0dGVybiwgd2UgdXNlIHRoZSAi
cmVxdWlyZWQgYnl0ZSIgb25seSBpZiBpdCBmb2xsb3dzIGEKLSAgICAgdmFyaWFibGUgbGVuZ3Ro
IGl0ZW0gaW4gdGhlIHJlZ2V4LiBSZW1vdmUgdGhlIGNhc2VsZXNzIGZsYWcgZm9yIG5vbi1jYXNl
YWJsZQotICAgICBieXRlcy4gKi8KLSAgICAKLSAgICBpZiAocmVxQnl0ZSA+PSAwICYmICghKHJl
LT5vcHRpb25zICYgSXNBbmNob3JlZE9wdGlvbikgfHwgKHJlcUJ5dGUgJiBSRVFfVkFSWSkpKSB7
Ci0gICAgICAgIGludCBjaCA9IHJlcUJ5dGUgJiAyNTU7Ci0gICAgICAgIGlmIChjaCA8IDEyNykg
ewotICAgICAgICAgICAgcmUtPnJlcUJ5dGUgPSAoKHJlcUJ5dGUgJiBSRVFfSUdOT1JFX0NBU0Up
ICYmIGZsaXBDYXNlKGNoKSA9PSBjaCkgPyAocmVxQnl0ZSAmIH5SRVFfSUdOT1JFX0NBU0UpIDog
cmVxQnl0ZTsKLSAgICAgICAgICAgIHJlLT5vcHRpb25zIHw9IFVzZVJlcXVpcmVkQnl0ZU9wdGlt
aXphdGlvbk9wdGlvbjsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSNpZiBSRUdFWFBfSElTVE9H
UkFNCi0gICAgcmUtPnN0cmluZ09mZnNldCA9IHN0cmluZ09mZnNldDsKLSAgICByZS0+c3RyaW5n
TGVuZ3RoID0gcGF0dGVybkxlbmd0aDsKLSAgICBtZW1jcHkocmVpbnRlcnByZXRfY2FzdDxjaGFy
Kj4ocmUpICsgc3RyaW5nT2Zmc2V0LCBwYXR0ZXJuLCBwYXR0ZXJuTGVuZ3RoICogMik7Ci0jZW5k
aWYKLQotICAgIGlmIChudW1TdWJwYXR0ZXJucykKLSAgICAgICAgKm51bVN1YnBhdHRlcm5zID0g
cmUtPnRvcEJyYWNrZXQ7Ci0gICAgcmV0dXJuIHJlOwotfQotCi12b2lkIGpzUmVnRXhwRnJlZShK
U1JlZ0V4cCogcmUpCi17Ci0gICAgZGVsZXRlIFtdIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHJl
KTsKLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2V4ZWMuY3BwCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBiNzAxOGFhLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9wY3JlL3BjcmVfZXhlYy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwyMTc5ICswLDAg
QEAKLS8qIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50IG9mIHRoZSBQQ1JFIGxpYnJh
cnkuIFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBvdXQgYXMgYSBjb3B5IG9mIFBDUkUsIG1h
bnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi1yZW1vdmVkLiBUaGlzIGxpYnJh
cnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBmZWF0dXJlcwotcmVx
dWlyZWQgYnkgdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2Ugc3BlY2lmaWNhdGlvbiwgYW5kIGhhcyBv
bmx5IHRoZSBmdW5jdGlvbnMKLW5lZWRlZCBieSBKYXZhU2NyaXB0Q29yZSBhbmQgdGhlIHJlc3Qg
b2YgV2ViS2l0LgotCi0gICAgICAgICAgICAgICAgIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBQaGls
aXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDYgVW5pdmVyc2l0eSBv
ZiBDYW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDQsIDIwMDYsIDIwMDcsIDIw
MDgsIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICAgIENvcHlyaWdodCAo
QykgMjAwNyBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotCi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
LAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJp
ZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1J
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0vKiBUaGlz
IG1vZHVsZSBjb250YWlucyBqc1JlZ0V4cEV4ZWN1dGUoKSwgdGhlIGV4dGVybmFsbHkgdmlzaWJs
ZSBmdW5jdGlvbgotdGhhdCBkb2VzIHBhdHRlcm4gbWF0Y2hpbmcgdXNpbmcgYW4gTkZBIGFsZ29y
aXRobSwgZm9sbG93aW5nIHRoZSBydWxlcyBmcm9tCi10aGUgSmF2YVNjcmlwdCBzcGVjaWZpY2F0
aW9uLiBUaGVyZSBhcmUgYWxzbyBzb21lIHN1cHBvcnRpbmcgZnVuY3Rpb25zLiAqLwotCi0jaW5j
bHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgotCi0jaW5jbHVkZSA8
bGltaXRzLmg+Ci0jaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5cGUuaD4KLSNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+Ci0KLSNpZiBSRUdFWFBfSElTVE9HUkFNCi0jaW5jbHVkZSA8d3RmL0RhdGVNYXRoLmg+
Ci0jaW5jbHVkZSA8cnVudGltZS9VU3RyaW5nLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNl
IFdURjsKLQotI2lmIEhBVkUoQ09NUFVURURfR09UTykKLSNkZWZpbmUgVVNFX0NPTVBVVEVEX0dP
VE9fRk9SX01BVENIX1JFQ1VSU0lPTgotLy8jZGVmaW5lIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9N
QVRDSF9PUENPREVfTE9PUAotI2VuZGlmCi0KLS8qIEF2b2lkIHdhcm5pbmdzIG9uIFdpbmRvd3Mu
ICovCi0jdW5kZWYgbWluCi0jdW5kZWYgbWF4Ci0KLSNpZm5kZWYgVVNFX0NPTVBVVEVEX0dPVE9f
Rk9SX01BVENIX1JFQ1VSU0lPTgotdHlwZWRlZiBpbnQgUmV0dXJuTG9jYXRpb247Ci0jZWxzZQot
dHlwZWRlZiB2b2lkKiBSZXR1cm5Mb2NhdGlvbjsKLSNlbmRpZgotCi0jaWYgIVJFR0VYUF9ISVNU
T0dSQU0KLQotY2xhc3MgSGlzdG9ncmFtVGltZUxvZ2dlciB7Ci1wdWJsaWM6Ci0gICAgSGlzdG9n
cmFtVGltZUxvZ2dlcihjb25zdCBKU1JlZ0V4cCopIHsgfQotfTsKLQotI2Vsc2UKLQotdXNpbmcg
bmFtZXNwYWNlIEpTQzsKLQotY2xhc3MgSGlzdG9ncmFtIHsKLXB1YmxpYzoKLSAgICB+SGlzdG9n
cmFtKCk7Ci0gICAgdm9pZCBhZGQoY29uc3QgSlNSZWdFeHAqLCBkb3VibGUpOwotCi1wcml2YXRl
OgotICAgIHR5cGVkZWYgSGFzaE1hcDxSZWZQdHI8U3RyaW5nSW1wbD4sIGRvdWJsZT4gTWFwOwot
ICAgIE1hcCB0aW1lczsKLX07Ci0KLWNsYXNzIEhpc3RvZ3JhbVRpbWVMb2dnZXIgewotcHVibGlj
OgotICAgIEhpc3RvZ3JhbVRpbWVMb2dnZXIoY29uc3QgSlNSZWdFeHAqKTsKLSAgICB+SGlzdG9n
cmFtVGltZUxvZ2dlcigpOwotCi1wcml2YXRlOgotICAgIGNvbnN0IEpTUmVnRXhwKiBtX3JlOwot
ICAgIGRvdWJsZSBtX3N0YXJ0VGltZTsKLX07Ci0KLSNlbmRpZgotCi0vKiBTdHJ1Y3R1cmUgZm9y
IGJ1aWxkaW5nIGEgY2hhaW4gb2YgZGF0YSBmb3IgaG9sZGluZyB0aGUgdmFsdWVzIG9mCi10aGUg
c3ViamVjdCBwb2ludGVyIGF0IHRoZSBzdGFydCBvZiBlYWNoIGJyYWNrZXQsIHVzZWQgdG8gZGV0
ZWN0IHdoZW4KLWFuIGVtcHR5IHN0cmluZyBoYXMgYmVlbiBtYXRjaGVkIGJ5IGEgYnJhY2tldCB0
byBicmVhayBpbmZpbml0ZSBsb29wcy4gKi8gCi1zdHJ1Y3QgQnJhY2tldENoYWluTm9kZSB7Ci0g
ICAgQnJhY2tldENoYWluTm9kZSogcHJldmlvdXNCcmFja2V0OwotICAgIGNvbnN0IFVDaGFyKiBi
cmFja2V0U3RhcnQ7Ci19OwotCi1zdHJ1Y3QgTWF0Y2hGcmFtZSB7Ci0gICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgUmV0dXJuTG9jYXRpb24gcmV0dXJuTG9jYXRpb247
Ci0gICAgc3RydWN0IE1hdGNoRnJhbWUqIHByZXZpb3VzRnJhbWU7Ci0gICAgCi0gICAgLyogRnVu
Y3Rpb24gYXJndW1lbnRzIHRoYXQgbWF5IGNoYW5nZSAqLwotICAgIHN0cnVjdCB7Ci0gICAgICAg
IGNvbnN0IFVDaGFyKiBzdWJqZWN0UHRyOwotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBp
bnN0cnVjdGlvblB0cjsKLSAgICAgICAgaW50IG9mZnNldFRvcDsKLSAgICAgICAgQnJhY2tldENo
YWluTm9kZSogYnJhY2tldENoYWluOwotICAgIH0gYXJnczsKLSAgICAKLSAgICAKLSAgICAvKiBQ
Q1JFIHVzZXMgImZha2UiIHJlY3Vyc2lvbiBidWlsdCBvZmYgb2YgZ290b3MsIHRodXMKLSAgICAg
c3RhY2stYmFzZWQgbG9jYWwgdmFyaWFibGVzIGFyZSBub3Qgc2FmZSB0byB1c2UuICBJbnN0ZWFk
IHdlIGhhdmUgdG8KLSAgICAgc3RvcmUgbG9jYWwgdmFyaWFibGVzIG9uIHRoZSBjdXJyZW50IE1h
dGNoRnJhbWUuICovCi0gICAgc3RydWN0IHsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciog
ZGF0YTsKLSAgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciogc3RhcnRPZlJlcGVhdGluZ0JyYWNr
ZXQ7Ci0gICAgICAgIGNvbnN0IFVDaGFyKiBzdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb247
IC8vIFNldmVyYWwgaW5zdHJ1dGlvbnMgc3Rhc2ggYXdheSBhIHN1YmplY3RQdHIgaGVyZSBmb3Ig
bGF0ZXIgY29tcGFyZQotICAgICAgICBjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnN0cnVjdGlvblB0
ckF0U3RhcnRPZk9uY2U7Ci0gICAgICAgIAotICAgICAgICBpbnQgcmVwZWF0T3RoZXJjYXNlOwot
ICAgICAgICAKLSAgICAgICAgaW50IGN0eXBlOwotICAgICAgICBpbnQgZmM7Ci0gICAgICAgIGlu
dCBmaTsKLSAgICAgICAgaW50IGxlbmd0aDsKLSAgICAgICAgaW50IG1heDsKLSAgICAgICAgaW50
IG51bWJlcjsKLSAgICAgICAgaW50IG9mZnNldDsKLSAgICAgICAgaW50IHNhdmVPZmZzZXQxOwot
ICAgICAgICBpbnQgc2F2ZU9mZnNldDI7Ci0gICAgICAgIGludCBzYXZlT2Zmc2V0MzsKLSAgICAg
ICAgCi0gICAgICAgIEJyYWNrZXRDaGFpbk5vZGUgYnJhY2tldENoYWluTm9kZTsKLSAgICB9IGxv
Y2FsczsKLX07Ci0KLS8qIFN0cnVjdHVyZSBmb3IgcGFzc2luZyAic3RhdGljIiBpbmZvcm1hdGlv
biBhcm91bmQgYmV0d2VlbiB0aGUgZnVuY3Rpb25zCi1kb2luZyB0cmFkaXRpb25hbCBORkEgbWF0
Y2hpbmcsIHNvIHRoYXQgdGhleSBhcmUgdGhyZWFkLXNhZmUuICovCi0KLXN0cnVjdCBNYXRjaERh
dGEgewotICBpbnQqICAgb2Zmc2V0VmVjdG9yOyAgICAgICAgIC8qIE9mZnNldCB2ZWN0b3IgKi8K
LSAgaW50ICAgIG9mZnNldEVuZDsgICAgICAgICAgICAvKiBPbmUgcGFzdCB0aGUgZW5kICovCi0g
IGludCAgICBvZmZzZXRNYXg7ICAgICAgICAgICAgLyogVGhlIG1heGltdW0gdXNhYmxlIGZvciBy
ZXR1cm4gZGF0YSAqLwotICBib29sICAgb2Zmc2V0T3ZlcmZsb3c7ICAgICAgIC8qIFNldCBpZiB0
b28gbWFueSBleHRyYWN0aW9ucyAqLwotICBjb25zdCBVQ2hhciogIHN0YXJ0U3ViamVjdDsgICAg
ICAgICAvKiBTdGFydCBvZiB0aGUgc3ViamVjdCBzdHJpbmcgKi8KLSAgY29uc3QgVUNoYXIqICBl
bmRTdWJqZWN0OyAgICAgICAgICAgLyogRW5kIG9mIHRoZSBzdWJqZWN0IHN0cmluZyAqLwotICBj
b25zdCBVQ2hhciogIGVuZE1hdGNoUHRyOyAgICAgICAgIC8qIFN1YmplY3QgcG9zaXRpb24gYXQg
ZW5kIG1hdGNoICovCi0gIGludCAgICBlbmRPZmZzZXRUb3A7ICAgICAgICAvKiBIaWdod2F0ZXIg
bWFyayBhdCBlbmQgb2YgbWF0Y2ggKi8KLSAgYm9vbCAgIG11bHRpbGluZTsKLSAgYm9vbCAgIGln
bm9yZUNhc2U7Ci19OwotCi0vKiBUaGUgbWF4aW11bSByZW1haW5pbmcgbGVuZ3RoIG9mIHN1Ympl
Y3Qgd2UgYXJlIHByZXBhcmVkIHRvIHNlYXJjaCBmb3IgYQotcmVxQnl0ZSBtYXRjaC4gKi8KLQot
I2RlZmluZSBSRVFfQllURV9NQVggMTAwMAotCi0vKiBUaGUgYmVsb3cgbGltaXQgcmVzdHJpY3Rz
IHRoZSBudW1iZXIgb2YgInJlY3Vyc2l2ZSIgbWF0Y2ggY2FsbHMgaW4gb3JkZXIgdG8KLWF2b2lk
IHNwZW5kaW5nIGV4cG9uZW50aWFsIHRpbWUgb24gY29tcGxleCByZWd1bGFyIGV4cHJlc3Npb25z
LiAqLwotCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF0Y2hMaW1pdCA9IDEwMDAwMDA7Ci0KLSNp
ZmRlZiBERUJVRwotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioKLSogICAgICAgIERlYnVnZ2luZyBmdW5jdGlvbiB0byBwcmludCBjaGFycyAgICAgICAq
Ci0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0v
KiBQcmludCBhIHNlcXVlbmNlIG9mIGNoYXJzIGluIHByaW50YWJsZSBmb3JtYXQsIHN0b3BwaW5n
IGF0IHRoZSBlbmQgb2YgdGhlCi1zdWJqZWN0IGlmIHRoZSByZXF1ZXN0ZWQuCi0KLUFyZ3VtZW50
czoKLSAgcCAgICAgICAgICAgcG9pbnRzIHRvIGNoYXJhY3RlcnMKLSAgbGVuZ3RoICAgICAgbnVt
YmVyIHRvIHByaW50Ci0gIGlzU3ViamVjdCAgdHJ1ZSBpZiBwcmludGluZyBmcm9tIHdpdGhpbiBt
ZC5zdGFydFN1YmplY3QKLSAgbWQgICAgICAgICAgcG9pbnRlciB0byBtYXRjaGluZyBkYXRhIGJs
b2NrLCBpZiBpc1N1YmplY3QgaXMgdHJ1ZQotKi8KLQotc3RhdGljIHZvaWQgcGNoYXJzKGNvbnN0
IFVDaGFyKiBwLCBpbnQgbGVuZ3RoLCBib29sIGlzU3ViamVjdCwgY29uc3QgTWF0Y2hEYXRhJiBt
ZCkKLXsKLSAgICBpZiAoaXNTdWJqZWN0ICYmIGxlbmd0aCA+IG1kLmVuZFN1YmplY3QgLSBwKQot
ICAgICAgICBsZW5ndGggPSBtZC5lbmRTdWJqZWN0IC0gcDsKLSAgICB3aGlsZSAobGVuZ3RoLS0g
PiAwKSB7Ci0gICAgICAgIGludCBjOwotICAgICAgICBpZiAoaXNBU0NJSVByaW50YWJsZShjID0g
KihwKyspKSkKLSAgICAgICAgICAgIHByaW50ZigiJWMiLCBjKTsKLSAgICAgICAgZWxzZSBpZiAo
YyA8IDI1NikKLSAgICAgICAgICAgIHByaW50ZigiXFx4JTAyeCIsIGMpOwotICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBwcmludGYoIlxceHsleH0iLCBjKTsKLSAgICB9Ci19Ci0jZW5kaWYKLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICAgICAgTWF0Y2ggYSBiYWNrLXJlZmVyZW5jZSAgICAgICAgICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBJZiBhIGJhY2sg
cmVmZXJlbmNlIGhhc24ndCBiZWVuIHNldCwgdGhlIGxlbmd0aCB0aGF0IGlzIHBhc3NlZCBpcyBn
cmVhdGVyCi10aGFuIHRoZSBudW1iZXIgb2YgY2hhcmFjdGVycyBsZWZ0IGluIHRoZSBzdHJpbmcs
IHNvIHRoZSBtYXRjaCBmYWlscy4KLQotQXJndW1lbnRzOgotICBvZmZzZXQgICAgICBpbmRleCBp
bnRvIHRoZSBvZmZzZXQgdmVjdG9yCi0gIHN1YmplY3RQdHIgICAgICAgIHBvaW50cyBpbnRvIHRo
ZSBzdWJqZWN0Ci0gIGxlbmd0aCAgICAgIGxlbmd0aCB0byBiZSBtYXRjaGVkCi0gIG1kICAgICAg
ICAgIHBvaW50cyB0byBtYXRjaCBkYXRhIGJsb2NrCi0KLVJldHVybnM6ICAgICAgdHJ1ZSBpZiBt
YXRjaGVkCi0qLwotCi1zdGF0aWMgYm9vbCBtYXRjaFJlZihpbnQgb2Zmc2V0LCBjb25zdCBVQ2hh
ciogc3ViamVjdFB0ciwgaW50IGxlbmd0aCwgY29uc3QgTWF0Y2hEYXRhJiBtZCkKLXsKLSAgICBj
b25zdCBVQ2hhciogcCA9IG1kLnN0YXJ0U3ViamVjdCArIG1kLm9mZnNldFZlY3RvcltvZmZzZXRd
OwotICAgIAotI2lmZGVmIERFQlVHCi0gICAgaWYgKHN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVj
dCkKLSAgICAgICAgcHJpbnRmKCJtYXRjaGluZyBzdWJqZWN0IDxudWxsPiIpOwotICAgIGVsc2Ug
ewotICAgICAgICBwcmludGYoIm1hdGNoaW5nIHN1YmplY3QgIik7Ci0gICAgICAgIHBjaGFycyhz
dWJqZWN0UHRyLCBsZW5ndGgsIHRydWUsIG1kKTsKLSAgICB9Ci0gICAgcHJpbnRmKCIgYWdhaW5z
dCBiYWNrcmVmICIpOwotICAgIHBjaGFycyhwLCBsZW5ndGgsIGZhbHNlLCBtZCk7Ci0gICAgcHJp
bnRmKCJcbiIpOwotI2VuZGlmCi0gICAgCi0gICAgLyogQWx3YXlzIGZhaWwgaWYgbm90IGVub3Vn
aCBjaGFyYWN0ZXJzIGxlZnQgKi8KLSAgICAKLSAgICBpZiAobGVuZ3RoID4gbWQuZW5kU3ViamVj
dCAtIHN1YmplY3RQdHIpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICAvKiBTZXBh
cmF0ZSB0aGUgY2FzZWxlc3NzIGNhc2UgZm9yIHNwZWVkICovCi0gICAgCi0gICAgaWYgKG1kLmln
bm9yZUNhc2UpIHsKLSAgICAgICAgd2hpbGUgKGxlbmd0aC0tID4gMCkgewotICAgICAgICAgICAg
VUNoYXIgYyA9ICpwKys7Ci0gICAgICAgICAgICBpbnQgb3RoZXJjYXNlID0ganNjX3BjcmVfdWNw
X290aGVyY2FzZShjKTsKLSAgICAgICAgICAgIFVDaGFyIGQgPSAqc3ViamVjdFB0cisrOwotICAg
ICAgICAgICAgaWYgKGMgIT0gZCAmJiBvdGhlcmNhc2UgIT0gZCkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZWxzZSB7Ci0gICAgICAgIHdoaWxl
IChsZW5ndGgtLSA+IDApCi0gICAgICAgICAgICBpZiAoKnArKyAhPSAqc3ViamVjdFB0cisrKQot
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHRy
dWU7Ci19Ci0KLSNpZm5kZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENIX1JFQ1VSU0lPTgot
Ci0vKiBVc2UgbnVtYmVyZWQgbGFiZWxzIGFuZCBzd2l0Y2ggc3RhdGVtZW50IGF0IHRoZSBib3R0
b20gb2YgdGhlIG1hdGNoIGZ1bmN0aW9uLiAqLwotCi0jZGVmaW5lIFJNQVRDSF9XSEVSRShudW0p
IG51bQotI2RlZmluZSBSUkVUVVJOX0xBQkVMIFJSRVRVUk5fU1dJVENICi0KLSNlbHNlCi0KLS8q
IFVzZSBHQ0MncyBjb21wdXRlZCBnb3RvIGV4dGVuc2lvbi4gKi8KLQotLyogRm9yIG9uZSB0ZXN0
IGNhc2UgdGhpcyBpcyBtb3JlIHRoYW4gNDAlIGZhc3RlciB0aGFuIHRoZSBzd2l0Y2ggc3RhdGVt
ZW50LgotV2UgY291bGQgYXZvaWQgdGhlIHVzZSBvZiB0aGUgbnVtIGFyZ3VtZW50IGVudGlyZWx5
IGJ5IHVzaW5nIGxvY2FsIGxhYmVscywKLWJ1dCB1c2luZyBpdCBmb3IgdGhlIEdDQyBjYXNlIGFz
IHdlbGwgYXMgdGhlIG5vbi1HQ0MgY2FzZSBhbGxvd3MgdXMgdG8gc2hhcmUKLWEgYml0IG1vcmUg
Y29kZSBhbmQgbm90aWNlIGlmIHdlIHVzZSBjb25mbGljdGluZyBudW1iZXJzLiovCi0KLSNkZWZp
bmUgUk1BVENIX1dIRVJFKG51bSkgJiZSUkVUVVJOXyMjbnVtCi0jZGVmaW5lIFJSRVRVUk5fTEFC
RUwgKnN0YWNrLmN1cnJlbnRGcmFtZS0+cmV0dXJuTG9jYXRpb24KLQotI2VuZGlmCi0KLSNkZWZp
bmUgUkVDVVJTSVZFX01BVENIX0NPTU1PTihudW0pIFwKLSAgICBnb3RvIFJFQ1VSU0U7XAotICAg
IFJSRVRVUk5fIyNudW06IFwKLSAgICBzdGFjay5wb3BDdXJyZW50RnJhbWUoKTsKLQotI2RlZmlu
ZSBSRUNVUlNJVkVfTUFUQ0gobnVtLCByYSwgcmIpIFwKLSAgICBkbyB7IFwKLSAgICAgICAgc3Rh
Y2sucHVzaE5ld0ZyYW1lKChyYSksIChyYiksIFJNQVRDSF9XSEVSRShudW0pKTsgXAotICAgICAg
ICBSRUNVUlNJVkVfTUFUQ0hfQ09NTU9OKG51bSkgXAotICAgIH0gd2hpbGUgKDApCi0KLSNkZWZp
bmUgUkVDVVJTSVZFX01BVENIX05FV19HUk9VUChudW0sIHJhLCByYikgXAotICAgIGRvIHsgXAot
ICAgICAgICBzdGFjay5wdXNoTmV3RnJhbWUoKHJhKSwgKHJiKSwgUk1BVENIX1dIRVJFKG51bSkp
OyBcCi0gICAgICAgIHN0YXJ0TmV3R3JvdXAoc3RhY2suY3VycmVudEZyYW1lKTsgXAotICAgICAg
ICBSRUNVUlNJVkVfTUFUQ0hfQ09NTU9OKG51bSkgXAotICAgIH0gd2hpbGUgKDApCi0KLSNkZWZp
bmUgUlJFVFVSTiBnb3RvIFJSRVRVUk5fTEFCRUwKLQotI2RlZmluZSBSUkVUVVJOX05PX01BVENI
IGRvIHsgaXNNYXRjaCA9IGZhbHNlOyBSUkVUVVJOOyB9IHdoaWxlICgwKQotCi0vKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgIE1hdGNo
IGZyb20gY3VycmVudCBwb3NpdGlvbiAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIE9uIGVudHJ5IGluc3RydWN0aW9u
UHRyIHBvaW50cyB0byB0aGUgZmlyc3Qgb3Bjb2RlLCBhbmQgc3ViamVjdFB0ciB0byB0aGUgZmly
c3QgY2hhcmFjdGVyCi1pbiB0aGUgc3ViamVjdCBzdHJpbmcsIHdoaWxlIHN1YnN0cmluZ1N0YXJ0
IGhvbGRzIHRoZSB2YWx1ZSBvZiBzdWJqZWN0UHRyIGF0IHRoZSBzdGFydCBvZiB0aGUKLWxhc3Qg
YnJhY2tldGVkIGdyb3VwIC0gdXNlZCBmb3IgYnJlYWtpbmcgaW5maW5pdGUgbG9vcHMgbWF0Y2hp
bmcgemVyby1sZW5ndGgKLXN0cmluZ3MuIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHJlY3Vyc2l2
ZWx5IGluIG1hbnkgY2lyY3Vtc3RhbmNlcy4gV2hlbmV2ZXIgaXQKLXJldHVybnMgYSBuZWdhdGl2
ZSAoZXJyb3IpIHJlc3BvbnNlLCB0aGUgb3V0ZXIgbWF0Y2goKSBjYWxsIG11c3QgYWxzbyByZXR1
cm4gdGhlCi1zYW1lIHJlc3BvbnNlLgotCi1Bcmd1bWVudHM6Ci0gICBzdWJqZWN0UHRyICAgICAg
ICBwb2ludGVyIGluIHN1YmplY3QKLSAgIGluc3RydWN0aW9uUHRyICAgICAgIHBvc2l0aW9uIGlu
IGNvZGUKLSAgIG9mZnNldFRvcCAgY3VycmVudCB0b3AgcG9pbnRlcgotICAgbWQgICAgICAgICAg
cG9pbnRlciB0byAic3RhdGljIiBpbmZvIGZvciB0aGUgbWF0Y2gKLQotUmV0dXJuczogICAgICAg
MSBpZiBtYXRjaGVkICAgICAgICAgICkgIHRoZXNlIHZhbHVlcyBhcmUgPj0gMAotICAgICAgICAg
ICAgICAgMCBpZiBmYWlsZWQgdG8gbWF0Y2ggICkKLSAgICAgICAgICAgICAgIGEgbmVnYXRpdmUg
ZXJyb3IgdmFsdWUgaWYgYWJvcnRlZCBieSBhbiBlcnJvciBjb25kaXRpb24KLSAgICAgICAgICAg
ICAgICAgKGUuZy4gc3RvcHBlZCBieSByZXBlYXRlZCBjYWxsIG9yIHJlY3Vyc2lvbiBsaW1pdCkK
LSovCi0KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1GcmFtZXNPblN0YWNrID0gMTY7Ci0KLXN0
cnVjdCBNYXRjaFN0YWNrIHsKLSAgICBNYXRjaFN0YWNrKCkKLSAgICAgICAgOiBmcmFtZXNFbmQo
ZnJhbWVzICsgbnVtRnJhbWVzT25TdGFjaykKLSAgICAgICAgLCBjdXJyZW50RnJhbWUoZnJhbWVz
KQotICAgICAgICAsIHNpemUoMSkgLy8gbWF0Y2goKSBjcmVhdGVzIGFjY2Vzc2VzIHRoZSBmaXJz
dCBmcmFtZSB3L28gY2FsbGluZyBwdXNoTmV3RnJhbWUKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgo
c2l6ZW9mKGZyYW1lcykgLyBzaXplb2YoZnJhbWVzWzBdKSkgPT0gbnVtRnJhbWVzT25TdGFjayk7
Ci0gICAgfQotICAgIAotICAgIE1hdGNoRnJhbWUgZnJhbWVzW251bUZyYW1lc09uU3RhY2tdOwot
ICAgIE1hdGNoRnJhbWUqIGZyYW1lc0VuZDsKLSAgICBNYXRjaEZyYW1lKiBjdXJyZW50RnJhbWU7
Ci0gICAgdW5zaWduZWQgc2l6ZTsKLSAgICAKLSAgICBpbmxpbmUgYm9vbCBjYW5Vc2VTdGFja0J1
ZmZlckZvck5leHRGcmFtZSgpCi0gICAgewotICAgICAgICByZXR1cm4gc2l6ZSA8IG51bUZyYW1l
c09uU3RhY2s7Ci0gICAgfQotICAgIAotICAgIGlubGluZSBNYXRjaEZyYW1lKiBhbGxvY2F0ZU5l
eHRGcmFtZSgpCi0gICAgewotICAgICAgICBpZiAoY2FuVXNlU3RhY2tCdWZmZXJGb3JOZXh0RnJh
bWUoKSkKLSAgICAgICAgICAgIHJldHVybiBjdXJyZW50RnJhbWUgKyAxOwotICAgICAgICByZXR1
cm4gbmV3IE1hdGNoRnJhbWU7Ci0gICAgfQotICAgIAotICAgIGlubGluZSB2b2lkIHB1c2hOZXdG
cmFtZShjb25zdCB1bnNpZ25lZCBjaGFyKiBpbnN0cnVjdGlvblB0ciwgQnJhY2tldENoYWluTm9k
ZSogYnJhY2tldENoYWluLCBSZXR1cm5Mb2NhdGlvbiByZXR1cm5Mb2NhdGlvbikKLSAgICB7Ci0g
ICAgICAgIE1hdGNoRnJhbWUqIG5ld2ZyYW1lID0gYWxsb2NhdGVOZXh0RnJhbWUoKTsKLSAgICAg
ICAgbmV3ZnJhbWUtPnByZXZpb3VzRnJhbWUgPSBjdXJyZW50RnJhbWU7Ci0KLSAgICAgICAgbmV3
ZnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA9IGN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwot
ICAgICAgICBuZXdmcmFtZS0+YXJncy5vZmZzZXRUb3AgPSBjdXJyZW50RnJhbWUtPmFyZ3Mub2Zm
c2V0VG9wOwotICAgICAgICBuZXdmcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9IGluc3RydWN0
aW9uUHRyOwotICAgICAgICBuZXdmcmFtZS0+YXJncy5icmFja2V0Q2hhaW4gPSBicmFja2V0Q2hh
aW47Ci0gICAgICAgIG5ld2ZyYW1lLT5yZXR1cm5Mb2NhdGlvbiA9IHJldHVybkxvY2F0aW9uOwot
ICAgICAgICBzaXplKys7Ci0KLSAgICAgICAgY3VycmVudEZyYW1lID0gbmV3ZnJhbWU7Ci0gICAg
fQotICAgIAotICAgIGlubGluZSB2b2lkIHBvcEN1cnJlbnRGcmFtZSgpCi0gICAgewotICAgICAg
ICBNYXRjaEZyYW1lKiBvbGRGcmFtZSA9IGN1cnJlbnRGcmFtZTsKLSAgICAgICAgY3VycmVudEZy
YW1lID0gY3VycmVudEZyYW1lLT5wcmV2aW91c0ZyYW1lOwotICAgICAgICBpZiAoc2l6ZSA+IG51
bUZyYW1lc09uU3RhY2spCi0gICAgICAgICAgICBkZWxldGUgb2xkRnJhbWU7Ci0gICAgICAgIHNp
emUtLTsKLSAgICB9Ci0KLSAgICB2b2lkIHBvcEFsbEZyYW1lcygpCi0gICAgewotICAgICAgICB3
aGlsZSAoc2l6ZSkKLSAgICAgICAgICAgIHBvcEN1cnJlbnRGcmFtZSgpOwotICAgIH0KLX07Ci0K
LXN0YXRpYyBpbnQgbWF0Y2hFcnJvcihpbnQgZXJyb3JDb2RlLCBNYXRjaFN0YWNrJiBzdGFjaykK
LXsKLSAgICBzdGFjay5wb3BBbGxGcmFtZXMoKTsKLSAgICByZXR1cm4gZXJyb3JDb2RlOwotfQot
Ci0vKiBHZXQgdGhlIG5leHQgVVRGLTggY2hhcmFjdGVyLCBub3QgYWR2YW5jaW5nIHRoZSBwb2lu
dGVyLCBpbmNyZW1lbnRpbmcgbGVuZ3RoCi0gaWYgdGhlcmUgYXJlIGV4dHJhIGJ5dGVzLiBUaGlz
IGlzIGNhbGxlZCB3aGVuIHdlIGtub3cgd2UgYXJlIGluIFVURi04IG1vZGUuICovCi0KLXN0YXRp
YyBpbmxpbmUgdm9pZCBnZXRVVEY4Q2hhckFuZEluY3JlbWVudExlbmd0aChpbnQmIGMsIGNvbnN0
IHVuc2lnbmVkIGNoYXIqIHN1YmplY3RQdHIsIGludCYgbGVuKQotewotICAgIGMgPSAqc3ViamVj
dFB0cjsKLSAgICBpZiAoKGMgJiAweGMwKSA9PSAweGMwKSB7Ci0gICAgICAgIGludCBnY2FhID0g
anNjX3BjcmVfdXRmOF90YWJsZTRbYyAmIDB4M2ZdOyAgLyogTnVtYmVyIG9mIGFkZGl0aW9uYWwg
Ynl0ZXMgKi8KLSAgICAgICAgaW50IGdjc3MgPSA2ICogZ2NhYTsKLSAgICAgICAgYyA9IChjICYg
anNjX3BjcmVfdXRmOF90YWJsZTNbZ2NhYV0pIDw8IGdjc3M7Ci0gICAgICAgIGZvciAoaW50IGdj
aWkgPSAxOyBnY2lpIDw9IGdjYWE7IGdjaWkrKykgewotICAgICAgICAgICAgZ2NzcyAtPSA2Owot
ICAgICAgICAgICAgYyB8PSAoc3ViamVjdFB0cltnY2lpXSAmIDB4M2YpIDw8IGdjc3M7Ci0gICAg
ICAgIH0KLSAgICAgICAgbGVuICs9IGdjYWE7Ci0gICAgfQotfQotCi1zdGF0aWMgaW5saW5lIHZv
aWQgc3RhcnROZXdHcm91cChNYXRjaEZyYW1lKiBjdXJyZW50RnJhbWUpCi17Ci0gICAgLyogQXQg
dGhlIHN0YXJ0IG9mIGEgYnJhY2tldGVkIGdyb3VwLCBhZGQgdGhlIGN1cnJlbnQgc3ViamVjdCBw
b2ludGVyIHRvIHRoZQotICAgICBzdGFjayBvZiBzdWNoIHBvaW50ZXJzLCB0byBiZSByZS1pbnN0
YXRlZCBhdCB0aGUgZW5kIG9mIHRoZSBncm91cCB3aGVuIHdlIGhpdAotICAgICB0aGUgY2xvc2lu
ZyBrZXQuIFdoZW4gbWF0Y2goKSBpcyBjYWxsZWQgaW4gb3RoZXIgY2lyY3Vtc3RhbmNlcywgd2Ug
ZG9uJ3QgYWRkIHRvCi0gICAgIHRoaXMgc3RhY2suICovCi0gICAgCi0gICAgY3VycmVudEZyYW1l
LT5sb2NhbHMuYnJhY2tldENoYWluTm9kZS5wcmV2aW91c0JyYWNrZXQgPSBjdXJyZW50RnJhbWUt
PmFyZ3MuYnJhY2tldENoYWluOwotICAgIGN1cnJlbnRGcmFtZS0+bG9jYWxzLmJyYWNrZXRDaGFp
bk5vZGUuYnJhY2tldFN0YXJ0ID0gY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAg
Y3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbiA9ICZjdXJyZW50RnJhbWUtPmxvY2Fscy5i
cmFja2V0Q2hhaW5Ob2RlOwotfQotCi0vLyBGSVhNRTogIm1pbmltaXplIiBtZWFucyAibm90IGdy
ZWVkeSIsIHdlIHNob3VsZCBpbnZlcnQgdGhlIGNhbGxlcnMgdG8gYXNrIGZvciAiZ3JlZWR5IiB0
byBiZSBsZXNzIGNvbmZ1c2luZwotc3RhdGljIGlubGluZSB2b2lkIHJlcGVhdEluZm9ybWF0aW9u
RnJvbUluc3RydWN0aW9uT2Zmc2V0KGludCBpbnN0cnVjdGlvbk9mZnNldCwgYm9vbCYgbWluaW1p
emUsIGludCYgbWluaW11bVJlcGVhdHMsIGludCYgbWF4aW11bVJlcGVhdHMpCi17Ci0gICAgLy8g
SW5zdHJ1Y3Rpb24gb2Zmc2V0cyBhcmUgYmFzZWQgb2ZmIG9mIE9QX0NSU1RBUiwgT1BfU1RBUiwg
T1BfVFlQRVNUQVIsIE9QX05PVFNUQVIKLSAgICBzdGF0aWMgY29uc3QgY2hhciBtaW5pbXVtUmVw
ZWF0c0Zyb21JbnN0cnVjdGlvbk9mZnNldFtdID0geyAwLCAwLCAxLCAxLCAwLCAwIH07Ci0gICAg
c3RhdGljIGNvbnN0IGludCBtYXhpbXVtUmVwZWF0c0Zyb21JbnN0cnVjdGlvbk9mZnNldFtdID0g
eyBJTlRfTUFYLCBJTlRfTUFYLCBJTlRfTUFYLCBJTlRfTUFYLCAxLCAxIH07Ci0KLSAgICBBU1NF
UlQoaW5zdHJ1Y3Rpb25PZmZzZXQgPj0gMCk7Ci0gICAgQVNTRVJUKGluc3RydWN0aW9uT2Zmc2V0
IDw9IChPUF9DUk1JTlFVRVJZIC0gT1BfQ1JTVEFSKSk7Ci0KLSAgICBtaW5pbWl6ZSA9IChpbnN0
cnVjdGlvbk9mZnNldCAmIDEpOyAvLyB0aGlzIGFzc3VtZXMgb3JkZXJpbmc6IEluc3RydWN0aW9u
LCBNaW5pbWl6ZUluc3RydWN0aW9uLCBJbnN0cnVjdGlvbjIsIE1pbmltaXplSW5zdHJ1Y3Rpb24y
Ci0gICAgbWluaW11bVJlcGVhdHMgPSBtaW5pbXVtUmVwZWF0c0Zyb21JbnN0cnVjdGlvbk9mZnNl
dFtpbnN0cnVjdGlvbk9mZnNldF07Ci0gICAgbWF4aW11bVJlcGVhdHMgPSBtYXhpbXVtUmVwZWF0
c0Zyb21JbnN0cnVjdGlvbk9mZnNldFtpbnN0cnVjdGlvbk9mZnNldF07Ci19Ci0KLXN0YXRpYyBp
bnQgbWF0Y2goY29uc3QgVUNoYXIqIHN1YmplY3RQdHIsIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGlu
c3RydWN0aW9uUHRyLCBpbnQgb2Zmc2V0VG9wLCBNYXRjaERhdGEmIG1kKQotewotICAgIGJvb2wg
aXNNYXRjaCA9IGZhbHNlOwotICAgIGludCBtaW47Ci0gICAgYm9vbCBtaW5pbWl6ZSA9IGZhbHNl
OyAvKiBJbml0aWFsaXphdGlvbiBub3QgcmVhbGx5IG5lZWRlZCwgYnV0IHNvbWUgY29tcGlsZXJz
IHRoaW5rIHNvLiAqLwotICAgIHVuc2lnbmVkIHJlbWFpbmluZ01hdGNoQ291bnQgPSBtYXRjaExp
bWl0OwotICAgIGludCBvdGhlcmNhc2U7IC8qIERlY2xhcmUgaGVyZSB0byBhdm9pZCBlcnJvcnMg
ZHVyaW5nIGp1bXBzICovCi0gICAgCi0gICAgTWF0Y2hTdGFjayBzdGFjazsKLQotICAgIC8qIFRo
ZSBvcGNvZGUganVtcCB0YWJsZS4gKi8KLSNpZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1JfTUFU
Q0hfT1BDT0RFX0xPT1AKLSNkZWZpbmUgRU1JVF9KVU1QX1RBQkxFX0VOVFJZKG9wY29kZSkgJiZM
QUJFTF9PUF8jI29wY29kZSwKLSAgICBzdGF0aWMgdm9pZCogb3Bjb2RlSnVtcFRhYmxlWzI1Nl0g
PSB7IEZPUl9FQUNIX09QQ09ERShFTUlUX0pVTVBfVEFCTEVfRU5UUlkpIH07Ci0jdW5kZWYgRU1J
VF9KVU1QX1RBQkxFX0VOVFJZCi0jZW5kaWYKLSAgICAKLSAgICAvKiBPbmUtdGltZSBzZXR1cCBv
ZiB0aGUgb3Bjb2RlIGp1bXAgdGFibGUuICovCi0jaWZkZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9S
X01BVENIX09QQ09ERV9MT09QCi0gICAgZm9yIChpbnQgaSA9IDI1NTsgIW9wY29kZUp1bXBUYWJs
ZVtpXTsgaS0tKQotICAgICAgICBvcGNvZGVKdW1wVGFibGVbaV0gPSAmJkNBUFRVUklOR19CUkFD
S0VUOwotI2VuZGlmCi0gICAgCi0jaWZkZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENIX1JF
Q1VSU0lPTgotICAgIC8vIFNoYXJrIHNob3dzIHRoaXMgYXMgYSBob3QgbGluZQotICAgIC8vIFVz
aW5nIGEgc3RhdGljIGNvbnN0IGhlcmUgbWFrZXMgdGhpcyBsaW5lIGRpc2FwcGVhciwgYnV0IG1h
a2VzIGxhdGVyIGFjY2VzcyBob3R0ZXIgKG5vdCBzdXJlIHdoeSkKLSAgICBzdGFjay5jdXJyZW50
RnJhbWUtPnJldHVybkxvY2F0aW9uID0gJiZSRVRVUk47Ci0jZWxzZQotICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+cmV0dXJuTG9jYXRpb24gPSAwOwotI2VuZGlmCi0gICAgc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLnN1YmplY3RQdHIgPSBzdWJqZWN0UHRyOwotICAgIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9IGluc3RydWN0aW9uUHRyOwotICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5vZmZzZXRUb3AgPSBvZmZzZXRUb3A7Ci0gICAgc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLmJyYWNrZXRDaGFpbiA9IDA7Ci0gICAgc3RhcnROZXdHcm91cChzdGFjay5jdXJy
ZW50RnJhbWUpOwotICAgIAotICAgIC8qIFRoaXMgaXMgd2hlcmUgY29udHJvbCBqdW1wcyBiYWNr
IHRvIHRvIGVmZmVjdCAicmVjdXJzaW9uIiAqLwotICAgIAotUkVDVVJTRToKLSAgICBpZiAoIS0t
cmVtYWluaW5nTWF0Y2hDb3VudCkKLSAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNSZWdFeHBF
cnJvckhpdExpbWl0LCBzdGFjayk7Ci0KLSAgICAvKiBOb3cgc3RhcnQgcHJvY2Vzc2luZyB0aGUg
b3BlcmF0aW9ucy4gKi8KLSAgICAKLSNpZm5kZWYgVVNFX0NPTVBVVEVEX0dPVE9fRk9SX01BVENI
X09QQ09ERV9MT09QCi0gICAgd2hpbGUgKHRydWUpCi0jZW5kaWYKLSAgICB7Ci0gICAgICAgIAot
I2lmZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9PUENPREVfTE9PUAotI2RlZmluZSBC
RUdJTl9PUENPREUob3Bjb2RlKSBMQUJFTF9PUF8jI29wY29kZQotI2RlZmluZSBORVhUX09QQ09E
RSBnb3RvICpvcGNvZGVKdW1wVGFibGVbKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVj
dGlvblB0cl0KLSNlbHNlCi0jZGVmaW5lIEJFR0lOX09QQ09ERShvcGNvZGUpIGNhc2UgT1BfIyNv
cGNvZGUKLSNkZWZpbmUgTkVYVF9PUENPREUgY29udGludWUKLSNlbmRpZgotICAgICAgICAKLSNp
ZmRlZiBVU0VfQ09NUFVURURfR09UT19GT1JfTUFUQ0hfT1BDT0RFX0xPT1AKLSAgICAgICAgTkVY
VF9PUENPREU7Ci0jZWxzZQotICAgICAgICBzd2l0Y2ggKCpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIpCi0jZW5kaWYKLSAgICAgICAgewotICAgICAgICAgICAgLyogTm9u
LWNhcHR1cmluZyBicmFja2V0OiBvcHRpbWl6ZWQgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShCUkEpOgotICAgICAgICAgICAgTk9OX0NBUFRVUklOR19CUkFD
S0VUOgotICAgICAgICAgICAgICAgIERQUklOVEYoKCJzdGFydCBicmFja2V0IDBcbiIpKTsKLSAg
ICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9O
RVdfR1JPVVAoMiwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSAr
IExJTktfU0laRSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAg
ICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgUlJF
VFVSTjsKLSAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyICs9IGdldExpbmtWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1
Y3Rpb25QdHIgKyAxKTsKLSAgICAgICAgICAgICAgICB9IHdoaWxlICgqc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLmluc3RydWN0aW9uUHRyID09IE9QX0FMVCk7Ci0gICAgICAgICAgICAgICAgRFBS
SU5URigoImJyYWNrZXQgMCBmYWlsZWRcbiIpKTsKLSAgICAgICAgICAgICAgICBSUkVUVVJOOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogU2tpcCBvdmVyIGxhcmdlIGV4dHJhY3Rp
b24gbnVtYmVyIGRhdGEgaWYgZW5jb3VudGVyZWQuICovCi0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICBCRUdJTl9PUENPREUoQlJBTlVNQkVSKToKLSAgICAgICAgICAgICAgICBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMzsKLSAgICAgICAgICAgICAgICBO
RVhUX09QQ09ERTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIEVuZCBvZiB0aGUg
cGF0dGVybi4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShF
TkQpOgotICAgICAgICAgICAgICAgIG1kLmVuZE1hdGNoUHRyID0gc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLnN1YmplY3RQdHI7ICAgICAgICAgIC8qIFJlY29yZCB3aGVyZSB3ZSBlbmRlZCAqLwot
ICAgICAgICAgICAgICAgIG1kLmVuZE9mZnNldFRvcCA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5vZmZzZXRUb3A7ICAgLyogYW5kIGhvdyBtYW55IGV4dHJhY3RzIHdlcmUgdGFrZW4gKi8KLSAg
ICAgICAgICAgICAgICBpc01hdGNoID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBSUkVUVVJOOwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogQXNzZXJ0aW9uIGJyYWNrZXRzLiBDaGVj
ayB0aGUgYWx0ZXJuYXRpdmUgYnJhbmNoZXMgaW4gdHVybiAtIHRoZQotICAgICAgICAgICAgIG1h
dGNoaW5nIHdvbid0IHBhc3MgdGhlIEtFVCBmb3IgYW4gYXNzZXJ0aW9uLiBJZiBhbnkgb25lIGJy
YW5jaCBtYXRjaGVzLAotICAgICAgICAgICAgIHRoZSBhc3NlcnRpb24gaXMgdHJ1ZS4gTG9va2Jl
aGluZCBhc3NlcnRpb25zIGhhdmUgYW4gT1BfUkVWRVJTRSBpdGVtIGF0IHRoZQotICAgICAgICAg
ICAgIHN0YXJ0IG9mIGVhY2ggYnJhbmNoIHRvIG1vdmUgdGhlIGN1cnJlbnQgcG9pbnQgYmFja3dh
cmRzLCBzbyB0aGUgY29kZSBhdAotICAgICAgICAgICAgIHRoaXMgbGV2ZWwgaXMgaWRlbnRpY2Fs
IHRvIHRoZSBsb29rYWhlYWQgY2FzZS4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAg
IEJFR0lOX09QQ09ERShBU1NFUlQpOgotICAgICAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAg
ICAgICAgICAgUkVDVVJTSVZFX01BVENIX05FV19HUk9VUCg2LCBzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAxICsgTElOS19TSVpFLCBOVUxMKTsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRy
ICs9IGdldExpbmtWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIg
KyAxKTsKLSAgICAgICAgICAgICAgICB9IHdoaWxlICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
Lmluc3RydWN0aW9uUHRyID09IE9QX0FMVCk7Ci0gICAgICAgICAgICAgICAgaWYgKCpzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfS0VUKQotICAgICAgICAgICAg
ICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIC8qIENvbnRpbnVlIGZyb20gYWZ0ZXIgdGhlIGFzc2VydGlvbiwgdXBkYXRpbmcgdGhlIG9m
ZnNldHMgaGlnaCB3YXRlcgotICAgICAgICAgICAgICAgICBtYXJrLCBzaW5jZSBleHRyYWN0cyBt
YXkgaGF2ZSBiZWVuIHRha2VuIGR1cmluZyB0aGUgYXNzZXJ0aW9uLiAqLwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIGFkdmFuY2VUb0VuZE9mQnJhY2tldChzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIpOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAxICsgTElOS19TSVpFOwotICAgICAgICAg
ICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5vZmZzZXRUb3AgPSBtZC5lbmRPZmZzZXRU
b3A7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvKiBOZWdhdGl2ZSBhc3NlcnRpb246IGFsbCBicmFuY2hlcyBtdXN0IGZhaWwgdG8g
bWF0Y2ggKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShBU1NF
UlRfTk9UKToKLSAgICAgICAgICAgICAgICBkbyB7Ci0gICAgICAgICAgICAgICAgICAgIFJFQ1VS
U0lWRV9NQVRDSF9ORVdfR1JPVVAoNywgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICsgMSArIExJTktfU0laRSwgTlVMTCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChp
c01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9
IGdldExpbmtWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAx
KTsKLSAgICAgICAgICAgICAgICB9IHdoaWxlICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmlu
c3RydWN0aW9uUHRyID09IE9QX0FMVCk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDEgKyBMSU5LX1NJ
WkU7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvKiBBbiBhbHRlcm5hdGlvbiBpcyB0aGUgZW5kIG9mIGEgYnJhbmNoOyBzY2FuIGFs
b25nIHRvIGZpbmQgdGhlIGVuZCBvZiB0aGUKLSAgICAgICAgICAgICBicmFja2V0ZWQgZ3JvdXAg
YW5kIGdvIHRvIHRoZXJlLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKEFMVCk6Ci0gICAgICAgICAgICAgICAgYWR2YW5jZVRvRW5kT2ZCcmFja2V0KHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cik7Ci0gICAgICAgICAgICAgICAgTkVY
VF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBCUkFaRVJPIGFuZCBC
UkFNSU5aRVJPIG9jY3VyIGp1c3QgYmVmb3JlIGEgYnJhY2tldCBncm91cCwgaW5kaWNhdGluZwot
ICAgICAgICAgICAgIHRoYXQgaXQgbWF5IG9jY3VyIHplcm8gdGltZXMuIEl0IG1heSByZXBlYXQg
aW5maW5pdGVseSwgb3Igbm90IGF0IGFsbCAtCi0gICAgICAgICAgICAgaS5lLiBpdCBjb3VsZCBi
ZSAoKSogb3IgKCk/IGluIHRoZSBwYXR0ZXJuLiBCcmFja2V0cyB3aXRoIGZpeGVkIHVwcGVyCi0g
ICAgICAgICAgICAgcmVwZWF0IGxpbWl0cyBhcmUgY29tcGlsZWQgYXMgYSBudW1iZXIgb2YgY29w
aWVzLCB3aXRoIHRoZSBvcHRpb25hbCBvbmVzCi0gICAgICAgICAgICAgcHJlY2VkZWQgYnkgQlJB
WkVSTyBvciBCUkFNSU5aRVJPLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKEJSQVpFUk8pOiB7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMuc3RhcnRPZlJlcGVhdGluZ0JyYWNrZXQgPSBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKyAxOwotICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9O
RVdfR1JPVVAoMTQsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN0YXJ0T2ZSZXBlYXRpbmdC
cmFja2V0LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAg
ICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAg
ICAgICAgICAgICBhZHZhbmNlVG9FbmRPZkJyYWNrZXQoc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMuc3RhcnRPZlJlcGVhdGluZ0JyYWNrZXQpOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
LnN0YXJ0T2ZSZXBlYXRpbmdCcmFja2V0ICsgMSArIExJTktfU0laRTsKLSAgICAgICAgICAgICAg
ICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIEJFR0lOX09QQ09ERShCUkFNSU5aRVJPKTogewotICAgICAgICAgICAgICAgIHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLnN0YXJ0T2ZSZXBlYXRpbmdCcmFja2V0ID0gc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMTsKLSAgICAgICAgICAgICAgICBhZHZhbmNl
VG9FbmRPZkJyYWNrZXQoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3RhcnRPZlJlcGVhdGlu
Z0JyYWNrZXQpOwotICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9ORVdfR1JPVVAoMTUs
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN0YXJ0T2ZSZXBlYXRpbmdCcmFja2V0ICsgMSAr
IExJTktfU0laRSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAg
ICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0g
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7
Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAvKiBFbmQgb2YgYSBncm91cCwgcmVwZWF0ZWQgb3Igbm9uLXJl
cGVhdGluZy4gSWYgd2UgYXJlIGF0IHRoZSBlbmQgb2YKLSAgICAgICAgICAgICBhbiBhc3NlcnRp
b24gImdyb3VwIiwgc3RvcCBtYXRjaGluZyBhbmQgcmV0dXJuIDEsIGJ1dCByZWNvcmQgdGhlCi0g
ICAgICAgICAgICAgY3VycmVudCBoaWdoIHdhdGVyIG1hcmsgZm9yIHVzZSBieSBwb3NpdGl2ZSBh
c3NlcnRpb25zLiBEbyB0aGlzIGFsc28KLSAgICAgICAgICAgICBmb3IgdGhlICJvbmNlIiAobm90
LWJhY2t1cCB1cCkgZ3JvdXBzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKEtFVCk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoS0VUUk1JTik6Ci0gICAg
ICAgICAgICBCRUdJTl9PUENPREUoS0VUUk1BWCk6Ci0gICAgICAgICAgICAgICAgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rpb25QdHJBdFN0YXJ0T2ZPbmNlID0gc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyIC0gZ2V0TGlua1ZhbHVlKHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgIHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4tPmJyYWNrZXRTdGFydDsKLQotICAg
ICAgICAgICAgICAgIC8qIEJhY2sgdXAgdGhlIHN0YWNrIG9mIGJyYWNrZXQgc3RhcnQgcG9pbnRl
cnMuICovCi0KLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tl
dENoYWluID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbi0+cHJldmlvdXNC
cmFja2V0OwotCi0gICAgICAgICAgICAgICAgaWYgKCpzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5pbnN0cnVjdGlvblB0ckF0U3RhcnRPZk9uY2UgPT0gT1BfQVNTRVJUIHx8ICpzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5pbnN0cnVjdGlvblB0ckF0U3RhcnRPZk9uY2UgPT0gT1BfQVNTRVJU
X05PVCkgewotICAgICAgICAgICAgICAgICAgICBtZC5lbmRPZmZzZXRUb3AgPSBzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3Mub2Zmc2V0VG9wOwotICAgICAgICAgICAgICAgICAgICBpc01hdGNoID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSW4gYWxsIG90aGVyIGNhc2VzIGV4
Y2VwdCBhIGNvbmRpdGlvbmFsIGdyb3VwIHdlIGhhdmUgdG8gY2hlY2sgdGhlCi0gICAgICAgICAg
ICAgICAgIGdyb3VwIG51bWJlciBiYWNrIGF0IHRoZSBzdGFydCBhbmQgaWYgbmVjZXNzYXJ5IGNv
bXBsZXRlIGhhbmRsaW5nIGFuCi0gICAgICAgICAgICAgICAgIGV4dHJhY3Rpb24gYnkgc2V0dGlu
ZyB0aGUgb2Zmc2V0cyBhbmQgYnVtcGluZyB0aGUgaGlnaCB3YXRlciBtYXJrLiAqLwotICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51
bWJlciA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5pbnN0cnVjdGlvblB0ckF0U3RhcnRP
Zk9uY2UgLSBPUF9CUkE7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogRm9y
IGV4dGVuZGVkIGV4dHJhY3Rpb24gYnJhY2tldHMgKGxhcmdlIG51bWJlciksIHdlIGhhdmUgdG8g
ZmlzaCBvdXQKLSAgICAgICAgICAgICAgICAgdGhlIG51bWJlciBmcm9tIGEgZHVtbXkgb3Bjb2Rl
IGF0IHRoZSBzdGFydC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAo
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVyID4gRVhUUkFDVF9CQVNJQ19NQVgpCi0g
ICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51bWJlciA9IGdl
dDJCeXRlVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rpb25QdHJBdFN0
YXJ0T2ZPbmNlICsgMiArIExJTktfU0laRSk7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMub2Zmc2V0ID0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVy
IDw8IDE7Ci0gICAgICAgICAgICAgICAgCi0jaWZkZWYgREVCVUcKLSAgICAgICAgICAgICAgICBw
cmludGYoImVuZCBicmFja2V0ICVkIiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVy
KTsKLSAgICAgICAgICAgICAgICBwcmludGYoIlxuIik7Ci0jZW5kaWYKLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAvKiBUZXN0IGZvciBhIG51bWJlcmVkIGdyb3VwLiBUaGlzIGlu
Y2x1ZGVzIGdyb3VwcyBjYWxsZWQgYXMgYSByZXN1bHQKLSAgICAgICAgICAgICAgICAgb2YgcmVj
dXJzaW9uLiBOb3RlIHRoYXQgd2hvbGUtcGF0dGVybiByZWN1cnNpb24gaXMgY29kZWQgYXMgYSBy
ZWN1cnNlCi0gICAgICAgICAgICAgICAgIGludG8gZ3JvdXAgMCwgc28gaXQgd29uJ3QgYmUgcGlj
a2VkIHVwIGhlcmUuIEluc3RlYWQsIHdlIGNhdGNoIGl0IHdoZW4KLSAgICAgICAgICAgICAgICAg
dGhlIE9QX0VORCBpcyByZWFjaGVkLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPiAwKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgPj0gbWQu
b2Zmc2V0TWF4KQotICAgICAgICAgICAgICAgICAgICAgICAgbWQub2Zmc2V0T3ZlcmZsb3cgPSB0
cnVlOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IG1kLm9mZnNldFZlY3RvcltzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXRdID0KLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1kLm9mZnNldFZlY3RvclttZC5vZmZzZXRFbmQgLSBzdGFj
ay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXJdOwotICAgICAgICAgICAgICAgICAgICAgICAg
bWQub2Zmc2V0VmVjdG9yW3N0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCsxXSA9IHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyIC0gbWQuc3RhcnRTdWJqZWN0OwotICAg
ICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5vZmZzZXRU
b3AgPD0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0KQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5vZmZzZXRUb3AgPSBzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgKyAyOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZv
ciBhIG5vbi1yZXBlYXRpbmcga2V0LCBqdXN0IGNvbnRpbnVlIGF0IHRoaXMgbGV2ZWwuIFRoaXMg
YWxzbwotICAgICAgICAgICAgICAgICBoYXBwZW5zIGZvciBhIHJlcGVhdGluZyBrZXQgaWYgbm8g
Y2hhcmFjdGVycyB3ZXJlIG1hdGNoZWQgaW4gdGhlIGdyb3VwLgotICAgICAgICAgICAgICAgICBU
aGlzIGlzIHRoZSBmb3JjaWJsZSBicmVha2luZyBvZiBpbmZpbml0ZSBsb29wcyBhcyBpbXBsZW1l
bnRlZCBpbiBQZXJsCi0gICAgICAgICAgICAgICAgIDUuMDA1LiBJZiB0aGVyZSBpcyBhbiBvcHRp
b25zIHJlc2V0LCBpdCB3aWxsIGdldCBvYmV5ZWQgaW4gdGhlIG5vcm1hbAotICAgICAgICAgICAg
ICAgICBjb3Vyc2Ugb2YgZXZlbnRzLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyID09IE9QX0tF
VCB8fCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA9PSBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24pIHsKLSAgICAgICAg
ICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDEg
KyBMSU5LX1NJWkU7Ci0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBUaGUgcmVwZWF0
aW5nIGtldHMgdHJ5IHRoZSByZXN0IG9mIHRoZSBwYXR0ZXJuIG9yIHJlc3RhcnQgZnJvbSB0aGUK
LSAgICAgICAgICAgICAgICAgcHJlY2VkaW5nIGJyYWNrZXQsIGluIHRoZSBhcHByb3ByaWF0ZSBv
cmRlci4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoKnN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9PSBPUF9LRVRSTUlOKSB7Ci0gICAgICAg
ICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCgxNiwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
Lmluc3RydWN0aW9uUHRyICsgMSArIExJTktfU0laRSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAg
ICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZF
X01BVENIX05FV19HUk9VUCgxNywgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rp
b25QdHJBdFN0YXJ0T2ZPbmNlLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWlu
KTsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7IC8qIE9QX0tFVFJNQVggKi8K
LSAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIX05FV19HUk9VUCgxOCwgc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMuaW5zdHJ1Y3Rpb25QdHJBdFN0YXJ0T2ZPbmNlLCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAg
ICAgICAgICBSRUNVUlNJVkVfTUFUQ0goMTksIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0
cnVjdGlvblB0ciArIDEgKyBMSU5LX1NJWkUsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFj
a2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBTdGFydCBvZiBzdWJq
ZWN0LiAqLwotCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoQ0lSQyk6Ci0gICAgICAgICAgICAg
ICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IG1kLnN0YXJ0U3Vi
amVjdCkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAg
ICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKzsKLSAgICAgICAg
ICAgICAgICBORVhUX09QQ09ERTsKLQotICAgICAgICAgICAgLyogQWZ0ZXIgaW50ZXJuYWwgbmV3
bGluZSBpZiBtdWx0aWxpbmUuICovCi0KLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShCT0wpOgot
ICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAh
PSBtZC5zdGFydFN1YmplY3QgJiYgIWlzTmV3bGluZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0clstMV0pKQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwot
ICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisr
OwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotCi0gICAgICAgICAgICAvKiBFbmQgb2Yg
c3ViamVjdC4gKi8KLQotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKERPTEwpOgotICAgICAgICAg
ICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA8IG1kLmVuZFN1
YmplY3QpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAg
ICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAg
ICAgICAgICAgTkVYVF9PUENPREU7Ci0KLSAgICAgICAgICAgIC8qIEJlZm9yZSBpbnRlcm5hbCBu
ZXdsaW5lIGlmIG11bHRpbGluZS4gKi8KLQotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKEVPTCk6
Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRy
IDwgbWQuZW5kU3ViamVjdCAmJiAhaXNOZXdsaW5lKCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAg
ICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0g
ICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAvKiBXb3JkIGJvdW5kYXJ5IGFzc2VydGlvbnMgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShOT1RfV09SRF9CT1VOREFSWSk6Ci0gICAgICAgICAgICBCRUdJ
Tl9PUENPREUoV09SRF9CT1VOREFSWSk6IHsKLSAgICAgICAgICAgICAgICBib29sIGN1cnJlbnRD
aGFySXNXb3JkQ2hhciA9IGZhbHNlOwotICAgICAgICAgICAgICAgIGJvb2wgcHJldmlvdXNDaGFy
SXNXb3JkQ2hhciA9IGZhbHNlOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlm
IChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+IG1kLnN0YXJ0U3ViamVjdCkK
LSAgICAgICAgICAgICAgICAgICAgcHJldmlvdXNDaGFySXNXb3JkQ2hhciA9IGlzV29yZENoYXIo
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHJbLTFdKTsKLSAgICAgICAgICAgICAg
ICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPCBtZC5lbmRTdWJqZWN0
KQotICAgICAgICAgICAgICAgICAgICBjdXJyZW50Q2hhcklzV29yZENoYXIgPSBpc1dvcmRDaGFy
KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cik7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogTm93IHNlZSBpZiB0aGUgc2l0dWF0aW9uIGlzIHdoYXQgd2Ug
d2FudCAqLwotICAgICAgICAgICAgICAgIGJvb2wgd29yZEJvdW5kYXJ5RGVzaXJlZCA9ICgqc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKysgPT0gT1BfV09SRF9CT1VOREFS
WSk7Ci0gICAgICAgICAgICAgICAgaWYgKHdvcmRCb3VuZGFyeURlc2lyZWQgPyBjdXJyZW50Q2hh
cklzV29yZENoYXIgPT0gcHJldmlvdXNDaGFySXNXb3JkQ2hhciA6IGN1cnJlbnRDaGFySXNXb3Jk
Q2hhciAhPSBwcmV2aW91c0NoYXJJc1dvcmRDaGFyKQotICAgICAgICAgICAgICAgICAgICBSUkVU
VVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0Y2ggYSBzaW5nbGUgY2hhcmFj
dGVyIHR5cGU7IGlubGluZSBmb3Igc3BlZWQgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIEJFR0lOX09QQ09ERShOT1RfTkVXTElORSk6Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAg
ICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaWYgKGlzTmV3
bGluZSgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKykpCi0gICAgICAgICAg
ICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENP
REU7Ci0KLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShOT1RfRElHSVQpOgotICAgICAgICAgICAg
ICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJq
ZWN0KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAg
ICAgIGlmIChpc0FTQ0lJRGlnaXQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRy
KyspKQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAg
ICAgICAgIE5FWFRfT1BDT0RFOwotCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoRElHSVQpOgot
ICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+
PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwot
ICAgICAgICAgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KCpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0cisrKSkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsK
LSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIr
KzsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLQotICAgICAgICAgICAgQkVHSU5fT1BD
T0RFKE5PVF9XSElURVNQQUNFKToKLSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAg
ICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAoaXNTcGFjZUNoYXIoKnN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKyspKQotICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotCi0g
ICAgICAgICAgICBCRUdJTl9PUENPREUoV0hJVEVTUEFDRSk6Ci0gICAgICAgICAgICAgICAgaWYg
KHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0g
ICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgaWYg
KCFpc1NwYWNlQ2hhcigqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKykpCi0g
ICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAg
TkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUo
Tk9UX1dPUkRDSEFSKToKLSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgUlJF
VFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAoaXNXb3JkQ2hhcigqc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKykpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRV
Uk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmlu
c3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoV09SRENIQVIpOgotICAgICAgICAgICAg
ICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJq
ZWN0KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAg
ICAgIGlmICghaXNXb3JkQ2hhcigqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIr
KykpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAg
ICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAg
ICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBNYXRj
aCBhIGJhY2sgcmVmZXJlbmNlLCBwb3NzaWJseSByZXBlYXRlZGx5LiBMb29rIHBhc3QgdGhlIGVu
ZCBvZiB0aGUKLSAgICAgICAgICAgICBpdGVtIHRvIHNlZSBpZiB0aGVyZSBpcyByZXBlYXQgaW5m
b3JtYXRpb24gZm9sbG93aW5nLiBUaGUgY29kZSBpcyBzaW1pbGFyCi0gICAgICAgICAgICAgdG8g
dGhhdCBmb3IgY2hhcmFjdGVyIGNsYXNzZXMsIGJ1dCByZXBlYXRlZCBmb3IgZWZmaWNpZW5jeS4g
VGhlbiBvYmV5Ci0gICAgICAgICAgICAgc2ltaWxhciBjb2RlIHRvIGNoYXJhY3RlciB0eXBlIHJl
cGVhdHMgLSB3cml0dGVuIG91dCBhZ2FpbiBmb3Igc3BlZWQuCi0gICAgICAgICAgICAgSG93ZXZl
ciwgaWYgdGhlIHJlZmVyZW5jZWQgc3RyaW5nIGlzIHRoZSBlbXB0eSBzdHJpbmcsIGFsd2F5cyB0
cmVhdAotICAgICAgICAgICAgIGl0IGFzIG1hdGNoZWQsIGFueSBudW1iZXIgb2YgdGltZXMgKG90
aGVyd2lzZSB0aGVyZSBjb3VsZCBiZSBpbmZpbml0ZQotICAgICAgICAgICAgIGxvb3BzKS4gKi8K
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShSRUYpOgotICAgICAg
ICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCA9IGdldDJCeXRlVmFs
dWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSkgPDwgMTsgICAg
ICAgICAgICAgICAvKiBEb3VibGVkIHJlZiBudW1iZXIgKi8KLSAgICAgICAgICAgICAgICBzdGFj
ay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMzsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAvKiBBZHZhbmNlIHBhc3QgaXRlbSAqLwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIC8qIElmIHRoZSByZWZlcmVuY2UgaXMgdW5zZXQsIHNldCB0aGUg
bGVuZ3RoIHRvIGJlIGxvbmdlciB0aGFuIHRoZSBhbW91bnQKLSAgICAgICAgICAgICAgICAgb2Yg
c3ViamVjdCBsZWZ0OyB0aGlzIGVuc3VyZXMgdGhhdCBldmVyeSBhdHRlbXB0IGF0IGEgbWF0Y2gg
ZmFpbHMuIFdlCi0gICAgICAgICAgICAgICAgIGNhbid0IGp1c3QgZmFpbCBoZXJlLCBiZWNhdXNl
IG9mIHRoZSBwb3NzaWJpbGl0eSBvZiBxdWFudGlmaWVycyB3aXRoIHplcm8KLSAgICAgICAgICAg
ICAgICAgbWluaW1hLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgPj0gc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLm9mZnNldFRvcCB8fCBtZC5vZmZzZXRWZWN0b3Jbc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMub2Zmc2V0XSA8IDApCi0gICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmxlbmd0aCA9IDA7Ci0gICAgICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAg
ICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGggPSBtZC5vZmZzZXRWZWN0b3Jb
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMub2Zmc2V0KzFdIC0gbWQub2Zmc2V0VmVjdG9yW3N0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldF07Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogU2V0IHVwIGZvciByZXBldGl0aW9uLCBvciBoYW5kbGUgdGhlIG5vbi1y
ZXBlYXRlZCBjYXNlICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgc3dpdGNo
ICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGNhc2UgT1BfQ1JTVEFSOgotICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX0NS
TUlOU1RBUjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlBMVVM6Ci0gICAgICAgICAg
ICAgICAgICAgIGNhc2UgT1BfQ1JNSU5QTFVTOgotICAgICAgICAgICAgICAgICAgICBjYXNlIE9Q
X0NSUVVFUlk6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5RVUVSWToKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHJlcGVhdEluZm9ybWF0aW9uRnJvbUluc3RydWN0aW9uT2Zmc2V0
KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKyAtIE9QX0NSU1RBUiwg
bWluaW1pemUsIG1pbiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgIGNhc2UgT1BfQ1JSQU5HRToKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBP
UF9DUk1JTlJBTkdFOgotICAgICAgICAgICAgICAgICAgICAgICAgbWluaW1pemUgPSAoKnN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9PSBPUF9DUk1JTlJBTkdFKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIG1pbiA9IGdldDJCeXRlVmFsdWUoc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBz
dGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDMpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9PSAwKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9IElOVF9NQVg7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1
Y3Rpb25QdHIgKz0gNTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAv
KiBObyByZXBlYXQgZm9sbG93cyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRj
aFJlZihzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQsIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5zdWJqZWN0UHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGgsIG1k
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgKz0g
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICAg
ICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgIC8qIElmIHRoZSBsZW5ndGggb2YgdGhlIHJlZmVyZW5jZSBpcyB6ZXJvLCBq
dXN0IGNvbnRpbnVlIHdpdGggdGhlCi0gICAgICAgICAgICAgICAgIG1haW4gbG9vcC4gKi8KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMubGVuZ3RoID09IDApCi0gICAgICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmlt
dW0gbnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuICovCi0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWluOyBpKyspIHsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKCFtYXRjaFJlZihzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZz
ZXQsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyLCBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5sZW5ndGgsIG1kKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5f
Tk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyICs9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogSWYgbWluID0g
bWF4LCBjb250aW51ZSBhdCB0aGUgc2FtZSBsZXZlbCB3aXRob3V0IHJlY3Vyc2lvbi4KLSAgICAg
ICAgICAgICAgICAgVGhleSBhcmUgbm90IGJvdGggYWxsb3dlZCB0byBiZSB6ZXJvLiAqLwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChtaW4gPT0gc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMubWF4KQotICAgICAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBtaW5pbWl6aW5nLCBrZWVwIHRyeWlu
ZyBhbmQgYWR2YW5jaW5nIHRoZSBwb2ludGVyICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgaWYgKG1pbmltaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPSBtaW47OyBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5maSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0goMjAsIHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3VycmVudEZyYW1l
LT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNNYXRj
aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpID49IHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLm1heCB8fCAhbWF0Y2hSZWYoc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMub2Zmc2V0LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciwgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoLCBtZCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyICs9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVy
IHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAvKiBJZiBtYXhpbWl6aW5nLCBmaW5kIHRoZSBsb25nZXN0IHN0cmluZyBh
bmQgd29yayBiYWNrd2FyZHMgKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3Vi
amVjdFB0ckF0U3RhcnRPZkluc3RydWN0aW9uID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFj
ay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtYXRjaFJlZihzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQsIHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5sZW5ndGgsIG1kKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICs9
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIgPj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3RhcnRP
Zkluc3RydWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0go
MjEsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgLT0gc3Rh
Y2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoOwotICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBhIGJpdC1tYXBwZWQgY2hhcmFjdGVyIGNs
YXNzLCBwb3NzaWJseSByZXBlYXRlZGx5LiBUaGlzIG9wIGNvZGUgaXMKLSAgICAgICAgICAgICB1
c2VkIHdoZW4gYWxsIHRoZSBjaGFyYWN0ZXJzIGluIHRoZSBjbGFzcyBoYXZlIHZhbHVlcyBpbiB0
aGUgcmFuZ2UgMC0yNTUsCi0gICAgICAgICAgICAgYW5kIGVpdGhlciB0aGUgbWF0Y2hpbmcgaXMg
Y2FzZWZ1bCwgb3IgdGhlIGNoYXJhY3RlcnMgYXJlIGluIHRoZSByYW5nZQotICAgICAgICAgICAg
IDAtMTI3IHdoZW4gVVRGLTggcHJvY2Vzc2luZyBpcyBlbmFibGVkLiBUaGUgb25seSBkaWZmZXJl
bmNlIGJldHdlZW4KLSAgICAgICAgICAgICBPUF9DTEFTUyBhbmQgT1BfTkNMQVNTIG9jY3VycyB3
aGVuIGEgZGF0YSBjaGFyYWN0ZXIgb3V0c2lkZSB0aGUgcmFuZ2UgaXMKLSAgICAgICAgICAgICBl
bmNvdW50ZXJlZC4KLSAgICAgICAgICAgICAKLSAgICAgICAgICAgICBGaXJzdCwgbG9vayBwYXN0
IHRoZSBlbmQgb2YgdGhlIGl0ZW0gdG8gc2VlIGlmIHRoZXJlIGlzIHJlcGVhdCBpbmZvcm1hdGlv
bgotICAgICAgICAgICAgIGZvbGxvd2luZy4gVGhlbiBvYmV5IHNpbWlsYXIgY29kZSB0byBjaGFy
YWN0ZXIgdHlwZSByZXBlYXRzIC0gd3JpdHRlbiBvdXQKLSAgICAgICAgICAgICBhZ2FpbiBmb3Ig
c3BlZWQuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoTkNM
QVNTKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDTEFTUyk6Ci0gICAgICAgICAgICAgICAg
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZGF0YSA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0ciArIDE7ICAgICAgICAgICAgICAgIC8qIFNhdmUgZm9yIG1hdGNoaW5n
ICovCi0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyICs9IDMzOyAgICAgICAgICAgICAgICAgICAgIC8qIEFkdmFuY2UgcGFzdCB0aGUgaXRlbSAq
LwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIHN3aXRjaCAoKnN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0cikgewotICAgICAgICAgICAgICAgICAgICBjYXNl
IE9QX0NSU1RBUjoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUk1JTlNUQVI6Ci0gICAg
ICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JQTFVTOgotICAgICAgICAgICAgICAgICAgICBjYXNl
IE9QX0NSTUlOUExVUzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlFVRVJZOgotICAg
ICAgICAgICAgICAgICAgICBjYXNlIE9QX0NSTUlOUVVFUlk6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICByZXBlYXRJbmZvcm1hdGlvbkZyb21JbnN0cnVjdGlvbk9mZnNldCgqc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKysgLSBPUF9DUlNUQVIsIG1pbmltaXplLCBtaW4s
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBj
YXNlIE9QX0NSUkFOR0U6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToK
LSAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltaXplID0gKCpzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgPT0gT1BfQ1JNSU5SQU5HRSk7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBtaW4gPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0
cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMubWF4ID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
aW5zdHJ1Y3Rpb25QdHIgKyAzKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPT0gMCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBJTlRfTUFYOwotICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDU7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OiAgICAgICAgICAgICAgIC8qIE5vIHJlcGVh
dCBmb2xsb3dzICovCi0gICAgICAgICAgICAgICAgICAgICAgICBtaW4gPSBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5tYXggPSAxOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZp
cnN0LCBlbnN1cmUgdGhlIG1pbmltdW0gbnVtYmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuICov
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0g
bWluOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAgICBpZiAo
YyA+IDI1NSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLmRhdGFbLTFdID09IE9QX0NMQVNTKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAoIShzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRh
W2MgLyA4XSAmICgxIDw8IChjICYgNykpKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBS
UkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIG1heCA9PSBtaW4gd2Ug
Y2FuIGNvbnRpbnVlIHdpdGggdGhlIG1haW4gbG9vcCB3aXRob3V0IHRoZQotICAgICAgICAgICAg
ICAgICBuZWVkIHRvIHJlY3Vyc2UuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgaWYgKG1pbiA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpCi0gICAgICAgICAg
ICAgICAgICAgIE5FWFRfT1BDT0RFOyAgICAgIAotICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgIC8qIElmIG1pbmltaXppbmcsIGtlZXAgdGVzdGluZyB0aGUgcmVzdCBvZiB0aGUgZXhw
cmVzc2lvbiBhbmQgYWR2YW5jaW5nCi0gICAgICAgICAgICAgICAgIHRoZSBwb2ludGVyIHdoaWxl
IGl0IG1hdGNoZXMgdGhlIGNsYXNzLiAqLwotICAgICAgICAgICAgICAgIGlmIChtaW5pbWl6ZSkg
ewotICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZp
ID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkrKykgewotICAgICAgICAgICAg
ICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDIyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
aW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggfHwg
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKzsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChjID4gMjU1KSB7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmRhdGFbLTFdID09IE9QX0NMQVNT
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmRhdGFbYy84XSAmICgxIDw8IChjJjcpKSkgPT0gMCkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAv
KiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAvKiBJZiBtYXhpbWl6aW5nLCBmaW5kIHRoZSBsb25nZXN0IHBvc3NpYmxlIHJ1
biwgdGhlbiB3b3JrIGJhY2t3YXJkcy4gKi8KLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3Rh
cnRPZkluc3RydWN0aW9uID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0g
ICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWlu
OyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBt
ZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYyA+IDI1NSkgewotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5kYXRhWy0x
XSA9PSBPUF9DTEFTUykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmRhdGFbYyAvIDhdICYgKDEgPDwg
KGMgJiA3KSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJT
SVZFX01BVENIKDI0LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsK
LSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0ci0tID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0
T2ZJbnN0cnVjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsgICAgICAg
IC8qIFN0b3AgaWYgdHJpZWQgYXQgb3JpZ2luYWwgcG9zICovCi0gICAgICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hl
cyBoZXJlICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBhbiBleHRl
bmRlZCBjaGFyYWN0ZXIgY2xhc3MuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBC
RUdJTl9PUENPREUoWENMQVNTKToKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5kYXRhID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsg
MSArIExJTktfU0laRTsgICAgICAgICAgICAgICAgLyogU2F2ZSBmb3IgbWF0Y2hpbmcgKi8KLSAg
ICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0g
Z2V0TGlua1ZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEp
OyAgICAgICAgICAgICAgICAgICAgICAvKiBBZHZhbmNlIHBhc3QgdGhlIGl0ZW0gKi8KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKCpzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHIpIHsKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUlNU
QVI6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JNSU5TVEFSOgotICAgICAgICAgICAg
ICAgICAgICBjYXNlIE9QX0NSUExVUzoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9DUk1J
TlBMVVM6Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfQ1JRVUVSWToKLSAgICAgICAgICAg
ICAgICAgICAgY2FzZSBPUF9DUk1JTlFVRVJZOgotICAgICAgICAgICAgICAgICAgICAgICAgcmVw
ZWF0SW5mb3JtYXRpb25Gcm9tSW5zdHJ1Y3Rpb25PZmZzZXQoKnN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5pbnN0cnVjdGlvblB0cisrIC0gT1BfQ1JTVEFSLCBtaW5pbWl6ZSwgbWluLCBzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9D
UlJBTkdFOgotICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX0NSTUlOUkFOR0U6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtaW5pbWl6ZSA9ICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmlu
c3RydWN0aW9uUHRyID09IE9QX0NSTUlOUkFOR0UpOwotICAgICAgICAgICAgICAgICAgICAgICAg
bWluID0gZ2V0MkJ5dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25Q
dHIgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLm1heCA9IGdldDJCeXRlVmFsdWUoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0
aW9uUHRyICsgMyk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMubWF4ID09IDApCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMubWF4ID0gSU5UX01BWDsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSA1OwotICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDogICAgICAgICAgICAgICAvKiBObyByZXBlYXQgZm9sbG93
cyAqLwotICAgICAgICAgICAgICAgICAgICAgICAgbWluID0gc3RhY2suY3VycmVudEZyYW1lLT5s
b2NhbHMubWF4ID0gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgLyogRmlyc3QsIGVuc3VyZSB0aGUgbWluaW11bSBudW1iZXIgb2YgbWF0Y2hl
cyBhcmUgcHJlc2VudC4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBmb3Ig
KGludCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICBpZiAoc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAg
ICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgICAg
IGludCBjID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKys7Ci0gICAgICAg
ICAgICAgICAgICAgIGlmICghanNjX3BjcmVfeGNsYXNzKGMsIHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmRhdGEpKQotICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyog
SWYgbWF4ID09IG1pbiB3ZSBjYW4gY29udGludWUgd2l0aCB0aGUgbWFpbiBsb29wIHdpdGhvdXQg
dGhlCi0gICAgICAgICAgICAgICAgIG5lZWQgdG8gcmVjdXJzZS4gKi8KLSAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICBpZiAobWluID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
Lm1heCkKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgLyogSWYgbWluaW1pemluZywga2VlcCB0ZXN0aW5nIHRoZSByZXN0
IG9mIHRoZSBleHByZXNzaW9uIGFuZCBhZHZhbmNpbmcKLSAgICAgICAgICAgICAgICAgdGhlIHBv
aW50ZXIgd2hpbGUgaXQgbWF0Y2hlcyB0aGUgY2xhc3MuICovCi0gICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgaWYgKG1pbmltaXplKSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAo
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPSBtaW47OyBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5maSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVfTUFUQ0go
MjYsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3VycmVu
dEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
aXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpID49IHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCB8fCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJS
RVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqc2Nf
cGNyZV94Y2xhc3MoYywgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZGF0YSkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBJZiBtYXhp
bWl6aW5nLCBmaW5kIHRoZSBsb25nZXN0IHBvc3NpYmxlIHJ1biwgdGhlbiB3b3JrIGJhY2t3YXJk
cy4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAg
ICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3RhcnRP
Zkluc3RydWN0aW9uID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAg
ICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5tYXg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9
ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICghanNjX3BjcmVfeGNsYXNzKGMsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
LmRhdGEpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAg
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICBmb3IoOzspIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCgyNywgc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWlu
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHItLSA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24pCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAq
LwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0g
ICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIENv
bnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIsIGNhc2VmdWxseSAqLwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENIQVIpOgotICAgICAgICAgICAgICAgIHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aCA9IDE7Ci0gICAgICAgICAgICAgICAgc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKys7Ci0gICAgICAgICAgICAgICAg
Z2V0VVRGOENoYXJBbmRJbmNyZW1lbnRMZW5ndGgoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
ZmMsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMubGVuZ3RoKTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVu
Z3RoOwotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01B
VENIOwotICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyAh
PSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKykKLSAgICAgICAgICAgICAg
ICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIE1hdGNoIGEgc2luZ2xlIGNoYXJhY3Rlciwg
Y2FzZWxlc3NseSAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RF
KENIQVJfSUdOT1JJTkdfQ0FTRSk6IHsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5sZW5ndGggPSAxOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0cisrOwotICAgICAgICAgICAgICAgIGdldFVURjhDaGFyQW5k
SW5jcmVtZW50TGVuZ3RoKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjLCBzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
Lmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3Ry
dWN0aW9uUHRyICs9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAg
ICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5k
U3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAg
ICAgICAgICBpbnQgZGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIrKzsK
LSAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgIT0gZGMg
JiYganNjX3BjcmVfdWNwX290aGVyY2FzZShzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYykg
IT0gZGMpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAg
ICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAvKiBNYXRjaCBhIHNpbmdsZSBBU0NJSSBjaGFyYWN0ZXIuICovCi0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoQVNDSUlfQ0hBUik6Ci0gICAgICAgICAg
ICAgICAgaWYgKG1kLmVuZFN1YmplY3QgPT0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHIpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAg
ICAgICAgaWYgKCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHJbMV0pCi0gICAgICAgICAgICAgICAgICAg
IFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMjsKLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIE1hdGNoIG9uZSBvZiB0d28gY2FzZXMgb2Yg
YW4gQVNDSUkgbGV0dGVyLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKEFTQ0lJX0xFVFRFUl9JR05PUklOR19DQVNFKToKLSAgICAgICAgICAgICAgICBpZiAo
bWQuZW5kU3ViamVjdCA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cikKLSAg
ICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAo
KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciB8IDB4MjApICE9IHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0clsxXSkKLSAgICAgICAgICAgICAgICAgICAg
UlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0ciArPSAyOwotICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogTWF0Y2ggYSBzaW5nbGUgY2hhcmFjdGVyIHJl
cGVhdGVkbHk7IGRpZmZlcmVudCBvcGNvZGVzIHNoYXJlIGNvZGUuICovCi0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoRVhBQ1QpOgotICAgICAgICAgICAgICAgIG1p
biA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCA9IGdldDJCeXRlVmFsdWUoc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSk7Ci0gICAgICAgICAgICAgICAg
bWluaW1pemUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMzsKLSAgICAgICAgICAgICAgICBnb3RvIFJFUEVBVENIQVI7
Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoVVBUTyk6Ci0gICAg
ICAgICAgICBCRUdJTl9PUENPREUoTUlOVVBUTyk6Ci0gICAgICAgICAgICAgICAgbWluID0gMDsK
LSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXggPSBnZXQyQnl0
ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDEpOwotICAg
ICAgICAgICAgICAgIG1pbmltaXplID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVj
dGlvblB0ciA9PSBPUF9NSU5VUFRPOwotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0ciArPSAzOwotICAgICAgICAgICAgICAgIGdvdG8gUkVQRUFU
Q0hBUjsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShTVEFSKToK
LSAgICAgICAgICAgIEJFR0lOX09QQ09ERShNSU5TVEFSKToKLSAgICAgICAgICAgIEJFR0lOX09Q
Q09ERShQTFVTKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShNSU5QTFVTKToKLSAgICAgICAg
ICAgIEJFR0lOX09QQ09ERShRVUVSWSk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoTUlOUVVF
UlkpOgotICAgICAgICAgICAgICAgIHJlcGVhdEluZm9ybWF0aW9uRnJvbUluc3RydWN0aW9uT2Zm
c2V0KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKyAtIE9QX1NUQVIs
IG1pbmltaXplLCBtaW4sIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgLyogQ29tbW9uIGNvZGUgZm9yIGFsbCByZXBlYXRl
ZCBzaW5nbGUtY2hhcmFjdGVyIG1hdGNoZXMuIFdlIGNhbiBnaXZlCi0gICAgICAgICAgICAgICAg
IHVwIHF1aWNrbHkgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gdGhlIG1pbmltdW0gbnVtYmVyIG9m
IGNoYXJhY3RlcnMgbGVmdCBpbgotICAgICAgICAgICAgICAgICB0aGUgc3ViamVjdC4gKi8KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgIFJFUEVBVENIQVI6Ci0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubGVuZ3RoID0gMTsK
LSAgICAgICAgICAgICAgICBnZXRVVEY4Q2hhckFuZEluY3JlbWVudExlbmd0aChzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5mYywgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5sZW5ndGgpOwotICAgICAgICAgICAgICAg
IGlmIChtaW4gKiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgPiAweEZGRkYgPyAyIDog
MSkgPiBtZC5lbmRTdWJqZWN0IC0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIp
Ci0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAg
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IHN0YWNrLmN1cnJlbnRG
cmFtZS0+bG9jYWxzLmxlbmd0aDsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBp
ZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgPD0gMHhGRkZGKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG90aGVyY2FzZSA9IG1kLmlnbm9yZUNhc2UgPyBqc2NfcGNyZV91Y3Bfb3RoZXJj
YXNlKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjKSA6IC0xOwotICAgICAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWluOyBpKysp
IHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LnN1YmplY3RQdHIgIT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgJiYgKnN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IG90aGVyY2FzZSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICAgICAg
KytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKG1pbiA9
PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXgpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBORVhUX09QQ09ERTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
IGlmIChtaW5pbWl6ZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMucmVwZWF0T3RoZXJjYXNlID0gb3RoZXJjYXNlOwotICAgICAgICAgICAgICAg
ICAgICAgICAgZm9yIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA9IG1pbjs7IHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSRUNVUlNJVkVfTUFUQ0goMjgsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlv
blB0ciwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLmZpID49IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCB8
fCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgIT0g
c3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgJiYgKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5zdWJqZWN0UHRyICE9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnJlcGVhdE90aGVyY2Fz
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgLyogQ29u
dHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1Ympl
Y3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJq
ZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8IHN0
YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVu
ZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHIgIT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgJiYgKnN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IG90aGVyY2FzZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlIChzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0ciA+PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFy
dE9mSW5zdHJ1Y3Rpb24pIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUNVUlNJVkVf
TUFUQ0goMjksIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciwgc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGlzTWF0Y2gpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRV
Uk47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgLS1zdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAgICAgICAg
ICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAvKiBObyBjYXNlIG9uIHN1cnJv
Z2F0ZSBwYWlycywgc28gbm8gbmVlZCB0byBib3RoZXIgd2l0aCAib3RoZXJjYXNlIi4gKi8KLSAg
ICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBp
IDw9IG1pbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAoKnN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyICE9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZj
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciArPSAy
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICBpZiAobWluID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIE5FWFRfT1BDT0RFOwotICAgICAgICAgICAgICAgICAgICAK
LSAgICAgICAgICAgICAgICAgICAgaWYgKG1pbmltaXplKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMuZmkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJF
Q1VSU0lWRV9NQVRDSCgzMCwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRy
LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMuZmkgPj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4IHx8IHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciAhPSBzdGFj
ay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0ciArPSAyOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8KLSAg
ICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNr
LmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAg
ICAgZm9yIChpbnQgaSA9IG1pbjsgaSA8IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm1heDsg
aSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5zdWJqZWN0UHRyID4gbWQuZW5kU3ViamVjdCAtIDIpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgq
c3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgIT0gc3RhY2suY3VycmVudEZyYW1l
LT5sb2NhbHMuZmMpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0
UHRyICs9IDI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICB3aGlsZSAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gc3RhY2su
Y3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVjdFB0ckF0U3RhcnRPZkluc3RydWN0aW9uKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDMxLCBzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5i
cmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc01hdGNoKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyIC09IDI7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJO
X05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIC8q
IENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAvKiBNYXRjaCBhIG5lZ2F0ZWQgc2luZ2xlIG9uZS1ieXRlIGNoYXJh
Y3Rlci4gKi8KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShOT1Qp
OiB7Ci0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0
UHRyID49IG1kLmVuZFN1YmplY3QpCi0gICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFU
Q0g7Ci0gICAgICAgICAgICAgICAgaW50IGIgPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5z
dHJ1Y3Rpb25QdHJbMV07Ci0gICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLnN1YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMjsKLSAgICAgICAgICAgICAgICBpZiAobWQuaWdu
b3JlQ2FzZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoYyA8IDEyOCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGMgPSB0b0xvd2VyQ2FzZShjKTsKLSAgICAgICAgICAgICAgICAgICAgaWYg
KHRvTG93ZXJDYXNlKGIpID09IGMpCi0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05P
X01BVENIOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
IChiID09IGMpCi0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBORVhUX09QQ09ERTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIC8qIE1hdGNoIGEgbmVnYXRlZCBzaW5n
bGUgb25lLWJ5dGUgY2hhcmFjdGVyIHJlcGVhdGVkbHkuIFRoaXMgaXMgYWxtb3N0IGEKLSAgICAg
ICAgICAgICByZXBlYXQgb2YgdGhlIGNvZGUgZm9yIGEgcmVwZWF0ZWQgc2luZ2xlIGNoYXJhY3Rl
ciwgYnV0IEkgaGF2ZW4ndCBmb3VuZCBhCi0gICAgICAgICAgICAgbmljZSB3YXkgb2YgY29tbW9u
aW5nIHRoZXNlIHVwIHRoYXQgZG9lc24ndCByZXF1aXJlIGEgdGVzdCBvZiB0aGUKLSAgICAgICAg
ICAgICBwb3NpdGl2ZS9uZWdhdGl2ZSBvcHRpb24gZm9yIGVhY2ggY2hhcmFjdGVyIG1hdGNoLiBN
YXliZSB0aGF0IHdvdWxkbid0IGFkZAotICAgICAgICAgICAgIHZlcnkgbXVjaCB0byB0aGUgdGlt
ZSB0YWtlbiwgYnV0IGNoYXJhY3RlciBtYXRjaGluZyAqaXMqIHdoYXQgdGhpcyBpcyBhbGwKLSAg
ICAgICAgICAgICBhYm91dC4uLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKE5PVEVYQUNUKToKLSAgICAgICAgICAgICAgICBtaW4gPSBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5tYXggPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5pbnN0cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgIG1pbmltaXplID0gZmFsc2U7
Ci0gICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRy
ICs9IDM7Ci0gICAgICAgICAgICAgICAgZ290byBSRVBFQVROT1RDSEFSOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKE5PVFVQVE8pOgotICAgICAgICAgICAgQkVH
SU5fT1BDT0RFKE5PVE1JTlVQVE8pOgotICAgICAgICAgICAgICAgIG1pbiA9IDA7Ci0gICAgICAg
ICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4ID0gZ2V0MkJ5dGVWYWx1ZShz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsKLSAgICAgICAgICAg
ICAgICBtaW5pbWl6ZSA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIg
PT0gT1BfTk9UTUlOVVBUTzsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMzsKLSAgICAgICAgICAgICAgICBnb3RvIFJFUEVBVE5PVENI
QVI7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBCRUdJTl9PUENPREUoTk9UU1RBUik6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoTk9UTUlOU1RBUik6Ci0gICAgICAgICAgICBCRUdJ
Tl9PUENPREUoTk9UUExVUyk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoTk9UTUlOUExVUyk6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoTk9UUVVFUlkpOgotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKE5PVE1JTlFVRVJZKToKLSAgICAgICAgICAgICAgICByZXBlYXRJbmZvcm1hdGlvbkZy
b21JbnN0cnVjdGlvbk9mZnNldCgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyKysgLSBPUF9OT1RTVEFSLCBtaW5pbWl6ZSwgbWluLCBzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5tYXgpOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgLyogQ29tbW9uIGNvZGUg
Zm9yIGFsbCByZXBlYXRlZCBzaW5nbGUtYnl0ZSBtYXRjaGVzLiBXZSBjYW4gZ2l2ZSB1cCBxdWlj
a2x5Ci0gICAgICAgICAgICAgaWYgdGhlcmUgYXJlIGZld2VyIHRoYW4gdGhlIG1pbmltdW0gbnVt
YmVyIG9mIGJ5dGVzIGxlZnQgaW4gdGhlCi0gICAgICAgICAgICAgc3ViamVjdC4gKi8KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgIFJFUEVBVE5PVENIQVI6Ci0gICAgICAgICAgICAgICAg
aWYgKG1pbiA+IG1kLmVuZFN1YmplY3QgLSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVj
dFB0cikKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAg
ICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyA9ICpzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3MuaW5zdHJ1Y3Rpb25QdHIrKzsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAvKiBUaGUgY29kZSBpcyBkdXBsaWNhdGVkIGZvciB0aGUgY2FzZWxlc3MgYW5kIGNhc2VmdWwg
Y2FzZXMsIGZvciBzcGVlZCwKLSAgICAgICAgICAgICAgICAgc2luY2UgbWF0Y2hpbmcgY2hhcmFj
dGVycyBpcyBsaWtlbHkgdG8gYmUgcXVpdGUgY29tbW9uLiBGaXJzdCwgZW5zdXJlIHRoZQotICAg
ICAgICAgICAgICAgICBtaW5pbXVtIG51bWJlciBvZiBtYXRjaGVzIGFyZSBwcmVzZW50LiBJZiBt
aW4gPSBtYXgsIGNvbnRpbnVlIGF0IHRoZSBzYW1lCi0gICAgICAgICAgICAgICAgIGxldmVsIHdp
dGhvdXQgcmVjdXJzaW5nLiBPdGhlcndpc2UsIGlmIG1pbmltaXppbmcsIGtlZXAgdHJ5aW5nIHRo
ZSByZXN0IG9mCi0gICAgICAgICAgICAgICAgIHRoZSBleHByZXNzaW9uIGFuZCBhZHZhbmNpbmcg
b25lIG1hdGNoaW5nIGNoYXJhY3RlciBpZiBmYWlsaW5nLCB1cCB0byB0aGUKLSAgICAgICAgICAg
ICAgICAgbWF4aW11bS4gQWx0ZXJuYXRpdmVseSwgaWYgbWF4aW1pemluZywgZmluZCB0aGUgbWF4
aW11bSBudW1iZXIgb2YKLSAgICAgICAgICAgICAgICAgY2hhcmFjdGVycyBhbmQgd29yayBiYWNr
d2FyZHMuICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgRFBSSU5URigoIm5l
Z2F0aXZlIG1hdGNoaW5nICVjeyVkLCVkfVxuIiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
ZmMsIG1pbiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KSk7Ci0gICAgICAgICAgICAg
ICAgCi0gICAgICAgICAgICAgICAgaWYgKG1kLmlnbm9yZUNhc2UpIHsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjIDwgMTI4KQotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmMgPSB0b0xvd2VyQ2Fz
ZShzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyk7Ci0gICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAg
ICAgICAgICAgICAgICAgICAgICAgaW50IGQgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkIDwgMTI4KQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGQgPSB0b0xvd2VyQ2FzZShkKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5mYyA9PSBkKQotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChtaW4g
PT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KQotICAgICAgICAgICAgICAgICAgICAg
ICAgTkVYVF9PUENPREU7ICAgICAgCi0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICBpZiAobWluaW1pemUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoc3Rh
Y2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPSBtaW47OyBzdGFjay5jdXJyZW50RnJhbWUtPmxv
Y2Fscy5maSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENI
KDM4LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+
YXJncy5zdWJqZWN0UHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGQgPCAx
MjgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSB0b0xvd2VyQ2FzZShkKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5sb2Nh
bHMuZmkgPj0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4IHx8IHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QgfHwgc3RhY2suY3VycmVudEZy
YW1lLT5sb2NhbHMuZmMgPT0gZCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJF
VFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAg
IC8qIENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIC8qIE1heGltaXplIGNh
c2UgKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc3ViamVj
dFB0ckF0U3RhcnRPZkluc3RydWN0aW9uID0gc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1Ympl
Y3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAg
IGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkr
KykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUt
PmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgZCA9ICpz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoZCA8IDEyOCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZCA9
IHRvTG93ZXJDYXNlKGQpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5mYyA9PSBkKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgICAgICAgICAgZm9yICg7OykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFJFQ1VSU0lWRV9NQVRDSCg0MCwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9u
UHRyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHItLSA9PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fs
cy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rpb24pCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOyAgICAgICAgLyogU3RvcCBpZiB0cmllZCBhdCBvcmlnaW5hbCBwb3Mg
Ki8KLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAqLwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAvKiBDYXNl
ZnVsIGNvbXBhcmlzb25zICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgZCA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmZjID09IGQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJF
VFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
ICAgIGlmIChtaW4gPT0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KQotICAgICAgICAg
ICAgICAgICAgICAgICAgTkVYVF9PUENPREU7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICBpZiAobWluaW1pemUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGZv
ciAoc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkgPSBtaW47OyBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5maSsrKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZF
X01BVENIKDQyLCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVU
VVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBkID0gKnN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyKys7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZpID49IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLm1heCB8fCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0ciA+PSBtZC5lbmRT
dWJqZWN0IHx8IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLmZjID09IGQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAq
LwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAvKiBNYXhpbWl6ZSBjYXNlICovCi0gICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVj
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW50IGQgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQ
dHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLmZjID09IGQpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBmb3IgKDs7KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01B
VENIKDQ0LCBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1
cnJlbnRGcmFtZS0+YXJncy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChpc01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJO
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3Muc3ViamVjdFB0ci0tID09IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLnN1YmplY3RQdHJB
dFN0YXJ0T2ZJbnN0cnVjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7ICAgICAgICAvKiBTdG9wIGlmIHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAqLwotICAgICAgICAg
ICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIC8q
IENvbnRyb2wgbmV2ZXIgcmVhY2hlcyBoZXJlICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAvKiBNYXRjaCBhIHNpbmdsZSBjaGFyYWN0ZXIgdHlwZSByZXBlYXRlZGx5OyBzZXZlcmFs
IGRpZmZlcmVudCBvcGNvZGVzCi0gICAgICAgICAgICAgc2hhcmUgY29kZS4gVGhpcyBpcyB2ZXJ5
IHNpbWlsYXIgdG8gdGhlIGNvZGUgZm9yIHNpbmdsZSBjaGFyYWN0ZXJzLCBidXQgd2UKLSAgICAg
ICAgICAgICByZXBlYXQgaXQgaW4gdGhlIGludGVyZXN0cyBvZiBlZmZpY2llbmN5LiAqLwotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKFRZUEVFWEFDVCk6Ci0gICAg
ICAgICAgICAgICAgbWluID0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4ID0gZ2V0MkJ5
dGVWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsKLSAg
ICAgICAgICAgICAgICBtaW5pbWl6ZSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICs9IDM7Ci0gICAgICAgICAgICAgICAgZ290
byBSRVBFQVRUWVBFOwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgQkVHSU5fT1BDT0RF
KFRZUEVVUFRPKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFTUlOVVBUTyk6Ci0gICAg
ICAgICAgICAgICAgbWluID0gMDsKLSAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUt
PmxvY2Fscy5tYXggPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0
cnVjdGlvblB0ciArIDEpOwotICAgICAgICAgICAgICAgIG1pbmltaXplID0gKnN0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9PSBPUF9UWVBFTUlOVVBUTzsKLSAgICAgICAg
ICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIgKz0gMzsKLSAg
ICAgICAgICAgICAgICBnb3RvIFJFUEVBVFRZUEU7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICBCRUdJTl9PUENPREUoVFlQRVNUQVIpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKFRZ
UEVNSU5TVEFSKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShUWVBFUExVUyk6Ci0gICAgICAg
ICAgICBCRUdJTl9PUENPREUoVFlQRU1JTlBMVVMpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RF
KFRZUEVRVUVSWSk6Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoVFlQRU1JTlFVRVJZKToKLSAg
ICAgICAgICAgICAgICByZXBlYXRJbmZvcm1hdGlvbkZyb21JbnN0cnVjdGlvbk9mZnNldCgqc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyKysgLSBPUF9UWVBFU1RBUiwgbWlu
aW1pemUsIG1pbiwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4KTsKLSAgICAgICAgICAg
ICAgICAKLSAgICAgICAgICAgICAgICAvKiBDb21tb24gY29kZSBmb3IgYWxsIHJlcGVhdGVkIHNp
bmdsZSBjaGFyYWN0ZXIgdHlwZSBtYXRjaGVzLiBOb3RlIHRoYXQKLSAgICAgICAgICAgICAgICAg
aW4gVVRGLTggbW9kZSwgJy4nIG1hdGNoZXMgYSBjaGFyYWN0ZXIgb2YgYW55IGxlbmd0aCwgYnV0
IGZvciB0aGUgb3RoZXIKLSAgICAgICAgICAgICAgICAgY2hhcmFjdGVyIHR5cGVzLCB0aGUgdmFs
aWQgY2hhcmFjdGVycyBhcmUgYWxsIG9uZS1ieXRlIGxvbmcuICovCi0gICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICBSRVBFQVRUWVBFOgotICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRG
cmFtZS0+bG9jYWxzLmN0eXBlID0gKnN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlv
blB0cisrOyAgICAgIC8qIENvZGUgZm9yIHRoZSBjaGFyYWN0ZXIgdHlwZSAqLwotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIC8qIEZpcnN0LCBlbnN1cmUgdGhlIG1pbmltdW0gbnVt
YmVyIG9mIG1hdGNoZXMgYXJlIHByZXNlbnQuIFVzZSBpbmxpbmUKLSAgICAgICAgICAgICAgICAg
Y29kZSBmb3IgbWF4aW1pemluZyB0aGUgc3BlZWQsIGFuZCBkbyB0aGUgdHlwZSB0ZXN0IG9uY2Ug
YXQgdGhlIHN0YXJ0Ci0gICAgICAgICAgICAgICAgIChpLmUuIGtlZXAgaXQgb3V0IG9mIHRoZSBs
b29wKS4gQWxzbyB3ZSBjYW4gdGVzdCB0aGF0IHRoZXJlIGFyZSBhdCBsZWFzdAotICAgICAgICAg
ICAgICAgICB0aGUgbWluaW11bSBudW1iZXIgb2YgY2hhcmFjdGVycyBiZWZvcmUgd2Ugc3RhcnQu
ICovCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKG1pbiA+IG1kLmVuZFN1
YmplY3QgLSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cikKLSAgICAgICAgICAg
ICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAgICAgICAgICAgICBpZiAobWluID4gMCkg
ewotICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxz
LmN0eXBlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX05PVF9ORVdMSU5FOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsr
KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc05ld2xpbmUoKnN0YWNr
LmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFJSRVRVUk5fTk9fTUFUQ0g7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBPUF9OT1RfRElHSVQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9
IDE7IGkgPD0gbWluOyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KGlzQVNDSUlEaWdpdCgqc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTl9OT19NQVRDSDsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3Vi
amVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjYXNlIE9QX0RJR0lUOgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlmICghaXNBU0NJSURpZ2l0KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJO
X05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJl
bnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX1dISVRFU1BBQ0U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWluOyBp
KyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3BhY2VDaGFyKCpz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNhc2UgT1BfV0hJVEVTUEFDRToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGlu
dCBpID0gMTsgaSA8PSBtaW47IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoIWlzU3BhY2VDaGFyKCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cikp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX1dPUkRDSEFSOgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG1pbjsgaSsrKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1dvcmRDaGFyKCpzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfV09SRENI
QVI6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWlu
OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dvcmRDaGFy
KCpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBSUkVUVVJOX05PX01BVENIOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICArK3N0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hdGNoRXJyb3IoSlNS
ZWdFeHBFcnJvckludGVybmFsLCBzdGFjayk7Ci0gICAgICAgICAgICAgICAgICAgIH0gIC8qIEVu
ZCBzd2l0Y2goc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuY3R5cGUpICovCi0gICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIG1pbiA9IG1h
eCwgY29udGludWUgYXQgdGhlIHNhbWUgbGV2ZWwgd2l0aG91dCByZWN1cnNpbmcgKi8KLSAgICAg
ICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAobWluID09IHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLm1heCkKLSAgICAgICAgICAgICAgICAgICAgTkVYVF9PUENPREU7ICAgIAotICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIC8qIElmIG1pbmltaXppbmcsIHdlIGhhdmUg
dG8gdGVzdCB0aGUgcmVzdCBvZiB0aGUgcGF0dGVybiBiZWZvcmUgZWFjaAotICAgICAgICAgICAg
ICAgICBzdWJzZXF1ZW50IG1hdGNoLiAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgIGlmIChtaW5pbWl6ZSkgewotICAgICAgICAgICAgICAgICAgICBmb3IgKHN0YWNrLmN1cnJl
bnRGcmFtZS0+bG9jYWxzLmZpID0gbWluOzsgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuZmkr
KykgewotICAgICAgICAgICAgICAgICAgICAgICAgUkVDVVJTSVZFX01BVENIKDQ4LCBzdGFjay5j
dXJyZW50RnJhbWUtPmFyZ3MuaW5zdHJ1Y3Rpb25QdHIsIHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJn
cy5icmFja2V0Q2hhaW4pOwotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzTWF0Y2gpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5maSA+PSBzdGFjay5jdXJyZW50RnJh
bWUtPmxvY2Fscy5tYXggfHwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0g
bWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAg
ICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cisrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgc3dpdGNoIChzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5jdHlwZSkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX05FV0xJTkU6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmIChpc05ld2xpbmUoYykpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY2FzZSBPUF9OT1RfRElHSVQ6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpc0FTQ0lJRGlnaXQoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2FzZSBPUF9ESUdJVDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKCFpc0FTQ0lJRGlnaXQoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y2FzZSBPUF9OT1RfV0hJVEVTUEFDRToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGlzU3BhY2VDaGFyKGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
UlJFVFVSTjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNh
c2UgT1BfV0hJVEVTUEFDRToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFp
c1NwYWNlQ2hhcihjKSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRV
Uk47Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9Q
X05PVF9XT1JEQ0hBUjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzV29y
ZENoYXIoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSUkVUVVJOOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBPUF9XT1JE
Q0hBUjoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dvcmRDaGFyKGMp
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySW50ZXJu
YWwsIHN0YWNrKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgICAgICAvKiBDb250cm9sIG5ldmVyIHJlYWNoZXMgaGVyZSAq
LwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAv
KiBJZiBtYXhpbWl6aW5nIGl0IGlzIHdvcnRoIHVzaW5nIGlubGluZSBjb2RlIGZvciBzcGVlZCwg
ZG9pbmcgdGhlIHR5cGUKLSAgICAgICAgICAgICAgICAgdGVzdCBvbmNlIGF0IHRoZSBzdGFydCAo
aS5lLiBrZWVwIGl0IG91dCBvZiB0aGUgbG9vcCkuICovCi0gICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLnN1YmplY3RQdHJBdFN0YXJ0T2ZJbnN0cnVjdGlvbiA9IHN0YWNrLmN1cnJlbnRG
cmFtZS0+YXJncy5zdWJqZWN0UHRyOyAgLyogUmVtZW1iZXIgd2hlcmUgd2Ugc3RhcnRlZCAqLwot
ICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5jdHlwZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBPUF9OT1RfTkVXTElORToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBp
ID0gbWluOyBpIDwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5z
dWJqZWN0UHRyID49IG1kLmVuZFN1YmplY3QgfHwgaXNOZXdsaW5lKCpzdGFjay5jdXJyZW50RnJh
bWUtPmFyZ3Muc3ViamVjdFB0cikpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLnN1YmplY3RQdHIrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX05PVF9ESUdJVDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbWluOyBpIDwgc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMubWF4OyBpKyspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyID49IG1kLmVuZFN1Ympl
Y3QpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGMgPSAqc3RhY2suY3VycmVudEZyYW1lLT5hcmdz
LnN1YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc0FTQ0lJ
RGlnaXQoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX0RJR0lUOgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5t
YXg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3Vy
cmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpbnQgYyA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc0FTQ0lJRGlnaXQoYykpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjYXNlIE9QX05PVF9XSElURVNQQUNFOgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkr
KykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgYyA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzU3BhY2VDaGFyKGMpKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgY2Fz
ZSBPUF9XSElURVNQQUNFOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkg
PSBtaW47IGkgPCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHIgPj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpz
dGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaWYgKCFpc1NwYWNlQ2hhcihjKSkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArK3N0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5zdWJqZWN0UHRyOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT1BfTk9UX1dP
UkRDSEFSOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkg
PCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIg
Pj0gbWQuZW5kU3ViamVjdCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpzdGFjay5jdXJy
ZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKGlzV29yZENoYXIoYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKytzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3Muc3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIE9QX1dPUkRDSEFSOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSBtaW47IGkgPCBzdGFjay5jdXJyZW50
RnJhbWUtPmxvY2Fscy5tYXg7IGkrKykgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgPj0gbWQuZW5kU3ViamVj
dCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbnQgYyA9ICpzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Mu
c3ViamVjdFB0cjsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1dvcmRD
aGFyKGMpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICsrc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1
YmplY3RQdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAg
ICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bWF0Y2hFcnJvcihKU1JlZ0V4cEVycm9ySW50ZXJuYWwsIHN0YWNrKTsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgLyogc3Rh
Y2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIgaXMgbm93IHBhc3QgdGhlIGVuZCBvZiB0
aGUgbWF4aW11bSBydW4gKi8KLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgIGZvciAoOzspIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSCg1
Miwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyLCBzdGFjay5jdXJyZW50
RnJhbWUtPmFyZ3MuYnJhY2tldENoYWluKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIChp
c01hdGNoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJSRVRVUk47Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAoc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHItLSA9
PSBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zdWJqZWN0UHRyQXRTdGFydE9mSW5zdHJ1Y3Rp
b24pCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAvKiBTdG9wIGlm
IHRyaWVkIGF0IG9yaWdpbmFsIHBvcyAqLwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAvKiBHZXQgaGVyZSBpZiB3ZSBjYW4n
dCBtYWtlIGl0IG1hdGNoIHdpdGggYW55IHBlcm1pdHRlZCByZXBldGl0aW9ucyAqLwotICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgLyogQ29udHJvbCBuZXZlciByZWFjaGVzIGhlcmUgKi8K
LSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDUk1JTlBMVVMpOgot
ICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENSTUlOUVVFUlkpOgotICAgICAgICAgICAgQkVHSU5f
T1BDT0RFKENSTUlOUkFOR0UpOgotICAgICAgICAgICAgQkVHSU5fT1BDT0RFKENSTUlOU1RBUik6
Ci0gICAgICAgICAgICBCRUdJTl9PUENPREUoQ1JQTFVTKToKLSAgICAgICAgICAgIEJFR0lOX09Q
Q09ERShDUlFVRVJZKToKLSAgICAgICAgICAgIEJFR0lOX09QQ09ERShDUlJBTkdFKToKLSAgICAg
ICAgICAgIEJFR0lOX09QQ09ERShDUlNUQVIpOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgIHJldHVybiBtYXRjaEVycm9yKEpTUmVnRXhwRXJy
b3JJbnRlcm5hbCwgc3RhY2spOwotICAgICAgICAgICAgICAgIAotI2lmZGVmIFVTRV9DT01QVVRF
RF9HT1RPX0ZPUl9NQVRDSF9PUENPREVfTE9PUAotICAgICAgICAgICAgQ0FQVFVSSU5HX0JSQUNL
RVQ6Ci0jZWxzZQotICAgICAgICAgICAgZGVmYXVsdDoKLSNlbmRpZgotICAgICAgICAgICAgICAg
IC8qIE9wZW5pbmcgY2FwdHVyaW5nIGJyYWNrZXQuIElmIHRoZXJlIGlzIHNwYWNlIGluIHRoZSBv
ZmZzZXQgdmVjdG9yLCBzYXZlCi0gICAgICAgICAgICAgICAgIHRoZSBjdXJyZW50IHN1YmplY3Qg
cG9zaXRpb24gaW4gdGhlIHdvcmtpbmcgc2xvdCBhdCB0aGUgdG9wIG9mIHRoZSB2ZWN0b3IuIFdl
Ci0gICAgICAgICAgICAgICAgIG11c3RuJ3QgY2hhbmdlIHRoZSBjdXJyZW50IHZhbHVlcyBvZiB0
aGUgZGF0YSBzbG90LCBiZWNhdXNlIHRoZXkgbWF5IGJlIHNldAotICAgICAgICAgICAgICAgICBm
cm9tIGEgcHJldmlvdXMgaXRlcmF0aW9uIG9mIHRoaXMgZ3JvdXAsIGFuZCBiZSByZWZlcnJlZCB0
byBieSBhIHJlZmVyZW5jZQotICAgICAgICAgICAgICAgICBpbnNpZGUgdGhlIGdyb3VwLgotICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgSWYgdGhlIGJyYWNrZXQgZmFpbHMgdG8g
bWF0Y2gsIHdlIG5lZWQgdG8gcmVzdG9yZSB0aGlzIHZhbHVlIGFuZCBhbHNvIHRoZQotICAgICAg
ICAgICAgICAgICB2YWx1ZXMgb2YgdGhlIGZpbmFsIG9mZnNldHMsIGluIGNhc2UgdGhleSB3ZXJl
IHNldCBieSBhIHByZXZpb3VzIGl0ZXJhdGlvbiBvZgotICAgICAgICAgICAgICAgICB0aGUgc2Ft
ZSBicmFja2V0LgotICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgSWYgdGhlcmUg
aXNuJ3QgZW5vdWdoIHNwYWNlIGluIHRoZSBvZmZzZXQgdmVjdG9yLCB0cmVhdCB0aGlzIGFzIGlm
IGl0IHdlcmUgYQotICAgICAgICAgICAgICAgICBub24tY2FwdHVyaW5nIGJyYWNrZXQuIERvbid0
IHdvcnJ5IGFib3V0IHNldHRpbmcgdGhlIGZsYWcgZm9yIHRoZSBlcnJvciBjYXNlCi0gICAgICAg
ICAgICAgICAgIGhlcmU7IHRoYXQgaXMgaGFuZGxlZCBpbiB0aGUgY29kZSBmb3IgS0VULiAqLwot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIEFTU0VSVCgqc3RhY2suY3VycmVudEZy
YW1lLT5hcmdzLmluc3RydWN0aW9uUHRyID4gT1BfQlJBKTsKLSAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPSAqc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyIC0gT1BfQlJBOwotICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgIC8qIEZvciBleHRlbmRlZCBleHRyYWN0aW9uIGJyYWNrZXRz
IChsYXJnZSBudW1iZXIpLCB3ZSBoYXZlIHRvIGZpc2ggb3V0IHRoZQotICAgICAgICAgICAgICAg
ICBudW1iZXIgZnJvbSBhIGR1bW15IG9wY29kZSBhdCB0aGUgc3RhcnQuICovCi0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm51
bWJlciA+IEVYVFJBQ1RfQkFTSUNfTUFYKQotICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJy
ZW50RnJhbWUtPmxvY2Fscy5udW1iZXIgPSBnZXQyQnl0ZVZhbHVlKHN0YWNrLmN1cnJlbnRGcmFt
ZS0+YXJncy5pbnN0cnVjdGlvblB0ciArIDIgKyBMSU5LX1NJWkUpOwotICAgICAgICAgICAgICAg
IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+
bG9jYWxzLm51bWJlciA8PCAxOwotICAgICAgICAgICAgICAgIAotI2lmZGVmIERFQlVHCi0gICAg
ICAgICAgICAgICAgcHJpbnRmKCJzdGFydCBicmFja2V0ICVkIHN1YmplY3Q9Iiwgc3RhY2suY3Vy
cmVudEZyYW1lLT5sb2NhbHMubnVtYmVyKTsKLSAgICAgICAgICAgICAgICBwY2hhcnMoc3RhY2su
Y3VycmVudEZyYW1lLT5hcmdzLnN1YmplY3RQdHIsIDE2LCB0cnVlLCBtZCk7Ci0gICAgICAgICAg
ICAgICAgcHJpbnRmKCJcbiIpOwotI2VuZGlmCi0gICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgaWYgKHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9jYWxzLm9mZnNldCA8IG1kLm9mZnNldE1h
eCkgewotICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zYXZl
T2Zmc2V0MSA9IG1kLm9mZnNldFZlY3RvcltzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZz
ZXRdOwotICAgICAgICAgICAgICAgICAgICBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zYXZl
T2Zmc2V0MiA9IG1kLm9mZnNldFZlY3RvcltzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5vZmZz
ZXQgKyAxXTsKLSAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
c2F2ZU9mZnNldDMgPSBtZC5vZmZzZXRWZWN0b3JbbWQub2Zmc2V0RW5kIC0gc3RhY2suY3VycmVu
dEZyYW1lLT5sb2NhbHMubnVtYmVyXTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAg
ICAgICAgICAgIERQUklOVEYoKCJzYXZpbmcgJWQgJWQgJWRcbiIsIHN0YWNrLmN1cnJlbnRGcmFt
ZS0+bG9jYWxzLnNhdmVPZmZzZXQxLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5zYXZlT2Zm
c2V0Miwgc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMuc2F2ZU9mZnNldDMpKTsKLSAgICAgICAg
ICAgICAgICAgICAgbWQub2Zmc2V0VmVjdG9yW21kLm9mZnNldEVuZCAtIHN0YWNrLmN1cnJlbnRG
cmFtZS0+bG9jYWxzLm51bWJlcl0gPSBzdGFjay5jdXJyZW50RnJhbWUtPmFyZ3Muc3ViamVjdFB0
ciAtIG1kLnN0YXJ0U3ViamVjdDsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAg
ICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIFJFQ1VSU0lWRV9NQVRDSF9ORVdf
R1JPVVAoMSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmluc3RydWN0aW9uUHRyICsgMSArIExJ
TktfU0laRSwgc3RhY2suY3VycmVudEZyYW1lLT5hcmdzLmJyYWNrZXRDaGFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoaXNNYXRjaCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBSUkVUVVJOOwotICAgICAgICAgICAgICAgICAgICAgICAgc3RhY2suY3VycmVudEZyYW1lLT5h
cmdzLmluc3RydWN0aW9uUHRyICs9IGdldExpbmtWYWx1ZShzdGFjay5jdXJyZW50RnJhbWUtPmFy
Z3MuaW5zdHJ1Y3Rpb25QdHIgKyAxKTsKLSAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoKnN0
YWNrLmN1cnJlbnRGcmFtZS0+YXJncy5pbnN0cnVjdGlvblB0ciA9PSBPUF9BTFQpOwotICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgRFBSSU5URigoImJyYWNrZXQgJWQg
ZmFpbGVkXG4iLCBzdGFjay5jdXJyZW50RnJhbWUtPmxvY2Fscy5udW1iZXIpKTsKLSAgICAgICAg
ICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIG1kLm9mZnNldFZlY3RvcltzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXRdID0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMu
c2F2ZU9mZnNldDE7Ci0gICAgICAgICAgICAgICAgICAgIG1kLm9mZnNldFZlY3RvcltzdGFjay5j
dXJyZW50RnJhbWUtPmxvY2Fscy5vZmZzZXQgKyAxXSA9IHN0YWNrLmN1cnJlbnRGcmFtZS0+bG9j
YWxzLnNhdmVPZmZzZXQyOwotICAgICAgICAgICAgICAgICAgICBtZC5vZmZzZXRWZWN0b3JbbWQu
b2Zmc2V0RW5kIC0gc3RhY2suY3VycmVudEZyYW1lLT5sb2NhbHMubnVtYmVyXSA9IHN0YWNrLmN1
cnJlbnRGcmFtZS0+bG9jYWxzLnNhdmVPZmZzZXQzOwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgUlJFVFVSTjsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgCi0gICAgICAgICAgICAgICAgLyogSW5zdWZmaWNpZW50IHJvb20gZm9yIHNhdmluZyBj
YXB0dXJlZCBjb250ZW50cyAqLwotICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGdv
dG8gTk9OX0NBUFRVUklOR19CUkFDS0VUOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAv
KiBEbyBub3Qgc3RpY2sgYW55IGNvZGUgaW4gaGVyZSB3aXRob3V0IG11Y2ggdGhvdWdodDsgaXQg
aXMgYXNzdW1lZAotICAgICAgICAgdGhhdCAiY29udGludWUiIGluIHRoZSBjb2RlIGFib3ZlIGNv
bWVzIG91dCB0byBoZXJlIHRvIHJlcGVhdCB0aGUgbWFpbgotICAgICAgICAgbG9vcC4gKi8KLSAg
ICAgICAgCi0gICAgfSAvKiBFbmQgb2YgbWFpbiBsb29wICovCi0gICAgCi0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgCi0jaWZuZGVmIFVTRV9DT01QVVRFRF9HT1RPX0ZPUl9NQVRDSF9S
RUNVUlNJT04KLSAgICAKLVJSRVRVUk5fU1dJVENIOgotICAgIHN3aXRjaCAoc3RhY2suY3VycmVu
dEZyYW1lLT5yZXR1cm5Mb2NhdGlvbikgewotICAgICAgICBjYXNlIDA6IGdvdG8gUkVUVVJOOwot
ICAgICAgICBjYXNlIDE6IGdvdG8gUlJFVFVSTl8xOwotICAgICAgICBjYXNlIDI6IGdvdG8gUlJF
VFVSTl8yOwotICAgICAgICBjYXNlIDY6IGdvdG8gUlJFVFVSTl82OwotICAgICAgICBjYXNlIDc6
IGdvdG8gUlJFVFVSTl83OwotICAgICAgICBjYXNlIDE0OiBnb3RvIFJSRVRVUk5fMTQ7Ci0gICAg
ICAgIGNhc2UgMTU6IGdvdG8gUlJFVFVSTl8xNTsKLSAgICAgICAgY2FzZSAxNjogZ290byBSUkVU
VVJOXzE2OwotICAgICAgICBjYXNlIDE3OiBnb3RvIFJSRVRVUk5fMTc7Ci0gICAgICAgIGNhc2Ug
MTg6IGdvdG8gUlJFVFVSTl8xODsKLSAgICAgICAgY2FzZSAxOTogZ290byBSUkVUVVJOXzE5Owot
ICAgICAgICBjYXNlIDIwOiBnb3RvIFJSRVRVUk5fMjA7Ci0gICAgICAgIGNhc2UgMjE6IGdvdG8g
UlJFVFVSTl8yMTsKLSAgICAgICAgY2FzZSAyMjogZ290byBSUkVUVVJOXzIyOwotICAgICAgICBj
YXNlIDI0OiBnb3RvIFJSRVRVUk5fMjQ7Ci0gICAgICAgIGNhc2UgMjY6IGdvdG8gUlJFVFVSTl8y
NjsKLSAgICAgICAgY2FzZSAyNzogZ290byBSUkVUVVJOXzI3OwotICAgICAgICBjYXNlIDI4OiBn
b3RvIFJSRVRVUk5fMjg7Ci0gICAgICAgIGNhc2UgMjk6IGdvdG8gUlJFVFVSTl8yOTsKLSAgICAg
ICAgY2FzZSAzMDogZ290byBSUkVUVVJOXzMwOwotICAgICAgICBjYXNlIDMxOiBnb3RvIFJSRVRV
Uk5fMzE7Ci0gICAgICAgIGNhc2UgMzg6IGdvdG8gUlJFVFVSTl8zODsKLSAgICAgICAgY2FzZSA0
MDogZ290byBSUkVUVVJOXzQwOwotICAgICAgICBjYXNlIDQyOiBnb3RvIFJSRVRVUk5fNDI7Ci0g
ICAgICAgIGNhc2UgNDQ6IGdvdG8gUlJFVFVSTl80NDsKLSAgICAgICAgY2FzZSA0ODogZ290byBS
UkVUVVJOXzQ4OwotICAgICAgICBjYXNlIDUyOiBnb3RvIFJSRVRVUk5fNTI7Ci0gICAgfQotICAg
IAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBtYXRjaEVycm9yKEpTUmVn
RXhwRXJyb3JJbnRlcm5hbCwgc3RhY2spOwotICAgIAotI2VuZGlmCi0gICAgCi1SRVRVUk46Ci0g
ICAgcmV0dXJuIGlzTWF0Y2g7Ci19Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICBFeGVjdXRlIGEgUmVndWxhciBFeHByZXNz
aW9uICAgICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLwotCi0vKiBUaGlzIGZ1bmN0aW9uIGFwcGxpZXMgYSBjb21waWxlZCByZSB0byBh
IHN1YmplY3Qgc3RyaW5nIGFuZCBwaWNrcyBvdXQKLXBvcnRpb25zIG9mIHRoZSBzdHJpbmcgaWYg
aXQgbWF0Y2hlcy4gVHdvIGVsZW1lbnRzIGluIHRoZSB2ZWN0b3IgYXJlIHNldCBmb3IKLWVhY2gg
c3Vic3RyaW5nOiB0aGUgb2Zmc2V0cyB0byB0aGUgc3RhcnQgYW5kIGVuZCBvZiB0aGUgc3Vic3Ry
aW5nLgotCi1Bcmd1bWVudHM6Ci0gIHJlICAgICAgICAgICAgICBwb2ludHMgdG8gdGhlIGNvbXBp
bGVkIGV4cHJlc3Npb24KLSAgZXh0cmFfZGF0YSAgICAgIHBvaW50cyB0byBleHRyYSBkYXRhIG9y
IGlzIE5VTEwKLSAgc3ViamVjdCAgICAgICAgIHBvaW50cyB0byB0aGUgc3ViamVjdCBzdHJpbmcK
LSAgbGVuZ3RoICAgICAgICAgIGxlbmd0aCBvZiBzdWJqZWN0IHN0cmluZyAobWF5IGNvbnRhaW4g
YmluYXJ5IHplcm9zKQotICBzdGFydF9vZmZzZXQgICAgd2hlcmUgdG8gc3RhcnQgaW4gdGhlIHN1
YmplY3Qgc3RyaW5nCi0gIG9wdGlvbnMgICAgICAgICBvcHRpb24gYml0cwotICBvZmZzZXRzICAg
ICAgICAgcG9pbnRzIHRvIGEgdmVjdG9yIG9mIGludHMgdG8gYmUgZmlsbGVkIGluIHdpdGggb2Zm
c2V0cwotICBvZmZzZXRDb3VudCAgICAgdGhlIG51bWJlciBvZiBlbGVtZW50cyBpbiB0aGUgdmVj
dG9yCi0KLVJldHVybnM6ICAgICAgICAgID4gMCA9PiBzdWNjZXNzOyB2YWx1ZSBpcyB0aGUgbnVt
YmVyIG9mIGVsZW1lbnRzIGZpbGxlZCBpbgotICAgICAgICAgICAgICAgICAgPSAwID0+IHN1Y2Nl
c3MsIGJ1dCBvZmZzZXRzIGlzIG5vdCBiaWcgZW5vdWdoCi0gICAgICAgICAgICAgICAgICAgLTEg
PT4gZmFpbGVkIHRvIG1hdGNoCi0gICAgICAgICAgICAgICAgIDwgLTEgPT4gc29tZSBraW5kIG9m
IHVuZXhwZWN0ZWQgcHJvYmxlbQotKi8KLQotc3RhdGljIHZvaWQgdHJ5Rmlyc3RCeXRlT3B0aW1p
emF0aW9uKGNvbnN0IFVDaGFyKiYgc3ViamVjdFB0ciwgY29uc3QgVUNoYXIqIGVuZFN1YmplY3Qs
IGludCBmaXJzdEJ5dGUsIGJvb2wgZmlyc3RCeXRlSXNDYXNlbGVzcywgYm9vbCB1c2VNdWx0aUxp
bmVGaXJzdENoYXJPcHRpbWl6YXRpb24sIGNvbnN0IFVDaGFyKiBvcmlnaW5hbFN1YmplY3RTdGFy
dCkKLXsKLSAgICAvLyBJZiBmaXJzdEJ5dGUgaXMgc2V0LCB0cnkgc2Nhbm5pbmcgdG8gdGhlIGZp
cnN0IGluc3RhbmNlIG9mIHRoYXQgYnl0ZQotICAgIC8vIG5vIG5lZWQgdG8gdHJ5IGFuZCBtYXRj
aCBhZ2FpbnN0IGFueSBlYXJsaWVyIHBhcnQgb2YgdGhlIHN1YmplY3Qgc3RyaW5nLgotICAgIGlm
IChmaXJzdEJ5dGUgPj0gMCkgewotICAgICAgICBVQ2hhciBmaXJzdENoYXIgPSBmaXJzdEJ5dGU7
Ci0gICAgICAgIGlmIChmaXJzdEJ5dGVJc0Nhc2VsZXNzKQotICAgICAgICAgICAgd2hpbGUgKHN1
YmplY3RQdHIgPCBlbmRTdWJqZWN0KSB7Ci0gICAgICAgICAgICAgICAgaW50IGMgPSAqc3ViamVj
dFB0cjsKLSAgICAgICAgICAgICAgICBpZiAoYyA+IDEyNykKLSAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgaWYgKHRvTG93ZXJDYXNlKGMpID09IGZpcnN0Q2hhcikK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgc3ViamVjdFB0cisr
OwotICAgICAgICAgICAgfQotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHdoaWxlIChzdWJq
ZWN0UHRyIDwgZW5kU3ViamVjdCAmJiAqc3ViamVjdFB0ciAhPSBmaXJzdENoYXIpCi0gICAgICAg
ICAgICAgICAgc3ViamVjdFB0cisrOwotICAgICAgICB9Ci0gICAgfSBlbHNlIGlmICh1c2VNdWx0
aUxpbmVGaXJzdENoYXJPcHRpbWl6YXRpb24pIHsKLSAgICAgICAgLyogT3IgdG8ganVzdCBhZnRl
ciBcbiBmb3IgYSBtdWx0aWxpbmUgbWF0Y2ggaWYgcG9zc2libGUgKi8KLSAgICAgICAgLy8gSSdt
IG5vdCBzdXJlIHdoeSB0aGlzICE9IG9yaWdpbmFsU3ViamVjdFN0YXJ0IGNoZWNrIGlzIG5lY2Vz
c2FyeSAtLSBlY3MgMTEvMTgvMDcKLSAgICAgICAgaWYgKHN1YmplY3RQdHIgPiBvcmlnaW5hbFN1
YmplY3RTdGFydCkgewotICAgICAgICAgICAgd2hpbGUgKHN1YmplY3RQdHIgPCBlbmRTdWJqZWN0
ICYmICFpc05ld2xpbmUoc3ViamVjdFB0clstMV0pKQotICAgICAgICAgICAgICAgIHN1YmplY3RQ
dHIrKzsKLSAgICAgICAgfQotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgdHJ5UmVxdWlyZWRCeXRl
T3B0aW1pemF0aW9uKGNvbnN0IFVDaGFyKiYgc3ViamVjdFB0ciwgY29uc3QgVUNoYXIqIGVuZFN1
YmplY3QsIGludCByZXFCeXRlLCBpbnQgcmVxQnl0ZTIsIGJvb2wgcmVxQnl0ZUlzQ2FzZWxlc3Ms
IGJvb2wgaGFzRmlyc3RCeXRlLCBjb25zdCBVQ2hhciomIHJlcUJ5dGVQdHIpCi17Ci0gICAgLyog
SWYgcmVxQnl0ZSBpcyBzZXQsIHdlIGtub3cgdGhhdCB0aGF0IGNoYXJhY3RlciBtdXN0IGFwcGVh
ciBpbiB0aGUgc3ViamVjdAotICAgICBmb3IgdGhlIG1hdGNoIHRvIHN1Y2NlZWQuIElmIHRoZSBm
aXJzdCBjaGFyYWN0ZXIgaXMgc2V0LCByZXFCeXRlIG11c3QgYmUKLSAgICAgbGF0ZXIgaW4gdGhl
IHN1YmplY3Q7IG90aGVyd2lzZSB0aGUgdGVzdCBzdGFydHMgYXQgdGhlIG1hdGNoIHBvaW50LiBU
aGlzCi0gICAgIG9wdGltaXphdGlvbiBjYW4gc2F2ZSBhIGh1Z2UgYW1vdW50IG9mIGJhY2t0cmFj
a2luZyBpbiBwYXR0ZXJucyB3aXRoIG5lc3RlZAotICAgICB1bmxpbWl0ZWQgcmVwZWF0cyB0aGF0
IGFyZW4ndCBnb2luZyB0byBtYXRjaC4gV3JpdGluZyBzZXBhcmF0ZSBjb2RlIGZvcgotICAgICBj
YXNlZC9jYXNlbGVzcyB2ZXJzaW9ucyBtYWtlcyBpdCBnbyBmYXN0ZXIsIGFzIGRvZXMgdXNpbmcg
YW4gYXV0b2luY3JlbWVudAotICAgICBhbmQgYmFja2luZyBvZmYgb24gYSBtYXRjaC4KLSAgICAg
Ci0gICAgIEhPV0VWRVI6IHdoZW4gdGhlIHN1YmplY3Qgc3RyaW5nIGlzIHZlcnksIHZlcnkgbG9u
Zywgc2VhcmNoaW5nIHRvIGl0cyBlbmQgY2FuCi0gICAgIHRha2UgYSBsb25nIHRpbWUsIGFuZCBn
aXZlIGJhZCBwZXJmb3JtYW5jZSBvbiBxdWl0ZSBvcmRpbmFyeSBwYXR0ZXJucy4gVGhpcwotICAg
ICBzaG93ZWQgdXAgd2hlbiBzb21lYm9keSB3YXMgbWF0Y2hpbmcgL15DLyBvbiBhIDMyLW1lZ2Fi
eXRlIHN0cmluZy4uLiBzbyB3ZQotICAgICBkb24ndCBkbyB0aGlzIHdoZW4gdGhlIHN0cmluZyBp
cyBzdWZmaWNpZW50bHkgbG9uZy4KLSAgICAqLwotCi0gICAgaWYgKHJlcUJ5dGUgPj0gMCAmJiBl
bmRTdWJqZWN0IC0gc3ViamVjdFB0ciA8IFJFUV9CWVRFX01BWCkgewotICAgICAgICBjb25zdCBV
Q2hhciogcCA9IHN1YmplY3RQdHIgKyAoaGFzRmlyc3RCeXRlID8gMSA6IDApOwotCi0gICAgICAg
IC8qIFdlIGRvbid0IG5lZWQgdG8gcmVwZWF0IHRoZSBzZWFyY2ggaWYgd2UgaGF2ZW4ndCB5ZXQg
cmVhY2hlZCB0aGUKLSAgICAgICAgIHBsYWNlIHdlIGZvdW5kIGl0IGF0IGxhc3QgdGltZS4gKi8K
LQotICAgICAgICBpZiAocCA+IHJlcUJ5dGVQdHIpIHsKLSAgICAgICAgICAgIGlmIChyZXFCeXRl
SXNDYXNlbGVzcykgewotICAgICAgICAgICAgICAgIHdoaWxlIChwIDwgZW5kU3ViamVjdCkgewot
ICAgICAgICAgICAgICAgICAgICBpbnQgcHAgPSAqcCsrOwotICAgICAgICAgICAgICAgICAgICBp
ZiAocHAgPT0gcmVxQnl0ZSB8fCBwcCA9PSByZXFCeXRlMikgewotICAgICAgICAgICAgICAgICAg
ICAgICAgcC0tOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHdoaWxlIChwIDwgZW5kU3ViamVjdCkgewotICAgICAgICAgICAgICAgICAgICBp
ZiAoKnArKyA9PSByZXFCeXRlKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBwLS07Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgLyogSWYgd2UgY2FuJ3Qg
ZmluZCB0aGUgcmVxdWlyZWQgY2hhcmFjdGVyLCBicmVhayB0aGUgbWF0Y2hpbmcgbG9vcCAqLwot
Ci0gICAgICAgICAgICBpZiAocCA+PSBlbmRTdWJqZWN0KQotICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgICAgICAgICAvKiBJZiB3ZSBoYXZlIGZvdW5kIHRoZSByZXF1aXJlZCBj
aGFyYWN0ZXIsIHNhdmUgdGhlIHBvaW50IHdoZXJlIHdlCi0gICAgICAgICAgICAgZm91bmQgaXQs
IHNvIHRoYXQgd2UgZG9uJ3Qgc2VhcmNoIGFnYWluIG5leHQgdGltZSByb3VuZCB0aGUgbG9vcCBp
ZgotICAgICAgICAgICAgIHRoZSBzdGFydCBoYXNuJ3QgcGFzc2VkIHRoaXMgY2hhcmFjdGVyIHll
dC4gKi8KLQotICAgICAgICAgICAgcmVxQnl0ZVB0ciA9IHA7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOwotfQotCi1pbnQganNSZWdFeHBFeGVjdXRlKGNvbnN0IEpTUmVnRXhw
KiByZSwKLSAgICAgICAgICAgICAgICAgICAgY29uc3QgVUNoYXIqIHN1YmplY3QsIGludCBsZW5n
dGgsIGludCBzdGFydF9vZmZzZXQsIGludCogb2Zmc2V0cywKLSAgICAgICAgICAgICAgICAgICAg
aW50IG9mZnNldENvdW50KQotewotICAgIEFTU0VSVChyZSk7Ci0gICAgQVNTRVJUKHN1YmplY3Qg
fHwgIWxlbmd0aCk7Ci0gICAgQVNTRVJUKG9mZnNldENvdW50ID49IDApOwotICAgIEFTU0VSVChv
ZmZzZXRzIHx8IG9mZnNldENvdW50ID09IDApOwotCi0gICAgSGlzdG9ncmFtVGltZUxvZ2dlciBs
b2dnZXIocmUpOwotCi0gICAgTWF0Y2hEYXRhIG1hdGNoQmxvY2s7Ci0gICAgbWF0Y2hCbG9jay5z
dGFydFN1YmplY3QgPSBzdWJqZWN0OwotICAgIG1hdGNoQmxvY2suZW5kU3ViamVjdCA9IG1hdGNo
QmxvY2suc3RhcnRTdWJqZWN0ICsgbGVuZ3RoOwotICAgIGNvbnN0IFVDaGFyKiBlbmRTdWJqZWN0
ID0gbWF0Y2hCbG9jay5lbmRTdWJqZWN0OwotICAgIAotICAgIG1hdGNoQmxvY2subXVsdGlsaW5l
ID0gKHJlLT5vcHRpb25zICYgTWF0Y2hBY3Jvc3NNdWx0aXBsZUxpbmVzT3B0aW9uKTsKLSAgICBt
YXRjaEJsb2NrLmlnbm9yZUNhc2UgPSAocmUtPm9wdGlvbnMgJiBJZ25vcmVDYXNlT3B0aW9uKTsK
LSAgICAKLSAgICAvKiBJZiB0aGUgZXhwcmVzc2lvbiBoYXMgZ290IG1vcmUgYmFjayByZWZlcmVu
Y2VzIHRoYW4gdGhlIG9mZnNldHMgc3VwcGxpZWQgY2FuCi0gICAgIGhvbGQsIHdlIGdldCBhIHRl
bXBvcmFyeSBjaHVuayBvZiB3b3JraW5nIHN0b3JlIHRvIHVzZSBkdXJpbmcgdGhlIG1hdGNoaW5n
LgotICAgICBPdGhlcndpc2UsIHdlIGNhbiB1c2UgdGhlIHZlY3RvciBzdXBwbGllZCwgcm91bmRp
bmcgZG93biBpdHMgc2l6ZSB0byBhIG11bHRpcGxlCi0gICAgIG9mIDMuICovCi0gICAgCi0gICAg
aW50IG9jb3VudCA9IG9mZnNldENvdW50IC0gKG9mZnNldENvdW50ICUgMyk7Ci0gICAgCi0gICAg
Ly8gRklYTUU6IFRoaXMgaXMgbGFtZSB0aGF0IHdlIGhhdmUgdG8gc2Vjb25kLWd1ZXNzIG91ciBj
YWxsZXIgaGVyZS4KLSAgICAvLyBUaGUgQVBJIHNob3VsZCBjaGFuZ2UgdG8gZWl0aGVyIGZhaWwt
aGFyZCB3aGVuIHdlIGRvbid0IGhhdmUgZW5vdWdoIG9mZnNldCBzcGFjZQotICAgIC8vIG9yIHRo
YXQgd2Ugc2hvdWxkbid0IGFzayBvdXIgY2FsbGVycyB0byBwcmUtYWxsb2NhdGUgaW4gdGhlIGZp
cnN0IHBsYWNlLgotICAgIGJvb2wgdXNpbmdUZW1wb3JhcnlPZmZzZXRzID0gZmFsc2U7Ci0gICAg
aWYgKHJlLT50b3BCYWNrcmVmID4gMCAmJiByZS0+dG9wQmFja3JlZiA+PSBvY291bnQvMykgewot
ICAgICAgICBvY291bnQgPSByZS0+dG9wQmFja3JlZiAqIDMgKyAzOwotICAgICAgICBtYXRjaEJs
b2NrLm9mZnNldFZlY3RvciA9IG5ldyBpbnRbb2NvdW50XTsKLSAgICAgICAgaWYgKCFtYXRjaEJs
b2NrLm9mZnNldFZlY3RvcikKLSAgICAgICAgICAgIHJldHVybiBKU1JlZ0V4cEVycm9yTm9NZW1v
cnk7Ci0gICAgICAgIHVzaW5nVGVtcG9yYXJ5T2Zmc2V0cyA9IHRydWU7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIG1hdGNoQmxvY2sub2Zmc2V0VmVjdG9yID0gb2Zmc2V0czsKLSAgICAKLSAgICBtYXRj
aEJsb2NrLm9mZnNldEVuZCA9IG9jb3VudDsKLSAgICBtYXRjaEJsb2NrLm9mZnNldE1heCA9ICgy
Km9jb3VudCkvMzsKLSAgICBtYXRjaEJsb2NrLm9mZnNldE92ZXJmbG93ID0gZmFsc2U7Ci0gICAg
Ci0gICAgLyogQ29tcHV0ZSB0aGUgbWluaW11bSBudW1iZXIgb2Ygb2Zmc2V0cyB0aGF0IHdlIG5l
ZWQgdG8gcmVzZXQgZWFjaCB0aW1lLiBEb2luZwotICAgICB0aGlzIG1ha2VzIGEgaHVnZSBkaWZm
ZXJlbmNlIHRvIGV4ZWN1dGlvbiB0aW1lIHdoZW4gdGhlcmUgYXJlbid0IG1hbnkgYnJhY2tldHMK
LSAgICAgaW4gdGhlIHBhdHRlcm4uICovCi0gICAgCi0gICAgaW50IHJlc2V0Q291bnQgPSAyICsg
cmUtPnRvcEJyYWNrZXQgKiAyOwotICAgIGlmIChyZXNldENvdW50ID4gb2Zmc2V0Q291bnQpCi0g
ICAgICAgIHJlc2V0Q291bnQgPSBvY291bnQ7Ci0gICAgCi0gICAgLyogUmVzZXQgdGhlIHdvcmtp
bmcgdmFyaWFibGUgYXNzb2NpYXRlZCB3aXRoIGVhY2ggZXh0cmFjdGlvbi4gVGhlc2Ugc2hvdWxk
Ci0gICAgIG5ldmVyIGJlIHVzZWQgdW5sZXNzIHByZXZpb3VzbHkgc2V0LCBidXQgdGhleSBnZXQg
c2F2ZWQgYW5kIHJlc3RvcmVkLCBhbmQgc28gd2UKLSAgICAgaW5pdGlhbGl6ZSB0aGVtIHRvIGF2
b2lkIHJlYWRpbmcgdW5pbml0aWFsaXplZCBsb2NhdGlvbnMuICovCi0gICAgCi0gICAgaWYgKG1h
dGNoQmxvY2sub2Zmc2V0VmVjdG9yKSB7Ci0gICAgICAgIGludCogaXB0ciA9IG1hdGNoQmxvY2su
b2Zmc2V0VmVjdG9yICsgb2NvdW50OwotICAgICAgICBpbnQqIGllbmQgPSBpcHRyIC0gcmVzZXRD
b3VudC8yICsgMTsKLSAgICAgICAgd2hpbGUgKC0taXB0ciA+PSBpZW5kKQotICAgICAgICAgICAg
KmlwdHIgPSAtMTsKLSAgICB9Ci0gICAgCi0gICAgLyogU2V0IHVwIHRoZSBmaXJzdCBjaGFyYWN0
ZXIgdG8gbWF0Y2gsIGlmIGF2YWlsYWJsZS4gVGhlIGZpcnN0Qnl0ZSB2YWx1ZSBpcwotICAgICBu
ZXZlciBzZXQgZm9yIGFuIGFuY2hvcmVkIHJlZ3VsYXIgZXhwcmVzc2lvbiwgYnV0IHRoZSBhbmNo
b3JpbmcgbWF5IGJlIGZvcmNlZAotICAgICBhdCBydW4gdGltZSwgc28gd2UgaGF2ZSB0byB0ZXN0
IGZvciBhbmNob3JpbmcuIFRoZSBmaXJzdCBjaGFyIG1heSBiZSB1bnNldCBmb3IKLSAgICAgYW4g
dW5hbmNob3JlZCBwYXR0ZXJuLCBvZiBjb3Vyc2UuIElmIHRoZXJlJ3Mgbm8gZmlyc3QgY2hhciBh
bmQgdGhlIHBhdHRlcm4gd2FzCi0gICAgIHN0dWRpZWQsIHRoZXJlIG1heSBiZSBhIGJpdG1hcCBv
ZiBwb3NzaWJsZSBmaXJzdCBjaGFyYWN0ZXJzLiAqLwotICAgIAotICAgIGJvb2wgZmlyc3RCeXRl
SXNDYXNlbGVzcyA9IGZhbHNlOwotICAgIGludCBmaXJzdEJ5dGUgPSAtMTsKLSAgICBpZiAocmUt
Pm9wdGlvbnMgJiBVc2VGaXJzdEJ5dGVPcHRpbWl6YXRpb25PcHRpb24pIHsKLSAgICAgICAgZmly
c3RCeXRlID0gcmUtPmZpcnN0Qnl0ZSAmIDI1NTsKLSAgICAgICAgaWYgKChmaXJzdEJ5dGVJc0Nh
c2VsZXNzID0gKHJlLT5maXJzdEJ5dGUgJiBSRVFfSUdOT1JFX0NBU0UpKSkKLSAgICAgICAgICAg
IGZpcnN0Qnl0ZSA9IHRvTG93ZXJDYXNlKGZpcnN0Qnl0ZSk7Ci0gICAgfQotICAgIAotICAgIC8q
IEZvciBhbmNob3JlZCBvciB1bmFuY2hvcmVkIG1hdGNoZXMsIHRoZXJlIG1heSBiZSBhICJsYXN0
IGtub3duIHJlcXVpcmVkCi0gICAgIGNoYXJhY3RlciIgc2V0LiAqLwotICAgIAotICAgIGJvb2wg
cmVxQnl0ZUlzQ2FzZWxlc3MgPSBmYWxzZTsKLSAgICBpbnQgcmVxQnl0ZSA9IC0xOwotICAgIGlu
dCByZXFCeXRlMiA9IC0xOwotICAgIGlmIChyZS0+b3B0aW9ucyAmIFVzZVJlcXVpcmVkQnl0ZU9w
dGltaXphdGlvbk9wdGlvbikgewotICAgICAgICByZXFCeXRlID0gcmUtPnJlcUJ5dGUgJiAyNTU7
IC8vIEZJWE1FOiBUaGlzIG9wdGltaXphdGlvbiBjb3VsZCBiZSBtYWRlIHRvIHdvcmsgZm9yIFVU
RjE2IGNoYXJzIGFzIHdlbGwuLi4KLSAgICAgICAgcmVxQnl0ZUlzQ2FzZWxlc3MgPSAocmUtPnJl
cUJ5dGUgJiBSRVFfSUdOT1JFX0NBU0UpOwotICAgICAgICByZXFCeXRlMiA9IGZsaXBDYXNlKHJl
cUJ5dGUpOwotICAgIH0KLSAgICAKLSAgICAvKiBMb29wIGZvciBoYW5kbGluZyB1bmFuY2hvcmVk
IHJlcGVhdGVkIG1hdGNoaW5nIGF0dGVtcHRzOyBmb3IgYW5jaG9yZWQgcmVnZXhzCi0gICAgIHRo
ZSBsb29wIHJ1bnMganVzdCBvbmNlLiAqLwotICAgIAotICAgIGNvbnN0IFVDaGFyKiBzdGFydE1h
dGNoID0gc3ViamVjdCArIHN0YXJ0X29mZnNldDsKLSAgICBjb25zdCBVQ2hhciogcmVxQnl0ZVB0
ciA9IHN0YXJ0TWF0Y2ggLSAxOwotICAgIGJvb2wgdXNlTXVsdGlMaW5lRmlyc3RDaGFyT3B0aW1p
emF0aW9uID0gcmUtPm9wdGlvbnMgJiBVc2VNdWx0aUxpbmVGaXJzdEJ5dGVPcHRpbWl6YXRpb25P
cHRpb247Ci0gICAgCi0gICAgZG8gewotICAgICAgICAvKiBSZXNldCB0aGUgbWF4aW11bSBudW1i
ZXIgb2YgZXh0cmFjdGlvbnMgd2UgbWlnaHQgc2VlLiAqLwotICAgICAgICBpZiAobWF0Y2hCbG9j
ay5vZmZzZXRWZWN0b3IpIHsKLSAgICAgICAgICAgIGludCogaXB0ciA9IG1hdGNoQmxvY2sub2Zm
c2V0VmVjdG9yOwotICAgICAgICAgICAgaW50KiBpZW5kID0gaXB0ciArIHJlc2V0Q291bnQ7Ci0g
ICAgICAgICAgICB3aGlsZSAoaXB0ciA8IGllbmQpCi0gICAgICAgICAgICAgICAgKmlwdHIrKyA9
IC0xOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICB0cnlGaXJzdEJ5dGVPcHRpbWl6YXRp
b24oc3RhcnRNYXRjaCwgZW5kU3ViamVjdCwgZmlyc3RCeXRlLCBmaXJzdEJ5dGVJc0Nhc2VsZXNz
LCB1c2VNdWx0aUxpbmVGaXJzdENoYXJPcHRpbWl6YXRpb24sIG1hdGNoQmxvY2suc3RhcnRTdWJq
ZWN0ICsgc3RhcnRfb2Zmc2V0KTsKLSAgICAgICAgaWYgKHRyeVJlcXVpcmVkQnl0ZU9wdGltaXph
dGlvbihzdGFydE1hdGNoLCBlbmRTdWJqZWN0LCByZXFCeXRlLCByZXFCeXRlMiwgcmVxQnl0ZUlz
Q2FzZWxlc3MsIGZpcnN0Qnl0ZSA+PSAwLCByZXFCeXRlUHRyKSkKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIAotICAgICAgICAvKiBXaGVuIGEgbWF0Y2ggb2NjdXJzLCBzdWJz
dHJpbmdzIHdpbGwgYmUgc2V0IGZvciBhbGwgaW50ZXJuYWwgZXh0cmFjdGlvbnM7Ci0gICAgICAg
ICB3ZSBqdXN0IG5lZWQgdG8gc2V0IHVwIHRoZSB3aG9sZSB0aGluZyBhcyBzdWJzdHJpbmcgMCBi
ZWZvcmUgcmV0dXJuaW5nLiBJZgotICAgICAgICAgdGhlcmUgd2VyZSB0b28gbWFueSBleHRyYWN0
aW9ucywgc2V0IHRoZSByZXR1cm4gY29kZSB0byB6ZXJvLiBJbiB0aGUgY2FzZQotICAgICAgICAg
d2hlcmUgd2UgaGFkIHRvIGdldCBzb21lIGxvY2FsIHN0b3JlIHRvIGhvbGQgb2Zmc2V0cyBmb3Ig
YmFja3JlZmVyZW5jZXMsIGNvcHkKLSAgICAgICAgIHRob3NlIGJhY2sgcmVmZXJlbmNlcyB0aGF0
IHdlIGNhbi4gSW4gdGhpcyBjYXNlIHRoZXJlIG5lZWQgbm90IGJlIG92ZXJmbG93Ci0gICAgICAg
ICBpZiBjZXJ0YWluIHBhcnRzIG9mIHRoZSBwYXR0ZXJuIHdlcmUgbm90IHVzZWQuICovCi0gICAg
ICAgIAotICAgICAgICAvKiBUaGUgY29kZSBzdGFydHMgYWZ0ZXIgdGhlIEpTUmVnRXhwIGJsb2Nr
IGFuZCB0aGUgY2FwdHVyZSBuYW1lIHRhYmxlLiAqLwotICAgICAgICBjb25zdCB1bnNpZ25lZCBj
aGFyKiBzdGFydF9jb2RlID0gKGNvbnN0IHVuc2lnbmVkIGNoYXIqKShyZSArIDEpOwotICAgICAg
ICAKLSAgICAgICAgaW50IHJldHVybkNvZGUgPSBtYXRjaChzdGFydE1hdGNoLCBzdGFydF9jb2Rl
LCAyLCBtYXRjaEJsb2NrKTsKLSAgICAgICAgCi0gICAgICAgIC8qIFdoZW4gdGhlIHJlc3VsdCBp
cyBubyBtYXRjaCwgYWR2YW5jZSB0aGUgcG9pbnRlciB0byB0aGUgbmV4dCBjaGFyYWN0ZXIKLSAg
ICAgICAgIGFuZCBjb250aW51ZS4gKi8KLSAgICAgICAgaWYgKHJldHVybkNvZGUgPT0gMCkgewot
ICAgICAgICAgICAgc3RhcnRNYXRjaCsrOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAocmV0dXJuQ29kZSAhPSAxKSB7Ci0gICAgICAgICAgICBBU1NFUlQo
cmV0dXJuQ29kZSA9PSBKU1JlZ0V4cEVycm9ySGl0TGltaXQgfHwgcmV0dXJuQ29kZSA9PSBKU1Jl
Z0V4cEVycm9yTm9NZW1vcnkpOwotICAgICAgICAgICAgRFBSSU5URigoIj4+Pj4gZXJyb3I6IHJl
dHVybmluZyAlZFxuIiwgcmV0dXJuQ29kZSkpOwotICAgICAgICAgICAgcmV0dXJuIHJldHVybkNv
ZGU7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIC8qIFdlIGhhdmUgYSBtYXRjaCEgQ29w
eSB0aGUgb2Zmc2V0IGluZm9ybWF0aW9uIGZyb20gdGVtcG9yYXJ5IHN0b3JlIGlmCi0gICAgICAg
ICBuZWNlc3NhcnkgKi8KLSAgICAgICAgCi0gICAgICAgIGlmICh1c2luZ1RlbXBvcmFyeU9mZnNl
dHMpIHsKLSAgICAgICAgICAgIGlmIChvZmZzZXRDb3VudCA+PSA0KSB7Ci0gICAgICAgICAgICAg
ICAgbWVtY3B5KG9mZnNldHMgKyAyLCBtYXRjaEJsb2NrLm9mZnNldFZlY3RvciArIDIsIChvZmZz
ZXRDb3VudCAtIDIpICogc2l6ZW9mKGludCkpOwotICAgICAgICAgICAgICAgIERQUklOVEYoKCJD
b3BpZWQgb2Zmc2V0cyBmcm9tIHRlbXBvcmFyeSBtZW1vcnlcbiIpKTsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIGlmIChtYXRjaEJsb2NrLmVuZE9mZnNldFRvcCA+IG9mZnNldENvdW50KQot
ICAgICAgICAgICAgICAgIG1hdGNoQmxvY2sub2Zmc2V0T3ZlcmZsb3cgPSB0cnVlOwotICAgICAg
ICAgICAgCi0gICAgICAgICAgICBEUFJJTlRGKCgiRnJlZWluZyB0ZW1wb3JhcnkgbWVtb3J5XG4i
KSk7Ci0gICAgICAgICAgICBkZWxldGUgW10gbWF0Y2hCbG9jay5vZmZzZXRWZWN0b3I7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybkNvZGUgPSBtYXRjaEJsb2NrLm9mZnNldE92
ZXJmbG93ID8gMCA6IG1hdGNoQmxvY2suZW5kT2Zmc2V0VG9wIC8gMjsKLSAgICAgICAgCi0gICAg
ICAgIGlmIChvZmZzZXRDb3VudCA8IDIpCi0gICAgICAgICAgICByZXR1cm5Db2RlID0gMDsKLSAg
ICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBvZmZzZXRzWzBdID0gc3RhcnRNYXRjaCAtIG1hdGNo
QmxvY2suc3RhcnRTdWJqZWN0OwotICAgICAgICAgICAgb2Zmc2V0c1sxXSA9IG1hdGNoQmxvY2su
ZW5kTWF0Y2hQdHIgLSBtYXRjaEJsb2NrLnN0YXJ0U3ViamVjdDsKLSAgICAgICAgfQotICAgICAg
ICAKLSAgICAgICAgRFBSSU5URigoIj4+Pj4gcmV0dXJuaW5nICVkXG4iLCByZXR1cm5Db2RlKSk7
Ci0gICAgICAgIHJldHVybiByZXR1cm5Db2RlOwotICAgIH0gd2hpbGUgKCEocmUtPm9wdGlvbnMg
JiBJc0FuY2hvcmVkT3B0aW9uKSAmJiBzdGFydE1hdGNoIDw9IGVuZFN1YmplY3QpOwotICAgIAot
ICAgIGlmICh1c2luZ1RlbXBvcmFyeU9mZnNldHMpIHsKLSAgICAgICAgRFBSSU5URigoIkZyZWVp
bmcgdGVtcG9yYXJ5IG1lbW9yeVxuIikpOwotICAgICAgICBkZWxldGUgW10gbWF0Y2hCbG9jay5v
ZmZzZXRWZWN0b3I7Ci0gICAgfQotICAgIAotICAgIERQUklOVEYoKCI+Pj4+IHJldHVybmluZyBQ
Q1JFX0VSUk9SX05PTUFUQ0hcbiIpKTsKLSAgICByZXR1cm4gSlNSZWdFeHBFcnJvck5vTWF0Y2g7
Ci19Ci0KLSNpZiBSRUdFWFBfSElTVE9HUkFNCi0KLWNsYXNzIENvbXBhcmVIaXN0b2dyYW1FbnRy
aWVzIHsKLXB1YmxpYzoKLSAgICBib29sIG9wZXJhdG9yKCkoY29uc3QgcGFpcjxVU3RyaW5nLCBk
b3VibGU+JiBhLCBjb25zdCBwYWlyPFVTdHJpbmcsIGRvdWJsZT4mIGIpCi0gICAgewotICAgICAg
ICBpZiAoYS5zZWNvbmQgPT0gYi5zZWNvbmQpCi0gICAgICAgICAgICByZXR1cm4gYS5maXJzdCA8
IGIuZmlyc3Q7Ci0gICAgICAgIHJldHVybiBhLnNlY29uZCA8IGIuc2Vjb25kOwotICAgIH0KLX07
Ci0KLUhpc3RvZ3JhbTo6fkhpc3RvZ3JhbSgpCi17Ci0gICAgVmVjdG9yPHBhaXI8VVN0cmluZywg
ZG91YmxlPiA+IHZhbHVlczsKLSAgICBNYXA6Oml0ZXJhdG9yIGVuZCA9IHRpbWVzLmVuZCgpOwot
ICAgIGZvciAoTWFwOjppdGVyYXRvciBpdCA9IHRpbWVzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytp
dCkKLSAgICAgICAgdmFsdWVzLmFwcGVuZCgqaXQpOwotICAgIHNvcnQodmFsdWVzLmJlZ2luKCks
IHZhbHVlcy5lbmQoKSwgQ29tcGFyZUhpc3RvZ3JhbUVudHJpZXMoKSk7Ci0gICAgc2l6ZV90IHNp
emUgPSB2YWx1ZXMuc2l6ZSgpOwotICAgIHByaW50ZigiUmVndWxhciBFeHByZXNzaW9ucywgc29y
dGVkIGJ5IHRpbWUgc3BlbnQgZXZhbHVhdGluZyB0aGVtOlxuIik7Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBzaXplOyArK2kpCi0gICAgICAgIHByaW50ZigiICAgICVmIC0gJXNcbiIsIHZh
bHVlc1tzaXplIC0gaSAtIDFdLnNlY29uZCwgdmFsdWVzW3NpemUgLSBpIC0gMV0uZmlyc3QudXRm
OCgpLmNfc3RyKCkpOwotfQotCi12b2lkIEhpc3RvZ3JhbTo6YWRkKGNvbnN0IEpTUmVnRXhwKiBy
ZSwgZG91YmxlIGVsYXBzZWRUaW1lKQotewotICAgIFVTdHJpbmcgc3RyaW5nKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgVUNoYXIqPihyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihyZSkgKyBy
ZS0+c3RyaW5nT2Zmc2V0KSwgcmUtPnN0cmluZ0xlbmd0aCk7Ci0gICAgaWYgKHJlLT5vcHRpb25z
ICYgSWdub3JlQ2FzZU9wdGlvbiAmJiByZS0+b3B0aW9ucyAmIE1hdGNoQWNyb3NzTXVsdGlwbGVM
aW5lc09wdGlvbikKLSAgICAgICAgc3RyaW5nICs9ICIgKG11bHRpLWxpbmUsIGlnbm9yZSBjYXNl
KSI7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGlmIChyZS0+b3B0aW9ucyAmIElnbm9yZUNhc2VPcHRp
b24pCi0gICAgICAgICAgICBzdHJpbmcgKz0gIiAoaWdub3JlIGNhc2UpIjsKLSAgICAgICAgaWYg
KHJlLT5vcHRpb25zICYgTWF0Y2hBY3Jvc3NNdWx0aXBsZUxpbmVzT3B0aW9uKQotICAgICAgICAg
ICAgc3RyaW5nICs9ICIgKG11bHRpLWxpbmUpIjsKLSAgICB9Ci0gICAgcGFpcjxNYXA6Oml0ZXJh
dG9yLCBib29sPiByZXN1bHQgPSB0aW1lcy5hZGQoc3RyaW5nLmltcGwoKSwgZWxhcHNlZFRpbWUp
OwotICAgIGlmICghcmVzdWx0LnNlY29uZCkKLSAgICAgICAgcmVzdWx0LmZpcnN0LT5zZWNvbmQg
Kz0gZWxhcHNlZFRpbWU7Ci19Ci0KLUhpc3RvZ3JhbVRpbWVMb2dnZXI6Okhpc3RvZ3JhbVRpbWVM
b2dnZXIoY29uc3QgSlNSZWdFeHAqIHJlKQotICAgIDogbV9yZShyZSkKLSAgICAsIG1fc3RhcnRU
aW1lKGN1cnJlbnRUaW1lTVMoKSkKLXsKLX0KLQotSGlzdG9ncmFtVGltZUxvZ2dlcjo6fkhpc3Rv
Z3JhbVRpbWVMb2dnZXIoKQotewotICAgIHN0YXRpYyBIaXN0b2dyYW0gaGlzdG9ncmFtOwotICAg
IGhpc3RvZ3JhbS5hZGQobV9yZSwgY3VycmVudFRpbWVNUygpIC0gbV9zdGFydFRpbWUpOwotfQot
Ci0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfaW50
ZXJuYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfaW50ZXJuYWwuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAxNmJiNS4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0
NTUgKzAsMCBAQAotLyogVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBD
UkUgbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5Ci1zdGFydGVkIG91dCBhcyBhIGNvcHkgb2Yg
UENSRSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KLXJlbW92ZWQuIFRo
aXMgbGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1
cmVzCi1yZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBh
bmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucwotbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0
aGUgcmVzdCBvZiBXZWJLaXQuCi0KLSAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVu
IGJ5IFBoaWxpcCBIYXplbAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2
ZXJzaXR5IG9mIENhbWJyaWRnZQotICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwg
MjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0
eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0g
ICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBP
V05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSov
Ci0KLS8qIFRoaXMgaGVhZGVyIGNvbnRhaW5zIGRlZmluaXRpb25zIHRoYXQgYXJlIHNoYXJlZCBi
ZXR3ZWVuIHRoZSBkaWZmZXJlbnQKLW1vZHVsZXMsIGJ1dCB3aGljaCBhcmUgbm90IHJlbGV2YW50
IHRvIHRoZSBleHBvcnRlZCBBUEkuIFRoaXMgaW5jbHVkZXMgc29tZQotZnVuY3Rpb25zIHdob3Nl
IG5hbWVzIGFsbCBiZWdpbiB3aXRoICJfcGNyZV8iLiAqLwotCi0jaWZuZGVmIFBDUkVfSU5URVJO
QUxfSAotI2RlZmluZSBQQ1JFX0lOVEVSTkFMX0gKLQotLyogQml0IGRlZmluaXRpb25zIGZvciBl
bnRyaWVzIGluIHRoZSBwY3JlX2N0eXBlcyB0YWJsZS4gKi8KLQotI2RlZmluZSBjdHlwZV9zcGFj
ZSAgIDB4MDEKLSNkZWZpbmUgY3R5cGVfeGRpZ2l0ICAweDA4Ci0jZGVmaW5lIGN0eXBlX3dvcmQg
ICAgMHgxMCAgIC8qIGFscGhhbWVyaWMgb3IgJ18nICovCi0KLS8qIE9mZnNldHMgZm9yIHRoZSBi
aXRtYXAgdGFibGVzIGluIHBjcmVfY2JpdHMuIEVhY2ggdGFibGUgY29udGFpbnMgYSBzZXQKLW9m
IGJpdHMgZm9yIGEgY2xhc3MgbWFwLiBTb21lIGNsYXNzZXMgYXJlIGJ1aWx0IGJ5IGNvbWJpbmlu
ZyB0aGVzZSB0YWJsZXMuICovCi0KLSNkZWZpbmUgY2JpdF9zcGFjZSAgICAgMCAgICAgIC8qIFxz
ICovCi0jZGVmaW5lIGNiaXRfZGlnaXQgICAgMzIgICAgICAvKiBcZCAqLwotI2RlZmluZSBjYml0
X3dvcmQgICAgIDY0ICAgICAgLyogXHcgKi8KLSNkZWZpbmUgY2JpdF9sZW5ndGggICA5NiAgICAg
IC8qIExlbmd0aCBvZiB0aGUgY2JpdHMgdGFibGUgKi8KLQotLyogT2Zmc2V0cyBvZiB0aGUgdmFy
aW91cyB0YWJsZXMgZnJvbSB0aGUgYmFzZSB0YWJsZXMgcG9pbnRlciwgYW5kCi10b3RhbCBsZW5n
dGguICovCi0KLSNkZWZpbmUgbGNjX29mZnNldCAgICAgIDAKLSNkZWZpbmUgZmNjX29mZnNldCAg
ICAxMjgKLSNkZWZpbmUgY2JpdHNfb2Zmc2V0ICAyNTYKLSNkZWZpbmUgY3R5cGVzX29mZnNldCAo
Y2JpdHNfb2Zmc2V0ICsgY2JpdF9sZW5ndGgpCi0jZGVmaW5lIHRhYmxlc19sZW5ndGggKGN0eXBl
c19vZmZzZXQgKyAxMjgpCi0KLSNpZm5kZWYgREZUQUJMRVMKLQotLy8gQ2hhbmdlIHRoZSBmb2xs
b3dpbmcgdG8gMSB0byBkdW1wIHVzZWQgcmVndWxhciBleHByZXNzaW9ucyBhdCBwcm9jZXNzIGV4
aXQgdGltZS4KLSNkZWZpbmUgUkVHRVhQX0hJU1RPR1JBTSAwCi0KLSNpbmNsdWRlICJBc3NlcnRp
b25zLmgiCi0KLSNpZiBDT01QSUxFUihNU1ZDKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQy
MzIpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDI0NCkKLSNlbmRpZgotCi0jaW5jbHVkZSAi
cGNyZS5oIgotCi0vKiBUaGUgdmFsdWUgb2YgTElOS19TSVpFIGRldGVybWluZXMgdGhlIG51bWJl
ciBvZiBieXRlcyB1c2VkIHRvIHN0b3JlIGxpbmtzIGFzCi1vZmZzZXRzIHdpdGhpbiB0aGUgY29t
cGlsZWQgcmVnZXguIFRoZSBkZWZhdWx0IGlzIDIsIHdoaWNoIGFsbG93cyBmb3IgY29tcGlsZWQK
LXBhdHRlcm5zIHVwIHRvIDY0SyBsb25nLiAqLwotCi0jZGVmaW5lIExJTktfU0laRSAgIDMKLQot
LyogRGVmaW5lIERFQlVHIHRvIGdldCBkZWJ1Z2dpbmcgb3V0cHV0IG9uIHN0ZG91dC4gKi8KLQot
I2lmIDAKLSNkZWZpbmUgREVCVUcKLSNlbmRpZgotCi0vKiBVc2UgYSBtYWNybyBmb3IgZGVidWdn
aW5nIHByaW50aW5nLCAnY2F1c2UgdGhhdCBlbGltaW5hdGVzIHRoZSB1c2Ugb2YgI2lmZGVmCi1p
bmxpbmUsIGFuZCB0aGVyZSBhcmUgKnN0aWxsKiBzdHVwaWQgY29tcGlsZXJzIGFib3V0IHRoYXQg
ZG9uJ3QgbGlrZSBpbmRlbnRlZAotcHJlLXByb2Nlc3NvciBzdGF0ZW1lbnRzLCBvciBhdCBsZWFz
dCB0aGVyZSB3ZXJlIHdoZW4gSSBmaXJzdCB3cm90ZSB0aGlzLiBBZnRlcgotYWxsLCBpdCBoYWQg
b25seSBiZWVuIGFib3V0IDEwIHllYXJzIHRoZW4uLi4gKi8KLQotI2lmZGVmIERFQlVHCi0jZGVm
aW5lIERQUklOVEYocCkgcHJpbnRmIHAKLSNlbHNlCi0jZGVmaW5lIERQUklOVEYocCkgLypub3Ro
aW5nKi8KLSNlbmRpZgotCi0vKiBQQ1JFIGtlZXBzIG9mZnNldHMgaW4gaXRzIGNvbXBpbGVkIGNv
ZGUgYXMgMi1ieXRlIHF1YW50aXRpZXMgKGFsd2F5cyBzdG9yZWQKLWluIGJpZy1lbmRpYW4gb3Jk
ZXIpIGJ5IGRlZmF1bHQuIFRoZXNlIGFyZSB1c2VkLCBmb3IgZXhhbXBsZSwgdG8gbGluayBmcm9t
IHRoZQotc3RhcnQgb2YgYSBzdWJwYXR0ZXJuIHRvIGl0cyBhbHRlcm5hdGl2ZXMgYW5kIGl0cyBl
bmQuIFRoZSB1c2Ugb2YgMiBieXRlcyBwZXIKLW9mZnNldCBsaW1pdHMgdGhlIHNpemUgb2YgdGhl
IGNvbXBpbGVkIHJlZ2V4IHRvIGFyb3VuZCA2NEssIHdoaWNoIGlzIGJpZyBlbm91Z2gKLWZvciBh
bG1vc3QgZXZlcnlib2R5LiBIb3dldmVyLCBJIHJlY2VpdmVkIGEgcmVxdWVzdCBmb3IgYW4gZXZl
biBiaWdnZXIgbGltaXQuCi1Gb3IgdGhpcyByZWFzb24sIGFuZCBhbHNvIHRvIG1ha2UgdGhlIGNv
ZGUgZWFzaWVyIHRvIG1haW50YWluLCB0aGUgc3RvcmluZyBhbmQKLWxvYWRpbmcgb2Ygb2Zmc2V0
cyBmcm9tIHRoZSBieXRlIHN0cmluZyBpcyBub3cgaGFuZGxlZCBieSB0aGUgZnVuY3Rpb25zIHRo
YXQgYXJlCi1kZWZpbmVkIGhlcmUuICovCi0KLS8qIFBDUkUgdXNlcyBzb21lIG90aGVyIDItYnl0
ZSBxdWFudGl0aWVzIHRoYXQgZG8gbm90IGNoYW5nZSB3aGVuIHRoZSBzaXplIG9mCi1vZmZzZXRz
IGNoYW5nZXMuIFRoZXJlIGFyZSB1c2VkIGZvciByZXBlYXQgY291bnRzIGFuZCBmb3Igb3RoZXIg
dGhpbmdzIHN1Y2ggYXMKLWNhcHR1cmluZyBwYXJlbnRoZXNpcyBudW1iZXJzIGluIGJhY2sgcmVm
ZXJlbmNlcy4gKi8KLQotc3RhdGljIGlubGluZSB2b2lkIHB1dDJCeXRlVmFsdWUodW5zaWduZWQg
Y2hhciogb3Bjb2RlUHRyLCBpbnQgdmFsdWUpCi17Ci0gICAgQVNTRVJUKHZhbHVlID49IDAgJiYg
dmFsdWUgPD0gMHhGRkZGKTsKLSAgICBvcGNvZGVQdHJbMF0gPSB2YWx1ZSA+PiA4OwotICAgIG9w
Y29kZVB0clsxXSA9IHZhbHVlOwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcHV0M0J5dGVWYWx1
ZSh1bnNpZ25lZCBjaGFyKiBvcGNvZGVQdHIsIGludCB2YWx1ZSkKLXsKLSAgICBBU1NFUlQodmFs
dWUgPj0gMCAmJiB2YWx1ZSA8PSAweEZGRkZGRik7Ci0gICAgb3Bjb2RlUHRyWzBdID0gdmFsdWUg
Pj4gMTY7Ci0gICAgb3Bjb2RlUHRyWzFdID0gdmFsdWUgPj4gODsKLSAgICBvcGNvZGVQdHJbMl0g
PSB2YWx1ZTsKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZ2V0MkJ5dGVWYWx1ZShjb25zdCB1bnNp
Z25lZCBjaGFyKiBvcGNvZGVQdHIpCi17Ci0gICAgcmV0dXJuIChvcGNvZGVQdHJbMF0gPDwgOCkg
fCBvcGNvZGVQdHJbMV07Ci19Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdldDNCeXRlVmFsdWUoY29u
c3QgdW5zaWduZWQgY2hhciogb3Bjb2RlUHRyKQotewotICAgIHJldHVybiAob3Bjb2RlUHRyWzBd
IDw8IDE2KSB8IChvcGNvZGVQdHJbMV0gPDwgOCkgfCBvcGNvZGVQdHJbMl07Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgdm9pZCBwdXQyQnl0ZVZhbHVlQW5kQWR2YW5jZSh1bnNpZ25lZCBjaGFyKiYgb3Bj
b2RlUHRyLCBpbnQgdmFsdWUpCi17Ci0gICAgcHV0MkJ5dGVWYWx1ZShvcGNvZGVQdHIsIHZhbHVl
KTsKLSAgICBvcGNvZGVQdHIgKz0gMjsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHB1dDNCeXRl
VmFsdWVBbmRBZHZhbmNlKHVuc2lnbmVkIGNoYXIqJiBvcGNvZGVQdHIsIGludCB2YWx1ZSkKLXsK
LSAgICBwdXQzQnl0ZVZhbHVlKG9wY29kZVB0ciwgdmFsdWUpOwotICAgIG9wY29kZVB0ciArPSAz
OwotfQotCi1zdGF0aWMgaW5saW5lIHZvaWQgcHV0TGlua1ZhbHVlQWxsb3daZXJvKHVuc2lnbmVk
IGNoYXIqIG9wY29kZVB0ciwgaW50IHZhbHVlKQotewotI2lmIExJTktfU0laRSA9PSAzCi0gICAg
cHV0M0J5dGVWYWx1ZShvcGNvZGVQdHIsIHZhbHVlKTsKLSNlbGlmIExJTktfU0laRSA9PSAyCi0g
ICAgcHV0MkJ5dGVWYWx1ZShvcGNvZGVQdHIsIHZhbHVlKTsKLSNlbHNlCi0jICAgZXJyb3IgTElO
S19TSVpFIG5vdCBzdXBwb3J0ZWQuCi0jZW5kaWYKLX0KLQotc3RhdGljIGlubGluZSBpbnQgZ2V0
TGlua1ZhbHVlQWxsb3daZXJvKGNvbnN0IHVuc2lnbmVkIGNoYXIqIG9wY29kZVB0cikKLXsKLSNp
ZiBMSU5LX1NJWkUgPT0gMwotICAgIHJldHVybiBnZXQzQnl0ZVZhbHVlKG9wY29kZVB0cik7Ci0j
ZWxpZiBMSU5LX1NJWkUgPT0gMgotICAgIHJldHVybiBnZXQyQnl0ZVZhbHVlKG9wY29kZVB0cik7
Ci0jZWxzZQotIyAgIGVycm9yIExJTktfU0laRSBub3Qgc3VwcG9ydGVkLgotI2VuZGlmCi19Ci0K
LSNkZWZpbmUgTUFYX1BBVFRFUk5fU0laRSAxMDI0ICogMTAyNCAvLyBEZXJpdmVkIGJ5IGVtcGly
aWNhbCB0ZXN0aW5nIG9mIGNvbXBpbGUgdGltZSBpbiBQQ1JFIGFuZCBXUkVDLgotQ09NUElMRV9B
U1NFUlQoTUFYX1BBVFRFUk5fU0laRSA8ICgxIDw8ICg4ICogTElOS19TSVpFKSksIHBjcmVfbWF4
X3BhdHRlcm5fZml0c19pbl9ieXRlY29kZSk7Ci0KLXN0YXRpYyBpbmxpbmUgdm9pZCBwdXRMaW5r
VmFsdWUodW5zaWduZWQgY2hhciogb3Bjb2RlUHRyLCBpbnQgdmFsdWUpCi17Ci0gICAgQVNTRVJU
KHZhbHVlKTsKLSAgICBwdXRMaW5rVmFsdWVBbGxvd1plcm8ob3Bjb2RlUHRyLCB2YWx1ZSk7Ci19
Ci0KLXN0YXRpYyBpbmxpbmUgaW50IGdldExpbmtWYWx1ZShjb25zdCB1bnNpZ25lZCBjaGFyKiBv
cGNvZGVQdHIpCi17Ci0gICAgaW50IHZhbHVlID0gZ2V0TGlua1ZhbHVlQWxsb3daZXJvKG9wY29k
ZVB0cik7Ci0gICAgQVNTRVJUKHZhbHVlKTsKLSAgICByZXR1cm4gdmFsdWU7Ci19Ci0KLXN0YXRp
YyBpbmxpbmUgdm9pZCBwdXRMaW5rVmFsdWVBbmRBZHZhbmNlKHVuc2lnbmVkIGNoYXIqJiBvcGNv
ZGVQdHIsIGludCB2YWx1ZSkKLXsKLSAgICBwdXRMaW5rVmFsdWUob3Bjb2RlUHRyLCB2YWx1ZSk7
Ci0gICAgb3Bjb2RlUHRyICs9IExJTktfU0laRTsKLX0KLQotc3RhdGljIGlubGluZSB2b2lkIHB1
dExpbmtWYWx1ZUFsbG93WmVyb0FuZEFkdmFuY2UodW5zaWduZWQgY2hhciomIG9wY29kZVB0ciwg
aW50IHZhbHVlKQotewotICAgIHB1dExpbmtWYWx1ZUFsbG93WmVybyhvcGNvZGVQdHIsIHZhbHVl
KTsKLSAgICBvcGNvZGVQdHIgKz0gTElOS19TSVpFOwotfQotCi0vLyBGSVhNRTogVGhlc2UgYXJl
IHJlYWxseSBtb3JlIG9mIGEgImNvbXBpbGVkIHJlZ2V4cCBzdGF0ZSIgdGhhbiAicmVnZXhwIG9w
dGlvbnMiCi1lbnVtIFJlZ0V4cE9wdGlvbnMgewotICAgIFVzZUZpcnN0Qnl0ZU9wdGltaXphdGlv
bk9wdGlvbiA9IDB4NDAwMDAwMDAsICAvKiBmaXJzdEJ5dGUgaXMgc2V0ICovCi0gICAgVXNlUmVx
dWlyZWRCeXRlT3B0aW1pemF0aW9uT3B0aW9uID0gMHgyMDAwMDAwMCwgIC8qIHJlcUJ5dGUgaXMg
c2V0ICovCi0gICAgVXNlTXVsdGlMaW5lRmlyc3RCeXRlT3B0aW1pemF0aW9uT3B0aW9uID0gMHgx
MDAwMDAwMCwgIC8qIHN0YXJ0IGFmdGVyIFxuIGZvciBtdWx0aWxpbmUgKi8KLSAgICBJc0FuY2hv
cmVkT3B0aW9uID0gMHgwMjAwMDAwMCwgIC8qIGNhbid0IHVzZSBwYXJ0aWFsIHdpdGggdGhpcyBy
ZWdleCAqLwotICAgIElnbm9yZUNhc2VPcHRpb24gPSAweDAwMDAwMDAxLAotICAgIE1hdGNoQWNy
b3NzTXVsdGlwbGVMaW5lc09wdGlvbiA9IDB4MDAwMDAwMDIKLX07Ci0KLS8qIEZsYWdzIGFkZGVk
IHRvIGZpcnN0Qnl0ZSBvciByZXFCeXRlOyBhICJub24tbGl0ZXJhbCIgaXRlbSBpcyBlaXRoZXIg
YQotdmFyaWFibGUtbGVuZ3RoIHJlcGVhdCwgb3IgYSBhbnl0aGluZyBvdGhlciB0aGFuIGxpdGVy
YWwgY2hhcmFjdGVycy4gKi8KLQotI2RlZmluZSBSRVFfSUdOT1JFX0NBU0UgMHgwMTAwICAgIC8q
IGluZGljYXRlcyBzaG91bGQgaWdub3JlIGNhc2UgKi8KLSNkZWZpbmUgUkVRX1ZBUlkgICAgIDB4
MDIwMCAgICAvKiByZXFCeXRlIGZvbGxvd2VkIG5vbi1saXRlcmFsIGl0ZW0gKi8KLQotLyogTWlz
Y2VsbGFuZW91cyBkZWZpbml0aW9ucyAqLwotCi0vKiBGbGFnIGJpdHMgYW5kIGRhdGEgdHlwZXMg
Zm9yIHRoZSBleHRlbmRlZCBjbGFzcyAoT1BfWENMQVNTKSBmb3IgY2xhc3NlcyB0aGF0Ci1jb250
YWluIFVURi04IGNoYXJhY3RlcnMgd2l0aCB2YWx1ZXMgZ3JlYXRlciB0aGFuIDI1NS4gKi8KLQot
I2RlZmluZSBYQ0xfTk9UICAgIDB4MDEgICAgLyogRmxhZzogdGhpcyBpcyBhIG5lZ2F0aXZlIGNs
YXNzICovCi0jZGVmaW5lIFhDTF9NQVAgICAgMHgwMiAgICAvKiBGbGFnOiBhIDMyLWJ5dGUgbWFw
IGlzIHByZXNlbnQgKi8KLQotI2RlZmluZSBYQ0xfRU5EICAgICAgIDAgICAgLyogTWFya3MgZW5k
IG9mIGluZGl2aWR1YWwgaXRlbXMgKi8KLSNkZWZpbmUgWENMX1NJTkdMRSAgICAxICAgIC8qIFNp
bmdsZSBpdGVtIChvbmUgbXVsdGlieXRlIGNoYXIpIGZvbGxvd3MgKi8KLSNkZWZpbmUgWENMX1JB
TkdFICAgICAyICAgIC8qIEEgcmFuZ2UgKHR3byBtdWx0aWJ5dGUgY2hhcnMpIGZvbGxvd3MgKi8K
LQotLyogVGhlc2UgYXJlIGVzY2FwZWQgaXRlbXMgdGhhdCBhcmVuJ3QganVzdCBhbiBlbmNvZGlu
ZyBvZiBhIHBhcnRpY3VsYXIgZGF0YQotdmFsdWUgc3VjaCBhcyBcbi4gVGhleSBtdXN0IGhhdmUg
bm9uLXplcm8gdmFsdWVzLCBhcyBjaGVja19lc2NhcGUoKSByZXR1cm5zCi10aGVpciBuZWdhdGlv
bi4gQWxzbywgdGhleSBtdXN0IGFwcGVhciBpbiB0aGUgc2FtZSBvcmRlciBhcyBpbiB0aGUgb3Bj
b2RlCi1kZWZpbml0aW9ucyBiZWxvdywgdXAgdG8gRVNDX3cuIFRoZSBmaW5hbCBvbmUgbXVzdCBi
ZQotRVNDX1JFRiBhcyBzdWJzZXF1ZW50IHZhbHVlcyBhcmUgdXNlZCBmb3IgXDEsIFwyLCBcMywg
ZXRjLiBUaGVyZSBpcyBhcmUgdHdvCi10ZXN0cyBpbiB0aGUgY29kZSBmb3IgYW4gZXNjYXBlID4g
RVNDX2IgYW5kIDw9IEVTQ193IHRvCi1kZXRlY3QgdGhlIHR5cGVzIHRoYXQgbWF5IGJlIHJlcGVh
dGVkLiBUaGVzZSBhcmUgdGhlIHR5cGVzIHRoYXQgY29uc3VtZQotY2hhcmFjdGVycy4gSWYgYW55
IG5ldyBlc2NhcGVzIGFyZSBwdXQgaW4gYmV0d2VlbiB0aGF0IGRvbid0IGNvbnN1bWUgYQotY2hh
cmFjdGVyLCB0aGF0IGNvZGUgd2lsbCBoYXZlIHRvIGNoYW5nZS4gKi8KLQotZW51bSB7IEVTQ19C
ID0gMSwgRVNDX2IsIEVTQ19ELCBFU0NfZCwgRVNDX1MsIEVTQ19zLCBFU0NfVywgRVNDX3csIEVT
Q19SRUYgfTsKLQotLyogT3Bjb2RlIHRhYmxlOiBPUF9CUkEgbXVzdCBiZSBsYXN0LCBhcyBhbGwg
dmFsdWVzID49IGl0IGFyZSB1c2VkIGZvciBicmFja2V0cwotdGhhdCBleHRyYWN0IHN1YnN0cmlu
Z3MuIFN0YXJ0aW5nIGZyb20gMSAoaS5lLiBhZnRlciBPUF9FTkQpLCB0aGUgdmFsdWVzIHVwIHRv
Ci1PUF9FT0QgbXVzdCBjb3JyZXNwb25kIGluIG9yZGVyIHRvIHRoZSBsaXN0IG9mIGVzY2FwZXMg
aW1tZWRpYXRlbHkgYWJvdmUuCi1Ob3RlIHRoYXQgd2hlbmV2ZXIgdGhpcyBsaXN0IGlzIHVwZGF0
ZWQsIHRoZSB0d28gbWFjcm8gZGVmaW5pdGlvbnMgdGhhdCBmb2xsb3cKLW11c3QgYWxzbyBiZSB1
cGRhdGVkIHRvIG1hdGNoLiAqLwotCi0jZGVmaW5lIEZPUl9FQUNIX09QQ09ERShtYWNybykgXAot
ICAgIG1hY3JvKEVORCkgXAotICAgIFwKLSAgICBtYWNybyhOT1RfV09SRF9CT1VOREFSWSkgXAot
ICAgIG1hY3JvKFdPUkRfQk9VTkRBUlkpIFwKLSAgICBtYWNybyhOT1RfRElHSVQpIFwKLSAgICBt
YWNybyhESUdJVCkgXAotICAgIG1hY3JvKE5PVF9XSElURVNQQUNFKSBcCi0gICAgbWFjcm8oV0hJ
VEVTUEFDRSkgXAotICAgIG1hY3JvKE5PVF9XT1JEQ0hBUikgXAotICAgIG1hY3JvKFdPUkRDSEFS
KSBcCi0gICAgXAotICAgIG1hY3JvKE5PVF9ORVdMSU5FKSBcCi0gICAgXAotICAgIG1hY3JvKENJ
UkMpIFwKLSAgICBtYWNybyhET0xMKSBcCi0gICAgbWFjcm8oQk9MKSBcCi0gICAgbWFjcm8oRU9M
KSBcCi0gICAgbWFjcm8oQ0hBUikgXAotICAgIG1hY3JvKENIQVJfSUdOT1JJTkdfQ0FTRSkgXAot
ICAgIG1hY3JvKEFTQ0lJX0NIQVIpIFwKLSAgICBtYWNybyhBU0NJSV9MRVRURVJfSUdOT1JJTkdf
Q0FTRSkgXAotICAgIG1hY3JvKE5PVCkgXAotICAgIFwKLSAgICBtYWNybyhTVEFSKSBcCi0gICAg
bWFjcm8oTUlOU1RBUikgXAotICAgIG1hY3JvKFBMVVMpIFwKLSAgICBtYWNybyhNSU5QTFVTKSBc
Ci0gICAgbWFjcm8oUVVFUlkpIFwKLSAgICBtYWNybyhNSU5RVUVSWSkgXAotICAgIG1hY3JvKFVQ
VE8pIFwKLSAgICBtYWNybyhNSU5VUFRPKSBcCi0gICAgbWFjcm8oRVhBQ1QpIFwKLSAgICBcCi0g
ICAgbWFjcm8oTk9UU1RBUikgXAotICAgIG1hY3JvKE5PVE1JTlNUQVIpIFwKLSAgICBtYWNybyhO
T1RQTFVTKSBcCi0gICAgbWFjcm8oTk9UTUlOUExVUykgXAotICAgIG1hY3JvKE5PVFFVRVJZKSBc
Ci0gICAgbWFjcm8oTk9UTUlOUVVFUlkpIFwKLSAgICBtYWNybyhOT1RVUFRPKSBcCi0gICAgbWFj
cm8oTk9UTUlOVVBUTykgXAotICAgIG1hY3JvKE5PVEVYQUNUKSBcCi0gICAgXAotICAgIG1hY3Jv
KFRZUEVTVEFSKSBcCi0gICAgbWFjcm8oVFlQRU1JTlNUQVIpIFwKLSAgICBtYWNybyhUWVBFUExV
UykgXAotICAgIG1hY3JvKFRZUEVNSU5QTFVTKSBcCi0gICAgbWFjcm8oVFlQRVFVRVJZKSBcCi0g
ICAgbWFjcm8oVFlQRU1JTlFVRVJZKSBcCi0gICAgbWFjcm8oVFlQRVVQVE8pIFwKLSAgICBtYWNy
byhUWVBFTUlOVVBUTykgXAotICAgIG1hY3JvKFRZUEVFWEFDVCkgXAotICAgIFwKLSAgICBtYWNy
byhDUlNUQVIpIFwKLSAgICBtYWNybyhDUk1JTlNUQVIpIFwKLSAgICBtYWNybyhDUlBMVVMpIFwK
LSAgICBtYWNybyhDUk1JTlBMVVMpIFwKLSAgICBtYWNybyhDUlFVRVJZKSBcCi0gICAgbWFjcm8o
Q1JNSU5RVUVSWSkgXAotICAgIG1hY3JvKENSUkFOR0UpIFwKLSAgICBtYWNybyhDUk1JTlJBTkdF
KSBcCi0gICAgXAotICAgIG1hY3JvKENMQVNTKSBcCi0gICAgbWFjcm8oTkNMQVNTKSBcCi0gICAg
bWFjcm8oWENMQVNTKSBcCi0gICAgXAotICAgIG1hY3JvKFJFRikgXAotICAgIFwKLSAgICBtYWNy
byhBTFQpIFwKLSAgICBtYWNybyhLRVQpIFwKLSAgICBtYWNybyhLRVRSTUFYKSBcCi0gICAgbWFj
cm8oS0VUUk1JTikgXAotICAgIFwKLSAgICBtYWNybyhBU1NFUlQpIFwKLSAgICBtYWNybyhBU1NF
UlRfTk9UKSBcCi0gICAgXAotICAgIG1hY3JvKEJSQVpFUk8pIFwKLSAgICBtYWNybyhCUkFNSU5a
RVJPKSBcCi0gICAgbWFjcm8oQlJBTlVNQkVSKSBcCi0gICAgbWFjcm8oQlJBKQotCi0jZGVmaW5l
IE9QQ09ERV9FTlVNX1ZBTFVFKG9wY29kZSkgT1BfIyNvcGNvZGUsCi1lbnVtIHsgRk9SX0VBQ0hf
T1BDT0RFKE9QQ09ERV9FTlVNX1ZBTFVFKSB9OwotCi0vKiBXQVJOSU5HIFdBUk5JTkcgV0FSTklO
RzogVGhlcmUgaXMgYW4gaW1wbGljaXQgYXNzdW1wdGlvbiBpbiBwY3JlLmMgYW5kCi1zdHVkeS5j
IHRoYXQgYWxsIG9wY29kZXMgYXJlIGxlc3MgdGhhbiAxMjggaW4gdmFsdWUuIFRoaXMgbWFrZXMg
aGFuZGxpbmcgVVRGLTgKLWNoYXJhY3RlciBzZXF1ZW5jZXMgZWFzaWVyLiAqLwotCi0vKiBUaGUg
aGlnaGVzdCBleHRyYWN0aW9uIG51bWJlciBiZWZvcmUgd2UgaGF2ZSB0byBzdGFydCB1c2luZyBh
ZGRpdGlvbmFsCi1ieXRlcy4gKE9yaWdpbmFsbHkgUENSRSBkaWRuJ3QgaGF2ZSBzdXBwb3J0IGZv
ciBleHRyYWN0aW9uIGNvdW50cyBoaWdoZXIgdGhhbgotdGhpcyBudW1iZXIuKSBUaGUgdmFsdWUg
aXMgbGltaXRlZCBieSB0aGUgbnVtYmVyIG9mIG9wY29kZXMgbGVmdCBhZnRlciBPUF9CUkEsCi1p
LmUuIDI1NSAtIE9QX0JSQS4gV2UgYWN0dWFsbHkgc2V0IGl0IGEgYml0IGxvd2VyIHRvIGxlYXZl
IHJvb20gZm9yIGFkZGl0aW9uYWwKLW9wY29kZXMuICovCi0KLS8qIEZJWE1FOiBOb3RlIHRoYXQg
T1BfQlJBICsgMTAwIGlzID4gMTI4LCBzbyB0aGUgdHdvIGNvbW1lbnRzIGFib3ZlCi1hcmUgaW4g
Y29uZmxpY3QhICovCi0KLSNkZWZpbmUgRVhUUkFDVF9CQVNJQ19NQVggIDEwMAotCi0vKiBUaGUg
Y29kZSB2ZWN0b3IgcnVucyBvbiBhcyBsb25nIGFzIG5lY2Vzc2FyeSBhZnRlciB0aGUgZW5kLiAq
LwotCi1zdHJ1Y3QgSlNSZWdFeHAgewotICAgIHVuc2lnbmVkIG9wdGlvbnM7Ci0KLSAgICB1bnNp
Z25lZCBzaG9ydCB0b3BCcmFja2V0OwotICAgIHVuc2lnbmVkIHNob3J0IHRvcEJhY2tyZWY7Ci0g
ICAgCi0gICAgdW5zaWduZWQgc2hvcnQgZmlyc3RCeXRlOwotICAgIHVuc2lnbmVkIHNob3J0IHJl
cUJ5dGU7Ci0KLSNpZiBSRUdFWFBfSElTVE9HUkFNCi0gICAgc2l6ZV90IHN0cmluZ09mZnNldDsK
LSAgICBzaXplX3Qgc3RyaW5nTGVuZ3RoOwotI2VuZGlmCi19OwotCi0vKiBJbnRlcm5hbCBzaGFy
ZWQgZGF0YSB0YWJsZXMuIFRoZXNlIGFyZSB0YWJsZXMgdGhhdCBhcmUgdXNlZCBieSBtb3JlIHRo
YW4gb25lCi0gb2YgdGhlIGV4cG9ydGVkIHB1YmxpYyBmdW5jdGlvbnMuIFRoZXkgaGF2ZSB0byBi
ZSAiZXh0ZXJuYWwiIGluIHRoZSBDIHNlbnNlLAotIGJ1dCBhcmUgbm90IHBhcnQgb2YgdGhlIFBD
UkUgcHVibGljIEFQSS4gVGhlIGRhdGEgZm9yIHRoZXNlIHRhYmxlcyBpcyBpbiB0aGUKLSBwY3Jl
X3RhYmxlcy5jIG1vZHVsZS4gKi8KLQotI2RlZmluZSBqc2NfcGNyZV91dGY4X3RhYmxlMV9zaXpl
IDYKLQotZXh0ZXJuIGNvbnN0IGludCAgICBqc2NfcGNyZV91dGY4X3RhYmxlMVs2XTsKLWV4dGVy
biBjb25zdCBpbnQgICAganNjX3BjcmVfdXRmOF90YWJsZTJbNl07Ci1leHRlcm4gY29uc3QgaW50
ICAgIGpzY19wY3JlX3V0ZjhfdGFibGUzWzZdOwotZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIGNoYXIg
anNjX3BjcmVfdXRmOF90YWJsZTRbMHg0MF07Ci0KLWV4dGVybiBjb25zdCB1bnNpZ25lZCBjaGFy
IGpzY19wY3JlX2RlZmF1bHRfdGFibGVzW3RhYmxlc19sZW5ndGhdOwotCi1zdGF0aWMgaW5saW5l
IHVuc2lnbmVkIGNoYXIgdG9Mb3dlckNhc2UodW5zaWduZWQgY2hhciBjKQotewotICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBjaGFyKiBsb3dlckNhc2VDaGFycyA9IGpzY19wY3JlX2RlZmF1bHRf
dGFibGVzICsgbGNjX29mZnNldDsKLSAgICByZXR1cm4gbG93ZXJDYXNlQ2hhcnNbY107Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBmbGlwQ2FzZSh1bnNpZ25lZCBjaGFyIGMpCi17
Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNoYXIqIGZsaXBwZWRDYXNlQ2hhcnMgPSBqc2Nf
cGNyZV9kZWZhdWx0X3RhYmxlcyArIGZjY19vZmZzZXQ7Ci0gICAgcmV0dXJuIGZsaXBwZWRDYXNl
Q2hhcnNbY107Ci19Ci0KLXN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hhciBjbGFzc0JpdG1hcEZv
ckNoYXIodW5zaWduZWQgY2hhciBjKQotewotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjaGFy
KiBjaGFyQ2xhc3NCaXRtYXBzID0ganNjX3BjcmVfZGVmYXVsdF90YWJsZXMgKyBjYml0c19vZmZz
ZXQ7Ci0gICAgcmV0dXJuIGNoYXJDbGFzc0JpdG1hcHNbY107Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
dW5zaWduZWQgY2hhciBjaGFyVHlwZUZvckNoYXIodW5zaWduZWQgY2hhciBjKQotewotICAgIGNv
bnN0IHVuc2lnbmVkIGNoYXIqIGNoYXJUeXBlTWFwID0ganNjX3BjcmVfZGVmYXVsdF90YWJsZXMg
KyBjdHlwZXNfb2Zmc2V0OwotICAgIHJldHVybiBjaGFyVHlwZU1hcFtjXTsKLX0KLQotc3RhdGlj
IGlubGluZSBib29sIGlzV29yZENoYXIoVUNoYXIgYykKLXsKLSAgICByZXR1cm4gYyA8IDEyOCAm
JiAoY2hhclR5cGVGb3JDaGFyKGMpICYgY3R5cGVfd29yZCk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUg
Ym9vbCBpc1NwYWNlQ2hhcihVQ2hhciBjKQotewotICAgIHJldHVybiAoYyA8IDEyOCAmJiAoY2hh
clR5cGVGb3JDaGFyKGMpICYgY3R5cGVfc3BhY2UpKSB8fCBjID09IDB4MDBBMDsKLX0KLQotc3Rh
dGljIGlubGluZSBib29sIGlzTmV3bGluZShVQ2hhciBubCkKLXsKLSAgICByZXR1cm4gKG5sID09
IDB4QSB8fCBubCA9PSAweEQgfHwgbmwgPT0gMHgyMDI4IHx8IG5sID09IDB4MjAyOSk7Ci19Ci0K
LXN0YXRpYyBpbmxpbmUgYm9vbCBpc0JyYWNrZXRTdGFydE9wY29kZSh1bnNpZ25lZCBjaGFyIG9w
Y29kZSkKLXsKLSAgICBpZiAob3Bjb2RlID49IE9QX0JSQSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgc3dpdGNoIChvcGNvZGUpIHsKLSAgICAgICAgY2FzZSBPUF9BU1NFUlQ6Ci0gICAgICAg
IGNhc2UgT1BfQVNTRVJUX05PVDoKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBk
ZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotc3RhdGljIGlu
bGluZSB2b2lkIGFkdmFuY2VUb0VuZE9mQnJhY2tldChjb25zdCB1bnNpZ25lZCBjaGFyKiYgb3Bj
b2RlUHRyKQotewotICAgIEFTU0VSVChpc0JyYWNrZXRTdGFydE9wY29kZSgqb3Bjb2RlUHRyKSB8
fCAqb3Bjb2RlUHRyID09IE9QX0FMVCk7Ci0gICAgZG8KLSAgICAgICAgb3Bjb2RlUHRyICs9IGdl
dExpbmtWYWx1ZShvcGNvZGVQdHIgKyAxKTsKLSAgICB3aGlsZSAoKm9wY29kZVB0ciA9PSBPUF9B
TFQpOwotfQotCi0vKiBJbnRlcm5hbCBzaGFyZWQgZnVuY3Rpb25zLiBUaGVzZSBhcmUgZnVuY3Rp
b25zIHRoYXQgYXJlIHVzZWQgaW4gbW9yZQotdGhhdCBvbmUgb2YgdGhlIHNvdXJjZSBmaWxlcy4g
VGhleSBoYXZlIHRvIGhhdmUgZXh0ZXJuYWwgbGlua2FnZSwgYnV0Ci1idXQgYXJlIG5vdCBwYXJ0
IG9mIHRoZSBwdWJsaWMgQVBJIGFuZCBzbyBub3QgZXhwb3J0ZWQgZnJvbSB0aGUgbGlicmFyeS4g
Ki8KLQotZXh0ZXJuIGludCBqc2NfcGNyZV91Y3Bfb3RoZXJjYXNlKHVuc2lnbmVkKTsKLWV4dGVy
biBib29sIGpzY19wY3JlX3hjbGFzcyhpbnQsIGNvbnN0IHVuc2lnbmVkIGNoYXIqKTsKLQotI2Vu
ZGlmCi0KLSNlbmRpZgotCi0vKiBFbmQgb2YgcGNyZV9pbnRlcm5hbC5oICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDg2OTY4NzkuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUv
cGNyZV90YWJsZXMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAotLyogVGhpcyBp
cyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhlIFBDUkUgbGlicmFyeS4gV2hpbGUgdGhp
cyBsaWJyYXJ5Ci1zdGFydGVkIG91dCBhcyBhIGNvcHkgb2YgUENSRSwgbWFueSBvZiB0aGUgZmVh
dHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KLXJlbW92ZWQuIFRoaXMgbGlicmFyeSBub3cgc3VwcG9y
dHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZlYXR1cmVzCi1yZXF1aXJlZCBieSB0aGUg
SmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9uLCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0
aW9ucwotbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFuZCB0aGUgcmVzdCBvZiBXZWJLaXQuCi0K
LSAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBoaWxpcCBIYXplbAotICAg
ICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQot
ICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJB
UyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSovCi0KLS8qIFRoaXMgbW9kdWxlIGNv
bnRhaW5zIHNvbWUgZml4ZWQgdGFibGVzIHRoYXQgYXJlIHVzZWQgYnkgbW9yZSB0aGFuIG9uZSBv
ZiB0aGUKLVBDUkUgY29kZSBtb2R1bGVzLiAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAicGNyZV9pbnRlcm5hbC5oIgotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgICAgVGFibGVzIGZvciBVVEYtOCBzdXBwb3J0
ICAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKiovCi0KLS8qIFRoZXNlIGFyZSB0aGUgYnJlYWtwb2ludHMgZm9yIGRpZmZlcmVudCBu
dW1iZXJzIG9mIGJ5dGVzIGluIGEgVVRGLTgKLWNoYXJhY3Rlci4gKi8KLQotY29uc3QgaW50IGpz
Y19wY3JlX3V0ZjhfdGFibGUxWzZdID0KLSAgeyAweDdmLCAweDdmZiwgMHhmZmZmLCAweDFmZmZm
ZiwgMHgzZmZmZmZmLCAweDdmZmZmZmZmfTsKLQotLyogVGhlc2UgYXJlIHRoZSBpbmRpY2F0b3Ig
Yml0cyBhbmQgdGhlIG1hc2sgZm9yIHRoZSBkYXRhIGJpdHMgdG8gc2V0IGluIHRoZQotZmlyc3Qg
Ynl0ZSBvZiBhIGNoYXJhY3RlciwgaW5kZXhlZCBieSB0aGUgbnVtYmVyIG9mIGFkZGl0aW9uYWwg
Ynl0ZXMuICovCi0KLWNvbnN0IGludCBqc2NfcGNyZV91dGY4X3RhYmxlMls2XSA9IHsgMCwgICAg
MHhjMCwgMHhlMCwgMHhmMCwgMHhmOCwgMHhmY307Ci1jb25zdCBpbnQganNjX3BjcmVfdXRmOF90
YWJsZTNbNl0gPSB7IDB4ZmYsIDB4MWYsIDB4MGYsIDB4MDcsIDB4MDMsIDB4MDF9OwotCi0vKiBU
YWJsZSBvZiB0aGUgbnVtYmVyIG9mIGV4dHJhIGNoYXJhY3RlcnMsIGluZGV4ZWQgYnkgdGhlIGZp
cnN0IGNoYXJhY3RlcgotbWFza2VkIHdpdGggMHgzZi4gVGhlIGhpZ2hlc3QgbnVtYmVyIGZvciBh
IHZhbGlkIFVURi04IGNoYXJhY3RlciBpcyBpbiBmYWN0Ci0weDNkLiAqLwotCi1jb25zdCB1bnNp
Z25lZCBjaGFyIGpzY19wY3JlX3V0ZjhfdGFibGU0WzB4NDBdID0gewotICAxLDEsMSwxLDEsMSwx
LDEsMSwxLDEsMSwxLDEsMSwxLAotICAxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLDEsMSwxLAot
ICAyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLDIsMiwyLAotICAzLDMsMywzLDMsMywzLDMsNCw0
LDQsNCw1LDUsNSw1IH07Ci0KLSNpbmNsdWRlICJjaGFydGFibGVzLmMiCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQyMDUyYjIuLjAwMDAwMDAKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwCisrKyAvZGV2L251bGwKQEAg
LTEsOTkgKzAsMCBAQAotLyogVGhpcyBpcyBKYXZhU2NyaXB0Q29yZSdzIHZhcmlhbnQgb2YgdGhl
IFBDUkUgbGlicmFyeS4gV2hpbGUgdGhpcyBsaWJyYXJ5Ci1zdGFydGVkIG91dCBhcyBhIGNvcHkg
b2YgUENSRSwgbWFueSBvZiB0aGUgZmVhdHVyZXMgb2YgUENSRSBoYXZlIGJlZW4KLXJlbW92ZWQu
IFRoaXMgbGlicmFyeSBub3cgc3VwcG9ydHMgb25seSB0aGUgcmVndWxhciBleHByZXNzaW9uIGZl
YXR1cmVzCi1yZXF1aXJlZCBieSB0aGUgSmF2YVNjcmlwdCBsYW5ndWFnZSBzcGVjaWZpY2F0aW9u
LCBhbmQgaGFzIG9ubHkgdGhlIGZ1bmN0aW9ucwotbmVlZGVkIGJ5IEphdmFTY3JpcHRDb3JlIGFu
ZCB0aGUgcmVzdCBvZiBXZWJLaXQuCi0KLSAgICAgICAgICAgICAgICAgT3JpZ2luYWxseSB3cml0
dGVuIGJ5IFBoaWxpcCBIYXplbAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNiBV
bml2ZXJzaXR5IG9mIENhbWJyaWRnZQotICAgIENvcHlyaWdodCAoQykgMjAwMiwgMjAwNCwgMjAw
NiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0KLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodCBub3RpY2UsCi0gICAgICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLQotICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVy
c2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRoZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
Ci0gICAgICB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgotCi1USElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLUlOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUKLVBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LSovCi0KLQotLyogVGhpcyBtb2R1bGUgY29udGFpbnMgY29kZSBmb3Igc2VhcmNoaW5nIHRoZSB0
YWJsZSBvZiBVbmljb2RlIGNoYXJhY3RlcgotcHJvcGVydGllcy4gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotI2luY2x1ZGUgInVjcGludGVy
bmFsLmgiICAgICAgIC8qIEludGVybmFsIHRhYmxlIGRldGFpbHMgKi8KLSNpbmNsdWRlICJ1Y3B0
YWJsZS5jcHAiICAgICAgICAvKiBUaGUgdGFibGUgaXRzZWxmICovCi0KLS8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgIFNlYXJjaCB0YWJs
ZSBhbmQgcmV0dXJuIG90aGVyIGNhc2UgICAgICAgKgotKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogSWYgdGhlIGdpdmVuIGNoYXJhY3RlciBp
cyBhIGxldHRlciwgYW5kIHRoZXJlIGlzIGFub3RoZXIgY2FzZSBmb3IgdGhlCi1sZXR0ZXIsIHJl
dHVybiB0aGUgb3RoZXIgY2FzZS4gT3RoZXJ3aXNlLCByZXR1cm4gLTEuCi0KLUFyZ3VtZW50czoK
LSAgYyAgICAgICAgICAgdGhlIGNoYXJhY3RlciB2YWx1ZQotCi1SZXR1cm5zOiAgICAgIHRoZSBv
dGhlciBjYXNlIG9yIC0xIGlmIG5vbmUKLSovCi0KLWludCBqc2NfcGNyZV91Y3Bfb3RoZXJjYXNl
KHVuc2lnbmVkIGMpCi17Ci0gICAgaW50IGJvdCA9IDA7Ci0gICAgaW50IHRvcCA9IHNpemVvZih1
Y3BfdGFibGUpIC8gc2l6ZW9mKGNub2RlKTsKLSAgICBpbnQgbWlkOwotICAgIAotICAgIC8qIFRo
ZSB0YWJsZSBpcyBzZWFyY2hlZCB1c2luZyBhIGJpbmFyeSBjaG9wLiBZb3UgbWlnaHQgdGhpbmsg
dGhhdCB1c2luZwotICAgICBpbnRlcm1lZGlhdGUgdmFyaWFibGVzIHRvIGhvbGQgc29tZSBvZiB0
aGUgY29tbW9uIGV4cHJlc3Npb25zIHdvdWxkIHNwZWVkCi0gICAgIHRoaW5ncyB1cCwgYnV0IHRl
c3RzIHdpdGggZ2NjIDMuNC40IG9uIExpbnV4IHNob3dlZCB0aGF0LCBvbiB0aGUgY29udHJhcnks
IGl0Ci0gICAgIG1ha2VzIHRoaW5ncyBhIGxvdCBzbG93ZXIuICovCi0gICAgCi0gICAgZm9yICg7
OykgewotICAgICAgICBpZiAodG9wIDw9IGJvdCkKLSAgICAgICAgICAgIHJldHVybiAtMTsKLSAg
ICAgICAgbWlkID0gKGJvdCArIHRvcCkgPj4gMTsKLSAgICAgICAgaWYgKGMgPT0gKHVjcF90YWJs
ZVttaWRdLmYwICYgZjBfY2hhcm1hc2spKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGlm
IChjIDwgKHVjcF90YWJsZVttaWRdLmYwICYgZjBfY2hhcm1hc2spKQotICAgICAgICAgICAgdG9w
ID0gbWlkOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlmICgodWNwX3RhYmxlW21pZF0u
ZjAgJiBmMF9yYW5nZWZsYWcpICYmIChjIDw9ICh1Y3BfdGFibGVbbWlkXS5mMCAmIGYwX2NoYXJt
YXNrKSArICh1Y3BfdGFibGVbbWlkXS5mMSAmIGYxX3JhbmdlbWFzaykpKQotICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgYm90ID0gbWlkICsgMTsKLSAgICAgICAgfQotICAgIH0K
LSAgICAKLSAgICAvKiBGb3VuZCBhbiBlbnRyeSBpbiB0aGUgdGFibGUuIFJldHVybiAtMSBmb3Ig
YSByYW5nZSBlbnRyeS4gT3RoZXJ3aXNlIHJldHVybgotICAgICB0aGUgb3RoZXIgY2FzZSBpZiB0
aGVyZSBpcyBvbmUsIGVsc2UgLTEuICovCi0gICAgCi0gICAgaWYgKHVjcF90YWJsZVttaWRdLmYw
ICYgZjBfcmFuZ2VmbGFnKQotICAgICAgICByZXR1cm4gLTE7Ci0gICAgCi0gICAgaW50IG9mZnNl
dCA9IHVjcF90YWJsZVttaWRdLmYxICYgZjFfY2FzZW1hc2s7Ci0gICAgaWYgKG9mZnNldCAmIGYx
X2Nhc2VuZWcpCi0gICAgICAgIG9mZnNldCB8PSBmMV9jYXNlbmVnOwotICAgIHJldHVybiAhb2Zm
c2V0ID8gLTEgOiBzdGF0aWNfY2FzdDxpbnQ+KGMgKyBvZmZzZXQpOwotfQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV94Y2xhc3MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV94Y2xhc3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBhMzJlZGQ0Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3Bj
cmVfeGNsYXNzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDExNSArMCwwIEBACi0vKiBUaGlzIGlz
IEphdmFTY3JpcHRDb3JlJ3MgdmFyaWFudCBvZiB0aGUgUENSRSBsaWJyYXJ5LiBXaGlsZSB0aGlz
IGxpYnJhcnkKLXN0YXJ0ZWQgb3V0IGFzIGEgY29weSBvZiBQQ1JFLCBtYW55IG9mIHRoZSBmZWF0
dXJlcyBvZiBQQ1JFIGhhdmUgYmVlbgotcmVtb3ZlZC4gVGhpcyBsaWJyYXJ5IG5vdyBzdXBwb3J0
cyBvbmx5IHRoZSByZWd1bGFyIGV4cHJlc3Npb24gZmVhdHVyZXMKLXJlcXVpcmVkIGJ5IHRoZSBK
YXZhU2NyaXB0IGxhbmd1YWdlIHNwZWNpZmljYXRpb24sIGFuZCBoYXMgb25seSB0aGUgZnVuY3Rp
b25zCi1uZWVkZWQgYnkgSmF2YVNjcmlwdENvcmUgYW5kIHRoZSByZXN0IG9mIFdlYktpdC4KLQot
ICAgICAgICAgICAgICAgICBPcmlnaW5hbGx5IHdyaXR0ZW4gYnkgUGhpbGlwIEhhemVsCi0gICAg
ICAgICAgIENvcHlyaWdodCAoYykgMTk5Ny0yMDA2IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlCi0g
ICAgQ29weXJpZ2h0IChDKSAyMDAyLCAyMDA0LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhl
IG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFT
IElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKi8KLQotLyogVGhpcyBtb2R1bGUgY29u
dGFpbnMgYW4gaW50ZXJuYWwgZnVuY3Rpb24gdGhhdCBpcyB1c2VkIHRvIG1hdGNoIGFuIGV4dGVu
ZGVkCi1jbGFzcyAob25lIHRoYXQgY29udGFpbnMgY2hhcmFjdGVycyB3aG9zZSB2YWx1ZXMgYXJl
ID4gMjU1KS4gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgInBjcmVfaW50ZXJu
YWwuaCIKLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogICAgICAgTWF0Y2ggY2hhcmFjdGVyIGFnYWluc3QgYW4gWENMQVNTICAgICAgICAqCi0q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBU
aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB0byBtYXRjaCBhIGNoYXJhY3RlciBhZ2FpbnN0IGFuIGV4
dGVuZGVkIGNsYXNzIHRoYXQKLW1pZ2h0IGNvbnRhaW4gdmFsdWVzID4gMjU1LgotCi1Bcmd1bWVu
dHM6Ci0gIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIKLSAgZGF0YSAgICAgICAgcG9pbnRzIHRv
IHRoZSBmbGFnIGJ5dGUgb2YgdGhlIFhDTEFTUyBkYXRhCi0KLVJldHVybnM6ICAgICAgdHJ1ZSBp
ZiBjaGFyYWN0ZXIgbWF0Y2hlcywgZWxzZSBmYWxzZQotKi8KLQotLyogR2V0IHRoZSBuZXh0IFVU
Ri04IGNoYXJhY3RlciwgYWR2YW5jaW5nIHRoZSBwb2ludGVyLiBUaGlzIGlzIGNhbGxlZCB3aGVu
IHdlCi0ga25vdyB3ZSBhcmUgaW4gVVRGLTggbW9kZS4gKi8KLQotc3RhdGljIGlubGluZSB2b2lk
IGdldFVURjhDaGFyQW5kQWR2YW5jZVBvaW50ZXIoaW50JiBjLCBjb25zdCB1bnNpZ25lZCBjaGFy
KiYgc3ViamVjdFB0cikKLXsKLSAgICBjID0gKnN1YmplY3RQdHIrKzsKLSAgICBpZiAoKGMgJiAw
eGMwKSA9PSAweGMwKSB7Ci0gICAgICAgIGludCBnY2FhID0ganNjX3BjcmVfdXRmOF90YWJsZTRb
YyAmIDB4M2ZdOyAgLyogTnVtYmVyIG9mIGFkZGl0aW9uYWwgYnl0ZXMgKi8KLSAgICAgICAgaW50
IGdjc3MgPSA2ICogZ2NhYTsKLSAgICAgICAgYyA9IChjICYganNjX3BjcmVfdXRmOF90YWJsZTNb
Z2NhYV0pIDw8IGdjc3M7Ci0gICAgICAgIHdoaWxlIChnY2FhLS0gPiAwKSB7Ci0gICAgICAgICAg
ICBnY3NzIC09IDY7Ci0gICAgICAgICAgICBjIHw9ICgqc3ViamVjdFB0cisrICYgMHgzZikgPDwg
Z2NzczsKLSAgICAgICAgfQotICAgIH0KLX0KLQotYm9vbCBqc2NfcGNyZV94Y2xhc3MoaW50IGMs
IGNvbnN0IHVuc2lnbmVkIGNoYXIqIGRhdGEpCi17Ci0gICAgYm9vbCBuZWdhdGVkID0gKCpkYXRh
ICYgWENMX05PVCk7Ci0gICAgCi0gICAgLyogQ2hhcmFjdGVyIHZhbHVlcyA8IDI1NiBhcmUgbWF0
Y2hlZCBhZ2FpbnN0IGEgYml0bWFwLCBpZiBvbmUgaXMgcHJlc2VudC4gSWYKLSAgICAgbm90LCB3
ZSBzdGlsbCBjYXJyeSBvbiwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgcmFuZ2VzIHRoYXQgc3RhcnQg
YmVsb3cgMjU2IGluIHRoZQotICAgICBhZGRpdGlvbmFsIGRhdGEuICovCi0gICAgCi0gICAgaWYg
KGMgPCAyNTYpIHsKLSAgICAgICAgaWYgKCgqZGF0YSAmIFhDTF9NQVApICE9IDAgJiYgKGRhdGFb
MSArIGMvOF0gJiAoMSA8PCAoYyY3KSkpICE9IDApCi0gICAgICAgICAgICByZXR1cm4gIW5lZ2F0
ZWQ7ICAgLyogY2hhciBmb3VuZCAqLwotICAgIH0KLSAgICAKLSAgICAvKiBGaXJzdCBza2lwIHRo
ZSBiaXQgbWFwIGlmIHByZXNlbnQuIFRoZW4gbWF0Y2ggYWdhaW5zdCB0aGUgbGlzdCBvZiBVbmlj
b2RlCi0gICAgIHByb3BlcnRpZXMgb3IgbGFyZ2UgY2hhcnMgb3IgcmFuZ2VzIHRoYXQgZW5kIHdp
dGggYSBsYXJnZSBjaGFyLiBXZSB3b24ndCBldmVyCi0gICAgIGVuY291bnRlciBYQ0xfUFJPUCBv
ciBYQ0xfTk9UUFJPUCB3aGVuIFVDUCBzdXBwb3J0IGlzIG5vdCBjb21waWxlZC4gKi8KLSAgICAK
LSAgICBpZiAoKCpkYXRhKysgJiBYQ0xfTUFQKSAhPSAwKQotICAgICAgICBkYXRhICs9IDMyOwot
ICAgIAotICAgIGludCB0OwotICAgIHdoaWxlICgodCA9ICpkYXRhKyspICE9IFhDTF9FTkQpIHsK
LSAgICAgICAgaWYgKHQgPT0gWENMX1NJTkdMRSkgewotICAgICAgICAgICAgaW50IHg7Ci0gICAg
ICAgICAgICBnZXRVVEY4Q2hhckFuZEFkdmFuY2VQb2ludGVyKHgsIGRhdGEpOwotICAgICAgICAg
ICAgaWYgKGMgPT0geCkKLSAgICAgICAgICAgICAgICByZXR1cm4gIW5lZ2F0ZWQ7Ci0gICAgICAg
IH0KLSAgICAgICAgZWxzZSBpZiAodCA9PSBYQ0xfUkFOR0UpIHsKLSAgICAgICAgICAgIGludCB4
LCB5OwotICAgICAgICAgICAgZ2V0VVRGOENoYXJBbmRBZHZhbmNlUG9pbnRlcih4LCBkYXRhKTsK
LSAgICAgICAgICAgIGdldFVURjhDaGFyQW5kQWR2YW5jZVBvaW50ZXIoeSwgZGF0YSk7Ci0gICAg
ICAgICAgICBpZiAoYyA+PSB4ICYmIGMgPD0geSkKLSAgICAgICAgICAgICAgICByZXR1cm4gIW5l
Z2F0ZWQ7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIG5lZ2F0ZWQ7ICAgLyog
Y2hhciBkaWQgbm90IG1hdGNoICovCi19CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcGNyZS91Y3BpbnRlcm5hbC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvdWNwaW50
ZXJuYWwuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzhiYzRhYS4uMDAwMDAwMAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS91Y3BpbnRlcm5hbC5oCisrKyAvZGV2L251
bGwKQEAgLTEsMTI2ICswLDAgQEAKLS8qIFRoaXMgaXMgSmF2YVNjcmlwdENvcmUncyB2YXJpYW50
IG9mIHRoZSBQQ1JFIGxpYnJhcnkuIFdoaWxlIHRoaXMgbGlicmFyeQotc3RhcnRlZCBvdXQgYXMg
YSBjb3B5IG9mIFBDUkUsIG1hbnkgb2YgdGhlIGZlYXR1cmVzIG9mIFBDUkUgaGF2ZSBiZWVuCi1y
ZW1vdmVkLiBUaGlzIGxpYnJhcnkgbm93IHN1cHBvcnRzIG9ubHkgdGhlIHJlZ3VsYXIgZXhwcmVz
c2lvbiBmZWF0dXJlcwotcmVxdWlyZWQgYnkgdGhlIEphdmFTY3JpcHQgbGFuZ3VhZ2Ugc3BlY2lm
aWNhdGlvbiwgYW5kIGhhcyBvbmx5IHRoZSBmdW5jdGlvbnMKLW5lZWRlZCBieSBKYXZhU2NyaXB0
Q29yZSBhbmQgdGhlIHJlc3Qgb2YgV2ViS2l0LgotCi0gICAgICAgICAgICAgICAgIE9yaWdpbmFs
bHkgd3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3
LTIwMDYgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDIsIDIw
MDQsIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotCi0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkg
b2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAg
ICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lv
bi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMg
QU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
Ci1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwot
Ci0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAg
ICAgICAgICAgVW5pY29kZSBQcm9wZXJ0eSBUYWJsZSBoYW5kbGVyICAgICAgICoKLSoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIEludGVybmFs
IGhlYWRlciBmaWxlIGRlZmluaW5nIHRoZSBsYXlvdXQgb2YgdGhlIGJpdHMgaW4gZWFjaCBwYWly
IG9mIDMyLWJpdAotd29yZHMgdGhhdCBmb3JtIGEgZGF0YSBpdGVtIGluIHRoZSB0YWJsZS4gKi8K
LQotdHlwZWRlZiBzdHJ1Y3QgY25vZGUgewotICB1bnNpZ25lZCBmMDsKLSAgdW5zaWduZWQgZjE7
Ci19IGNub2RlOwotCi0vKiBUaGluZ3MgZm9yIHRoZSBmMCBmaWVsZCAqLwotCi0jZGVmaW5lIGYw
X3NjcmlwdG1hc2sgICAweGZmMDAwMDAwICAvKiBNYXNrIGZvciBzY3JpcHQgZmllbGQgKi8KLSNk
ZWZpbmUgZjBfc2NyaXB0c2hpZnQgICAgICAgICAgMjQgIC8qIFNoaWZ0IGZvciBzY3JpcHQgdmFs
dWUgKi8KLSNkZWZpbmUgZjBfcmFuZ2VmbGFnICAgIDB4MDBmMDAwMDAgIC8qIEZsYWcgZm9yIGEg
cmFuZ2UgaXRlbSAqLwotI2RlZmluZSBmMF9jaGFybWFzayAgICAgMHgwMDFmZmZmZiAgLyogTWFz
ayBmb3IgY29kZSBwb2ludCB2YWx1ZSAqLwotCi0vKiBUaGluZ3MgZm9yIHRoZSBmMSBmaWVsZCAq
LwotCi0jZGVmaW5lIGYxX3R5cGVtYXNrICAgICAweGZjMDAwMDAwICAvKiBNYXNrIGZvciBjaGFy
IHR5cGUgZmllbGQgKi8KLSNkZWZpbmUgZjFfdHlwZXNoaWZ0ICAgICAgICAgICAgMjYgIC8qIFNo
aWZ0IGZvciB0aGUgdHlwZSBmaWVsZCAqLwotI2RlZmluZSBmMV9yYW5nZW1hc2sgICAgMHgwMDAw
ZmZmZiAgLyogTWFzayBmb3IgYSByYW5nZSBvZmZzZXQgKi8KLSNkZWZpbmUgZjFfY2FzZW1hc2sg
ICAgIDB4MDAwMGZmZmYgIC8qIE1hc2sgZm9yIGEgY2FzZSBvZmZzZXQgKi8KLSNkZWZpbmUgZjFf
Y2FzZW5lZyAgICAgIDB4ZmZmZjgwMDAgIC8qIEJpdHMgZm9yIG5lZ2F0aW9uICovCi0KLS8qIFRo
ZSBkYXRhIGNvbnNpc3RzIG9mIGEgdmVjdG9yIG9mIHN0cnVjdHVyZXMgb2YgdHlwZSBjbm9kZS4g
VGhlIHR3byB1bnNpZ25lZAotMzItYml0IGludGVnZXJzIGFyZSB1c2VkIGFzIGZvbGxvd3M6Ci0K
LShmMCkgKDEpIFRoZSBtb3N0IHNpZ25pZmljYW50IGJ5dGUgaG9sZHMgdGhlIHNjcmlwdCBudW1i
ZXIuIFRoZSBudW1iZXJzIGFyZQotICAgICAgICAgZGVmaW5lZCBieSB0aGUgZW51bSBpbiB1Y3Au
aC4KLQotICAgICAoMikgVGhlIDB4MDA4MDAwMDAgYml0IGlzIHNldCBpZiB0aGlzIGVudHJ5IGRl
ZmluZXMgYSByYW5nZSBvZiBjaGFyYWN0ZXJzLgotICAgICAgICAgSXQgaXMgbm90IHNldCBpZiB0
aGlzIGVudHJ5IGRlZmluZXMgYSBzaW5nbGUgY2hhcmFjdGVyCi0KLSAgICAgKDMpIFRoZSAweDAw
NjAwMDAwIGJpdHMgYXJlIHNwYXJlLgotCi0gICAgICg0KSBUaGUgMHgwMDFmZmZmZiBiaXRzIGNv
bnRhaW4gdGhlIGNvZGUgcG9pbnQuIE5vIFVuaWNvZGUgY29kZSBwb2ludCB3aWxsCi0gICAgICAg
ICBldmVyIGJlIGdyZWF0ZXIgdGhhbiAweDAwMTBmZmZmLCBzbyB0aGlzIHNob3VsZCBiZSBPSyBm
b3IgZXZlci4KLQotKGYxKSAoMSkgVGhlIDB4ZmMwMDAwMDAgYml0cyBjb250YWluIHRoZSBjaGFy
YWN0ZXIgdHlwZSBudW1iZXIuIFRoZSBudW1iZXJzIGFyZQotICAgICAgICAgZGVmaW5lZCBieSBh
biBlbnVtIGluIHVjcC5oLgotCi0gICAgICgyKSBUaGUgMHgwM2ZmMDAwMCBiaXRzIGFyZSBzcGFy
ZS4KLQotICAgICAoMykgVGhlIDB4MDAwMGZmZmYgYml0cyBjb250YWluIEVJVEhFUiB0aGUgdW5z
aWduZWQgb2Zmc2V0IHRvIHRoZSB0b3Agb2YKLSAgICAgICAgIHJhbmdlIGlmIHRoaXMgZW50cnkg
ZGVmaW5lcyBhIHJhbmdlLCBPUiB0aGUgKnNpZ25lZCogb2Zmc2V0IHRvIHRoZQotICAgICAgICAg
Y2hhcmFjdGVyJ3MgIm90aGVyIGNhc2UiIHBhcnRuZXIgaWYgdGhpcyBlbnRyeSBkZWZpbmVzIGEg
c2luZ2xlCi0gICAgICAgICBjaGFyYWN0ZXIuIFRoZXJlIGlzIG5vIHBhcnRuZXIgaWYgdGhlIHZh
bHVlIGlzIHplcm8uCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLXwgc2NyaXB0ICg4KSB8Lnwu
fC58IGNvZGVwb2ludCAoMjEpIHx8IHR5cGUgKDYpIHwufC58IHNwYXJlICg4KSB8IG9mZnNldCAo
MTYpIHwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAgICAgICAgICAgICAgfCB8IHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB8IHwKLSAgICAgICAgICAgICAgfCB8IHwtPiBzcGFyZSAg
ICAgICAgICAgICAgICAgICAgICB8IHwtPiBzcGFyZQotICAgICAgICAgICAgICB8IHwgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwKLSAgICAgICAgICAgICAgfCB8LT4gc3BhcmUgICAg
ICAgICAgICAgICAgICAgICAgICB8LT4gc3BhcmUKLSAgICAgICAgICAgICAgfAotICAgICAgICAg
ICAgICB8LT4gcmFuZ2UgZmxhZwotCi1UaGUgdXBwZXIvbG93ZXIgY2FzaW5nIGluZm9ybWF0aW9u
IGlzIHNldCBvbmx5IGZvciBjaGFyYWN0ZXJzIHRoYXQgY29tZSBpbgotcGFpcnMuIFRoZSBub24t
b25lLXRvLW9uZSBtYXBwaW5ncyBpbiB0aGUgVW5pY29kZSBkYXRhIGFyZSBpZ25vcmVkLgotCi1X
aGVuIHNlYXJjaGluZyB0aGUgZGF0YSwgcHJvY2VlZCBhcyBmb2xsb3dzOgotCi0oMSkgU2V0IHVw
IGZvciBhIGJpbmFyeSBjaG9wIHNlYXJjaC4KLQotKDIpIElmIHRoZSB0b3AgaXMgbm90IGdyZWF0
ZXIgdGhhbiB0aGUgYm90dG9tLCB0aGUgY2hhcmFjdGVyIGlzIG5vdCBpbiB0aGUKLSAgICB0YWJs
ZS4gSXRzIHR5cGUgbXVzdCB0aGVyZWZvcmUgYmUgIkNuIiAoIlVuZGVmaW5lZCIpLgotCi0oMykg
RmluZCB0aGUgbWlkZGxlIHZlY3RvciBlbGVtZW50LgotCi0oNCkgRXh0cmFjdCB0aGUgY29kZSBw
b2ludCBhbmQgY29tcGFyZS4gSWYgZXF1YWwsIHdlIGFyZSBkb25lLgotCi0oNSkgSWYgdGhlIHRl
c3QgY2hhcmFjdGVyIGlzIHNtYWxsZXIsIHNldCB0aGUgdG9wIHRvIHRoZSBjdXJyZW50IHBvaW50
LCBhbmQKLSAgICBnb3RvICgyKS4KLQotKDYpIElmIHRoZSBjdXJyZW50IGVudHJ5IGRlZmluZXMg
YSByYW5nZSwgY29tcHV0ZSB0aGUgbGFzdCBjaGFyYWN0ZXIgYnkgYWRkaW5nCi0gICAgdGhlIG9m
ZnNldCwgYW5kIHNlZSBpZiB0aGUgdGVzdCBjaGFyYWN0ZXIgaXMgd2l0aGluIHRoZSByYW5nZS4g
SWYgaXQgaXMsCi0gICAgd2UgYXJlIGRvbmUuCi0KLSg3KSBPdGhlcndpc2UsIHNldCB0aGUgYm90
dG9tIHRvIG9uZSBlbGVtZW50IHBhc3QgdGhlIGN1cnJlbnQgcG9pbnQgYW5kIGdvdG8KLSAgICAo
MikuCi0qLwotCi0vKiBFbmQgb2YgdWNwaW50ZXJuYWwuaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BjcmUvdWNwdGFibGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3BjcmUvdWNwdGFibGUuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMTFmN2Y1
Li4wMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3VjcHRhYmxlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDI5NjggKzAsMCBAQAotLyogVGhpcyBzb3VyY2UgbW9kdWxlIGlz
IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gdGhlIFVuaWNvZGUKLXByb3BlcnR5IHRhYmxl
LiBTZWUgdWNwaW50ZXJuYWwuaCBmb3IgYSBkZXNjcmlwdGlvbiBvZiB0aGUgbGF5b3V0LiAqLwot
Ci1zdGF0aWMgY29uc3QgY25vZGUgdWNwX3RhYmxlW10gPSB7Ci0gIHsgMHgwOTgwMDAwMCwgMHgw
MDAwMDAxZiB9LAotICB7IDB4MDkwMDAwMjAsIDB4NzQwMDAwMDAgfSwKLSAgeyAweDA5ODAwMDIx
LCAweDU0MDAwMDAyIH0sCi0gIHsgMHgwOTAwMDAyNCwgMHg1YzAwMDAwMCB9LAotICB7IDB4MDk4
MDAwMjUsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5MDAwMDI4LCAweDU4MDAwMDAwIH0sCi0gIHsg
MHgwOTAwMDAyOSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwMmEsIDB4NTQwMDAwMDAgfSwK
LSAgeyAweDA5MDAwMDJiLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDAyYywgMHg1NDAwMDAw
MCB9LAotICB7IDB4MDkwMDAwMmQsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDA5ODAwMDJlLCAweDU0
MDAwMDAxIH0sCi0gIHsgMHgwOTgwMDAzMCwgMHgzNDAwMDAwOSB9LAotICB7IDB4MDk4MDAwM2Es
IDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5ODAwMDNjLCAweDY0MDAwMDAyIH0sCi0gIHsgMHgwOTgw
MDAzZiwgMHg1NDAwMDAwMSB9LAotICB7IDB4MjEwMDAwNDEsIDB4MjQwMDAwMjAgfSwKLSAgeyAw
eDIxMDAwMDQyLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0MywgMHgyNDAwMDAyMCB9LAot
ICB7IDB4MjEwMDAwNDQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDQ1LCAweDI0MDAwMDIw
IH0sCi0gIHsgMHgyMTAwMDA0NiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNDcsIDB4MjQw
MDAwMjAgfSwKLSAgeyAweDIxMDAwMDQ4LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0OSwg
MHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNGEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAw
MDRiLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA0YywgMHgyNDAwMDAyMCB9LAotICB7IDB4
MjEwMDAwNGQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDRlLCAweDI0MDAwMDIwIH0sCi0g
IHsgMHgyMTAwMDA0ZiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNTAsIDB4MjQwMDAwMjAg
fSwKLSAgeyAweDIxMDAwMDUxLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1MiwgMHgyNDAw
MDAyMCB9LAotICB7IDB4MjEwMDAwNTMsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDU0LCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDA1NSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAw
NTYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMDU3LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgy
MTAwMDA1OCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwNTksIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDIxMDAwMDVhLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwOTAwMDA1YiwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMDAwNWMsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDVkLCAweDQ4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMDA1ZSwgMHg2MDAwMDAwMCB9LAotICB7IDB4MDkwMDAwNWYsIDB4
NDAwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDYwLCAweDYwMDAwMDAwIH0sCi0gIHsgMHgyMTAwMDA2
MSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNjIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIx
MDAwMDYzLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2NCwgMHgxNDAwZmZlMCB9LAotICB7
IDB4MjEwMDAwNjUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDY2LCAweDE0MDBmZmUwIH0s
Ci0gIHsgMHgyMTAwMDA2NywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNjgsIDB4MTQwMGZm
ZTAgfSwKLSAgeyAweDIxMDAwMDY5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2YSwgMHgx
NDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNmIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDZj
LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA2ZCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEw
MDAwNmUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDZmLCAweDE0MDBmZmUwIH0sCi0gIHsg
MHgyMTAwMDA3MCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzEsIDB4MTQwMGZmZTAgfSwK
LSAgeyAweDIxMDAwMDcyLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3MywgMHgxNDAwZmZl
MCB9LAotICB7IDB4MjEwMDAwNzQsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDc1LCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDA3NiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwNzcs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMDc4LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAw
MDA3OSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwN2EsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDA5MDAwMDdiLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDA3YywgMHg2NDAwMDAwMCB9LAot
ICB7IDB4MDkwMDAwN2QsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMDdlLCAweDY0MDAwMDAw
IH0sCi0gIHsgMHgwOTgwMDA3ZiwgMHgwMDAwMDAyMCB9LAotICB7IDB4MDkwMDAwYTAsIDB4NzQw
MDAwMDAgfSwKLSAgeyAweDA5MDAwMGExLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMDBhMiwg
MHg1YzAwMDAwMyB9LAotICB7IDB4MDk4MDAwYTYsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAw
MGE4LCAweDYwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBhOSwgMHg2ODAwMDAwMCB9LAotICB7IDB4
MjEwMDAwYWEsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGFiLCAweDUwMDAwMDAwIH0sCi0g
IHsgMHgwOTAwMDBhYywgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMDAwYWQsIDB4MDQwMDAwMDAg
fSwKLSAgeyAweDA5MDAwMGFlLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBhZiwgMHg2MDAw
MDAwMCB9LAotICB7IDB4MDkwMDAwYjAsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGIxLCAw
eDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMDBiMiwgMHgzYzAwMDAwMSB9LAotICB7IDB4MDkwMDAw
YjQsIDB4NjAwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGI1LCAweDE0MDAwMmU3IH0sCi0gIHsgMHgw
OTAwMDBiNiwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDkwMDAwYjcsIDB4NTQwMDAwMDAgfSwKLSAg
eyAweDA5MDAwMGI4LCAweDYwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMDBiOSwgMHgzYzAwMDAwMCB9
LAotICB7IDB4MjEwMDAwYmEsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5MDAwMGJiLCAweDRjMDAw
MDAwIH0sCi0gIHsgMHgwOTgwMDBiYywgMHgzYzAwMDAwMiB9LAotICB7IDB4MDkwMDAwYmYsIDB4
NTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMGMwLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBj
MSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIx
MDAwMGMzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjNCwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MjEwMDAwYzUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGM2LCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgyMTAwMDBjNywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwYzgsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDAwMGM5LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjYSwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMDAwY2IsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGNj
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBjZCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MDAwY2UsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGNmLCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgyMTAwMDBkMCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZDEsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDIxMDAwMGQyLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkMywgMHgyNDAwMDAy
MCB9LAotICB7IDB4MjEwMDAwZDQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGQ1LCAweDI0
MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkNiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MDkwMDAwZDcs
IDB4NjQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMGQ4LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAw
MDBkOSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMDAwZGEsIDB4MjQwMDAwMjAgfSwKLSAgeyAw
eDIxMDAwMGRiLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwMDBkYywgMHgyNDAwMDAyMCB9LAot
ICB7IDB4MjEwMDAwZGQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDAwMGRlLCAweDI0MDAwMDIw
IH0sCi0gIHsgMHgyMTAwMDBkZiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAwZTAsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDIxMDAwMGUxLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlMiwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZTMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAw
MGU0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlNSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MjEwMDAwZTYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGU3LCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwMDBlOCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZTksIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDAwMGVhLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlYiwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMDAwZWMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGVkLCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBlZSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAw
ZWYsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGYwLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgy
MTAwMDBmMSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZjIsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDIxMDAwMGYzLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmNCwgMHgxNDAwZmZlMCB9
LAotICB7IDB4MjEwMDAwZjUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGY2LCAweDE0MDBm
ZmUwIH0sCi0gIHsgMHgwOTAwMDBmNywgMHg2NDAwMDAwMCB9LAotICB7IDB4MjEwMDAwZjgsIDB4
MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGY5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBm
YSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMDAwZmIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIx
MDAwMGZjLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwMDBmZCwgMHgxNDAwZmZlMCB9LAotICB7
IDB4MjEwMDAwZmUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDAwMGZmLCAweDE0MDAwMDc5IH0s
Ci0gIHsgMHgyMTAwMDEwMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMDEsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMTAyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEwMywgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTA1
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxMDcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTA4LCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDEwOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMGEsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMTBiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEwYywgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxMGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTBlLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEwZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMTAs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTExLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDExMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMTE0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExNSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAxMTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTE3LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMDExOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMTksIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMTFhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDExYiwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MTFkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDExZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAxMWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTIwLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDEyMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMjIsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMTIzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEyNCwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAxMjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTI2LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEyNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
MjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTI5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDEyYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxMmIsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMTJjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEyZCwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAxMmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTJmLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDEzMCwgMHgyNDAwZmYzOSB9LAotICB7IDB4MjEwMDAxMzEsIDB4
MTQwMGZmMTggfSwKLSAgeyAweDIxMDAwMTMyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEz
MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxMzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMTM1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEzNiwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAxMzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTM4LCAweDE0MDAwMDAwIH0s
Ci0gIHsgMHgyMTAwMDEzOSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxM2EsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMTNiLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDEzYywgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxM2QsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTNl
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDEzZiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxNDAsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTQxLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMDE0MiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNDMsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAwMTQ0LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0NSwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxNDYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTQ3LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE0OCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNDks
IDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMTRhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MDE0YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAwMTRkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE0ZSwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAxNGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTUwLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMDE1MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNTIsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMTUzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE1NCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MTU2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1NywgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDAxNTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTU5LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDE1YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNWIsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAwMTVjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE1ZCwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDAxNWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTVmLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAx
NjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTYyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMDE2MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNjQsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAwMTY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2NiwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDAxNjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTY4LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDE2OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNmEsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTZiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE2
YywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNmQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMTZlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE2ZiwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxNzAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTcxLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDE3MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxNzMsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMTc0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3NSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxNzYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTc3
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE3OCwgMHgyNDAwZmY4NyB9LAotICB7IDB4MjEw
MDAxNzksIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTdhLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDE3YiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxN2MsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMTdkLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE3ZSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAxN2YsIDB4MTQwMGZlZDQgfSwKLSAgeyAweDIxMDAwMTgwLCAweDE0
MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDE4MSwgMHgyNDAwMDBkMiB9LAotICB7IDB4MjEwMDAxODIs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTgzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDE4NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxODUsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMTg2LCAweDI0MDAwMGNlIH0sCi0gIHsgMHgyMTAwMDE4NywgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAxODgsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMTg5LCAweDI0MDAwMGNk
IH0sCi0gIHsgMHgyMTAwMDE4YSwgMHgyNDAwMDBjZCB9LAotICB7IDB4MjEwMDAxOGIsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMThjLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDE4ZCwg
MHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAxOGUsIDB4MjQwMDAwNGYgfSwKLSAgeyAweDIxMDAw
MThmLCAweDI0MDAwMGNhIH0sCi0gIHsgMHgyMTAwMDE5MCwgMHgyNDAwMDBjYiB9LAotICB7IDB4
MjEwMDAxOTEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMTkyLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMDE5MywgMHgyNDAwMDBjZCB9LAotICB7IDB4MjEwMDAxOTQsIDB4MjQwMDAwY2Yg
fSwKLSAgeyAweDIxMDAwMTk1LCAweDE0MDAwMDYxIH0sCi0gIHsgMHgyMTAwMDE5NiwgMHgyNDAw
MDBkMyB9LAotICB7IDB4MjEwMDAxOTcsIDB4MjQwMDAwZDEgfSwKLSAgeyAweDIxMDAwMTk4LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDE5OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
OWEsIDB4MTQwMDAwYTMgfSwKLSAgeyAweDIxMDAwMTliLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgy
MTAwMDE5YywgMHgyNDAwMDBkMyB9LAotICB7IDB4MjEwMDAxOWQsIDB4MjQwMDAwZDUgfSwKLSAg
eyAweDIxMDAwMTllLCAweDE0MDAwMDgyIH0sCi0gIHsgMHgyMTAwMDE5ZiwgMHgyNDAwMDBkNiB9
LAotICB7IDB4MjEwMDAxYTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWExLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDFhMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYTMsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWE0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFh
NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxYTYsIDB4MjQwMDAwZGEgfSwKLSAgeyAweDIx
MDAwMWE3LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFhOCwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxYTksIDB4MjQwMDAwZGEgfSwKLSAgeyAweDIxODAwMWFhLCAweDE0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMDFhYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYWQsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMWFlLCAweDI0MDAwMGRhIH0sCi0gIHsgMHgyMTAwMDFhZiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYjAsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWIx
LCAweDI0MDAwMGQ5IH0sCi0gIHsgMHgyMTAwMDFiMiwgMHgyNDAwMDBkOSB9LAotICB7IDB4MjEw
MDAxYjMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWI0LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDFiNSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxYjYsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMWI3LCAweDI0MDAwMGRiIH0sCi0gIHsgMHgyMTAwMDFiOCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxYjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWJhLCAweDE0
MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDFiYiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MjEwMDAxYmMs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWJkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDFiZSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAxYmYsIDB4MTQwMDAwMzggfSwKLSAgeyAw
eDIxODAwMWMwLCAweDFjMDAwMDAzIH0sCi0gIHsgMHgyMTAwMDFjNCwgMHgyNDAwMDAwMiB9LAot
ICB7IDB4MjEwMDAxYzUsIDB4MjAwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWM2LCAweDE0MDBmZmZl
IH0sCi0gIHsgMHgyMTAwMDFjNywgMHgyNDAwMDAwMiB9LAotICB7IDB4MjEwMDAxYzgsIDB4MjAw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMWM5LCAweDE0MDBmZmZlIH0sCi0gIHsgMHgyMTAwMDFjYSwg
MHgyNDAwMDAwMiB9LAotICB7IDB4MjEwMDAxY2IsIDB4MjAwMGZmZmYgfSwKLSAgeyAweDIxMDAw
MWNjLCAweDE0MDBmZmZlIH0sCi0gIHsgMHgyMTAwMDFjZCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAxY2UsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWNmLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDFkMCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZDEsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMWQyLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFkMywgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAxZDQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWQ1LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFkNiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAx
ZDcsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWQ4LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDFkOSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZGEsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMWRiLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFkYywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAxZGQsIDB4MTQwMGZmYjEgfSwKLSAgeyAweDIxMDAwMWRlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMDFkZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZTAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWUxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFl
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAwMWU0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlNSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDAxZTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWU3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMDFlOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZTksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAwMWVhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFlYiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDAxZWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWVk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDFlZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDAxZWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWYwLCAweDE0MDAwMDAwIH0sCi0gIHsg
MHgyMTAwMDFmMSwgMHgyNDAwMDAwMiB9LAotICB7IDB4MjEwMDAxZjIsIDB4MjAwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMWYzLCAweDE0MDBmZmZlIH0sCi0gIHsgMHgyMTAwMDFmNCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDAxZjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMWY2LCAweDI0
MDBmZjlmIH0sCi0gIHsgMHgyMTAwMDFmNywgMHgyNDAwZmZjOCB9LAotICB7IDB4MjEwMDAxZjgs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MDFmYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAxZmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAwMWZjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDFmZCwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDAxZmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMWZmLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMDIwMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMDEsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAwMjAyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIwMywg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAw
MjA1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDAyMDcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjA4LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMDIwOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMGEsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAwMjBiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIwYywgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDAyMGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjBlLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIwZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAy
MTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjExLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMDIxMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMTMsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAwMjE0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIxNSwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDAyMTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjE3LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMDIxOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMTksIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjFhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIx
YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDAyMWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMjFkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIxZSwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDAyMWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjIwLCAweDI0MDBmZjdlIH0s
Ci0gIHsgMHgyMTAwMDIyMSwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAyMjIsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAwMjIzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIyNCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjI2
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDAyMjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjI5LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMDIyYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMmIsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAwMjJjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMDIyZCwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDAyMmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjJmLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMDIzMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyMzEs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjMyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MDIzMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjE4MDAyMzQsIDB4MTQwMDAwMDUgfSwKLSAgeyAw
eDIxMDAwMjNhLCAweDI0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDIzYiwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDAyM2MsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAwMjNkLCAweDI0MDBmZjVk
IH0sCi0gIHsgMHgyMTAwMDIzZSwgMHgyNDAwMDAwMCB9LAotICB7IDB4MjE4MDAyM2YsIDB4MTQw
MDAwMDEgfSwKLSAgeyAweDIxMDAwMjQxLCAweDI0MDAwMDUzIH0sCi0gIHsgMHgyMTgwMDI1MCwg
MHgxNDAwMDAwMiB9LAotICB7IDB4MjEwMDAyNTMsIDB4MTQwMGZmMmUgfSwKLSAgeyAweDIxMDAw
MjU0LCAweDE0MDBmZjMyIH0sCi0gIHsgMHgyMTAwMDI1NSwgMHgxNDAwMDAwMCB9LAotICB7IDB4
MjEwMDAyNTYsIDB4MTQwMGZmMzMgfSwKLSAgeyAweDIxMDAwMjU3LCAweDE0MDBmZjMzIH0sCi0g
IHsgMHgyMTAwMDI1OCwgMHgxNDAwMDAwMCB9LAotICB7IDB4MjEwMDAyNTksIDB4MTQwMGZmMzYg
fSwKLSAgeyAweDIxMDAwMjVhLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgyMTAwMDI1YiwgMHgxNDAw
ZmYzNSB9LAotICB7IDB4MjE4MDAyNWMsIDB4MTQwMDAwMDMgfSwKLSAgeyAweDIxMDAwMjYwLCAw
eDE0MDBmZjMzIH0sCi0gIHsgMHgyMTgwMDI2MSwgMHgxNDAwMDAwMSB9LAotICB7IDB4MjEwMDAy
NjMsIDB4MTQwMGZmMzEgfSwKLSAgeyAweDIxODAwMjY0LCAweDE0MDAwMDAzIH0sCi0gIHsgMHgy
MTAwMDI2OCwgMHgxNDAwZmYyZiB9LAotICB7IDB4MjEwMDAyNjksIDB4MTQwMGZmMmQgfSwKLSAg
eyAweDIxODAwMjZhLCAweDE0MDAwMDA0IH0sCi0gIHsgMHgyMTAwMDI2ZiwgMHgxNDAwZmYyZCB9
LAotICB7IDB4MjE4MDAyNzAsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDIxMDAwMjcyLCAweDE0MDBm
ZjJiIH0sCi0gIHsgMHgyMTgwMDI3MywgMHgxNDAwMDAwMSB9LAotICB7IDB4MjEwMDAyNzUsIDB4
MTQwMGZmMmEgfSwKLSAgeyAweDIxODAwMjc2LCAweDE0MDAwMDA5IH0sCi0gIHsgMHgyMTAwMDI4
MCwgMHgxNDAwZmYyNiB9LAotICB7IDB4MjE4MDAyODEsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDIx
MDAwMjgzLCAweDE0MDBmZjI2IH0sCi0gIHsgMHgyMTgwMDI4NCwgMHgxNDAwMDAwMyB9LAotICB7
IDB4MjEwMDAyODgsIDB4MTQwMGZmMjYgfSwKLSAgeyAweDIxMDAwMjg5LCAweDE0MDAwMDAwIH0s
Ci0gIHsgMHgyMTAwMDI4YSwgMHgxNDAwZmYyNyB9LAotICB7IDB4MjEwMDAyOGIsIDB4MTQwMGZm
MjcgfSwKLSAgeyAweDIxODAwMjhjLCAweDE0MDAwMDA1IH0sCi0gIHsgMHgyMTAwMDI5MiwgMHgx
NDAwZmYyNSB9LAotICB7IDB4MjEwMDAyOTMsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDIxMDAwMjk0
LCAweDE0MDBmZmFkIH0sCi0gIHsgMHgyMTgwMDI5NSwgMHgxNDAwMDAxYSB9LAotICB7IDB4MjE4
MDAyYjAsIDB4MTgwMDAwMTEgfSwKLSAgeyAweDA5ODAwMmMyLCAweDYwMDAwMDAzIH0sCi0gIHsg
MHgwOTgwMDJjNiwgMHgxODAwMDAwYiB9LAotICB7IDB4MDk4MDAyZDIsIDB4NjAwMDAwMGQgfSwK
LSAgeyAweDIxODAwMmUwLCAweDE4MDAwMDA0IH0sCi0gIHsgMHgwOTgwMDJlNSwgMHg2MDAwMDAw
OCB9LAotICB7IDB4MDkwMDAyZWUsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDA5ODAwMmVmLCAweDYw
MDAwMDEwIH0sCi0gIHsgMHgxYjgwMDMwMCwgMHgzMDAwMDA0NCB9LAotICB7IDB4MWIwMDAzNDUs
IDB4MzAwMDAwNTQgfSwKLSAgeyAweDFiODAwMzQ2LCAweDMwMDAwMDI5IH0sCi0gIHsgMHgxMzgw
MDM3NCwgMHg2MDAwMDAwMSB9LAotICB7IDB4MTMwMDAzN2EsIDB4MTgwMDAwMDAgfSwKLSAgeyAw
eDA5MDAwMzdlLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgxMzgwMDM4NCwgMHg2MDAwMDAwMSB9LAot
ICB7IDB4MTMwMDAzODYsIDB4MjQwMDAwMjYgfSwKLSAgeyAweDA5MDAwMzg3LCAweDU0MDAwMDAw
IH0sCi0gIHsgMHgxMzAwMDM4OCwgMHgyNDAwMDAyNSB9LAotICB7IDB4MTMwMDAzODksIDB4MjQw
MDAwMjUgfSwKLSAgeyAweDEzMDAwMzhhLCAweDI0MDAwMDI1IH0sCi0gIHsgMHgxMzAwMDM4Yywg
MHgyNDAwMDA0MCB9LAotICB7IDB4MTMwMDAzOGUsIDB4MjQwMDAwM2YgfSwKLSAgeyAweDEzMDAw
MzhmLCAweDI0MDAwMDNmIH0sCi0gIHsgMHgxMzAwMDM5MCwgMHgxNDAwMDAwMCB9LAotICB7IDB4
MTMwMDAzOTEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzkyLCAweDI0MDAwMDIwIH0sCi0g
IHsgMHgxMzAwMDM5MywgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOTQsIDB4MjQwMDAwMjAg
fSwKLSAgeyAweDEzMDAwMzk1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5NiwgMHgyNDAw
MDAyMCB9LAotICB7IDB4MTMwMDAzOTcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzk4LCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5OSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAz
OWEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwMzliLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgx
MzAwMDM5YywgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzOWQsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDEzMDAwMzllLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDM5ZiwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MTMwMDAzYTAsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2ExLCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgxMzAwMDNhMywgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTQsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2E1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNh
NiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MTMwMDAzYTcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEz
MDAwM2E4LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgxMzAwMDNhOSwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MTMwMDAzYWEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDEzMDAwM2FiLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgxMzAwMDNhYywgMHgxNDAwZmZkYSB9LAotICB7IDB4MTMwMDAzYWQsIDB4MTQwMGZm
ZGIgfSwKLSAgeyAweDEzMDAwM2FlLCAweDE0MDBmZmRiIH0sCi0gIHsgMHgxMzAwMDNhZiwgMHgx
NDAwZmZkYiB9LAotICB7IDB4MTMwMDAzYjAsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAwM2Ix
LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiMiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMw
MDAzYjMsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2I0LCAweDE0MDBmZmUwIH0sCi0gIHsg
MHgxMzAwMDNiNSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYjYsIDB4MTQwMGZmZTAgfSwK
LSAgeyAweDEzMDAwM2I3LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiOCwgMHgxNDAwZmZl
MCB9LAotICB7IDB4MTMwMDAzYjksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2JhLCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNiYiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYmMs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2JkLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAw
MDNiZSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYmYsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDEzMDAwM2MwLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjMSwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MTMwMDAzYzIsIDB4MTQwMGZmZTEgfSwKLSAgeyAweDEzMDAwM2MzLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgxMzAwMDNjNCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYzUsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDEzMDAwM2M2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjNywg
MHgxNDAwZmZlMCB9LAotICB7IDB4MTMwMDAzYzgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAw
M2M5LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgxMzAwMDNjYSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MTMwMDAzY2IsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDEzMDAwM2NjLCAweDE0MDBmZmMwIH0sCi0g
IHsgMHgxMzAwMDNjZCwgMHgxNDAwZmZjMSB9LAotICB7IDB4MTMwMDAzY2UsIDB4MTQwMGZmYzEg
fSwKLSAgeyAweDEzMDAwM2QwLCAweDE0MDBmZmMyIH0sCi0gIHsgMHgxMzAwMDNkMSwgMHgxNDAw
ZmZjNyB9LAotICB7IDB4MTM4MDAzZDIsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDEzMDAwM2Q1LCAw
eDE0MDBmZmQxIH0sCi0gIHsgMHgxMzAwMDNkNiwgMHgxNDAwZmZjYSB9LAotICB7IDB4MTMwMDAz
ZDcsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAwM2Q4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgx
MzAwMDNkOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZGEsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDEzMDAwM2RiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgxMzAwMDNkYywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MTMwMDAzZGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2RlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgxMzAwMDNkZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDAzZTAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDEzMDAwM2UxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMDNl
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDAzZTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBh
MDAwM2U0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlNSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGEwMDAzZTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2U3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYTAwMDNlOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDAzZTksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBhMDAwM2VhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMDNlYiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGEwMDAzZWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAwM2Vk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMDNlZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEw
MDAzZWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2YwLCAweDE0MDBmZmFhIH0sCi0gIHsg
MHgxMzAwMDNmMSwgMHgxNDAwZmZiMCB9LAotICB7IDB4MTMwMDAzZjIsIDB4MTQwMDAwMDcgfSwK
LSAgeyAweDEzMDAwM2YzLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMDNmNCwgMHgyNDAwZmZj
NCB9LAotICB7IDB4MTMwMDAzZjUsIDB4MTQwMGZmYTAgfSwKLSAgeyAweDEzMDAwM2Y2LCAweDY0
MDAwMDAwIH0sCi0gIHsgMHgxMzAwMDNmNywgMHgyNDAwMDAwMSB9LAotICB7IDB4MTMwMDAzZjgs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDEzMDAwM2Y5LCAweDI0MDBmZmY5IH0sCi0gIHsgMHgxMzAw
MDNmYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MTMwMDAzZmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDEzMDAwM2ZjLCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzgwMDNmZCwgMHgyNDAwMDAwMiB9LAot
ICB7IDB4MGMwMDA0MDAsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDAxLCAweDI0MDAwMDUw
IH0sCi0gIHsgMHgwYzAwMDQwMiwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MDMsIDB4MjQw
MDAwNTAgfSwKLSAgeyAweDBjMDAwNDA0LCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwNSwg
MHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MDYsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAw
NDA3LCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwOCwgMHgyNDAwMDA1MCB9LAotICB7IDB4
MGMwMDA0MDksIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDBhLCAweDI0MDAwMDUwIH0sCi0g
IHsgMHgwYzAwMDQwYiwgMHgyNDAwMDA1MCB9LAotICB7IDB4MGMwMDA0MGMsIDB4MjQwMDAwNTAg
fSwKLSAgeyAweDBjMDAwNDBkLCAweDI0MDAwMDUwIH0sCi0gIHsgMHgwYzAwMDQwZSwgMHgyNDAw
MDA1MCB9LAotICB7IDB4MGMwMDA0MGYsIDB4MjQwMDAwNTAgfSwKLSAgeyAweDBjMDAwNDEwLCAw
eDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxMSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0
MTIsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDEzLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgw
YzAwMDQxNCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MTUsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDBjMDAwNDE2LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQxNywgMHgyNDAwMDAyMCB9
LAotICB7IDB4MGMwMDA0MTgsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDE5LCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgwYzAwMDQxYSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MWIsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDFjLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQx
ZCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MWUsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBj
MDAwNDFmLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyMCwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MGMwMDA0MjEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDIyLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgwYzAwMDQyMywgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjQsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDBjMDAwNDI1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyNiwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MjcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDI4
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyOSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMw
MDA0MmEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDBjMDAwNDJiLCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgwYzAwMDQyYywgMHgyNDAwMDAyMCB9LAotICB7IDB4MGMwMDA0MmQsIDB4MjQwMDAwMjAgfSwK
LSAgeyAweDBjMDAwNDJlLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgwYzAwMDQyZiwgMHgyNDAwMDAy
MCB9LAotICB7IDB4MGMwMDA0MzAsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDMxLCAweDE0
MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzMiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzMs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDM0LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAw
MDQzNSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0MzYsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDBjMDAwNDM3LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzOCwgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MGMwMDA0MzksIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDNhLCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgwYzAwMDQzYiwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0M2MsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDBjMDAwNDNkLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQzZSwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0M2YsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAw
NDQwLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0MSwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MGMwMDA0NDIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQzLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgwYzAwMDQ0NCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NDUsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDBjMDAwNDQ2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0NywgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MGMwMDA0NDgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDQ5LCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ0YSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0
NGIsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDBjMDAwNDRjLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgw
YzAwMDQ0ZCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MGMwMDA0NGUsIDB4MTQwMGZmZTAgfSwKLSAg
eyAweDBjMDAwNDRmLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgwYzAwMDQ1MCwgMHgxNDAwZmZiMCB9
LAotICB7IDB4MGMwMDA0NTEsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDUyLCAweDE0MDBm
ZmIwIH0sCi0gIHsgMHgwYzAwMDQ1MywgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTQsIDB4
MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDU1LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1
NiwgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NTcsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBj
MDAwNDU4LCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1OSwgMHgxNDAwZmZiMCB9LAotICB7
IDB4MGMwMDA0NWEsIDB4MTQwMGZmYjAgfSwKLSAgeyAweDBjMDAwNDViLCAweDE0MDBmZmIwIH0s
Ci0gIHsgMHgwYzAwMDQ1YywgMHgxNDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NWQsIDB4MTQwMGZm
YjAgfSwKLSAgeyAweDBjMDAwNDVlLCAweDE0MDBmZmIwIH0sCi0gIHsgMHgwYzAwMDQ1ZiwgMHgx
NDAwZmZiMCB9LAotICB7IDB4MGMwMDA0NjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDYx
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ2MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0NjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDY0LCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDQ2NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NjYsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNDY3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ2OCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0NjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDZhLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ2YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NmMs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDZkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDQ2ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NmYsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNDcwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ3MSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0NzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDczLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDQ3NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0NzUsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNDc2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ3Nywg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0NzgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NDc5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ3YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0N2IsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDdjLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDQ3ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0N2UsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNDdmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ4MCwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0ODEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDgyLCAw
eDY4MDAwMDAwIH0sCi0gIHsgMHgwYzgwMDQ4MywgMHgzMDAwMDAwMyB9LAotICB7IDB4MGM4MDA0
ODgsIDB4MmMwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDhhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDQ4YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OGMsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNDhkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ4ZSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGMwMDA0OGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNDkwLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDQ5MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OTIsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDkzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDQ5
NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBj
MDAwNDk2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5NywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGMwMDA0OTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDk5LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYzAwMDQ5YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0OWIsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBjMDAwNDljLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDQ5ZCwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGMwMDA0OWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNDlm
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0YTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGEyLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDRhMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YTQsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNGE1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRhNiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0YTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGE4LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRhOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YWEs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGFiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDRhYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNGFlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRhZiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0YjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGIxLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDRiMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0YjMsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNGI0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRiNSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NGI3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRiOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0YjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGJhLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDRiYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YmMsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNGJkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRiZSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0YmYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGMwLCAw
eDI0MDAwMDAwIH0sCi0gIHsgMHgwYzAwMDRjMSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0
YzIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGMzLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YzAwMDRjNCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0YzUsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBjMDAwNGM2LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRjNywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGMwMDA0YzgsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGM5LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYzAwMDRjYSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0Y2IsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGNjLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRj
ZCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0Y2UsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBj
MDAwNGQwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRkMSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGMwMDA0ZDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGQzLCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYzAwMDRkNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZDUsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBjMDAwNGQ2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRkNywgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZDgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGQ5
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRkYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMw
MDA0ZGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGRjLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYzAwMDRkZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZGUsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBjMDAwNGRmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRlMCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGMwMDA0ZTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGUyLCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZTQs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGU1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAw
MDRlNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBjMDAwNGU4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlOSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGMwMDA0ZWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNGViLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYzAwMDRlYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA0ZWQsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBjMDAwNGVlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDRlZiwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAw
NGYxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRmMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGMwMDA0ZjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNGY0LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYzAwMDRmNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA0ZjYsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBjMDAwNGY3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYzAwMDRmOCwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGMwMDA0ZjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNTAwLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUwMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA1
MDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTAzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgw
YzAwMDUwNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MDUsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDBjMDAwNTA2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUwNywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MGMwMDA1MDgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBjMDAwNTA5LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYzAwMDUwYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGMwMDA1MGIsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBjMDAwNTBjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYzAwMDUw
ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGMwMDA1MGUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBj
MDAwNTBmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwMTAwMDUzMSwgMHgyNDAwMDAzMCB9LAotICB7
IDB4MDEwMDA1MzIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTMzLCAweDI0MDAwMDMwIH0s
Ci0gIHsgMHgwMTAwMDUzNCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1MzUsIDB4MjQwMDAw
MzAgfSwKLSAgeyAweDAxMDAwNTM2LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzNywgMHgy
NDAwMDAzMCB9LAotICB7IDB4MDEwMDA1MzgsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTM5
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDUzYSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEw
MDA1M2IsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTNjLCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgwMTAwMDUzZCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1M2UsIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDAxMDAwNTNmLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0MCwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MDEwMDA1NDEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQyLCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0MywgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDQs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTQ1LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAw
MDU0NiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NDcsIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDAxMDAwNTQ4LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0OSwgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MDEwMDA1NGEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTRiLCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgwMTAwMDU0YywgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NGQsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDAxMDAwNTRlLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU0Ziwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NTAsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAw
NTUxLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgwMTAwMDU1MiwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MDEwMDA1NTMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDAxMDAwNTU0LCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgwMTAwMDU1NSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MDEwMDA1NTYsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDAxMDAwNTU5LCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwMTgwMDU1YSwgMHg1NDAw
MDAwNSB9LAotICB7IDB4MDEwMDA1NjEsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTYyLCAw
eDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2MywgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1
NjQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTY1LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgw
MTAwMDU2NiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NjcsIDB4MTQwMGZmZDAgfSwKLSAg
eyAweDAxMDAwNTY4LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2OSwgMHgxNDAwZmZkMCB9
LAotICB7IDB4MDEwMDA1NmEsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTZiLCAweDE0MDBm
ZmQwIH0sCi0gIHsgMHgwMTAwMDU2YywgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NmQsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTZlLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU2
ZiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzAsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAx
MDAwNTcxLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3MiwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MDEwMDA1NzMsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTc0LCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgwMTAwMDU3NSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzYsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDAxMDAwNTc3LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3OCwgMHgx
NDAwZmZkMCB9LAotICB7IDB4MDEwMDA1NzksIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTdh
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU3YiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEw
MDA1N2MsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTdkLCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgwMTAwMDU3ZSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1N2YsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDAxMDAwNTgwLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU4MSwgMHgxNDAwZmZk
MCB9LAotICB7IDB4MDEwMDA1ODIsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTgzLCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgwMTAwMDU4NCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MDEwMDA1ODUs
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDAxMDAwNTg2LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgwMTAw
MDU4NywgMHgxNDAwMDAwMCB9LAotICB7IDB4MDkwMDA1ODksIDB4NTQwMDAwMDAgfSwKLSAgeyAw
eDAxMDAwNThhLCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgxOTgwMDU5MSwgMHgzMDAwMDAyOCB9LAot
ICB7IDB4MTk4MDA1YmIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDE5MDAwNWJlLCAweDU0MDAwMDAw
IH0sCi0gIHsgMHgxOTAwMDViZiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MTkwMDA1YzAsIDB4NTQw
MDAwMDAgfSwKLSAgeyAweDE5ODAwNWMxLCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxOTAwMDVjMywg
MHg1NDAwMDAwMCB9LAotICB7IDB4MTk4MDA1YzQsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE5MDAw
NWM2LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgxOTAwMDVjNywgMHgzMDAwMDAwMCB9LAotICB7IDB4
MTk4MDA1ZDAsIDB4MWMwMDAwMWEgfSwKLSAgeyAweDE5ODAwNWYwLCAweDFjMDAwMDAyIH0sCi0g
IHsgMHgxOTgwMDVmMywgMHg1NDAwMDAwMSB9LAotICB7IDB4MDk4MDA2MDAsIDB4MDQwMDAwMDMg
fSwKLSAgeyAweDAwMDAwNjBiLCAweDVjMDAwMDAwIH0sCi0gIHsgMHgwOTgwMDYwYywgMHg1NDAw
MDAwMSB9LAotICB7IDB4MDA4MDA2MGUsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDAwODAwNjEwLCAw
eDMwMDAwMDA1IH0sCi0gIHsgMHgwOTAwMDYxYiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDA4MDA2
MWUsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDAwODAwNjIxLCAweDFjMDAwMDE5IH0sCi0gIHsgMHgw
OTAwMDY0MCwgMHgxODAwMDAwMCB9LAotICB7IDB4MDA4MDA2NDEsIDB4MWMwMDAwMDkgfSwKLSAg
eyAweDFiODAwNjRiLCAweDMwMDAwMDEzIH0sCi0gIHsgMHgwOTgwMDY2MCwgMHgzNDAwMDAwOSB9
LAotICB7IDB4MDA4MDA2NmEsIDB4NTQwMDAwMDMgfSwKLSAgeyAweDAwODAwNjZlLCAweDFjMDAw
MDAxIH0sCi0gIHsgMHgxYjAwMDY3MCwgMHgzMDAwMDAwMCB9LAotICB7IDB4MDA4MDA2NzEsIDB4
MWMwMDAwNjIgfSwKLSAgeyAweDAwMDAwNmQ0LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwMDAwMDZk
NSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MDA4MDA2ZDYsIDB4MzAwMDAwMDYgfSwKLSAgeyAweDA5
MDAwNmRkLCAweDA0MDAwMDAwIH0sCi0gIHsgMHgwMDAwMDZkZSwgMHgyYzAwMDAwMCB9LAotICB7
IDB4MDA4MDA2ZGYsIDB4MzAwMDAwMDUgfSwKLSAgeyAweDAwODAwNmU1LCAweDE4MDAwMDAxIH0s
Ci0gIHsgMHgwMDgwMDZlNywgMHgzMDAwMDAwMSB9LAotICB7IDB4MDAwMDA2ZTksIDB4NjgwMDAw
MDAgfSwKLSAgeyAweDAwODAwNmVhLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgwMDgwMDZlZSwgMHgx
YzAwMDAwMSB9LAotICB7IDB4MDA4MDA2ZjAsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDAwODAwNmZh
LCAweDFjMDAwMDAyIH0sCi0gIHsgMHgwMDgwMDZmZCwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDAw
MDA2ZmYsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDMxODAwNzAwLCAweDU0MDAwMDBkIH0sCi0gIHsg
MHgzMTAwMDcwZiwgMHgwNDAwMDAwMCB9LAotICB7IDB4MzEwMDA3MTAsIDB4MWMwMDAwMDAgfSwK
LSAgeyAweDMxMDAwNzExLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzMTgwMDcxMiwgMHgxYzAwMDAx
ZCB9LAotICB7IDB4MzE4MDA3MzAsIDB4MzAwMDAwMWEgfSwKLSAgeyAweDMxODAwNzRkLCAweDFj
MDAwMDIwIH0sCi0gIHsgMHgzNzgwMDc4MCwgMHgxYzAwMDAyNSB9LAotICB7IDB4Mzc4MDA3YTYs
IDB4MzAwMDAwMGEgfSwKLSAgeyAweDM3MDAwN2IxLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwZTgw
MDkwMSwgMHgzMDAwMDAwMSB9LAotICB7IDB4MGUwMDA5MDMsIDB4MjgwMDAwMDAgfSwKLSAgeyAw
eDBlODAwOTA0LCAweDFjMDAwMDM1IH0sCi0gIHsgMHgwZTAwMDkzYywgMHgzMDAwMDAwMCB9LAot
ICB7IDB4MGUwMDA5M2QsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDBlODAwOTNlLCAweDI4MDAwMDAy
IH0sCi0gIHsgMHgwZTgwMDk0MSwgMHgzMDAwMDAwNyB9LAotICB7IDB4MGU4MDA5NDksIDB4Mjgw
MDAwMDMgfSwKLSAgeyAweDBlMDAwOTRkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgwZTAwMDk1MCwg
MHgxYzAwMDAwMCB9LAotICB7IDB4MGU4MDA5NTEsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDBlODAw
OTU4LCAweDFjMDAwMDA5IH0sCi0gIHsgMHgwZTgwMDk2MiwgMHgzMDAwMDAwMSB9LAotICB7IDB4
MDk4MDA5NjQsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDBlODAwOTY2LCAweDM0MDAwMDA5IH0sCi0g
IHsgMHgwOTAwMDk3MCwgMHg1NDAwMDAwMCB9LAotICB7IDB4MGUwMDA5N2QsIDB4MWMwMDAwMDAg
fSwKLSAgeyAweDAyMDAwOTgxLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgwMjgwMDk4MiwgMHgyODAw
MDAwMSB9LAotICB7IDB4MDI4MDA5ODUsIDB4MWMwMDAwMDcgfSwKLSAgeyAweDAyODAwOThmLCAw
eDFjMDAwMDAxIH0sCi0gIHsgMHgwMjgwMDk5MywgMHgxYzAwMDAxNSB9LAotICB7IDB4MDI4MDA5
YWEsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDAyMDAwOWIyLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgw
MjgwMDliNiwgMHgxYzAwMDAwMyB9LAotICB7IDB4MDIwMDA5YmMsIDB4MzAwMDAwMDAgfSwKLSAg
eyAweDAyMDAwOWJkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwMjgwMDliZSwgMHgyODAwMDAwMiB9
LAotICB7IDB4MDI4MDA5YzEsIDB4MzAwMDAwMDMgfSwKLSAgeyAweDAyODAwOWM3LCAweDI4MDAw
MDAxIH0sCi0gIHsgMHgwMjgwMDljYiwgMHgyODAwMDAwMSB9LAotICB7IDB4MDIwMDA5Y2QsIDB4
MzAwMDAwMDAgfSwKLSAgeyAweDAyMDAwOWNlLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgwMjAwMDlk
NywgMHgyODAwMDAwMCB9LAotICB7IDB4MDI4MDA5ZGMsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDAy
ODAwOWRmLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgwMjgwMDllMiwgMHgzMDAwMDAwMSB9LAotICB7
IDB4MDI4MDA5ZTYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDAyODAwOWYwLCAweDFjMDAwMDAxIH0s
Ci0gIHsgMHgwMjgwMDlmMiwgMHg1YzAwMDAwMSB9LAotICB7IDB4MDI4MDA5ZjQsIDB4M2MwMDAw
MDUgfSwKLSAgeyAweDAyMDAwOWZhLCAweDY4MDAwMDAwIH0sCi0gIHsgMHgxNTgwMGEwMSwgMHgz
MDAwMDAwMSB9LAotICB7IDB4MTUwMDBhMDMsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDE1ODAwYTA1
LCAweDFjMDAwMDA1IH0sCi0gIHsgMHgxNTgwMGEwZiwgMHgxYzAwMDAwMSB9LAotICB7IDB4MTU4
MDBhMTMsIDB4MWMwMDAwMTUgfSwKLSAgeyAweDE1ODAwYTJhLCAweDFjMDAwMDA2IH0sCi0gIHsg
MHgxNTgwMGEzMiwgMHgxYzAwMDAwMSB9LAotICB7IDB4MTU4MDBhMzUsIDB4MWMwMDAwMDEgfSwK
LSAgeyAweDE1ODAwYTM4LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgxNTAwMGEzYywgMHgzMDAwMDAw
MCB9LAotICB7IDB4MTU4MDBhM2UsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDE1ODAwYTQxLCAweDMw
MDAwMDAxIH0sCi0gIHsgMHgxNTgwMGE0NywgMHgzMDAwMDAwMSB9LAotICB7IDB4MTU4MDBhNGIs
IDB4MzAwMDAwMDIgfSwKLSAgeyAweDE1ODAwYTU5LCAweDFjMDAwMDAzIH0sCi0gIHsgMHgxNTAw
MGE1ZSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MTU4MDBhNjYsIDB4MzQwMDAwMDkgfSwKLSAgeyAw
eDE1ODAwYTcwLCAweDMwMDAwMDAxIH0sCi0gIHsgMHgxNTgwMGE3MiwgMHgxYzAwMDAwMiB9LAot
ICB7IDB4MTQ4MDBhODEsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE0MDAwYTgzLCAweDI4MDAwMDAw
IH0sCi0gIHsgMHgxNDgwMGE4NSwgMHgxYzAwMDAwOCB9LAotICB7IDB4MTQ4MDBhOGYsIDB4MWMw
MDAwMDIgfSwKLSAgeyAweDE0ODAwYTkzLCAweDFjMDAwMDE1IH0sCi0gIHsgMHgxNDgwMGFhYSwg
MHgxYzAwMDAwNiB9LAotICB7IDB4MTQ4MDBhYjIsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDE0ODAw
YWI1LCAweDFjMDAwMDA0IH0sCi0gIHsgMHgxNDAwMGFiYywgMHgzMDAwMDAwMCB9LAotICB7IDB4
MTQwMDBhYmQsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDE0ODAwYWJlLCAweDI4MDAwMDAyIH0sCi0g
IHsgMHgxNDgwMGFjMSwgMHgzMDAwMDAwNCB9LAotICB7IDB4MTQ4MDBhYzcsIDB4MzAwMDAwMDEg
fSwKLSAgeyAweDE0MDAwYWM5LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgxNDgwMGFjYiwgMHgyODAw
MDAwMSB9LAotICB7IDB4MTQwMDBhY2QsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDE0MDAwYWQwLCAw
eDFjMDAwMDAwIH0sCi0gIHsgMHgxNDgwMGFlMCwgMHgxYzAwMDAwMSB9LAotICB7IDB4MTQ4MDBh
ZTIsIDB4MzAwMDAwMDEgfSwKLSAgeyAweDE0ODAwYWU2LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgx
NDAwMGFmMSwgMHg1YzAwMDAwMCB9LAotICB7IDB4MmIwMDBiMDEsIDB4MzAwMDAwMDAgfSwKLSAg
eyAweDJiODAwYjAyLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgyYjgwMGIwNSwgMHgxYzAwMDAwNyB9
LAotICB7IDB4MmI4MDBiMGYsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDJiODAwYjEzLCAweDFjMDAw
MDE1IH0sCi0gIHsgMHgyYjgwMGIyYSwgMHgxYzAwMDAwNiB9LAotICB7IDB4MmI4MDBiMzIsIDB4
MWMwMDAwMDEgfSwKLSAgeyAweDJiODAwYjM1LCAweDFjMDAwMDA0IH0sCi0gIHsgMHgyYjAwMGIz
YywgMHgzMDAwMDAwMCB9LAotICB7IDB4MmIwMDBiM2QsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDJi
MDAwYjNlLCAweDI4MDAwMDAwIH0sCi0gIHsgMHgyYjAwMGIzZiwgMHgzMDAwMDAwMCB9LAotICB7
IDB4MmIwMDBiNDAsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDJiODAwYjQxLCAweDMwMDAwMDAyIH0s
Ci0gIHsgMHgyYjgwMGI0NywgMHgyODAwMDAwMSB9LAotICB7IDB4MmI4MDBiNGIsIDB4MjgwMDAw
MDEgfSwKLSAgeyAweDJiMDAwYjRkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyYjAwMGI1NiwgMHgz
MDAwMDAwMCB9LAotICB7IDB4MmIwMDBiNTcsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDJiODAwYjVj
LCAweDFjMDAwMDAxIH0sCi0gIHsgMHgyYjgwMGI1ZiwgMHgxYzAwMDAwMiB9LAotICB7IDB4MmI4
MDBiNjYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDJiMDAwYjcwLCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgyYjAwMGI3MSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MzUwMDBiODIsIDB4MzAwMDAwMDAgfSwK
LSAgeyAweDM1MDAwYjgzLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgzNTgwMGI4NSwgMHgxYzAwMDAw
NSB9LAotICB7IDB4MzU4MDBiOGUsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDM1ODAwYjkyLCAweDFj
MDAwMDAzIH0sCi0gIHsgMHgzNTgwMGI5OSwgMHgxYzAwMDAwMSB9LAotICB7IDB4MzUwMDBiOWMs
IDB4MWMwMDAwMDAgfSwKLSAgeyAweDM1ODAwYjllLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzNTgw
MGJhMywgMHgxYzAwMDAwMSB9LAotICB7IDB4MzU4MDBiYTgsIDB4MWMwMDAwMDIgfSwKLSAgeyAw
eDM1ODAwYmFlLCAweDFjMDAwMDBiIH0sCi0gIHsgMHgzNTgwMGJiZSwgMHgyODAwMDAwMSB9LAot
ICB7IDB4MzUwMDBiYzAsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDM1ODAwYmMxLCAweDI4MDAwMDAx
IH0sCi0gIHsgMHgzNTgwMGJjNiwgMHgyODAwMDAwMiB9LAotICB7IDB4MzU4MDBiY2EsIDB4Mjgw
MDAwMDIgfSwKLSAgeyAweDM1MDAwYmNkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzNTAwMGJkNywg
MHgyODAwMDAwMCB9LAotICB7IDB4MzU4MDBiZTYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDM1ODAw
YmYwLCAweDNjMDAwMDAyIH0sCi0gIHsgMHgzNTgwMGJmMywgMHg2ODAwMDAwNSB9LAotICB7IDB4
MzUwMDBiZjksIDB4NWMwMDAwMDAgfSwKLSAgeyAweDM1MDAwYmZhLCAweDY4MDAwMDAwIH0sCi0g
IHsgMHgzNjgwMGMwMSwgMHgyODAwMDAwMiB9LAotICB7IDB4MzY4MDBjMDUsIDB4MWMwMDAwMDcg
fSwKLSAgeyAweDM2ODAwYzBlLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgzNjgwMGMxMiwgMHgxYzAw
MDAxNiB9LAotICB7IDB4MzY4MDBjMmEsIDB4MWMwMDAwMDkgfSwKLSAgeyAweDM2ODAwYzM1LCAw
eDFjMDAwMDA0IH0sCi0gIHsgMHgzNjgwMGMzZSwgMHgzMDAwMDAwMiB9LAotICB7IDB4MzY4MDBj
NDEsIDB4MjgwMDAwMDMgfSwKLSAgeyAweDM2ODAwYzQ2LCAweDMwMDAwMDAyIH0sCi0gIHsgMHgz
NjgwMGM0YSwgMHgzMDAwMDAwMyB9LAotICB7IDB4MzY4MDBjNTUsIDB4MzAwMDAwMDEgfSwKLSAg
eyAweDM2ODAwYzYwLCAweDFjMDAwMDAxIH0sCi0gIHsgMHgzNjgwMGM2NiwgMHgzNDAwMDAwOSB9
LAotICB7IDB4MWM4MDBjODIsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDFjODAwYzg1LCAweDFjMDAw
MDA3IH0sCi0gIHsgMHgxYzgwMGM4ZSwgMHgxYzAwMDAwMiB9LAotICB7IDB4MWM4MDBjOTIsIDB4
MWMwMDAwMTYgfSwKLSAgeyAweDFjODAwY2FhLCAweDFjMDAwMDA5IH0sCi0gIHsgMHgxYzgwMGNi
NSwgMHgxYzAwMDAwNCB9LAotICB7IDB4MWMwMDBjYmMsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFj
MDAwY2JkLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxYzAwMGNiZSwgMHgyODAwMDAwMCB9LAotICB7
IDB4MWMwMDBjYmYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFjODAwY2MwLCAweDI4MDAwMDA0IH0s
Ci0gIHsgMHgxYzAwMGNjNiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MWM4MDBjYzcsIDB4MjgwMDAw
MDEgfSwKLSAgeyAweDFjODAwY2NhLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgxYzgwMGNjYywgMHgz
MDAwMDAwMSB9LAotICB7IDB4MWM4MDBjZDUsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDFjMDAwY2Rl
LCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxYzgwMGNlMCwgMHgxYzAwMDAwMSB9LAotICB7IDB4MWM4
MDBjZTYsIDB4MzQwMDAwMDkgfSwKLSAgeyAweDI0ODAwZDAyLCAweDI4MDAwMDAxIH0sCi0gIHsg
MHgyNDgwMGQwNSwgMHgxYzAwMDAwNyB9LAotICB7IDB4MjQ4MDBkMGUsIDB4MWMwMDAwMDIgfSwK
LSAgeyAweDI0ODAwZDEyLCAweDFjMDAwMDE2IH0sCi0gIHsgMHgyNDgwMGQyYSwgMHgxYzAwMDAw
ZiB9LAotICB7IDB4MjQ4MDBkM2UsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDI0ODAwZDQxLCAweDMw
MDAwMDAyIH0sCi0gIHsgMHgyNDgwMGQ0NiwgMHgyODAwMDAwMiB9LAotICB7IDB4MjQ4MDBkNGEs
IDB4MjgwMDAwMDIgfSwKLSAgeyAweDI0MDAwZDRkLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyNDAw
MGQ1NywgMHgyODAwMDAwMCB9LAotICB7IDB4MjQ4MDBkNjAsIDB4MWMwMDAwMDEgfSwKLSAgeyAw
eDI0ODAwZDY2LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgyZjgwMGQ4MiwgMHgyODAwMDAwMSB9LAot
ICB7IDB4MmY4MDBkODUsIDB4MWMwMDAwMTEgfSwKLSAgeyAweDJmODAwZDlhLCAweDFjMDAwMDE3
IH0sCi0gIHsgMHgyZjgwMGRiMywgMHgxYzAwMDAwOCB9LAotICB7IDB4MmYwMDBkYmQsIDB4MWMw
MDAwMDAgfSwKLSAgeyAweDJmODAwZGMwLCAweDFjMDAwMDA2IH0sCi0gIHsgMHgyZjAwMGRjYSwg
MHgzMDAwMDAwMCB9LAotICB7IDB4MmY4MDBkY2YsIDB4MjgwMDAwMDIgfSwKLSAgeyAweDJmODAw
ZGQyLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgyZjAwMGRkNiwgMHgzMDAwMDAwMCB9LAotICB7IDB4
MmY4MDBkZDgsIDB4MjgwMDAwMDcgfSwKLSAgeyAweDJmODAwZGYyLCAweDI4MDAwMDAxIH0sCi0g
IHsgMHgyZjAwMGRmNCwgMHg1NDAwMDAwMCB9LAotICB7IDB4Mzg4MDBlMDEsIDB4MWMwMDAwMmYg
fSwKLSAgeyAweDM4MDAwZTMxLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgzODgwMGUzMiwgMHgxYzAw
MDAwMSB9LAotICB7IDB4Mzg4MDBlMzQsIDB4MzAwMDAwMDYgfSwKLSAgeyAweDA5MDAwZTNmLCAw
eDVjMDAwMDAwIH0sCi0gIHsgMHgzODgwMGU0MCwgMHgxYzAwMDAwNSB9LAotICB7IDB4MzgwMDBl
NDYsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDM4ODAwZTQ3LCAweDMwMDAwMDA3IH0sCi0gIHsgMHgz
ODAwMGU0ZiwgMHg1NDAwMDAwMCB9LAotICB7IDB4Mzg4MDBlNTAsIDB4MzQwMDAwMDkgfSwKLSAg
eyAweDM4ODAwZTVhLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgyMDgwMGU4MSwgMHgxYzAwMDAwMSB9
LAotICB7IDB4MjAwMDBlODQsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIwODAwZTg3LCAweDFjMDAw
MDAxIH0sCi0gIHsgMHgyMDAwMGU4YSwgMHgxYzAwMDAwMCB9LAotICB7IDB4MjAwMDBlOGQsIDB4
MWMwMDAwMDAgfSwKLSAgeyAweDIwODAwZTk0LCAweDFjMDAwMDAzIH0sCi0gIHsgMHgyMDgwMGU5
OSwgMHgxYzAwMDAwNiB9LAotICB7IDB4MjA4MDBlYTEsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDIw
MDAwZWE1LCAweDFjMDAwMDAwIH0sCi0gIHsgMHgyMDAwMGVhNywgMHgxYzAwMDAwMCB9LAotICB7
IDB4MjA4MDBlYWEsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDIwODAwZWFkLCAweDFjMDAwMDAzIH0s
Ci0gIHsgMHgyMDAwMGViMSwgMHgzMDAwMDAwMCB9LAotICB7IDB4MjA4MDBlYjIsIDB4MWMwMDAw
MDEgfSwKLSAgeyAweDIwODAwZWI0LCAweDMwMDAwMDA1IH0sCi0gIHsgMHgyMDgwMGViYiwgMHgz
MDAwMDAwMSB9LAotICB7IDB4MjAwMDBlYmQsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDIwODAwZWMw
LCAweDFjMDAwMDA0IH0sCi0gIHsgMHgyMDAwMGVjNiwgMHgxODAwMDAwMCB9LAotICB7IDB4MjA4
MDBlYzgsIDB4MzAwMDAwMDUgfSwKLSAgeyAweDIwODAwZWQwLCAweDM0MDAwMDA5IH0sCi0gIHsg
MHgyMDgwMGVkYywgMHgxYzAwMDAwMSB9LAotICB7IDB4MzkwMDBmMDAsIDB4MWMwMDAwMDAgfSwK
LSAgeyAweDM5ODAwZjAxLCAweDY4MDAwMDAyIH0sCi0gIHsgMHgzOTgwMGYwNCwgMHg1NDAwMDAw
ZSB9LAotICB7IDB4Mzk4MDBmMTMsIDB4NjgwMDAwMDQgfSwKLSAgeyAweDM5ODAwZjE4LCAweDMw
MDAwMDAxIH0sCi0gIHsgMHgzOTgwMGYxYSwgMHg2ODAwMDAwNSB9LAotICB7IDB4Mzk4MDBmMjAs
IDB4MzQwMDAwMDkgfSwKLSAgeyAweDM5ODAwZjJhLCAweDNjMDAwMDA5IH0sCi0gIHsgMHgzOTAw
MGYzNCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmMzUsIDB4MzAwMDAwMDAgfSwKLSAgeyAw
eDM5MDAwZjM2LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzNywgMHgzMDAwMDAwMCB9LAot
ICB7IDB4MzkwMDBmMzgsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDM5MDAwZjM5LCAweDMwMDAwMDAw
IH0sCi0gIHsgMHgzOTAwMGYzYSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MzkwMDBmM2IsIDB4NDgw
MDAwMDAgfSwKLSAgeyAweDM5MDAwZjNjLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgzOTAwMGYzZCwg
MHg0ODAwMDAwMCB9LAotICB7IDB4Mzk4MDBmM2UsIDB4MjgwMDAwMDEgfSwKLSAgeyAweDM5ODAw
ZjQwLCAweDFjMDAwMDA3IH0sCi0gIHsgMHgzOTgwMGY0OSwgMHgxYzAwMDAyMSB9LAotICB7IDB4
Mzk4MDBmNzEsIDB4MzAwMDAwMGQgfSwKLSAgeyAweDM5MDAwZjdmLCAweDI4MDAwMDAwIH0sCi0g
IHsgMHgzOTgwMGY4MCwgMHgzMDAwMDAwNCB9LAotICB7IDB4MzkwMDBmODUsIDB4NTQwMDAwMDAg
fSwKLSAgeyAweDM5ODAwZjg2LCAweDMwMDAwMDAxIH0sCi0gIHsgMHgzOTgwMGY4OCwgMHgxYzAw
MDAwMyB9LAotICB7IDB4Mzk4MDBmOTAsIDB4MzAwMDAwMDcgfSwKLSAgeyAweDM5ODAwZjk5LCAw
eDMwMDAwMDIzIH0sCi0gIHsgMHgzOTgwMGZiZSwgMHg2ODAwMDAwNyB9LAotICB7IDB4MzkwMDBm
YzYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDM5ODAwZmM3LCAweDY4MDAwMDA1IH0sCi0gIHsgMHgz
OTAwMGZjZiwgMHg2ODAwMDAwMCB9LAotICB7IDB4Mzk4MDBmZDAsIDB4NTQwMDAwMDEgfSwKLSAg
eyAweDI2ODAxMDAwLCAweDFjMDAwMDIxIH0sCi0gIHsgMHgyNjgwMTAyMywgMHgxYzAwMDAwNCB9
LAotICB7IDB4MjY4MDEwMjksIDB4MWMwMDAwMDEgfSwKLSAgeyAweDI2MDAxMDJjLCAweDI4MDAw
MDAwIH0sCi0gIHsgMHgyNjgwMTAyZCwgMHgzMDAwMDAwMyB9LAotICB7IDB4MjYwMDEwMzEsIDB4
MjgwMDAwMDAgfSwKLSAgeyAweDI2MDAxMDMyLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyNjgwMTAz
NiwgMHgzMDAwMDAwMSB9LAotICB7IDB4MjYwMDEwMzgsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDI2
MDAxMDM5LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyNjgwMTA0MCwgMHgzNDAwMDAwOSB9LAotICB7
IDB4MjY4MDEwNGEsIDB4NTQwMDAwMDUgfSwKLSAgeyAweDI2ODAxMDUwLCAweDFjMDAwMDA1IH0s
Ci0gIHsgMHgyNjgwMTA1NiwgMHgyODAwMDAwMSB9LAotICB7IDB4MjY4MDEwNTgsIDB4MzAwMDAw
MDEgfSwKLSAgeyAweDEwMDAxMGEwLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhMSwgMHgy
NDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYTIsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGEz
LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhNCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAw
MDEwYTUsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGE2LCAweDI0MDAxYzYwIH0sCi0gIHsg
MHgxMDAwMTBhNywgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYTgsIDB4MjQwMDFjNjAgfSwK
LSAgeyAweDEwMDAxMGE5LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhYSwgMHgyNDAwMWM2
MCB9LAotICB7IDB4MTAwMDEwYWIsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGFjLCAweDI0
MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBhZCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYWUs
IDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGFmLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAw
MTBiMCwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjEsIDB4MjQwMDFjNjAgfSwKLSAgeyAw
eDEwMDAxMGIyLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiMywgMHgyNDAwMWM2MCB9LAot
ICB7IDB4MTAwMDEwYjQsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGI1LCAweDI0MDAxYzYw
IH0sCi0gIHsgMHgxMDAwMTBiNiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYjcsIDB4MjQw
MDFjNjAgfSwKLSAgeyAweDEwMDAxMGI4LCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiOSwg
MHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYmEsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAx
MGJiLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBiYywgMHgyNDAwMWM2MCB9LAotICB7IDB4
MTAwMDEwYmQsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGJlLCAweDI0MDAxYzYwIH0sCi0g
IHsgMHgxMDAwMTBiZiwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTAwMDEwYzAsIDB4MjQwMDFjNjAg
fSwKLSAgeyAweDEwMDAxMGMxLCAweDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBjMiwgMHgyNDAw
MWM2MCB9LAotICB7IDB4MTAwMDEwYzMsIDB4MjQwMDFjNjAgfSwKLSAgeyAweDEwMDAxMGM0LCAw
eDI0MDAxYzYwIH0sCi0gIHsgMHgxMDAwMTBjNSwgMHgyNDAwMWM2MCB9LAotICB7IDB4MTA4MDEw
ZDAsIDB4MWMwMDAwMmEgfSwKLSAgeyAweDA5MDAxMGZiLCAweDU0MDAwMDAwIH0sCi0gIHsgMHgx
MDAwMTBmYywgMHgxODAwMDAwMCB9LAotICB7IDB4MTc4MDExMDAsIDB4MWMwMDAwNTkgfSwKLSAg
eyAweDE3ODAxMTVmLCAweDFjMDAwMDQzIH0sCi0gIHsgMHgxNzgwMTFhOCwgMHgxYzAwMDA1MSB9
LAotICB7IDB4MGY4MDEyMDAsIDB4MWMwMDAwNDggfSwKLSAgeyAweDBmODAxMjRhLCAweDFjMDAw
MDAzIH0sCi0gIHsgMHgwZjgwMTI1MCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGYwMDEyNTgsIDB4
MWMwMDAwMDAgfSwKLSAgeyAweDBmODAxMjVhLCAweDFjMDAwMDAzIH0sCi0gIHsgMHgwZjgwMTI2
MCwgMHgxYzAwMDAyOCB9LAotICB7IDB4MGY4MDEyOGEsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDBm
ODAxMjkwLCAweDFjMDAwMDIwIH0sCi0gIHsgMHgwZjgwMTJiMiwgMHgxYzAwMDAwMyB9LAotICB7
IDB4MGY4MDEyYjgsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmMDAxMmMwLCAweDFjMDAwMDAwIH0s
Ci0gIHsgMHgwZjgwMTJjMiwgMHgxYzAwMDAwMyB9LAotICB7IDB4MGY4MDEyYzgsIDB4MWMwMDAw
MGUgfSwKLSAgeyAweDBmODAxMmQ4LCAweDFjMDAwMDM4IH0sCi0gIHsgMHgwZjgwMTMxMiwgMHgx
YzAwMDAwMyB9LAotICB7IDB4MGY4MDEzMTgsIDB4MWMwMDAwNDIgfSwKLSAgeyAweDBmMDAxMzVm
LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgwZjAwMTM2MCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MGY4
MDEzNjEsIDB4NTQwMDAwMDcgfSwKLSAgeyAweDBmODAxMzY5LCAweDNjMDAwMDEzIH0sCi0gIHsg
MHgwZjgwMTM4MCwgMHgxYzAwMDAwZiB9LAotICB7IDB4MGY4MDEzOTAsIDB4NjgwMDAwMDkgfSwK
LSAgeyAweDA4ODAxM2EwLCAweDFjMDAwMDU0IH0sCi0gIHsgMHgwNzgwMTQwMSwgMHgxYzAwMDI2
YiB9LAotICB7IDB4MDc4MDE2NmQsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA3ODAxNjZmLCAweDFj
MDAwMDA3IH0sCi0gIHsgMHgyODAwMTY4MCwgMHg3NDAwMDAwMCB9LAotICB7IDB4Mjg4MDE2ODEs
IDB4MWMwMDAwMTkgfSwKLSAgeyAweDI4MDAxNjliLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgyODAw
MTY5YywgMHg0ODAwMDAwMCB9LAotICB7IDB4MmQ4MDE2YTAsIDB4MWMwMDAwNGEgfSwKLSAgeyAw
eDA5ODAxNmViLCAweDU0MDAwMDAyIH0sCi0gIHsgMHgyZDgwMTZlZSwgMHgzODAwMDAwMiB9LAot
ICB7IDB4MzI4MDE3MDAsIDB4MWMwMDAwMGMgfSwKLSAgeyAweDMyODAxNzBlLCAweDFjMDAwMDAz
IH0sCi0gIHsgMHgzMjgwMTcxMiwgMHgzMDAwMDAwMiB9LAotICB7IDB4MTg4MDE3MjAsIDB4MWMw
MDAwMTEgfSwKLSAgeyAweDE4ODAxNzMyLCAweDMwMDAwMDAyIH0sCi0gIHsgMHgwOTgwMTczNSwg
MHg1NDAwMDAwMSB9LAotICB7IDB4MDY4MDE3NDAsIDB4MWMwMDAwMTEgfSwKLSAgeyAweDA2ODAx
NzUyLCAweDMwMDAwMDAxIH0sCi0gIHsgMHgzMzgwMTc2MCwgMHgxYzAwMDAwYyB9LAotICB7IDB4
MzM4MDE3NmUsIDB4MWMwMDAwMDIgfSwKLSAgeyAweDMzODAxNzcyLCAweDMwMDAwMDAxIH0sCi0g
IHsgMHgxZjgwMTc4MCwgMHgxYzAwMDAzMyB9LAotICB7IDB4MWY4MDE3YjQsIDB4MDQwMDAwMDEg
fSwKLSAgeyAweDFmMDAxN2I2LCAweDI4MDAwMDAwIH0sCi0gIHsgMHgxZjgwMTdiNywgMHgzMDAw
MDAwNiB9LAotICB7IDB4MWY4MDE3YmUsIDB4MjgwMDAwMDcgfSwKLSAgeyAweDFmMDAxN2M2LCAw
eDMwMDAwMDAwIH0sCi0gIHsgMHgxZjgwMTdjNywgMHgyODAwMDAwMSB9LAotICB7IDB4MWY4MDE3
YzksIDB4MzAwMDAwMGEgfSwKLSAgeyAweDFmODAxN2Q0LCAweDU0MDAwMDAyIH0sCi0gIHsgMHgx
ZjAwMTdkNywgMHgxODAwMDAwMCB9LAotICB7IDB4MWY4MDE3ZDgsIDB4NTQwMDAwMDIgfSwKLSAg
eyAweDFmMDAxN2RiLCAweDVjMDAwMDAwIH0sCi0gIHsgMHgxZjAwMTdkYywgMHgxYzAwMDAwMCB9
LAotICB7IDB4MWYwMDE3ZGQsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFmODAxN2UwLCAweDM0MDAw
MDA5IH0sCi0gIHsgMHgxZjgwMTdmMCwgMHgzYzAwMDAwOSB9LAotICB7IDB4MjU4MDE4MDAsIDB4
NTQwMDAwMDUgfSwKLSAgeyAweDI1MDAxODA2LCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgyNTgwMTgw
NywgMHg1NDAwMDAwMyB9LAotICB7IDB4MjU4MDE4MGIsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDI1
MDAxODBlLCAweDc0MDAwMDAwIH0sCi0gIHsgMHgyNTgwMTgxMCwgMHgzNDAwMDAwOSB9LAotICB7
IDB4MjU4MDE4MjAsIDB4MWMwMDAwMjIgfSwKLSAgeyAweDI1MDAxODQzLCAweDE4MDAwMDAwIH0s
Ci0gIHsgMHgyNTgwMTg0NCwgMHgxYzAwMDAzMyB9LAotICB7IDB4MjU4MDE4ODAsIDB4MWMwMDAw
MjggfSwKLSAgeyAweDI1MDAxOGE5LCAweDMwMDAwMDAwIH0sCi0gIHsgMHgyMjgwMTkwMCwgMHgx
YzAwMDAxYyB9LAotICB7IDB4MjI4MDE5MjAsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDIyODAxOTIz
LCAweDI4MDAwMDAzIH0sCi0gIHsgMHgyMjgwMTkyNywgMHgzMDAwMDAwMSB9LAotICB7IDB4MjI4
MDE5MjksIDB4MjgwMDAwMDIgfSwKLSAgeyAweDIyODAxOTMwLCAweDI4MDAwMDAxIH0sCi0gIHsg
MHgyMjAwMTkzMiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MjI4MDE5MzMsIDB4MjgwMDAwMDUgfSwK
LSAgeyAweDIyODAxOTM5LCAweDMwMDAwMDAyIH0sCi0gIHsgMHgyMjAwMTk0MCwgMHg2ODAwMDAw
MCB9LAotICB7IDB4MjI4MDE5NDQsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDIyODAxOTQ2LCAweDM0
MDAwMDA5IH0sCi0gIHsgMHgzNDgwMTk1MCwgMHgxYzAwMDAxZCB9LAotICB7IDB4MzQ4MDE5NzAs
IDB4MWMwMDAwMDQgfSwKLSAgeyAweDI3ODAxOTgwLCAweDFjMDAwMDI5IH0sCi0gIHsgMHgyNzgw
MTliMCwgMHgyODAwMDAxMCB9LAotICB7IDB4Mjc4MDE5YzEsIDB4MWMwMDAwMDYgfSwKLSAgeyAw
eDI3ODAxOWM4LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgyNzgwMTlkMCwgMHgzNDAwMDAwOSB9LAot
ICB7IDB4Mjc4MDE5ZGUsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDFmODAxOWUwLCAweDY4MDAwMDFm
IH0sCi0gIHsgMHgwNTgwMWEwMCwgMHgxYzAwMDAxNiB9LAotICB7IDB4MDU4MDFhMTcsIDB4MzAw
MDAwMDEgfSwKLSAgeyAweDA1ODAxYTE5LCAweDI4MDAwMDAyIH0sCi0gIHsgMHgwNTgwMWExZSwg
MHg1NDAwMDAwMSB9LAotICB7IDB4MjE4MDFkMDAsIDB4MTQwMDAwMmIgfSwKLSAgeyAweDIxODAx
ZDJjLCAweDE4MDAwMDM1IH0sCi0gIHsgMHgyMTgwMWQ2MiwgMHgxNDAwMDAxNSB9LAotICB7IDB4
MGMwMDFkNzgsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDIxODAxZDc5LCAweDE0MDAwMDIxIH0sCi0g
IHsgMHgyMTgwMWQ5YiwgMHgxODAwMDAyNCB9LAotICB7IDB4MWI4MDFkYzAsIDB4MzAwMDAwMDMg
fSwKLSAgeyAweDIxMDAxZTAwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUwMSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlMDIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTAzLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUwNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
MDUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTA2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWUwNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMDgsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZTA5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUwYSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlMGIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTBjLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWUwZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMGUsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTBmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUx
MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZTEyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxMywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlMTQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTE1LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWUxNiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMTcsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZTE4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUxOSwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMWEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTFi
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUxYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlMWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTFlLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWUxZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMjAsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZTIxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUyMiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlMjMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTI0LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyNSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMjYs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTI3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MWUyOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMjksIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZTJhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUyYiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlMmMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTJkLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWUyZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlMmYsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZTMwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUzMSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZTMzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlMzUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTM2LCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWUzNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlMzgsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZTM5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWUzYSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlM2IsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTNjLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWUzZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
M2UsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTNmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWU0MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNDEsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZTQyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0MywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlNDQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTQ1LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWU0NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNDcsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTQ4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU0
OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZTRiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU0YywgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlNGQsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTRlLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWU0ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNTAsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZTUxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU1MiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTU0
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1NSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlNTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTU3LCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWU1OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNTksIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZTVhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU1YiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlNWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTVkLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU1ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNWYs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTYwLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWU2MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNjIsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZTYzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2NCwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDFlNjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTY2LCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWU2NywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlNjgsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZTY5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU2YSwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNmIsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZTZjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU2ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlNmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTZmLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWU3MCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlNzEsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZTcyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU3MywgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlNzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTc1LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU3NiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
NzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTc4LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWU3OSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlN2EsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZTdiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU3YywgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlN2QsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTdlLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWU3ZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlODAsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTgxLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU4
MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlODMsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIx
MDAxZTg0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4NSwgMHgxNDAwZmZmZiB9LAotICB7
IDB4MjEwMDFlODYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZTg3LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgyMTAwMWU4OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlODksIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDIxMDAxZThhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWU4YiwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MjEwMDFlOGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZThk
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU4ZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEw
MDFlOGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZTkwLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgyMTAwMWU5MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlOTIsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDIxMDAxZTkzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWU5NCwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MjEwMDFlOTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxODAxZTk2LCAweDE0
MDAwMDA0IH0sCi0gIHsgMHgyMTAwMWU5YiwgMHgxNDAwZmZjNSB9LAotICB7IDB4MjEwMDFlYTAs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWExLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAw
MWVhMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYTMsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDIxMDAxZWE0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhNSwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MjEwMDFlYTYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWE3LCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgyMTAwMWVhOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYTksIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDIxMDAxZWFhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVhYiwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYWMsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAx
ZWFkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVhZSwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MjEwMDFlYWYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWIwLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgyMTAwMWViMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYjIsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDIxMDAxZWIzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWViNCwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MjEwMDFlYjUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWI2LCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWViNywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFl
YjgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWI5LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgy
MTAwMWViYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYmIsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDIxMDAxZWJjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWViZCwgMHgxNDAwZmZmZiB9
LAotICB7IDB4MjEwMDFlYmUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWJmLCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgyMTAwMWVjMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlYzEsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWMyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVj
MywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlYzQsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIx
MDAxZWM1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjNiwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MjEwMDFlYzcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWM4LCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgyMTAwMWVjOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlY2EsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDIxMDAxZWNiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVjYywgMHgy
NDAwMDAwMSB9LAotICB7IDB4MjEwMDFlY2QsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWNl
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVjZiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEw
MDFlZDAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWQxLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgyMTAwMWVkMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZDMsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDIxMDAxZWQ0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVkNSwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MjEwMDFlZDYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWQ3LCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVkOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZDks
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWRhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAw
MWVkYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZGMsIDB4MjQwMDAwMDEgfSwKLSAgeyAw
eDIxMDAxZWRkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVkZSwgMHgyNDAwMDAwMSB9LAot
ICB7IDB4MjEwMDFlZGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWUwLCAweDI0MDAwMDAx
IH0sCi0gIHsgMHgyMTAwMWVlMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZTIsIDB4MjQw
MDAwMDEgfSwKLSAgeyAweDIxMDAxZWUzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVlNCwg
MHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAx
ZWU2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlNywgMHgxNDAwZmZmZiB9LAotICB7IDB4
MjEwMDFlZTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWU5LCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgyMTAwMWVlYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFlZWIsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDIxMDAxZWVjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgyMTAwMWVlZCwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MjEwMDFlZWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDIxMDAxZWVmLCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVmMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MjEwMDFl
ZjEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWYyLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgy
MTAwMWVmMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MjEwMDFlZjQsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDIxMDAxZWY1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgyMTAwMWVmNiwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MjEwMDFlZjcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDIxMDAxZWY4LCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgyMTAwMWVmOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MTMwMDFmMDAsIDB4
MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjAxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYw
MiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMDMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEz
MDAxZjA0LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYwNSwgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmMDYsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjA3LCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWYwOCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMDksIDB4MjQwMGZm
ZjggfSwKLSAgeyAweDEzMDAxZjBhLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYwYiwgMHgy
NDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMGMsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjBk
LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYwZSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmMGYsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjEwLCAweDE0MDAwMDA4IH0sCi0gIHsg
MHgxMzAwMWYxMSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMTIsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjEzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYxNCwgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmMTUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjE4LCAweDI0
MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYxOSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMWEs
IDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjFiLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAw
MWYxYywgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMWQsIDB4MjQwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZjIwLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYyMSwgMHgxNDAwMDAwOCB9LAot
ICB7IDB4MTMwMDFmMjIsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjIzLCAweDE0MDAwMDA4
IH0sCi0gIHsgMHgxMzAwMWYyNCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjUsIDB4MTQw
MDAwMDggfSwKLSAgeyAweDEzMDAxZjI2LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYyNywg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMjgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAx
ZjI5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYyYSwgMHgyNDAwZmZmOCB9LAotICB7IDB4
MTMwMDFmMmIsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjJjLCAweDI0MDBmZmY4IH0sCi0g
IHsgMHgxMzAwMWYyZCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmMmUsIDB4MjQwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZjJmLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYzMCwgMHgxNDAw
MDAwOCB9LAotICB7IDB4MTMwMDFmMzEsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjMyLCAw
eDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWYzMywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFm
MzQsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjM1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgx
MzAwMWYzNiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmMzcsIDB4MTQwMDAwMDggfSwKLSAg
eyAweDEzMDAxZjM4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYzOSwgMHgyNDAwZmZmOCB9
LAotICB7IDB4MTMwMDFmM2EsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjNiLCAweDI0MDBm
ZmY4IH0sCi0gIHsgMHgxMzAwMWYzYywgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmM2QsIDB4
MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjNlLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWYz
ZiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNDAsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEz
MDAxZjQxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY0MiwgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmNDMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjQ0LCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWY0NSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNDgsIDB4MjQwMGZm
ZjggfSwKLSAgeyAweDEzMDAxZjQ5LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY0YSwgMHgy
NDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNGIsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjRj
LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY0ZCwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmNTAsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZjUxLCAweDE0MDAwMDA4IH0sCi0gIHsg
MHgxMzAwMWY1MiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmNTMsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjU0LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzAwMWY1NSwgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmNTYsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDEzMDAxZjU3LCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY1OSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNWIs
IDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjVkLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAw
MWY1ZiwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNjAsIDB4MTQwMDAwMDggfSwKLSAgeyAw
eDEzMDAxZjYxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY2MiwgMHgxNDAwMDAwOCB9LAot
ICB7IDB4MTMwMDFmNjMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjY0LCAweDE0MDAwMDA4
IH0sCi0gIHsgMHgxMzAwMWY2NSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmNjYsIDB4MTQw
MDAwMDggfSwKLSAgeyAweDEzMDAxZjY3LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY2OCwg
MHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNjksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAx
ZjZhLCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY2YiwgMHgyNDAwZmZmOCB9LAotICB7IDB4
MTMwMDFmNmMsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZjZkLCAweDI0MDBmZmY4IH0sCi0g
IHsgMHgxMzAwMWY2ZSwgMHgyNDAwZmZmOCB9LAotICB7IDB4MTMwMDFmNmYsIDB4MjQwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZjcwLCAweDE0MDAwMDRhIH0sCi0gIHsgMHgxMzAwMWY3MSwgMHgxNDAw
MDA0YSB9LAotICB7IDB4MTMwMDFmNzIsIDB4MTQwMDAwNTYgfSwKLSAgeyAweDEzMDAxZjczLCAw
eDE0MDAwMDU2IH0sCi0gIHsgMHgxMzAwMWY3NCwgMHgxNDAwMDA1NiB9LAotICB7IDB4MTMwMDFm
NzUsIDB4MTQwMDAwNTYgfSwKLSAgeyAweDEzMDAxZjc2LCAweDE0MDAwMDY0IH0sCi0gIHsgMHgx
MzAwMWY3NywgMHgxNDAwMDA2NCB9LAotICB7IDB4MTMwMDFmNzgsIDB4MTQwMDAwODAgfSwKLSAg
eyAweDEzMDAxZjc5LCAweDE0MDAwMDgwIH0sCi0gIHsgMHgxMzAwMWY3YSwgMHgxNDAwMDA3MCB9
LAotICB7IDB4MTMwMDFmN2IsIDB4MTQwMDAwNzAgfSwKLSAgeyAweDEzMDAxZjdjLCAweDE0MDAw
MDdlIH0sCi0gIHsgMHgxMzAwMWY3ZCwgMHgxNDAwMDA3ZSB9LAotICB7IDB4MTMwMDFmODAsIDB4
MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjgxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY4
MiwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmODMsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEz
MDAxZjg0LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY4NSwgMHgxNDAwMDAwOCB9LAotICB7
IDB4MTMwMDFmODYsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjg3LCAweDE0MDAwMDA4IH0s
Ci0gIHsgMHgxMzAwMWY4OCwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmODksIDB4MjAwMGZm
ZjggfSwKLSAgeyAweDEzMDAxZjhhLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY4YiwgMHgy
MDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOGMsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjhk
LCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY4ZSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMw
MDFmOGYsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjkwLCAweDE0MDAwMDA4IH0sCi0gIHsg
MHgxMzAwMWY5MSwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmOTIsIDB4MTQwMDAwMDggfSwK
LSAgeyAweDEzMDAxZjkzLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY5NCwgMHgxNDAwMDAw
OCB9LAotICB7IDB4MTMwMDFmOTUsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZjk2LCAweDE0
MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWY5NywgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmOTgs
IDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjk5LCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAw
MWY5YSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmOWIsIDB4MjAwMGZmZjggfSwKLSAgeyAw
eDEzMDAxZjljLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWY5ZCwgMHgyMDAwZmZmOCB9LAot
ICB7IDB4MTMwMDFmOWUsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZjlmLCAweDIwMDBmZmY4
IH0sCi0gIHsgMHgxMzAwMWZhMCwgMHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYTEsIDB4MTQw
MDAwMDggfSwKLSAgeyAweDEzMDAxZmEyLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhMywg
MHgxNDAwMDAwOCB9LAotICB7IDB4MTMwMDFmYTQsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAx
ZmE1LCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzAwMWZhNiwgMHgxNDAwMDAwOCB9LAotICB7IDB4
MTMwMDFmYTcsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmE4LCAweDIwMDBmZmY4IH0sCi0g
IHsgMHgxMzAwMWZhOSwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFmYWEsIDB4MjAwMGZmZjgg
fSwKLSAgeyAweDEzMDAxZmFiLCAweDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZhYywgMHgyMDAw
ZmZmOCB9LAotICB7IDB4MTMwMDFmYWQsIDB4MjAwMGZmZjggfSwKLSAgeyAweDEzMDAxZmFlLCAw
eDIwMDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZhZiwgMHgyMDAwZmZmOCB9LAotICB7IDB4MTMwMDFm
YjAsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmIxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgx
MzAwMWZiMiwgMHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmYjMsIDB4MTQwMDAwMDkgfSwKLSAg
eyAweDEzMDAxZmI0LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzgwMWZiNiwgMHgxNDAwMDAwMSB9
LAotICB7IDB4MTMwMDFmYjgsIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZmI5LCAweDI0MDBm
ZmY4IH0sCi0gIHsgMHgxMzAwMWZiYSwgMHgyNDAwZmZiNiB9LAotICB7IDB4MTMwMDFmYmIsIDB4
MjQwMGZmYjYgfSwKLSAgeyAweDEzMDAxZmJjLCAweDIwMDBmZmY3IH0sCi0gIHsgMHgxMzAwMWZi
ZCwgMHg2MDAwMDAwMCB9LAotICB7IDB4MTMwMDFmYmUsIDB4MTQwMGUzZGIgfSwKLSAgeyAweDEz
ODAxZmJmLCAweDYwMDAwMDAyIH0sCi0gIHsgMHgxMzAwMWZjMiwgMHgxNDAwMDAwMCB9LAotICB7
IDB4MTMwMDFmYzMsIDB4MTQwMDAwMDkgfSwKLSAgeyAweDEzMDAxZmM0LCAweDE0MDAwMDAwIH0s
Ci0gIHsgMHgxMzgwMWZjNiwgMHgxNDAwMDAwMSB9LAotICB7IDB4MTMwMDFmYzgsIDB4MjQwMGZm
YWEgfSwKLSAgeyAweDEzMDAxZmM5LCAweDI0MDBmZmFhIH0sCi0gIHsgMHgxMzAwMWZjYSwgMHgy
NDAwZmZhYSB9LAotICB7IDB4MTMwMDFmY2IsIDB4MjQwMGZmYWEgfSwKLSAgeyAweDEzMDAxZmNj
LCAweDIwMDBmZmY3IH0sCi0gIHsgMHgxMzgwMWZjZCwgMHg2MDAwMDAwMiB9LAotICB7IDB4MTMw
MDFmZDAsIDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmQxLCAweDE0MDAwMDA4IH0sCi0gIHsg
MHgxMzgwMWZkMiwgMHgxNDAwMDAwMSB9LAotICB7IDB4MTM4MDFmZDYsIDB4MTQwMDAwMDEgfSwK
LSAgeyAweDEzMDAxZmQ4LCAweDI0MDBmZmY4IH0sCi0gIHsgMHgxMzAwMWZkOSwgMHgyNDAwZmZm
OCB9LAotICB7IDB4MTMwMDFmZGEsIDB4MjQwMGZmOWMgfSwKLSAgeyAweDEzMDAxZmRiLCAweDI0
MDBmZjljIH0sCi0gIHsgMHgxMzgwMWZkZCwgMHg2MDAwMDAwMiB9LAotICB7IDB4MTMwMDFmZTAs
IDB4MTQwMDAwMDggfSwKLSAgeyAweDEzMDAxZmUxLCAweDE0MDAwMDA4IH0sCi0gIHsgMHgxMzgw
MWZlMiwgMHgxNDAwMDAwMiB9LAotICB7IDB4MTMwMDFmZTUsIDB4MTQwMDAwMDcgfSwKLSAgeyAw
eDEzODAxZmU2LCAweDE0MDAwMDAxIH0sCi0gIHsgMHgxMzAwMWZlOCwgMHgyNDAwZmZmOCB9LAot
ICB7IDB4MTMwMDFmZTksIDB4MjQwMGZmZjggfSwKLSAgeyAweDEzMDAxZmVhLCAweDI0MDBmZjkw
IH0sCi0gIHsgMHgxMzAwMWZlYiwgMHgyNDAwZmY5MCB9LAotICB7IDB4MTMwMDFmZWMsIDB4MjQw
MGZmZjkgfSwKLSAgeyAweDEzODAxZmVkLCAweDYwMDAwMDAyIH0sCi0gIHsgMHgxMzAwMWZmMiwg
MHgxNDAwMDAwMCB9LAotICB7IDB4MTMwMDFmZjMsIDB4MTQwMDAwMDkgfSwKLSAgeyAweDEzMDAx
ZmY0LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgxMzgwMWZmNiwgMHgxNDAwMDAwMSB9LAotICB7IDB4
MTMwMDFmZjgsIDB4MjQwMGZmODAgfSwKLSAgeyAweDEzMDAxZmY5LCAweDI0MDBmZjgwIH0sCi0g
IHsgMHgxMzAwMWZmYSwgMHgyNDAwZmY4MiB9LAotICB7IDB4MTMwMDFmZmIsIDB4MjQwMGZmODIg
fSwKLSAgeyAweDEzMDAxZmZjLCAweDIwMDBmZmY3IH0sCi0gIHsgMHgxMzgwMWZmZCwgMHg2MDAw
MDAwMSB9LAotICB7IDB4MDk4MDIwMDAsIDB4NzQwMDAwMGEgfSwKLSAgeyAweDA5ODAyMDBiLCAw
eDA0MDAwMDA0IH0sCi0gIHsgMHgwOTgwMjAxMCwgMHg0NDAwMDAwNSB9LAotICB7IDB4MDk4MDIw
MTYsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5MDAyMDE4LCAweDUwMDAwMDAwIH0sCi0gIHsgMHgw
OTAwMjAxOSwgMHg0YzAwMDAwMCB9LAotICB7IDB4MDkwMDIwMWEsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5ODAyMDFiLCAweDUwMDAwMDAxIH0sCi0gIHsgMHgwOTAwMjAxZCwgMHg0YzAwMDAwMCB9
LAotICB7IDB4MDkwMDIwMWUsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDFmLCAweDUwMDAw
MDAwIH0sCi0gIHsgMHgwOTgwMjAyMCwgMHg1NDAwMDAwNyB9LAotICB7IDB4MDkwMDIwMjgsIDB4
NmMwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDI5LCAweDcwMDAwMDAwIH0sCi0gIHsgMHgwOTgwMjAy
YSwgMHgwNDAwMDAwNCB9LAotICB7IDB4MDkwMDIwMmYsIDB4NzQwMDAwMDAgfSwKLSAgeyAweDA5
ODAyMDMwLCAweDU0MDAwMDA4IH0sCi0gIHsgMHgwOTAwMjAzOSwgMHg1MDAwMDAwMCB9LAotICB7
IDB4MDkwMDIwM2EsIDB4NGMwMDAwMDAgfSwKLSAgeyAweDA5ODAyMDNiLCAweDU0MDAwMDAzIH0s
Ci0gIHsgMHgwOTgwMjAzZiwgMHg0MDAwMDAwMSB9LAotICB7IDB4MDk4MDIwNDEsIDB4NTQwMDAw
MDIgfSwKLSAgeyAweDA5MDAyMDQ0LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjA0NSwgMHg1
ODAwMDAwMCB9LAotICB7IDB4MDkwMDIwNDYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODAyMDQ3
LCAweDU0MDAwMDBhIH0sCi0gIHsgMHgwOTAwMjA1MiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkw
MDIwNTMsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDU0LCAweDQwMDAwMDAwIH0sCi0gIHsg
MHgwOTgwMjA1NSwgMHg1NDAwMDAwOSB9LAotICB7IDB4MDkwMDIwNWYsIDB4NzQwMDAwMDAgfSwK
LSAgeyAweDA5ODAyMDYwLCAweDA0MDAwMDAzIH0sCi0gIHsgMHgwOTgwMjA2YSwgMHgwNDAwMDAw
NSB9LAotICB7IDB4MDkwMDIwNzAsIDB4M2MwMDAwMDAgfSwKLSAgeyAweDIxMDAyMDcxLCAweDE0
MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjA3NCwgMHgzYzAwMDAwNSB9LAotICB7IDB4MDk4MDIwN2Es
IDB4NjQwMDAwMDIgfSwKLSAgeyAweDA5MDAyMDdkLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAw
MjA3ZSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MjEwMDIwN2YsIDB4MTQwMDAwMDAgfSwKLSAgeyAw
eDA5ODAyMDgwLCAweDNjMDAwMDA5IH0sCi0gIHsgMHgwOTgwMjA4YSwgMHg2NDAwMDAwMiB9LAot
ICB7IDB4MDkwMDIwOGQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMDhlLCAweDQ4MDAwMDAw
IH0sCi0gIHsgMHgyMTgwMjA5MCwgMHgxODAwMDAwNCB9LAotICB7IDB4MDk4MDIwYTAsIDB4NWMw
MDAwMTUgfSwKLSAgeyAweDFiODAyMGQwLCAweDMwMDAwMDBjIH0sCi0gIHsgMHgxYjgwMjBkZCwg
MHgyYzAwMDAwMyB9LAotICB7IDB4MWIwMDIwZTEsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDFiODAy
MGUyLCAweDJjMDAwMDAyIH0sCi0gIHsgMHgxYjgwMjBlNSwgMHgzMDAwMDAwNiB9LAotICB7IDB4
MDk4MDIxMDAsIDB4NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAyMTAyLCAweDI0MDAwMDAwIH0sCi0g
IHsgMHgwOTgwMjEwMywgMHg2ODAwMDAwMyB9LAotICB7IDB4MDkwMDIxMDcsIDB4MjQwMDAwMDAg
fSwKLSAgeyAweDA5ODAyMTA4LCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwOTAwMjEwYSwgMHgxNDAw
MDAwMCB9LAotICB7IDB4MDk4MDIxMGIsIDB4MjQwMDAwMDIgfSwKLSAgeyAweDA5ODAyMTBlLCAw
eDE0MDAwMDAxIH0sCi0gIHsgMHgwOTgwMjExMCwgMHgyNDAwMDAwMiB9LAotICB7IDB4MDkwMDIx
MTMsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTE0LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMjExNSwgMHgyNDAwMDAwMCB9LAotICB7IDB4MDk4MDIxMTYsIDB4NjgwMDAwMDIgfSwKLSAg
eyAweDA5ODAyMTE5LCAweDI0MDAwMDA0IH0sCi0gIHsgMHgwOTgwMjExZSwgMHg2ODAwMDAwNSB9
LAotICB7IDB4MDkwMDIxMjQsIDB4MjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTI1LCAweDY4MDAw
MDAwIH0sCi0gIHsgMHgxMzAwMjEyNiwgMHgyNDAwZTJhMyB9LAotICB7IDB4MDkwMDIxMjcsIDB4
NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTI4LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjEy
OSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MjEwMDIxMmEsIDB4MjQwMGRmNDEgfSwKLSAgeyAweDIx
MDAyMTJiLCAweDI0MDBkZmJhIH0sCi0gIHsgMHgwOTgwMjEyYywgMHgyNDAwMDAwMSB9LAotICB7
IDB4MDkwMDIxMmUsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTJmLCAweDE0MDAwMDAwIH0s
Ci0gIHsgMHgwOTgwMjEzMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MDkwMDIxMzIsIDB4NjgwMDAw
MDAgfSwKLSAgeyAweDA5MDAyMTMzLCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjEzNCwgMHgx
NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxMzUsIDB4MWMwMDAwMDMgfSwKLSAgeyAweDA5MDAyMTM5
LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjEzYSwgMHg2ODAwMDAwMSB9LAotICB7IDB4MDk4
MDIxM2MsIDB4MTQwMDAwMDEgfSwKLSAgeyAweDA5ODAyMTNlLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwOTgwMjE0MCwgMHg2NDAwMDAwNCB9LAotICB7IDB4MDkwMDIxNDUsIDB4MjQwMDAwMDAgfSwK
LSAgeyAweDA5ODAyMTQ2LCAweDE0MDAwMDAzIH0sCi0gIHsgMHgwOTAwMjE0YSwgMHg2ODAwMDAw
MCB9LAotICB7IDB4MDkwMDIxNGIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDAyMTRjLCAweDY4
MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjE1MywgMHgzYzAwMDAwYyB9LAotICB7IDB4MDkwMDIxNjAs
IDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTYxLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAw
MjE2MiwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjMsIDB4MzgwMDAwMTAgfSwKLSAgeyAw
eDA5MDAyMTY0LCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2NSwgMHgzODAwMDAxMCB9LAot
ICB7IDB4MDkwMDIxNjYsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTY3LCAweDM4MDAwMDEw
IH0sCi0gIHsgMHgwOTAwMjE2OCwgMHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNjksIDB4Mzgw
MDAwMTAgfSwKLSAgeyAweDA5MDAyMTZhLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2Yiwg
MHgzODAwMDAxMCB9LAotICB7IDB4MDkwMDIxNmMsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAy
MTZkLCAweDM4MDAwMDEwIH0sCi0gIHsgMHgwOTAwMjE2ZSwgMHgzODAwMDAxMCB9LAotICB7IDB4
MDkwMDIxNmYsIDB4MzgwMDAwMTAgfSwKLSAgeyAweDA5MDAyMTcwLCAweDM4MDBmZmYwIH0sCi0g
IHsgMHgwOTAwMjE3MSwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxNzIsIDB4MzgwMGZmZjAg
fSwKLSAgeyAweDA5MDAyMTczLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3NCwgMHgzODAw
ZmZmMCB9LAotICB7IDB4MDkwMDIxNzUsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTc2LCAw
eDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3NywgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIx
NzgsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTc5LCAweDM4MDBmZmYwIH0sCi0gIHsgMHgw
OTAwMjE3YSwgMHgzODAwZmZmMCB9LAotICB7IDB4MDkwMDIxN2IsIDB4MzgwMGZmZjAgfSwKLSAg
eyAweDA5MDAyMTdjLCAweDM4MDBmZmYwIH0sCi0gIHsgMHgwOTAwMjE3ZCwgMHgzODAwZmZmMCB9
LAotICB7IDB4MDkwMDIxN2UsIDB4MzgwMGZmZjAgfSwKLSAgeyAweDA5MDAyMTdmLCAweDM4MDBm
ZmYwIH0sCi0gIHsgMHgwOTgwMjE4MCwgMHgzODAwMDAwMyB9LAotICB7IDB4MDk4MDIxOTAsIDB4
NjQwMDAwMDQgfSwKLSAgeyAweDA5ODAyMTk1LCAweDY4MDAwMDA0IH0sCi0gIHsgMHgwOTgwMjE5
YSwgMHg2NDAwMDAwMSB9LAotICB7IDB4MDk4MDIxOWMsIDB4NjgwMDAwMDMgfSwKLSAgeyAweDA5
MDAyMWEwLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjFhMSwgMHg2ODAwMDAwMSB9LAotICB7
IDB4MDkwMDIxYTMsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODAyMWE0LCAweDY4MDAwMDAxIH0s
Ci0gIHsgMHgwOTAwMjFhNiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDIxYTcsIDB4NjgwMDAw
MDYgfSwKLSAgeyAweDA5MDAyMWFlLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjFhZiwgMHg2
ODAwMDAxZSB9LAotICB7IDB4MDk4MDIxY2UsIDB4NjQwMDAwMDEgfSwKLSAgeyAweDA5ODAyMWQw
LCAweDY4MDAwMDAxIH0sCi0gIHsgMHgwOTAwMjFkMiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkw
MDIxZDMsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMWQ0LCAweDY0MDAwMDAwIH0sCi0gIHsg
MHgwOTgwMjFkNSwgMHg2ODAwMDAxZSB9LAotICB7IDB4MDk4MDIxZjQsIDB4NjQwMDAxMGIgfSwK
LSAgeyAweDA5ODAyMzAwLCAweDY4MDAwMDA3IH0sCi0gIHsgMHgwOTgwMjMwOCwgMHg2NDAwMDAw
MyB9LAotICB7IDB4MDk4MDIzMGMsIDB4NjgwMDAwMTMgfSwKLSAgeyAweDA5ODAyMzIwLCAweDY0
MDAwMDAxIH0sCi0gIHsgMHgwOTgwMjMyMiwgMHg2ODAwMDAwNiB9LAotICB7IDB4MDkwMDIzMjks
IDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyMzJhLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTgw
MjMyYiwgMHg2ODAwMDA1MCB9LAotICB7IDB4MDkwMDIzN2MsIDB4NjQwMDAwMDAgfSwKLSAgeyAw
eDA5ODAyMzdkLCAweDY4MDAwMDFkIH0sCi0gIHsgMHgwOTgwMjM5YiwgMHg2NDAwMDAxOCB9LAot
ICB7IDB4MDkwMDIzYjQsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyM2I1LCAweDQ4MDAwMDAw
IH0sCi0gIHsgMHgwOTAwMjNiNiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MDk4MDIzYjcsIDB4Njgw
MDAwMjQgfSwKLSAgeyAweDA5ODAyNDAwLCAweDY4MDAwMDI2IH0sCi0gIHsgMHgwOTgwMjQ0MCwg
MHg2ODAwMDAwYSB9LAotICB7IDB4MDk4MDI0NjAsIDB4M2MwMDAwM2IgfSwKLSAgeyAweDA5ODAy
NDljLCAweDY4MDAwMDE5IH0sCi0gIHsgMHgwOTAwMjRiNiwgMHg2ODAwMDAxYSB9LAotICB7IDB4
MDkwMDI0YjcsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGI4LCAweDY4MDAwMDFhIH0sCi0g
IHsgMHgwOTAwMjRiOSwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YmEsIDB4NjgwMDAwMWEg
fSwKLSAgeyAweDA5MDAyNGJiLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiYywgMHg2ODAw
MDAxYSB9LAotICB7IDB4MDkwMDI0YmQsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGJlLCAw
eDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRiZiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0
YzAsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGMxLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgw
OTAwMjRjMiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzMsIDB4NjgwMDAwMWEgfSwKLSAg
eyAweDA5MDAyNGM0LCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjNSwgMHg2ODAwMDAxYSB9
LAotICB7IDB4MDkwMDI0YzYsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGM3LCAweDY4MDAw
MDFhIH0sCi0gIHsgMHgwOTAwMjRjOCwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0YzksIDB4
NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGNhLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRj
YiwgMHg2ODAwMDAxYSB9LAotICB7IDB4MDkwMDI0Y2MsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5
MDAyNGNkLCAweDY4MDAwMDFhIH0sCi0gIHsgMHgwOTAwMjRjZSwgMHg2ODAwMDAxYSB9LAotICB7
IDB4MDkwMDI0Y2YsIDB4NjgwMDAwMWEgfSwKLSAgeyAweDA5MDAyNGQwLCAweDY4MDBmZmU2IH0s
Ci0gIHsgMHgwOTAwMjRkMSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZDIsIDB4NjgwMGZm
ZTYgfSwKLSAgeyAweDA5MDAyNGQzLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkNCwgMHg2
ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZDUsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQ2
LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkNywgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkw
MDI0ZDgsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGQ5LCAweDY4MDBmZmU2IH0sCi0gIHsg
MHgwOTAwMjRkYSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZGIsIDB4NjgwMGZmZTYgfSwK
LSAgeyAweDA5MDAyNGRjLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRkZCwgMHg2ODAwZmZl
NiB9LAotICB7IDB4MDkwMDI0ZGUsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGRmLCAweDY4
MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRlMCwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTEs
IDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGUyLCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAw
MjRlMywgMHg2ODAwZmZlNiB9LAotICB7IDB4MDkwMDI0ZTQsIDB4NjgwMGZmZTYgfSwKLSAgeyAw
eDA5MDAyNGU1LCAweDY4MDBmZmU2IH0sCi0gIHsgMHgwOTAwMjRlNiwgMHg2ODAwZmZlNiB9LAot
ICB7IDB4MDkwMDI0ZTcsIDB4NjgwMGZmZTYgfSwKLSAgeyAweDA5MDAyNGU4LCAweDY4MDBmZmU2
IH0sCi0gIHsgMHgwOTAwMjRlOSwgMHg2ODAwZmZlNiB9LAotICB7IDB4MDk4MDI0ZWEsIDB4M2Mw
MDAwMTUgfSwKLSAgeyAweDA5ODAyNTAwLCAweDY4MDAwMGI2IH0sCi0gIHsgMHgwOTAwMjViNywg
MHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDI1YjgsIDB4NjgwMDAwMDggfSwKLSAgeyAweDA5MDAy
NWMxLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgwMjVjMiwgMHg2ODAwMDAzNSB9LAotICB7IDB4
MDk4MDI1ZjgsIDB4NjQwMDAwMDcgfSwKLSAgeyAweDA5ODAyNjAwLCAweDY4MDAwMDZlIH0sCi0g
IHsgMHgwOTAwMjY2ZiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MDI2NzAsIDB4NjgwMDAwMmMg
fSwKLSAgeyAweDA5ODAyNmEwLCAweDY4MDAwMDExIH0sCi0gIHsgMHgwOTgwMjcwMSwgMHg2ODAw
MDAwMyB9LAotICB7IDB4MDk4MDI3MDYsIDB4NjgwMDAwMDMgfSwKLSAgeyAweDA5ODAyNzBjLCAw
eDY4MDAwMDFiIH0sCi0gIHsgMHgwOTgwMjcyOSwgMHg2ODAwMDAyMiB9LAotICB7IDB4MDkwMDI3
NGQsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDA5ODAyNzRmLCAweDY4MDAwMDAzIH0sCi0gIHsgMHgw
OTAwMjc1NiwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3NTgsIDB4NjgwMDAwMDYgfSwKLSAg
eyAweDA5ODAyNzYxLCAweDY4MDAwMDA2IH0sCi0gIHsgMHgwOTAwMjc2OCwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMDI3NjksIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzZhLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMjc2YiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NmMsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzZkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc2
ZSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NmYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5
MDAyNzcwLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjc3MSwgMHg0ODAwMDAwMCB9LAotICB7
IDB4MDkwMDI3NzIsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyNzczLCAweDQ4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMjc3NCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI3NzUsIDB4NDgwMDAw
MDAgfSwKLSAgeyAweDA5ODAyNzc2LCAweDNjMDAwMDFkIH0sCi0gIHsgMHgwOTAwMjc5NCwgMHg2
ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3OTgsIDB4NjgwMDAwMTcgfSwKLSAgeyAweDA5ODAyN2Ix
LCAweDY4MDAwMDBkIH0sCi0gIHsgMHgwOTgwMjdjMCwgMHg2NDAwMDAwNCB9LAotICB7IDB4MDkw
MDI3YzUsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyN2M2LCAweDQ4MDAwMDAwIH0sCi0gIHsg
MHgwOTgwMjdkMCwgMHg2NDAwMDAxNSB9LAotICB7IDB4MDkwMDI3ZTYsIDB4NTgwMDAwMDAgfSwK
LSAgeyAweDA5MDAyN2U3LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjdlOCwgMHg1ODAwMDAw
MCB9LAotICB7IDB4MDkwMDI3ZTksIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyN2VhLCAweDU4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjdlYiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDI3ZjAs
IDB4NjQwMDAwMGYgfSwKLSAgeyAweDA0ODAyODAwLCAweDY4MDAwMGZmIH0sCi0gIHsgMHgwOTgw
MjkwMCwgMHg2NDAwMDA4MiB9LAotICB7IDB4MDkwMDI5ODMsIDB4NTgwMDAwMDAgfSwKLSAgeyAw
eDA5MDAyOTg0LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4NSwgMHg1ODAwMDAwMCB9LAot
ICB7IDB4MDkwMDI5ODYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTg3LCAweDU4MDAwMDAw
IH0sCi0gIHsgMHgwOTAwMjk4OCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5ODksIDB4NTgw
MDAwMDAgfSwKLSAgeyAweDA5MDAyOThhLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4Yiwg
MHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OGMsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAy
OThkLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk4ZSwgMHg0ODAwMDAwMCB9LAotICB7IDB4
MDkwMDI5OGYsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTkwLCAweDQ4MDAwMDAwIH0sCi0g
IHsgMHgwOTAwMjk5MSwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5OTIsIDB4NDgwMDAwMDAg
fSwKLSAgeyAweDA5MDAyOTkzLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5NCwgMHg0ODAw
MDAwMCB9LAotICB7IDB4MDkwMDI5OTUsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDAyOTk2LCAw
eDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjk5NywgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5
OTgsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODAyOTk5LCAweDY0MDAwMDNlIH0sCi0gIHsgMHgw
OTAwMjlkOCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDI5ZDksIDB4NDgwMDAwMDAgfSwKLSAg
eyAweDA5MDAyOWRhLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMjlkYiwgMHg0ODAwMDAwMCB9
LAotICB7IDB4MDk4MDI5ZGMsIDB4NjQwMDAwMWYgfSwKLSAgeyAweDA5MDAyOWZjLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMjlmZCwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDI5ZmUsIDB4
NjQwMDAxMDEgfSwKLSAgeyAweDA5ODAyYjAwLCAweDY4MDAwMDEzIH0sCi0gIHsgMHgxMTAwMmMw
MCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDEx
MDAyYzAyLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwMywgMHgyNDAwMDAzMCB9LAotICB7
IDB4MTEwMDJjMDQsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzA1LCAweDI0MDAwMDMwIH0s
Ci0gIHsgMHgxMTAwMmMwNiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMDcsIDB4MjQwMDAw
MzAgfSwKLSAgeyAweDExMDAyYzA4LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwOSwgMHgy
NDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMGEsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzBi
LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMwYywgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEw
MDJjMGQsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzBlLCAweDI0MDAwMDMwIH0sCi0gIHsg
MHgxMTAwMmMwZiwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTAsIDB4MjQwMDAwMzAgfSwK
LSAgeyAweDExMDAyYzExLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxMiwgMHgyNDAwMDAz
MCB9LAotICB7IDB4MTEwMDJjMTMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzE0LCAweDI0
MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxNSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTYs
IDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzE3LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAw
MmMxOCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMTksIDB4MjQwMDAwMzAgfSwKLSAgeyAw
eDExMDAyYzFhLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMxYiwgMHgyNDAwMDAzMCB9LAot
ICB7IDB4MTEwMDJjMWMsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzFkLCAweDI0MDAwMDMw
IH0sCi0gIHsgMHgxMTAwMmMxZSwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMWYsIDB4MjQw
MDAwMzAgfSwKLSAgeyAweDExMDAyYzIwLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyMSwg
MHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMjIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAy
YzIzLCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyNCwgMHgyNDAwMDAzMCB9LAotICB7IDB4
MTEwMDJjMjUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzI2LCAweDI0MDAwMDMwIH0sCi0g
IHsgMHgxMTAwMmMyNywgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJjMjgsIDB4MjQwMDAwMzAg
fSwKLSAgeyAweDExMDAyYzI5LCAweDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyYSwgMHgyNDAw
MDAzMCB9LAotICB7IDB4MTEwMDJjMmIsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzJjLCAw
eDI0MDAwMDMwIH0sCi0gIHsgMHgxMTAwMmMyZCwgMHgyNDAwMDAzMCB9LAotICB7IDB4MTEwMDJj
MmUsIDB4MjQwMDAwMzAgfSwKLSAgeyAweDExMDAyYzMwLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgx
MTAwMmMzMSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzIsIDB4MTQwMGZmZDAgfSwKLSAg
eyAweDExMDAyYzMzLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzNCwgMHgxNDAwZmZkMCB9
LAotICB7IDB4MTEwMDJjMzUsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzM2LCAweDE0MDBm
ZmQwIH0sCi0gIHsgMHgxMTAwMmMzNywgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjMzgsIDB4
MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzM5LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMz
YSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjM2IsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDEx
MDAyYzNjLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmMzZCwgMHgxNDAwZmZkMCB9LAotICB7
IDB4MTEwMDJjM2UsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzNmLCAweDE0MDBmZmQwIH0s
Ci0gIHsgMHgxMTAwMmM0MCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDEsIDB4MTQwMGZm
ZDAgfSwKLSAgeyAweDExMDAyYzQyLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0MywgMHgx
NDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNDQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQ1
LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0NiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEw
MDJjNDcsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzQ4LCAweDE0MDBmZmQwIH0sCi0gIHsg
MHgxMTAwMmM0OSwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNGEsIDB4MTQwMGZmZDAgfSwK
LSAgeyAweDExMDAyYzRiLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0YywgMHgxNDAwZmZk
MCB9LAotICB7IDB4MTEwMDJjNGQsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzRlLCAweDE0
MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM0ZiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTAs
IDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzUxLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAw
MmM1MiwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTMsIDB4MTQwMGZmZDAgfSwKLSAgeyAw
eDExMDAyYzU0LCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1NSwgMHgxNDAwZmZkMCB9LAot
ICB7IDB4MTEwMDJjNTYsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAyYzU3LCAweDE0MDBmZmQw
IH0sCi0gIHsgMHgxMTAwMmM1OCwgMHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNTksIDB4MTQw
MGZmZDAgfSwKLSAgeyAweDExMDAyYzVhLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1Yiwg
MHgxNDAwZmZkMCB9LAotICB7IDB4MTEwMDJjNWMsIDB4MTQwMGZmZDAgfSwKLSAgeyAweDExMDAy
YzVkLCAweDE0MDBmZmQwIH0sCi0gIHsgMHgxMTAwMmM1ZSwgMHgxNDAwZmZkMCB9LAotICB7IDB4
MGEwMDJjODAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzgxLCAweDE0MDBmZmZmIH0sCi0g
IHsgMHgwYTAwMmM4MiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjODMsIDB4MTQwMGZmZmYg
fSwKLSAgeyAweDBhMDAyYzg0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM4NSwgMHgxNDAw
ZmZmZiB9LAotICB7IDB4MGEwMDJjODYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzg3LCAw
eDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM4OCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJj
ODksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzhhLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgw
YTAwMmM4YiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOGMsIDB4MjQwMDAwMDEgfSwKLSAg
eyAweDBhMDAyYzhkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM4ZSwgMHgyNDAwMDAwMSB9
LAotICB7IDB4MGEwMDJjOGYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyYzkwLCAweDI0MDAw
MDAxIH0sCi0gIHsgMHgwYTAwMmM5MSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOTIsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzkzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmM5
NCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOTUsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBh
MDAyYzk2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5NywgMHgxNDAwZmZmZiB9LAotICB7
IDB4MGEwMDJjOTgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzk5LCAweDE0MDBmZmZmIH0s
Ci0gIHsgMHgwYTAwMmM5YSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjOWIsIDB4MTQwMGZm
ZmYgfSwKLSAgeyAweDBhMDAyYzljLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmM5ZCwgMHgx
NDAwZmZmZiB9LAotICB7IDB4MGEwMDJjOWUsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyYzlm
LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhMCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEw
MDJjYTEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2EyLCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwYTAwMmNhMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYTQsIDB4MjQwMDAwMDEgfSwK
LSAgeyAweDBhMDAyY2E1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNhNiwgMHgyNDAwMDAw
MSB9LAotICB7IDB4MGEwMDJjYTcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2E4LCAweDI0
MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNhOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYWEs
IDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2FiLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAw
MmNhYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYWQsIDB4MTQwMGZmZmYgfSwKLSAgeyAw
eDBhMDAyY2FlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNhZiwgMHgxNDAwZmZmZiB9LAot
ICB7IDB4MGEwMDJjYjAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2IxLCAweDE0MDBmZmZm
IH0sCi0gIHsgMHgwYTAwMmNiMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYjMsIDB4MTQw
MGZmZmYgfSwKLSAgeyAweDBhMDAyY2I0LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNiNSwg
MHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYjYsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAy
Y2I3LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNiOCwgMHgyNDAwMDAwMSB9LAotICB7IDB4
MGEwMDJjYjksIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2JhLCAweDI0MDAwMDAxIH0sCi0g
IHsgMHgwYTAwMmNiYiwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjYmMsIDB4MjQwMDAwMDEg
fSwKLSAgeyAweDBhMDAyY2JkLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNiZSwgMHgyNDAw
MDAwMSB9LAotICB7IDB4MGEwMDJjYmYsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2MwLCAw
eDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNjMSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJj
YzIsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2MzLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgw
YTAwMmNjNCwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjYzUsIDB4MTQwMGZmZmYgfSwKLSAg
eyAweDBhMDAyY2M2LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNjNywgMHgxNDAwZmZmZiB9
LAotICB7IDB4MGEwMDJjYzgsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2M5LCAweDE0MDBm
ZmZmIH0sCi0gIHsgMHgwYTAwMmNjYSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjY2IsIDB4
MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2NjLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNj
ZCwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjY2UsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBh
MDAyY2NmLCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNkMCwgMHgyNDAwMDAwMSB9LAotICB7
IDB4MGEwMDJjZDEsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2QyLCAweDI0MDAwMDAxIH0s
Ci0gIHsgMHgwYTAwMmNkMywgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEwMDJjZDQsIDB4MjQwMDAw
MDEgfSwKLSAgeyAweDBhMDAyY2Q1LCAweDE0MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNkNiwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZDcsIDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2Q4
LCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNkOSwgMHgxNDAwZmZmZiB9LAotICB7IDB4MGEw
MDJjZGEsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2RiLCAweDE0MDBmZmZmIH0sCi0gIHsg
MHgwYTAwMmNkYywgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZGQsIDB4MTQwMGZmZmYgfSwK
LSAgeyAweDBhMDAyY2RlLCAweDI0MDAwMDAxIH0sCi0gIHsgMHgwYTAwMmNkZiwgMHgxNDAwZmZm
ZiB9LAotICB7IDB4MGEwMDJjZTAsIDB4MjQwMDAwMDEgfSwKLSAgeyAweDBhMDAyY2UxLCAweDE0
MDBmZmZmIH0sCi0gIHsgMHgwYTAwMmNlMiwgMHgyNDAwMDAwMSB9LAotICB7IDB4MGEwMDJjZTMs
IDB4MTQwMGZmZmYgfSwKLSAgeyAweDBhMDAyY2U0LCAweDE0MDAwMDAwIH0sCi0gIHsgMHgwYTgw
MmNlNSwgMHg2ODAwMDAwNSB9LAotICB7IDB4MGE4MDJjZjksIDB4NTQwMDAwMDMgfSwKLSAgeyAw
eDBhMDAyY2ZkLCAweDNjMDAwMDAwIH0sCi0gIHsgMHgwYTgwMmNmZSwgMHg1NDAwMDAwMSB9LAot
ICB7IDB4MTAwMDJkMDAsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDAxLCAweDE0MDBlM2Ew
IH0sCi0gIHsgMHgxMDAwMmQwMiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMDMsIDB4MTQw
MGUzYTAgfSwKLSAgeyAweDEwMDAyZDA0LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwNSwg
MHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMDYsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAy
ZDA3LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwOCwgMHgxNDAwZTNhMCB9LAotICB7IDB4
MTAwMDJkMDksIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDBhLCAweDE0MDBlM2EwIH0sCi0g
IHsgMHgxMDAwMmQwYiwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMGMsIDB4MTQwMGUzYTAg
fSwKLSAgeyAweDEwMDAyZDBkLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQwZSwgMHgxNDAw
ZTNhMCB9LAotICB7IDB4MTAwMDJkMGYsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDEwLCAw
eDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxMSwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJk
MTIsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDEzLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgx
MDAwMmQxNCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMTUsIDB4MTQwMGUzYTAgfSwKLSAg
eyAweDEwMDAyZDE2LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQxNywgMHgxNDAwZTNhMCB9
LAotICB7IDB4MTAwMDJkMTgsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDE5LCAweDE0MDBl
M2EwIH0sCi0gIHsgMHgxMDAwMmQxYSwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMWIsIDB4
MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDFjLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQx
ZCwgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMWUsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEw
MDAyZDFmLCAweDE0MDBlM2EwIH0sCi0gIHsgMHgxMDAwMmQyMCwgMHgxNDAwZTNhMCB9LAotICB7
IDB4MTAwMDJkMjEsIDB4MTQwMGUzYTAgfSwKLSAgeyAweDEwMDAyZDIyLCAweDE0MDBlM2EwIH0s
Ci0gIHsgMHgxMDAwMmQyMywgMHgxNDAwZTNhMCB9LAotICB7IDB4MTAwMDJkMjQsIDB4MTQwMGUz
YTAgfSwKLSAgeyAweDEwMDAyZDI1LCAweDE0MDBlM2EwIH0sCi0gIHsgMHgzYTgwMmQzMCwgMHgx
YzAwMDAzNSB9LAotICB7IDB4M2EwMDJkNmYsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDBmODAyZDgw
LCAweDFjMDAwMDE2IH0sCi0gIHsgMHgwZjgwMmRhMCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGY4
MDJkYTgsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDBmODAyZGIwLCAweDFjMDAwMDA2IH0sCi0gIHsg
MHgwZjgwMmRiOCwgMHgxYzAwMDAwNiB9LAotICB7IDB4MGY4MDJkYzAsIDB4MWMwMDAwMDYgfSwK
LSAgeyAweDBmODAyZGM4LCAweDFjMDAwMDA2IH0sCi0gIHsgMHgwZjgwMmRkMCwgMHgxYzAwMDAw
NiB9LAotICB7IDB4MGY4MDJkZDgsIDB4MWMwMDAwMDYgfSwKLSAgeyAweDA5ODAyZTAwLCAweDU0
MDAwMDAxIH0sCi0gIHsgMHgwOTAwMmUwMiwgMHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMDMs
IDB4NGMwMDAwMDAgfSwKLSAgeyAweDA5MDAyZTA0LCAweDUwMDAwMDAwIH0sCi0gIHsgMHgwOTAw
MmUwNSwgMHg0YzAwMDAwMCB9LAotICB7IDB4MDk4MDJlMDYsIDB4NTQwMDAwMDIgfSwKLSAgeyAw
eDA5MDAyZTA5LCAweDUwMDAwMDAwIH0sCi0gIHsgMHgwOTAwMmUwYSwgMHg0YzAwMDAwMCB9LAot
ICB7IDB4MDkwMDJlMGIsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDAyZTBjLCAweDUwMDAwMDAw
IH0sCi0gIHsgMHgwOTAwMmUwZCwgMHg0YzAwMDAwMCB9LAotICB7IDB4MDk4MDJlMGUsIDB4NTQw
MDAwMDggfSwKLSAgeyAweDA5MDAyZTE3LCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgwOTAwMmUxYywg
MHg1MDAwMDAwMCB9LAotICB7IDB4MDkwMDJlMWQsIDB4NGMwMDAwMDAgfSwKLSAgeyAweDE2ODAy
ZTgwLCAweDY4MDAwMDE5IH0sCi0gIHsgMHgxNjgwMmU5YiwgMHg2ODAwMDA1OCB9LAotICB7IDB4
MTY4MDJmMDAsIDB4NjgwMDAwZDUgfSwKLSAgeyAweDA5ODAyZmYwLCAweDY4MDAwMDBiIH0sCi0g
IHsgMHgwOTAwMzAwMCwgMHg3NDAwMDAwMCB9LAotICB7IDB4MDk4MDMwMDEsIDB4NTQwMDAwMDIg
fSwKLSAgeyAweDA5MDAzMDA0LCAweDY4MDAwMDAwIH0sCi0gIHsgMHgxNjAwMzAwNSwgMHgxODAw
MDAwMCB9LAotICB7IDB4MDkwMDMwMDYsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDE2MDAzMDA3LCAw
eDM4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAwOCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMDMw
MDksIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDBhLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwMzAwYiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMGMsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5MDAzMDBkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAwZSwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMDMwMGYsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDEwLCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwMzAxMSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MDMwMTIsIDB4
NjgwMDAwMDEgfSwKLSAgeyAweDA5MDAzMDE0LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAx
NSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMTYsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5
MDAzMDE3LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAxOCwgMHg1ODAwMDAwMCB9LAotICB7
IDB4MDkwMDMwMTksIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDAzMDFhLCAweDU4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwMzAxYiwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMDMwMWMsIDB4NDQwMDAw
MDAgfSwKLSAgeyAweDA5MDAzMDFkLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTgwMzAxZSwgMHg0
ODAwMDAwMSB9LAotICB7IDB4MDkwMDMwMjAsIDB4NjgwMDAwMDAgfSwKLSAgeyAweDE2ODAzMDIx
LCAweDM4MDAwMDA4IH0sCi0gIHsgMHgxYjgwMzAyYSwgMHgzMDAwMDAwNSB9LAotICB7IDB4MDkw
MDMwMzAsIDB4NDQwMDAwMDAgfSwKLSAgeyAweDA5ODAzMDMxLCAweDE4MDAwMDA0IH0sCi0gIHsg
MHgwOTgwMzAzNiwgMHg2ODAwMDAwMSB9LAotICB7IDB4MTY4MDMwMzgsIDB4MzgwMDAwMDIgfSwK
LSAgeyAweDE2MDAzMDNiLCAweDE4MDAwMDAwIH0sCi0gIHsgMHgwOTAwMzAzYywgMHgxYzAwMDAw
MCB9LAotICB7IDB4MDkwMDMwM2QsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5ODAzMDNlLCAweDY4
MDAwMDAxIH0sCi0gIHsgMHgxYTgwMzA0MSwgMHgxYzAwMDA1NSB9LAotICB7IDB4MWI4MDMwOTks
IDB4MzAwMDAwMDEgfSwKLSAgeyAweDA5ODAzMDliLCAweDYwMDAwMDAxIH0sCi0gIHsgMHgxYTgw
MzA5ZCwgMHgxODAwMDAwMSB9LAotICB7IDB4MWEwMDMwOWYsIDB4MWMwMDAwMDAgfSwKLSAgeyAw
eDA5MDAzMGEwLCAweDQ0MDAwMDAwIH0sCi0gIHsgMHgxZDgwMzBhMSwgMHgxYzAwMDA1OSB9LAot
ICB7IDB4MDkwMDMwZmIsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5ODAzMGZjLCAweDE4MDAwMDAy
IH0sCi0gIHsgMHgxZDAwMzBmZiwgMHgxYzAwMDAwMCB9LAotICB7IDB4MDM4MDMxMDUsIDB4MWMw
MDAwMjcgfSwKLSAgeyAweDE3ODAzMTMxLCAweDFjMDAwMDVkIH0sCi0gIHsgMHgwOTgwMzE5MCwg
MHg2ODAwMDAwMSB9LAotICB7IDB4MDk4MDMxOTIsIDB4M2MwMDAwMDMgfSwKLSAgeyAweDA5ODAz
MTk2LCAweDY4MDAwMDA5IH0sCi0gIHsgMHgwMzgwMzFhMCwgMHgxYzAwMDAxNyB9LAotICB7IDB4
MDk4MDMxYzAsIDB4NjgwMDAwMGYgfSwKLSAgeyAweDFkODAzMWYwLCAweDFjMDAwMDBmIH0sCi0g
IHsgMHgxNzgwMzIwMCwgMHg2ODAwMDAxZSB9LAotICB7IDB4MDk4MDMyMjAsIDB4M2MwMDAwMDkg
fSwKLSAgeyAweDA5ODAzMjJhLCAweDY4MDAwMDE5IH0sCi0gIHsgMHgwOTAwMzI1MCwgMHg2ODAw
MDAwMCB9LAotICB7IDB4MDk4MDMyNTEsIDB4M2MwMDAwMGUgfSwKLSAgeyAweDE3ODAzMjYwLCAw
eDY4MDAwMDFmIH0sCi0gIHsgMHgwOTgwMzI4MCwgMHgzYzAwMDAwOSB9LAotICB7IDB4MDk4MDMy
OGEsIDB4NjgwMDAwMjYgfSwKLSAgeyAweDA5ODAzMmIxLCAweDNjMDAwMDBlIH0sCi0gIHsgMHgw
OTgwMzJjMCwgMHg2ODAwMDAzZSB9LAotICB7IDB4MDk4MDMzMDAsIDB4NjgwMDAwZmYgfSwKLSAg
eyAweDE2ODAzNDAwLCAweDFjMDAxOWI1IH0sCi0gIHsgMHgwOTgwNGRjMCwgMHg2ODAwMDAzZiB9
LAotICB7IDB4MTY4MDRlMDAsIDB4MWMwMDUxYmIgfSwKLSAgeyAweDNjODBhMDAwLCAweDFjMDAw
MDE0IH0sCi0gIHsgMHgzYzAwYTAxNSwgMHgxODAwMDAwMCB9LAotICB7IDB4M2M4MGEwMTYsIDB4
MWMwMDA0NzYgfSwKLSAgeyAweDNjODBhNDkwLCAweDY4MDAwMDM2IH0sCi0gIHsgMHgwOTgwYTcw
MCwgMHg2MDAwMDAxNiB9LAotICB7IDB4MzA4MGE4MDAsIDB4MWMwMDAwMDEgfSwKLSAgeyAweDMw
MDBhODAyLCAweDI4MDAwMDAwIH0sCi0gIHsgMHgzMDgwYTgwMywgMHgxYzAwMDAwMiB9LAotICB7
IDB4MzAwMGE4MDYsIDB4MzAwMDAwMDAgfSwKLSAgeyAweDMwODBhODA3LCAweDFjMDAwMDAzIH0s
Ci0gIHsgMHgzMDAwYTgwYiwgMHgzMDAwMDAwMCB9LAotICB7IDB4MzA4MGE4MGMsIDB4MWMwMDAw
MTYgfSwKLSAgeyAweDMwODBhODIzLCAweDI4MDAwMDAxIH0sCi0gIHsgMHgzMDgwYTgyNSwgMHgz
MDAwMDAwMSB9LAotICB7IDB4MzAwMGE4MjcsIDB4MjgwMDAwMDAgfSwKLSAgeyAweDMwODBhODI4
LCAweDY4MDAwMDAzIH0sCi0gIHsgMHgxNzgwYWMwMCwgMHgxYzAwMmJhMyB9LAotICB7IDB4MDk4
MGQ4MDAsIDB4MTAwMDAzN2YgfSwKLSAgeyAweDA5ODBkYjgwLCAweDEwMDAwMDdmIH0sCi0gIHsg
MHgwOTgwZGMwMCwgMHgxMDAwMDNmZiB9LAotICB7IDB4MDk4MGUwMDAsIDB4MGMwMDE4ZmYgfSwK
LSAgeyAweDE2ODBmOTAwLCAweDFjMDAwMTJkIH0sCi0gIHsgMHgxNjgwZmEzMCwgMHgxYzAwMDAz
YSB9LAotICB7IDB4MTY4MGZhNzAsIDB4MWMwMDAwNjkgfSwKLSAgeyAweDIxODBmYjAwLCAweDE0
MDAwMDA2IH0sCi0gIHsgMHgwMTgwZmIxMywgMHgxNDAwMDAwNCB9LAotICB7IDB4MTkwMGZiMWQs
IDB4MWMwMDAwMDAgfSwKLSAgeyAweDE5MDBmYjFlLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxOTgw
ZmIxZiwgMHgxYzAwMDAwOSB9LAotICB7IDB4MTkwMGZiMjksIDB4NjQwMDAwMDAgfSwKLSAgeyAw
eDE5ODBmYjJhLCAweDFjMDAwMDBjIH0sCi0gIHsgMHgxOTgwZmIzOCwgMHgxYzAwMDAwNCB9LAot
ICB7IDB4MTkwMGZiM2UsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDE5ODBmYjQwLCAweDFjMDAwMDAx
IH0sCi0gIHsgMHgxOTgwZmI0MywgMHgxYzAwMDAwMSB9LAotICB7IDB4MTk4MGZiNDYsIDB4MWMw
MDAwNmIgfSwKLSAgeyAweDAwODBmYmQzLCAweDFjMDAwMTZhIH0sCi0gIHsgMHgwOTAwZmQzZSwg
MHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZkM2YsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDAwODBm
ZDUwLCAweDFjMDAwMDNmIH0sCi0gIHsgMHgwMDgwZmQ5MiwgMHgxYzAwMDAzNSB9LAotICB7IDB4
MDA4MGZkZjAsIDB4MWMwMDAwMGIgfSwKLSAgeyAweDAwMDBmZGZjLCAweDVjMDAwMDAwIH0sCi0g
IHsgMHgwOTAwZmRmZCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MWI4MGZlMDAsIDB4MzAwMDAwMGYg
fSwKLSAgeyAweDA5ODBmZTEwLCAweDU0MDAwMDA2IH0sCi0gIHsgMHgwOTAwZmUxNywgMHg1ODAw
MDAwMCB9LAotICB7IDB4MDkwMGZlMTgsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTE5LCAw
eDU0MDAwMDAwIH0sCi0gIHsgMHgxYjgwZmUyMCwgMHgzMDAwMDAwMyB9LAotICB7IDB4MDkwMGZl
MzAsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5ODBmZTMxLCAweDQ0MDAwMDAxIH0sCi0gIHsgMHgw
OTgwZmUzMywgMHg0MDAwMDAwMSB9LAotICB7IDB4MDkwMGZlMzUsIDB4NTgwMDAwMDAgfSwKLSAg
eyAweDA5MDBmZTM2LCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUzNywgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMGZlMzgsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTM5LCAweDU4MDAw
MDAwIH0sCi0gIHsgMHgwOTAwZmUzYSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlM2IsIDB4
NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTNjLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmUz
ZCwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlM2UsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5
MDBmZTNmLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU0MCwgMHg0ODAwMDAwMCB9LAotICB7
IDB4MDkwMGZlNDEsIDB4NTgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTQyLCAweDQ4MDAwMDAwIH0s
Ci0gIHsgMHgwOTAwZmU0MywgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNDQsIDB4NDgwMDAw
MDAgfSwKLSAgeyAweDA5ODBmZTQ1LCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwOTAwZmU0NywgMHg1
ODAwMDAwMCB9LAotICB7IDB4MDkwMGZlNDgsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5ODBmZTQ5
LCAweDU0MDAwMDAzIH0sCi0gIHsgMHgwOTgwZmU0ZCwgMHg0MDAwMDAwMiB9LAotICB7IDB4MDk4
MGZlNTAsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5ODBmZTU0LCAweDU0MDAwMDAzIH0sCi0gIHsg
MHgwOTAwZmU1OCwgMHg0NDAwMDAwMCB9LAotICB7IDB4MDkwMGZlNTksIDB4NTgwMDAwMDAgfSwK
LSAgeyAweDA5MDBmZTVhLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU1YiwgMHg1ODAwMDAw
MCB9LAotICB7IDB4MDkwMGZlNWMsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZTVkLCAweDU4
MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU1ZSwgMHg0ODAwMDAwMCB9LAotICB7IDB4MDk4MGZlNWYs
IDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5MDBmZTYyLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAw
ZmU2MywgMHg0NDAwMDAwMCB9LAotICB7IDB4MDk4MGZlNjQsIDB4NjQwMDAwMDIgfSwKLSAgeyAw
eDA5MDBmZTY4LCAweDU0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmU2OSwgMHg1YzAwMDAwMCB9LAot
ICB7IDB4MDk4MGZlNmEsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDAwODBmZTcwLCAweDFjMDAwMDA0
IH0sCi0gIHsgMHgwMDgwZmU3NiwgMHgxYzAwMDA4NiB9LAotICB7IDB4MDkwMGZlZmYsIDB4MDQw
MDAwMDAgfSwKLSAgeyAweDA5ODBmZjAxLCAweDU0MDAwMDAyIH0sCi0gIHsgMHgwOTAwZmYwNCwg
MHg1YzAwMDAwMCB9LAotICB7IDB4MDk4MGZmMDUsIDB4NTQwMDAwMDIgfSwKLSAgeyAweDA5MDBm
ZjA4LCAweDU4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYwOSwgMHg0ODAwMDAwMCB9LAotICB7IDB4
MDkwMGZmMGEsIDB4NTQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjBiLCAweDY0MDAwMDAwIH0sCi0g
IHsgMHgwOTAwZmYwYywgMHg1NDAwMDAwMCB9LAotICB7IDB4MDkwMGZmMGQsIDB4NDQwMDAwMDAg
fSwKLSAgeyAweDA5ODBmZjBlLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwOTgwZmYxMCwgMHgzNDAw
MDAwOSB9LAotICB7IDB4MDk4MGZmMWEsIDB4NTQwMDAwMDEgfSwKLSAgeyAweDA5ODBmZjFjLCAw
eDY0MDAwMDAyIH0sCi0gIHsgMHgwOTgwZmYxZiwgMHg1NDAwMDAwMSB9LAotICB7IDB4MjEwMGZm
MjEsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjIyLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgy
MTAwZmYyMywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMjQsIDB4MjQwMDAwMjAgfSwKLSAg
eyAweDIxMDBmZjI1LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyNiwgMHgyNDAwMDAyMCB9
LAotICB7IDB4MjEwMGZmMjcsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjI4LCAweDI0MDAw
MDIwIH0sCi0gIHsgMHgyMTAwZmYyOSwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMmEsIDB4
MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjJiLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYy
YywgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMmQsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIx
MDBmZjJlLCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYyZiwgMHgyNDAwMDAyMCB9LAotICB7
IDB4MjEwMGZmMzAsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjMxLCAweDI0MDAwMDIwIH0s
Ci0gIHsgMHgyMTAwZmYzMiwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMzMsIDB4MjQwMDAw
MjAgfSwKLSAgeyAweDIxMDBmZjM0LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzNSwgMHgy
NDAwMDAyMCB9LAotICB7IDB4MjEwMGZmMzYsIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjM3
LCAweDI0MDAwMDIwIH0sCi0gIHsgMHgyMTAwZmYzOCwgMHgyNDAwMDAyMCB9LAotICB7IDB4MjEw
MGZmMzksIDB4MjQwMDAwMjAgfSwKLSAgeyAweDIxMDBmZjNhLCAweDI0MDAwMDIwIH0sCi0gIHsg
MHgwOTAwZmYzYiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZmM2MsIDB4NTQwMDAwMDAgfSwK
LSAgeyAweDA5MDBmZjNkLCAweDQ4MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmYzZSwgMHg2MDAwMDAw
MCB9LAotICB7IDB4MDkwMGZmM2YsIDB4NDAwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjQwLCAweDYw
MDAwMDAwIH0sCi0gIHsgMHgyMTAwZmY0MSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDIs
IDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjQzLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAw
ZmY0NCwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNDUsIDB4MTQwMGZmZTAgfSwKLSAgeyAw
eDIxMDBmZjQ2LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0NywgMHgxNDAwZmZlMCB9LAot
ICB7IDB4MjEwMGZmNDgsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjQ5LCAweDE0MDBmZmUw
IH0sCi0gIHsgMHgyMTAwZmY0YSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNGIsIDB4MTQw
MGZmZTAgfSwKLSAgeyAweDIxMDBmZjRjLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY0ZCwg
MHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNGUsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBm
ZjRmLCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1MCwgMHgxNDAwZmZlMCB9LAotICB7IDB4
MjEwMGZmNTEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjUyLCAweDE0MDBmZmUwIH0sCi0g
IHsgMHgyMTAwZmY1MywgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZmNTQsIDB4MTQwMGZmZTAg
fSwKLSAgeyAweDIxMDBmZjU1LCAweDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1NiwgMHgxNDAw
ZmZlMCB9LAotICB7IDB4MjEwMGZmNTcsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDIxMDBmZjU4LCAw
eDE0MDBmZmUwIH0sCi0gIHsgMHgyMTAwZmY1OSwgMHgxNDAwZmZlMCB9LAotICB7IDB4MjEwMGZm
NWEsIDB4MTQwMGZmZTAgfSwKLSAgeyAweDA5MDBmZjViLCAweDU4MDAwMDAwIH0sCi0gIHsgMHgw
OTAwZmY1YywgMHg2NDAwMDAwMCB9LAotICB7IDB4MDkwMGZmNWQsIDB4NDgwMDAwMDAgfSwKLSAg
eyAweDA5MDBmZjVlLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTAwZmY1ZiwgMHg1ODAwMDAwMCB9
LAotICB7IDB4MDkwMGZmNjAsIDB4NDgwMDAwMDAgfSwKLSAgeyAweDA5MDBmZjYxLCAweDU0MDAw
MDAwIH0sCi0gIHsgMHgwOTAwZmY2MiwgMHg1ODAwMDAwMCB9LAotICB7IDB4MDkwMGZmNjMsIDB4
NDgwMDAwMDAgfSwKLSAgeyAweDA5ODBmZjY0LCAweDU0MDAwMDAxIH0sCi0gIHsgMHgxZDgwZmY2
NiwgMHgxYzAwMDAwOSB9LAotICB7IDB4MDkwMGZmNzAsIDB4MTgwMDAwMDAgfSwKLSAgeyAweDFk
ODBmZjcxLCAweDFjMDAwMDJjIH0sCi0gIHsgMHgwOTgwZmY5ZSwgMHgxODAwMDAwMSB9LAotICB7
IDB4MTc4MGZmYTAsIDB4MWMwMDAwMWUgfSwKLSAgeyAweDE3ODBmZmMyLCAweDFjMDAwMDA1IH0s
Ci0gIHsgMHgxNzgwZmZjYSwgMHgxYzAwMDAwNSB9LAotICB7IDB4MTc4MGZmZDIsIDB4MWMwMDAw
MDUgfSwKLSAgeyAweDE3ODBmZmRhLCAweDFjMDAwMDAyIH0sCi0gIHsgMHgwOTgwZmZlMCwgMHg1
YzAwMDAwMSB9LAotICB7IDB4MDkwMGZmZTIsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5MDBmZmUz
LCAweDYwMDAwMDAwIH0sCi0gIHsgMHgwOTAwZmZlNCwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDk4
MGZmZTUsIDB4NWMwMDAwMDEgfSwKLSAgeyAweDA5MDBmZmU4LCAweDY4MDAwMDAwIH0sCi0gIHsg
MHgwOTgwZmZlOSwgMHg2NDAwMDAwMyB9LAotICB7IDB4MDk4MGZmZWQsIDB4NjgwMDAwMDEgfSwK
LSAgeyAweDA5ODBmZmY5LCAweDA0MDAwMDAyIH0sCi0gIHsgMHgwOTgwZmZmYywgMHg2ODAwMDAw
MSB9LAotICB7IDB4MjM4MTAwMDAsIDB4MWMwMDAwMGIgfSwKLSAgeyAweDIzODEwMDBkLCAweDFj
MDAwMDE5IH0sCi0gIHsgMHgyMzgxMDAyOCwgMHgxYzAwMDAxMiB9LAotICB7IDB4MjM4MTAwM2Ms
IDB4MWMwMDAwMDEgfSwKLSAgeyAweDIzODEwMDNmLCAweDFjMDAwMDBlIH0sCi0gIHsgMHgyMzgx
MDA1MCwgMHgxYzAwMDAwZCB9LAotICB7IDB4MjM4MTAwODAsIDB4MWMwMDAwN2EgfSwKLSAgeyAw
eDA5ODEwMTAwLCAweDU0MDAwMDAxIH0sCi0gIHsgMHgwOTAxMDEwMiwgMHg2ODAwMDAwMCB9LAot
ICB7IDB4MDk4MTAxMDcsIDB4M2MwMDAwMmMgfSwKLSAgeyAweDA5ODEwMTM3LCAweDY4MDAwMDA4
IH0sCi0gIHsgMHgxMzgxMDE0MCwgMHgzODAwMDAzNCB9LAotICB7IDB4MTM4MTAxNzUsIDB4M2Mw
MDAwMDMgfSwKLSAgeyAweDEzODEwMTc5LCAweDY4MDAwMDEwIH0sCi0gIHsgMHgxMzAxMDE4YSwg
MHgzYzAwMDAwMCB9LAotICB7IDB4Mjk4MTAzMDAsIDB4MWMwMDAwMWUgfSwKLSAgeyAweDI5ODEw
MzIwLCAweDNjMDAwMDAzIH0sCi0gIHsgMHgxMjgxMDMzMCwgMHgxYzAwMDAxOSB9LAotICB7IDB4
MTIwMTAzNGEsIDB4MzgwMDAwMDAgfSwKLSAgeyAweDNiODEwMzgwLCAweDFjMDAwMDFkIH0sCi0g
IHsgMHgzYjAxMDM5ZiwgMHg1NDAwMDAwMCB9LAotICB7IDB4MmE4MTAzYTAsIDB4MWMwMDAwMjMg
fSwKLSAgeyAweDJhODEwM2M4LCAweDFjMDAwMDA3IH0sCi0gIHsgMHgyYTAxMDNkMCwgMHg2ODAw
MDAwMCB9LAotICB7IDB4MmE4MTAzZDEsIDB4MzgwMDAwMDQgfSwKLSAgeyAweDBkMDEwNDAwLCAw
eDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwMSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0
MDIsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDAzLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgw
ZDAxMDQwNCwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MDUsIDB4MjQwMDAwMjggfSwKLSAg
eyAweDBkMDEwNDA2LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQwNywgMHgyNDAwMDAyOCB9
LAotICB7IDB4MGQwMTA0MDgsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDA5LCAweDI0MDAw
MDI4IH0sCi0gIHsgMHgwZDAxMDQwYSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MGIsIDB4
MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDBjLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQw
ZCwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MGUsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBk
MDEwNDBmLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxMCwgMHgyNDAwMDAyOCB9LAotICB7
IDB4MGQwMTA0MTEsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDEyLCAweDI0MDAwMDI4IH0s
Ci0gIHsgMHgwZDAxMDQxMywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTQsIDB4MjQwMDAw
MjggfSwKLSAgeyAweDBkMDEwNDE1LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxNiwgMHgy
NDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MTcsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDE4
LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxOSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQw
MTA0MWEsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDFiLCAweDI0MDAwMDI4IH0sCi0gIHsg
MHgwZDAxMDQxYywgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MWQsIDB4MjQwMDAwMjggfSwK
LSAgeyAweDBkMDEwNDFlLCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQxZiwgMHgyNDAwMDAy
OCB9LAotICB7IDB4MGQwMTA0MjAsIDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDIxLCAweDI0
MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyMiwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjMs
IDB4MjQwMDAwMjggfSwKLSAgeyAweDBkMDEwNDI0LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAx
MDQyNSwgMHgyNDAwMDAyOCB9LAotICB7IDB4MGQwMTA0MjYsIDB4MjQwMDAwMjggfSwKLSAgeyAw
eDBkMDEwNDI3LCAweDI0MDAwMDI4IH0sCi0gIHsgMHgwZDAxMDQyOCwgMHgxNDAwZmZkOCB9LAot
ICB7IDB4MGQwMTA0MjksIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDJhLCAweDE0MDBmZmQ4
IH0sCi0gIHsgMHgwZDAxMDQyYiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MmMsIDB4MTQw
MGZmZDggfSwKLSAgeyAweDBkMDEwNDJkLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQyZSwg
MHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MmYsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEw
NDMwLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzMSwgMHgxNDAwZmZkOCB9LAotICB7IDB4
MGQwMTA0MzIsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDMzLCAweDE0MDBmZmQ4IH0sCi0g
IHsgMHgwZDAxMDQzNCwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0MzUsIDB4MTQwMGZmZDgg
fSwKLSAgeyAweDBkMDEwNDM2LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzNywgMHgxNDAw
ZmZkOCB9LAotICB7IDB4MGQwMTA0MzgsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDM5LCAw
eDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQzYSwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0
M2IsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDNjLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgw
ZDAxMDQzZCwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0M2UsIDB4MTQwMGZmZDggfSwKLSAg
eyAweDBkMDEwNDNmLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0MCwgMHgxNDAwZmZkOCB9
LAotICB7IDB4MGQwMTA0NDEsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQyLCAweDE0MDBm
ZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0MywgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDQsIDB4
MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDQ1LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0
NiwgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NDcsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBk
MDEwNDQ4LCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0OSwgMHgxNDAwZmZkOCB9LAotICB7
IDB4MGQwMTA0NGEsIDB4MTQwMGZmZDggfSwKLSAgeyAweDBkMDEwNDRiLCAweDE0MDBmZmQ4IH0s
Ci0gIHsgMHgwZDAxMDQ0YywgMHgxNDAwZmZkOCB9LAotICB7IDB4MGQwMTA0NGQsIDB4MTQwMGZm
ZDggfSwKLSAgeyAweDBkMDEwNDRlLCAweDE0MDBmZmQ4IH0sCi0gIHsgMHgwZDAxMDQ0ZiwgMHgx
NDAwZmZkOCB9LAotICB7IDB4MmU4MTA0NTAsIDB4MWMwMDAwNGQgfSwKLSAgeyAweDJjODEwNGEw
LCAweDM0MDAwMDA5IH0sCi0gIHsgMHgwYjgxMDgwMCwgMHgxYzAwMDAwNSB9LAotICB7IDB4MGIw
MTA4MDgsIDB4MWMwMDAwMDAgfSwKLSAgeyAweDBiODEwODBhLCAweDFjMDAwMDJiIH0sCi0gIHsg
MHgwYjgxMDgzNywgMHgxYzAwMDAwMSB9LAotICB7IDB4MGIwMTA4M2MsIDB4MWMwMDAwMDAgfSwK
LSAgeyAweDBiMDEwODNmLCAweDFjMDAwMDAwIH0sCi0gIHsgMHgxZTAxMGEwMCwgMHgxYzAwMDAw
MCB9LAotICB7IDB4MWU4MTBhMDEsIDB4MzAwMDAwMDIgfSwKLSAgeyAweDFlODEwYTA1LCAweDMw
MDAwMDAxIH0sCi0gIHsgMHgxZTgxMGEwYywgMHgzMDAwMDAwMyB9LAotICB7IDB4MWU4MTBhMTAs
IDB4MWMwMDAwMDMgfSwKLSAgeyAweDFlODEwYTE1LCAweDFjMDAwMDAyIH0sCi0gIHsgMHgxZTgx
MGExOSwgMHgxYzAwMDAxYSB9LAotICB7IDB4MWU4MTBhMzgsIDB4MzAwMDAwMDIgfSwKLSAgeyAw
eDFlMDEwYTNmLCAweDMwMDAwMDAwIH0sCi0gIHsgMHgxZTgxMGE0MCwgMHgzYzAwMDAwNyB9LAot
ICB7IDB4MWU4MTBhNTAsIDB4NTQwMDAwMDggfSwKLSAgeyAweDA5ODFkMDAwLCAweDY4MDAwMGY1
IH0sCi0gIHsgMHgwOTgxZDEwMCwgMHg2ODAwMDAyNiB9LAotICB7IDB4MDk4MWQxMmEsIDB4Njgw
MDAwM2EgfSwKLSAgeyAweDA5ODFkMTY1LCAweDI4MDAwMDAxIH0sCi0gIHsgMHgxYjgxZDE2Nywg
MHgzMDAwMDAwMiB9LAotICB7IDB4MDk4MWQxNmEsIDB4NjgwMDAwMDIgfSwKLSAgeyAweDA5ODFk
MTZkLCAweDI4MDAwMDA1IH0sCi0gIHsgMHgwOTgxZDE3MywgMHgwNDAwMDAwNyB9LAotICB7IDB4
MWI4MWQxN2IsIDB4MzAwMDAwMDcgfSwKLSAgeyAweDA5ODFkMTgzLCAweDY4MDAwMDAxIH0sCi0g
IHsgMHgxYjgxZDE4NSwgMHgzMDAwMDAwNiB9LAotICB7IDB4MDk4MWQxOGMsIDB4NjgwMDAwMWQg
fSwKLSAgeyAweDFiODFkMWFhLCAweDMwMDAwMDAzIH0sCi0gIHsgMHgwOTgxZDFhZSwgMHg2ODAw
MDAyZiB9LAotICB7IDB4MTM4MWQyMDAsIDB4NjgwMDAwNDEgfSwKLSAgeyAweDEzODFkMjQyLCAw
eDMwMDAwMDAyIH0sCi0gIHsgMHgxMzAxZDI0NSwgMHg2ODAwMDAwMCB9LAotICB7IDB4MDk4MWQz
MDAsIDB4NjgwMDAwNTYgfSwKLSAgeyAweDA5ODFkNDAwLCAweDI0MDAwMDE5IH0sCi0gIHsgMHgw
OTgxZDQxYSwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ0MzQsIDB4MjQwMDAwMTkgfSwKLSAg
eyAweDA5ODFkNDRlLCAweDE0MDAwMDA2IH0sCi0gIHsgMHgwOTgxZDQ1NiwgMHgxNDAwMDAxMSB9
LAotICB7IDB4MDk4MWQ0NjgsIDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNDgyLCAweDE0MDAw
MDE5IH0sCi0gIHsgMHgwOTAxZDQ5YywgMHgyNDAwMDAwMCB9LAotICB7IDB4MDk4MWQ0OWUsIDB4
MjQwMDAwMDEgfSwKLSAgeyAweDA5MDFkNGEyLCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDRh
NSwgMHgyNDAwMDAwMSB9LAotICB7IDB4MDk4MWQ0YTksIDB4MjQwMDAwMDMgfSwKLSAgeyAweDA5
ODFkNGFlLCAweDI0MDAwMDA3IH0sCi0gIHsgMHgwOTgxZDRiNiwgMHgxNDAwMDAwMyB9LAotICB7
IDB4MDkwMWQ0YmIsIDB4MTQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNGJkLCAweDE0MDAwMDA2IH0s
Ci0gIHsgMHgwOTgxZDRjNSwgMHgxNDAwMDAwYSB9LAotICB7IDB4MDk4MWQ0ZDAsIDB4MjQwMDAw
MTkgfSwKLSAgeyAweDA5ODFkNGVhLCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDUwNCwgMHgy
NDAwMDAwMSB9LAotICB7IDB4MDk4MWQ1MDcsIDB4MjQwMDAwMDMgfSwKLSAgeyAweDA5ODFkNTBk
LCAweDI0MDAwMDA3IH0sCi0gIHsgMHgwOTgxZDUxNiwgMHgyNDAwMDAwNiB9LAotICB7IDB4MDk4
MWQ1MWUsIDB4MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNTM4LCAweDI0MDAwMDAxIH0sCi0gIHsg
MHgwOTgxZDUzYiwgMHgyNDAwMDAwMyB9LAotICB7IDB4MDk4MWQ1NDAsIDB4MjQwMDAwMDQgfSwK
LSAgeyAweDA5MDFkNTQ2LCAweDI0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDU0YSwgMHgyNDAwMDAw
NiB9LAotICB7IDB4MDk4MWQ1NTIsIDB4MTQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNTZjLCAweDI0
MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDU4NiwgMHgxNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1YTAs
IDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNWJhLCAweDE0MDAwMDE5IH0sCi0gIHsgMHgwOTgx
ZDVkNCwgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ1ZWUsIDB4MTQwMDAwMTkgfSwKLSAgeyAw
eDA5ODFkNjA4LCAweDI0MDAwMDE5IH0sCi0gIHsgMHgwOTgxZDYyMiwgMHgxNDAwMDAxOSB9LAot
ICB7IDB4MDk4MWQ2M2MsIDB4MjQwMDAwMTkgfSwKLSAgeyAweDA5ODFkNjU2LCAweDE0MDAwMDE5
IH0sCi0gIHsgMHgwOTgxZDY3MCwgMHgyNDAwMDAxOSB9LAotICB7IDB4MDk4MWQ2OGEsIDB4MTQw
MDAwMWIgfSwKLSAgeyAweDA5ODFkNmE4LCAweDI0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDZjMSwg
MHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ2YzIsIDB4MTQwMDAwMTggfSwKLSAgeyAweDA5MDFk
NmRiLCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDZkYywgMHgxNDAwMDAwNSB9LAotICB7IDB4
MDk4MWQ2ZTIsIDB4MjQwMDAwMTggfSwKLSAgeyAweDA5MDFkNmZiLCAweDY0MDAwMDAwIH0sCi0g
IHsgMHgwOTgxZDZmYywgMHgxNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ3MTUsIDB4NjQwMDAwMDAg
fSwKLSAgeyAweDA5ODFkNzE2LCAweDE0MDAwMDA1IH0sCi0gIHsgMHgwOTgxZDcxYywgMHgyNDAw
MDAxOCB9LAotICB7IDB4MDkwMWQ3MzUsIDB4NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkNzM2LCAw
eDE0MDAwMDE4IH0sCi0gIHsgMHgwOTAxZDc0ZiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ3
NTAsIDB4MTQwMDAwMDUgfSwKLSAgeyAweDA5ODFkNzU2LCAweDI0MDAwMDE4IH0sCi0gIHsgMHgw
OTAxZDc2ZiwgMHg2NDAwMDAwMCB9LAotICB7IDB4MDk4MWQ3NzAsIDB4MTQwMDAwMTggfSwKLSAg
eyAweDA5MDFkNzg5LCAweDY0MDAwMDAwIH0sCi0gIHsgMHgwOTgxZDc4YSwgMHgxNDAwMDAwNSB9
LAotICB7IDB4MDk4MWQ3OTAsIDB4MjQwMDAwMTggfSwKLSAgeyAweDA5MDFkN2E5LCAweDY0MDAw
MDAwIH0sCi0gIHsgMHgwOTgxZDdhYSwgMHgxNDAwMDAxOCB9LAotICB7IDB4MDkwMWQ3YzMsIDB4
NjQwMDAwMDAgfSwKLSAgeyAweDA5ODFkN2M0LCAweDE0MDAwMDA1IH0sCi0gIHsgMHgwOTgxZDdj
ZSwgMHgzNDAwMDAzMSB9LAotICB7IDB4MTY4MjAwMDAsIDB4MWMwMGE2ZDYgfSwKLSAgeyAweDE2
ODJmODAwLCAweDFjMDAwMjFkIH0sCi0gIHsgMHgwOTBlMDAwMSwgMHgwNDAwMDAwMCB9LAotICB7
IDB4MDk4ZTAwMjAsIDB4MDQwMDAwNWYgfSwKLSAgeyAweDFiOGUwMTAwLCAweDMwMDAwMGVmIH0s
Ci0gIHsgMHgwOThmMDAwMCwgMHgwYzAwZmZmZCB9LAotICB7IDB4MDk5MDAwMDAsIDB4MGMwMGZm
ZmQgfSwKLX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3NjcmlwdCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93c2NyaXB0CmluZGV4IDhkN2Y2OWMuLjhlMjczMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93c2NyaXB0CisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93c2NyaXB0CkBAIC0yOSw3ICsyOSw3IEBAIGltcG9ydCBjb21tYW5kcwogCiBmcm9t
IHNldHRpbmdzIGltcG9ydCAqCiAKLWpzY29yZV9leGNsdWRlcyA9IFsnY2hhcnRhYmxlcy5jJywg
J2pzYy5jcHAnLCAndWNwdGFibGUuY3BwJywnUHJvZmlsZXJTZXJ2ZXIubW0nLCAnRXhlY3V0YWJs
ZUFsbG9jYXRvclBvc2l4LmNwcCddCitqc2NvcmVfZXhjbHVkZXMgPSBbJ2pzYy5jcHAnLCAnUHJv
ZmlsZXJTZXJ2ZXIubW0nLCAnRXhlY3V0YWJsZUFsbG9jYXRvclBvc2l4LmNwcCddCiBqc2NvcmVf
ZXhjbHVkZXMuZXh0ZW5kKGdldF9leGNsdWRlcyhqc2NvcmVfZGlyLCBbJypCcmV3LmNwcCcsICcq
Q0YuY3BwJywgJypTeW1iaWFuLmNwcCddKSkKIAogc291cmNlcyA9IFtdCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9Gb3J3YXJkaW5nSGVhZGVycy9wY3JlL3BjcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0ZvcndhcmRpbmdIZWFkZXJzL3BjcmUvcGNyZS5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0N2MwZDNkLi4wMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0Zv
cndhcmRpbmdIZWFkZXJzL3BjcmUvcGNyZS5oCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBAQAot
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL3BjcmUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIucHJvIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KaW5kZXggNWY2ZTI0
ZC4uOThmNGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KKysrIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KQEAgLTQ1LDcgKzQ1LDYgQEAgV0VCS0lUMl9JTkNM
VURFUEFUSCA9IFwKICAgICAkJFBXRC8uLi9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlciBcCiAg
ICAgJCRQV0QvLi4vSmF2YVNjcmlwdENvcmUvaml0IFwKICAgICAkJFBXRC8uLi9KYXZhU2NyaXB0
Q29yZS9wYXJzZXIgXAotICAgICQkUFdELy4uL0phdmFTY3JpcHRDb3JlL3BjcmUgXAogICAgICQk
UFdELy4uL0phdmFTY3JpcHRDb3JlL3Byb2ZpbGVyIFwKICAgICAkJFBXRC8uLi9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lIFwKICAgICAkJFBXRC8uLi9KYXZhU2NyaXB0Q29yZS93dGYgXApkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlIGIvU291cmNlL2NtYWtlL1dlYktpdEZT
LmNtYWtlCmluZGV4IGEyMTE3Y2QuLjc0ZTdmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9jbWFrZS9X
ZWJLaXRGUy5jbWFrZQorKysgYi9Tb3VyY2UvY21ha2UvV2ViS2l0RlMuY21ha2UKQEAgLTEsNiAr
MSw1IEBACiBTRVQoREVSSVZFRF9TT1VSQ0VTX0RJUiAiJHtDTUFLRV9CSU5BUllfRElSfS9EZXJp
dmVkU291cmNlcyIpCiAKIEZJTEUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfRElS
fSkKLUZJTEUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGNyZSkKIEZJTEUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZSkKIEZJTEUoTUFLRV9ESVJFQ1RPUlkgJHtDTUFL
RV9CSU5BUllfRElSfS9Qcm9ncmFtcykKZGlmZiAtLWdpdCBhL1Rvb2xzL3d4L2J1aWxkL3NldHRp
bmdzLnB5IGIvVG9vbHMvd3gvYnVpbGQvc2V0dGluZ3MucHkKaW5kZXggYWEyNjQwMS4uMmI3NTdj
NCAxMDA2NDQKLS0tIGEvVG9vbHMvd3gvYnVpbGQvc2V0dGluZ3MucHkKKysrIGIvVG9vbHMvd3gv
YnVpbGQvc2V0dGluZ3MucHkKQEAgLTg2LDcgKzg2LDYgQEAganNjb3JlX2RpcnMgPSBbCiAgICAg
J2ludGVycHJldGVyJywKICAgICAnaml0JywKICAgICAncGFyc2VyJywKLSAgICAncGNyZScsCiAg
ICAgJ3Byb2ZpbGVyJywKICAgICAncnVudGltZScsCiAgICAgJ3d0ZicsCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnZjcHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCmluZGV4IDUx
NGQ3YzguLjQ5YmIyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBAIC0xMzM5LDQyICsxMzM5LDYgQEAKIAkJCTwvRmls
ZT4NCiAJCTwvRmlsdGVyPg0KIAkJPEZpbHRlcg0KLQkJCU5hbWU9InBjcmUiDQotCQkJPg0KLQkJ
CTxGaWxlDQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlLmgiDQotCQkJCT4NCi0J
CQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVf
Y29tcGlsZS5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRp
dmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVfZXhlYy5jcHAiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQot
CQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVfaW50ZXJuYWwuaCIN
Ci0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXC4u
XHBjcmVccGNyZV90YWJsZXMuY3BwIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQot
CQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVxwY3JlX3VjcF9zZWFyY2hmdW5jcy5jcHAiDQot
CQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxw
Y3JlXHBjcmVfeGNsYXNzLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVcdWNwaW50ZXJuYWwuaCINCi0JCQkJPg0KLQkJCTwv
RmlsZT4NCi0JCTwvRmlsdGVyPg0KLQkJPEZpbHRlcg0KIAkJCU5hbWU9IkFQSSINCiAJCQk+DQog
CQkJPEZpbGUNCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlQ29tbW9uLnZzcHJvcHMgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlQ29tbW9uLnZzcHJvcHMKaW5kZXggMmE4NWJlYi4uNGE3ZjRkMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUNvbW1vbi52c3Byb3BzCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmVDb21tb24udnNwcm9wcwpAQCAtNiw3ICs2LDcgQEAKIAk+DQogCTxUb29sDQogCQlOYW1l
PSJWQ0NMQ29tcGlsZXJUb29sIg0KLQkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1
b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxKYXZhU2NyaXB0Q29yZVxEZXJpdmVkU291
cmNlc1wmcXVvdDs7Li4vLi4vOy4uLy4uL0FQSS87Li4vLi4vcGNyZS87Li4vLi4vcGFyc2VyLzsu
Li8uLi9ieXRlY29tcGlsZXIvOy4uLy4uL2ppdC87Li4vLi4vcnVudGltZS87Li4vLi4vYnl0ZWNv
ZGUvOy4uLy4uL2ludGVycHJldGVyLzsuLi8uLi93dGYvOy4uLy4uL3Byb2ZpbGVyOy4uLy4uL2Fz
c2VtYmxlci87Li4vLi4vZGVidWdnZXIvOyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNs
dWRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVv
dDs7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGUmcXVvdDs7JnF1b3Q7JChD
b25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZSZxdW90OzsmcXVvdDskKFdl
YktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxwdGhyZWFkcyZxdW90OyINCisJCUFkZGl0aW9uYWxJ
bmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcSmF2
YVNjcmlwdENvcmVcRGVyaXZlZFNvdXJjZXNcJnF1b3Q7Oy4uLy4uLzsuLi8uLi9BUEkvOy4uLy4u
L3BhcnNlci87Li4vLi4vYnl0ZWNvbXBpbGVyLzsuLi8uLi9qaXQvOy4uLy4uL3J1bnRpbWUvOy4u
Ly4uL2J5dGVjb2RlLzsuLi8uLi9pbnRlcnByZXRlci87Li4vLi4vd3RmLzsuLi8uLi9wcm9maWxl
cjsuLi8uLi9hc3NlbWJsZXIvOy4uLy4uL2RlYnVnZ2VyLzsmcXVvdDskKFdlYktpdExpYnJhcmll
c0RpcilcaW5jbHVkZSZxdW90OzsmcXVvdDskKFdlYktpdExpYnJhcmllc0RpcilcaW5jbHVkZVxw
cml2YXRlJnF1b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXEphdmFTY3JpcHRDb3JlJnF1
b3Q7OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7
JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDsiDQogCQlQ
cmVwcm9jZXNzb3JEZWZpbml0aW9ucz0iX19TVERfQyINCiAJCUZvcmNlZEluY2x1ZGVGaWxlcz0i
SUNVVmVyc2lvbi5oIg0KIAkvPg0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURkNvbW1vbi52c3Byb3BzIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGQ29tbW9uLnZzcHJvcHMKaW5k
ZXggYjc0YjkzOS4uNmUyMzIxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGQ29tbW9uLnZzcHJvcHMKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGQ29tbW9uLnZzcHJvcHMK
QEAgLTcsNyArNyw3IEBACiAJPg0KIAk8VG9vbA0KIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIN
Ci0JCUFkZGl0aW9uYWxJbmNsdWRlRGlyZWN0b3JpZXM9IiZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmpcSmF2YVNjcmlwdENvcmVcRGVyaXZlZFNvdXJjZXNcJnF1b3Q7Oy4uLy4uLzsm
cXVvdDsuLi8uLi9vcy13aW4zMi8mcXVvdDs7Li4vLi4vcGNyZS87Li4vLi4vcGFyc2VyLzsuLi8u
Li93dGYvOy4uLy4uL3d0Zi91bmljb2RlLzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilc
aW5jbHVkZVxwcml2YXRlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRl
JnF1b3Q7Oy4uLy4uLy4uL2ljdS9pbmNsdWRlOy4uLy4uL2JpbmRpbmdzOy4uLy4uL2JpbmRpbmdz
L2M7Li4vLi4vYmluZGluZ3Mvam5pOyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNs
dWRlXEphdmFTY3JpcHRDb3JlJnF1b3Q7OyZxdW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNs
dWRlXHB0aHJlYWRzJnF1b3Q7Ig0KKwkJQWRkaXRpb25hbEluY2x1ZGVEaXJlY3Rvcmllcz0iJnF1
b3Q7JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxKYXZhU2NyaXB0Q29yZVxEZXJpdmVkU291
cmNlc1wmcXVvdDs7Li4vLi4vOyZxdW90Oy4uLy4uL29zLXdpbjMyLyZxdW90OzsuLi8uLi9wYXJz
ZXIvOy4uLy4uL3d0Zi87Li4vLi4vd3RmL3VuaWNvZGUvOyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIp
XGluY2x1ZGUmcXVvdDs7Li4vLi4vLi4vaWN1L2luY2x1ZGU7Li4vLi4vYmluZGluZ3M7Li4vLi4v
YmluZGluZ3MvYzsuLi8uLi9iaW5kaW5ncy9qbmk7JnF1b3Q7JChDb25maWd1cmF0aW9uQnVpbGRE
aXIpXGluY2x1ZGVcSmF2YVNjcmlwdENvcmUmcXVvdDs7JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNE
aXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDsiDQogCQlQcmVwcm9jZXNzb3JEZWZpbml0aW9ucz0i
X19TVERfQyINCiAJCUZvcmNlZEluY2x1ZGVGaWxlcz0iSUNVVmVyc2lvbi5oIg0KIAkJUHJvZ3Jh
bURhdGFCYXNlRmlsZU5hbWU9IiQoT3V0RGlyKVwkKFRhcmdldE5hbWUpLnZjODAucGRiIg0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovanNj
L2pzY0NvbW1vbi52c3Byb3BzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LnZjcHJvai9qc2MvanNjQ29tbW9uLnZzcHJvcHMKaW5kZXggZDFjMzYzOC4uM2UzMjljMyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9qc2Mv
anNjQ29tbW9uLnZzcHJvcHMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnZjcHJvai9qc2MvanNjQ29tbW9uLnZzcHJvcHMKQEAgLTYsNyArNiw3IEBACiAJPg0KIAk8
VG9vbA0KIAkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCINCi0JCUFkZGl0aW9uYWxJbmNsdWRlRGly
ZWN0b3JpZXM9IiZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlJnF1b3Q7OyZx
dW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxpbmNsdWRlXHByaXZhdGUmcXVvdDs7JnF1b3Q7
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9ialxKYXZhU2NyaXB0Q29yZVxEZXJpdmVkU291cmNl
c1wmcXVvdDs7Li4vLi4vOyZxdW90Oy4uLy4uL29zLXdpbjMyLyZxdW90OzsuLi8uLi9wY3JlLzsu
Li8uLi9hc3NlbWJsZXIvOy4uLy4uL0FQSS87Li4vLi4vcGFyc2VyLzsuLi8uLi9ydW50aW1lLzsu
Li8uLi9WTS87Li4vLi4vYnl0ZWNvZGUvOy4uLy4uL2ludGVycHJldGVyLzsuLi8uLi93dGYvOy4u
Ly4uL2RlYnVnZ2VyLzsuLi8uLi9ieXRlY29tcGlsZXIvOy4uLy4uL3Byb2ZpbGVyOy4uLy4uL2pp
dC87JnF1b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGVccHRocmVhZHMmcXVvdDs7JnF1
b3Q7JChXZWJLaXRMaWJyYXJpZXNEaXIpXGluY2x1ZGUmcXVvdDsiDQorCQlBZGRpdGlvbmFsSW5j
bHVkZURpcmVjdG9yaWVzPSImcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZSZx
dW90OzsmcXVvdDskKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlJnF1b3Q7
OyZxdW90OyQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcSmF2YVNjcmlwdENvcmVcRGVyaXZl
ZFNvdXJjZXNcJnF1b3Q7Oy4uLy4uLzsmcXVvdDsuLi8uLi9vcy13aW4zMi8mcXVvdDs7Li4vLi4v
YXNzZW1ibGVyLzsuLi8uLi9BUEkvOy4uLy4uL3BhcnNlci87Li4vLi4vcnVudGltZS87Li4vLi4v
Vk0vOy4uLy4uL2J5dGVjb2RlLzsuLi8uLi9pbnRlcnByZXRlci87Li4vLi4vd3RmLzsuLi8uLi9k
ZWJ1Z2dlci87Li4vLi4vYnl0ZWNvbXBpbGVyLzsuLi8uLi9wcm9maWxlcjsuLi8uLi9qaXQvOyZx
dW90OyQoV2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlXHB0aHJlYWRzJnF1b3Q7OyZxdW90OyQo
V2ViS2l0TGlicmFyaWVzRGlyKVxpbmNsdWRlJnF1b3Q7Ig0KIAkJUHJlcHJvY2Vzc29yRGVmaW5p
dGlvbnM9Il9fU1REX0MiDQogCQlGb3JjZWRJbmNsdWRlRmlsZXM9IklDVVZlcnNpb24uaCINCiAJ
CUZvcmNlZFVzaW5nRmlsZXM9IiINCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggY2UxNDFhNy4uMjUzZTQ4OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAyLTEw
ICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBQQ1JFIHNvdXJjZSBmcm9tIHRydW5r
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4OAor
CisgICAgICAgICogd3gvYnVpbGQvc2V0dGluZ3MucHk6CisKIDIwMTEtMDItMTAgIFBoaWxpcHBl
IE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgR1RL
IGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDJmNjdjODcuLjM4N2I1NmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDExLTAyLTEwICBQ
ZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBQQ1JFIHNvdXJjZSBmcm9tIHRydW5rCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4OAorCisg
ICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBBbmRyb2lkLnY4Lnd0Zi5tazoKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIERlcml2ZWRTb3VyY2VzLnBybzoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBKYXZhU2NyaXB0Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLm9y
ZGVyOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnByaToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qOgorICAgICAg
ICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZUNv
bW1vbi52c3Byb3BzOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZUdlbmVyYXRlZC5tYWtlOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLnZjcHJvai9XVEYvV1RGQ29tbW9uLnZzcHJvcHM6CisgICAgICAgICogSmF2YVNjcmlwdENv
cmUudmNwcm9qL2pzYy9qc2NDb21tb24udnNwcm9wczoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBjcmUvQVVUSE9SUzogUmVt
b3ZlZC4KKyAgICAgICAgKiBwY3JlL0NPUFlJTkc6IFJlbW92ZWQuCisgICAgICAgICogcGNyZS9k
ZnRhYmxlczogUmVtb3ZlZC4KKyAgICAgICAgKiBwY3JlL3BjcmUuaDogUmVtb3ZlZC4KKyAgICAg
ICAgKiBwY3JlL3BjcmUucHJpOiBSZW1vdmVkLgorICAgICAgICAqIHBjcmUvcGNyZV9jb21waWxl
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwY3JlL3BjcmVfZXhlYy5jcHA6IFJlbW92ZWQuCisg
ICAgICAgICogcGNyZS9wY3JlX2ludGVybmFsLmg6IFJlbW92ZWQuCisgICAgICAgICogcGNyZS9w
Y3JlX3RhYmxlcy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGNyZS9wY3JlX3VjcF9zZWFyY2hm
dW5jcy5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGNyZS9wY3JlX3hjbGFzcy5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogcGNyZS91Y3BpbnRlcm5hbC5oOiBSZW1vdmVkLgorICAgICAgICAqIHBj
cmUvdWNwdGFibGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdzY3JpcHQ6CisKIDIwMTEtMDIt
MDkgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
YW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDY2Y2VlYWEuLjM5NWM5NWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0wMi0xMCAgUGV0ZXIgVmFyZ2EgIDxwdmFy
Z2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW1vdmUgUENSRSBzb3VyY2UgZnJvbSB0cnVuaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQxODgKKworICAgICAgICAqIEZvcndhcmRp
bmdIZWFkZXJzL3BjcmUvcGNyZS5oOiBSZW1vdmVkLgorCiAyMDExLTAyLTA5ICBQYXZlbCBGZWxk
bWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkg
U2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOTExYTMxOC4uNTJmMjY0ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEyIEBACisyMDExLTAyLTEwICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZSBQQ1JFIHNvdXJjZSBmcm9tIHRydW5rCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4OAorCisgICAgICAgICogV2ViS2l0Mi5wcm86CisKIDIw
MTEtMDItMDkgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgogCiAgICAg
ICAgIFJ1YmJlci1zdGFtcGVkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggMjA1MDZhMi4uZjRkYzA2YyAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9n
CisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTAyLTEwICBQZXRlciBWYXJn
YSAgPHB2YXJnYUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92ZSBQQ1JFIHNvdXJjZSBmcm9tIHRydW5rCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDE4OAorCisgICAgICAgICog
U291cmNlL2NtYWtlL1dlYktpdEZTLmNtYWtlOgorCiAyMDExLTAyLTA5ICBBZGFtIEJhcnRoICA8
YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU3RldmUgQmxvY2suCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNjk2MjU4NC4uMWNlZWEzYyAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTEsNyArMTEsNiBAQCBqYXZhc2Ny
aXB0Y29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdCBcCiAJLUkkKHNyY2RpcikvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdCBcCiAJLUkkKHNy
Y2RpcikvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlciBcCi0JLUkkKHNyY2RpcikvU291cmNl
L0phdmFTY3JpcHRDb3JlL3BjcmUgXAogCS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wcm9maWxlciBcCiAJLUkkKHNyY2RpcikvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUg
XAogCS1JJChzcmNkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYgXApAQCAtMjMsNyArMjIs
NiBAQCBqYXZhc2NyaXB0Y29yZV9jcHBmbGFncyArPSBcCiAJLUkkKHNyY2RpcikvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3lhcnIgXAogCS1JJCh0b3BfYnVpbGRkaXIpL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZSBcCiAJLUkkKHRvcF9idWlsZGRpcikvU291cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlciBc
Ci0JLUkkKHRvcF9idWlsZGRpcikvU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUgXAogCS1JJCh0
b3BfYnVpbGRkaXIpL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lCiAKIGphdmFzY3JpcHRj
b3JlX2hfYXBpICs9IFwKQEAgLTQ4LDggKzQ2LDcgQEAgamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9z
b3VyY2VzICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9OdW1iZXJDb25zdHJ1
Y3Rvci5sdXQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3Ry
dWN0b3IubHV0LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cE9iamVj
dC5sdXQuaCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nUHJvdG90eXBl
Lmx1dC5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9jaGFydGFibGVzLmMKKwlTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUubHV0LmgKIAogamF2YXNj
cmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9BUElDYXN0
LmggXApAQCAtMjA2LDE0ICsyMDMsNiBAQCBqYXZhc2NyaXB0Y29yZV9zb3VyY2VzICs9IFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1NvdXJjZVByb3ZpZGVyQ2FjaGUuaCBcCiAJU291
cmNlL0phdmFTY3JpcHRDb3JlL3BhcnNlci9Tb3VyY2VQcm92aWRlckNhY2hlSXRlbS5oIFwKIAlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2VyL1N5bnRheENoZWNrZXIuaCBcCi0JU291cmNlL0ph
dmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRD
b3JlL3BjcmUvcGNyZV9leGVjLmNwcCBcCi0JU291cmNlL0phdmFTY3JpcHRDb3JlL3BjcmUvcGNy
ZS5oIFwKLQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2ludGVybmFsLmggXAotCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdGFibGVzLmNwcCBcCi0JU291cmNlL0phdmFT
Y3JpcHRDb3JlL3BjcmUvcGNyZV91Y3Bfc2VhcmNoZnVuY3MuY3BwIFwKLQlTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcGNyZS9wY3JlX3hjbGFzcy5jcHAgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9w
Y3JlL3VjcGludGVybmFsLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9DYWxs
SWRlbnRpZmllci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcHJvZmlsZXIvUHJvZmlsZS5j
cHAgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wcm9maWxlci9Qcm9maWxlR2VuZXJhdG9yLmNw
cCBcCkBAIC02MjIsOSArNjExLDYgQEAgU291cmNlL0phdmFTY3JpcHRDb3JlLyUubHV0Lmg6ICQo
c3JjZGlyKS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvY3JlYXRlX2hhc2hfdGFibGUKIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9SZWdFeHBKaXRUYWJsZXMuaDogJChzcmNkaXIpL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9jcmVhdGVfcmVnZXhfdGFibGVzCiAJJChBTV9WX0dFTikkKFBZVEhPTikgJF4gPiAk
QAogCi1Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9jaGFydGFibGVzLmM6ICQoc3JjZGlyKS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcwotCSQoQU1fVl9HRU4pJChQRVJMKSAk
XiAkQAotCiBqc2M6ICQoamF2YXNjcmlwdGNvcmVfYnVpbHRfbm9zb3VyY2VzKSBQcm9ncmFtcy9q
c2MtQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkAkKEVYRUVYVCk7CiAKIGJpbl9QUk9HUkFN
UyArPSBcCkBAIC02OTksMTAgKzY4NSw2IEBAIEVYVFJBX0RJU1QgKz0gXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pY3UvTElDRU5TRSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2ljdS9SRUFE
TUUgXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvS2V5d29yZHMudGFibGUgXAotCVNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL0FVVEhPUlMgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9wY3JlL0NPUFlJTkcgXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3JlL2RmdGFibGVzIFwK
LQlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcGNyZS91Y3B0YWJsZS5jcHAgXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9USEFOS1MKIAogIyBDbGVhbiBydWxlcyBmb3IgSmF2YVNjcmlwdENvcmUKQEAg
LTcxNSw3ICs2OTcsNiBAQCBDTEVBTkZJTEVTICs9IFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5sdXQuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwT2JqZWN0Lmx1dC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TdHJpbmdQcm90b3R5cGUubHV0LmggXAotCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9wY3Jl
L2NoYXJ0YWJsZXMuYyBcCiAJUHJvZ3JhbXMvanNjIFwKIAlQcm9ncmFtcy9qc2MtQFdFQktJVEdU
S19BUElfTUFKT1JfVkVSU0lPTkAgXAogCVByb2dyYW1zL21pbmlkb20K
</data>

          </attachment>
      

    </bug>

</bugzilla>