<?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>198315</bug_id>
          
          <creation_ts>2019-05-28 17:19:52 -0700</creation_ts>
          <short_desc>[iOS] Respect NSItemProvider&apos;s registered types when dropping files that are loaded in-place</short_desc>
          <delta_ts>2019-05-28 19:56:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1539819</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-28 17:19:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/51183762&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539830</commentid>
    <comment_count>1</comment_count>
      <attachid>370813</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-28 17:32:42 -0700</bug_when>
    <thetext>Created attachment 370813
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539834</commentid>
    <comment_count>2</comment_count>
      <attachid>370814</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-28 17:45:40 -0700</bug_when>
    <thetext>Created attachment 370814
Fix macOS builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539856</commentid>
    <comment_count>3</comment_count>
      <attachid>370820</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-05-28 18:48:39 -0700</bug_when>
    <thetext>Created attachment 370820
Adjust a test for macOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539870</commentid>
    <comment_count>4</comment_count>
      <attachid>370820</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-28 19:56:15 -0700</bug_when>
    <thetext>Comment on attachment 370820
Adjust a test for macOS

Clearing flags on attachment: 370820

Committed r245839: &lt;https://trac.webkit.org/changeset/245839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1539871</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-28 19:56:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370813</attachid>
            <date>2019-05-28 17:32:42 -0700</date>
            <delta_ts>2019-05-28 17:45:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198315-20190528173242.patch</filename>
            <type>text/plain</type>
            <size>18554</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1Nzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzc0MmM0Zjc2NmMzOWM3
