<?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>219584</bug_id>
          
          <creation_ts>2020-12-06 12:09:03 -0800</creation_ts>
          <short_desc>[LFC Display] Move DisplayLayerController to display/compositing</short_desc>
          <delta_ts>2020-12-06 20:54:58 -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>Compositing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1712350</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 12:09:03 -0800</bug_when>
    <thetext>[LFC Display] Move DisplayLayerController to display/compositing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712351</commentid>
    <comment_count>1</comment_count>
      <attachid>415522</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 12:09:26 -0800</bug_when>
    <thetext>Created attachment 415522
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712354</commentid>
    <comment_count>2</comment_count>
      <attachid>415523</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-12-06 12:33:48 -0800</bug_when>
    <thetext>Created attachment 415523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712376</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-12-06 16:36:21 -0800</bug_when>
    <thetext>Committed r270490: &lt;https://trac.webkit.org/changeset/270490&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 415523.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1712377</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-12-06 16:37:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/72029564&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415522</attachid>
            <date>2020-12-06 12:09:26 -0800</date>
            <delta_ts>2020-12-06 12:52:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219584-20201206120926.patch</filename>
            <type>text/plain</type>
            <size>31103</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA5NWRmMWU5MWIyZjA1
ZmVkMWYzNTVkNTRhYjk5ZDhmMDFjYWU0ZC4uYzEzM2M3M2Q2YWEzNzI0YmFkZjM5NjNhMjFkMGJl
YjMwMTdiODRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEyLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gTW92ZSBEaXNwbGF5TGF5ZXJDb250cm9sbGVyIHRvIGRpc3BsYXkvY29tcG9zaXRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTU4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgYSBkaXNw
bGF5L2NvbXBvc2l0aW5nIGRpcmVjdG9yeSBhbmQgbW92ZSBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LiogaW50byBpdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmNwcC4KKyAgICAgICAgKiBkaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3BsYXlMYXllckNvbnRyb2xs
ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29u
dHJvbGxlci5oLgorCiAyMDIwLTEyLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkMgRGlzcGxheV0gS2VlcCB0cmFjayBvZiB0aGUgcGFpbnRl
ZCBib3VuZHMgb2YgU3RhY2tpbmdJdGVtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZjJjNzY4
ZDVmNTY4ZWExMGMyYmQ2NTE5MTFkYWZhZGFjYmVmZmZlLi42NmEwNDQ4N2IzYWViYmVmYjFmNzBm
YzFjNDEwMmRhOTQ4ZTk4MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODYsNiArODYsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JF
X0RJUn0vY3NzL3R5cGVkb20iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Nzc2ppdCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vZGlzcGxheSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vZGlzcGxheS9jb21wb3Np
dGluZyIKICAgICAiJHtXRUJDT1JFX0RJUn0vZGlzcGxheS9jc3MiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L2RvbSIKICAgICAiJHtXRUJDT1JFX0RJUn0vZG9tL21lc3NhZ2Vwb3J0cyIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggMGVkZGMxNTNlNzQ5NGMxZjgxYWYyN2ZhOTJmN2M1NDY3MmFlYjJjNS4uMjU2ZjJk
MWQ1Njg2Y2I2OWZjYmRhYTg0NjEzMmNjODk1OTY0YzZkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTgz
NSw2ICs4MzUsNyBAQCBjc3MvdHlwZWRvbS9UeXBlZE9NQ1NTU3R5bGVWYWx1ZS5jcHAKIGNzcy90
eXBlZG9tL1R5cGVkT01DU1NVbml0VmFsdWUuY3BwCiBjc3MvdHlwZWRvbS9UeXBlZE9NQ1NTVW5w
YXJzZWRWYWx1ZS5jcHAKIGNzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcAorZGlzcGxheS9jb21w
b3NpdGluZy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcAogZGlzcGxheS9jc3MvRGlzcGxheUJv
eC5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3hDbGlwLmNwcAogZGlzcGxheS9jc3MvRGlzcGxh
eUJveERlY29yYXRpb25EYXRhLmNwcApAQCAtODUxLDcgKzg1Miw2IEBAIGRpc3BsYXkvY3NzL0Rp
c3BsYXlSZXBsYWNlZEJveC5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlTdGFja2luZ0l0ZW0uY3Bw
CiBkaXNwbGF5L2Nzcy9EaXNwbGF5U3R5bGUuY3BwCiBkaXNwbGF5L2Nzcy9EaXNwbGF5VGV4dEJv
eC5jcHAKLWRpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHAKIGRpc3BsYXkvRGlzcGxh
eVRyZWUuY3BwCiBkaXNwbGF5L0Rpc3BsYXlUcmVlQnVpbGRlci5jcHAKIGRpc3BsYXkvRGlzcGxh
eVZpZXcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMjEwMzljY2NhN2UyNGFjM2I2YzQ3MjJiYTRhZDVkYTQ4MGExZmQzOC4u
MzA3ZjFiMGQ4YmEyYWY2ODU0NzU0MDEzMDA2OTU1ZTk1ZDljMDVhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzIwLDcgKzMy
MCw2IEBACiAJCTBGNkExMkJFMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1BhZ2VPdmVybGF5cy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QTEyQkMx
QTAwOTIzNzAwQzZERTcyIC8qIERlYnVnUGFnZU92ZXJsYXlzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY2QjcwN0EyMzdCQzM2RDAwNTJDQTQ3
IC8qIENTU1VuaXRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjZCNzA3NzIzN0JDMTJGMDA1MkNBNDcgLyogQ1NTVW5pdHMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjczQjc2OTIyMkIzQTBDMDA4
MDUzMTYgLyogU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZDMDUxNkEyMTlCNUVCRTAw
MzFDMzlFIC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkwRjc5MEY0MjI1MTdD
RTZFMDA5QkEwMzQgLyogRGlzcGxheUxheWVyQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3OTBGM0UyNTE3Q0U2RDAwOUJBMDM0IC8q
IERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCAqLzsgfTsKIAkJMEY3OTBGNDMyNTE3Q0U2RTAwOUJB
MDM0IC8qIERpc3BsYXlWaWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjc5MEYzRjI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuaCAqLzsg
fTsKIAkJMEY3RDA3MzMxODg0QzU2QzAwQjRBRjg2IC8qIFBsYXRmb3JtVGV4dFRyYWNrLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwNzI4NDdFMjE2RUJD
NUIwMDA0M0NGQTQgLyogUGxhdGZvcm1UZXh0VHJhY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjg1MEZFMzFFRDdDMTgzMDBGQjc3QTcgLyog
UGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjg1MEZFMjFFRDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VM
b2dnaW5nQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTYwNzgsOSArNjA3Nyw3IEBACiAJCTBGNzA0OTVEMjExQjUyNDIwMDM2OTk2OCAv
KiBBY3Rpdml0eVN0YXRlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFjdGl2aXR5U3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjczQjc2NTIyMkIzMjdGMDA4MDUzMTYg
LyogU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRjc5MEYzRDI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheVZpZXcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheVZpZXcuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjc5MEYzRTI1MTdDRTZEMDA5QkEwMzQgLyogRGlz
cGxheUxheWVyQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
aXNwbGF5TGF5ZXJDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
NzkwRjNGMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEaXNwbGF5Vmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQkwRjc5MEY0MDI1MTdDRTZEMDA5QkEwMzQgLyogRGlzcGxheUxheWVyQ29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGF5ZXJDb250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3REYxNDcxRTJCRjFB
NjAwOTU5NTFCIC8qIFdlYkNvcmVKU0NsaWVudERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV2ViQ29yZUpTQ2xpZW50RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGODUwRkUyMUVEN0MxODMwMEZCNzdBNyAvKiBQZXJmb3JtYW5jZUxv
Z2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGVyZm9ybWFu
Y2VMb2dnaW5nQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGODY4MkZB
MjU3MDdGNDcwMEMwOEJCNSAvKiBEaXNwbGF5U3RhY2tpbmdJdGVtLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERpc3BsYXlTdGFja2luZ0l0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYx
MzQsNiArNjEzMSw4IEBACiAJCTBGQzY5MkJDMjU3QzBGNDEwMDk4RTNGOSAvKiBTY3JvbGxBbmlt
YXRpb25LaW5ldGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcm9sbEFuaW1hdGlvbktpbmV0
aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM2OTJCRDI1N0MwRjQxMDA5
OEUzRjkgLyogU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNj
cm9sbEFuaW1hdGlvblNtb290aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
QzY5MkJFMjU3QzBGNDIwMDk4RTNGOSAvKiBTY3JvbGxBbmltYXRpb25TbW9vdGguaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGQzY5MkM1MjU3RDcwRjIwMDk4RTNGOSAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlMYXllckNvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMEZDNjkyQzYyNTdENzBGMzAwOThFM0Y5IC8qIERpc3BsYXlMYXll
ckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlzcGxheUxheWVyQ29udHJvbGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0YzMzIzMEYyQjk3MTUwMDRC
Njc5NSAvKiBDb2xvckNHLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENvbG9yQ0cuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkNGMzMyQTBGMkI5
QTI1MDA0QjY3OTUgLyogV2ViTGF5ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJMYXllci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZD
RjMzMkIwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkxheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NzgwNyw5ICsxNzgwNiw4IEBACiAJCTBGNzkwRjNDMjUxN0NFNkQwMDlCQTAzNCAvKiBkaXNwbGF5
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRkM2OTJD
MzI1N0Q3MENBMDA5OEUzRjkgLyogY29tcG9zaXRpbmcgKi8sCiAJCQkJMEZGRjFCNzEyNTFCQzY1
NzAwOTg3OTVBIC8qIGNzcyAqLywKLQkJCQkwRjc5MEY0MDI1MTdDRTZEMDA5QkEwMzQgLyogRGlz
cGxheUxheWVyQ29udHJvbGxlci5jcHAgKi8sCi0JCQkJMEY3OTBGM0UyNTE3Q0U2RDAwOUJBMDM0
IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCAqLywKIAkJCQkwRkZGMUI4MjI1MUJDNjYzMDA5
ODc5NUEgLyogRGlzcGxheVRyZWUuY3BwICovLAogCQkJCTBGRkYxQjgxMjUxQkM2NjMwMDk4Nzk1
QSAvKiBEaXNwbGF5VHJlZS5oICovLAogCQkJCTBGRkYxQjgwMjUxQkM2NjIwMDk4Nzk1QSAvKiBE
aXNwbGF5VHJlZUJ1aWxkZXIuY3BwICovLApAQCAtMTc4MjAsNiArMTc4MTgsMTUgQEAKIAkJCXBh
dGggPSBkaXNwbGF5OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJMEZDNjky
QzMyNTdENzBDQTAwOThFM0Y5IC8qIGNvbXBvc2l0aW5nICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQkwRkM2OTJDNjI1N0Q3MEYzMDA5OEUzRjkgLyogRGlz
cGxheUxheWVyQ29udHJvbGxlci5jcHAgKi8sCisJCQkJMEZDNjkyQzUyNTdENzBGMjAwOThFM0Y5
IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCAqLywKKwkJCSk7CisJCQlwYXRoID0gY29tcG9z
aXRpbmc7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkwRkU1RkJDOTFDM0RE
NTA2MDAwN0EyQ0EgLyogZGlzcGxheWxpc3RzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKQEAgLTMxNzMwLDcgKzMxNzM3LDYgQEAKIAkJCQk4MzVENTRDNTFGNERF
NTM4MDBFNjA2NzEgLyogRGlyZWN0b3J5RmlsZUxpc3RDcmVhdG9yLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGNDdBMDlEMTIwQTkzQTk3MDAyNDBGQUUgLyogRGlzYWJsZWRBZGFwdGF0aW9ucy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0VEQUFGQzkxOUEyQ0NEQzAwMzRERkQxIC8qIERpc2tDYWNoZU1v
bml0b3JDb2NvYS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0
IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTVGQkQz
MUMzREQ1MUUwMDA3QTJDQSAvKiBEaXNwbGF5TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUNB
RjU2REIyNTMwMUFDODAwMTdCNDcyIC8qIERpc3BsYXlMaXN0RHJhd0dseXBoc1JlY29yZGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1NUFEMDk0MDI0MDg5NjQwMDBERTREMkYgLyogRGlzcGxheUxp
c3REcmF3aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZGlzcGxheS9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNzk0M2QxMjQwMjMyNDI0ZmI4NDg5ZWY5ODNhYzEwZDM3YTFmZjY3MC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
aXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjE5
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRGlz
cGxheUxheWVyQ29udHJvbGxlci5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCi0KLSNpbmNsdWRlICJDaHJvbWUuaCIKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIK
LSNpbmNsdWRlICJEaXNwbGF5Q1NTUGFpbnRlci5oIgotI2luY2x1ZGUgIkRpc3BsYXlDb250YWlu
ZXJCb3guaCIKLSNpbmNsdWRlICJEaXNwbGF5UGFpbnRpbmdDb250ZXh0LmgiCi0jaW5jbHVkZSAi
RGlzcGxheVRyZWUuaCIKLSNpbmNsdWRlICJEaXNwbGF5Vmlldy5oIgotI2luY2x1ZGUgIkZyYW1l
LmgiCi0jaW5jbHVkZSAiRnJhbWVWaWV3LmgiCi0jaW5jbHVkZSAiTG9nZ2luZy5oIgotI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJTZXR0aW5ncy5oIgotCi0jaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIERpc3BsYXkg
ewotCi1MYXllckNvbnRyb2xsZXI6OlJvb3RMYXllckNsaWVudDo6Um9vdExheWVyQ2xpZW50KExh
eWVyQ29udHJvbGxlciYgbGF5ZXJDb250cm9sbGVyKQotICAgIDogbV9sYXllckNvbnRyb2xsZXIo
bGF5ZXJDb250cm9sbGVyKQotewotfQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6Um9vdExheWVy
Q2xpZW50Ojpub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQotewotICAg
IG1fbGF5ZXJDb250cm9sbGVyLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7Ci19Ci0KLXZvaWQg
TGF5ZXJDb250cm9sbGVyOjpSb290TGF5ZXJDbGllbnQ6OnBhaW50Q29udGVudHMoY29uc3QgR3Jh
cGhpY3NMYXllciogbGF5ZXIsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRS
ZWN0JiBkaXJ0eVJlY3QsIEdyYXBoaWNzTGF5ZXJQYWludEJlaGF2aW9yKQotewotICAgIEFTU0VS
VF9VTlVTRUQobGF5ZXIsIGxheWVyID09IG1fbGF5ZXJDb250cm9sbGVyLmNvbnRlbnRMYXllcigp
KTsKLQotICAgIGlmIChhdXRvKiBkaXNwbGF5VHJlZSA9IG1fbGF5ZXJDb250cm9sbGVyLm1fZGlz
cGxheVRyZWUuZ2V0KCkpIHsKLSAgICAgICAgUGFpbnRpbmdDb250ZXh0IHBhaW50aW5nQ29udGV4
dCB7IGNvbnRleHQsIGRldmljZVNjYWxlRmFjdG9yKCkgfTsKLSAgICAgICAgQ1NTUGFpbnRlcjo6
cGFpbnRUcmVlKCpkaXNwbGF5VHJlZSwgcGFpbnRpbmdDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0
KGRpcnR5UmVjdCkpOwotICAgIH0KLX0KLQotZmxvYXQgTGF5ZXJDb250cm9sbGVyOjpSb290TGF5
ZXJDbGllbnQ6OmRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9sYXll
ckNvbnRyb2xsZXIudmlldygpLmRldmljZVNjYWxlRmFjdG9yKCk7Ci19Ci0KLUxheWVyQ29udHJv
bGxlcjo6TGF5ZXJDb250cm9sbGVyKFZpZXcmIHZpZXcpCi0gICAgOiBtX3ZpZXcodmlldykKLSAg
ICAsIG1fcm9vdExheWVyQ2xpZW50KCp0aGlzKQotewotfQotCi1MYXllckNvbnRyb2xsZXI6On5M
YXllckNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjpwcmVw
YXJlRm9yRGlzcGxheShzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheTo6VHJlZT4mJiBkaXNwbGF5VHJl
ZSkKLXsKLSAgICBBU1NFUlQoZGlzcGxheVRyZWUpOwotICAgIG1fZGlzcGxheVRyZWUgPSBXVEZN
b3ZlKGRpc3BsYXlUcmVlKTsKLQotICAgIGF1dG8gdmlld1NpemUgPSBtX2Rpc3BsYXlUcmVlLT5y
b290Qm94KCkuYWJzb2x1dGVCb3JkZXJCb3hSZWN0KCkuc2l6ZSgpOwotICAgIC8vIEZJWE1FOiBE
byBvdmVyZmxvdyBldGMuCi0gICAgYXV0byBjb250ZW50U2l6ZSA9IHZpZXdTaXplOwotCi0gICAg
TE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkxheWVy
Q29udHJvbGxlcjo6cHJlcGFyZUZvckRpc3BsYXkgLSB2aWV3U2l6ZSAiIDw8IHZpZXdTaXplIDw8
ICIgY29udGVudFNpemUgIiA8PCBjb250ZW50U2l6ZSk7Ci0KLSAgICBlbnN1cmVSb290TGF5ZXIo
dmlld1NpemUsIGNvbnRlbnRTaXplKTsKLSAgICAKLSAgICAvLyBGSVhNRTogRm9yIG5vdywgcmVw
YWludCB0aGUgd29ybGQgb24gZXZlcnkgdXBkYXRlLgotICAgIG1fY29udGVudExheWVyLT5zZXRO
ZWVkc0Rpc3BsYXkoKTsKLSAgICAKLSAgICBhdXRvJiBzZXR0aW5ncyA9IG1fdmlldy5mcmFtZSgp
LnNldHRpbmdzKCk7Ci0gICAgYm9vbCBzaG93RGVidWdCb3JkZXJzID0gc2V0dGluZ3Muc2hvd0Rl
YnVnQm9yZGVycygpOwotICAgIGJvb2wgc2hvd1JlcGFpbnRDb3VudGVyID0gc2V0dGluZ3Muc2hv
d1JlcGFpbnRDb3VudGVyKCk7Ci0gICAgYm9vbCBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0g
c2V0dGluZ3MuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpOwotCi0gICAgbV9yb290TGF5ZXIt
PnNldFNob3dEZWJ1Z0JvcmRlcihzaG93RGVidWdCb3JkZXJzKTsKLSAgICBtX2NvbnRlbnRIb3N0
TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93RGVidWdCb3JkZXJzKTsKLQotICAgIG1fY29u
dGVudExheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0RlYnVnQm9yZGVycyk7Ci0gICAgbV9j
b250ZW50TGF5ZXItPnNldFNob3dSZXBhaW50Q291bnRlcihzaG93UmVwYWludENvdW50ZXIpOwot
ICAgIG1fY29udGVudExheWVyLT5zZXRBY2NlbGVyYXRlc0RyYXdpbmcoYWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZCk7Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjpmbHVzaExheWVycygpCi17
Ci0gICAgaWYgKCFtX3Jvb3RMYXllcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmxvYXRSZWN0
IHZpc2libGVSZWN0ID0gdmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCk7Ci0gICAgbV9yb290
TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdTdGF0ZSh2aXNpYmxlUmVjdCk7Ci19Ci0KLUZsb2F0UmVj
dCBMYXllckNvbnRyb2xsZXI6OnZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0Ci17
Ci0gICAgY29uc3QgYXV0byYgZnJhbWVWaWV3ID0gbV92aWV3LmZyYW1lVmlldygpOwotICAgIHJl
dHVybiBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCk7Ci19Ci0KLXZvaWQgTGF5ZXJDb250
cm9sbGVyOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCi17Ci0gICAgYXV0byBwYWdlID0gbV92
aWV3LnBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2Ut
PnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OkxheWVyRmx1c2gp
OwotfQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6ZW5zdXJlUm9vdExheWVyKEZsb2F0U2l6ZSB2
aWV3U2l6ZSwgRmxvYXRTaXplIGNvbnRlbnRTaXplKQotewotICAgIGlmIChtX3Jvb3RMYXllcikg
ewotICAgICAgICB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeSh2aWV3U2l6ZSwgY29udGVudFNpemUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgc2V0dXBSb290TGF5ZXJIaWVyYXJjaHko
KTsKLSAgICB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeSh2aWV3U2l6ZSwgY29udGVudFNpemUpOwot
Ci0gICAgYXR0YWNoUm9vdExheWVyKCk7Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjpzZXR1
cFJvb3RMYXllckhpZXJhcmNoeSgpCi17Ci0gICAgLy8gRklYTUU6IFRoaXMgbGF5ZXIgaGllcmFy
Y2h5IGlzIGp1c3QgZW5vdWdoIHRvIGdldCB0b3BDb250ZW50SW5zZXQgd29ya2luZy4KLSAgICBt
X3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgp
LCBtX3Jvb3RMYXllckNsaWVudCk7Ci0gICAgbV9yb290TGF5ZXItPnNldE5hbWUoImRpc3BsYXkg
cm9vdCIpOwotICAgIG1fcm9vdExheWVyLT5zZXRQb3NpdGlvbih7IH0pOwotICAgIG1fcm9vdExh
eWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOwotCi0gICAgbV9jb250ZW50SG9zdExheWVyID0gR3Jh
cGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIG1fcm9vdExheWVyQ2xp
ZW50KTsKLSAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldE5hbWUoImNvbnRlbnQgaG9zdCIpOwot
ICAgIG1fY29udGVudEhvc3RMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsKLQotICAgIG1fY29u
dGVudExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCks
IG1fcm9vdExheWVyQ2xpZW50KTsKLSAgICBtX2NvbnRlbnRMYXllci0+c2V0TmFtZSgiY29udGVu
dCIpOwotICAgIG1fY29udGVudExheWVyLT5zZXRQb3NpdGlvbih7IH0pOwotICAgIG1fY29udGVu
dExheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOwotICAgIG1fY29udGVudExheWVyLT5zZXREcmF3
c0NvbnRlbnQodHJ1ZSk7Ci0gICAgCi0gICAgbV9yb290TGF5ZXItPmFkZENoaWxkKCptX2NvbnRl
bnRIb3N0TGF5ZXIpOwotICAgIG1fY29udGVudEhvc3RMYXllci0+YWRkQ2hpbGQoKm1fY29udGVu
dExheWVyKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xsZXI6OnVwZGF0ZVJvb3RMYXllckdlb21l
dHJ5KEZsb2F0U2l6ZSB2aWV3U2l6ZSwgRmxvYXRTaXplIGNvbnRlbnRTaXplKQotewotICAgIG1f
cm9vdExheWVyLT5zZXRTaXplKHZpZXdTaXplKTsKLQotICAgIGZsb2F0IHRvcENvbnRlbnRJbnNl
dCA9IG1fdmlldy5mcmFtZVZpZXcoKS50b3BDb250ZW50SW5zZXQoKTsKLSAgICBtX2NvbnRlbnRI
b3N0TGF5ZXItPnNldFBvc2l0aW9uKHsgMCwgdG9wQ29udGVudEluc2V0IH0pOwotICAgIG1fY29u
dGVudEhvc3RMYXllci0+c2V0U2l6ZSh2aWV3U2l6ZSk7Ci0KLSAgICBtX2NvbnRlbnRMYXllci0+
c2V0U2l6ZShjb250ZW50U2l6ZSk7Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjphdHRhY2hS
b290TGF5ZXIoKQotewotICAgIGF1dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7Ci0gICAgaWYgKCFw
YWdlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hdHRh
Y2hSb290R3JhcGhpY3NMYXllcihtX3ZpZXcuZnJhbWUoKSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7
Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjpkZXRhY2hSb290TGF5ZXIoKQotewotICAgIGF1
dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllciht
X3ZpZXcuZnJhbWUoKSwgbnVsbHB0cik7Ci19Ci0KLXZvaWQgTGF5ZXJDb250cm9sbGVyOjpzZXRJ
c0luV2luZG93KGJvb2wgaXNJbldpbmRvdykKLXsKLSAgICBpZiAoaXNJbldpbmRvdykKLSAgICAg
ICAgYXR0YWNoUm9vdExheWVyKCk7Ci0gICAgZWxzZQotICAgICAgICBkZXRhY2hSb290TGF5ZXIo
KTsKLX0KLQotR3JhcGhpY3NMYXllckZhY3RvcnkqIExheWVyQ29udHJvbGxlcjo6Z3JhcGhpY3NM
YXllckZhY3RvcnkoKSBjb25zdAotewotICAgIGF1dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIHJldHVybiBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpOwotfQotCi19IC8vIG5h
bWVzcGFjZSBEaXNwbGF5Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFC
TEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxh
eS9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVhZjhjNjYzOTY5ZDY2MzBmOWZhZmMwZDJiYjcwYWFhNmU5Mjc3YWYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9E
aXNwbGF5TGF5ZXJDb250cm9sbGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCi0KLSNpbmNsdWRlICJHcmFwaGljc0xheWVyLmgiCi0jaW5jbHVkZSA8d3RmL0lz
b01hbGxvYy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEdyYXBoaWNzTGF5ZXI7
Ci1jbGFzcyBHcmFwaGljc0xheWVyRmFjdG9yeTsKLQotbmFtZXNwYWNlIERpc3BsYXkgewotCi1j
bGFzcyBUcmVlOwotY2xhc3MgVmlldzsKLQotLy8gQSBjb250cm9sbGVyIG9iamVjdCB0aGF0IG1h
a2VzIGxheWVyaXphdGlvbiBkZWNpc2lvbnMgZm9yIGEgZGlzcGxheSB0cmVlLCBmb3IgYSBzaW5n
bGUgZG9jdW1lbnQuCi1jbGFzcyBMYXllckNvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEKExheWVyQ29udHJvbGxlcik7Ci1wdWJsaWM6Ci0gICAgZXhwbGljaXQgTGF5ZXJD
b250cm9sbGVyKFZpZXcmKTsKLSAgICB+TGF5ZXJDb250cm9sbGVyKCk7Ci0gICAgCi0gICAgdm9p
ZCBwcmVwYXJlRm9yRGlzcGxheShzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheTo6VHJlZT4mJik7Ci0g
ICAgdm9pZCBmbHVzaExheWVycygpOwotCi0gICAgdm9pZCBzZXRJc0luV2luZG93KGJvb2wpOwot
Ci0gICAgY29uc3QgVmlldyYgdmlldygpIGNvbnN0IHsgcmV0dXJuIG1fdmlldzsgfQotCi1wcml2
YXRlOgotICAgIHZvaWQgYXR0YWNoUm9vdExheWVyKCk7Ci0gICAgdm9pZCBkZXRhY2hSb290TGF5
ZXIoKTsKLQotICAgIHZvaWQgZW5zdXJlUm9vdExheWVyKEZsb2F0U2l6ZSB2aWV3U2l6ZSwgRmxv
YXRTaXplIGNvbnRlbnRTaXplKTsKLSAgICB2b2lkIHVwZGF0ZVJvb3RMYXllckdlb21ldHJ5KEZs
b2F0U2l6ZSB2aWV3U2l6ZSwgRmxvYXRTaXplIGNvbnRlbnRTaXplKTsKLQotICAgIHZvaWQgc2V0
dXBSb290TGF5ZXJIaWVyYXJjaHkoKTsKLSAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCk7Ci0gICAgCi0gICAgR3JhcGhpY3NMYXllciogcm9vdEdyYXBoaWNzTGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQotICAgIEdyYXBoaWNzTGF5ZXIqIGNvbnRlbnRM
YXllcigpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudExheWVyLmdldCgpOyB9Ci0KLSAgICBHcmFw
aGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdDsKLQotICAgIEZs
b2F0UmVjdCB2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKSBjb25zdDsKLQotICAgIGNsYXNz
IFJvb3RMYXllckNsaWVudCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBwdWJs
aWM6Ci0gICAgICAgIFJvb3RMYXllckNsaWVudChMYXllckNvbnRyb2xsZXImKTsKLQotICAgIHBy
aXZhdGU6Ci0gICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQgaW1wbGVtZW50YXRpb24KLSAg
ICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBmaW5h
bDsKLSAgICAgICAgdm9pZCBwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqLCBHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBHcmFwaGljc0xheWVyUGFpbnRCZWhhdmlv
cikgZmluYWw7Ci0gICAgICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgZmluYWw7
Ci0KLSAgICAgICAgTGF5ZXJDb250cm9sbGVyJiBtX2xheWVyQ29udHJvbGxlcjsKLSAgICB9Owot
Ci0gICAgVmlldyYgbV92aWV3OwotICAgIFJvb3RMYXllckNsaWVudCBtX3Jvb3RMYXllckNsaWVu
dDsKLQotICAgIFJlZlB0cjxHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKLSAgICBSZWZQdHI8
R3JhcGhpY3NMYXllcj4gbV9jb250ZW50SG9zdExheWVyOwotICAgIFJlZlB0cjxHcmFwaGljc0xh
eWVyPiBtX2NvbnRlbnRMYXllcjsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpUcmVl
PiBtX2Rpc3BsYXlUcmVlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgRGlzcGxheQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3Bs
YXlMYXllckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jb21wb3NpdGlu
Zy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTQzZDEyNDAyMzI0MjRm
Yjg0ODllZjk4M2FjMTBkMzdhMWZmNjcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvZGlzcGxheS9jb21wb3NpdGluZy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcApAQCAtMCww
ICsxLDIxOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
aXNwbGF5TGF5ZXJDb250cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1ZGUgIkNocm9tZUNsaWVudC5o
IgorI2luY2x1ZGUgIkRpc3BsYXlDU1NQYWludGVyLmgiCisjaW5jbHVkZSAiRGlzcGxheUNvbnRh
aW5lckJveC5oIgorI2luY2x1ZGUgIkRpc3BsYXlQYWludGluZ0NvbnRleHQuaCIKKyNpbmNsdWRl
ICJEaXNwbGF5VHJlZS5oIgorI2luY2x1ZGUgIkRpc3BsYXlWaWV3LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJGcmFtZVZpZXcuaCIKKyNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCisKKyNpbmNsdWRlIDx3dGYvSXNv
TWFsbG9jSW5saW5lcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgRGlzcGxh
eSB7CisKK0xheWVyQ29udHJvbGxlcjo6Um9vdExheWVyQ2xpZW50OjpSb290TGF5ZXJDbGllbnQo
TGF5ZXJDb250cm9sbGVyJiBsYXllckNvbnRyb2xsZXIpCisgICAgOiBtX2xheWVyQ29udHJvbGxl
cihsYXllckNvbnRyb2xsZXIpCit7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpSb290TGF5
ZXJDbGllbnQ6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCit7Cisg
ICAgbV9sYXllckNvbnRyb2xsZXIuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKK30KKwordm9p
ZCBMYXllckNvbnRyb2xsZXI6OlJvb3RMYXllckNsaWVudDo6cGFpbnRDb250ZW50cyhjb25zdCBH
cmFwaGljc0xheWVyKiBsYXllciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9h
dFJlY3QmIGRpcnR5UmVjdCwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpCit7CisgICAgQVNT
RVJUX1VOVVNFRChsYXllciwgbGF5ZXIgPT0gbV9sYXllckNvbnRyb2xsZXIuY29udGVudExheWVy
KCkpOworCisgICAgaWYgKGF1dG8qIGRpc3BsYXlUcmVlID0gbV9sYXllckNvbnRyb2xsZXIubV9k
aXNwbGF5VHJlZS5nZXQoKSkgeworICAgICAgICBQYWludGluZ0NvbnRleHQgcGFpbnRpbmdDb250
ZXh0IHsgY29udGV4dCwgZGV2aWNlU2NhbGVGYWN0b3IoKSB9OworICAgICAgICBDU1NQYWludGVy
OjpwYWludFRyZWUoKmRpc3BsYXlUcmVlLCBwYWludGluZ0NvbnRleHQsIGVuY2xvc2luZ0ludFJl
Y3QoZGlydHlSZWN0KSk7CisgICAgfQorfQorCitmbG9hdCBMYXllckNvbnRyb2xsZXI6OlJvb3RM
YXllckNsaWVudDo6ZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAoreworICAgIHJldHVybiBtX2xh
eWVyQ29udHJvbGxlci52aWV3KCkuZGV2aWNlU2NhbGVGYWN0b3IoKTsKK30KKworTGF5ZXJDb250
cm9sbGVyOjpMYXllckNvbnRyb2xsZXIoVmlldyYgdmlldykKKyAgICA6IG1fdmlldyh2aWV3KQor
ICAgICwgbV9yb290TGF5ZXJDbGllbnQoKnRoaXMpCit7Cit9CisKK0xheWVyQ29udHJvbGxlcjo6
fkxheWVyQ29udHJvbGxlcigpID0gZGVmYXVsdDsKKwordm9pZCBMYXllckNvbnRyb2xsZXI6OnBy
ZXBhcmVGb3JEaXNwbGF5KHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpUcmVlPiYmIGRpc3BsYXlU
cmVlKQoreworICAgIEFTU0VSVChkaXNwbGF5VHJlZSk7CisgICAgbV9kaXNwbGF5VHJlZSA9IFdU
Rk1vdmUoZGlzcGxheVRyZWUpOworCisgICAgYXV0byB2aWV3U2l6ZSA9IG1fZGlzcGxheVRyZWUt
PnJvb3RCb3goKS5hYnNvbHV0ZUJvcmRlckJveFJlY3QoKS5zaXplKCk7CisgICAgLy8gRklYTUU6
IERvIG92ZXJmbG93IGV0Yy4KKyAgICBhdXRvIGNvbnRlbnRTaXplID0gdmlld1NpemU7CisKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQsIHN0cmVhbSA8PCAiTGF5
ZXJDb250cm9sbGVyOjpwcmVwYXJlRm9yRGlzcGxheSAtIHZpZXdTaXplICIgPDwgdmlld1NpemUg
PDwgIiBjb250ZW50U2l6ZSAiIDw8IGNvbnRlbnRTaXplKTsKKworICAgIGVuc3VyZVJvb3RMYXll
cih2aWV3U2l6ZSwgY29udGVudFNpemUpOworICAgIAorICAgIC8vIEZJWE1FOiBGb3Igbm93LCBy
ZXBhaW50IHRoZSB3b3JsZCBvbiBldmVyeSB1cGRhdGUuCisgICAgbV9jb250ZW50TGF5ZXItPnNl
dE5lZWRzRGlzcGxheSgpOworICAgIAorICAgIGF1dG8mIHNldHRpbmdzID0gbV92aWV3LmZyYW1l
KCkuc2V0dGluZ3MoKTsKKyAgICBib29sIHNob3dEZWJ1Z0JvcmRlcnMgPSBzZXR0aW5ncy5zaG93
RGVidWdCb3JkZXJzKCk7CisgICAgYm9vbCBzaG93UmVwYWludENvdW50ZXIgPSBzZXR0aW5ncy5z
aG93UmVwYWludENvdW50ZXIoKTsKKyAgICBib29sIGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQg
PSBzZXR0aW5ncy5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCk7CisKKyAgICBtX3Jvb3RMYXll
ci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOworICAgIG1fY29udGVudEhv
c3RMYXllci0+c2V0U2hvd0RlYnVnQm9yZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOworCisgICAgbV9j
b250ZW50TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93RGVidWdCb3JkZXJzKTsKKyAgICBt
X2NvbnRlbnRMYXllci0+c2V0U2hvd1JlcGFpbnRDb3VudGVyKHNob3dSZXBhaW50Q291bnRlcik7
CisgICAgbV9jb250ZW50TGF5ZXItPnNldEFjY2VsZXJhdGVzRHJhd2luZyhhY2NlbGVyYXRlZERy
YXdpbmdFbmFibGVkKTsKK30KKwordm9pZCBMYXllckNvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkK
K3sKKyAgICBpZiAoIW1fcm9vdExheWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBGbG9hdFJl
Y3QgdmlzaWJsZVJlY3QgPSB2aXNpYmxlUmVjdEZvckxheWVyRmx1c2hpbmcoKTsKKyAgICBtX3Jv
b3RMYXllci0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlKHZpc2libGVSZWN0KTsKK30KKworRmxvYXRS
ZWN0IExheWVyQ29udHJvbGxlcjo6dmlzaWJsZVJlY3RGb3JMYXllckZsdXNoaW5nKCkgY29uc3QK
K3sKKyAgICBjb25zdCBhdXRvJiBmcmFtZVZpZXcgPSBtX3ZpZXcuZnJhbWVWaWV3KCk7CisgICAg
cmV0dXJuIGZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKTsKK30KKwordm9pZCBMYXllckNv
bnRyb2xsZXI6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBhdXRvIHBhZ2UgPSBt
X3ZpZXcucGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFn
ZS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoUmVuZGVyaW5nVXBkYXRlU3RlcDo6TGF5ZXJGbHVz
aCk7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjplbnN1cmVSb290TGF5ZXIoRmxvYXRTaXpl
IHZpZXdTaXplLCBGbG9hdFNpemUgY29udGVudFNpemUpCit7CisgICAgaWYgKG1fcm9vdExheWVy
KSB7CisgICAgICAgIHVwZGF0ZVJvb3RMYXllckdlb21ldHJ5KHZpZXdTaXplLCBjb250ZW50U2l6
ZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXR1cFJvb3RMYXllckhpZXJhcmNo
eSgpOworICAgIHVwZGF0ZVJvb3RMYXllckdlb21ldHJ5KHZpZXdTaXplLCBjb250ZW50U2l6ZSk7
CisKKyAgICBhdHRhY2hSb290TGF5ZXIoKTsKK30KKwordm9pZCBMYXllckNvbnRyb2xsZXI6OnNl
dHVwUm9vdExheWVySGllcmFyY2h5KCkKK3sKKyAgICAvLyBGSVhNRTogVGhpcyBsYXllciBoaWVy
YXJjaHkgaXMganVzdCBlbm91Z2ggdG8gZ2V0IHRvcENvbnRlbnRJbnNldCB3b3JraW5nLgorICAg
IG1fcm9vdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5
KCksIG1fcm9vdExheWVyQ2xpZW50KTsKKyAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiZGlzcGxh
eSByb290Iik7CisgICAgbV9yb290TGF5ZXItPnNldFBvc2l0aW9uKHsgfSk7CisgICAgbV9yb290
TGF5ZXItPnNldEFuY2hvclBvaW50KHsgfSk7CisKKyAgICBtX2NvbnRlbnRIb3N0TGF5ZXIgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgbV9yb290TGF5ZXJD
bGllbnQpOworICAgIG1fY29udGVudEhvc3RMYXllci0+c2V0TmFtZSgiY29udGVudCBob3N0Iik7
CisgICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRBbmNob3JQb2ludCh7IH0pOworCisgICAgbV9j
b250ZW50TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3Rvcnko
KSwgbV9yb290TGF5ZXJDbGllbnQpOworICAgIG1fY29udGVudExheWVyLT5zZXROYW1lKCJjb250
ZW50Iik7CisgICAgbV9jb250ZW50TGF5ZXItPnNldFBvc2l0aW9uKHsgfSk7CisgICAgbV9jb250
ZW50TGF5ZXItPnNldEFuY2hvclBvaW50KHsgfSk7CisgICAgbV9jb250ZW50TGF5ZXItPnNldERy
YXdzQ29udGVudCh0cnVlKTsKKyAgICAKKyAgICBtX3Jvb3RMYXllci0+YWRkQ2hpbGQoKm1fY29u
dGVudEhvc3RMYXllcik7CisgICAgbV9jb250ZW50SG9zdExheWVyLT5hZGRDaGlsZCgqbV9jb250
ZW50TGF5ZXIpOworfQorCit2b2lkIExheWVyQ29udHJvbGxlcjo6dXBkYXRlUm9vdExheWVyR2Vv
bWV0cnkoRmxvYXRTaXplIHZpZXdTaXplLCBGbG9hdFNpemUgY29udGVudFNpemUpCit7CisgICAg
bV9yb290TGF5ZXItPnNldFNpemUodmlld1NpemUpOworCisgICAgZmxvYXQgdG9wQ29udGVudElu
c2V0ID0gbV92aWV3LmZyYW1lVmlldygpLnRvcENvbnRlbnRJbnNldCgpOworICAgIG1fY29udGVu
dEhvc3RMYXllci0+c2V0UG9zaXRpb24oeyAwLCB0b3BDb250ZW50SW5zZXQgfSk7CisgICAgbV9j
b250ZW50SG9zdExheWVyLT5zZXRTaXplKHZpZXdTaXplKTsKKworICAgIG1fY29udGVudExheWVy
LT5zZXRTaXplKGNvbnRlbnRTaXplKTsKK30KKwordm9pZCBMYXllckNvbnRyb2xsZXI6OmF0dGFj
aFJvb3RMYXllcigpCit7CisgICAgYXV0byBwYWdlID0gbV92aWV3LnBhZ2UoKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKG1fdmlldy5mcmFtZSgpLCByb290R3JhcGhpY3NMYXllcigp
KTsKK30KKwordm9pZCBMYXllckNvbnRyb2xsZXI6OmRldGFjaFJvb3RMYXllcigpCit7CisgICAg
YXV0byBwYWdlID0gbV92aWV3LnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
bjsKKworICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KG1fdmlldy5mcmFtZSgpLCBudWxscHRyKTsKK30KKwordm9pZCBMYXllckNvbnRyb2xsZXI6OnNl
dElzSW5XaW5kb3coYm9vbCBpc0luV2luZG93KQoreworICAgIGlmIChpc0luV2luZG93KQorICAg
ICAgICBhdHRhY2hSb290TGF5ZXIoKTsKKyAgICBlbHNlCisgICAgICAgIGRldGFjaFJvb3RMYXll
cigpOworfQorCitHcmFwaGljc0xheWVyRmFjdG9yeSogTGF5ZXJDb250cm9sbGVyOjpncmFwaGlj
c0xheWVyRmFjdG9yeSgpIGNvbnN0Cit7CisgICAgYXV0byBwYWdlID0gbV92aWV3LnBhZ2UoKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIHBh
Z2UtPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIERpc3BsYXkKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZGlzcGxheS9jb21wb3NpdGluZy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9kaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5lYWY4YzY2Mzk2OWQ2NjMwZjlmYWZjMGQyYmI3MGFhYTZlOTI3N2FmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jb21wb3NpdGluZy9EaXNwbGF5TGF5
ZXJDb250cm9sbGVyLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAi
R3JhcGhpY3NMYXllci5oIgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0xheWVyOworY2xhc3MgR3JhcGhpY3NMYXllckZh
Y3Rvcnk7CisKK25hbWVzcGFjZSBEaXNwbGF5IHsKKworY2xhc3MgVHJlZTsKK2NsYXNzIFZpZXc7
CisKKy8vIEEgY29udHJvbGxlciBvYmplY3QgdGhhdCBtYWtlcyBsYXllcml6YXRpb24gZGVjaXNp
b25zIGZvciBhIGRpc3BsYXkgdHJlZSwgZm9yIGEgc2luZ2xlIGRvY3VtZW50LgorY2xhc3MgTGF5
ZXJDb250cm9sbGVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRChMYXllckNvbnRyb2xs
ZXIpOworcHVibGljOgorICAgIGV4cGxpY2l0IExheWVyQ29udHJvbGxlcihWaWV3Jik7CisgICAg
fkxheWVyQ29udHJvbGxlcigpOworICAgIAorICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoc3Rk
Ojp1bmlxdWVfcHRyPERpc3BsYXk6OlRyZWU+JiYpOworICAgIHZvaWQgZmx1c2hMYXllcnMoKTsK
KworICAgIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKTsKKworICAgIGNvbnN0IFZpZXcmIHZpZXco
KSBjb25zdCB7IHJldHVybiBtX3ZpZXc7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIGF0dGFjaFJv
b3RMYXllcigpOworICAgIHZvaWQgZGV0YWNoUm9vdExheWVyKCk7CisKKyAgICB2b2lkIGVuc3Vy
ZVJvb3RMYXllcihGbG9hdFNpemUgdmlld1NpemUsIEZsb2F0U2l6ZSBjb250ZW50U2l6ZSk7Cisg
ICAgdm9pZCB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeShGbG9hdFNpemUgdmlld1NpemUsIEZsb2F0
U2l6ZSBjb250ZW50U2l6ZSk7CisKKyAgICB2b2lkIHNldHVwUm9vdExheWVySGllcmFyY2h5KCk7
CisgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOworICAgIAorICAgIEdyYXBoaWNz
TGF5ZXIqIHJvb3RHcmFwaGljc0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0
KCk7IH0KKyAgICBHcmFwaGljc0xheWVyKiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRlbnRMYXllci5nZXQoKTsgfQorCisgICAgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgY29uc3Q7CisKKyAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3RGb3JM
YXllckZsdXNoaW5nKCkgY29uc3Q7CisKKyAgICBjbGFzcyBSb290TGF5ZXJDbGllbnQgOiBwdWJs
aWMgR3JhcGhpY3NMYXllckNsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICBSb290TGF5ZXJD
bGllbnQoTGF5ZXJDb250cm9sbGVyJik7CisKKyAgICBwcml2YXRlOgorICAgICAgICAvLyBHcmFw
aGljc0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCisgICAgICAgIHZvaWQgbm90aWZ5Rmx1c2hS
ZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgICAgIHZvaWQgcGFpbnRD
b250ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxv
YXRSZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIGZpbmFsOworICAgICAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IGZpbmFsOworCisgICAgICAgIExheWVyQ29udHJv
bGxlciYgbV9sYXllckNvbnRyb2xsZXI7CisgICAgfTsKKworICAgIFZpZXcmIG1fdmlldzsKKyAg
ICBSb290TGF5ZXJDbGllbnQgbV9yb290TGF5ZXJDbGllbnQ7CisKKyAgICBSZWZQdHI8R3JhcGhp
Y3NMYXllcj4gbV9yb290TGF5ZXI7CisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVu
dEhvc3RMYXllcjsKKyAgICBSZWZQdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50TGF5ZXI7CisK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheTo6VHJlZT4gbV9kaXNwbGF5VHJlZTsKK307CisK
K30gLy8gbmFtZXNwYWNlIERpc3BsYXkKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQo=
</data>
<flag name="commit-queue"
          id="432767"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>415523</attachid>
            <date>2020-12-06 12:33:48 -0800</date>
            <delta_ts>2020-12-06 20:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219584-20201206123347.patch</filename>
            <type>text/plain</type>
            <size>31761</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwNDg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA5NWRmMWU5MWIyZjA1
