<?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>225682</bug_id>
          
          <creation_ts>2021-05-11 18:25:56 -0700</creation_ts>
          <short_desc>Implement some common Baseline JIT slow paths using JIT thunks.</short_desc>
          <delta_ts>2021-05-12 12:13:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759128</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-11 18:25:56 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759157</commentid>
    <comment_count>1</comment_count>
      <attachid>428343</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-11 21:21:21 -0700</bug_when>
    <thetext>Created attachment 428343
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759348</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2021-05-12 12:12:26 -0700</bug_when>
    <thetext>Thanks for the review.  Landed in r277383: &lt;http://trac.webkit.org/r277383&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759349</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-12 12:13:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/77923903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428343</attachid>
            <date>2021-05-11 21:21:21 -0700</date>
            <delta_ts>2021-05-12 11:58:43 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-225682.patch</filename>
            <type>text/plain</type>
            <size>47530</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3MzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDExMyBA
QAorMjAyMS0wNS0xMSAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
SW1wbGVtZW50IHNvbWUgY29tbW9uIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIHVzaW5nIEpJVCB0
aHVua3MuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjU2ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGlzIHBhdGNoIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgorCisgICAgICAgIDEu
IEltcGxlbWVudCBleGNlcHRpb24gaGFuZGxpbmcgdGh1bmtzOgorICAgICAgICAgICBhLiBoYW5k
bGVFeGNlcHRpb25HZW5lcmF0b3IsIHdoaWNoIGNhbGxzIG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlv
bkhhbmRsZXIoKS4KKyAgICAgICAgICAgYi4gaGFuZGxlRXhjZXB0aW9uV2l0aENhbGxGcmFtZVJv
bGxiYWNrR2VuZXJhdG9yLCB3aGljaCBjYWxscworICAgICAgICAgICAgICBvcGVyYXRpb25Mb29r
dXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lKCkuCisKKyAgICAgICAgICAgQWxsIHRo
ZSBKSVQgdGllcnMgd2VyZSBlbWl0dGluZyB0aGVpciBvd24gY29weSBvZiB0aGVzZSByb3V0aW5l
cyB0byBjYWxsIHRoZXNlCisgICAgICAgICAgIG9wZXJhdGlvbiwgb25lIHBlciBDb2RlQmxvY2su
ICBXZSBub3cgZW1pdCAyIHRodW5rcyBmb3IgdGhlc2UgYW5kIGhhdmUgYWxsIHRoZQorICAgICAg
ICAgICB0aWVycyBqdXN0IGp1bXAgdG8gdGhlbS4KKworICAgICAgICAgICBQb2x5bW9ycGhpY0Fj
Y2VzcyBhbHNvIG5vdyB1c2VzIHRoZSBoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3IgdGh1bmsuCisK
KyAgICAgICAgICAgREZHOjpKSVRDb21waWxlcjo6Y29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkg
aGFzIG9uZSBzbWFsbCBiZWhhdmlvciBkaWZmZXJlbmNlCisgICAgICAgICAgIGJlZm9yZSBpdCBj
YWxscyBvcGVyYXRpb25Mb29rdXBFeGNlcHRpb25IYW5kbGVyRnJvbUNhbGxlckZyYW1lKCk6IGl0
IGZpcnN0CisgICAgICAgICAgIHJlLXNldHMgdGhlIHRvcCBvZiBzdGFjayBmb3IgdGhlIGZ1bmN0
aW9uIHdoZXJlIHdlIGFyZSBhYm91dCB0byB0aHJvdyBhCisgICAgICAgICAgIFN0YWNrT3ZlcmZs
b3dFcnJvciBmcm9tLiAgVGhpcyByZS1zZXR0aW5nIG9mIHRvcCBvZiBzdGFjayBpcyB1c2VsZXNz
IGJlY2F1c2UKKyAgICAgICAgICAgd2UncmUgaW1taW5lbnRseSB1bndpbmRpbmcgb3V0IG9mIGF0
IGxlYXN0IHRoaXMgZnJhbWUgZm9yIHRoZSBTdGFja092ZXJmbG93RXJyb3IuCisgICAgICAgICAg
IEhlbmNlLCBpdCBpcyBvayB0byB1c2UgdGhlIGhhbmRsZUV4Y2VwdGlvbldpdGhDYWxsRnJhbWVS
b2xsYmFja0dlbmVyYXRvciB0aHVuaworICAgICAgICAgICBoZXJlIGFzIHdlbGwuICBOb3RlIHRo
YXQgbm8gb3RoZXIgdGllcnMgZG9lcyB0aGlzIHJlLXNldHRpbmcgb2YgdG9wIG9mIHN0YWNrLgor
CisgICAgICAgICAgIEZUTExvd2VyREZHVG9CMyBoYXMgb25lIGNhc2UgdXNpbmcgb3BlcmF0aW9u
TG9va3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSgpCisgICAgICAgICAgIHdoaWNo
IGNhbm5vdCBiZSByZWZhY3RvcmVkIHRvIHVzZSB0aGVzZSB0aHVua3MgYmVjYXVzZSBpdCBkb2Vz
IGFkZGl0aW9uYWwKKyAgICAgICAgICAgd29yayB0byB0aHJvdyBhIFN0YWNrT3ZlcmZsb3dFcnJv
ci4gIEEgZGlmZmVyZW50IHRodW5rIHdpbGwgYmUgbmVlZGVkLiAgSSBsZWZ0CisgICAgICAgICAg
IGl0IGFsb25lIGZvciBub3cuCisKKyAgICAgICAgMi4gSW50cm9kdWNlIEpJVFRodW5rczo6ZXhp
c3RpbmdDVElTdHViKFRodW5rR2VuZXJhdG9yLCBOb0xvY2tpbmdOZWNlc3NhcnlUYWcpIHNvCisg
ICAgICAgICAgIHRoYXQgYSB0aHVuayBjYW4gZ2V0IGEgcG9pbnRlciB0byBhbm90aGVyIHRodW5r
IHdpdGhvdXQgbG9ja2luZyB0aGUgSklUVGh1bmtzCisgICAgICAgICAgIGxvY2suICBPdGhlcndp
c2UsIGRlYWRsb2NrIGVuc3Vlcy4KKworICAgICAgICAzLiBDaGFuZ2UgU2xvd1BhdGhDYWxsIHRv
IGVtaXQgYW5kIHVzZSB0aHVua3MgaW5zdGVhZCBvZiBlbWl0dGluZyBhIGJsb2Igb2YgY29kZQor
ICAgICAgICAgICB0byBjYWxsIGEgc2xvdyBwYXRoIGZ1bmN0aW9uIGZvciBldmVyeSBieXRlY29k
ZSBpbiBhIENvZGVCbG9jay4KKworICAgICAgICA0LiBJbnRyb2R1Y2UgSklUVGh1bmtzOjpjdGlT
bG93UGF0aEZ1bmN0aW9uU3R1YigpIHRvIG1hbmFnZSB0aGVzZSBTbG93UGF0aEZ1bmN0aW9uCisg
ICAgICAgICAgIHRodW5rcy4KKworICAgICAgICA1LiBJbnRyb2R1Y2UgSklUVGh1bmtzOjpwcmVp
bml0aWFsaXplQWdncmVzc2l2ZUNUSVRodW5rcygpIHRvIGluaXRpYWxpemUgdGhlc2UKKyAgICAg
ICAgICAgdGh1bmtzIGF0IFZNIGluaXRpYWxpemF0aW9uIHRpbWUuICBQcmUtaW5pdGlhbGl6aW5n
IHRoZW0gaGFzIG11bHRpcGxlIGJlbmVmaXRzOgorICAgICAgICAgICBhLiB0aGUgdGh1bmtzIGFy
ZSBub3Qgc2NhdHRlcmVkIHRocm91Z2ggb3V0IEpJVCBtZW1vcnksIHRoZXJlYnkgcmVkdWNpbmcK
KyAgICAgICAgICAgICAgZnJhZ21lbnRhdGlvbi4KKyAgICAgICAgICAgYi4gd2UgZG9uJ3Qgc3Bl
bmQgdGltZSBhdCBydW50aW1lIGNvbXBpbGluZyB0aGVtIHdoZW4gdGhlIHVzZXIgaXMgaW50ZXJh
Y3RpbmcKKyAgICAgICAgICAgICAgd2l0aCB0aGUgVk0uICBDb25jZXB0dWFsbHksIHRoZXNlIHRo
dW5rcyBjYW4gYmUgVk0gaW5kZXBlbmRlbnQgYW5kIGNhbiBiZQorICAgICAgICAgICAgICBzaGFy
ZWQgYnkgVk1zIHByb2Nlc3Mtd2lkZS4gIEhvd2V2ZXIsIGl0IHdpbGwgcmVxdWlyZSBzb21lIGFk
ZGl0aW9uYWwgd29yay4KKyAgICAgICAgICAgICAgRm9yIG5vdywgdGhlIHRodW5rcyByZW1haW4g
Ym91bmQgdG8gYSBzcGVjaWZpYyBWTSBpbnN0YW5jZS4KKworICAgICAgICBUaGVzZSBjaGFuZ2Vz
IGFyZSBvbmx5IGVuYWJsZWQgd2hlbiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUyksIHdoaWNoIGlz
IGN1cnJlbnRseQorICAgICAgICBvbmx5IGF2YWlsYWJsZSBmb3IgQVJNNjQgYW5kIG5vbi1XaW5k
b3dzIHg4Nl82NC4KKworICAgICAgICBUaGlzIHBhdGNoIGhhcyBwYXNzZWQgSlNDIHRlc3RzIG9u
IEFTIE1hYy4KKworICAgICAgICBXaXRoIHRoaXMgcGF0Y2gsIC0tZHVtcExpbmtCdWZmZXJTdGF0
cyBzaG93cyB0aGUgZm9sbG93aW5nIGNoYW5nZXMgaW4gZW1pdHRlZAorICAgICAgICBKSVQgY29k
ZSBzaXplICh1c2luZyBhIHNpbmdsZSBydW4gb2YgdGhlIENMSSB2ZXJzaW9uIG9mIEpldFN0cmVh
bTIgb24gQVMgTWFjKToKKworICAgICAgICAgICAgICAgICAgICAgICAgQmFzZSAgICAgICAgICAg
ICAgICAgICAgIE5ldyAgICAgICAgICAgICAgICAgICAgICBEaWZmCisKKyAgICAgICAgICAgQmFz
ZWxpbmVKSVQ6IDg5MDg5OTY0ICg4NC45NjI4MTEgTUIpICA4NDYyNDc3NiAoODAuNzA0NDc1IE1C
KSAgMC45NXggKHJlZHVjdGlvbikKKyAgICAgICAgICAgICAgICAgICBERkc6IDM5MTE3MzYwICgz
Ny4zMDUyMjIgTUIpICAzNjQxNTI2NCAoMzQuNzI4MzAyIE1CKSAgMC45M3ggKHJlZHVjdGlvbikK
KyAgICAgICAgICAgICAgICAgVGh1bms6IDIzMjMwOTY4ICgyMi4xNTQ3NzggTUIpICAyMzEzMDMz
NiAoMjIuMDU4ODA3IE1CKSAgMS4wMHgKKyAgICAgICAgICAgSW5saW5lQ2FjaGU6IDIyMDI3NDE2
ICgyMS4wMDY5ODEgTUIpICAyMTk2OTcyOCAoMjAuOTUxOTY1IE1CKSAgMS4wMHgKKyAgICAgICAg
ICAgICAgICAgICBGVEw6IDY1NzU3NzIgKDYuMjcxMTQ1IE1CKSAgICA2MDk3MzM2ICg1LjgxNDg3
MyBNQikgICAgMC45M3ggKHJlZHVjdGlvbikKKyAgICAgICAgICAgICAgICAgIFdhc206IDIzMDI3
MjQgKDIuMTk2MDQ5IE1CKSAgICAyMzAxOTU2ICgyLjE5NTMxNiBNQikgICAgMS4wMHgKKyAgICAg
ICAgICAgICAgIFlhcnJKSVQ6IDE1Mzg5NTYgKDEuNDY3NjYzIE1CKSAgICAxNTIyNDg4ICgxLjQ1
MTk1OCBNQikgICAgMC45OXgKKyAgICAgICAgICAgICAgICBDU1NKSVQ6IDAgICAgICAgICAgICAg
ICAgICAgICAgICAwCisgICAgICAgICBVbmNhdGVnb3JpemVkOiAwICAgICAgICAgICAgICAgICAg
ICAgICAgMAorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoK
KyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6Q29kZUJsb2Nr
OjpvZmZzZXRPZkluc3RydWN0aW9uc1Jhd1BvaW50ZXIpOgorICAgICAgICAqIGJ5dGVjb2RlL1Bv
bHltb3JwaGljQWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzR2VuZXJhdGlvblN0YXRl
OjplbWl0RXhwbGljaXRFeGNlcHRpb25IYW5kbGVyKToKKyAgICAgICAgKiBkZmcvREZHSklUQ29t
cGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpjb21waWxlRXhjZXB0
aW9uSGFuZGxlcnMpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENvbXBpbGVyOjpsaW5rKToKKyAg
ICAgICAgKiBkZmcvREZHSklUQ29tcGlsZXIuaDoKKyAgICAgICAgKiBmdGwvRlRMQ29tcGlsZS5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExpbmsu
Y3BwOgorICAgICAgICAoSlNDOjpGVEw6OmxpbmspOgorICAgICAgICAqIGppdC9KSVQuY3BwOgor
ICAgICAgICAoSlNDOjpKSVQ6OmxpbmspOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVDb21w
aWxlRXhjZXB0aW9uSGFuZGxlcnMpOgorICAgICAgICAqIGppdC9KSVQuaDoKKyAgICAgICAgKiBq
aXQvSklUVGh1bmtzLmNwcDoKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpleGlzdGluZ0NUSVN0
dWIpOgorICAgICAgICAoSlNDOjpKSVRUaHVua3M6OmN0aVNsb3dQYXRoRnVuY3Rpb25TdHViKToK
KyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjpwcmVpbml0aWFsaXplRXh0cmFDVElUaHVua3MpOgor
ICAgICAgICAqIGppdC9KSVRUaHVua3MuaDoKKyAgICAgICAgKiBqaXQvU2xvd1BhdGhDYWxsLmNw
cDogQWRkZWQuCisgICAgICAgIChKU0M6OkpJVFNsb3dQYXRoQ2FsbDo6Y2FsbCk6CisgICAgICAg
IChKU0M6OkpJVFNsb3dQYXRoQ2FsbDo6Z2VuZXJhdGVUaHVuayk6CisgICAgICAgICogaml0L1Ns
b3dQYXRoQ2FsbC5oOgorICAgICAgICAqIGppdC9UaHVua0dlbmVyYXRvcnMuY3BwOgorICAgICAg
ICAoSlNDOjpoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpoYW5kbGVF
eGNlcHRpb25XaXRoQ2FsbEZyYW1lUm9sbGJhY2tHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpw
b3BUaHVua1N0YWNrUHJlc2VydmVzQW5kSGFuZGxlRXhjZXB0aW9uR2VuZXJhdG9yKToKKyAgICAg
ICAgKiBqaXQvVGh1bmtHZW5lcmF0b3JzLmg6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93
UGF0aHMuaDoKKyAgICAgICAgKiBydW50aW1lL1Nsb3dQYXRoRnVuY3Rpb24uaDogQWRkZWQuCisg
ICAgICAgICogcnVudGltZS9WTS5jcHA6CisgICAgICAgIChKU0M6OlZNOjpWTSk6CisKIDIwMjEt
MDUtMTEgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBDb25z
ZXJ2YXRpdmVSb290cyB0cmlnZ2VycyBwYWdlIGRlbWFuZCBvbiBTcGVlZG9tZXRlcgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjc3MzEyKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMDYz
LDYgKzEwNjMsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBCiAg
ICAgcnVudGltZS9TY3JpcHRFeGVjdXRhYmxlLmgKICAgICBydW50aW1lL1NjcmlwdEZldGNoUGFy
YW1ldGVycy5oCiAgICAgcnVudGltZS9TY3JpcHRGZXRjaGVyLmgKKyAgICBydW50aW1lL1Nsb3dQ
YXRoRnVuY3Rpb24uaAogICAgIHJ1bnRpbWUvU2xvd1BhdGhSZXR1cm5UeXBlLmgKICAgICBydW50
aW1lL1NtYWxsU3RyaW5ncy5oCiAgICAgcnVudGltZS9Tb3VyY2VPcmlnaW4uaApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjc3MzEyKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02NzYsNiArNjc2LDcgQEAg
aml0L1JlZ2lzdGVyU2V0LmNwcAogaml0L1JlcGF0Y2guY3BwCiBqaXQvU2NyYXRjaFJlZ2lzdGVy
QWxsb2NhdG9yLmNwcAogaml0L1NldHVwVmFyYXJnc0ZyYW1lLmNwcAoraml0L1Nsb3dQYXRoQ2Fs
bC5jcHAKIGppdC9UYWdSZWdpc3RlcnNNb2RlLmNwcAogaml0L1RlbXBSZWdpc3RlclNldC5jcHAK
IGppdC9UaHVua0dlbmVyYXRvcnMuY3BwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjc3MzEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTE5ODgsNiAr
MTk4OCw3IEBACiAJCUZFNzQ5N0U2MjA5MDAxQjEwMDAzNTY1QiAvKiBKU0NQdHJUYWcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFNzQ5N0U1MjA5MDAx
QjAwMDAzNTY1QiAvKiBKU0NQdHJUYWcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlGRTdDNDE5NjFCOTdGQzRCMDBGNEQ1OTggLyogUGluZ1BvbmdT
dGFja092ZXJmbG93VGVzdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRURBNTBENDFCOTdGNDQyMDA5QTNCNEYgLyogUGluZ1BvbmdTdGFja092ZXJm
bG93VGVzdC5jcHAgKi87IH07CiAJCUZFODBDMTk3MUQ3NzVDREQwMDg1MTBDMCAvKiBDYXRjaFNj
b3BlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRTgw
QzE5NjFENzc1QjI3MDA4NTEwQzAgLyogQ2F0Y2hTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUZFOEMwMzEyMjY0QTY5MTEwMDFBNDRBRCAv
KiBTbG93UGF0aEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGRThDMDMxMTI2NEE2OTEwMDAxQTQ0QUQgLyogU2xvd1BhdGhGdW5jdGlvbi5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUZFOERF
NTRCMjNBQzFEQUQwMDVDOTE0MiAvKiBDYWNoZWFibGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGRThERTU0QTIzQUMxREFEMDA1Qzkx
NDIgLyogQ2FjaGVhYmxlSWRlbnRpZmllci5oICovOyB9OwogCQlGRThERTU0RDIzQUMxRTg2MDA1
QzkxNDIgLyogQ2FjaGVhYmxlSWRlbnRpZmllcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEZFOERFNTRDMjNBQzFFODYwMDVDOTE0MiAvKiBD
YWNoZWFibGVJZGVudGlmaWVySW5saW5lcy5oICovOyB9OwogCQlGRTkxMkI0RjI1MzExOTMzMDBG
QUJEREYgLyogQWJzdHJhY3RTbG90VmlzaXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkU5MTJCNEUyNTMxMTkzMzAwRkFCRERGIC8qIEFic3RyYWN0
U2xvdFZpc2l0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNDAxMCw2ICs0MDExLDcgQEAKIAkJNkEzOENGQTcxRTMyQjU4QjAwNjAyMDZGIC8q
IEFzeW5jU3RhY2tUcmFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBBc3luY1N0YWNrVHJhY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QTM4
Q0ZBODFFMzJCNThCMDA2MDIwNkYgLyogQXN5bmNTdGFja1RyYWNlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFzeW5jU3RhY2tUcmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2QUQyQ0I0QzE5QjkxNDAxMDAwNjU3MTkgLyogRGVidWdnZXJFdmFsRW5hYmxl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWJ1Z2dlckV2YWxFbmFibGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZCNzMxQ0MwMjY0N0E4MzcwMDE0NjQ2
RiAvKiBTbG93UGF0aENhbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2xvd1BhdGhDYWxsLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkJBOTNDOTU5MDQ4NEM1QkFEOTMxNkVB
IC8qIEpTU2NyaXB0RmV0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U1NjcmlwdEZldGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkJDQ0VDMDMy
NUQxRkEyNzAwMEYzOTFEIC8qIFZlcmlmaWVyU2xvdFZpc2l0b3JJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZlcmlmaWVyU2xvdFZpc2l0b3JJbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcwMTEzRDQ5MUE4REIwOTMwMDM4NDhDNCAvKiBJ
dGVyYXRvck9wZXJhdGlvbnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSXRlcmF0b3JPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTUzNjIsNiArNTM2NCw3IEBACiAJCUZFODBDMTk2MUQ3NzVCMjcwMDg1MTBDMCAvKiBDYXRjaFNj
b3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhdGNoU2NvcGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRkU4MEMxOTgxRDc3NUZCNDAwODUxMEMwIC8qIENh
dGNoU2NvcGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ2F0Y2hT
Y29wZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFODBDMTlBMUQ3NzY4RkQw
MDg1MTBDMCAvKiBFeGNlcHRpb25FdmVudExvY2F0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEV4Y2VwdGlvbkV2ZW50TG9jYXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGRThDMDMxMTI2NEE2OTEwMDAxQTQ0QUQgLyogU2xvd1BhdGhG
dW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTbG93UGF0aEZ1bmN0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOERFNTRBMjNBQzFEQUQwMDVD
OTE0MiAvKiBDYWNoZWFibGVJZGVudGlmaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlYWJsZUlkZW50aWZpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRkU4REU1NEMyM0FDMUU4NjAwNUM5MTQyIC8qIENhY2hlYWJsZUlkZW50aWZpZXJJbmxpbmVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlYWJsZUlkZW50aWZpZXJJ
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUZFOERFNTRFMjNBQzNBOEUw
MDVDOTE0MiAvKiBDYWNoZWFibGVJZGVudGlmaWVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENh
Y2hlYWJsZUlkZW50aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjMw
Miw2ICs2MzA1LDcgQEAKIAkJCQkwRjI0RTU0QjE3RUUyNzQ5MDBBQkIyMTcgLyogU2NyYXRjaFJl
Z2lzdGVyQWxsb2NhdG9yLmggKi8sCiAJCQkJMEZFRTk4NDIxQTg5MjI3NTAwNzU0RTkzIC8qIFNl
dHVwVmFyYXJnc0ZyYW1lLmNwcCAqLywKIAkJCQkwRkVFOTg0MDFBODg2NUI2MDA3NTRFOTMgLyog
U2V0dXBWYXJhcmdzRnJhbWUuaCAqLywKKwkJCQk2QjczMUNDMDI2NDdBODM3MDAxNDY0NkYgLyog
U2xvd1BhdGhDYWxsLmNwcCAqLywKIAkJCQlBNzA5RjJFRjE3QTBBQzA0MDA1MTJFOTggLyogU2xv
d1BhdGhDYWxsLmggKi8sCiAJCQkJRTNGMjNBN0IxRUNGMTNFNTAwOTc4RDk5IC8qIFNuaXBwZXQu
aCAqLywKIAkJCQlGRTE4N0EwQzFDMDJFQkE3MDAzOEJCQ0EgLyogU25pcHBldE9wZXJhbmQuaCAq
LywKQEAgLTc4MzYsNiArNzg0MCw3IEBACiAJCQkJQTcyOTlEQTAxN0QxMjg0ODAwNUY1RkY5IC8q
IFNldFByb3RvdHlwZS5oICovLAogCQkJCTBGMkI2NkQ2MTdCNkI1QUIwMEE3QUUzRiAvKiBTaW1w
bGVUeXBlZEFycmF5Q29udHJvbGxlci5jcHAgKi8sCiAJCQkJMEYyQjY2RDcxN0I2QjVBQjAwQTdB
RTNGIC8qIFNpbXBsZVR5cGVkQXJyYXlDb250cm9sbGVyLmggKi8sCisJCQkJRkU4QzAzMTEyNjRB
NjkxMDAwMUE0NEFEIC8qIFNsb3dQYXRoRnVuY3Rpb24uaCAqLywKIAkJCQkwRjVCNEEzMjFDODRG
MEQ2MDBGMUIxN0UgLyogU2xvd1BhdGhSZXR1cm5UeXBlLmggKi8sCiAJCQkJOTMzMDNGRTgwRTZB
NzJCNTAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5jcHAgKi8sCiAJCQkJOTMzMDNGRUEwRTZBNzJD
MDAwNzg2RTZBIC8qIFNtYWxsU3RyaW5ncy5oICovLApAQCAtMTAyNDIsNiArMTAyNDcsNyBAQAog
CQkJCTg2RTNDNjEyMTY3QkFCRDcwMDZENzYwQSAvKiBKU1ZhbHVlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NkUzQzYxQjE2N0JBQkVFMDA2RDc2MEEgLyogSlNWYWx1ZUludGVybmFsLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1M0UxRjhGODIxNTQ3MTVBMDAwMUREQkMgLyogSlNWYWx1ZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUZFOEMwMzEyMjY0QTY5MTEwMDFBNDRBRCAvKiBTbG93UGF0
aEZ1bmN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzQyQzBFMTZGNUNEMDBCMzQ0NjAg
LyogSlNWYWx1ZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFM0M2MTUxNjdCQUJENzAwNkQ3
NjBBIC8qIEpTVmlydHVhbE1hY2hpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2RTNDNjFEMTY3
QkFCRUUwMDZENzYwQSAvKiBKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9jay5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suaAkocmV2
aXNpb24gMjc3MzEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5oCSh3b3JraW5nIGNvcHkpCkBAIC05MTUsNiArOTE1LDggQEAgcHVibGljOgogICAgIE1ldGFk
YXRhVGFibGUqIG1ldGFkYXRhVGFibGUoKSB7IHJldHVybiBtX21ldGFkYXRhLmdldCgpOyB9CiAg
ICAgY29uc3Qgdm9pZCogaW5zdHJ1Y3Rpb25zUmF3UG9pbnRlcigpIHsgcmV0dXJuIG1faW5zdHJ1
Y3Rpb25zUmF3UG9pbnRlcjsgfQogCisgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkluc3Ry
dWN0aW9uc1Jhd1BvaW50ZXIoKSB7IHJldHVybiBPQkpFQ1RfT0ZGU0VUT0YoQ29kZUJsb2NrLCBt
X2luc3RydWN0aW9uc1Jhd1BvaW50ZXIpOyB9CisKICAgICBib29sIGxvb3BIaW50c0FyZUVsaWdp
YmxlRm9yRnV6emluZ0Vhcmx5UmV0dXJuKCkKICAgICB7CiAgICAgICAgIC8vIFNvbWUgYnVpbHRp
bnMgYXJlIHJlcXVpcmVkIHRvIGFsd2F5cyBjb21wbGV0ZSB0aGUgbG9vcHMgdGhleSBydW4uCklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhp
Y0FjY2Vzcy5jcHAJKHJldmlzaW9uIDI3NzMxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQw
LDcgQEAKICNpbmNsdWRlICJTdHJ1Y3R1cmVTdHViQ2xlYXJpbmdXYXRjaHBvaW50LmgiCiAjaW5j
bHVkZSAiU3RydWN0dXJlU3R1YkluZm8uaCIKICNpbmNsdWRlICJTdXBlclNhbXBsZXIuaCIKKyNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlIDx3dGYvQ29tbWFQcmludGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3REdW1wLmg+CiAKQEAgLTIyNiw2ICsyMjcsMTQgQEAgdm9pZCBB
Y2Nlc3NHZW5lcmF0aW9uU3RhdGU6OmVtaXRFeHBsaWNpdAogICAgICAgICAgICAgICAgIGxpbmtC
dWZmZXIubGluayhqdW1wVG9PU1JFeGl0RXhjZXB0aW9uSGFuZGxlciwgb3JpZ2luYWxIYW5kbGVy
Lm5hdGl2ZUNvZGUpOwogICAgICAgICAgICAgfSk7CiAgICAgfSBlbHNlIHsKKyNpZiBFTkFCTEUo
RVhUUkFfQ1RJX1RIVU5LUykKKyAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGp1bXBUb0V4Y2Vw
dGlvbkhhbmRsZXIgPSBqaXQtPmp1bXAoKTsKKyAgICAgICAgVk0qIHZtID0gJm1fdm07CisgICAg
ICAgIGppdC0+YWRkTGlua1Rhc2soCisgICAgICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtC
dWZmZXIpIHsKKyAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoanVtcFRvRXhjZXB0aW9u
SGFuZGxlciwgQ29kZUxvY2F0aW9uTGFiZWwodm0tPmdldENUSVN0dWIoaGFuZGxlRXhjZXB0aW9u
R2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKKyAgICAgICAgICAgIH0pOwor
I2Vsc2UKICAgICAgICAgaml0LT5zZXR1cEFyZ3VtZW50czxkZWNsdHlwZShvcGVyYXRpb25Mb29r
dXBFeGNlcHRpb25IYW5kbGVyKT4oQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKCZtX3ZtKSk7
CiAgICAgICAgIGppdC0+cHJlcGFyZUNhbGxPcGVyYXRpb24obV92bSk7CiAgICAgICAgIENDYWxs
SGVscGVyczo6Q2FsbCBsb29rdXBFeGNlcHRpb25IYW5kbGVyQ2FsbCA9IGppdC0+Y2FsbChPcGVy
YXRpb25QdHJUYWcpOwpAQCAtMjM0LDYgKzI0Myw3IEBAIHZvaWQgQWNjZXNzR2VuZXJhdGlvblN0
YXRlOjplbWl0RXhwbGljaXQKICAgICAgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsobG9va3Vw
RXhjZXB0aW9uSGFuZGxlckNhbGwsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0
aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIGpp
dC0+anVtcFRvRXhjZXB0aW9uSGFuZGxlcihtX3ZtKTsKKyNlbmRpZgogICAgIH0KIH0KIApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAJKHJldmlz
aW9uIDI3NzMxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNiArMTM3LDcgQEAgdm9pZCBKSVRDb21waWxlcjo6
Y29tcGlsZUJvZHkoKQogCiB2b2lkIEpJVENvbXBpbGVyOjpjb21waWxlRXhjZXB0aW9uSGFuZGxl
cnMoKQogeworI2lmICFFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKICAgICBpZiAoIW1fZXhjZXB0
aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLmVtcHR5KCkpIHsKICAgICAgICAgbV9leGNl
cHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2subGluayh0aGlzKTsKIApAQCAtMTY1LDYg
KzE2Niw3IEBAIHZvaWQgSklUQ29tcGlsZXI6OmNvbXBpbGVFeGNlcHRpb25IYW5kbGUKIAogICAg
ICAgICBqdW1wVG9FeGNlcHRpb25IYW5kbGVyKHZtKCkpOwogICAgIH0KKyNlbmRpZiAvLyBFTkFC
TEUoRVhUUkFfQ1RJX1RIVU5LUykKIH0KIAogdm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVm
ZmVyJiBsaW5rQnVmZmVyKQpAQCAtMjgxLDcgKzI4MywxNCBAQCB2b2lkIEpJVENvbXBpbGVyOjps
aW5rKExpbmtCdWZmZXImIGxpbmtCCiAgICAgICAgICAgICBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8
SlNJbnRlcm5hbFB0clRhZz4ocmVjb3JkLnNsb3dQYXRoKSwKICAgICAgICAgICAgIGxpbmtCdWZm
ZXIubG9jYXRpb25PZk5lYXJDYWxsPEpTSW50ZXJuYWxQdHJUYWc+KHJlY29yZC5jYWxsKSk7CiAg
ICAgfQotICAgIAorCisjaWYgRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCisgICAgaWYgKCFtX2V4
Y2VwdGlvbkNoZWNrcy5lbXB0eSgpKQorICAgICAgICBsaW5rQnVmZmVyLmxpbmsobV9leGNlcHRp
b25DaGVja3MsIENvZGVMb2NhdGlvbkxhYmVsKHZtKCkuZ2V0Q1RJU3R1YihoYW5kbGVFeGNlcHRp
b25HZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOworICAgIGlmICghbV9leGNl
cHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2suZW1wdHkoKSkKKyAgICAgICAgbGlua0J1
ZmZlci5saW5rKG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLCBDb2RlTG9j
YXRpb25MYWJlbCh2bSgpLmdldENUSVN0dWIoaGFuZGxlRXhjZXB0aW9uV2l0aENhbGxGcmFtZVJv
bGxiYWNrR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKKyNlbmRpZiAvLyBF
TkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKwogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRU
aHVua1B0clRhZz4gb3NyRXhpdFRodW5rID0gdm0oKS5nZXRDVElTdHViKG9zckV4aXRHZW5lcmF0
aW9uVGh1bmtHZW5lcmF0b3IpOwogICAgIGF1dG8gdGFyZ2V0ID0gQ29kZUxvY2F0aW9uTGFiZWw8
SklUVGh1bmtQdHJUYWc+KG9zckV4aXRUaHVuay5jb2RlKCkpOwogICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBtX29zckV4aXQuc2l6ZSgpOyArK2kpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgJKHJldmlzaW9uIDI3NzMxMikKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuaAkod29ya2luZyBjb3B5KQpAQCAt
MzIzLDcgKzMyMyw3IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENhbGxMaW5rUmVjb3JkPiBtX2Nh
bGxzOwogICAgIEp1bXBMaXN0IG1fZXhjZXB0aW9uQ2hlY2tzOwogICAgIEp1bXBMaXN0IG1fZXhj
ZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrOwotICAgIAorCiAgICAgVmVjdG9yPExh
YmVsPiBtX2Jsb2NrSGVhZHM7CiAKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21waWxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TENvbXBpbGUuY3BwCShyZXZpc2lvbiAyNzczMTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbXBpbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw3IEBACiAjaW5j
bHVkZSAiRlRMSklUQ29kZS5oIgogI2luY2x1ZGUgIkxpbmtCdWZmZXIuaCIKICNpbmNsdWRlICJQ
Q1RvQ29kZU9yaWdpbk1hcC5oIgorI2luY2x1ZGUgIlRodW5rR2VuZXJhdG9ycy5oIgogI2luY2x1
ZGUgPHd0Zi9SZWN1cnNhYmxlTGFtYmRhLmg+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2Ug
RlRMIHsKQEAgLTEyNSw2ICsxMjYsMTQgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSwgU2Fm
ZXBvaW50OjpSZQogCiAgICAgLy8gRW1pdCB0aGUgZXhjZXB0aW9uIGhhbmRsZXIuCiAgICAgKnN0
YXRlLmV4Y2VwdGlvbkhhbmRsZXIgPSBqaXQubGFiZWwoKTsKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJ
X1RIVU5LUykKKyAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaGFuZGxlciA9IGppdC5qdW1wKCk7Cisg
ICAgVk0qIHZtUHRyID0gJnZtOworICAgIGppdC5hZGRMaW5rVGFzaygKKyAgICAgICAgWz1dIChM
aW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAgICAgICBsaW5rQnVmZmVyLmxpbmsoaGFu
ZGxlciwgQ29kZUxvY2F0aW9uTGFiZWwodm1QdHItPmdldENUSVN0dWIoaGFuZGxlRXhjZXB0aW9u
R2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKKyAgICAgICAgfSk7CisjZWxz
ZQogICAgIGppdC5jb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih2
bS50b3BFbnRyeUZyYW1lKTsKICAgICBqaXQubW92ZShNYWNyb0Fzc2VtYmxlcjo6VHJ1c3RlZElt
bVB0cigmdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwogICAgIGppdC5wcmVwYXJlQ2FsbE9w
ZXJhdGlvbih2bSk7CkBAIC0xMzQsNiArMTQzLDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0
ZSwgU2FmZXBvaW50OjpSZQogICAgICAgICBbPV0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsK
ICAgICAgICAgICAgIGxpbmtCdWZmZXIubGluayhjYWxsLCBGdW5jdGlvblB0cjxPcGVyYXRpb25Q
dHJUYWc+KG9wZXJhdGlvbkxvb2t1cEV4Y2VwdGlvbkhhbmRsZXIpKTsKICAgICAgICAgfSk7Cisj
ZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCiAKICAgICBzdGF0ZS5maW5hbGl6ZXIt
PmIzQ29kZUxpbmtCdWZmZXIgPSBtYWtlVW5pcXVlPExpbmtCdWZmZXI+KGppdCwgY29kZUJsb2Nr
LCBMaW5rQnVmZmVyOjpQcm9maWxlOjpGVEwsIEpJVENvbXBpbGF0aW9uQ2FuRmFpbCk7CiAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTGluay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkocmV2aXNpb24gMjc3MzEyKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMaW5rLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ1LDYgKzE0NSw5IEBAIHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBq
aXQuc3RvcmVQdHIoR1BSSW5mbzo6Y2FsbEZyYW1lUmVnaXN0ZXIsICZ2bS50b3BDYWxsRnJhbWUp
OwogICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIGNhbGxBcml0eUNoZWNrID0gaml0LmNh
bGwoT3BlcmF0aW9uUHRyVGFnKTsKIAorI2lmIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorICAg
ICAgICAgICAgYXV0byBqdW1wVG9FeGNlcHRpb25IYW5kbGVyID0gaml0LmJyYW5jaDMyKENDYWxs
SGVscGVyczo6TGVzc1RoYW4sIEdQUkluZm86OnJldHVyblZhbHVlR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMigwKSk7CisjZWxzZQogICAgICAgICAgICAgYXV0byBub0V4Y2VwdGlvbiA9
IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JFcXVhbCwgR1BSSW5mbzo6
cmV0dXJuVmFsdWVHUFIsIENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDApKTsKICAgICAgICAg
ICAgIGppdC5jb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVTYXZlc0J1ZmZlcih2bS50
b3BFbnRyeUZyYW1lKTsKICAgICAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3Rl
ZEltbVB0cigmdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOwpAQCAtMTUyLDYgKzE1NSw3IEBA
IHZvaWQgbGluayhTdGF0ZSYgc3RhdGUpCiAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkNhbGwg
Y2FsbExvb2t1cEV4Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUgPSBqaXQuY2FsbChPcGVy
YXRpb25QdHJUYWcpOwogICAgICAgICAgICAgaml0Lmp1bXBUb0V4Y2VwdGlvbkhhbmRsZXIodm0p
OwogICAgICAgICAgICAgbm9FeGNlcHRpb24ubGluaygmaml0KTsKKyNlbmRpZiAvLyBFTkFCTEUo
RVhUUkFfQ1RJX1RIVU5LUykKIAogICAgICAgICAgICAgaWYgKEFTU0VSVF9FTkFCTEVEKSB7CiAg
ICAgICAgICAgICAgICAgaml0LmxvYWQ2NCh2bS5hZGRyZXNzT2ZFeGNlcHRpb24oKSwgR1BSSW5m
bzo6cmVnVDEpOwpAQCAtMTc0LDcgKzE3OCwxMSBAQCB2b2lkIGxpbmsoU3RhdGUmIHN0YXRlKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGxpbmtC
dWZmZXItPmxpbmsoY2FsbEFyaXR5Q2hlY2ssIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4o
Y29kZUJsb2NrLT5pc0NvbnN0cnVjdG9yKCkgPyBvcGVyYXRpb25Db25zdHJ1Y3RBcml0eUNoZWNr
IDogb3BlcmF0aW9uQ2FsbEFyaXR5Q2hlY2spKTsKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5L
UykKKyAgICAgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoanVtcFRvRXhjZXB0aW9uSGFuZGxlciwg
Q29kZUxvY2F0aW9uTGFiZWwodm0uZ2V0Q1RJU3R1YihoYW5kbGVFeGNlcHRpb25XaXRoQ2FsbEZy
YW1lUm9sbGJhY2tHZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxOb1B0clRhZz4oKSkpOworI2Vsc2UK
ICAgICAgICAgICAgIGxpbmtCdWZmZXItPmxpbmsoY2FsbExvb2t1cEV4Y2VwdGlvbkhhbmRsZXJG
cm9tQ2FsbGVyRnJhbWUsIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4ob3BlcmF0aW9uTG9v
a3VwRXhjZXB0aW9uSGFuZGxlckZyb21DYWxsZXJGcmFtZSkpOworI2VuZGlmCiAgICAgICAgICAg
ICBsaW5rQnVmZmVyLT5saW5rKGNhbGxBcml0eUZpeHVwLCBGdW5jdGlvblB0cjxKSVRUaHVua1B0
clRhZz4odm0uZ2V0Q1RJU3R1Yihhcml0eUZpeHVwR2VuZXJhdG9yKS5jb2RlKCkpKTsKICAgICAg
ICAgICAgIGxpbmtCdWZmZXItPmxpbmsobWFpblBhdGhKdW1wcywgc3RhdGUuZ2VuZXJhdGVkRnVu
Y3Rpb24pOwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZp
c2lvbiAyNzczMTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTkwNyw2ICs5MDcsMTIgQEAgQ29tcGlsYXRpb25SZXN1bHQgSklUOjpsaW5r
KCkKICAgICAgICAgaGFuZGxlci5uYXRpdmVDb2RlID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZjxF
eGNlcHRpb25IYW5kbGVyUHRyVGFnPihtX2xhYmVsc1toYW5kbGVyLnRhcmdldF0pOwogICAgIH0K
IAorI2lmIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorICAgIGlmICghbV9leGNlcHRpb25DaGVj
a3MuZW1wdHkoKSkKKyAgICAgICAgcGF0Y2hCdWZmZXIubGluayhtX2V4Y2VwdGlvbkNoZWNrcywg
Q29kZUxvY2F0aW9uTGFiZWwodm0oKS5nZXRDVElTdHViKGhhbmRsZUV4Y2VwdGlvbkdlbmVyYXRv
cikucmV0YWdnZWRDb2RlPE5vUHRyVGFnPigpKSk7CisgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNr
c1dpdGhDYWxsRnJhbWVSb2xsYmFjay5lbXB0eSgpKQorICAgICAgICBwYXRjaEJ1ZmZlci5saW5r
KG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxiYWNrLCBDb2RlTG9jYXRpb25MYWJl
bCh2bSgpLmdldENUSVN0dWIoaGFuZGxlRXhjZXB0aW9uV2l0aENhbGxGcmFtZVJvbGxiYWNrR2Vu
ZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKKyNlbmRpZgogCiAgICAgZm9yIChh
dXRvJiByZWNvcmQgOiBtX25lYXJDYWxscykgewogICAgICAgICBpZiAocmVjb3JkLmNhbGxlZSkK
QEAgLTkxNiw3ICs5MjIsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OmxpbmsoKQogICAgICAg
ICBpZiAocmVjb3JkLmNhbGxlZSkKICAgICAgICAgICAgIHBhdGNoQnVmZmVyLmxpbmsocmVjb3Jk
LmZyb20sIHJlY29yZC5jYWxsZWUpOwogICAgIH0KLSAgICAKKwogICAgIGZpbmFsaXplSW5saW5l
Q2FjaGVzKG1fZ2V0QnlJZHMsIHBhdGNoQnVmZmVyKTsKICAgICBmaW5hbGl6ZUlubGluZUNhY2hl
cyhtX2dldEJ5VmFscywgcGF0Y2hCdWZmZXIpOwogICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1f
Z2V0QnlJZHNXaXRoVGhpcywgcGF0Y2hCdWZmZXIpOwpAQCAtOTI4LDcgKzkzNCwxMSBAQCBDb21w
aWxhdGlvblJlc3VsdCBKSVQ6OmxpbmsoKQogICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1fcHJp
dmF0ZUJyYW5kQWNjZXNzZXMsIHBhdGNoQnVmZmVyKTsKIAogICAgIGlmIChtX2J5VmFsQ29tcGls
YXRpb25JbmZvLnNpemUoKSkgeworI2lmIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorICAgICAg
ICBDb2RlTG9jYXRpb25MYWJlbCBleGNlcHRpb25IYW5kbGVyKHZtKCkuZ2V0Q1RJU3R1YihoYW5k
bGVFeGNlcHRpb25HZW5lcmF0b3IpLnJldGFnZ2VkQ29kZTxFeGNlcHRpb25IYW5kbGVyUHRyVGFn
PigpKTsKKyNlbHNlCiAgICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEV4Y2VwdGlvbkhhbmRsZXJQ
dHJUYWc+IGV4Y2VwdGlvbkhhbmRsZXIgPSBwYXRjaEJ1ZmZlci5sb2NhdGlvbk9mPEV4Y2VwdGlv
bkhhbmRsZXJQdHJUYWc+KG1fZXhjZXB0aW9uSGFuZGxlcik7CisjZW5kaWYKIAogICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGJ5VmFsQ29tcGlsYXRpb25JbmZvIDogbV9ieVZhbENvbXBpbGF0aW9u
SW5mbykgewogICAgICAgICAgICAgUGF0Y2hhYmxlSnVtcCBwYXRjaGFibGVOb3RJbmRleEp1bXAg
PSBieVZhbENvbXBpbGF0aW9uSW5mby5ub3RJbmRleEp1bXA7CkBAIC0xMDE5LDYgKzEwMjksNyBA
QCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZhdGVDb21waWxlKEpJCiAKIHZvaWQgSklUOjpw
cml2YXRlQ29tcGlsZUV4Y2VwdGlvbkhhbmRsZXJzKCkKIHsKKyNpZiAhRU5BQkxFKEVYVFJBX0NU
SV9USFVOS1MpCiAgICAgaWYgKCFtX2V4Y2VwdGlvbkNoZWNrc1dpdGhDYWxsRnJhbWVSb2xsYmFj
ay5lbXB0eSgpKSB7CiAgICAgICAgIG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJvbGxi
YWNrLmxpbmsodGhpcyk7CiAKQEAgLTEwNDMsNiArMTA1NCw3IEBAIHZvaWQgSklUOjpwcml2YXRl
Q29tcGlsZUV4Y2VwdGlvbkhhbmRsZXIKICAgICAgICAgbV9mYXJDYWxscy5hcHBlbmQoRmFyQ2Fs
bFJlY29yZChjYWxsKE9wZXJhdGlvblB0clRhZyksIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRh
Zz4ob3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlcikpKTsKICAgICAgICAganVtcFRvRXhj
ZXB0aW9uSGFuZGxlcih2bSgpKTsKICAgICB9CisjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9U
SFVOS1MpCiB9CiAKIHZvaWQgSklUOjpkb01haW5UaHJlYWRQcmVwYXJhdGlvbkJlZm9yZUNvbXBp
bGUoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCShyZXZpc2lvbiAyNzczMTIpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5oCSh3b3JraW5nIGNvcHkpCkBAIC05OTcsNyAr
OTk3LDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICAgICAgSnVtcExpc3QgbV9leGNlcHRpb25D
aGVja3M7CiAgICAgICAgIEp1bXBMaXN0IG1fZXhjZXB0aW9uQ2hlY2tzV2l0aENhbGxGcmFtZVJv
bGxiYWNrOworI2lmICFFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKICAgICAgICAgTGFiZWwgbV9l
eGNlcHRpb25IYW5kbGVyOworI2VuZGlmCiAKICAgICAgICAgdW5zaWduZWQgbV9nZXRCeUlkSW5k
ZXggeyBVSU5UX01BWCB9OwogICAgICAgICB1bnNpZ25lZCBtX2dldEJ5VmFsSW5kZXggeyBVSU5U
X01BWCB9OwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUVGh1bmtzLmNwcAkocmV2
aXNpb24gMjc3MzEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRUaHVua3MuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
Mi0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxMi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsOCArMjgsMTAgQEAKIAogI2lmIEVOQUJMRShKSVQpCiAK
KyNpbmNsdWRlICJDb21tb25TbG93UGF0aHMuaCIKICNpbmNsdWRlICJKSVRDb2RlLmgiCiAjaW5j
bHVkZSAiSlNDSlNWYWx1ZUlubGluZXMuaCIKKyNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKICNp
bmNsdWRlICJUaHVua0dlbmVyYXRvcnMuaCIKICNpbmNsdWRlICJWTS5oIgogCkBAIC0xNDEsMTIg
KzE0MywzNCBAQCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJCiBNYWNy
b0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJVFRodW5rczo6ZXhpc3RpbmdDVElT
dHViKFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvcikKIHsKICAgICBMb2NrSG9sZGVyIGxvY2tlciht
X2xvY2spOworICAgIHJldHVybiBleGlzdGluZ0NUSVN0dWIoZ2VuZXJhdG9yLCBOb0xvY2tpbmdO
ZWNlc3NhcnkpOworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IEpJ
VFRodW5rczo6ZXhpc3RpbmdDVElTdHViKFRodW5rR2VuZXJhdG9yIGdlbmVyYXRvciwgTm9Mb2Nr
aW5nTmVjZXNzYXJ5VGFnKQorewogICAgIENUSVN0dWJNYXA6Oml0ZXJhdG9yIGVudHJ5ID0gbV9j
dGlTdHViTWFwLmZpbmQoZ2VuZXJhdG9yKTsKICAgICBpZiAoZW50cnkgPT0gbV9jdGlTdHViTWFw
LmVuZCgpKQogICAgICAgICByZXR1cm4gTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRy
VGFnPigpOwogICAgIHJldHVybiBlbnRyeS0+dmFsdWU7CiB9CiAKKyNpZiBFTkFCTEUoRVhUUkFf
Q1RJX1RIVU5LUykKKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBKSVRU
aHVua3M6OmN0aVNsb3dQYXRoRnVuY3Rpb25TdHViKFZNJiB2bSwgU2xvd1BhdGhGdW5jdGlvbiBz
bG93UGF0aEZ1bmN0aW9uKQoreworICAgIExvY2tIb2xkZXIgbG9ja2VyKG1fbG9jayk7CisgICAg
YXV0byBrZXkgPSBiaXR3aXNlX2Nhc3Q8VGh1bmtHZW5lcmF0b3I+KHNsb3dQYXRoRnVuY3Rpb24p
OworICAgIENUSVN0dWJNYXA6OkFkZFJlc3VsdCBlbnRyeSA9IG1fY3RpU3R1Yk1hcC5hZGQoa2V5
LCBNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+KCkpOworICAgIGlmIChlbnRy
eS5pc05ld0VudHJ5KSB7CisgICAgICAgIC8vIENvbXBpbGF0aW9uIHRocmVhZCBjYW4gb25seSBy
ZXRyaWV2ZSBleGlzdGluZyBlbnRyaWVzLgorICAgICAgICBBU1NFUlQoIWlzQ29tcGlsYXRpb25U
aHJlYWQoKSk7CisgICAgICAgIGVudHJ5Lml0ZXJhdG9yLT52YWx1ZSA9IEpJVFNsb3dQYXRoQ2Fs
bDo6Z2VuZXJhdGVUaHVuayh2bSwgc2xvd1BhdGhGdW5jdGlvbik7CisgICAgfQorICAgIHJldHVy
biBlbnRyeS5pdGVyYXRvci0+dmFsdWU7Cit9CisKKyNlbmRpZiAvLyBFTkFCTEUoRVhUUkFfQ1RJ
X1RIVU5LUykKKwogc3RydWN0IEpJVFRodW5rczo6SG9zdEtleVNlYXJjaGVyIHsKICAgICBzdGF0
aWMgdW5zaWduZWQgaGFzaChjb25zdCBIb3N0RnVuY3Rpb25LZXkmIGtleSkgeyByZXR1cm4gV2Vh
a05hdGl2ZUV4ZWN1dGFibGVIYXNoOjpoYXNoKGtleSk7IH0KICAgICBzdGF0aWMgYm9vbCBlcXVh
bChjb25zdCBXZWFrPE5hdGl2ZUV4ZWN1dGFibGU+JiBhLCBjb25zdCBIb3N0RnVuY3Rpb25LZXkm
IGIpIHsgcmV0dXJuIFdlYWtOYXRpdmVFeGVjdXRhYmxlSGFzaDo6ZXF1YWwoYSwgYik7IH0KQEAg
LTIzMyw2ICsyNTcsMTAwIEBAIE5hdGl2ZUV4ZWN1dGFibGUqIEpJVFRodW5rczo6aG9zdEZ1bmN0
aW8KICAgICByZXR1cm4gaG9zdEZ1bmN0aW9uU3R1Yih2bSwgZnVuY3Rpb24sIGNhbGxIb3N0RnVu
Y3Rpb25Bc0NvbnN0cnVjdG9yLCBnZW5lcmF0b3IsIGludHJpbnNpYywgbnVsbHB0ciwgbmFtZSk7
CiB9CiAKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKwordm9pZCBKSVRUaHVua3M6OnBy
ZWluaXRpYWxpemVFeHRyYUNUSVRodW5rcyhWTSYgdm0pCit7CisgICAgaWYgKCFPcHRpb25zOjp1
c2VKSVQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlc2UgMyBzaG91bGQgYWx3YXlz
IGJlIGluaXRpYWxpemVkIGZpcnN0IGluIHRoZSBmb2xsb3dpbmcgb3JkZXIgYmVjYXVzZQorICAg
IC8vIHRoZSBvdGhlciB0aHVuayBnZW5lcmF0b3JzIHJlbHkgb24gdGhlc2UgYWxyZWFkeSBiZWlu
ZyBpbml0aWFsaXplZC4KKyAgICBjdGlTdHViKHZtLCBoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3Ip
OworICAgIGN0aVN0dWIodm0sIGhhbmRsZUV4Y2VwdGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja0dl
bmVyYXRvcik7CisgICAgY3RpU3R1Yih2bSwgcG9wVGh1bmtTdGFja1ByZXNlcnZlc0FuZEhhbmRs
ZUV4Y2VwdGlvbkdlbmVyYXRvcik7CisKKyNkZWZpbmUgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhf
Q0FMTF9ST1VUSU5FKG5hbWUpIGN0aVNsb3dQYXRoRnVuY3Rpb25TdHViKHZtLCBzbG93X3BhdGhf
IyNuYW1lKQorCisgICAgLy8gRnJvbSB0aGUgQmFzZWxpbmVKSVQgREVGSU5FX1NMT1dfT1AgbGlz
dDoKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoaW5fYnlfdmFsKTsK
KyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUobGVzcyk7CisgICAgSU5J
VF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGxlc3NlcSk7CisgICAgSU5JVF9CQVNF
TElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGdyZWF0ZXIpOworICAgIElOSVRfQkFTRUxJTkVf
U0xPV19QQVRIX0NBTExfUk9VVElORShncmVhdGVyZXEpOworICAgIElOSVRfQkFTRUxJTkVfU0xP
V19QQVRIX0NBTExfUk9VVElORShpc19jYWxsYWJsZSk7CisgICAgSU5JVF9CQVNFTElORV9TTE9X
X1BBVEhfQ0FMTF9ST1VUSU5FKGlzX2NvbnN0cnVjdG9yKTsKKyAgICBJTklUX0JBU0VMSU5FX1NM
T1dfUEFUSF9DQUxMX1JPVVRJTkUodHlwZW9mKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFU
SF9DQUxMX1JPVVRJTkUodHlwZW9mX2lzX29iamVjdCk7CisgICAgSU5JVF9CQVNFTElORV9TTE9X
X1BBVEhfQ0FMTF9ST1VUSU5FKHR5cGVvZl9pc19mdW5jdGlvbik7CisgICAgSU5JVF9CQVNFTElO
RV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHN0cmNhdCk7CisgICAgSU5JVF9CQVNFTElORV9TTE9X
X1BBVEhfQ0FMTF9ST1VUSU5FKHB1c2hfd2l0aF9zY29wZSk7CisgICAgSU5JVF9CQVNFTElORV9T
TE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGNyZWF0ZV9sZXhpY2FsX2Vudmlyb25tZW50KTsKKyAgICBJ
TklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoZ2V0X2J5X3ZhbF93aXRoX3RoaXMp
OworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShwdXRfYnlfaWRfd2l0
aF90aGlzKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUocHV0X2J5
X3ZhbF93aXRoX3RoaXMpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElO
RShyZXNvbHZlX3Njb3BlX2Zvcl9ob2lzdGluZ19mdW5jX2RlY2xfaW5fZXZhbCk7CisgICAgSU5J
VF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGRlZmluZV9kYXRhX3Byb3BlcnR5KTsK
KyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoZGVmaW5lX2FjY2Vzc29y
X3Byb3BlcnR5KTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUodW5y
ZWFjaGFibGUpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORSh0aHJv
d19zdGF0aWNfZXJyb3IpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElO
RShuZXdfYXJyYXlfd2l0aF9zcHJlYWQpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NB
TExfUk9VVElORShuZXdfYXJyYXlfYnVmZmVyKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFU
SF9DQUxMX1JPVVRJTkUoc3ByZWFkKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxM
X1JPVVRJTkUoZ2V0X2VudW1lcmFibGVfbGVuZ3RoKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1df
UEFUSF9DQUxMX1JPVVRJTkUoaGFzX2VudW1lcmFibGVfcHJvcGVydHkpOworICAgIElOSVRfQkFT
RUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShnZXRfcHJvcGVydHlfZW51bWVyYXRvcik7Cisg
ICAgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHRvX2luZGV4X3N0cmluZyk7
CisgICAgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGNyZWF0ZV9kaXJlY3Rf
YXJndW1lbnRzKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoY3Jl
YXRlX3Njb3BlZF9hcmd1bWVudHMpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExf
Uk9VVElORShjcmVhdGVfY2xvbmVkX2FyZ3VtZW50cyk7CisgICAgSU5JVF9CQVNFTElORV9TTE9X
X1BBVEhfQ0FMTF9ST1VUSU5FKGNyZWF0ZV9hcmd1bWVudHNfYnV0dGVyZmx5KTsKKyAgICBJTklU
X0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoY3JlYXRlX3Jlc3QpOworICAgIElOSVRf
QkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShjcmVhdGVfcHJvbWlzZSk7CisgICAgSU5J
VF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKG5ld19wcm9taXNlKTsKKyAgICBJTklU
X0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoY3JlYXRlX2dlbmVyYXRvcik7CisgICAg
SU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGNyZWF0ZV9hc3luY19nZW5lcmF0
b3IpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShuZXdfZ2VuZXJh
dG9yKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUocG93KTsKKwor
ICAgIC8vIEZyb20gdGhlIEJhc2VsaW5lSklUIERFRklORV9TTE9XQ0FTRV9TTE9XX09QIGxpc3Q6
CisgICAgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHVuc2lnbmVkKTsKKyAg
ICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoaW5jKTsKKyAgICBJTklUX0JB
U0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoZGVjKTsKKyAgICBJTklUX0JBU0VMSU5FX1NM
T1dfUEFUSF9DQUxMX1JPVVRJTkUoYml0bm90KTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFU
SF9DQUxMX1JPVVRJTkUoYml0YW5kKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxM
X1JPVVRJTkUoYml0b3IpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElO
RShiaXR4b3IpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShsc2hp
ZnQpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShyc2hpZnQpOwor
ICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORSh1cnNoaWZ0KTsKKyAgICBJ
TklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoZGl2KTsKKyAgICBJTklUX0JBU0VM
SU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoY3JlYXRlX3RoaXMpOworICAgIElOSVRfQkFTRUxJ
TkVfU0xPV19QQVRIX0NBTExfUk9VVElORShjcmVhdGVfcHJvbWlzZSk7CisgICAgSU5JVF9CQVNF
TElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKGNyZWF0ZV9nZW5lcmF0b3IpOworICAgIElOSVRf
QkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShjcmVhdGVfYXN5bmNfZ2VuZXJhdG9yKTsK
KyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUodG9fdGhpcyk7CisgICAg
SU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHRvX3ByaW1pdGl2ZSk7CisgICAg
SU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHRvX251bWJlcik7CisgICAgSU5J
VF9CQVNFTElORV9TTE9XX1BBVEhfQ0FMTF9ST1VUSU5FKHRvX251bWVyaWMpOworICAgIElOSVRf
QkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORSh0b19zdHJpbmcpOworICAgIElOSVRfQkFT
RUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORSh0b19vYmplY3QpOworICAgIElOSVRfQkFTRUxJ
TkVfU0xPV19QQVRIX0NBTExfUk9VVElORShub3QpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19Q
QVRIX0NBTExfUk9VVElORShzdHJpY3RlcSk7CisgICAgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhf
Q0FMTF9ST1VUSU5FKG5zdHJpY3RlcSk7CisgICAgSU5JVF9CQVNFTElORV9TTE9XX1BBVEhfQ0FM
TF9ST1VUSU5FKGdldF9kaXJlY3RfcG5hbWUpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRI
X0NBTExfUk9VVElORShnZXRfcHJvdG90eXBlX29mKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1df
UEFUSF9DQUxMX1JPVVRJTkUoaGFzX2VudW1lcmFibGVfc3RydWN0dXJlX3Byb3BlcnR5KTsKKyAg
ICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJTkUoaGFzX293bl9zdHJ1Y3R1cmVf
cHJvcGVydHkpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9VVElORShpbl9z
dHJ1Y3R1cmVfcHJvcGVydHkpOworICAgIElOSVRfQkFTRUxJTkVfU0xPV19QQVRIX0NBTExfUk9V
VElORShyZXNvbHZlX3Njb3BlKTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JP
VVRJTkUoY2hlY2tfdGR6KTsKKyAgICBJTklUX0JBU0VMSU5FX1NMT1dfUEFUSF9DQUxMX1JPVVRJ
TkUodG9fcHJvcGVydHlfa2V5KTsKKyN1bmRlZiBJTklUX0JBU0VMSU5FX1JPVVRJTkUKK30KKwor
I2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorCiB9IC8vIG5hbWVzcGFjZSBKU0MK
IAogI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVFRodW5rcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
VGh1bmtzLmgJKHJldmlzaW9uIDI3NzMxMikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklUVGh1bmtzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDEyLTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEyLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAi
Q2FsbERhdGEuaCIKICNpbmNsdWRlICJJbnRyaW5zaWMuaCIKICNpbmNsdWRlICJNYWNyb0Fzc2Vt
YmxlckNvZGVSZWYuaCIKKyNpbmNsdWRlICJTbG93UGF0aEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAi
VGh1bmtHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJXZWFrLmgiCiAjaW5jbHVkZSAiV2Vha0hhbmRs
ZU93bmVyLmgiCkBAIC01Miw2ICs1MywxMCBAQCBwdWJsaWM6CiAgICAgSklUVGh1bmtzKCk7CiAg
ICAgfkpJVFRodW5rcygpIGZpbmFsOwogCisjaWYgRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCisg
ICAgdm9pZCBwcmVpbml0aWFsaXplRXh0cmFDVElUaHVua3MoVk0mKTsKKyNlbmRpZgorCiAgICAg
TWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDYWxsKFZNJik7
CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpJVFRodW5rUHRyVGFnPiBjdGlOYXRpdmVDb25z
dHJ1Y3QoVk0mKTsKICAgICBNYWNyb0Fzc2VtYmxlckNvZGVQdHI8SklUVGh1bmtQdHJUYWc+IGN0
aU5hdGl2ZVRhaWxDYWxsKFZNJik7CkBAIC02MSw2ICs2NiwxMCBAQCBwdWJsaWM6CiAKICAgICBN
YWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGN0aVN0dWIoVk0mLCBUaHVua0dl
bmVyYXRvcik7CiAgICAgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBleGlz
dGluZ0NUSVN0dWIoVGh1bmtHZW5lcmF0b3IpOworICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxK
SVRUaHVua1B0clRhZz4gZXhpc3RpbmdDVElTdHViKFRodW5rR2VuZXJhdG9yLCBOb0xvY2tpbmdO
ZWNlc3NhcnlUYWcpOworI2lmIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorICAgIE1hY3JvQXNz
ZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gY3RpU2xvd1BhdGhGdW5jdGlvblN0dWIoVk0m
LCBTbG93UGF0aEZ1bmN0aW9uKTsKKyNlbmRpZgogCiAgICAgTmF0aXZlRXhlY3V0YWJsZSogaG9z
dEZ1bmN0aW9uU3R1YihWTSYsIFRhZ2dlZE5hdGl2ZUZ1bmN0aW9uLCBUYWdnZWROYXRpdmVGdW5j
dGlvbiBjb25zdHJ1Y3RvciwgY29uc3QgU3RyaW5nJiBuYW1lKTsKICAgICBOYXRpdmVFeGVjdXRh
YmxlKiBob3N0RnVuY3Rpb25TdHViKFZNJiwgVGFnZ2VkTmF0aXZlRnVuY3Rpb24sIFRhZ2dlZE5h
dGl2ZUZ1bmN0aW9uIGNvbnN0cnVjdG9yLCBUaHVua0dlbmVyYXRvciwgSW50cmluc2ljLCBjb25z
dCBET01KSVQ6OlNpZ25hdHVyZSosIGNvbnN0IFN0cmluZyYgbmFtZSk7CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L1Nsb3dQYXRoQ2FsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9TbG93UGF0aENhbGwuY3BwCShub25leGlzdGVudCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvU2xvd1BhdGhDYWxsLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTbG93UGF0aENhbGwuaCIKKwor
I2lmIEVOQUJMRShKSVQpCisKKyNpbmNsdWRlICJDQ2FsbEhlbHBlcnMuaCIKKyNpbmNsdWRlICJK
SVRUaHVua3MuaCIKKyNpbmNsdWRlICJWTS5oIgorCituYW1lc3BhY2UgSlNDIHsKKworI2lmIEVO
QUJMRShFWFRSQV9DVElfVEhVTktTKQorCit2b2lkIEpJVFNsb3dQYXRoQ2FsbDo6Y2FsbCgpCit7
CisgICAgVk0mIHZtID0gbV9qaXQtPnZtKCk7CisgICAgdWludDMyX3QgYnl0ZWNvZGVPZmZzZXQg
PSBtX2ppdC0+bV9ieXRlY29kZUluZGV4Lm9mZnNldCgpOworICAgIEFTU0VSVCgoYnl0ZWNvZGVP
ZmZzZXQgPDwgQnl0ZWNvZGVJbmRleDo6Y2hlY2twb2ludFNoaWZ0KSA9PSBtX2ppdC0+bV9ieXRl
Y29kZUluZGV4LmFzQml0cygpKTsKKworICAgIFVOVVNFRF9WQVJJQUJMRShtX3BjKTsKKyAgICBj
b25zdGV4cHIgR1BSUmVnIGJ5dGVjb2RlT2Zmc2V0UmVnID0gR1BSSW5mbzo6YXJndW1lbnRHUFIx
OworICAgIG1faml0LT5tb3ZlKEpJVDo6VHJ1c3RlZEltbTMyKGJ5dGVjb2RlT2Zmc2V0KSwgYnl0
ZWNvZGVPZmZzZXRSZWcpOworICAgIG1faml0LT5lbWl0TmFrZWROZWFyQ2FsbCh2bS5qaXRTdHVi
cy0+Y3RpU2xvd1BhdGhGdW5jdGlvblN0dWIodm0sIG1fc2xvd1BhdGhGdW5jdGlvbikucmV0YWdn
ZWRDb2RlPE5vUHRyVGFnPigpKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5r
UHRyVGFnPiBKSVRTbG93UGF0aENhbGw6OmdlbmVyYXRlVGh1bmsoVk0mIHZtLCBTbG93UGF0aEZ1
bmN0aW9uIHNsb3dQYXRoRnVuY3Rpb24pCit7CisgICAgQ0NhbGxIZWxwZXJzIGppdDsKKworICAg
IGNvbnN0ZXhwciBHUFJSZWcgYnl0ZWNvZGVPZmZzZXRSZWcgPSBKSVQ6OmFyZ3VtZW50R1BSMTsK
KworI2lmIENQVShYODZfNjQpCisgICAgaml0LnB1c2goWDg2UmVnaXN0ZXJzOjplYnApOworI2Vs
aWYgQ1BVKEFSTTY0KQorICAgIGppdC50YWdSZXR1cm5BZGRyZXNzKCk7CisgICAgaml0LnB1c2hQ
YWlyKENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6bGlu
a1JlZ2lzdGVyKTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IGFkZCBzdXBwb3J0IGZvciBFTkFC
TEUoT1BDT0RFX1NBTVBMSU5HKS4gU2VlIG90aGVyIGltcGxlbWVudGF0aW9uIG9mIGNhbGwoKS4K
KworICAgIGppdC5zdG9yZTMyKGJ5dGVjb2RlT2Zmc2V0UmVnLCBDQ2FsbEhlbHBlcnM6OnRhZ0Zv
cihDYWxsRnJhbWVTbG90Ojphcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcykpOworCisgICAgaml0
LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjphZGRyZXNzRm9yKENhbGxGcmFtZVNsb3Q6OmNvZGVCbG9j
ayksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKKyAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRp
b24odm0pOworCisgICAgaml0LmxvYWRQdHIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKEdQUkluZm86
OmFyZ3VtZW50R1BSMCwgQ29kZUJsb2NrOjpvZmZzZXRPZkluc3RydWN0aW9uc1Jhd1BvaW50ZXIo
KSksIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisgICAgc3RhdGljX2Fzc2VydChKSVQ6OmFyZ3Vt
ZW50R1BSMSA9PSBieXRlY29kZU9mZnNldFJlZyk7CisgICAgaml0LmFkZFB0cihHUFJJbmZvOjph
cmd1bWVudEdQUjAsIEdQUkluZm86OmFyZ3VtZW50R1BSMSk7CisgICAgaml0Lm1vdmUoR1BSSW5m
bzo6Y2FsbEZyYW1lUmVnaXN0ZXIsIEdQUkluZm86OmFyZ3VtZW50R1BSMCk7CisKKyAgICBDQ2Fs
bEhlbHBlcnM6OkNhbGwgY2FsbCA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CisKKyAgICBD
Q2FsbEhlbHBlcnM6Okp1bXAgZXhjZXB0aW9uQ2hlY2sgPSBqaXQuZW1pdEV4Y2VwdGlvbkNoZWNr
KHZtKTsKKworI2lmIENQVShYODZfNjQpCisgICAgaml0LnBvcChYODZSZWdpc3RlcnM6OmVicCk7
CisjZWxpZiBDUFUoQVJNNjQpCisgICAgaml0LnBvcFBhaXIoQ0NhbGxIZWxwZXJzOjpmcmFtZVBv
aW50ZXJSZWdpc3RlciwgQ0NhbGxIZWxwZXJzOjpsaW5rUmVnaXN0ZXIpOworI2VuZGlmCisgICAg
aml0LnJldCgpOworCisgICAgYXV0byBoYW5kbGVyID0gdm0uaml0U3R1YnMtPmV4aXN0aW5nQ1RJ
U3R1Yihwb3BUaHVua1N0YWNrUHJlc2VydmVzQW5kSGFuZGxlRXhjZXB0aW9uR2VuZXJhdG9yLCBO
b0xvY2tpbmdOZWNlc3NhcnkpOworCisgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdM
T0JBTF9USFVOS19JRCwgTGlua0J1ZmZlcjo6UHJvZmlsZTo6VGh1bmspOworICAgIHBhdGNoQnVm
ZmVyLmxpbmsoY2FsbCwgRnVuY3Rpb25QdHI8T3BlcmF0aW9uUHRyVGFnPihzbG93UGF0aEZ1bmN0
aW9uKSk7CisgICAgcGF0Y2hCdWZmZXIubGluayhleGNlcHRpb25DaGVjaywgQ29kZUxvY2F0aW9u
TGFiZWwoaGFuZGxlci5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKKyAgICByZXR1cm4gRklO
QUxJWkVfQ09ERShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcsICJTbG93UGF0aENhbGwiKTsK
K30KKworI2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorCit9IC8vIG5hbWVzcGFj
ZSBKU0MKKworI2VuZGlmIC8vIEVOQUJMRShKSVQpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L1Nsb3dQYXRoQ2FsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvU2xvd1BhdGhDYWxsLmgJKHJldmlzaW9uIDI3NzMxMikKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvU2xvd1BhdGhDYWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEzLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNSw4ICsyNSw5
IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiQ29tbW9uU2xvd1BhdGhzLmgiCisjaW5j
bHVkZSAiSklULmgiCiAjaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXJDb2RlUmVmLmgiCisjaW5jbHVk
ZSAiU2xvd1BhdGhGdW5jdGlvbi5oIgogCiAjaWYgRU5BQkxFKEpJVCkKIApAQCAtNDIsNiArNDMs
MTIgQEAgcHVibGljOgogICAgICAgICBhc3NlcnRJc0NGdW5jdGlvblB0cihzbG93UGF0aEZ1bmN0
aW9uKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKyAgICB2b2lkIGNh
bGwoKTsKKyAgICBzdGF0aWMgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBn
ZW5lcmF0ZVRodW5rKFZNJiwgU2xvd1BhdGhGdW5jdGlvbik7CisKKyNlbHNlIC8vIG5vdCBFTkFC
TEUoRVhUUkFfQ1RJX1RIVU5LUykKKwogICAgIEpJVDo6Q2FsbCBjYWxsKCkKICAgICB7CiAjaWYg
RU5BQkxFKE9QQ09ERV9TQU1QTElORykKQEAgLTc1LDYgKzgyLDcgQEAgcHVibGljOgogICAgICAg
ICBtX2ppdC0+ZXhjZXB0aW9uQ2hlY2soKTsKICAgICAgICAgcmV0dXJuIGNhbGw7CiAgICAgfQor
I2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQogCiBwcml2YXRlOgogICAgIEpJVCog
bV9qaXQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1RodW5rR2VuZXJhdG9ycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRv
cnMuY3BwCShyZXZpc2lvbiAyNzczMTIpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1Ro
dW5rR2VuZXJhdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNs
dWRlICJNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oIgogI2luY2x1ZGUgIlNwZWNpYWxp
emVkVGh1bmtKSVQuaCIKICNpbmNsdWRlIDx3dGYvSW5saW5lQVNNLmg+CisjaW5jbHVkZSA8d3Rm
L1N0ZEludEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdQcmludFN0cmVhbS5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0ltcGwuaD4KIApAQCAtNDAsNiArNDEsNjMgQEAKIAogbmFt
ZXNwYWNlIEpTQyB7CiAKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKworTWFjcm9Bc3Nl
bWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFnPiBoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3IoVk0m
IHZtKQoreworICAgIENDYWxsSGVscGVycyBqaXQ7CisKKyAgICBqaXQuY29weUNhbGxlZVNhdmVz
VG9FbnRyeUZyYW1lQ2FsbGVlU2F2ZXNCdWZmZXIodm0udG9wRW50cnlGcmFtZSk7CisKKyAgICBq
aXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoJnZtKSwgR1BSSW5mbzo6YXJndW1l
bnRHUFIwKTsKKyAgICBqaXQucHJlcGFyZUNhbGxPcGVyYXRpb24odm0pOworCisgICAgQ0NhbGxI
ZWxwZXJzOjpDYWxsIG9wZXJhdGlvbiA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CisKKyAg
ICBqaXQuanVtcFRvRXhjZXB0aW9uSGFuZGxlcih2bSk7CisKKyAgICBMaW5rQnVmZmVyIHBhdGNo
QnVmZmVyKGppdCwgR0xPQkFMX1RIVU5LX0lELCBMaW5rQnVmZmVyOjpQcm9maWxlOjpUaHVuayk7
CisgICAgcGF0Y2hCdWZmZXIubGluayhvcGVyYXRpb24sIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0
clRhZz4ob3BlcmF0aW9uTG9va3VwRXhjZXB0aW9uSGFuZGxlcikpOworICAgIHJldHVybiBGSU5B
TElaRV9DT0RFKHBhdGNoQnVmZmVyLCBKSVRUaHVua1B0clRhZywgImhhbmRsZUV4Y2VwdGlvbiIp
OworfQorCitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1bmtQdHJUYWc+IGhhbmRsZUV4Y2Vw
dGlvbldpdGhDYWxsRnJhbWVSb2xsYmFja0dlbmVyYXRvcihWTSYgdm0pCit7CisgICAgQ0NhbGxI
ZWxwZXJzIGppdDsKKworICAgIGppdC5jb3B5Q2FsbGVlU2F2ZXNUb0VudHJ5RnJhbWVDYWxsZWVT
YXZlc0J1ZmZlcih2bS50b3BFbnRyeUZyYW1lKTsKKworICAgIGppdC5tb3ZlKENDYWxsSGVscGVy
czo6VHJ1c3RlZEltbVB0cigmdm0pLCBHUFJJbmZvOjphcmd1bWVudEdQUjApOworICAgIGppdC5w
cmVwYXJlQ2FsbE9wZXJhdGlvbih2bSk7CisgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIG9wZXJhdGlv
biA9IGppdC5jYWxsKE9wZXJhdGlvblB0clRhZyk7CisgICAgaml0Lmp1bXBUb0V4Y2VwdGlvbkhh
bmRsZXIodm0pOworCisgICAgTGlua0J1ZmZlciBwYXRjaEJ1ZmZlcihqaXQsIEdMT0JBTF9USFVO
S19JRCwgTGlua0J1ZmZlcjo6UHJvZmlsZTo6VGh1bmspOworICAgIHBhdGNoQnVmZmVyLmxpbmso
b3BlcmF0aW9uLCBGdW5jdGlvblB0cjxPcGVyYXRpb25QdHJUYWc+KG9wZXJhdGlvbkxvb2t1cEV4
Y2VwdGlvbkhhbmRsZXJGcm9tQ2FsbGVyRnJhbWUpKTsKKyAgICByZXR1cm4gRklOQUxJWkVfQ09E
RShwYXRjaEJ1ZmZlciwgSklUVGh1bmtQdHJUYWcsICJoYW5kbGVFeGNlcHRpb25XaXRoQ2FsbEZy
YW1lUm9sbGJhY2siKTsKK30KKworTWFjcm9Bc3NlbWJsZXJDb2RlUmVmPEpJVFRodW5rUHRyVGFn
PiBwb3BUaHVua1N0YWNrUHJlc2VydmVzQW5kSGFuZGxlRXhjZXB0aW9uR2VuZXJhdG9yKFZNJiB2
bSkKK3sKKyAgICBDQ2FsbEhlbHBlcnMgaml0OworCisjaWYgQ1BVKFg4Nl82NCkKKyAgICBqaXQu
YWRkUHRyKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDIgKiBzaXplb2YoQ1BVUmVnaXN0ZXIp
KSwgWDg2UmVnaXN0ZXJzOjplc3ApOworI2VsaWYgQ1BVKEFSTTY0KQorICAgIGppdC5wb3BQYWly
KENDYWxsSGVscGVyczo6ZnJhbWVQb2ludGVyUmVnaXN0ZXIsIENDYWxsSGVscGVyczo6bGlua1Jl
Z2lzdGVyKTsKKyNlbmRpZgorCisgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGNvbnRpbnVhdGlvbiA9
IGppdC5qdW1wKCk7CisKKyAgICBMaW5rQnVmZmVyIHBhdGNoQnVmZmVyKGppdCwgR0xPQkFMX1RI
VU5LX0lELCBMaW5rQnVmZmVyOjpQcm9maWxlOjpUaHVuayk7CisgICAgYXV0byBoYW5kbGVyID0g
dm0uaml0U3R1YnMtPmV4aXN0aW5nQ1RJU3R1YihoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3IsIE5v
TG9ja2luZ05lY2Vzc2FyeSk7CisgICAgUkVMRUFTRV9BU1NFUlQoaGFuZGxlcik7CisgICAgcGF0
Y2hCdWZmZXIubGluayhjb250aW51YXRpb24sIENvZGVMb2NhdGlvbkxhYmVsKGhhbmRsZXIucmV0
YWdnZWRDb2RlPE5vUHRyVGFnPigpKSk7CisgICAgcmV0dXJuIEZJTkFMSVpFX0NPREUocGF0Y2hC
dWZmZXIsIEpJVFRodW5rUHRyVGFnLCAicG9wVGh1bmtTdGFja1ByZXNlcnZlc0FuZEhhbmRsZUV4
Y2VwdGlvbiIpOworfQorCisjZW5kaWYgLy8gRU5BQkxFKEVYVFJBX0NUSV9USFVOS1MpCisKIHRl
bXBsYXRlPHR5cGVuYW1lIFRhZ1R5cGU+CiBpbmxpbmUgdm9pZCBlbWl0UG9pbnRlclZhbGlkYXRp
b24oQ0NhbGxIZWxwZXJzJiBqaXQsIEdQUlJlZyBwb2ludGVyR1BSLCBUYWdUeXBlIHRhZykKIHsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvVGh1bmtHZW5lcmF0b3JzLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRvcnMuaAkocmV2
aXNpb24gMjc3MzEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9UaHVua0dlbmVyYXRv
cnMuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDYgKzM1LDE1IEBAIGNsYXNzIENhbGxMaW5rSW5m
bzsKIHRlbXBsYXRlPFB0clRhZz4gY2xhc3MgTWFjcm9Bc3NlbWJsZXJDb2RlUmVmOwogY2xhc3Mg
Vk07CiAKKyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKworTWFjcm9Bc3NlbWJsZXJDb2Rl
UmVmPEpJVFRodW5rUHRyVGFnPiBoYW5kbGVFeGNlcHRpb25HZW5lcmF0b3IoVk0mKTsKK01hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gaGFuZGxlRXhjZXB0aW9uV2l0aENhbGxG
cmFtZVJvbGxiYWNrR2VuZXJhdG9yKFZNJik7CitNYWNyb0Fzc2VtYmxlckNvZGVSZWY8SklUVGh1
bmtQdHJUYWc+IHBvcFRodW5rU3RhY2tQcmVzZXJ2ZXNBbmRIYW5kbGVFeGNlcHRpb25HZW5lcmF0
b3IoVk0mKTsKKworI2VuZGlmIC8vIEVOQUJMRShFWFRSQV9DVElfVEhVTktTKQorCisKIE1hY3Jv
QXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0clRhZz4gdGhyb3dFeGNlcHRpb25Gcm9tQ2FsbFNs
b3dQYXRoR2VuZXJhdG9yKFZNJik7CiAKIE1hY3JvQXNzZW1ibGVyQ29kZVJlZjxKSVRUaHVua1B0
clRhZz4gbGlua0NhbGxUaHVua0dlbmVyYXRvcihWTSYpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgJKHJldmlzaW9uIDI3NzMxMikK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMS0y
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIkZ1bmN0aW9uQ29kZUJsb2Nr
LmgiCiAjaW5jbHVkZSAiSlNJbW11dGFibGVCdXR0ZXJmbHkuaCIKICNpbmNsdWRlICJTY29wZWRB
cmd1bWVudHMuaCIKLSNpbmNsdWRlICJTbG93UGF0aFJldHVyblR5cGUuaCIKKyNpbmNsdWRlICJT
bG93UGF0aEZ1bmN0aW9uLmgiCiAjaW5jbHVkZSAiU3RhY2tBbGlnbm1lbnQuaCIKICNpbmNsdWRl
ICJWTUlubGluZXMuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC0yOTksNiAr
Mjk5LDQgQEAgSlNDX0RFQ0xBUkVfQ09NTU9OX1NMT1dfUEFUSChpdGVyYXRvcl9uZQogSlNDX0RF
Q0xBUkVfQ09NTU9OX1NMT1dfUEFUSChpdGVyYXRvcl9uZXh0X3RyeV9mYXN0X3dpZGUxNik7CiBK
U0NfREVDTEFSRV9DT01NT05fU0xPV19QQVRIKGl0ZXJhdG9yX25leHRfdHJ5X2Zhc3Rfd2lkZTMy
KTsKIAotdXNpbmcgU2xvd1BhdGhGdW5jdGlvbiA9IFNsb3dQYXRoUmV0dXJuVHlwZShKSVRfT1BF
UkFUSU9OX0FUVFJJQlVURVMqKShDYWxsRnJhbWUqLCBjb25zdCBJbnN0cnVjdGlvbiopOwotCiB9
IC8vIG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1Ns
b3dQYXRoRnVuY3Rpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TbG93UGF0aEZ1bmN0aW9uLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU2xvd1BhdGhGdW5jdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlNsb3dQYXRoUmV0dXJuVHlwZS5oIgorCituYW1lc3Bh
Y2UgSlNDIHsKKworY2xhc3MgQ2FsbEZyYW1lOworc3RydWN0IEluc3RydWN0aW9uOworCit1c2lu
ZyBTbG93UGF0aEZ1bmN0aW9uID0gU2xvd1BhdGhSZXR1cm5UeXBlKEpJVF9PUEVSQVRJT05fQVRU
UklCVVRFUyopKENhbGxGcmFtZSosIGNvbnN0IEluc3RydWN0aW9uKik7CisKK30gLy8gbmFtZXNw
YWNlIEpTQwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmNwcAkocmV2aXNpb24g
Mjc3MzEyKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NjcsOCArNTY3LDEyIEBAIFZNOjpWTShWTVR5cGUgdm1UeXBlLCBIZWFwVHlw
ZSBoZWFwVHlwZSwKICNlbmRpZiAvLyBFTkFCTEUoRlRMX0pJVCkKICAgICAgICAgZ2V0Q1RJSW50
ZXJuYWxGdW5jdGlvblRyYW1wb2xpbmVGb3IoQ29kZUZvckNhbGwpOwogICAgICAgICBnZXRDVElJ
bnRlcm5hbEZ1bmN0aW9uVHJhbXBvbGluZUZvcihDb2RlRm9yQ29uc3RydWN0KTsKLSAgICB9CisK
KyNpZiBFTkFCTEUoRVhUUkFfQ1RJX1RIVU5LUykKKyAgICAgICAgaml0U3R1YnMtPnByZWluaXRp
YWxpemVFeHRyYUNUSVRodW5rcygqdGhpcyk7CiAjZW5kaWYKKyAgICB9CisjZW5kaWYgLy8gRU5B
QkxFKEpJVCkKIAogICAgIGlmIChPcHRpb25zOjpmb3JjZURlYnVnZ2VyQnl0ZWNvZGVHZW5lcmF0
aW9uKCkgfHwgT3B0aW9uczo6YWx3YXlzVXNlU2hhZG93Q2hpY2tlbigpKQogICAgICAgICBlbnN1
cmVTaGFkb3dDaGlja2VuKCk7CkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3MzEyKQorKysgU291cmNlL1dU
Ri9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0xMSAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IHNvbWUg
Y29tbW9uIEJhc2VsaW5lIEpJVCBzbG93IHBhdGhzIHVzaW5nIEpJVCB0aHVua3MuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU2ODIKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgRU5BQkxF
KEVYVFJBX0NUSV9USFVOS1MpIGZsYWcgdG8gZ3VhcmQgdGhlIHVzZSBvZiB0aGVzZSBuZXcgdGh1
bmtzLgorICAgICAgICBDdXJyZW50bHksIHRoZSB0aHVua3MgYXJlIDY0LWJpdCBvbmx5LCBhbmQg
b25seSBzdXBwb3J0ZWQgZm9yIEFSTTY0IGFuZCBub24tV2luZG93cworICAgICAgICBYODZfNjQu
ICBUaGUgcmVhc29uIGl0IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFdpbmRvd3MgYXMgd2VsbCBpcyBi
ZWNhdXNlIFdpbmRvd3MKKyAgICAgICAgb25seSBoYXMgNCBhcmd1bWVudCByZWdpc3RlcnMuICBJ
biB0aGlzIHBhdGNoLCB0aGUgdGh1bmtzIGRvIG5vdCB1c2UgdGhhdCBtYW55CisgICAgICAgIHJl
Z2lzdGVycyB5ZXQsIGJ1dCB0aGVyZSB3aWxsIGJlIG1vcmUgdGh1bmtzIGNvbWluZyB0aGF0IHdp
bGwgcmVxdWlyZSB0aGUgdXNlCisgICAgICAgIG9mIHVwIHRvIDYgYXJndW1lbnQgcmVnaXN0ZXJz
LgorCisgICAgICAgICogd3RmL1BsYXRmb3JtRW5hYmxlLmg6CisKIDIwMjEtMDUtMTAgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIGBTTEVFUF9USFJFQURfRk9S
X0RFQlVHR0VSYCBzaG91bGQgcHJpbnQgdGhlIFBJRCBiZWZvcmUgc2xlZXBpbmcKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtRW5hYmxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvUGxhdGZvcm1FbmFibGUuaAkocmV2aXNpb24gMjc3MzEyKQorKysgU291cmNlL1dURi93dGYv
UGxhdGZvcm1FbmFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENvcHly
aWdodCAoQykgMjAxMCwgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1zdW5nIEVsZWN0cm9uaWNzLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgpAQCAtODMyLDYgKzgzMiwxNCBAQAogI2RlZmluZSBFTkFCTEVf
SklUX09QRVJBVElPTl9WQUxJREFUSU9OIDEKICNlbmRpZgogCisjaWYgQ1BVKEFSTTY0KSB8fCAo
Q1BVKFg4Nl82NCkgJiYgIU9TKFdJTkRPV1MpKQorLyogVGhlIGltcGxlbWVudGF0aW9uIG9mIHRo
ZXNlIHRodW5rcyBjYW4gdXNlIHVwIHRvIDYgYXJndW1lbnQgcmVnaXN0ZXJzLCBhbmQKKyAgIG1h
a2UgdXNlIG9mIEFSTTY0IGxpa2UgZmVhdHVyZXMuIEZvciBub3csIHdlJ2xsIG9ubHkgc3VwcG9y
dCB0aGVtIG9uIHBsYXRmb3JtcworICAgdGhhdCBoYXZlIDYgb3IgbW9yZSBhcmd1bWVudCByZWdp
c3RlcnMgdG8gdXNlLgorKi8KKyNkZWZpbmUgRU5BQkxFX0VYVFJBX0NUSV9USFVOS1MgMQorI2Vu
ZGlmCisKICNpZiAhZGVmaW5lZChFTkFCTEVfQklORElOR19JTlRFR1JJVFkpICYmICFPUyhXSU5E
T1dTKQogI2RlZmluZSBFTkFCTEVfQklORElOR19JTlRFR1JJVFkgMQogI2VuZGlmCg==
</data>
<flag name="review"
          id="449245"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>