<?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>127150</bug_id>
          
          <creation_ts>2014-01-16 15:21:58 -0800</creation_ts>
          <short_desc>Remove Nix from WTF</short_desc>
          <delta_ts>2014-01-16 17:01:33 -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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>andersca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>968968</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-16 15:21:58 -0800</bug_when>
    <thetext>Remove Nix from WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968973</commentid>
    <comment_count>1</comment_count>
      <attachid>221421</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-16 15:41:17 -0800</bug_when>
    <thetext>Created attachment 221421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968998</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-01-16 17:01:33 -0800</bug_when>
    <thetext>Committed r162172: &lt;http://trac.webkit.org/changeset/162172&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221421</attachid>
            <date>2014-01-16 15:41:17 -0800</date>
            <delta_ts>2014-01-16 16:34:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127150-20140116154115.patch</filename>
            <type>text/plain</type>
            <size>33987</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNjIxNjApCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE0LTAxLTE2ICBCZW5qYW1pbiBQb3VsYWluICA8
YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBOaXggZnJvbSBXVEYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzE1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL0Rpc2FsbG93
Q1R5cGUuaDoKKyAgICAgICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDoKKyAgICAgICAgKiB3dGYv
UGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1OaXguY21ha2U6IFJlbW92ZWQuCisg
ICAgICAgICogd3RmL25peDogUmVtb3ZlZC4KKyAgICAgICAgKiB3dGYvbml4L0ZlYXR1cmVEZWZp
bmVzTml4Lmg6IFJlbW92ZWQuCisgICAgICAgICogd3RmL25peC9QbGF0Zm9ybU5peC5oOiBSZW1v
dmVkLgorICAgICAgICAqIHd0Zi9uaXgvUnVuTG9vcE5peC5jcHA6IFJlbW92ZWQuCisKIDIwMTQt
MDEtMTYgIFBldGVyIE1vbG5hciAgPHBtb2xuYXIudS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KIAogICAgICAgICBSZW1vdmUgd29ya2Fyb3VuZCBmb3IgY29tcGlsZXJzIG5vdCBzdXBwb3J0
aW5nIGV4cGxpY2l0IG92ZXJyaWRlIGNvbnRyb2wKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL0Rpc2Fs
bG93Q1R5cGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9EaXNhbGxvd0NUeXBlLmgJ
KHJldmlzaW9uIDE2MjE0NykKKysrIFNvdXJjZS9XVEYvd3RmL0Rpc2FsbG93Q1R5cGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBAQAogLy8gb3IgPGdsaWIvZ2kxOG4tbGliLmg+LCB3
aGljaCBpbiB0dXJuIGluY2x1ZGUgPHhsb2NhbGUvX2N0eXBlLmg+IHdoaWNoIHVzZXMKIC8vIGlz
YWNpaSgpLiAKICNpbmNsdWRlIDx3dGYvUGxhdGZvcm0uaD4KLSNpZiAhKE9TKERBUldJTikgJiYg
UExBVEZPUk0oR1RLKSkgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIWRlZmluZWQoX0xJQkNQUF9WRVJT
SU9OKSAmJiAhUExBVEZPUk0oTklYKQorI2lmICEoT1MoREFSV0lOKSAmJiBQTEFURk9STShHVEsp
KSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhZGVmaW5lZChfTElCQ1BQX1ZFUlNJT04pCiAKICNpbmNs
dWRlIDxjdHlwZS5oPgogCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgJKHJldmlzaW9uIDE2
MjE0NykKKysrIFNvdXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwMSwxMSArMzAxLDYgQEAKIAogI2VuZGlmIC8qIFBMQVRGT1JNKFdJTl9DQUlSTykgKi8K
IAotLyogLS0tLS0tLS0tIE5JWCBwb3J0IChVbml4KSAtLS0tLS0tLS0gKi8KLSNpZiBQTEFURk9S
TShOSVgpCi0jaW5jbHVkZSAibml4L0ZlYXR1cmVEZWZpbmVzTml4LmgiCi0jZW5kaWYgLyogUExB
VEZPUk0oTklYKSAqLwotCiAvKiAtLS0tLS0tLS0gRUZMIHBvcnQgKFVuaXgpIC0tLS0tLS0tLSAq
LwogI2lmIFBMQVRGT1JNKEVGTCkKIApJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCShyZXZpc2lvbiAxNjIxNDcp
CisrKyBTb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MjYsOCAr
NDI2LDYgQEAKICNkZWZpbmUgV1RGX1BMQVRGT1JNX0VGTCAxCiAjZWxpZiBkZWZpbmVkKEJVSUxE
SU5HX0dUS19fKQogI2RlZmluZSBXVEZfUExBVEZPUk1fR1RLIDEKLSNlbGlmIGRlZmluZWQoQlVJ
TERJTkdfTklYX18pCi0jaW5jbHVkZSAibml4L1BsYXRmb3JtTml4LmgiCiAjZWxpZiBPUyhEQVJX
SU4pCiAjZGVmaW5lIFdURl9QTEFURk9STV9DT0NPQSAxCiAjZGVmaW5lIFdURl9QTEFURk9STV9N
QUMgMQpJbmRleDogU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi93dGYvUGxhdGZvcm1OaXguY21ha2UJKHJldmlzaW9uIDE2MjE0NykKKysr
IFNvdXJjZS9XVEYvd3RmL1BsYXRmb3JtTml4LmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xLDIw
ICswLDAgQEAKLWxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCi0gICAgZ29iamVjdC9HT3duUHRyLmNw
cAotICAgIGdvYmplY3QvR1JlZlB0ci5jcHAKLSAgICBnb2JqZWN0L0dsaWJVdGlsaXRpZXMuY3Bw
Ci0KLSAgICBndGsvTWFpblRocmVhZEd0ay5jcHAKLQotICAgIG5peC9SdW5Mb29wTml4LmNwcAot
KQotCi1saXN0KEFQUEVORCBXVEZfTElCUkFSSUVTCi0gICAgcHRocmVhZAotICAgICR7R0xJQl9M
SUJSQVJJRVN9Ci0gICAgJHtHTElCX0dJT19MSUJSQVJJRVN9Ci0gICAgJHtaTElCX0xJQlJBUklF
U30KLSkKLQotbGlzdChBUFBFTkQgV1RGX0lOQ0xVREVfRElSRUNUT1JJRVMKLSAgICAke0dMSUJf
SU5DTFVERV9ESVJTfQotKQpJbmRleDogU291cmNlL1dURi93dGYvbml4L0ZlYXR1cmVEZWZpbmVz
Tml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvbml4L0ZlYXR1cmVEZWZpbmVzTml4
LmgJKHJldmlzaW9uIDE2MjE0NykKKysrIFNvdXJjZS9XVEYvd3RmL25peC9GZWF0dXJlRGVmaW5l
c05peC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMwNSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotKi8KLQotI2lmbmRlZiBXVEZfRmVhdHVyZURlZmluZXNOaXhfaAotI2Rl
ZmluZSBXVEZfRmVhdHVyZURlZmluZXNOaXhfaAotCi0jaWYgIWRlZmluZWQoRU5BQkxFXzNEX1JF
TkRFUklORykKLSNkZWZpbmUgRU5BQkxFXzNEX1JFTkRFUklORyAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV84QklUX1RFWFRSVU4pCi0jZGVmaW5lIEVOQUJMRV84QklUX1RFWFRSVU4g
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQot
I2RlZmluZSBFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIDAKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORykKLSNkZWZpbmUgRU5B
QkxFX0FDQ0VMRVJBVEVEX09WRVJGTE9XX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9CQVRURVJZX1NUQVRVUykKLSNkZWZpbmUgRU5BQkxFX0JBVFRFUllfU1RBVFVT
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0JMT0IpCi0jZGVmaW5lIEVOQUJMRV9C
TE9CIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKQot
I2RlZmluZSBFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ09OVEVYVF9NRU5VUykKLSNkZWZpbmUgRU5BQkxFX0NPTlRFWFRfTUVOVVMgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTM19URVhUKQotI2RlZmluZSBFTkFCTEVf
Q1NTM19URVhUIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19CT1hfREVDT1JB
VElPTl9CUkVBSykKLSNkZWZpbmUgRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSyAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pCi0jZGVm
aW5lIEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5l
ZChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9DU1NfRVhDTFVTSU9OUyAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfRklMVEVSUykKLSNkZWZpbmUgRU5B
QkxFX0NTU19GSUxURVJTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFH
RV9PUklFTlRBVElPTikKLSNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTiAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikKLSNkZWZp
bmUgRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0NTU19JTUFHRV9TRVQpCi0jZGVmaW5lIEVOQUJMRV9DU1NfSU1BR0VfU0VUIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19SRUdJT05TKQotI2RlZmluZSBFTkFCTEVf
Q1NTX1JFR0lPTlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NIQURFUlMp
Ci0jZGVmaW5lIEVOQUJMRV9DU1NfU0hBREVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9EQVRBTElTVF9FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpCi0jZGVmaW5l
IEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
RFJBR19TVVBQT1JUKQotI2RlZmluZSBFTkFCTEVfRFJBR19TVVBQT1JUIDEKLSNlbmRpZgotCi0j
aWYgIWRlZmluZWQoRU5BQkxFX0ZBU1RfTU9CSUxFX1NDUk9MTElORykKLSNkZWZpbmUgRU5BQkxF
X0ZBU1RfTU9CSUxFX1NDUk9MTElORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9G
SUxURVJTKQotI2RlZmluZSBFTkFCTEVfRklMVEVSUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9GVFBESVIpCi0jZGVmaW5lIEVOQUJMRV9GVFBESVIgMQotI2VuZGlmCi0KLSNpZiAh
ZGVmaW5lZChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HQU1FUEFEKQotI2RlZmluZSBF
TkFCTEVfR0FNRVBBRCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9HRU9MT0NBVElP
TikKLSNkZWZpbmUgRU5BQkxFX0dFT0xPQ0FUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0lDT05EQVRBQkFTRSkKLSNkZWZpbmUgRU5BQkxFX0lDT05EQVRBQkFTRSAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpCi0jZGVmaW5lIEVOQUJM
RV9JRlJBTUVfU0VBTUxFU1MgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkKLSNkZWZpbmUgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgMQotI2VuZGlmCi0K
LSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SKQotI2RlZmluZSBFTkFCTEVfSU5TUEVDVE9S
IDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIpCi0jZGVm
aW5lIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0lOUFVUX1NQRUVDSCkKLSNkZWZpbmUgRU5BQkxFX0lOUFVUX1NQRUVDSCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKQotI2RlZmluZSBFTkFC
TEVfSkFWQVNDUklQVF9ERUJVR0dFUiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9K
SVQpCi0jZGVmaW5lIEVOQUJMRV9KSVQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVf
TEVHQUNZX1ZJRVdQT1JUX0FEQVBUSU9OKQotI2RlZmluZSBFTkFCTEVfTEVHQUNZX1ZJRVdQT1JU
X0FEQVBUSU9OIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0xFR0FDWV9XRUJfQVVE
SU8pCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFX0xMSU5UKQotI2RlZmluZSBFTkFCTEVfTExJTlQgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfTUFUSE1MKQotI2RlZmluZSBFTkFCTEVfTUFUSE1MIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FRElBX1NUUkVBTSkKLSNkZWZpbmUgRU5BQkxFX01F
RElBX1NUUkVBTSAwCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9NRVRFUl9FTEVNRU5U
KQotI2RlZmluZSBFTkFCTEVfTUVURVJfRUxFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykKLSNkZWZpbmUgRU5BQkxFX05BVklHQVRP
Ul9DT05URU5UX1VUSUxTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX05FVFNDQVBF
X1BMVUdJTl9BUEkpCi0jZGVmaW5lIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIDAKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX05FVFdPUktfSU5GTykKLSNkZWZpbmUgRU5BQkxFX05F
VFdPUktfSU5GTyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9ORVRXT1JLX1BST0NF
U1MpCi0jZGVmaW5lIEVOQUJMRV9ORVRXT1JLX1BST0NFU1MgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfT1BFTlRZUEVfVkVSVElDQUwpCi0jZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9W
RVJUSUNBTCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlf
QVBJKQotI2RlZmluZSBFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCkKLSNkZWZpbmUgRU5B
QkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX1BPUFVQX01FTlVTKQotI2RlZmluZSBFTkFCTEVfUE9QVVBfTUVOVVMgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkKLSNkZWZpbmUgRU5BQkxF
X1BST0dSRVNTX0VMRU1FTlQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfUFJPTUlT
RVMpCi0jZGVmaW5lIEVOQUJMRV9QUk9NSVNFUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkKLSNkZWZpbmUgRU5BQkxFX1JFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19TSEFQRVMp
Ci0jZGVmaW5lIEVOQUJMRV9DU1NfU0hBUEVTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKQotI2RlZmluZSBFTkFCTEVfU0hBUkVEX1dPUktFUlMgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1FMX0RBVEFCQVNFKQotI2RlZmluZSBFTkFCTEVf
U1FMX0RBVEFCQVNFIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NWRykKLSNkZWZp
bmUgRU5BQkxFX1NWRyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TVkdfRk9OVFMp
Ci0jZGVmaW5lIEVOQUJMRV9TVkdfRk9OVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfVE9VQ0hfQURKVVNUTUVOVCkKLSNkZWZpbmUgRU5BQkxFX1RPVUNIX0FESlVTVE1FTlQgMQot
I2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVE9VQ0hfRVZFTlRTKQotI2RlZmluZSBFTkFC
TEVfVE9VQ0hfRVZFTlRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1VORE9fTUFO
QUdFUikKLSNkZWZpbmUgRU5BQkxFX1VORE9fTUFOQUdFUiAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9WSUJSQVRJT04pCi0jZGVmaW5lIEVOQUJMRV9WSUJSQVRJT04gMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVklERU8pCi0jZGVmaW5lIEVOQUJMRV9WSURFTyAwCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKQotI2RlZmlu
ZSBFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVO
QUJMRV9XRUJfQVVESU8pCi0jZGVmaW5lIEVOQUJMRV9XRUJfQVVESU8gMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfV0VCR0wpCi0jZGVmaW5lIEVOQUJMRV9XRUJHTCAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9XRUJfU09DS0VUUykKLSNkZWZpbmUgRU5BQkxFX1dFQl9T
T0NLRVRTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9USU1JTkcpCi0jZGVm
aW5lIEVOQUJMRV9XRUJfVElNSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1hI
Ul9SRVNQT05TRV9CTE9CKQotI2RlZmluZSBFTkFCTEVfWEhSX1JFU1BPTlNFX0JMT0IgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfWFNMVCkKLSNkZWZpbmUgRU5BQkxFX1hTTFQgMQot
I2VuZGlmCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgJKHJldmlzaW9u
IDE2MjE0NykKKysrIFNvdXJjZS9XVEYvd3RmL25peC9QbGF0Zm9ybU5peC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDYyICswLDAgQEAKLS8qCi0qICBDb3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgotKgotKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0qIGFyZSBtZXQ6Ci0qIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0qICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotKgotKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0g
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotKi8KLQotI2lmbmRlZiBX
VEZfUGxhdGZvcm1OaXhfaAotI2RlZmluZSBXVEZfUGxhdGZvcm1OaXhfaAotCi0jZGVmaW5lIFdU
Rl9QTEFURk9STV9OSVggMQotI2RlZmluZSBFTkFCTEVfR0xPQkFMX0ZBU1RNQUxMT0NfTkVXIDAK
LQotI2RlZmluZSBXVEZfVVNFXzNEX0dSQVBISUNTIDEKLSNkZWZpbmUgV1RGX1VTRV9BQ0NFTEVS
QVRFRF9DT01QT1NJVElORyAxCi0jZGVmaW5lIFdURl9VU0VfQ0FJUk8gMQotI2RlZmluZSBXVEZf
VVNFX0NPT1JESU5BVEVEX0dSQVBISUNTIDEKLSNkZWZpbmUgV1RGX1VTRV9DUk9TU19QTEFURk9S
TV9DT05URVhUX01FTlVTIDEKLSNkZWZpbmUgV1RGX1VTRV9GUkVFVFlQRSAxCi0jZGVmaW5lIFdU
Rl9VU0VfR0xJQiAxCi0jZGVmaW5lIFdURl9VU0VfSEFSRkJVWlogMQotI2RlZmluZSBXVEZfVVNF
X0hBUkZCVVpaX05HIDEKLSNkZWZpbmUgV1RGX1VTRV9JQ1VfVU5JQ09ERSAxCi0jZGVmaW5lIFdU
Rl9VU0VfTEVWRUxEQiAxCi0jZGVmaW5lIFdURl9VU0VfUFRIUkVBRFMgMQotI2RlZmluZSBXVEZf
VVNFX1RFWFRVUkVfTUFQUEVSIDEKLSNkZWZpbmUgV1RGX1VTRV9URVhUVVJFX01BUFBFUl9HTCAx
Ci0jZGVmaW5lIFdURl9VU0VfVElMRURfQkFDS0lOR19TVE9SRSAxCi0jZGVmaW5lIFdURl9VU0Vf
VU5JWF9ET01BSU5fU09DS0VUUyAxCi0KLSNpZiAhZGVmaW5lZChXVEZfVVNFX09QRU5HTF9FU18y
KSB8fCAhV1RGX1VTRV9PUEVOR0xfRVNfMgotI2RlZmluZSBXVEZfVVNFX09QRU5HTCAxCi0jZGVm
aW5lIFdURl9VU0VfR0xYIDEKLSNkZWZpbmUgV1RGX1BMQVRGT1JNX1gxMSAxCi0jZGVmaW5lIFdU
Rl9VU0VfR1JBUEhJQ1NfU1VSRkFDRSAxCi0jZWxzZQotI2RlZmluZSBXVEZfVVNFX0VHTCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKFdURl9VU0VfQ1VSTCkgfHwgIVdURl9VU0VfQ1VSTAotI2Rl
ZmluZSBXVEZfVVNFX1NPVVAgMQotI2VuZGlmCi0KLSNlbmRpZgpJbmRleDogU291cmNlL1dURi93
dGYvbml4L1J1bkxvb3BOaXguY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL25peC9S
dW5Mb29wTml4LmNwcAkocmV2aXNpb24gMTYyMTQ3KQorKysgU291cmNlL1dURi93dGYvbml4L1J1
bkxvb3BOaXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE3MiArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIFBvcnRp
b25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIK
LSNpbmNsdWRlICJSdW5Mb29wLmgiCi0KLSNpbmNsdWRlIDxnbGliLmg+Ci0KLSNpbmNsdWRlIDx3
dGYvTWFpblRocmVhZC5oPgotCi1uYW1lc3BhY2UgV1RGIHsKLQotUnVuTG9vcDo6UnVuTG9vcCgp
Ci17Ci0gICAgLy8gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpIGRvZXNuJ3QgYWRkIGFuIGV4dHJh
IHJlZmVyZW5jZS4KLSAgICBtX3J1bkxvb3BDb250ZXh0ID0gaXNNYWluVGhyZWFkKCkgPyBnX21h
aW5fY29udGV4dF9kZWZhdWx0KCkgOiBhZG9wdEdSZWYoZ19tYWluX2NvbnRleHRfbmV3KCkpOwot
ICAgIEFTU0VSVChtX3J1bkxvb3BDb250ZXh0KTsKLSAgICBHUmVmUHRyPEdNYWluTG9vcD4gaW5u
ZXJtb3N0TG9vcCA9IGFkb3B0R1JlZihnX21haW5fbG9vcF9uZXcobV9ydW5Mb29wQ29udGV4dC5n
ZXQoKSwgRkFMU0UpKTsKLSAgICBBU1NFUlQoaW5uZXJtb3N0TG9vcCk7Ci0gICAgbV9ydW5Mb29w
TWFpbkxvb3BzLmFwcGVuZChpbm5lcm1vc3RMb29wKTsKLX0KLQotUnVuTG9vcDo6flJ1bkxvb3Ao
KQotewotICAgIGZvciAoaW50IGkgPSBtX3J1bkxvb3BNYWluTG9vcHMuc2l6ZSgpIC0gMTsgaSA+
PSAwOyAtLWkpIHsKLSAgICAgICAgaWYgKCFnX21haW5fbG9vcF9pc19ydW5uaW5nKG1fcnVuTG9v
cE1haW5Mb29wc1tpXS5nZXQoKSkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgZ19t
YWluX2xvb3BfcXVpdChtX3J1bkxvb3BNYWluTG9vcHNbaV0uZ2V0KCkpOwotICAgIH0KLX0KLQot
dm9pZCBSdW5Mb29wOjpydW4oKQotewotICAgIFJ1bkxvb3AqIG1haW5SdW5Mb29wID0gUnVuTG9v
cDo6Y3VycmVudCgpOwotICAgIEdNYWluTG9vcCogaW5uZXJtb3N0TG9vcCA9IG1haW5SdW5Mb29w
LT5pbm5lcm1vc3RMb29wKCk7Ci0gICAgaWYgKCFnX21haW5fbG9vcF9pc19ydW5uaW5nKGlubmVy
bW9zdExvb3ApKSB7Ci0gICAgICAgIGdfbWFpbl9sb29wX3J1bihpbm5lcm1vc3RMb29wKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIENyZWF0ZSBhbmQgcnVuIGEgbmVzdGVkIGxv
b3AgaWYgdGhlIGlubmVybW9zdCBvbmUgd2FzIGFscmVhZHkgcnVubmluZy4KLSAgICBHTWFpbkxv
b3AqIG5lc3RlZE1haW5Mb29wID0gZ19tYWluX2xvb3BfbmV3KDAsIEZBTFNFKTsKLSAgICBtYWlu
UnVuTG9vcC0+cHVzaE5lc3RlZE1haW5Mb29wKG5lc3RlZE1haW5Mb29wKTsKLSAgICBnX21haW5f
bG9vcF9ydW4obmVzdGVkTWFpbkxvb3ApOwotICAgIG1haW5SdW5Mb29wLT5wb3BOZXN0ZWRNYWlu
TG9vcCgpOwotfQotCi1HTWFpbkxvb3AqIFJ1bkxvb3A6OmlubmVybW9zdExvb3AoKQotewotICAg
IC8vIFRoZSBpbm5lcm1vc3QgbWFpbiBsb29wIHNob3VsZCBhbHdheXMgYmUgdGhlcmUuCi0gICAg
QVNTRVJUKCFtX3J1bkxvb3BNYWluTG9vcHMuaXNFbXB0eSgpKTsKLSAgICByZXR1cm4gbV9ydW5M
b29wTWFpbkxvb3BzWzBdLmdldCgpOwotfQotCi12b2lkIFJ1bkxvb3A6OnB1c2hOZXN0ZWRNYWlu
TG9vcChHTWFpbkxvb3AqIG5lc3RlZExvb3ApCi17Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWlu
IGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5M
b29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9vcE1haW5Mb29wcy5hcHBlbmQoYWRvcHRHUmVm
KG5lc3RlZExvb3ApKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpwb3BOZXN0ZWRNYWluTG9vcCgpCi17
Ci0gICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4K
LSAgICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIG1fcnVuTG9v
cE1haW5Mb29wcy5yZW1vdmVMYXN0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6c3RvcCgpCi17Ci0g
ICAgLy8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAg
ICBBU1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIEdSZWZQdHI8R01h
aW5Mb29wPiBsYXN0TWFpbkxvb3AgPSBtX3J1bkxvb3BNYWluTG9vcHMubGFzdCgpOwotICAgIGlm
IChnX21haW5fbG9vcF9pc19ydW5uaW5nKGxhc3RNYWluTG9vcC5nZXQoKSkpCi0gICAgICAgIGdf
bWFpbl9sb29wX3F1aXQobGFzdE1haW5Mb29wLmdldCgpKTsKLX0KLQotZ2Jvb2xlYW4gUnVuTG9v
cDo6cXVldWVXb3JrKFJ1bkxvb3AqIHJ1bkxvb3ApCi17Ci0gICAgcnVuTG9vcC0+cGVyZm9ybVdv
cmsoKTsKLSAgICByZXR1cm4gRkFMU0U7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6d2FrZVVwKCkKLXsK
LSAgICBHUmVmUHRyPEdTb3VyY2U+IHNvdXJjZSA9IGFkb3B0R1JlZihnX2lkbGVfc291cmNlX25l
dygpKTsKLSAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkoc291cmNlLmdldCgpLCBHX1BSSU9SSVRZ
X0RFRkFVTFQpOwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhzb3VyY2UuZ2V0KCksIHJlaW50
ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpxdWV1ZVdvcmspLCB0aGlzLCAwKTsK
LSAgICBnX3NvdXJjZV9hdHRhY2goc291cmNlLmdldCgpLCBtX3J1bkxvb3BDb250ZXh0LmdldCgp
KTsKLQotICAgIGdfbWFpbl9jb250ZXh0X3dha2V1cChtX3J1bkxvb3BDb250ZXh0LmdldCgpKTsK
LX0KLQotUnVuTG9vcDo6VGltZXJCYXNlOjpUaW1lckJhc2UoUnVuTG9vcCogcnVuTG9vcCkKLSAg
ICA6IG1fcnVuTG9vcChydW5Mb29wKQotICAgICwgbV90aW1lclNvdXJjZSgwKQotewotfQotCi1S
dW5Mb29wOjpUaW1lckJhc2U6On5UaW1lckJhc2UoKQotewotICAgIHN0b3AoKTsKLX0KLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OmNsZWFyVGltZXJTb3VyY2UoKQotewotICAgIG1fdGltZXJT
b3VyY2UgPSAwOwotfQotCi1nYm9vbGVhbiBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRD
YWxsYmFjayhSdW5Mb29wOjpUaW1lckJhc2UqIHRpbWVyKQotewotICAgIEdTb3VyY2UqIGN1cnJl
bnRUaW1lclNvdXJjZSA9IHRpbWVyLT5tX3RpbWVyU291cmNlLmdldCgpOwotICAgIGJvb2wgaXNS
ZXBlYXRpbmcgPSB0aW1lci0+aXNSZXBlYXRpbmcoKTsKLSAgICAvLyBUaGlzIGNhbiBjaGFuZ2Ug
dGhlIHRpbWVyU291cmNlIGJ5IHN0YXJ0aW5nIGEgbmV3IHRpbWVyIHdpdGhpbiB0aGUgY2FsbGJh
Y2suCi0gICAgaWYgKCFpc1JlcGVhdGluZyAmJiBjdXJyZW50VGltZXJTb3VyY2UgPT0gdGltZXIt
Pm1fdGltZXJTb3VyY2UuZ2V0KCkpCi0gICAgICAgIHRpbWVyLT5jbGVhclRpbWVyU291cmNlKCk7
Ci0KLSAgICB0aW1lci0+ZmlyZWQoKTsKLSAgICByZXR1cm4gaXNSZXBlYXRpbmc7Ci19Ci0KLXZv
aWQgUnVuTG9vcDo6VGltZXJCYXNlOjpzdGFydChkb3VibGUgZmlyZUludGVydmFsLCBib29sIHJl
cGVhdCkKLXsKLSAgICBpZiAobV90aW1lclNvdXJjZSkKLSAgICAgICAgc3RvcCgpOwotCi0gICAg
bV90aW1lclNvdXJjZSA9IGFkb3B0R1JlZihnX3RpbWVvdXRfc291cmNlX25ldyhzdGF0aWNfY2Fz
dDxndWludD4oZmlyZUludGVydmFsICogMTAwMCkpKTsKLSAgICBtX2lzUmVwZWF0aW5nID0gcmVw
ZWF0OwotICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3RpbWVyU291cmNlLmdldCgpLCByZWlu
dGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPigmUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVk
Q2FsbGJhY2spLCB0aGlzLCAwKTsKLSAgICBnX3NvdXJjZV9hdHRhY2gobV90aW1lclNvdXJjZS5n
ZXQoKSwgbV9ydW5Mb29wLT5tX3J1bkxvb3BDb250ZXh0LmdldCgpKTsKLX0KLQotdm9pZCBSdW5M
b29wOjpUaW1lckJhc2U6OnN0b3AoKQotewotICAgIGlmICghbV90aW1lclNvdXJjZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgZ19zb3VyY2VfZGVzdHJveShtX3RpbWVyU291cmNlLmdldCgpKTsK
LSAgICBjbGVhclRpbWVyU291cmNlKCk7Ci19Ci0KLWJvb2wgUnVuTG9vcDo6VGltZXJCYXNlOjpp
c0FjdGl2ZSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fdGltZXJTb3VyY2U7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdURgotCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNO
aXguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9uaXgvRmVhdHVyZURlZmluZXNOaXgu
aAkocmV2aXNpb24gMTYyMTQ3KQorKysgU291cmNlL1dURi93dGYvbml4L0ZlYXR1cmVEZWZpbmVz
Tml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMzA1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
LSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0qLwotCi0jaWZuZGVmIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCi0jZGVm
aW5lIFdURl9GZWF0dXJlRGVmaW5lc05peF9oCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfM0RfUkVO
REVSSU5HKQotI2RlZmluZSBFTkFCTEVfM0RfUkVOREVSSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRl
ZmluZWQoRU5BQkxFXzhCSVRfVEVYVFJVTikKLSNkZWZpbmUgRU5BQkxFXzhCSVRfVEVYVFJVTiAx
Ci0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpCi0j
ZGVmaW5lIEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgMAotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HKQotI2RlZmluZSBFTkFC
TEVfQUNDRUxFUkFURURfT1ZFUkZMT1dfU0NST0xMSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX0JBVFRFUllfU1RBVFVTKQotI2RlZmluZSBFTkFCTEVfQkFUVEVSWV9TVEFUVVMg
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQkxPQikKLSNkZWZpbmUgRU5BQkxFX0JM
T0IgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpCi0j
ZGVmaW5lIEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9DT05URVhUX01FTlVTKQotI2RlZmluZSBFTkFCTEVfQ09OVEVYVF9NRU5VUyAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1MzX1RFWFQpCi0jZGVmaW5lIEVOQUJMRV9D
U1MzX1RFWFQgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFU
SU9OX0JSRUFLKQotI2RlZmluZSBFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikKLSNkZWZp
bmUgRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTiAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVk
KEVOQUJMRV9DU1NfRVhDTFVTSU9OUykKLSNkZWZpbmUgRU5BQkxFX0NTU19FWENMVVNJT05TIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19GSUxURVJTKQotI2RlZmluZSBFTkFC
TEVfQ1NTX0ZJTFRFUlMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdF
X09SSUVOVEFUSU9OKQotI2RlZmluZSBFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKQotI2RlZmlu
ZSBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfQ1NTX0lNQUdFX1NFVCkKLSNkZWZpbmUgRU5BQkxFX0NTU19JTUFHRV9TRVQgMQotI2Vu
ZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1JFR0lPTlMpCi0jZGVmaW5lIEVOQUJMRV9D
U1NfUkVHSU9OUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9DU1NfU0hBREVSUykK
LSNkZWZpbmUgRU5BQkxFX0NTU19TSEFERVJTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX0RBVEFMSVNUX0VMRU1FTlQpCi0jZGVmaW5lIEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIDEK
LSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkKLSNkZWZpbmUg
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9E
UkFHX1NVUFBPUlQpCi0jZGVmaW5lIEVOQUJMRV9EUkFHX1NVUFBPUlQgMQotI2VuZGlmCi0KLSNp
ZiAhZGVmaW5lZChFTkFCTEVfRkFTVF9NT0JJTEVfU0NST0xMSU5HKQotI2RlZmluZSBFTkFCTEVf
RkFTVF9NT0JJTEVfU0NST0xMSU5HIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0ZJ
TFRFUlMpCi0jZGVmaW5lIEVOQUJMRV9GSUxURVJTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX0ZUUERJUikKLSNkZWZpbmUgRU5BQkxFX0ZUUERJUiAxCi0jZW5kaWYKLQotI2lmICFk
ZWZpbmVkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX0ZVTExTQ1JFRU5f
QVBJIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dBTUVQQUQpCi0jZGVmaW5lIEVO
QUJMRV9HQU1FUEFEIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0dFT0xPQ0FUSU9O
KQotI2RlZmluZSBFTkFCTEVfR0VPTE9DQVRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfSUNPTkRBVEFCQVNFKQotI2RlZmluZSBFTkFCTEVfSUNPTkRBVEFCQVNFIDEKLSNlbmRp
ZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykKLSNkZWZpbmUgRU5BQkxF
X0lGUkFNRV9TRUFNTEVTUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9JTkRFWEVE
X0RBVEFCQVNFKQotI2RlZmluZSBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSAxCi0jZW5kaWYKLQot
I2lmICFkZWZpbmVkKEVOQUJMRV9JTlNQRUNUT1IpCi0jZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1Ig
MQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUikKLSNkZWZp
bmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfSU5QVVRfU1BFRUNIKQotI2RlZmluZSBFTkFCTEVfSU5QVVRfU1BFRUNIIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpCi0jZGVmaW5lIEVOQUJM
RV9KQVZBU0NSSVBUX0RFQlVHR0VSIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX0pJ
VCkKLSNkZWZpbmUgRU5BQkxFX0pJVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9M
RUdBQ1lfVklFV1BPUlRfQURBUFRJT04pCi0jZGVmaW5lIEVOQUJMRV9MRUdBQ1lfVklFV1BPUlRf
QURBUFRJT04gMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTEVHQUNZX1dFQl9BVURJ
TykKLSNkZWZpbmUgRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8gMQotI2VuZGlmCi0KLSNpZiAhZGVm
aW5lZChFTkFCTEVfTExJTlQpCi0jZGVmaW5lIEVOQUJMRV9MTElOVCAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9NQVRITUwpCi0jZGVmaW5lIEVOQUJMRV9NQVRITUwgMQotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTUVESUFfU1RSRUFNKQotI2RlZmluZSBFTkFCTEVfTUVE
SUFfU1RSRUFNIDAKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX01FVEVSX0VMRU1FTlQp
Ci0jZGVmaW5lIEVOQUJMRV9NRVRFUl9FTEVNRU5UIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQo
RU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKQotI2RlZmluZSBFTkFCTEVfTkFWSUdBVE9S
X0NPTlRFTlRfVVRJTFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUU0NBUEVf
UExVR0lOX0FQSSkKLSNkZWZpbmUgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgMAotI2VuZGlm
Ci0KLSNpZiAhZGVmaW5lZChFTkFCTEVfTkVUV09SS19JTkZPKQotI2RlZmluZSBFTkFCTEVfTkVU
V09SS19JTkZPIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX05FVFdPUktfUFJPQ0VT
UykKLSNkZWZpbmUgRU5BQkxFX05FVFdPUktfUFJPQ0VTUyAwCi0jZW5kaWYKLQotI2lmICFkZWZp
bmVkKEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCkKLSNkZWZpbmUgRU5BQkxFX09QRU5UWVBFX1ZF
UlRJQ0FMIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpCi0jZGVmaW5lIEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJIDEKLSNlbmRpZgotCi0jaWYg
IWRlZmluZWQoRU5BQkxFX1BMVUdJTl9QQUNLQUdFX1NJTVBMRV9IQVNIKQotI2RlZmluZSBFTkFC
TEVfUExVR0lOX1BBQ0tBR0VfU0lNUExFX0hBU0ggMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChF
TkFCTEVfUE9QVVBfTUVOVVMpCi0jZGVmaW5lIEVOQUJMRV9QT1BVUF9NRU5VUyAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKQotI2RlZmluZSBFTkFCTEVf
UFJPR1JFU1NfRUxFTUVOVCAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9QUk9NSVNF
UykKLSNkZWZpbmUgRU5BQkxFX1BST01JU0VTIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotI2RlZmluZSBFTkFCTEVfUkVRVUVTVF9BTklN
QVRJT05fRlJBTUUgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NIQVBFUykK
LSNkZWZpbmUgRU5BQkxFX0NTU19TSEFQRVMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFC
TEVfU0hBUkVEX1dPUktFUlMpCi0jZGVmaW5lIEVOQUJMRV9TSEFSRURfV09SS0VSUyAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9TUUxfREFUQUJBU0UpCi0jZGVmaW5lIEVOQUJMRV9T
UUxfREFUQUJBU0UgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfU1ZHKQotI2RlZmlu
ZSBFTkFCTEVfU1ZHIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1NWR19GT05UUykK
LSNkZWZpbmUgRU5BQkxFX1NWR19GT05UUyAxCi0jZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJM
RV9UT1VDSF9BREpVU1RNRU5UKQotI2RlZmluZSBFTkFCTEVfVE9VQ0hfQURKVVNUTUVOVCAxCi0j
ZW5kaWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9UT1VDSF9FVkVOVFMpCi0jZGVmaW5lIEVOQUJM
RV9UT1VDSF9FVkVOVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfVU5ET19NQU5B
R0VSKQotI2RlZmluZSBFTkFCTEVfVU5ET19NQU5BR0VSIDAKLSNlbmRpZgotCi0jaWYgIWRlZmlu
ZWQoRU5BQkxFX1ZJQlJBVElPTikKLSNkZWZpbmUgRU5BQkxFX1ZJQlJBVElPTiAxCi0jZW5kaWYK
LQotI2lmICFkZWZpbmVkKEVOQUJMRV9WSURFTykKLSNkZWZpbmUgRU5BQkxFX1ZJREVPIDAKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpCi0jZGVmaW5l
IEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBIDEKLSNlbmRpZgotCi0jaWYgIWRlZmluZWQoRU5B
QkxFX1dFQl9BVURJTykKLSNkZWZpbmUgRU5BQkxFX1dFQl9BVURJTyAxCi0jZW5kaWYKLQotI2lm
ICFkZWZpbmVkKEVOQUJMRV9XRUJHTCkKLSNkZWZpbmUgRU5BQkxFX1dFQkdMIDEKLSNlbmRpZgot
Ci0jaWYgIWRlZmluZWQoRU5BQkxFX1dFQl9TT0NLRVRTKQotI2RlZmluZSBFTkFCTEVfV0VCX1NP
Q0tFVFMgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfV0VCX1RJTUlORykKLSNkZWZp
bmUgRU5BQkxFX1dFQl9USU1JTkcgMQotI2VuZGlmCi0KLSNpZiAhZGVmaW5lZChFTkFCTEVfWEhS
X1JFU1BPTlNFX0JMT0IpCi0jZGVmaW5lIEVOQUJMRV9YSFJfUkVTUE9OU0VfQkxPQiAxCi0jZW5k
aWYKLQotI2lmICFkZWZpbmVkKEVOQUJMRV9YU0xUKQotI2RlZmluZSBFTkFCTEVfWFNMVCAxCi0j
ZW5kaWYKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9uaXgvUGxhdGZvcm1OaXguaAkocmV2aXNpb24g
MTYyMTQ3KQorKysgU291cmNlL1dURi93dGYvbml4L1BsYXRmb3JtTml4LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSogIENvcHlyaWdodCAoQykgMjAxMyBOb2tpYSBDb3Jw
b3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCi0qCi0qIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSogYXJlIG1ldDoKLSogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0qICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0qCi0qIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKLSAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKLSAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCi0gKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKLSAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKLSAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAotICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCi0gKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jaWZuZGVmIFdU
Rl9QbGF0Zm9ybU5peF9oCi0jZGVmaW5lIFdURl9QbGF0Zm9ybU5peF9oCi0KLSNkZWZpbmUgV1RG
X1BMQVRGT1JNX05JWCAxCi0jZGVmaW5lIEVOQUJMRV9HTE9CQUxfRkFTVE1BTExPQ19ORVcgMAot
Ci0jZGVmaW5lIFdURl9VU0VfM0RfR1JBUEhJQ1MgMQotI2RlZmluZSBXVEZfVVNFX0FDQ0VMRVJB
VEVEX0NPTVBPU0lUSU5HIDEKLSNkZWZpbmUgV1RGX1VTRV9DQUlSTyAxCi0jZGVmaW5lIFdURl9V
U0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgMQotI2RlZmluZSBXVEZfVVNFX0NST1NTX1BMQVRGT1JN
X0NPTlRFWFRfTUVOVVMgMQotI2RlZmluZSBXVEZfVVNFX0ZSRUVUWVBFIDEKLSNkZWZpbmUgV1RG
X1VTRV9HTElCIDEKLSNkZWZpbmUgV1RGX1VTRV9IQVJGQlVaWiAxCi0jZGVmaW5lIFdURl9VU0Vf
SEFSRkJVWlpfTkcgMQotI2RlZmluZSBXVEZfVVNFX0lDVV9VTklDT0RFIDEKLSNkZWZpbmUgV1RG
X1VTRV9MRVZFTERCIDEKLSNkZWZpbmUgV1RGX1VTRV9QVEhSRUFEUyAxCi0jZGVmaW5lIFdURl9V
U0VfVEVYVFVSRV9NQVBQRVIgMQotI2RlZmluZSBXVEZfVVNFX1RFWFRVUkVfTUFQUEVSX0dMIDEK
LSNkZWZpbmUgV1RGX1VTRV9USUxFRF9CQUNLSU5HX1NUT1JFIDEKLSNkZWZpbmUgV1RGX1VTRV9V
TklYX0RPTUFJTl9TT0NLRVRTIDEKLQotI2lmICFkZWZpbmVkKFdURl9VU0VfT1BFTkdMX0VTXzIp
IHx8ICFXVEZfVVNFX09QRU5HTF9FU18yCi0jZGVmaW5lIFdURl9VU0VfT1BFTkdMIDEKLSNkZWZp
bmUgV1RGX1VTRV9HTFggMQotI2RlZmluZSBXVEZfUExBVEZPUk1fWDExIDEKLSNkZWZpbmUgV1RG
X1VTRV9HUkFQSElDU19TVVJGQUNFIDEKLSNlbHNlCi0jZGVmaW5lIFdURl9VU0VfRUdMIDEKLSNl
bmRpZgotCi0jaWYgIWRlZmluZWQoV1RGX1VTRV9DVVJMKSB8fCAhV1RGX1VTRV9DVVJMCi0jZGVm
aW5lIFdURl9VU0VfU09VUCAxCi0jZW5kaWYKLQotI2VuZGlmCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi9uaXgvUnVuTG9vcE5peC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvbml4L1J1
bkxvb3BOaXguY3BwCShyZXZpc2lvbiAxNjIxNDcpCisrKyBTb3VyY2UvV1RGL3d0Zi9uaXgvUnVu
TG9vcE5peC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogUG9ydGlv
bnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBvcmF0aW9uIGFuZC9v
ciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlJ1bkxvb3AuaCIKLQotI2luY2x1ZGUgPGdsaWIuaD4KLQotI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+Ci0KLW5hbWVzcGFjZSBXVEYgewotCi1SdW5Mb29wOjpSdW5Mb29wKCkK
LXsKLSAgICAvLyBnX21haW5fY29udGV4dF9kZWZhdWx0KCkgZG9lc24ndCBhZGQgYW4gZXh0cmEg
cmVmZXJlbmNlLgotICAgIG1fcnVuTG9vcENvbnRleHQgPSBpc01haW5UaHJlYWQoKSA/IGdfbWFp
bl9jb250ZXh0X2RlZmF1bHQoKSA6IGFkb3B0R1JlZihnX21haW5fY29udGV4dF9uZXcoKSk7Ci0g
ICAgQVNTRVJUKG1fcnVuTG9vcENvbnRleHQpOwotICAgIEdSZWZQdHI8R01haW5Mb29wPiBpbm5l
cm1vc3RMb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyhtX3J1bkxvb3BDb250ZXh0Lmdl
dCgpLCBGQUxTRSkpOwotICAgIEFTU0VSVChpbm5lcm1vc3RMb29wKTsKLSAgICBtX3J1bkxvb3BN
YWluTG9vcHMuYXBwZW5kKGlubmVybW9zdExvb3ApOwotfQotCi1SdW5Mb29wOjp+UnVuTG9vcCgp
Ci17Ci0gICAgZm9yIChpbnQgaSA9IG1fcnVuTG9vcE1haW5Mb29wcy5zaXplKCkgLSAxOyBpID49
IDA7IC0taSkgewotICAgICAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcobV9ydW5Mb29w
TWFpbkxvb3BzW2ldLmdldCgpKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBnX21h
aW5fbG9vcF9xdWl0KG1fcnVuTG9vcE1haW5Mb29wc1tpXS5nZXQoKSk7Ci0gICAgfQotfQotCi12
b2lkIFJ1bkxvb3A6OnJ1bigpCi17Ci0gICAgUnVuTG9vcCogbWFpblJ1bkxvb3AgPSBSdW5Mb29w
OjpjdXJyZW50KCk7Ci0gICAgR01haW5Mb29wKiBpbm5lcm1vc3RMb29wID0gbWFpblJ1bkxvb3At
PmlubmVybW9zdExvb3AoKTsKLSAgICBpZiAoIWdfbWFpbl9sb29wX2lzX3J1bm5pbmcoaW5uZXJt
b3N0TG9vcCkpIHsKLSAgICAgICAgZ19tYWluX2xvb3BfcnVuKGlubmVybW9zdExvb3ApOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gQ3JlYXRlIGFuZCBydW4gYSBuZXN0ZWQgbG9v
cCBpZiB0aGUgaW5uZXJtb3N0IG9uZSB3YXMgYWxyZWFkeSBydW5uaW5nLgotICAgIEdNYWluTG9v
cCogbmVzdGVkTWFpbkxvb3AgPSBnX21haW5fbG9vcF9uZXcoMCwgRkFMU0UpOwotICAgIG1haW5S
dW5Mb29wLT5wdXNoTmVzdGVkTWFpbkxvb3AobmVzdGVkTWFpbkxvb3ApOwotICAgIGdfbWFpbl9s
b29wX3J1bihuZXN0ZWRNYWluTG9vcCk7Ci0gICAgbWFpblJ1bkxvb3AtPnBvcE5lc3RlZE1haW5M
b29wKCk7Ci19Ci0KLUdNYWluTG9vcCogUnVuTG9vcDo6aW5uZXJtb3N0TG9vcCgpCi17Ci0gICAg
Ly8gVGhlIGlubmVybW9zdCBtYWluIGxvb3Agc2hvdWxkIGFsd2F5cyBiZSB0aGVyZS4KLSAgICBB
U1NFUlQoIW1fcnVuTG9vcE1haW5Mb29wcy5pc0VtcHR5KCkpOwotICAgIHJldHVybiBtX3J1bkxv
b3BNYWluTG9vcHNbMF0uZ2V0KCk7Ci19Ci0KLXZvaWQgUnVuTG9vcDo6cHVzaE5lc3RlZE1haW5M
b29wKEdNYWluTG9vcCogbmVzdGVkTG9vcCkKLXsKLSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4g
bG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxv
b3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29wTWFpbkxvb3BzLmFwcGVuZChhZG9wdEdSZWYo
bmVzdGVkTG9vcCkpOwotfQotCi12b2lkIFJ1bkxvb3A6OnBvcE5lc3RlZE1haW5Mb29wKCkKLXsK
LSAgICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgot
ICAgIEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgbV9ydW5Mb29w
TWFpbkxvb3BzLnJlbW92ZUxhc3QoKTsKLX0KLQotdm9pZCBSdW5Mb29wOjpzdG9wKCkKLXsKLSAg
ICAvLyBUaGUgaW5uZXJtb3N0IG1haW4gbG9vcCBzaG91bGQgYWx3YXlzIGJlIHRoZXJlLgotICAg
IEFTU0VSVCghbV9ydW5Mb29wTWFpbkxvb3BzLmlzRW1wdHkoKSk7Ci0gICAgR1JlZlB0cjxHTWFp
bkxvb3A+IGxhc3RNYWluTG9vcCA9IG1fcnVuTG9vcE1haW5Mb29wcy5sYXN0KCk7Ci0gICAgaWYg
KGdfbWFpbl9sb29wX2lzX3J1bm5pbmcobGFzdE1haW5Mb29wLmdldCgpKSkKLSAgICAgICAgZ19t
YWluX2xvb3BfcXVpdChsYXN0TWFpbkxvb3AuZ2V0KCkpOwotfQotCi1nYm9vbGVhbiBSdW5Mb29w
OjpxdWV1ZVdvcmsoUnVuTG9vcCogcnVuTG9vcCkKLXsKLSAgICBydW5Mb29wLT5wZXJmb3JtV29y
aygpOwotICAgIHJldHVybiBGQUxTRTsKLX0KLQotdm9pZCBSdW5Mb29wOjp3YWtlVXAoKQotewot
ICAgIEdSZWZQdHI8R1NvdXJjZT4gc291cmNlID0gYWRvcHRHUmVmKGdfaWRsZV9zb3VyY2VfbmV3
KCkpOwotICAgIGdfc291cmNlX3NldF9wcmlvcml0eShzb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlf
REVGQVVMVCk7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKHNvdXJjZS5nZXQoKSwgcmVpbnRl
cnByZXRfY2FzdDxHU291cmNlRnVuYz4oJlJ1bkxvb3A6OnF1ZXVlV29yayksIHRoaXMsIDApOwot
ICAgIGdfc291cmNlX2F0dGFjaChzb3VyY2UuZ2V0KCksIG1fcnVuTG9vcENvbnRleHQuZ2V0KCkp
OwotCi0gICAgZ19tYWluX2NvbnRleHRfd2FrZXVwKG1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwot
fQotCi1SdW5Mb29wOjpUaW1lckJhc2U6OlRpbWVyQmFzZShSdW5Mb29wKiBydW5Mb29wKQotICAg
IDogbV9ydW5Mb29wKHJ1bkxvb3ApCi0gICAgLCBtX3RpbWVyU291cmNlKDApCi17Ci19Ci0KLVJ1
bkxvb3A6OlRpbWVyQmFzZTo6flRpbWVyQmFzZSgpCi17Ci0gICAgc3RvcCgpOwotfQotCi12b2lk
IFJ1bkxvb3A6OlRpbWVyQmFzZTo6Y2xlYXJUaW1lclNvdXJjZSgpCi17Ci0gICAgbV90aW1lclNv
dXJjZSA9IDA7Ci19Ci0KLWdib29sZWFuIFJ1bkxvb3A6OlRpbWVyQmFzZTo6dGltZXJGaXJlZENh
bGxiYWNrKFJ1bkxvb3A6OlRpbWVyQmFzZSogdGltZXIpCi17Ci0gICAgR1NvdXJjZSogY3VycmVu
dFRpbWVyU291cmNlID0gdGltZXItPm1fdGltZXJTb3VyY2UuZ2V0KCk7Ci0gICAgYm9vbCBpc1Jl
cGVhdGluZyA9IHRpbWVyLT5pc1JlcGVhdGluZygpOwotICAgIC8vIFRoaXMgY2FuIGNoYW5nZSB0
aGUgdGltZXJTb3VyY2UgYnkgc3RhcnRpbmcgYSBuZXcgdGltZXIgd2l0aGluIHRoZSBjYWxsYmFj
ay4KLSAgICBpZiAoIWlzUmVwZWF0aW5nICYmIGN1cnJlbnRUaW1lclNvdXJjZSA9PSB0aW1lci0+
bV90aW1lclNvdXJjZS5nZXQoKSkKLSAgICAgICAgdGltZXItPmNsZWFyVGltZXJTb3VyY2UoKTsK
LQotICAgIHRpbWVyLT5maXJlZCgpOwotICAgIHJldHVybiBpc1JlcGVhdGluZzsKLX0KLQotdm9p
ZCBSdW5Mb29wOjpUaW1lckJhc2U6OnN0YXJ0KGRvdWJsZSBmaXJlSW50ZXJ2YWwsIGJvb2wgcmVw
ZWF0KQotewotICAgIGlmIChtX3RpbWVyU291cmNlKQotICAgICAgICBzdG9wKCk7Ci0KLSAgICBt
X3RpbWVyU291cmNlID0gYWRvcHRHUmVmKGdfdGltZW91dF9zb3VyY2VfbmV3KHN0YXRpY19jYXN0
PGd1aW50PihmaXJlSW50ZXJ2YWwgKiAxMDAwKSkpOwotICAgIG1faXNSZXBlYXRpbmcgPSByZXBl
YXQ7Ci0gICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdGltZXJTb3VyY2UuZ2V0KCksIHJlaW50
ZXJwcmV0X2Nhc3Q8R1NvdXJjZUZ1bmM+KCZSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWRD
YWxsYmFjayksIHRoaXMsIDApOwotICAgIGdfc291cmNlX2F0dGFjaChtX3RpbWVyU291cmNlLmdl
dCgpLCBtX3J1bkxvb3AtPm1fcnVuTG9vcENvbnRleHQuZ2V0KCkpOwotfQotCi12b2lkIFJ1bkxv
b3A6OlRpbWVyQmFzZTo6c3RvcCgpCi17Ci0gICAgaWYgKCFtX3RpbWVyU291cmNlKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBnX3NvdXJjZV9kZXN0cm95KG1fdGltZXJTb3VyY2UuZ2V0KCkpOwot
ICAgIGNsZWFyVGltZXJTb3VyY2UoKTsKLX0KLQotYm9vbCBSdW5Mb29wOjpUaW1lckJhc2U6Omlz
QWN0aXZlKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV90aW1lclNvdXJjZTsKLX0KLQotfSAvLyBu
YW1lc3BhY2UgV1RGCi0K
</data>
<flag name="review"
          id="245337"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>