<?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>126125</bug_id>
          
          <creation_ts>2013-12-21 17:32:31 -0800</creation_ts>
          <short_desc>[WK2] Rename WebError to API::Error</short_desc>
          <delta_ts>2013-12-22 08:36:39 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>962281</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-21 17:32:31 -0800</bug_when>
    <thetext>[WK2] Rename WebError to API::Error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962282</commentid>
    <comment_count>1</comment_count>
      <attachid>219857</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-21 17:32:47 -0800</bug_when>
    <thetext>Created attachment 219857
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962283</commentid>
    <comment_count>2</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2013-12-21 18:15:25 -0800</bug_when>
    <thetext>Committed r160971: &lt;http://trac.webkit.org/changeset/160971&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962325</commentid>
    <comment_count>3</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-12-22 07:44:14 -0800</bug_when>
    <thetext>Buildfixes landed in
- http://trac.webkit.org/changeset/160972
- http://trac.webkit.org/changeset/160974
- http://trac.webkit.org/changeset/160975</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>962329</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2013-12-22 08:36:39 -0800</bug_when>
    <thetext>The last EFL buildfix landed in http://trac.webkit.org/changeset/160976 .

(I&apos;m sure if there is a better fix for it, but I won&apos;t 
waste my christmas holiday to find the proper buildfix.)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219857</attachid>
            <date>2013-12-21 17:32:47 -0800</date>
            <delta_ts>2013-12-21 18:08:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-126125-20131221173246.patch</filename>
            <type>text/plain</type>
            <size>43688</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MDk3MCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBACisyMDEzLTEyLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dLMl0gUmVuYW1lIFdlYkVycm9yIHRv
