<?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>204841</bug_id>
          
          <creation_ts>2019-12-04 00:12:51 -0800</creation_ts>
          <short_desc>Remove DocumentEventQueue and WorkerEventQueue</short_desc>
          <delta_ts>2019-12-04 20:52:23 -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>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=204447</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202843</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1595403</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-04 00:12:51 -0800</bug_when>
    <thetext>After https://trac.webkit.org/r252824, we no longer need DocumentEventQueue or WorkerEventQueue.
Delete these classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595404</commentid>
    <comment_count>1</comment_count>
      <attachid>384793</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-04 00:15:13 -0800</bug_when>
    <thetext>Created attachment 384793
Cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595460</commentid>
    <comment_count>2</comment_count>
      <attachid>384793</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-12-04 05:50:51 -0800</bug_when>
    <thetext>Comment on attachment 384793
Cleanup

Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595703</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-04 20:43:49 -0800</bug_when>
    <thetext>(In reply to Sam Weinig from comment #2)
&gt; Comment on attachment 384793 [details]
&gt; Cleanup
&gt; 
&gt; Nice!

Indeed. We should be able to remove all other *EventQueue classes too once we migrate the media code to the event loop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595708</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-12-04 20:51:04 -0800</bug_when>
    <thetext>Committed r253141: &lt;https://trac.webkit.org/changeset/253141&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595709</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-04 20:52:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/57652461&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384793</attachid>
            <date>2019-12-04 00:15:13 -0800</date>
            <delta_ts>2019-12-04 05:50:51 -0800</delta_ts>
            <desc>Cleanup</desc>
            <filename>bug-204841-20191204001512.patch</filename>
            <type>text/plain</type>
            <size>24586</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1MzA5NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE5LTEyLTA0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFJlbW92ZSBEb2N1bWVudEV2ZW50
UXVldWUgYW5kIFdvcmtlckV2ZW50UXVldWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIwNDg0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIERlbGV0ZSBEb2N1bWVudEV2ZW50UXVldWUgYW5kIFdvcmtlckV2
ZW50UXVldWUgc2luY2Ugd2UgZG9uJ3QgdXNlIHRoZW0gYWZ0ZXIgcjI1MjgyNC4KKworICAgICAg
ICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudEV2ZW50UXVldWUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwYWdlL1Zp
c3VhbFZpZXdwb3J0LmNwcDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAgICAgKiB3b3JrZXJz
L1dvcmtlckV2ZW50UXVldWUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHdvcmtlcnMvV29ya2Vy
RXZlbnRRdWV1ZS5oOiBSZW1vdmVkLgorICAgICAgICAqIHdvcmtsZXRzL1dvcmtsZXRHbG9iYWxT
Y29wZS5oOgorCiAyMDE5LTEyLTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gTm9kZTo6c2V0VGV4dENvbnRlbnQgdmlhIERvY3Vt
ZW50OjpzZXRUaXRsZSBpZiB0aXRsZSBlbGVtZW50IGlzIHJlbW92ZWQgYmVmb3JlIHNldFRleHRD
b250ZW50IGNhbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHJldmlzaW9uIDI1MzA5MykKKysr
IFNvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM3Myw3ICsz
NzMsNiBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgZG9tL0Rl
dmljZU9yaWVudGF0aW9uRGF0YS5oCiAgICAgZG9tL0RldmljZU9yaWVudGF0aW9uT3JNb3Rpb25Q
ZXJtaXNzaW9uU3RhdGUuaAogICAgIGRvbS9Eb2N1bWVudC5oCi0gICAgZG9tL0RvY3VtZW50RXZl
bnRRdWV1ZS5oCiAgICAgZG9tL0RvY3VtZW50RnJhZ21lbnQuaAogICAgIGRvbS9Eb2N1bWVudEZ1
bGxzY3JlZW4uaAogICAgIGRvbS9Eb2N1bWVudElkZW50aWZpZXIuaApJbmRleDogU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQJKHJldmlzaW9uIDI1MzA5MykKKysrIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC04NjcsNyArODY3LDYgQEAgZG9tL0RldmljZU9yaWVudGF0aW9uRGF0YS5j
cHAKIGRvbS9EZXZpY2VPcmllbnRhdGlvbkV2ZW50LmNwcAogZG9tL0RldmljZU9yaWVudGF0aW9u
T3JNb3Rpb25FdmVudC5jcHAKIGRvbS9Eb2N1bWVudC5jcHAKLWRvbS9Eb2N1bWVudEV2ZW50UXVl
dWUuY3BwCiBkb20vRG9jdW1lbnRGcmFnbWVudC5jcHAKIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuY3BwCiBkb20vRG9jdW1lbnRQYXJzZXIuY3BwCkBAIC0yNTEzLDcgKzI1MTIsNiBAQCB3
b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAKIHdvcmtlcnMvV29ya2VyLmNwcAogd29y
a2Vycy9Xb3JrZXJDb25zb2xlQ2xpZW50LmNwcAogd29ya2Vycy9Xb3JrZXJFdmVudExvb3AuY3Bw
Ci13b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCiB3b3JrZXJzL1dvcmtlckdsb2JhbFNjb3Bl
LmNwcAogd29ya2Vycy9Xb3JrZXJJbnNwZWN0b3JQcm94eS5jcHAKIHdvcmtlcnMvV29ya2VyTG9j
YXRpb24uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNTMwOTMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTMwNjYsOCAr
MzA2Niw2IEBACiAJCUEzMUM0RTRGMTZFMDJBQjQwMDJGNzk1NyAvKiBPRVNUZXh0dXJlSGFsZkZs
b2F0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFD
NEU0RTE2RTAyQUI0MDAyRjc5NTcgLyogT0VTVGV4dHVyZUhhbGZGbG9hdC5oICovOyB9OwogCQlB
MzFDNEU1NDE2RTAyQjQwMDAyRjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMzFDNEU1MzE2RTAyQjQw
MDAyRjc5NTcgLyogSlNPRVNUZXh0dXJlSGFsZkZsb2F0LmggKi87IH07CiAJCUEzQUY5RDg2MjAz
MjY4NjEwMDZDQUQwNiAvKiBVc2VyQWdlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEEzQUY5RDgyMjAzMjUzMjQwMDZDQUQwNiAvKiBVc2VyQWdlbnQu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBM0JC
NTlGNDE0NTdBNDBEMDBBQzU2RkUgLyogRG9jdW1lbnRFdmVudFF1ZXVlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBM0JCNTlGMjE0NTdBNDBEMDBBQzU2
RkUgLyogRG9jdW1lbnRFdmVudFF1ZXVlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJQTNFMjY0MzExNDc0ODk5MTAwNUE4NTg4IC8qIFdvcmtlckV2
ZW50UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEzRTI2NDJGMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTQwOUM5ODUxMTZEMERE
RDAwNzE5N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTQwOUM5ODMxMTZEMERERDAwNzE5
N0JEIC8qIEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oICovOyB9OwogCQlBNDIyNkU1
QzExNjNENjk1MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDIyNkU1QjExNjNENjk1MDA4Qjgz
OTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50LmggKi87IH07CiAJCUE0M0JGNTk5MTE0OTI5MEEw
MEM2NDNDQSAvKiBIVE1MUHJvZ3Jlc3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNDNCRjU5NzExNDkyOTBBMDBDNjQzQ0EgLyogSFRNTFBy
b2dyZXNzRWxlbWVudC5oICovOyB9OwpAQCAtMTE1MjQsMTEgKzExNTIyLDcgQEAKIAkJQTNBRjlE
ODIyMDMyNTMyNDAwNkNBRDA2IC8qIFVzZXJBZ2VudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyQWdlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTNB
RjlEODMyMDMyNTY5MTAwNkNBRDA2IC8qIFVzZXJBZ2VudElPUy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJBZ2VudElPUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQTNBRjlEODQyMDMyNTZBMzAwNkNBRDA2IC8qIFVzZXJBZ2VudE1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVzZXJBZ2VudE1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTNCQjU5RjExNDU3QTQwRDAwQUM1NkZF
IC8qIERvY3VtZW50RXZlbnRRdWV1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBEb2N1bWVudEV2ZW50UXVldWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQlBM0JCNTlGMjE0NTdBNDBEMDBBQzU2RkUgLyogRG9jdW1lbnRFdmVudFF1ZXVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERvY3VtZW50RXZlbnRRdWV1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBM0Q0MkE4NDFGMzNCQTM2MDBBNjRCNjIgLyogTGF5
b3V0VW5pdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRV
bml0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTNFMjY0MkUxNDc0ODk5MTAw
NUE4NTg4IC8qIFdvcmtlckV2ZW50UXVldWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gV29ya2VyRXZlbnRRdWV1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUEzRTI2NDJGMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckV2ZW50UXVldWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTQwOUM5ODIxMTZEMERERDAwNzE5N0JEIC8qIEFjY2Vz
c2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBBY2Nlc3NpYmlsaXR5UHJvZ3Jlc3NJbmRpY2F0b3IuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNDA5Qzk4MzExNkQwREREMDA3MTk3QkQgLyogQWNjZXNzaWJp
bGl0eVByb2dyZXNzSW5kaWNhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFjY2Vzc2liaWxpdHlQcm9ncmVzc0luZGljYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNDIyNkU1OTExNjNENjY3MDA4QjgzOTcgLyogSlNIVE1MUHJvZ3Jlc3NFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTFByb2dyZXNz
RWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzg0Niw4ICsxNzg0
MCw2IEBACiAJCQkJQTUyQjM0OUMxRkE0MTZGODAwOEI2MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJv
eHkuaCAqLywKIAkJCQk5QjBBQkNBMzIzNjc5QUNGMDBCNDUwODUgLyogV29ya2VyRXZlbnRMb29w
LmNwcCAqLywKIAkJCQk5QjBBQkNBNDIzNjc5QUNGMDBCNDUwODUgLyogV29ya2VyRXZlbnRMb29w
LmggKi8sCi0JCQkJQTNFMjY0MkUxNDc0ODk5MTAwNUE4NTg4IC8qIFdvcmtlckV2ZW50UXVldWUu
Y3BwICovLAotCQkJCUEzRTI2NDJGMTQ3NDg5OTEwMDVBODU4OCAvKiBXb3JrZXJFdmVudFF1ZXVl
LmggKi8sCiAJCQkJMkU0MzQ2MzYwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtlckdsb2JhbFNjb3Bl
LmNwcCAqLywKIAkJCQkyRTQzNDYzNzBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2Nv
cGUuaCAqLywKIAkJCQkyRTQzNDYzODBGNTQ2QTgyMDBCMEYxQkEgLyogV29ya2VyR2xvYmFsU2Nv
cGUuaWRsICovLApAQCAtMjI5NjgsOCArMjI5NjAsNiBAQAogCQkJCUE1Qzk3NENGMTE0ODVGRjEw
MDY2RjJBQiAvKiBLZXlFdmVudENvY29hLmggKi8sCiAJCQkJQTVDOTc0RDAxMTQ4NUZGMTAwNjZG
MkFCIC8qIEtleUV2ZW50Q29jb2EubW0gKi8sCiAJCQkJMUE0ODMyQjIxQTk1M0JBNjAwOEI0REZF
IC8qIExvY2FsaXplZFN0cmluZ3NDb2NvYS5tbSAqLywKLQkJCQlDRDUzNTU1NzIzNzQ4RTU5MDBB
NjEzQkQgLyogTWVkaWFUb29sYm94U29mdExpbmsuY3BwICovLAotCQkJCUNENTM1NTU2MjM3NDhF
NTkwMEE2MTNCRCAvKiBNZWRpYVRvb2xib3hTb2Z0TGluay5oICovLAogCQkJCUM1M0QzOTMzMUM5
Nzg5MkQwMDdGM0FFOSAvKiBNSU1FVHlwZVJlZ2lzdHJ5Q29jb2EubW0gKi8sCiAJCQkJQTE5RDkz
NDkxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50RmlsdGVyLmggKi8s
CiAJCQkJQTE5RDkzNDgxQUExMUIxRTAwQjQ2QzI0IC8qIE5ldHdvcmtFeHRlbnNpb25Db250ZW50
RmlsdGVyLm1tICovLApAQCAtMjc5NjUsOCArMjc5NTUsNiBAQAogCQkJCUE4MTg1RjM4MDk3NjU3
NjUwMDU4MjZEOSAvKiBEb2N1bWVudC5oICovLAogCQkJCTY1NDhFMjQ4MDlFMUUwNEQwMEFGODAy
MCAvKiBEb2N1bWVudC5pZGwgKi8sCiAJCQkJODMyOUE0MTcxRUMyNUIyQjAwOEVENEJFIC8qIERv
Y3VtZW50QW5kRWxlbWVudEV2ZW50SGFuZGxlcnMuaWRsICovLAotCQkJCUEzQkI1OUYxMTQ1N0E0
MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuY3BwICovLAotCQkJCUEzQkI1OUYyMTQ1
N0E0MEQwMEFDNTZGRSAvKiBEb2N1bWVudEV2ZW50UXVldWUuaCAqLywKIAkJCQlBODE4NUYzNzA5
NzY1NzY1MDA1ODI2RDkgLyogRG9jdW1lbnRGcmFnbWVudC5jcHAgKi8sCiAJCQkJQTgxODVGMzUw
OTc2NTc2NTAwNTgyNkQ5IC8qIERvY3VtZW50RnJhZ21lbnQuaCAqLywKIAkJCQkxQTQ5NEVENTBB
MTIzRjFBMDBGREFGQzEgLyogRG9jdW1lbnRGcmFnbWVudC5pZGwgKi8sCkBAIC0yOTU4MSw3ICsy
OTU2OSw2IEBACiAJCQkJQjJGMzRGRTYwRTgyRjgxNDAwRjYyN0NEIC8qIEROUy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJN0VFNjg0NkYxMkQyNkUzODAwRTczMjE1IC8qIEROU1Jlc29sdmVRdWV1ZUNG
TmV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NUY0MDA5NzY1NzY2MDA1ODI2RDkgLyogRG9j
dW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUEzQkI1OUY0MTQ1N0E0MEQwMEFDNTZGRSAvKiBE
b2N1bWVudEV2ZW50UXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MTg1RjNEMDk3NjU3NjYw
MDU4MjZEOSAvKiBEb2N1bWVudEZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDkyRjUx
MzIyNjBGRkVFMDBGODdCQjMgLyogRG9jdW1lbnRGdWxsc2NyZWVuLmggaW4gSGVhZGVycyAqLywK
IAkJCQk0NkUxNjY2RTFGQ0M4NkEyMDBDOTcxMEIgLyogRG9jdW1lbnRJZGVudGlmaWVyLmggaW4g
SGVhZGVycyAqLywKQEAgLTMyOTQ0LDcgKzMyOTMxLDYgQEAKIAkJCQlBNUI4MUNDRTFGQUE0NERF
MDAzN0QxRTYgLyogV29ya2VyRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTUy
QjM0OUUxRkE0MTcwMzAwOEI2MjQ2IC8qIFdvcmtlckRlYnVnZ2VyUHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkxRTBEREM0MjMwQjQxRjEwMDE5RTFFMyAvKiBXb3JrZXJET01EZWJ1Z2dlckFn
ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlBM0UyNjQzMTE0NzQ4OTkxMDA1QTg1ODggLyogV29y
a2VyRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkU0MzQ2NDkwRjU0NkE4MjAwQjBG
MUJBIC8qIFdvcmtlckdsb2JhbFNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxMjlDRTFG
M0QwRUY2MDBEMTVFNDcgLyogV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTUxODVGQ0I0MUJCNEM0RTgwMDEyODk4RiAvKiBXb3JrZXJHbG9iYWxTY29wZUluZGV4
ZWREYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2
aXNpb24gMjUzMDkzKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkNv
bnRhaW5lck5vZGUuaCIKICNpbmNsdWRlICJEaXNhYmxlZEFkYXB0YXRpb25zLmgiCi0jaW5jbHVk
ZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRJZGVudGlmaWVyLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnRUaW1pbmcuaCIKICNpbmNsdWRlICJFbGVtZW50SWRlbnRpZmll
ci5oIgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5jcHAJKHJl
dmlzaW9uIDI1MzA5MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVldWUu
Y3BwCShub25leGlzdGVudCkKQEAgLTEsMTMzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykg
MjAxMyBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5oIgotCi0jaW5jbHVkZSAiRE9NV2luZG93LmgiCi0jaW5j
bHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJFdmVudC5oIgotI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKLSNpbmNsdWRlICJTdXNwZW5kYWJsZVRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZi5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBEb2N1bWVudEV2ZW50UXVldWU6
OlRpbWVyIGZpbmFsIDogcHVibGljIFN1c3BlbmRhYmxlVGltZXJCYXNlIHsKLXB1YmxpYzoKLSAg
ICBUaW1lcihEb2N1bWVudEV2ZW50UXVldWUmIGV2ZW50UXVldWUpCi0gICAgICAgIDogU3VzcGVu
ZGFibGVUaW1lckJhc2UoJmV2ZW50UXVldWUubV9kb2N1bWVudCkKLSAgICAgICAgLCBtX2V2ZW50
UXVldWUoZXZlbnRRdWV1ZSkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIHZvaWQgZmly
ZWQoKSBvdmVycmlkZQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFpc1N1c3BlbmRlZCgpKTsKLSAg
ICAgICAgbV9ldmVudFF1ZXVlLnBlbmRpbmdFdmVudFRpbWVyRmlyZWQoKTsKLSAgICB9Ci0KLSAg
ICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gIkRvY3VtZW50RXZlbnRRdWV1ZVRpbWVyIjsgfQotCi0gICAgRG9jdW1lbnRFdmVudFF1ZXVl
JiBtX2V2ZW50UXVldWU7Ci19OwotCi1Eb2N1bWVudEV2ZW50UXVldWU6OkRvY3VtZW50RXZlbnRR
dWV1ZShEb2N1bWVudCYgZG9jdW1lbnQpCi0gICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQotICAg
ICwgbV9wZW5kaW5nRXZlbnRUaW1lcihtYWtlVW5pcXVlPFRpbWVyPigqdGhpcykpCi0gICAgLCBt
X2lzQ2xvc2VkKGZhbHNlKQotewotICAgIG1fcGVuZGluZ0V2ZW50VGltZXItPnN1c3BlbmRJZk5l
ZWRlZCgpOwotfQotCi1Eb2N1bWVudEV2ZW50UXVldWU6On5Eb2N1bWVudEV2ZW50UXVldWUoKSA9
IGRlZmF1bHQ7Ci0KLWJvb2wgRG9jdW1lbnRFdmVudFF1ZXVlOjplbnF1ZXVlRXZlbnQoUmVmPEV2
ZW50PiYmIGV2ZW50KQotewotICAgIEFTU0VSVChldmVudC0+dGFyZ2V0KCkpOwotICAgIEFTU0VS
VCghbV9xdWV1ZWRFdmVudHMuY29udGFpbnMoZXZlbnQucHRyKCkpKTsKLQotICAgIGlmIChtX2lz
Q2xvc2VkKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBtX3F1ZXVlZEV2ZW50cy5hZGQo
ZXZlbnQucHRyKCkpOwotICAgIGlmICghbV9wZW5kaW5nRXZlbnRUaW1lci0+aXNBY3RpdmUoKSkK
LSAgICAgICAgbV9wZW5kaW5nRXZlbnRUaW1lci0+c3RhcnRPbmVTaG90KDBfcyk7Ci0gICAgcmV0
dXJuIHRydWU7Ci19Ci0KLWJvb2wgRG9jdW1lbnRFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVu
dCYgZXZlbnQpCi17Ci0gICAgYm9vbCBmb3VuZCA9IG1fcXVldWVkRXZlbnRzLnJlbW92ZSgmZXZl
bnQpOwotICAgIGlmIChtX3F1ZXVlZEV2ZW50cy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGVuZGlu
Z0V2ZW50VGltZXItPmNhbmNlbCgpOwotICAgIHJldHVybiBmb3VuZDsKLX0KLQotdm9pZCBEb2N1
bWVudEV2ZW50UXVldWU6OmNsb3NlKCkKLXsKLSAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKLSAgICBt
X3BlbmRpbmdFdmVudFRpbWVyLT5jYW5jZWwoKTsKLSAgICBtX3F1ZXVlZEV2ZW50cy5jbGVhcigp
OwotfQotCi12b2lkIERvY3VtZW50RXZlbnRRdWV1ZTo6cGVuZGluZ0V2ZW50VGltZXJGaXJlZCgp
Ci17Ci0gICAgQVNTRVJUKCFtX3BlbmRpbmdFdmVudFRpbWVyLT5pc0FjdGl2ZSgpKTsKLSAgICBB
U1NFUlQoIW1fcXVldWVkRXZlbnRzLmlzRW1wdHkoKSk7Ci0KLSAgICBtX3RhcmdldHNXaXRoUXVl
dWVkU2Nyb2xsRXZlbnRzLmNsZWFyKCk7Ci0gICAgbV90YXJnZXRzV2l0aFF1ZXVlZFJlc2l6ZUV2
ZW50cy5jbGVhcigpOwotCi0gICAgLy8gSW5zZXJ0IGEgbWFya2VyIGZvciB3aGVyZSB3ZSBzaG91
bGQgc3RvcC4KLSAgICBBU1NFUlQoIW1fcXVldWVkRXZlbnRzLmNvbnRhaW5zKG51bGxwdHIpKTsK
LSAgICBtX3F1ZXVlZEV2ZW50cy5hZGQobnVsbHB0cik7Ci0KLSAgICBSZWY8RG9jdW1lbnQ+IHBy
b3RlY3QobV9kb2N1bWVudCk7Ci0KLSAgICB3aGlsZSAoIW1fcXVldWVkRXZlbnRzLmlzRW1wdHko
KSkgewotICAgICAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50ID0gbV9xdWV1ZWRFdmVudHMudGFrZUZp
cnN0KCk7Ci0gICAgICAgIGlmICghZXZlbnQpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ZGlzcGF0Y2hFdmVudCgqZXZlbnQpOwotICAgIH0KLX0KLQotdm9pZCBEb2N1bWVudEV2ZW50UXVl
dWU6OmRpc3BhdGNoRXZlbnQoRXZlbnQmIGV2ZW50KQotewotICAgIC8vIEZJWE1FOiBXaHkgZG8g
d2UgaGF2ZSB0aGlzIHNwZWNpYWwgY2FzZSBoZXJlIGluc3RlYWQgb2YgYSB2aXJ0dWFsIGZ1bmN0
aW9uPwotICAgIC8vIElmIGl0J3Mgbm90IHNhZmUgdG8gY2FsbCBFdmVudFRhcmdldDo6ZGlzcGF0
Y2hFdmVudCBvbiBhIERPTVdpbmRvdywgdGhlbiB3ZQotICAgIC8vIGxpa2VseSBoYXZlIHByb2Js
ZW1zIGVsc2V3aGVyZS4KLSAgICBhdXRvJiBldmVudFRhcmdldCA9ICpldmVudC50YXJnZXQoKTsK
LSAgICBpZiAoaXM8RE9NV2luZG93PihldmVudFRhcmdldCkpCi0gICAgICAgIGRvd25jYXN0PERP
TVdpbmRvdz4oZXZlbnRUYXJnZXQpLmRpc3BhdGNoRXZlbnQoZXZlbnQsIG51bGxwdHIpOwotICAg
IGVsc2UKLSAgICAgICAgZXZlbnRUYXJnZXQuZGlzcGF0Y2hFdmVudChldmVudCk7Ci19Ci0KLX0K
ClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudEV2ZW50UXVl
dWUuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1u
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudEV2ZW50UXVldWUuaAkocmV2aXNpb24gMjUzMDkzKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50RXZlbnRRdWV1ZS5oCShub25leGlzdGVudCkKQEAgLTEsNjUgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICoKLSAqLwotCi0j
cHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRRdWV1ZS5o
IgotI2luY2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUg
PHd0Zi9MaXN0SGFzaFNldC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIERvY3Vt
ZW50OwotY2xhc3MgTm9kZTsKLQotY2xhc3MgRG9jdW1lbnRFdmVudFF1ZXVlIGZpbmFsIDogcHVi
bGljIEV2ZW50UXVldWUgewotcHVibGljOgotICAgIGV4cGxpY2l0IERvY3VtZW50RXZlbnRRdWV1
ZShEb2N1bWVudCYpOwotICAgIHZpcnR1YWwgfkRvY3VtZW50RXZlbnRRdWV1ZSgpOwotCi0gICAg
Ym9vbCBlbnF1ZXVlRXZlbnQoUmVmPEV2ZW50PiYmKSBvdmVycmlkZTsKLSAgICBib29sIGNhbmNl
bEV2ZW50KEV2ZW50Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjbG9zZSgpIG92ZXJyaWRlOwotCi0K
LXByaXZhdGU6Ci0gICAgdm9pZCBwZW5kaW5nRXZlbnRUaW1lckZpcmVkKCk7Ci0gICAgdm9pZCBk
aXNwYXRjaEV2ZW50KEV2ZW50Jik7Ci0KLSAgICBjbGFzcyBUaW1lcjsKLQotICAgIERvY3VtZW50
JiBtX2RvY3VtZW50OwotICAgIHN0ZDo6dW5pcXVlX3B0cjxUaW1lcj4gbV9wZW5kaW5nRXZlbnRU
aW1lcjsKLSAgICBMaXN0SGFzaFNldDxSZWZQdHI8RXZlbnQ+PiBtX3F1ZXVlZEV2ZW50czsKLSAg
ICBIYXNoU2V0PEV2ZW50VGFyZ2V0Kj4gbV90YXJnZXRzV2l0aFF1ZXVlZFNjcm9sbEV2ZW50czsK
LSAgICBIYXNoU2V0PEV2ZW50VGFyZ2V0Kj4gbV90YXJnZXRzV2l0aFF1ZXVlZFJlc2l6ZUV2ZW50
czsKLSAgICBib29sIG1faXNDbG9zZWQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQ
cm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRFdmVudFF1ZXVl
LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2
ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL1Zpc3VhbFZpZXdwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L1Zpc3VhbFZpZXdwb3J0LmNwcAkocmV2aXNpb24gMjUzMDkzKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9WaXN1YWxWaWV3cG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDYgQEAK
ICNpbmNsdWRlICJDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIkRPTVdp
bmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1
ZXVlLmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5j
bHVkZSAiRnJhbWUuaCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAkocmV2aXNpb24gMjUzMDkzKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNyArNTMsNiBAQAogI2luY2x1ZGUgIkRl
YnVnUGFnZU92ZXJsYXlzLmgiCiAjaW5jbHVkZSAiRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIK
ICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEb2N1bWVu
dFRpbWVsaW5lLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCShyZXZpc2lvbiAyNTMwOTMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDYgQEAKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJEZXBy
ZWNhdGVkR2xvYmFsU2V0dGluZ3MuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUg
IkRvY3VtZW50RXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogI2luY2x1
ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL1dvcmtlckV2ZW50UXVldWUuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAJKHJldmlzaW9uIDI1MzA5MykK
KysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5jcHAJKG5vbmV4aXN0
ZW50KQpAQCAtMSwxMTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldvcmtlckV2ZW50
UXVldWUuaCIKLQotI2luY2x1ZGUgIkV2ZW50LmgiCi0jaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
LSNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotV29ya2VyRXZlbnRRdWV1ZTo6V29ya2VyRXZlbnRRdWV1ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiBjb250ZXh0KQotICAgIDogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQp
Ci17Ci19Ci0KLVdvcmtlckV2ZW50UXVldWU6On5Xb3JrZXJFdmVudFF1ZXVlKCkKLXsKLSAgICBj
bG9zZSgpOwotfQotCi1jbGFzcyBXb3JrZXJFdmVudFF1ZXVlOjpFdmVudERpc3BhdGNoZXIKLXsK
LSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICBFdmVudERpc3BhdGNo
ZXIoUmVmUHRyPEV2ZW50PiYmIGV2ZW50LCBXb3JrZXJFdmVudFF1ZXVlJiBldmVudFF1ZXVlKQot
ICAgICAgICA6IG1fZXZlbnQoV1RGTW92ZShldmVudCkpCi0gICAgICAgICwgbV9ldmVudFF1ZXVl
KGV2ZW50UXVldWUpCi0gICAgewotICAgIH0KLQotICAgIH5FdmVudERpc3BhdGNoZXIoKQotICAg
IHsKLSAgICAgICAgaWYgKG1fZXZlbnQpCi0gICAgICAgICAgICBtX2V2ZW50UXVldWUubV9ldmVu
dERpc3BhdGNoZXJNYXAucmVtb3ZlKG1fZXZlbnQuZ2V0KCkpOwotICAgIH0KLQotICAgIHZvaWQg
ZGlzcGF0Y2goKQotICAgIHsKLSAgICAgICAgaWYgKG1faXNDYW5jZWxsZWQpCi0gICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgIG1fZXZlbnRRdWV1ZS5tX2V2ZW50RGlzcGF0Y2hlck1hcC5yZW1v
dmUobV9ldmVudC5nZXQoKSk7Ci0gICAgICAgIG1fZXZlbnQtPnRhcmdldCgpLT5kaXNwYXRjaEV2
ZW50KCptX2V2ZW50KTsKLSAgICAgICAgbV9ldmVudCA9IG51bGxwdHI7Ci0gICAgfQotCi0gICAg
dm9pZCBjYW5jZWwoKQotICAgIHsKLSAgICAgICAgbV9pc0NhbmNlbGxlZCA9IHRydWU7Ci0gICAg
ICAgIG1fZXZlbnQgPSBudWxscHRyOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBSZWZQdHI8RXZl
bnQ+IG1fZXZlbnQ7Ci0gICAgV29ya2VyRXZlbnRRdWV1ZSYgbV9ldmVudFF1ZXVlOwotICAgIGJv
b2wgbV9pc0NhbmNlbGxlZCB7IGZhbHNlIH07Ci19OwotCi1ib29sIFdvcmtlckV2ZW50UXVldWU6
OmVucXVldWVFdmVudChSZWY8RXZlbnQ+JiYgZXZlbnQpCi17Ci0gICAgaWYgKG1faXNDbG9zZWQp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGF1dG8qIGV2ZW50UHRyID0gZXZlbnQucHRy
KCk7Ci0gICAgYXV0byBldmVudERpc3BhdGNoZXIgPSBtYWtlVW5pcXVlPEV2ZW50RGlzcGF0Y2hl
cj4oV1RGTW92ZShldmVudCksICp0aGlzKTsKLSAgICBtX2V2ZW50RGlzcGF0Y2hlck1hcC5hZGQo
ZXZlbnRQdHIsIGV2ZW50RGlzcGF0Y2hlci5nZXQoKSk7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0LnBvc3RUYXNrKFtldmVudERpc3BhdGNoZXIgPSBXVEZNb3ZlKGV2ZW50RGlzcGF0Y2hl
cildIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewotICAgICAgICBldmVudERpc3BhdGNoZXIt
PmRpc3BhdGNoKCk7Ci0gICAgfSk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXb3Jr
ZXJFdmVudFF1ZXVlOjpjYW5jZWxFdmVudChFdmVudCYgZXZlbnQpCi17Ci0gICAgRXZlbnREaXNw
YXRjaGVyKiB0YXNrID0gbV9ldmVudERpc3BhdGNoZXJNYXAudGFrZSgmZXZlbnQpOwotICAgIGlm
ICghdGFzaykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHRhc2stPmNhbmNlbCgpOwotICAg
IHJldHVybiB0cnVlOwotfQotCi12b2lkIFdvcmtlckV2ZW50UXVldWU6OmNsb3NlKCkKLXsKLSAg
ICBtX2lzQ2xvc2VkID0gdHJ1ZTsKLSAgICBmb3IgKGF1dG8mIGRpc3BhdGNoZXIgOiBtX2V2ZW50
RGlzcGF0Y2hlck1hcC52YWx1ZXMoKSkKLSAgICAgICAgZGlzcGF0Y2hlci0+Y2FuY2VsKCk7Ci0g
ICAgbV9ldmVudERpc3BhdGNoZXJNYXAuY2xlYXIoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJFdmVudFF1ZXVlLmgJKHJl
dmlzaW9uIDI1MzA5MykKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1
ZS5oCShub25leGlzdGVudCkKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJFdmVu
dFF1ZXVlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwotCi1jbGFzcyBXb3JrZXJFdmVudFF1
ZXVlIGZpbmFsIDogcHVibGljIEV2ZW50UXVldWUgewotICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwotcHVibGljOgotICAgIGV4cGxpY2l0IFdvcmtlckV2ZW50UXVldWUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYpOwotICAgIHZpcnR1YWwgfldvcmtlckV2ZW50UXVldWUoKTsKLQotICAgIGJv
b2wgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4mJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBjYW5jZWxF
dmVudChFdmVudCYpIG92ZXJyaWRlOwotICAgIHZvaWQgY2xvc2UoKSBvdmVycmlkZTsKLQotcHJp
dmF0ZToKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ7Ci0gICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKLQotICAgIGNsYXNzIEV2ZW50RGlz
cGF0Y2hlcjsKLSAgICB0eXBlZGVmIEhhc2hNYXA8UmVmUHRyPEV2ZW50PiwgRXZlbnREaXNwYXRj
aGVyKj4gRXZlbnREaXNwYXRjaGVyTWFwOwotICAgIEV2ZW50RGlzcGF0Y2hlck1hcCBtX2V2ZW50
RGlzcGF0Y2hlck1hcDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNo
YW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRXZlbnRRdWV1ZS5oCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvd29ya2xldHMv
V29ya2xldEdsb2JhbFNjb3BlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2xl
dHMvV29ya2xldEdsb2JhbFNjb3BlLmgJKHJldmlzaW9uIDI1MzA5MykKKysrIFNvdXJjZS9XZWJD
b3JlL3dvcmtsZXRzL1dvcmtsZXRHbG9iYWxTY29wZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3
ICszNCw2IEBACiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUg
IlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJXb3JrZXJFdmVudExvb3AuaCIKLSNpbmNs
dWRlICJXb3JrZXJFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ29uc29s
ZU1lc3NhZ2UuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9SdW50aW1lRmxhZ3MuaD4KICNp
bmNsdWRlIDx3dGYvVVJMLmg+Cg==
</data>
<flag name="review"
          id="400616"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>