<?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>234217</bug_id>
          
          <creation_ts>2021-12-12 15:11:59 -0800</creation_ts>
          <short_desc>Introduce ModalContainerObserver and use it to detect fixed position elements</short_desc>
          <delta_ts>2021-12-16 12:45:35 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1823343</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-12 15:11:59 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823353</commentid>
    <comment_count>1</comment_count>
      <attachid>446951</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-12 16:33:05 -0800</bug_when>
    <thetext>Created attachment 446951
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823391</commentid>
    <comment_count>2</comment_count>
      <attachid>446969</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-12 22:47:28 -0800</bug_when>
    <thetext>Created attachment 446969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824847</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-16 12:39:56 -0800</bug_when>
    <thetext>This is no longer necessary, given the new approach.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446951</attachid>
            <date>2021-12-12 16:33:05 -0800</date>
            <delta_ts>2021-12-12 22:47:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234217-20211212163304.patch</filename>
            <type>text/plain</type>
            <size>24578</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2Q3MTc3M2Y4MzRmMzU3
NWQ2ZmM3NDEzMWE1NjhmOTM1NTliNTJkZC4uODg3ZWQwZDcyMmU0NGIyMzdhMmEzYjI3Y2JjMzgx
ZDk4YjNlYWUxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDIxLTEyLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBN
b2RhbENvbnRhaW5lck9ic2VydmVyIGFuZCB1c2UgaXQgdG8gZGV0ZWN0IHZpZXdwb3J0LWNvbnN0
cmFpbmVkIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBzdHVicyBhZGRlZCBpbiBwcmV2aW91cyBwYXRj
aGVzICgjMjM0MjE0IGFuZCAjMjM0MjE2KSBieSBjYWxsaW5nIGludG8gYSBuZXcgaGVscGVyIGNs
YXNzLAorICAgICAgICBNb2RhbENvbnRhaW5lck9ic2VydmVyLCB0aGF0IHdpbGwgZW5jYXBzdWxh
dGUgbG9naWMgZm9yIGhldXJpc3RpY2FsbHkgZGV0ZWN0aW5nIGFuZCBrZWVwaW5nIHRyYWNrIG9m
IHRoZSBjdXJyZW50CisgICAgICAgICJtb2RhbCBjb250YWluZXIiLiBTZWUgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVpcmVzVHJlZU9ic2VydmF0aW9ucyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZGlkT2JzZXJ2ZVZpZXdwb3J0Q29uc3RyYWluZWRS
b290KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojptb2RhbENvbnRhaW5lck9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojptb2RhbENvbnRhaW5lck9ic2VydmVySWZF
eGlzdHMgY29uc3QpOgorCisgICAgICAgIEltcGxlbWVudCB0aGVzZSBtZXRob2Qgc3R1YnMgYnkg
Y2FsbGluZyBpbnRvIHRoZSBuZXcgTW9kYWxDb250YWluZXJPYnNlcnZlci4KKworICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNlYXJjaFN0cmluZ0Zvck1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXIgY29uc3QpOgorCisgICAgICAgIEFkZCBhIGNocm9tZSBjbGllbnQgaG9vayB0aGF0IHJl
dHVybnMgYW4gQXRvbVN0cmluZyBpbmRpY2F0aW5nIHRoZSBzZWFyY2ggdGVybSB0byB1c2Ugd2hl
biBhZGRpbmcgdG8KKyAgICAgICAgTW9kYWxDb250YWluZXJPYnNlcnZlcidzIGBtX2VsZW1lbnRz
Q29udGFpbmluZ1NlYXJjaFRlcm1gLgorCisgICAgICAgICogcGFnZS9Nb2RhbENvbnRhaW5lck9i
c2VydmVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2Vy
dmVyOjppc05lZWRlZEZvcik6CisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2Vy
dmVyOjpTdHlsZVJlY2FsY1Njb3BlOjpTdHlsZVJlY2FsY1Njb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OlN0eWxlUmVjYWxjU2NvcGU6On5TdHlsZVJlY2Fs
Y1Njb3BlKToKKworICAgICAgICBBZGQgYSBoZWxwZXIgUkFJSSBvYmplY3QgdGhhdCB3aWxsIGJl
IHVzZWQgdG8gY29sbGVjdCBhbmQgZGV0ZWN0ICJtb2RhbCBjb250YWluZXJzIiB0aGF0IGNvbnRh
aW4gYSBwYXJ0aWN1bGFyCisgICAgICAgIHNlYXJjaCBzdHJpbmcgYXQgdGhlIGVuZCBvZiBzdHls
ZSByZXNvbHV0aW9uIChzaW1pbGFyIHRvIGNvbnRlbnQgb2JzZXJ2YXRpb24pLiBBdCB0aGUgZW5k
IG9mIHN0eWxlIHJlY2FsYywgd2UKKyAgICAgICAgY2hlY2sgZm9yIGVsZW1lbnRzIGNvbnRhaW5p
bmcgdGV4dCB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuIHNlYXJjaCB0ZXJtLCBhbmQgd2FsayB1cCB0
byBmaW5kIHRoZSB2aWV3cG9ydC0KKyAgICAgICAgY29uc3RyYWluZWQgcm9vdCB0aGF0IGNvbnRh
aW5zIGl0LgorCisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZXRD
b250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29u
dGFpbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6
OmRpZE9ic2VydmVWaWV3cG9ydENvbnN0cmFpbmVkUm9vdCk6CisKKyAgICAgICAgUmVjb3JkcyB2
aWV3cG9ydC1jb25zdHJhaW5lZCByb290IGVsZW1lbnRzLgorCisgICAgICAgIChXZWJDb3JlOjpN
b2RhbENvbnRhaW5lck9ic2VydmVyOjpkaWRDcmVhdGVSZW5kZXJlcik6CisKKyAgICAgICAgUmVj
b3JkcyBlbGVtZW50cyBjb250YWluaW5nIHRleHQgdGhhdCBtYXRjaCBhIHBhcnRpY3VsYXIgc2Vh
cmNoIHRlcm0uCisKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnNl
YXJjaFRlcm0gY29uc3QpOgorICAgICAgICAqIHBhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5o
OiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OmNyZWF0ZVRleHRSZW5k
ZXJlcik6CisgICAgICAgICogc3R5bGUvU3R5bGVBZGp1c3Rlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTdHlsZTo6QWRqdXN0ZXI6OmFkanVzdCBjb25zdCk6CisKIDIwMjEtMTItMTIgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUGFzcyBTdHlsZTo6
VHJlZU9ic2VydmF0aW9ucyB0aHJvdWdoIGNvZGVwYXRocyBmb3IgdXBkYXRpbmcgYW5kIGNyZWF0
aW5nIHJlbmRlcmVycyBmb3IgdGV4dCBub2RlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4ZWZkNDBkYWE5YzM1M2My
YzU0OTA3Zjk4N2ZhYzI3YTdjMmE5ZWJlLi5mNDJkZjU5NWU0ZTg5YTc2OWQwYzc1ZGFkZDZkZjM3
MzhhOGMxMTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTEyLTEyICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBNb2Rh
bENvbnRhaW5lck9ic2VydmVyIGFuZCB1c2UgaXQgdG8gZGV0ZWN0IHZpZXdwb3J0LWNvbnN0cmFp
bmVkIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzQyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzZWFyY2hTdHJpbmdGb3JNb2RhbENvbnRhaW5lck9i
c2VydmVyIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorCiAyMDIxLTEyLTExICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgogCiAgICAgICAgIE1vbWVudHVtIEV2ZW50IERpc3BhdGNoZXI6IFRhaWwgZnJh
bWVzIGFyZSB0aGUgd3JvbmcgdmVsb2NpdHkgaWYgbW9tZW50dW0gZXZlbnQgZGlzcGF0Y2ggcmF0
ZSBkb2Vzbid0IG1hdGNoIHNjcmVlbiByZWZyZXNoIHJhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMjcx
MGY2MTEzMmQ4NjRkYzI5YzFlN2E0MWNkNDRlMzM0NjBkZTZlOS4uNmQxYzdmYzM5NThkOWQwMGRl
ZGFiNGNmYWUyYjY4ZmU2ODM5NzIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTE3MzksNiArMTczOSw3
IEBAIHBhZ2UvSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5jcHAKIHBhZ2UvTG9jYXRpb24uY3Bw
CiBwYWdlL0xvZ2dlZEluU3RhdHVzLmNwcAogcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAorcGFnZS9N
b2RhbENvbnRhaW5lck9ic2VydmVyLmNwcAogcGFnZS9Nb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzLmNwcAogcGFnZS9OYXZpZ2F0b3IuY3BwCiBwYWdlL05hdmlnYXRvckJhc2UuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
Yjc0NDJkM2Q5MGZmYTVjMzFmNzhiMzAwMTlmNTgyMmI1MWI1NDRjMy4uMzVkNTVkZTE3M2Q5YWM1
MGVjZGY5Yjc5Nzg5ZTAyZDFhODZiYjI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzI2NSw2ICszMjY1LDcgQEAKIAkJQTEw
QkI1OEIxNDg0RTNCMzAwQjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBCQjU4OTE0ODRFM0IzMDBCMkU4N0Eg
LyogUmVuZGVyU1ZHU2hhcGUuaCAqLzsgfTsKIAkJQTEwREJGNDcxOEY5MjMxNzAwMEQ3MEM2IC8q
IExlZ2FjeVByZXZpZXdMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2
aWV3TG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJQTEwREM3NkIxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMERDNzY5MTQ3
NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJQTEwRjdDNzMyNzMxMDBEMDAwOEZBOUFGIC8qIE1v
ZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEExMEY3QzcwMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9i
c2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTExMERCOUIxNEY1REY3NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTEwREI5QTE0RjVERjc3
MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTEzRTAyODIzMzE4MjkzMDA5QzMzQTAgLyogUGF5
bWVudFNlc3Npb25FcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTExM0UwMjcyMzMxODI5MzAwOUMzM0EwIC8qIFBheW1lbnRTZXNzaW9uRXJyb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTEz
RTAyRTIzMzFBMTM0MDA5QzMzQTAgLyogQXBwbGVQYXlDYW5jZWxFdmVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExM0UwMkIyMzMxQTBFNDAwOUMz
M0EwIC8qIEFwcGxlUGF5Q2FuY2VsRXZlbnQuaCAqLzsgfTsKQEAgLTEzMzQxLDYgKzEzMzQyLDgg
QEAKIAkJQTEwREJGNDYxOEY5MjMxNzAwMEQ3MEM2IC8qIExlZ2FjeVByZXZpZXdMb2FkZXJDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5UHJldmlld0xvYWRl
ckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTBEQzc2ODE0NzQ3QkFC
MDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBTdHlsZUdyaWREYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTEwREM3NjkxNDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3R5bGVHcmlkRGF0YS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlBMTBGN0M3MDI3MzEwMDczMDA4RkE5QUYgLyogTW9kYWxDb250YWluZXJP
YnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNb2RhbENvbnRhaW5lck9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExMEY3QzcxMjczMTAwNzMwMDhGQTlBRiAvKiBNb2Rh
bENvbnRhaW5lck9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMTEwREI5QTE0RjVE
Rjc3MDBBMDNCOTMgLyogU3R5bGVHcmlkSXRlbURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU3R5bGVHcmlkSXRlbURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQTExMERCOUMxNEY1REY4NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0eWxlR3JpZEl0ZW1EYXRhLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExM0UwMjcyMzMxODI5MzAwOUMzM0Ew
IC8qIFBheW1lbnRTZXNzaW9uRXJyb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudFNlc3Npb25F
cnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjM5MTksNiArMjM5MjIsOCBA
QAogCQkJCTUyRTJDQUZCMTlGRjAyMDcwMDFFRUI0RiAvKiBNZWRpYVByb2R1Y2VyLmggKi8sCiAJ
CQkJNDEzRTAwNzcxREIwRTRERTAwMjM0MUQyIC8qIE1lbW9yeVJlbGVhc2UuY3BwICovLAogCQkJ
CTQxM0UwMDc4MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmggKi8sCisJCQkJQTEw
RjdDNzEyNzMxMDA3MzAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwICovLAor
CQkJCUExMEY3QzcwMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmgg
Ki8sCiAJCQkJOTNFQjM1NUUwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMuY3BwICovLAogCQkJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggKi8sCiAJCQkJNkI1MDdBMjMyMzRCRjM0MTAwQkU3QzYy
IC8qIE5hdmlnYXRvcitJc0xvZ2dlZEluLmlkbCAqLywKQEAgLTM2MDQ0LDYgKzM2MDQ5LDcgQEAK
IAkJCQlDREYyQjAxNzE4MjA1NDA3MDBGMkI0MjQgLyogTW9ja1NvdXJjZUJ1ZmZlclByaXZhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDE5MTgyMDU0MDcwMEYyQjQyNCAvKiBNb2NrVHJh
Y2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NzE1NjEwQzIzNEMxQ0ExMDA4RkM3QUIgLyogTW9j
a1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTEw
RjdDNzMyNzMxMDBEMDAwOEZBOUFGIC8qIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEQzhEMzk4MjVGMkZFOTcwMENGQ0JBQiAvKiBNb2RlbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMzEzRTc5RUEyNzNDODZCODAwOTdGOTA1IC8qIE1vZGVsRG9jdW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDMkI0MTE3MjczMkY0MUUwMEEyRDE5MSAvKiBNb2RlbFBsYXll
ci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBlMzExYTUyNzY0
YTEwMTA5YzA4ZjkwZTQxMjA0OGVkZDMxOWQyNjNiLi4yMzRlYzg2NjVjNjY0ZDVlNjI3ZGViOWQy
NWY0ODFhNGMzNzhmMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE0OCw2ICsxNDgs
NyBAQAogI2luY2x1ZGUgIk1lZGlhUXVlcnlNYXRjaGVyLmgiCiAjaW5jbHVkZSAiTWVkaWFTdHJl
YW0uaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5l
ck9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIgog
I2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJOYW1lTm9kZUxpc3QuaCIKQEAg
LTIyMDAsNiArMjIwMSw4IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQog
I2lmIEVOQUJMRShDT05URU5UX0NIQU5HRV9PQlNFUlZFUikKICAgICBDb250ZW50Q2hhbmdlT2Jz
ZXJ2ZXI6OlN0eWxlUmVjYWxjU2NvcGUgb2JzZXJ2aW5nU2NvcGUoKnRoaXMpOwogI2VuZGlmCisg
ICAgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6U3R5bGVSZWNhbGNTY29wZSBtb2RhbENvbnRhaW5l
ck9ic2VydmluZ1Njb3BlKCp0aGlzKTsKKwogICAgIC8vIFRoZSBlYXJseSBleGl0IGFib3ZlIGZv
ciAhbmVlZHNTdHlsZVJlY2FsYygpIGlzIG5lZWRlZCB3aGVuIHVwZGF0ZVdpZGdldFBvc2l0aW9u
cygpIGlzIGNhbGxlZCBpbiBydW5PclNjaGVkdWxlQXN5bmNocm9ub3VzVGFza3MoKS4KICAgICBS
RUxFQVNFX0FTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzU2FmZVRvVXBkYXRlU3R5
bGVPckxheW91dCgqdGhpcykpOwogICAgIHJlc29sdmVTdHlsZSgpOwpAQCAtOTA3OSwxMyArOTA4
MiwyNCBAQCBTdHJpbmcgRG9jdW1lbnQ6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25zdAogCiBib29s
IERvY3VtZW50OjpyZXF1aXJlc1RyZWVPYnNlcnZhdGlvbnMoKSBjb25zdAogewotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyIHx8IE1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXI6OmlzTmVlZGVkRm9yKCp0aGlzKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6
ZGlkT2JzZXJ2ZVZpZXdwb3J0Q29uc3RyYWluZWRSb290KEVsZW1lbnQmIHJvb3QpCiB7Ci0gICAg
Ly8gTm90IGltcGxlbWVudGVkIHlldC4KLSAgICBVTlVTRURfUEFSQU0ocm9vdCk7CisgICAgbW9k
YWxDb250YWluZXJPYnNlcnZlcigpLT5kaWRPYnNlcnZlVmlld3BvcnRDb25zdHJhaW5lZFJvb3Qo
cm9vdCk7Cit9CisKK01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIqIERvY3VtZW50Ojptb2RhbENvbnRh
aW5lck9ic2VydmVyKCkKK3sKKyAgICBpZiAoIW1fbW9kYWxDb250YWluZXJPYnNlcnZlciAmJiBN
b2RhbENvbnRhaW5lck9ic2VydmVyOjppc05lZWRlZEZvcigqdGhpcykpCisgICAgICAgIG1fbW9k
YWxDb250YWluZXJPYnNlcnZlciA9IG1ha2VVbmlxdWU8TW9kYWxDb250YWluZXJPYnNlcnZlcj4o
KTsKKyAgICByZXR1cm4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyLmdldCgpOworfQorCitNb2Rh
bENvbnRhaW5lck9ic2VydmVyKiBEb2N1bWVudDo6bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhp
c3RzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyLmdldCgp
OwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEb2N1
bWVudCYgZG9jdW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDliMWNmMzZjZGFlMzI3ZDE5
NTlhZWZkNzNmNmQ2YmNhNTA2OTQ2MDQuLjdhZDM1MDJlYzdmNDg3ZjE1NDk1ZmE0ODJlOWExNjMx
MmVlYzgwNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xODMsNiArMTgzLDcgQEAgY2xhc3Mg
TWVkaWFQcm9kdWNlcjsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1h
dGNoZXI7CiBjbGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKK2NsYXNzIE1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xh
c3MgTm9kZUZpbHRlcjsKIGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTE2NjYsNiArMTY2Nyw5IEBA
IHB1YmxpYzoKICAgICBib29sIHJlcXVpcmVzVHJlZU9ic2VydmF0aW9ucygpIGNvbnN0OwogICAg
IHZvaWQgZGlkT2JzZXJ2ZVZpZXdwb3J0Q29uc3RyYWluZWRSb290KEVsZW1lbnQmKTsKIAorICAg
IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIqIG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKTsKKyAgICBN
b2RhbENvbnRhaW5lck9ic2VydmVyKiBtb2RhbENvbnRhaW5lck9ic2VydmVySWZFeGlzdHMoKSBj
b25zdDsKKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVz
aXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBXRUJDT1JF
X0VYUE9SVCBEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgRG9j
dW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncyA9IDApOwpAQCAt
MjI1Miw2ICsyMjU2LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoV0VCX1JUQykKICAgICBSZWZQ
dHI8UlRDTmV0d29ya01hbmFnZXI+IG1fcnRjTmV0d29ya01hbmFnZXI7CiAjZW5kaWYKKworICAg
IHN0ZDo6dW5pcXVlX3B0cjxNb2RhbENvbnRhaW5lck9ic2VydmVyPiBtX21vZGFsQ29udGFpbmVy
T2JzZXJ2ZXI7CiB9OwogCiBFbGVtZW50KiBldmVudFRhcmdldEVsZW1lbnRGb3JEb2N1bWVudChE
b2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggOThhYWE5M2VkMGYz
NTU1Njk4YjJkMmNmNzBiMzE3MGE0YTE2YmRhOC4uMjlkODdlMjEwYmQxYjFmZjk4Y2NjZDM4MjJk
NTU0YjUyNzgzZWMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC02MjMsNiAr
NjIzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RDb29raWVDb25zZW50
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQ29va2llQ29uc2VudERlY2lzaW9uUmVzdWx0KT4mJikg
PSAwOwogCisgICAgdmlydHVhbCBjb25zdCBBdG9tU3RyaW5nJiBzZWFyY2hTdHJpbmdGb3JNb2Rh
bENvbnRhaW5lck9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbEF0b20oKTsgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgdmlydHVhbCB+Q2hyb21lQ2xpZW50KCkgPSBkZWZhdWx0OwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjNkNTUzZWEzYzRkN2VlMWFjMDY3ZGE3NGJmZjUxMjQ5N2JjMzA2YzcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuY3BwCkBAIC0w
LDAgKzEsMTYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
Ik1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCIKKworI2luY2x1ZGUgIkNocm9tZS5oIgorI2luY2x1
ZGUgIkNocm9tZUNsaWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9j
dW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJFbGVtZW50SXRlcmF0b3IuaCIKKyNpbmNsdWRlICJG
cmFtZS5oIgorI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxFbGVtZW50
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgorI2luY2x1ZGUgIlRleHQuaCIKKyNpbmNsdWRlIDx3dGYv
VVJMLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworYm9vbCBNb2RhbENvbnRhaW5lck9ic2Vy
dmVyOjppc05lZWRlZEZvcihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgUmVmUHRy
IGRvY3VtZW50TG9hZGVyID0gZG9jdW1lbnQubG9hZGVyKCk7CisKKyAgICBpZiAoIWRvY3VtZW50
TG9hZGVyIHx8IGRvY3VtZW50TG9hZGVyLT5tb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5
KCkgPT0gTW9kYWxDb250YWluZXJPYnNlcnZhdGlvblBvbGljeTo6RGlzYWJsZWQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghZG9jdW1lbnQudXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRvY3VtZW50Lmlz
VG9wRG9jdW1lbnQoKSB8fCBkb2N1bWVudC5pbkRlc2lnbk1vZGUoKSB8fCAhaXM8SFRNTERvY3Vt
ZW50Pihkb2N1bWVudCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFJlZlB0ciBmcmFt
ZSA9IGRvY3VtZW50LmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworCisgICAgYXV0byBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UgfHwg
cGFnZS0+aXNFZGl0YWJsZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworTW9kYWxDb250YWluZXJPYnNlcnZlcjo6TW9kYWxDb250YWluZXJPYnNlcnZl
cigpID0gZGVmYXVsdDsKK01vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6On5Nb2RhbENvbnRhaW5lck9i
c2VydmVyKCkgPSBkZWZhdWx0OworCitNb2RhbENvbnRhaW5lck9ic2VydmVyOjpTdHlsZVJlY2Fs
Y1Njb3BlOjpTdHlsZVJlY2FsY1Njb3BlKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9j
dW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK01vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OlN0eWxlUmVj
YWxjU2NvcGU6On5TdHlsZVJlY2FsY1Njb3BlKCkKK3sKKyAgICBpZiAoIW1fZG9jdW1lbnQpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIG9ic2VydmVyID0gbV9kb2N1bWVudC0+bW9kYWxD
b250YWluZXJPYnNlcnZlcklmRXhpc3RzKCk7CisgICAgaWYgKCFvYnNlcnZlcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKGF1dG8gY29udGFpbmVyID0gb2JzZXJ2ZXItPmNvbnRhaW5lcigp
OyBjb250YWluZXIgJiYgY29udGFpbmVyLT5pc0Nvbm5lY3RlZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBIYXNoU2V0PFJlZjxFbGVtZW50Pj4gZWxlbWVudHNPdXRzaWRlT2ZBbnlWaWV3cG9y
dENvbnN0cmFpbmVkUm9vdHM7CisgICAgZm9yIChhdXRvJiBlbGVtZW50IDogb2JzZXJ2ZXItPm1f
ZWxlbWVudHNDb250YWluaW5nU2VhcmNoVGVybSkgeworICAgICAgICBmb3IgKGF1dG8mIHBhcmVu
dCA6IGFuY2VzdG9yc09mVHlwZTxFbGVtZW50PihlbGVtZW50KSkgeworICAgICAgICAgICAgaWYg
KG9ic2VydmVyLT5tX3ZpZXdwb3J0Q29uc3RyYWluZWRSb290cy5jb250YWlucyhwYXJlbnQpKSB7
CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBuZWVkIHRvIGJlIGltcHJvdmVk
IGluIHRoZSBmdXR1cmUgdG8gZGlzYW1iaWd1YXRlIGJldHdlZW4gbXVsdGlwbGUgdGV4dCBub2Rl
cworICAgICAgICAgICAgICAgIC8vIHRoYXQgbWF0Y2ggdGhlIHNlYXJjaCB0ZXJtLiBGb3Igbm93
LCBqdXN0IHVzZSB0aGUgZmlyc3Qgb25lIHdlIGZpbmQuCisgICAgICAgICAgICAgICAgb2JzZXJ2
ZXItPnNldENvbnRhaW5lcigmcGFyZW50KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZWxlbWVudHNPdXRzaWRlT2ZBbnlWaWV3cG9y
dENvbnN0cmFpbmVkUm9vdHMuYWRkKHBhcmVudCkuaXNOZXdFbnRyeSkKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIG9ic2VydmVyLT5zZXRDb250YWluZXIo
eyB9KTsKK30KKwordm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZXRDb250YWluZXIoUmVm
UHRyPEVsZW1lbnQ+JiYgbmV3Q29udGFpbmVyKQoreworICAgIGlmIChtX2NvbnRhaW5lci5nZXQo
KSA9PSBuZXdDb250YWluZXIuZ2V0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2Nv
bnRhaW5lcikKKyAgICAgICAgbV9jb250YWluZXItPmludmFsaWRhdGVTdHlsZSgpOworCisgICAg
aWYgKG5ld0NvbnRhaW5lcikKKyAgICAgICAgbmV3Q29udGFpbmVyLT5pbnZhbGlkYXRlU3R5bGUo
KTsKKworICAgIG1fY29udGFpbmVyID0gV1RGTW92ZShuZXdDb250YWluZXIpOworfQorCitFbGVt
ZW50KiBNb2RhbENvbnRhaW5lck9ic2VydmVyOjpjb250YWluZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NvbnRhaW5lci5nZXQoKTsKK30KKwordm9pZCBNb2RhbENvbnRhaW5lck9ic2VydmVy
OjpkaWRPYnNlcnZlVmlld3BvcnRDb25zdHJhaW5lZFJvb3QoRWxlbWVudCYgcm9vdCkKK3sKKyAg
ICBtX3ZpZXdwb3J0Q29uc3RyYWluZWRSb290cy5hZGQocm9vdCk7Cit9CisKK3ZvaWQgTW9kYWxD
b250YWluZXJPYnNlcnZlcjo6ZGlkQ3JlYXRlUmVuZGVyZXIoVGV4dCYgdGV4dE5vZGUpCit7Cisg
ICAgUmVmUHRyIHBhcmVudCA9IHRleHROb2RlLnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgp
OworICAgIGJvb2wgc2hvdWxkU2VhcmNoQ2hpbGROb2RlID0gKFsmXSB7CisgICAgICAgIGlmICgh
aXM8SFRNTEVsZW1lbnQ+KHBhcmVudC5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgcmV0dXJuIHBhcmVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFUYWcpIHx8
IHBhcmVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmRpdlRhZykgfHwgcGFyZW50LT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6cFRhZykgfHwgcGFyZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c3Bh
blRhZykgfHwgcGFyZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VjdGlvblRhZyk7CisgICAg
fSkoKTsKKworICAgIGlmICghc2hvdWxkU2VhcmNoQ2hpbGROb2RlKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvJiBzZWFyY2hUZXJtID0gdGhpcy0+c2VhcmNoVGVybSh0ZXh0Tm9kZS5kb2N1
bWVudCgpKTsKKyAgICBpZiAoc2VhcmNoVGVybS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKExJS0VMWSghdGV4dE5vZGUuZGF0YSgpLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNh
c2Uoc2VhcmNoVGVybSkpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VsZW1lbnRzQ29udGFp
bmluZ1NlYXJjaFRlcm0uYWRkKCpwYXJlbnQpOworfQorCitjb25zdCBBdG9tU3RyaW5nJiBNb2Rh
bENvbnRhaW5lck9ic2VydmVyOjpzZWFyY2hUZXJtKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkg
Y29uc3QKK3sKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKKyAgICAgICAg
cmV0dXJuIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnNlYXJjaFN0cmluZ0Zvck1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIoKTsKKworICAgIHJldHVybiBudWxsQXRvbSgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZl
ci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJjOTU5ZDNlYTczMzBmNTFjODU3ZWJkNzllZWQ4ZmFkMjE1ZTI4ZTcK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXIuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlICJTdHlsZVVwZGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+CisjaW5j
bHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFz
cyBIVE1MRWxlbWVudDsKKworY2xhc3MgTW9kYWxDb250YWluZXJPYnNlcnZlciB7CisgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgY2xhc3MgU3R5bGVSZWNhbGNTY29w
ZSB7CisgICAgcHVibGljOgorICAgICAgICBTdHlsZVJlY2FsY1Njb3BlKERvY3VtZW50Jik7Cisg
ICAgICAgIH5TdHlsZVJlY2FsY1Njb3BlKCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICBXZWFr
UHRyPERvY3VtZW50PiBtX2RvY3VtZW50OworICAgIH07CisKKyAgICBzdGF0aWMgYm9vbCBpc05l
ZWRlZEZvcihjb25zdCBEb2N1bWVudCYpOworCisgICAgTW9kYWxDb250YWluZXJPYnNlcnZlcigp
OworICAgIH5Nb2RhbENvbnRhaW5lck9ic2VydmVyKCk7CisKKyAgICBFbGVtZW50KiBjb250YWlu
ZXIoKSBjb25zdDsKKworICAgIHZvaWQgZGlkT2JzZXJ2ZVZpZXdwb3J0Q29uc3RyYWluZWRSb290
KEVsZW1lbnQmKTsKKyAgICB2b2lkIGRpZENyZWF0ZVJlbmRlcmVyKFRleHQmKTsKKworcHJpdmF0
ZToKKyAgICB2b2lkIHNldENvbnRhaW5lcihSZWZQdHI8RWxlbWVudD4mJik7CisKKyAgICBjb25z
dCBBdG9tU3RyaW5nJiBzZWFyY2hUZXJtKGNvbnN0IERvY3VtZW50JikgY29uc3Q7CisKKyAgICBX
ZWFrSGFzaFNldDxFbGVtZW50PiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRSb290czsKKyAgICBXZWFr
SGFzaFNldDxFbGVtZW50PiBtX2VsZW1lbnRzQ29udGFpbmluZ1NlYXJjaFRlcm07CisgICAgV2Vh
a1B0cjxFbGVtZW50PiBtX2NvbnRhaW5lcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
VXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJl
ZVVwZGF0ZXIuY3BwCmluZGV4IDAyNmU5MjFiODdlYjc5ZDhiMTdhZmQzZGEwM2YxYjhlYjkyYjUz
MWUuLjRjNmZjM2JlZGM4Yzg5NzJhNDUwMDczNjg3YWU5YTkwNTE1ZDQ5OTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNp
bmNsdWRlICJIVE1MU2xvdEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb24uaCIKKyNpbmNsdWRlICJNb2RhbENvbnRhaW5lck9ic2VydmVyLmgiCiAjaW5jbHVkZSAi
Tm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUHNldWRvRWxlbWVudC5oIgogI2luY2x1ZGUg
IlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgpAQCAtNDg5LDggKzQ5MCwxMCBAQCB2b2lkIFJl
bmRlclRyZWVVcGRhdGVyOjpjcmVhdGVUZXh0UmVuZGVyZXIoVGV4dCYgdGV4dE5vZGUsIGNvbnN0
IFN0eWxlOjpUZXh0VXBkYQogICAgIGlmIChVTkxJS0VMWSh0ZXh0TWFuaXB1bGF0aW9uQ29udHJv
bGxlcikpCiAgICAgICAgIHRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLT5kaWRDcmVhdGVSZW5k
ZXJlckZvclRleHROb2RlKHRleHROb2RlKTsKIAotICAgIFVOVVNFRF9QQVJBTShwYXJlbnRPYnNl
cnZhdGlvbnMpOwotICAgIC8vIEZJWE1FOiBOb3RpZnkgdGhlIG1vZGFsIGNvbnRhaW5lciBvYnNl
cnZlciBhYm91dCBuZXdseSBjcmVhdGVkIHRleHQgcmVuZGVyZXJzLgorICAgIGlmIChwYXJlbnRP
YnNlcnZhdGlvbnMuY29udGFpbnMoU3R5bGU6OlRyZWVPYnNlcnZhdGlvbkZsYWdzOjpEZXNjZW5k
YW50c0FyZVZpZXdwb3J0Q29uc3RyYWluZWQpKSB7CisgICAgICAgIGlmIChhdXRvKiBvYnNlcnZl
ciA9IG1fZG9jdW1lbnQubW9kYWxDb250YWluZXJPYnNlcnZlcigpKQorICAgICAgICAgICAgb2Jz
ZXJ2ZXItPmRpZENyZWF0ZVJlbmRlcmVyKHRleHROb2RlKTsKKyAgICB9CiB9CiAKIHZvaWQgUmVu
ZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0LCBjb25zdCBTdHls
ZTo6VGV4dFVwZGF0ZSogdGV4dFVwZGF0ZSwgU3R5bGU6OlRyZWVPYnNlcnZhdGlvbnMgcGFyZW50
T2JzZXJ2YXRpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVBZGp1
c3Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVzdGVyLmNwcAppbmRleCAz
YzUzMmU4NDQwMDZhMDU5NWE0NDE1Nzk3OGJlMjc5NTMzMzJhN2ZhLi41OWRiODg4NjJkMGJiYzcz
MmE0NWQ3ZTE3OWZmMjZkYzliN2Q3MTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUFkanVz
dGVyLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiTWF0aE1MRWxlbWVu
dC5oIgorI2luY2x1ZGUgIk1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUXVpcmtzLmgiCiAjaW5jbHVkZSAiUmVuZGVyQm94LmgiCkBAIC01NTAs
NiArNTUxLDEzIEBAIHZvaWQgQWRqdXN0ZXI6OmFkanVzdChSZW5kZXJTdHlsZSYgc3R5bGUsIGNv
bnN0IFJlbmRlclN0eWxlKiB1c2VyQWdlbnRBcHBlYXJhbmNlCiAjZW5kaWYKIAogICAgIGFkanVz
dEZvclNpdGVTcGVjaWZpY1F1aXJrcyhzdHlsZSk7CisKKyAgICBpZiAoYXV0byBtb2RhbENvbnRh
aW5lck9ic2VydmVyID0gbV9lbGVtZW50ID8gbV9lbGVtZW50LT5kb2N1bWVudCgpLm1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIoKSA6IG51bGxwdHIpIHsKKyAgICAgICAgaWYgKG1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXItPmNvbnRhaW5lcigpID09IG1fZWxlbWVudCkgeworICAgICAgICAgICAgLy8gRklY
TUU6IFNldHRpbmcgdmlzaWJpbGl0eSBvbiB0aGUgcGFyZW50IGNvbnRhaW5lciBhbG9uZSBpc24n
dCBlbm91Z2gsIHNpbmNlIGNoaWxkIGVsZW1lbnRzIG1heSBiZSB2aXNpYmxlLgorICAgICAgICAg
ICAgc3R5bGUuc2V0VmlzaWJpbGl0eShWaXNpYmlsaXR5OjpIaWRkZW4pOworICAgICAgICB9Cisg
ICAgfQogfQogCiBzdGF0aWMgYm9vbCBoYXNFZmZlY3RpdmVEaXNwbGF5Tm9uZUZvckRpc3BsYXlD
b250ZW50cyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCAzZTJkNDc1ZjhjMjBmODhlZWQ1ZjFlOWMxNGY4ZWUyZmVlNWJmMDgyLi4wMzQxYTcyOWE0YmE0
OWVkMTllZGZhNDRjMjI3MDI4ZDc0MzdjMDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAt
MTU2OSw0ICsxNTY5LDEzIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZXF1ZXN0Q29va2llQ29u
c2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpCiAgICAgbV9wYWdlLnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZXF1ZXN0Q29va2llQ29u
c2VudCgpLCBXVEZNb3ZlKGNvbXBsZXRpb24pKTsKIH0KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dlYkNocm9tZUNsaWVudEFkZGl0aW9u
cy5jcHA+CisjZWxzZQorY29uc3QgQXRvbVN0cmluZyYgV2ViQ2hyb21lQ2xpZW50OjpzZWFyY2hT
dHJpbmdGb3JNb2RhbENvbnRhaW5lck9ic2VydmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVs
bEF0b20oKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA4YjhmYjQxM2QwZjU5NTNiNWExOWYwNjhiNDNjZmZlMDAzZGVhZDBjLi5hZjE0
NDg3YWQzZjZiOWI2N2M0MTBiNGJiNzg4OGFkY2NhZTVkYjFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CkBAIC00NjYsNiArNDY2LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcmVxdWVzdENvb2tpZUNv
bnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpDb29raWVDb25zZW50RGVjaXNp
b25SZXN1bHQpPiYmKSBmaW5hbDsKIAorICAgIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJjaFN0cmlu
Z0Zvck1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKSBjb25zdCBmaW5hbDsKKwogICAgIG11dGFibGUg
Ym9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIgeyBmYWxzZSB9Owog
ICAgIG11dGFibGUgYm9vbCBtX2NhY2hlZE1haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyIHsg
ZmFsc2UgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446969</attachid>
            <date>2021-12-12 22:47:28 -0800</date>
            <delta_ts>2021-12-16 12:40:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234217-20211212224727.patch</filename>
            <type>text/plain</type>
            <size>24133</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ViOGZiNGNhZTdjNzdk
