<?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>170880</bug_id>
          
          <creation_ts>2017-04-15 19:31:18 -0700</creation_ts>
          <short_desc>[WK2] Support DataTransfer::files() when performing a DHTML data interaction</short_desc>
          <delta_ts>2017-04-19 07:58:14 -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>WebKit2</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>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297721</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-15 19:31:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/31314689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297739</commentid>
    <comment_count>1</comment_count>
      <attachid>307220</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-15 23:48:59 -0700</bug_when>
    <thetext>Created attachment 307220
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298167</commentid>
    <comment_count>2</comment_count>
      <attachid>307339</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-17 22:01:31 -0700</bug_when>
    <thetext>Created attachment 307339
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298577</commentid>
    <comment_count>3</comment_count>
      <attachid>307454</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-18 19:39:36 -0700</bug_when>
    <thetext>Created attachment 307454
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298591</commentid>
    <comment_count>4</comment_count>
      <attachid>307454</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-18 20:23:01 -0700</bug_when>
    <thetext>Comment on attachment 307454
Patch for landing

Clearing flags on attachment: 307454

Committed r215498: &lt;http://trac.webkit.org/changeset/215498&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307220</attachid>
            <date>2017-04-15 23:48:59 -0700</date>
            <delta_ts>2017-04-17 22:01:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170880-20170415234858.patch</filename>
            <type>text/plain</type>
            <size>37349</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1MzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTVmZjM4ZTc3Zjk5Yjky
