<?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>25295</bug_id>
          
          <creation_ts>2009-04-20 07:51:50 -0700</creation_ts>
          <short_desc>Remove WebKit/win code that was used for Drosera support</short_desc>
          <delta_ts>2009-04-20 20:42:55 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Roben (:aroben)">aroben</reporter>
          <assigned_to name="Adam Roben (:aroben)">aroben</assigned_to>
          <cc>sfalken</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>118107</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-04-20 07:51:50 -0700</bug_when>
    <thetext>WebKit/win contains the following classes/interfaces that were used to support Drosera:

* IWebScriptCallFrame
* IWebScriptDebugListener
* IWebScriptDebugServer
* WebScriptCallFrame
* WebScriptDebugServer

We should remove all of these, since Drosera has long been deprecated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118109</commentid>
    <comment_count>1</comment_count>
      <attachid>29614</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-04-20 07:56:02 -0700</bug_when>
    <thetext>Created attachment 29614
patch + changelog v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>118216</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2009-04-20 20:42:55 -0700</bug_when>
    <thetext>Landed as r42691</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29614</attachid>
            <date>2009-04-20 07:56:02 -0700</date>
            <delta_ts>2009-04-20 10:22:55 -0700</delta_ts>
            <desc>patch + changelog v1</desc>
            <filename>0001--Fix-Bug-25295-Remove-WebKit-win-code-that-w.patch</filename>
            <type>text/plain</type>
            <size>36957</size>
            <attacher name="Adam Roben (:aroben)">aroben</attacher>
            
              <data encoding="base64">RnJvbSBjYzJiYWI0Zjk3Mjc4ZTg0N2YzZTk4MWE3MDgxNzQyOTIxMzZiZTkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBZGFtIFJvYmVuIDxhcm9iZW5AYXBwbGUuY29tPgpEYXRlOiBN