ZmVkMWYzNTVkNTRhYjk5ZDhmMDFjYWU0ZC4uYzEzM2M3M2Q2YWEzNzI0YmFkZjM5NjNhMjFkMGJl
YjMwMTdiODRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTEyLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtMRkMgRGlzcGxh
eV0gTW92ZSBEaXNwbGF5TGF5ZXJDb250cm9sbGVyIHRvIGRpc3BsYXkvY29tcG9zaXRpbmcKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTU4NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgYSBkaXNw
bGF5L2NvbXBvc2l0aW5nIGRpcmVjdG9yeSBhbmQgbW92ZSBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LiogaW50byBpdC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFNvdXJj
ZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBkaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmNwcC4KKyAgICAgICAgKiBkaXNwbGF5L2NvbXBvc2l0aW5nL0Rpc3BsYXlMYXllckNvbnRyb2xs
ZXIuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29u
dHJvbGxlci5oLgorCiAyMDIwLTEyLTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFtMRkMgRGlzcGxheV0gS2VlcCB0cmFjayBvZiB0aGUgcGFpbnRl
ZCBib3VuZHMgb2YgU3RhY2tpbmdJdGVtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZjJjNzY4
ZDVmNTY4ZWExMGMyYmQ2NTE5MTFkYWZhZGFjYmVmZmZlLi42NmEwNDQ4N2IzYWViYmVmYjFmNzBm
YzFjNDEwMmRhOTQ4ZTk4MWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtODYsNiArODYsNyBA
QCBzZXQoV2ViQ29yZV9QUklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JF
X0RJUn0vY3NzL3R5cGVkb20iCiAgICAgIiR7V0VCQ09SRV9ESVJ9L2Nzc2ppdCIKICAgICAiJHtX
RUJDT1JFX0RJUn0vZGlzcGxheSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vZGlzcGxheS9jb21wb3Np
dGluZyIKICAgICAiJHtXRUJDT1JFX0RJUn0vZGlzcGxheS9jc3MiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L2RvbSIKICAgICAiJHtXRUJDT1JFX0RJUn0vZG9tL21lc3NhZ2Vwb3J0cyIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IDMwMDY5NGI0YmY1ZjBmNGY5ZmVlOTU4NmRmMjYxYmQxMDMzZTY3MWYuLmIx
ZjU0ZjYxYzJhM2RiOWYxZGUxNGYyZGVlY2M5ZDk3ZjQxOGFjODEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMzgzLDExICszODMsMTIgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIGNzcy9wYXJzZXIvQ1NTUGFyc2VyVG9rZW4uaAogICAgIGNzcy9wYXJzZXIvQ1NT
UGFyc2VyVG9rZW5SYW5nZS5oCiAKLSAgICBkaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRyb2xsZXIu
aAogICAgIGRpc3BsYXkvRGlzcGxheVRyZWUuaAogICAgIGRpc3BsYXkvRGlzcGxheVRyZWVCdWls
ZGVyLmgKICAgICBkaXNwbGF5L0Rpc3BsYXlWaWV3LmgKIAorICAgIGRpc3BsYXkvY29tcG9zaXRp
bmcvRGlzcGxheUxheWVyQ29udHJvbGxlci5oCisKICAgICBkaXNwbGF5L2Nzcy9EaXNwbGF5Qm94
LmgKICAgICBkaXNwbGF5L2Nzcy9EaXNwbGF5Q1NTUGFpbnRlci5oCiAgICAgZGlzcGxheS9jc3Mv
RGlzcGxheUNvbnRhaW5lckJveC5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
LnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDBlZGRjMTUzZTc0OTRjMWY4
MWFmMjdmYTkyZjdjNTQ2NzJhZWIyYzUuLjI1NmYyZDFkNTY4NmNiNjlmY2JkYWE4NDYxMzJjYzg5
NTk2NGM2ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC04MzUsNiArODM1LDcgQEAgY3NzL3R5cGVkb20v
VHlwZWRPTUNTU1N0eWxlVmFsdWUuY3BwCiBjc3MvdHlwZWRvbS9UeXBlZE9NQ1NTVW5pdFZhbHVl
LmNwcAogY3NzL3R5cGVkb20vVHlwZWRPTUNTU1VucGFyc2VkVmFsdWUuY3BwCiBjc3NqaXQvU2Vs
ZWN0b3JDb21waWxlci5jcHAKK2Rpc3BsYXkvY29tcG9zaXRpbmcvRGlzcGxheUxheWVyQ29udHJv
bGxlci5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3guY3BwCiBkaXNwbGF5L2Nzcy9EaXNwbGF5
Qm94Q2xpcC5jcHAKIGRpc3BsYXkvY3NzL0Rpc3BsYXlCb3hEZWNvcmF0aW9uRGF0YS5jcHAKQEAg
LTg1MSw3ICs4NTIsNiBAQCBkaXNwbGF5L2Nzcy9EaXNwbGF5UmVwbGFjZWRCb3guY3BwCiBkaXNw
bGF5L2Nzcy9EaXNwbGF5U3RhY2tpbmdJdGVtLmNwcAogZGlzcGxheS9jc3MvRGlzcGxheVN0eWxl
LmNwcAogZGlzcGxheS9jc3MvRGlzcGxheVRleHRCb3guY3BwCi1kaXNwbGF5L0Rpc3BsYXlMYXll
ckNvbnRyb2xsZXIuY3BwCiBkaXNwbGF5L0Rpc3BsYXlUcmVlLmNwcAogZGlzcGxheS9EaXNwbGF5
VHJlZUJ1aWxkZXIuY3BwCiBkaXNwbGF5L0Rpc3BsYXlWaWV3LmNwcApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIxMDM5Y2NjYTdl
MjRhYzNiNmM0NzIyYmE0YWQ1ZGE0ODBhMWZkMzguLjMwN2YxYjBkOGJhMmFmNjg1NDc1NDAxMzAw
Njk1NWU5NWQ5YzA1YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTMyMCw3ICszMjAsNiBAQAogCQkwRjZBMTJCRTFBMDA5MjM3
MDBDNkRFNzIgLyogRGVidWdQYWdlT3ZlcmxheXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNkExMkJDMUEwMDkyMzcwMEM2REU3MiAvKiBEZWJ1Z1Bh
Z2VPdmVybGF5cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTBGNkI3MDdBMjM3QkMzNkQwMDUyQ0E0NyAvKiBDU1NVbml0cy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY2QjcwNzcyMzdCQzEyRjAwNTJD
QTQ3IC8qIENTU1VuaXRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY3M0I3NjkyMjJCM0EwQzAwODA1MzE2IC8qIFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGVNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGQzA1MTZBMjE5QjVFQkUwMDMxQzM5RSAvKiBTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKLQkJMEY3OTBGNDIyNTE3Q0U2RTAwOUJBMDM0IC8qIERpc3BsYXlMYXll
ckNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNzkwRjNFMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmgg
Ki87IH07CiAJCTBGNzkwRjQzMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5Vmlldy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3OTBGM0YyNTE3Q0U2
RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmggKi87IH07CiAJCTBGN0QwNzMzMTg4NEM1NkMwMEI0
QUY4NiAvKiBQbGF0Zm9ybVRleHRUcmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMDcyODQ3RTIxNkVCQzVCMDAwNDNDRkE0IC8qIFBsYXRmb3JtVGV4
dFRyYWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJMEY4NTBGRTMxRUQ3QzE4MzAwRkI3N0E3IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY4NTBGRTIx
RUQ3QzE4MzAwRkI3N0E3IC8qIFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC02MDc4LDkgKzYwNzcsNyBA
QAogCQkwRjcwNDk1RDIxMUI1MjQyMDAzNjk5NjggLyogQWN0aXZpdHlTdGF0ZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBY3Rpdml0eVN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEY3M0I3NjUyMjJCMzI3RjAwODA1MzE2IC8qIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEY3OTBGM0QyNTE3Q0U2
RDAwOUJBMDM0IC8qIERpc3BsYXlWaWV3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlWaWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEY3OTBGM0UyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUxheWVyQ29udHJvbGxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjc5MEYzRjI1MTdDRTZEMDA5QkEwMzQgLyog
RGlzcGxheVZpZXcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheVZp
ZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEY3OTBGNDAyNTE3Q0U2RDAwOUJB
MDM0IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRGlzcGxheUxheWVyQ29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGN0RGMTQ3MUUyQkYxQTYwMDk1OTUxQiAvKiBXZWJDb3JlSlNDbGll
bnREYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNvcmVK
U0NsaWVudERhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg1MEZFMjFF
RDdDMTgzMDBGQjc3QTcgLyogUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRjg2ODJGQTI1NzA3RjQ3MDBDMDhCQjUgLyogRGlzcGxh
eVN0YWNraW5nSXRlbS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5U3RhY2tpbmdJdGVtLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MTM0LDYgKzYxMzEsOCBAQAogCQkwRkM2OTJC
QzI1N0MwRjQxMDA5OEUzRjkgLyogU2Nyb2xsQW5pbWF0aW9uS2luZXRpYy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTY3JvbGxBbmltYXRpb25LaW5ldGljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEZDNjkyQkQyNTdDMEY0MTAwOThFM0Y5IC8qIFNjcm9sbEFuaW1hdGlvblNt
b290aC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkM2OTJCRTI1N0MwRjQyMDA5OEUzRjkgLyog
U2Nyb2xsQW5pbWF0aW9uU21vb3RoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcm9sbEFuaW1hdGlvblNt
b290aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkM2OTJDNTI1N0Q3MEYyMDA5
OEUzRjkgLyogRGlzcGxheUxheWVyQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5
TGF5ZXJDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGQzY5MkM2
MjU3RDcwRjMwMDk4RTNGOSAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkNGMzMyMzBGMkI5NzE1MDA0QjY3OTUgLyogQ29sb3JDRy5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDb2xvckNHLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRjMzMkEwRjJCOUEyNTAwNEI2Nzk1IC8qIFdlYkxheWVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViTGF5ZXIubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0YzMzJCMEYyQjlBMjUwMDRCNjc5NSAvKiBX
ZWJMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJMYXllci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTc4MDcsOSArMTc4MDYsOCBAQAogCQkwRjc5
MEYzQzI1MTdDRTZEMDA5QkEwMzQgLyogZGlzcGxheSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMEZDNjkyQzMyNTdENzBDQTAwOThFM0Y5IC8qIGNvbXBv
c2l0aW5nICovLAogCQkJCTBGRkYxQjcxMjUxQkM2NTcwMDk4Nzk1QSAvKiBjc3MgKi8sCi0JCQkJ
MEY3OTBGNDAyNTE3Q0U2RDAwOUJBMDM0IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwICov
LAotCQkJCTBGNzkwRjNFMjUxN0NFNkQwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmggKi8sCiAJCQkJMEZGRjFCODIyNTFCQzY2MzAwOTg3OTVBIC8qIERpc3BsYXlUcmVlLmNwcCAq
LywKIAkJCQkwRkZGMUI4MTI1MUJDNjYzMDA5ODc5NUEgLyogRGlzcGxheVRyZWUuaCAqLywKIAkJ
CQkwRkZGMUI4MDI1MUJDNjYyMDA5ODc5NUEgLyogRGlzcGxheVRyZWVCdWlsZGVyLmNwcCAqLywK
QEAgLTE3ODIwLDYgKzE3ODE4LDE1IEBACiAJCQlwYXRoID0gZGlzcGxheTsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTBGQzY5MkMzMjU3RDcwQ0EwMDk4RTNGOSAvKiBjb21w
b3NpdGluZyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJ
MEZDNjkyQzYyNTdENzBGMzAwOThFM0Y5IC8qIERpc3BsYXlMYXllckNvbnRyb2xsZXIuY3BwICov
LAorCQkJCTBGQzY5MkM1MjU3RDcwRjIwMDk4RTNGOSAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmggKi8sCisJCQkpOworCQkJcGF0aCA9IGNvbXBvc2l0aW5nOworCQkJc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsKKwkJfTsKIAkJMEZFNUZCQzkxQzNERDUwNjAwMDdBMkNBIC8qIGRpc3BsYXlsaXN0
cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zMTczMCw3
ICszMTczNyw2IEBACiAJCQkJODM1RDU0QzUxRjRERTUzODAwRTYwNjcxIC8qIERpcmVjdG9yeUZp
bGVMaXN0Q3JlYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjQ3QTA5RDEyMEE5M0E5NzAwMjQw
RkFFIC8qIERpc2FibGVkQWRhcHRhdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdFREFBRkM5
MTlBMkNDREMwMDM0REZEMSAvKiBEaXNrQ2FjaGVNb25pdG9yQ29jb2EuaCBpbiBIZWFkZXJzICov
LAotCQkJCTBGNzkwRjQyMjUxN0NFNkUwMDlCQTAzNCAvKiBEaXNwbGF5TGF5ZXJDb250cm9sbGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU1RkJEMzFDM0RENTFFMDAwN0EyQ0EgLyogRGlzcGxh
eUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDQUY1NkRCMjUzMDFBQzgwMDE3QjQ3MiAvKiBE
aXNwbGF5TGlzdERyYXdHbHlwaHNSZWNvcmRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTVBRDA5
NDAyNDA4OTY0MDAwREU0RDJGIC8qIERpc3BsYXlMaXN0RHJhd2luZ0NvbnRleHQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5TGF5ZXJD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJv
bGxlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDc5NDNkMTI0MDIzMjQyNGZi
ODQ4OWVmOTgzYWMxMGQzN2ExZmY2NzAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvZGlzcGxheS9EaXNwbGF5TGF5ZXJDb250cm9s
bGVyLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIxOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkRpc3BsYXlMYXllckNvbnRyb2xsZXIuaCIKLQot
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiQ2hyb21l
LmgiCi0jaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiRGlzcGxheUNTU1BhaW50
ZXIuaCIKLSNpbmNsdWRlICJEaXNwbGF5Q29udGFpbmVyQm94LmgiCi0jaW5jbHVkZSAiRGlzcGxh
eVBhaW50aW5nQ29udGV4dC5oIgotI2luY2x1ZGUgIkRpc3BsYXlUcmVlLmgiCi0jaW5jbHVkZSAi
RGlzcGxheVZpZXcuaCIKLSNpbmNsdWRlICJGcmFtZS5oIgotI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgotI2luY2x1ZGUgIkxvZ2dpbmcuaCIKLSNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiU2V0
dGluZ3MuaCIKLQotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLW5hbWVzcGFjZSBEaXNwbGF5IHsKLQotTGF5ZXJDb250cm9sbGVyOjpSb290
TGF5ZXJDbGllbnQ6OlJvb3RMYXllckNsaWVudChMYXllckNvbnRyb2xsZXImIGxheWVyQ29udHJv
bGxlcikKLSAgICA6IG1fbGF5ZXJDb250cm9sbGVyKGxheWVyQ29udHJvbGxlcikKLXsKLX0KLQot
dm9pZCBMYXllckNvbnRyb2xsZXI6OlJvb3RMYXllckNsaWVudDo6bm90aWZ5Rmx1c2hSZXF1aXJl
ZChjb25zdCBHcmFwaGljc0xheWVyKikKLXsKLSAgICBtX2xheWVyQ29udHJvbGxlci5zY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZSgpOwotfQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6Um9vdExheWVy
Q2xpZW50OjpwYWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGxheWVyLCBHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZGlydHlSZWN0LCBHcmFwaGljc0xh
eWVyUGFpbnRCZWhhdmlvcikKLXsKLSAgICBBU1NFUlRfVU5VU0VEKGxheWVyLCBsYXllciA9PSBt
X2xheWVyQ29udHJvbGxlci5jb250ZW50TGF5ZXIoKSk7Ci0KLSAgICBpZiAoYXV0byogZGlzcGxh
eVRyZWUgPSBtX2xheWVyQ29udHJvbGxlci5tX2Rpc3BsYXlUcmVlLmdldCgpKSB7Ci0gICAgICAg
IFBhaW50aW5nQ29udGV4dCBwYWludGluZ0NvbnRleHQgeyBjb250ZXh0LCBkZXZpY2VTY2FsZUZh
Y3RvcigpIH07Ci0gICAgICAgIENTU1BhaW50ZXI6OnBhaW50VHJlZSgqZGlzcGxheVRyZWUsIHBh
aW50aW5nQ29udGV4dCwgZW5jbG9zaW5nSW50UmVjdChkaXJ0eVJlY3QpKTsKLSAgICB9Ci19Ci0K
LWZsb2F0IExheWVyQ29udHJvbGxlcjo6Um9vdExheWVyQ2xpZW50OjpkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fbGF5ZXJDb250cm9sbGVyLnZpZXcoKS5kZXZpY2VT
Y2FsZUZhY3RvcigpOwotfQotCi1MYXllckNvbnRyb2xsZXI6OkxheWVyQ29udHJvbGxlcihWaWV3
JiB2aWV3KQotICAgIDogbV92aWV3KHZpZXcpCi0gICAgLCBtX3Jvb3RMYXllckNsaWVudCgqdGhp
cykKLXsKLX0KLQotTGF5ZXJDb250cm9sbGVyOjp+TGF5ZXJDb250cm9sbGVyKCkgPSBkZWZhdWx0
OwotCi12b2lkIExheWVyQ29udHJvbGxlcjo6cHJlcGFyZUZvckRpc3BsYXkoc3RkOjp1bmlxdWVf
cHRyPERpc3BsYXk6OlRyZWU+JiYgZGlzcGxheVRyZWUpCi17Ci0gICAgQVNTRVJUKGRpc3BsYXlU
cmVlKTsKLSAgICBtX2Rpc3BsYXlUcmVlID0gV1RGTW92ZShkaXNwbGF5VHJlZSk7Ci0KLSAgICBh
dXRvIHZpZXdTaXplID0gbV9kaXNwbGF5VHJlZS0+cm9vdEJveCgpLmFic29sdXRlQm9yZGVyQm94
UmVjdCgpLnNpemUoKTsKLSAgICAvLyBGSVhNRTogRG8gb3ZlcmZsb3cgZXRjLgotICAgIGF1dG8g
Y29udGVudFNpemUgPSB2aWV3U2l6ZTsKLQotICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5n
Q29udGV4dExheW91dCwgc3RyZWFtIDw8ICJMYXllckNvbnRyb2xsZXI6OnByZXBhcmVGb3JEaXNw
bGF5IC0gdmlld1NpemUgIiA8PCB2aWV3U2l6ZSA8PCAiIGNvbnRlbnRTaXplICIgPDwgY29udGVu
dFNpemUpOwotCi0gICAgZW5zdXJlUm9vdExheWVyKHZpZXdTaXplLCBjb250ZW50U2l6ZSk7Ci0g
ICAgCi0gICAgLy8gRklYTUU6IEZvciBub3csIHJlcGFpbnQgdGhlIHdvcmxkIG9uIGV2ZXJ5IHVw
ZGF0ZS4KLSAgICBtX2NvbnRlbnRMYXllci0+c2V0TmVlZHNEaXNwbGF5KCk7Ci0gICAgCi0gICAg
YXV0byYgc2V0dGluZ3MgPSBtX3ZpZXcuZnJhbWUoKS5zZXR0aW5ncygpOwotICAgIGJvb2wgc2hv
d0RlYnVnQm9yZGVycyA9IHNldHRpbmdzLnNob3dEZWJ1Z0JvcmRlcnMoKTsKLSAgICBib29sIHNo
b3dSZXBhaW50Q291bnRlciA9IHNldHRpbmdzLnNob3dSZXBhaW50Q291bnRlcigpOwotICAgIGJv
b2wgYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCA9IHNldHRpbmdzLmFjY2VsZXJhdGVkRHJhd2lu
Z0VuYWJsZWQoKTsKLQotICAgIG1fcm9vdExheWVyLT5zZXRTaG93RGVidWdCb3JkZXIoc2hvd0Rl
YnVnQm9yZGVycyk7Ci0gICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRTaG93RGVidWdCb3JkZXIo
c2hvd0RlYnVnQm9yZGVycyk7Ci0KLSAgICBtX2NvbnRlbnRMYXllci0+c2V0U2hvd0RlYnVnQm9y
ZGVyKHNob3dEZWJ1Z0JvcmRlcnMpOwotICAgIG1fY29udGVudExheWVyLT5zZXRTaG93UmVwYWlu
dENvdW50ZXIoc2hvd1JlcGFpbnRDb3VudGVyKTsKLSAgICBtX2NvbnRlbnRMYXllci0+c2V0QWNj
ZWxlcmF0ZXNEcmF3aW5nKGFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQpOwotfQotCi12b2lkIExh
eWVyQ29udHJvbGxlcjo6Zmx1c2hMYXllcnMoKQotewotICAgIGlmICghbV9yb290TGF5ZXIpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIEZsb2F0UmVjdCB2aXNpYmxlUmVjdCA9IHZpc2libGVSZWN0
Rm9yTGF5ZXJGbHVzaGluZygpOwotICAgIG1fcm9vdExheWVyLT5mbHVzaENvbXBvc2l0aW5nU3Rh
dGUodmlzaWJsZVJlY3QpOwotfQotCi1GbG9hdFJlY3QgTGF5ZXJDb250cm9sbGVyOjp2aXNpYmxl
UmVjdEZvckxheWVyRmx1c2hpbmcoKSBjb25zdAotewotICAgIGNvbnN0IGF1dG8mIGZyYW1lVmll
dyA9IG1fdmlldy5mcmFtZVZpZXcoKTsKLSAgICByZXR1cm4gZnJhbWVWaWV3LnZpc2libGVDb250
ZW50UmVjdCgpOwotfQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6c2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoKQotewotICAgIGF1dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7Ci0gICAgaWYgKCFwYWdl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZShS
ZW5kZXJpbmdVcGRhdGVTdGVwOjpMYXllckZsdXNoKTsKLX0KLQotdm9pZCBMYXllckNvbnRyb2xs
ZXI6OmVuc3VyZVJvb3RMYXllcihGbG9hdFNpemUgdmlld1NpemUsIEZsb2F0U2l6ZSBjb250ZW50
U2l6ZSkKLXsKLSAgICBpZiAobV9yb290TGF5ZXIpIHsKLSAgICAgICAgdXBkYXRlUm9vdExheWVy
R2VvbWV0cnkodmlld1NpemUsIGNvbnRlbnRTaXplKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIHNldHVwUm9vdExheWVySGllcmFyY2h5KCk7Ci0gICAgdXBkYXRlUm9vdExheWVyR2Vv
bWV0cnkodmlld1NpemUsIGNvbnRlbnRTaXplKTsKLQotICAgIGF0dGFjaFJvb3RMYXllcigpOwot
fQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6c2V0dXBSb290TGF5ZXJIaWVyYXJjaHkoKQotewot
ICAgIC8vIEZJWE1FOiBUaGlzIGxheWVyIGhpZXJhcmNoeSBpcyBqdXN0IGVub3VnaCB0byBnZXQg
dG9wQ29udGVudEluc2V0IHdvcmtpbmcuCi0gICAgbV9yb290TGF5ZXIgPSBHcmFwaGljc0xheWVy
OjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgbV9yb290TGF5ZXJDbGllbnQpOwotICAg
IG1fcm9vdExheWVyLT5zZXROYW1lKCJkaXNwbGF5IHJvb3QiKTsKLSAgICBtX3Jvb3RMYXllci0+
c2V0UG9zaXRpb24oeyB9KTsKLSAgICBtX3Jvb3RMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9KTsK
LQotICAgIG1fY29udGVudEhvc3RMYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGlj
c0xheWVyRmFjdG9yeSgpLCBtX3Jvb3RMYXllckNsaWVudCk7Ci0gICAgbV9jb250ZW50SG9zdExh
eWVyLT5zZXROYW1lKCJjb250ZW50IGhvc3QiKTsKLSAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNl
dEFuY2hvclBvaW50KHsgfSk7Ci0KLSAgICBtX2NvbnRlbnRMYXllciA9IEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCBtX3Jvb3RMYXllckNsaWVudCk7Ci0gICAg
bV9jb250ZW50TGF5ZXItPnNldE5hbWUoImNvbnRlbnQiKTsKLSAgICBtX2NvbnRlbnRMYXllci0+
c2V0UG9zaXRpb24oeyB9KTsKLSAgICBtX2NvbnRlbnRMYXllci0+c2V0QW5jaG9yUG9pbnQoeyB9
KTsKLSAgICBtX2NvbnRlbnRMYXllci0+c2V0RHJhd3NDb250ZW50KHRydWUpOwotICAgIAotICAg
IG1fcm9vdExheWVyLT5hZGRDaGlsZCgqbV9jb250ZW50SG9zdExheWVyKTsKLSAgICBtX2NvbnRl
bnRIb3N0TGF5ZXItPmFkZENoaWxkKCptX2NvbnRlbnRMYXllcik7Ci19Ci0KLXZvaWQgTGF5ZXJD
b250cm9sbGVyOjp1cGRhdGVSb290TGF5ZXJHZW9tZXRyeShGbG9hdFNpemUgdmlld1NpemUsIEZs
b2F0U2l6ZSBjb250ZW50U2l6ZSkKLXsKLSAgICBtX3Jvb3RMYXllci0+c2V0U2l6ZSh2aWV3U2l6
ZSk7Ci0KLSAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBtX3ZpZXcuZnJhbWVWaWV3KCkudG9w
Q29udGVudEluc2V0KCk7Ci0gICAgbV9jb250ZW50SG9zdExheWVyLT5zZXRQb3NpdGlvbih7IDAs
IHRvcENvbnRlbnRJbnNldCB9KTsKLSAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldFNpemUodmll
d1NpemUpOwotCi0gICAgbV9jb250ZW50TGF5ZXItPnNldFNpemUoY29udGVudFNpemUpOwotfQot
Ci12b2lkIExheWVyQ29udHJvbGxlcjo6YXR0YWNoUm9vdExheWVyKCkKLXsKLSAgICBhdXRvIHBh
Z2UgPSBtX3ZpZXcucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV92aWV3
LmZyYW1lKCksIHJvb3RHcmFwaGljc0xheWVyKCkpOwotfQotCi12b2lkIExheWVyQ29udHJvbGxl
cjo6ZGV0YWNoUm9vdExheWVyKCkKLXsKLSAgICBhdXRvIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOwot
ICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcGFnZS0+Y2hyb21lKCkuY2xp
ZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIobV92aWV3LmZyYW1lKCksIG51bGxwdHIpOwot
fQotCi12b2lkIExheWVyQ29udHJvbGxlcjo6c2V0SXNJbldpbmRvdyhib29sIGlzSW5XaW5kb3cp
Ci17Ci0gICAgaWYgKGlzSW5XaW5kb3cpCi0gICAgICAgIGF0dGFjaFJvb3RMYXllcigpOwotICAg
IGVsc2UKLSAgICAgICAgZGV0YWNoUm9vdExheWVyKCk7Ci19Ci0KLUdyYXBoaWNzTGF5ZXJGYWN0
b3J5KiBMYXllckNvbnRyb2xsZXI6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKLXsKLSAg
ICBhdXRvIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KLSAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhp
Y3NMYXllckZhY3RvcnkoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgRGlzcGxheQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kaXNwbGF5L0Rpc3BsYXlMYXllckNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYWY4YzY2Mzk2OWQ2NjMwZjlmYWZjMGQy
YmI3MGFhYTZlOTI3N2FmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvRGlzcGxheUxheWVyQ29udHJvbGxlci5oCisr
KyAvZGV2L251bGwKQEAgLTEsMTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiR3Jh
cGhpY3NMYXllci5oIgotI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2MuaD4KLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1jbGFzcyBHcmFwaGljc0xheWVyOwotY2xhc3MgR3JhcGhpY3NMYXllckZhY3Rv
cnk7Ci0KLW5hbWVzcGFjZSBEaXNwbGF5IHsKLQotY2xhc3MgVHJlZTsKLWNsYXNzIFZpZXc7Ci0K
LS8vIEEgY29udHJvbGxlciBvYmplY3QgdGhhdCBtYWtlcyBsYXllcml6YXRpb24gZGVjaXNpb25z
IGZvciBhIGRpc3BsYXkgdHJlZSwgZm9yIGEgc2luZ2xlIGRvY3VtZW50LgotY2xhc3MgTGF5ZXJD
b250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRChMYXllckNvbnRyb2xsZXIp
OwotcHVibGljOgotICAgIGV4cGxpY2l0IExheWVyQ29udHJvbGxlcihWaWV3Jik7Ci0gICAgfkxh
eWVyQ29udHJvbGxlcigpOwotICAgIAotICAgIHZvaWQgcHJlcGFyZUZvckRpc3BsYXkoc3RkOjp1
bmlxdWVfcHRyPERpc3BsYXk6OlRyZWU+JiYpOwotICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKLQot
ICAgIHZvaWQgc2V0SXNJbldpbmRvdyhib29sKTsKLQotICAgIGNvbnN0IFZpZXcmIHZpZXcoKSBj
b25zdCB7IHJldHVybiBtX3ZpZXc7IH0KLQotcHJpdmF0ZToKLSAgICB2b2lkIGF0dGFjaFJvb3RM
YXllcigpOwotICAgIHZvaWQgZGV0YWNoUm9vdExheWVyKCk7Ci0KLSAgICB2b2lkIGVuc3VyZVJv
b3RMYXllcihGbG9hdFNpemUgdmlld1NpemUsIEZsb2F0U2l6ZSBjb250ZW50U2l6ZSk7Ci0gICAg
dm9pZCB1cGRhdGVSb290TGF5ZXJHZW9tZXRyeShGbG9hdFNpemUgdmlld1NpemUsIEZsb2F0U2l6
ZSBjb250ZW50U2l6ZSk7Ci0KLSAgICB2b2lkIHNldHVwUm9vdExheWVySGllcmFyY2h5KCk7Ci0g
ICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwotICAgIAotICAgIEdyYXBoaWNzTGF5
ZXIqIHJvb3RHcmFwaGljc0xheWVyKCkgY29uc3QgeyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7
IH0KLSAgICBHcmFwaGljc0xheWVyKiBjb250ZW50TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2Nv
bnRlbnRMYXllci5nZXQoKTsgfQotCi0gICAgR3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNz
TGF5ZXJGYWN0b3J5KCkgY29uc3Q7Ci0KLSAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3RGb3JMYXll
ckZsdXNoaW5nKCkgY29uc3Q7Ci0KLSAgICBjbGFzcyBSb290TGF5ZXJDbGllbnQgOiBwdWJsaWMg
R3JhcGhpY3NMYXllckNsaWVudCB7Ci0gICAgcHVibGljOgotICAgICAgICBSb290TGF5ZXJDbGll
bnQoTGF5ZXJDb250cm9sbGVyJik7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICAvLyBHcmFwaGlj
c0xheWVyQ2xpZW50IGltcGxlbWVudGF0aW9uCi0gICAgICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1
aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgZmluYWw7Ci0gICAgICAgIHZvaWQgcGFpbnRDb250
ZW50cyhjb25zdCBHcmFwaGljc0xheWVyKiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgR3JhcGhpY3NMYXllclBhaW50QmVoYXZpb3IpIGZpbmFsOwotICAgICAgICBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IGZpbmFsOwotCi0gICAgICAgIExheWVyQ29udHJvbGxl
ciYgbV9sYXllckNvbnRyb2xsZXI7Ci0gICAgfTsKLQotICAgIFZpZXcmIG1fdmlldzsKLSAgICBS
b290TGF5ZXJDbGllbnQgbV9yb290TGF5ZXJDbGllbnQ7Ci0KLSAgICBSZWZQdHI8R3JhcGhpY3NM
YXllcj4gbV9yb290TGF5ZXI7Ci0gICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fY29udGVudEhv
c3RMYXllcjsKLSAgICBSZWZQdHI8R3JhcGhpY3NMYXllcj4gbV9jb250ZW50TGF5ZXI7Ci0KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RGlzcGxheTo6VHJlZT4gbV9kaXNwbGF5VHJlZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIERpc3BsYXkKLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8v
IEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZGlzcGxheS9jb21wb3NpdGluZy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Rpc3BsYXkvY29tcG9zaXRpbmcvRGlzcGxheUxheWVyQ29udHJvbGxlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNzk0M2QxMjQwMjMyNDI0ZmI4NDg5ZWY5ODNhYzEwZDM3YTFmZjY3MAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY29tcG9zaXRpbmcvRGlz
cGxheUxheWVyQ29udHJvbGxlci5jcHAKQEAgLTAsMCArMSwyMTkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRGlzcGxheUxheWVyQ29udHJvbGxlci5oIgor
CisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJDaHJv
bWUuaCIKKyNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKKyNpbmNsdWRlICJEaXNwbGF5Q1NTUGFp
bnRlci5oIgorI2luY2x1ZGUgIkRpc3BsYXlDb250YWluZXJCb3guaCIKKyNpbmNsdWRlICJEaXNw
bGF5UGFpbnRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRGlzcGxheVRyZWUuaCIKKyNpbmNsdWRl
ICJEaXNwbGF5Vmlldy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVWaWV3
LmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJT
ZXR0aW5ncy5oIgorCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIERpc3BsYXkgeworCitMYXllckNvbnRyb2xsZXI6OlJv
b3RMYXllckNsaWVudDo6Um9vdExheWVyQ2xpZW50KExheWVyQ29udHJvbGxlciYgbGF5ZXJDb250
cm9sbGVyKQorICAgIDogbV9sYXllckNvbnRyb2xsZXIobGF5ZXJDb250cm9sbGVyKQoreworfQor
Cit2b2lkIExheWVyQ29udHJvbGxlcjo6Um9vdExheWVyQ2xpZW50Ojpub3RpZnlGbHVzaFJlcXVp
cmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKQoreworICAgIG1fbGF5ZXJDb250cm9sbGVyLnNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpSb290TGF5
ZXJDbGllbnQ6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciogbGF5ZXIsIEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkaXJ0eVJlY3QsIEdyYXBoaWNz
TGF5ZXJQYWludEJlaGF2aW9yKQoreworICAgIEFTU0VSVF9VTlVTRUQobGF5ZXIsIGxheWVyID09
IG1fbGF5ZXJDb250cm9sbGVyLmNvbnRlbnRMYXllcigpKTsKKworICAgIGlmIChhdXRvKiBkaXNw
bGF5VHJlZSA9IG1fbGF5ZXJDb250cm9sbGVyLm1fZGlzcGxheVRyZWUuZ2V0KCkpIHsKKyAgICAg
ICAgUGFpbnRpbmdDb250ZXh0IHBhaW50aW5nQ29udGV4dCB7IGNvbnRleHQsIGRldmljZVNjYWxl
RmFjdG9yKCkgfTsKKyAgICAgICAgQ1NTUGFpbnRlcjo6cGFpbnRUcmVlKCpkaXNwbGF5VHJlZSwg
cGFpbnRpbmdDb250ZXh0LCBlbmNsb3NpbmdJbnRSZWN0KGRpcnR5UmVjdCkpOworICAgIH0KK30K
KworZmxvYXQgTGF5ZXJDb250cm9sbGVyOjpSb290TGF5ZXJDbGllbnQ6OmRldmljZVNjYWxlRmFj
dG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9sYXllckNvbnRyb2xsZXIudmlldygpLmRldmlj
ZVNjYWxlRmFjdG9yKCk7Cit9CisKK0xheWVyQ29udHJvbGxlcjo6TGF5ZXJDb250cm9sbGVyKFZp
ZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fcm9vdExheWVyQ2xpZW50KCp0
aGlzKQoreworfQorCitMYXllckNvbnRyb2xsZXI6On5MYXllckNvbnRyb2xsZXIoKSA9IGRlZmF1
bHQ7CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpwcmVwYXJlRm9yRGlzcGxheShzdGQ6OnVuaXF1
ZV9wdHI8RGlzcGxheTo6VHJlZT4mJiBkaXNwbGF5VHJlZSkKK3sKKyAgICBBU1NFUlQoZGlzcGxh
eVRyZWUpOworICAgIG1fZGlzcGxheVRyZWUgPSBXVEZNb3ZlKGRpc3BsYXlUcmVlKTsKKworICAg
IGF1dG8gdmlld1NpemUgPSBtX2Rpc3BsYXlUcmVlLT5yb290Qm94KCkuYWJzb2x1dGVCb3JkZXJC
b3hSZWN0KCkuc2l6ZSgpOworICAgIC8vIEZJWE1FOiBEbyBvdmVyZmxvdyBldGMuCisgICAgYXV0
byBjb250ZW50U2l6ZSA9IHZpZXdTaXplOworCisgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRp
bmdDb250ZXh0TGF5b3V0LCBzdHJlYW0gPDwgIkxheWVyQ29udHJvbGxlcjo6cHJlcGFyZUZvckRp
c3BsYXkgLSB2aWV3U2l6ZSAiIDw8IHZpZXdTaXplIDw8ICIgY29udGVudFNpemUgIiA8PCBjb250
ZW50U2l6ZSk7CisKKyAgICBlbnN1cmVSb290TGF5ZXIodmlld1NpemUsIGNvbnRlbnRTaXplKTsK
KyAgICAKKyAgICAvLyBGSVhNRTogRm9yIG5vdywgcmVwYWludCB0aGUgd29ybGQgb24gZXZlcnkg
dXBkYXRlLgorICAgIG1fY29udGVudExheWVyLT5zZXROZWVkc0Rpc3BsYXkoKTsKKyAgICAKKyAg
ICBhdXRvJiBzZXR0aW5ncyA9IG1fdmlldy5mcmFtZSgpLnNldHRpbmdzKCk7CisgICAgYm9vbCBz
aG93RGVidWdCb3JkZXJzID0gc2V0dGluZ3Muc2hvd0RlYnVnQm9yZGVycygpOworICAgIGJvb2wg
c2hvd1JlcGFpbnRDb3VudGVyID0gc2V0dGluZ3Muc2hvd1JlcGFpbnRDb3VudGVyKCk7CisgICAg
Ym9vbCBhY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkID0gc2V0dGluZ3MuYWNjZWxlcmF0ZWREcmF3
aW5nRW5hYmxlZCgpOworCisgICAgbV9yb290TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRlcihzaG93
RGVidWdCb3JkZXJzKTsKKyAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldFNob3dEZWJ1Z0JvcmRl
cihzaG93RGVidWdCb3JkZXJzKTsKKworICAgIG1fY29udGVudExheWVyLT5zZXRTaG93RGVidWdC
b3JkZXIoc2hvd0RlYnVnQm9yZGVycyk7CisgICAgbV9jb250ZW50TGF5ZXItPnNldFNob3dSZXBh
aW50Q291bnRlcihzaG93UmVwYWludENvdW50ZXIpOworICAgIG1fY29udGVudExheWVyLT5zZXRB
Y2NlbGVyYXRlc0RyYXdpbmcoYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCk7Cit9CisKK3ZvaWQg
TGF5ZXJDb250cm9sbGVyOjpmbHVzaExheWVycygpCit7CisgICAgaWYgKCFtX3Jvb3RMYXllcikK
KyAgICAgICAgcmV0dXJuOworCisgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0ID0gdmlzaWJsZVJl
Y3RGb3JMYXllckZsdXNoaW5nKCk7CisgICAgbV9yb290TGF5ZXItPmZsdXNoQ29tcG9zaXRpbmdT
dGF0ZSh2aXNpYmxlUmVjdCk7Cit9CisKK0Zsb2F0UmVjdCBMYXllckNvbnRyb2xsZXI6OnZpc2li
bGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0Cit7CisgICAgY29uc3QgYXV0byYgZnJhbWVW
aWV3ID0gbV92aWV3LmZyYW1lVmlldygpOworICAgIHJldHVybiBmcmFtZVZpZXcudmlzaWJsZUNv
bnRlbnRSZWN0KCk7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpzY2hlZHVsZVJlbmRlcmlu
Z1VwZGF0ZSgpCit7CisgICAgYXV0byBwYWdlID0gbV92aWV3LnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KFJlbmRlcmluZ1VwZGF0ZVN0ZXA6OkxheWVyRmx1c2gpOworfQorCit2b2lkIExheWVyQ29udHJv
bGxlcjo6ZW5zdXJlUm9vdExheWVyKEZsb2F0U2l6ZSB2aWV3U2l6ZSwgRmxvYXRTaXplIGNvbnRl
bnRTaXplKQoreworICAgIGlmIChtX3Jvb3RMYXllcikgeworICAgICAgICB1cGRhdGVSb290TGF5
ZXJHZW9tZXRyeSh2aWV3U2l6ZSwgY29udGVudFNpemUpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc2V0dXBSb290TGF5ZXJIaWVyYXJjaHkoKTsKKyAgICB1cGRhdGVSb290TGF5ZXJH
ZW9tZXRyeSh2aWV3U2l6ZSwgY29udGVudFNpemUpOworCisgICAgYXR0YWNoUm9vdExheWVyKCk7
Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpzZXR1cFJvb3RMYXllckhpZXJhcmNoeSgpCit7
CisgICAgLy8gRklYTUU6IFRoaXMgbGF5ZXIgaGllcmFyY2h5IGlzIGp1c3QgZW5vdWdoIHRvIGdl
dCB0b3BDb250ZW50SW5zZXQgd29ya2luZy4KKyAgICBtX3Jvb3RMYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCBtX3Jvb3RMYXllckNsaWVudCk7Cisg
ICAgbV9yb290TGF5ZXItPnNldE5hbWUoImRpc3BsYXkgcm9vdCIpOworICAgIG1fcm9vdExheWVy
LT5zZXRQb3NpdGlvbih7IH0pOworICAgIG1fcm9vdExheWVyLT5zZXRBbmNob3JQb2ludCh7IH0p
OworCisgICAgbV9jb250ZW50SG9zdExheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKGdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCksIG1fcm9vdExheWVyQ2xpZW50KTsKKyAgICBtX2NvbnRlbnRIb3N0
TGF5ZXItPnNldE5hbWUoImNvbnRlbnQgaG9zdCIpOworICAgIG1fY29udGVudEhvc3RMYXllci0+
c2V0QW5jaG9yUG9pbnQoeyB9KTsKKworICAgIG1fY29udGVudExheWVyID0gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksIG1fcm9vdExheWVyQ2xpZW50KTsKKyAg
ICBtX2NvbnRlbnRMYXllci0+c2V0TmFtZSgiY29udGVudCIpOworICAgIG1fY29udGVudExheWVy
LT5zZXRQb3NpdGlvbih7IH0pOworICAgIG1fY29udGVudExheWVyLT5zZXRBbmNob3JQb2ludCh7
IH0pOworICAgIG1fY29udGVudExheWVyLT5zZXREcmF3c0NvbnRlbnQodHJ1ZSk7CisgICAgCisg
ICAgbV9yb290TGF5ZXItPmFkZENoaWxkKCptX2NvbnRlbnRIb3N0TGF5ZXIpOworICAgIG1fY29u
dGVudEhvc3RMYXllci0+YWRkQ2hpbGQoKm1fY29udGVudExheWVyKTsKK30KKwordm9pZCBMYXll
ckNvbnRyb2xsZXI6OnVwZGF0ZVJvb3RMYXllckdlb21ldHJ5KEZsb2F0U2l6ZSB2aWV3U2l6ZSwg
RmxvYXRTaXplIGNvbnRlbnRTaXplKQoreworICAgIG1fcm9vdExheWVyLT5zZXRTaXplKHZpZXdT
aXplKTsKKworICAgIGZsb2F0IHRvcENvbnRlbnRJbnNldCA9IG1fdmlldy5mcmFtZVZpZXcoKS50
b3BDb250ZW50SW5zZXQoKTsKKyAgICBtX2NvbnRlbnRIb3N0TGF5ZXItPnNldFBvc2l0aW9uKHsg
MCwgdG9wQ29udGVudEluc2V0IH0pOworICAgIG1fY29udGVudEhvc3RMYXllci0+c2V0U2l6ZSh2
aWV3U2l6ZSk7CisKKyAgICBtX2NvbnRlbnRMYXllci0+c2V0U2l6ZShjb250ZW50U2l6ZSk7Cit9
CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjphdHRhY2hSb290TGF5ZXIoKQoreworICAgIGF1dG8g
cGFnZSA9IG1fdmlldy5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisK
KyAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihtX3Zp
ZXcuZnJhbWUoKSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9s
bGVyOjpkZXRhY2hSb290TGF5ZXIoKQoreworICAgIGF1dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7
CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihtX3ZpZXcuZnJhbWUoKSwgbnVsbHB0cik7
Cit9CisKK3ZvaWQgTGF5ZXJDb250cm9sbGVyOjpzZXRJc0luV2luZG93KGJvb2wgaXNJbldpbmRv
dykKK3sKKyAgICBpZiAoaXNJbldpbmRvdykKKyAgICAgICAgYXR0YWNoUm9vdExheWVyKCk7Cisg
ICAgZWxzZQorICAgICAgICBkZXRhY2hSb290TGF5ZXIoKTsKK30KKworR3JhcGhpY3NMYXllckZh
Y3RvcnkqIExheWVyQ29udHJvbGxlcjo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdAorewor
ICAgIGF1dG8gcGFnZSA9IG1fdmlldy5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFw
aGljc0xheWVyRmFjdG9yeSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5Cit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09O
VEVYVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rpc3BsYXkvY29tcG9zaXRpbmcvRGlz
cGxheUxheWVyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZGlzcGxheS9jb21wb3NpdGlu
Zy9EaXNwbGF5TGF5ZXJDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFmOGM2NjM5NjlkNjYzMGY5
ZmFmYzBkMmJiNzBhYWE2ZTkyNzdhZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Rpc3BsYXkvY29tcG9zaXRpbmcvRGlzcGxheUxheWVyQ29udHJvbGxlci5oCkBAIC0wLDAgKzEs
MTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZP
Uk1BVFRJTkdfQ09OVEVYVCkKKworI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKKyNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgR3JhcGhp
Y3NMYXllcjsKK2NsYXNzIEdyYXBoaWNzTGF5ZXJGYWN0b3J5OworCituYW1lc3BhY2UgRGlzcGxh
eSB7CisKK2NsYXNzIFRyZWU7CitjbGFzcyBWaWV3OworCisvLyBBIGNvbnRyb2xsZXIgb2JqZWN0
IHRoYXQgbWFrZXMgbGF5ZXJpemF0aW9uIGRlY2lzaW9ucyBmb3IgYSBkaXNwbGF5IHRyZWUsIGZv
ciBhIHNpbmdsZSBkb2N1bWVudC4KK2NsYXNzIExheWVyQ29udHJvbGxlciB7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQoTGF5ZXJDb250cm9sbGVyKTsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBMYXllckNvbnRyb2xsZXIoVmlldyYpOworICAgIH5MYXllckNvbnRyb2xsZXIoKTsKKyAgICAK
KyAgICB2b2lkIHByZXBhcmVGb3JEaXNwbGF5KHN0ZDo6dW5pcXVlX3B0cjxEaXNwbGF5OjpUcmVl
PiYmKTsKKyAgICB2b2lkIGZsdXNoTGF5ZXJzKCk7CisKKyAgICB2b2lkIHNldElzSW5XaW5kb3co
Ym9vbCk7CisKKyAgICBjb25zdCBWaWV3JiB2aWV3KCkgY29uc3QgeyByZXR1cm4gbV92aWV3OyB9
CisKK3ByaXZhdGU6CisgICAgdm9pZCBhdHRhY2hSb290TGF5ZXIoKTsKKyAgICB2b2lkIGRldGFj
aFJvb3RMYXllcigpOworCisgICAgdm9pZCBlbnN1cmVSb290TGF5ZXIoRmxvYXRTaXplIHZpZXdT
aXplLCBGbG9hdFNpemUgY29udGVudFNpemUpOworICAgIHZvaWQgdXBkYXRlUm9vdExheWVyR2Vv
bWV0cnkoRmxvYXRTaXplIHZpZXdTaXplLCBGbG9hdFNpemUgY29udGVudFNpemUpOworCisgICAg
dm9pZCBzZXR1cFJvb3RMYXllckhpZXJhcmNoeSgpOworICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGUoKTsKKyAgICAKKyAgICBHcmFwaGljc0xheWVyKiByb290R3JhcGhpY3NMYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcm9vdExheWVyLmdldCgpOyB9CisgICAgR3JhcGhpY3NMYXllciog
Y29udGVudExheWVyKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50TGF5ZXIuZ2V0KCk7IH0KKwor
ICAgIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0Owor
CisgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0Rm9yTGF5ZXJGbHVzaGluZygpIGNvbnN0OworCisg
ICAgY2xhc3MgUm9vdExheWVyQ2xpZW50IDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQgewor
ICAgIHB1YmxpYzoKKyAgICAgICAgUm9vdExheWVyQ2xpZW50KExheWVyQ29udHJvbGxlciYpOwor
CisgICAgcHJpdmF0ZToKKyAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbXBsZW1lbnRh
dGlvbgorICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXll
ciopIGZpbmFsOworICAgICAgICB2b2lkIHBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXll
ciosIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzTGF5ZXJQYWlu
dEJlaGF2aW9yKSBmaW5hbDsKKyAgICAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dCBmaW5hbDsKKworICAgICAgICBMYXllckNvbnRyb2xsZXImIG1fbGF5ZXJDb250cm9sbGVyOwor
ICAgIH07CisKKyAgICBWaWV3JiBtX3ZpZXc7CisgICAgUm9vdExheWVyQ2xpZW50IG1fcm9vdExh
eWVyQ2xpZW50OworCisgICAgUmVmUHRyPEdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOworICAg
IFJlZlB0cjxHcmFwaGljc0xheWVyPiBtX2NvbnRlbnRIb3N0TGF5ZXI7CisgICAgUmVmUHRyPEdy
YXBoaWNzTGF5ZXI+IG1fY29udGVudExheWVyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPERpc3Bs
YXk6OlRyZWU+IG1fZGlzcGxheVRyZWU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBEaXNwbGF5Cit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJ
TkdfQ09OVEVYVCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>