NWNiNzY2ODk3ZDZlOGZlODZjZjNiN2Y1MC4uNTIwMmVkYTZmMWI4ZmExZTZlZjEzMmNjZGQ3YjBi
ZjczY2Q1NjFhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA1LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlc3Bl
Y3QgTlNJdGVtUHJvdmlkZXIncyByZWdpc3RlcmVkIHR5cGVzIHdoZW4gZHJvcHBpbmcgZmlsZXMg
dGhhdCBhcmUgbG9hZGVkIGluLXBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTgzMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTgzNzYy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEN1cnJl
bnRseSwgbG9naWMgaW4gUGFzdGVib2FyZElPUy5tbSBhbmQgV2ViQ29udGVudFJlYWRlckNvY29h
Lm1tIGF0dGVtcHRzIHRvIGRlZHVjZSB0aGUgY29udGVudCB0eXBlIGZyb20gdGhlCisgICAgICAg
IGZpbGUgcGF0aCB3aGVuIGRyb3BwaW5nIGF0dGFjaG1lbnRzIG9uIGlPUy4gSW5zdGVhZCwgd2Ug
c2hvdWxkIGJlIHBsdW1iaW5nIHRoZSBjb250ZW50IHR5cGUgdGhyb3VnaCB0byB0aGUKKyAgICAg
ICAgcmVhZGVyLgorCisgICAgICAgIFRlc3Q6IFdLQXR0YWNobWVudFRlc3RzSU9TLkluc2VydERy
b3BwZWRJbWFnZVdpdGhOb25JbWFnZUZpbGVFeHRlbnNpb24KKworICAgICAgICAqIGVkaXRpbmcv
V2ViQ29udGVudFJlYWRlci5oOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJl
YWRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6dHlwZUZvckF0dGFjaG1lbnRFbGVtZW50
KToKKworICAgICAgICBBZGQgYSBoZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSB3aGljaCB0eXBl
IHRvIHVzZSBpbiBhdHRhY2htZW50IGVsZW1lbnRzLiBUaGlzIG1ha2VzIHRoZSBwYXN0ZQorICAg
ICAgICAoYXR0YWNobWVudEZvckRhdGEpIGFuZCBkcm9wIChhdHRhY2htZW50Rm9yRmlsZVBhdGhz
KSBiZWhhdmUgdGhlIHNhbWUgd2F5LCB3aXRoIHJlc3BlY3QgdG8gdGhlIHR5cGUgYXR0cmlidXRl
CisgICAgICAgIHVzZWQgdG8gcmVwcmVzZW50IHRoZSBhdHRhY2htZW50LgorCisgICAgICAgIChX
ZWJDb3JlOjphdHRhY2htZW50Rm9yRmlsZVBhdGgpOgorCisgICAgICAgIFVzZSB0aGUgY29udGVu
dCB0eXBlLCBpZiBzcGVjaWZpZWQ7IG90aGVyd2lzZSwgZmFsbCBiYWNrIHRvIGRlZHVjaW5nIGl0
IGZyb20gdGhlIGZpbGUgcGF0aC4KKworICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6V2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVQYXRoKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAgIChXZWJDb3JlOjpQYXN0
ZWJvYXJkV2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVQYXRoKToKKworICAgICAgICBQYXNzIHRo
ZSBoaWdoZXN0IGZpZGVsaXR5IHJlcHJlc2VudGF0aW9uJ3MgY29udGVudCB0eXBlIHRvIHRoZSB3
ZWIgY29udGVudCByZWFkZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElP
Uy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWRSZXNwZWN0aW5nVVRJRmlk
ZWxpdGllcyk6CisKIDIwMTktMDUtMjYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBbTEZDXVtWZXJpZmljYXRpb25dIEFkZCBhcmVFc3NlbnRpYWxseUVxdWFsIGZv
ciBMYXlvdXRSZWN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRl
bnRSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvV2ViQ29udGVudFJlYWRlci5oCmlu
ZGV4IDljOTY0MTAyOWQ2MTIzNDQ1Y2ZlNThlNmU1NzBlMjgzNzA5NjI1MDEuLjJiOWU5OTk5OWNi
Nzc4NTkxYTYwYWMwZDNkOTZhZWJiYWFkZWYxYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvV2ViQ29udGVudFJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
V2ViQ29udGVudFJlYWRlci5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCByZWFkV2ViQXJjaGl2ZShTaGFyZWRCdWZmZXIm
KSBvdmVycmlkZTsKLSAgICBib29sIHJlYWRGaWxlUGF0aChjb25zdCBTdHJpbmcmLCBPcHRpb25h
bDxGbG9hdFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUgPSB7IH0pIG92ZXJyaWRlOwor
ICAgIGJvb2wgcmVhZEZpbGVQYXRoKGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPEZsb2F0U2l6ZT4g
cHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlw
ZSA9IHsgfSkgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkRmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkSFRNTChjb25zdCBTdHJpbmcmKSBvdmVy
cmlkZTsKICAgICBib29sIHJlYWRSVEZEKFNoYXJlZEJ1ZmZlciYpIG92ZXJyaWRlOwpAQCAtOTUs
NyArOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJv
b2wgcmVhZFdlYkFyY2hpdmUoU2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZWFk
RmlsZVBhdGgoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8RmxvYXRTaXplPiA9IHsgfSkgb3ZlcnJp
ZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJlYWRGaWxlUGF0aChjb25zdCBTdHJpbmcm
LCBPcHRpb25hbDxGbG9hdFNpemU+ID0geyB9LCBjb25zdCBTdHJpbmcmID0geyB9KSBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgcmVhZEZpbGVQYXRocyhjb25zdCBWZWN0b3I8
U3RyaW5nPiYpIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCByZWFkSFRNTChj
b25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICBib29sIHJlYWRSVEZEKFNoYXJlZEJ1ZmZlciYp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJD
b250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNv
bnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCA1MzJhODRhOWM0NWUxZjI0NDYwZGEyNTc1ODkzOTgx
NWIwOGE4MjUyLi5iZTg1YjBhYjMwYTNiYTc4NzNkNmFhYmM2MGJhNTRhYjMzNGYyMDY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJD
b2NvYS5tbQpAQCAtNjk1LDcgKzY5NSwxNiBAQCBib29sIFdlYkNvbnRlbnRSZWFkZXI6OnJlYWRJ
bWFnZShSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0eXBlLAogCiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotc3RhdGljIFJlZjxIVE1MRWxlbWVudD4g
YXR0YWNobWVudEZvckZpbGVQYXRoKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBP
cHRpb25hbDxGbG9hdFNpemU+IHByZWZlcnJlZFNpemUpCitzdGF0aWMgU3RyaW5nIHR5cGVGb3JB
dHRhY2htZW50RWxlbWVudChjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKQoreworICAgIGlmIChj
b250ZW50VHlwZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBhdXRvIG1p
bWVUeXBlID0gbWltZVR5cGVGcm9tQ29udGVudFR5cGUoY29udGVudFR5cGUpOworICAgIHJldHVy
biBtaW1lVHlwZS5pc0VtcHR5KCkgPyBjb250ZW50VHlwZSA6IG1pbWVUeXBlOworfQorCitzdGF0
aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50Rm9yRmlsZVBhdGgoRnJhbWUmIGZyYW1lLCBj
b25zdCBTdHJpbmcmIHBhdGgsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJlZmVycmVkU2l6ZSwgY29u
c3QgU3RyaW5nJiBleHBsaWNpdENvbnRlbnRUeXBlKQogewogICAgIGF1dG8gZG9jdW1lbnQgPSBt
YWtlUmVmKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBhdXRvIGF0dGFjaG1lbnQgPSBIVE1MQXR0
YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmF0dGFjaG1lbnRUYWcsIGRvY3VtZW50
KTsKQEAgLTcwNCwxNyArNzEzLDIzIEBAIHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1l
bnRGb3JGaWxlUGF0aChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcGF0aCwKICAgICAgICAg
cmV0dXJuIGF0dGFjaG1lbnQ7CiAgICAgfQogCi0gICAgU3RyaW5nIGNvbnRlbnRUeXBlOworICAg
IGJvb2wgaXNEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpmaWxlSXNEaXJlY3RvcnkocGF0aCwgRmls
ZVN5c3RlbTo6U2hvdWxkRm9sbG93U3ltYm9saWNMaW5rczo6WWVzKTsKKyAgICBTdHJpbmcgY29u
dGVudFR5cGUgPSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQoZXhwbGljaXRDb250ZW50VHlwZSk7
CisgICAgaWYgKGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoaXNEaXJlY3Rv
cnkpCisgICAgICAgICAgICBjb250ZW50VHlwZSA9IGtVVFR5cGVEaXJlY3Rvcnk7CisgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgY29udGVudFR5cGUgPSBGaWxlOjpjb250ZW50VHlwZUZvckZp
bGUocGF0aCk7CisgICAgICAgICAgICBpZiAoY29udGVudFR5cGUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgICAgIGNvbnRlbnRUeXBlID0ga1VUVHlwZURhdGE7CisgICAgICAgIH0KKyAgICB9CisK
ICAgICBPcHRpb25hbDx1aW50NjRfdD4gZmlsZVNpemVGb3JEaXNwbGF5OwotICAgIGlmIChGaWxl
U3lzdGVtOjpmaWxlSXNEaXJlY3RvcnkocGF0aCwgRmlsZVN5c3RlbTo6U2hvdWxkRm9sbG93U3lt
Ym9saWNMaW5rczo6WWVzKSkKLSAgICAgICAgY29udGVudFR5cGUgPSBrVVRUeXBlRGlyZWN0b3J5
OwotICAgIGVsc2UgeworICAgIGlmICghaXNEaXJlY3RvcnkpIHsKICAgICAgICAgbG9uZyBsb25n
IGZpbGVTaXplOwogICAgICAgICBGaWxlU3lzdGVtOjpnZXRGaWxlU2l6ZShwYXRoLCBmaWxlU2l6
ZSk7CiAgICAgICAgIGZpbGVTaXplRm9yRGlzcGxheSA9IGZpbGVTaXplOwotICAgICAgICBjb250
ZW50VHlwZSA9IEZpbGU6OmNvbnRlbnRUeXBlRm9yRmlsZShwYXRoKTsKLSAgICAgICAgaWYgKGNv
bnRlbnRUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGNvbnRlbnRUeXBlID0ga1VUVHlwZURh
dGE7CiAgICAgfQogCiAgICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJBdHRhY2htZW50SWRlbnRp
ZmllcihhdHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCksIGNvbnRlbnRUeXBlLCBw
YXRoKTsKQEAgLTczOCw4ICs3NTMsNyBAQCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2ht
ZW50Rm9yRGF0YShGcmFtZSYgZnJhbWUsIFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBjbwogewogICAg
IGF1dG8gZG9jdW1lbnQgPSBtYWtlUmVmKCpmcmFtZS5kb2N1bWVudCgpKTsKICAgICBhdXRvIGF0
dGFjaG1lbnQgPSBIVE1MQXR0YWNobWVudEVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6OmF0dGFj
aG1lbnRUYWcsIGRvY3VtZW50KTsKLSAgICBhdXRvIG1pbWVUeXBlID0gbWltZVR5cGVGcm9tQ29u
dGVudFR5cGUoY29udGVudFR5cGUpOwotICAgIGF1dG8gdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50
ID0gbWltZVR5cGUuaXNFbXB0eSgpID8gY29udGVudFR5cGUgOiBtaW1lVHlwZTsKKyAgICBhdXRv
IGF0dGFjaG1lbnRUeXBlID0gdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KGNvbnRlbnRUeXBlKTsK
IAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW5zdGVhZCBhc2sgQ29yZVNlcnZpY2VzIGZvciBh
IHByZWZlcnJlZCBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGNvbnRlbnQgdHlwZS4K
ICAgICBzdGF0aWMgY29uc3QgY2hhciogZGVmYXVsdEF0dGFjaG1lbnROYW1lID0gImZpbGUiOwpA
QCAtNzUxLDE1ICs3NjUsMTUgQEAgc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNobWVudEZv
ckRhdGEoRnJhbWUmIGZyYW1lLCBTaGFyZWRCdWZmZXImIGJ1ZmZlciwgY28KICAgICAgICAgZmls
ZU5hbWUgPSBuYW1lOwogCiAgICAgaWYgKCFzdXBwb3J0c0NsaWVudFNpZGVBdHRhY2htZW50RGF0
YShmcmFtZSkpIHsKLSAgICAgICAgYXR0YWNobWVudC0+c2V0RmlsZShGaWxlOjpjcmVhdGUoQmxv
Yjo6Y3JlYXRlKGJ1ZmZlciwgV1RGTW92ZSh0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQpKSwgZmls
ZU5hbWUpKTsKKyAgICAgICAgYXR0YWNobWVudC0+c2V0RmlsZShGaWxlOjpjcmVhdGUoQmxvYjo6
Y3JlYXRlKGJ1ZmZlciwgV1RGTW92ZShhdHRhY2htZW50VHlwZSkpLCBmaWxlTmFtZSkpOwogICAg
ICAgICByZXR1cm4gYXR0YWNobWVudDsKICAgICB9CiAKLSAgICBmcmFtZS5lZGl0b3IoKS5yZWdp
c3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGF0dGFjaG1lbnQtPmVuc3VyZVVuaXF1ZUlkZW50aWZp
ZXIoKSwgdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50LCBmaWxlTmFtZSwgYnVmZmVyKTsKKyAgICBm
cmFtZS5lZGl0b3IoKS5yZWdpc3RlckF0dGFjaG1lbnRJZGVudGlmaWVyKGF0dGFjaG1lbnQtPmVu
c3VyZVVuaXF1ZUlkZW50aWZpZXIoKSwgYXR0YWNobWVudFR5cGUsIGZpbGVOYW1lLCBidWZmZXIp
OwogCi0gICAgaWYgKGNvbnRlbnRUeXBlSXNTdWl0YWJsZUZvcklubGluZUltYWdlUmVwcmVzZW50
YXRpb24odHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KSkgeworICAgIGlmIChjb250ZW50VHlwZUlz
U3VpdGFibGVGb3JJbmxpbmVJbWFnZVJlcHJlc2VudGF0aW9uKGF0dGFjaG1lbnRUeXBlKSkgewog
ICAgICAgICBhdXRvIGltYWdlID0gSFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICAgICAgaW1hZ2UtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5h
bWVzOjpzcmNBdHRyLCBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChkb2N1bWVudCwgRmlsZTo6Y3Jl
YXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUodHlwZUZvckF0dGFjaG1lbnRFbGVtZW50
KSksIFdURk1vdmUoZmlsZU5hbWUpKSkpOworICAgICAgICBpbWFnZS0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnNyY0F0dHIsIERPTVVSTDo6Y3JlYXRlT2Jq
ZWN0VVJMKGRvY3VtZW50LCBGaWxlOjpjcmVhdGUoQmxvYjo6Y3JlYXRlKGJ1ZmZlciwgV1RGTW92
ZShhdHRhY2htZW50VHlwZSkpLCBXVEZNb3ZlKGZpbGVOYW1lKSkpKTsKICAgICAgICAgaW1hZ2Ut
PnNldEF0dGFjaG1lbnRFbGVtZW50KFdURk1vdmUoYXR0YWNobWVudCkpOwogICAgICAgICBpZiAo
cHJlZmVycmVkU2l6ZSkgewogICAgICAgICAgICAgaW1hZ2UtPnNldEF0dHJpYnV0ZVdpdGhvdXRT
eW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3aWR0aEF0dHIsIEF0b21pY1N0cmluZzo6bnVtYmVy
KHByZWZlcnJlZFNpemUtPndpZHRoKCkpKTsKQEAgLTc2OCwxMyArNzgyLDEzIEBAIHN0YXRpYyBS
ZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgU2hhcmVkQnVm
ZmVyJiBidWZmZXIsIGNvCiAgICAgICAgIHJldHVybiBpbWFnZTsKICAgICB9CiAKLSAgICBhdHRh
Y2htZW50LT51cGRhdGVBdHRyaWJ1dGVzKHsgYnVmZmVyLnNpemUoKSB9LCBXVEZNb3ZlKHR5cGVG
b3JBdHRhY2htZW50RWxlbWVudCksIFdURk1vdmUoZmlsZU5hbWUpKTsKKyAgICBhdHRhY2htZW50
LT51cGRhdGVBdHRyaWJ1dGVzKHsgYnVmZmVyLnNpemUoKSB9LCBXVEZNb3ZlKGF0dGFjaG1lbnRU
eXBlKSwgV1RGTW92ZShmaWxlTmFtZSkpOwogICAgIHJldHVybiBhdHRhY2htZW50OwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAotYm9vbCBXZWJDb250ZW50UmVh
ZGVyOjpyZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBPcHRpb25hbDxGbG9hdFNpemU+
IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUpCitib29sIFdlYkNvbnRlbnRSZWFkZXI6OnJlYWRG
aWxlUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJlZmVycmVk
UHJlc2VudGF0aW9uU2l6ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSkKIHsKICAgICBpZiAo
cGF0aC5pc0VtcHR5KCkgfHwgIWZyYW1lLmRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKQEAgLTc4NSw3ICs3OTksNyBAQCBib29sIFdlYkNvbnRlbnRSZWFkZXI6OnJlYWRGaWxlUGF0
aChjb25zdCBTdHJpbmcmIHBhdGgsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJlZgogCiAjaWYgRU5B
QkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKSkKLSAgICAgICAgZnJh
Z21lbnQtPmFwcGVuZENoaWxkKGF0dGFjaG1lbnRGb3JGaWxlUGF0aChmcmFtZSwgcGF0aCwgcHJl
ZmVycmVkUHJlc2VudGF0aW9uU2l6ZSkpOworICAgICAgICBmcmFnbWVudC0+YXBwZW5kQ2hpbGQo
YXR0YWNobWVudEZvckZpbGVQYXRoKGZyYW1lLCBwYXRoLCBwcmVmZXJyZWRQcmVzZW50YXRpb25T
aXplLCBjb250ZW50VHlwZSkpOwogI2VuZGlmCiAKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA2NDdkYzVmYzRhOWJiMGQ5YjQzNWVjMTgxYzRl
NTIzNmZjYzFkYzEwLi45N2VlYjFmNTEwZmNjM2IxNmQyZmVhMGU3N2E0MGZiZDU5YTE5ZGZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgcHVi
bGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBib29sIHJlYWRXZWJBcmNo
aXZlKFNoYXJlZEJ1ZmZlciYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcmVhZEZpbGVQYXRoKGNv
bnN0IFN0cmluZyYsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJlZmVycmVkUHJlc2VudGF0aW9uU2l6
ZSA9IHsgfSkgPSAwOworICAgIHZpcnR1YWwgYm9vbCByZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5n
JiwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXplID0geyB9LCBj
b25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlID0geyB9KSA9IDA7CiAgICAgdmlydHVhbCBib29sIHJl
YWRGaWxlUGF0aHMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IHJlYWRIVE1MKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgcmVhZFJURkQo
U2hhcmVkQnVmZmVyJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVi
b2FyZElPUy5tbQppbmRleCA0MTYyOTU2NzdmN2FlZjJkM2I4ZGFiMWVkNmU0Nzc3Zjk3MmQzZWE1
Li44ZTAwNWNhYjUxYWJjM2Q2MzFjZDU0YjNmMzFkMDMzOGNhOGY1ZTRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMzQ1LDkgKzM0NSwxMCBA
QCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWRSZXNwZWN0aW5nVVRJRmlkZWxpdGllcyhQYXN0ZWJvYXJk
V2ViQ29udGVudFJlYWRlciYgcmVhZGVyLAogICAgICAgICBhdXRvIGluZm8gPSBzdHJhdGVneS5p
bmZvcm1hdGlvbkZvckl0ZW1BdEluZGV4KGluZGV4LCBtX3Bhc3RlYm9hcmROYW1lKTsKICAgICAg
ICAgYXV0byBhdHRhY2htZW50RmlsZVBhdGggPSBpbmZvLnBhdGhGb3JIaWdoZXN0RmlkZWxpdHlJ
dGVtKCk7CiAgICAgICAgIGJvb2wgY2FuUmVhZEF0dGFjaG1lbnQgPSBwb2xpY3kgPT0gV2ViQ29u
dGVudFJlYWRpbmdQb2xpY3k6OkFueVR5cGUgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5hdHRhY2htZW50RWxlbWVudEVuYWJsZWQoKSAmJiAhYXR0YWNobWVudEZp
bGVQYXRoLmlzRW1wdHkoKTsKKyAgICAgICAgYXV0byBjb250ZW50VHlwZSA9IGluZm8uY29udGVu
dFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtKCk7CiAgICAgICAgIGlmIChjYW5SZWFkQXR0YWNo
bWVudCAmJiBwcmVmZXJzQXR0YWNobWVudFJlcHJlc2VudGF0aW9uKGluZm8pKSB7Ci0gICAgICAg
ICAgICByZWFkVVJMQWxvbmdzaWRlQXR0YWNobWVudElmTmVjZXNzYXJ5KHJlYWRlciwgc3RyYXRl
Z3ksIGluZm8uY29udGVudFR5cGVGb3JIaWdoZXN0RmlkZWxpdHlJdGVtKCksIG1fcGFzdGVib2Fy
ZE5hbWUsIGluZGV4KTsKLSAgICAgICAgICAgIHJlYWRlci5yZWFkRmlsZVBhdGgoV1RGTW92ZShh
dHRhY2htZW50RmlsZVBhdGgpLCBpbmZvLnByZWZlcnJlZFByZXNlbnRhdGlvblNpemUpOworICAg
ICAgICAgICAgcmVhZFVSTEFsb25nc2lkZUF0dGFjaG1lbnRJZk5lY2Vzc2FyeShyZWFkZXIsIHN0
cmF0ZWd5LCBjb250ZW50VHlwZSwgbV9wYXN0ZWJvYXJkTmFtZSwgaW5kZXgpOworICAgICAgICAg
ICAgcmVhZGVyLnJlYWRGaWxlUGF0aChXVEZNb3ZlKGF0dGFjaG1lbnRGaWxlUGF0aCksIGluZm8u
cHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSwgY29udGVudFR5cGUpOwogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtMzY2LDcgKzM2Nyw3IEBAIHZvaWQgUGFzdGVi
b2FyZDo6cmVhZFJlc3BlY3RpbmdVVElGaWRlbGl0aWVzKFBhc3RlYm9hcmRXZWJDb250ZW50UmVh
ZGVyJiByZWFkZXIsCiAgICAgICAgIH0KICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQog
ICAgICAgICBpZiAoY2FuUmVhZEF0dGFjaG1lbnQgJiYgcmVzdWx0ID09IFJlYWRlclJlc3VsdDo6
RGlkTm90UmVhZFR5cGUpCi0gICAgICAgICAgICByZWFkZXIucmVhZEZpbGVQYXRoKFdURk1vdmUo
YXR0YWNobWVudEZpbGVQYXRoKSwgaW5mby5wcmVmZXJyZWRQcmVzZW50YXRpb25TaXplKTsKKyAg
ICAgICAgICAgIHJlYWRlci5yZWFkRmlsZVBhdGgoV1RGTW92ZShhdHRhY2htZW50RmlsZVBhdGgp
LCBpbmZvLnByZWZlcnJlZFByZXNlbnRhdGlvblNpemUsIGNvbnRlbnRUeXBlKTsKICNlbmRpZgog
ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCBiYTk0YTdhMDQ2YWUzYmU0YWViZDM1YTE4MWNjY2NjNTg4MGQ3NmRkLi42YzFjYjIxMTUx
ZWRmMGRmNWVkMmYxMTBmMzcwNmFhMjhhYzQwNmY5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDUtMjggIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUmVz
cGVjdCBOU0l0ZW1Qcm92aWRlcidzIHJlZ2lzdGVyZWQgdHlwZXMgd2hlbiBkcm9wcGluZyBmaWxl
cyB0aGF0IGFyZSBsb2FkZWQgaW4tcGxhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5ODMxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTExODM3
NjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
cyBhIG5ldyBBUEkgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVuIGRyb3BwaW5nIGEgZmlsZSB0aGF0
IGlzIGxvYWRlZCBpbi1wbGFjZSB3aXRoIGEgZmlsZSBleHRlbnNpb24gdGhhdCBpcworICAgICAg
ICBub3QgYSAucG5nIChidXQgd2FzIHJlZ2lzdGVyZWQgdG8gdGhlIGl0ZW0gcHJvdmlkZXIgYXMg
InB1YmxpYy5wbmciKSwgdGhlIHJlc3VsdGluZyBhdHRhY2htZW50IGlzIGNvbnRhaW5lZCBpbgor
ICAgICAgICBhbiBpbWFnZSBlbGVtZW50LCBhbmQgdGhlIHJlc3VsdGluZyBhdHRhY2htZW50IGlu
Zm8gaW5kaWNhdGVzIHRoYXQgdGhlIGRyb3BwZWQgYXR0YWNobWVudCBpcyBhIHBuZyBmaWxlLgor
CisgICAgICAgIEFkZGl0aW9uYWxseSwgcmViYXNlbGluZSBzb21lIGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRU
ZXN0cy5tbToKKyAgICAgICAgKHJ1blRlc3RXaXRoVGVtcG9yYXJ5SW1hZ2VGaWxlKToKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE5LTA1LTI2ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIERyb3BwaW5nIGluIGFuIGVk
aXRhYmxlIGVsZW1lbnQgc2hvdWxkIHJlc3VsdCBpbiBhIHJhbmdlZCBzZWxlY3Rpb24KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50
VGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNo
bWVudFRlc3RzLm1tCmluZGV4IDEwOTExNmJjNGM2NzAwMWEwZWEyNmY2MzNkZDQwMGQ0MDM5MDY3
MzEuLmZkY2MwNzdlNmFkYmRmZmE5YWU5ZWFhYzQxNmIwZmFiMGEyY2QyMTIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1l
bnRUZXN0cy5tbQpAQCAtNDEwLDYgKzQxMCwyMCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFRl
bXBvcmFyeUZvbGRlcih2b2lkKF5ydW5UZXN0KShOU1VSTCAqZm9sZGVyVVJMKSkKICAgICB9CiB9
CiAKK3N0YXRpYyB2b2lkIHJ1blRlc3RXaXRoVGVtcG9yYXJ5SW1hZ2VGaWxlKE5TU3RyaW5nICpm
aWxlTmFtZSwgdm9pZChecnVuVGVzdCkoTlNVUkwgKmZpbGVVUkwpKQoreworICAgIE5TRmlsZU1h
bmFnZXIgKmRlZmF1bHRNYW5hZ2VyID0gW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdOwor
ICAgIGF1dG8gdGVtcG9yYXJ5RmlsZVBhdGggPSByZXRhaW5QdHIoW05TVGVtcG9yYXJ5RGlyZWN0
b3J5KCkgc3RyaW5nQnlBcHBlbmRpbmdQYXRoQ29tcG9uZW50OmZpbGVOYW1lXSk7CisgICAgYXV0
byB0ZW1wb3JhcnlGaWxlVVJMID0gcmV0YWluUHRyKFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6dGVt
cG9yYXJ5RmlsZVBhdGguZ2V0KCldKTsKKyAgICBbZGVmYXVsdE1hbmFnZXIgcmVtb3ZlSXRlbUF0
VVJMOnRlbXBvcmFyeUZpbGVVUkwuZ2V0KCkgZXJyb3I6bmlsXTsKKyAgICBbdGVzdEltYWdlRGF0
YSgpIHdyaXRlVG9GaWxlOnRlbXBvcmFyeUZpbGVQYXRoLmdldCgpIGF0b21pY2FsbHk6WUVTXTsK
KyAgICBAdHJ5IHsKKyAgICAgICAgcnVuVGVzdCh0ZW1wb3JhcnlGaWxlVVJMLmdldCgpKTsKKyAg
ICB9IEBmaW5hbGx5IHsKKyAgICAgICAgW2RlZmF1bHRNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0
ZW1wb3JhcnlGaWxlVVJMLmdldCgpIGVycm9yOm5pbF07CisgICAgfQorfQorCiBzdGF0aWMgdm9p
ZCBzaW11bGF0ZUZvbGRlckRyYWdXaXRoVVJMKERyYWdBbmREcm9wU2ltdWxhdG9yICpzaW11bGF0
b3IsIE5TVVJMICpmb2xkZXJVUkwpCiB7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtNzg5LDcgKzgw
Myw3IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHMsIERyb3BGb2xkZXJBc0F0dGFjaG1lbnRBbmRN
b3ZlQnlEcmFnZ2luZykKICAgICAgICAgVGVzdFdLV2ViVmlldyAqd2ViVmlldyA9IFtzaW11bGF0
b3Igd2ViVmlld107CiAgICAgICAgIGF1dG8gYXR0YWNobWVudCA9IHJldGFpblB0cihbc2ltdWxh
dG9yIGluc2VydGVkQXR0YWNobWVudHNdLmZpcnN0T2JqZWN0KTsKICAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKFthdHRhY2htZW50IHVuaXF1ZUlkZW50aWZpZXJdLCBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYXR0YWNobWVudCcp
LnVuaXF1ZUlkZW50aWZpZXIiXSk7Ci0gICAgICAgIEVYUEVDVF9XS19TVFJFUSgoX19icmlkZ2Ug
TlNTdHJpbmcgKilrVVRUeXBlRGlyZWN0b3J5LCBbd2ViVmlldyB2YWx1ZU9mQXR0cmlidXRlOkAi
dHlwZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CisgICAgICAgIEVYUEVDVF9X
S19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlRm9sZGVyLCBbd2ViVmlldyB2YWx1
ZU9mQXR0cmlidXRlOkAidHlwZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7CiAg
ICAgICAgIEVYUEVDVF9XS19TVFJFUShmb2xkZXJVUkwubGFzdFBhdGhDb21wb25lbnQsIFt3ZWJW
aWV3IHZhbHVlT2ZBdHRyaWJ1dGU6QCJ0aXRsZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1l
bnQiXSk7CiAKICAgICAgICAgTlNGaWxlV3JhcHBlciAqaW1hZ2UgPSBbYXR0YWNobWVudCBpbmZv
XS5maWxlV3JhcHBlci5maWxlV3JhcHBlcnNbQCJpbWFnZS5wbmciXTsKQEAgLTE3MDQsOSArMTcx
OCw5IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRSaWNoQW5kUGxh
aW5UZXh0RmlsZXNBc0F0dGFjaG1lbnRzKQogCiAgICAgW3dlYlZpZXcgZXhwZWN0RWxlbWVudENv
dW50OjIgcXVlcnlTZWxlY3RvcjpAIkFUVEFDSE1FTlQiXTsKICAgICBFWFBFQ1RfV0tfU1RSRVEo
ImhlbGxvLnJ0ZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0aXRs
ZScpIl0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC9ydGYiLCBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNo
bWVudCcpWzBdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOworICAgIEVYUEVDVF9XS19TVFJFUSgo
X19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlRmxhdFJURkQsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50
JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJ3b3Js
ZC50eHQiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndGl0bGUnKSJd
KTsKLSAgICBFWFBFQ1RfV0tfU1RSRVEoInRleHQvcGxhaW4iLCBbd2ViVmlldyBzdHJpbmdCeUV2
YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVu
dCcpWzFdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOworICAgIEVYUEVDVF9XS19TVFJFUSgoX19i
cmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlVVRGOFBsYWluVGV4dCwgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1l
bnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKIH0KIAogVEVTVChXS0F0dGFjaG1lbnRU
ZXN0c0lPUywgSW5zZXJ0RHJvcHBlZFppcEFyY2hpdmVBc0F0dGFjaG1lbnQpCkBAIC0xNzYzLDcg
KzE3NzcsNyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkSXRlbVBy
b3ZpZGVyc0luT3JkZXIpCiAgICAgW3dlYlZpZXcgZXhwZWN0RWxlbWVudFRhZ3NJbk9yZGVyOkBb
IEAiQVRUQUNITUVOVCIsIEAiQSIsIEAiQVRUQUNITUVOVCIgXV07CiAKICAgICBFWFBFQ1RfV0tf
U1RSRVEoImZpcnN0LnR4dCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRl
KCd0aXRsZScpIl0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC9wbGFpbiIsIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgRVhQRUNUX1dL
X1NUUkVRKChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0LCBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnYXR0YWNobWVudCcpWzBdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOwogICAgIEVYUEVDVF9X
S19TVFJFUShbYXBwbGVVUkwgYWJzb2x1dGVTdHJpbmddLCBbd2ViVmlldyB2YWx1ZU9mQXR0cmli
dXRlOkAiaHJlZiIgZm9yUXVlcnlTZWxlY3RvcjpAImEiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVR
KCJzZWNvbmQucGRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsxXS5nZXRBdHRyaWJ1dGUoJ3Rp
dGxlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NUUkVRKCJhcHBsaWNhdGlvbi9wZGYiLCBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOwpAQCAtMTk2Niw2ICsx
OTgwLDMyIEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydFBhc3RlZEZpbGVzQXNB
dHRhY2htZW50cykKICAgICBFWFBFQ1RfVFJVRShbd2ViVmlldyBjYW5QZXJmb3JtQWN0aW9uOkBz
ZWxlY3RvcihwYXN0ZTopIHdpdGhTZW5kZXI6bmlsXSk7CiB9CiAKK1RFU1QoV0tBdHRhY2htZW50
VGVzdHNJT1MsIEluc2VydERyb3BwZWRJbWFnZVdpdGhOb25JbWFnZUZpbGVFeHRlbnNpb24pCit7
CisgICAgcnVuVGVzdFdpdGhUZW1wb3JhcnlJbWFnZUZpbGUoQCJpbWFnZS5oZWxsbyIsIF4oTlNV
UkwgKmZpbGVVUkwpIHsKKyAgICAgICAgYXV0byBpdGVtID0gYWRvcHROUyhbW05TSXRlbVByb3Zp
ZGVyIGFsbG9jXSBpbml0XSk7CisgICAgICAgIFtpdGVtIHNldFN1Z2dlc3RlZE5hbWU6QCJpbWFn
ZS5oZWxsbyJdOworICAgICAgICBbaXRlbSByZWdpc3RlckZpbGVSZXByZXNlbnRhdGlvbkZvclR5
cGVJZGVudGlmaWVyOihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVQTkcgZmlsZU9wdGlvbnM6
TlNJdGVtUHJvdmlkZXJGaWxlT3B0aW9uT3BlbkluUGxhY2UgdmlzaWJpbGl0eTpOU0l0ZW1Qcm92
aWRlclJlcHJlc2VudGF0aW9uVmlzaWJpbGl0eUFsbCBsb2FkSGFuZGxlcjpeTlNQcm9ncmVzcyAq
KHZvaWQgKF5jYWxsYmFjaykoTlNVUkwgKiwgQk9PTCwgTlNFcnJvciAqKSkKKyAgICAgICAgewor
ICAgICAgICAgICAgY2FsbGJhY2soZmlsZVVSTCwgWUVTLCBuaWwpOworICAgICAgICAgICAgcmV0
dXJuIG5pbDsKKyAgICAgICAgfV07CisKKyAgICAgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0Zv
clRlc3RpbmdBdHRhY2htZW50cygpOworICAgICAgICBhdXRvIGRyYWdBbmREcm9wU2ltdWxhdG9y
ID0gYWRvcHROUyhbW0RyYWdBbmREcm9wU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6
d2ViVmlldy5nZXQoKV0pOworICAgICAgICBbZHJhZ0FuZERyb3BTaW11bGF0b3Igc2V0RXh0ZXJu
YWxJdGVtUHJvdmlkZXJzOkBbIGl0ZW0uZ2V0KCkgXV07CisgICAgICAgIFtkcmFnQW5kRHJvcFNp
bXVsYXRvciBydW5Gcm9tOkNHUG9pbnRaZXJvIHRvOkNHUG9pbnRNYWtlKDUwLCA1MCldOworCisg
ICAgICAgIEVYUEVDVF9FUSgxVSwgW2RyYWdBbmREcm9wU2ltdWxhdG9yIGluc2VydGVkQXR0YWNo
bWVudHNdLmNvdW50KTsKKyAgICAgICAgX1dLQXR0YWNobWVudCAqYXR0YWNobWVudCA9IFtkcmFn
QW5kRHJvcFNpbXVsYXRvciBpbnNlcnRlZEF0dGFjaG1lbnRzXS5maXJzdE9iamVjdDsKKyAgICAg
ICAgX1dLQXR0YWNobWVudEluZm8gKmluZm8gPSBhdHRhY2htZW50LmluZm87CisgICAgICAgIEVY
UEVDVF9XS19TVFJFUSgiaW1hZ2UvcG5nIiwgaW5mby5jb250ZW50VHlwZSk7CisgICAgICAgIEVY
UEVDVF9XS19TVFJFUSgiaW1hZ2UuaGVsbG8iLCBpbmZvLmZpbGVQYXRoLmxhc3RQYXRoQ29tcG9u
ZW50KTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJpbWFnZS5oZWxsbyIsIGluZm8ubmFtZSk7
CisgICAgICAgIFt3ZWJWaWV3IGV4cGVjdEVsZW1lbnRDb3VudDoxIHF1ZXJ5U2VsZWN0b3I6QCJJ
TUciXTsKKyAgICB9KTsKK30KKwogI2lmIEhBVkUoUEVOQ0lMS0lUKQogc3RhdGljIEJPT0wgZm9y
RWFjaFZpZXdJbkhpZXJhcmNoeShVSVZpZXcgKnZpZXcsIHZvaWQoXm1hcEZ1bmN0aW9uKShVSVZp
ZXcgKnN1YnZpZXcsIEJPT0wgKnN0b3ApKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370814</attachid>
            <date>2019-05-28 17:45:40 -0700</date>
            <delta_ts>2019-05-28 18:48:38 -0700</delta_ts>
            <desc>Fix macOS builds</desc>
            <filename>bug-198315-20190528174540.patch</filename>
            <type>text/plain</type>
            <size>18556</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJkNTRkNTNiNzJiNDUy
