<?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>23917</bug_id>
          
          <creation_ts>2009-02-12 07:18:10 -0800</creation_ts>
          <short_desc>Make it possible for a WebKit plug-in to act as a proxy for a media element</short_desc>
          <delta_ts>2009-02-17 12:44:40 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>koivisto</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>109466</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-12 07:18:10 -0800</bug_when>
    <thetext>It should be possible for WebCore to use a WebKit plug-in as the interface to the platform media engine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109467</commentid>
    <comment_count>1</comment_count>
      <attachid>27599</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-12 07:21:45 -0800</bug_when>
    <thetext>Created attachment 27599
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109989</commentid>
    <comment_count>2</comment_count>
      <attachid>27599</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-02-17 11:35:13 -0800</bug_when>
    <thetext>Comment on attachment 27599
proposed patch

Looks good! r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109995</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-02-17 12:44:40 -0800</bug_when>
    <thetext>Committed revision 41042</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27599</attachid>
            <date>2009-02-12 07:21:45 -0800</date>
            <delta_ts>2009-02-17 11:35:13 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>plug-in_proxy.txt</filename>
            <type>text/plain</type>
            <size>36278</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDg4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjYgQEAKKzIwMDktMDItMTEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTE3CisgICAgICAg
IEFsbG93IGEgV2ViS2l0IHBsdWctaW4gdG8gYWN0IGFzIGEgcHJveHkgZm9yIHRoZSA8YXVkaW8+
IGFuZCA8dmlkZW8+CisgICAgICAgIGVsZW1lbnQuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNl
cy5tYWtlOiBhZGQgbWVkaWEgZWxlbWVudCBwcm94eSBleHBvcnRzIHRvIC5leHAgZmlsZSB3aGVu
IGZlYXR1cmUgaXMgZGVmaW5lZC4KKworICAgICAgICAqIFdlYkNvcmUuVmlkZW9Qcm94eS5leHA6
IE5ldywgZGVmaW5lIHRoZSBpbmZvcm1hbCBwcm90b2NvbCBleHBvcnRlZCBieSBhIG1lZGlhIGVs
ZW1lbnQgcHJveHkuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6IEFkZCBNZWRpYVBsYXllclByb3h5LmguCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlh
RWxlbWVudCk6IEluaXRpYWxpemUgbV9uZWVkV2lkZ2V0VXBkYXRlLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6YXR0cmlidXRlQ2hhbmdlZCk6IERvbid0IGRldGFjaCthdHRh
Y2ggd2hlbiBQTFVHSU5fUFJPWFlfRk9SX1ZJREVPLCB0aGUKKyAgICAgICAgcHJveHkgcGx1Zy1p
biBoYW5kbGVzIHRoZSBwb3N0ZXIgZnJhbWUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKTogTmV3IGxvZ2ljIGZvciBQTFVHSU5fUFJPWFlfRk9S
X1ZJREVPLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6Y3JlYXRlUmVuZGVy
ZXIpOiBDcmVhdGUgUmVuZGVyUGFydE9iamVjdCB3aGVuIFBMVUdJTl9QUk9YWV9GT1JfVklERU8u
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdHRhY2gpOiBTZXQgbV9uZWVk
V2lkZ2V0VXBkYXRlIHdoZW4gUExVR0lOX1BST1hZX0ZPUl9WSURFTworICAgICAgICAoV2ViQ29y
ZTo6SFRNTE1lZGlhRWxlbWVudDo6bG9hZCk6IERvbid0IHJlYWxsb2NhdGUgTWVkaWFQbGF5ZXIg
d2hlbiBQTFVHSU5fUFJPWFlfRk9SX1ZJREVPLCB3ZSBrZWVwIHRoZQorICAgICAgICBzYW1lIHBs
dWctaW4gZm9yIHRoZSBsaWZlIG9mIHRoZSBlbGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJOZXR3b3JrU3RhdGVDaGFuZ2VkKTogdXBkYXRlIG1f
bmV0d29ya1N0YXRlIHdoZW4gbWVkaWEgcGxheWVyCisgICAgICAgIG5ldHdvcmsgc3RhdGUgY2hh
bmdlcyB0byBFTVBUWSwgb3RoZXJ3aXNlIHdlIGNhbiBnZXQgb3V0IG9mIHN5bmMgd2l0aCBlbmdp
bmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKTogcGFzcyBldmVudCB0byB3aWRnZXQgd2hlbiBQTFVHSU5fUFJPWFlfRk9SX1ZJREVPCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpkZWxpdmVyTm90aWZpY2F0aW9uKTog
TmV3LCBkZWxpdmVyIG5vdGlmaWNhdGlvbiBmcm9tIHByb3h5IHBsdWctaW4gdG8KKyAgICAgICAg
bWVkaWEgcGxheWVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFQbGF5ZXJQcm94eSk6IE5ldywgcGFzcyBwcm94eSBvYmplY3QgdG8gbWVkaWEgcGxheWVyLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6aW5pdGlhbFVSTCk6IE5ldywgcmV0
dXJuIHRoZSB1cmwgZnJvbSB0aGUgInNyYyIgYXR0ciBvciB0aGUgYXBwcm9wcmlhdGUKKyAgICAg
ICAgPHNvdXJjZT4gZWxlbWVudCB0byBiZSB1c2VkIGFzIHRoZSBpbml0aWFsIHVybCBmb3IgdGhl
IHByb3h5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6ZmluaXNoUGFyc2lu
Z0NoaWxkcmVuKTogTmV3LCBhbGxvY2F0ZSBNZWRpYVBsYXllciBhbmQgdXBkYXRlIHdpZGdldC4K
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuaDogRGVjbGFyZSBuZXcgbWV0aG9kcyBm
b3IgcHJveHksIGFkZCBtX25lZWRXaWRnZXRVcGRhdGUuCisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50OjpzZXROZWVkV2lkZ2V0VXBkYXRlKTogCisKKyAgICAgICAgKiBodG1sL0hU
TUxWaWRlb0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6
YXR0YWNoKTogUG9zdGVyIGltYWdlIGlzIGhhbmRsZWQgYnkgcHJveHkgd2hlbiBQTFVHSU5fUFJP
WFlfRk9SX1ZJREVPLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQu
aDoKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b1BsdWdJbkVsZW1lbnQpOiBBbGxvdyBjYXN0IGlmIGVsZW1lbnQgaXMgPHZpZGVvPiBvciA8
YXVkaW8+CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6TWVkaWFQbGF5ZXIpOiBSZW1vdmUgd2hpdGUg
c3BhY2UuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllcjo6c2V0UG9zdGVyKTogTmV3LCBm
b3J3YXJkIGNhbGwgdG8gcHJpdmF0ZSBwbGF5ZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllcjo6ZGVsaXZlck5vdGlmaWNhdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXI6OnNldE1lZGlhUGxheWVyUHJveHkpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6
Om1lZGlhUGxheWVyQ2xpZW50KToKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByb3h5Lmg6IE5ldywgZGVmaW5lcyBtZWRpYSBwbGF5ZXIgcHJveHkgaW50ZXJm
YWNlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUGFydDo6UmVuZGVyUGFydCk6IENoYW5nZSBjb25zdHJ1Y3RvciB0byB0YWtl
IEVsZW1lbnQqIGluc3RlYWQgb2YgTm9kZSogYXMgYQorICAgICAgICBub24tZWxlbWVudCBub2Rl
IGRvZXNuJ3QgbmVlZCBhIHJlbmRlcmVyCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclBhcnQu
aDogRGl0dG8uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0T2JqZWN0OjpSZW5kZXJQYXJ0T2JqZWN0KTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJQYXJ0T2JqZWN0Ojp1cGRhdGVXaWRnZXQpOiBQ
YWNrYWdlIHBhcmFtcyBmb3IgcHJveHkgcGx1Zy1pbiB3aGVuIGVsZW1lbnQgaXMgCisgICAgICAg
IDx2aWRlbz4gb3IgPGF1ZGlvPi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUGFydE9iamVj
dC5oOgorCiAyMDA5LTAyLTExICBEYXZpZCBIeWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgYWxsIG9mIHRoZSBpbmxpbmUgYm94IHdyYXBwZXIgZnVuY3Rpb25zIGZyb20g
UmVuZGVyT2JqZWN0LCBzaW5jZSB0aGV5IG9ubHkgYXBwbHkgdG8gUmVuZGVyQm94LiAgRGV2aXJ0
dWFsaXplIHRoZSBmdW5jdGlvbnMuCkluZGV4OiBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCShyZXZpc2lvbiA0MDg1
NikKKysrIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtNzEw
LDYgKzcxMCwxMCBAQCBpZmVxICgkKGZpbmRzdHJpbmcgMTAuNCwkKE1BQ09TWF9ERVBMT1lNCiAg
ICAgV0VCQ09SRV9FWFBPUlRfREVQRU5ERU5DSUVTIDo9ICQoV0VCQ09SRV9FWFBPUlRfREVQRU5E
RU5DSUVTKSBXZWJDb3JlLlRpZ2VyLmV4cAogZW5kaWYKIAoraWZlcSAoJChmaW5kc3RyaW5nIEVO
QUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPLCQoRkVBVFVSRV9ERUZJTkVTKSksIEVOQUJMRV9Q
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKQorICAgICBXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMg
Oj0gJChXRUJDT1JFX0VYUE9SVF9ERVBFTkRFTkNJRVMpIFdlYkNvcmUuVmlkZW9Qcm94eS5leHAK
K2VuZGlmCisKIFdlYkNvcmUuZXhwIDogV2ViQ29yZS5iYXNlLmV4cCAkKFdFQkNPUkVfRVhQT1JU
X0RFUEVOREVOQ0lFUykKIAljYXQgJF4gPiAkQAogCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUuVmlk
ZW9Qcm94eS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLlZpZGVvUHJveHkuZXhw
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9XZWJDb3JlLlZpZGVvUHJveHkuZXhwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQgQEAKK19fWk43V2ViQ29yZTlIVE1MTmFtZXM4dmlkZW9UYWdFCitf
X1pON1dlYkNvcmU5SFRNTE5hbWVzOGF1ZGlvVGFnRQorX19aTjdXZWJDb3JlMTZIVE1MTWVkaWFF
bGVtZW50MTlkZWxpdmVyTm90aWZpY2F0aW9uRTMyTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlv
blR5cGUKK19fWk43V2ViQ29yZTE2SFRNTE1lZGlhRWxlbWVudDE5c2V0TWVkaWFQbGF5ZXJQcm94
eUVQMTlXZWJNZWRpYVBsYXllclByb3h5CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDA4NTYpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAog
CQkwNjZDNzczMTBBQjYwM0ZEMDAyMzhDQzQgLyogUmVuZGVyRmlsZVVwbG9hZENvbnRyb2wuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA2NkM3NzJGMEFC
NjAzRkQwMDIzOENDNCAvKiBSZW5kZXJGaWxlVXBsb2FkQ29udHJvbC5oICovOyB9OwogCQkwNkU4
MUVENzBBQjVENUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkU4MUVENjBBQjVE
NUU5MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0LmggKi87IH07CiAJCTA2
RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNkU4MUVFQjBB
QjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lm1tICovOyB9Owor
CQkwNzM1RUU2QTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5ZXJQcm94eS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDczNUVFNjkwRjQwQzVFNDAw
NEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkwODAwODE5NjBFRDNCMkREMDBDNTNCQzAgLyogV01MQW5j
aG9yRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwODAwODE5NDBFRDNCMkREMDBDNTNCQzAgLyogV01MQW5jaG9yRWxlbWVudC5jcHAgKi87
IH07CiAJCTA4MDA4MTk3MEVEM0IyREQwMEM1M0JDMCAvKiBXTUxBbmNob3JFbGVtZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODAwODE5NTBFRDNC
MkREMDBDNTNCQzAgLyogV01MQW5jaG9yRWxlbWVudC5oICovOyB9OwogCQkwODA0QkY2RTBFRTA5
QzNCMDAwNkMwMDAgLyogV01MRG9FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4MDRCRjZDMEVFMDlDM0IwMDA2QzAwMCAvKiBXTUxEb0Vs
ZW1lbnQuY3BwICovOyB9OwpAQCAtNDM2OSw3ICs0MzcwLDcgQEAKIAkJRTQ0NjEzQTEwQ0Q2MzMx
MDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOEYwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxB
dWRpb0VsZW1lbnQuY3BwICovOyB9OwogCQlFNDQ2MTNBMjBDRDYzMzEwMDBGQURBNzUgLyogSFRN
TEF1ZGlvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTQ0NjEzOTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuaCAqLzsg
fTsKIAkJRTQ0NjEzQTQwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTIwQ0Q2
MzMxMDAwRkFEQTc1IC8qIEhUTUxNZWRpYUVsZW1lbnQuY3BwICovOyB9OwotCQlFNDQ2MTNBNTBD
RDYzMzEwMDBGQURBNzUgLyogSFRNTE1lZGlhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0NjEzOTMwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxNZWRpYUVsZW1lbnQuaCAqLzsgfTsKKwkJRTQ0NjEzQTUwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxNZWRpYUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0NDYxMzkzMENENjMzMTAwMEZBREE3NSAvKiBIVE1MTWVkaWFFbGVtZW50LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ0NjEzQTcw
Q0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxMzk1MENENjMzMTAwMEZBREE3NSAv
KiBIVE1MU291cmNlRWxlbWVudC5jcHAgKi87IH07CiAJCUU0NDYxM0E4MENENjMzMTAwMEZBREE3
NSAvKiBIVE1MU291cmNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQ0NjEzOTYwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxTb3VyY2VFbGVt
ZW50LmggKi87IH07CiAJCUU0NDYxM0FBMENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVt
ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
NDYxMzk4MENENjMzMTAwMEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmNwcCAqLzsgfTsKQEAg
LTQzNzcsOSArNDM3OCw5IEBACiAJCUU0NDYxM0FEMENENjMzMTAwMEZBREE3NSAvKiBNZWRpYUVy
cm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2
MTM5QjBDRDYzMzEwMDBGQURBNzUgLyogTWVkaWFFcnJvci5oICovOyB9OwogCQlFNDQ2MTNBRjBD
RDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5RDBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJh
bmdlcy5jcHAgKi87IH07CiAJCUU0NDYxM0IwMENENjMzMTAwMEZBREE3NSAvKiBUaW1lUmFuZ2Vz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTM5
RTBDRDYzMzEwMDBGQURBNzUgLyogVGltZVJhbmdlcy5oICovOyB9OwotCQlFNDQ2MTNCNjBDRDYz
NDRFMDBGQURBNzUgLyogVm9pZENhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNDQ2MTNCNDBDRDYzNDRFMDBGQURBNzUgLyogVm9pZENhbGxi
YWNrLmggKi87IH07CisJCUU0NDYxM0I2MENENjM0NEUwMEZBREE3NSAvKiBWb2lkQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0NDYxM0I0
MENENjM0NEUwMEZBREE3NSAvKiBWb2lkQ2FsbGJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9ICgpOyB9OyB9OwogCQlFNDQ2MTNFMzBDRDY4MTlGMDBGQURBNzUgLyogTWVkaWFQbGF5
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRC
NDFFMEMwQ0JGOTBCRDAwQUYyRUNFIC8qIE1lZGlhUGxheWVyLmNwcCAqLzsgfTsKLQkJRTQ0NjEz
RTQwQ0Q2ODFBMjAwRkFEQTc1IC8qIE1lZGlhUGxheWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEI0MUUwRDBDQkY5MEJEMDBBRjJFQ0UgLyogTWVk
aWFQbGF5ZXIuaCAqLzsgfTsKKwkJRTQ0NjEzRTQwQ0Q2ODFBMjAwRkFEQTc1IC8qIE1lZGlhUGxh
eWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNEI0
MUUwRDBDQkY5MEJEMDBBRjJFQ0UgLyogTWVkaWFQbGF5ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDQ2MTNFNTBDRDY4MUE2MDBGQURBNzUg
LyogTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFNEI0MUUxMTBDQkY5MEVGMDBBRjJFQ0UgLyogTWVkaWFQbGF5
ZXJQcml2YXRlUVRLaXQubW0gKi87IH07CiAJCUU0NDYxM0U2MENENjgxQTkwMEZBREE3NSAvKiBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTRCNDFFMTAwQ0JGOTBFRjAwQUYyRUNFIC8qIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0LmggKi87IH07CiAJCUU0NDYxM0VCMENENjgxQjQwMEZBREE3NSAvKiBQcm9ncmVz
c0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0QjQxRTAxMENCRjhFQUEwMEFGMkVDRSAvKiBQcm9ncmVzc0V2ZW50LmNwcCAqLzsgfTsKQEAg
LTQ5MTksNiArNDkyMCw3IEBACiAJCTA2RTgxRUQ2MEFCNUQ1RTkwMEM4NzgzNyAvKiBMb2NhbEN1
cnJlbnRHcmFwaGljc0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
TG9jYWxDdXJyZW50R3JhcGhpY3NDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTA2RTgxRUVCMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRl
eHQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxDdXJy
ZW50R3JhcGhpY3NDb250ZXh0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwNzBE
RDhGNTBGMDE4NjgwMDA3MjdERUIgLyogbWVkaWFDb250cm9scy5jc3MgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
LmNzczsgcGF0aCA9IG1lZGlhQ29udHJvbHMuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyogTWVkaWFQbGF5ZXJQcm94eS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByb3h5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QUZFNTkwMEYxNDQ2QkQwMDg0MTYxNyAvKiBtZWRpYUNv
bnRyb2xzUVQuY3NzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5jc3M7IHBhdGggPSBtZWRpYUNvbnRyb2xzUVQu
Y3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODAwODE5NDBFRDNCMkREMDBDNTNC
QzAgLyogV01MQW5jaG9yRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXTUxBbmNob3JFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMDgwMDgxOTUwRUQzQjJERDAwQzUzQkMwIC8qIFdNTEFuY2hvckVsZW1lbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV01MQW5jaG9yRWxlbWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTMwNDQsNiArMTMwNDYsNyBAQAogCQkJCUIyNzUzNTRGMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbnRQb2ludE1hYy5tbSAqLywKIAkJCQlCMjc1MzU1MDBCMDUzODE0
MDAyQ0U2NEYgLyogSW50UmVjdE1hYy5tbSAqLywKIAkJCQlCMjc1MzU1MTBCMDUzODE0MDAyQ0U2
NEYgLyogSW50U2l6ZU1hYy5tbSAqLywKKwkJCQkwNzM1RUU2OTBGNDBDNUU0MDA0QTI2MDQgLyog
TWVkaWFQbGF5ZXJQcm94eS5oICovLAogCQkJCUU0QjQxRTEwMENCRjkwRUYwMEFGMkVDRSAvKiBN
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oICovLAogCQkJCUU0QjQxRTExMENCRjkwRUYwMEFGMkVD
RSAvKiBNZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSAqLywKIAkJCQlCMkFGRkM3NzBEMDBBNUMx
MDAzMDA3NEQgLyogU2ltcGxlRm9udERhdGFNYWMubW0gKi8sCkBAIC0xNjc1Niw2ICsxNjc1OSw3
IEBACiAJCQkJQkNDMDY1OEEwRjNDRTJBNzAwQ0QyRDg3IC8qIEpTQ2xpZW50UmVjdExpc3QuaCBp
biBIZWFkZXJzICovLAogCQkJCTJFM0FDODRFMEYzRDA2RDEwMDYzM0YwNCAvKiBXb3JrZXJDb250
ZXh0UHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTJFM0FDODUwMEYzRDA2RjcwMDYzM0YwNCAv
KiBXb3JrZXJPYmplY3RQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMDczNUVFNkEwRjQwQzVF
NDAwNEEyNjA0IC8qIE1lZGlhUGxheWVyUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4ODNE
RjI4MEYzRDA0NUQwMEYxOUJGNiAvKiBWaXNpYmxlU2VsZWN0aW9uLmggaW4gSGVhZGVycyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKSW5kZXg6
IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDQwODU3KQorKysgV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00OCw3ICs0OCwxMyBA
QAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlJlbmRlclZpZGVvLmgiCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCisjaW5j
bHVkZSAiUmVuZGVyUGFydE9iamVjdC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiVGltZVJhbmdlcy5o
IgorI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQorI2luY2x1ZGUgIldpZGdldC5o
IgorI2VuZGlmCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01h
dGhFeHRyYXMuaD4KIApAQCAtODYsNiArOTIsOSBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVk
aWFFbGVtZW50KGNvbnN0CiAgICAgLCBtX3BsYXllcigwKQogICAgICwgbV9sb2FkUmVzdHJpY3Rp
b25zKE5vTG9hZFJlc3RyaWN0aW9uKQogICAgICwgbV9zZW5kUHJvZ3Jlc3NFdmVudHModHJ1ZSkK
KyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKKyAgICAsIG1fbmVlZFdpZGdldFVw
ZGF0ZShmYWxzZSkKKyNlbmRpZgogewogICAgIGRvY3VtZW50KCktPnJlZ2lzdGVyRm9yRG9jdW1l
bnRBY3RpdmF0aW9uQ2FsbGJhY2tzKHRoaXMpOwogICAgIGRvY3VtZW50KCktPnJlZ2lzdGVyRm9y
TWVkaWFWb2x1bWVDYWxsYmFja3ModGhpcyk7CkBAIC0xMTIsNyArMTIxLDkgQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKAogICAgICAgICAvLyBjaGFuZ2UgdG8gc3Jj
IGF0dHJpYnV0ZSB0cmlnZ2VycyBsb2FkKCkKICAgICAgICAgaWYgKGluRG9jdW1lbnQoKSAmJiBt
X25ldHdvcmtTdGF0ZSA9PSBFTVBUWSkKICAgICAgICAgICAgIHNjaGVkdWxlTG9hZCgpOwotICAg
IH0gZWxzZSBpZiAoYXR0ck5hbWUgPT0gY29udHJvbHNBdHRyKSB7CisgICAgfSAKKyNpZiAhRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCisgICAgZWxzZSBpZiAoYXR0ck5hbWUgPT0gY29u
dHJvbHNBdHRyKSB7CiAgICAgICAgIGlmICghaXNWaWRlbygpICYmIGF0dGFjaGVkKCkgJiYgKGNv
bnRyb2xzKCkgIT0gKHJlbmRlcmVyKCkgIT0gMCkpKSB7CiAgICAgICAgICAgICBkZXRhY2goKTsK
ICAgICAgICAgICAgIGF0dGFjaCgpOwpAQCAtMTIwLDE2ICsxMzEsMzAgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKAogICAgICAgICBpZiAocmVuZGVyZXIoKSkKICAg
ICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUZyb21FbGVtZW50KCk7CiAgICAgfQorI2VuZGlm
CiB9CiAgICAgCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVy
U3R5bGUqIHN0eWxlKQogeworI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQorICAg
ICh2b2lkKXN0eWxlOworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7Cisg
ICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7
CisjZWxzZQogICAgIHJldHVybiBjb250cm9scygpID8gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNO
ZWVkZWQoc3R5bGUpIDogZmFsc2U7CisjZW5kaWYKIH0KIAogUmVuZGVyT2JqZWN0KiBIVE1MTWVk
aWFFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJlbmRlclN0eWxl
KikKIHsKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKKyAgICByZXR1cm4gbmV3
IChhcmVuYSkgUmVuZGVyUGFydE9iamVjdCh0aGlzKTsKKyNlbHNlCiAgICAgcmV0dXJuIG5ldyAo
YXJlbmEpIFJlbmRlck1lZGlhKHRoaXMpOworI2VuZGlmCiB9CiAgCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6Omluc2VydGVkSW50b0RvY3VtZW50KCkKQEAgLTE1Miw2ICsxNzcsMTAgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjphdHRhY2goKQogewogICAgIEFTU0VSVCghYXR0YWNoZWQoKSk7CiAK
KyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKKyAgICBtX25lZWRXaWRnZXRVcGRh
dGUgPSB0cnVlOworI2VuZGlmCisKICAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7CiAKICAgICBp
ZiAocmVuZGVyZXIoKSkKQEAgLTM1MSw4ICszODAsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
Ojpsb2FkKEV4Y2VwdGlvbkNvZAogICAgICAgICBnb3RvIGVuZDsKICAgICAKICAgICAvLyAxMCwg
MTEsIDEyLCAxMworI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBtX3Bs
YXllci5jbGVhcigpOwogICAgIG1fcGxheWVyLnNldChuZXcgTWVkaWFQbGF5ZXIodGhpcykpOwor
I2VuZGlmCisKICAgICB1cGRhdGVWb2x1bWUoKTsKICAgICBtX3BsYXllci0+bG9hZChtX2N1cnJl
bnRTcmMpOwogICAgIGlmIChtX2xvYWROZXN0aW5nTGV2ZWwgPCBtX3Rlcm1pbmF0ZUxvYWRCZWxv
d05lc3RpbmdMZXZlbCkKQEAgLTM3NywxMyArNDA5LDE5IEBAIGVuZDoKIAogdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllck5ldHdvcmtTdGF0ZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQog
ewotICAgIGlmICghbV9iZWd1biB8fCBtX25ldHdvcmtTdGF0ZSA9PSBFTVBUWSkKKyAgICBpZiAo
IW1fYmVndW4pCiAgICAgICAgIHJldHVybjsKLSAgICAKKwogICAgIG1fdGVybWluYXRlTG9hZEJl
bG93TmVzdGluZ0xldmVsID0gbV9sb2FkTmVzdGluZ0xldmVsOwogCiAgICAgTWVkaWFQbGF5ZXI6
Ok5ldHdvcmtTdGF0ZSBzdGF0ZSA9IG1fcGxheWVyLT5uZXR3b3JrU3RhdGUoKTsKICAgICAKKyAg
ICBpZiAoc3RhdGUgPT0gTWVkaWFQbGF5ZXI6OkVtcHR5KSB7CisgICAgICAgIC8vIGp1c3QgdXBk
YXRlIHRoZSBjYWNoZWQgc3RhdGUgYW5kIGxlYXZlLCB3ZSBjYW4ndCBkbyBhbnl0aGluZyAKKyAg
ICAgICAgbV9uZXR3b3JrU3RhdGUgPSBFTVBUWTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwog
ICAgIC8vIDMuMTQuOS40LiBMb2FkaW5nIHRoZSBtZWRpYSByZXNvdXJjZQogICAgIC8vIDE0CiAg
ICAgaWYgKHN0YXRlID09IE1lZGlhUGxheWVyOjpMb2FkRmFpbGVkKSB7CkBAIC00MzEsNyArNDY5
LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllck5ldHdvcgogICAgICAgICAK
ICAgICAgICAgaWYgKGlzVmlkZW8oKSkKICAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxWaWRl
b0VsZW1lbnQqPih0aGlzKS0+dXBkYXRlUG9zdGVySW1hZ2UoKTsKLSAgICAgICAgCisKICAgICAg
ICAgaWYgKG1fbG9hZE5lc3RpbmdMZXZlbCA8IG1fdGVybWluYXRlTG9hZEJlbG93TmVzdGluZ0xl
dmVsKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTExMTEsMTEgKzExNDksMjEg
QEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVZvbHVtZURpZENoYQogCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogeworI2lmIEVO
QUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQorICAgIFJlbmRlck9iamVjdCogciA9IHJlbmRl
cmVyKCk7CisgICAgaWYgKCFyIHx8ICFyLT5pc1dpZGdldCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICBXaWRnZXQqIHdpZGdldCA9IHN0YXRpY19jYXN0PFJlbmRlcldpZGdldCo+KHIpLT53aWRn
ZXQoKTsKKyAgICBpZiAod2lkZ2V0KQorICAgICAgICB3aWRnZXQtPmhhbmRsZUV2ZW50KGV2ZW50
KTsKKyNlbHNlCiAgICAgaWYgKHJlbmRlcmVyKCkgJiYgcmVuZGVyZXIoKS0+aXNNZWRpYSgpKQog
ICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJNZWRpYSo+KHJlbmRlcmVyKCkpLT5mb3J3YXJkRXZl
bnQoZXZlbnQpOwogICAgIGlmIChldmVudC0+ZGVmYXVsdEhhbmRsZWQoKSkKICAgICAgICAgcmV0
dXJuOwogICAgIEhUTUxFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKKyNlbmRp
ZgogfQogCiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIGNv
bnN0CkBAIC0xMTI3LDYgKzExNzUsNDQgQEAgYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojpwcm9jZXNz
aW5nVXNlckdlcwogICAgIHJldHVybiBsb2FkZXIgPyBsb2FkZXItPnVzZXJHZXN0dXJlSGludCgp
IDogdHJ1ZTsKIH0KIAorI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQordm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpkZWxpdmVyTm90aWZpY2F0aW9uKE1lZGlhUGxheWVyUHJveHlOb3Rp
ZmljYXRpb25UeXBlIG5vdGlmaWNhdGlvbikKK3sKKyAgICBpZiAobm90aWZpY2F0aW9uID09IE1l
ZGlhUGxheWVyTm90aWZpY2F0aW9uUGxheVBhdXNlQnV0dG9uUHJlc3NlZCkgeworICAgICAgICBF
eGNlcHRpb25Db2RlIGVjOworICAgICAgICB0b2dnbGVQbGF5U3RhdGUoZWMpOworICAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXItPmRl
bGl2ZXJOb3RpZmljYXRpb24obm90aWZpY2F0aW9uKTsKK30KKwordm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRNZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqIHByb3h5KQorewor
ICAgIGlmIChtX3BsYXllcikKKyAgICAgICAgbV9wbGF5ZXItPnNldE1lZGlhUGxheWVyUHJveHko
cHJveHkpOworfQorCitTdHJpbmcgSFRNTE1lZGlhRWxlbWVudDo6aW5pdGlhbFVSTCgpCit7Cisg
ICAgU3RyaW5nIGluaXRpYWxTcmMgPSBwaWNrTWVkaWEoKTsKKyAgICBtX2N1cnJlbnRTcmMgPSBp
bml0aWFsU3JjOworICAgIHJldHVybiBpbml0aWFsU3JjOworfQorCit2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCit7CisgICAgSFRNTEVsZW1lbnQ6OmZpbmlz
aFBhcnNpbmdDaGlsZHJlbigpOworICAgIGlmICghbV9wbGF5ZXIpCisgICAgICAgIG1fcGxheWVy
LnNldChuZXcgTWVkaWFQbGF5ZXIodGhpcykpOworICAgIAorICAgIGRvY3VtZW50KCktPnVwZGF0
ZVJlbmRlcmluZygpOworICAgIGlmIChtX25lZWRXaWRnZXRVcGRhdGUgJiYgcmVuZGVyZXIoKSkK
KyAgICAgICAgc3RhdGljX2Nhc3Q8UmVuZGVyUGFydE9iamVjdCo+KHJlbmRlcmVyKCkpLT51cGRh
dGVXaWRnZXQodHJ1ZSk7Cit9CisjZW5kaWYKKwogfQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaAkocmV2aXNpb24gNDA4NTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSwxMCBAQAogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJUaW1lci5o
IgotI2luY2x1ZGUgIlZvaWRDYWxsYmFjay5oIgorCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9G
T1JfVklERU8pCisjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcm94eS5oIgorI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMTMzLDYgKzEzNiwxNCBAQCBwdWJsaWM6CiAKICAgICBib29s
IGNhblBsYXkoKSBjb25zdDsKIAorI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQor
ICAgIHZvaWQgc2V0TmVlZFdpZGdldFVwZGF0ZShib29sIG5lZWRXaWRnZXRVcGRhdGUpIHsgbV9u
ZWVkV2lkZ2V0VXBkYXRlID0gbmVlZFdpZGdldFVwZGF0ZTsgfQorICAgIHZvaWQgZGVsaXZlck5v
dGlmaWNhdGlvbihNZWRpYVBsYXllclByb3h5Tm90aWZpY2F0aW9uVHlwZSBub3RpZmljYXRpb24p
OworICAgIHZvaWQgc2V0TWVkaWFQbGF5ZXJQcm94eShXZWJNZWRpYVBsYXllclByb3h5KiBwcm94
eSk7CisgICAgU3RyaW5nIGluaXRpYWxVUkwoKTsKKyAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFy
c2luZ0NoaWxkcmVuKCk7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIGZsb2F0IGdldFRpbWVP
ZmZzZXRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGZsb2F0IHZhbHVlT25FcnJvcikg
Y29uc3Q7CiAgICAgdm9pZCBzZXRUaW1lT2Zmc2V0QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBmbG9hdCB2YWx1ZSk7CkBAIC0yMjUsNiArMjM2LDEwIEBAIHByb3RlY3RlZDoKICAgICAv
LyBOb3QgYWxsIG1lZGlhIGVuZ2luZXMgcHJvdmlkZSBlbm91Z2ggaW5mb3JtYXRpb24gYWJvdXQg
YSBmaWxlIHRvIGJlIGFibGUgdG8KICAgICAvLyBzdXBwb3J0IHByb2dyZXNzIGV2ZW50cyBzbyBz
ZXR0aW5nIG1fc2VuZFByb2dyZXNzRXZlbnRzIGRpc2FibGVzIHRoZW0gCiAgICAgYm9vbCBtX3Nl
bmRQcm9ncmVzc0V2ZW50czsKKworI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQor
ICAgIGJvb2wgbV9uZWVkV2lkZ2V0VXBkYXRlOworI2VuZGlmCiB9OwogCiB9IC8vbmFtZXNwYWNl
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0MDg1NikKKysrIFdl
YkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTIsMTcg
KzUyLDIwIEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCgKICAgICBy
ZXR1cm4gSFRNTEVsZW1lbnQ6OnJlbmRlcmVySXNOZWVkZWQoc3R5bGUpOyAKIH0KIAorI2lmICFF
TkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKIFJlbmRlck9iamVjdCogSFRNTFZpZGVvRWxl
bWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJTdHlsZSopCiB7
CiAgICAgaWYgKG1fc2hvdWxkU2hvd1Bvc3RlckltYWdlKQogICAgICAgICByZXR1cm4gbmV3IChh
cmVuYSkgUmVuZGVySW1hZ2UodGhpcyk7CiAgICAgcmV0dXJuIG5ldyAoYXJlbmEpIFJlbmRlclZp
ZGVvKHRoaXMpOwogfQorI2VuZGlmCiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6YXR0YWNoKCkK
IHsKICAgICBIVE1MTWVkaWFFbGVtZW50OjphdHRhY2goKTsKLSAgICAKKworI2lmICFFTkFCTEUo
UExVR0lOX1BST1hZX0ZPUl9WSURFTykKICAgICBpZiAobV9zaG91bGRTaG93UG9zdGVySW1hZ2Up
IHsKICAgICAgICAgaWYgKCFtX2ltYWdlTG9hZGVyKQogICAgICAgICAgICAgbV9pbWFnZUxvYWRl
ci5zZXQobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlzKSk7CkBAIC03Miw3ICs3NSw3IEBAIHZvaWQg
SFRNTFZpZGVvRWxlbWVudDo6YXR0YWNoKCkKICAgICAgICAgICAgIGltYWdlUmVuZGVyZXItPnNl
dENhY2hlZEltYWdlKG1faW1hZ2VMb2FkZXItPmltYWdlKCkpOyAKICAgICAgICAgfQogICAgIH0K
LQorI2VuZGlmCiB9CiAKIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6ZGV0YWNoKCkKQEAgLTkxLDkg
Kzk0LDE0IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWIKICAgICBp
ZiAoYXR0ck5hbWUgPT0gcG9zdGVyQXR0cikgewogICAgICAgICB1cGRhdGVQb3N0ZXJJbWFnZSgp
OwogICAgICAgICBpZiAobV9zaG91bGRTaG93UG9zdGVySW1hZ2UpIHsKKyNpZiAhRU5BQkxFKFBM
VUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgICAgICAgICBpZiAoIW1faW1hZ2VMb2FkZXIpCiAg
ICAgICAgICAgICAgICAgbV9pbWFnZUxvYWRlci5zZXQobmV3IEhUTUxJbWFnZUxvYWRlcih0aGlz
KSk7CiAgICAgICAgICAgICBtX2ltYWdlTG9hZGVyLT51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5n
UHJldmlvdXNFcnJvcigpOworI2Vsc2UKKyAgICAgICAgICAgIGlmIChtX3BsYXllcikKKyAgICAg
ICAgICAgICAgICBtX3BsYXllci0+c2V0UG9zdGVyKHBvc3RlcigpKTsKKyNlbmRpZgogICAgICAg
ICB9CiAgICAgfSBlbHNlIGlmIChhdHRyTmFtZSA9PSB3aWR0aEF0dHIpCiAgICAgICAgIGFkZENT
U0xlbmd0aChhdHRyLCBDU1NQcm9wZXJ0eVdpZHRoLCBhdHRyLT52YWx1ZSgpKTsKQEAgLTE2Mywx
MiArMTcxLDE4IEBAIGNvbnN0IFF1YWxpZmllZE5hbWUmIEhUTUxWaWRlb0VsZW1lbnQ6OmkKIAog
dm9pZCBIVE1MVmlkZW9FbGVtZW50Ojp1cGRhdGVQb3N0ZXJJbWFnZSgpCiB7CisjaWYgIUVOQUJM
RShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQogICAgIGJvb2wgb2xkU2hvdWxkU2hvd1Bvc3Rlcklt
YWdlID0gbV9zaG91bGRTaG93UG9zdGVySW1hZ2U7CisjZW5kaWYKKwogICAgIG1fc2hvdWxkU2hv
d1Bvc3RlckltYWdlID0gIXBvc3RlcigpLmlzRW1wdHkoKSAmJiBtX25ldHdvcmtTdGF0ZSA8IExP
QURFRF9GSVJTVF9GUkFNRTsKKworI2lmICFFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykK
ICAgICBpZiAoYXR0YWNoZWQoKSAmJiBvbGRTaG91bGRTaG93UG9zdGVySW1hZ2UgIT0gbV9zaG91
bGRTaG93UG9zdGVySW1hZ2UpIHsKICAgICAgICAgZGV0YWNoKCk7CiAgICAgICAgIGF0dGFjaCgp
OwogICAgIH0KKyNlbmRpZgogfQogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgJKHJl
dmlzaW9uIDQwODU2KQorKysgV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsNyArNDIsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBpbnQg
dGFnUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiA1OyB9CiAgICAgdmlydHVhbCBib29sIHJlbmRl
cmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqKTsKKyNpZiAhRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1Jf
VklERU8pCiAgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIGNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiwgUmVuZGVyU3R5bGUqKTsKKyNlbmRpZgogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsK
ICAgICB2aXJ0dWFsIHZvaWQgZGV0YWNoKCk7CiAgICAgdmlydHVhbCB2b2lkIHBhcnNlTWFwcGVk
QXR0cmlidXRlKE1hcHBlZEF0dHJpYnV0ZSogYXR0cik7CkluZGV4OiBXZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCShyZXZpc2lvbiA0MDg1NikKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTY5Nyw4ICsxNjk3LDEyIEBAIHN0YXRpYyBIVE1MUGx1Z0luRWxl
bWVudCogdG9QbHVnSW5FbGVtZW4KICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiAwOwog
Ci0gICAgQVNTRVJUKG5vZGUtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBub2RlLT5oYXNUYWdO
YW1lKGVtYmVkVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwotICAgIAorICAg
IEFTU0VSVChub2RlLT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShl
bWJlZFRhZykgCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCisgICAgICAgIHx8
IG5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoYXVkaW9UYWcp
CisjZW5kaWYKKyAgICAgICAgfHwgbm9kZS0+aGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKKwogICAg
IHJldHVybiBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luRWxlbWVudCo+KG5vZGUpOwogfQogICAgIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHJldmlzaW9u
IDQwODU2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IAotICAgIE1lZGlhUGxheWVyOjpNZWRpYVBsYXllcihNZWRpYVBsYXllckNsaWVudCogY2xpZW50
KQorTWVkaWFQbGF5ZXI6Ok1lZGlhUGxheWVyKE1lZGlhUGxheWVyQ2xpZW50KiBjbGllbnQpCiAg
ICAgOiBtX21lZGlhUGxheWVyQ2xpZW50KGNsaWVudCkKICAgICAsIG1fcHJpdmF0ZShuZXcgTWVk
aWFQbGF5ZXJQcml2YXRlKHRoaXMpKQogICAgICwgbV9mcmFtZVZpZXcoMCkKQEAgLTY4LDYgKzY4
LDEzIEBAIHZvaWQgTWVkaWFQbGF5ZXI6OmxvYWQoY29uc3QgU3RyaW5nJiB1cmwKICAgICBtX3By
aXZhdGUtPmxvYWQodXJsKTsKIH0gICAgCiAKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKK3ZvaWQgTWVkaWFQbGF5ZXI6OnNldFBvc3Rlcihjb25zdCBTdHJpbmcmIHVybCkKK3sK
KyAgICBtX3ByaXZhdGUtPnNldFBvc3Rlcih1cmwpOworfSAgICAKKyNlbmRpZgorCiB2b2lkIE1l
ZGlhUGxheWVyOjpjYW5jZWxMb2FkKCkKIHsKICAgICBtX3ByaXZhdGUtPmNhbmNlbExvYWQoKTsK
QEAgLTIzOCw2ICsyNDUsMTggQEAgYm9vbCBNZWRpYVBsYXllcjo6aXNBdmFpbGFibGUoKQogICAg
IHJldHVybiBpc0F2YWlsYWJsZTsKIH0gCiAKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9W
SURFTykKK3ZvaWQgTWVkaWFQbGF5ZXI6OmRlbGl2ZXJOb3RpZmljYXRpb24oTWVkaWFQbGF5ZXJQ
cm94eU5vdGlmaWNhdGlvblR5cGUgbm90aWZpY2F0aW9uKQoreworICAgIG1fcHJpdmF0ZS0+ZGVs
aXZlck5vdGlmaWNhdGlvbihub3RpZmljYXRpb24pOworfQorCit2b2lkIE1lZGlhUGxheWVyOjpz
ZXRNZWRpYVBsYXllclByb3h5KFdlYk1lZGlhUGxheWVyUHJveHkqIGhlbHBlcikKK3sKKyAgICBt
X3ByaXZhdGUtPnNldE1lZGlhUGxheWVyUHJveHkoaGVscGVyKTsKK30KKyNlbmRpZgorCiB2b2lk
IE1lZGlhUGxheWVyOjpuZXR3b3JrU3RhdGVDaGFuZ2VkKCkKIHsKICAgICBpZiAobV9tZWRpYVBs
YXllckNsaWVudCkKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgJ
KHJldmlzaW9uIDQwODU2KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCwxMCBAQAogCiAjaWYgRU5BQkxFKFZJREVP
KQogCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCisjaW5jbHVkZSAiTWVkaWFQ
bGF5ZXJQcm94eS5oIgorI2VuZGlmCisKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
U3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CkBAIC02MCw3ICs2NCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogICAgIHN0YXRpYyBib29s
IHN1cHBvcnRzVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0
ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4mKTsKLSAgICAKKwogICAgIEludFNpemUgbmF0dXJhbFNp
emUoKTsKICAgICBib29sIGhhc1ZpZGVvKCk7CiAgICAgCkBAIC05Niw3ICsxMDAsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCk7CiAgICAgZmxvYXQgbWF4VGlt
ZVNlZWthYmxlKCk7Ci0gICAgCisKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpOwogICAgIGJv
b2wgdG90YWxCeXRlc0tub3duKCk7CiAgICAgdW5zaWduZWQgdG90YWxCeXRlcygpOwpAQCAtMTIw
LDcgKzEyNCwxNSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0aW1lQ2hhbmdlZCgpOwogCiAgICAgdm9p
ZCByZXBhaW50KCk7Ci0gICAgCisKKyAgICBNZWRpYVBsYXllckNsaWVudCogbWVkaWFQbGF5ZXJD
bGllbnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhUGxheWVyQ2xpZW50OyB9CisKKyNpZiBFTkFC
TEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKKyAgICB2b2lkIHNldFBvc3Rlcihjb25zdCBTdHJp
bmcmIHVybCk7CisgICAgdm9pZCBkZWxpdmVyTm90aWZpY2F0aW9uKE1lZGlhUGxheWVyUHJveHlO
b3RpZmljYXRpb25UeXBlIG5vdGlmaWNhdGlvbik7CisgICAgdm9pZCBzZXRNZWRpYVBsYXllclBy
b3h5KFdlYk1lZGlhUGxheWVyUHJveHkqIHByb3h5KTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAg
ICAgICAKICAgICBmcmllbmQgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlOwpJbmRleDogV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcm94eS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJveHkuaAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJveHku
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIE1lZGlh
UGxheWVyUHJveHlfaAorI2RlZmluZSBNZWRpYVBsYXllclByb3h5X2gKKworI2lmZGVmIF9fT0JK
Q19fCitAY2xhc3MgV2ViTWVkaWFQbGF5ZXJQcm94eTsKKyNlbHNlCitjbGFzcyBXZWJNZWRpYVBs
YXllclByb3h5OworI2VuZGlmCisKK2VudW0gTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlvblR5
cGUgeworCisgICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25NZWRpYVZhbGlkYXRlZCA9IDEsCisg
ICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25NZWRpYUZhaWxlZFRvVmFsaWRhdGUsCisgICAgCisg
ICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25TdGFydFVzaW5nTmV0d29yaywKKyAgICBNZWRpYVBs
YXllck5vdGlmaWNhdGlvblN0b3BVc2luZ05ldHdvcmssCisKKyAgICBNZWRpYVBsYXllck5vdGlm
aWNhdGlvbkVudGVyZWRGdWxsU2NyZWVuLAorICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uRXhp
dGVkRnVsbFNjcmVlbiwKKyAgICAKKyAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlvblJlYWR5Rm9y
SW5zcGVjdGlvbiwKKyAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlvblJlYWR5Rm9yUGxheWJhY2ss
CisgICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25EaWRQbGF5VG9UaGVFbmQsCisKKyAgICBNZWRp
YVBsYXllck5vdGlmaWNhdGlvblBsYXliYWNrRmFpbGVkLAorCisgICAgTWVkaWFQbGF5ZXJOb3Rp
ZmljYXRpb25TdHJlYW1MaWtlbHlUb0tlZXBVcCwKKyAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlv
blN0cmVhbVVubGlrZWx5VG9LZWVwVXAsCisgICAgTWVkaWFQbGF5ZXJOb3RpZmljYXRpb25TdHJl
YW1CdWZmZXJGdWxsLAorICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uU3RyZWFtUmFuRHJ5LAor
ICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uRmlsZUxvYWRlZCwKKworICAgIE1lZGlhUGxheWVy
Tm90aWZpY2F0aW9uU2l6ZURpZENoYW5nZSwKKyAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlvblZv
bHVtZURpZENoYW5nZSwKKyAgICBNZWRpYVBsYXllck5vdGlmaWNhdGlvbk11dGVkRGlkQ2hhbmdl
LAorICAgIE1lZGlhUGxheWVyTm90aWZpY2F0aW9uVGltZUp1bXBlZCwKKyAgICAKKyAgICBNZWRp
YVBsYXllck5vdGlmaWNhdGlvblBsYXlQYXVzZUJ1dHRvblByZXNzZWQsCit9OworCisjaWZkZWYg
X19PQkpDX18KK0BpbnRlcmZhY2UgTlNPYmplY3QgKFdlYk1lZGlhUGxheWVyUHJveHkpCisKKy0g
KGludClfaW50ZXJmYWNlVmVyc2lvbjsKKworLSAodm9pZClfZGlzY29ubmVjdDsKKworLSAodm9p
ZClfbG9hZDooTlNVUkwgKil1cmw7CistICh2b2lkKV9jYW5jZWxMb2FkOworCistICh2b2lkKV9z
ZXRQb3N0ZXI6KE5TVVJMICopdXJsOworCistICh2b2lkKV9wbGF5OworLSAodm9pZClfcGF1c2U7
CisKKy0gKE5TU2l6ZSlfbmF0dXJhbFNpemU7CisKKy0gKEJPT0wpX2hhc1ZpZGVvOworLSAoQk9P
TClfaGFzQXVkaW87CisKKy0gKE5TVGltZUludGVydmFsKV9kdXJhdGlvbjsKKworLSAoZG91Ymxl
KV9jdXJyZW50VGltZTsKKy0gKHZvaWQpX3NldEN1cnJlbnRUaW1lOihkb3VibGUpdGltZTsKKy0g
KEJPT0wpX3NlZWtpbmc7CisKKy0gKHZvaWQpX3NldEVuZFRpbWU6KGRvdWJsZSl0aW1lOworCist
IChmbG9hdClfcmF0ZTsKKy0gKHZvaWQpX3NldFJhdGU6KGZsb2F0KXJhdGU7CisKKy0gKGZsb2F0
KV92b2x1bWU7CistICh2b2lkKV9zZXRWb2x1bWU6KGZsb2F0KW5ld1ZvbHVtZTsKKworLSAoQk9P
TClfbXV0ZWQ7CistICh2b2lkKV9zZXRNdXRlZDooQk9PTCltdXRlZDsKKworLSAoZmxvYXQpX21h
eFRpbWVCdWZmZXJlZDsKKy0gKGZsb2F0KV9tYXhUaW1lU2Vla2FibGU7CistIChOU0FycmF5ICop
X2J1ZmZlcmVkVGltZVJhbmdlczsKKworLSAoaW50KV9kYXRhUmF0ZTsKKworLSAoQk9PTClfdG90
YWxCeXRlc0tub3duOworLSAodW5zaWduZWQpX3RvdGFsQnl0ZXM7CistICh1bnNpZ25lZClfYnl0
ZXNMb2FkZWQ7CisKKy0gKE5TQXJyYXkgKilfbWltZVR5cGVzOworCitAZW5kCisjZW5kaWYKKwor
I2VuZGlmCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcAkocmV2aXNpb24gNDA4NTYpCisr
KyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcs
NyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7CiAKLVJlbmRlclBhcnQ6OlJlbmRlclBhcnQoTm9kZSogbm9kZSkKK1JlbmRlclBhcnQ6OlJl
bmRlclBhcnQoRWxlbWVudCogbm9kZSkKICAgICA6IFJlbmRlcldpZGdldChub2RlKQogewogICAg
IC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclBhcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0
LmgJKHJldmlzaW9uIDQwODU2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw3ICszNCw3IEBAIGNsYXNzIEhUTUxGcmFtZU93bmVyRWxlbWVu
dDsKIAogY2xhc3MgUmVuZGVyUGFydCA6IHB1YmxpYyBSZW5kZXJXaWRnZXQgewogcHVibGljOgot
ICAgIFJlbmRlclBhcnQoTm9kZSopOworICAgIFJlbmRlclBhcnQoRWxlbWVudCopOwogICAgIHZp
cnR1YWwgflJlbmRlclBhcnQoKTsKICAgICAKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5kZXJQYXJ0
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFy
dE9iamVjdC5jcHAJKHJldmlzaW9uIDQwOTAwKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UGFydE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDEwIEBACiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE9iamVjdEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MUGFyYW1FbGVtZW50LmgiCisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8p
CisjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1l
bnQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGx1Z2luRGF0YS5oIgpAQCAtNDQsNyArNDgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKLVJlbmRlclBhcnRP
YmplY3Q6OlJlbmRlclBhcnRPYmplY3QoTm9kZSogZWxlbWVudCkKK1JlbmRlclBhcnRPYmplY3Q6
OlJlbmRlclBhcnRPYmplY3QoRWxlbWVudCogZWxlbWVudCkKICAgICA6IFJlbmRlclBhcnQoZWxl
bWVudCkKIHsKICAgICAvLyBpbml0IFJlbmRlck9iamVjdCBhdHRyaWJ1dGVzCkBAIC0yOTAsNiAr
Mjk0LDMwIEBAIHZvaWQgUmVuZGVyUGFydE9iamVjdDo6dXBkYXRlV2lkZ2V0KGJvb2wKIAogICAg
ICAgICBmcmFtZS0+bG9hZGVyKCktPnJlcXVlc3RPYmplY3QodGhpcywgdXJsLCBvLT5nZXRBdHRy
aWJ1dGUobmFtZUF0dHIpLCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1lcywgcGFyYW1WYWx1ZXMpOwog
ICAgIH0KKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykgICAgICAgIAorICAgIGVs
c2UgaWYgKGVsZW1lbnQoKS0+aGFzVGFnTmFtZSh2aWRlb1RhZyl8fGVsZW1lbnQoKS0+aGFzVGFn
TmFtZShhdWRpb1RhZykpIHsKKyAgICAgICAgSFRNTE1lZGlhRWxlbWVudCogbyA9IHN0YXRpY19j
YXN0PEhUTUxNZWRpYUVsZW1lbnQqPihlbGVtZW50KCkpOworCisgICAgICAgIG8tPnNldE5lZWRX
aWRnZXRVcGRhdGUoZmFsc2UpOworICAgICAgICBpZiAoZWxlbWVudCgpLT5oYXNUYWdOYW1lKHZp
ZGVvVGFnKSkgeworICAgICAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkID0gc3RhdGljX2Nh
c3Q8SFRNTFZpZGVvRWxlbWVudCo+KGVsZW1lbnQoKSk7CisgICAgICAgICAgICBTdHJpbmcgcG9z
dGVyID0gdmlkLT5wb3N0ZXIoKTsKKyAgICAgICAgICAgIGlmICghcG9zdGVyLmlzRW1wdHkoKSkg
eworICAgICAgICAgICAgICAgIHBhcmFtTmFtZXMuYXBwZW5kKCJfbWVkaWFfZWxlbWVudF9wb3N0
ZXJfIik7CisgICAgICAgICAgICAgICAgcGFyYW1WYWx1ZXMuYXBwZW5kKHBvc3Rlcik7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB1cmwgPSBvLT5pbml0aWFsVVJMKCk7Cisg
ICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgcGFyYW1OYW1lcy5hcHBl
bmQoIl9tZWRpYV9lbGVtZW50X3NyY18iKTsKKyAgICAgICAgICAgIHBhcmFtVmFsdWVzLmFwcGVu
ZCh1cmwpOworICAgICAgICB9CisKKyAgICAgICAgc2VydmljZVR5cGUgPSAiYXBwbGljYXRpb24v
eC1tZWRpYS1lbGVtZW50LXByb3h5LXBsdWdpbiI7CisgICAgICAgIGZyYW1lLT5sb2FkZXIoKS0+
cmVxdWVzdE9iamVjdCh0aGlzLCB1cmwsIG51bGxBdG9tLCBzZXJ2aWNlVHlwZSwgcGFyYW1OYW1l
cywgcGFyYW1WYWx1ZXMpOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFJlbmRlclBhcnRPYmpl
Y3Q6OmxheW91dCgpCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJQYXJ0T2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUGFydE9iamVjdC5oCShyZXZp
c2lvbiA0MDg1NikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclBhcnRPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFJlbmRlclBhcnRPYmplY3QgOiBwdWJsaWMgUmVuZGVyUGFydCB7CiBwdWJsaWM6Ci0gICAgUmVu
ZGVyUGFydE9iamVjdChOb2RlKik7CisgICAgUmVuZGVyUGFydE9iamVjdChFbGVtZW50Kik7CiAg
ICAgdmlydHVhbCB+UmVuZGVyUGFydE9iamVjdCgpOwogCiAgICAgdmlydHVhbCBjb25zdCBjaGFy
KiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlclBhcnRPYmplY3QiOyB9CkluZGV4
OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxv
ZwkocmV2aXNpb24gNDA4ODQpCisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDE4IEBACisyMDA5LTAyLTExICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxz
b25AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzkxNworICAg
ICAgICBBbGxvdyBhIFdlYktpdCBwbHVnLWluIHRvIGFjdCBhcyBhIHByb3h5IGZvciB0aGUgPGF1
ZGlvPiBhbmQgPHZpZGVvPgorICAgICAgICBlbGVtZW50LgorCisgICAgICAgICogUGx1Z2lucy9X
ZWJQbHVnaW5Db250YWluZXJQcml2YXRlLmg6CisgICAgICAgICogUGx1Z2lucy9XZWJQbHVnaW5D
b250cm9sbGVyLm1tOgorICAgICAgICAobWVkaWFQcm94eUNsaWVudCk6IE5ldywgY2FzdCB0byBI
VE1MTWVkaWFFbGVtZW50IGlmIGl0IGlzIGEgdmlkZW8gb3IgYXVkaW8gZWxlbWVudAorICAgICAg
ICAoLVtXZWJQbHVnaW5Db250cm9sbGVyIF9zZXRNZWRpYVBsYXllclByb3h5OmZvckVsZW1lbnQ6
XSk6IE5ldywgcGFzcyBwcm94eSB0byBIVE1MTWVkaWFFbGVtZW50CisgICAgICAgICgtW1dlYlBs
dWdpbkNvbnRyb2xsZXIgX3Bvc3RNZWRpYVBsYXllck5vdGlmaWNhdGlvbjpmb3JFbGVtZW50Ol0p
OiBOZXcsIGRlbGl2ZXIgZXZlbnQgdG8gSFRNTE1lZGlhRWxlbWVudAorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQubW06CisgICAgICAgIChXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlUGx1Z2luKTogRG9uJ3QgYWxsb3cgYSBtZWRpYSBwbGF5ZXIgcHJv
eHkgcGx1Zy1pbiB0byBiZSBjaG9zZW4gYnkKKyAgICAgICAgZmlsZSBleHRlbnNpb24sIG9ubHkg
d2FudCBhIG1hdGNoIGZvciB0aGUgbmV3IE1JTUUgdHlwZSBwcm94eSBwbHVnLWlucyBzaG91bGQg
aGF2ZS4KKwogMjAwOS0wMi0xMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIEZpeCB0aGUgYnVpbGQuCkluZGV4OiBXZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29u
dGFpbmVyUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVn
aW5Db250YWluZXJQcml2YXRlLmgJKHJldmlzaW9uIDQwODU2KQorKysgV2ViS2l0L21hYy9QbHVn
aW5zL1dlYlBsdWdpbkNvbnRhaW5lclByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsMTAg
KzI4LDIwIEBACiAKICNpbXBvcnQgPENvY29hL0NvY29hLmg+CiAKKyNpZiBFTkFCTEUoUExVR0lO
X1BST1hZX0ZPUl9WSURFTykKK0BjbGFzcyBXZWJNZWRpYVBsYXllclByb3h5OworI2VuZGlmCisK
IEBpbnRlcmZhY2UgTlNPYmplY3QgKFdlYlBsdWdJbkNvbnRhaW5lclByaXZhdGUpCiAKIC0gKGlk
KV93ZWJQbHVnaW5Db250YWluZXJDaGVja0lmQWxsb3dlZFRvTG9hZFJlcXVlc3Q6KE5TVVJMUmVx
dWVzdCAqKVJlcXVlc3QgaW5GcmFtZTooTlNTdHJpbmcgKil0YXJnZXQgcmVzdWx0T2JqZWN0Oihp
ZClvYmogc2VsZWN0b3I6KFNFTClzZWxlY3RvcjsKIAogLSAodm9pZClfd2ViUGx1Z2luQ29udGFp
bmVyQ2FuY2VsQ2hlY2tJZkFsbG93ZWRUb0xvYWRSZXF1ZXN0OihpZCljaGVja0lkZW50aWZpZXI7
CiAKKyNpZiBFTkFCTEUoUExVR0lOX1BST1hZX0ZPUl9WSURFTykKKy0gKHZvaWQpX3dlYlBsdWdp
bkNvbnRhaW5lclNldE1lZGlhUGxheWVyUHJveHk6KFdlYk1lZGlhUGxheWVyUHJveHkgKilwcm94
eSBmb3JFbGVtZW50OihET01FbGVtZW50ICopZWxlbWVudDsKKworLSAodm9pZClfd2ViUGx1Z2lu
Q29udGFpbmVyUG9zdE1lZGlhUGxheWVyTm90aWZpY2F0aW9uOihpbnQpbm90aWZpY2F0aW9uIGZv
ckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50OworI2VuZGlmCisKIEBlbmQKSW5kZXg6IFdl
YktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCShyZXZpc2lvbiA0MDg1NikK
KysrIFdlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5Db250cm9sbGVyLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0zMSwxMSArMzEsMTUgQEAKIAogI2ltcG9ydCA8Rm91bmRhdGlvbi9OU1VSTFJlcXVl
c3QuaD4KICNpbXBvcnQgPHJ1bnRpbWUvSlNMb2NrLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RvY3Vt
ZW50TG9hZGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RPTU5vZGVJbnRlcm5hbC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgotI2lt
cG9ydCA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSFRNTE1l
ZGlhRWxlbWVudC5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvTWVkaWFQbGF5ZXJQcm94eS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybVN0cmlu
Zy5oPgotI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2NyaXB0Q29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViS2l0L1dlYkRhdGFTb3VyY2VJbnRlcm5hbC5oPgogI2ltcG9ydCA8V2Vi
S2l0L1dlYkZyYW1lSW50ZXJuYWwuaD4KQEAgLTU1LDYgKzU5LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XZWJWaWV3SW50ZXJuYWwuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogCiBAaW50ZXJmYWNlIE5TVmlldyAoUGx1Z2luU2VjcmV0cykK
IC0gKHZvaWQpc2V0Q29udGFpbmluZ1dpbmRvdzooTlNXaW5kb3cgKil3OwpAQCAtNDMwLDQgKzQz
NSwzNiBAQCBzdGF0aWMgdm9pZCBjYW5jZWxPdXRzdGFuZGluZ0NoZWNrKGNvbnN0CiAgICAgICAg
IFtwbHVnaW5WaWV3IHdlYlBsdWdJbk1haW5SZXNvdXJjZURpZEZpbmlzaExvYWRpbmddOwogfQog
CisjaWYgRU5BQkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCitzdGF0aWMgV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudCogbWVkaWFQcm94eUNsaWVudChET01FbGVtZW50KiBlbGVtZW50KQorewor
ICAgIGlmICghZWxlbWVudCkgeworICAgICAgICBMT0dfRVJST1IoIm5pbCBlbGVtZW50IHBhc3Nl
ZCIpOworICAgICAgICByZXR1cm4gbmlsOworICAgIH0KKworICAgIE5vZGUqIG5vZGUgPSBbZWxl
bWVudCBfbm9kZV07CisgICAgaWYgKCFub2RlIHx8ICghbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFt
ZXM6OnZpZGVvVGFnKSAmJiAhbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmF1ZGlvVGFnKSkp
IHsKKyAgICAgICAgTE9HX0VSUk9SKCJpbnZhbGlkIG1lZGlhIGVsZW1lbnQgcGFzc2VkIik7Cisg
ICAgICAgIHJldHVybiBuaWw7CisgICAgfQorCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQqPihub2RlKTsKK30KKworLSAodm9pZClfd2ViUGx1Z2luQ29u
dGFpbmVyU2V0TWVkaWFQbGF5ZXJQcm94eTooV2ViTWVkaWFQbGF5ZXJQcm94eSAqKXByb3h5IGZv
ckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50Cit7CisgICAgV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudCogY2xpZW50ID0gbWVkaWFQcm94eUNsaWVudChlbGVtZW50KTsKKyAgICBpZiAoY2xp
ZW50KQorICAgICAgICBjbGllbnQtPnNldE1lZGlhUGxheWVyUHJveHkocHJveHkpOworfQorCist
ICh2b2lkKV93ZWJQbHVnaW5Db250YWluZXJQb3N0TWVkaWFQbGF5ZXJOb3RpZmljYXRpb246KGlu
dClub3RpZmljYXRpb24gZm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQKK3sKKyAgICBX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50KiBjbGllbnQgPSBtZWRpYVByb3h5Q2xpZW50KGVsZW1l
bnQpOworICAgIGlmIChjbGllbnQpCisgICAgICAgIGNsaWVudC0+ZGVsaXZlck5vdGlmaWNhdGlv
bigoTWVkaWFQbGF5ZXJQcm94eU5vdGlmaWNhdGlvblR5cGUpbm90aWZpY2F0aW9uKTsKK30KKyNl
bmRpZgorCiBAZW5kCkluZGV4OiBXZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQubW0JKHJldmlzaW9uIDQwODU2KQorKysgV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5tbQkod29ya2luZyBjb3B5KQpAQCAtMTQy
Nyw2ICsxNDI3LDEyIEBAIFdpZGdldCogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmNyZWF0ZVBsdWcK
ICAgICB9CiAgICAgCiAgICAgTlNTdHJpbmcgKmV4dGVuc2lvbiA9IFtbVVJMIHBhdGhdIHBhdGhF
eHRlbnNpb25dOworI2lmIEVOQUJMRShQTFVHSU5fUFJPWFlfRk9SX1ZJREVPKQorICAgIC8vIGRv
bid0IGFsbG93IHByb3h5IHBsdWctaW4gc2VsZWN0aW9uIGJ5IGZpbGUgZXh0ZW5zaW9uCisgICAg
aWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUo
YXVkaW9UYWcpKQorICAgICAgICBleHRlbnNpb24gPSBAIiI7CisjZW5kaWYKKwogICAgIGlmICgh
cGx1Z2luUGFja2FnZSAmJiBbZXh0ZW5zaW9uIGxlbmd0aF0gIT0gMCkgewogICAgICAgICBwbHVn
aW5QYWNrYWdlID0gW3dlYlZpZXcgX3BsdWdpbkZvckV4dGVuc2lvbjpleHRlbnNpb25dOwogICAg
ICAgICBpZiAocGx1Z2luUGFja2FnZSkgewo=
</data>
<flag name="review"
          id="13480"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>