IEFQSTo6RXJyb3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNjEyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwOgorICAgICAgICAoV0tFcnJvckdldFR5cGVJ
RCk6CisgICAgICAgIChXS0Vycm9yQ29weVdLRXJyb3JEb21haW4pOgorICAgICAgICAqIFNoYXJl
ZC9BUEkvYy9XS1NoYXJlZEFQSUNhc3QuaDoKKyAgICAgICAgKFdlYktpdDo6dG9BUEkpOgorICAg
ICAgICAqIFNoYXJlZC9BUEkvYy9jZi9XS0Vycm9yQ0YuY3BwOgorICAgICAgICAoV0tFcnJvckNy
ZWF0ZVdpdGhDRkVycm9yKToKKyAgICAgICAgKiBTaGFyZWQvQVBJRXJyb3IuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3IuY3BwLgorICAgICAgICAoQVBJOjpF
cnJvcjo6d2ViS2l0RXJyb3JEb21haW4pOgorICAgICAgICAoQVBJOjpFcnJvcjo6ZW5jb2RlKToK
KyAgICAgICAgKEFQSTo6RXJyb3I6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL0FQSUVycm9y
Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvci5oLgorICAgICAg
ICAoQVBJOjpFcnJvcjo6Y3JlYXRlKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OmRvbWFpbik6Cisg
ICAgICAgIChBUEk6OkVycm9yOjpmYWlsaW5nVVJMKToKKyAgICAgICAgKEFQSTo6RXJyb3I6Omxv
Y2FsaXplZERlc2NyaXB0aW9uKToKKyAgICAgICAgKEFQSTo6RXJyb3I6OkVycm9yKToKKyAgICAg
ICAgKiBTaGFyZWQvQ29jb2EvV0tOU0Vycm9yLmg6CisgICAgICAgIChXZWJLaXQ6OndyYXBwZXIp
OgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9XS05TRXJyb3IubW06CisgICAgICAgICgtW1dLTlNF
cnJvciBfd2ViX2NyZWF0ZVRhcmdldF0pOgorICAgICAgICAqIFNoYXJlZC9Vc2VyRGF0YS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJEYXRhOjplbmNvZGUpOgorICAgICAgICAoV2ViS2l0OjpV
c2VyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaDoK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lc3NhZ2VFbmNvZGVyOjpiYXNlRW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lc3NhZ2VEZWNvZGVyOjpiYXNlRGVjb2RlKToKKyAgICAgICAgKiBT
aGFyZWQvV2ViRXJyb3IuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFNoYXJlZC9XZWJFcnJvci5o
OiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmg6
CisgICAgICAgIChXZWJLaXQ6OkF1dG9jb3JyZWN0aW9uRGF0YUNhbGxiYWNrOjppbnZhbGlkYXRl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6CisgICAgICAgIChXZWJL
aXQ6OlZvaWRDYWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkdlbmVyaWND
YWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkNvbXB1dGVkUGFnZXNDYWxs
YmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkltYWdlQ2FsbGJhY2s6OmludmFs
aWRhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlUHJveHk6OnByaW50RmluaXNoZWRDYWxsYmFjayk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpWYWxpZGF0ZUNvbW1h
bmRDYWxsYmFjazo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Okdlc3R1cmVDYWxsYmFj
azo6aW52YWxpZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRvdWNoZXNDYWxsYmFjazo6aW52YWxp
ZGF0ZSk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlTG9hZGVy
Q2xpZW50LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVk
QnVuZGxlUGFnZVBvbGljeUNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpibG9ja2VkRXJy
b3IpOgorICAgICAgICAoV2ViS2l0OjpjYW5ub3RTaG93VVJMRXJyb3IpOgorICAgICAgICAoV2Vi
S2l0OjppbnRlcnJ1cHRlZEZvclBvbGljeUNoYW5nZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6
Y2Fubm90U2hvd01JTUVUeXBlRXJyb3IpOgorICAgICAgICAoV2ViS2l0OjpwbHVnaW5XaWxsSGFu
ZGxlTG9hZEVycm9yKToKKyAgICAgICAgKFdlYktpdDo6aW50ZXJuYWxFcnJvcik6CisKIDIwMTMt
MTItMjAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV0syXSBSZW5h
bWUgV2ViVVJMIHRvIEFQSTo6VVJMCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRXJy
b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElFcnJvci5jcHAJ
KHJldmlzaW9uIDE2MDk2OCkJKGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9yLmNw
cDoxNjA5NjgpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRXJyb3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViRXJyb3IuaCIKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY29uc3QgU3RyaW5nJiBXZWJFcnJvcjo6d2ViS2l0
RXJyb3JEb21haW4oKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCB3ZWJLaXRF
cnJvckRvbWFpblN0cmluZywgKEFTQ0lJTGl0ZXJhbCgiV2ViS2l0RXJyb3JEb21haW4iKSkpOwor
ICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJRXJyb3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElFcnJvci5jcHAJKHdvcmtpbmcgY29weSkK
KysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUElFcnJvci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI0LDE2ICsyNCwzMyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJX
ZWJFcnJvci5oIgorI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAKKyNpbmNsdWRlICJXZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAotbmFtZXNwYWNlIFdlYktpdCB7CituYW1lc3BhY2Ug
QVBJIHsKIAotY29uc3QgU3RyaW5nJiBXZWJFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKQorY29u
c3QgV1RGOjpTdHJpbmcmIEVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpCiB7Ci0gICAgREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdEVycm9yRG9tYWluU3RyaW5nLCAoQVNDSUlMaXRl
cmFsKCJXZWJLaXRFcnJvckRvbWFpbiIpKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFdU
Rjo6U3RyaW5nPiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZyhBU0NJSUxpdGVyYWwoIldlYktpdEVy
cm9yRG9tYWluIikpOwogICAgIHJldHVybiB3ZWJLaXRFcnJvckRvbWFpblN0cmluZzsKIH0KIAor
dm9pZCBFcnJvcjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAor
eworICAgIGVuY29kZXIgPDwgcGxhdGZvcm1FcnJvcigpOworfQorCitib29sIEVycm9yOjpkZWNv
ZGUoSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIFJlZlB0cjxPYmplY3Q+JiByZXN1bHQp
Cit7CisgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvcjsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKGVycm9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJlc3VsdCA9
IGNyZWF0ZShlcnJvcik7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUVycm9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSUVycm9yLmgJKHJldmlzaW9uIDE2MDk2OCkJKGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkVycm9yLmg6MTYwOTY4KQorKysgU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSUVycm9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViRXJyb3JfaAorI2RlZmluZSBXZWJFcnJvcl9oCisKKyNp
bmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJyb3IuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8g
V2ViRXJyb3IgLSBBbiBlcnJvciB0eXBlIHN1aXRhYmxlIGZvciB2ZW5kaW5nIHRvIGFuIEFQSS4K
KworY2xhc3MgV2ViRXJyb3IgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpU
eXBlOjpFcnJvcj4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkVycm9yPiBj
cmVhdGUoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJFcnJvcik7Cisg
ICAgfQorCisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRXJyb3I+IGNyZWF0ZShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViRXJyb3IoZXJyb3IpKTsKKyAgICB9CisKKyAgICBzdGF0aWMgY29uc3QgU3RyaW5n
JiB3ZWJLaXRFcnJvckRvbWFpbigpOworCisgICAgY29uc3QgU3RyaW5nJiBkb21haW4oKSBjb25z
dCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZG9tYWluKCk7IH0KKyAgICBpbnQgZXJyb3JDb2Rl
KCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgpOyB9CisgICAgY29u
c3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmZh
aWxpbmdVUkwoKTsgfQorICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVzY3JpcHRpb24oKSBj
b25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKTsgfQor
CisgICAgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgcGxhdGZvcm1FcnJvcigpIGNvbnN0
IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvcjsgfQorCitwcml2YXRlOgorICAgIFdlYkVycm9yKCkK
KyAgICB7CisgICAgfQorCisgICAgV2ViRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJv
ciYgZXJyb3IpCisgICAgICAgIDogbV9wbGF0Zm9ybUVycm9yKGVycm9yKQorICAgIHsKKyAgICB9
CisKKyAgICBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIG1fcGxhdGZvcm1FcnJvcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXJyb3JfaApJbmRleDogU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
U2hhcmVkL0FQSUVycm9yLmgJKHdvcmtpbmcgY29weSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUElFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw0NCArMjMsNTAgQEAKICAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkVycm9yX2gKLSNk
ZWZpbmUgV2ViRXJyb3JfaAorI2lmbmRlZiBBUElFcnJvcl9oCisjZGVmaW5lIEFQSUVycm9yX2gK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKLW5hbWVzcGFjZSBXZWJLaXQgewor
bmFtZXNwYWNlIElQQyB7CitjbGFzcyBBcmd1bWVudERlY29kZXI7CitjbGFzcyBBcmd1bWVudEVu
Y29kZXI7Cit9CiAKLS8vIFdlYkVycm9yIC0gQW4gZXJyb3IgdHlwZSBzdWl0YWJsZSBmb3IgdmVu
ZGluZyB0byBhbiBBUEkuCituYW1lc3BhY2UgQVBJIHsKIAotY2xhc3MgV2ViRXJyb3IgOiBwdWJs
aWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpFcnJvcj4geworY2xhc3MgRXJy
b3IgOiBwdWJsaWMgT2JqZWN0SW1wbDxPYmplY3Q6OlR5cGU6OkVycm9yPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRXJyb3I+IGNyZWF0ZSgpCisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8RXJyb3I+IGNyZWF0ZSgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IFdlYkVycm9yKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFcnJvcik7CiAgICAgfQog
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRXJyb3I+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZUVycm9yJiBlcnJvcikKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxFcnJvcj4gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJFcnJvcihlcnJvcikpOworICAgICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEVycm9yKGVycm9yKSk7CiAgICAgfQogCi0gICAgc3RhdGljIGNvbnN0IFN0cmluZyYg
d2ViS2l0RXJyb3JEb21haW4oKTsKKyAgICBzdGF0aWMgY29uc3QgV1RGOjpTdHJpbmcmIHdlYktp
dEVycm9yRG9tYWluKCk7CiAKLSAgICBjb25zdCBTdHJpbmcmIGRvbWFpbigpIGNvbnN0IHsgcmV0
dXJuIG1fcGxhdGZvcm1FcnJvci5kb21haW4oKTsgfQorICAgIGNvbnN0IFdURjo6U3RyaW5nJiBk
b21haW4oKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZG9tYWluKCk7IH0KICAgICBp
bnQgZXJyb3JDb2RlKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmVycm9yQ29kZSgp
OyB9Ci0gICAgY29uc3QgU3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0
Zm9ybUVycm9yLmZhaWxpbmdVUkwoKTsgfQotICAgIGNvbnN0IFN0cmluZyYgbG9jYWxpemVkRGVz
Y3JpcHRpb24oKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IubG9jYWxpemVkRGVzY3Jp
cHRpb24oKTsgfQorICAgIGNvbnN0IFdURjo6U3RyaW5nJiBmYWlsaW5nVVJMKCkgY29uc3QgeyBy
ZXR1cm4gbV9wbGF0Zm9ybUVycm9yLmZhaWxpbmdVUkwoKTsgfQorICAgIGNvbnN0IFdURjo6U3Ry
aW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJv
ci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpOyB9CiAKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBwbGF0Zm9ybUVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yOyB9
CiAKKyAgICB2b2lkIGVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OworICAgIHN0
YXRpYyBib29sIGRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYsIFJlZlB0cjxPYmplY3Q+Jik7
CisKIHByaXZhdGU6Ci0gICAgV2ViRXJyb3IoKQorICAgIEVycm9yKCkKICAgICB7CiAgICAgfQog
Ci0gICAgV2ViRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCisgICAg
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgICAgIDogbV9w
bGF0Zm9ybUVycm9yKGVycm9yKQogICAgIHsKICAgICB9CkBAIC02OCw2ICs3NCw2IEBAIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBtX3BsYXRmb3JtRXJyb3I7CiB9OwogCi19
IC8vIG5hbWVzcGFjZSBXZWJLaXQKK30gLy8gbmFtZXNwYWNlIEFQSQogCi0jZW5kaWYgLy8gV2Vi
RXJyb3JfaAorI2VuZGlmIC8vIEFQSUVycm9yX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Vc2VyRGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJE
YXRhLmNwcAkocmV2aXNpb24gMTYwOTcwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJE
YXRhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAiQVBJ
QXJyYXkuaCIKICNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNp
bmNsdWRlICJBUElGcmFtZUhhbmRsZS5oIgogI2luY2x1ZGUgIkFQSUdlb21ldHJ5LmgiCiAjaW5j
bHVkZSAiQVBJTnVtYmVyLmgiCkBAIC0xMzcsNiArMTM4LDEwIEBAIHZvaWQgVXNlckRhdGE6OmVu
Y29kZShDb3JlSVBDOjpBcmd1bWVudEUKICAgICAgICAgYnJlYWs7CiAgICAgfQogCisgICAgY2Fz
ZSBBUEk6Ok9iamVjdDo6VHlwZTo6RXJyb3I6CisgICAgICAgIHN0YXRpY19jYXN0PGNvbnN0IEFQ
STo6RXJyb3ImPihvYmplY3QpLmVuY29kZShlbmNvZGVyKTsKKyAgICAgICAgYnJlYWs7CisKICAg
ICBjYXNlIEFQSTo6T2JqZWN0OjpUeXBlOjpGcmFtZUhhbmRsZTogewogICAgICAgICBhdXRvJiBm
cmFtZUhhbmRsZSA9IHN0YXRpY19jYXN0PGNvbnN0IEFQSTo6RnJhbWVIYW5kbGUmPihvYmplY3Qp
OwogICAgICAgICBlbmNvZGVyIDw8IGZyYW1lSGFuZGxlLmZyYW1lSUQoKTsKQEAgLTI1MCw2ICsy
NTUsMTEgQEAgYm9vbCBVc2VyRGF0YTo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RAogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBicmVhazsKIAorICAgIGNhc2UgQVBJOjpPYmpl
Y3Q6OlR5cGU6OkVycm9yOgorICAgICAgICBpZiAoIUFQSTo6RXJyb3I6OmRlY29kZShkZWNvZGVy
LCByZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBicmVhazsKKwog
ICAgIGNhc2UgQVBJOjpPYmplY3Q6OlR5cGU6OkZyYW1lSGFuZGxlOiB7CiAgICAgICAgIHVpbnQ2
NF90IGZyYW1lSUQ7CiAgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoZnJhbWVJRCkpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVXNlck1lc3NhZ2VDb2RlcnMuaAkocmV2aXNpb24gMTYw
OTcwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1VzZXJNZXNzYWdlQ29kZXJzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5j
bHVkZSAiQVBJRGF0YS5oIgorI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAjaW5jbHVkZSAiQVBJR2Vv
bWV0cnkuaCIKICNpbmNsdWRlICJBUElOdW1iZXIuaCIKICNpbmNsdWRlICJBUElTdHJpbmcuaCIK
QEAgLTQxLDcgKzQyLDYgQEAKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRl
ICJXZWJDZXJ0aWZpY2F0ZUluZm8uaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMu
aCIKLSNpbmNsdWRlICJXZWJFcnJvci5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVk
ZSAiV2ViUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJXZWJSZW5kZXJPYmplY3QuaCIKQEAgLTY2
LDcgKzY2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyAgIC0gQVBJOjpVUkwgLT4gQVBJOjpV
UkwKIC8vICAgLSBBUEk6OlVSTFJlcXVlc3QgLT4gQVBJOjpVUkxSZXF1ZXN0CiAvLyAgIC0gQVBJ
OjpVUkxSZXNwb25zZSAtPiBBUEk6OlVSTFJlc3BvbnNlCi0vLyAgIC0gV2ViRXJyb3IgLT4gV2Vi
RXJyb3IKKy8vICAgLSBBUEk6OkVycm9yIC0+IEFQSTo6RXJyb3IKIAogdGVtcGxhdGU8dHlwZW5h
bWUgT3duZXI+CiBjbGFzcyBVc2VyTWVzc2FnZUVuY29kZXIgewpAQCAtMjE5LDcgKzIxOSw3IEBA
IHB1YmxpYzoKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAgICAgICAgIGNh
c2UgQVBJOjpPYmplY3Q6OlR5cGU6OkVycm9yOiB7Ci0gICAgICAgICAgICBXZWJFcnJvciogZXJy
b3JPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJFcnJvcio+KG1fcm9vdCk7CisgICAgICAgICAgICBB
UEk6OkVycm9yKiBlcnJvck9iamVjdCA9IHN0YXRpY19jYXN0PEFQSTo6RXJyb3IqPihtX3Jvb3Qp
OwogICAgICAgICAgICAgZW5jb2RlciA8PCBlcnJvck9iamVjdC0+cGxhdGZvcm1FcnJvcigpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTI1NSw3ICsyNTUsNyBAQCBw
cm90ZWN0ZWQ6CiAvLyAgIC0gQVBJOjpVUkwgLT4gQVBJOjpVUkwKIC8vICAgLSBBUEk6OlVSTFJl
cXVlc3QgLT4gQVBJOjpVUkxSZXF1ZXN0CiAvLyAgIC0gQVBJOjpVUkxSZXNwb25zZSAtPiBBUEk6
OlVSTFJlc3BvbnNlCi0vLyAgIC0gV2ViRXJyb3IgLT4gV2ViRXJyb3IKKy8vICAgLSBBUEk6OkVy
cm9yIC0+IEFQSTo6RXJyb3IKIAogdGVtcGxhdGU8dHlwZW5hbWUgT3duZXI+CiBjbGFzcyBVc2Vy
TWVzc2FnZURlY29kZXIgewpAQCAtNTE0LDcgKzUxNCw3IEBAIHB1YmxpYzoKICAgICAgICAgICAg
IFdlYkNvcmU6OlJlc291cmNlRXJyb3IgcmVzb3VyY2VFcnJvcjsKICAgICAgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGUocmVzb3VyY2VFcnJvcikpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgICAgICAgICAgY29kZXIubV9yb290ID0gV2ViRXJyb3I6OmNyZWF0ZShyZXNvdXJj
ZUVycm9yKTsKKyAgICAgICAgICAgIGNvZGVyLm1fcm9vdCA9IEFQSTo6RXJyb3I6OmNyZWF0ZShy
ZXNvdXJjZUVycm9yKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGRl
ZmF1bHQ6CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3IuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvci5jcHAJKHJldmlzaW9uIDE2MDk3
MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNs
dWRlICJXZWJFcnJvci5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi1jb25zdCBTdHJpbmcmIFdlYkVycm9yOjp3ZWJLaXRFcnJvckRv
bWFpbigpCi17Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHdlYktpdEVycm9yRG9t
YWluU3RyaW5nLCAoQVNDSUlMaXRlcmFsKCJXZWJLaXRFcnJvckRvbWFpbiIpKSk7Ci0gICAgcmV0
dXJuIHdlYktpdEVycm9yRG9tYWluU3RyaW5nOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvci5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJFcnJvci5oCShyZXZpc2lvbiAxNjA5NzApCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViRXJyb3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSw3MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXZWJFcnJvcl9oCi0jZGVmaW5lIFdlYkVycm9yX2gK
LQotI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJv
ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewot
Ci0vLyBXZWJFcnJvciAtIEFuIGVycm9yIHR5cGUgc3VpdGFibGUgZm9yIHZlbmRpbmcgdG8gYW4g
QVBJLgotCi1jbGFzcyBXZWJFcnJvciA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmpl
Y3Q6OlR5cGU6OkVycm9yPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRXJy
b3I+IGNyZWF0ZSgpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkVycm9y
KTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJFcnJvcj4gY3JlYXRlKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJFcnJvcihlcnJvcikpOwotICAgIH0KLQotICAgIHN0YXRpYyBjb25zdCBT
dHJpbmcmIHdlYktpdEVycm9yRG9tYWluKCk7Ci0KLSAgICBjb25zdCBTdHJpbmcmIGRvbWFpbigp
IGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5kb21haW4oKTsgfQotICAgIGludCBlcnJv
ckNvZGUoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJyb3IuZXJyb3JDb2RlKCk7IH0KLSAg
ICBjb25zdCBTdHJpbmcmIGZhaWxpbmdVUkwoKSBjb25zdCB7IHJldHVybiBtX3BsYXRmb3JtRXJy
b3IuZmFpbGluZ1VSTCgpOyB9Ci0gICAgY29uc3QgU3RyaW5nJiBsb2NhbGl6ZWREZXNjcmlwdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1FcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigp
OyB9Ci0KLSAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBwbGF0Zm9ybUVycm9yKCkg
Y29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUVycm9yOyB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViRXJy
b3IoKQotICAgIHsKLSAgICB9Ci0KLSAgICBXZWJFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJiBlcnJvcikKLSAgICAgICAgOiBtX3BsYXRmb3JtRXJyb3IoZXJyb3IpCi0gICAgewot
ICAgIH0KLQotICAgIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgbV9wbGF0Zm9ybUVycm9yOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0KLSNlbmRpZiAvLyBXZWJFcnJvcl9oCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLRXJyb3IuY3BwCShyZXZpc2lvbiAxNjA5NzApCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tFcnJvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDE5ICsyNiwxOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldLRXJy
b3IuaCIKIAotI2luY2x1ZGUgIldlYkVycm9yLmgiCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBl
SUQgV0tFcnJvckdldFR5cGVJRCgpCiB7Ci0gICAgcmV0dXJuIHRvQVBJKFdlYkVycm9yOjpBUElU
eXBlKTsKKyAgICByZXR1cm4gdG9BUEkoQVBJOjpFcnJvcjo6QVBJVHlwZSk7CiB9CiAKIFdLU3Ry
aW5nUmVmIFdLRXJyb3JDb3B5V0tFcnJvckRvbWFpbigpCiB7Ci0gICAgcmV0dXJuIHRvQ29waWVk
QVBJKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpKTsKKyAgICByZXR1cm4gdG9Db3BpZWRB
UEkoQVBJOjpFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSk7CiB9CiAKIFdLU3RyaW5nUmVmIFdL
RXJyb3JDb3B5RG9tYWluKFdLRXJyb3JSZWYgZXJyb3JSZWYpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL1dLU2hhcmVkQVBJQ2FzdC5oCShyZXZpc2lvbiAxNjA5NzApCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tTaGFyZWRBUElDYXN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5kZWYgV0tTaGFyZWRBUElDYXN0X2gKICNkZWZp
bmUgV0tTaGFyZWRBUElDYXN0X2gKIAorI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAjaW5jbHVkZSAi
QVBJTnVtYmVyLmgiCiAjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAiQVBJVVJMLmgi
CkBAIC00NCw3ICs0NSw2IEBACiAjaW5jbHVkZSAiV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgiCiAj
aW5jbHVkZSAiV0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmgiCiAjaW5jbHVkZSAiV0tVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZS5oIgotI2luY2x1ZGUgIldlYkVycm9yLmgiCiAjaW5jbHVkZSAi
V2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUgIldlYlNl
Y3VyaXR5T3JpZ2luLmgiCkBAIC05Nyw3ICs5Nyw3IEBAIFdLX0FERF9BUElfTUFQUElORyhXS0Nv
bnRleHRNZW51SXRlbVJlZiwKIFdLX0FERF9BUElfTUFQUElORyhXS0RhdGFSZWYsIEFQSTo6RGF0
YSkKIFdLX0FERF9BUElfTUFQUElORyhXS0RpY3Rpb25hcnlSZWYsIEltbXV0YWJsZURpY3Rpb25h
cnkpCiBXS19BRERfQVBJX01BUFBJTkcoV0tEb3VibGVSZWYsIEFQSTo6RG91YmxlKQotV0tfQURE
X0FQSV9NQVBQSU5HKFdLRXJyb3JSZWYsIFdlYkVycm9yKQorV0tfQUREX0FQSV9NQVBQSU5HKFdL
RXJyb3JSZWYsIEFQSTo6RXJyb3IpCiBXS19BRERfQVBJX01BUFBJTkcoV0tHcmFwaGljc0NvbnRl
eHRSZWYsIFdlYkdyYXBoaWNzQ29udGV4dCkKIFdLX0FERF9BUElfTUFQUElORyhXS0ltYWdlUmVm
LCBXZWJJbWFnZSkKIFdLX0FERF9BUElfTUFQUElORyhXS011dGFibGVEaWN0aW9uYXJ5UmVmLCBN
dXRhYmxlRGljdGlvbmFyeSkKQEAgLTE5OCw5ICsxOTgsOSBAQCBpbmxpbmUgU3RyaW5nIHRvV1RG
U3RyaW5nKFdLVVJMUmVmIHVybFJlCiAgICAgcmV0dXJuIHRvSW1wbCh1cmxSZWYpLT5zdHJpbmco
KTsKIH0KIAotaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYkVycm9yPiB0b0FQSShjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKK2lubGluZSBQcm94eWluZ1JlZlB0cjxBUEk6OkVy
cm9yPiB0b0FQSShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcikKIHsKLSAgICBy
ZXR1cm4gUHJveHlpbmdSZWZQdHI8V2ViRXJyb3I+KFdlYkVycm9yOjpjcmVhdGUoZXJyb3IpKTsK
KyAgICByZXR1cm4gUHJveHlpbmdSZWZQdHI8QVBJOjpFcnJvcj4oQVBJOjpFcnJvcjo6Y3JlYXRl
KGVycm9yKSk7CiB9CiAKIGlubGluZSBQcm94eWluZ1JlZlB0cjxBUEk6OlVSTFJlcXVlc3Q+IHRv
QVBJKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS0Vycm9yQ0YuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9jZi9XS0Vycm9yQ0YuY3BwCShyZXZpc2lvbiAxNjA5
NzApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvY2YvV0tFcnJvckNGLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjYsMTUgKzI2LDE1IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiV0tFcnJvckNGLmgiCiAKKyNpbmNsdWRlICJBUElFcnJvci5oIgogI2luY2x1ZGUgIldL
QVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYkVycm9yLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tFcnJvclJlZiBXS0Vycm9yQ3JlYXRl
V2l0aENGRXJyb3IoQ0ZFcnJvclJlZiBjZkVycm9yKQogewotICAgIFJlZlB0cjxXZWJFcnJvcj4g
ZXJyb3IgPSBXZWJFcnJvcjo6Y3JlYXRlKFJlc291cmNlRXJyb3IoY2ZFcnJvcikpOworICAgIFJl
ZlB0cjxBUEk6OkVycm9yPiBlcnJvciA9IEFQSTo6RXJyb3I6OmNyZWF0ZShSZXNvdXJjZUVycm9y
KGNmRXJyb3IpKTsKICAgICByZXR1cm4gdG9BUEkoZXJyb3IucmVsZWFzZSgpLmxlYWtSZWYoKSk7
CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRXJyb3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29jb2EvV0tOU0Vycm9yLmgJKHJldmlz
aW9uIDE2MDk3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db2NvYS9XS05TRXJyb3IuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsMTEgKzI3LDE3IEBACiAKICNpZiBXS19BUElfRU5BQkxFRAog
CisjaW1wb3J0ICJBUElFcnJvci5oIgogI2ltcG9ydCAiV0tPYmplY3QuaCIKLSNpbXBvcnQgIldl
YkVycm9yLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewotaW5saW5lIE5TRXJyb3IgKndyYXBwZXIo
V2ViRXJyb3ImIGVycm9yKSB7IEFTU0VSVChbZXJyb3Iud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6
W05TRXJyb3Igc2VsZl1dKTsgcmV0dXJuIChOU0Vycm9yICopZXJyb3Iud3JhcHBlcigpOyB9CisK
K2lubGluZSBOU0Vycm9yICp3cmFwcGVyKEFQSTo6RXJyb3ImIGVycm9yKQoreworICAgIEFTU0VS
VChbZXJyb3Iud3JhcHBlcigpIGlzS2luZE9mQ2xhc3M6W05TRXJyb3Igc2VsZl1dKTsKKyAgICBy
ZXR1cm4gKE5TRXJyb3IgKillcnJvci53cmFwcGVyKCk7Cit9CisKIH0KIAogQGludGVyZmFjZSBX
S05TRXJyb3IgOiBXS09iamVjdCA8TlNDb3B5aW5nPgpJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL0NvY29hL1dLTlNFcnJvci5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29jb2EvV0tOU0Vycm9yLm1tCShyZXZpc2lvbiAxNjA5NzApCisrKyBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29jb2EvV0tOU0Vycm9yLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxNSArMjgs
MTMgQEAKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKLSNpbXBvcnQgIldlYkVycm9yLmgiCi0KLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisjaW1wb3J0ICJBUElFcnJvci5oIgogCiBAaW1wbGVtZW50
YXRpb24gV0tOU0Vycm9yCiAKIC0gKE5TT2JqZWN0ICopX3dlYl9jcmVhdGVUYXJnZXQKIHsKLSAg
ICByZXR1cm4gWyhOU0Vycm9yICopc3RhdGljX2Nhc3Q8V2ViRXJyb3IqPigmc2VsZi5fYXBpT2Jq
ZWN0KS0+cGxhdGZvcm1FcnJvcigpLmNmRXJyb3IoKSBjb3B5XTsKKyAgICByZXR1cm4gWyhOU0Vy
cm9yICopc3RhdGljX2Nhc3Q8QVBJOjpFcnJvcio+KCZzZWxmLl9hcGlPYmplY3QpLT5wbGF0Zm9y
bUVycm9yKCkuY2ZFcnJvcigpIGNvcHldOwogfQogCiAjcHJhZ21hIG1hcmsgTlNDb3B5aW5nIHBy
b3RvY29sIGltcGxlbWVudGF0aW9uCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0
b0NvcnJlY3Rpb25DYWxsYmFjay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmgJKHJldmlzaW9uIDE2MDk3MCkKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDkgKzI2LDkgQEAKICNpZm5kZWYgQXV0b0NvcnJlY3Rpb25DYWxsYmFja19oCiAj
ZGVmaW5lIEF1dG9Db3JyZWN0aW9uQ2FsbGJhY2tfaAogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIK
ICNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNp
bmNsdWRlICJXZWJFcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAtNjIsNyAr
NjIsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobV9jYWxsYmFjayk7CiAKLSAg
ICAgICAgUmVmUHRyPFdlYkVycm9yPiBlcnJvciA9IFdlYkVycm9yOjpjcmVhdGUoKTsKKyAgICAg
ICAgUmVmUHRyPEFQSTo6RXJyb3I+IGVycm9yID0gQVBJOjpFcnJvcjo6Y3JlYXRlKCk7CiAgICAg
ICAgIG1fY2FsbGJhY2soVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4oKSwgU3RyaW5nKCksIDAs
IDAsIHRvQVBJKGVycm9yLmdldCgpKSwgY29udGV4dCgpKTsKIAogICAgICAgICBtX2NhbGxiYWNr
ID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgJ
KHJldmlzaW9uIDE2MDk3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9HZW5lcmljQ2Fs
bGJhY2suaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOSArMjYsOSBAQAogI2lmbmRlZiBHZW5lcmlj
Q2FsbGJhY2tfaAogI2RlZmluZSBHZW5lcmljQ2FsbGJhY2tfaAogCisjaW5jbHVkZSAiQVBJRXJy
b3IuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKLSNpbmNsdWRlICJXZWJFcnJvci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgpAQCAt
OTIsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghbV9jYWxsYmFjaykKICAgICAgICAg
ICAgIHJldHVybjsKIAotICAgICAgICBSZWZQdHI8V2ViRXJyb3I+IGVycm9yID0gV2ViRXJyb3I6
OmNyZWF0ZSgpOworICAgICAgICBSZWZQdHI8QVBJOjpFcnJvcj4gZXJyb3IgPSBBUEk6OkVycm9y
OjpjcmVhdGUoKTsKICAgICAgICAgbV9jYWxsYmFjayh0b0FQSShlcnJvci5nZXQoKSksIGNvbnRl
eHQoKSk7CiAgICAgICAgIAogICAgICAgICBtX2NhbGxiYWNrID0gMDsKQEAgLTEzNiw3ICsxMzYs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobV9jYWxsYmFjayk7CiAKLSAgICAg
ICAgUmVmUHRyPFdlYkVycm9yPiBlcnJvciA9IFdlYkVycm9yOjpjcmVhdGUoKTsKKyAgICAgICAg
UmVmUHRyPEFQSTo6RXJyb3I+IGVycm9yID0gQVBJOjpFcnJvcjo6Y3JlYXRlKCk7CiAgICAgICAg
IG1fY2FsbGJhY2soMCwgdG9BUEkoZXJyb3IuZ2V0KCkpLCBjb250ZXh0KCkpOwogICAgICAgICAK
ICAgICAgICAgbV9jYWxsYmFjayA9IDA7CkBAIC0xODAsNyArMTgwLDcgQEAgcHVibGljOgogICAg
IHsKICAgICAgICAgQVNTRVJUKG1fY2FsbGJhY2spOwogCi0gICAgICAgIFJlZlB0cjxXZWJFcnJv
cj4gZXJyb3IgPSBXZWJFcnJvcjo6Y3JlYXRlKCk7CisgICAgICAgIFJlZlB0cjxBUEk6OkVycm9y
PiBlcnJvciA9IEFQSTo6RXJyb3I6OmNyZWF0ZSgpOwogICAgICAgICBtX2NhbGxiYWNrKFZlY3Rv
cjxXZWJDb3JlOjpJbnRSZWN0PigpLCAwLCB0b0FQSShlcnJvci5nZXQoKSksIGNvbnRleHQoKSk7
CiAgICAgICAgIAogICAgICAgICBtX2NhbGxiYWNrID0gMDsKQEAgLTIyNCw3ICsyMjQsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobV9jYWxsYmFjayk7CiAKLSAgICAgICAgUmVm
UHRyPFdlYkVycm9yPiBlcnJvciA9IFdlYkVycm9yOjpjcmVhdGUoKTsKKyAgICAgICAgUmVmUHRy
PEFQSTo6RXJyb3I+IGVycm9yID0gQVBJOjpFcnJvcjo6Y3JlYXRlKCk7CiAgICAgICAgIFNoYXJl
YWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKICAgICAgICAgbV9jYWxsYmFjayhoYW5kbGUsIHRv
QVBJKGVycm9yLmdldCgpKSwgY29udGV4dCgpKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE2MDk3MCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjgzLDcg
KzM2ODMsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGaW5pc2hlZENhbGxiYWNrCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWZQdHI8V2ViRXJyb3I+IGVycm9yID0gV2ViRXJy
b3I6OmNyZWF0ZShwcmludEVycm9yKTsKKyAgICBSZWZQdHI8QVBJOjpFcnJvcj4gZXJyb3IgPSBB
UEk6OkVycm9yOjpjcmVhdGUocHJpbnRFcnJvcik7CiAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxs
YmFja1dpdGhSZXR1cm5WYWx1ZShlcnJvci5nZXQoKSk7CiB9CiAjZW5kaWYKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE2MDk3MCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAt
MjA3LDcgKzIwNyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2NhbGxiYWNr
KTsKIAotICAgICAgICBSZWZQdHI8V2ViRXJyb3I+IGVycm9yID0gV2ViRXJyb3I6OmNyZWF0ZSgp
OworICAgICAgICBSZWZQdHI8QVBJOjpFcnJvcj4gZXJyb3IgPSBBUEk6OkVycm9yOjpjcmVhdGUo
KTsKICAgICAgICAgbV9jYWxsYmFjaygwLCAwLCAwLCB0b0FQSShlcnJvci5nZXQoKSksIGNvbnRl
eHQoKSk7CiAgICAgICAgIAogICAgICAgICBtX2NhbGxiYWNrID0gMDsKQEAgLTI1Miw3ICsyNTIs
NyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQobV9jYWxsYmFjayk7CiAKLSAgICAg
ICAgUmVmUHRyPFdlYkVycm9yPiBlcnJvciA9IFdlYkVycm9yOjpjcmVhdGUoKTsKKyAgICAgICAg
UmVmUHRyPEFQSTo6RXJyb3I+IGVycm9yID0gQVBJOjpFcnJvcjo6Y3JlYXRlKCk7CiAgICAgICAg
IG1fY2FsbGJhY2soV2ViQ29yZTo6SW50UG9pbnQoKSwgMCwgMCwgMCwgdG9BUEkoZXJyb3IuZ2V0
KCkpLCBjb250ZXh0KCkpOwogCiAgICAgICAgIG1fY2FsbGJhY2sgPSAwOwpAQCAtMjk3LDcgKzI5
Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2NhbGxiYWNrKTsKIAotICAg
ICAgICBSZWZQdHI8V2ViRXJyb3I+IGVycm9yID0gV2ViRXJyb3I6OmNyZWF0ZSgpOworICAgICAg
ICBSZWZQdHI8QVBJOjpFcnJvcj4gZXJyb3IgPSBBUEk6OkVycm9yOjpjcmVhdGUoKTsKICAgICAg
ICAgbV9jYWxsYmFjayhXZWJDb3JlOjpJbnRQb2ludCgpLCAwLCB0b0FQSShlcnJvci5nZXQoKSks
IGNvbnRleHQoKSk7CiAgICAgICAgIAogICAgICAgICBtX2NhbGxiYWNrID0gMDsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE2MDk3MCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjE1LDcgKzYxNSw3IEBACiAJCTUxNjU0RjAw
MTg0RUYzNEEwMDdEQzgzNyAvKiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTE2NTRFRkYxODRFRjM0
QTAwN0RDODM3IC8qIFVuaXF1ZUlEQkRhdGFiYXNlQmFja2luZ1N0b3JlLmggKi87IH07CiAJCTUx
NjdFRUEwMTcwMzc3QkYwMDc2ODFDQSAvKiBEaXNrQ2FjaGVNb25pdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTY3RUU5RTE3MDM3N0JGMDA3Njgx
Q0EgLyogRGlza0NhY2hlTW9uaXRvci5oICovOyB9OwogCQk1MTY3RUVBMTE3MDM3N0JGMDA3Njgx
Q0EgLyogRGlza0NhY2hlTW9uaXRvci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUxNjdFRTlGMTcwMzc3QkYwMDc2ODFDQSAvKiBEaXNrQ2FjaGVNb25p
dG9yLm1tICovOyB9OwotCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVCN0YgLyogV2ViRXJyb3IuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxNkE0QTVCMTIw
QTJDQ0QwMEMwNUI3RiAvKiBXZWJFcnJvci5oICovOyB9OworCQk1MTZBNEE1RDEyMEEyQ0NEMDBD
MDVCN0YgLyogQVBJRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBBUElFcnJvci5oICovOyB9Owog
CQk1MTc5NTU2NzE2Mjg3NkNCMDBGQTQzQjYgLyogTmV0d29ya1Byb2Nlc3NNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUE4QTYxNTE2MjdGM0Y5
MDAwRDkwRTkgLyogTmV0d29ya1Byb2Nlc3NNYWMubW0gKi87IH07CiAJCTUxNzk1NTY4MTYyODc2
Q0YwMEZBNDNCNiAvKiBOZXR3b3JrUHJvY2Vzcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBDQzdERjE2MTM4RTI5MDBEMDNFRDMgLyogTmV0d29y
a1Byb2Nlc3MuY3BwICovOyB9OwogCQk1MTc5NTU2QTE2Mjg3NkYzMDBGQTQzQjYgLyogTmV0d29y
a1Byb2Nlc3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMENDN0UwMTYxMzhFMjkwMEQwM0VEMyAvKiBOZXR3b3JrUHJvY2Vzcy5oICovOyB9OwpAQCAt
NzY5LDYgKzc2OSw3IEBACiAJCTdDQjE2RkYyMTcyNEJBMjgwMDdBMEE5NSAvKiBjb20ubWFjcm9t
ZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2luLnNiIGluIENvcHkgUGx1Zy1pbiBTYW5kYm94IFByb2Zp
bGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDQjE2RkU1MTcyNEI5QjUw
MDdBMEE5NSAvKiBjb20ubWFjcm9tZWRpYS5GbGFzaCBQbGF5ZXIucGx1Z2luLnNiICovOyB9Owog
CQk3Q0IxNkZGMzE3MjRCQTJGMDA3QTBBOTUgLyogY29tLm1pY3Jvc29mdC5TaWx2ZXJsaWdodFBs
dWdpbi5zYiBpbiBDb3B5IFBsdWctaW4gU2FuZGJveCBQcm9maWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0IxNkZFNjE3MjRCOUI1MDA3QTBBOTUgLyogY29tLm1pY3Jv
c29mdC5TaWx2ZXJsaWdodFBsdWdpbi5zYiAqLzsgfTsKIAkJN0NCMTZGRjQxNzI0QkEzMDAwN0Ew
QTk1IC8qIGNvbS5vcmFjbGUuamF2YS5KYXZhQXBwbGV0UGx1Z2luLnNiIGluIENvcHkgUGx1Zy1p
biBTYW5kYm94IFByb2ZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
QjE2RkU3MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdp
bi5zYiAqLzsgfTsKKwkJN0NEMTAyREExODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9Db3JyZWN0aW9u
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDdDRDEwMkQ5MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggKi87
IH07CiAJCTdDRDVFQkI4MTc0NkExNUIwMDBDMUM0NSAvKiBXS09iakNUeXBlV3JhcHBlclJlZi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDRDVFQkI2
MTc0NkExNUIwMDBDMUM0NSAvKiBXS09iakNUeXBlV3JhcHBlclJlZi5tbSAqLzsgfTsKIAkJN0NE
NUVCQjkxNzQ2QTE1QjAwMEMxQzQ1IC8qIFdLT2JqQ1R5cGVXcmFwcGVyUmVmLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Q1RUJCNzE3NDZBMTVCMDAw
QzFDNDUgLyogV0tPYmpDVHlwZVdyYXBwZXJSZWYuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Q0Q1RUJCQjE3NDZBODNFMDAwQzFDNDUgLyogV0tC
YXNlTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3
Q0Q1RUJCQTE3NDZBODNFMDAwQzFDNDUgLyogV0tCYXNlTWFjLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk5Niw3ICs5OTcsNyBAQAogCQlCQzU3
NEU2MzEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc0RTYxMTI2N0QwODAwMDZGMEYx
MiAvKiBXZWJQb3B1cE1lbnVQcm94eS5oICovOyB9OwogCQlCQzU3NTA5NzEyNjhGM0M2MDA2RjBG
MTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTc1MDk1MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQb3B1cE1l
bnVQcm94eU1hYy5oICovOyB9OwogCQlCQzU3NTA5ODEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9w
dXBNZW51UHJveHlNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzU3NTA5NjEyNjhGM0M2MDA2RjBGMTIgLyogV2ViUG9wdXBNZW51UHJveHlNYWMu
bW0gKi87IH07Ci0JCUJDNTc1NjEzMTI2RTAxMzgwMDZGMEYxMiAvKiBXZWJFcnJvci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzU3NTYxMjEyNkUw
MTM4MDA2RjBGMTIgLyogV2ViRXJyb3IuY3BwICovOyB9OworCQlCQzU3NTYxMzEyNkUwMTM4MDA2
RjBGMTIgLyogQVBJRXJyb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1NzU2MTIxMjZFMDEzODAwNkYwRjEyIC8qIEFQSUVycm9yLmNwcCAqLzsg
fTsKIAkJQkM1OTUzNDIxMEZDMDQ1MjAwOThGODJEIC8qIFdlYkxvYWRlckNsaWVudC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM1OTUzNDAxMEZDMDQ1
MjAwOThGODJEIC8qIFdlYkxvYWRlckNsaWVudC5oICovOyB9OwogCQlCQzU5NTQ4OTE1Qzc4Njg1
MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM1OTU0ODgxNUM3ODY4NTAwRkQxRTNFIC8qIFdlYktpdDIuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAJCUJDNTk3MDc1MTE2NTkx
RDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9kZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDNTk3MDc0MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9k
ZWwuaCAqLzsgfTsKQEAgLTIyMTcsNyArMjIxOCw3IEBACiAJCTUxNjU0RUZGMTg0RUYzNEEwMDdE
QzgzNyAvKiBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBVbmlxdWVJREJEYXRhYmFzZUJhY2tpbmdTdG9yZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk1MTY3RUU5RTE3MDM3N0JGMDA3NjgxQ0EgLyogRGlza0Nh
Y2hlTW9uaXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNrQ2FjaGVN
b25pdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxNjdFRTlGMTcwMzc3QkYw
MDc2ODFDQSAvKiBEaXNrQ2FjaGVNb25pdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRGlza0NhY2hlTW9uaXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTE2QTRBNUIxMjBBMkNDRDAwQzA1QjdGIC8qIFdlYkVycm9yLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkVycm9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBBUElFcnJvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTdBMzNCMzEzMEIzMDhDMDBGODBDQjUgLyogV0tBcHBsaWNhdGlvbkNhY2hl
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS0FwcGxp
Y2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTE3
QTMzQjQxMzBCMzA4QzAwRjgwQ0I1IC8qIFdLQXBwbGljYXRpb25DYWNoZU1hbmFnZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTdDRjBFMTE2M0E0ODZDMDBDMjk1MEUg
LyogTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbk1lc3Nh
Z2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzg5LDYgKzIz
OTAsNyBAQAogCQk3Q0IxNkZFNTE3MjRCOUI1MDA3QTBBOTUgLyogY29tLm1hY3JvbWVkaWEuRmxh
c2ggUGxheWVyLnBsdWdpbi5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSAiY29tLm1hY3JvbWVk
aWEuRmxhc2ggUGxheWVyLnBsdWdpbi5zYiI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTdDQjE2RkU2MTcyNEI5QjUwMDdBMEE5NSAvKiBjb20ubWljcm9zb2Z0LlNpbHZlcmxpZ2h0UGx1
Z2luLnNiICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IGNvbS5taWNyb3NvZnQuU2lsdmVybGlnaHRQ
bHVnaW4uc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDQjE2RkU3MTcyNEI5QjUw
MDdBMEE5NSAvKiBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBjb20ub3JhY2xlLmphdmEuSmF2YUFwcGxldFBsdWdpbi5zYjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0NEMTAyRDkxODY2NzcwNjAwRUQ0MjlEIC8qIEF1dG9D
b3JyZWN0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0
b0NvcnJlY3Rpb25DYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Q0Q1
RUJCNjE3NDZBMTVCMDAwQzFDNDUgLyogV0tPYmpDVHlwZVdyYXBwZXJSZWYubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS09iakNUeXBlV3JhcHBlclJlZi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJN0NENUVCQjcxNzQ2QTE1QjAwMEMxQzQ1IC8q
IFdLT2JqQ1R5cGVXcmFwcGVyUmVmLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLT2JqQ1R5cGVXcmFwcGVyUmVmLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
RDVFQkJBMTc0NkE4M0UwMDBDMUM0NSAvKiBXS0Jhc2VNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV0tCYXNlTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjM1LDcgKzI2MzcsNyBAQAogCQlCQzU3NEU2MTEyNjdEMDgwMDA2RjBGMTIgLyogV2ViUG9w
dXBNZW51UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViUG9wdXBN
ZW51UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkM1NzUwOTUxMjY4RjND
NjAwNkYwRjEyIC8qIFdlYlBvcHVwTWVudVByb3h5TWFjLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBvcHVwTWVudVByb3h5TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDNTc1MDk2MTI2OEYzQzYwMDZGMEYxMiAvKiBXZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlBvcHVwTWVu
dVByb3h5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzU3NTYxMjEyNkUw
MTM4MDA2RjBGMTIgLyogV2ViRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gV2ViRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzU3
NTYxMjEyNkUwMTM4MDA2RjBGMTIgLyogQVBJRXJyb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gQVBJRXJyb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzU5NTM0MDEwRkMwNDUyMDA5OEY4MkQgLyogV2ViTG9hZGVyQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkxvYWRlckNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzU5NTQ4ODE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJLaXQyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDNTk3MDc0MTE2NTkxRDAwMDU1MUZDQSAvKiBQcm9jZXNzTW9k
ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc01vZGVsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNTAxLDYgKzM1MDMsOCBAQAogCQkJCTFBM0RE
MjA1MTI1RTVBMkYwMDQ1MTVFNiAvKiBBUElDbGllbnQuaCAqLywKIAkJCQkxQUFCMDM3QjE4NUY5
OUQ4MDBFREY1MDEgLyogQVBJRGF0YS5jcHAgKi8sCiAJCQkJNTE1NzhCODIxMjA5RUNFRjAwQTM3
QzRBIC8qIEFQSURhdGEuaCAqLywKKwkJCQlCQzU3NTYxMjEyNkUwMTM4MDA2RjBGMTIgLyogQVBJ
RXJyb3IuY3BwICovLAorCQkJCTUxNkE0QTVCMTIwQTJDQ0QwMEMwNUI3RiAvKiBBUElFcnJvci5o
ICovLAogCQkJCTFBQzEzMzZGMTg1NjZDN0MwMEYzRUMwNSAvKiBBUElGcmFtZUhhbmRsZS5jcHAg
Ki8sCiAJCQkJMUFDMTMzNzAxODU2NkM3QzAwRjNFQzA1IC8qIEFQSUZyYW1lSGFuZGxlLmggKi8s
CiAJCQkJMUFDMTMzNzMxODU3QzIxRTAwRjNFQzA1IC8qIEFQSUdlb21ldHJ5LmNwcCAqLywKQEAg
LTM2MDIsOCArMzYwNiw2IEBACiAJCQkJQkMxREQ3QjExMTREQzM5NjAwNUFEQUYzIC8qIFdlYkNv
cmVBcmd1bWVudENvZGVycy5oICovLAogCQkJCTUxQkEyNDQ1MTg1OEY0MTUwMEVBMjgxMSAvKiBX
ZWJDcm9zc1RocmVhZENvcGllci5jcHAgKi8sCiAJCQkJNTE2MzExODYxODU4NDQ2NjAwNTM0NjQ3
IC8qIFdlYkNyb3NzVGhyZWFkQ29waWVyLmggKi8sCi0JCQkJQkM1NzU2MTIxMjZFMDEzODAwNkYw
RjEyIC8qIFdlYkVycm9yLmNwcCAqLywKLQkJCQk1MTZBNEE1QjEyMEEyQ0NEMDBDMDVCN0YgLyog
V2ViRXJyb3IuaCAqLywKIAkJCQlDMDMzN0RBRDEyN0EyNEZFMDA4RkY0RjQgLyogV2ViRXZlbnQu
Y3BwICovLAogCQkJCUJDMDMyREFGMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudC5oICovLAog
CQkJCUJDMDMyREIwMTBGNDM4MEYwMDU4QzE1QSAvKiBXZWJFdmVudENvbnZlcnNpb24uY3BwICov
LApAQCAtNDU2MCw2ICs0NTYyLDcgQEAKIAkJCQkxQTQ0Qjk1ODE2QjczRjhDMDBCN0JCRDggLyog
U3RvcmFnZSAqLywKIAkJCQlCQ0Y2OUZBMTExNzZEMDE0MDA0NzFBNTIgLyogQVBJTmF2aWdhdGlv
bkRhdGEuY3BwICovLAogCQkJCUJDRjY5RkEwMTE3NkQwMTQwMDQ3MUE1MiAvKiBBUElOYXZpZ2F0
aW9uRGF0YS5oICovLAorCQkJCTdDRDEwMkQ5MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVj
dGlvbkNhbGxiYWNrLmggKi8sCiAJCQkJQkMyNjUyMTIxMTgyNjA4MTAwMjQzRTEyIC8qIERyYXdp
bmdBcmVhUHJveHkuY3BwICovLAogCQkJCUJDMjY1MjEzMTE4MjYwODEwMDI0M0UxMiAvKiBEcmF3
aW5nQXJlYVByb3h5LmggKi8sCiAJCQkJMUE2NDIyRkMxMkREMDhGRTAwQ0FBRTJDIC8qIERyYXdp
bmdBcmVhUHJveHkubWVzc2FnZXMuaW4gKi8sCkBAIC01OTg4LDYgKzU5OTEsNyBAQAogCQkJCTFB
QjMxQTk3MTZCQzY4ODEwMEY2REJDOSAvKiBTdG9yYWdlTWFuYWdlck1lc3NhZ2VzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkyOTZCRDg1RDE1MDE5QkMzMDA3MUY0MjQgLyogU3RyaW5nVXRpbGl0aWVz
LmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFEODFGRjE4NUJCREVFMDAxQUVENTYgLyogU1FMaXRl
SURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTdDRDEwMkRBMTg2Njc3MDYwMEVE
NDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0
NzRFNDE4NEQ0NDk4MDA1MUI2MjIgLyogV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQTQxN0NCMTJDMDBDQ0EwMDJCRTY3QiAvKiBUZXh0Q2hlY2tl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMVFRNDE3Q0IxMkMwMENDQTAwMkJFNjdCIC8qIFRleHRD
aGVja2VyQ29tcGxldGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC02MDYzLDcgKzYwNjcsNyBAQAog
CQkJCUJDMDMyRDdCMTBGNDM3OEQwMDU4QzE1QSAvKiBXZWJEcmFnQ2xpZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0EwRUY5RjEyMzMyNjQyMDA3RDNDRkIgLyogV2ViRWRpdENvbW1hbmRQcm94
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEN0QxMEY0Mzc4RDAwNThDMTVBIC8qIFdlYkVk
aXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTE2QTRBNUQxMjBBMkNDRDAwQzA1QjdG
IC8qIFdlYkVycm9yLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTZBNEE1RDEyMEEyQ0NEMDBDMDVC
N0YgLyogQVBJRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNDMzRjBEMTEzQzUzREQwMEZB
Q0RFOSAvKiBXZWJFcnJvcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDMyREI5MTBGNDM4MEYw
MDU4QzE1QSAvKiBXZWJFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwMzJEQkIxMEY0Mzgw
RjAwNThDMTVBIC8qIFdlYkV2ZW50Q29udmVyc2lvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDI3
LDcgKzc0MzEsNyBAQAogCQkJCUJDQTBFRkEwMTIzMzI2NDIwMDdEM0NGQiAvKiBXZWJFZGl0Q29t
bWFuZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMTExQTVFMTEyRjRGQkIwMDMzN0JB
QiAvKiBXZWJFZGl0b3JDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQzUyMzdGNjAxMjQ0
MUNBMzAwNzgwNDcyIC8qIFdlYkVkaXRvckNsaWVudE1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJ
CUJDNTc1NjEzMTI2RTAxMzgwMDZGMEYxMiAvKiBXZWJFcnJvci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlCQzU3NTYxMzEyNkUwMTM4MDA2RjBGMTIgLyogQVBJRXJyb3IuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkMxMTFBRTAxMTJGNUJDMjAwMzM3QkFCIC8qIFdlYkVycm9yc01hYy5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUMwMzM3REFFMTI3QTI0RkUwMDhGRjRGNCAvKiBXZWJFdmVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzAzMkRCQTEwRjQzODBGMDA1OEMxNUEgLyogV2ViRXZlbnRD
b252ZXJzaW9uLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VMb2FkZXJDbGllbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5q
ZWN0ZWRCdW5kbGVQYWdlTG9hZGVyQ2xpZW50LmNwcAkocmV2aXNpb24gMTYwOTcwKQorKysgU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VM
b2FkZXJDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCwxMiArMjgsMTIgQEAKIAogI2lu
Y2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgorI2luY2x1ZGUgIkFQSUVy
cm9yLmgiCiAjaW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVu
ZGxlRE9NV2luZG93RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVTY3JpcHRX
b3JsZC5oIgogI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldLQnVuZGxlQVBJQ2Fz
dC5oIgotI2luY2x1ZGUgIldlYkVycm9yLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZm
ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VQb2xpY3lD
bGllbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlUG9saWN5Q2xpZW50LmNwcAkocmV2aXNpb24gMTYw
OTcwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VQb2xpY3lDbGllbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw5ICsyNiw5
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlUG9s
aWN5Q2xpZW50LmgiCiAKKyNpbmNsdWRlICJBUElFcnJvci5oIgogI2luY2x1ZGUgIkFQSVVSTFJl
cXVlc3QuaCIKICNpbmNsdWRlICJXS0J1bmRsZUFQSUNhc3QuaCIKLSNpbmNsdWRlICJXZWJFcnJv
ci5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYkVycm9y
c01hYy5tbQkocmV2aXNpb24gMTYwOTcwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViRXJyb3JzTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3
ICsyNiw3IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYkVycm9ycy5oIgogCi0j
aW1wb3J0ICJXZWJFcnJvci5oIgorI2ltcG9ydCAiQVBJRXJyb3IuaCIKICNpbXBvcnQgIldLRXJy
b3IuaCIKICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KQEAgLTY0LDMyICs2NCwzMiBAQCBSZXNvdXJjZUVycm9y
IGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zCiAKIFJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9y
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VF
cnJvcihXZWJFcnJvcjo6d2ViS2l0RXJyb3JEb21haW4oKSwga1dLRXJyb3JDb2RlQ2Fubm90VXNl
UmVzdHJpY3RlZFBvcnQsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIk5vdCBhbGxvd2Vk
IHRvIHVzZSByZXN0cmljdGVkIG5ldHdvcmsgcG9ydCIsICJXZWJLaXRFcnJvckNhbm5vdFVzZVJl
c3RyaWN0ZWRQb3J0IGRlc2NyaXB0aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9yKEFQ
STo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUNhbm5vdFVzZVJlc3Ry
aWN0ZWRQb3J0LCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJOb3QgYWxsb3dlZCB0byB1
c2UgcmVzdHJpY3RlZCBuZXR3b3JrIHBvcnQiLCAiV2ViS2l0RXJyb3JDYW5ub3RVc2VSZXN0cmlj
dGVkUG9ydCBkZXNjcmlwdGlvbiIpKTsKIH0KIAogUmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewotICAgIHJldHVybiBSZXNv
dXJjZUVycm9yKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tFcnJvckNvZGVDYW5u
b3RTaG93VVJMLCByZXF1ZXN0LnVybCgpLCBXRUJfVUlfU1RSSU5HKCJUaGUgVVJMIGNhbuKAmXQg
YmUgc2hvd24iLCAiV2ViS2l0RXJyb3JDYW5ub3RTaG93VVJMIGRlc2NyaXB0aW9uIikpOworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9yQ29kZUNhbm5vdFNob3dVUkwsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkcoIlRo
ZSBVUkwgY2Fu4oCZdCBiZSBzaG93biIsICJXZWJLaXRFcnJvckNhbm5vdFNob3dVUkwgZGVzY3Jp
cHRpb24iKSk7CiB9CiAKIFJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lDaGFuZ2VF
cnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7Ci0gICAgcmV0dXJuIFJlc291
cmNlRXJyb3IoV2ViRXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1l
TG9hZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJ
TkcoIkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1
cHRlZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVy
cm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZUZyYW1lTG9h
ZEludGVycnVwdGVkQnlQb2xpY3lDaGFuZ2UsIHJlcXVlc3QudXJsKCksIFdFQl9VSV9TVFJJTkco
IkZyYW1lIGxvYWQgaW50ZXJydXB0ZWQiLCAiV2ViS2l0RXJyb3JGcmFtZUxvYWRJbnRlcnJ1cHRl
ZEJ5UG9saWN5Q2hhbmdlIGRlc2NyaXB0aW9uIikpOwogfQogCiBSZXNvdXJjZUVycm9yIGNhbm5v
dFNob3dNSU1FVHlwZUVycm9yKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewot
ICAgIHJldHVybiBSZXNvdXJjZUVycm9yKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBr
V0tFcnJvckNvZGVDYW5ub3RTaG93TUlNRVR5cGUsIHJlc3BvbnNlLnVybCgpLCBXRUJfVUlfU1RS
SU5HKCJDb250ZW50IHdpdGggc3BlY2lmaWVkIE1JTUUgdHlwZSBjYW7igJl0IGJlIHNob3duIiwg
IldlYktpdEVycm9yQ2Fubm90U2hvd01JTUVUeXBlIGRlc2NyaXB0aW9uIikpOworICAgIHJldHVy
biBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9y
Q29kZUNhbm5vdFNob3dNSU1FVHlwZSwgcmVzcG9uc2UudXJsKCksIFdFQl9VSV9TVFJJTkcoIkNv
bnRlbnQgd2l0aCBzcGVjaWZpZWQgTUlNRSB0eXBlIGNhbuKAmXQgYmUgc2hvd24iLCAiV2ViS2l0
RXJyb3JDYW5ub3RTaG93TUlNRVR5cGUgZGVzY3JpcHRpb24iKSk7CiB9CiAKIFJlc291cmNlRXJy
b3IgcGx1Z2luV2lsbEhhbmRsZUxvYWRFcnJvcihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNw
b25zZSkKIHsKLSAgICByZXR1cm4gUmVzb3VyY2VFcnJvcihXZWJFcnJvcjo6d2ViS2l0RXJyb3JE
b21haW4oKSwga1dLRXJyb3JDb2RlUGx1Z0luV2lsbEhhbmRsZUxvYWQsIHJlc3BvbnNlLnVybCgp
LCBXRUJfVUlfU1RSSU5HKCJQbHVnLWluIGhhbmRsZWQgbG9hZCIsICJXZWJLaXRFcnJvclBsdWdJ
bldpbGxIYW5kbGVMb2FkIGRlc2NyaXB0aW9uIikpOworICAgIHJldHVybiBSZXNvdXJjZUVycm9y
KEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtXS0Vycm9yQ29kZVBsdWdJbldpbGxI
YW5kbGVMb2FkLCByZXNwb25zZS51cmwoKSwgV0VCX1VJX1NUUklORygiUGx1Zy1pbiBoYW5kbGVk
IGxvYWQiLCAiV2ViS2l0RXJyb3JQbHVnSW5XaWxsSGFuZGxlTG9hZCBkZXNjcmlwdGlvbiIpKTsK
IH0KIAogUmVzb3VyY2VFcnJvciBpbnRlcm5hbEVycm9yKGNvbnN0IFVSTCYgdXJsKQogewotICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKFdlYkVycm9yOjp3ZWJLaXRFcnJvckRvbWFpbigpLCBrV0tF
cnJvckludGVybmFsLCB1cmwsIFdFQl9VSV9TVFJJTkcoIldlYktpdCBlbmNvdW50ZXJlZCBhbiBp
bnRlcm5hbCBlcnJvciIsICJXZWJLaXRFcnJvckludGVybmFsIGRlc2NyaXB0aW9uIikpOworICAg
IHJldHVybiBSZXNvdXJjZUVycm9yKEFQSTo6RXJyb3I6OndlYktpdEVycm9yRG9tYWluKCksIGtX
S0Vycm9ySW50ZXJuYWwsIHVybCwgV0VCX1VJX1NUUklORygiV2ViS2l0IGVuY291bnRlcmVkIGFu
IGludGVybmFsIGVycm9yIiwgIldlYktpdEVycm9ySW50ZXJuYWwgZGVzY3JpcHRpb24iKSk7CiB9
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAo=
</data>
<flag name="review"
          id="243522"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>