b24sIDIwIEFwciAyMDA5IDEwOjU1OjAyIC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gICAgICAgICBG
aXggQnVnIDI1Mjk1OiBSZW1vdmUgV2ViS2l0L3dpbiBjb2RlIHRoYXQgd2FzIHVzZWQgZm9yIERy
b3NlcmEgc3VwcG9ydAoKICAgICAgICA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTI1Mjk1PgoKICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiAgICAg
ICAgKiBGb3JFYWNoQ29DbGFzcy5oOiBSZW1vdmVkIFdlYlNjcmlwdERlYnVnU2VydmVyLgoKICAg
ICAgICAqIEludGVyZmFjZXMvV2ViS2l0LmlkbDogUmVtb3ZlZCBXZWJTY3JpcHREZWJ1Z1NlcnZl
ciBhbmQgcmVmZXJlbmNlcwogICAgICAgIHRvIHJlbW92ZWQgSURMIGZpbGVzLgoKICAgICAgICAq
IFdlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2o6CiAgICAgICAgKiBXZWJLaXQudmNwcm9q
L1dlYktpdC52Y3Byb2o6CiAgICAgICAgUmVtb3ZlZCBJREwgYW5kIHNvdXJjZSBmaWxlcyBmb3Ig
SVdlYlNjcmlwdENhbGxGcmFtZSwKICAgICAgICBJV2ViU2NyaXB0RGVidWdMaXN0ZW5lciwgSVdl
YlNjcmlwdERlYnVnU2VydmVyLCBXZWJTY3JpcHRDYWxsRnJhbWUsCiAgICAgICAgYW5kIFdlYlNj
cmlwdERlYnVnU2VydmVyLgoKICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcDoKICAgICAgICAqIFdlYktpdENsYXNzRmFjdG9yeS5jcHA6CiAgICAgICAgKiBX
ZWJLaXRETEwuY3BwOgogICAgICAgIFJlbW92ZWQgI2luY2x1ZGVzIG9mIFdlYlNjcmlwdERlYnVn
U2VydmVyLmguCgogICAgICAgICogSW50ZXJmYWNlcy9JV2ViU2NyaXB0Q2FsbEZyYW1lLmlkbDog
UmVtb3ZlZC4KICAgICAgICAqIEludGVyZmFjZXMvSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIuaWRs
OiBSZW1vdmVkLgogICAgICAgICogSW50ZXJmYWNlcy9JV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaWRs
OiBSZW1vdmVkLgogICAgICAgICogV2ViU2NyaXB0Q2FsbEZyYW1lLmNwcDogUmVtb3ZlZC4KICAg
ICAgICAqIFdlYlNjcmlwdENhbGxGcmFtZS5oOiBSZW1vdmVkLgogICAgICAgICogV2ViU2NyaXB0
RGVidWdTZXJ2ZXIuY3BwOiBSZW1vdmVkLgogICAgICAgICogV2ViU2NyaXB0RGVidWdTZXJ2ZXIu
aDogUmVtb3ZlZC4KLS0tCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8ICAgMzMgKysrCiBXZWJLaXQvd2luL0ZvckVhY2hDb0NsYXNzLmggICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgIDEgLQogV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJTY3Jp
cHRDYWxsRnJhbWUuaWRsICAgICAgfCAgIDU0IC0tLS0KIFdlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViU2NyaXB0RGVidWdMaXN0ZW5lci5pZGwgIHwgICA1NyAtLS0tCiBXZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlNjcmlwdERlYnVnU2VydmVyLmlkbCAgICB8ICAgNTIgLS0tLQogV2ViS2l0L3dp
bi9JbnRlcmZhY2VzL1dlYktpdC5pZGwgICAgICAgICAgICAgICAgICAgfCAgICA4IC0KIFdlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIHwgICAgMSAtCiBX
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2ogICAgICAgICB8ICAgNjAg
LS0tLQogV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2ogICAgICAgICAgICAg
fCAgIDE2IC0tCiBXZWJLaXQvd2luL1dlYktpdENsYXNzRmFjdG9yeS5jcHAgICAgICAgICAgICAg
ICAgICB8ICAgIDEgLQogV2ViS2l0L3dpbi9XZWJLaXRETEwuY3BwICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgICAxIC0KIFdlYktpdC93aW4vV2ViU2NyaXB0Q2FsbEZyYW1lLmNwcCAgICAg
ICAgICAgICAgICAgIHwgIDI4NSAtLS0tLS0tLS0tLS0tLS0tLS0tLQogV2ViS2l0L3dpbi9XZWJT
Y3JpcHRDYWxsRnJhbWUuaCAgICAgICAgICAgICAgICAgICAgfCAgIDg4IC0tLS0tLQogV2ViS2l0
L3dpbi9XZWJTY3JpcHREZWJ1Z1NlcnZlci5jcHAgICAgICAgICAgICAgICAgfCAgMTIyIC0tLS0t
LS0tLQogV2ViS2l0L3dpbi9XZWJTY3JpcHREZWJ1Z1NlcnZlci5oICAgICAgICAgICAgICAgICAg
fCAgIDcwIC0tLS0tCiAxNSBmaWxlcyBjaGFuZ2VkLCAzMyBpbnNlcnRpb25zKCspLCA4MTYgZGVs
ZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJT
Y3JpcHRDYWxsRnJhbWUuaWRsCiBkZWxldGUgbW9kZSAxMDA2NDQgV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0lXZWJTY3JpcHREZWJ1Z0xpc3RlbmVyLmlkbAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdlYktp
dC93aW4vSW50ZXJmYWNlcy9JV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaWRsCiBkZWxldGUgbW9kZSAx
MDA2NDQgV2ViS2l0L3dpbi9XZWJTY3JpcHRDYWxsRnJhbWUuY3BwCiBkZWxldGUgbW9kZSAxMDA2
NDQgV2ViS2l0L3dpbi9XZWJTY3JpcHRDYWxsRnJhbWUuaAogZGVsZXRlIG1vZGUgMTAwNjQ0IFdl
YktpdC93aW4vV2ViU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCiBkZWxldGUgbW9kZSAxMDA2NDQgV2Vi
S2l0L3dpbi9XZWJTY3JpcHREZWJ1Z1NlcnZlci5oCgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBiZDM5ZDgyLi44MGFhZTI5IDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDM2IEBACisyMDA5LTA0LTIwICBBZGFtIFJvYmVuICA8YXJvYmVuQGFwcGxl
LmNvbT4KKworICAgICAgICBGaXggQnVnIDI1Mjk1OiBSZW1vdmUgV2ViS2l0L3dpbiBjb2RlIHRo
YXQgd2FzIHVzZWQgZm9yIERyb3NlcmEKKyAgICAgICAgc3VwcG9ydAorCisgICAgICAgIDxodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjUyOTU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBGb3JFYWNoQ29DbGFzcy5oOiBS
ZW1vdmVkIFdlYlNjcmlwdERlYnVnU2VydmVyLgorCisgICAgICAgICogSW50ZXJmYWNlcy9XZWJL
aXQuaWRsOiBSZW1vdmVkIFdlYlNjcmlwdERlYnVnU2VydmVyIGFuZCByZWZlcmVuY2VzCisgICAg
ICAgIHRvIHJlbW92ZWQgSURMIGZpbGVzLgorCisgICAgICAgICogV2ViS2l0LnZjcHJvai9JbnRl
cmZhY2VzLnZjcHJvajoKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2o6Cisg
ICAgICAgIFJlbW92ZWQgSURMIGFuZCBzb3VyY2UgZmlsZXMgZm9yIElXZWJTY3JpcHRDYWxsRnJh
bWUsCisgICAgICAgIElXZWJTY3JpcHREZWJ1Z0xpc3RlbmVyLCBJV2ViU2NyaXB0RGVidWdTZXJ2
ZXIsIFdlYlNjcmlwdENhbGxGcmFtZSwKKyAgICAgICAgYW5kIFdlYlNjcmlwdERlYnVnU2VydmVy
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAqIFdlYktpdENsYXNzRmFjdG9yeS5jcHA6CisgICAgICAgICogV2ViS2l0RExMLmNw
cDoKKyAgICAgICAgUmVtb3ZlZCAjaW5jbHVkZXMgb2YgV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaC4K
KworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlNjcmlwdENhbGxGcmFtZS5pZGw6IFJlbW92ZWQu
CisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViU2NyaXB0RGVidWdMaXN0ZW5lci5pZGw6IFJlbW92
ZWQuCisgICAgICAgICogSW50ZXJmYWNlcy9JV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaWRsOiBSZW1v
dmVkLgorICAgICAgICAqIFdlYlNjcmlwdENhbGxGcmFtZS5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogV2ViU2NyaXB0Q2FsbEZyYW1lLmg6IFJlbW92ZWQuCisgICAgICAgICogV2ViU2NyaXB0RGVi
dWdTZXJ2ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlNjcmlwdERlYnVnU2VydmVyLmg6
IFJlbW92ZWQuCisKIDIwMDktMDQtMTcgIEFkYSBDaGFuICA8YWRhY2hhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzY4MDM5MDU+IExvdHMgb2YgQVNTRVJUcyBmaXJpbmcg
d2hlbiB0cnlpbmcgdG8gY2xlYXIgaGlzdG9yeQpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9Gb3JF
YWNoQ29DbGFzcy5oIGIvV2ViS2l0L3dpbi9Gb3JFYWNoQ29DbGFzcy5oCmluZGV4IDk0OTc2ZTYu
LmJkMzdlMjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vRm9yRWFjaENvQ2xhc3MuaAorKysgYi9X
ZWJLaXQvd2luL0ZvckVhY2hDb0NsYXNzLmgKQEAgLTQ3LDcgKzQ3LDYgQEAKICAgICBtYWNybyhX
ZWJOb3RpZmljYXRpb25DZW50ZXIpIFwKICAgICBtYWNybyhXZWJQcmVmZXJlbmNlcykgXAogICAg
IG1hY3JvKFdlYlNjcm9sbEJhcikgXAotICAgIG1hY3JvKFdlYlNjcmlwdERlYnVnU2VydmVyKSBc
CiAgICAgbWFjcm8oV2ViVGV4dFJlbmRlcmVyKSBcCiAgICAgbWFjcm8oV2ViVVJMQ3JlZGVudGlh
bCkgXAogICAgIG1hY3JvKFdlYlVSTFByb3RlY3Rpb25TcGFjZSkgXApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJTY3JpcHRDYWxsRnJhbWUuaWRsIGIvV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJTY3JpcHRDYWxsRnJhbWUuaWRsCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkM2E3Zjg1Li4wMDAwMDAwCi0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
U2NyaXB0Q2FsbEZyYW1lLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaWZuZGVmIERPX05PX0lNUE9SVFMKLWltcG9ydCAib2FpZGwuaWRsIjsKLWltcG9ydCAi
b2NpZGwuaWRsIjsKLSNlbmRpZgotCi1jcHBfcXVvdGUoIi8vIHRoaXMgaXMgZG9uZSB0byBnZXQg
bWlkbCB0byB0cmVhdCB0aGUgV2ViU2NyaXB0Q2FsbEZyYW1lIHR5cGUgYXMgYSBwb2ludGVyIHR5
cGUiKQotY3BwX3F1b3RlKCIjaWYgMCIpCi10eXBlZGVmIHZvaWQqIFdlYlNjcmlwdENhbGxGcmFt
ZTsKLWNwcF9xdW90ZSgiI2Vsc2UiKQotY3BwX3F1b3RlKCJjbGFzcyBXZWJTY3JpcHRDYWxsRnJh
bWU7IikKLWNwcF9xdW90ZSgiI2VuZGlmIikKLQotWwotICAgIG9iamVjdCwKLSAgICBvbGVhdXRv
bWF0aW9uLAotICAgIHV1aWQoMDI5RDA2NzYtMTYyQS00MTQwLTg5MTctOTU3NEUwOUY2NkVCKSwK
LSAgICBwb2ludGVyX2RlZmF1bHQodW5pcXVlKQotXQotaW50ZXJmYWNlIElXZWJTY3JpcHRDYWxs
RnJhbWUgOiBJVW5rbm93bgotewotICAgIEhSRVNVTFQgY2FsbGVyKFtvdXQsIHJldHZhbF0gSVdl
YlNjcmlwdENhbGxGcmFtZSoqKTsKLSAgICBIUkVTVUxUIGZ1bmN0aW9uTmFtZShbb3V0LCByZXR2
YWxdIEJTVFIqKTsKLSAgICBIUkVTVUxUIHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHRGcm9t
U3RyaW5nKFtpbl0gQlNUUiBzY3JpcHQsIFtvdXQsIHJldHZhbF0gQlNUUiopOwotICAgIEhSRVNV
TFQgdmFyaWFibGVOYW1lcyhbb3V0LCByZXR2YWxdIElFbnVtVkFSSUFOVCoqKTsKLSAgICBIUkVT
VUxUIHZhbHVlRm9yVmFyaWFibGUoW2luXSBCU1RSIGtleSwgW291dCwgcmV0dmFsXSBCU1RSKiB2
YWx1ZSk7Ci19CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlNjcmlwdERl
YnVnTGlzdGVuZXIuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJTY3JpcHREZWJ1Z0xp
c3RlbmVyLmlkbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI2MjQ0ZC4uMDAwMDAw
MAotLS0gYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIuaWRs
CisrKyAvZGV2L251bGwKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4gCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4gCi0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgRE9fTk9f
SU1QT1JUUwotaW1wb3J0ICJvYWlkbC5pZGwiOwotaW1wb3J0ICJvY2lkbC5pZGwiOwotaW1wb3J0
ICJJV2ViU2NyaXB0Q2FsbEZyYW1lLmlkbCI7Ci1pbXBvcnQgIklXZWJWaWV3LmlkbCI7Ci0jZW5k
aWYKLQotaW50ZXJmYWNlIElXZWJEYXRhU291cmNlOwotaW50ZXJmYWNlIElXZWJGcmFtZTsKLWlu
dGVyZmFjZSBJV2ViU2NyaXB0Q2FsbEZyYW1lOwotaW50ZXJmYWNlIElXZWJWaWV3OwotCi1bCi0g
ICAgb2JqZWN0LAotICAgIG9sZWF1dG9tYXRpb24sCi0gICAgdXVpZCgwOTYxMkI1Ni1CRTE3LTQ4
NjctQTQ0MS0xQzVDNEUwRjUzMDIpLAotICAgIHBvaW50ZXJfZGVmYXVsdCh1bmlxdWUpCi1dCi1p
bnRlcmZhY2UgSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIgOiBJVW5rbm93bgotewotICAgIEhSRVNV
TFQgZGlkTG9hZE1haW5SZXNvdXJjZUZvckRhdGFTb3VyY2UoW2luXSBJV2ViVmlldyogdmlldywg
W2luXSBJV2ViRGF0YVNvdXJjZSogZGF0YVNvdXJjZSk7Ci0gICAgSFJFU1VMVCBkaWRQYXJzZVNv
dXJjZShbaW5dIElXZWJWaWV3KiB2aWV3LCBbaW5dIEJTVFIgc291cmNlQ29kZSwgW2luXSBVSU5U
IGJhc2VMaW5lTnVtYmVyLCBbaW5dIEJTVFIgdXJsLCBbaW5dIGludCBzb3VyY2VJRCwgW2luXSBJ
V2ViRnJhbWUqIGZvcldlYkZyYW1lKTsKLSAgICBIUkVTVUxUIGZhaWxlZFRvUGFyc2VTb3VyY2Uo
W2luXSBJV2ViVmlldyogdmlldywgW2luXSBCU1RSIHNvdXJjZUNvZGUsIFtpbl0gVUlOVCBiYXNl
TGluZU51bWJlciwgW2luXSBCU1RSIHVybCwgW2luXSBCU1RSIGVycm9yLCBbaW5dIElXZWJGcmFt
ZSogZm9yV2ViRnJhbWUpOwotICAgIEhSRVNVTFQgZGlkRW50ZXJDYWxsRnJhbWUoW2luXSBJV2Vi
VmlldyogdmlldywgW2luXSBJV2ViU2NyaXB0Q2FsbEZyYW1lKiBmcmFtZSwgW2luXSBpbnQgc291
cmNlSUQsIFtpbl0gaW50IGxpbmVOdW1iZXIsIFtpbl0gSVdlYkZyYW1lKiBmb3JXZWJGcmFtZSk7
Ci0gICAgSFJFU1VMVCB3aWxsRXhlY3V0ZVN0YXRlbWVudChbaW5dIElXZWJWaWV3KiB2aWV3LCBb
aW5dIElXZWJTY3JpcHRDYWxsRnJhbWUqIGZyYW1lLCBbaW5dIGludCBzb3VyY2VJRCwgW2luXSBp
bnQgbGluZU51bWJlciwgW2luXSBJV2ViRnJhbWUqIGZvcldlYkZyYW1lKTsKLSAgICBIUkVTVUxU
IHdpbGxMZWF2ZUNhbGxGcmFtZShbaW5dIElXZWJWaWV3KiB2aWV3LCBbaW5dIElXZWJTY3JpcHRD
YWxsRnJhbWUqIGZyYW1lLCBbaW5dIGludCBzb3VyY2VJRCwgW2luXSBpbnQgbGluZU51bWJlciwg
W2luXSBJV2ViRnJhbWUqIGZvcldlYkZyYW1lKTsKLSAgICBIUkVTVUxUIGV4Y2VwdGlvbldhc1Jh
aXNlZChbaW5dIElXZWJWaWV3KiB2aWV3LCBbaW5dIElXZWJTY3JpcHRDYWxsRnJhbWUqIGZyYW1l
LCBbaW5dIGludCBzb3VyY2VJRCwgW2luXSBpbnQgbGluZU51bWJlciwgW2luXSBJV2ViRnJhbWUq
IGZvcldlYkZyYW1lKTsKLSAgICBIUkVTVUxUIHNlcnZlckRpZERpZSgpOwotfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJTY3JpcHREZWJ1Z1NlcnZlci5pZGwgYi9XZWJL
aXQvd2luL0ludGVyZmFjZXMvSVdlYlNjcmlwdERlYnVnU2VydmVyLmlkbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTc1ZmY2OC4uMDAwMDAwMAotLS0gYS9XZWJLaXQvd2luL0ludGVy
ZmFjZXMvSVdlYlNjcmlwdERlYnVnU2VydmVyLmlkbAorKysgL2Rldi9udWxsCkBAIC0xLDUyICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5h
bWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAq
ICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQot
ICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICog
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIERPX05PX0lNUE9SVFMKLWltcG9ydCAib2FpZGwuaWRs
IjsKLWltcG9ydCAib2NpZGwuaWRsIjsKLWltcG9ydCAiSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIu
aWRsIjsKLSNlbmRpZgotCi1pbnRlcmZhY2UgSVdlYlNjcmlwdERlYnVnTGlzdGVuZXI7Ci0KLVsK
LSAgICBvYmplY3QsCi0gICAgb2xlYXV0b21hdGlvbiwKLSAgICB1dWlkKEUyNDExMUQ2LTM2Njgt
NGM4Yi1COTIxLUQ2NDQ1MjQ5NDVGOCksCi0gICAgcG9pbnRlcl9kZWZhdWx0KHVuaXF1ZSkKLV0K
LWludGVyZmFjZSBJV2ViU2NyaXB0RGVidWdTZXJ2ZXIgOiBJVW5rbm93bgotewotICAgIEhSRVNV
TFQgc2hhcmVkV2ViU2NyaXB0RGVidWdTZXJ2ZXIoW291dCwgcmV0dmFsXSBJV2ViU2NyaXB0RGVi
dWdTZXJ2ZXIqKik7Ci0gICAgSFJFU1VMVCBhZGRMaXN0ZW5lcihbaW5dIElXZWJTY3JpcHREZWJ1
Z0xpc3RlbmVyKik7Ci0gICAgSFJFU1VMVCByZW1vdmVMaXN0ZW5lcihbaW5dIElXZWJTY3JpcHRE
ZWJ1Z0xpc3RlbmVyKik7Ci0gICAgSFJFU1VMVCBzdGVwKCk7Ci0gICAgSFJFU1VMVCBwYXVzZSgp
OwotICAgIEhSRVNVTFQgcmVzdW1lKCk7Ci0gICAgSFJFU1VMVCBpc1BhdXNlZChbb3V0LCByZXR2
YWxdIEJPT0wqIGlzUGF1c2VkKTsKLX0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNl
cy9XZWJLaXQuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKaW5kZXggMzM4
YWI3MS4uYmFkYTQ0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5p
ZGwKKysrIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL1dlYktpdC5pZGwKQEAgLTEwNiw5ICsxMDYs
NiBAQCBpbXBvcnQgIm9jaWRsLmlkbCI7CiAjaW5jbHVkZSAiSVdlYlJlc291cmNlLmlkbCIKICNp
bmNsdWRlICJJV2ViUmVzb3VyY2VMb2FkRGVsZWdhdGUuaWRsIgogI2luY2x1ZGUgIklXZWJSZXNv
dXJjZUxvYWREZWxlZ2F0ZVByaXZhdGUuaWRsIgotI2luY2x1ZGUgIklXZWJTY3JpcHRDYWxsRnJh
bWUuaWRsIgotI2luY2x1ZGUgIklXZWJTY3JpcHREZWJ1Z0xpc3RlbmVyLmlkbCIKLSNpbmNsdWRl
ICJJV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaWRsIgogI2luY2x1ZGUgIklXZWJTY3JvbGxCYXJEZWxl
Z2F0ZVByaXZhdGUuaWRsIgogI2luY2x1ZGUgIklXZWJTY3JvbGxCYXJQcml2YXRlLmlkbCIKICNp
bmNsdWRlICJJV2ViU2VjdXJpdHlPcmlnaW4uaWRsIgpAQCAtMzMxLDExICszMjgsNiBAQCBsaWJy
YXJ5IFdlYktpdAogICAgICAgICBbZGVmYXVsdF0gaW50ZXJmYWNlIElXZWJTY3JvbGxCYXJQcml2
YXRlOwogICAgIH0KIAotICAgIFt1dWlkKDcxNTYzNkM0LTU5RTctNGI4NS1CQkM1LUI1NTU4ODg3
ODdENyldCi0gICAgY29jbGFzcyBXZWJTY3JpcHREZWJ1Z1NlcnZlciB7Ci0gICAgICAgIFtkZWZh
dWx0XSBpbnRlcmZhY2UgSVdlYlNjcmlwdERlYnVnU2VydmVyOwotICAgIH0KLQogICAgIFt1dWlk
KEFCMjAxMTk2LThERDItNGQ0NS1BRUJELTAyOUI2QTM3QUEyNyldCiAgICAgY29jbGFzcyBXZWJV
UkxSZXNwb25zZSB7CiAgICAgICAgIFtkZWZhdWx0XSBpbnRlcmZhY2UgSVdlYlVSTFJlc3BvbnNl
OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAgYi9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCA0YWZhOTYwLi40OTgxMmNiIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNDQsNyArNDQsNiBAQAogI2lu
Y2x1ZGUgIldlYkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiV2ViTXV0YWJsZVVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25DZW50ZXIuaCIKLSNpbmNsdWRlICJXZWJTY3Jp
cHREZWJ1Z1NlcnZlci5oIgogI2luY2x1ZGUgIldlYlVSTEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
LmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2ogYi9X
ZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovSW50ZXJmYWNlcy52Y3Byb2oKaW5kZXggOGYzODY1NS4u
ZmUyYTQ3MCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL0ludGVyZmFjZXMu
dmNwcm9qCisrKyBiL1dlYktpdC93aW4vV2ViS2l0LnZjcHJvai9JbnRlcmZhY2VzLnZjcHJvagpA
QCAtMTE3Miw2NiArMTE3Miw2IEBACiAJCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KIAkJPC9GaWxl
Pg0KIAkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcSVdlYlNjcmlwdENh
bGxGcmFtZS5pZGwiDQotCQkJPg0KLQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQlOYW1lPSJE
ZWJ1Z3xXaW4zMiINCi0JCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCT4NCi0JCQkJ
PFRvb2wNCi0JCQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCS8+DQotCQkJPC9GaWxlQ29uZmln
dXJhdGlvbj4NCi0JCQk8RmlsZUNvbmZpZ3VyYXRpb24NCi0JCQkJTmFtZT0iUmVsZWFzZXxXaW4z
MiINCi0JCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiDQotCQkJCT4NCi0JCQkJPFRvb2wNCi0J
CQkJCU5hbWU9IlZDTUlETFRvb2wiDQotCQkJCS8+DQotCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4N
Ci0JCTwvRmlsZT4NCi0JCTxGaWxlDQotCQkJUmVsYXRpdmVQYXRoPSIuLlxJbnRlcmZhY2VzXElX
ZWJTY3JpcHREZWJ1Z0xpc3RlbmVyLmlkbCINCi0JCQk+DQotCQkJPEZpbGVDb25maWd1cmF0aW9u
DQotCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIN
Ci0JCQkJPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJLz4NCi0J
CQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KLQkJCQlOYW1l
PSJSZWxlYXNlfFdpbjMyIg0KLQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSINCi0JCQkJPg0K
LQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJLz4NCi0JCQk8L0ZpbGVD
b25maWd1cmF0aW9uPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCi0JCQlSZWxhdGl2ZVBhdGg9Ii4u
XEludGVyZmFjZXNcSVdlYlNjcmlwdERlYnVnU2VydmVyLmlkbCINCi0JCQk+DQotCQkJPEZpbGVD
b25maWd1cmF0aW9uDQotCQkJCU5hbWU9IkRlYnVnfFdpbjMyIg0KLQkJCQlFeGNsdWRlZEZyb21C
dWlsZD0idHJ1ZSINCi0JCQkJPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNNSURMVG9vbCIN
Ci0JCQkJLz4NCi0JCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJCTxGaWxlQ29uZmlndXJhdGlv
bg0KLQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIg0KLQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1
ZSINCi0JCQkJPg0KLQkJCQk8VG9vbA0KLQkJCQkJTmFtZT0iVkNNSURMVG9vbCINCi0JCQkJLz4N
Ci0JCQk8L0ZpbGVDb25maWd1cmF0aW9uPg0KLQkJPC9GaWxlPg0KLQkJPEZpbGUNCiAJCQlSZWxh
dGl2ZVBhdGg9Ii4uXEludGVyZmFjZXNcSVdlYlNjcmlwdE9iamVjdC5pZGwiDQogCQkJPg0KIAkJ
CTxGaWxlQ29uZmlndXJhdGlvbg0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViS2l0LnZjcHJv
ai9XZWJLaXQudmNwcm9qIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52Y3Byb2oK
aW5kZXggOWExMzIwYi4uMjczOTJmOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJLaXQudmNw
cm9qL1dlYktpdC52Y3Byb2oKKysrIGIvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktpdC52
Y3Byb2oKQEAgLTY5OCwxNCArNjk4LDYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cV2ViU2NyaXB0Q2FsbEZyYW1lLmgiDQotCQkJCT4NCi0J
CQk8L0ZpbGU+DQotCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJTY3JpcHREZWJ1
Z1NlcnZlci5oIg0KLQkJCQk+DQotCQkJPC9GaWxlPg0KLQkJCTxGaWxlDQogCQkJCVJlbGF0aXZl
UGF0aD0iLi5cV2ViU2NyaXB0T2JqZWN0LmgiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMTAw
NiwxNCArOTk4LDYgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQotCQkJCVJlbGF0
aXZlUGF0aD0iLi5cV2ViU2NyaXB0Q2FsbEZyYW1lLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4N
Ci0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlNjcmlwdERlYnVnU2VydmVyLmNw
cCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFdlYlNjcmlwdE9iamVjdC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9XZWJLaXRDbGFzc0ZhY3RvcnkuY3BwIGIvV2ViS2l0L3dpbi9XZWJLaXRDbGFz
c0ZhY3RvcnkuY3BwCmluZGV4IDExMmRhYmUuLmFiM2M0MDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vV2ViS2l0Q2xhc3NGYWN0b3J5LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYktpdENsYXNzRmFj
dG9yeS5jcHAKQEAgLTUxLDcgKzUxLDYgQEAKICNpbmNsdWRlICJXZWJVUkxDcmVkZW50aWFsLmgi
CiAjaW5jbHVkZSAiV2ViVVJMUHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVz
cG9uc2UuaCIKLSNpbmNsdWRlICJXZWJTY3JpcHREZWJ1Z1NlcnZlci5oIgogI2luY2x1ZGUgIldl
YlZpZXcuaCIKICNwcmFnbWEgd2FybmluZyhwdXNoLCAwKQogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0luaXRpYWxpemVUaHJlYWRpbmcuaD4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViS2l0
RExMLmNwcCBiL1dlYktpdC93aW4vV2ViS2l0RExMLmNwcAppbmRleCAyZGYzNTg0Li43OTk4MDU2
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYktpdERMTC5jcHAKKysrIGIvV2ViS2l0L3dpbi9X
ZWJLaXRETEwuY3BwCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAicmVzb3VyY2UuaCIKICNp
bmNsdWRlICJXZWJLaXQuaCIKICNpbmNsdWRlICJXZWJLaXRDbGFzc0ZhY3RvcnkuaCIKLSNpbmNs
dWRlICJXZWJTY3JpcHREZWJ1Z1NlcnZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ09NUHRyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xv
Y2FsU3RvcmFnZS5oPgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJTY3JpcHRDYWxsRnJhbWUu
Y3BwIGIvV2ViS2l0L3dpbi9XZWJTY3JpcHRDYWxsRnJhbWUuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmYTc2ZmU5Li4wMDAwMDAwCi0tLSBhL1dlYktpdC93aW4vV2ViU2NyaXB0
Q2FsbEZyYW1lLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDI4NSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0g
KiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFO
RCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
T1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViU2NyaXB0Q2FsbEZyYW1lLmgiCi0KLSNp
bmNsdWRlICJDT01FbnVtVmFyaWFudC5oIgotI2luY2x1ZGUgIldlYktpdERMTC5oIgotCi0jaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvQ29tcGxldGlvbi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0dsb2JhbE9iamVj
dC5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTTG9jay5oPgotI2luY2x1ZGUgPEphdmFT
Y3JpcHRDb3JlL0pTU3RyaW5nUmVmQlNUUi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pT
VmFsdWVSZWYuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9Qcm9wZXJ0eU5hbWVBcnJheS5o
PgotCi0jcHJhZ21hIHdhcm5pbmcocHVzaCwgMCkKLSNpbmNsdWRlIDxXZWJDb3JlL0JTdHJpbmcu
aD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU3RyaW5nLmg+Ci0jcHJhZ21hIHdhcm5pbmco
cG9wKQotCi0jaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpT
QzsKLQotVVN0cmluZyBXZWJTY3JpcHRDYWxsRnJhbWU6OmpzVmFsdWVUb1N0cmluZyhKU0M6OkV4
ZWNTdGF0ZSogc3RhdGUsIEpTVmFsdWVQdHIganN2YWx1ZSkKLXsKLSAgICBpZiAoIWpzdmFsdWUp
Ci0gICAgICAgIHJldHVybiAidW5kZWZpbmVkIjsKLQotICAgIGlmIChqc3ZhbHVlLmlzU3RyaW5n
KCkpCi0gICAgICAgIHJldHVybiBqc3ZhbHVlLmdldFN0cmluZygpOwotICAgIGVsc2UgaWYgKGpz
dmFsdWUuaXNOdW1iZXIoKSkKLSAgICAgICAgcmV0dXJuIFVTdHJpbmc6OmZyb20oanN2YWx1ZS51
bmNoZWNrZWRHZXROdW1iZXIoKSk7Ci0gICAgZWxzZSBpZiAoanN2YWx1ZS5pc0Jvb2xlYW4oKSkK
LSAgICAgICAgcmV0dXJuIGpzdmFsdWUuZ2V0Qm9vbGVhbigpID8gIlRydWUiIDogIkZhbHNlIjsK
LSAgICBlbHNlIGlmIChqc3ZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAganN2YWx1ZSA9IGpz
dmFsdWUuZ2V0T2JqZWN0KCktPmRlZmF1bHRWYWx1ZShzdGF0ZSwgUHJlZmVyU3RyaW5nKTsKLSAg
ICAgICAgcmV0dXJuIGpzdmFsdWUuZ2V0U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgcmV0dXJuICJ1
bmRlZmluZWQiOwotfQotCi0vLyBXZWJTY3JpcHRDYWxsRnJhbWUgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotc3RhdGljIEV4ZWNT
dGF0ZSogY2FsbGluZ0Z1bmN0aW9uT3JHbG9iYWxFeGVjU3RhdGUoRXhlY1N0YXRlKiBleGVjKQot
ewotI2lmIDAKLSAgICBmb3IgKEV4ZWNTdGF0ZSogY3VycmVudCA9IGV4ZWM7IGN1cnJlbnQ7IGN1
cnJlbnQgPSBjdXJyZW50LT5jYWxsaW5nRXhlY1N0YXRlKCkpCi0gICAgICAgIGlmIChjdXJyZW50
LT5jb2RlVHlwZSgpID09IEZ1bmN0aW9uQ29kZSB8fCBjdXJyZW50LT5jb2RlVHlwZSgpID09IEds
b2JhbENvZGUpCi0gICAgICAgICAgICByZXR1cm4gY3VycmVudDsKLSNlbmRpZgotICAgIHJldHVy
biAwOwotfQotCi1XZWJTY3JpcHRDYWxsRnJhbWU6OldlYlNjcmlwdENhbGxGcmFtZShFeGVjU3Rh
dGUqIHN0YXRlKQotICAgIDogbV9yZWZDb3VudCgwKQotICAgICwgbV9zdGF0ZShjYWxsaW5nRnVu
Y3Rpb25Pckdsb2JhbEV4ZWNTdGF0ZShzdGF0ZSkpCi17Ci0gICAgQVNTRVJUX0FSRyhzdGF0ZSwg
c3RhdGUpOwotICAgIEFTU0VSVChtX3N0YXRlKTsKLSAgICBnQ2xhc3NDb3VudCsrOwotICAgIGdD
bGFzc05hbWVDb3VudC5hZGQoIldlYlNjcmlwdENhbGxGcmFtZSIpOwotfQotCi1XZWJTY3JpcHRD
YWxsRnJhbWU6On5XZWJTY3JpcHRDYWxsRnJhbWUoKQotewotICAgIGdDbGFzc0NvdW50LS07Ci0g
ICAgZ0NsYXNzTmFtZUNvdW50LnJlbW92ZSgiV2ViU2NyaXB0Q2FsbEZyYW1lIik7Ci19Ci0KLVdl
YlNjcmlwdENhbGxGcmFtZSogV2ViU2NyaXB0Q2FsbEZyYW1lOjpjcmVhdGVJbnN0YW5jZShFeGVj
U3RhdGUqIHN0YXRlKQotewotICAgIFdlYlNjcmlwdENhbGxGcmFtZSogaW5zdGFuY2UgPSBuZXcg
V2ViU2NyaXB0Q2FsbEZyYW1lKHN0YXRlKTsKLSAgICBpbnN0YW5jZS0+QWRkUmVmKCk7Ci0gICAg
cmV0dXJuIGluc3RhbmNlOwotfQotCi0vLyBJVW5rbm93biAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJTY3JpcHRDYWxsRnJhbWU6OlF1ZXJ5SW50ZXJmYWNlKFJFRklJ
RCByaWlkLCB2b2lkKiogcHB2T2JqZWN0KQotewotICAgICpwcHZPYmplY3QgPSAwOwotICAgIGlm
IChJc0VxdWFsR1VJRChyaWlkLCBJSURfSVVua25vd24pKQotICAgICAgICAqcHB2T2JqZWN0ID0g
c3RhdGljX2Nhc3Q8SVdlYlNjcmlwdENhbGxGcmFtZSo+KHRoaXMpOwotICAgIGVsc2UgaWYgKElz
RXF1YWxHVUlEKHJpaWQsIElJRF9JV2ViU2NyaXB0Q2FsbEZyYW1lKSkKLSAgICAgICAgKnBwdk9i
amVjdCA9IHN0YXRpY19jYXN0PElXZWJTY3JpcHRDYWxsRnJhbWUqPih0aGlzKTsKLSAgICBlbHNl
Ci0gICAgICAgIHJldHVybiBFX05PSU5URVJGQUNFOwotCi0gICAgQWRkUmVmKCk7Ci0gICAgcmV0
dXJuIFNfT0s7Ci19Ci0KLVVMT05HIFNURE1FVEhPRENBTExUWVBFIFdlYlNjcmlwdENhbGxGcmFt
ZTo6QWRkUmVmKCkKLXsKLSAgICByZXR1cm4gKyttX3JlZkNvdW50OwotfQotCi1VTE9ORyBTVERN
RVRIT0RDQUxMVFlQRSBXZWJTY3JpcHRDYWxsRnJhbWU6OlJlbGVhc2UoKQotewotICAgIFVMT05H
IG5ld1JlZiA9IC0tbV9yZWZDb3VudDsKLSAgICBpZiAoIW5ld1JlZikKLSAgICAgICAgZGVsZXRl
KHRoaXMpOwotCi0gICAgcmV0dXJuIG5ld1JlZjsKLX0KLQotLy8gSVdlYlNjcmlwdENhbGxGcmFt
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQotCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlNjcmlwdENhbGxGcmFtZTo6Y2Fs
bGVyKAotICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gSVdlYlNjcmlwdENhbGxGcmFtZSoqIGNhbGxG
cmFtZSkKLXsKLSAgICBpZiAoIWNhbGxGcmFtZSkKLSAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsK
LSNpZiAwCi0gICAgKmNhbGxGcmFtZSA9IG1fc3RhdGUtPmNhbGxpbmdFeGVjU3RhdGUoKSA/IFdl
YlNjcmlwdENhbGxGcmFtZTo6Y3JlYXRlSW5zdGFuY2UobV9zdGF0ZS0+Y2FsbGluZ0V4ZWNTdGF0
ZSgpKSA6IDA7Ci0jZW5kaWYKLSAgICByZXR1cm4gU19PSzsKLX0KLQotSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJTY3JpcHRDYWxsRnJhbWU6OmZ1bmN0aW9uTmFtZSgKLSAgICAvKiBbb3V0
LCByZXR2YWxdICovIEJTVFIqIGZ1bmNOYW1lKQotewotICAgIGlmICghZnVuY05hbWUpCi0gICAg
ICAgIHJldHVybiBFX1BPSU5URVI7Ci0KLSAgICAqZnVuY05hbWUgPSAwOwotI2lmIDAKLSAgICBp
ZiAoIW1fc3RhdGUtPnNjb3BlTm9kZSgpKQotICAgICAgICByZXR1cm4gU19PSzsKLQotICAgIEpT
RnVuY3Rpb24qIGZ1bmMgPSBtX3N0YXRlLT5mdW5jdGlvbigpOwotICAgIGlmICghZnVuYykKLSAg
ICAgICAgcmV0dXJuIEVfRkFJTDsKLQotICAgIGNvbnN0IElkZW50aWZpZXImIGZ1bmNJZGVudCA9
IGZ1bmMtPmZ1bmN0aW9uTmFtZSgpOwotICAgIGlmICghZnVuY0lkZW50LmlzRW1wdHkoKSkKLSAg
ICAgICAgKmZ1bmNOYW1lID0gV2ViQ29yZTo6QlN0cmluZyhmdW5jSWRlbnQpLnJlbGVhc2UoKTsK
LSNlbmRpZgotICAgIHJldHVybiBTX09LOwotfQotCi1IUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlNjcmlwdENhbGxGcmFtZTo6c3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJp
bmcoCi0gICAgLyogW2luXSAqLyBCU1RSIHNjcmlwdCwKLSAgICAvKiBbb3V0LCByZXR2YWxdICov
IEJTVFIqIHJlc3VsdCkKLXsKLSAgICBpZiAoIXNjcmlwdCkKLSAgICAgICAgcmV0dXJuIEVfRkFJ
TDsKLQotICAgIGlmICghcmVzdWx0KQotICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwotCi0gICAg
KnJlc3VsdCA9IDA7Ci0KLSAgICBKU0xvY2sgbG9jayhmYWxzZSk7Ci0KLSAgICBKU1ZhbHVlUHRy
IHNjcmlwdEV4ZWN1dGlvblJlc3VsdCA9IHZhbHVlQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21T
dHJpbmcoc2NyaXB0KTsKLSAgICAqcmVzdWx0ID0gV2ViQ29yZTo6QlN0cmluZyhqc1ZhbHVlVG9T
dHJpbmcobV9zdGF0ZSwgc2NyaXB0RXhlY3V0aW9uUmVzdWx0KSkucmVsZWFzZSgpOwotCi0gICAg
cmV0dXJuIFNfT0s7Ci19Ci0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0Q2Fs
bEZyYW1lOjp2YXJpYWJsZU5hbWVzKAotICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gSUVudW1WQVJJ
QU5UKiogdmFyaWFibGVOYW1lcykKLXsKLSAgICBpZiAoIXZhcmlhYmxlTmFtZXMpCi0gICAgICAg
IHJldHVybiBFX1BPSU5URVI7Ci0KLSAgICAqdmFyaWFibGVOYW1lcyA9IDA7Ci0KLSAgICBQcm9w
ZXJ0eU5hbWVBcnJheSBwcm9wZXJ0eU5hbWVzKG1fc3RhdGUpOwotI2lmIDAKLSAgICBtX3N0YXRl
LT5zY29wZUNoYWluKCkudG9wKCktPmdldFByb3BlcnR5TmFtZXMobV9zdGF0ZSwgcHJvcGVydHlO
YW1lcyk7Ci0gICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRvIHVzZSA6
OmFkb3B0IGhlcmUsIGJ1dCBQcm9wZXJ0eU5hbWVBcnJheSBkb2Vzbid0IGhhdmUgYSBzd2FwIGZ1
bmN0aW9uLgotICAgICp2YXJpYWJsZU5hbWVzID0gQ09NRW51bVZhcmlhbnQ8UHJvcGVydHlOYW1l
QXJyYXk+OjpjcmVhdGVJbnN0YW5jZShwcm9wZXJ0eU5hbWVzKTsKLQotI2VuZGlmCi0gICAgcmV0
dXJuIFNfT0s7Ci19Ci0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0Q2FsbEZy
YW1lOjp2YWx1ZUZvclZhcmlhYmxlKAotICAgIC8qIFtpbl0gKi8gQlNUUiBrZXksCi0gICAgLyog
W291dCwgcmV0dmFsXSAqLyBCU1RSKiB2YWx1ZSkKLXsKLSAgICBpZiAoIWtleSkKLSAgICAgICAg
cmV0dXJuIEVfRkFJTDsKLQotICAgIGlmICghdmFsdWUpCi0gICAgICAgIHJldHVybiBFX1BPSU5U
RVI7Ci0KLSAgICAqdmFsdWUgPSAwOwotCi0gICAgSWRlbnRpZmllciBpZGVudEtleShtX3N0YXRl
LCByZWludGVycHJldF9jYXN0PFVDaGFyKj4oa2V5KSwgU3lzU3RyaW5nTGVuKGtleSkpOwotCi0j
aWYgMAotICAgIEpTVmFsdWVQdHIganN2YWx1ZSA9IG5vVmFsdWUoKTsKLSAgICBTY29wZUNoYWlu
IHNjb3BlQ2hhaW4gPSBtX3N0YXRlLT5zY29wZUNoYWluKCk7Ci0gICAgZm9yIChTY29wZUNoYWlu
SXRlcmF0b3IgaXQgPSBzY29wZUNoYWluLmJlZ2luKCk7IGl0ICE9IHNjb3BlQ2hhaW4uZW5kKCkg
JiYgIWpzdmFsdWU7ICsraXQpCi0gICAgICAgIGpzdmFsdWUgPSAoKml0KS0+Z2V0KG1fc3RhdGUs
IGlkZW50S2V5KTsKLSAgICAqdmFsdWUgPSBXZWJDb3JlOjpCU3RyaW5nKGpzVmFsdWVUb1N0cmlu
ZyhtX3N0YXRlLCBqc3ZhbHVlKSkucmVsZWFzZSgpOwotI2VuZGlmCi0KLSAgICByZXR1cm4gU19P
SzsKLX0KLQotSlNWYWx1ZVB0ciBXZWJTY3JpcHRDYWxsRnJhbWU6OnZhbHVlQnlFdmFsdWF0aW5n
SmF2YVNjcmlwdEZyb21TdHJpbmcoQlNUUiBzY3JpcHQpCi17Ci0jaWYgMAotICAgIEV4ZWNTdGF0
ZSogc3RhdGUgPSBtX3N0YXRlOwotICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iT2JqID0gc3RhdGUt
PmR5bmFtaWNHbG9iYWxPYmplY3QoKTsKLQotICAgIC8vIGZpbmQgImV2YWwiCi0gICAgSlNPYmpl
Y3QqIGV2YWwgPSAwOwotICAgIGlmIChzdGF0ZS0+c2NvcGVOb2RlKCkpIHsgIC8vICJldmFsIiB3
b24ndCB3b3JrIHdpdGhvdXQgY29udGV4dCAoaS5lLiBhdCBnbG9iYWwgc2NvcGUpCi0gICAgICAg
IEpTVmFsdWVQdHIgdiA9IGdsb2JPYmotPmdldChzdGF0ZSwgImV2YWwiKTsKLSAgICAgICAgaWYg
KHYtPmlzT2JqZWN0KCkgJiYgYXNPYmplY3QodiktPmltcGxlbWVudHNDYWxsKCkpCi0gICAgICAg
ICAgICBldmFsID0gYXNPYmplY3Qodik7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIC8vIG5v
ICJldmFsIiAtIGZhbGxiYWNrIG9wZXJhdGVzIG9uIGdsb2JhbCBleGVjIHN0YXRlCi0gICAgICAg
ICAgICBzdGF0ZSA9IGdsb2JPYmotPmdsb2JhbEV4ZWMoKTsKLSAgICB9Ci0KLSAgICBKU1ZhbHVl
UHRyIHNhdmVkRXhjZXB0aW9uID0gc3RhdGUtPmV4Y2VwdGlvbigpOwotICAgIHN0YXRlLT5jbGVh
ckV4Y2VwdGlvbigpOwotCi0gICAgVVN0cmluZyBjb2RlKHJlaW50ZXJwcmV0X2Nhc3Q8VUNoYXIq
PihzY3JpcHQpLCBTeXNTdHJpbmdMZW4oc2NyaXB0KSk7Ci0KLSAgICAvLyBldmFsdWF0ZQotICAg
IEpTVmFsdWVQdHIgc2NyaXB0RXhlY3V0aW9uUmVzdWx0OwotICAgIGlmIChldmFsKSB7Ci0gICAg
ICAgIEFyZ0xpc3QgYXJnczsKLSAgICAgICAgYXJncy5hcHBlbmQoanNTdHJpbmcoc3RhdGUsIGNv
ZGUpKTsKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uUmVzdWx0ID0gZXZhbC0+Y2FsbChzdGF0ZSwg
MCwgYXJncyk7Ci0gICAgfSBlbHNlCi0gICAgICAgIC8vIG5vICJldmFsIiwgb3Igbm8gY29udGV4
dCAoaS5lLiBnbG9iYWwgc2NvcGUpIC0gdXNlIGdsb2JhbCBmYWxsYmFjawotICAgICAgICBzY3Jp
cHRFeGVjdXRpb25SZXN1bHQgPSBKU0M6OmV2YWx1YXRlKHN0YXRlLCBVU3RyaW5nKCksIDAsIGNv
ZGUuZGF0YSgpLCBjb2RlLnNpemUoKSwgZ2xvYk9iaikudmFsdWUoKTsKLQotICAgIGlmIChzdGF0
ZS0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgIHNjcmlwdEV4ZWN1dGlvblJlc3VsdCA9IHN0YXRl
LT5leGNlcHRpb24oKTsgICAgLy8gKG1heSBiZSByZWR1bmRhbnQgZGVwZW5kaW5nIG9uIHdoaWNo
IGV2YWwgcGF0aCB3YXMgdXNlZCkKLSAgICBzdGF0ZS0+c2V0RXhjZXB0aW9uKHNhdmVkRXhjZXB0
aW9uKTsKLQotICAgIHJldHVybiBzY3JpcHRFeGVjdXRpb25SZXN1bHQ7Ci0jZWxzZQotICAgIHJl
dHVybiBqc051bGwoKTsKLSNlbmRpZgotfQotCi10ZW1wbGF0ZTw+IHN0cnVjdCBDT01WYXJpYW50
U2V0dGVyPElkZW50aWZpZXI+Ci17Ci0gICAgc3RhdGljIHZvaWQgc2V0VmFyaWFudChWQVJJQU5U
KiB2YXJpYW50LCBjb25zdCBJZGVudGlmaWVyJiB2YWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VS
VChWX1ZUKHZhcmlhbnQpID09IFZUX0VNUFRZKTsKLQotICAgICAgICBWX1ZUKHZhcmlhbnQpID0g
VlRfQlNUUjsKLSAgICAgICAgVl9CU1RSKHZhcmlhbnQpID0gV2ViQ29yZTo6QlN0cmluZyhyZWlu
dGVycHJldF9jYXN0PGNvbnN0IHdjaGFyX3QqPih2YWx1ZS5kYXRhKCkpLCB2YWx1ZS5zaXplKCkp
LnJlbGVhc2UoKTsKLSAgICB9Ci19OwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJTY3JpcHRD
YWxsRnJhbWUuaCBiL1dlYktpdC93aW4vV2ViU2NyaXB0Q2FsbEZyYW1lLmgKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGQzYzMyNDMuLjAwMDAwMDAKLS0tIGEvV2ViS2l0L3dpbi9XZWJT
Y3JpcHRDYWxsRnJhbWUuaAorKysgL2Rldi9udWxsCkBAIC0xLDg4ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIs
IEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAg
ICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJ
VFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFdlYlNjcmlwdENhbGxGcmFtZV9oCi0jZGVmaW5lIFdlYlNjcmlwdENhbGxGcmFtZV9oCi0K
LSNpbmNsdWRlICJXZWJLaXQuaCIKLSNpbmNsdWRlIDxydW50aW1lL0pTVmFsdWUuaD4KLQotbmFt
ZXNwYWNlIEpTQyB7Ci0gICAgY2xhc3MgRXhlY1N0YXRlOwotICAgIGNsYXNzIFVTdHJpbmc7Ci19
Ci0KLWNsYXNzIFdlYlNjcmlwdENhbGxGcmFtZSA6IHB1YmxpYyBJV2ViU2NyaXB0Q2FsbEZyYW1l
IHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgV2ViU2NyaXB0Q2FsbEZyYW1lKiBjcmVhdGVJbnN0YW5j
ZShKU0M6OkV4ZWNTdGF0ZSopOwotCi1wcml2YXRlOgotICAgIFdlYlNjcmlwdENhbGxGcmFtZShK
U0M6OkV4ZWNTdGF0ZSopOwotICAgIHZpcnR1YWwgfldlYlNjcmlwdENhbGxGcmFtZSgpOwotCi1w
dWJsaWM6Ci0gICAgLy8gSVVua25vd24KLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgUXVlcnlJbnRlcmZhY2UoIAotICAgICAgICAvKiBbaW5dICovIFJFRklJRCwKLSAgICAg
ICAgLyogW3JldHZhbF1bb3V0XSAqLyB2b2lkKiogcHB2T2JqZWN0KTsKLSAgICAKLSAgICB2aXJ0
dWFsIFVMT05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpOwotCi0gICAgdmlydHVhbCBVTE9O
RyBTVERNRVRIT0RDQUxMVFlQRSBSZWxlYXNlKCk7Ci0KLSAgICAvLyBJV2ViU2NyaXB0Q2FsbEZy
YW1lCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNhbGxlcigKLSAgICAg
ICAgLyogW291dCwgcmV0dmFsXSAqLyBJV2ViU2NyaXB0Q2FsbEZyYW1lKiopOwotCi0gICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGZ1bmN0aW9uTmFtZSgKLSAgICAgICAgLyog
W291dCwgcmV0dmFsXSAqLyBCU1RSKik7Ci0KLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJpbmcoCi0gICAgICAg
IC8qIFtpbl0gKi8gQlNUUiBzY3JpcHQsCi0gICAgICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gQlNU
UiopOwotCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHZhcmlhYmxlTmFt
ZXMoIAotICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIElFbnVtVkFSSUFOVCoqKTsKLQotICAg
IHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB2YWx1ZUZvclZhcmlhYmxlKAotICAg
ICAgICAvKiBbaW5dICovIEJTVFIga2V5LAotICAgICAgICAvKiBbb3V0LCByZXR2YWxdICovIEJT
VFIqIHZhbHVlKTsKLQotICAgIC8vIEhlbHBlciBhbmQgYWNjZXNzb3JzCi0gICAgdmlydHVhbCBK
U0M6OkpTVmFsdWVQdHIgdmFsdWVCeUV2YWx1YXRpbmdKYXZhU2NyaXB0RnJvbVN0cmluZyhCU1RS
IHNjcmlwdCk7Ci0gICAgdmlydHVhbCBKU0M6OkV4ZWNTdGF0ZSogc3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRlOyB9Ci0KLSAgICBzdGF0aWMgSlNDOjpVU3RyaW5nIGpzVmFsdWVUb1N0cmlu
ZyhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZVB0cik7Ci0KLXByaXZhdGU6Ci0gICAgVUxP
TkcgbV9yZWZDb3VudDsKLQotICAgIEpTQzo6RXhlY1N0YXRlKiBtX3N0YXRlOwotfTsKLQotI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlNjcmlwdERlYnVnU2VydmVyLmNwcCBiL1dl
YktpdC93aW4vV2ViU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBkZGY3NjJmLi4wMDAwMDAwCi0tLSBhL1dlYktpdC93aW4vV2ViU2NyaXB0RGVidWdT
ZXJ2ZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTIyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYktpdC5oIgotI2luY2x1ZGUgIldlYktpdERM
TC5oIgotI2luY2x1ZGUgIldlYlNjcmlwdERlYnVnU2VydmVyLmgiCi0KLS8vIFdlYlNjcmlwdERl
YnVnU2VydmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotCi1XZWJTY3JpcHREZWJ1Z1NlcnZlcjo6V2ViU2NyaXB0RGVidWdTZXJ2
ZXIoKQotICAgIDogbV9yZWZDb3VudCgwKQotewotICAgIGdDbGFzc0NvdW50Kys7Ci0gICAgZ0Ns
YXNzTmFtZUNvdW50LmFkZCgiV2ViU2NyaXB0RGVidWdTZXJ2ZXIiKTsKLX0KLQotV2ViU2NyaXB0
RGVidWdTZXJ2ZXI6On5XZWJTY3JpcHREZWJ1Z1NlcnZlcigpCi17Ci0gICAgZ0NsYXNzQ291bnQt
LTsKLSAgICBnQ2xhc3NOYW1lQ291bnQucmVtb3ZlKCJXZWJTY3JpcHREZWJ1Z1NlcnZlciIpOwot
fQotCi1XZWJTY3JpcHREZWJ1Z1NlcnZlciogV2ViU2NyaXB0RGVidWdTZXJ2ZXI6OmNyZWF0ZUlu
c3RhbmNlKCkKLXsKLSAgICBXZWJTY3JpcHREZWJ1Z1NlcnZlciogaW5zdGFuY2UgPSBuZXcgV2Vi
U2NyaXB0RGVidWdTZXJ2ZXI7Ci0gICAgaW5zdGFuY2UtPkFkZFJlZigpOwotICAgIHJldHVybiBp
bnN0YW5jZTsKLX0KLQotLy8gSVVua25vd24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1IUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFdlYlNjcmlwdERlYnVnU2VydmVyOjpRdWVyeUludGVyZmFjZShSRUZJSUQgcmlp
ZCwgdm9pZCoqIHBwdk9iamVjdCkKLXsKLSAgICAqcHB2T2JqZWN0ID0gMDsKLSAgICBpZiAoSXNF
cXVhbEdVSUQocmlpZCwgSUlEX0lVbmtub3duKSkKLSAgICAgICAgKnBwdk9iamVjdCA9IHN0YXRp
Y19jYXN0PFdlYlNjcmlwdERlYnVnU2VydmVyKj4odGhpcyk7Ci0gICAgZWxzZSBpZiAoSXNFcXVh
bEdVSUQocmlpZCwgSUlEX0lXZWJTY3JpcHREZWJ1Z1NlcnZlcikpCi0gICAgICAgICpwcHZPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxXZWJTY3JpcHREZWJ1Z1NlcnZlcio+KHRoaXMpOwotICAgIGVsc2UK
LSAgICAgICAgcmV0dXJuIEVfTk9JTlRFUkZBQ0U7Ci0KLSAgICBBZGRSZWYoKTsKLSAgICByZXR1
cm4gU19PSzsKLX0KLQotVUxPTkcgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVidWdTZXJ2
ZXI6OkFkZFJlZigpCi17Ci0gICAgcmV0dXJuICsrbV9yZWZDb3VudDsKLX0KLQotVUxPTkcgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVidWdTZXJ2ZXI6OlJlbGVhc2UoKQotewotICAgIFVM
T05HIG5ld1JlZiA9IC0tbV9yZWZDb3VudDsKLSAgICBpZiAoIW5ld1JlZikKLSAgICAgICAgZGVs
ZXRlKHRoaXMpOwotCi0gICAgcmV0dXJuIG5ld1JlZjsKLX0KLQotLy8gSVdlYlNjcmlwdERlYnVn
U2VydmVyIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVidWdTZXJ2
ZXI6OnNoYXJlZFdlYlNjcmlwdERlYnVnU2VydmVyKCAKLSAgICAvKiBbcmV0dmFsXVtvdXRdICov
IElXZWJTY3JpcHREZWJ1Z1NlcnZlcioqKQotewotICAgIHJldHVybiBFX05PVElNUEw7Ci19Ci0K
LUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVidWdTZXJ2ZXI6OmFkZExpc3Rl
bmVyKAotICAgIC8qIFtpbl0gKi8gSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIqKQotewotICAgIHJl
dHVybiBFX05PVElNUEw7Ci19Ci0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0
RGVidWdTZXJ2ZXI6OnJlbW92ZUxpc3RlbmVyKAotICAgIC8qIFtpbl0gKi8gSVdlYlNjcmlwdERl
YnVnTGlzdGVuZXIqKQotewotICAgIHJldHVybiBFX05PVElNUEw7Ci19Ci0KLUhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVidWdTZXJ2ZXI6OnN0ZXAoKQotewotICAgIHJldHVy
biBFX05PVElNUEw7Ci19Ci0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2NyaXB0RGVi
dWdTZXJ2ZXI6OnBhdXNlKCkKLXsKLSAgICByZXR1cm4gRV9OT1RJTVBMOwotfQotCi1IUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlNjcmlwdERlYnVnU2VydmVyOjpyZXN1bWUoKQotewotICAg
IHJldHVybiBFX05PVElNUEw7Ci19Ci0KLUhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViU2Ny
aXB0RGVidWdTZXJ2ZXI6OmlzUGF1c2VkKAotICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gQk9PTCop
Ci17Ci0gICAgcmV0dXJuIEVfTk9USU1QTDsKLX0KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
U2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1dlYktpdC93aW4vV2ViU2NyaXB0RGVidWdTZXJ2ZXIuaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmI4ZWI3OS4uMDAwMDAwMAotLS0gYS9XZWJL
aXQvd2luL1dlYlNjcmlwdERlYnVnU2VydmVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAotICovCi0KLSNpZm5kZWYgV2ViU2NyaXB0RGVidWdTZXJ2ZXJfSAotI2RlZmluZSBX
ZWJTY3JpcHREZWJ1Z1NlcnZlcl9ICi0KLSNpbmNsdWRlICJXZWJLaXQuaCIKLQotY2xhc3MgV2Vi
U2NyaXB0RGVidWdTZXJ2ZXIgOiBwdWJsaWMgSVdlYlNjcmlwdERlYnVnU2VydmVyIHsKLXB1Ymxp
YzoKLSAgICBzdGF0aWMgV2ViU2NyaXB0RGVidWdTZXJ2ZXIqIGNyZWF0ZUluc3RhbmNlKCk7Ci0K
LSAgICAvLyBJVW5rbm93bgotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBR
dWVyeUludGVyZmFjZSggCi0gICAgICAgIC8qIFtpbl0gKi8gUkVGSUlEIHJpaWQsCi0gICAgICAg
IC8qIFtpaWRfaXNdW291dF0gKi8gdm9pZCoqIHBwdk9iamVjdCk7Ci0KLSAgICB2aXJ0dWFsIFVM
T05HIFNURE1FVEhPRENBTExUWVBFIEFkZFJlZigpOwotCi0gICAgdmlydHVhbCBVTE9ORyBTVERN
RVRIT0RDQUxMVFlQRSBSZWxlYXNlKCk7Ci0KLSAgICAvLyBJV2ViU2NyaXB0RGVidWdTZXJ2ZXIK
LSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2hhcmVkV2ViU2NyaXB0RGVi
dWdTZXJ2ZXIoIAotICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIElXZWJTY3JpcHREZWJ1Z1Nl
cnZlcioqIHNlcnZlcik7Ci0KLSAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
YWRkTGlzdGVuZXIoCi0gICAgICAgIC8qIFtpbl0gKi8gSVdlYlNjcmlwdERlYnVnTGlzdGVuZXIq
KTsKLQotICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVMaXN0ZW5l
cigKLSAgICAgICAgLyogW2luXSAqLyBJV2ViU2NyaXB0RGVidWdMaXN0ZW5lciopOwotCi0gICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHN0ZXAoKTsKLQotICAgIHZpcnR1YWwg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBwYXVzZSgpOwotCi0gICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHJlc3VtZSgpOwotCi0gICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGlzUGF1c2VkKAotICAgICAgICAvKiBbb3V0LCByZXR2YWxdICovIEJPT0wq
IGlzUGF1c2VkKTsKLQotcHJpdmF0ZToKLSAgICBXZWJTY3JpcHREZWJ1Z1NlcnZlcigpOwotICAg
IH5XZWJTY3JpcHREZWJ1Z1NlcnZlcigpOwotCi0gICAgVUxPTkcgbV9yZWZDb3VudDsKLX07Ci0K
LSNlbmRpZgotLSAKMS42LjIuMgoK
</data>
<flag name="review"
          id="14793"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>