ZDNkOGI4NWE5ODdiNzA2YTQzZGYyYTM3OC4uNGNmMzFjNTZiY2FkZTdhMmQzMGM4NDJhYTM2YzAw
NjQ5NmM5ZTlhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDcxIEBACiAyMDE3LTA0LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgRGF0YVRyYW5zZmVyOjpmaWxlcygpIHdoZW4gcGVyZm9ybWluZyBhIERIVE1MIGRhdGEgaW50
ZXJhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDg4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEzMTQ2ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBmZXRj
aGluZyBmaWxlcyBmcm9tIHRoZSBEYXRhVHJhbnNmZXIgd2hlbiBwZXJmb3JtaW5nIGEgZGF0YSBp
bnRlcmFjdGlvbiBvcGVyYXRpb24gaGFuZGxlZCBieQorICAgICAgICBKYXZhU2NyaXB0LiBUaGVy
ZSBhcmUgdHdvIGNoYW5nZXMgd2UgbWFrZSBoZXJlIHRvIGFjaGlldmUgdGhpczoKKworICAgICAg
ICBGaXJzdCwgd2UgdGVhY2ggdGhlIFBhc3RlYm9hcmQgb24gaU9TIHRvIGtub3cgd2hhdCBmaWxl
IHBhdGhzIGhvbGQgdGhlIGl0ZW0gcHJvdmlkZXIgY29udGVudHMgdXNlZCBpbiB0aGUKKyAgICAg
ICAgY3VycmVudCBkYXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbi4gT24gaU9TLCBQYXN0ZWJvYXJk
OjpyZWFkRmlsZW5hbWVzIGlzIGN1cnJlbnRseSBoYXJkLWNvZGVkIHRvIHJldHVybiBhbiBlbXB0
eQorICAgICAgICB2ZWN0b3IuIFRvIGZpeCB0aGlzLCB3ZSBhZGQgbG9naWMgdG8gdGhlIGlPUyBQ
YXN0ZWJvYXJkIHRvIHJlbWVtYmVyIHdoYXQgdGhlIHBhdGhzIG9mIGFsbCBmaWxlcyB0aGF0IHdl
cmUKKyAgICAgICAgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBmcm9tIGl0ZW0gcHJvdmlkZXJzIGFzIHRo
ZSBkYXRhIGludGVyYWN0aW9uIGlzIHRha2luZyBwbGFjZS4gVGhpcyBlbnN1cmVzIHRoYXQgYXQg
dGhlCisgICAgICAgIFdlYkNvcmUgbGF5ZXIsIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzIG9uIE1hYyBhbmQgaU9TIGlzIHNpbWlsYXIgLS0gdGhleSBib3Ro
IGNhbGwgb3V0CisgICAgICAgIHRvIHRoZSBjbGllbnQgbGF5ZXIgaW4gb3JkZXIgdG8gcmVhZCBm
aWxlIHBhdGhzIG9mZiBvZiB0aGVpciByZXNwZWN0aXZlIHBhc3RlYm9hcmRzLiBPbmNlIGluIHRo
ZSBjbGllbnQgbGF5ZXIKKyAgICAgICAgKFdlYktpdDEgb3IgV2ViS2l0Mikgd2UgdGhlbiBjYWxs
IGludG8gUGxhdGZvcm1QYXN0ZWJvYXJkOjpmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24sIHdo
aWNoIHRoZW4gY2FsbHMgaW50bworICAgICAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGlm
IGFwcGxpY2FibGUuCisKKyAgICAgICAgVGhlIHNlY29uZCB0d2VhayBpcyB0byBwcm9wYWdhdGUg
aW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciB0aGUgZG9jdW1lbnQgaXMgcHJldmVudGluZyBkZWZh
dWx0IGRhdGEgaW50ZXJhY3Rpb24KKyAgICAgICAgYmVoYXZpb3IgdG8gdGhlIGNsaWVudCBsYXll
ci4gVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGhhdmluZyB0byBzYXZlIHBhc3RlYm9hcmQgY29udGVu
dCB3aGVuIHBlcmZvcm1pbmcgZGF0YQorICAgICAgICBpbnRlcmFjdGlvbiBpbiBjYXNlcyB3aGVy
ZSBmaWxlIGluZm9ybWF0aW9uIGlzIG5vdCBuZWVkZWQgKGkuZS4gdGhlIGRlZmF1bHQgYmVoYXZp
b3IgaXMgYmVpbmcgcGVyZm9ybWVkLCBhbmQKKyAgICAgICAgdGhlIHRhcmdldCBpcyBub3QgYSBm
aWxlIGlucHV0KS4gVGhpcyBhbHNvIGF2b2lkcyBjb21wYXRpYmlsaXR5IGlzc3VlcyB3aXRoIGlu
c2VydGlvbiBhbmltYXRpb25zIHdoZW4gcGVyZm9ybWluZworICAgICAgICBkYXRhIGludGVyYWN0
aW9uIGluIGVkaXRhYmxlIGFyZWFzLCBkdWUgdG8gdGhlIGV4dHJhIHRpbWUgc3BlbnQgbG9hZGlu
ZyBpdGVtIHByb3ZpZGVyIGRhdGEgaW50byBhIHRlbXBvcmFyeQorICAgICAgICBmaWxlLgorCisg
ICAgICAgIFVuaXQgdGVzdHMgaW4gcHJvZ3Jlc3MgKHRoaXMgaXMganVzdCBhIHRlc3QgcGFzcyBm
b3IgRVdTKS4KKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyk6CisKKyAgICAgICAgUmVmYWN0
b3IgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyB0byByZXR1cm4gYSBEcmFnSGFuZGxp
bmdNZXRob2QuIFRoaXMgbWV0aG9kIGN1cnJlbnRseSByZXR1cm5zIGVpdGhlcgorICAgICAgICB0
cnVlIG9yIGZhbHNlOyB0aGlzIHBhdGNoIGNoYW5nZXMgaXQgdG8gcmV0dXJuIGEgRHJhZ0hhbmRs
aW5nTWV0aG9kLCB3aGljaCBpcyBlaXRoZXIgTm9uZSAodGhlIGVxdWl2YWxlbnQgb2YKKyAgICAg
ICAgcmV0dXJuaW5nIGZhbHNlIGJlZm9yZSB0aGUgcGF0Y2gpLCBEZWZhdWx0IChpbmRpY2F0aW5n
IHRoYXQgdGhlIGRyb3AgZGVzdGluYXRpb24gaXMgYWxsb3dpbmcgZGVmYXVsdCBoYW5kbGluZyks
CisgICAgICAgIG9yIE5vbkRlZmF1bHQsIHdoaWNoIGluZGljYXRlcyB0aGF0IHRoZSBkcm9wIGRl
c3RpbmF0aW9uIGhhcyBleHBsaWNpdGx5IHByZXZlbnRlZCBkZWZhdWx0LgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5oOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKToKKworICAgICAgICBVc2VkIGJ5IFdl
YlBhZ2Ugd2hlbiBzZW5kaW5nIGFuIElQQyByZXNwb25zZSBhZnRlciBoYW5kbGluZyBkcmFnZW50
ZXJlZCBvciBkcmFndXBkYXRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9pb3MvUGFzdGVib2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJl
YWRGaWxlbmFtZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6OmZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZC5tbToKKworICAgICAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIG5vdyByZW1l
bWJlcnMgdGhlIGZpbGUgVVJMcyBvZiBzdWNjZXNzZnVsbHkgbG9hZGVkIGl0ZW0gcHJvdmlkZXIg
Y29udGVudCB3aGVuIGEgZGF0YQorICAgICAgICBpbnRlcmFjdGlvbiBpcyBiZWluZyBwZXJmb3Jt
ZWQuIFRoZSBuZXcgZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uIHByb3BlcnR5IHJldHVybnMg
dGhlIGFycmF5IG9mIGRhdGEKKyAgICAgICAgaW50ZXJhY3Rpb24gZmlsZSBVUkxzIHdoaWNoIGhh
dmUgYmVlbiBwcm9wYWdhdGVkIHRvIHRoZSB3ZWIgcHJvY2VzcyBhbG9uZyB3aXRoIHNhbmRib3gg
ZXh0ZW5zaW9ucy4gVGhpcyBzdGF0ZQorICAgICAgICBpcyBjbGVhbmVkIHVwIHdoZW4gbGlzdCBv
ZiBpdGVtIHByb3ZpZGVycyBjaGFuZ2UgKGkuZS4gd2hlbiB0aGUgZGF0YSBpbnRlcmFjdGlvbiBv
cGVyYXRpb24gaXMgZmluaXNoZWQsIG9yIGlmCisgICAgICAgIHRoZSB3ZWIgY29udGVudCBwcm9j
ZXNzIGNyYXNoZXMsIGV0Yy4pCisKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZCBpbml0XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgc2V0SXRlbVBy
b3ZpZGVyczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBmaWxlbmFt
ZXNGb3JEYXRhSW50ZXJhY3Rpb25dKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVi
b2FyZCBkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9GaWxlVVJMczpdKToKKworMjAx
Ny0wNC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAg
ICBbV0syXSBTdXBwb3J0IGRhdGEgaW50ZXJhY3Rpb24gb2YgZmlsZXMgaW50byBmaWxlIGlucHV0
cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODAz
CiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTI4NjEzMD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBj
NGJhMzMyYTlmMDdlNDg5NjY3ZDI5OWJkZDIxY2E3OGRlNDM0ZWUyLi42MmIxYzZiMjFjZjg2NThm
OGEyZGU1NWQzNjE1NmU4MjY1MGQ1Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkg
QEAKIDIwMTctMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAK
KyAgICAgICAgW1dLMl0gU3VwcG9ydCBEYXRhVHJhbnNmZXI6OmZpbGVzKCkgd2hlbiBwZXJmb3Jt
aW5nIGEgREhUTUwgZGF0YSBpbnRlcmFjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTMx
NDY4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGp1c3QgZm9yIGEgY2hhbmdlIGluIFBhc3RlYm9hcmRTdHJhdGVneS4gU2VlIFdlYkNvcmUgQ2hh
bmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVu
YW1lc0ZvckRhdGFJbnRlcmFjdGlvbik6CisKKzIwMTctMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0gU3VwcG9ydCBkYXRhIGludGVy
YWN0aW9uIG9mIGZpbGVzIGludG8gZmlsZSBpbnB1dHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDgwMwogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzEyODYxMzA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjI0ZDgzYTc4NzE5MWUyOWZiYzcwMjY0MmQwOTFlMDVi
N2FiNjU3Mi4uNDAxZmE0YmQyNTk4N2U4ZDE0ZmJmZjFjZmE5NWRiYTliZGE0ZTk3NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE3LTA0LTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtXSzJdIFN1cHBvcnQgRGF0YVRyYW5zZmVyOjpm
aWxlcygpIHdoZW4gcGVyZm9ybWluZyBhIERIVE1MIGRhdGEgaW50ZXJhY3Rpb24KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDg4MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzEzMTQ2ODk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2VlIHRoZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRh
aWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OmdldEZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldEN1cnJlbnREcmFn
SW5mb3JtYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpkb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJh
Zyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKworICAg
ICAgICBBZGRzIGFuIElQQyBhcmd1bWVudCB0byBEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rp
b24gc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBwYWdlIHByZXZlbnRlZCB0aGUgZGVmYXVsdCBiZWhh
dmlvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluOgorCisgICAgICAg
IEFkZHMgSVBDIHBsdW1iaW5nIGZvciB0aGUgbmV3IGZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlv
biBQYXN0ZWJvYXJkIGNvZGVwYXRoLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6CisKKzIwMTctMDQtMTUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0gU3Vw
cG9ydCBkYXRhIGludGVyYWN0aW9uIG9mIGZpbGVzIGludG8gZmlsZSBpbnB1dHMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDgwMwogICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzEyODYxMzA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCmluZGV4IGQ1MzM5YTQ2MDU4NDZmODBkODAxM2Y0YTY5Yzg1YjY4MGQxNmMzYWMuLjMyYTYy
MzI5MWMwZTg4MzIxOTgzODE5MDMzMWQxMTRkZDY3NTg4MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgRHJhZ0NvbnRyb2xsZXI6OkRy
YWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQmIGNsaWVudCkKICAgICA6IG1fcGFn
ZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9udW1iZXJPZkl0ZW1zVG9C
ZUFjY2VwdGVkKDApCi0gICAgLCBtX2RvY3VtZW50SXNIYW5kbGluZ0RyYWcoZmFsc2UpCisgICAg
LCBtX2RvY3VtZW50RHJhZ0hhbmRsaW5nTWV0aG9kKERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZSkK
ICAgICAsIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmUp
CiAgICAgLCBtX2RyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbk5vbmUpCiAgICAgLCBt
X2RpZEluaXRpYXRlRHJhZyhmYWxzZSkKQEAgLTIyOCw3ICsyMjgsNyBAQCBib29sIERyYWdDb250
cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAg
ICAgaWYgKG1fZG9jdW1lbnRVbmRlck1vdXNlKQogICAgICAgICBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3lUb1Byb3BhZ2F0ZSgpOwogCi0gICAgaWYgKChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiAm
IERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKSAmJiBtX2RvY3VtZW50SXNIYW5kbGluZ0RyYWcp
IHsKKyAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uREhUTUwpICYmIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRob2QgIT0gRHJhZ0hhbmRsaW5n
TWV0aG9kOjpOb25lKSB7CiAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MLCBkcmFnRGF0YSk7CiAgICAgICAg
IFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3BhZ2UubWFpbkZyYW1lKCkpOwogICAgICAgICBi
b29sIHByZXZlbnRlZERlZmF1bHQgPSBmYWxzZTsKQEAgLTI4OCw4ICsyODgsOCBAQCBEcmFnT3Bl
cmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEpCiAgICAgfQogCiAgICAgRHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uID0g
RHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnID0gdHJ5RG9j
dW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwgZHJhZ09wZXJhdGlv
bik7Ci0gICAgaWYgKCFtX2RvY3VtZW50SXNIYW5kbGluZ0RyYWcgJiYgKG1fZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCkpCisgICAgbV9kb2N1bWVudERy
YWdIYW5kbGluZ01ldGhvZCA9IHRyeURvY3VtZW50RHJhZyhkcmFnRGF0YSwgbV9kcmFnRGVzdGlu
YXRpb25BY3Rpb24sIGRyYWdPcGVyYXRpb24pOworICAgIGlmIChtX2RvY3VtZW50RHJhZ0hhbmRs
aW5nTWV0aG9kID09IERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZSAmJiAobV9kcmFnRGVzdGluYXRp
b25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkKSkKICAgICAgICAgZHJhZ09wZXJh
dGlvbiA9IG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEpOwogICAgIHJldHVybiBkcmFnT3BlcmF0
aW9uOwogfQpAQCAtMzI5LDEzICszMjksMTMgQEAgc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRl
ck1vdXNlKERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JgogICAg
IHJldHVybiBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsKIH0KIAotYm9vbCBEcmFnQ29udHJvbGxl
cjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdPcGVyYXRpb24mIGRyYWdPcGVyYXRpb24pCitEcmFn
Q29udHJvbGxlcjo6RHJhZ0hhbmRsaW5nTWV0aG9kIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVu
dERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0
aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgZHJhZ09wZXJhdGlvbikKIHsKICAgICBpZiAoIW1fZG9j
dW1lbnRVbmRlck1vdXNlKQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBE
cmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmU7CiAKICAgICBpZiAobV9kcmFnSW5pdGlhdG9yICYmICFt
X2RvY3VtZW50VW5kZXJNb3VzZS0+c2VjdXJpdHlPcmlnaW4oKS5jYW5SZWNlaXZlRHJhZ0RhdGEo
bV9kcmFnSW5pdGlhdG9yLT5zZWN1cml0eU9yaWdpbigpKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lOwogCiAgICAgYm9vbCBp
c0hhbmRsaW5nRHJhZyA9IGZhbHNlOwogICAgIGlmIChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uREhUTUwpIHsKQEAgLTM0NiwzMCArMzQ2LDMwIEBAIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEsIERyYWdEZXN0aW5h
dGlvbkFjCiAgICAgICAgIC8vIHdoaWNoIGNvdWxkIHByb2Nlc3MgZHJhZ2xlYXZlIGV2ZW50IGFu
ZCByZXNldCBtX2RvY3VtZW50VW5kZXJNb3VzZSBpbgogICAgICAgICAvLyBkcmFnRXhpdGVkLgog
ICAgICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQotICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZTsKICAgICB9
CiAKICAgICAvLyBJdCdzIHVuY2xlYXIgd2h5IHRoaXMgY2hlY2sgaXMgYWZ0ZXIgdHJ5REhUTUxE
cmFnLgogICAgIC8vIFdlIHNlbmQgZHJhZyBldmVudHMgaW4gdHJ5REhUTUxEcmFnIGFuZCB0aGF0
IG1heSBiZSB0aGUgcmVhc29uLgogICAgIFJlZlB0cjxGcmFtZVZpZXc+IGZyYW1lVmlldyA9IG1f
ZG9jdW1lbnRVbmRlck1vdXNlLT52aWV3KCk7CiAgICAgaWYgKCFmcmFtZVZpZXcpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZTsK
IAogICAgIGlmIChpc0hhbmRsaW5nRHJhZykgewogICAgICAgICBjbGVhckRyYWdDYXJldCgpOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6
Tm9uRGVmYXVsdDsKICAgICB9CiAKICAgICBpZiAoKGFjdGlvbk1hc2sgJiBEcmFnRGVzdGluYXRp
b25BY3Rpb25FZGl0KSAmJiBjYW5Qcm9jZXNzRHJhZyhkcmFnRGF0YSkpIHsKICAgICAgICAgaWYg
KGRyYWdEYXRhLmNvbnRhaW5zQ29sb3IoKSkgewogICAgICAgICAgICAgZHJhZ09wZXJhdGlvbiA9
IERyYWdPcGVyYXRpb25HZW5lcmljOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
ICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpEZWZhdWx0OwogICAgICAgICB9CiAKICAg
ICAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMoZHJhZ0Rh
dGEuY2xpZW50UG9zaXRpb24oKSk7CiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50
VW5kZXJNb3VzZShtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOwogICAgICAgICBp
ZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1
cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lOwogICAgICAgICAKICAgICAgICAgSFRNTElucHV0
RWxlbWVudCogZWxlbWVudEFzRmlsZUlucHV0ID0gYXNGaWxlSW5wdXQoKmVsZW1lbnQpOwogICAg
ICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSAhPSBlbGVtZW50QXNGaWxlSW5w
dXQpIHsKQEAgLTQwNyw3ICs0MDcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVu
dERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BYwogICAgICAg
ICAgICAgbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8g
MCA6IDE7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJldHVybiB0cnVlOworICAgICAg
ICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpEZWZhdWx0OwogICAgIH0KICAgICAKICAgICAv
LyBXZSBhcmUgbm90IG92ZXIgYW4gZWRpdGFibGUgcmVnaW9uLiBNYWtlIHN1cmUgd2UncmUgY2xl
YXJpbmcgYW55IHByaW9yIGRyYWcgY3Vyc29yLgpAQCAtNDE1LDcgKzQxNSw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEsIERy
YWdEZXN0aW5hdGlvbkFjCiAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UpCiAg
ICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UtPnNldENhblJlY2VpdmVEcm9wcGVk
RmlsZXMoZmFsc2UpOwogICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UgPSBudWxscHRy
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25l
OwogfQogCiBEcmFnU291cmNlQWN0aW9uIERyYWdDb250cm9sbGVyOjpkZWxlZ2F0ZURyYWdTb3Vy
Y2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmgKaW5kZXggYjcxYjk4YWQyYzNkYTlhNDkzYmVjYjZjNGQ5ZmJmNTJiNTFl
MTExOS4uMTJmOGMzZDRhMGE3MzUxZWMwMDY0ZTI5M2EyMmU1ODgzMGNmMTExNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtNzksNiArNzksOCBAQCBzdHJ1Y3QgRHJhZ1N0
YXRlOwogICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJhZ09mZnNldCgpIGNvbnN0IHsgcmV0dXJu
IG1fZHJhZ09mZnNldDsgfQogICAgICAgICBEcmFnU291cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rp
b24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VBY3Rpb247IH0KIAorICAgICAgICBlbnVt
IGNsYXNzIERyYWdIYW5kbGluZ01ldGhvZCB7IE5vbmUsIERlZmF1bHQsIE5vbkRlZmF1bHQgfTsK
KyAgICAgICAgYm9vbCBkb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJhZygpIGNvbnN0IHsg
cmV0dXJuIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRob2QgPT0gRHJhZ0hhbmRsaW5nTWV0aG9k
OjpOb25EZWZhdWx0OyB9CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKTsgfQogICAgICAgICBEcmFn
RGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0KICAgICAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkZWxl
Z2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpOwpAQCAt
MTAzLDcgKzEwNSw3IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIGJvb2wgY29uY2x1ZGVF
ZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYpOwogICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdFbnRl
cmVkT3JVcGRhdGVkKGNvbnN0IERyYWdEYXRhJik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gb3Bl
cmF0aW9uRm9yTG9hZChjb25zdCBEcmFnRGF0YSYpOwotICAgICAgICBib29sIHRyeURvY3VtZW50
RHJhZyhjb25zdCBEcmFnRGF0YSYsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ09wZXJhdGlv
biYpOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRob2QgdHJ5RG9jdW1lbnREcmFnKGNvbnN0IERy
YWdEYXRhJiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnT3BlcmF0aW9uJik7CiAgICAgICAg
IGJvb2wgdHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRhJiwgRHJhZ09wZXJhdGlvbiYpOwogICAg
ICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0RhdGEmKTsKICAgICAg
ICAgdm9pZCBjbGVhckRyYWdDYXJldCgpOwpAQCAtMTMwLDcgKzEzMiw3IEBAIHN0cnVjdCBEcmFn
U3RhdGU7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kcmFnSW5pdGlhdG9yOyAvLyBUaGUg
RG9jdW1lbnQgKGlmIGFueSkgdGhhdCBpbml0aWF0ZWQgdGhlIGRyYWcuCiAgICAgICAgIFJlZlB0
cjxIVE1MSW5wdXRFbGVtZW50PiBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRlck1vdXNlOwogICAgICAg
ICB1bnNpZ25lZCBtX251bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7Ci0gICAgICAgIGJvb2wgbV9k
b2N1bWVudElzSGFuZGxpbmdEcmFnOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRob2QgbV9kb2N1
bWVudERyYWdIYW5kbGluZ01ldGhvZDsKIAogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24g
bV9kcmFnRGVzdGluYXRpb25BY3Rpb247CiAgICAgICAgIERyYWdTb3VyY2VBY3Rpb24gbV9kcmFn
U291cmNlQWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVi
b2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRl
Z3kuaAppbmRleCBlNmFhY2MyYTVlZjNkNWJmZmNiMzBkZmQ1MmI2YzY4MDk3ODBjZTgzLi5lODhh
NDg5MTE4MzY1NDk0NDhmZGNmNWY0YTQ1N2IyNDJkN2Y3NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21Q
YXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgVVJMIHJlYWRVUkxGcm9t
UGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZW5h
bWVzRm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+
JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAxZDZkNGNiMjQyZTdlMTg0
N2RhM2ViMmNkYjg4YjYzYzkzOTg3MjRjLi4zN2E3OTE4M2Y2Y2Y5YjQxZjg0ZjhiMGE2N2FkN2Jk
OGIwM2E0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBh
c3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9h
cmQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGlj
aXQgUGxhdGZvcm1QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwogI2lm
IFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJh
Y3Rpb24oKTsKICNlbmRpZgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgdW5pcXVl
TmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJh
Y3RQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0
ZWJvYXJkLmgKaW5kZXggMWY1ZDk5NjFhYTgzYzRkMGEzOTlkMmJmNmU3MTg2NDU5MzhlNDJkNS4u
YjdlMWE1MDEwZDYwOGMzYzM4Yzk3YmI0ZmRmNDM2MDY0NTI3MDcyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQuaApAQCAtNTAsNiArNTAs
NyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlBhc3RlYm9hcmRJdGVtRGF0YSA6IE5T
T2JqZWN0CiAtICh2b2lkKXNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2VudGF0aW9uczooTlNBcnJh
eTxXZWJQYXN0ZWJvYXJkSXRlbURhdGEgKj4gKilpdGVtRGF0YTsKIC0gKHZvaWQpc2V0SXRlbXM6
KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopaXRlbXM7CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBu
b25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkZpbGVzOworQHByb3BlcnR5IChyZWFkb25seSwg
bm9uYXRvbWljKSBOU0FycmF5PE5TVVJMICo+ICpmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb247
CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3Rl
Ym9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5t
bQppbmRleCBlY2JiMzFkNjViYjFmYjM5ODQwOThiYTM4NTRjOGFjMmU5NTUxNTFlLi43YWQzNDdi
ZmVhNzE2YzcyNDVlMDliYTEwYzU2MTg4MGNlZWFhNTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMzc3LDcgKzM3NywxMCBAQCBWZWN0b3I8
U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCiAKIFZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6
OnJlYWRGaWxlbmFtZXMoKQogewotICAgIHJldHVybiBWZWN0b3I8U3RyaW5nPigpOworICAgIFZl
Y3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICAvLyBDdXJyZW50bHksIGRhdGEgaW50ZXJhY3Rp
b24gaXMgdGhlIG9ubHkgY2FzZSBvbiBpT1Mgd2hlcmUgdGhlIHBhc3RlYm9hcmQgbWF5IGNvbnRh
aW4gcmVsZXZhbnQgZmlsZW5hbWVzLiAKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVi
b2FyZFN0cmF0ZWd5KCktPmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihmaWxlbmFtZXMs
IG1fcGFzdGVib2FyZE5hbWUpOworICAgIHJldHVybiBmaWxlbmFtZXM7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1Mu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
CmluZGV4IGE3NDU3NDQ2MGIzZTZkOTVlYzlhMGZlNTg4NjRkYzU5ZWJjNTJjOGYuLjJiMjIzZDlm
NjE2NzA2OGJmZTYxMjUwNzM0ZjdjODkxYWYzNGU2NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtOTEsNiArOTEs
MTggQEAgaW50IFBsYXRmb3JtUGFzdGVib2FyZDo6bnVtYmVyT2ZGaWxlcygpCiAgICAgcmV0dXJu
IFttX3Bhc3RlYm9hcmQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihudW1iZXJPZkZpbGVz
KV0gPyBbbV9wYXN0ZWJvYXJkIG51bWJlck9mRmlsZXNdIDogMDsKIH0KIAorVmVjdG9yPFN0cmlu
Zz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjpmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKQorewor
ICAgIGlmICghW21fcGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGZpbGVu
YW1lc0ZvckRhdGFJbnRlcmFjdGlvbildKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgVmVj
dG9yPFN0cmluZz4gZmlsZW5hbWVzOworICAgIGZvciAoTlNVUkwgKmZpbGVVUkwgaW4gW21fcGFz
dGVib2FyZCBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb25dKQorICAgICAgICBmaWxlbmFtZXMu
YXBwZW5kKGZpbGVVUkwucGF0aCk7CisKKyAgICByZXR1cm4gZmlsZW5hbWVzOworfQorCiBTdHJp
bmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpzdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkK
IHsKICAgICBOU0FycmF5ICp2YWx1ZXMgPSBbbV9wYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9h
cmRUeXBlOnR5cGUgaW5JdGVtU2V0OltOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4OjBdXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVy
UGFzdGVib2FyZC5oCmluZGV4IGQ4MDZlMDA5ZTg4YWY4YzNkODhiYjQ4NWFkZDAyMTE4MWZlOGI3
NjcuLjgzMjNlNzIwNzhiNDdiN2QwNzcyZTY0MjA5YThmMTM1NGIxNmIwOTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQuaApAQCAtNDMsNiArNDMsOSBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgOiBOU09iamVjdDxBYnN0cmFjdFBhc3RlYm9hcgogQHByb3BlcnR5
IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIgbnVtYmVyT2ZJdGVtczsKIEBwcm9wZXJ0
eSAocmVhZG9ubHksIG5vbmF0b21pYykgTlNJbnRlZ2VyIGNoYW5nZUNvdW50OwogCisvLyBUaGlz
IHdpbGwgb25seSBiZSBub24tZW1wdHkgd2hlbiBhbiBvcGVyYXRpb24gaXMgYmVpbmcgcGVyZm9y
bWVkLgorQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0FycmF5PE5TVVJMICo+ICpm
aWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb247CisKIEBwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0
b21pYykgQk9PTCBoYXNQZW5kaW5nT3BlcmF0aW9uOwogLSAodm9pZClpbmNyZW1lbnRQZW5kaW5n
T3BlcmF0aW9uQ291bnQ7CiAtICh2b2lkKWRlY3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQubW0KaW5kZXggOWU2YTdmN2ZjYzg5Mjk5OTJmZDA0ZTg2ODlhMmJjOWI4NDk2
OGUxOS4uN2FiMTY0OThlZTcyMjBlOWVmZTM2YmI5NWVhMzExZTBkNmE4ZDJkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0KQEAgLTg0LDYgKzg0LDcgQEAgQGVuZAogQGltcGxlbWVudGF0aW9uIFdlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgewogICAgIFJldGFpblB0cjxOU0FycmF5PiBfaXRlbVByb3ZpZGVy
czsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2NhY2hlZFR5cGVJZGVudGlmaWVyczsKKyAgICBS
ZXRhaW5QdHI8TlNBcnJheT4gX2ZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbjsKIH0KIAogKyAo
aW5zdGFuY2V0eXBlKXNoYXJlZEluc3RhbmNlCkBAIC0xMDIsNiArMTAzLDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXQKICAgICAgICAgX2l0ZW1Qcm92aWRlcnMgPSBhZG9wdE5TKFtbTlNBcnJheSBh
bGxvY10gaW5pdF0pOwogICAgICAgICBfY2hhbmdlQ291bnQgPSAwOwogICAgICAgICBfcGVuZGlu
Z09wZXJhdGlvbkNvdW50ID0gMDsKKyAgICAgICAgX2ZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlv
biA9IEBbIF07CiAgICAgfQogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTQwLDYgKzE0Miw3IEBA
IC0gKHZvaWQpc2V0SXRlbVByb3ZpZGVyczooTlNBcnJheTxVSUl0ZW1Qcm92aWRlciAqPiAqKWl0
ZW1Qcm92aWRlcnMKICAgICBfaXRlbVByb3ZpZGVycyA9IGl0ZW1Qcm92aWRlcnM7CiAgICAgX2No
YW5nZUNvdW50Kys7CiAgICAgX2NhY2hlZFR5cGVJZGVudGlmaWVycyA9IG5pbDsKKyAgICBfZmls
ZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uID0gQFsgXTsKIH0KIAogLSAoTlNJbnRlZ2VyKW51bWJl
ck9mSXRlbXMKQEAgLTI1NCw2ICsyNTcsMTEgQEAgLSAoTlNJbnRlZ2VyKWNoYW5nZUNvdW50CiAg
ICAgcmV0dXJuIF9jaGFuZ2VDb3VudDsKIH0KIAorLSAoTlNBcnJheTxOU1VSTCAqPiAqKWZpbGVu
YW1lc0ZvckRhdGFJbnRlcmFjdGlvbgoreworICAgIHJldHVybiBfZmlsZW5hbWVzRm9yRGF0YUlu
dGVyYWN0aW9uLmdldCgpOworfQorCiAtIChOU0ludGVnZXIpbnVtYmVyT2ZGaWxlcwogewogICAg
IE5TSW50ZWdlciBudW1iZXJPZkZpbGVzID0gMDsKQEAgLTI4NSw2ICsyOTMsOCBAQCBzdGF0aWMg
TlNVUkwgKnRlbXBvcmFyeUZpbGVVUkxGb3JEYXRhSW50ZXJhY3Rpb25Db250ZW50KE5TU3RyaW5n
ICpmaWxlRXh0ZW5zaW9uLAogCiAtICh2b2lkKWRvQWZ0ZXJMb2FkaW5nUHJvdmlkZWRDb250ZW50
SW50b0ZpbGVVUkxzOihXZWJJdGVtUHJvdmlkZXJGaWxlTG9hZEJsb2NrKWFjdGlvbgogeworICAg
IGF1dG8gY2hhbmdlQ291bnRCZWZvcmVMb2FkaW5nID0gX2NoYW5nZUNvdW50OworCiAgICAgYXV0
byBpdGVtUHJvdmlkZXJzV2l0aEZpbGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9j
XSBpbml0XSk7CiAgICAgYXV0byBjb250ZW50VHlwZUlkZW50aWZpZXJzVG9Mb2FkID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBsb2FkZWRGaWxlVVJM
cyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwpAQCAtMzI4LDcgKzMz
OCwxMSBAQCAtICh2b2lkKWRvQWZ0ZXJMb2FkaW5nUHJvdmlkZWRDb250ZW50SW50b0ZpbGVVUkxz
OihXZWJJdGVtUHJvdmlkZXJGaWxlTG9hZEJsb2NrKQogICAgICAgICB9KTsKICAgICB9CiAKLSAg
ICBkaXNwYXRjaF9ncm91cF9ub3RpZnkoZmlsZUxvYWRpbmdHcm91cC5nZXQoKSwgZGlzcGF0Y2hf
Z2V0X21haW5fcXVldWUoKSwgW2ZpbGVMb2FkaW5nR3JvdXAsIGxvYWRlZEZpbGVVUkxzLCBjb21w
bGV0aW9uQmxvY2sgPSBtYWtlQmxvY2tQdHIoYWN0aW9uKV0geworICAgIFJldGFpblB0cjxXZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkPiByZXRhaW5lZFNlbGYgPSBzZWxmOworICAgIGRpc3BhdGNo
X2dyb3VwX25vdGlmeShmaWxlTG9hZGluZ0dyb3VwLmdldCgpLCBkaXNwYXRjaF9nZXRfbWFpbl9x
dWV1ZSgpLCBbcmV0YWluZWRTZWxmLCBmaWxlTG9hZGluZ0dyb3VwLCBsb2FkZWRGaWxlVVJMcywg
Y29tcGxldGlvbkJsb2NrID0gbWFrZUJsb2NrUHRyKGFjdGlvbiksIGNoYW5nZUNvdW50QmVmb3Jl
TG9hZGluZ10geworICAgICAgICBpZiAoY2hhbmdlQ291bnRCZWZvcmVMb2FkaW5nID09IHJldGFp
bmVkU2VsZi0+X2NoYW5nZUNvdW50KQorICAgICAgICAgICAgcmV0YWluZWRTZWxmLT5fZmlsZW5h
bWVzRm9yRGF0YUludGVyYWN0aW9uID0gYWRvcHROUyhbbG9hZGVkRmlsZVVSTHMgY29weV0pOwor
CiAgICAgICAgIGNvbXBsZXRpb25CbG9jayhsb2FkZWRGaWxlVVJMcy5nZXQoKSk7CiAgICAgfSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IDMwYzQ3MWRlZjJlNzEzN2ZiMTYxYzdlNmZiOGUzMWMz
YmY5YmRkY2EuLjA0ZmM3NDMwNjhiNjk4ODVhYmNmOGQ5ZjIzZmQ5YmZlN2MyNjFkMzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRl
Z2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oCkBAIC02NSw2ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHJlYWRT
dHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5
cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlVSTCByZWFkVVJMRnJvbVBhc3RlYm9hcmQoaW50
IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2b2lkIGdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFj
dGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lKSBvdmVycmlkZTsKICNlbmRpZgogICAgIGludCBnZXROdW1iZXJPZkZpbGVzKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0VHlwZXMoVmVjdG9y
PFN0cmluZz4mIHR5cGVzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQppbmRleCAyMzZjYjJkOTA0YWRmMDZlY2QzNDNkZmRhOGY0YTU4NGQz
N2FkYjE2Li43NWJiOGYwN2I1YmUyYWM1YmI3NmZlZDQyMzI3NmU0MWI4NDQ0OTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCkBAIC0yMjAsNCArMjIwLDkgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJgog
ewogICAgIHJldHVybiBQbGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLnJlYWRTdHJp
bmcoaW5kZXgsIHR5cGUpOwogfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0Rmls
ZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCit7CisgICAgZmlsZW5hbWVzID0gUGxhdGZvcm1QYXN0
ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5maWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKK30K
ICNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KaW5kZXggNDA2NDMyZGVi
Y2VjYmRmZWI5NzMxM2MyM2RkN2U4MzIwNTdhOThhZS4uNmFhYjk5OWRkMzliMWJkNzMyM2I1YjRi
ZjY2Mzg5NzIyN2JjNjcxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtMTgzLDYgKzE4MywxMSBA
QCB2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6Z2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgdQogICAgIGl0ZW1zQ291bnQgPSBQbGF0Zm9ybVBhc3Rl
Ym9hcmQocGFzdGVib2FyZE5hbWUpLmNvdW50KCk7CiB9CiAKK3ZvaWQgV2ViUGFzdGVib2FyZFBy
b3h5OjpnZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcykKK3sKKyAgICBmaWxlbmFtZXMgPSBQ
bGF0Zm9ybVBhc3RlYm9hcmQocGFzdGVib2FyZE5hbWUpLmZpbGVuYW1lc0ZvckRhdGFJbnRlcmFj
dGlvbigpOworfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGQ3N2Q0MDcyMzIyMzNhNWNlOTg5
ZjNmOWI0N2RhYWEyY2JlNDAwZGEuLmU0Y2JiNGZiZGU4NzI4YzNhOWE5MTJlODVlZWY0Y2Q2MWZm
Mjg2NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC00
MDcsNiArNDA3LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcGFn
ZUNsaWVudCwgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzLCB1aW4KICAgICAsIG1fY3VycmVudERy
YWdPcGVyYXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCiAgICAgLCBtX2N1cnJlbnREcmFnSXNPdmVy
RmlsZUlucHV0KGZhbHNlKQogICAgICwgbV9jdXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNj
ZXB0ZWQoMCkKKyAgICAsIG1fZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcoZmFsc2Up
CiAjZW5kaWYKICAgICAsIG1fcGFnZUxvYWRTdGF0ZSgqdGhpcykKICAgICAsIG1fZGVsZWdhdGVz
U2Nyb2xsaW5nKGZhbHNlKQpAQCAtMTc5OSwxMyArMTgwMCwxNCBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlv
biwgRHJhZwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZp
bGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgSW50UmVj
dCYgaW5zZXJ0aW9uUmVjdCkKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJ
bnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgSW50UmVjdCYg
aW5zZXJ0aW9uUmVjdCwgYm9vbCBpc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcpCiB7CiAgICAgTUVT
U0FHRV9DSEVDSyhkcmFnT3BlcmF0aW9uIDw9IERyYWdPcGVyYXRpb25EZWxldGUpOwogCiAgICAg
bV9jdXJyZW50RHJhZ09wZXJhdGlvbiA9IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KGRyYWdP
cGVyYXRpb24pOwogICAgIG1fY3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQgPSBtb3VzZUlzT3Zl
ckZpbGVJbnB1dDsKICAgICBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRlZCA9
IG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7CisgICAgbV9kb2N1bWVudElzSGFuZGxpbmdOb25E
ZWZhdWx0RHJhZyA9IGlzSGFuZGxpbmdOb25EZWZhdWx0RHJhZzsKICAgICBzZXREcmFnQ2FyZXRS
ZWN0KGluc2VydGlvblJlY3QpOwogfQogCkBAIC0xODQyLDYgKzE4NDQsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6cmVzZXRDdXJyZW50RHJhZ0luZm9ybWF0aW9uKCkKIHsKICAgICBtX2N1cnJlbnRE
cmFnT3BlcmF0aW9uID0gV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk5vbmU7CiAgICAgbV9jdXJyZW50
RHJhZ0lzT3ZlckZpbGVJbnB1dCA9IGZhbHNlOworICAgIG1fZG9jdW1lbnRJc0hhbmRsaW5nTm9u
RGVmYXVsdERyYWcgPSBmYWxzZTsKICAgICBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVB
Y2NlcHRlZCA9IDA7CiAgICAgc2V0RHJhZ0NhcmV0UmVjdCh7IH0pOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGIxY2I4NDY1NjU4OTVkZTU4MmZmMjQyOGZm
ZTNmY2UxMjhhMDI2OGQuLmNlOTgyNjllYjNmMDgyZjE5ZTIwNDg2NzAzZmY0NWRkOTA2NTU0ZGMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTgzMiw3ICs4MzIs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmFnRXhpdGVkKFdlYkNvcmU6OkRyYWdEYXRhJiwgY29u
c3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUgPSBTdHJpbmcoKSk7CiAgICAgdm9pZCBwZXJmb3Jt
RHJhZ09wZXJhdGlvbihXZWJDb3JlOjpEcmFnRGF0YSYsIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3Jh
Z2VOYW1lLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmLCBjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSYpOwogCi0gICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1
dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYgaW5zZXJ0aW9uUmVjdCk7CisgICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJB
Y3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dCwg
dW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgaW5zZXJ0aW9uUmVjdCwgYm9vbCBpc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcpOwogICAgIHZv
aWQgZHJhZ0VuZGVkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBvcGVyYXRpb24p
OwogICAgIHZvaWQgZHJhZ0NhbmNlbGxlZCgpOwogICAgIHZvaWQgc2V0RHJhZ0NhcmV0UmVjdChj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CkBAIC04OTAsNiArODkwLDcgQEAgcHVibGljOgogICAg
IGJvb2wgY3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQoKSBjb25zdCB7IHJldHVybiBtX2N1cnJl
bnREcmFnSXNPdmVyRmlsZUlucHV0OyB9CiAgICAgdW5zaWduZWQgY3VycmVudERyYWdOdW1iZXJP
ZkZpbGVzVG9CZUFjY2VwdGVkKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RHJhZ051bWJlck9m
RmlsZXNUb0JlQWNjZXB0ZWQ7IH0KICAgICBXZWJDb3JlOjpJbnRSZWN0IGN1cnJlbnREcmFnQ2Fy
ZXRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RHJhZ0NhcmV0UmVjdDsgfQorICAgIGJv
b2wgZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcoKSBjb25zdCB7IHJldHVybiBtX2Rv
Y3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnOyB9CiAgICAgdm9pZCByZXNldEN1cnJlbnRE
cmFnSW5mb3JtYXRpb24oKTsKICAgICB2b2lkIGRpZEVuZERyYWdnaW5nKCk7CiAjZW5kaWYKQEAg
LTE4NjcsNiArMTg2OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2N1cnJlbnREcmFnSXNPdmVy
RmlsZUlucHV0OwogICAgIHVuc2lnbmVkIG1fY3VycmVudERyYWdOdW1iZXJPZkZpbGVzVG9CZUFj
Y2VwdGVkOwogICAgIFdlYkNvcmU6OkludFJlY3QgbV9jdXJyZW50RHJhZ0NhcmV0UmVjdDsKKyAg
ICBib29sIG1fZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWc7CiAjZW5kaWYKIAogICAg
IFBhZ2VMb2FkU3RhdGUgbV9wYWdlTG9hZFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZjZjNTRjNzE2MjZiZDVmZTE4
MTAzYzU1MjMxZmI3ODE5NGFmN2I4Ni4uYmRiMDYzN2I4MGFjY2FiMmVmMjM3YzM5ZmE0YWQxYjE5
ZDAwZmFmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluCkBAIC0yOTUsNyArMjk1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKIAogICAgICMgRHJhZyBhbmQgZHJvcCBtZXNzYWdlcwogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi0gICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVy
YXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNU
b0JlQWNjZXB0ZWQsIFdlYkNvcmU6OkludFJlY3QgaW5zZXJ0aW9uUmVjdCkKKyAgICBEaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgZHJhZ09wZXJhdGlvbiwgYm9vbCBtb3Vz
ZUlzT3ZlckZpbGVJbnB1dCwgdW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCwgV2Vi
Q29yZTo6SW50UmVjdCBpbnNlcnRpb25SZWN0LCBib29sIGlzSGFuZGxpbmdOb25EZWZhdWx0RHJh
ZykKICAgICBEaWRFbmREcmFnZ2luZygpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpICYm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFz
dGVib2FyZFByb3h5LmgKaW5kZXggZTQzZDFhMTMwZTdkNzM0M2EwYmY1NjAyMTdlYTUzNzgwNWM3
ODAxOC4uMjY1NTczNjFmNTU4ZTk2NjQwODY0MGY1NDA5ZDY4ODJmMjVmZWM3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtNzUsNiArNzUs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVhZFVSTEZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGlu
ZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBTdHJpbmcmKTsKICAgICB2b2lkIHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50
NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCYgc2l6ZSk7CiAg
ICAgdm9pZCBnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lLCB1aW50NjRfdCYgaXRlbXNDb3VudCk7CisgICAgdm9pZCBnZXRGaWxlbmFtZXNGb3JEYXRh
SW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgVmVjdG9yPFN0cmluZz4m
IGZpbGVuYW1lcyk7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIGdldE51
bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgdWludDY0X3QmIG51bWJl
ck9mRmlsZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzFlOTlmZmNkMDhlNzE5ZDA5MTczZjBhOTFl
NjUwMzUxZmVmYTI2NS4uNzM2YTBhZDQ1MWNlY2U2NDRkZGU4NjM2YTYxNWRmNjM1OWVjOTFkYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluCkBAIC0yOSw2ICsyOSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhc3RlYm9h
cmRQcm94eSB7CiAgICAgUmVhZFVSTEZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJp
bmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFN0cmluZyBzdHJp
bmcpCiAgICAgUmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcg
cGFzdGVib2FyZFR5cGUsIFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlLCB1aW50NjRfdCBzaXplKQogICAgIEdldFBhc3RlYm9hcmRJ
dGVtc0NvdW50KFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHVpbnQ2NF90IGl0ZW1zQ291bnQp
CisgICAgR2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKFN0cmluZyBwYXN0ZWJvYXJkTmFt
ZSkgLT4gKFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lcykKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMDUwNTYzZmE4
NTc3NTc1NmQ4NWUzZjllZDc4MjViOTgzN2Y4ZDliMC4uMmVkZjRiNzZkNTQ2NGUxZGI1NjRkOGJk
MGQzNjNhZDcyMGU3YzJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApA
QCAtMzA5LDYgKzMwOSwxMSBAQCBpbnQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQYXN0ZWJv
YXJkSXRlbXNDb3VudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgIHJldHVybiBp
dGVtc0NvdW50OwogfQogCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0RmlsZW5hbWVz
Rm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94
eTo6R2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKHBhc3RlYm9hcmROYW1lKSwgTWVzc2Fn
ZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uOjpS
ZXBseShmaWxlbmFtZXMpLCAwKTsKK30KKwogUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4g
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRO
YW1lKQogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVn
aWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCmluZGV4IDJkN2Q4YTVjMDE4YmMyMTM0OWRmZTNjZjAwZTQ0YTMxNWY4
ZGQzZmMuLmU0Mzg3YzkzMDIxOTg0YTg1NWIxYThjNzRmZWZjOGI1YmQ3Nzg1YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjYsNiArNjYsNyBAQCBwcml2YXRlOgogICAg
IFN0cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsK
ICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJvbVBhc3RlYm9h
cmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpVUkwgcmVhZFVSTEZyb21Q
YXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRGaWxlbmFtZXNG
b3JEYXRhSW50ZXJhY3Rpb24oVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkK
ICAgICBpbnQgZ2V0TnVtYmVyT2ZGaWxlcyhjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBmMTMyN2NiZjNlMWZjZmI5MmE5YzEyZTM1YzBkNTc1Y2UxZTk0YzRlLi5jY2NkMDc1
YmRmMTBlOWI4MmMxZGIwNDg1MjJiYmZjM2IzYjJkM2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNTM2LDcgKzM1MzYsNyBAQCBib29s
IFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkK
IHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlv
biwgY29uc3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBJbnRQb2ludCYgZ2xvYmFs
UG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaywgV2ViU2VsZWN0
aW9uRGF0YSYmIHNlbGVjdGlvbiwgdWludDMyX3QgZmxhZ3MpCiB7CiAgICAgaWYgKCFtX3BhZ2Up
IHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0pKTsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJB
Y3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0sIGZhbHNlKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKQEAgLTM1NDQsMTIgKzM1NDQsMTIgQEAgdm9pZCBXZWJQYWdlOjpw
ZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBjb25zdCBJbnRQb2lu
dCYgY2xpZW4KICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJB
Y3Rpb25FbnRlcmVkOiB7CiAgICAgICAgIERyYWdPcGVyYXRpb24gcmVzb2x2ZWREcmFnT3BlcmF0
aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbnRlcmVkKGRyYWdEYXRhKTsKLSAg
ICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCku
bW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm51bWJlck9m
SXRlbXNUb0JlQWNjZXB0ZWQoKSwgeyB9KSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJh
dGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1f
cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSwg
ZmFsc2UpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJB
Y3Rpb25VcGRhdGVkOiB7CiAgICAgICAgIERyYWdPcGVyYXRpb24gcmVzb2x2ZWREcmFnT3BlcmF0
aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFbnRlcmVkKGRyYWdEYXRhKTsKLSAg
ICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCku
bW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm51bWJlck9m
SXRlbXNUb0JlQWNjZXB0ZWQoKSwgeyB9KSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJh
dGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1f
cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSwg
ZmFsc2UpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJB
Y3Rpb25FeGl0ZWQ6CkBAIC0zNTY5LDI1ICszNTY5LDI1IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgY29uc3QgSW50UG9pbnQmIGNs
aWVuCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBh
Y3Rpb24sIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhJiBkcmFnRGF0YSwgY29uc3QgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlLCBjb25zdCBTYW5kYm94RXh0
ZW5zaW9uOjpIYW5kbGVBcnJheSYgc2FuZGJveEV4dGVuc2lvbnNIYW5kbGVBcnJheSkKIHsKICAg
ICBpZiAoIW1fcGFnZSkgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSwgZmFsc2UsIDAs
IHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSwgZmFsc2UsIDAsIHsgfSwgZmFs
c2UpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAg
ICAgY2FzZSBEcmFnQ29udHJvbGxlckFjdGlvbkVudGVyZWQ6IHsKICAgICAgICAgRHJhZ09wZXJh
dGlvbiByZXNvbHZlZERyYWdPcGVyYXRpb24gPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkuZHJh
Z0VudGVyZWQoZHJhZ0RhdGEpOwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1f
cGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBtX3BhZ2UtPmRyYWdD
YXJldENvbnRyb2xsZXIoKS5jYXJldFBvc2l0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpKSk7
CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxl
cigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1i
ZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLmNh
cmV0UG9zaXRpb24oKS5hYnNvbHV0ZUNhcmV0Qm91bmRzKCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xs
ZXIoKS5kb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJhZygpKSk7CiAgICAgICAgIGJyZWFr
OwogCiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25VcGRhdGVkOiB7CiAgICAg
ICAgIERyYWdPcGVyYXRpb24gcmVzb2x2ZWREcmFnT3BlcmF0aW9uID0gbV9wYWdlLT5kcmFnQ29u
dHJvbGxlcigpLmRyYWdVcGRhdGVkKGRyYWdEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFn
T3BlcmF0aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQo
KSwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwg
bV9wYWdlLT5kcmFnQ2FyZXRDb250cm9sbGVyKCkuY2FyZXRQb3NpdGlvbigpLmFic29sdXRlQ2Fy
ZXRCb3VuZHMoKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBl
cmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1fcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3BhZ2UtPmRyYWdDb250
cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBtX3BhZ2UtPmRyYWdDYXJldENv
bnRyb2xsZXIoKS5jYXJldFBvc2l0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpLCBtX3BhZ2Ut
PmRyYWdDb250cm9sbGVyKCkuZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcoKSkpOwog
ICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBEcmFnQ29udHJvbGxlckFjdGlvbkV4aXRl
ZDoKICAgICAgICAgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdFeGl0ZWQoZHJhZ0RhdGEp
OwotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29u
dHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSwgZmFsc2UsIDAsIHsgfSkpOworICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbihEcmFnT3BlcmF0aW9uTm9uZSwgZmFsc2UsIDAsIHsgfSwgZmFsc2UpKTsKICAgICAgICAg
YnJlYWs7CiAgICAgICAgIAogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25QZXJmb3JtRHJh
Z09wZXJhdGlvbjogewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307339</attachid>
            <date>2017-04-17 22:01:31 -0700</date>
            <delta_ts>2017-04-18 12:35:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170880-20170417220130.patch</filename>
            <type>text/plain</type>
            <size>37290</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWFlOGIwN2MzYWNkZTAz