MDg0NDY3ZTg0ZDY3N2I4NDFiYmI2ZjQ1OS4uMjEwMjI0ZjQyNmMyZTlmZmFmNzQ3ZjdkYWRjNzZi
MWI5ZTExM2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA1LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlc3Bl
Y3QgTlNJdGVtUHJvdmlkZXIncyByZWdpc3RlcmVkIHR5cGVzIHdoZW4gZHJvcHBpbmcgZmlsZXMg
dGhhdCBhcmUgbG9hZGVkIGluLXBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTgzMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTgzNzYy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQ3VycmVudGx5
LCBsb2dpYyBpbiBQYXN0ZWJvYXJkSU9TLm1tIGFuZCBXZWJDb250ZW50UmVhZGVyQ29jb2EubW0g
YXR0ZW1wdHMgdG8gZGVkdWNlIHRoZSBjb250ZW50IHR5cGUgZnJvbSB0aGUKKyAgICAgICAgZmls
ZSBwYXRoIHdoZW4gZHJvcHBpbmcgYXR0YWNobWVudHMgb24gaU9TLiBJbnN0ZWFkLCB3ZSBzaG91
bGQgYmUgcGx1bWJpbmcgdGhlIGNvbnRlbnQgdHlwZSB0aHJvdWdoIHRvIHRoZQorICAgICAgICBy
ZWFkZXIuCisKKyAgICAgICAgVGVzdDogV0tBdHRhY2htZW50VGVzdHNJT1MuSW5zZXJ0RHJvcHBl
ZEltYWdlV2l0aE5vbkltYWdlRmlsZUV4dGVuc2lvbgorCisgICAgICAgICogZWRpdGluZy9XZWJD
b250ZW50UmVhZGVyLmg6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVy
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQpOgor
CisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoaWNoIHR5cGUgdG8g
dXNlIGluIGF0dGFjaG1lbnQgZWxlbWVudHMuIFRoaXMgbWFrZXMgdGhlIHBhc3RlCisgICAgICAg
IChhdHRhY2htZW50Rm9yRGF0YSkgYW5kIGRyb3AgKGF0dGFjaG1lbnRGb3JGaWxlUGF0aHMpIGJl
aGF2ZSB0aGUgc2FtZSB3YXksIHdpdGggcmVzcGVjdCB0byB0aGUgdHlwZSBhdHRyaWJ1dGUKKyAg
ICAgICAgdXNlZCB0byByZXByZXNlbnQgdGhlIGF0dGFjaG1lbnQuCisKKyAgICAgICAgKFdlYkNv
cmU6OmF0dGFjaG1lbnRGb3JGaWxlUGF0aCk6CisKKyAgICAgICAgVXNlIHRoZSBjb250ZW50IHR5
cGUsIGlmIHNwZWNpZmllZDsgb3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gZGVkdWNpbmcgaXQgZnJv
bSB0aGUgZmlsZSBwYXRoLgorCisgICAgICAgIChXZWJDb3JlOjphdHRhY2htZW50Rm9yRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgpOgorICAg
ICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmRXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgpOgorCisgICAgICAgIFBhc3MgdGhlIGhp
Z2hlc3QgZmlkZWxpdHkgcmVwcmVzZW50YXRpb24ncyBjb250ZW50IHR5cGUgdG8gdGhlIHdlYiBj
b250ZW50IHJlYWRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZFJlc3BlY3RpbmdVVElGaWRlbGl0
aWVzKToKKwogMjAxOS0wNS0yOCAgU2hhd24gUm9iZXJ0cyAgPHNyb2JlcnRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1NDc1LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJDb250ZW50UmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIuaAppbmRleCA5Yzk2NDEwMjlkNjEyMzQ0NWNmZTU4
ZTZlNTcwZTI4MzcwOTYyNTAxLi4yYjllOTk5OTljYjc3ODU5MWE2MGFjMGQzZDk2YWViYmFhZGVm
MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIuaApAQCAtNzEs
NyArNzEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJv
b2wgcmVhZFdlYkFyY2hpdmUoU2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZWFk
RmlsZVBhdGgoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJyZWRQcmVz
ZW50YXRpb25TaXplID0geyB9KSBvdmVycmlkZTsKKyAgICBib29sIHJlYWRGaWxlUGF0aChjb25z
dCBTdHJpbmcmLCBPcHRpb25hbDxGbG9hdFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUg
PSB7IH0sIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUgPSB7IH0pIG92ZXJyaWRlOwogICAgIGJv
b2wgcmVhZEZpbGVQYXRocyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIG92ZXJyaWRlOwogICAgIGJv
b2wgcmVhZEhUTUwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkUlRGRChT
aGFyZWRCdWZmZXImKSBvdmVycmlkZTsKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHJlYWRXZWJBcmNoaXZlKFNoYXJlZEJ1
ZmZlciYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVhZEZpbGVQYXRoKGNvbnN0IFN0cmluZyYsIE9w
dGlvbmFsPEZsb2F0U2l6ZT4gPSB7IH0pIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCByZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8RmxvYXRTaXplPiA9IHsg
fSwgY29uc3QgU3RyaW5nJiA9IHsgfSkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBi
b29sIHJlYWRGaWxlUGF0aHMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgcmVhZEhUTUwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCByZWFkUlRGRChTaGFyZWRCdWZmZXImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KaW5kZXgg
NTMyYTg0YTljNDVlMWYyNDQ2MGRhMjU3NTg5Mzk4MTViMDhhODI1Mi4uYmU4NWIwYWIzMGEzYmE3
ODczZDZhYWJjNjBiYTU0YWIzMzRmMjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KQEAgLTY5NSw3ICs2OTUsMTYg
QEAgYm9vbCBXZWJDb250ZW50UmVhZGVyOjpyZWFkSW1hZ2UoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBi
dWZmZXIsIGNvbnN0IFN0cmluZyYgdHlwZSwKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1F
TlQpCiAKLXN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JGaWxlUGF0aChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcGF0aCwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJy
ZWRTaXplKQorc3RhdGljIFN0cmluZyB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQoY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICBpZiAoY29udGVudFR5cGUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBtaW1lVHlwZSA9IG1pbWVUeXBlRnJvbUNvbnRl
bnRUeXBlKGNvbnRlbnRUeXBlKTsKKyAgICByZXR1cm4gbWltZVR5cGUuaXNFbXB0eSgpID8gY29u
dGVudFR5cGUgOiBtaW1lVHlwZTsKK30KKworc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNo
bWVudEZvckZpbGVQYXRoKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBPcHRpb25h
bDxGbG9hdFNpemU+IHByZWZlcnJlZFNpemUsIGNvbnN0IFN0cmluZyYgZXhwbGljaXRDb250ZW50
VHlwZSkKIHsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqZnJhbWUuZG9jdW1lbnQoKSk7
CiAgICAgYXV0byBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoSFRN
TE5hbWVzOjphdHRhY2htZW50VGFnLCBkb2N1bWVudCk7CkBAIC03MDQsMTcgKzcxMywyMyBAQCBz
dGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50Rm9yRmlsZVBhdGgoRnJhbWUmIGZyYW1l
LCBjb25zdCBTdHJpbmcmIHBhdGgsCiAgICAgICAgIHJldHVybiBhdHRhY2htZW50OwogICAgIH0K
IAotICAgIFN0cmluZyBjb250ZW50VHlwZTsKKyAgICBib29sIGlzRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KHBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJv
bGljTGlua3M6Olllcyk7CisgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gdHlwZUZvckF0dGFjaG1l
bnRFbGVtZW50KGV4cGxpY2l0Q29udGVudFR5cGUpOworICAgIGlmIChjb250ZW50VHlwZS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKGlzRGlyZWN0b3J5KQorICAgICAgICAgICAgY29udGVudFR5
cGUgPSBrVVRUeXBlRGlyZWN0b3J5OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNvbnRl
bnRUeXBlID0gRmlsZTo6Y29udGVudFR5cGVGb3JGaWxlKHBhdGgpOworICAgICAgICAgICAgaWYg
KGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZW50VHlwZSA9IGtV
VFR5cGVEYXRhOworICAgICAgICB9CisgICAgfQorCiAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZp
bGVTaXplRm9yRGlzcGxheTsKLSAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KHBh
dGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykpCi0gICAgICAg
IGNvbnRlbnRUeXBlID0ga1VUVHlwZURpcmVjdG9yeTsKLSAgICBlbHNlIHsKKyAgICBpZiAoIWlz
RGlyZWN0b3J5KSB7CiAgICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKICAgICAgICAgRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUocGF0aCwgZmlsZVNpemUpOwogICAgICAgICBmaWxlU2l6ZUZvckRp
c3BsYXkgPSBmaWxlU2l6ZTsKLSAgICAgICAgY29udGVudFR5cGUgPSBGaWxlOjpjb250ZW50VHlw
ZUZvckZpbGUocGF0aCk7Ci0gICAgICAgIGlmIChjb250ZW50VHlwZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBjb250ZW50VHlwZSA9IGtVVFR5cGVEYXRhOwogICAgIH0KIAogICAgIGZyYW1lLmVk
aXRvcigpLnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIoYXR0YWNobWVudC0+ZW5zdXJlVW5p
cXVlSWRlbnRpZmllcigpLCBjb250ZW50VHlwZSwgcGF0aCk7CkBAIC03MzgsOCArNzUzLDcgQEAg
c3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBT
aGFyZWRCdWZmZXImIGJ1ZmZlciwgY28KIHsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigq
ZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgYXV0byBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRF
bGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjphdHRhY2htZW50VGFnLCBkb2N1bWVudCk7Ci0gICAg
YXV0byBtaW1lVHlwZSA9IG1pbWVUeXBlRnJvbUNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKLSAg
ICBhdXRvIHR5cGVGb3JBdHRhY2htZW50RWxlbWVudCA9IG1pbWVUeXBlLmlzRW1wdHkoKSA/IGNv
bnRlbnRUeXBlIDogbWltZVR5cGU7CisgICAgYXV0byBhdHRhY2htZW50VHlwZSA9IHR5cGVGb3JB
dHRhY2htZW50RWxlbWVudChjb250ZW50VHlwZSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGluc3RlYWQgYXNrIENvcmVTZXJ2aWNlcyBmb3IgYSBwcmVmZXJyZWQgbmFtZSBjb3JyZXNwb25k
aW5nIHRvIHRoZSBnaXZlbiBjb250ZW50IHR5cGUuCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRl
ZmF1bHRBdHRhY2htZW50TmFtZSA9ICJmaWxlIjsKQEAgLTc1MSwxNSArNzY1LDE1IEBAIHN0YXRp
YyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgU2hhcmVk
QnVmZmVyJiBidWZmZXIsIGNvCiAgICAgICAgIGZpbGVOYW1lID0gbmFtZTsKIAogICAgIGlmICgh
c3VwcG9ydHNDbGllbnRTaWRlQXR0YWNobWVudERhdGEoZnJhbWUpKSB7Ci0gICAgICAgIGF0dGFj
aG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUo
dHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KSksIGZpbGVOYW1lKSk7CisgICAgICAgIGF0dGFjaG1l
bnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUoYXR0
YWNobWVudFR5cGUpKSwgZmlsZU5hbWUpKTsKICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQ7CiAg
ICAgfQogCi0gICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllcihh
dHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCksIHR5cGVGb3JBdHRhY2htZW50RWxl
bWVudCwgZmlsZU5hbWUsIGJ1ZmZlcik7CisgICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJBdHRh
Y2htZW50SWRlbnRpZmllcihhdHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCksIGF0
dGFjaG1lbnRUeXBlLCBmaWxlTmFtZSwgYnVmZmVyKTsKIAotICAgIGlmIChjb250ZW50VHlwZUlz
U3VpdGFibGVGb3JJbmxpbmVJbWFnZVJlcHJlc2VudGF0aW9uKHR5cGVGb3JBdHRhY2htZW50RWxl
bWVudCkpIHsKKyAgICBpZiAoY29udGVudFR5cGVJc1N1aXRhYmxlRm9ySW5saW5lSW1hZ2VSZXBy
ZXNlbnRhdGlvbihhdHRhY2htZW50VHlwZSkpIHsKICAgICAgICAgYXV0byBpbWFnZSA9IEhUTUxJ
bWFnZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGltYWdlLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwgRE9NVVJMOjpjcmVh
dGVPYmplY3RVUkwoZG9jdW1lbnQsIEZpbGU6OmNyZWF0ZShCbG9iOjpjcmVhdGUoYnVmZmVyLCBX
VEZNb3ZlKHR5cGVGb3JBdHRhY2htZW50RWxlbWVudCkpLCBXVEZNb3ZlKGZpbGVOYW1lKSkpKTsK
KyAgICAgICAgaW1hZ2UtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5h
bWVzOjpzcmNBdHRyLCBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChkb2N1bWVudCwgRmlsZTo6Y3Jl
YXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUoYXR0YWNobWVudFR5cGUpKSwgV1RGTW92
ZShmaWxlTmFtZSkpKSk7CiAgICAgICAgIGltYWdlLT5zZXRBdHRhY2htZW50RWxlbWVudChXVEZN
b3ZlKGF0dGFjaG1lbnQpKTsKICAgICAgICAgaWYgKHByZWZlcnJlZFNpemUpIHsKICAgICAgICAg
ICAgIGltYWdlLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
d2lkdGhBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJlcihwcmVmZXJyZWRTaXplLT53aWR0aCgpKSk7
CkBAIC03NjgsMTMgKzc4MiwxMyBAQCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50
Rm9yRGF0YShGcmFtZSYgZnJhbWUsIFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBjbwogICAgICAgICBy
ZXR1cm4gaW1hZ2U7CiAgICAgfQogCi0gICAgYXR0YWNobWVudC0+dXBkYXRlQXR0cmlidXRlcyh7
IGJ1ZmZlci5zaXplKCkgfSwgV1RGTW92ZSh0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQpLCBXVEZN
b3ZlKGZpbGVOYW1lKSk7CisgICAgYXR0YWNobWVudC0+dXBkYXRlQXR0cmlidXRlcyh7IGJ1ZmZl
ci5zaXplKCkgfSwgV1RGTW92ZShhdHRhY2htZW50VHlwZSksIFdURk1vdmUoZmlsZU5hbWUpKTsK
ICAgICByZXR1cm4gYXR0YWNobWVudDsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAKLWJvb2wgV2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXpl
KQorYm9vbCBXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
LCBPcHRpb25hbDxGbG9hdFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8ICFmcmFtZS5k
b2N1bWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03ODUsNyArNzk5LDcgQEAgYm9v
bCBXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBPcHRp
b25hbDxGbG9hdFNpemU+IHByZWYKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVu
dEVsZW1lbnRFbmFibGVkKCkpCi0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhdHRhY2ht
ZW50Rm9yRmlsZVBhdGgoZnJhbWUsIHBhdGgsIHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUpKTsK
KyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGF0dGFjaG1lbnRGb3JGaWxlUGF0aChmcmFt
ZSwgcGF0aCwgcHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSwgY29udGVudFR5cGUpKTsKICNlbmRp
ZgogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5k
ZXggNjQ3ZGM1ZmM0YTliYjBkOWI0MzVlYzE4MWM0ZTUyMzZmY2MxZGMxMC4uOTdlZWIxZjUxMGZj
YzNiMTZkMmZlYTBlNzdhNDBmYmQ1OWExOWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaApAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHZpcnR1YWwgYm9vbCByZWFkV2ViQXJjaGl2ZShTaGFyZWRCdWZmZXImKSA9IDA7Ci0g
ICAgdmlydHVhbCBib29sIHJlYWRGaWxlUGF0aChjb25zdCBTdHJpbmcmLCBPcHRpb25hbDxGbG9h
dFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUgPSB7IH0pID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgcmVhZEZpbGVQYXRoKGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJl
ZmVycmVkUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9
IHsgfSkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkRmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkSFRNTChjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHJlYWRSVEZEKFNoYXJlZEJ1ZmZlciYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggNDE2Mjk1Njc3
ZjdhZWYyZDNiOGRhYjFlZDZlNDc3N2Y5NzJkM2VhNS4uOGUwMDVjYWI1MWFiYzNkNjMxY2Q1NGIz
ZjMxZDAzMzhjYThmNWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3Rl
Ym9hcmRJT1MubW0KQEAgLTM0NSw5ICszNDUsMTAgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkUmVz
cGVjdGluZ1VUSUZpZGVsaXRpZXMoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImIHJlYWRlciwK
ICAgICAgICAgYXV0byBpbmZvID0gc3RyYXRlZ3kuaW5mb3JtYXRpb25Gb3JJdGVtQXRJbmRleChp
bmRleCwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIGF1dG8gYXR0YWNobWVudEZpbGVQYXRo
ID0gaW5mby5wYXRoRm9ySGlnaGVzdEZpZGVsaXR5SXRlbSgpOwogICAgICAgICBib29sIGNhblJl
YWRBdHRhY2htZW50ID0gcG9saWN5ID09IFdlYkNvbnRlbnRSZWFkaW5nUG9saWN5OjpBbnlUeXBl
ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVudEVs
ZW1lbnRFbmFibGVkKCkgJiYgIWF0dGFjaG1lbnRGaWxlUGF0aC5pc0VtcHR5KCk7CisgICAgICAg
IGF1dG8gY29udGVudFR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5SXRl
bSgpOwogICAgICAgICBpZiAoY2FuUmVhZEF0dGFjaG1lbnQgJiYgcHJlZmVyc0F0dGFjaG1lbnRS
ZXByZXNlbnRhdGlvbihpbmZvKSkgewotICAgICAgICAgICAgcmVhZFVSTEFsb25nc2lkZUF0dGFj
aG1lbnRJZk5lY2Vzc2FyeShyZWFkZXIsIHN0cmF0ZWd5LCBpbmZvLmNvbnRlbnRUeXBlRm9ySGln
aGVzdEZpZGVsaXR5SXRlbSgpLCBtX3Bhc3RlYm9hcmROYW1lLCBpbmRleCk7Ci0gICAgICAgICAg
ICByZWFkZXIucmVhZEZpbGVQYXRoKFdURk1vdmUoYXR0YWNobWVudEZpbGVQYXRoKSwgaW5mby5w
cmVmZXJyZWRQcmVzZW50YXRpb25TaXplKTsKKyAgICAgICAgICAgIHJlYWRVUkxBbG9uZ3NpZGVB
dHRhY2htZW50SWZOZWNlc3NhcnkocmVhZGVyLCBzdHJhdGVneSwgY29udGVudFR5cGUsIG1fcGFz
dGVib2FyZE5hbWUsIGluZGV4KTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkRmlsZVBhdGgoV1RG
TW92ZShhdHRhY2htZW50RmlsZVBhdGgpLCBpbmZvLnByZWZlcnJlZFByZXNlbnRhdGlvblNpemUs
IGNvbnRlbnRUeXBlKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYK
QEAgLTM2Niw3ICszNjcsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWRSZXNwZWN0aW5nVVRJRmlk
ZWxpdGllcyhQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYgcmVhZGVyLAogICAgICAgICB9CiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgaWYgKGNhblJlYWRBdHRhY2ht
ZW50ICYmIHJlc3VsdCA9PSBSZWFkZXJSZXN1bHQ6OkRpZE5vdFJlYWRUeXBlKQotICAgICAgICAg
ICAgcmVhZGVyLnJlYWRGaWxlUGF0aChXVEZNb3ZlKGF0dGFjaG1lbnRGaWxlUGF0aCksIGluZm8u
cHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSk7CisgICAgICAgICAgICByZWFkZXIucmVhZEZpbGVQ
YXRoKFdURk1vdmUoYXR0YWNobWVudEZpbGVQYXRoKSwgaW5mby5wcmVmZXJyZWRQcmVzZW50YXRp
b25TaXplLCBjb250ZW50VHlwZSk7CiAjZW5kaWYKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTY4ZTU1ZGU2NjdkMGQ3ZTA1Nzdk
ZjkwYTJkMGFjNjRlZjQ0OGM0ZC4uY2NhMmI4OTAzOWU3OGUxN2RkY2ViNWZjOTA4ZjM1ZDg4NmU3
MGQzZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE5LTA1LTI4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlc3BlY3QgTlNJdGVtUHJvdmlkZXIncyByZWdp
c3RlcmVkIHR5cGVzIHdoZW4gZHJvcHBpbmcgZmlsZXMgdGhhdCBhcmUgbG9hZGVkIGluLXBsYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgzMTUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTgzNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdCB0byB2ZXJpZnkgdGhh
dCB3aGVuIGRyb3BwaW5nIGEgZmlsZSB0aGF0IGlzIGxvYWRlZCBpbi1wbGFjZSB3aXRoIGEgZmls
ZSBleHRlbnNpb24gdGhhdCBpcworICAgICAgICBub3QgYSAucG5nIChidXQgd2FzIHJlZ2lzdGVy
ZWQgdG8gdGhlIGl0ZW0gcHJvdmlkZXIgYXMgInB1YmxpYy5wbmciKSwgdGhlIHJlc3VsdGluZyBh
dHRhY2htZW50IGlzIGNvbnRhaW5lZCBpbgorICAgICAgICBhbiBpbWFnZSBlbGVtZW50LCBhbmQg
dGhlIHJlc3VsdGluZyBhdHRhY2htZW50IGluZm8gaW5kaWNhdGVzIHRoYXQgdGhlIGRyb3BwZWQg
YXR0YWNobWVudCBpcyBhIHBuZyBmaWxlLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgcmViYXNl
bGluZSBzb21lIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbToKKyAgICAgICAgKHJ1blRlc3RXaXRo
VGVtcG9yYXJ5SW1hZ2VGaWxlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDE5LTA1LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNYWNPU10gRmlsdGVyIEdWQSB3YXJuaW5nIGxvZ2dlZCB0byBzdGRvdXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVz
dHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVu
dFRlc3RzLm1tCmluZGV4IDEwOTExNmJjNGM2NzAwMWEwZWEyNmY2MzNkZDQwMGQ0MDM5MDY3MzEu
LmQ4ZjFiYjJkZWUzNzI3YTMxZTkxYjc5MTBhZTJiNjZjOTU5NzYyZDIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRU
ZXN0cy5tbQpAQCAtNDEwLDYgKzQxMCwyNCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFRlbXBv
cmFyeUZvbGRlcih2b2lkKF5ydW5UZXN0KShOU1VSTCAqZm9sZGVyVVJMKSkKICAgICB9CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFRlbXBv
cmFyeUltYWdlRmlsZShOU1N0cmluZyAqZmlsZU5hbWUsIHZvaWQoXnJ1blRlc3QpKE5TVVJMICpm
aWxlVVJMKSkKK3sKKyAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0TWFuYWdlciA9IFtOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBhdXRvIHRlbXBvcmFyeUZpbGVQYXRoID0gcmV0
YWluUHRyKFtOU1RlbXBvcmFyeURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpmaWxlTmFtZV0pOworICAgIGF1dG8gdGVtcG9yYXJ5RmlsZVVSTCA9IHJldGFpblB0cihb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRlbXBvcmFyeUZpbGVQYXRoLmdldCgpXSk7CisgICAgW2Rl
ZmF1bHRNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0ZW1wb3JhcnlGaWxlVVJMLmdldCgpIGVycm9y
Om5pbF07CisgICAgW3Rlc3RJbWFnZURhdGEoKSB3cml0ZVRvRmlsZTp0ZW1wb3JhcnlGaWxlUGF0
aC5nZXQoKSBhdG9taWNhbGx5OllFU107CisgICAgQHRyeSB7CisgICAgICAgIHJ1blRlc3QodGVt
cG9yYXJ5RmlsZVVSTC5nZXQoKSk7CisgICAgfSBAZmluYWxseSB7CisgICAgICAgIFtkZWZhdWx0
TWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVtcG9yYXJ5RmlsZVVSTC5nZXQoKSBlcnJvcjpuaWxd
OworICAgIH0KK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKIHN0YXRpYyB2
b2lkIHNpbXVsYXRlRm9sZGVyRHJhZ1dpdGhVUkwoRHJhZ0FuZERyb3BTaW11bGF0b3IgKnNpbXVs
YXRvciwgTlNVUkwgKmZvbGRlclVSTCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC03ODksNyAr
ODA3LDcgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0cywgRHJvcEZvbGRlckFzQXR0YWNobWVudEFu
ZE1vdmVCeURyYWdnaW5nKQogICAgICAgICBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3ID0gW3NpbXVs
YXRvciB3ZWJWaWV3XTsKICAgICAgICAgYXV0byBhdHRhY2htZW50ID0gcmV0YWluUHRyKFtzaW11
bGF0b3IgaW5zZXJ0ZWRBdHRhY2htZW50c10uZmlyc3RPYmplY3QpOwogICAgICAgICBFWFBFQ1Rf
V0tfU1RSRVEoW2F0dGFjaG1lbnQgdW5pcXVlSWRlbnRpZmllcl0sIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdhdHRhY2htZW50
JykudW5pcXVlSWRlbnRpZmllciJdKTsKLSAgICAgICAgRVhQRUNUX1dLX1NUUkVRKChfX2JyaWRn
ZSBOU1N0cmluZyAqKWtVVFR5cGVEaXJlY3RvcnksIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6
QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGb2xkZXIsIFt3ZWJWaWV3IHZh
bHVlT2ZBdHRyaWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsK
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKGZvbGRlclVSTC5sYXN0UGF0aENvbXBvbmVudCwgW3dl
YlZpZXcgdmFsdWVPZkF0dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNo
bWVudCJdKTsKIAogICAgICAgICBOU0ZpbGVXcmFwcGVyICppbWFnZSA9IFthdHRhY2htZW50IGlu
Zm9dLmZpbGVXcmFwcGVyLmZpbGVXcmFwcGVyc1tAImltYWdlLnBuZyJdOwpAQCAtMTcwNCw5ICsx
NzIyLDkgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZFJpY2hBbmRQ
bGFpblRleHRGaWxlc0FzQXR0YWNobWVudHMpCiAKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50
Q291bnQ6MiBxdWVyeVNlbGVjdG9yOkAiQVRUQUNITUVOVCJdOwogICAgIEVYUEVDVF9XS19TVFJF
USgiaGVsbG8ucnRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3Rp
dGxlJykiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3J0ZiIsIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRh
Y2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVR
KChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGbGF0UlRGRCwgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1l
bnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIndv
cmxkLnR4dCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0aXRsZScp
Il0pOwotICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC9wbGFpbiIsIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2ht
ZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKChf
X2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0LCBbd2ViVmlldyBzdHJpbmdC
eUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNo
bWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOwogfQogCiBURVNUKFdLQXR0YWNobWVu
dFRlc3RzSU9TLCBJbnNlcnREcm9wcGVkWmlwQXJjaGl2ZUFzQXR0YWNobWVudCkKQEAgLTE3NjMs
NyArMTc4MSw3IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRJdGVt
UHJvdmlkZXJzSW5PcmRlcikKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6
QFsgQCJBVFRBQ0hNRU5UIiwgQCJBIiwgQCJBVFRBQ0hNRU5UIiBdXTsKIAogICAgIEVYUEVDVF9X
S19TVFJFUSgiZmlyc3QudHh0IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1
dGUoJ3RpdGxlJykiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3BsYWluIiwgW3dlYlZp
ZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKKyAgICBFWFBFQ1Rf
V0tfU1RSRVEoKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdhdHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CiAgICAgRVhQRUNU
X1dLX1NUUkVRKFthcHBsZVVSTCBhYnNvbHV0ZVN0cmluZ10sIFt3ZWJWaWV3IHZhbHVlT2ZBdHRy
aWJ1dGU6QCJocmVmIiBmb3JRdWVyeVNlbGVjdG9yOkAiYSJdKTsKICAgICBFWFBFQ1RfV0tfU1RS
RVEoInNlY29uZC5wZGYiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAi
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgn
dGl0bGUnKSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImFwcGxpY2F0aW9uL3BkZiIsIFt3ZWJW
aWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CkBAIC0xOTY2LDYg
KzE5ODQsMzIgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkRmlsZXNB
c0F0dGFjaG1lbnRzKQogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGNhblBlcmZvcm1BY3Rpb246
QHNlbGVjdG9yKHBhc3RlOikgd2l0aFNlbmRlcjpuaWxdKTsKIH0KIAorVEVTVChXS0F0dGFjaG1l
bnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZEltYWdlV2l0aE5vbkltYWdlRmlsZUV4dGVuc2lvbikK
K3sKKyAgICBydW5UZXN0V2l0aFRlbXBvcmFyeUltYWdlRmlsZShAImltYWdlLmhlbGxvIiwgXihO
U1VSTCAqZmlsZVVSTCkgeworICAgICAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtbTlNJdGVtUHJv
dmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgW2l0ZW0gc2V0U3VnZ2VzdGVkTmFtZTpAImlt
YWdlLmhlbGxvIl07CisgICAgICAgIFtpdGVtIHJlZ2lzdGVyRmlsZVJlcHJlc2VudGF0aW9uRm9y
VHlwZUlkZW50aWZpZXI6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBORyBmaWxlT3B0aW9u
czpOU0l0ZW1Qcm92aWRlckZpbGVPcHRpb25PcGVuSW5QbGFjZSB2aXNpYmlsaXR5Ok5TSXRlbVBy
b3ZpZGVyUmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVyOl5OU1Byb2dyZXNz
ICoodm9pZCAoXmNhbGxiYWNrKShOU1VSTCAqLCBCT09MLCBOU0Vycm9yICopKQorICAgICAgICB7
CisgICAgICAgICAgICBjYWxsYmFjayhmaWxlVVJMLCBZRVMsIG5pbCk7CisgICAgICAgICAgICBy
ZXR1cm4gbmlsOworICAgICAgICB9XTsKKworICAgICAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3
Rm9yVGVzdGluZ0F0dGFjaG1lbnRzKCk7CisgICAgICAgIGF1dG8gZHJhZ0FuZERyb3BTaW11bGF0
b3IgPSBhZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmll
dzp3ZWJWaWV3LmdldCgpXSk7CisgICAgICAgIFtkcmFnQW5kRHJvcFNpbXVsYXRvciBzZXRFeHRl
cm5hbEl0ZW1Qcm92aWRlcnM6QFsgaXRlbS5nZXQoKSBdXTsKKyAgICAgICAgW2RyYWdBbmREcm9w
U2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludFplcm8gdG86Q0dQb2ludE1ha2UoNTAsIDUwKV07CisK
KyAgICAgICAgRVhQRUNUX0VRKDFVLCBbZHJhZ0FuZERyb3BTaW11bGF0b3IgaW5zZXJ0ZWRBdHRh
Y2htZW50c10uY291bnQpOworICAgICAgICBfV0tBdHRhY2htZW50ICphdHRhY2htZW50ID0gW2Ry
YWdBbmREcm9wU2ltdWxhdG9yIGluc2VydGVkQXR0YWNobWVudHNdLmZpcnN0T2JqZWN0OworICAg
ICAgICBfV0tBdHRhY2htZW50SW5mbyAqaW5mbyA9IGF0dGFjaG1lbnQuaW5mbzsKKyAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKCJpbWFnZS9wbmciLCBpbmZvLmNvbnRlbnRUeXBlKTsKKyAgICAgICAg
RVhQRUNUX1dLX1NUUkVRKCJpbWFnZS5oZWxsbyIsIGluZm8uZmlsZVBhdGgubGFzdFBhdGhDb21w
b25lbnQpOworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoImltYWdlLmhlbGxvIiwgaW5mby5uYW1l
KTsKKyAgICAgICAgW3dlYlZpZXcgZXhwZWN0RWxlbWVudENvdW50OjEgcXVlcnlTZWxlY3RvcjpA
IklNRyJdOworICAgIH0pOworfQorCiAjaWYgSEFWRShQRU5DSUxLSVQpCiBzdGF0aWMgQk9PTCBm
b3JFYWNoVmlld0luSGllcmFyY2h5KFVJVmlldyAqdmlldywgdm9pZChebWFwRnVuY3Rpb24pKFVJ
VmlldyAqc3VidmlldywgQk9PTCAqc3RvcCkpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370820</attachid>
            <date>2019-05-28 18:48:39 -0700</date>
            <delta_ts>2019-05-28 19:56:15 -0700</delta_ts>
            <desc>Adjust a test for macOS</desc>
            <filename>bug-198315-20190528184838.patch</filename>
            <type>text/plain</type>
            <size>18721</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1ODMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGJkNTRkNTNiNzJiNDUy
MDg0NDY3ZTg0ZDY3N2I4NDFiYmI2ZjQ1OS4uMjEwMjI0ZjQyNmMyZTlmZmFmNzQ3ZjdkYWRjNzZi
MWI5ZTExM2RlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA1LTI4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlc3Bl
Y3QgTlNJdGVtUHJvdmlkZXIncyByZWdpc3RlcmVkIHR5cGVzIHdoZW4gZHJvcHBpbmcgZmlsZXMg
dGhhdCBhcmUgbG9hZGVkIGluLXBsYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTgzMTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTgzNzYy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQ3VycmVudGx5
LCBsb2dpYyBpbiBQYXN0ZWJvYXJkSU9TLm1tIGFuZCBXZWJDb250ZW50UmVhZGVyQ29jb2EubW0g
YXR0ZW1wdHMgdG8gZGVkdWNlIHRoZSBjb250ZW50IHR5cGUgZnJvbSB0aGUKKyAgICAgICAgZmls
ZSBwYXRoIHdoZW4gZHJvcHBpbmcgYXR0YWNobWVudHMgb24gaU9TLiBJbnN0ZWFkLCB3ZSBzaG91
bGQgYmUgcGx1bWJpbmcgdGhlIGNvbnRlbnQgdHlwZSB0aHJvdWdoIHRvIHRoZQorICAgICAgICBy
ZWFkZXIuCisKKyAgICAgICAgVGVzdDogV0tBdHRhY2htZW50VGVzdHNJT1MuSW5zZXJ0RHJvcHBl
ZEltYWdlV2l0aE5vbkltYWdlRmlsZUV4dGVuc2lvbgorCisgICAgICAgICogZWRpdGluZy9XZWJD
b250ZW50UmVhZGVyLmg6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVy
Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjp0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQpOgor
CisgICAgICAgIEFkZCBhIGhlbHBlciBtZXRob2QgdG8gZGV0ZXJtaW5lIHdoaWNoIHR5cGUgdG8g
dXNlIGluIGF0dGFjaG1lbnQgZWxlbWVudHMuIFRoaXMgbWFrZXMgdGhlIHBhc3RlCisgICAgICAg
IChhdHRhY2htZW50Rm9yRGF0YSkgYW5kIGRyb3AgKGF0dGFjaG1lbnRGb3JGaWxlUGF0aHMpIGJl
aGF2ZSB0aGUgc2FtZSB3YXksIHdpdGggcmVzcGVjdCB0byB0aGUgdHlwZSBhdHRyaWJ1dGUKKyAg
ICAgICAgdXNlZCB0byByZXByZXNlbnQgdGhlIGF0dGFjaG1lbnQuCisKKyAgICAgICAgKFdlYkNv
cmU6OmF0dGFjaG1lbnRGb3JGaWxlUGF0aCk6CisKKyAgICAgICAgVXNlIHRoZSBjb250ZW50IHR5
cGUsIGlmIHNwZWNpZmllZDsgb3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8gZGVkdWNpbmcgaXQgZnJv
bSB0aGUgZmlsZSBwYXRoLgorCisgICAgICAgIChXZWJDb3JlOjphdHRhY2htZW50Rm9yRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgpOgorICAg
ICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9h
cmRXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgpOgorCisgICAgICAgIFBhc3MgdGhlIGhp
Z2hlc3QgZmlkZWxpdHkgcmVwcmVzZW50YXRpb24ncyBjb250ZW50IHR5cGUgdG8gdGhlIHdlYiBj
b250ZW50IHJlYWRlci4KKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZFJlc3BlY3RpbmdVVElGaWRlbGl0
aWVzKToKKwogMjAxOS0wNS0yOCAgU2hhd24gUm9iZXJ0cyAgPHNyb2JlcnRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ1NDc1LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9XZWJDb250ZW50UmVhZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIuaAppbmRleCA5Yzk2NDEwMjlkNjEyMzQ0NWNmZTU4
ZTZlNTcwZTI4MzcwOTYyNTAxLi4yYjllOTk5OTljYjc3ODU5MWE2MGFjMGQzZDk2YWViYmFhZGVm
MWM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1dlYkNvbnRlbnRSZWFkZXIuaApAQCAtNzEs
NyArNzEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGJv
b2wgcmVhZFdlYkFyY2hpdmUoU2hhcmVkQnVmZmVyJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZWFk
RmlsZVBhdGgoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJyZWRQcmVz
ZW50YXRpb25TaXplID0geyB9KSBvdmVycmlkZTsKKyAgICBib29sIHJlYWRGaWxlUGF0aChjb25z
dCBTdHJpbmcmLCBPcHRpb25hbDxGbG9hdFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUg
PSB7IH0sIGNvbnN0IFN0cmluZyYgY29udGVudFR5cGUgPSB7IH0pIG92ZXJyaWRlOwogICAgIGJv
b2wgcmVhZEZpbGVQYXRocyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpIG92ZXJyaWRlOwogICAgIGJv
b2wgcmVhZEhUTUwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgYm9vbCByZWFkUlRGRChT
aGFyZWRCdWZmZXImKSBvdmVycmlkZTsKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHJlYWRXZWJBcmNoaXZlKFNoYXJlZEJ1
ZmZlciYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVhZEZpbGVQYXRoKGNvbnN0IFN0cmluZyYsIE9w
dGlvbmFsPEZsb2F0U2l6ZT4gPSB7IH0pIG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAg
Ym9vbCByZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiwgT3B0aW9uYWw8RmxvYXRTaXplPiA9IHsg
fSwgY29uc3QgU3RyaW5nJiA9IHsgfSkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICBi
b29sIHJlYWRGaWxlUGF0aHMoY29uc3QgVmVjdG9yPFN0cmluZz4mKSBvdmVycmlkZSB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgcmVhZEhUTUwoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAg
ICAgYm9vbCByZWFkUlRGRChTaGFyZWRCdWZmZXImKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KaW5kZXgg
NTMyYTg0YTljNDVlMWYyNDQ2MGRhMjU3NTg5Mzk4MTViMDhhODI1Mi4uYmU4NWIwYWIzMGEzYmE3
ODczZDZhYWJjNjBiYTU0YWIzMzRmMjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KQEAgLTY5NSw3ICs2OTUsMTYg
QEAgYm9vbCBXZWJDb250ZW50UmVhZGVyOjpyZWFkSW1hZ2UoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBi
dWZmZXIsIGNvbnN0IFN0cmluZyYgdHlwZSwKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1F
TlQpCiAKLXN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JGaWxlUGF0aChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcGF0aCwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJy
ZWRTaXplKQorc3RhdGljIFN0cmluZyB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQoY29uc3QgU3Ry
aW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICBpZiAoY29udGVudFR5cGUuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4geyB9OworCisgICAgYXV0byBtaW1lVHlwZSA9IG1pbWVUeXBlRnJvbUNvbnRl
bnRUeXBlKGNvbnRlbnRUeXBlKTsKKyAgICByZXR1cm4gbWltZVR5cGUuaXNFbXB0eSgpID8gY29u
dGVudFR5cGUgOiBtaW1lVHlwZTsKK30KKworc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNo
bWVudEZvckZpbGVQYXRoKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwYXRoLCBPcHRpb25h
bDxGbG9hdFNpemU+IHByZWZlcnJlZFNpemUsIGNvbnN0IFN0cmluZyYgZXhwbGljaXRDb250ZW50
VHlwZSkKIHsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigqZnJhbWUuZG9jdW1lbnQoKSk7
CiAgICAgYXV0byBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRFbGVtZW50OjpjcmVhdGUoSFRN
TE5hbWVzOjphdHRhY2htZW50VGFnLCBkb2N1bWVudCk7CkBAIC03MDQsMTcgKzcxMywyMyBAQCBz
dGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50Rm9yRmlsZVBhdGgoRnJhbWUmIGZyYW1l
LCBjb25zdCBTdHJpbmcmIHBhdGgsCiAgICAgICAgIHJldHVybiBhdHRhY2htZW50OwogICAgIH0K
IAotICAgIFN0cmluZyBjb250ZW50VHlwZTsKKyAgICBib29sIGlzRGlyZWN0b3J5ID0gRmlsZVN5
c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KHBhdGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJv
bGljTGlua3M6Olllcyk7CisgICAgU3RyaW5nIGNvbnRlbnRUeXBlID0gdHlwZUZvckF0dGFjaG1l
bnRFbGVtZW50KGV4cGxpY2l0Q29udGVudFR5cGUpOworICAgIGlmIChjb250ZW50VHlwZS5pc0Vt
cHR5KCkpIHsKKyAgICAgICAgaWYgKGlzRGlyZWN0b3J5KQorICAgICAgICAgICAgY29udGVudFR5
cGUgPSBrVVRUeXBlRGlyZWN0b3J5OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGNvbnRl
bnRUeXBlID0gRmlsZTo6Y29udGVudFR5cGVGb3JGaWxlKHBhdGgpOworICAgICAgICAgICAgaWYg
KGNvbnRlbnRUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBjb250ZW50VHlwZSA9IGtV
VFR5cGVEYXRhOworICAgICAgICB9CisgICAgfQorCiAgICAgT3B0aW9uYWw8dWludDY0X3Q+IGZp
bGVTaXplRm9yRGlzcGxheTsKLSAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZUlzRGlyZWN0b3J5KHBh
dGgsIEZpbGVTeXN0ZW06OlNob3VsZEZvbGxvd1N5bWJvbGljTGlua3M6OlllcykpCi0gICAgICAg
IGNvbnRlbnRUeXBlID0ga1VUVHlwZURpcmVjdG9yeTsKLSAgICBlbHNlIHsKKyAgICBpZiAoIWlz
RGlyZWN0b3J5KSB7CiAgICAgICAgIGxvbmcgbG9uZyBmaWxlU2l6ZTsKICAgICAgICAgRmlsZVN5
c3RlbTo6Z2V0RmlsZVNpemUocGF0aCwgZmlsZVNpemUpOwogICAgICAgICBmaWxlU2l6ZUZvckRp
c3BsYXkgPSBmaWxlU2l6ZTsKLSAgICAgICAgY29udGVudFR5cGUgPSBGaWxlOjpjb250ZW50VHlw
ZUZvckZpbGUocGF0aCk7Ci0gICAgICAgIGlmIChjb250ZW50VHlwZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICBjb250ZW50VHlwZSA9IGtVVFR5cGVEYXRhOwogICAgIH0KIAogICAgIGZyYW1lLmVk
aXRvcigpLnJlZ2lzdGVyQXR0YWNobWVudElkZW50aWZpZXIoYXR0YWNobWVudC0+ZW5zdXJlVW5p
cXVlSWRlbnRpZmllcigpLCBjb250ZW50VHlwZSwgcGF0aCk7CkBAIC03MzgsOCArNzUzLDcgQEAg
c3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBT
aGFyZWRCdWZmZXImIGJ1ZmZlciwgY28KIHsKICAgICBhdXRvIGRvY3VtZW50ID0gbWFrZVJlZigq
ZnJhbWUuZG9jdW1lbnQoKSk7CiAgICAgYXV0byBhdHRhY2htZW50ID0gSFRNTEF0dGFjaG1lbnRF
bGVtZW50OjpjcmVhdGUoSFRNTE5hbWVzOjphdHRhY2htZW50VGFnLCBkb2N1bWVudCk7Ci0gICAg
YXV0byBtaW1lVHlwZSA9IG1pbWVUeXBlRnJvbUNvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKLSAg
ICBhdXRvIHR5cGVGb3JBdHRhY2htZW50RWxlbWVudCA9IG1pbWVUeXBlLmlzRW1wdHkoKSA/IGNv
bnRlbnRUeXBlIDogbWltZVR5cGU7CisgICAgYXV0byBhdHRhY2htZW50VHlwZSA9IHR5cGVGb3JB
dHRhY2htZW50RWxlbWVudChjb250ZW50VHlwZSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IGluc3RlYWQgYXNrIENvcmVTZXJ2aWNlcyBmb3IgYSBwcmVmZXJyZWQgbmFtZSBjb3JyZXNwb25k
aW5nIHRvIHRoZSBnaXZlbiBjb250ZW50IHR5cGUuCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGRl
ZmF1bHRBdHRhY2htZW50TmFtZSA9ICJmaWxlIjsKQEAgLTc1MSwxNSArNzY1LDE1IEBAIHN0YXRp
YyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgU2hhcmVk
QnVmZmVyJiBidWZmZXIsIGNvCiAgICAgICAgIGZpbGVOYW1lID0gbmFtZTsKIAogICAgIGlmICgh
c3VwcG9ydHNDbGllbnRTaWRlQXR0YWNobWVudERhdGEoZnJhbWUpKSB7Ci0gICAgICAgIGF0dGFj
aG1lbnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUo
dHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KSksIGZpbGVOYW1lKSk7CisgICAgICAgIGF0dGFjaG1l
bnQtPnNldEZpbGUoRmlsZTo6Y3JlYXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUoYXR0
YWNobWVudFR5cGUpKSwgZmlsZU5hbWUpKTsKICAgICAgICAgcmV0dXJuIGF0dGFjaG1lbnQ7CiAg
ICAgfQogCi0gICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJBdHRhY2htZW50SWRlbnRpZmllcihh
dHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCksIHR5cGVGb3JBdHRhY2htZW50RWxl
bWVudCwgZmlsZU5hbWUsIGJ1ZmZlcik7CisgICAgZnJhbWUuZWRpdG9yKCkucmVnaXN0ZXJBdHRh
Y2htZW50SWRlbnRpZmllcihhdHRhY2htZW50LT5lbnN1cmVVbmlxdWVJZGVudGlmaWVyKCksIGF0
dGFjaG1lbnRUeXBlLCBmaWxlTmFtZSwgYnVmZmVyKTsKIAotICAgIGlmIChjb250ZW50VHlwZUlz
U3VpdGFibGVGb3JJbmxpbmVJbWFnZVJlcHJlc2VudGF0aW9uKHR5cGVGb3JBdHRhY2htZW50RWxl
bWVudCkpIHsKKyAgICBpZiAoY29udGVudFR5cGVJc1N1aXRhYmxlRm9ySW5saW5lSW1hZ2VSZXBy
ZXNlbnRhdGlvbihhdHRhY2htZW50VHlwZSkpIHsKICAgICAgICAgYXV0byBpbWFnZSA9IEhUTUxJ
bWFnZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgICAgIGltYWdlLT5zZXRBdHRyaWJ1
dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwgRE9NVVJMOjpjcmVh
dGVPYmplY3RVUkwoZG9jdW1lbnQsIEZpbGU6OmNyZWF0ZShCbG9iOjpjcmVhdGUoYnVmZmVyLCBX
VEZNb3ZlKHR5cGVGb3JBdHRhY2htZW50RWxlbWVudCkpLCBXVEZNb3ZlKGZpbGVOYW1lKSkpKTsK
KyAgICAgICAgaW1hZ2UtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5h
bWVzOjpzcmNBdHRyLCBET01VUkw6OmNyZWF0ZU9iamVjdFVSTChkb2N1bWVudCwgRmlsZTo6Y3Jl
YXRlKEJsb2I6OmNyZWF0ZShidWZmZXIsIFdURk1vdmUoYXR0YWNobWVudFR5cGUpKSwgV1RGTW92
ZShmaWxlTmFtZSkpKSk7CiAgICAgICAgIGltYWdlLT5zZXRBdHRhY2htZW50RWxlbWVudChXVEZN
b3ZlKGF0dGFjaG1lbnQpKTsKICAgICAgICAgaWYgKHByZWZlcnJlZFNpemUpIHsKICAgICAgICAg
ICAgIGltYWdlLT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
d2lkdGhBdHRyLCBBdG9taWNTdHJpbmc6Om51bWJlcihwcmVmZXJyZWRTaXplLT53aWR0aCgpKSk7
CkBAIC03NjgsMTMgKzc4MiwxMyBAQCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50
Rm9yRGF0YShGcmFtZSYgZnJhbWUsIFNoYXJlZEJ1ZmZlciYgYnVmZmVyLCBjbwogICAgICAgICBy
ZXR1cm4gaW1hZ2U7CiAgICAgfQogCi0gICAgYXR0YWNobWVudC0+dXBkYXRlQXR0cmlidXRlcyh7
IGJ1ZmZlci5zaXplKCkgfSwgV1RGTW92ZSh0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQpLCBXVEZN
b3ZlKGZpbGVOYW1lKSk7CisgICAgYXR0YWNobWVudC0+dXBkYXRlQXR0cmlidXRlcyh7IGJ1ZmZl
ci5zaXplKCkgfSwgV1RGTW92ZShhdHRhY2htZW50VHlwZSksIFdURk1vdmUoZmlsZU5hbWUpKTsK
ICAgICByZXR1cm4gYXR0YWNobWVudDsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBVFRBQ0hNRU5U
X0VMRU1FTlQpCiAKLWJvb2wgV2ViQ29udGVudFJlYWRlcjo6cmVhZEZpbGVQYXRoKGNvbnN0IFN0
cmluZyYgcGF0aCwgT3B0aW9uYWw8RmxvYXRTaXplPiBwcmVmZXJyZWRQcmVzZW50YXRpb25TaXpl
KQorYm9vbCBXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRo
LCBPcHRpb25hbDxGbG9hdFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUsIGNvbnN0IFN0
cmluZyYgY29udGVudFR5cGUpCiB7CiAgICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8ICFmcmFtZS5k
b2N1bWVudCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03ODUsNyArNzk5LDcgQEAgYm9v
bCBXZWJDb250ZW50UmVhZGVyOjpyZWFkRmlsZVBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBPcHRp
b25hbDxGbG9hdFNpemU+IHByZWYKIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAg
ICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVu
dEVsZW1lbnRFbmFibGVkKCkpCi0gICAgICAgIGZyYWdtZW50LT5hcHBlbmRDaGlsZChhdHRhY2ht
ZW50Rm9yRmlsZVBhdGgoZnJhbWUsIHBhdGgsIHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUpKTsK
KyAgICAgICAgZnJhZ21lbnQtPmFwcGVuZENoaWxkKGF0dGFjaG1lbnRGb3JGaWxlUGF0aChmcmFt
ZSwgcGF0aCwgcHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSwgY29udGVudFR5cGUpKTsKICNlbmRp
ZgogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5k
ZXggNjQ3ZGM1ZmM0YTliYjBkOWI0MzVlYzE4MWM0ZTUyMzZmY2MxZGMxMC4uOTdlZWIxZjUxMGZj
YzNiMTZkMmZlYTBlNzdhNDBmYmQ1OWExOWRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaApAQCAtMTM2LDcgKzEzNiw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHZpcnR1YWwgYm9vbCByZWFkV2ViQXJjaGl2ZShTaGFyZWRCdWZmZXImKSA9IDA7Ci0g
ICAgdmlydHVhbCBib29sIHJlYWRGaWxlUGF0aChjb25zdCBTdHJpbmcmLCBPcHRpb25hbDxGbG9h
dFNpemU+IHByZWZlcnJlZFByZXNlbnRhdGlvblNpemUgPSB7IH0pID0gMDsKKyAgICB2aXJ0dWFs
IGJvb2wgcmVhZEZpbGVQYXRoKGNvbnN0IFN0cmluZyYsIE9wdGlvbmFsPEZsb2F0U2l6ZT4gcHJl
ZmVycmVkUHJlc2VudGF0aW9uU2l6ZSA9IHsgfSwgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSA9
IHsgfSkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkRmlsZVBhdGhzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JikgPSAwOwogICAgIHZpcnR1YWwgYm9vbCByZWFkSFRNTChjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBib29sIHJlYWRSVEZEKFNoYXJlZEJ1ZmZlciYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0KaW5kZXggNDE2Mjk1Njc3
ZjdhZWYyZDNiOGRhYjFlZDZlNDc3N2Y5NzJkM2VhNS4uOGUwMDVjYWI1MWFiYzNkNjMxY2Q1NGIz
ZjMxZDAzMzhjYThmNWU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Bhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3Rl
Ym9hcmRJT1MubW0KQEAgLTM0NSw5ICszNDUsMTAgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkUmVz
cGVjdGluZ1VUSUZpZGVsaXRpZXMoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXImIHJlYWRlciwK
ICAgICAgICAgYXV0byBpbmZvID0gc3RyYXRlZ3kuaW5mb3JtYXRpb25Gb3JJdGVtQXRJbmRleChp
bmRleCwgbV9wYXN0ZWJvYXJkTmFtZSk7CiAgICAgICAgIGF1dG8gYXR0YWNobWVudEZpbGVQYXRo
ID0gaW5mby5wYXRoRm9ySGlnaGVzdEZpZGVsaXR5SXRlbSgpOwogICAgICAgICBib29sIGNhblJl
YWRBdHRhY2htZW50ID0gcG9saWN5ID09IFdlYkNvbnRlbnRSZWFkaW5nUG9saWN5OjpBbnlUeXBl
ICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuYXR0YWNobWVudEVs
ZW1lbnRFbmFibGVkKCkgJiYgIWF0dGFjaG1lbnRGaWxlUGF0aC5pc0VtcHR5KCk7CisgICAgICAg
IGF1dG8gY29udGVudFR5cGUgPSBpbmZvLmNvbnRlbnRUeXBlRm9ySGlnaGVzdEZpZGVsaXR5SXRl
bSgpOwogICAgICAgICBpZiAoY2FuUmVhZEF0dGFjaG1lbnQgJiYgcHJlZmVyc0F0dGFjaG1lbnRS
ZXByZXNlbnRhdGlvbihpbmZvKSkgewotICAgICAgICAgICAgcmVhZFVSTEFsb25nc2lkZUF0dGFj
aG1lbnRJZk5lY2Vzc2FyeShyZWFkZXIsIHN0cmF0ZWd5LCBpbmZvLmNvbnRlbnRUeXBlRm9ySGln
aGVzdEZpZGVsaXR5SXRlbSgpLCBtX3Bhc3RlYm9hcmROYW1lLCBpbmRleCk7Ci0gICAgICAgICAg
ICByZWFkZXIucmVhZEZpbGVQYXRoKFdURk1vdmUoYXR0YWNobWVudEZpbGVQYXRoKSwgaW5mby5w
cmVmZXJyZWRQcmVzZW50YXRpb25TaXplKTsKKyAgICAgICAgICAgIHJlYWRVUkxBbG9uZ3NpZGVB
dHRhY2htZW50SWZOZWNlc3NhcnkocmVhZGVyLCBzdHJhdGVneSwgY29udGVudFR5cGUsIG1fcGFz
dGVib2FyZE5hbWUsIGluZGV4KTsKKyAgICAgICAgICAgIHJlYWRlci5yZWFkRmlsZVBhdGgoV1RG
TW92ZShhdHRhY2htZW50RmlsZVBhdGgpLCBpbmZvLnByZWZlcnJlZFByZXNlbnRhdGlvblNpemUs
IGNvbnRlbnRUeXBlKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAjZW5kaWYK
QEAgLTM2Niw3ICszNjcsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWRSZXNwZWN0aW5nVVRJRmlk
ZWxpdGllcyhQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYgcmVhZGVyLAogICAgICAgICB9CiAj
aWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKICAgICAgICAgaWYgKGNhblJlYWRBdHRhY2ht
ZW50ICYmIHJlc3VsdCA9PSBSZWFkZXJSZXN1bHQ6OkRpZE5vdFJlYWRUeXBlKQotICAgICAgICAg
ICAgcmVhZGVyLnJlYWRGaWxlUGF0aChXVEZNb3ZlKGF0dGFjaG1lbnRGaWxlUGF0aCksIGluZm8u
cHJlZmVycmVkUHJlc2VudGF0aW9uU2l6ZSk7CisgICAgICAgICAgICByZWFkZXIucmVhZEZpbGVQ
YXRoKFdURk1vdmUoYXR0YWNobWVudEZpbGVQYXRoKSwgaW5mby5wcmVmZXJyZWRQcmVzZW50YXRp
b25TaXplLCBjb250ZW50VHlwZSk7CiAjZW5kaWYKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTY4ZTU1ZGU2NjdkMGQ3ZTA1Nzdk
ZjkwYTJkMGFjNjRlZjQ0OGM0ZC4uY2NhMmI4OTAzOWU3OGUxN2RkY2ViNWZjOTA4ZjM1ZDg4NmU3
MGQzZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIxIEBACisyMDE5LTA1LTI4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlc3BlY3QgTlNJdGVtUHJvdmlkZXIncyByZWdp
c3RlcmVkIHR5cGVzIHdoZW4gZHJvcHBpbmcgZmlsZXMgdGhhdCBhcmUgbG9hZGVkIGluLXBsYWNl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTgzMTUK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzUxMTgzNzYyPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyBhIG5ldyBBUEkgdGVzdCB0byB2ZXJpZnkgdGhh
dCB3aGVuIGRyb3BwaW5nIGEgZmlsZSB0aGF0IGlzIGxvYWRlZCBpbi1wbGFjZSB3aXRoIGEgZmls
ZSBleHRlbnNpb24gdGhhdCBpcworICAgICAgICBub3QgYSAucG5nIChidXQgd2FzIHJlZ2lzdGVy
ZWQgdG8gdGhlIGl0ZW0gcHJvdmlkZXIgYXMgInB1YmxpYy5wbmciKSwgdGhlIHJlc3VsdGluZyBh
dHRhY2htZW50IGlzIGNvbnRhaW5lZCBpbgorICAgICAgICBhbiBpbWFnZSBlbGVtZW50LCBhbmQg
dGhlIHJlc3VsdGluZyBhdHRhY2htZW50IGluZm8gaW5kaWNhdGVzIHRoYXQgdGhlIGRyb3BwZWQg
YXR0YWNobWVudCBpcyBhIHBuZyBmaWxlLgorCisgICAgICAgIEFkZGl0aW9uYWxseSwgcmViYXNl
bGluZSBzb21lIGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbToKKyAgICAgICAgKHJ1blRlc3RXaXRo
VGVtcG9yYXJ5SW1hZ2VGaWxlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDE5LTA1LTI4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNYWNPU10gRmlsdGVyIEdWQSB3YXJuaW5nIGxvZ2dlZCB0byBzdGRvdXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVz
dHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVu
dFRlc3RzLm1tCmluZGV4IDEwOTExNmJjNGM2NzAwMWEwZWEyNmY2MzNkZDQwMGQ0MDM5MDY3MzEu
LmZlYjhlMWNhNDdiZDg5NWQ3NmEwMDFjMTc4OTc2ZDQwZTFjYWQ0YjAgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRU
ZXN0cy5tbQpAQCAtNDEwLDYgKzQxMCwyNCBAQCBzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFRlbXBv
cmFyeUZvbGRlcih2b2lkKF5ydW5UZXN0KShOU1VSTCAqZm9sZGVyVVJMKSkKICAgICB9CiB9CiAK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCitzdGF0aWMgdm9pZCBydW5UZXN0V2l0aFRlbXBv
cmFyeUltYWdlRmlsZShOU1N0cmluZyAqZmlsZU5hbWUsIHZvaWQoXnJ1blRlc3QpKE5TVVJMICpm
aWxlVVJMKSkKK3sKKyAgICBOU0ZpbGVNYW5hZ2VyICpkZWZhdWx0TWFuYWdlciA9IFtOU0ZpbGVN
YW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXTsKKyAgICBhdXRvIHRlbXBvcmFyeUZpbGVQYXRoID0gcmV0
YWluUHRyKFtOU1RlbXBvcmFyeURpcmVjdG9yeSgpIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBv
bmVudDpmaWxlTmFtZV0pOworICAgIGF1dG8gdGVtcG9yYXJ5RmlsZVVSTCA9IHJldGFpblB0cihb
TlNVUkwgZmlsZVVSTFdpdGhQYXRoOnRlbXBvcmFyeUZpbGVQYXRoLmdldCgpXSk7CisgICAgW2Rl
ZmF1bHRNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDp0ZW1wb3JhcnlGaWxlVVJMLmdldCgpIGVycm9y
Om5pbF07CisgICAgW3Rlc3RJbWFnZURhdGEoKSB3cml0ZVRvRmlsZTp0ZW1wb3JhcnlGaWxlUGF0
aC5nZXQoKSBhdG9taWNhbGx5OllFU107CisgICAgQHRyeSB7CisgICAgICAgIHJ1blRlc3QodGVt
cG9yYXJ5RmlsZVVSTC5nZXQoKSk7CisgICAgfSBAZmluYWxseSB7CisgICAgICAgIFtkZWZhdWx0
TWFuYWdlciByZW1vdmVJdGVtQXRVUkw6dGVtcG9yYXJ5RmlsZVVSTC5nZXQoKSBlcnJvcjpuaWxd
OworICAgIH0KK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCisKIHN0YXRpYyB2
b2lkIHNpbXVsYXRlRm9sZGVyRHJhZ1dpdGhVUkwoRHJhZ0FuZERyb3BTaW11bGF0b3IgKnNpbXVs
YXRvciwgTlNVUkwgKmZvbGRlclVSTCkKIHsKICNpZiBQTEFURk9STShNQUMpCkBAIC03ODgsOCAr
ODA2LDEzIEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHMsIERyb3BGb2xkZXJBc0F0dGFjaG1lbnRB
bmRNb3ZlQnlEcmFnZ2luZykKIAogICAgICAgICBUZXN0V0tXZWJWaWV3ICp3ZWJWaWV3ID0gW3Np
bXVsYXRvciB3ZWJWaWV3XTsKICAgICAgICAgYXV0byBhdHRhY2htZW50ID0gcmV0YWluUHRyKFtz
aW11bGF0b3IgaW5zZXJ0ZWRBdHRhY2htZW50c10uZmlyc3RPYmplY3QpOworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgICAgIE5TU3RyaW5nICpleHBlY3RlZFR5cGUgPSAoX19icmlkZ2Ug
TlNTdHJpbmcgKilrVVRUeXBlRm9sZGVyOworI2Vsc2UKKyAgICAgICAgTlNTdHJpbmcgKmV4cGVj
dGVkVHlwZSA9IChfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVEaXJlY3Rvcnk7CisjZW5kaWYK
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKFthdHRhY2htZW50IHVuaXF1ZUlkZW50aWZpZXJdLCBb
d2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxl
Y3RvcignYXR0YWNobWVudCcpLnVuaXF1ZUlkZW50aWZpZXIiXSk7Ci0gICAgICAgIEVYUEVDVF9X
S19TVFJFUSgoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlRGlyZWN0b3J5LCBbd2ViVmlldyB2
YWx1ZU9mQXR0cmlidXRlOkAidHlwZSIgZm9yUXVlcnlTZWxlY3RvcjpAImF0dGFjaG1lbnQiXSk7
CisgICAgICAgIEVYUEVDVF9XS19TVFJFUShleHBlY3RlZFR5cGUsIFt3ZWJWaWV3IHZhbHVlT2ZB
dHRyaWJ1dGU6QCJ0eXBlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJdKTsKICAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKGZvbGRlclVSTC5sYXN0UGF0aENvbXBvbmVudCwgW3dlYlZpZXcg
dmFsdWVPZkF0dHJpYnV0ZTpAInRpdGxlIiBmb3JRdWVyeVNlbGVjdG9yOkAiYXR0YWNobWVudCJd
KTsKIAogICAgICAgICBOU0ZpbGVXcmFwcGVyICppbWFnZSA9IFthdHRhY2htZW50IGluZm9dLmZp
bGVXcmFwcGVyLmZpbGVXcmFwcGVyc1tAImltYWdlLnBuZyJdOwpAQCAtMTcwNCw5ICsxNzI3LDkg
QEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0RHJvcHBlZFJpY2hBbmRQbGFpblRl
eHRGaWxlc0FzQXR0YWNobWVudHMpCiAKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50Q291bnQ6
MiBxdWVyeVNlbGVjdG9yOkAiQVRUQUNITUVOVCJdOwogICAgIEVYUEVDVF9XS19TVFJFUSgiaGVs
bG8ucnRmIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3RpdGxlJyki
XSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3J0ZiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZh
bHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50
JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKChfX2Jy
aWRnZSBOU1N0cmluZyAqKWtVVFR5cGVGbGF0UlRGRCwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0
aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVsw
XS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoIndvcmxkLnR4
dCIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCdhdHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpIl0pOwot
ICAgIEVYUEVDVF9XS19TVFJFUSgidGV4dC9wbGFpbiIsIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVh
dGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdhdHRhY2htZW50Jylb
MV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKChfX2JyaWRn
ZSBOU1N0cmluZyAqKWtVVFR5cGVVVEY4UGxhaW5UZXh0LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1
YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcp
WzFdLmdldEF0dHJpYnV0ZSgndHlwZScpIl0pOwogfQogCiBURVNUKFdLQXR0YWNobWVudFRlc3Rz
SU9TLCBJbnNlcnREcm9wcGVkWmlwQXJjaGl2ZUFzQXR0YWNobWVudCkKQEAgLTE3NjMsNyArMTc4
Niw3IEBAIFRFU1QoV0tBdHRhY2htZW50VGVzdHNJT1MsIEluc2VydERyb3BwZWRJdGVtUHJvdmlk
ZXJzSW5PcmRlcikKICAgICBbd2ViVmlldyBleHBlY3RFbGVtZW50VGFnc0luT3JkZXI6QFsgQCJB
VFRBQ0hNRU5UIiwgQCJBIiwgQCJBVFRBQ0hNRU5UIiBdXTsKIAogICAgIEVYUEVDVF9XS19TVFJF
USgiZmlyc3QudHh0IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3Rp
dGxlJykiXSk7Ci0gICAgRVhQRUNUX1dLX1NUUkVRKCJ0ZXh0L3BsYWluIiwgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2F0
dGFjaG1lbnQnKVswXS5nZXRBdHRyaWJ1dGUoJ3R5cGUnKSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoKF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQsIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdh
dHRhY2htZW50JylbMF0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CiAgICAgRVhQRUNUX1dLX1NU
UkVRKFthcHBsZVVSTCBhYnNvbHV0ZVN0cmluZ10sIFt3ZWJWaWV3IHZhbHVlT2ZBdHRyaWJ1dGU6
QCJocmVmIiBmb3JRdWVyeVNlbGVjdG9yOkAiYSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoInNl
Y29uZC5wZGYiLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgnYXR0YWNobWVudCcpWzFdLmdldEF0dHJpYnV0ZSgndGl0bGUn
KSJdKTsKICAgICBFWFBFQ1RfV0tfU1RSRVEoImFwcGxpY2F0aW9uL3BkZiIsIFt3ZWJWaWV3IHN0
cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdh
dHRhY2htZW50JylbMV0uZ2V0QXR0cmlidXRlKCd0eXBlJykiXSk7CkBAIC0xOTY2LDYgKzE5ODks
MzIgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0c0lPUywgSW5zZXJ0UGFzdGVkRmlsZXNBc0F0dGFj
aG1lbnRzKQogICAgIEVYUEVDVF9UUlVFKFt3ZWJWaWV3IGNhblBlcmZvcm1BY3Rpb246QHNlbGVj
dG9yKHBhc3RlOikgd2l0aFNlbmRlcjpuaWxdKTsKIH0KIAorVEVTVChXS0F0dGFjaG1lbnRUZXN0
c0lPUywgSW5zZXJ0RHJvcHBlZEltYWdlV2l0aE5vbkltYWdlRmlsZUV4dGVuc2lvbikKK3sKKyAg
ICBydW5UZXN0V2l0aFRlbXBvcmFyeUltYWdlRmlsZShAImltYWdlLmhlbGxvIiwgXihOU1VSTCAq
ZmlsZVVSTCkgeworICAgICAgICBhdXRvIGl0ZW0gPSBhZG9wdE5TKFtbTlNJdGVtUHJvdmlkZXIg
YWxsb2NdIGluaXRdKTsKKyAgICAgICAgW2l0ZW0gc2V0U3VnZ2VzdGVkTmFtZTpAImltYWdlLmhl
bGxvIl07CisgICAgICAgIFtpdGVtIHJlZ2lzdGVyRmlsZVJlcHJlc2VudGF0aW9uRm9yVHlwZUlk
ZW50aWZpZXI6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZVBORyBmaWxlT3B0aW9uczpOU0l0
ZW1Qcm92aWRlckZpbGVPcHRpb25PcGVuSW5QbGFjZSB2aXNpYmlsaXR5Ok5TSXRlbVByb3ZpZGVy
UmVwcmVzZW50YXRpb25WaXNpYmlsaXR5QWxsIGxvYWRIYW5kbGVyOl5OU1Byb2dyZXNzICoodm9p
ZCAoXmNhbGxiYWNrKShOU1VSTCAqLCBCT09MLCBOU0Vycm9yICopKQorICAgICAgICB7CisgICAg
ICAgICAgICBjYWxsYmFjayhmaWxlVVJMLCBZRVMsIG5pbCk7CisgICAgICAgICAgICByZXR1cm4g
bmlsOworICAgICAgICB9XTsKKworICAgICAgICBhdXRvIHdlYlZpZXcgPSB3ZWJWaWV3Rm9yVGVz
dGluZ0F0dGFjaG1lbnRzKCk7CisgICAgICAgIGF1dG8gZHJhZ0FuZERyb3BTaW11bGF0b3IgPSBh
ZG9wdE5TKFtbRHJhZ0FuZERyb3BTaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJW
aWV3LmdldCgpXSk7CisgICAgICAgIFtkcmFnQW5kRHJvcFNpbXVsYXRvciBzZXRFeHRlcm5hbEl0
ZW1Qcm92aWRlcnM6QFsgaXRlbS5nZXQoKSBdXTsKKyAgICAgICAgW2RyYWdBbmREcm9wU2ltdWxh
dG9yIHJ1bkZyb206Q0dQb2ludFplcm8gdG86Q0dQb2ludE1ha2UoNTAsIDUwKV07CisKKyAgICAg
ICAgRVhQRUNUX0VRKDFVLCBbZHJhZ0FuZERyb3BTaW11bGF0b3IgaW5zZXJ0ZWRBdHRhY2htZW50
c10uY291bnQpOworICAgICAgICBfV0tBdHRhY2htZW50ICphdHRhY2htZW50ID0gW2RyYWdBbmRE
cm9wU2ltdWxhdG9yIGluc2VydGVkQXR0YWNobWVudHNdLmZpcnN0T2JqZWN0OworICAgICAgICBf
V0tBdHRhY2htZW50SW5mbyAqaW5mbyA9IGF0dGFjaG1lbnQuaW5mbzsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKCJpbWFnZS9wbmciLCBpbmZvLmNvbnRlbnRUeXBlKTsKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKCJpbWFnZS5oZWxsbyIsIGluZm8uZmlsZVBhdGgubGFzdFBhdGhDb21wb25lbnQp
OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoImltYWdlLmhlbGxvIiwgaW5mby5uYW1lKTsKKyAg
ICAgICAgW3dlYlZpZXcgZXhwZWN0RWxlbWVudENvdW50OjEgcXVlcnlTZWxlY3RvcjpAIklNRyJd
OworICAgIH0pOworfQorCiAjaWYgSEFWRShQRU5DSUxLSVQpCiBzdGF0aWMgQk9PTCBmb3JFYWNo
Vmlld0luSGllcmFyY2h5KFVJVmlldyAqdmlldywgdm9pZChebWFwRnVuY3Rpb24pKFVJVmlldyAq
c3VidmlldywgQk9PTCAqc3RvcCkpCiB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>