M2Y4ZjljMDczZTVmMTg5ZTYxODlkZDNmNi4uZTM3YmJjNzFkYWZlMWU3YjUyYTZhYzVkMzIyNTlk
NjdmNGViYjZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTEyLTEyICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVjZSBN
b2RhbENvbnRhaW5lck9ic2VydmVyIGFuZCB1c2UgaXQgdG8gZGV0ZWN0IHZpZXdwb3J0LWNvbnN0
cmFpbmVkIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzQyMTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgdGhlIG1ldGhvZCBzdHVicyBhZGRlZCBpbiBwcmV2aW91cyBwYXRj
aGVzICgjMjM0MjE0IGFuZCAjMjM0MjE2KSBieSBjYWxsaW5nIGludG8gYSBuZXcgaGVscGVyIGNs
YXNzLAorICAgICAgICBNb2RhbENvbnRhaW5lck9ic2VydmVyLCB0aGF0IHdpbGwgZW5jYXBzdWxh
dGUgbG9naWMgZm9yIGhldXJpc3RpY2FsbHkgZGV0ZWN0aW5nIGFuZCBrZWVwaW5nIHRyYWNrIG9m
IHRoZSBjdXJyZW50CisgICAgICAgICJtb2RhbCBjb250YWluZXIiLiBTZWUgYmVsb3cgZm9yIG1v
cmUgZGV0YWlscy4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNob3VsZE9ic2VydmVWaWV3cG9ydENvbnN0cmFpbmVkUm9v
dHMgY29uc3QpOgorCisgICAgICAgIEltcGxlbWVudCB0aGlzIG1ldGhvZCBzdHViIGJ5IGNhbGxp
bmcgaW50byB0aGUgbmV3IE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIsIGFuZCBhZGQgbmV3IG1ldGhv
ZHMgdG8gY3JlYXRlIGEKKyAgICAgICAgTW9kYWxDb250YWluZXJPYnNlcnZlciBpZiBuZWVkZWQg
KG9yIHNpbXBseSBncmFiIHRoZSBleGlzdGluZyBvbmUpLgorCisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6bW9kYWxDb250YWluZXJPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzIGNvbnN0KToKKyAgICAgICAgKiBk
b20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzZWFyY2hTdHJpbmdGb3JNb2RhbENvbnRhaW5lck9ic2Vy
dmVyIGNvbnN0KToKKworICAgICAgICBBZGQgYSBjaHJvbWUgY2xpZW50IGhvb2sgdGhhdCByZXR1
cm5zIGFuIEF0b21TdHJpbmcgaW5kaWNhdGluZyB0aGUgc2VhcmNoIHRlcm0gdG8gdXNlIHdoZW4g
YWRkaW5nIHRvCisgICAgICAgIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIncyBgbV9lbGVtZW50c0Fu
ZFZpZXdwb3J0Q29uc3RyYWluZWRSb290c2AuCisKKyAgICAgICAgKiBwYWdlL01vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXI6OmlzTmVlZGVkRm9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29udGFpbmVy
T2JzZXJ2ZXI6OlN0eWxlUmVjYWxjU2NvcGU6OlN0eWxlUmVjYWxjU2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6TW9kYWxDb250YWluZXJPYnNlcnZlcjo6U3R5bGVSZWNhbGNTY29wZTo6flN0eWxl
UmVjYWxjU2NvcGUpOgorCisgICAgICAgIEFkZCBhIGhlbHBlciBSQUlJIG9iamVjdCB0aGF0IHdp
bGwgYmUgdXNlZCB0byBjb2xsZWN0IGFuZCBkZXRlY3QgIm1vZGFsIGNvbnRhaW5lcnMiICh2aWV3
cG9ydC1jb250cmFpbmVkIHJvb3RzKQorICAgICAgICB0aGF0IGNvbnRhaW4gYSBwYXJ0aWN1bGFy
IHNlYXJjaCBzdHJpbmcgYXQgdGhlIGVuZCBvZiBzdHlsZSByZXNvbHV0aW9uIChzaW1pbGFyIHRv
IGNvbnRlbnQgb2JzZXJ2YXRpb24pLgorCisgICAgICAgIChXZWJDb3JlOjpNb2RhbENvbnRhaW5l
ck9ic2VydmVyOjpzZXRDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6TW9kYWxDb250YWlu
ZXJPYnNlcnZlcjo6Y29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXI6OmRpZENyZWF0ZVRleHRSZW5kZXJlckluVmlld3BvcnRDb25zdHJhaW5l
ZFJvb3QpOgorCisgICAgICAgIEFkZCB0byBhIG1hcCBvZiBlbGVtZW50cyB0aGF0IG1lbnRpb24g
dGhlIHNlYXJjaCB0ZXJtIHRvIHJlc3BlY3RpdmUgdmlld3BvcnQtY29uc3RyYWluZWQgcm9vdHMu
IFRoaXMgbWFwIGlzCisgICAgICAgIGNvbnN1bHRlZCBhdCB0aGUgZW5kIG9mIHN0eWxlIHJlY2Fs
Yywgd2hlbiB3ZSBwaWNrIG9uZSBvZiB0aGUgdmlld3BvcnQtY29uc3RyYWluZWQgcm9vdHMgdG8g
YmUgdGhlIG9ic2VydmVkCisgICAgICAgICJtb2RhbCBjb250YWluZXIiLgorCisgICAgICAgIChX
ZWJDb3JlOjpNb2RhbENvbnRhaW5lck9ic2VydmVyOjpzZWFyY2hUZXJtIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIuaDogQWRkZWQuCisgICAgICAgICogcmVu
ZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRyZWVVcGRhdGVyOjpjcmVhdGVUZXh0UmVuZGVyZXIpOgorICAgICAgICAqIHN0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkFkanVzdGVyOjph
ZGp1c3QgY29uc3QpOgorCisgICAgICAgIEhpZGUgdGhlIG9ic2VydmVkICJtb2RhbCBjb250YWlu
ZXIiIGR1cmluZyBzdHlsZSBhZGp1c3RtZW50LCBieSBzZXR0aW5nIGB2aXNpYmlsaXR5YCB0byBg
aGlkZGVuYC4KKwogMjAyMS0xMi0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KIAogICAgICAgICBQYXNzIGluZm9ybWF0aW9uIGFib3V0IHZpZXdwb3J0LWNvbnN0cmFp
bmVkIHJvb3RzIHRocm91Z2ggY29kZXBhdGhzIGZvciB1cGRhdGluZyBhbmQgY3JlYXRpbmcgcmVu
ZGVyZXJzIGZvciB0ZXh0IG5vZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhlZmQ0MGRhYTljMzUzYzJjNTQ5MDdm
OTg3ZmFjMjdhN2MyYTllYmUuLjM2OTNjMmZkZGYwMDQ5MjgzNTg3OWZiZWIyMzY4ODY0ODU5Mzg0
NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTItMTIgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXIgYW5kIHVzZSBpdCB0byBkZXRlY3Qgdmlld3BvcnQtY29uc3RyYWluZWQgZWxl
bWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NDIxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBhIFdlYktpdEFkZGl0aW9ucyBob29rIHRoYXQgaW1wbGVtZW50cyBhIG5ldyBjaHJvbWUgY2xp
ZW50IG1ldGhvZC4gU2VlIFdlYkNvcmUvQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2VhcmNoU3RyaW5nRm9yTW9kYWxDb250
YWluZXJPYnNlcnZlciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAyMS0xMi0xMSAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb21lbnR1bSBFdmVudCBEaXNwYXRjaGVyOiBU
YWlsIGZyYW1lcyBhcmUgdGhlIHdyb25nIHZlbG9jaXR5IGlmIG1vbWVudHVtIGV2ZW50IGRpc3Bh
dGNoIHJhdGUgZG9lc24ndCBtYXRjaCBzY3JlZW4gcmVmcmVzaCByYXRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cmlu
ZGV4IDI3MTBmNjExMzJkODY0ZGMyOWMxZTdhNDFjZDQ0ZTMzNDYwZGU2ZTkuLjZkMWM3ZmMzOTU4
ZDlkMDBkZWRhYjRjZmFlMmI2OGZlNjgzOTcyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNzM5LDYg
KzE3MzksNyBAQCBwYWdlL0ludGVyc2VjdGlvbk9ic2VydmVyRW50cnkuY3BwCiBwYWdlL0xvY2F0
aW9uLmNwcAogcGFnZS9Mb2dnZWRJblN0YXR1cy5jcHAKIHBhZ2UvTWVtb3J5UmVsZWFzZS5jcHAK
K3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKIHBhZ2UvTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cy5jcHAKIHBhZ2UvTmF2aWdhdG9yLmNwcAogcGFnZS9OYXZpZ2F0b3JCYXNlLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGI3NDQyZDNkOTBmZmE1YzMxZjc4YjMwMDE5ZjU4MjJiNTFiNTQ0YzMuLjM1ZDU1ZGUx
NzNkOWFjNTBlY2RmOWI3OTc4OWUwMmQxYTg2YmIyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMyNjUsNiArMzI2NSw3IEBA
CiAJCUExMEJCNThCMTQ4NEUzQjMwMEIyRTg3QSAvKiBSZW5kZXJTVkdTaGFwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEwQkI1ODkxNDg0RTNCMzAw
QjJFODdBIC8qIFJlbmRlclNWR1NoYXBlLmggKi87IH07CiAJCUExMERCRjQ3MThGOTIzMTcwMDBE
NzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBEQkY0NjE4RjkyMzE3MDAwRDcwQzYgLyogTGVn
YWN5UHJldmlld0xvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUExMERDNzZCMTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWRE
YXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBE
Qzc2OTE0NzQ3QkFCMDA1RTI0NzEgLyogU3R5bGVHcmlkRGF0YS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUExMEY3QzczMjczMTAwRDAwMDhGQTlB
RiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMTBGN0M3MDI3MzEwMDczMDA4RkE5QUYgLyogTW9kYWxDb250
YWluZXJPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUExMTBEQjlCMTRGNURGNzcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0YS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExMERCOUEx
NEY1REY3NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTExM0UwMjgyMzMxODI5MzAwOUMzM0Ew
IC8qIFBheW1lbnRTZXNzaW9uRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEExMTNFMDI3MjMzMTgyOTMwMDlDMzNBMCAvKiBQYXltZW50U2Vzc2lv
bkVycm9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTExM0UwMkUyMzMxQTEzNDAwOUMzM0EwIC8qIEFwcGxlUGF5Q2FuY2VsRXZlbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMTNFMDJCMjMzMUEw
RTQwMDlDMzNBMCAvKiBBcHBsZVBheUNhbmNlbEV2ZW50LmggKi87IH07CkBAIC0xMzM0MSw2ICsx
MzM0Miw4IEBACiAJCUExMERCRjQ2MThGOTIzMTcwMDBENzBDNiAvKiBMZWdhY3lQcmV2aWV3TG9h
ZGVyQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExlZ2FjeVByZXZp
ZXdMb2FkZXJDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTEwREM3Njgx
NDc0N0JBQjAwNUUyNDcxIC8qIFN0eWxlR3JpZERhdGEuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVHcmlkRGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUExMERDNzY5MTQ3NDdCQUIwMDVFMjQ3MSAvKiBTdHlsZUdyaWREYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlR3JpZERhdGEuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTEwRjdDNzAyNzMxMDA3MzAwOEZBOUFGIC8qIE1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTW9kYWxDb250YWluZXJPYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMTBGN0M3MTI3MzEwMDczMDA4RkE5QUYg
LyogTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb2RhbENv
bnRhaW5lck9ic2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExMERC
OUExNEY1REY3NzAwQTAzQjkzIC8qIFN0eWxlR3JpZEl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFN0eWxlR3JpZEl0ZW1EYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUExMTBEQjlDMTRGNURGODcwMEEwM0I5MyAvKiBTdHlsZUdyaWRJdGVtRGF0
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZUdyaWRJdGVt
RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTNFMDI3MjMzMTgyOTMw
MDlDMzNBMCAvKiBQYXltZW50U2Vzc2lvbkVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRT
ZXNzaW9uRXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTE5LDYgKzIz
OTIyLDggQEAKIAkJCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5o
ICovLAogCQkJCTQxM0UwMDc3MURCMEU0REUwMDIzNDFEMiAvKiBNZW1vcnlSZWxlYXNlLmNwcCAq
LywKIAkJCQk0MTNFMDA3ODFEQjBFNERFMDAyMzQxRDIgLyogTWVtb3J5UmVsZWFzZS5oICovLAor
CQkJCUExMEY3QzcxMjczMTAwNzMwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmNw
cCAqLywKKwkJCQlBMTBGN0M3MDI3MzEwMDczMDA4RkE5QUYgLyogTW9kYWxDb250YWluZXJPYnNl
cnZlci5oICovLAogCQkJCTkzRUIzNTVFMDlFMzdGRDYwMEY0Mzc5OSAvKiBNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzLmNwcCAqLywKIAkJCQk5MzVDNDc2MjA5QUM0Q0U2MDBBNkFBQjQgLyog
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oICovLAogCQkJCTZCNTA3QTIzMjM0QkYzNDEw
MEJFN0M2MiAvKiBOYXZpZ2F0b3IrSXNMb2dnZWRJbi5pZGwgKi8sCkBAIC0zNjA0NCw2ICszNjA0
OSw3IEBACiAJCQkJQ0RGMkIwMTcxODIwNTQwNzAwRjJCNDI0IC8qIE1vY2tTb3VyY2VCdWZmZXJQ
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREYyQjAxOTE4MjA1NDA3MDBGMkI0MjQgLyog
TW9ja1RyYWNrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTcxNTYxMEMyMzRDMUNBMTAwOEZDN0FC
IC8qIE1vY2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAor
CQkJCUExMEY3QzczMjczMTAwRDAwMDhGQTlBRiAvKiBNb2RhbENvbnRhaW5lck9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyREM4RDM5ODI1RjJGRTk3MDBDRkNCQUIgLyogTW9kZWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTMxM0U3OUVBMjczQzg2QjgwMDk3RjkwNSAvKiBNb2RlbERvY3Vt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJCNDExNzI3MzJGNDFFMDBBMkQxOTEgLyogTW9k
ZWxQbGF5ZXIuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2M5
ZmEwNmFkMWMwNmQ1NjczYTYxMWQzMmQwYzUwZTMzNDM3NjQ1Yy4uZTc3YjI4MmIxMjkzNWRlMjZl
OTI2MzRmNWY4ZGNmNzczZDU0ODUxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0xNDgs
NiArMTQ4LDcgQEAKICNpbmNsdWRlICJNZWRpYVF1ZXJ5TWF0Y2hlci5oIgogI2luY2x1ZGUgIk1l
ZGlhU3RyZWFtLmgiCiAjaW5jbHVkZSAiTWVzc2FnZUV2ZW50LmgiCisjaW5jbHVkZSAiTW9kYWxD
b250YWluZXJPYnNlcnZlci5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMuaCIKICNpbmNsdWRlICJNdXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiTmFtZU5vZGVMaXN0
LmgiCkBAIC0yMjAwLDYgKzIyMDEsOCBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVl
ZGVkKCkKICNpZiBFTkFCTEUoQ09OVEVOVF9DSEFOR0VfT0JTRVJWRVIpCiAgICAgQ29udGVudENo
YW5nZU9ic2VydmVyOjpTdHlsZVJlY2FsY1Njb3BlIG9ic2VydmluZ1Njb3BlKCp0aGlzKTsKICNl
bmRpZgorICAgIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OlN0eWxlUmVjYWxjU2NvcGUgbW9kYWxD
b250YWluZXJPYnNlcnZpbmdTY29wZSgqdGhpcyk7CisKICAgICAvLyBUaGUgZWFybHkgZXhpdCBh
Ym92ZSBmb3IgIW5lZWRzU3R5bGVSZWNhbGMoKSBpcyBuZWVkZWQgd2hlbiB1cGRhdGVXaWRnZXRQ
b3NpdGlvbnMoKSBpcyBjYWxsZWQgaW4gcnVuT3JTY2hlZHVsZUFzeW5jaHJvbm91c1Rhc2tzKCku
CiAgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc1NhZmVUb1Vw
ZGF0ZVN0eWxlT3JMYXlvdXQoKnRoaXMpKTsKICAgICByZXNvbHZlU3R5bGUoKTsKQEAgLTkwNzks
NyArOTA4MiwxOSBAQCBTdHJpbmcgRG9jdW1lbnQ6OmRlYnVnRGVzY3JpcHRpb24oKSBjb25zdAog
CiBib29sIERvY3VtZW50OjpzaG91bGRPYnNlcnZlVmlld3BvcnRDb25zdHJhaW5lZFJvb3RzKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fbW9kYWxDb250YWluZXJP
YnNlcnZlciB8fCBNb2RhbENvbnRhaW5lck9ic2VydmVyOjppc05lZWRlZEZvcigqdGhpcyk7Cit9
CisKK01vZGFsQ29udGFpbmVyT2JzZXJ2ZXIqIERvY3VtZW50Ojptb2RhbENvbnRhaW5lck9ic2Vy
dmVyKCkKK3sKKyAgICBpZiAoIW1fbW9kYWxDb250YWluZXJPYnNlcnZlciAmJiBNb2RhbENvbnRh
aW5lck9ic2VydmVyOjppc05lZWRlZEZvcigqdGhpcykpCisgICAgICAgIG1fbW9kYWxDb250YWlu
ZXJPYnNlcnZlciA9IG1ha2VVbmlxdWU8TW9kYWxDb250YWluZXJPYnNlcnZlcj4oKTsKKyAgICBy
ZXR1cm4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyLmdldCgpOworfQorCitNb2RhbENvbnRhaW5l
ck9ic2VydmVyKiBEb2N1bWVudDo6bW9kYWxDb250YWluZXJPYnNlcnZlcklmRXhpc3RzKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9tb2RhbENvbnRhaW5lck9ic2VydmVyLmdldCgpOwogfQogCiBU
ZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBEb2N1bWVudCYgZG9j
dW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDU0ZmNjNzZjOTM4YjcwNWQyMDY3MjY4NGE1
MjdiNDkwZDgwNzQ5ZTcuLjk4NDEzNmM3MDQwYjk1OTM1NGExNDFjMDNiOTNmNDFmOTVlYjEyODgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xODMsNiArMTgzLDcgQEAgY2xhc3MgTWVkaWFQcm9k
dWNlcjsKIGNsYXNzIE1lZGlhUXVlcnlMaXN0OwogY2xhc3MgTWVkaWFRdWVyeU1hdGNoZXI7CiBj
bGFzcyBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlcjsKK2NsYXNzIE1vZGFsQ29udGFpbmVyT2Jz
ZXJ2ZXI7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9kZUZp
bHRlcjsKIGNsYXNzIE5vZGVJdGVyYXRvcjsKQEAgLTE2NjUsNiArMTY2Niw5IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgc2hvdWxkT2JzZXJ2ZVZpZXdwb3J0Q29uc3RyYWluZWRSb290cygpIGNvbnN0
OwogCisgICAgTW9kYWxDb250YWluZXJPYnNlcnZlciogbW9kYWxDb250YWluZXJPYnNlcnZlcigp
OworICAgIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIqIG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXJJZkV4
aXN0cygpIGNvbnN0OworCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7
IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAg
IFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29uc3QgU2V0dGluZ3MmLCBjb25zdCBV
UkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0g
MCk7CkBAIC0yMjUxLDYgKzIyNTUsOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShXRUJfUlRDKQog
ICAgIFJlZlB0cjxSVENOZXR3b3JrTWFuYWdlcj4gbV9ydGNOZXR3b3JrTWFuYWdlcjsKICNlbmRp
ZgorCisgICAgc3RkOjp1bmlxdWVfcHRyPE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI+IG1fbW9kYWxD
b250YWluZXJPYnNlcnZlcjsKIH07CiAKIEVsZW1lbnQqIGV2ZW50VGFyZ2V0RWxlbWVudEZvckRv
Y3VtZW50KERvY3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA5OGFh
YTkzZWQwZjM1NTU2OThiMmQyY2Y3MGIzMTcwYTRhMTZiZGE4Li4yOWQ4N2UyMTBiZDFiMWZmOThj
Y2NkMzgyMmQ1NTRiNTI3ODNlYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAg
LTYyMyw2ICs2MjMsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENvb2tp
ZUNvbnNlbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb29raWVDb25zZW50RGVjaXNpb25SZXN1
bHQpPiYmKSA9IDA7CiAKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21TdHJpbmcmIHNlYXJjaFN0cmlu
Z0Zvck1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxsQXRvbSgpOyB9
CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIH5DaHJvbWVDbGllbnQoKSA9IGRlZmF1bHQ7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2RhbENvbnRhaW5lck9ic2VydmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGFjZmQwYjBlMzkzY2Q2YTVmYjZjMTlhNzhiNmNmOWE0ZTI3ZGIzZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5j
cHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiTW9kYWxDb250YWluZXJPYnNlcnZlci5oIgorCisjaW5jbHVkZSAiQ2hyb21lLmgi
CisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJEb2N1bWVudExvYWRlci5oIgorI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCisjaW5jbHVkZSAiSFRN
TEVsZW1lbnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiVGV4dC5oIgorI2luY2x1
ZGUgPHd0Zi9VUkwuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIE1vZGFsQ29udGFp
bmVyT2JzZXJ2ZXI6OmlzTmVlZGVkRm9yKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAg
ICBSZWZQdHIgZG9jdW1lbnRMb2FkZXIgPSBkb2N1bWVudC5sb2FkZXIoKTsKKworICAgIGlmICgh
ZG9jdW1lbnRMb2FkZXIgfHwgZG9jdW1lbnRMb2FkZXItPm1vZGFsQ29udGFpbmVyT2JzZXJ2YXRp
b25Qb2xpY3koKSA9PSBNb2RhbENvbnRhaW5lck9ic2VydmF0aW9uUG9saWN5OjpEaXNhYmxlZCkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkb2N1bWVudC51cmwoKS5wcm90b2Nv
bElzSW5IVFRQRmFtaWx5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZG9j
dW1lbnQuaXNUb3BEb2N1bWVudCgpIHx8IGRvY3VtZW50LmluRGVzaWduTW9kZSgpIHx8ICFpczxI
VE1MRG9jdW1lbnQ+KGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgUmVm
UHRyIGZyYW1lID0gZG9jdW1lbnQuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHBhZ2UgPSBmcmFtZS0+cGFnZSgpOworICAgIGlmICgh
cGFnZSB8fCBwYWdlLT5pc0VkaXRhYmxlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHJldHVybiB0cnVlOworfQorCitNb2RhbENvbnRhaW5lck9ic2VydmVyOjpNb2RhbENvbnRhaW5l
ck9ic2VydmVyKCkgPSBkZWZhdWx0OworTW9kYWxDb250YWluZXJPYnNlcnZlcjo6fk1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7CisKK01vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OlN0
eWxlUmVjYWxjU2NvcGU6OlN0eWxlUmVjYWxjU2NvcGUoRG9jdW1lbnQmIGRvY3VtZW50KQorICAg
IDogbV9kb2N1bWVudChkb2N1bWVudCkKK3sKK30KKworTW9kYWxDb250YWluZXJPYnNlcnZlcjo6
U3R5bGVSZWNhbGNTY29wZTo6flN0eWxlUmVjYWxjU2NvcGUoKQoreworICAgIGlmICghbV9kb2N1
bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogb2JzZXJ2ZXIgPSBtX2RvY3VtZW50
LT5tb2RhbENvbnRhaW5lck9ic2VydmVySWZFeGlzdHMoKTsKKyAgICBpZiAoIW9ic2VydmVyKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXV0byBjb250YWluZXIgPSBvYnNlcnZlci0+Y29u
dGFpbmVyKCk7IGNvbnRhaW5lciAmJiBjb250YWluZXItPmlzQ29ubmVjdGVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIGZvciAoYXV0byBlbnRyeSA6IG9ic2VydmVyLT5tX2VsZW1lbnRzQW5k
Vmlld3BvcnRDb25zdHJhaW5lZFJvb3RzKSB7CisgICAgICAgIGF1dG8gcm9vdCA9IGVudHJ5LnZh
bHVlOworICAgICAgICBpZiAoIXJvb3QpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAg
ICAvLyBGSVhNRTogVGhpcyB3aWxsIG5lZWQgdG8gYmUgaW1wcm92ZWQgaW4gdGhlIGZ1dHVyZSB0
byBkaXNhbWJpZ3VhdGUgYmV0d2VlbiBtdWx0aXBsZSB0ZXh0IG5vZGVzCisgICAgICAgIC8vIHRo
YXQgbWF0Y2ggdGhlIHNlYXJjaCB0ZXJtLiBGb3Igbm93LCBqdXN0IHVzZSB0aGUgZmlyc3Qgb25l
IHdlIGZpbmQuCisgICAgICAgIG9ic2VydmVyLT5zZXRDb250YWluZXIocm9vdC5nZXQoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBvYnNlcnZlci0+c2V0Q29udGFpbmVyKHsgfSk7
Cit9CisKK3ZvaWQgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6c2V0Q29udGFpbmVyKFJlZlB0cjxF
bGVtZW50PiYmIG5ld0NvbnRhaW5lcikKK3sKKyAgICBpZiAobV9jb250YWluZXIuZ2V0KCkgPT0g
bmV3Q29udGFpbmVyLmdldCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9jb250YWlu
ZXIpCisgICAgICAgIG1fY29udGFpbmVyLT5pbnZhbGlkYXRlU3R5bGUoKTsKKworICAgIGlmIChu
ZXdDb250YWluZXIpCisgICAgICAgIG5ld0NvbnRhaW5lci0+aW52YWxpZGF0ZVN0eWxlKCk7CisK
KyAgICBtX2NvbnRhaW5lciA9IFdURk1vdmUobmV3Q29udGFpbmVyKTsKK30KKworRWxlbWVudCog
TW9kYWxDb250YWluZXJPYnNlcnZlcjo6Y29udGFpbmVyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jb250YWluZXIuZ2V0KCk7Cit9CisKK3ZvaWQgTW9kYWxDb250YWluZXJPYnNlcnZlcjo6ZGlk
Q3JlYXRlVGV4dFJlbmRlcmVySW5WaWV3cG9ydENvbnN0cmFpbmVkUm9vdChUZXh0JiB0ZXh0Tm9k
ZSwgRWxlbWVudCYgdmlld3BvcnRDb25zdHJhaW5lZFJvb3QpCit7CisgICAgUmVmUHRyIHBhcmVu
dCA9IHRleHROb2RlLnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpOworICAgIGJvb2wgc2hv
dWxkU2VhcmNoQ2hpbGROb2RlID0gKFsmXSB7CisgICAgICAgIGlmICghaXM8SFRNTEVsZW1lbnQ+
KHBhcmVudC5nZXQoKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmV0
dXJuIHBhcmVudC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OmFUYWcpIHx8IHBhcmVudC0+aGFzVGFn
TmFtZShIVE1MTmFtZXM6OmRpdlRhZykgfHwgcGFyZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6
cFRhZykgfHwgcGFyZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c3BhblRhZykgfHwgcGFyZW50
LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6c2VjdGlvblRhZyk7CisgICAgfSkoKTsKKworICAgIGlm
ICghc2hvdWxkU2VhcmNoQ2hpbGROb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBz
ZWFyY2hUZXJtID0gdGhpcy0+c2VhcmNoVGVybSh0ZXh0Tm9kZS5kb2N1bWVudCgpKTsKKyAgICBp
ZiAoc2VhcmNoVGVybS5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKExJS0VM
WSghdGV4dE5vZGUuZGF0YSgpLmNvbnRhaW5zSWdub3JpbmdBU0NJSUNhc2Uoc2VhcmNoVGVybSkp
KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2VsZW1lbnRzQW5kVmlld3BvcnRDb25zdHJhaW5l
ZFJvb3RzLmFkZCgqcGFyZW50LCB2aWV3cG9ydENvbnN0cmFpbmVkUm9vdCk7Cit9CisKK2NvbnN0
IEF0b21TdHJpbmcmIE1vZGFsQ29udGFpbmVyT2JzZXJ2ZXI6OnNlYXJjaFRlcm0oY29uc3QgRG9j
dW1lbnQmIGRvY3VtZW50KSBjb25zdAoreworICAgIGlmIChhdXRvKiBwYWdlID0gZG9jdW1lbnQu
cGFnZSgpKQorICAgICAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc2VhcmNoU3Ry
aW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpOworCisgICAgcmV0dXJuIG51bGxBdG9tKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTW9kYWxDb250YWluZXJPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Nb2Rh
bENvbnRhaW5lck9ic2VydmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTBhYjQ0YTA0NTU1YTQzMzg3Zjk4Y2Uw
N2M2ZjNhMTYyMGQ5MDdjMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TW9kYWxDb250YWluZXJPYnNlcnZlci5oCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCisjaW5jbHVkZSA8d3RmL0Zh
c3RNYWxsb2MuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERvY3VtZW50OworY2xh
c3MgRWxlbWVudDsKK2NsYXNzIEhUTUxFbGVtZW50OworCitjbGFzcyBNb2RhbENvbnRhaW5lck9i
c2VydmVyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBjbGFz
cyBTdHlsZVJlY2FsY1Njb3BlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFN0eWxlUmVjYWxjU2Nv
cGUoRG9jdW1lbnQmKTsKKyAgICAgICAgflN0eWxlUmVjYWxjU2NvcGUoKTsKKworICAgIHByaXZh
dGU6CisgICAgICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CisgICAgfTsKKworICAg
IHN0YXRpYyBib29sIGlzTmVlZGVkRm9yKGNvbnN0IERvY3VtZW50Jik7CisKKyAgICBNb2RhbENv
bnRhaW5lck9ic2VydmVyKCk7CisgICAgfk1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKTsKKworICAg
IEVsZW1lbnQqIGNvbnRhaW5lcigpIGNvbnN0OworCisgICAgdm9pZCBkaWRDcmVhdGVUZXh0UmVu
ZGVyZXJJblZpZXdwb3J0Q29uc3RyYWluZWRSb290KFRleHQmLCBFbGVtZW50Jik7CisKK3ByaXZh
dGU6CisgICAgdm9pZCBzZXRDb250YWluZXIoUmVmUHRyPEVsZW1lbnQ+JiYpOworCisgICAgY29u
c3QgQXRvbVN0cmluZyYgc2VhcmNoVGVybShjb25zdCBEb2N1bWVudCYpIGNvbnN0OworCisgICAg
V2Vha0hhc2hNYXA8RWxlbWVudCwgV2Vha1B0cjxFbGVtZW50Pj4gbV9lbGVtZW50c0FuZFZpZXdw
b3J0Q29uc3RyYWluZWRSb290czsKKyAgICBXZWFrUHRyPEVsZW1lbnQ+IG1fY29udGFpbmVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKaW5kZXggODlkNjY4ZGQz
NzIyNTFiMWQ4NTBmOTIxMzcxNjQwNGFmZDE2YzY5NS4uMzQ0NTk5N2U5MzNkYjhjNTYwM2UwMmZh
YTk1YzM3MGNmMWQ2NjRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5j
bHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgogI2luY2x1ZGUgIkhUTUxTbG90RWxlbWVudC5oIgog
I2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgorI2luY2x1ZGUgIk1vZGFsQ29u
dGFpbmVyT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRl
ICJQc2V1ZG9FbGVtZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgi
CkBAIC00ODksOCArNDkwLDEwIEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OmNyZWF0ZVRleHRS
ZW5kZXJlcihUZXh0JiB0ZXh0Tm9kZSwgY29uc3QgU3R5bGU6OlRleHRVcGRhCiAgICAgaWYgKFVO
TElLRUxZKHRleHRNYW5pcHVsYXRpb25Db250cm9sbGVyKSkKICAgICAgICAgdGV4dE1hbmlwdWxh
dGlvbkNvbnRyb2xsZXItPmRpZENyZWF0ZVJlbmRlcmVyRm9yVGV4dE5vZGUodGV4dE5vZGUpOwog
Ci0gICAgVU5VU0VEX1BBUkFNKHZpZXdwb3J0Q29uc3RyYWluZWRSb290KTsKLSAgICAvLyBGSVhN
RTogTm90aWZ5IHRoZSBtb2RhbCBjb250YWluZXIgb2JzZXJ2ZXIgYWJvdXQgbmV3bHkgY3JlYXRl
ZCB0ZXh0IHJlbmRlcmVycy4KKyAgICBpZiAodmlld3BvcnRDb25zdHJhaW5lZFJvb3QpIHsKKyAg
ICAgICAgaWYgKGF1dG8qIG9ic2VydmVyID0gbV9kb2N1bWVudC5tb2RhbENvbnRhaW5lck9ic2Vy
dmVyKCkpCisgICAgICAgICAgICBvYnNlcnZlci0+ZGlkQ3JlYXRlVGV4dFJlbmRlcmVySW5WaWV3
cG9ydENvbnN0cmFpbmVkUm9vdCh0ZXh0Tm9kZSwgKnZpZXdwb3J0Q29uc3RyYWluZWRSb290KTsK
KyAgICB9CiB9CiAKIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5kZXJlcihU
ZXh0JiB0ZXh0LCBjb25zdCBTdHlsZTo6VGV4dFVwZGF0ZSogdGV4dFVwZGF0ZSwgRWxlbWVudCog
dmlld3BvcnRDb25zdHJhaW5lZFJvb3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUFkanVzdGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIu
Y3BwCmluZGV4IDNjNTMyZTg0NDAwNmEwNTk1YTQ0MTU3OTc4YmUyNzk1MzMzMmE3ZmEuLjU5ZGI4
ODg2MmQwYmJjNzMyYTQ1ZDdlMTc5ZmYyNmRjOWI3ZDcxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQWRqdXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQWRqdXN0ZXIuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiSFRNTFRleHRB
cmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJN
YXRoTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiTW9kYWxDb250YWluZXJPYnNlcnZlci5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJRdWlya3MuaCIKICNpbmNsdWRlICJSZW5kZXJCb3gu
aCIKQEAgLTU1MCw2ICs1NTEsMTMgQEAgdm9pZCBBZGp1c3Rlcjo6YWRqdXN0KFJlbmRlclN0eWxl
JiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIHVzZXJBZ2VudEFwcGVhcmFuY2UKICNlbmRpZgog
CiAgICAgYWRqdXN0Rm9yU2l0ZVNwZWNpZmljUXVpcmtzKHN0eWxlKTsKKworICAgIGlmIChhdXRv
IG1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIgPSBtX2VsZW1lbnQgPyBtX2VsZW1lbnQtPmRvY3VtZW50
KCkubW9kYWxDb250YWluZXJPYnNlcnZlcigpIDogbnVsbHB0cikgeworICAgICAgICBpZiAobW9k
YWxDb250YWluZXJPYnNlcnZlci0+Y29udGFpbmVyKCkgPT0gbV9lbGVtZW50KSB7CisgICAgICAg
ICAgICAvLyBGSVhNRTogU2V0dGluZyB2aXNpYmlsaXR5IG9uIHRoZSBwYXJlbnQgY29udGFpbmVy
IGFsb25lIGlzbid0IGVub3VnaCwgc2luY2UgY2hpbGQgZWxlbWVudHMgbWF5IGJlIHZpc2libGUu
CisgICAgICAgICAgICBzdHlsZS5zZXRWaXNpYmlsaXR5KFZpc2liaWxpdHk6OkhpZGRlbik7Cisg
ICAgICAgIH0KKyAgICB9CiB9CiAKIHN0YXRpYyBib29sIGhhc0VmZmVjdGl2ZURpc3BsYXlOb25l
Rm9yRGlzcGxheUNvbnRlbnRzKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCmluZGV4IDNlMmQ0NzVmOGMyMGY4OGVlZDVmMWU5YzE0ZjhlZTJmZWU1YmYwODIuLjAz
NDFhNzI5YTRiYTQ5ZWQxOWVkZmE0NGMyMjcwMjhkNzQzN2MwNzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuY3BwCkBAIC0xNTY5LDQgKzE1NjksMTMgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlcXVl
c3RDb29raWVDb25zZW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Q29va2kKICAg
ICBtX3BhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlcXVl
c3RDb29raWVDb25zZW50KCksIFdURk1vdmUoY29tcGxldGlvbikpOwogfQogCisjaWYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvV2ViQ2hyb21lQ2xp
ZW50QWRkaXRpb25zLmNwcD4KKyNlbHNlCitjb25zdCBBdG9tU3RyaW5nJiBXZWJDaHJvbWVDbGll
bnQ6OnNlYXJjaFN0cmluZ0Zvck1vZGFsQ29udGFpbmVyT2JzZXJ2ZXIoKSBjb25zdAoreworICAg
IHJldHVybiBudWxsQXRvbSgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCmluZGV4IDhiOGZiNDEzZDBmNTk1M2I1YTE5ZjA2OGI0M2NmZmUwMDNk
ZWFkMGMuLmFmMTQ0ODdhZDNmNmI5YjY3YzQxMGI0YmI3ODg4YWRjY2FlNWRiMWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKQEAgLTQ2Niw2ICs0NjYsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCByZXF1
ZXN0Q29va2llQ29uc2VudChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkNvb2tpZUNv
bnNlbnREZWNpc2lvblJlc3VsdCk+JiYpIGZpbmFsOwogCisgICAgY29uc3QgQXRvbVN0cmluZyYg
c2VhcmNoU3RyaW5nRm9yTW9kYWxDb250YWluZXJPYnNlcnZlcigpIGNvbnN0IGZpbmFsOworCiAg
ICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7
IGZhbHNlIH07CiAgICAgbXV0YWJsZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxT
Y3JvbGxiYXIgeyBmYWxzZSB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>