YTQwNjc3ODczNDMwMjk3MTAzYWVmZTViMy4uMTVjYjNlMmUzZTMxZmUxMzMwNzU0NjFiNTBiY2Y0
YjRjMjYyOWI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE3LTA0LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgRGF0YVRyYW5zZmVyOjpmaWxlcygpIHdoZW4gcGVyZm9ybWluZyBhIERIVE1MIGRhdGEgaW50
ZXJhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDg4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEzMTQ2ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBmZXRj
aGluZyBmaWxlcyBmcm9tIHRoZSBEYXRhVHJhbnNmZXIgd2hlbiBwZXJmb3JtaW5nIGEgZGF0YSBp
bnRlcmFjdGlvbiBvcGVyYXRpb24gaGFuZGxlZCBieQorICAgICAgICBKYXZhU2NyaXB0LiBUaGVy
ZSBhcmUgdHdvIGNoYW5nZXMgd2UgbWFrZSBoZXJlIHRvIGFjaGlldmUgdGhpczoKKworICAgICAg
ICBGaXJzdCwgd2UgdGVhY2ggdGhlIFBhc3RlYm9hcmQgb24gaU9TIHRvIGtub3cgd2hhdCBmaWxl
IHBhdGhzIGhvbGQgdGhlIGl0ZW0gcHJvdmlkZXIgY29udGVudHMgdXNlZCBpbiB0aGUKKyAgICAg
ICAgY3VycmVudCBkYXRhIGludGVyYWN0aW9uIG9wZXJhdGlvbi4gT24gaU9TLCBQYXN0ZWJvYXJk
OjpyZWFkRmlsZW5hbWVzIGlzIGN1cnJlbnRseSBoYXJkLWNvZGVkIHRvIHJldHVybiBhbiBlbXB0
eQorICAgICAgICB2ZWN0b3IuIFRvIGZpeCB0aGlzLCB3ZSBhZGQgbG9naWMgdG8gdGhlIGlPUyBQ
YXN0ZWJvYXJkIHRvIHJlbWVtYmVyIHdoYXQgdGhlIHBhdGhzIG9mIGFsbCBmaWxlcyB0aGF0IHdl
cmUKKyAgICAgICAgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBmcm9tIGl0ZW0gcHJvdmlkZXJzIGFzIHRo
ZSBkYXRhIGludGVyYWN0aW9uIGlzIHRha2luZyBwbGFjZS4gVGhpcyBlbnN1cmVzIHRoYXQgYXQg
dGhlCisgICAgICAgIFdlYkNvcmUgbGF5ZXIsIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzIG9uIE1hYyBhbmQgaU9TIGlzIHNpbWlsYXIgLS0gdGhleSBib3Ro
IGNhbGwgb3V0CisgICAgICAgIHRvIHRoZSBjbGllbnQgbGF5ZXIgaW4gb3JkZXIgdG8gcmVhZCBm
aWxlIHBhdGhzIG9mZiBvZiB0aGVpciByZXNwZWN0aXZlIHBhc3RlYm9hcmRzLiBPbmNlIGluIHRo
ZSBjbGllbnQgbGF5ZXIKKyAgICAgICAgKFdlYktpdDEgb3IgV2ViS2l0Mikgd2UgdGhlbiBjYWxs
IGludG8gUGxhdGZvcm1QYXN0ZWJvYXJkOjpmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24sIHdo
aWNoIHRoZW4gY2FsbHMgaW50bworICAgICAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGlm
IGFwcGxpY2FibGUuCisKKyAgICAgICAgVGhlIHNlY29uZCB0d2VhayBpcyB0byBwcm9wYWdhdGUg
aW5mb3JtYXRpb24gYWJvdXQgd2hldGhlciB0aGUgZG9jdW1lbnQgaXMgcHJldmVudGluZyBkZWZh
dWx0IGRhdGEgaW50ZXJhY3Rpb24KKyAgICAgICAgYmVoYXZpb3IgdG8gdGhlIGNsaWVudCBsYXll
ci4gVGhpcyBwcmV2ZW50cyB1cyBmcm9tIGhhdmluZyB0byBzYXZlIHBhc3RlYm9hcmQgY29udGVu
dCB3aGVuIHBlcmZvcm1pbmcgZGF0YQorICAgICAgICBpbnRlcmFjdGlvbiBpbiBjYXNlcyB3aGVy
ZSBmaWxlIGluZm9ybWF0aW9uIGlzIG5vdCBuZWVkZWQgKGkuZS4gdGhlIGRlZmF1bHQgYmVoYXZp
b3IgaXMgYmVpbmcgcGVyZm9ybWVkLCBhbmQKKyAgICAgICAgdGhlIHRhcmdldCBpcyBub3QgYSBm
aWxlIGlucHV0KS4gVGhpcyBhbHNvIGF2b2lkcyBjb21wYXRpYmlsaXR5IGlzc3VlcyB3aXRoIGlu
c2VydGlvbiBhbmltYXRpb25zIHdoZW4gcGVyZm9ybWluZworICAgICAgICBkYXRhIGludGVyYWN0
aW9uIGluIGVkaXRhYmxlIGFyZWFzLCBkdWUgdG8gdGhlIGV4dHJhIHRpbWUgc3BlbnQgbG9hZGlu
ZyBpdGVtIHByb3ZpZGVyIGRhdGEgaW50byBhIHRlbXBvcmFyeQorICAgICAgICBmaWxlLgorCisg
ICAgICAgIFVuaXQgdGVzdHMgaW4gPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA5MDM+LgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRyb2xsZXIpOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZCk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKToKKworICAgICAgICBS
ZWZhY3RvciBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnIHRvIHJldHVybiBhIERyYWdI
YW5kbGluZ01ldGhvZC4gVGhpcyBtZXRob2QgY3VycmVudGx5IHJldHVybnMgZWl0aGVyCisgICAg
ICAgIHRydWUgb3IgZmFsc2U7IHRoaXMgcGF0Y2ggY2hhbmdlcyBpdCB0byByZXR1cm4gYSBEcmFn
SGFuZGxpbmdNZXRob2QsIHdoaWNoIGlzIGVpdGhlciBOb25lICh0aGUgZXF1aXZhbGVudCBvZgor
ICAgICAgICByZXR1cm5pbmcgZmFsc2UgYmVmb3JlIHRoZSBwYXRjaCksIERlZmF1bHQgKGluZGlj
YXRpbmcgdGhhdCB0aGUgZHJvcCBkZXN0aW5hdGlvbiBpcyBhbGxvd2luZyBkZWZhdWx0IGhhbmRs
aW5nKSwKKyAgICAgICAgb3IgTm9uRGVmYXVsdCwgd2hpY2ggaW5kaWNhdGVzIHRoYXQgdGhlIGRy
b3AgZGVzdGluYXRpb24gaGFzIGV4cGxpY2l0bHkgcHJldmVudGVkIGRlZmF1bHQuCisKKyAgICAg
ICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJv
bGxlcjo6ZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcpOgorCisgICAgICAgIFVzZWQg
YnkgV2ViUGFnZSB3aGVuIHNlbmRpbmcgYW4gSVBDIHJlc3BvbnNlIGFmdGVyIGhhbmRsaW5nIGRy
YWdlbnRlcmVkIG9yIGRyYWd1cGRhdGVkLgorCisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2Fy
ZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oOgorICAgICAgICAqIHBs
YXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2Fy
ZDo6cmVhZEZpbGVuYW1lcyk6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVi
b2FyZElPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6ZmlsZW5h
bWVzRm9yRGF0YUludGVyYWN0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tOgorCisgICAgICAgIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgbm93
IHJlbWVtYmVycyB0aGUgZmlsZSBVUkxzIG9mIHN1Y2Nlc3NmdWxseSBsb2FkZWQgaXRlbSBwcm92
aWRlciBjb250ZW50IHdoZW4gYSBkYXRhCisgICAgICAgIGludGVyYWN0aW9uIGlzIGJlaW5nIHBl
cmZvcm1lZC4gVGhlIG5ldyBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24gcHJvcGVydHkgcmV0
dXJucyB0aGUgYXJyYXkgb2YgZGF0YQorICAgICAgICBpbnRlcmFjdGlvbiBmaWxlIFVSTHMgd2hp
Y2ggaGF2ZSBiZWVuIHByb3BhZ2F0ZWQgdG8gdGhlIHdlYiBwcm9jZXNzIGFsb25nIHdpdGggc2Fu
ZGJveCBleHRlbnNpb25zLiBUaGlzIHN0YXRlCisgICAgICAgIGlzIGNsZWFuZWQgdXAgd2hlbiBs
aXN0IG9mIGl0ZW0gcHJvdmlkZXJzIGNoYW5nZSAoaS5lLiB3aGVuIHRoZSBkYXRhIGludGVyYWN0
aW9uIG9wZXJhdGlvbiBpcyBmaW5pc2hlZCwgb3IgaWYKKyAgICAgICAgdGhlIHdlYiBjb250ZW50
IHByb2Nlc3MgY3Jhc2hlcywgZXRjLikKKworICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkIGluaXRdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzZXRJ
dGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGZp
bGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkIGRvQWZ0ZXJMb2FkaW5nUHJvdmlkZWRDb250ZW50SW50b0ZpbGVVUkxzOl0pOgor
CiAyMDE3LTA0LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIHVudXNlZCBTaGFyZWRCdWZmZXIgY29uc3RydWN0b3IKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwppbmRleCBjNGJhMzMyYTlmMDdlNDg5NjY3ZDI5OWJkZDIxY2E3OGRlNDM0ZWUyLi42
MmIxYzZiMjFjZjg2NThmOGEyZGU1NWQzNjE1NmU4MjY1MGQ1Mzk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMTkgQEAKIDIwMTctMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKKyAgICAgICAgW1dLMl0gU3VwcG9ydCBEYXRhVHJhbnNmZXI6OmZpbGVz
KCkgd2hlbiBwZXJmb3JtaW5nIGEgREhUTUwgZGF0YSBpbnRlcmFjdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODgwCisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS8zMTMxNDY4OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGp1c3QgZm9yIGEgY2hhbmdlIGluIFBhc3RlYm9hcmRTdHJhdGVneS4g
U2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbik6CisKKzIwMTctMDQtMTUgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAgICAgICAgW1dLMl0gU3Vw
cG9ydCBkYXRhIGludGVyYWN0aW9uIG9mIGZpbGVzIGludG8gZmlsZSBpbnB1dHMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDgwMwogICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzEyODYxMzA+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjI0ZDgzYTc4NzE5MWUyOWZi
YzcwMjY0MmQwOTFlMDViN2FiNjU3Mi4uNDAxZmE0YmQyNTk4N2U4ZDE0ZmJmZjFjZmE5NWRiYTli
ZGE0ZTk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM3IEBACiAyMDE3LTA0LTE1ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtXSzJdIFN1cHBvcnQg
RGF0YVRyYW5zZmVyOjpmaWxlcygpIHdoZW4gcGVyZm9ybWluZyBhIERIVE1MIGRhdGEgaW50ZXJh
Y3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDg4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEzMTQ2ODk+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VlIHRoZSBXZWJDb3JlIENoYW5nZUxv
ZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3Rl
Ym9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6
OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpkb2N1bWVudElzSGFuZGxp
bmdOb25EZWZhdWx0RHJhZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbjoKKworICAgICAgICBBZGRzIGFuIElQQyBhcmd1bWVudCB0byBEaWRQZXJmb3JtRHJh
Z0NvbnRyb2xsZXJBY3Rpb24gc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBwYWdlIHByZXZlbnRlZCB0
aGUgZGVmYXVsdCBiZWhhdmlvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2Vz
LmluOgorCisgICAgICAgIEFkZHMgSVBDIHBsdW1iaW5nIGZvciB0aGUgbmV3IGZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbiBQYXN0ZWJvYXJkIGNvZGVwYXRoLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFj
dGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6CisK
KzIwMTctMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKICAg
ICAgICAgW1dLMl0gU3VwcG9ydCBkYXRhIGludGVyYWN0aW9uIG9mIGZpbGVzIGludG8gZmlsZSBp
bnB1dHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MDgwMwogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEyODYxMzA+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGQ1MzM5YTQ2MDU4NDZmODBkODAxM2Y0YTY5Yzg1YjY4
MGQxNmMzYWMuLjMyYTYyMzI5MWMwZTg4MzIxOTgzODE5MDMzMWQxMTRkZDY3NTg4MDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgRHJh
Z0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGllbnQmIGNsaWVu
dCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9u
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKDApCi0gICAgLCBtX2RvY3VtZW50SXNIYW5kbGluZ0Ry
YWcoZmFsc2UpCisgICAgLCBtX2RvY3VtZW50RHJhZ0hhbmRsaW5nTWV0aG9kKERyYWdIYW5kbGlu
Z01ldGhvZDo6Tm9uZSkKICAgICAsIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5h
dGlvbkFjdGlvbk5vbmUpCiAgICAgLCBtX2RyYWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlv
bk5vbmUpCiAgICAgLCBtX2RpZEluaXRpYXRlRHJhZyhmYWxzZSkKQEAgLTIyOCw3ICsyMjgsNyBA
QCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEpCiAgICAgaWYgKG1fZG9jdW1lbnRVbmRlck1vdXNlKQogICAgICAgICBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gbV9kb2N1bWVudFVuZGVyTW91c2UtPnNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpOwogCi0gICAgaWYgKChtX2RyYWdEZXN0
aW5hdGlvbkFjdGlvbiAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKSAmJiBtX2RvY3VtZW50
SXNIYW5kbGluZ0RyYWcpIHsKKyAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpICYmIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRob2Qg
IT0gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lKSB7CiAgICAgICAgIG1fY2xpZW50LndpbGxQZXJm
b3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MLCBkcmFn
RGF0YSk7CiAgICAgICAgIFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3BhZ2UubWFpbkZyYW1l
KCkpOwogICAgICAgICBib29sIHByZXZlbnRlZERlZmF1bHQgPSBmYWxzZTsKQEAgLTI4OCw4ICsy
ODgsOCBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgfQogCiAgICAgRHJhZ09wZXJhdGlvbiBk
cmFnT3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgbV9kb2N1bWVudElzSGFuZGxp
bmdEcmFnID0gdHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlv
biwgZHJhZ09wZXJhdGlvbik7Ci0gICAgaWYgKCFtX2RvY3VtZW50SXNIYW5kbGluZ0RyYWcgJiYg
KG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCkpCisg
ICAgbV9kb2N1bWVudERyYWdIYW5kbGluZ01ldGhvZCA9IHRyeURvY3VtZW50RHJhZyhkcmFnRGF0
YSwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24sIGRyYWdPcGVyYXRpb24pOworICAgIGlmIChtX2Rv
Y3VtZW50RHJhZ0hhbmRsaW5nTWV0aG9kID09IERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uZSAmJiAo
bV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25Mb2FkKSkKICAg
ICAgICAgZHJhZ09wZXJhdGlvbiA9IG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEpOwogICAgIHJl
dHVybiBkcmFnT3BlcmF0aW9uOwogfQpAQCAtMzI5LDEzICszMjksMTMgQEAgc3RhdGljIEVsZW1l
bnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UsIGNvbnN0
IEludFBvaW50JgogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsKIH0KIAotYm9v
bCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0
YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdPcGVyYXRpb24mIGRyYWdP
cGVyYXRpb24pCitEcmFnQ29udHJvbGxlcjo6RHJhZ0hhbmRsaW5nTWV0aG9kIERyYWdDb250cm9s
bGVyOjp0cnlEb2N1bWVudERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnRGVzdGlu
YXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgZHJhZ09wZXJhdGlvbikKIHsK
ICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmU7CiAKICAgICBpZiAobV9kcmFn
SW5pdGlhdG9yICYmICFtX2RvY3VtZW50VW5kZXJNb3VzZS0+c2VjdXJpdHlPcmlnaW4oKS5jYW5S
ZWNlaXZlRHJhZ0RhdGEobV9kcmFnSW5pdGlhdG9yLT5zZWN1cml0eU9yaWdpbigpKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25l
OwogCiAgICAgYm9vbCBpc0hhbmRsaW5nRHJhZyA9IGZhbHNlOwogICAgIGlmIChhY3Rpb25NYXNr
ICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpIHsKQEAgLTM0NiwzMCArMzQ2LDMwIEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0Rh
dGEsIERyYWdEZXN0aW5hdGlvbkFjCiAgICAgICAgIC8vIHdoaWNoIGNvdWxkIHByb2Nlc3MgZHJh
Z2xlYXZlIGV2ZW50IGFuZCByZXNldCBtX2RvY3VtZW50VW5kZXJNb3VzZSBpbgogICAgICAgICAv
LyBkcmFnRXhpdGVkLgogICAgICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQotICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhv
ZDo6Tm9uZTsKICAgICB9CiAKICAgICAvLyBJdCdzIHVuY2xlYXIgd2h5IHRoaXMgY2hlY2sgaXMg
YWZ0ZXIgdHJ5REhUTUxEcmFnLgogICAgIC8vIFdlIHNlbmQgZHJhZyBldmVudHMgaW4gdHJ5REhU
TUxEcmFnIGFuZCB0aGF0IG1heSBiZSB0aGUgcmVhc29uLgogICAgIFJlZlB0cjxGcmFtZVZpZXc+
IGZyYW1lVmlldyA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT52aWV3KCk7CiAgICAgaWYgKCFmcmFt
ZVZpZXcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIERyYWdIYW5kbGlu
Z01ldGhvZDo6Tm9uZTsKIAogICAgIGlmIChpc0hhbmRsaW5nRHJhZykgewogICAgICAgICBjbGVh
ckRyYWdDYXJldCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIERyYWdI
YW5kbGluZ01ldGhvZDo6Tm9uRGVmYXVsdDsKICAgICB9CiAKICAgICBpZiAoKGFjdGlvbk1hc2sg
JiBEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0KSAmJiBjYW5Qcm9jZXNzRHJhZyhkcmFnRGF0YSkp
IHsKICAgICAgICAgaWYgKGRyYWdEYXRhLmNvbnRhaW5zQ29sb3IoKSkgewogICAgICAgICAgICAg
ZHJhZ09wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25HZW5lcmljOwotICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpEZWZhdWx0Owog
ICAgICAgICB9CiAKICAgICAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXctPndpbmRvd1Rv
Q29udGVudHMoZHJhZ0RhdGEuY2xpZW50UG9zaXRpb24oKSk7CiAgICAgICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSBlbGVtZW50VW5kZXJNb3VzZShtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9p
bnQpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lOwogICAgICAgICAKICAg
ICAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudEFzRmlsZUlucHV0ID0gYXNGaWxlSW5wdXQo
KmVsZW1lbnQpOwogICAgICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJNb3VzZSAhPSBl
bGVtZW50QXNGaWxlSW5wdXQpIHsKQEAgLTQwNyw3ICs0MDcsNyBAQCBib29sIERyYWdDb250cm9s
bGVyOjp0cnlEb2N1bWVudERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnRGVzdGlu
YXRpb25BYwogICAgICAgICAgICAgbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVy
T2ZGaWxlcyAhPSAxID8gMCA6IDE7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAgICAgIHJldHVy
biB0cnVlOworICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpEZWZhdWx0OwogICAg
IH0KICAgICAKICAgICAvLyBXZSBhcmUgbm90IG92ZXIgYW4gZWRpdGFibGUgcmVnaW9uLiBNYWtl
IHN1cmUgd2UncmUgY2xlYXJpbmcgYW55IHByaW9yIGRyYWcgY3Vyc29yLgpAQCAtNDE1LDcgKzQx
NSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjCiAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVu
dFVuZGVyTW91c2UpCiAgICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91c2UtPnNldENh
blJlY2VpdmVEcm9wcGVkRmlsZXMoZmFsc2UpOwogICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVy
TW91c2UgPSBudWxscHRyOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gRHJhZ0hhbmRs
aW5nTWV0aG9kOjpOb25lOwogfQogCiBEcmFnU291cmNlQWN0aW9uIERyYWdDb250cm9sbGVyOjpk
ZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggYjcxYjk4YWQyYzNkYTlhNDkzYmVj
YjZjNGQ5ZmJmNTJiNTFlMTExOS4uMTJmOGMzZDRhMGE3MzUxZWMwMDY0ZTI5M2EyMmU1ODgzMGNm
MTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtNzksNiArNzksOCBA
QCBzdHJ1Y3QgRHJhZ1N0YXRlOwogICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJhZ09mZnNldCgp
IGNvbnN0IHsgcmV0dXJuIG1fZHJhZ09mZnNldDsgfQogICAgICAgICBEcmFnU291cmNlQWN0aW9u
IGRyYWdTb3VyY2VBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VBY3Rpb247IH0K
IAorICAgICAgICBlbnVtIGNsYXNzIERyYWdIYW5kbGluZ01ldGhvZCB7IE5vbmUsIERlZmF1bHQs
IE5vbkRlZmF1bHQgfTsKKyAgICAgICAgYm9vbCBkb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0
RHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRob2QgPT0gRHJh
Z0hhbmRsaW5nTWV0aG9kOjpOb25EZWZhdWx0OyB9CiAgICAgICAgIERvY3VtZW50KiBkb2N1bWVu
dFVuZGVyTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKTsg
fQogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0KICAgICAgICAgRHJhZ1Nv
dXJjZUFjdGlvbiBkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJvb3RW
aWV3UG9pbnQpOwpAQCAtMTAzLDcgKzEwNSw3IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAg
IGJvb2wgY29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYpOwogICAgICAgICBEcmFnT3Bl
cmF0aW9uIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGNvbnN0IERyYWdEYXRhJik7CiAgICAgICAgIERy
YWdPcGVyYXRpb24gb3BlcmF0aW9uRm9yTG9hZChjb25zdCBEcmFnRGF0YSYpOwotICAgICAgICBi
b29sIHRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYsIERyYWdEZXN0aW5hdGlvbkFjdGlv
biwgRHJhZ09wZXJhdGlvbiYpOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRob2QgdHJ5RG9jdW1l
bnREcmFnKGNvbnN0IERyYWdEYXRhJiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnT3BlcmF0
aW9uJik7CiAgICAgICAgIGJvb2wgdHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRhJiwgRHJhZ09w
ZXJhdGlvbiYpOwogICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oY29uc3QgRHJh
Z0RhdGEmKTsKICAgICAgICAgdm9pZCBjbGVhckRyYWdDYXJldCgpOwpAQCAtMTMwLDcgKzEzMiw3
IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudD4gbV9kcmFnSW5p
dGlhdG9yOyAvLyBUaGUgRG9jdW1lbnQgKGlmIGFueSkgdGhhdCBpbml0aWF0ZWQgdGhlIGRyYWcu
CiAgICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBtX2ZpbGVJbnB1dEVsZW1lbnRVbmRl
ck1vdXNlOwogICAgICAgICB1bnNpZ25lZCBtX251bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7Ci0g
ICAgICAgIGJvb2wgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnOworICAgICAgICBEcmFnSGFuZGxp
bmdNZXRob2QgbV9kb2N1bWVudERyYWdIYW5kbGluZ01ldGhvZDsKIAogICAgICAgICBEcmFnRGVz
dGluYXRpb25BY3Rpb24gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247CiAgICAgICAgIERyYWdTb3Vy
Y2VBY3Rpb24gbV9kcmFnU291cmNlQWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBlNmFhY2MyYTVlZjNkNWJmZmNiMzBkZmQ1MmI2YzY4
MDk3ODBjZTgzLi5lODhhNDg5MTE4MzY1NDk0NDhmZGNmNWY0YTQ1N2IyNDJkN2Y3NjJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApAQCAtNDksNiAr
NDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJv
YXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4g
cmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwg
VVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZ2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxl
bmFtZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZiAvLyBQTEFU
Rk9STShJT1MpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lkIGdldFR5cGVz
KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJk
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAx
ZDZkNGNiMjQyZTdlMTg0N2RhM2ViMmNkYjg4YjYzYzkzOTg3MjRjLi4zN2E3OTE4M2Y2Y2Y5YjQx
Zjg0ZjhiMGE2N2FkN2JkOGIwM2E0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZE5hbWUpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9y
bVBhc3RlYm9hcmQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5nPiBmaWxlbmFt
ZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICNlbmRpZgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBTdHJpbmcgdW5pcXVlTmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmgKaW5kZXggMWY1ZDk5NjFhYTgzYzRkMGEzOTlkMmJmNmU3
MTg2NDU5MzhlNDJkNS4uYjdlMWE1MDEwZDYwOGMzYzM4Yzk3YmI0ZmRmNDM2MDY0NTI3MDcyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2Fy
ZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQu
aApAQCAtNTAsNiArNTAsNyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdlYlBhc3RlYm9h
cmRJdGVtRGF0YSA6IE5TT2JqZWN0CiAtICh2b2lkKXNldEl0ZW1zRnJvbU9iamVjdFJlcHJlc2Vu
dGF0aW9uczooTlNBcnJheTxXZWJQYXN0ZWJvYXJkSXRlbURhdGEgKj4gKilpdGVtRGF0YTsKIC0g
KHZvaWQpc2V0SXRlbXM6KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopaXRlbXM7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkZpbGVzOworQHByb3Bl
cnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0FycmF5PE5TVVJMICo+ICpmaWxlbmFtZXNGb3JE
YXRhSW50ZXJhY3Rpb247CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
UGFzdGVib2FyZElPUy5tbQppbmRleCBlY2JiMzFkNjViYjFmYjM5ODQwOThiYTM4NTRjOGFjMmU5
NTUxNTFlLi43MjliMGQ1ZDQ5MGM5MTE4YzlkZmZjOWI2NzllNzliYTZhZDRkZjZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAtMzc3LDcgKzM3
NywxMCBAQCBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCiAKIFZlY3RvcjxTdHJp
bmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQogewotICAgIHJldHVybiBWZWN0b3I8U3Ry
aW5nPigpOworICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICAvLyBDdXJyZW50bHks
IGRhdGEgaW50ZXJhY3Rpb24gaXMgdGhlIG9ubHkgY2FzZSBvbiBpT1Mgd2hlcmUgdGhlIHBhc3Rl
Ym9hcmQgbWF5IGNvbnRhaW4gcmVsZXZhbnQgZmlsZW5hbWVzLgorICAgIHBsYXRmb3JtU3RyYXRl
Z2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0
aW9uKGZpbGVuYW1lcywgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgcmV0dXJuIGZpbGVuYW1lczsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3Jt
UGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBh
c3RlYm9hcmRJT1MubW0KaW5kZXggYTc0NTc0NDYwYjNlNmQ5NWVjOWEwZmU1ODg2NGRjNTllYmM1
MmM4Zi4uMmIyMjNkOWY2MTY3MDY4YmZlNjEyNTA3MzRmN2M4OTFhZjM0ZTY3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
CkBAIC05MSw2ICs5MSwxOCBAQCBpbnQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpudW1iZXJPZkZpbGVz
KCkKICAgICByZXR1cm4gW21fcGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KG51bWJlck9mRmlsZXMpXSA/IFttX3Bhc3RlYm9hcmQgbnVtYmVyT2ZGaWxlc10gOiAwOwogfQog
CitWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpCit7CisgICAgaWYgKCFbbV9wYXN0ZWJvYXJkIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKV0pCisgICAgICAgIHJldHVybiB7
IH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7CisgICAgZm9yIChOU1VSTCAqZmls
ZVVSTCBpbiBbbV9wYXN0ZWJvYXJkIGZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbl0pCisgICAg
ICAgIGZpbGVuYW1lcy5hcHBlbmQoZmlsZVVSTC5wYXRoKTsKKworICAgIHJldHVybiBmaWxlbmFt
ZXM7Cit9CisKIFN0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnN0cmluZ0ZvclR5cGUoY29uc3Qg
U3RyaW5nJiB0eXBlKQogewogICAgIE5TQXJyYXkgKnZhbHVlcyA9IFttX3Bhc3RlYm9hcmQgdmFs
dWVzRm9yUGFzdGVib2FyZFR5cGU6dHlwZSBpbkl0ZW1TZXQ6W05TSW5kZXhTZXQgaW5kZXhTZXRX
aXRoSW5kZXg6MF1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
Ykl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgKaW5kZXggZDgwNmUwMDllODhhZjhjM2Q4OGJiNDg1
YWRkMDIxMTgxZmU4Yjc2Ny4uODMyM2U3MjA3OGI0N2I3ZDA3NzJlNjQyMDlhOGYxMzU0YjE2YjA5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZC5oCkBAIC00Myw2ICs0Myw5IEBAIFdFQkNPUkVfRVhQT1JUIEBpbnRl
cmZhY2UgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCA6IE5TT2JqZWN0PEFic3RyYWN0UGFzdGVi
b2FyCiBAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkl0
ZW1zOwogQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIgY2hhbmdlQ291
bnQ7CiAKKy8vIFRoaXMgd2lsbCBvbmx5IGJlIG5vbi1lbXB0eSB3aGVuIGFuIG9wZXJhdGlvbiBp
cyBiZWluZyBwZXJmb3JtZWQuCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TQXJy
YXk8TlNVUkwgKj4gKmZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbjsKKwogQHByb3BlcnR5IChy
ZWFkb25seSwgbm9uYXRvbWljKSBCT09MIGhhc1BlbmRpbmdPcGVyYXRpb247CiAtICh2b2lkKWlu
Y3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudDsKIC0gKHZvaWQpZGVjcmVtZW50UGVuZGluZ09w
ZXJhdGlvbkNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
Ykl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQppbmRleCA5ZTZhN2Y3ZmNjODkyOTk5MmZkMDRl
ODY4OWEyYmM5Yjg0OTY4ZTE5Li43YWIxNjQ5OGVlNzIyMGU5ZWZlMzZiYjk1ZWEzMTFlMGQ2YThk
MmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3Zp
ZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAtODQsNiArODQsNyBAQCBzdGF0aWMgQk9PTCBpc0lt
YWdlVHlwZShOU1N0cmluZyAqdHlwZSkKIEBpbXBsZW1lbnRhdGlvbiBXZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkIHsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2l0ZW1Qcm92aWRlcnM7CiAgICAg
UmV0YWluUHRyPE5TQXJyYXk+IF9jYWNoZWRUeXBlSWRlbnRpZmllcnM7CisgICAgUmV0YWluUHRy
PE5TQXJyYXk+IF9maWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb247CiB9CiAKICsgKGluc3RhbmNl
dHlwZSlzaGFyZWRJbnN0YW5jZQpAQCAtMTAyLDYgKzEwMyw3IEBAIHN0YXRpYyBCT09MIGlzSW1h
Z2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAgICBfaXRlbVByb3ZpZGVycyA9IGFkb3B0TlMo
W1tOU0FycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIF9jaGFuZ2VDb3VudCA9IDA7CiAgICAg
ICAgIF9wZW5kaW5nT3BlcmF0aW9uQ291bnQgPSAwOworICAgICAgICBfZmlsZW5hbWVzRm9yRGF0
YUludGVyYWN0aW9uID0gQFsgXTsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xNDAs
NiArMTQyLDcgQEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5cGUpCiAgICAg
X2l0ZW1Qcm92aWRlcnMgPSBpdGVtUHJvdmlkZXJzOwogICAgIF9jaGFuZ2VDb3VudCsrOwogICAg
IF9jYWNoZWRUeXBlSWRlbnRpZmllcnMgPSBuaWw7CisgICAgX2ZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbiA9IEBbIF07CiB9CiAKIC0gKE5TSW50ZWdlciludW1iZXJPZkl0ZW1zCkBAIC0yNTQs
NiArMjU3LDExIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAg
IHJldHVybiBfY2hhbmdlQ291bnQ7CiB9CiAKKy0gKE5TQXJyYXk8TlNVUkwgKj4gKilmaWxlbmFt
ZXNGb3JEYXRhSW50ZXJhY3Rpb24KK3sKKyAgICByZXR1cm4gX2ZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbi5nZXQoKTsKK30KKwogLSAoTlNJbnRlZ2VyKW51bWJlck9mRmlsZXMKIHsKICAgICBO
U0ludGVnZXIgbnVtYmVyT2ZGaWxlcyA9IDA7CkBAIC0yODUsNiArMjkzLDggQEAgc3RhdGljIE5T
VVJMICp0ZW1wb3JhcnlGaWxlVVJMRm9yRGF0YUludGVyYWN0aW9uQ29udGVudChOU1N0cmluZyAq
ZmlsZUV4dGVuc2lvbiwKIAogLSAodm9pZClkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudElu
dG9GaWxlVVJMczooV2ViSXRlbVByb3ZpZGVyRmlsZUxvYWRCbG9jaylhY3Rpb24KIHsKKyAgICBh
dXRvIGNoYW5nZUNvdW50QmVmb3JlTG9hZGluZyA9IF9jaGFuZ2VDb3VudDsKKwogICAgIGF1dG8g
aXRlbVByb3ZpZGVyc1dpdGhGaWxlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10g
aW5pdF0pOwogICAgIGF1dG8gY29udGVudFR5cGVJZGVudGlmaWVyc1RvTG9hZCA9IGFkb3B0TlMo
W1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gbG9hZGVkRmlsZVVSTHMg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKQEAgLTMyOCw3ICszMzgs
MTEgQEAgc3RhdGljIE5TVVJMICp0ZW1wb3JhcnlGaWxlVVJMRm9yRGF0YUludGVyYWN0aW9uQ29u
dGVudChOU1N0cmluZyAqZmlsZUV4dGVuc2lvbiwKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAg
ZGlzcGF0Y2hfZ3JvdXBfbm90aWZ5KGZpbGVMb2FkaW5nR3JvdXAuZ2V0KCksIGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFtmaWxlTG9hZGluZ0dyb3VwLCBsb2FkZWRGaWxlVVJMcywgY29tcGxl
dGlvbkJsb2NrID0gbWFrZUJsb2NrUHRyKGFjdGlvbildIHsKKyAgICBSZXRhaW5QdHI8V2ViSXRl
bVByb3ZpZGVyUGFzdGVib2FyZD4gcmV0YWluZWRTZWxmID0gc2VsZjsKKyAgICBkaXNwYXRjaF9n
cm91cF9ub3RpZnkoZmlsZUxvYWRpbmdHcm91cC5nZXQoKSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgW3JldGFpbmVkU2VsZiwgZmlsZUxvYWRpbmdHcm91cCwgbG9hZGVkRmlsZVVSTHMsIGNv
bXBsZXRpb25CbG9jayA9IG1ha2VCbG9ja1B0cihhY3Rpb24pLCBjaGFuZ2VDb3VudEJlZm9yZUxv
YWRpbmddIHsKKyAgICAgICAgaWYgKGNoYW5nZUNvdW50QmVmb3JlTG9hZGluZyA9PSByZXRhaW5l
ZFNlbGYtPl9jaGFuZ2VDb3VudCkKKyAgICAgICAgICAgIHJldGFpbmVkU2VsZi0+X2ZpbGVuYW1l
c0ZvckRhdGFJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW2xvYWRlZEZpbGVVUkxzIGNvcHldKTsKKwog
ICAgICAgICBjb21wbGV0aW9uQmxvY2sobG9hZGVkRmlsZVVSTHMuZ2V0KCkpOwogICAgIH0pOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAzMGM0NzFkZWYyZTcxMzdmYjE2MWM3ZTZmYjhlMzFjM2Jm
OWJkZGNhLi4wNGZjNzQzMDY4YjY5ODg1YWJjZjhkOWYyM2ZkOWJmZTdjMjYxZDM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaApAQCAtNjUsNiArNjUsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyByZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
KSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpVUkwgcmVhZFVSTEZyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rp
b24oVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBpbnQgZ2V0TnVtYmVyT2ZGaWxlcyhjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldFR5cGVzKFZlY3RvcjxT
dHJpbmc+JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMubW0KaW5kZXggMjM2Y2IyZDkwNGFkZjA2ZWNkMzQzZGZkYThmNGE1ODRkMzdh
ZGIxNi4uNzViYjhmMDdiNWJlMmFjNWJiNzZmZWQ0MjMyNzZlNDFiODQ0NDkzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5tbQpAQCAtMjIwLDQgKzIyMCw5IEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYKIHsK
ICAgICByZXR1cm4gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5yZWFkU3RyaW5n
KGluZGV4LCB0eXBlKTsKIH0KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVu
YW1lc0ZvckRhdGFJbnRlcmFjdGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIGZpbGVuYW1lcyA9IFBsYXRmb3JtUGFzdGVi
b2FyZChwYXN0ZWJvYXJkTmFtZSkuZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKCk7Cit9CiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCmluZGV4IDQwNjQzMmRlYmNl
Y2JkZmViOTczMTNjMjNkZDdlODMyMDU3YTk4YWUuLjZhYWI5OTlkZDM5YjFiZDczMjNiNWI0YmY2
NjM4OTcyMjdiYzY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KQEAgLTE4Myw2ICsxODMsMTEgQEAg
dm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRJdGVtc0NvdW50KGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIHUKICAgICBpdGVtc0NvdW50ID0gUGxhdGZvcm1QYXN0ZWJv
YXJkKHBhc3RlYm9hcmROYW1lKS5jb3VudCgpOwogfQogCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94
eTo6Z2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUsIFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCit7CisgICAgZmlsZW5hbWVzID0gUGxh
dGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5maWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rp
b24oKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBkNzdkNDA3MjMyMjMzYTVjZTk4OWYz
ZjliNDdkYWFhMmNiZTQwMGRhLi5lNGNiYjRmYmRlODcyOGMzYTlhOTEyZTg1ZWVmNGNkNjFmZjI4
NjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDA3
LDYgKzQwNyw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VD
bGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2N1cnJlbnREcmFn
T3BlcmF0aW9uKERyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9jdXJyZW50RHJhZ0lzT3ZlckZp
bGVJbnB1dChmYWxzZSkKICAgICAsIG1fY3VycmVudERyYWdOdW1iZXJPZkZpbGVzVG9CZUFjY2Vw
dGVkKDApCisgICAgLCBtX2RvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKGZhbHNlKQog
I2VuZGlmCiAgICAgLCBtX3BhZ2VMb2FkU3RhdGUoKnRoaXMpCiAgICAgLCBtX2RlbGVnYXRlc1Nj
cm9sbGluZyhmYWxzZSkKQEAgLTE3OTksMTMgKzE4MDAsMTQgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29udHJvbGxlckFjdGlvbiBhY3Rpb24s
IERyYWcKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxl
SW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IEludFJlY3Qm
IGluc2VydGlvblJlY3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9s
bGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5w
dXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IEludFJlY3QmIGlu
c2VydGlvblJlY3QsIGJvb2wgaXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKQogewogICAgIE1FU1NB
R0VfQ0hFQ0soZHJhZ09wZXJhdGlvbiA8PSBEcmFnT3BlcmF0aW9uRGVsZXRlKTsKIAogICAgIG1f
Y3VycmVudERyYWdPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihkcmFnT3Bl
cmF0aW9uKTsKICAgICBtX2N1cnJlbnREcmFnSXNPdmVyRmlsZUlucHV0ID0gbW91c2VJc092ZXJG
aWxlSW5wdXQ7CiAgICAgbV9jdXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNjZXB0ZWQgPSBu
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOworICAgIG1fZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVm
YXVsdERyYWcgPSBpc0hhbmRsaW5nTm9uRGVmYXVsdERyYWc7CiAgICAgc2V0RHJhZ0NhcmV0UmVj
dChpbnNlcnRpb25SZWN0KTsKIH0KIApAQCAtMTg0Miw2ICsxODQ0LDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpCiB7CiAgICAgbV9jdXJyZW50RHJh
Z09wZXJhdGlvbiA9IFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Ob25lOwogICAgIG1fY3VycmVudERy
YWdJc092ZXJGaWxlSW5wdXQgPSBmYWxzZTsKKyAgICBtX2RvY3VtZW50SXNIYW5kbGluZ05vbkRl
ZmF1bHREcmFnID0gZmFsc2U7CiAgICAgbV9jdXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNj
ZXB0ZWQgPSAwOwogICAgIHNldERyYWdDYXJldFJlY3QoeyB9KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiMWNiODQ2NTY1ODk1ZGU1ODJmZjI0MjhmZmUz
ZmNlMTI4YTAyNjhkLi5jZTk4MjY5ZWIzZjA4MmYxOWUyMDQ4NjcwM2ZmNDVkZDkwNjU1NGRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04MzIsNyArODMyLDcg
QEAgcHVibGljOgogICAgIHZvaWQgZHJhZ0V4aXRlZChXZWJDb3JlOjpEcmFnRGF0YSYsIGNvbnN0
IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lID0gU3RyaW5nKCkpOwogICAgIHZvaWQgcGVyZm9ybURy
YWdPcGVyYXRpb24oV2ViQ29yZTo6RHJhZ0RhdGEmLCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdl
TmFtZSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmKTsKIAotICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQs
IHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGluc2VydGlvblJlY3QpOworICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVu
c2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGluc2VydGlvblJlY3QsIGJvb2wgaXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKTsKICAgICB2b2lk
IGRyYWdFbmRlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3BlcmF0aW9uKTsK
ICAgICB2b2lkIGRyYWdDYW5jZWxsZWQoKTsKICAgICB2b2lkIHNldERyYWdDYXJldFJlY3QoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtODkwLDYgKzg5MCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGN1cnJlbnREcmFnSXNPdmVyRmlsZUlucHV0KCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50
RHJhZ0lzT3ZlckZpbGVJbnB1dDsgfQogICAgIHVuc2lnbmVkIGN1cnJlbnREcmFnTnVtYmVyT2ZG
aWxlc1RvQmVBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERyYWdOdW1iZXJPZkZp
bGVzVG9CZUFjY2VwdGVkOyB9CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjdXJyZW50RHJhZ0NhcmV0
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERyYWdDYXJldFJlY3Q7IH0KKyAgICBib29s
IGRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1
bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJhZzsgfQogICAgIHZvaWQgcmVzZXRDdXJyZW50RHJh
Z0luZm9ybWF0aW9uKCk7CiAgICAgdm9pZCBkaWRFbmREcmFnZ2luZygpOwogI2VuZGlmCkBAIC0x
ODY3LDYgKzE4NjgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jdXJyZW50RHJhZ0lzT3ZlckZp
bGVJbnB1dDsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2Nl
cHRlZDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fY3VycmVudERyYWdDYXJldFJlY3Q7CisgICAg
Ym9vbCBtX2RvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnOwogI2VuZGlmCiAKICAgICBQ
YWdlTG9hZFN0YXRlIG1fcGFnZUxvYWRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGY2YzU0YzcxNjI2YmQ1ZmUxODEw
M2M1NTIzMWZiNzgxOTRhZjdiODYuLmJkYjA2MzdiODBhY2NhYjJlZjIzN2MzOWZhNGFkMWIxOWQw
MGZhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjk1LDcgKzI5NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7
CiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQotICAgIERpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBkcmFnT3BlcmF0
aW9uLCBib29sIG1vdXNlSXNPdmVyRmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9C
ZUFjY2VwdGVkLCBXZWJDb3JlOjpJbnRSZWN0IGluc2VydGlvblJlY3QpCisgICAgRGlkUGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJ
c092ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIFdlYkNv
cmU6OkludFJlY3QgaW5zZXJ0aW9uUmVjdCwgYm9vbCBpc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcp
CiAgICAgRGlkRW5kRHJhZ2dpbmcoKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBF
TkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5oCmluZGV4IGU0M2QxYTEzMGU3ZDczNDNhMGJmNTYwMjE3ZWE1Mzc4MDVjNzgw
MTguLjI2NTU3MzYxZjU1OGU5NjY0MDg2NDBmNTQwOWQ2ODgyZjI1ZmVjNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTc1LDYgKzc1LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRl
eCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgU3RyaW5nJik7CiAgICAgdm9pZCByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQodWludDY0
X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsIFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0X3QmIHNpemUpOwogICAg
IHZvaWQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgdWludDY0X3QmIGl0ZW1zQ291bnQpOworICAgIHZvaWQgZ2V0RmlsZW5hbWVzRm9yRGF0YUlu
dGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxTdHJpbmc+JiBm
aWxlbmFtZXMpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9pZCBnZXROdW1i
ZXJPZkZpbGVzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIHVpbnQ2NF90JiBudW1iZXJP
ZkZpbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMxZTk5ZmZjZDA4ZTcxOWQwOTE3M2YwYTkxZTY1
MDM1MWZlZmEyNjUuLjczNmEwYWQ0NTFjZWNlNjQ0ZGRlODYzNmE2MTVkZjYzNTllYzkxZGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJk
UHJveHkgewogICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5n
IHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJpbmcgc3RyaW5n
KQogICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBh
c3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6OlNoYXJlZE1l
bW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKICAgICBHZXRQYXN0ZWJvYXJkSXRl
bXNDb3VudChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBpdGVtc0NvdW50KQor
ICAgIEdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihTdHJpbmcgcGFzdGVib2FyZE5hbWUp
IC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDA1MDU2M2ZhODU3
NzU3NTZkODVlM2Y5ZWQ3ODI1Yjk4MzdmOGQ5YjAuLjJlZGY0Yjc2ZDU0NjRlMWRiNTY0ZDhiZDBk
MzYzYWQ3MjBlN2MyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAg
LTMwOSw2ICszMDksMTEgQEAgaW50IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0UGFzdGVib2Fy
ZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICByZXR1cm4gaXRl
bXNDb3VudDsKIH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25zdCBTdHJpbmcm
IHBhc3RlYm9hcmROYW1lKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6
OkdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihwYXN0ZWJvYXJkTmFtZSksIE1lc3NhZ2Vz
OjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbjo6UmVw
bHkoZmlsZW5hbWVzKSwgMCk7Cit9CisKIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAppbmRleCAyZDdkOGE1YzAxOGJjMjEzNDlkZmUzY2YwMGU0NGEzMTVmOGRk
M2ZjLi5lNDM4N2M5MzAyMTk4NGE4NTViMWE4Yzc0ZmVmYzhiNWJkNzc4NWMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBT
dHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJk
KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6VVJMIHJlYWRVUkxGcm9tUGFz
dGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0RmlsZW5hbWVzRm9y
RGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgaW50IGdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
aW5kZXggZjEzMjdjYmYzZTFmY2ZiOTJhOWMxMmUzNWMwZDU3NWNlMWU5NGM0ZS4uY2NjZDA3NWJk
ZjEwZTliODJjMWRiMDQ4NTIyYmJmYzNiM2IyZDNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzUzNiw3ICszNTM2LDcgQEAgYm9vbCBX
ZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB2
b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24s
IGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQmIGdsb2JhbFBv
c2l0aW9uLCB1aW50NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIFdlYlNlbGVjdGlv
bkRhdGEmJiBzZWxlY3Rpb24sIHVpbnQzMl90IGZsYWdzKQogewogICAgIGlmICghbV9wYWdlKSB7
Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lLCBmYWxzZSwgMCwgeyB9KSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKERyYWdPcGVyYXRpb25Ob25lLCBmYWxzZSwgMCwgeyB9LCBmYWxzZSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0zNTQ0LDEyICszNTQ0LDEyIEBAIHZvaWQgV2ViUGFnZTo6cGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgY29uc3QgSW50UG9pbnQm
IGNsaWVuCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0
aW9uRW50ZXJlZDogewogICAgICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJhZ09wZXJhdGlv
biA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW50ZXJlZChkcmFnRGF0YSk7Ci0gICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1v
dXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0
ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRp
b24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3Bh
Z2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCB7IH0sIGZh
bHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0
aW9uVXBkYXRlZDogewogICAgICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJhZ09wZXJhdGlv
biA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW50ZXJlZChkcmFnRGF0YSk7Ci0gICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1v
dXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0
ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRp
b24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3Bh
Z2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCB7IH0sIGZh
bHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0
aW9uRXhpdGVkOgpAQCAtMzU2OSwyNSArMzU2OSwyNSBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIGNvbnN0IEludFBvaW50JiBjbGll
bgogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0
aW9uLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYgZHJhZ0RhdGEsIGNvbnN0IFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgY29uc3QgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlQXJyYXkmIHNhbmRib3hFeHRlbnNpb25zSGFuZGxlQXJyYXkpCiB7CiAgICAg
aWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQ
ZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7
IH0pKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJh
Z0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0sIGZhbHNl
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAg
IGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25FbnRlcmVkOiB7CiAgICAgICAgIERyYWdPcGVyYXRp
b24gcmVzb2x2ZWREcmFnT3BlcmF0aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRyYWdF
bnRlcmVkKGRyYWdEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3Bh
Z2UtPmRyYWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFn
Q29udHJvbGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgbV9wYWdlLT5kcmFnQ2Fy
ZXRDb250cm9sbGVyKCkuY2FyZXRQb3NpdGlvbigpLmFic29sdXRlQ2FyZXRCb3VuZHMoKSkpOwor
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJv
bGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIo
KS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVy
T2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS5jYXJl
dFBvc2l0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVy
KCkuZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcoKSkpOwogICAgICAgICBicmVhazsK
IAogICAgIH0KICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uVXBkYXRlZDogewogICAgICAg
ICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJhZ09wZXJhdGlvbiA9IG1fcGFnZS0+ZHJhZ0NvbnRy
b2xsZXIoKS5kcmFnVXBkYXRlZChkcmFnRGF0YSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09w
ZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCks
IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIG1f
cGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLmNhcmV0UG9zaXRpb24oKS5hYnNvbHV0ZUNhcmV0
Qm91bmRzKCkpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgbV9wYWdlLT5kcmFnQ2FyZXRDb250
cm9sbGVyKCkuY2FyZXRQb3NpdGlvbigpLmFic29sdXRlQ2FyZXRCb3VuZHMoKSwgbV9wYWdlLT5k
cmFnQ29udHJvbGxlcigpLmRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKCkpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25FeGl0ZWQ6
CiAgICAgICAgIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRXhpdGVkKGRyYWdEYXRhKTsK
LSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0pKTsKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rp
b24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0sIGZhbHNlKSk7CiAgICAgICAgIGJy
ZWFrOwogICAgICAgICAKICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uUGVyZm9ybURyYWdP
cGVyYXRpb246IHsK
</data>
<flag name="review"
          id="328623"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307454</attachid>
            <date>2017-04-18 19:39:36 -0700</date>
            <delta_ts>2017-04-18 20:23:01 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170880-20170418193936.patch</filename>
            <type>text/plain</type>
            <size>37071</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2U0OGRjOThjZTRkNTQy
YjE2OWExNDBjZjYxZWMwZjUxNDBmNDQ4MS4uYzRjOTdhMmE2YWI2YzdhMTY4YzU0ODBjOTQxNTVm
Y2JjODJkMTRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDE3LTA0LTE1ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgRGF0YVRyYW5zZmVyOjpmaWxlcygpIHdoZW4gcGVyZm9ybWluZyBhIERIVE1MIGRhdGEgaW50
ZXJhY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDg4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzEzMTQ2ODk+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGRzIHN1cHBvcnQgZm9yIGZldGNoaW5n
IGZpbGVzIGZyb20gdGhlIERhdGFUcmFuc2ZlciB3aGVuIHBlcmZvcm1pbmcgYSBkYXRhIGludGVy
YWN0aW9uIG9wZXJhdGlvbiBoYW5kbGVkIGJ5CisgICAgICAgIEphdmFTY3JpcHQuIFRoZXJlIGFy
ZSB0d28gY2hhbmdlcyB3ZSBtYWtlIGhlcmUgdG8gYWNoaWV2ZSB0aGlzOgorCisgICAgICAgIEZp
cnN0LCB3ZSB0ZWFjaCB0aGUgUGFzdGVib2FyZCBvbiBpT1MgdG8ga25vdyB3aGF0IGZpbGUgcGF0
aHMgaG9sZCB0aGUgaXRlbSBwcm92aWRlciBjb250ZW50cyB1c2VkIGluIHRoZQorICAgICAgICBj
dXJyZW50IGRhdGEgaW50ZXJhY3Rpb24gb3BlcmF0aW9uLiBPbiBpT1MsIFBhc3RlYm9hcmQ6OnJl
YWRGaWxlbmFtZXMgaXMgY3VycmVudGx5IGhhcmQtY29kZWQgdG8gcmV0dXJuIGFuIGVtcHR5Cisg
ICAgICAgIHZlY3Rvci4gVG8gZml4IHRoaXMsIHdlIGFkZCBsb2dpYyB0byB0aGUgaU9TIFBhc3Rl
Ym9hcmQgdG8gcmVtZW1iZXIgd2hhdCB0aGUgcGF0aHMgb2YgYWxsIGZpbGVzIHRoYXQgd2VyZQor
ICAgICAgICBzdWNjZXNzZnVsbHkgbG9hZGVkIGZyb20gaXRlbSBwcm92aWRlcnMgYXMgdGhlIGRh
dGEgaW50ZXJhY3Rpb24gaXMgdGFraW5nIHBsYWNlLiBUaGlzIGVuc3VyZXMgdGhhdCBhdCB0aGUK
KyAgICAgICAgV2ViQ29yZSBsYXllciwgdGhlIGltcGxlbWVudGF0aW9uIG9mIFBhc3RlYm9hcmQ6
OnJlYWRGaWxlbmFtZXMgb24gTWFjIGFuZCBpT1MgaXMgc2ltaWxhciAtLSB0aGV5IGJvdGggY2Fs
bCBvdXQKKyAgICAgICAgdG8gdGhlIGNsaWVudCBsYXllciBpbiBvcmRlciB0byByZWFkIGZpbGUg
cGF0aHMgb2ZmIG9mIHRoZWlyIHJlc3BlY3RpdmUgcGFzdGVib2FyZHMuIE9uY2UgaW4gdGhlIGNs
aWVudCBsYXllcgorICAgICAgICAoV2ViS2l0MSBvciBXZWJLaXQyKSB3ZSB0aGVuIGNhbGwgaW50
byBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbiwgd2hpY2gg
dGhlbiBjYWxscyBpbnRvCisgICAgICAgIFdlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaWYgYXBw
bGljYWJsZS4KKworICAgICAgICBUaGUgc2Vjb25kIHR3ZWFrIGlzIHRvIHByb3BhZ2F0ZSBpbmZv
cm1hdGlvbiBhYm91dCB3aGV0aGVyIHRoZSBkb2N1bWVudCBpcyBwcmV2ZW50aW5nIGRlZmF1bHQg
ZGF0YSBpbnRlcmFjdGlvbgorICAgICAgICBiZWhhdmlvciB0byB0aGUgY2xpZW50IGxheWVyLiBU
aGlzIHByZXZlbnRzIHVzIGZyb20gaGF2aW5nIHRvIHNhdmUgcGFzdGVib2FyZCBjb250ZW50IHdo
ZW4gcGVyZm9ybWluZyBkYXRhCisgICAgICAgIGludGVyYWN0aW9uIGluIGNhc2VzIHdoZXJlIGZp
bGUgaW5mb3JtYXRpb24gaXMgbm90IG5lZWRlZCAoaS5lLiB0aGUgZGVmYXVsdCBiZWhhdmlvciBp
cyBiZWluZyBwZXJmb3JtZWQsIGFuZAorICAgICAgICB0aGUgdGFyZ2V0IGlzIG5vdCBhIGZpbGUg
aW5wdXQpLiBUaGlzIGFsc28gYXZvaWRzIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGggaW5zZXJ0
aW9uIGFuaW1hdGlvbnMgd2hlbiBwZXJmb3JtaW5nCisgICAgICAgIGRhdGEgaW50ZXJhY3Rpb24g
aW4gZWRpdGFibGUgYXJlYXMsIGR1ZSB0byB0aGUgZXh0cmEgdGltZSBzcGVudCBsb2FkaW5nIGl0
ZW0gcHJvdmlkZXIgZGF0YSBpbnRvIGEgdGVtcG9yYXJ5CisgICAgICAgIGZpbGUuCisKKyAgICAg
ICAgVW5pdCB0ZXN0cyBpbiA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDkwMz4uCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpEcmFnQ29udHJvbGxlcik6CisgICAgICAgIChXZWJD
b3JlOjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcpOgorCisgICAgICAgIFJlZmFj
dG9yIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcgdG8gcmV0dXJuIGEgRHJhZ0hhbmRs
aW5nTWV0aG9kLiBUaGlzIG1ldGhvZCBjdXJyZW50bHkgcmV0dXJucyBlaXRoZXIKKyAgICAgICAg
dHJ1ZSBvciBmYWxzZTsgdGhpcyBwYXRjaCBjaGFuZ2VzIGl0IHRvIHJldHVybiBhIERyYWdIYW5k
bGluZ01ldGhvZCwgd2hpY2ggaXMgZWl0aGVyIE5vbmUgKHRoZSBlcXVpdmFsZW50IG9mCisgICAg
ICAgIHJldHVybmluZyBmYWxzZSBiZWZvcmUgdGhlIHBhdGNoKSwgRGVmYXVsdCAoaW5kaWNhdGlu
ZyB0aGF0IHRoZSBkcm9wIGRlc3RpbmF0aW9uIGlzIGFsbG93aW5nIGRlZmF1bHQgaGFuZGxpbmcp
LAorICAgICAgICBvciBOb25EZWZhdWx0LCB3aGljaCBpbmRpY2F0ZXMgdGhhdCB0aGUgZHJvcCBk
ZXN0aW5hdGlvbiBoYXMgZXhwbGljaXRseSBwcmV2ZW50ZWQgZGVmYXVsdC4KKworICAgICAgICAq
IHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojpkb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJhZyk6CisKKyAgICAgICAgVXNlZCBieSBX
ZWJQYWdlIHdoZW4gc2VuZGluZyBhbiBJUEMgcmVzcG9uc2UgYWZ0ZXIgaGFuZGxpbmcgZHJhZ2Vu
dGVyZWQgb3IgZHJhZ3VwZGF0ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkU3Ry
YXRlZ3kuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Bhc3RlYm9hcmRJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkRmlsZW5hbWVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJk
SU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjpmaWxlbmFtZXNG
b3JEYXRhSW50ZXJhY3Rpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW06CisKKyAgICAgICAgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBub3cgcmVt
ZW1iZXJzIHRoZSBmaWxlIFVSTHMgb2Ygc3VjY2Vzc2Z1bGx5IGxvYWRlZCBpdGVtIHByb3ZpZGVy
IGNvbnRlbnQgd2hlbiBhIGRhdGEKKyAgICAgICAgaW50ZXJhY3Rpb24gaXMgYmVpbmcgcGVyZm9y
bWVkLiBUaGUgbmV3IGZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbiBwcm9wZXJ0eSByZXR1cm5z
IHRoZSBhcnJheSBvZiBkYXRhCisgICAgICAgIGludGVyYWN0aW9uIGZpbGUgVVJMcyB3aGljaCBo
YXZlIGJlZW4gcHJvcGFnYXRlZCB0byB0aGUgd2ViIHByb2Nlc3MgYWxvbmcgd2l0aCBzYW5kYm94
IGV4dGVuc2lvbnMuIFRoaXMgc3RhdGUKKyAgICAgICAgaXMgY2xlYW5lZCB1cCB3aGVuIGxpc3Qg
b2YgaXRlbSBwcm92aWRlcnMgY2hhbmdlIChpLmUuIHdoZW4gdGhlIGRhdGEgaW50ZXJhY3Rpb24g
b3BlcmF0aW9uIGlzIGZpbmlzaGVkLCBvciBpZgorICAgICAgICB0aGUgd2ViIGNvbnRlbnQgcHJv
Y2VzcyBjcmFzaGVzLCBldGMuKQorCisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9h
cmQgaW5pdF0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNldEl0ZW1Q
cm92aWRlcnM6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgZmlsZW5h
bWVzRm9yRGF0YUludGVyYWN0aW9uXSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQgZG9BZnRlckxvYWRpbmdQcm92aWRlZENvbnRlbnRJbnRvRmlsZVVSTHM6XSk6CisKIDIw
MTctMDQtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0
ZSBBTkdMRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDZmYTJhNTQ3ZWUyZWQ0NmUyNTRiOWUxODA5OTY3
NTI4MmM4M2NlYTEuLmEzYjIzNjQwZmQ0ODUxYWIwNjZkNDI4ZTQxNjVhN2I3YThiYTVkYmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNC0xNSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBTdXBwb3J0IERhdGFU
cmFuc2Zlcjo6ZmlsZXMoKSB3aGVuIHBlcmZvcm1pbmcgYSBESFRNTCBkYXRhIGludGVyYWN0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4ODAK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMzE0Njg5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRqdXN0IGZvciBhIGNoYW5nZSBpbiBQYXN0ZWJvYXJk
U3RyYXRlZ3kuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tOgorICAgICAgICAoV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpnZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24pOgorCiAyMDE3
LTA0LTE3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNh
YmxlIG91dGRhdGVkIFdyaXRhYmxlU3RyZWFtIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGJjMmJjZDhiMjg0
NDNmMzZkNzVhODllZDhmNjFiNzBiMGNhZTZlZTQuLjdhZDhiZTMwOTg1MzI5MjkzOGNlMzEyYzJi
YzYwYzkzODAyNDZlZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxNy0wNC0xNSAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBT
dXBwb3J0IERhdGFUcmFuc2Zlcjo6ZmlsZXMoKSB3aGVuIHBlcmZvcm1pbmcgYSBESFRNTCBkYXRh
IGludGVyYWN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA4ODAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMzE0Njg5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgU2VlIHRoZSBXZWJDb3JlIENoYW5n
ZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBh
c3RlYm9hcmRQcm94eUNvY29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpkb2N1bWVudElzSGFu
ZGxpbmdOb25EZWZhdWx0RHJhZyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5t
ZXNzYWdlcy5pbjoKKworICAgICAgICBBZGRzIGFuIElQQyBhcmd1bWVudCB0byBEaWRQZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24gc3BlY2lmeWluZyB3aGV0aGVyIHRoZSBwYWdlIHByZXZlbnRl
ZCB0aGUgZGVmYXVsdCBiZWhhdmlvci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJv
YXJkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluOgorCisgICAgICAgIEFkZHMgSVBDIHBsdW1iaW5nIGZvciB0aGUgbmV3IGZpbGVuYW1l
c0ZvckRhdGFJbnRlcmFjdGlvbiBQYXN0ZWJvYXJkIGNvZGVwYXRoLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6
CisKIDIwMTctMDQtMTggIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVzb3VyY2UgTG9hZCBTdGF0aXN0aWNzOiBDaGVjayBib3RoIG9yaWdpbnMgYW5kIGNv
b2tpZUhvc3ROYW1lcyBmb3IgZG9tYWluIG1hdGNoZXMgaW4gZGF0YSByZW1vdmFsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGQ1MzM5YTQ2MDU4NDZmODBkODAxM2Y0
YTY5Yzg1YjY4MGQxNmMzYWMuLjMyYTYyMzI5MWMwZTg4MzIxOTgzODE5MDMzMWQxMTRkZDY3NTg4
MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xMTksNyArMTE5
LDcgQEAgRHJhZ0NvbnRyb2xsZXI6OkRyYWdDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIERyYWdDbGll
bnQmIGNsaWVudCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQog
ICAgICwgbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKDApCi0gICAgLCBtX2RvY3VtZW50SXNI
YW5kbGluZ0RyYWcoZmFsc2UpCisgICAgLCBtX2RvY3VtZW50RHJhZ0hhbmRsaW5nTWV0aG9kKERy
YWdIYW5kbGluZ01ldGhvZDo6Tm9uZSkKICAgICAsIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERy
YWdEZXN0aW5hdGlvbkFjdGlvbk5vbmUpCiAgICAgLCBtX2RyYWdTb3VyY2VBY3Rpb24oRHJhZ1Nv
dXJjZUFjdGlvbk5vbmUpCiAgICAgLCBtX2RpZEluaXRpYXRlRHJhZyhmYWxzZSkKQEAgLTIyOCw3
ICsyMjgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgaWYgKG1fZG9jdW1lbnRVbmRlck1vdXNlKQogICAg
ICAgICBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gbV9kb2N1bWVudFVuZGVyTW91c2Ut
PnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpOwogCi0gICAgaWYgKCht
X2RyYWdEZXN0aW5hdGlvbkFjdGlvbiAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKSAmJiBt
X2RvY3VtZW50SXNIYW5kbGluZ0RyYWcpIHsKKyAgICBpZiAoKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpICYmIG1fZG9jdW1lbnREcmFnSGFuZGxp
bmdNZXRob2QgIT0gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lKSB7CiAgICAgICAgIG1fY2xpZW50
LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbkRI
VE1MLCBkcmFnRGF0YSk7CiAgICAgICAgIFJlZjxNYWluRnJhbWU+IG1haW5GcmFtZShtX3BhZ2Uu
bWFpbkZyYW1lKCkpOwogICAgICAgICBib29sIHByZXZlbnRlZERlZmF1bHQgPSBmYWxzZTsKQEAg
LTI4OCw4ICsyODgsOCBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJl
ZE9yVXBkYXRlZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgfQogCiAgICAgRHJhZ09w
ZXJhdGlvbiBkcmFnT3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgbV9kb2N1bWVu
dElzSGFuZGxpbmdEcmFnID0gdHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5h
dGlvbkFjdGlvbiwgZHJhZ09wZXJhdGlvbik7Ci0gICAgaWYgKCFtX2RvY3VtZW50SXNIYW5kbGlu
Z0RyYWcgJiYgKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
TG9hZCkpCisgICAgbV9kb2N1bWVudERyYWdIYW5kbGluZ01ldGhvZCA9IHRyeURvY3VtZW50RHJh
ZyhkcmFnRGF0YSwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24sIGRyYWdPcGVyYXRpb24pOworICAg
IGlmIChtX2RvY3VtZW50RHJhZ0hhbmRsaW5nTWV0aG9kID09IERyYWdIYW5kbGluZ01ldGhvZDo6
Tm9uZSAmJiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25M
b2FkKSkKICAgICAgICAgZHJhZ09wZXJhdGlvbiA9IG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEp
OwogICAgIHJldHVybiBkcmFnT3BlcmF0aW9uOwogfQpAQCAtMzI5LDEzICszMjksMTMgQEAgc3Rh
dGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91
c2UsIGNvbnN0IEludFBvaW50JgogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50Pihub2RlKTsK
IH0KIAotYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdPcGVyYXRp
b24mIGRyYWdPcGVyYXRpb24pCitEcmFnQ29udHJvbGxlcjo6RHJhZ0hhbmRsaW5nTWV0aG9kIERy
YWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBE
cmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgZHJhZ09wZXJh
dGlvbikKIHsKICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIHJldHVybiBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmU7CiAKICAgICBp
ZiAobV9kcmFnSW5pdGlhdG9yICYmICFtX2RvY3VtZW50VW5kZXJNb3VzZS0+c2VjdXJpdHlPcmln
aW4oKS5jYW5SZWNlaXZlRHJhZ0RhdGEobV9kcmFnSW5pdGlhdG9yLT5zZWN1cml0eU9yaWdpbigp
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0
aG9kOjpOb25lOwogCiAgICAgYm9vbCBpc0hhbmRsaW5nRHJhZyA9IGZhbHNlOwogICAgIGlmIChh
Y3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpIHsKQEAgLTM0NiwzMCArMzQ2
LDMwIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjCiAgICAgICAgIC8vIHdoaWNoIGNvdWxkIHBy
b2Nlc3MgZHJhZ2xlYXZlIGV2ZW50IGFuZCByZXNldCBtX2RvY3VtZW50VW5kZXJNb3VzZSBpbgog
ICAgICAgICAvLyBkcmFnRXhpdGVkLgogICAgICAgICBpZiAoIW1fZG9jdW1lbnRVbmRlck1vdXNl
KQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIERyYWdIYW5k
bGluZ01ldGhvZDo6Tm9uZTsKICAgICB9CiAKICAgICAvLyBJdCdzIHVuY2xlYXIgd2h5IHRoaXMg
Y2hlY2sgaXMgYWZ0ZXIgdHJ5REhUTUxEcmFnLgogICAgIC8vIFdlIHNlbmQgZHJhZyBldmVudHMg
aW4gdHJ5REhUTUxEcmFnIGFuZCB0aGF0IG1heSBiZSB0aGUgcmVhc29uLgogICAgIFJlZlB0cjxG
cmFtZVZpZXc+IGZyYW1lVmlldyA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT52aWV3KCk7CiAgICAg
aWYgKCFmcmFtZVZpZXcpCi0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIERy
YWdIYW5kbGluZ01ldGhvZDo6Tm9uZTsKIAogICAgIGlmIChpc0hhbmRsaW5nRHJhZykgewogICAg
ICAgICBjbGVhckRyYWdDYXJldCgpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0
dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6Tm9uRGVmYXVsdDsKICAgICB9CiAKICAgICBpZiAoKGFj
dGlvbk1hc2sgJiBEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0KSAmJiBjYW5Qcm9jZXNzRHJhZyhk
cmFnRGF0YSkpIHsKICAgICAgICAgaWYgKGRyYWdEYXRhLmNvbnRhaW5zQ29sb3IoKSkgewogICAg
ICAgICAgICAgZHJhZ09wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25HZW5lcmljOwotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpE
ZWZhdWx0OwogICAgICAgICB9CiAKICAgICAgICAgSW50UG9pbnQgcG9pbnQgPSBmcmFtZVZpZXct
PndpbmRvd1RvQ29udGVudHMoZHJhZ0RhdGEuY2xpZW50UG9zaXRpb24oKSk7CiAgICAgICAgIEVs
ZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5kZXJNb3VzZShtX2RvY3VtZW50VW5kZXJNb3VzZS5n
ZXQoKSwgcG9pbnQpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lOwogICAg
ICAgICAKICAgICAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudEFzRmlsZUlucHV0ID0gYXNG
aWxlSW5wdXQoKmVsZW1lbnQpOwogICAgICAgICBpZiAobV9maWxlSW5wdXRFbGVtZW50VW5kZXJN
b3VzZSAhPSBlbGVtZW50QXNGaWxlSW5wdXQpIHsKQEAgLTQwNyw3ICs0MDcsNyBAQCBib29sIERy
YWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBE
cmFnRGVzdGluYXRpb25BYwogICAgICAgICAgICAgbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
ID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8gMCA6IDE7CiAgICAgICAgIH0KICAgICAgICAgCi0gICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpEZWZh
dWx0OwogICAgIH0KICAgICAKICAgICAvLyBXZSBhcmUgbm90IG92ZXIgYW4gZWRpdGFibGUgcmVn
aW9uLiBNYWtlIHN1cmUgd2UncmUgY2xlYXJpbmcgYW55IHByaW9yIGRyYWcgY3Vyc29yLgpAQCAt
NDE1LDcgKzQxNSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjCiAgICAgaWYgKG1fZmlsZUlu
cHV0RWxlbWVudFVuZGVyTW91c2UpCiAgICAgICAgIG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91
c2UtPnNldENhblJlY2VpdmVEcm9wcGVkRmlsZXMoZmFsc2UpOwogICAgIG1fZmlsZUlucHV0RWxl
bWVudFVuZGVyTW91c2UgPSBudWxscHRyOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
RHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lOwogfQogCiBEcmFnU291cmNlQWN0aW9uIERyYWdDb250
cm9sbGVyOjpkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3
UG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggYjcxYjk4YWQyYzNk
YTlhNDkzYmVjYjZjNGQ5ZmJmNTJiNTFlMTExOS4uMTJmOGMzZDRhMGE3MzUxZWMwMDY0ZTI5M2Ey
MmU1ODgzMGNmMTExNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtNzks
NiArNzksOCBAQCBzdHJ1Y3QgRHJhZ1N0YXRlOwogICAgICAgICBjb25zdCBJbnRQb2ludCYgZHJh
Z09mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fZHJhZ09mZnNldDsgfQogICAgICAgICBEcmFnU291
cmNlQWN0aW9uIGRyYWdTb3VyY2VBY3Rpb24oKSBjb25zdCB7IHJldHVybiBtX2RyYWdTb3VyY2VB
Y3Rpb247IH0KIAorICAgICAgICBlbnVtIGNsYXNzIERyYWdIYW5kbGluZ01ldGhvZCB7IE5vbmUs
IERlZmF1bHQsIE5vbkRlZmF1bHQgfTsKKyAgICAgICAgYm9vbCBkb2N1bWVudElzSGFuZGxpbmdO
b25EZWZhdWx0RHJhZygpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRo
b2QgPT0gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25EZWZhdWx0OyB9CiAgICAgICAgIERvY3VtZW50
KiBkb2N1bWVudFVuZGVyTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VW5kZXJNb3Vz
ZS5nZXQoKTsgfQogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0KICAgICAg
ICAgRHJhZ1NvdXJjZUFjdGlvbiBkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3QgSW50UG9p
bnQmIHJvb3RWaWV3UG9pbnQpOwpAQCAtMTAzLDcgKzEwNSw3IEBAIHN0cnVjdCBEcmFnU3RhdGU7
CiAgICAgICAgIGJvb2wgY29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYpOwogICAgICAg
ICBEcmFnT3BlcmF0aW9uIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGNvbnN0IERyYWdEYXRhJik7CiAg
ICAgICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uRm9yTG9hZChjb25zdCBEcmFnRGF0YSYpOwot
ICAgICAgICBib29sIHRyeURvY3VtZW50RHJhZyhjb25zdCBEcmFnRGF0YSYsIERyYWdEZXN0aW5h
dGlvbkFjdGlvbiwgRHJhZ09wZXJhdGlvbiYpOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRob2Qg
dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBE
cmFnT3BlcmF0aW9uJik7CiAgICAgICAgIGJvb2wgdHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRh
JiwgRHJhZ09wZXJhdGlvbiYpOwogICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24o
Y29uc3QgRHJhZ0RhdGEmKTsKICAgICAgICAgdm9pZCBjbGVhckRyYWdDYXJldCgpOwpAQCAtMTMw
LDcgKzEzMiw3IEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudD4g
bV9kcmFnSW5pdGlhdG9yOyAvLyBUaGUgRG9jdW1lbnQgKGlmIGFueSkgdGhhdCBpbml0aWF0ZWQg
dGhlIGRyYWcuCiAgICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBtX2ZpbGVJbnB1dEVs
ZW1lbnRVbmRlck1vdXNlOwogICAgICAgICB1bnNpZ25lZCBtX251bWJlck9mSXRlbXNUb0JlQWNj
ZXB0ZWQ7Ci0gICAgICAgIGJvb2wgbV9kb2N1bWVudElzSGFuZGxpbmdEcmFnOworICAgICAgICBE
cmFnSGFuZGxpbmdNZXRob2QgbV9kb2N1bWVudERyYWdIYW5kbGluZ01ldGhvZDsKIAogICAgICAg
ICBEcmFnRGVzdGluYXRpb25BY3Rpb24gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247CiAgICAgICAg
IERyYWdTb3VyY2VBY3Rpb24gbV9kcmFnU291cmNlQWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBlNmFhY2MyYTVlZjNkNWJmZmNiMzBk
ZmQ1MmI2YzY4MDk3ODBjZTgzLi5lODhhNDg5MTE4MzY1NDk0NDhmZGNmNWY0YTQ1N2IyNDJkN2Y3
NjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRl
Z3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zy
b21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAg
IHZpcnR1YWwgVVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJp
bmc+JiBmaWxlbmFtZXMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRp
ZiAvLyBQTEFURk9STShJT1MpCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCB2b2lk
IGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAxZDZkNGNiMjQyZTdlMTg0N2RhM2ViMmNkYjg4YjYzYzkzOTg3MjRjLi4zN2E3OTE4
M2Y2Y2Y5YjQxZjg0ZjhiMGE2N2FkN2JkOGIwM2E0MzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1QYXN0ZWJvYXJkKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICNlbmRpZgogICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBTdHJpbmcgdW5pcXVlTmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvQWJzdHJhY3RQYXN0ZWJvYXJkLmgKaW5kZXggMWY1ZDk5NjFhYTgzYzRkMGEz
OTlkMmJmNmU3MTg2NDU5MzhlNDJkNS4uYjdlMWE1MDEwZDYwOGMzYzM4Yzk3YmI0ZmRmNDM2MDY0
NTI3MDcyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBh
c3RlYm9hcmQuaApAQCAtNTAsNiArNTAsNyBAQCBXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIFdl
YlBhc3RlYm9hcmRJdGVtRGF0YSA6IE5TT2JqZWN0CiAtICh2b2lkKXNldEl0ZW1zRnJvbU9iamVj
dFJlcHJlc2VudGF0aW9uczooTlNBcnJheTxXZWJQYXN0ZWJvYXJkSXRlbURhdGEgKj4gKilpdGVt
RGF0YTsKIC0gKHZvaWQpc2V0SXRlbXM6KE5TQXJyYXk8TlNEaWN0aW9uYXJ5ICo+ICopaXRlbXM7
CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBudW1iZXJPZkZpbGVz
OworQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0FycmF5PE5TVVJMICo+ICpmaWxl
bmFtZXNGb3JEYXRhSW50ZXJhY3Rpb247CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1Bhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQppbmRleCBlY2JiMzFkNjViYjFmYjM5ODQwOThiYTM4
NTRjOGFjMmU5NTUxNTFlLi43MjliMGQ1ZDQ5MGM5MTE4YzlkZmZjOWI2NzllNzliYTZhZDRkZjZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbQpAQCAt
Mzc3LDcgKzM3NywxMCBAQCBWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJkOjp0eXBlcygpCiAKIFZl
Y3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQogewotICAgIHJldHVybiBW
ZWN0b3I8U3RyaW5nPigpOworICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKKyAgICAvLyBD
dXJyZW50bHksIGRhdGEgaW50ZXJhY3Rpb24gaXMgdGhlIG9ubHkgY2FzZSBvbiBpT1Mgd2hlcmUg
dGhlIHBhc3RlYm9hcmQgbWF5IGNvbnRhaW4gcmVsZXZhbnQgZmlsZW5hbWVzLgorICAgIHBsYXRm
b3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0RmlsZW5hbWVzRm9yRGF0
YUludGVyYWN0aW9uKGZpbGVuYW1lcywgbV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgcmV0dXJuIGZp
bGVuYW1lczsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KaW5kZXggYTc0NTc0NDYwYjNlNmQ5NWVjOWEwZmU1ODg2
NGRjNTllYmM1MmM4Zi4uMmIyMjNkOWY2MTY3MDY4YmZlNjEyNTA3MzRmN2M4OTFhZjM0ZTY3OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2Fy
ZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJv
YXJkSU9TLm1tCkBAIC05MSw2ICs5MSwxOCBAQCBpbnQgUGxhdGZvcm1QYXN0ZWJvYXJkOjpudW1i
ZXJPZkZpbGVzKCkKICAgICByZXR1cm4gW21fcGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6
QHNlbGVjdG9yKG51bWJlck9mRmlsZXMpXSA/IFttX3Bhc3RlYm9hcmQgbnVtYmVyT2ZGaWxlc10g
OiAwOwogfQogCitWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbigpCit7CisgICAgaWYgKCFbbV9wYXN0ZWJvYXJkIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKV0pCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7CisgICAgZm9yIChO
U1VSTCAqZmlsZVVSTCBpbiBbbV9wYXN0ZWJvYXJkIGZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlv
bl0pCisgICAgICAgIGZpbGVuYW1lcy5hcHBlbmQoZmlsZVVSTC5wYXRoKTsKKworICAgIHJldHVy
biBmaWxlbmFtZXM7Cit9CisKIFN0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnN0cmluZ0ZvclR5
cGUoY29uc3QgU3RyaW5nJiB0eXBlKQogewogICAgIE5TQXJyYXkgKnZhbHVlcyA9IFttX3Bhc3Rl
Ym9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6dHlwZSBpbkl0ZW1TZXQ6W05TSW5kZXhTZXQg
aW5kZXhTZXRXaXRoSW5kZXg6MF1dOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLmgKaW5kZXggZDgwNmUwMDllODhhZjhj
M2Q4OGJiNDg1YWRkMDIxMTgxZmU4Yjc2Ny4uODMyM2U3MjA3OGI0N2I3ZDA3NzJlNjQyMDlhOGYx
MzU0YjE2YjA5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5oCkBAIC00Myw2ICs0Myw5IEBAIFdFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCA6IE5TT2JqZWN0PEFic3Ry
YWN0UGFzdGVib2FyCiBAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TSW50ZWdlciBu
dW1iZXJPZkl0ZW1zOwogQHByb3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBOU0ludGVnZXIg
Y2hhbmdlQ291bnQ7CiAKKy8vIFRoaXMgd2lsbCBvbmx5IGJlIG5vbi1lbXB0eSB3aGVuIGFuIG9w
ZXJhdGlvbiBpcyBiZWluZyBwZXJmb3JtZWQuCitAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9t
aWMpIE5TQXJyYXk8TlNVUkwgKj4gKmZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbjsKKwogQHBy
b3BlcnR5IChyZWFkb25seSwgbm9uYXRvbWljKSBCT09MIGhhc1BlbmRpbmdPcGVyYXRpb247CiAt
ICh2b2lkKWluY3JlbWVudFBlbmRpbmdPcGVyYXRpb25Db3VudDsKIC0gKHZvaWQpZGVjcmVtZW50
UGVuZGluZ09wZXJhdGlvbkNvdW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQppbmRleCA5ZTZhN2Y3ZmNjODky
OTk5MmZkMDRlODY4OWEyYmM5Yjg0OTY4ZTE5Li43YWIxNjQ5OGVlNzIyMGU5ZWZlMzZiYjk1ZWEz
MTFlMGQ2YThkMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
SXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAtODQsNiArODQsNyBAQCBzdGF0aWMg
Qk9PTCBpc0ltYWdlVHlwZShOU1N0cmluZyAqdHlwZSkKIEBpbXBsZW1lbnRhdGlvbiBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIHsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2l0ZW1Qcm92aWRl
cnM7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9jYWNoZWRUeXBlSWRlbnRpZmllcnM7CisgICAg
UmV0YWluUHRyPE5TQXJyYXk+IF9maWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb247CiB9CiAKICsg
KGluc3RhbmNldHlwZSlzaGFyZWRJbnN0YW5jZQpAQCAtMTAyLDYgKzEwMyw3IEBAIHN0YXRpYyBC
T09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0eXBlKQogICAgICAgICBfaXRlbVByb3ZpZGVycyA9
IGFkb3B0TlMoW1tOU0FycmF5IGFsbG9jXSBpbml0XSk7CiAgICAgICAgIF9jaGFuZ2VDb3VudCA9
IDA7CiAgICAgICAgIF9wZW5kaW5nT3BlcmF0aW9uQ291bnQgPSAwOworICAgICAgICBfZmlsZW5h
bWVzRm9yRGF0YUludGVyYWN0aW9uID0gQFsgXTsKICAgICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9
CkBAIC0xNDAsNiArMTQyLDcgQEAgc3RhdGljIEJPT0wgaXNJbWFnZVR5cGUoTlNTdHJpbmcgKnR5
cGUpCiAgICAgX2l0ZW1Qcm92aWRlcnMgPSBpdGVtUHJvdmlkZXJzOwogICAgIF9jaGFuZ2VDb3Vu
dCsrOwogICAgIF9jYWNoZWRUeXBlSWRlbnRpZmllcnMgPSBuaWw7CisgICAgX2ZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbiA9IEBbIF07CiB9CiAKIC0gKE5TSW50ZWdlciludW1iZXJPZkl0ZW1z
CkBAIC0yNTQsNiArMjU3LDExIEBAIHN0YXRpYyBCT09MIGlzSW1hZ2VUeXBlKE5TU3RyaW5nICp0
eXBlKQogICAgIHJldHVybiBfY2hhbmdlQ291bnQ7CiB9CiAKKy0gKE5TQXJyYXk8TlNVUkwgKj4g
KilmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24KK3sKKyAgICByZXR1cm4gX2ZpbGVuYW1lc0Zv
ckRhdGFJbnRlcmFjdGlvbi5nZXQoKTsKK30KKwogLSAoTlNJbnRlZ2VyKW51bWJlck9mRmlsZXMK
IHsKICAgICBOU0ludGVnZXIgbnVtYmVyT2ZGaWxlcyA9IDA7CkBAIC0yODUsNiArMjkzLDggQEAg
c3RhdGljIE5TVVJMICp0ZW1wb3JhcnlGaWxlVVJMRm9yRGF0YUludGVyYWN0aW9uQ29udGVudChO
U1N0cmluZyAqZmlsZUV4dGVuc2lvbiwKIAogLSAodm9pZClkb0FmdGVyTG9hZGluZ1Byb3ZpZGVk
Q29udGVudEludG9GaWxlVVJMczooV2ViSXRlbVByb3ZpZGVyRmlsZUxvYWRCbG9jaylhY3Rpb24K
IHsKKyAgICBhdXRvIGNoYW5nZUNvdW50QmVmb3JlTG9hZGluZyA9IF9jaGFuZ2VDb3VudDsKKwog
ICAgIGF1dG8gaXRlbVByb3ZpZGVyc1dpdGhGaWxlcyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gY29udGVudFR5cGVJZGVudGlmaWVyc1RvTG9hZCA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gbG9hZGVk
RmlsZVVSTHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKQEAgLTMy
OCw3ICszMzgsMTEgQEAgc3RhdGljIE5TVVJMICp0ZW1wb3JhcnlGaWxlVVJMRm9yRGF0YUludGVy
YWN0aW9uQ29udGVudChOU1N0cmluZyAqZmlsZUV4dGVuc2lvbiwKICAgICAgICAgfSk7CiAgICAg
fQogCi0gICAgZGlzcGF0Y2hfZ3JvdXBfbm90aWZ5KGZpbGVMb2FkaW5nR3JvdXAuZ2V0KCksIGRp
c3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFtmaWxlTG9hZGluZ0dyb3VwLCBsb2FkZWRGaWxlVVJM
cywgY29tcGxldGlvbkJsb2NrID0gbWFrZUJsb2NrUHRyKGFjdGlvbildIHsKKyAgICBSZXRhaW5Q
dHI8V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZD4gcmV0YWluZWRTZWxmID0gc2VsZjsKKyAgICBk
aXNwYXRjaF9ncm91cF9ub3RpZnkoZmlsZUxvYWRpbmdHcm91cC5nZXQoKSwgZGlzcGF0Y2hfZ2V0
X21haW5fcXVldWUoKSwgW3JldGFpbmVkU2VsZiwgZmlsZUxvYWRpbmdHcm91cCwgbG9hZGVkRmls
ZVVSTHMsIGNvbXBsZXRpb25CbG9jayA9IG1ha2VCbG9ja1B0cihhY3Rpb24pLCBjaGFuZ2VDb3Vu
dEJlZm9yZUxvYWRpbmddIHsKKyAgICAgICAgaWYgKGNoYW5nZUNvdW50QmVmb3JlTG9hZGluZyA9
PSByZXRhaW5lZFNlbGYtPl9jaGFuZ2VDb3VudCkKKyAgICAgICAgICAgIHJldGFpbmVkU2VsZi0+
X2ZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbiA9IGFkb3B0TlMoW2xvYWRlZEZpbGVVUkxzIGNv
cHldKTsKKwogICAgICAgICBjb21wbGV0aW9uQmxvY2sobG9hZGVkRmlsZVVSTHMuZ2V0KCkpOwog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAzMGM0NzFkZWYyZTcxMzdmYjE2MWM3ZTZm
YjhlMzFjM2JmOWJkZGNhLi4wNGZjNzQzMDY4YjY5ODg1YWJjZjhkOWYyM2ZkOWJmZTdjMjYxZDM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjUsNiArNjUsNyBAQCBwcml2YXRlOgogICAgIFN0cmlu
ZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBS
ZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50
IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpVUkwgcmVhZFVSTEZyb21QYXN0ZWJv
YXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBnZXRGaWxlbmFtZXNGb3JEYXRh
SW50ZXJhY3Rpb24oVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcywgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKICAgICBpbnQgZ2V0TnVtYmVyT2ZGaWxlcyhj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICB2b2lkIGdldFR5cGVz
KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggMjM2Y2IyZDkwNGFkZjA2ZWNkMzQzZGZkYThm
NGE1ODRkMzdhZGIxNi4uNzViYjhmMDdiNWJlMmFjNWJiNzZmZWQ0MjMyNzZlNDFiODQ0NDkzOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtMjIwLDQgKzIyMCw5IEBAIFN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0
cmluZyYKIHsKICAgICByZXR1cm4gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5y
ZWFkU3RyaW5nKGluZGV4LCB0eXBlKTsKIH0KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVz
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIGZpbGVuYW1lcyA9IFBsYXRm
b3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkuZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9u
KCk7Cit9CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tCmluZGV4IDQw
NjQzMmRlYmNlY2JkZmViOTczMTNjMjNkZDdlODMyMDU3YTk4YWUuLjZhYWI5OTlkZDM5YjFiZDcz
MjNiNWI0YmY2NjM4OTcyMjdiYzY3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQYXN0ZWJvYXJkUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0KQEAgLTE4Myw2ICsx
ODMsMTEgQEAgdm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9hcmRJdGVtc0NvdW50
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIHUKICAgICBpdGVtc0NvdW50ID0gUGxhdGZv
cm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5jb3VudCgpOwogfQogCit2b2lkIFdlYlBhc3Rl
Ym9hcmRQcm94eTo6Z2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUsIFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMpCit7CisgICAgZmlsZW5h
bWVzID0gUGxhdGZvcm1QYXN0ZWJvYXJkKHBhc3RlYm9hcmROYW1lKS5maWxlbmFtZXNGb3JEYXRh
SW50ZXJhY3Rpb24oKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA0Y2M3YWVjYzVmNDQ1
NjYzZjVjMTI1YWZjYjA0N2Y0MGIwYjgzMzJiLi43ZGJkNDgzZTJkN2EzMTg4NDBiNWVlMGE2MWIw
MDhlMDk5MzhkOTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNDA4LDYgKzQwOCw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGll
bnQmIHBhZ2VDbGllbnQsIFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX2N1
cnJlbnREcmFnT3BlcmF0aW9uKERyYWdPcGVyYXRpb25Ob25lKQogICAgICwgbV9jdXJyZW50RHJh
Z0lzT3ZlckZpbGVJbnB1dChmYWxzZSkKICAgICAsIG1fY3VycmVudERyYWdOdW1iZXJPZkZpbGVz
VG9CZUFjY2VwdGVkKDApCisgICAgLCBtX2RvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFn
KGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX3BhZ2VMb2FkU3RhdGUoKnRoaXMpCiAgICAgLCBtX2Rl
bGVnYXRlc1Njcm9sbGluZyhmYWxzZSkKQEAgLTE4MDAsMTMgKzE4MDEsMTQgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29udHJvbGxlckFjdGlv
biBhY3Rpb24sIERyYWcKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJ
c092ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0
IEludFJlY3QmIGluc2VydGlvblJlY3QpCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURy
YWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092
ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IElu
dFJlY3QmIGluc2VydGlvblJlY3QsIGJvb2wgaXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKQogewog
ICAgIE1FU1NBR0VfQ0hFQ0soZHJhZ09wZXJhdGlvbiA8PSBEcmFnT3BlcmF0aW9uRGVsZXRlKTsK
IAogICAgIG1fY3VycmVudERyYWdPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9u
PihkcmFnT3BlcmF0aW9uKTsKICAgICBtX2N1cnJlbnREcmFnSXNPdmVyRmlsZUlucHV0ID0gbW91
c2VJc092ZXJGaWxlSW5wdXQ7CiAgICAgbV9jdXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNj
ZXB0ZWQgPSBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOworICAgIG1fZG9jdW1lbnRJc0hhbmRs
aW5nTm9uRGVmYXVsdERyYWcgPSBpc0hhbmRsaW5nTm9uRGVmYXVsdERyYWc7CiAgICAgc2V0RHJh
Z0NhcmV0UmVjdChpbnNlcnRpb25SZWN0KTsKIH0KIApAQCAtMTg0Myw2ICsxODQ1LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpCiB7CiAgICAgbV9j
dXJyZW50RHJhZ09wZXJhdGlvbiA9IFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Ob25lOwogICAgIG1f
Y3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQgPSBmYWxzZTsKKyAgICBtX2RvY3VtZW50SXNIYW5k
bGluZ05vbkRlZmF1bHREcmFnID0gZmFsc2U7CiAgICAgbV9jdXJyZW50RHJhZ051bWJlck9mRmls
ZXNUb0JlQWNjZXB0ZWQgPSAwOwogICAgIHNldERyYWdDYXJldFJlY3QoeyB9KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA2ZDFjNDRlMDdiYmRiMGIyY2Jh
YzkyYmU4YTNmODRlZjM1MzY3NzhkLi5iOTIwNWY0ZTMwMzUxNGJmZDQ0NjE5MzM2M2EzNDIwNDE4
YmUxYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC04MzUs
NyArODM1LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhZ0V4aXRlZChXZWJDb3JlOjpEcmFnRGF0
YSYsIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lID0gU3RyaW5nKCkpOwogICAgIHZvaWQg
cGVyZm9ybURyYWdPcGVyYXRpb24oV2ViQ29yZTo6RHJhZ0RhdGEmLCBjb25zdCBTdHJpbmcmIGRy
YWdTdG9yYWdlTmFtZSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmKTsKIAotICAgIHZvaWQgZGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJG
aWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGluc2VydGlvblJlY3QpOworICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJvb2wgbW91c2VJc092ZXJGaWxl
SW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGluc2VydGlvblJlY3QsIGJvb2wgaXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKTsK
ICAgICB2b2lkIGRyYWdFbmRlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRp
b24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3Bl
cmF0aW9uKTsKICAgICB2b2lkIGRyYWdDYW5jZWxsZWQoKTsKICAgICB2b2lkIHNldERyYWdDYXJl
dFJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwpAQCAtODkzLDYgKzg5Myw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGN1cnJlbnREcmFnSXNPdmVyRmlsZUlucHV0KCkgY29uc3QgeyByZXR1cm4g
bV9jdXJyZW50RHJhZ0lzT3ZlckZpbGVJbnB1dDsgfQogICAgIHVuc2lnbmVkIGN1cnJlbnREcmFn
TnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERyYWdO
dW1iZXJPZkZpbGVzVG9CZUFjY2VwdGVkOyB9CiAgICAgV2ViQ29yZTo6SW50UmVjdCBjdXJyZW50
RHJhZ0NhcmV0UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fY3VycmVudERyYWdDYXJldFJlY3Q7IH0K
KyAgICBib29sIGRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKCkgY29uc3QgeyByZXR1
cm4gbV9kb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJhZzsgfQogICAgIHZvaWQgcmVzZXRD
dXJyZW50RHJhZ0luZm9ybWF0aW9uKCk7CiAgICAgdm9pZCBkaWRFbmREcmFnZ2luZygpOwogI2Vu
ZGlmCkBAIC0xODczLDYgKzE4NzQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jdXJyZW50RHJh
Z0lzT3ZlckZpbGVJbnB1dDsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnREcmFnTnVtYmVyT2ZGaWxl
c1RvQmVBY2NlcHRlZDsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fY3VycmVudERyYWdDYXJldFJl
Y3Q7CisgICAgYm9vbCBtX2RvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnOwogI2VuZGlm
CiAKICAgICBQYWdlTG9hZFN0YXRlIG1fcGFnZUxvYWRTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDYxMWU0MWIyOTNm
OWM4MWJjNGUyODg2YjY5MGRkZjRjNzZlN2E0MWQuLjE0YTU3ZjljNjU5NTk3YzE0YTY2ZWJlNmZj
ZDU4MWY0YzYwZjFmZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjk1LDcgKzI5NSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBh
Z2VQcm94eSB7CiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotICAgIERpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBk
cmFnT3BlcmF0aW9uLCBib29sIG1vdXNlSXNPdmVyRmlsZUlucHV0LCB1bnNpZ25lZCBudW1iZXJP
Zkl0ZW1zVG9CZUFjY2VwdGVkLCBXZWJDb3JlOjpJbnRSZWN0IGluc2VydGlvblJlY3QpCisgICAg
RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGRyYWdPcGVyYXRpb24sIGJv
b2wgbW91c2VJc092ZXJGaWxlSW5wdXQsIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0
ZWQsIFdlYkNvcmU6OkludFJlY3QgaW5zZXJ0aW9uUmVjdCwgYm9vbCBpc0hhbmRsaW5nTm9uRGVm
YXVsdERyYWcpCiAgICAgRGlkRW5kRHJhZ2dpbmcoKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKENP
Q09BKSAmJiBFTkFCTEUoRFJBR19TVVBQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IGU0M2QxYTEzMGU3ZDczNDNhMGJmNTYwMjE3ZWE1
Mzc4MDVjNzgwMTguLjI2NTU3MzYxZjU1OGU5NjY0MDg2NDBmNTQwOWQ2ODgyZjI1ZmVjNzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTc1
LDYgKzc1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50
NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgU3RyaW5nJik7CiAgICAgdm9pZCByZWFkQnVmZmVyRnJvbVBhc3RlYm9h
cmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0X3QmIHNp
emUpOwogICAgIHZvaWQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSwgdWludDY0X3QmIGl0ZW1zQ291bnQpOworICAgIHZvaWQgZ2V0RmlsZW5hbWVz
Rm9yRGF0YUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFZlY3RvcjxT
dHJpbmc+JiBmaWxlbmFtZXMpOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCBnZXROdW1iZXJPZkZpbGVzKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIHVpbnQ2NF90
JiBudW1iZXJPZkZpbGVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGMxZTk5ZmZjZDA4ZTcxOWQwOTE3
M2YwYTkxZTY1MDM1MWZlZmEyNjUuLjczNmEwYWQ0NTFjZWNlNjQ0ZGRlODYzNmE2MTVkZjYzNTll
YzkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjksNiArMjksNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YXN0ZWJvYXJkUHJveHkgewogICAgIFJlYWRVUkxGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRl
eCwgU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChTdHJp
bmcgc3RyaW5nKQogICAgIFJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwg
U3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZSwgdWludDY0X3Qgc2l6ZSkKICAgICBHZXRQYXN0
ZWJvYXJkSXRlbXNDb3VudChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+ICh1aW50NjRfdCBpdGVt
c0NvdW50KQorICAgIEdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihTdHJpbmcgcGFzdGVi
b2FyZE5hbWUpIC0+IChWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXMpCiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDA1
MDU2M2ZhODU3NzU3NTZkODVlM2Y5ZWQ3ODI1Yjk4MzdmOGQ5YjAuLjJlZGY0Yjc2ZDU0NjRlMWRi
NTY0ZDhiZDBkMzYzYWQ3MjBlN2MyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKQEAgLTMwOSw2ICszMDksMTEgQEAgaW50IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0
UGFzdGVib2FyZEl0ZW1zQ291bnQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKICAgICBy
ZXR1cm4gaXRlbXNDb3VudDsKIH0KIAordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZp
bGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OkdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihwYXN0ZWJvYXJkTmFtZSks
IE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFj
dGlvbjo6UmVwbHkoZmlsZW5hbWVzKSwgMCk7Cit9CisKIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGlu
dCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSkKIHsKICAgICBTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3Jt
U3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCAyZDdkOGE1YzAxOGJjMjEzNDlkZmUzY2YwMGU0
NGEzMTVmOGRkM2ZjLi5lNDM4N2M5MzAyMTk4NGE4NTViMWE4Yzc0ZmVmYzhiNWJkNzc4NWMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0
ZToKICAgICBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21Q
YXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgV2ViQ29yZTo6VVJMIHJlYWRV
UkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOworICAgIHZvaWQgZ2V0Rmls
ZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgaW50IGdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZjEzMjdjYmYzZTFmY2ZiOTJhOWMxMmUzNWMwZDU3NWNlMWU5NGM0ZS4u
Y2NjZDA3NWJkZjEwZTliODJjMWRiMDQ4NTIyYmJmYzNiM2IyZDNiOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzUzNiw3ICszNTM2LDcg
QEAgYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50
KiBldnQpCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRf
dCBhY3Rpb24sIGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgSW50UG9pbnQm
IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIFdl
YlNlbGVjdGlvbkRhdGEmJiBzZWxlY3Rpb24sIHVpbnQzMl90IGZsYWdzKQogewogICAgIGlmICgh
bV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lLCBmYWxzZSwgMCwgeyB9KSk7
CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lLCBmYWxzZSwgMCwgeyB9LCBmYWxzZSkpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zNTQ0LDEyICszNTQ0LDEyIEBAIHZvaWQgV2Vi
UGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgY29uc3Qg
SW50UG9pbnQmIGNsaWVuCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIERyYWdDb250
cm9sbGVyQWN0aW9uRW50ZXJlZDogewogICAgICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJh
Z09wZXJhdGlvbiA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW50ZXJlZChkcmFnRGF0
YSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5u
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERy
YWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1
dCgpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgp
LCB7IH0sIGZhbHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIERyYWdDb250
cm9sbGVyQWN0aW9uVXBkYXRlZDogewogICAgICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJh
Z09wZXJhdGlvbiA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRW50ZXJlZChkcmFnRGF0
YSk7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHJlc29sdmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJv
bGxlcigpLm1vdXNlSXNPdmVyRmlsZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5u
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKCksIHsgfSkpOworICAgICAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERy
YWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1
dCgpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgp
LCB7IH0sIGZhbHNlKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIERyYWdDb250
cm9sbGVyQWN0aW9uRXhpdGVkOgpAQCAtMzU2OSwyNSArMzU2OSwyNSBAQCB2b2lkIFdlYlBhZ2U6
OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIGNvbnN0IEludFBv
aW50JiBjbGllbgogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWlu
dDY0X3QgYWN0aW9uLCBjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYgZHJhZ0RhdGEsIGNvbnN0IFNh
bmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgY29uc3QgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIHNhbmRib3hFeHRlbnNpb25zSGFuZGxlQXJyYXkp
CiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZh
bHNlLCAwLCB7IH0pKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQ
ZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7
IH0sIGZhbHNlKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBzd2l0Y2ggKGFjdGlv
bikgewogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rpb25FbnRlcmVkOiB7CiAgICAgICAgIERy
YWdPcGVyYXRpb24gcmVzb2x2ZWREcmFnT3BlcmF0aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxl
cigpLmRyYWdFbnRlcmVkKGRyYWdEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0
aW9uLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9w
YWdlLT5kcmFnQ29udHJvbGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgbV9wYWdl
LT5kcmFnQ2FyZXRDb250cm9sbGVyKCkuY2FyZXRQb3NpdGlvbigpLmFic29sdXRlQ2FyZXRCb3Vu
ZHMoKSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihyZXNvbHZlZERyYWdPcGVyYXRpb24sIG1fcGFnZS0+ZHJhZ0Nv
bnRyb2xsZXIoKS5tb3VzZUlzT3ZlckZpbGVJbnB1dCgpLCBtX3BhZ2UtPmRyYWdDb250cm9sbGVy
KCkubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgpLCBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xs
ZXIoKS5jYXJldFBvc2l0aW9uKCkuYWJzb2x1dGVDYXJldEJvdW5kcygpLCBtX3BhZ2UtPmRyYWdD
b250cm9sbGVyKCkuZG9jdW1lbnRJc0hhbmRsaW5nTm9uRGVmYXVsdERyYWcoKSkpOwogICAgICAg
ICBicmVhazsKIAogICAgIH0KICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uVXBkYXRlZDog
ewogICAgICAgICBEcmFnT3BlcmF0aW9uIHJlc29sdmVkRHJhZ09wZXJhdGlvbiA9IG1fcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnVXBkYXRlZChkcmFnRGF0YSk7Ci0gICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHJlc29s
dmVkRHJhZ09wZXJhdGlvbiwgbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLm1vdXNlSXNPdmVyRmls
ZUlucHV0KCksIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5udW1iZXJPZkl0ZW1zVG9CZUFjY2Vw
dGVkKCksIG1fcGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLmNhcmV0UG9zaXRpb24oKS5hYnNv
bHV0ZUNhcmV0Qm91bmRzKCkpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24ocmVzb2x2ZWREcmFnT3BlcmF0aW9uLCBt
X3BhZ2UtPmRyYWdDb250cm9sbGVyKCkubW91c2VJc092ZXJGaWxlSW5wdXQoKSwgbV9wYWdlLT5k
cmFnQ29udHJvbGxlcigpLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoKSwgbV9wYWdlLT5kcmFn
Q2FyZXRDb250cm9sbGVyKCkuY2FyZXRQb3NpdGlvbigpLmFic29sdXRlQ2FyZXRCb3VuZHMoKSwg
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLmRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFn
KCkpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgRHJhZ0NvbnRyb2xsZXJBY3Rp
b25FeGl0ZWQ6CiAgICAgICAgIG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS5kcmFnRXhpdGVkKGRy
YWdEYXRhKTsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0pKTsK
KyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUsIGZhbHNlLCAwLCB7IH0sIGZhbHNlKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIERyYWdDb250cm9sbGVyQWN0aW9uUGVy
Zm9ybURyYWdPcGVyYXRpb246IHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>