<?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>220913</bug_id>
          
          <creation_ts>2021-01-25 02:27:31 -0800</creation_ts>
          <short_desc>Resync libwebrtc with M87 latest branch</short_desc>
          <delta_ts>2021-01-25 06:45:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1722001</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-25 02:27:31 -0800</bug_when>
    <thetext>Resync libwebrtc with M87 latest branch.
This means cherry-picking a1aa01aad0 and 69202b2a57.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722002</commentid>
    <comment_count>1</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-25 02:28:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/73454185&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722003</commentid>
    <comment_count>2</comment_count>
      <attachid>418268</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-25 02:30:16 -0800</bug_when>
    <thetext>Created attachment 418268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722016</commentid>
    <comment_count>3</comment_count>
      <attachid>418270</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-01-25 04:15:42 -0800</bug_when>
    <thetext>Created attachment 418270
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722034</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-25 05:40:35 -0800</bug_when>
    <thetext>Committed r271793: &lt;https://trac.webkit.org/changeset/271793&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418268.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722053</commentid>
    <comment_count>5</comment_count>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-25 06:42:17 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722054</commentid>
    <comment_count>6</comment_count>
      <attachid>418287</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2021-01-25 06:42:22 -0800</bug_when>
    <thetext>Created attachment 418287
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418268</attachid>
            <date>2021-01-25 02:30:16 -0800</date>
            <delta_ts>2021-01-25 06:42:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220913-20210125113014.patch</filename>
            <type>text/plain</type>
            <size>18020</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA4NzAxNTY4ZWIwMTFjMDg3YzBmOGVkNTA0ZjEwYmY2ZWQ2NjRmMjU4Li4wMjBl
ODQyMWViMjI0NzQyMTM4MGFhOGRhMDVkM2M4OWNkNDAxMGM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wMS0yNSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIGxpYndlYnJ0YyB3aXRo
IE04NyBsYXRlc3QgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA5MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDaGVycnktcGlja2luZyB0d28gY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBjaGVy
cnktcGlja2VkIGluIHVwc3RyZWFtIE04NyBhZnRlciBvdXIgbGF0ZXN0IHJlc3luYy4KKyAgICAg
ICAgVGhpcyBpbmNsdWRlczogaHR0cHM6Ly93ZWJydGMtcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20v
Yy9zcmMvKy8xODczNDkgYW5kIGh0dHBzOi8vd2VicnRjLXJldmlldy5nb29nbGVzb3VyY2UuY29t
L2Mvc3JjLysvMTkxNDg1LgorCisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlv
X2NvZGluZy9jb2RlY3Mvb3B1cy9hdWRpb19lbmNvZGVyX29wdXMuY2M6CisgICAgICAgICogU291
cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9hdWRpb19lbmNvZGVy
X29wdXMuaDoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2Nv
ZGVjcy9vcHVzL29wdXNfaW50ZXJmYWNlLmNjOgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9k
dWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvb3B1c191bml0dGVzdC5jYzoKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL3Rlc3QvVGVzdFZBRERUWC5jYzoK
KyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL3BjL3BlZXJfY29ubmVjdGlvbl9ydHBfdW5pdHRlc3Qu
Y2M6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9wYy9zZHBfb2ZmZXJfYW5zd2VyLmNjOgorCiAy
MDIxLTAxLTA4ICBSeWFuIEhvc3RldGxlciAgPHJob3N0QGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgc3VwcG9ydCBmb3Igc291cmNlIGNhY2hpbmcgYmV0d2VlbiBwbGF0Zm9ybXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVk
aW9fY29kaW5nL2NvZGVjcy9vcHVzL2F1ZGlvX2VuY29kZXJfb3B1cy5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVj
cy9vcHVzL2F1ZGlvX2VuY29kZXJfb3B1cy5jYwppbmRleCAyYjE2OTIwNzE0ZjkyYTEwMDFjNjI5
YzAxZWRhNWRhY2Q5NjhiMzY1Li4yMjBlOTZmMWI3NzNjZDg5MWRmZmU1NDcyMmU3Yjg5MDdhNWZj
ODc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0
Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9hdWRpb19lbmNvZGVyX29wdXMuY2MK
KysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9h
dWRpb19jb2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5jb2Rlcl9vcHVzLmNjCkBAIC0zNjcsNyAr
MzY3LDggQEAgQXVkaW9FbmNvZGVyT3B1c0ltcGw6OkF1ZGlvRW5jb2Rlck9wdXNJbXBsKAogICAg
ICAgaW5zdF8obnVsbHB0ciksCiAgICAgICBwYWNrZXRfbG9zc19mcmFjdGlvbl9zbW9vdGhlcl8o
bmV3IFBhY2tldExvc3NGcmFjdGlvblNtb290aGVyKCkpLAogICAgICAgYXVkaW9fbmV0d29ya19h
ZGFwdG9yX2NyZWF0b3JfKGF1ZGlvX25ldHdvcmtfYWRhcHRvcl9jcmVhdG9yKSwKLSAgICAgIGJp
dHJhdGVfc21vb3RoZXJfKHN0ZDo6bW92ZShiaXRyYXRlX3Ntb290aGVyKSkgeworICAgICAgYml0
cmF0ZV9zbW9vdGhlcl8oc3RkOjptb3ZlKGJpdHJhdGVfc21vb3RoZXIpKSwKKyAgICAgIGNvbnNl
Y3V0aXZlX2R0eF9mcmFtZXNfKDApIHsKICAgUlRDX0RDSEVDSygwIDw9IHBheWxvYWRfdHlwZSAm
JiBwYXlsb2FkX3R5cGUgPD0gMTI3KTsKIAogICAvLyBTYW5pdHkgY2hlY2sgb2YgdGhlIHJlZHVu
ZGFudCBwYXlsb2FkIHR5cGUgZmllbGQgdGhhdCB3ZSB3YW50IHRvIGdldCByaWQKQEAgLTU4OSw3
ICs1OTAsNiBAQCBBdWRpb0VuY29kZXI6OkVuY29kZWRJbmZvIEF1ZGlvRW5jb2Rlck9wdXNJbXBs
OjpFbmNvZGVJbXBsKAogICAgICAgICAgICAgICAgTnVtMTBtc0ZyYW1lc1BlclBhY2tldCgpICog
U2FtcGxlc1BlcjEwbXNGcmFtZSgpKTsKIAogICBjb25zdCBzaXplX3QgbWF4X2VuY29kZWRfYnl0
ZXMgPSBTdWZmaWNpZW50T3V0cHV0QnVmZmVyU2l6ZSgpOwotICBjb25zdCBzaXplX3Qgc3RhcnRf
b2Zmc2V0X2J5dGVzID0gZW5jb2RlZC0+c2l6ZSgpOwogICBFbmNvZGVkSW5mbyBpbmZvOwogICBp
bmZvLmVuY29kZWRfYnl0ZXMgPSBlbmNvZGVkLT5BcHBlbmREYXRhKAogICAgICAgbWF4X2VuY29k
ZWRfYnl0ZXMsIFsmXShydGM6OkFycmF5Vmlldzx1aW50OF90PiBlbmNvZGVkKSB7CkBAIC02MDQs
NiArNjA0LDggQEAgQXVkaW9FbmNvZGVyOjpFbmNvZGVkSW5mbyBBdWRpb0VuY29kZXJPcHVzSW1w
bDo6RW5jb2RlSW1wbCgKICAgICAgIH0pOwogICBpbnB1dF9idWZmZXJfLmNsZWFyKCk7CiAKKyAg
Ym9vbCBkdHhfZnJhbWUgPSAoaW5mby5lbmNvZGVkX2J5dGVzIDw9IDIpOworCiAgIC8vIFdpbGwg
dXNlIG5ldyBwYWNrZXQgc2l6ZSBmb3IgbmV4dCBlbmNvZGluZy4KICAgY29uZmlnXy5mcmFtZV9z
aXplX21zID0gbmV4dF9mcmFtZV9sZW5ndGhfbXNfOwogCkBAIC02MTgsMTggKzYyMCwxNCBAQCBB
dWRpb0VuY29kZXI6OkVuY29kZWRJbmZvIEF1ZGlvRW5jb2Rlck9wdXNJbXBsOjpFbmNvZGVJbXBs
KAogICBpbmZvLmVuY29kZWRfdGltZXN0YW1wID0gZmlyc3RfdGltZXN0YW1wX2luX2J1ZmZlcl87
CiAgIGluZm8ucGF5bG9hZF90eXBlID0gcGF5bG9hZF90eXBlXzsKICAgaW5mby5zZW5kX2V2ZW5f
aWZfZW1wdHkgPSB0cnVlOyAgLy8gQWxsb3dzIE9wdXMgdG8gc2VuZCBlbXB0eSBwYWNrZXRzLgor
ICAvLyBBZnRlciAyMCBEVFggZnJhbWVzIChNQVhfQ09OU0VDVVRJVkVfRFRYKSBPcHVzIHdpbGwg
c2VuZCBhIGZyYW1lCisgIC8vIGNvZGluZyB0aGUgYmFja2dyb3VuZCBub2lzZS4gQXZvaWQgZmxh
Z2dpbmcgdGhpcyBmcmFtZSBhcyBzcGVlY2gKKyAgLy8gKGV2ZW4gdGhvdWdoIHRoZXJlIGlzIGEg
cHJvYmFiaWxpdHkgb2YgdGhlIGZyYW1lIGJlaW5nIHNwZWVjaCkuCisgIGluZm8uc3BlZWNoID0g
IWR0eF9mcmFtZSAmJiAoY29uc2VjdXRpdmVfZHR4X2ZyYW1lc18gIT0gMjApOwogICBpbmZvLmVu
Y29kZXJfdHlwZSA9IENvZGVjVHlwZTo6a09wdXM7CiAKLSAgLy8gRXh0cmFjdCB0aGUgVkFEIHJl
c3VsdCBmcm9tIHRoZSBlbmNvZGVkIHBhY2tldC4KLSAgaW50IGhhc192b2ljZSA9IFdlYlJ0Y09w
dXNfUGFja2V0SGFzVm9pY2VBY3Rpdml0eSgKLSAgICAgICZlbmNvZGVkLT5kYXRhKClbc3RhcnRf
b2Zmc2V0X2J5dGVzXSwgaW5mby5lbmNvZGVkX2J5dGVzKTsKLSAgaWYgKGhhc192b2ljZSA9PSAt
MSkgewotICAgIC8vIENFTFQgbW9kZSBwYWNrZXQgb3IgdGhlcmUgd2FzIGFuIGVycm9yLiBUaGlz
IGhhZCBzZXQgdGhlIHNwZWVjaCBmbGFnIHRvCi0gICAgLy8gdHJ1ZSBoaXN0b3JpY2FsbHkuCi0g
ICAgaW5mby5zcGVlY2ggPSB0cnVlOwotICB9IGVsc2UgewotICAgIGluZm8uc3BlZWNoID0gaGFz
X3ZvaWNlOwotICB9CisgIC8vIEluY3JlYXNlIG9yIHJlc2V0IERUWCBjb3VudGVyLgorICBjb25z
ZWN1dGl2ZV9kdHhfZnJhbWVzXyA9IChkdHhfZnJhbWUpID8gKGNvbnNlY3V0aXZlX2R0eF9mcmFt
ZXNfICsgMSkgOiAoMCk7CiAKICAgcmV0dXJuIGluZm87CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9j
b2RlY3Mvb3B1cy9hdWRpb19lbmNvZGVyX29wdXMuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL2F1ZGlv
X2VuY29kZXJfb3B1cy5oCmluZGV4IGRjOTU1Y2VjMjM3NDcyMjg5ZmQ3Mjg0MmY4MmRiNzk2N2Iw
ZWVjODEuLmFiOTU0ZmViYTc4MmRhYTVmYzdjYzUxMTI1YWE0YzE4MGJhMjkyNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVk
aW9fY29kaW5nL2NvZGVjcy9vcHVzL2F1ZGlvX2VuY29kZXJfb3B1cy5oCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2Nv
ZGVjcy9vcHVzL2F1ZGlvX2VuY29kZXJfb3B1cy5oCkBAIC0xNzIsNiArMTcyLDcgQEAgY2xhc3Mg
QXVkaW9FbmNvZGVyT3B1c0ltcGwgZmluYWwgOiBwdWJsaWMgQXVkaW9FbmNvZGVyIHsKICAgYWJz
bDo6b3B0aW9uYWw8c2l6ZV90PiBvdmVyaGVhZF9ieXRlc19wZXJfcGFja2V0XzsKICAgY29uc3Qg
c3RkOjp1bmlxdWVfcHRyPFNtb290aGluZ0ZpbHRlcj4gYml0cmF0ZV9zbW9vdGhlcl87CiAgIGFi
c2w6Om9wdGlvbmFsPGludDY0X3Q+IGJpdHJhdGVfc21vb3RoZXJfbGFzdF91cGRhdGVfdGltZV87
CisgIGludCBjb25zZWN1dGl2ZV9kdHhfZnJhbWVzXzsKIAogICBmcmllbmQgc3RydWN0IEF1ZGlv
RW5jb2Rlck9wdXM7CiAgIFJUQ19ESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9FbmNvZGVy
T3B1c0ltcGwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJj
ZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvb3B1c19pbnRlcmZhY2Uu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1
ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9vcHVzX2ludGVyZmFjZS5jYwppbmRleCA0NTVmMTc1NDY0
MTUzZjE1YzA2NmMwZjExMzUxMDE2N2ZmODI4NGM3Li5jYTM5ZWQ4MjM1NGM5OGUwZDRlNzA2OGMy
ODAwN2E0ZmI1ZjVjNTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMv
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9vcHVzX2ludGVy
ZmFjZS5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9t
b2R1bGVzL2F1ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9vcHVzX2ludGVyZmFjZS5jYwpAQCAtNzY3
LDcgKzc2Nyw3IEBAIGludCBXZWJSdGNPcHVzX1BhY2tldEhhc1ZvaWNlQWN0aXZpdHkoY29uc3Qg
dWludDhfdCogcGF5bG9hZCwKIAogICBpbnQgc2lsa19mcmFtZXMgPSBXZWJSdGNPcHVzX051bVNp
bGtGcmFtZXMocGF5bG9hZCk7CiAgIGlmIChzaWxrX2ZyYW1lcyA9PSAwKQotICAgIHJldHVybiAw
OworICAgIHJldHVybiAtMTsKIAogICBjb25zdCBpbnQgY2hhbm5lbHMgPSBvcHVzX3BhY2tldF9n
ZXRfbmJfY2hhbm5lbHMocGF5bG9hZCk7CiAgIFJUQ19EQ0hFQ0soY2hhbm5lbHMgPT0gMSB8fCBj
aGFubmVscyA9PSAyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL29wdXNfdW5pdHRl
c3QuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVz
L2F1ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9vcHVzX3VuaXR0ZXN0LmNjCmluZGV4IDY2YWM1ZTcz
NDY0ZjU2NThjZDZhN2E0ZGZjNzU2ZmYzNzA5NDk3ZDkuLjgwY2FiNTAxMzcyNzBkMmRjOWNhMDlm
NDAwMTZhNzI4ZjZhYzRiMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL29wdXNfdW5p
dHRlc3QuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvb3B1c191bml0dGVzdC5jYwpAQCAtOTc1
LDIxICs5NzUsNCBAQCBURVNUKE9wdXNWYWRUZXN0LCBUd29PcHVzTW9ub0ZyYW1lc1ZhZE9uU2Vj
b25kKSB7CiAgIEVYUEVDVF9UUlVFKFdlYlJ0Y09wdXNfUGFja2V0SGFzVm9pY2VBY3Rpdml0eSh0
d29Nb25vRnJhbWVzLCAzKSk7CiB9CiAKLVRFU1QoT3B1c1ZhZFRlc3QsIER0eEVtcHR5UGFja2V0
KSB7Ci0gIGNvbnN0IHVpbnQ4X3QgZHR4W10gPSB7MHg3OH07Ci0gIEVYUEVDVF9GQUxTRShXZWJS
dGNPcHVzX1BhY2tldEhhc1ZvaWNlQWN0aXZpdHkoZHR4LCAxKSk7Ci19Ci0KLVRFU1QoT3B1c1Zh
ZFRlc3QsIER0eEJhY2tncm91bmROb2lzZVBhY2tldCkgewotICAvLyBEVFggc2VuZHMgYSBmcmFt
ZSBjb2RpbmcgYmFja2dyb3VuZCBub2lzZSBldmVyeSAyMCBwYWNrZXRzOgotICAvLyAgIGh0dHBz
Oi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM2NzE2I3NlY3Rpb24tMi4xLjkKLSAgLy8gVGhlIHBh
Y2tldCBiZWxvdyByZXByZXNlbnRzIHN1Y2ggYSBmcmFtZSBhbmQgd2FzIGNhcHR1cmVkIHVzaW5n
Ci0gIC8vIFdpcmVzaGFyayB3aGlsZSBkaXNhYmxpbmcgZW5jcnlwdGlvbi4KLSAgY29uc3QgdWlu
dDhfdCBkdHhbXSA9IHsweDc4LCAweDA3LCAweGM5LCAweDc5LCAweGM4LCAweGM5LCAweDU3LCAw
eGMwLCAweGEyLAotICAgICAgICAgICAgICAgICAgICAgICAgIDB4MTIsIDB4MjMsIDB4ZmEsIDB4
ZWYsIDB4NjcsIDB4ZjMsIDB4MmUsIDB4ZTMsIDB4ZDMsCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgMHhkNSwgMHhlOSwgMHhlYywgMHhkYiwgMHgzZSwgMHhiYywgMHg4MCwgMHhiNiwgMHg2ZSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAweDJhLCAweGI3LCAweDhjLCAweDgzLCAweGNkLCAw
eDgzLCAweGNkLCAweDAwfTsKLSAgRVhQRUNUX0ZBTFNFKFdlYlJ0Y09wdXNfUGFja2V0SGFzVm9p
Y2VBY3Rpdml0eShkdHgsIDM1KSk7Ci19Ci0KIH0gIC8vIG5hbWVzcGFjZSB3ZWJydGMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMv
YXVkaW9fY29kaW5nL3Rlc3QvVGVzdFZBRERUWC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndl
YnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL3Rlc3QvVGVzdFZBRERUWC5j
YwppbmRleCBkY2U1NDMzZWQ4ZGJiZDdmY2MxNTVkOTg2OTViOTdhNTllYmNhNjQ4Li4xN2JhZWY2
MGRlOTY5MTE5ZjBiODNlNjlmMWU3NmQ2MTNmNDI5NTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy90ZXN0
L1Rlc3RWQUREVFguY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvdGVzdC9UZXN0VkFERFRYLmNjCkBAIC0xNjYsMTMg
KzE2NiwxMSBAQCB2b2lkIFRlc3RWYWREdHg6OlJ1bihzdGQ6OnN0cmluZyBpbl9maWxlbmFtZSwK
ICAgICBpbnQgaSA9ICZzdCAtIHN0YXRzOyAgLy8gQ2FsY3VsYXRlIHRoZSBjdXJyZW50IHBvc2l0
aW9uIGluIHN0YXRzLgogICAgIHN3aXRjaCAoZXhwZWN0c1tpXSkgewogICAgICAgY2FzZSAwOiB7
Ci0gICAgICAgIEVYUEVDVF9FUSgwdSwgc3QpIDw8ICJzdGF0c1siIDw8IGkgPDwgIl0gZXJyb3Iu
IE91dHB1dCBmaWxlICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgb3V0X2ZpbGVuYW1l
OworICAgICAgICBFWFBFQ1RfRVEoMHUsIHN0KSA8PCAic3RhdHNbIiA8PCBpIDw8ICJdIGVycm9y
LiI7CiAgICAgICAgIGJyZWFrOwogICAgICAgfQogICAgICAgY2FzZSAxOiB7Ci0gICAgICAgIEVY
UEVDVF9HVChzdCwgMHUpIDw8ICJzdGF0c1siIDw8IGkgPDwgIl0gZXJyb3IuIE91dHB1dCBmaWxl
ICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgPDwgb3V0X2ZpbGVuYW1lOworICAgICAgICBF
WFBFQ1RfR1Qoc3QsIDB1KSA8PCAic3RhdHNbIiA8PCBpIDw8ICJdIGVycm9yLiI7CiAgICAgICAg
IGJyZWFrOwogICAgICAgfQogICAgIH0KQEAgLTE5MSwyOSArMTg5LDI1IEBAIHZvaWQgVGVzdFdl
YlJ0Y1ZhZER0eDo6UGVyZm9ybSgpIHsKIAogLy8gVGVzdCB2YXJpb3VzIGNvbmZpZ3VyYXRpb25z
IG9uIFZBRC9EVFguCiB2b2lkIFRlc3RXZWJSdGNWYWREdHg6OlJ1blRlc3RDYXNlcyhjb25zdCBT
ZHBBdWRpb0Zvcm1hdCYgY29kZWNfZm9ybWF0KSB7Ci0gIFJlZ2lzdGVyQ29kZWMoY29kZWNfZm9y
bWF0LCBhYnNsOjpudWxsb3B0KTsKICAgVGVzdCgvKm5ld19vdXRmaWxlPSovdHJ1ZSwKLSAgICAg
ICAvKmV4cGVjdF92YWRfcGFja2V0cz0qL2NvZGVjX2Zvcm1hdC5uYW1lID09ICJvcHVzIik7Cisg
ICAgICAgLypleHBlY3RfZHR4X2VuYWJsZWQ9Ki9SZWdpc3RlckNvZGVjKGNvZGVjX2Zvcm1hdCwg
YWJzbDo6bnVsbG9wdCkpOwogCi0gIFJlZ2lzdGVyQ29kZWMoY29kZWNfZm9ybWF0LCBWYWQ6OmtW
YWRBZ2dyZXNzaXZlKTsKICAgVGVzdCgvKm5ld19vdXRmaWxlPSovZmFsc2UsCi0gICAgICAgLypl
eHBlY3RfdmFkX3BhY2tldHM9Ki90cnVlKTsKKyAgICAgICAvKmV4cGVjdF9kdHhfZW5hYmxlZD0q
L1JlZ2lzdGVyQ29kZWMoY29kZWNfZm9ybWF0LCBWYWQ6OmtWYWRBZ2dyZXNzaXZlKSk7CiAKLSAg
UmVnaXN0ZXJDb2RlYyhjb2RlY19mb3JtYXQsIFZhZDo6a1ZhZExvd0JpdHJhdGUpOwogICBUZXN0
KC8qbmV3X291dGZpbGU9Ki9mYWxzZSwKLSAgICAgICAvKmV4cGVjdF92YWRfcGFja2V0cz0qL3Ry
dWUpOworICAgICAgIC8qZXhwZWN0X2R0eF9lbmFibGVkPSovUmVnaXN0ZXJDb2RlYyhjb2RlY19m
b3JtYXQsIFZhZDo6a1ZhZExvd0JpdHJhdGUpKTsKIAotICBSZWdpc3RlckNvZGVjKGNvZGVjX2Zv
cm1hdCwgVmFkOjprVmFkVmVyeUFnZ3Jlc3NpdmUpOwotICBUZXN0KC8qbmV3X291dGZpbGU9Ki9m
YWxzZSwgLypleHBlY3RfdmFkX3BhY2tldHM9Ki90cnVlKTsKKyAgVGVzdCgvKm5ld19vdXRmaWxl
PSovZmFsc2UsIC8qZXhwZWN0X2R0eF9lbmFibGVkPSovUmVnaXN0ZXJDb2RlYygKKyAgICAgICAg
ICAgY29kZWNfZm9ybWF0LCBWYWQ6OmtWYWRWZXJ5QWdncmVzc2l2ZSkpOwogCi0gIFJlZ2lzdGVy
Q29kZWMoY29kZWNfZm9ybWF0LCBWYWQ6OmtWYWROb3JtYWwpOwogICBUZXN0KC8qbmV3X291dGZp
bGU9Ki9mYWxzZSwKLSAgICAgICAvKmV4cGVjdF92YWRfcGFja2V0cz0qL3RydWUpOworICAgICAg
IC8qZXhwZWN0X2R0eF9lbmFibGVkPSovUmVnaXN0ZXJDb2RlYyhjb2RlY19mb3JtYXQsIFZhZDo6
a1ZhZE5vcm1hbCkpOwogfQogCiAvLyBTZXQgdGhlIGV4cGVjdGF0aW9uIGFuZCBydW4gdGhlIHRl
c3QuCi12b2lkIFRlc3RXZWJSdGNWYWREdHg6OlRlc3QoYm9vbCBuZXdfb3V0ZmlsZSwgYm9vbCBl
eHBlY3RfdmFkX3BhY2tldHMpIHsKLSAgaW50IGV4cGVjdHNbXSA9IHstMSwgMSwgZXhwZWN0X3Zh
ZF9wYWNrZXRzID8gMSA6IC0xLCAwLCAwfTsKK3ZvaWQgVGVzdFdlYlJ0Y1ZhZER0eDo6VGVzdChi
b29sIG5ld19vdXRmaWxlLCBib29sIGV4cGVjdF9kdHhfZW5hYmxlZCkgeworICBpbnQgZXhwZWN0
c1tdID0gey0xLCAxLCBleHBlY3RfZHR4X2VuYWJsZWQsIDAsIDB9OwogICBpZiAobmV3X291dGZp
bGUpIHsKICAgICBvdXRwdXRfZmlsZV9udW1fKys7CiAgIH0KQEAgLTIyNiwyMCArMjIwLDE2IEBA
IHZvaWQgVGVzdFdlYlJ0Y1ZhZER0eDo6VGVzdChib29sIG5ld19vdXRmaWxlLCBib29sIGV4cGVj
dF92YWRfcGFja2V0cykgewogCiAvLyBGb2xsb3dpbmcgaXMgdGhlIGltcGxlbWVudGF0aW9uIG9m
IFRlc3RPcHVzRHR4Lgogdm9pZCBUZXN0T3B1c0R0eDo6UGVyZm9ybSgpIHsKLSAgaW50IGV4cGVj
dHNbXSA9IHswLCAwLCAwLCAwLCAwfTsKKyAgaW50IGV4cGVjdHNbXSA9IHswLCAxLCAwLCAwLCAw
fTsKIAogICAvLyBSZWdpc3RlciBPcHVzIGFzIHNlbmQgY29kZWMKICAgc3RkOjpzdHJpbmcgb3V0
X2ZpbGVuYW1lID0KICAgICAgIHdlYnJ0Yzo6dGVzdDo6T3V0cHV0UGF0aCgpICsgInRlc3RPcHVz
RHR4X291dEZpbGVfbW9uby5wY20iOwogICBSZWdpc3RlckNvZGVjKHsib3B1cyIsIDQ4MDAwLCAy
fSwgYWJzbDo6bnVsbG9wdCk7Ci0KICAgYWNtX3NlbmRfLT5Nb2RpZnlFbmNvZGVyKFtdKHN0ZDo6
dW5pcXVlX3B0cjxBdWRpb0VuY29kZXI+KiBlbmNvZGVyX3B0cikgewogICAgICgqZW5jb2Rlcl9w
dHIpLT5TZXREdHgoZmFsc2UpOwogICB9KTsKIAotICBleHBlY3RzW3N0YXRpY19jYXN0PGludD4o
QXVkaW9GcmFtZVR5cGU6OmtFbXB0eUZyYW1lKV0gPSAwOwotICBleHBlY3RzW3N0YXRpY19jYXN0
PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lU3BlZWNoKV0gPSAxOwotICBleHBlY3Rz
W3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lQ04pXSA9IDE7CiAg
IFJ1bih3ZWJydGM6OnRlc3Q6OlJlc291cmNlUGF0aCgiYXVkaW9fY29kaW5nL3Rlc3RmaWxlMzJr
SHoiLCAicGNtIiksIDMyMDAwLCAxLAogICAgICAgb3V0X2ZpbGVuYW1lLCBmYWxzZSwgZXhwZWN0
cyk7CiAKQEAgLTI0Nyw3ICsyMzcsNiBAQCB2b2lkIFRlc3RPcHVzRHR4OjpQZXJmb3JtKCkgewog
ICAgICgqZW5jb2Rlcl9wdHIpLT5TZXREdHgodHJ1ZSk7CiAgIH0pOwogICBleHBlY3RzW3N0YXRp
Y19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtFbXB0eUZyYW1lKV0gPSAxOwotICBleHBlY3Rz
W3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lU3BlZWNoKV0gPSAx
OwogICBleHBlY3RzW3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1l
Q04pXSA9IDE7CiAgIFJ1bih3ZWJydGM6OnRlc3Q6OlJlc291cmNlUGF0aCgiYXVkaW9fY29kaW5n
L3Rlc3RmaWxlMzJrSHoiLCAicGNtIiksIDMyMDAwLCAxLAogICAgICAgb3V0X2ZpbGVuYW1lLCB0
cnVlLCBleHBlY3RzKTsKQEAgLTI1NSwxMiArMjQ0LDEwIEBAIHZvaWQgVGVzdE9wdXNEdHg6OlBl
cmZvcm0oKSB7CiAgIC8vIFJlZ2lzdGVyIHN0ZXJlbyBPcHVzIGFzIHNlbmQgY29kZWMKICAgb3V0
X2ZpbGVuYW1lID0gd2VicnRjOjp0ZXN0OjpPdXRwdXRQYXRoKCkgKyAidGVzdE9wdXNEdHhfb3V0
RmlsZV9zdGVyZW8ucGNtIjsKICAgUmVnaXN0ZXJDb2RlYyh7Im9wdXMiLCA0ODAwMCwgMiwge3si
c3RlcmVvIiwgIjEifX19LCBhYnNsOjpudWxsb3B0KTsKLQogICBhY21fc2VuZF8tPk1vZGlmeUVu
Y29kZXIoW10oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRW5jb2Rlcj4qIGVuY29kZXJfcHRyKSB7CiAg
ICAgKCplbmNvZGVyX3B0ciktPlNldER0eChmYWxzZSk7CiAgIH0pOwogICBleHBlY3RzW3N0YXRp
Y19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtFbXB0eUZyYW1lKV0gPSAwOwotICBleHBlY3Rz
W3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lU3BlZWNoKV0gPSAx
OwogICBleHBlY3RzW3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1l
Q04pXSA9IDA7CiAgIFJ1bih3ZWJydGM6OnRlc3Q6OlJlc291cmNlUGF0aCgiYXVkaW9fY29kaW5n
L3Rlc3RzdGVyZW8zMmtIeiIsICJwY20iKSwgMzIwMDAsCiAgICAgICAyLCBvdXRfZmlsZW5hbWUs
IGZhbHNlLCBleHBlY3RzKTsKQEAgLTI3NCw3ICsyNjEsNiBAQCB2b2lkIFRlc3RPcHVzRHR4OjpQ
ZXJmb3JtKCkgewogICB9KTsKIAogICBleHBlY3RzW3N0YXRpY19jYXN0PGludD4oQXVkaW9GcmFt
ZVR5cGU6OmtFbXB0eUZyYW1lKV0gPSAxOwotICBleHBlY3RzW3N0YXRpY19jYXN0PGludD4oQXVk
aW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lU3BlZWNoKV0gPSAxOwogICBleHBlY3RzW3N0YXRpY19j
YXN0PGludD4oQXVkaW9GcmFtZVR5cGU6OmtBdWRpb0ZyYW1lQ04pXSA9IDE7CiAgIFJ1bih3ZWJy
dGM6OnRlc3Q6OlJlc291cmNlUGF0aCgiYXVkaW9fY29kaW5nL3Rlc3RzdGVyZW8zMmtIeiIsICJw
Y20iKSwgMzIwMDAsCiAgICAgICAyLCBvdXRfZmlsZW5hbWUsIHRydWUsIGV4cGVjdHMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcGMvcGVl
cl9jb25uZWN0aW9uX3J0cF91bml0dGVzdC5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL3BjL3BlZXJfY29ubmVjdGlvbl9ydHBfdW5pdHRlc3QuY2MKaW5kZXgg
YjE2NzBjMTY4NGQ3ZWYwODU0MWY3ZmRlMDllODFhZjc4M2JjMTI4Mi4uN2FlNDhmMDEyOTdkODdm
MGU0MjMxZTQ5NjdmYzcwMmExYzdkZTdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvcGMvcGVlcl9jb25uZWN0aW9uX3J0cF91bml0dGVzdC5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9wZWVy
X2Nvbm5lY3Rpb25fcnRwX3VuaXR0ZXN0LmNjCkBAIC0xNjQsNiArMTY0LDI4IEBAIGNsYXNzIFBl
ZXJDb25uZWN0aW9uUnRwVGVzdFVuaWZpZWRQbGFuIDogcHVibGljIFBlZXJDb25uZWN0aW9uUnRw
QmFzZVRlc3QgewogIHByb3RlY3RlZDoKICAgUGVlckNvbm5lY3Rpb25SdHBUZXN0VW5pZmllZFBs
YW4oKQogICAgICAgOiBQZWVyQ29ubmVjdGlvblJ0cEJhc2VUZXN0KFNkcFNlbWFudGljczo6a1Vu
aWZpZWRQbGFuKSB7fQorCisgIC8vIEhlbHBlciB0byBlbXVsYXRlIGFuIFNGVSB0aGF0IHJlamVj
dHMgYW4gb2ZmZXJlZCBtZWRpYSBzZWN0aW9uCisgIC8vIGluIGFuc3dlci4KKyAgYm9vbCBFeGNo
YW5nZU9mZmVyQW5zd2VyV2hlcmVSZW1vdGVTdG9wc1RyYW5zY2VpdmVyKAorICAgICAgUGVlckNv
bm5lY3Rpb25XcmFwcGVyKiBjYWxsZXIsCisgICAgICBQZWVyQ29ubmVjdGlvbldyYXBwZXIqIGNh
bGxlZSwKKyAgICAgIHNpemVfdCBtaWRfdG9fc3RvcCkgeworICAgIGF1dG8gb2ZmZXIgPSBjYWxs
ZXItPkNyZWF0ZU9mZmVyKCk7CisgICAgY2FsbGVyLT5TZXRMb2NhbERlc2NyaXB0aW9uKENsb25l
U2Vzc2lvbkRlc2NyaXB0aW9uKG9mZmVyLmdldCgpKSk7CisgICAgY2FsbGVlLT5TZXRSZW1vdGVE
ZXNjcmlwdGlvbihzdGQ6Om1vdmUob2ZmZXIpKTsKKyAgICBFWFBFQ1RfTFQobWlkX3RvX3N0b3As
IGNhbGxlZS0+cGMoKS0+R2V0VHJhbnNjZWl2ZXJzKCkuc2l6ZSgpKTsKKyAgICAvLyBNdXN0IHVz
ZSBTdG9wSW50ZXJuYWwgaW4gb3JkZXIgdG8gZG8gaW5zdGFudCByZWplY3QuCisgICAgY2FsbGVl
LT5wYygpLT5HZXRUcmFuc2NlaXZlcnMoKVttaWRfdG9fc3RvcF0tPlN0b3BJbnRlcm5hbCgpOwor
ICAgIGF1dG8gYW5zd2VyID0gY2FsbGVlLT5DcmVhdGVBbnN3ZXIoKTsKKyAgICBFWFBFQ1RfVFJV
RShhbnN3ZXIpOworICAgIGJvb2wgc2V0X2xvY2FsX2Fuc3dlciA9CisgICAgICAgIGNhbGxlZS0+
U2V0TG9jYWxEZXNjcmlwdGlvbihDbG9uZVNlc3Npb25EZXNjcmlwdGlvbihhbnN3ZXIuZ2V0KCkp
KTsKKyAgICBFWFBFQ1RfVFJVRShzZXRfbG9jYWxfYW5zd2VyKTsKKyAgICBib29sIHNldF9yZW1v
dGVfYW5zd2VyID0gY2FsbGVyLT5TZXRSZW1vdGVEZXNjcmlwdGlvbihzdGQ6Om1vdmUoYW5zd2Vy
KSk7CisgICAgRVhQRUNUX1RSVUUoc2V0X3JlbW90ZV9hbnN3ZXIpOworICAgIHJldHVybiBzZXRf
cmVtb3RlX2Fuc3dlcjsKKyAgfQogfTsKIAogLy8gVGhlc2UgdGVzdHMgY292ZXIgfHdlYnJ0Yzo6
UGVlckNvbm5lY3Rpb25PYnNlcnZlcnwgY2FsbGJhY2tzIGZpcmluZyB1cG9uCkBAIC0xNTczLDYg
KzE1OTUsNDIgQEAgVEVTVF9GKFBlZXJDb25uZWN0aW9uUnRwVGVzdFVuaWZpZWRQbGFuLAogICBF
WFBFQ1RfRVEoMFUsIGNhbGxlZS0+cGMoKS0+R2V0UmVjZWl2ZXJzKCkuc2l6ZSgpKTsKIH0KIAor
VEVTVF9GKFBlZXJDb25uZWN0aW9uUnRwVGVzdFVuaWZpZWRQbGFuLAorICAgICAgIFNldExvY2Fs
RGVzY3JpcHRpb25Xb3Jrc0FmdGVyUmVwZWF0ZWRBZGRSZW1vdmUpIHsKKyAgYXV0byBjYWxsZXIg
PSBDcmVhdGVQZWVyQ29ubmVjdGlvbigpOworICBhdXRvIGNhbGxlZSA9IENyZWF0ZVBlZXJDb25u
ZWN0aW9uKCk7CisgIGF1dG8gdmlkZW9fdHJhY2sgPSBjYWxsZXItPkNyZWF0ZVZpZGVvVHJhY2so
InYiKTsKKyAgYXV0byB0cmFjayA9IGNhbGxlci0+Q3JlYXRlQXVkaW9UcmFjaygiYSIpOworICBj
YWxsZXItPkFkZFRyYW5zY2VpdmVyKHZpZGVvX3RyYWNrKTsKKyAgYXV0byB0cmFuc2NlaXZlciA9
IGNhbGxlci0+QWRkVHJhbnNjZWl2ZXIodHJhY2spOworICBBU1NFUlRfVFJVRShjYWxsZXItPkV4
Y2hhbmdlT2ZmZXJBbnN3ZXJXaXRoKGNhbGxlZS5nZXQoKSkpOworICBjYWxsZXItPnBjKCktPlJl
bW92ZVRyYWNrKHRyYW5zY2VpdmVyLT5zZW5kZXIoKSk7CisgIEFTU0VSVF9UUlVFKGNhbGxlci0+
RXhjaGFuZ2VPZmZlckFuc3dlcldpdGgoY2FsbGVlLmdldCgpKSk7CisgIGNhbGxlci0+QWRkVHJh
Y2sodHJhY2spOworICBBU1NFUlRfVFJVRShjYWxsZXItPkV4Y2hhbmdlT2ZmZXJBbnN3ZXJXaXRo
KGNhbGxlZS5nZXQoKSkpOworICBjYWxsZXItPnBjKCktPlJlbW92ZVRyYWNrKHRyYW5zY2VpdmVy
LT5zZW5kZXIoKSk7CisgIEFTU0VSVF9UUlVFKGNhbGxlci0+RXhjaGFuZ2VPZmZlckFuc3dlcldp
dGgoY2FsbGVlLmdldCgpKSk7Cit9CisKKy8vIFRoaXMgaXMgYSByZXBybyBvZiBDaHJvbWl1bSBi
dWcgaHR0cHM6Ly9jcmJ1Zy5jb20vMTEzNDY4NgorVEVTVF9GKFBlZXJDb25uZWN0aW9uUnRwVGVz
dFVuaWZpZWRQbGFuLAorICAgICAgIFNldExvY2FsRGVzY3JpcHRpb25Xb3Jrc0FmdGVyUmVwZWF0
ZWRBZGRSZW1vdmVXaXRoUmVtb3RlUmVqZWN0KSB7CisgIGF1dG8gY2FsbGVyID0gQ3JlYXRlUGVl
ckNvbm5lY3Rpb24oKTsKKyAgYXV0byBjYWxsZWUgPSBDcmVhdGVQZWVyQ29ubmVjdGlvbigpOwor
ICBhdXRvIHZpZGVvX3RyYWNrID0gY2FsbGVyLT5DcmVhdGVWaWRlb1RyYWNrKCJ2Iik7CisgIGF1
dG8gdHJhY2sgPSBjYWxsZXItPkNyZWF0ZUF1ZGlvVHJhY2soImEiKTsKKyAgY2FsbGVyLT5BZGRU
cmFuc2NlaXZlcih2aWRlb190cmFjayk7CisgIGF1dG8gdHJhbnNjZWl2ZXIgPSBjYWxsZXItPkFk
ZFRyYW5zY2VpdmVyKHRyYWNrKTsKKyAgQVNTRVJUX1RSVUUoY2FsbGVyLT5FeGNoYW5nZU9mZmVy
QW5zd2VyV2l0aChjYWxsZWUuZ2V0KCkpKTsKKyAgY2FsbGVyLT5wYygpLT5SZW1vdmVUcmFjayh0
cmFuc2NlaXZlci0+c2VuZGVyKCkpOworICBFeGNoYW5nZU9mZmVyQW5zd2VyV2hlcmVSZW1vdGVT
dG9wc1RyYW5zY2VpdmVyKGNhbGxlci5nZXQoKSwgY2FsbGVlLmdldCgpLCAxKTsKKyAgQVNTRVJU
X1RSVUUoY2FsbGVyLT5FeGNoYW5nZU9mZmVyQW5zd2VyV2l0aChjYWxsZWUuZ2V0KCkpKTsKKyAg
Y2FsbGVyLT5BZGRUcmFjayh0cmFjayk7CisgIEFTU0VSVF9UUlVFKGNhbGxlci0+RXhjaGFuZ2VP
ZmZlckFuc3dlcldpdGgoY2FsbGVlLmdldCgpKSk7CisgIGNhbGxlci0+cGMoKS0+UmVtb3ZlVHJh
Y2sodHJhbnNjZWl2ZXItPnNlbmRlcigpKTsKKyAgQVNTRVJUX1RSVUUoY2FsbGVyLT5FeGNoYW5n
ZU9mZmVyQW5zd2VyV2l0aChjYWxsZWUuZ2V0KCkpKTsKK30KKwogLy8gVGVzdCB0aGF0IEFkZFRy
YW5zY2VpdmVyIGZhaWxzIGlmIHRyeWluZyB0byB1c2UgdW5pbXBsZW1lbnRlZCBSVFAgZW5jb2Rp
bmcKIC8vIHBhcmFtZXRlcnMgd2l0aCB0aGUgc2VuZF9lbmNvZGluZ3MgcGFyYW1ldGVycy4KIFRF
U1RfRihQZWVyQ29ubmVjdGlvblJ0cFRlc3RVbmlmaWVkUGxhbiwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3NkcF9vZmZlcl9hbnN3ZXIu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9zZHBfb2Zm
ZXJfYW5zd2VyLmNjCmluZGV4IGZiNjMzZTAyYjlmMTM5OWRkNGUxYzVjNzNjM2JiNTMzZDAxMjZm
MWEuLjQ4NjY1NTFiYWZiZjVmOWE5YjI0ZjVkNTgzZTQ4MzJiN2FjMzE0MGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3NkcF9vZmZlcl9h
bnN3ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
cGMvc2RwX29mZmVyX2Fuc3dlci5jYwpAQCAtMjgwMiwxNyArMjgwMiwxNiBAQCBSVENFcnJvciBT
ZHBPZmZlckFuc3dlckhhbmRsZXI6OlVwZGF0ZVRyYW5zY2VpdmVyc0FuZERhdGFDaGFubmVscygK
ICAgICAgICAgb2xkX3JlbW90ZV9jb250ZW50ID0KICAgICAgICAgICAgICZvbGRfcmVtb3RlX2Rl
c2NyaXB0aW9uLT5kZXNjcmlwdGlvbigpLT5jb250ZW50cygpW2ldOwogICAgICAgfQotICAgICAg
Ly8gSW4gdGhlIGNhc2Ugd2hlcmUgYW4gbS1zZWN0aW9uIGhhcyBjb21wbGV0ZWQgaXRzIHJlamVj
dGlvbiwKLSAgICAgIC8vIGFuZCBpcyBub3QgYmVpbmcgcmV1c2VkLCB3ZSBkbyBub3QgZXhwZWN0
IGEgdHJhbnNjZWl2ZXIuCi0gICAgICBpZiAob2xkX2xvY2FsX2NvbnRlbnQgJiYgb2xkX2xvY2Fs
X2NvbnRlbnQtPnJlamVjdGVkICYmCi0gICAgICAgICAgb2xkX3JlbW90ZV9jb250ZW50ICYmIG9s
ZF9yZW1vdGVfY29udGVudC0+cmVqZWN0ZWQgJiYKLSAgICAgICAgICBuZXdfY29udGVudC5yZWpl
Y3RlZCkgewotICAgICAgICBjb250aW51ZTsKLSAgICAgIH0KICAgICAgIGF1dG8gdHJhbnNjZWl2
ZXJfb3JfZXJyb3IgPQogICAgICAgICAgIEFzc29jaWF0ZVRyYW5zY2VpdmVyKHNvdXJjZSwgbmV3
X3Nlc3Npb24uR2V0VHlwZSgpLCBpLCBuZXdfY29udGVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBvbGRfbG9jYWxfY29udGVudCwgb2xkX3JlbW90ZV9jb250ZW50KTsKICAgICAg
IGlmICghdHJhbnNjZWl2ZXJfb3JfZXJyb3Iub2soKSkgeworICAgICAgICAvLyBJbiB0aGUgY2Fz
ZSB3aGVyZSBhIHRyYW5zY2VpdmVyIGlzIHJlamVjdGVkIGxvY2FsbHksIHdlIGRvbid0CisgICAg
ICAgIC8vIGV4cGVjdCB0byBmaW5kIGEgdHJhbnNjZWl2ZXIsIGJ1dCBtaWdodCBmaW5kIGl0IGlu
IHRoZSBjYXNlCisgICAgICAgIC8vIHdoZXJlIHN0YXRlIGlzIHN0aWxsICJzdG9wcGluZyIsIG5v
dCAic3RvcHBlZCIuCisgICAgICAgIGlmIChuZXdfY29udGVudC5yZWplY3RlZCkgeworICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cmFuc2NlaXZlcl9vcl9l
cnJvci5Nb3ZlRXJyb3IoKTsKICAgICAgIH0KICAgICAgIGF1dG8gdHJhbnNjZWl2ZXIgPSB0cmFu
c2NlaXZlcl9vcl9lcnJvci5Nb3ZlVmFsdWUoKTsKQEAgLTI4NzQsOCArMjg3Myw5IEBAIFNkcE9m
ZmVyQW5zd2VySGFuZGxlcjo6QXNzb2NpYXRlVHJhbnNjZWl2ZXIoCiAgICAgICB0cmFuc2NlaXZl
ciA9IHBjXy0+R2V0VHJhbnNjZWl2ZXJCeU1MaW5lSW5kZXgobWxpbmVfaW5kZXgpOwogICAgIH0K
ICAgICBpZiAoIXRyYW5zY2VpdmVyKSB7CisgICAgICAvLyBUaGlzIG1heSBoYXBwZW4gbm9ybWFs
bHkgd2hlbiBtZWRpYSBzZWN0aW9ucyBhcmUgcmVqZWN0ZWQuCiAgICAgICBMT0dfQU5EX1JFVFVS
Tl9FUlJPUihSVENFcnJvclR5cGU6OklOVkFMSURfUEFSQU1FVEVSLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIlVua25vd24gdHJhbnNjZWl2ZXIiKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJUcmFuc2NlaXZlciBub3QgZm91bmQgYmFzZWQgb24gbS1saW5lIGluZGV4Iik7CiAg
ICAgfQogICB9IGVsc2UgewogICAgIFJUQ19EQ0hFQ0tfRVEoc291cmNlLCBjcmlja2V0OjpDU19S
RU1PVEUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418270</attachid>
            <date>2021-01-25 04:15:42 -0800</date>
            <delta_ts>2021-01-25 06:45:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220913-20210125131540.patch</filename>
            <type>text/plain</type>
            <size>11397</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmUzYmUxYjBlYzljYjBj
YmNjYmZhMTA5NzhlMmU3NDIxOGU2NGMyNi4uNTZiZjc5ZmIzZDkyNjBlZTZkYTkxZmY4MjkyMmQx
NWZjNWFjYWUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIxLTAxLTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBSZXN5bmMgbGlid2VicnRj
IHdpdGggTTg3IGxhdGVzdCBicmFuY2gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyMDkxMworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzM0NTQxODU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0
b3IgY29kZSB0byBjYXRjaCBhbmQgaGFuZGxlIGV4Y2VwdGlvbnMgaW4gY2FzZSBvZiBSZWFkYWJs
ZVN0cmVhbSBtZXRob2RzLgorICAgICAgICBFeGNlcHRpb25zIGNhbiBoYXBwZW4gaW4gY2FzZSBv
ZiB3b3JrZXIgYmVpbmcgYWJydXB0bHkgdGVybWluYXRlZCwgd2hpY2ggY2FuIG9ubHkgYmUgdGVz
dGVkIGZsYWtpbHkuCisKKyAgICAgICAgSW4gY2FzZSBvZiB0ZWUsIGlmIGFuIGV4Y2VwdGlvbiBo
YXBwZW5zLCB3ZSByZXR1cm4gYSBXVEY6Om51bGxvcHQuCisKKyAgICAgICAgVGVzdDogc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tdGVlLXdvcmtlci5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2Zl
dGNoL0ZldGNoQm9keS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHk6OmNsb25lKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjppbnZva2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWRhYmxlU3RyZWFtOjpwaXBlVG8pOgorICAgICAgICAoV2ViQ29yZTo6UmVhZGFibGVTdHJlYW06
OnRlZSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFkYWJsZVN0cmVhbTo6bG9jayk6CisgICAgICAg
IChXZWJDb3JlOjpjaGVja1JlYWRhYmxlU3RyZWFtKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9S
ZWFkYWJsZVN0cmVhbS5oOgorCiAyMDIxLTAxLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgUlRDUnRwUGFyYW1ldGVycy5ydGNw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keS5jcHAKaW5kZXggNGUzZWI2
YzE1OWNhYWVhODg1NzYwYzQwYzZjYzMyZWY4MDY2NzNlYy4uZThjNjJhZWVjMzkyZjVlMjRkYjZl
OGQ0OGY5YTBlN2U2ZDJlZDQ3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5LmNwcApAQCAtMzMwLDggKzMzMCwxMCBAQCBGZXRjaEJvZHkgRmV0Y2hCb2R5OjpjbG9u
ZSgpCiAKICAgICBpZiAobV9yZWFkYWJsZVN0cmVhbSkgewogICAgICAgICBhdXRvIGNsb25lcyA9
IG1fcmVhZGFibGVTdHJlYW0tPnRlZSgpOwotICAgICAgICBtX3JlYWRhYmxlU3RyZWFtID0gV1RG
TW92ZShjbG9uZXMuZmlyc3QpOwotICAgICAgICBjbG9uZS5tX3JlYWRhYmxlU3RyZWFtID0gV1RG
TW92ZShjbG9uZXMuc2Vjb25kKTsKKyAgICAgICAgaWYgKGNsb25lcykgeworICAgICAgICAgICAg
bV9yZWFkYWJsZVN0cmVhbSA9IFdURk1vdmUoY2xvbmVzLT5maXJzdCk7CisgICAgICAgICAgICBj
bG9uZS5tX3JlYWRhYmxlU3RyZWFtID0gV1RGTW92ZShjbG9uZXMtPnNlY29uZCk7CisgICAgICAg
IH0KICAgICB9CiAgICAgcmV0dXJuIGNsb25lOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvUmVhZGFibGVTdHJlYW0uY3BwCmluZGV4IDIxNjNmYWM2ZDY1YzJiNDE2NTRlYjU4Njg5
ZDNmOTgzMDgyNWE1NDAuLmE4MGE5MzRjNWU3NWQxNDZhZjNhOWJjMThmNWM0NGExYzgwZjYzYTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFtLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5jcHAKQEAg
LTYxLDUxICs2MSw1MSBAQCBFeGNlcHRpb25PcjxSZWY8UmVhZGFibGVTdHJlYW0+PiBSZWFkYWJs
ZVN0cmVhbTo6Y3JlYXRlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleAogICAgIHJldHVybiBjcmVh
dGUoZ2xvYmFsT2JqZWN0LCAqanNDYXN0PEpTUmVhZGFibGVTdHJlYW0qPihvYmplY3QpKTsKIH0K
IAotbmFtZXNwYWNlIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWwgewotc3RhdGljIGlubGluZSBKU0M6
OkpTVmFsdWUgY2FsbEZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTQzo6SlNWYWx1ZSBqc0Z1bmN0aW9uLCBKU0M6OkpTVmFsdWUgdGhpc1ZhbHVlLCBj
b25zdCBKU0M6OkFyZ0xpc3QmIGFyZ3VtZW50cykKK3N0YXRpYyBpbmxpbmUgT3B0aW9uYWw8SlND
OjpKU1ZhbHVlPiBpbnZva2VSZWFkYWJsZVN0cmVhbUZ1bmN0aW9uKEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGxleGljYWxHbG9iYWxPYmplY3QsIGNvbnN0IEpTQzo6SWRlbnRpZmllciYgaWRlbnRpZmll
ciwgSlNDOjpKU1ZhbHVlIHRoaXNWYWx1ZSwgY29uc3QgSlNDOjpNYXJrZWRBcmd1bWVudEJ1ZmZl
ciYgYXJndW1lbnRzKQogewotICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsK
KyAgICBKU0M6OlZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3Qudm0oKTsKKyAgICBKU0M6OkpT
TG9ja0hvbGRlciBsb2NrKHZtKTsKKworICAgIGF1dG8gZnVuY3Rpb24gPSBsZXhpY2FsR2xvYmFs
T2JqZWN0LmdldCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgaWRlbnRpZmllcik7CisgICAgQVNTRVJU
KGZ1bmN0aW9uLmlzQ2FsbGFibGUobGV4aWNhbEdsb2JhbE9iamVjdC52bSgpKSk7CisKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRSh2bSk7Ci0gICAgYXV0byBjYWxsRGF0YSA9
IEpTQzo6Z2V0Q2FsbERhdGEodm0sIGpzRnVuY3Rpb24pOwotICAgIEFTU0VSVChjYWxsRGF0YS50
eXBlICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUpOwotICAgIGF1dG8gcmVzdWx0ID0gY2Fs
bCgmbGV4aWNhbEdsb2JhbE9iamVjdCwganNGdW5jdGlvbiwgY2FsbERhdGEsIHRoaXNWYWx1ZSwg
YXJndW1lbnRzKTsKLSAgICBzY29wZS5hc3NlcnROb0V4Y2VwdGlvbigpOworICAgIGF1dG8gY2Fs
bERhdGEgPSBKU0M6OmdldENhbGxEYXRhKHZtLCBmdW5jdGlvbik7CisgICAgYXV0byByZXN1bHQg
PSBjYWxsKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbERhdGEsIHRoaXNWYWx1
ZSwgYXJndW1lbnRzKTsKKyAgICBFWENFUFRJT05fQVNTRVJUKCFzY29wZS5leGNlcHRpb24oKSB8
fCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdC52bSgp
LCBzY29wZS5leGNlcHRpb24oKSkpOworICAgIGlmIChzY29wZS5leGNlcHRpb24oKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKICAgICByZXR1cm4gcmVzdWx0OwogfQotfQogCiB2b2lkIFJlYWRhYmxl
U3RyZWFtOjpwaXBlVG8oUmVhZGFibGVTdHJlYW1TaW5rJiBzaW5rKQogewogICAgIGF1dG8mIGxl
eGljYWxHbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxPYmplY3Q7Ci0gICAgSlNWTUNsaWVudERhdGEq
IGNsaWVudERhdGEgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxP
YmplY3Qudm0oKS5jbGllbnREYXRhKTsKLSAgICBjb25zdCBJZGVudGlmaWVyJiBwcml2YXRlTmFt
ZSA9IGNsaWVudERhdGEtPmJ1aWx0aW5GdW5jdGlvbnMoKS5yZWFkYWJsZVN0cmVhbUludGVybmFs
c0J1aWx0aW5zKCkucmVhZGFibGVTdHJlYW1QaXBlVG9Qcml2YXRlTmFtZSgpOwotCi0gICAgYXV0
byByZWFkYWJsZVN0cmVhbVBpcGVUbyA9IG1fZ2xvYmFsT2JqZWN0LT5nZXQoJmxleGljYWxHbG9i
YWxPYmplY3QsIHByaXZhdGVOYW1lKTsKLSAgICBBU1NFUlQocmVhZGFibGVTdHJlYW1QaXBlVG8u
aXNDYWxsYWJsZShsZXhpY2FsR2xvYmFsT2JqZWN0LnZtKCkpKTsKKyAgICBhdXRvKiBjbGllbnRE
YXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2JqZWN0LnZt
KCkuY2xpZW50RGF0YSk7CisgICAgYXV0byYgcHJpdmF0ZU5hbWUgPSBjbGllbnREYXRhLT5idWls
dGluRnVuY3Rpb25zKCkucmVhZGFibGVTdHJlYW1JbnRlcm5hbHNCdWlsdGlucygpLnJlYWRhYmxl
U3RyZWFtUGlwZVRvUHJpdmF0ZU5hbWUoKTsKIAogICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFy
Z3VtZW50czsKICAgICBhcmd1bWVudHMuYXBwZW5kKHJlYWRhYmxlU3RyZWFtKCkpOwogICAgIGFy
Z3VtZW50cy5hcHBlbmQodG9KUygmbGV4aWNhbEdsb2JhbE9iamVjdCwgbV9nbG9iYWxPYmplY3Qu
Z2V0KCksIHNpbmspKTsKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxvd2VkKCkpOwot
ICAgIFJlYWRhYmxlU3RyZWFtSW50ZXJuYWw6OmNhbGxGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCByZWFkYWJsZVN0cmVhbVBpcGVUbywgSlNDOjpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMp
OworICAgIGludm9rZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
cHJpdmF0ZU5hbWUsIEpTQzo6anNVbmRlZmluZWQoKSwgYXJndW1lbnRzKTsKIH0KIAotc3RkOjpw
YWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxSZWFkYWJsZVN0cmVhbT4+IFJlYWRhYmxlU3Ry
ZWFtOjp0ZWUoKQorT3B0aW9uYWw8c3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVhbT4sIFJlZjxS
ZWFkYWJsZVN0cmVhbT4+PiBSZWFkYWJsZVN0cmVhbTo6dGVlKCkKIHsKICAgICBhdXRvJiBsZXhp
Y2FsR2xvYmFsT2JqZWN0ID0gKm1fZ2xvYmFsT2JqZWN0OwotICAgIEpTVk1DbGllbnREYXRhKiBj
bGllbnREYXRhID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LnZtKCkuY2xpZW50RGF0YSk7Ci0gICAgY29uc3QgSWRlbnRpZmllciYgcHJpdmF0ZU5hbWUg
PSBjbGllbnREYXRhLT5idWlsdGluRnVuY3Rpb25zKCkucmVhZGFibGVTdHJlYW1JbnRlcm5hbHNC
dWlsdGlucygpLnJlYWRhYmxlU3RyZWFtVGVlUHJpdmF0ZU5hbWUoKTsKLQotICAgIGF1dG8gcmVh
ZGFibGVTdHJlYW1UZWUgPSBtX2dsb2JhbE9iamVjdC0+Z2V0KCZsZXhpY2FsR2xvYmFsT2JqZWN0
LCBwcml2YXRlTmFtZSk7Ci0gICAgQVNTRVJUKHJlYWRhYmxlU3RyZWFtVGVlLmlzQ2FsbGFibGUo
bGV4aWNhbEdsb2JhbE9iamVjdC52bSgpKSk7CisgICAgYXV0byogY2xpZW50RGF0YSA9IHN0YXRp
Y19jYXN0PEpTVk1DbGllbnREYXRhKj4obGV4aWNhbEdsb2JhbE9iamVjdC52bSgpLmNsaWVudERh
dGEpOworICAgIGF1dG8mIHByaXZhdGVOYW1lID0gY2xpZW50RGF0YS0+YnVpbHRpbkZ1bmN0aW9u
cygpLnJlYWRhYmxlU3RyZWFtSW50ZXJuYWxzQnVpbHRpbnMoKS5yZWFkYWJsZVN0cmVhbVRlZVBy
aXZhdGVOYW1lKCk7CiAKICAgICBNYXJrZWRBcmd1bWVudEJ1ZmZlciBhcmd1bWVudHM7CiAgICAg
YXJndW1lbnRzLmFwcGVuZChyZWFkYWJsZVN0cmVhbSgpKTsKICAgICBhcmd1bWVudHMuYXBwZW5k
KEpTQzo6anNCb29sZWFuKHRydWUpKTsKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNPdmVyZmxv
d2VkKCkpOwotICAgIGF1dG8gcmV0dXJuZWRWYWx1ZSA9IFJlYWRhYmxlU3RyZWFtSW50ZXJuYWw6
OmNhbGxGdW5jdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCByZWFkYWJsZVN0cmVhbVRlZSwgSlND
Ojpqc1VuZGVmaW5lZCgpLCBhcmd1bWVudHMpOworICAgIGF1dG8gcmV0dXJuZWRWYWx1ZSA9IGlu
dm9rZVJlYWRhYmxlU3RyZWFtRnVuY3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgcHJpdmF0ZU5h
bWUsIEpTQzo6anNVbmRlZmluZWQoKSwgYXJndW1lbnRzKTsKKyAgICBpZiAoIXJldHVybmVkVmFs
dWUpCisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBhdXRvIHJlc3VsdHMgPSBEZXRhaWw6OlNl
cXVlbmNlQ29udmVydGVyPElETEludGVyZmFjZTxSZWFkYWJsZVN0cmVhbT4+Ojpjb252ZXJ0KGxl
eGljYWxHbG9iYWxPYmplY3QsIHJldHVybmVkVmFsdWUpOworICAgIGF1dG8gcmVzdWx0cyA9IERl
dGFpbDo6U2VxdWVuY2VDb252ZXJ0ZXI8SURMSW50ZXJmYWNlPFJlYWRhYmxlU3RyZWFtPj46OmNv
bnZlcnQobGV4aWNhbEdsb2JhbE9iamVjdCwgKnJldHVybmVkVmFsdWUpOwogCiAgICAgQVNTRVJU
KHJlc3VsdHMuc2l6ZSgpID09IDIpOwogICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihyZXN1bHRz
WzBdLnJlbGVhc2VOb25OdWxsKCksIHJlc3VsdHNbMV0ucmVsZWFzZU5vbk51bGwoKSk7CkBAIC0x
MTQsOCArMTE0LDEwIEBAIHN0ZDo6cGFpcjxSZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVhZGFi
bGVTdHJlYW0+PiBSZWFkYWJsZVN0cmVhbTo6dGVlKCkKIHZvaWQgUmVhZGFibGVTdHJlYW06Omxv
Y2soKQogewogICAgIGF1dG8mIGxleGljYWxHbG9iYWxPYmplY3QgPSAqbV9nbG9iYWxPYmplY3Q7
Ci0gICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOworICAgIGF1dG8mIHZtID0g
bGV4aWNhbEdsb2JhbE9iamVjdC52bSgpOworI2lmIEVOQUJMRShFWENFUFRJT05fU0NPUEVfVkVS
SUZJQ0FUSU9OKQogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyNl
bmRpZgogCiAgICAgYXV0byYgY2xpZW50RGF0YSA9ICpzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0
YSo+KHZtLmNsaWVudERhdGEpOwogCkBAIC0xMjksNyArMTMxLDcgQEAgdm9pZCBSZWFkYWJsZVN0
cmVhbTo6bG9jaygpCiAgICAgQVNTRVJUKCFhcmdzLmhhc092ZXJmbG93ZWQoKSk7CiAKICAgICBK
U0M6OmNvbnN0cnVjdCgmbGV4aWNhbEdsb2JhbE9iamVjdCwgY29uc3RydWN0b3IsIGNvbnN0cnVj
dERhdGEsIGFyZ3MpOwotICAgIHNjb3BlLmFzc2VydE5vRXhjZXB0aW9uKCk7CisgICAgRVhDRVBU
SU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgaXNUZXJtaW5hdGVkRXhlY3V0aW9uRXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3Qudm0oKSwgc2NvcGUuZXhjZXB0aW9uKCkpKTsKIH0K
IAogc3RhdGljIGlubGluZSBib29sIGNoZWNrUmVhZGFibGVTdHJlYW0oSlNET01HbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCwgSlNSZWFkYWJsZVN0cmVhbSogcmVhZGFibGVTdHJlYW0sIEpTQzo6
SlNWYWx1ZSBmdW5jdGlvbikKQEAgLTE0MCw3ICsxNDIsMTYgQEAgc3RhdGljIGlubGluZSBib29s
IGNoZWNrUmVhZGFibGVTdHJlYW0oSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgSlNS
ZWFkYWIKICAgICBKU0M6Ok1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3VtZW50czsKICAgICBhcmd1
bWVudHMuYXBwZW5kKHJlYWRhYmxlU3RyZWFtKTsKICAgICBBU1NFUlQoIWFyZ3VtZW50cy5oYXNP
dmVyZmxvd2VkKCkpOwotICAgIHJldHVybiBSZWFkYWJsZVN0cmVhbUludGVybmFsOjpjYWxsRnVu
Y3Rpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgZnVuY3Rpb24sIEpTQzo6anNVbmRlZmluZWQoKSwg
YXJndW1lbnRzKS5pc1RydWUoKTsKKworICAgIGF1dG8mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVj
dC52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKHZtKTsKKyAgICBh
dXRvIGNhbGxEYXRhID0gSlNDOjpnZXRDYWxsRGF0YSh2bSwgZnVuY3Rpb24pOworICAgIEFTU0VS
VChjYWxsRGF0YS50eXBlICE9IEpTQzo6Q2FsbERhdGE6OlR5cGU6Ok5vbmUpOworCisgICAgYXV0
byByZXN1bHQgPSBjYWxsKCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBmdW5jdGlvbiwgY2FsbERhdGEs
IEpTQzo6anNVbmRlZmluZWQoKSwgYXJndW1lbnRzKTsKKyAgICBFWENFUFRJT05fQVNTRVJUKCFz
Y29wZS5leGNlcHRpb24oKSB8fCBpc1Rlcm1pbmF0ZWRFeGVjdXRpb25FeGNlcHRpb24obGV4aWNh
bEdsb2JhbE9iamVjdC52bSgpLCBzY29wZS5leGNlcHRpb24oKSkpOworCisgICAgcmV0dXJuIHJl
c3VsdCB8fCBzY29wZS5leGNlcHRpb24oKTsKIH0KIAogYm9vbCBSZWFkYWJsZVN0cmVhbTo6aXNM
b2NrZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvUmVh
ZGFibGVTdHJlYW0uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1JlYWRhYmxlU3RyZWFt
LmgKaW5kZXggNjVmZTlkNzI4MDc4YjZjYjc3NzExNzViNmU2MWQwNjU4MGEwNzM4Yi4uZmI5MmNj
YTEzMzNkYjE3ODU0M2RiZmVjZTBmMzdjOWVhM2NjYWZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvUmVhZGFibGVTdHJlYW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9SZWFkYWJsZVN0cmVhbS5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlzRGlzdHVyYmVkKEpTQzo6SlNHbG9iYWxP
YmplY3QmLCBKU0M6OkpTVmFsdWUpOwogCi0gICAgc3RkOjpwYWlyPFJlZjxSZWFkYWJsZVN0cmVh
bT4sIFJlZjxSZWFkYWJsZVN0cmVhbT4+IHRlZSgpOworICAgIE9wdGlvbmFsPHN0ZDo6cGFpcjxS
ZWY8UmVhZGFibGVTdHJlYW0+LCBSZWY8UmVhZGFibGVTdHJlYW0+Pj4gdGVlKCk7CiAKICAgICB2
b2lkIGxvY2soKTsKICAgICB2b2lkIHBpcGVUbyhSZWFkYWJsZVN0cmVhbVNpbmsmKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBlZjU0Y2MwMzY0NTYzMjQ2ZTBlMjU0M2NlYTNlZGU2Nzc0MDhiZDE5Li4zZWMxMTY3MTMwNGFm
NzZmZDkwZDZjZmM0MjU4MTE2NWVlZGJjODRkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MDEtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFJlc3lu
YyBsaWJ3ZWJydGMgd2l0aCBNODcgbGF0ZXN0IGJyYW5jaAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwOTEzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS83MzQ1NDE4NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXRlZS13b3JrZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS10ZWUtd29ya2VyLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHN0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXRlZS5qczogQWRkZWQu
CisgICAgICAgICh0ZWVSZXBldGl0aXZlbHkpOgorICAgICAgICAodGVzdCk6CisKIDIwMjEtMDEt
MjIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtb3Jl
IGRlc2NyaXB0aXZlIG1lc3NhZ2VzIHRvIHNldExvY2FsRGVzY3JpcHRpb24vc2V0UmVtb3RlRGVz
Y3JpcHRpb24gZXJyb3IgY2FzZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0cmVhbXMvcmVh
ZGFibGUtc3RyZWFtLXRlZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RyZWFt
cy9yZWFkYWJsZS1zdHJlYW0tdGVlLXdvcmtlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQ2
NjU1ZTU2YjdiZTZmYjU2NDNlZmFlYWQwNWIzNGQ2MjA0ZjdlYgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3RyZWFtLXRlZS13b3JrZXItZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFRlZSBhIFJlYWRhYmxlU3RyZWFtIGluIHdvcmtl
cgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS10ZWUt
d29ya2VyLmh0bWwgYi9MYXlvdXRUZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS10ZWUtd29y
a2VyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMDAwMzM4NzExMzM3ZWViN2RiZTQ2ZmExZWEyY2UyZTU5Yzg2
MzQ4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0cmVhbXMvcmVhZGFibGUtc3Ry
ZWFtLXRlZS13b3JrZXIuaHRtbApAQCAtMCwwICsxLDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPHNj
cmlwdCBzcmM9Jy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0nLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzJz48L3NjcmlwdD4KKzxzY3Jp
cHQ+CisndXNlIHN0cmljdCc7CitmZXRjaF90ZXN0c19mcm9tX3dvcmtlcihuZXcgV29ya2VyKCdy
ZWFkYWJsZS1zdHJlYW0tdGVlLmpzJykpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdHJlYW1zL3JlYWRhYmxlLXN0cmVhbS10ZWUuanMgYi9MYXlvdXRUZXN0cy9zdHJlYW1z
L3JlYWRhYmxlLXN0cmVhbS10ZWUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M4NmU0NzZlOGEzNDQ5ZDY0Mjlk
YTAzYmNjZjU5MDZhM2JjOWI2MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0cmVh
bXMvcmVhZGFibGUtc3RyZWFtLXRlZS5qcwpAQCAtMCwwICsxLDIwIEBACisndXNlIHN0cmljdCc7
CisKK2lmIChzZWxmLmltcG9ydFNjcmlwdHMpIHsKKyAgICBzZWxmLmltcG9ydFNjcmlwdHMoJy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcycpOworfQorCitmdW5jdGlvbiB0ZWVSZXBldGl0aXZl
bHkoc3RyZWFtKQoreworICAgIGNvbnN0IFt0MSwgdDJdID0gc3RyZWFtLnRlZSgpOworICAgIHNl
dFRpbWVvdXQoKCkgPT4geworICAgICAgICB0ZWVSZXBldGl0aXZlbHkodDEpOworICAgIH0sIDAp
OworfQorCit0ZXN0KGZ1bmN0aW9uKCkgeworICAgIGNvbnN0IHN0cmVhbSA9IG5ldyBSZWFkYWJs
ZVN0cmVhbSh7IHN0YXJ0OiAoKSA9PiB7IH0gfSk7CisgICAgdGVlUmVwZXRpdGl2ZWx5KHN0cmVh
bSk7Cit9LCAiVGVlIGEgUmVhZGFibGVTdHJlYW0gaW4gd29ya2VyIik7CisKK2RvbmUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418287</attachid>
            <date>2021-01-25 06:42:22 -0800</date>
            <delta_ts>2021-01-25 06:45:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220913-20210125164220.patch</filename>
            <type>text/plain</type>
            <size>77555</size>
            <attacher name="Kimmo Kinnunen">kkinnunen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCA4NzAxNTY4ZWIwMTFjMDg3YzBmOGVkNTA0ZjEwYmY2ZWQ2NjRmMjU4Li4xMDgz
MmE2YjkwOWU5MmVlMTVhMzBmMzE5YzExYmFiYThkODJkYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMS0wMS0yNSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVzeW5jIGxpYndlYnJ0YyB3aXRo
IE04NyBsYXRlc3QgYnJhbmNoCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjA5MTMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgQ2hlcnJ5LXBpY2tpbmcgdHdvIGNoYW5nZXMgdGhhdCBoYXZlIGJlZW4gY2hlcnJ5
LXBpY2tlZCBpbiB1cHN0cmVhbSBNODcgYWZ0ZXIgb3VyIGxhdGVzdCByZXN5bmMuCisgICAgICAg
IFRoaXMgaW5jbHVkZXM6IGh0dHBzOi8vd2VicnRjLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv
c3JjLysvMTg3MzQ5IGFuZCBodHRwczovL3dlYnJ0Yy1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9j
L3NyYy8rLzE5MTQ4NS4KKworICAgICAgICAqIFNvdXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19j
b2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5jb2Rlcl9vcHVzLmNjOgorICAgICAgICAqIFNvdXJj
ZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5jb2Rlcl9v
cHVzLmg6CisgICAgICAgICogU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9jb2Rl
Y3Mvb3B1cy9vcHVzX2ludGVyZmFjZS5jYzoKKyAgICAgICAgKiBTb3VyY2Uvd2VicnRjL21vZHVs
ZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL29wdXNfdW5pdHRlc3QuY2M6CisgICAgICAgICog
U291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy90ZXN0L1Rlc3RWQUREVFguY2M6Cisg
ICAgICAgICogU291cmNlL3dlYnJ0Yy9wYy9wZWVyX2Nvbm5lY3Rpb25fcnRwX3VuaXR0ZXN0LmNj
OgorICAgICAgICAqIFNvdXJjZS93ZWJydGMvcGMvc2RwX29mZmVyX2Fuc3dlci5jYzoKKwogMjAy
MS0wMS0wOCAgUnlhbiBIb3N0ZXRsZXIgIDxyaG9zdEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRk
IHN1cHBvcnQgZm9yIHNvdXJjZSBjYWNoaW5nIGJldHdlZW4gcGxhdGZvcm1zCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggY2NiNzJjMDQzMzZkZjJjZTU5NjhjNzY0Y2E4ZGY4ZWYyY2YxNjMyOC4uMmI3Y2VmZWVjMTFj
MWY5YmEzYzRjZDNkYTIwNjhmNGEzZWE1NjlmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBA
CisyMDIxLTAxLTI1ICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgV2ViR0wgcG93ZXIgcHJlZmVyZW5jZSBhbmQgZGlzY3JldGUvaW50ZXJuYWwgZ3B1IHNl
bGVjdGlvbiBpbXBsZW1lbnRlZCBpbmNvcnJlY3RseSB3aXRoIEFOR0xFCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA4NDMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgQU5HTEUgZXh0ZW5zaW9uIEVH
TF9BTkdMRV9wb3dlcl9wcmVmZXJlbmNlIHRvIHNpZ25hbCB0byBBTkdMRSB0aGF0IHRoZSB1bmRl
cmx5aW5nCisgICAgICAgIENHTCBjb250ZXh0IHNob3VsZCBiZSB1cGRhdGVkIGFzIGEgcmVzcG9u
c2UgdG8gZGlzcGxheSByZWNvbmZpZ3VyYXRpb24gc2lnbmFsLgorICAgICAgICBUaGlzIGVuc3Vy
ZXMgdGhhdCBBTkdMRSBzdGF0ZSBzdGF5cyBjb25zaXN0ZW50IHdpdGggdGhlIGFjdHVhbCBDR0wg
Y29udGV4dCBiZWhhdmlvciwgYXMKKyAgICAgICAgd2UgZG9uJ3QgY2hhbmdlIHRoZSBjb250ZXh0
IGJlaGluZCBBTkdMRSdzIGJhY2suCisKKyAgICAgICAgUmVtb3ZlIHRoZSBmZWF0dXJlIHdoZXJl
IHRoZSBjb250ZXh0IEdQVSBpcyBzZWxlY3RlZCBiYXNlZCBvbiB0aGUgZGlzcGxheSB0aGUgd2lu
ZG93IGlzCisgICAgICAgIG9uLiBUaGlzIGNhbm5vdCB3b3JrIHdpdGggdGhlIGxvZ2ljIG9mICJw
b3dlclByZWZlcmVuY2UgPSAiaGlnaC1wZXJmb3JtYW5jZSIgZ29lcyB0bworICAgICAgICBkaXNj
cmV0ZSBHUFUiLiBBbHNvLCB0aGlzIGNhbm5vdCB3b3JrIHdpdGggQU5HTEUgYXQgYWxsLCBzaW5j
ZSBhbGwgY29udGV4dHMgYXJlIGJhY2tlZAorICAgICAgICBieSBhIHNpbmdsZSBwbGF0Zm9ybSBj
b250ZXh0LiBUaHVzIGFsbCBjb250ZXh0cyB3aWxsIHVzZSB0aGUgc2FtZSB1bmRlcmx5aW5nIEdQ
VS4KKworICAgICAgICBObyBuZXcgdGVzdHMgZHVlIHRvIHRoZSB0ZXN0IHJ1bm5lciBtaXNzaW5n
IGZlYXR1cmVzLiBUaGUgYnVnIGJsb2NrZXJzIHRyYWNrIHRoZSB0ZXN0aW5nLgorCisgICAgICAg
ICogUGxhdGZvcm1NYWMuY21ha2U6CisgICAgICAgICogU291cmNlc0NvY29hLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9j
YW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpp
c0hpZ2hQZXJmb3JtYW5jZUNvbnRleHQpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZTo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVh
dGVTaGFyZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Okdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjpzZXRDb250ZXh0VmlzaWJpbGl0eSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6ZGlzcGxheVdhc1JlY29uZmlndXJlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2ltdWxhdGVDb250ZXh0Q2hhbmdlZCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ2hlY2tzTWFjLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjphdHRhY2hUb0FwcGxlR3JhcGhpY3NDb250cm9sKToK
KyAgICAgICAgKFdlYkNvcmU6Omhhc011eENhcGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6
aGFzTG93QW5kSGlnaFBvd2VyR1BVcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0dyYXBoaWNzQ2hlY2tzTWFjLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3dpdGNoaW5nR1BVQ2xpZW50LmguCisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Njb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaDog
Q29waWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1N3aXRjaGlu
Z0dQVUNsaWVudC5oLgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BV
UmVxdWVzdDo6U2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdCk6CisgICAgICAgIChXZWJD
b3JlOjpTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0Ojp+U2NvcGVkSGlnaFBlcmZvcm1h
bmNlR1BVUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpTY29wZWRIaWdoUGVyZm9ybWFuY2VH
UFVSZXF1ZXN0OjpvcGVyYXRvcj0pOgorICAgICAgICAoV2ViQ29yZTo6U2NvcGVkSGlnaFBlcmZv
cm1hbmNlR1BVUmVxdWVzdDo6YWNxdWlyZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL1N3aXRjaGluZ0dQVUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25m
aWd1cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6YWRkQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXI6OnJlbW92ZUNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29w
ZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuaDoKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5jcHA6CisKIDIwMjEtMDEtMjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBl
LmNvbT4KIAogICAgICAgICBOdWxscHRyIGRlcmVmZXJlbmNlIGluIFNwZWVjaFJlY29nbml0aW9u
OjpzdG9wKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggZGIwNTI0M2EyZGRkMTIyMWVmYzIxNGMyMDA5YzgxZDJkMWNm
N2YyNC4uNmE1YzFhNmE0NDczMmNkODlkODViZGEwMmVmNWFmMTIxZDhmNTJhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMyBAQAorMjAyMS0wMS0yNSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5A
YXBwbGUuY29tPgorCisgICAgICAgIFdlYkdMIHBvd2VyIHByZWZlcmVuY2UgYW5kIGRpc2NyZXRl
L2ludGVybmFsIGdwdSBzZWxlY3Rpb24gaW1wbGVtZW50ZWQgaW5jb3JyZWN0bHkgd2l0aCBBTkdM
RQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIwODQz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSB0
aGUgaGlnaC1wZXJmb3JtYW5jZSBHUFUgc2h1dGRvd24gdGltZXIgZnJvbSBpbmRpdmlkdWFsIHdl
YiBwcm9jZXNzZXMgdG8gdGhlIG1haW4gY2xhc3MKKyAgICAgICAgaW4gdGhlIHVpIHByb2Nlc3Mu
IFRoaXMgc2ltcGxpZmllcyB0aGUgaW1wbGVtZW50YXRpb24gYW5kIHJlZHVjZXMgdGhlIG51bWJl
ciBvZiB0aW1lcnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0hpZ2hQZXJmb3JtYW5jZUdQ
VU1hbmFnZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL0hpZ2hQZXJmb3JtYW5jZUdQVU1h
bmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OkhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6Okhp
Z2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpIaWdoUGVyZm9ybWFu
Y2VHUFVNYW5hZ2VyOjpyZW1vdmVQcm9jZXNzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlKToKKyAg
ICAgICAgKFdlYktpdDo6SGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlcjo6dXBkYXRlU3RhdGUpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN3aXRjaGluZ0dQVUNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlN3aXRjaGluZ0dQVUNsaWVudDo6cmVxdWVz
dEhpZ2hQZXJmb3JtYW5jZUdQVSk6CisgICAgICAgIChXZWJLaXQ6OldlYlN3aXRjaGluZ0dQVUNs
aWVudDo6cmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3dpdGNoaW5nR1BVQ2xpZW50Lmg6CisKIDIwMjEtMDEtMjQg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBX
SzJdIHRoZXZlcmdlLmNvbSAtIHJ1YmJlciBiYW5kIHNjcm9sbGluZyBhdCB0aGUgdG9wIG9mIHRo
ZSBwYWdlIGNhdXNlcyBhbiBhYnJ1cHQganVtcApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29w
dXMvYXVkaW9fZW5jb2Rlcl9vcHVzLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1Nv
dXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5jb2Rl
cl9vcHVzLmNjCmluZGV4IDJiMTY5MjA3MTRmOTJhMTAwMWM2MjljMDFlZGE1ZGFjZDk2OGIzNjUu
LjIyMGU5NmYxYjc3M2NkODkxZGZmZTU0NzIyZTdiODkwN2E1ZmM4NzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29k
aW5nL2NvZGVjcy9vcHVzL2F1ZGlvX2VuY29kZXJfb3B1cy5jYworKysgYi9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGluZy9jb2RlY3Mv
b3B1cy9hdWRpb19lbmNvZGVyX29wdXMuY2MKQEAgLTM2Nyw3ICszNjcsOCBAQCBBdWRpb0VuY29k
ZXJPcHVzSW1wbDo6QXVkaW9FbmNvZGVyT3B1c0ltcGwoCiAgICAgICBpbnN0XyhudWxscHRyKSwK
ICAgICAgIHBhY2tldF9sb3NzX2ZyYWN0aW9uX3Ntb290aGVyXyhuZXcgUGFja2V0TG9zc0ZyYWN0
aW9uU21vb3RoZXIoKSksCiAgICAgICBhdWRpb19uZXR3b3JrX2FkYXB0b3JfY3JlYXRvcl8oYXVk
aW9fbmV0d29ya19hZGFwdG9yX2NyZWF0b3IpLAotICAgICAgYml0cmF0ZV9zbW9vdGhlcl8oc3Rk
Ojptb3ZlKGJpdHJhdGVfc21vb3RoZXIpKSB7CisgICAgICBiaXRyYXRlX3Ntb290aGVyXyhzdGQ6
Om1vdmUoYml0cmF0ZV9zbW9vdGhlcikpLAorICAgICAgY29uc2VjdXRpdmVfZHR4X2ZyYW1lc18o
MCkgewogICBSVENfRENIRUNLKDAgPD0gcGF5bG9hZF90eXBlICYmIHBheWxvYWRfdHlwZSA8PSAx
MjcpOwogCiAgIC8vIFNhbml0eSBjaGVjayBvZiB0aGUgcmVkdW5kYW50IHBheWxvYWQgdHlwZSBm
aWVsZCB0aGF0IHdlIHdhbnQgdG8gZ2V0IHJpZApAQCAtNTg5LDcgKzU5MCw2IEBAIEF1ZGlvRW5j
b2Rlcjo6RW5jb2RlZEluZm8gQXVkaW9FbmNvZGVyT3B1c0ltcGw6OkVuY29kZUltcGwoCiAgICAg
ICAgICAgICAgICBOdW0xMG1zRnJhbWVzUGVyUGFja2V0KCkgKiBTYW1wbGVzUGVyMTBtc0ZyYW1l
KCkpOwogCiAgIGNvbnN0IHNpemVfdCBtYXhfZW5jb2RlZF9ieXRlcyA9IFN1ZmZpY2llbnRPdXRw
dXRCdWZmZXJTaXplKCk7Ci0gIGNvbnN0IHNpemVfdCBzdGFydF9vZmZzZXRfYnl0ZXMgPSBlbmNv
ZGVkLT5zaXplKCk7CiAgIEVuY29kZWRJbmZvIGluZm87CiAgIGluZm8uZW5jb2RlZF9ieXRlcyA9
IGVuY29kZWQtPkFwcGVuZERhdGEoCiAgICAgICBtYXhfZW5jb2RlZF9ieXRlcywgWyZdKHJ0Yzo6
QXJyYXlWaWV3PHVpbnQ4X3Q+IGVuY29kZWQpIHsKQEAgLTYwNCw2ICs2MDQsOCBAQCBBdWRpb0Vu
Y29kZXI6OkVuY29kZWRJbmZvIEF1ZGlvRW5jb2Rlck9wdXNJbXBsOjpFbmNvZGVJbXBsKAogICAg
ICAgfSk7CiAgIGlucHV0X2J1ZmZlcl8uY2xlYXIoKTsKIAorICBib29sIGR0eF9mcmFtZSA9IChp
bmZvLmVuY29kZWRfYnl0ZXMgPD0gMik7CisKICAgLy8gV2lsbCB1c2UgbmV3IHBhY2tldCBzaXpl
IGZvciBuZXh0IGVuY29kaW5nLgogICBjb25maWdfLmZyYW1lX3NpemVfbXMgPSBuZXh0X2ZyYW1l
X2xlbmd0aF9tc187CiAKQEAgLTYxOCwxOCArNjIwLDE0IEBAIEF1ZGlvRW5jb2Rlcjo6RW5jb2Rl
ZEluZm8gQXVkaW9FbmNvZGVyT3B1c0ltcGw6OkVuY29kZUltcGwoCiAgIGluZm8uZW5jb2RlZF90
aW1lc3RhbXAgPSBmaXJzdF90aW1lc3RhbXBfaW5fYnVmZmVyXzsKICAgaW5mby5wYXlsb2FkX3R5
cGUgPSBwYXlsb2FkX3R5cGVfOwogICBpbmZvLnNlbmRfZXZlbl9pZl9lbXB0eSA9IHRydWU7ICAv
LyBBbGxvd3MgT3B1cyB0byBzZW5kIGVtcHR5IHBhY2tldHMuCisgIC8vIEFmdGVyIDIwIERUWCBm
cmFtZXMgKE1BWF9DT05TRUNVVElWRV9EVFgpIE9wdXMgd2lsbCBzZW5kIGEgZnJhbWUKKyAgLy8g
Y29kaW5nIHRoZSBiYWNrZ3JvdW5kIG5vaXNlLiBBdm9pZCBmbGFnZ2luZyB0aGlzIGZyYW1lIGFz
IHNwZWVjaAorICAvLyAoZXZlbiB0aG91Z2ggdGhlcmUgaXMgYSBwcm9iYWJpbGl0eSBvZiB0aGUg
ZnJhbWUgYmVpbmcgc3BlZWNoKS4KKyAgaW5mby5zcGVlY2ggPSAhZHR4X2ZyYW1lICYmIChjb25z
ZWN1dGl2ZV9kdHhfZnJhbWVzXyAhPSAyMCk7CiAgIGluZm8uZW5jb2Rlcl90eXBlID0gQ29kZWNU
eXBlOjprT3B1czsKIAotICAvLyBFeHRyYWN0IHRoZSBWQUQgcmVzdWx0IGZyb20gdGhlIGVuY29k
ZWQgcGFja2V0LgotICBpbnQgaGFzX3ZvaWNlID0gV2ViUnRjT3B1c19QYWNrZXRIYXNWb2ljZUFj
dGl2aXR5KAotICAgICAgJmVuY29kZWQtPmRhdGEoKVtzdGFydF9vZmZzZXRfYnl0ZXNdLCBpbmZv
LmVuY29kZWRfYnl0ZXMpOwotICBpZiAoaGFzX3ZvaWNlID09IC0xKSB7Ci0gICAgLy8gQ0VMVCBt
b2RlIHBhY2tldCBvciB0aGVyZSB3YXMgYW4gZXJyb3IuIFRoaXMgaGFkIHNldCB0aGUgc3BlZWNo
IGZsYWcgdG8KLSAgICAvLyB0cnVlIGhpc3RvcmljYWxseS4KLSAgICBpbmZvLnNwZWVjaCA9IHRy
dWU7Ci0gIH0gZWxzZSB7Ci0gICAgaW5mby5zcGVlY2ggPSBoYXNfdm9pY2U7Ci0gIH0KKyAgLy8g
SW5jcmVhc2Ugb3IgcmVzZXQgRFRYIGNvdW50ZXIuCisgIGNvbnNlY3V0aXZlX2R0eF9mcmFtZXNf
ID0gKGR0eF9mcmFtZSkgPyAoY29uc2VjdXRpdmVfZHR4X2ZyYW1lc18gKyAxKSA6ICgwKTsKIAog
ICByZXR1cm4gaW5mbzsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0
Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL2F1ZGlvX2Vu
Y29kZXJfb3B1cy5oIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5jb2Rlcl9vcHVzLmgKaW5k
ZXggZGM5NTVjZWMyMzc0NzIyODlmZDcyODQyZjgyZGI3OTY3YjBlZWM4MS4uYWI5NTRmZWJhNzgy
ZGFhNWZjN2NjNTExMjVhYTRjMTgwYmEyOTI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29w
dXMvYXVkaW9fZW5jb2Rlcl9vcHVzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRj
L1NvdXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvYXVkaW9fZW5j
b2Rlcl9vcHVzLmgKQEAgLTE3Miw2ICsxNzIsNyBAQCBjbGFzcyBBdWRpb0VuY29kZXJPcHVzSW1w
bCBmaW5hbCA6IHB1YmxpYyBBdWRpb0VuY29kZXIgewogICBhYnNsOjpvcHRpb25hbDxzaXplX3Q+
IG92ZXJoZWFkX2J5dGVzX3Blcl9wYWNrZXRfOwogICBjb25zdCBzdGQ6OnVuaXF1ZV9wdHI8U21v
b3RoaW5nRmlsdGVyPiBiaXRyYXRlX3Ntb290aGVyXzsKICAgYWJzbDo6b3B0aW9uYWw8aW50NjRf
dD4gYml0cmF0ZV9zbW9vdGhlcl9sYXN0X3VwZGF0ZV90aW1lXzsKKyAgaW50IGNvbnNlY3V0aXZl
X2R0eF9mcmFtZXNfOwogCiAgIGZyaWVuZCBzdHJ1Y3QgQXVkaW9FbmNvZGVyT3B1czsKICAgUlRD
X0RJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihBdWRpb0VuY29kZXJPcHVzSW1wbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1
ZGlvX2NvZGluZy9jb2RlY3Mvb3B1cy9vcHVzX2ludGVyZmFjZS5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9v
cHVzL29wdXNfaW50ZXJmYWNlLmNjCmluZGV4IDQ1NWYxNzU0NjQxNTNmMTVjMDY2YzBmMTEzNTEw
MTY3ZmY4Mjg0YzcuLmNhMzllZDgyMzU0Yzk4ZTBkNGU3MDY4YzI4MDA3YTRmYjVmNWM1MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVs
ZXMvYXVkaW9fY29kaW5nL2NvZGVjcy9vcHVzL29wdXNfaW50ZXJmYWNlLmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5n
L2NvZGVjcy9vcHVzL29wdXNfaW50ZXJmYWNlLmNjCkBAIC03NjcsNyArNzY3LDcgQEAgaW50IFdl
YlJ0Y09wdXNfUGFja2V0SGFzVm9pY2VBY3Rpdml0eShjb25zdCB1aW50OF90KiBwYXlsb2FkLAog
CiAgIGludCBzaWxrX2ZyYW1lcyA9IFdlYlJ0Y09wdXNfTnVtU2lsa0ZyYW1lcyhwYXlsb2FkKTsK
ICAgaWYgKHNpbGtfZnJhbWVzID09IDApCi0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIC0xOwog
CiAgIGNvbnN0IGludCBjaGFubmVscyA9IG9wdXNfcGFja2V0X2dldF9uYl9jaGFubmVscyhwYXls
b2FkKTsKICAgUlRDX0RDSEVDSyhjaGFubmVscyA9PSAxIHx8IGNoYW5uZWxzID09IDIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxl
cy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvb3B1c191bml0dGVzdC5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL2NvZGVj
cy9vcHVzL29wdXNfdW5pdHRlc3QuY2MKaW5kZXggNjZhYzVlNzM0NjRmNTY1OGNkNmE3YTRkZmM3
NTZmZjM3MDk0OTdkOS4uODBjYWI1MDEzNzI3MGQyZGM5Y2EwOWY0MDAxNmE3MjhmNmFjNGIyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9k
dWxlcy9hdWRpb19jb2RpbmcvY29kZWNzL29wdXMvb3B1c191bml0dGVzdC5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlvX2NvZGlu
Zy9jb2RlY3Mvb3B1cy9vcHVzX3VuaXR0ZXN0LmNjCkBAIC05NzUsMjEgKzk3NSw0IEBAIFRFU1Qo
T3B1c1ZhZFRlc3QsIFR3b09wdXNNb25vRnJhbWVzVmFkT25TZWNvbmQpIHsKICAgRVhQRUNUX1RS
VUUoV2ViUnRjT3B1c19QYWNrZXRIYXNWb2ljZUFjdGl2aXR5KHR3b01vbm9GcmFtZXMsIDMpKTsK
IH0KIAotVEVTVChPcHVzVmFkVGVzdCwgRHR4RW1wdHlQYWNrZXQpIHsKLSAgY29uc3QgdWludDhf
dCBkdHhbXSA9IHsweDc4fTsKLSAgRVhQRUNUX0ZBTFNFKFdlYlJ0Y09wdXNfUGFja2V0SGFzVm9p
Y2VBY3Rpdml0eShkdHgsIDEpKTsKLX0KLQotVEVTVChPcHVzVmFkVGVzdCwgRHR4QmFja2dyb3Vu
ZE5vaXNlUGFja2V0KSB7Ci0gIC8vIERUWCBzZW5kcyBhIGZyYW1lIGNvZGluZyBiYWNrZ3JvdW5k
IG5vaXNlIGV2ZXJ5IDIwIHBhY2tldHM6Ci0gIC8vICAgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9o
dG1sL3JmYzY3MTYjc2VjdGlvbi0yLjEuOQotICAvLyBUaGUgcGFja2V0IGJlbG93IHJlcHJlc2Vu
dHMgc3VjaCBhIGZyYW1lIGFuZCB3YXMgY2FwdHVyZWQgdXNpbmcKLSAgLy8gV2lyZXNoYXJrIHdo
aWxlIGRpc2FibGluZyBlbmNyeXB0aW9uLgotICBjb25zdCB1aW50OF90IGR0eFtdID0gezB4Nzgs
IDB4MDcsIDB4YzksIDB4NzksIDB4YzgsIDB4YzksIDB4NTcsIDB4YzAsIDB4YTIsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgMHgxMiwgMHgyMywgMHhmYSwgMHhlZiwgMHg2NywgMHhmMywgMHgy
ZSwgMHhlMywgMHhkMywKLSAgICAgICAgICAgICAgICAgICAgICAgICAweGQ1LCAweGU5LCAweGVj
LCAweGRiLCAweDNlLCAweGJjLCAweDgwLCAweGI2LCAweDZlLAotICAgICAgICAgICAgICAgICAg
ICAgICAgIDB4MmEsIDB4YjcsIDB4OGMsIDB4ODMsIDB4Y2QsIDB4ODMsIDB4Y2QsIDB4MDB9Owot
ICBFWFBFQ1RfRkFMU0UoV2ViUnRjT3B1c19QYWNrZXRIYXNWb2ljZUFjdGl2aXR5KGR0eCwgMzUp
KTsKLX0KLQogfSAgLy8gbmFtZXNwYWNlIHdlYnJ0YwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvbW9kdWxlcy9hdWRpb19jb2RpbmcvdGVzdC9U
ZXN0VkFERFRYLmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMv
bW9kdWxlcy9hdWRpb19jb2RpbmcvdGVzdC9UZXN0VkFERFRYLmNjCmluZGV4IGRjZTU0MzNlZDhk
YmJkN2ZjYzE1NWQ5ODY5NWI5N2E1OWViY2E2NDguLjE3YmFlZjYwZGU5NjkxMTlmMGI4M2U2OWYx
ZTc2ZDYxM2Y0Mjk1MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9T
b3VyY2Uvd2VicnRjL21vZHVsZXMvYXVkaW9fY29kaW5nL3Rlc3QvVGVzdFZBRERUWC5jYworKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9tb2R1bGVzL2F1ZGlv
X2NvZGluZy90ZXN0L1Rlc3RWQUREVFguY2MKQEAgLTE2NiwxMyArMTY2LDExIEBAIHZvaWQgVGVz
dFZhZER0eDo6UnVuKHN0ZDo6c3RyaW5nIGluX2ZpbGVuYW1lLAogICAgIGludCBpID0gJnN0IC0g
c3RhdHM7ICAvLyBDYWxjdWxhdGUgdGhlIGN1cnJlbnQgcG9zaXRpb24gaW4gc3RhdHMuCiAgICAg
c3dpdGNoIChleHBlY3RzW2ldKSB7CiAgICAgICBjYXNlIDA6IHsKLSAgICAgICAgRVhQRUNUX0VR
KDB1LCBzdCkgPDwgInN0YXRzWyIgPDwgaSA8PCAiXSBlcnJvci4gT3V0cHV0IGZpbGUgIgotICAg
ICAgICAgICAgICAgICAgICAgICAgICA8PCBvdXRfZmlsZW5hbWU7CisgICAgICAgIEVYUEVDVF9F
USgwdSwgc3QpIDw8ICJzdGF0c1siIDw8IGkgPDwgIl0gZXJyb3IuIjsKICAgICAgICAgYnJlYWs7
CiAgICAgICB9CiAgICAgICBjYXNlIDE6IHsKLSAgICAgICAgRVhQRUNUX0dUKHN0LCAwdSkgPDwg
InN0YXRzWyIgPDwgaSA8PCAiXSBlcnJvci4gT3V0cHV0IGZpbGUgIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICA8PCBvdXRfZmlsZW5hbWU7CisgICAgICAgIEVYUEVDVF9HVChzdCwgMHUpIDw8
ICJzdGF0c1siIDw8IGkgPDwgIl0gZXJyb3IuIjsKICAgICAgICAgYnJlYWs7CiAgICAgICB9CiAg
ICAgfQpAQCAtMTkxLDI5ICsxODksMjUgQEAgdm9pZCBUZXN0V2ViUnRjVmFkRHR4OjpQZXJmb3Jt
KCkgewogCiAvLyBUZXN0IHZhcmlvdXMgY29uZmlndXJhdGlvbnMgb24gVkFEL0RUWC4KIHZvaWQg
VGVzdFdlYlJ0Y1ZhZER0eDo6UnVuVGVzdENhc2VzKGNvbnN0IFNkcEF1ZGlvRm9ybWF0JiBjb2Rl
Y19mb3JtYXQpIHsKLSAgUmVnaXN0ZXJDb2RlYyhjb2RlY19mb3JtYXQsIGFic2w6Om51bGxvcHQp
OwogICBUZXN0KC8qbmV3X291dGZpbGU9Ki90cnVlLAotICAgICAgIC8qZXhwZWN0X3ZhZF9wYWNr
ZXRzPSovY29kZWNfZm9ybWF0Lm5hbWUgPT0gIm9wdXMiKTsKKyAgICAgICAvKmV4cGVjdF9kdHhf
ZW5hYmxlZD0qL1JlZ2lzdGVyQ29kZWMoY29kZWNfZm9ybWF0LCBhYnNsOjpudWxsb3B0KSk7CiAK
LSAgUmVnaXN0ZXJDb2RlYyhjb2RlY19mb3JtYXQsIFZhZDo6a1ZhZEFnZ3Jlc3NpdmUpOwogICBU
ZXN0KC8qbmV3X291dGZpbGU9Ki9mYWxzZSwKLSAgICAgICAvKmV4cGVjdF92YWRfcGFja2V0cz0q
L3RydWUpOworICAgICAgIC8qZXhwZWN0X2R0eF9lbmFibGVkPSovUmVnaXN0ZXJDb2RlYyhjb2Rl
Y19mb3JtYXQsIFZhZDo6a1ZhZEFnZ3Jlc3NpdmUpKTsKIAotICBSZWdpc3RlckNvZGVjKGNvZGVj
X2Zvcm1hdCwgVmFkOjprVmFkTG93Qml0cmF0ZSk7CiAgIFRlc3QoLypuZXdfb3V0ZmlsZT0qL2Zh
bHNlLAotICAgICAgIC8qZXhwZWN0X3ZhZF9wYWNrZXRzPSovdHJ1ZSk7CisgICAgICAgLypleHBl
Y3RfZHR4X2VuYWJsZWQ9Ki9SZWdpc3RlckNvZGVjKGNvZGVjX2Zvcm1hdCwgVmFkOjprVmFkTG93
Qml0cmF0ZSkpOwogCi0gIFJlZ2lzdGVyQ29kZWMoY29kZWNfZm9ybWF0LCBWYWQ6OmtWYWRWZXJ5
QWdncmVzc2l2ZSk7Ci0gIFRlc3QoLypuZXdfb3V0ZmlsZT0qL2ZhbHNlLCAvKmV4cGVjdF92YWRf
cGFja2V0cz0qL3RydWUpOworICBUZXN0KC8qbmV3X291dGZpbGU9Ki9mYWxzZSwgLypleHBlY3Rf
ZHR4X2VuYWJsZWQ9Ki9SZWdpc3RlckNvZGVjKAorICAgICAgICAgICBjb2RlY19mb3JtYXQsIFZh
ZDo6a1ZhZFZlcnlBZ2dyZXNzaXZlKSk7CiAKLSAgUmVnaXN0ZXJDb2RlYyhjb2RlY19mb3JtYXQs
IFZhZDo6a1ZhZE5vcm1hbCk7CiAgIFRlc3QoLypuZXdfb3V0ZmlsZT0qL2ZhbHNlLAotICAgICAg
IC8qZXhwZWN0X3ZhZF9wYWNrZXRzPSovdHJ1ZSk7CisgICAgICAgLypleHBlY3RfZHR4X2VuYWJs
ZWQ9Ki9SZWdpc3RlckNvZGVjKGNvZGVjX2Zvcm1hdCwgVmFkOjprVmFkTm9ybWFsKSk7CiB9CiAK
IC8vIFNldCB0aGUgZXhwZWN0YXRpb24gYW5kIHJ1biB0aGUgdGVzdC4KLXZvaWQgVGVzdFdlYlJ0
Y1ZhZER0eDo6VGVzdChib29sIG5ld19vdXRmaWxlLCBib29sIGV4cGVjdF92YWRfcGFja2V0cykg
ewotICBpbnQgZXhwZWN0c1tdID0gey0xLCAxLCBleHBlY3RfdmFkX3BhY2tldHMgPyAxIDogLTEs
IDAsIDB9Owordm9pZCBUZXN0V2ViUnRjVmFkRHR4OjpUZXN0KGJvb2wgbmV3X291dGZpbGUsIGJv
b2wgZXhwZWN0X2R0eF9lbmFibGVkKSB7CisgIGludCBleHBlY3RzW10gPSB7LTEsIDEsIGV4cGVj
dF9kdHhfZW5hYmxlZCwgMCwgMH07CiAgIGlmIChuZXdfb3V0ZmlsZSkgewogICAgIG91dHB1dF9m
aWxlX251bV8rKzsKICAgfQpAQCAtMjI2LDIwICsyMjAsMTYgQEAgdm9pZCBUZXN0V2ViUnRjVmFk
RHR4OjpUZXN0KGJvb2wgbmV3X291dGZpbGUsIGJvb2wgZXhwZWN0X3ZhZF9wYWNrZXRzKSB7CiAK
IC8vIEZvbGxvd2luZyBpcyB0aGUgaW1wbGVtZW50YXRpb24gb2YgVGVzdE9wdXNEdHguCiB2b2lk
IFRlc3RPcHVzRHR4OjpQZXJmb3JtKCkgewotICBpbnQgZXhwZWN0c1tdID0gezAsIDAsIDAsIDAs
IDB9OworICBpbnQgZXhwZWN0c1tdID0gezAsIDEsIDAsIDAsIDB9OwogCiAgIC8vIFJlZ2lzdGVy
IE9wdXMgYXMgc2VuZCBjb2RlYwogICBzdGQ6OnN0cmluZyBvdXRfZmlsZW5hbWUgPQogICAgICAg
d2VicnRjOjp0ZXN0OjpPdXRwdXRQYXRoKCkgKyAidGVzdE9wdXNEdHhfb3V0RmlsZV9tb25vLnBj
bSI7CiAgIFJlZ2lzdGVyQ29kZWMoeyJvcHVzIiwgNDgwMDAsIDJ9LCBhYnNsOjpudWxsb3B0KTsK
LQogICBhY21fc2VuZF8tPk1vZGlmeUVuY29kZXIoW10oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvRW5j
b2Rlcj4qIGVuY29kZXJfcHRyKSB7CiAgICAgKCplbmNvZGVyX3B0ciktPlNldER0eChmYWxzZSk7
CiAgIH0pOwogCi0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlwZTo6a0Vt
cHR5RnJhbWUpXSA9IDA7Ci0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlw
ZTo6a0F1ZGlvRnJhbWVTcGVlY2gpXSA9IDE7Ci0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihB
dWRpb0ZyYW1lVHlwZTo6a0F1ZGlvRnJhbWVDTildID0gMTsKICAgUnVuKHdlYnJ0Yzo6dGVzdDo6
UmVzb3VyY2VQYXRoKCJhdWRpb19jb2RpbmcvdGVzdGZpbGUzMmtIeiIsICJwY20iKSwgMzIwMDAs
IDEsCiAgICAgICBvdXRfZmlsZW5hbWUsIGZhbHNlLCBleHBlY3RzKTsKIApAQCAtMjQ3LDcgKzIz
Nyw2IEBAIHZvaWQgVGVzdE9wdXNEdHg6OlBlcmZvcm0oKSB7CiAgICAgKCplbmNvZGVyX3B0cikt
PlNldER0eCh0cnVlKTsKICAgfSk7CiAgIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0Zy
YW1lVHlwZTo6a0VtcHR5RnJhbWUpXSA9IDE7Ci0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihB
dWRpb0ZyYW1lVHlwZTo6a0F1ZGlvRnJhbWVTcGVlY2gpXSA9IDE7CiAgIGV4cGVjdHNbc3RhdGlj
X2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlwZTo6a0F1ZGlvRnJhbWVDTildID0gMTsKICAgUnVuKHdl
YnJ0Yzo6dGVzdDo6UmVzb3VyY2VQYXRoKCJhdWRpb19jb2RpbmcvdGVzdGZpbGUzMmtIeiIsICJw
Y20iKSwgMzIwMDAsIDEsCiAgICAgICBvdXRfZmlsZW5hbWUsIHRydWUsIGV4cGVjdHMpOwpAQCAt
MjU1LDEyICsyNDQsMTAgQEAgdm9pZCBUZXN0T3B1c0R0eDo6UGVyZm9ybSgpIHsKICAgLy8gUmVn
aXN0ZXIgc3RlcmVvIE9wdXMgYXMgc2VuZCBjb2RlYwogICBvdXRfZmlsZW5hbWUgPSB3ZWJydGM6
OnRlc3Q6Ok91dHB1dFBhdGgoKSArICJ0ZXN0T3B1c0R0eF9vdXRGaWxlX3N0ZXJlby5wY20iOwog
ICBSZWdpc3RlckNvZGVjKHsib3B1cyIsIDQ4MDAwLCAyLCB7eyJzdGVyZW8iLCAiMSJ9fX0sIGFi
c2w6Om51bGxvcHQpOwotCiAgIGFjbV9zZW5kXy0+TW9kaWZ5RW5jb2RlcihbXShzdGQ6OnVuaXF1
ZV9wdHI8QXVkaW9FbmNvZGVyPiogZW5jb2Rlcl9wdHIpIHsKICAgICAoKmVuY29kZXJfcHRyKS0+
U2V0RHR4KGZhbHNlKTsKICAgfSk7CiAgIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0Zy
YW1lVHlwZTo6a0VtcHR5RnJhbWUpXSA9IDA7Ci0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihB
dWRpb0ZyYW1lVHlwZTo6a0F1ZGlvRnJhbWVTcGVlY2gpXSA9IDE7CiAgIGV4cGVjdHNbc3RhdGlj
X2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlwZTo6a0F1ZGlvRnJhbWVDTildID0gMDsKICAgUnVuKHdl
YnJ0Yzo6dGVzdDo6UmVzb3VyY2VQYXRoKCJhdWRpb19jb2RpbmcvdGVzdHN0ZXJlbzMya0h6Iiwg
InBjbSIpLCAzMjAwMCwKICAgICAgIDIsIG91dF9maWxlbmFtZSwgZmFsc2UsIGV4cGVjdHMpOwpA
QCAtMjc0LDcgKzI2MSw2IEBAIHZvaWQgVGVzdE9wdXNEdHg6OlBlcmZvcm0oKSB7CiAgIH0pOwog
CiAgIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlwZTo6a0VtcHR5RnJhbWUp
XSA9IDE7Ci0gIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0ZyYW1lVHlwZTo6a0F1ZGlv
RnJhbWVTcGVlY2gpXSA9IDE7CiAgIGV4cGVjdHNbc3RhdGljX2Nhc3Q8aW50PihBdWRpb0ZyYW1l
VHlwZTo6a0F1ZGlvRnJhbWVDTildID0gMTsKICAgUnVuKHdlYnJ0Yzo6dGVzdDo6UmVzb3VyY2VQ
YXRoKCJhdWRpb19jb2RpbmcvdGVzdHN0ZXJlbzMya0h6IiwgInBjbSIpLCAzMjAwMCwKICAgICAg
IDIsIG91dF9maWxlbmFtZSwgdHJ1ZSwgZXhwZWN0cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9wZWVyX2Nvbm5lY3Rpb25fcnRwX3Vu
aXR0ZXN0LmNjIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93ZWJydGMvcGMv
cGVlcl9jb25uZWN0aW9uX3J0cF91bml0dGVzdC5jYwppbmRleCBiMTY3MGMxNjg0ZDdlZjA4NTQx
ZjdmZGUwOWU4MWFmNzgzYmMxMjgyLi43YWU0OGYwMTI5N2Q4N2YwZTQyMzFlNDk2N2ZjNzAyYTFj
N2RlN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dl
YnJ0Yy9wYy9wZWVyX2Nvbm5lY3Rpb25fcnRwX3VuaXR0ZXN0LmNjCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3BlZXJfY29ubmVjdGlvbl9ydHBfdW5p
dHRlc3QuY2MKQEAgLTE2NCw2ICsxNjQsMjggQEAgY2xhc3MgUGVlckNvbm5lY3Rpb25SdHBUZXN0
VW5pZmllZFBsYW4gOiBwdWJsaWMgUGVlckNvbm5lY3Rpb25SdHBCYXNlVGVzdCB7CiAgcHJvdGVj
dGVkOgogICBQZWVyQ29ubmVjdGlvblJ0cFRlc3RVbmlmaWVkUGxhbigpCiAgICAgICA6IFBlZXJD
b25uZWN0aW9uUnRwQmFzZVRlc3QoU2RwU2VtYW50aWNzOjprVW5pZmllZFBsYW4pIHt9CisKKyAg
Ly8gSGVscGVyIHRvIGVtdWxhdGUgYW4gU0ZVIHRoYXQgcmVqZWN0cyBhbiBvZmZlcmVkIG1lZGlh
IHNlY3Rpb24KKyAgLy8gaW4gYW5zd2VyLgorICBib29sIEV4Y2hhbmdlT2ZmZXJBbnN3ZXJXaGVy
ZVJlbW90ZVN0b3BzVHJhbnNjZWl2ZXIoCisgICAgICBQZWVyQ29ubmVjdGlvbldyYXBwZXIqIGNh
bGxlciwKKyAgICAgIFBlZXJDb25uZWN0aW9uV3JhcHBlciogY2FsbGVlLAorICAgICAgc2l6ZV90
IG1pZF90b19zdG9wKSB7CisgICAgYXV0byBvZmZlciA9IGNhbGxlci0+Q3JlYXRlT2ZmZXIoKTsK
KyAgICBjYWxsZXItPlNldExvY2FsRGVzY3JpcHRpb24oQ2xvbmVTZXNzaW9uRGVzY3JpcHRpb24o
b2ZmZXIuZ2V0KCkpKTsKKyAgICBjYWxsZWUtPlNldFJlbW90ZURlc2NyaXB0aW9uKHN0ZDo6bW92
ZShvZmZlcikpOworICAgIEVYUEVDVF9MVChtaWRfdG9fc3RvcCwgY2FsbGVlLT5wYygpLT5HZXRU
cmFuc2NlaXZlcnMoKS5zaXplKCkpOworICAgIC8vIE11c3QgdXNlIFN0b3BJbnRlcm5hbCBpbiBv
cmRlciB0byBkbyBpbnN0YW50IHJlamVjdC4KKyAgICBjYWxsZWUtPnBjKCktPkdldFRyYW5zY2Vp
dmVycygpW21pZF90b19zdG9wXS0+U3RvcEludGVybmFsKCk7CisgICAgYXV0byBhbnN3ZXIgPSBj
YWxsZWUtPkNyZWF0ZUFuc3dlcigpOworICAgIEVYUEVDVF9UUlVFKGFuc3dlcik7CisgICAgYm9v
bCBzZXRfbG9jYWxfYW5zd2VyID0KKyAgICAgICAgY2FsbGVlLT5TZXRMb2NhbERlc2NyaXB0aW9u
KENsb25lU2Vzc2lvbkRlc2NyaXB0aW9uKGFuc3dlci5nZXQoKSkpOworICAgIEVYUEVDVF9UUlVF
KHNldF9sb2NhbF9hbnN3ZXIpOworICAgIGJvb2wgc2V0X3JlbW90ZV9hbnN3ZXIgPSBjYWxsZXIt
PlNldFJlbW90ZURlc2NyaXB0aW9uKHN0ZDo6bW92ZShhbnN3ZXIpKTsKKyAgICBFWFBFQ1RfVFJV
RShzZXRfcmVtb3RlX2Fuc3dlcik7CisgICAgcmV0dXJuIHNldF9yZW1vdGVfYW5zd2VyOworICB9
CiB9OwogCiAvLyBUaGVzZSB0ZXN0cyBjb3ZlciB8d2VicnRjOjpQZWVyQ29ubmVjdGlvbk9ic2Vy
dmVyfCBjYWxsYmFja3MgZmlyaW5nIHVwb24KQEAgLTE1NzMsNiArMTU5NSw0MiBAQCBURVNUX0Yo
UGVlckNvbm5lY3Rpb25SdHBUZXN0VW5pZmllZFBsYW4sCiAgIEVYUEVDVF9FUSgwVSwgY2FsbGVl
LT5wYygpLT5HZXRSZWNlaXZlcnMoKS5zaXplKCkpOwogfQogCitURVNUX0YoUGVlckNvbm5lY3Rp
b25SdHBUZXN0VW5pZmllZFBsYW4sCisgICAgICAgU2V0TG9jYWxEZXNjcmlwdGlvbldvcmtzQWZ0
ZXJSZXBlYXRlZEFkZFJlbW92ZSkgeworICBhdXRvIGNhbGxlciA9IENyZWF0ZVBlZXJDb25uZWN0
aW9uKCk7CisgIGF1dG8gY2FsbGVlID0gQ3JlYXRlUGVlckNvbm5lY3Rpb24oKTsKKyAgYXV0byB2
aWRlb190cmFjayA9IGNhbGxlci0+Q3JlYXRlVmlkZW9UcmFjaygidiIpOworICBhdXRvIHRyYWNr
ID0gY2FsbGVyLT5DcmVhdGVBdWRpb1RyYWNrKCJhIik7CisgIGNhbGxlci0+QWRkVHJhbnNjZWl2
ZXIodmlkZW9fdHJhY2spOworICBhdXRvIHRyYW5zY2VpdmVyID0gY2FsbGVyLT5BZGRUcmFuc2Nl
aXZlcih0cmFjayk7CisgIEFTU0VSVF9UUlVFKGNhbGxlci0+RXhjaGFuZ2VPZmZlckFuc3dlcldp
dGgoY2FsbGVlLmdldCgpKSk7CisgIGNhbGxlci0+cGMoKS0+UmVtb3ZlVHJhY2sodHJhbnNjZWl2
ZXItPnNlbmRlcigpKTsKKyAgQVNTRVJUX1RSVUUoY2FsbGVyLT5FeGNoYW5nZU9mZmVyQW5zd2Vy
V2l0aChjYWxsZWUuZ2V0KCkpKTsKKyAgY2FsbGVyLT5BZGRUcmFjayh0cmFjayk7CisgIEFTU0VS
VF9UUlVFKGNhbGxlci0+RXhjaGFuZ2VPZmZlckFuc3dlcldpdGgoY2FsbGVlLmdldCgpKSk7Cisg
IGNhbGxlci0+cGMoKS0+UmVtb3ZlVHJhY2sodHJhbnNjZWl2ZXItPnNlbmRlcigpKTsKKyAgQVNT
RVJUX1RSVUUoY2FsbGVyLT5FeGNoYW5nZU9mZmVyQW5zd2VyV2l0aChjYWxsZWUuZ2V0KCkpKTsK
K30KKworLy8gVGhpcyBpcyBhIHJlcHJvIG9mIENocm9taXVtIGJ1ZyBodHRwczovL2NyYnVnLmNv
bS8xMTM0Njg2CitURVNUX0YoUGVlckNvbm5lY3Rpb25SdHBUZXN0VW5pZmllZFBsYW4sCisgICAg
ICAgU2V0TG9jYWxEZXNjcmlwdGlvbldvcmtzQWZ0ZXJSZXBlYXRlZEFkZFJlbW92ZVdpdGhSZW1v
dGVSZWplY3QpIHsKKyAgYXV0byBjYWxsZXIgPSBDcmVhdGVQZWVyQ29ubmVjdGlvbigpOworICBh
dXRvIGNhbGxlZSA9IENyZWF0ZVBlZXJDb25uZWN0aW9uKCk7CisgIGF1dG8gdmlkZW9fdHJhY2sg
PSBjYWxsZXItPkNyZWF0ZVZpZGVvVHJhY2soInYiKTsKKyAgYXV0byB0cmFjayA9IGNhbGxlci0+
Q3JlYXRlQXVkaW9UcmFjaygiYSIpOworICBjYWxsZXItPkFkZFRyYW5zY2VpdmVyKHZpZGVvX3Ry
YWNrKTsKKyAgYXV0byB0cmFuc2NlaXZlciA9IGNhbGxlci0+QWRkVHJhbnNjZWl2ZXIodHJhY2sp
OworICBBU1NFUlRfVFJVRShjYWxsZXItPkV4Y2hhbmdlT2ZmZXJBbnN3ZXJXaXRoKGNhbGxlZS5n
ZXQoKSkpOworICBjYWxsZXItPnBjKCktPlJlbW92ZVRyYWNrKHRyYW5zY2VpdmVyLT5zZW5kZXIo
KSk7CisgIEV4Y2hhbmdlT2ZmZXJBbnN3ZXJXaGVyZVJlbW90ZVN0b3BzVHJhbnNjZWl2ZXIoY2Fs
bGVyLmdldCgpLCBjYWxsZWUuZ2V0KCksIDEpOworICBBU1NFUlRfVFJVRShjYWxsZXItPkV4Y2hh
bmdlT2ZmZXJBbnN3ZXJXaXRoKGNhbGxlZS5nZXQoKSkpOworICBjYWxsZXItPkFkZFRyYWNrKHRy
YWNrKTsKKyAgQVNTRVJUX1RSVUUoY2FsbGVyLT5FeGNoYW5nZU9mZmVyQW5zd2VyV2l0aChjYWxs
ZWUuZ2V0KCkpKTsKKyAgY2FsbGVyLT5wYygpLT5SZW1vdmVUcmFjayh0cmFuc2NlaXZlci0+c2Vu
ZGVyKCkpOworICBBU1NFUlRfVFJVRShjYWxsZXItPkV4Y2hhbmdlT2ZmZXJBbnN3ZXJXaXRoKGNh
bGxlZS5nZXQoKSkpOworfQorCiAvLyBUZXN0IHRoYXQgQWRkVHJhbnNjZWl2ZXIgZmFpbHMgaWYg
dHJ5aW5nIHRvIHVzZSB1bmltcGxlbWVudGVkIFJUUCBlbmNvZGluZwogLy8gcGFyYW1ldGVycyB3
aXRoIHRoZSBzZW5kX2VuY29kaW5ncyBwYXJhbWV0ZXJzLgogVEVTVF9GKFBlZXJDb25uZWN0aW9u
UnRwVGVzdFVuaWZpZWRQbGFuLApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvbGlid2Vi
cnRjL1NvdXJjZS93ZWJydGMvcGMvc2RwX29mZmVyX2Fuc3dlci5jYyBiL1NvdXJjZS9UaGlyZFBh
cnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL3BjL3NkcF9vZmZlcl9hbnN3ZXIuY2MKaW5kZXgg
ZmI2MzNlMDJiOWYxMzk5ZGQ0ZTFjNWM3M2MzYmI1MzNkMDEyNmYxYS4uNDg2NjU1MWJhZmJmNWY5
YTliMjRmNWQ1ODNlNDgzMmI3YWMzMTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkv
bGlid2VicnRjL1NvdXJjZS93ZWJydGMvcGMvc2RwX29mZmVyX2Fuc3dlci5jYworKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9wYy9zZHBfb2ZmZXJfYW5zd2Vy
LmNjCkBAIC0yODAyLDE3ICsyODAyLDE2IEBAIFJUQ0Vycm9yIFNkcE9mZmVyQW5zd2VySGFuZGxl
cjo6VXBkYXRlVHJhbnNjZWl2ZXJzQW5kRGF0YUNoYW5uZWxzKAogICAgICAgICBvbGRfcmVtb3Rl
X2NvbnRlbnQgPQogICAgICAgICAgICAgJm9sZF9yZW1vdGVfZGVzY3JpcHRpb24tPmRlc2NyaXB0
aW9uKCktPmNvbnRlbnRzKClbaV07CiAgICAgICB9Ci0gICAgICAvLyBJbiB0aGUgY2FzZSB3aGVy
ZSBhbiBtLXNlY3Rpb24gaGFzIGNvbXBsZXRlZCBpdHMgcmVqZWN0aW9uLAotICAgICAgLy8gYW5k
IGlzIG5vdCBiZWluZyByZXVzZWQsIHdlIGRvIG5vdCBleHBlY3QgYSB0cmFuc2NlaXZlci4KLSAg
ICAgIGlmIChvbGRfbG9jYWxfY29udGVudCAmJiBvbGRfbG9jYWxfY29udGVudC0+cmVqZWN0ZWQg
JiYKLSAgICAgICAgICBvbGRfcmVtb3RlX2NvbnRlbnQgJiYgb2xkX3JlbW90ZV9jb250ZW50LT5y
ZWplY3RlZCAmJgotICAgICAgICAgIG5ld19jb250ZW50LnJlamVjdGVkKSB7Ci0gICAgICAgIGNv
bnRpbnVlOwotICAgICAgfQogICAgICAgYXV0byB0cmFuc2NlaXZlcl9vcl9lcnJvciA9CiAgICAg
ICAgICAgQXNzb2NpYXRlVHJhbnNjZWl2ZXIoc291cmNlLCBuZXdfc2Vzc2lvbi5HZXRUeXBlKCks
IGksIG5ld19jb250ZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9sb2Nh
bF9jb250ZW50LCBvbGRfcmVtb3RlX2NvbnRlbnQpOwogICAgICAgaWYgKCF0cmFuc2NlaXZlcl9v
cl9lcnJvci5vaygpKSB7CisgICAgICAgIC8vIEluIHRoZSBjYXNlIHdoZXJlIGEgdHJhbnNjZWl2
ZXIgaXMgcmVqZWN0ZWQgbG9jYWxseSwgd2UgZG9uJ3QKKyAgICAgICAgLy8gZXhwZWN0IHRvIGZp
bmQgYSB0cmFuc2NlaXZlciwgYnV0IG1pZ2h0IGZpbmQgaXQgaW4gdGhlIGNhc2UKKyAgICAgICAg
Ly8gd2hlcmUgc3RhdGUgaXMgc3RpbGwgInN0b3BwaW5nIiwgbm90ICJzdG9wcGVkIi4KKyAgICAg
ICAgaWYgKG5ld19jb250ZW50LnJlamVjdGVkKSB7CisgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KICAgICAgICAgcmV0dXJuIHRyYW5zY2VpdmVyX29yX2Vycm9yLk1vdmVFcnJvcigpOwog
ICAgICAgfQogICAgICAgYXV0byB0cmFuc2NlaXZlciA9IHRyYW5zY2VpdmVyX29yX2Vycm9yLk1v
dmVWYWx1ZSgpOwpAQCAtMjg3NCw4ICsyODczLDkgQEAgU2RwT2ZmZXJBbnN3ZXJIYW5kbGVyOjpB
c3NvY2lhdGVUcmFuc2NlaXZlcigKICAgICAgIHRyYW5zY2VpdmVyID0gcGNfLT5HZXRUcmFuc2Nl
aXZlckJ5TUxpbmVJbmRleChtbGluZV9pbmRleCk7CiAgICAgfQogICAgIGlmICghdHJhbnNjZWl2
ZXIpIHsKKyAgICAgIC8vIFRoaXMgbWF5IGhhcHBlbiBub3JtYWxseSB3aGVuIG1lZGlhIHNlY3Rp
b25zIGFyZSByZWplY3RlZC4KICAgICAgIExPR19BTkRfUkVUVVJOX0VSUk9SKFJUQ0Vycm9yVHlw
ZTo6SU5WQUxJRF9QQVJBTUVURVIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5rbm93
biB0cmFuc2NlaXZlciIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIlRyYW5zY2VpdmVy
IG5vdCBmb3VuZCBiYXNlZCBvbiBtLWxpbmUgaW5kZXgiKTsKICAgICB9CiAgIH0gZWxzZSB7CiAg
ICAgUlRDX0RDSEVDS19FUShzb3VyY2UsIGNyaWNrZXQ6OkNTX1JFTU9URSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1hYy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRm
b3JtTWFjLmNtYWtlCmluZGV4IGFjNzAxNTQ5OTc5OWU0ZmI0ZWUyYTBkZTAxYjQzNTEyYjA5YTFm
OGUuLmNhZDI2NDQ5Yzc0Yzg1Y2FjYjk2NWIzOWM4ZmI3NTI5MDFmY2E2ZjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1Bs
YXRmb3JtTWFjLmNtYWtlCkBAIC0zNDAsNiArMzQwLDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9T
T1VSQ0VTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRmxvYXRTaXplTWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dyYXBoaWNzQ2hlY2tzTWFjLmNwcAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9JY29u
TWFjLm1tCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ltYWdlTWFjLm1tCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ludFBvaW50TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAppbmRl
eCAzYmUxNzU4Y2Q4NzU1MzlhYzdkMmM2ZGFhMDc4ZjBjYjMwMmM4NzEzLi5lODdkNGRkMDc5YTU1
ZjY5ZDIxNzNiZGYxMTJjMmVmOWY5YTZlYzQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzQ29jb2EudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKQEAg
LTQxOCw2ICs0MTgsNyBAQCBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFjLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zsb2F0UG9pbnRNYWMubW0KIHBsYXRm
b3JtL2dyYXBoaWNzL21hYy9GbG9hdFNpemVNYWMubW0KIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
Q2hlY2tzTWFjLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ljb25NYWMubW0KIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9JbWFnZU1hYy5tbQogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ludFBvaW50
TWFjLm1tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNzFmN2M4MzgxMTlhMjM1MTczZDQwY2I4ODkxYmM1YWJmOWMzNmVmZS4uYTE3
NTBjNzZlMmUzNGIxN2Y0NTZjODQ2M2E0ZmU0ODFjYTBhYmRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjI1OSw2ICsyMjU5
LDkgQEAKIAkJN0I5MDQxNzAyNTUwMTE0MjAwNkVFQjhDIC8qIFJlbW90ZUdyYXBoaWNzQ29udGV4
dEdMUHJveHlCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QjkwNDE2RTI1NTAxMTA5MDA2RUVCOEMgLyogUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk3QkIzNEExNzI1MzQ1Q0IyMDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xBTkdMRVV0
aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVVdGlsaXRp
ZXMuaCAqLzsgfTsKIAkJN0JCMzRBNDgyNTM3NzZDQTAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4
dEdMSW1hZ2VFeHRyYWN0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDdCQjM0QTQ1MjUzNzc2QzYwMDAyOUQwOCAvKiBHcmFwaGljc0NvbnRleHRHTElt
YWdlRXh0cmFjdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKKwkJN0JCNjgwQjIyNUJBMEQ0QTAwMkI4NzM4IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5j
ZUdQVVJlcXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDdCQjY4MEIwMjVCQTBENEEwMDJCODczOCAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVS
ZXF1ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJN0JCNjgwQjYyNUJBMUFFMjAwMkI4NzM4IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJl
cXVlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdC
QjY4MEI0MjVCQTFBRTEwMDJCODczOCAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0
LmggKi87IH07CisJCTdCQjY4MEJBMjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01h
Yy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0JCNjgw
QjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0JFNzQyNzM4MUZBOTA2RkJCNEYw
RjJDIC8qIEpTU1ZHR3JhcGhpY3NFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5NTBDNEMwMkJFRDg5MzZGODE4RTJGOTkgLyogSlNTVkdHcmFw
aGljc0VsZW1lbnQuaCAqLzsgfTsKIAkJN0MwMjlDNkUyNDkzQzhGODAwMjY4MjA0IC8qIENvbG9y
VHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdD
MDI5QzZEMjQ5M0M4RjgwMDI2ODIwNCAvKiBDb2xvclR5cGVzLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJN0MxODQzRkUxQzhCNzI4MzAwMkVCOTcz
IC8qIEF1dG9maWxsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA3QzE4NDNGQzFDOEI3MjgzMDAyRUI5NzMgLyogQXV0b2ZpbGwuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTAyOTUsNiArMTAyOTgsMTAg
QEAKIAkJN0JCMzRBMTYyNTM0NUNCMjAwMDI5RDA4IC8qIEdyYXBoaWNzQ29udGV4dEdMQU5HTEVV
dGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250
ZXh0R0xBTkdMRVV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3QkIz
NEE0NTI1Mzc3NkM2MDAwMjlEMDggLyogR3JhcGhpY3NDb250ZXh0R0xJbWFnZUV4dHJhY3Rvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCQjM0QTQ3MjUzNzc2QzcwMDAyOUQwOCAvKiBHcmFw
aGljc0NvbnRleHRHTEltYWdlRXh0cmFjdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEdyYXBo
aWNzQ29udGV4dEdMSW1hZ2VFeHRyYWN0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3QkI2ODBCMDI1QkEwRDRBMDAyQjg3MzggLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BV
UmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY29wZWRIaWdoUGVy
Zm9ybWFuY2VHUFVSZXF1ZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTdCQjY4
MEI0MjVCQTFBRTEwMDJCODczOCAvKiBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1ZXN0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQ
VVJlcXVlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJN0JCNjgwQjcyNUJBMUJF
MzAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEdyYXBoaWNzQ2hlY2tzTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJN0JCNjgwQjgyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFj
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ2hlY2tzTWFjLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdCRTcyNjVCMjU3NjNCOEQwMEU4NUQ5OCAv
KiBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBSZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTdDMDExRjNEMjRGQUQzNjAwMDVCRUYxMCAvKiBTZXR0aW5ncy5jcHAuZXJi
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFNldHRpbmdzLmNwcC5lcmI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdD
MDExRjNFMjRGQUQzNjAwMDVCRUYxMCAvKiBJbnRlcm5hbFNldHRpbmdzR2VuZXJhdGVkLmNwcC5l
cmIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gSW50ZXJuYWxTZXR0aW5nc0dlbmVyYXRlZC5jcHAuZXJiOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjY0OTcsMTEgKzI2NTA0LDE1IEBACiAJCQkJQjI3NTM1NEQwQjA1
MzgxNDAwMkNFNjRGIC8qIEZsb2F0U2l6ZU1hYy5tbSAqLywKIAkJCQlCMkFGRkM3NTBEMDBBNUMx
MDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgKi8sCiAJCQkJQjJBRkZDNzYw
RDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCAqLywKKwkJCQk3QkI2
ODBCNzI1QkExQkUzMDAyQjg3MzggLyogR3JhcGhpY3NDaGVja3NNYWMuY3BwICovLAorCQkJCTdC
QjY4MEI4MjVCQTFCRTQwMDJCODczOCAvKiBHcmFwaGljc0NoZWNrc01hYy5oICovLAogCQkJCUIy
NzUzNThEMEIwNTNBNjYwMDJDRTY0RiAvKiBJY29uTWFjLm1tICovLAogCQkJCUIyNzUzNTRFMEIw
NTM4MTQwMDJDRTY0RiAvKiBJbWFnZU1hYy5tbSAqLywKIAkJCQlCMjc1MzU0RjBCMDUzODE0MDAy
Q0U2NEYgLyogSW50UG9pbnRNYWMubW0gKi8sCiAJCQkJQjI3NTM1NTEwQjA1MzgxNDAwMkNFNjRG
IC8qIEludFNpemVNYWMubW0gKi8sCiAJCQkJMkQ2RTQ2ODIxN0Q2NjBGNTAwRUNGOEJCIC8qIFBE
RkRvY3VtZW50SW1hZ2VNYWMubW0gKi8sCisJCQkJN0JCNjgwQjQyNUJBMUFFMTAwMkI4NzM4IC8q
IFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCAqLywKKwkJCQk3QkI2ODBCMDI1QkEw
RDRBMDAyQjg3MzggLyogU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdC5oICovLAogCQkJ
CTE2M0U4OEY1MTE4QTM5RDIwMEVEOTIzMSAvKiBTaW1wbGVGb250RGF0YUNvcmVUZXh0LmNwcCAq
LywKIAkJCQlDMTFBOUVEMjIxNDA1NzhCMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50LmNw
cCAqLywKIAkJCQlDMTFBOUVDRDIxNDAzQTVDMDBDRkIyMEEgLyogU3dpdGNoaW5nR1BVQ2xpZW50
LmggKi8sCkBAIC0zMjIzNSw2ICszMjI0Niw3IEBACiAJCQkJQkM1M0M1RjUwREE1NkI5MjAwMjFF
QjVEIC8qIEdyYWRpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3
MUI3ODIgLyogR3JhZGllbnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDQ4MUYw
NDE0NkI1QzZCMDBBQTc4MzQgLyogR3JhZGllbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
N0JCNjgwQkEyNUJBMUJFNDAwMkI4NzM4IC8qIEdyYXBoaWNzQ2hlY2tzTWFjLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3ND
b250ZXh0Q0cuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxM0RFODcwMjNBOTY5NzMwMDhGQzQ3QiAv
KiBHcmFwaGljc0NvbnRleHRHTC5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNDQ1Nyw2ICszNDQ2OSw4
IEBACiAJCQkJNDlFOTExQ0IwRUY4NkQ0NzAwOUQwQ0FGIC8qIFNjYWxlVHJhbnNmb3JtT3BlcmF0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1REZFOEY1NzBEMTY0NzdDMDA3NkU5MzcgLyogU2No
ZWR1bGVkQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk5QkQwQkY5MzEyQTQyQkY1MDA3MkZE
NDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJN0JCNjgwQjYyNUJB
MUFFMjAwMkI4NzM4IC8qIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTdCQjY4MEIyMjVCQTBENEEwMDJCODczOCAvKiBTY29wZWRIaWdoUGVyZm9y
bWFuY2VHUFVSZXF1ZXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFCRTBDMjc0REFDMDA5
RjRFQzkgLyogU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMUUxRDIzNjIwM0RGMTU0MDA1
ODQ2NjUgLyogU2NyZWVuUHJvcGVydGllcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTg0RDgyQzEx
MUQzNDc0ODAwOTcyOTkwIC8qIFNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIGluIEhlYWRlcnMg
Ki8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmlu
Z0NvbnRleHRCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVy
aW5nQ29udGV4dEJhc2UuY3BwCmluZGV4IDU3OGUwMjE4MGM0NmYzZGJjNGZmZmQwYWYwYzM1M2Yz
OTQ4MjBkYmUuLmU3N2Q4MGE4NTJmYjVhYzVkZDcxY2UzZjk3Y2NmNjY2NDYxY2U1NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29udGV4dEJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dEJhc2UuY3BwCkBAIC02NDIsNyArNjQyLDcgQEAgcHJpdmF0ZToKIAogc3RhdGljIGJvb2wg
aXNIaWdoUGVyZm9ybWFuY2VDb250ZXh0KGNvbnN0IFJlZlB0cjxHcmFwaGljc0NvbnRleHRHTD4m
IGNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIGNvbnRleHQtPnBvd2VyUHJlZmVyZW5jZVVzZWRGb3JD
cmVhdGlvbigpID09IFdlYkdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7CisgICAg
cmV0dXJuIGNvbnRleHQtPmNvbnRleHRBdHRyaWJ1dGVzKCkucG93ZXJQcmVmZXJlbmNlID09IFdl
YkdMUG93ZXJQcmVmZXJlbmNlOjpIaWdoUGVyZm9ybWFuY2U7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiBXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlOjpj
cmVhdGUoQ2FudmFzQmFzZSYgY2FudmFzLCBXZWJHTENvbnRleHRBdHRyaWJ1dGVzJiBhdHRyaWJ1
dGVzLCBXZWJHTFZlcnNpb24gdHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCBiNzEwZTcx
NWE2NmRjYWM1Njc0MmRiNmJiZWE3NDFkNmY4NjM0MmIzLi40YTU1ZjlkYTFjNWI1MWY2YzI0YTBi
MGU1YzVjNmZiYjNmNTQ5YzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC02NywxMCArNjcs
NiBAQAogI2luY2x1ZGUgIkRhdGVUaW1lQ2hvb3Nlci5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9S
TShNQUMpICYmIEVOQUJMRShXRUJHTCkKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHRHTE9wZW5H
TE1hbmFnZXIuaCIKLSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIG5hbWVz
cGFjZSBIVE1MTmFtZXM7CkBAIC01NDgsMTAgKzU0NCw2IEBAIHZvaWQgQ2hyb21lOjp3aW5kb3dT
Y3JlZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlELCBPcHRpb25hbDx1bnNp
Z25lCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fcGFnZS53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
ZGlzcGxheUlELCBub21pbmFsRnJhbWVJbnRlcnZhbCk7Ci0KLSNpZiBQTEFURk9STShNQUMpICYm
IEVOQUJMRShXRUJHTCkKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJl
ZE1hbmFnZXIoKS5zY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlELCB0aGlzKTsKLSNlbmRpZgogfQog
CiBib29sIENocm9tZTo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
R0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dEdM
LmgKaW5kZXggYTMwY2VlNWZhYjY0NzkyYWNiOGM0NWUxZWU1MGUwMGNkMjJjMmRmNC4uMmFkMTQ3
ZjZlYWI5NGNmM2JkZjAzYmM2ZmRjMjExN2Q0YWUwMDUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHRHTC5oCkBAIC0xMjYzLDgg
KzEyNjMsNiBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q29udGV4dFZpc2liaWxp
dHkoYm9vbCkgPSAwOwogCi0gICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVy
ZW5jZSBwb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb24oKSBjb25zdCA9IDA7Ci0KICAgICB2
aXJ0dWFsIGJvb2wgaXNHTEVTMkNvbXBsaWFudCgpIGNvbnN0ID0gMDsKIAogICAgIC8vIFN5bnRo
ZXNpemVzIGFuIE9wZW5HTCBlcnJvciB3aGljaCB3aWxsIGJlIHJldHVybmVkIGZyb20gYQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0xQcm94eUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
UmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuY3BwCmluZGV4IDU1MmQ4NTM5YjY5NTAw
Y2YxMTY5NjgwZDRiNWM2Mjg1ODU4Yjc3MzcuLmU1MGY4ZmI0YzVjMzY3MDQ2MWM4MTM0NWU0NDM3
M2M2YTRkYTEyYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFByb3h5QmFzZS5jcHAK
QEAgLTQ5LDEyICs0OSw2IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2U6
OnNldENvbnRleHRWaXNpYmlsaXR5KGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
R3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2UgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQ
cm94eUJhc2U6OnBvd2VyUHJlZmVyZW5jZVVzZWRGb3JDcmVhdGlvbigpIGNvbnN0Ci17Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4geyB9OwotfQotCiBib29sIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMUHJveHlCYXNlOjppc0dMRVMyQ29tcGxpYW50KCkgY29uc3QKIHsKICNpZiBF
TkFCTEUoV0VCR0wyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMUHJveHlCYXNlLmgKaW5kZXgg
MjQ3MWQ0ZTI1YzlhYTIwMGVjNzQzYjFmZTBjNjQ2OGIwYzlhNTA4My4uMjg4YzJlYThhZDM5ZTg5
YjY5NjlmZDBiMjE2YjhiNjdiMGJlZGEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xQcm94eUJhc2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTFBy
b3h5QmFzZS5oCkBAIC02MSw3ICs2MSw2IEBAIHB1YmxpYzoKICAgICBQbGF0Zm9ybUxheWVyKiBw
bGF0Zm9ybUxheWVyKCkgY29uc3QgZmluYWw7CiAgICAgRXh0ZW5zaW9uc0dMJiBnZXRFeHRlbnNp
b25zKCkgZmluYWw7CiAgICAgdm9pZCBzZXRDb250ZXh0VmlzaWJpbGl0eShib29sKSBmaW5hbDsK
LSAgICBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZSBwb3dlclByZWZlcmVuY2VVc2Vk
Rm9yQ3JlYXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBib29sIGlzR0xFUzJDb21wbGlhbnQoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIG1hcmtDb250ZXh0Q2hhbmdlZCgpIGZpbmFsOwogICAgIGJv
b2wgbGF5ZXJDb21wb3NpdGVkKCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0NvbnRleHRHTE9wZW5HTENvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xDb2NvYS5tbQppbmRleCA2NTlmZmZmMTI4NGMwMmEyMjMyMjEyMDZlYjhmMTZm
MmE4MTJiNWFjLi4zNGFmYzgyMGIyZGI4Mjg4ZGNmZTE3MWQ4NjQ4MzY4NzExNjk4MmYyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9HcmFwaGljc0Nv
bnRleHRHTE9wZW5HTENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMQ29jb2EubW0KQEAgLTIwLDcgKzIwLDcg
QEAKICAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgiCkBAIC0zMiw5ICsz
Miw3IEBACiAjaW1wb3J0ICJHcmFwaGljc0NvbnRleHRHTEFOR0xFVXRpbGl0aWVzLmgiCiAjaW1w
b3J0ICJHcmFwaGljc0NvbnRleHRHTElPU3VyZmFjZVN3YXBDaGFpbi5oIgogI2ltcG9ydCAiR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgiCi0jaW1wb3J0ICJIb3N0V2luZG93LmgiCiAj
aW1wb3J0ICJMb2dnaW5nLmgiCi0jaW1wb3J0ICJPcGVuR0xTb2Z0TGlua0NvY29hLmgiCiAjaW1w
b3J0ICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbXBvcnQgIldlYkNvcmVUaHJlYWQu
aCIKICNpbXBvcnQgIldlYkdMTGF5ZXIuaCIKQEAgLTQyLDExICs0MCw2IEBACiAjaW1wb3J0IDx3
dGYvQmxvY2tPYmpDRXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8d3RmL3RleHQvQ1N0cmluZy5oPgog
Ci0jaWYgUExBVEZPUk0oTUFDKQotI2ltcG9ydCAiU2NyZWVuUHJvcGVydGllcy5oIgotI2ltcG9y
dCA8T3BlbkdML0NHTFJlbmRlcmVycy5oPgotI2VuZGlmCi0KICNpZiBFTkFCTEUoVklERU8pICYm
IFVTRShBVkZPVU5EQVRJT04pCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0R0xDVi5oIgogI2Vu
ZGlmCkBAIC0xNTEsMTcgKzE0NCwxNyBAQCBSZWZQdHI8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGUoR3JhcGhpY3NDb250ZXh0RwogICAgIGlm
ICghY29udGV4dC0+bV9jb250ZXh0T2JqKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRl
eHQoY29udGV4dC5nZXQoKSwgaG9zdFdpbmRvdyk7CisgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4dChjb250ZXh0LmdldCgpKTsKIAog
ICAgIHJldHVybiBjb250ZXh0OwogfQogCiBSZWY8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0w+IEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjpjcmVhdGVTaGFyZWQoR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wmIHNoYXJlZENvbnRleHQpCiB7Ci0gICAgYXV0byBob3N0V2luZG93ID0gR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuaG9zdFdpbmRvd0ZvckNvbnRleHQo
JnNoYXJlZENvbnRleHQpOwotICAgIGF1dG8gY29udGV4dCA9IGFkb3B0UmVmKCpuZXcgR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0woc2hhcmVkQ29udGV4dC5jb250ZXh0QXR0cmlidXRlcygpLCBob3N0
V2luZG93LCAmc2hhcmVkQ29udGV4dCwgbnVsbHB0cikpOwogCi0gICAgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4dChjb250ZXh0LnB0cigp
LCBob3N0V2luZG93KTsKKyAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFJlZigqbmV3IEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMKHNoYXJlZENvbnRleHQuY29udGV4dEF0dHJpYnV0ZXMoKSwgbnVsbHB0
ciwgJnNoYXJlZENvbnRleHQsIG51bGxwdHIpKTsKKworICAgIEdyYXBoaWNzQ29udGV4dEdMT3Bl
bkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmFkZENvbnRleHQoY29udGV4dC5wdHIoKSk7CiAK
ICAgICByZXR1cm4gY29udGV4dDsKIH0KQEAgLTE3MSw3MiArMTY0LDI1IEBAIFJlZjxHcmFwaGlj
c0NvbnRleHRHTE9wZW5HTD4gR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmNyZWF0ZUZvckdQVVBy
b2Nlc3MoY29uc3QKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTChhdHRycywgbnVsbHB0ciwgbnVsbHB0ciwgc3dhcENoYWluKSk7CiB9CiAKLSNpZiBQTEFU
Rk9STShNQUMpIC8vIEZJWE1FOiBUaGlzIHByb2JhYmx5IHNob3VsZCBiZSBqdXN0IGVuYWJsZWQg
LSBzZWUgPHJkYXI6Ly81MzA2Mjc5ND4uCi0KLXN0YXRpYyB2b2lkIHNldEdQVUJ5UmVnaXN0cnlJ
RChDR0xDb250ZXh0T2JqIGNvbnRleHRPYmosIENHTFBpeGVsRm9ybWF0T2JqIHBpeGVsRm9ybWF0
T2JqLCBJT1JlZ2lzdHJ5R1BVSUQgcHJlZmVycmVkR1BVSUQpCi17Ci0gICAgLy8gV2hlbiB0aGUg
V2ViUHJvY2VzcyBkb2VzIG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgV2luZG93U2VydmVyLCB0aGVy
ZSBpcyBubyB3YXkgZm9yIE9wZW5HTCB0byB0ZWxsIHdoaWNoIEdQVSBpcyBjb25uZWN0ZWQgdG8g
YSBkaXNwbGF5LgotICAgIC8vIE9uIDEwLjEzKywgZmluZCB0aGUgdmlydHVhbCBzY3JlZW4gdGhh
dCBjb3JyZXNwb25kcyB0byB0aGUgcHJlZmVycmVkIEdQVSBieSBpdHMgcmVnaXN0cnlJRC4KLSAg
ICAvLyBDR0xTZXRWaXJ0dWFsU2NyZWVuIGNhbiB0aGVuIGJlIHVzZWQgdG8gdGVsbCBPcGVuR0wg
d2hpY2ggR1BVIGl0IHNob3VsZCBiZSB1c2luZy4KLQotICAgIGlmICghY29udGV4dE9iaiB8fCAh
cHJlZmVycmVkR1BVSUQpCi0gICAgICAgIHJldHVybjsKLQotICAgIEdMaW50IHZpcnR1YWxTY3Jl
ZW5Db3VudCA9IDA7Ci0gICAgQ0dMRXJyb3IgZXJyb3IgPSBDR0xEZXNjcmliZVBpeGVsRm9ybWF0
KHBpeGVsRm9ybWF0T2JqLCAwLCBrQ0dMUEZBVmlydHVhbFNjcmVlbkNvdW50LCAmdmlydHVhbFNj
cmVlbkNvdW50KTsKLSAgICBBU1NFUlQoZXJyb3IgPT0ga0NHTE5vRXJyb3IpOwotCi0gICAgR0xp
bnQgZmlyc3RBY2NlbGVyYXRlZFNjcmVlbiA9IC0xOwotCi0gICAgZm9yIChHTGludCB2aXJ0dWFs
U2NyZWVuID0gMDsgdmlydHVhbFNjcmVlbiA8IHZpcnR1YWxTY3JlZW5Db3VudDsgKyt2aXJ0dWFs
U2NyZWVuKSB7Ci0gICAgICAgIEdMaW50IGRpc3BsYXlNYXNrID0gMDsKLSAgICAgICAgZXJyb3Ig
PSBDR0xEZXNjcmliZVBpeGVsRm9ybWF0KHBpeGVsRm9ybWF0T2JqLCB2aXJ0dWFsU2NyZWVuLCBr
Q0dMUEZBRGlzcGxheU1hc2ssICZkaXNwbGF5TWFzayk7Ci0gICAgICAgIEFTU0VSVChlcnJvciA9
PSBrQ0dMTm9FcnJvcik7Ci0KLSAgICAgICAgYXV0byBncHVJRCA9IGdwdUlERm9yRGlzcGxheU1h
c2soZGlzcGxheU1hc2spOwotCi0gICAgICAgIGlmIChncHVJRCA9PSBwcmVmZXJyZWRHUFVJRCkg
ewotICAgICAgICAgICAgZXJyb3IgPSBDR0xTZXRWaXJ0dWFsU2NyZWVuKGNvbnRleHRPYmosIHZp
cnR1YWxTY3JlZW4pOwotICAgICAgICAgICAgQVNTRVJUKGVycm9yID09IGtDR0xOb0Vycm9yKTsK
LSAgICAgICAgICAgIExPRyhXZWJHTCwgIkNvbnRleHQgKCVwKSBzZXQgdG8gR1BVIHdpdGggSUQ6
ICglbGxkKS4iLCBjb250ZXh0T2JqLCBncHVJRCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAoZmlyc3RBY2NlbGVyYXRlZFNjcmVlbiA8IDApIHsKLSAgICAg
ICAgICAgIEdMaW50IGlzQWNjZWxlcmF0ZWQgPSAwOwotICAgICAgICAgICAgZXJyb3IgPSBDR0xE
ZXNjcmliZVBpeGVsRm9ybWF0KHBpeGVsRm9ybWF0T2JqLCB2aXJ0dWFsU2NyZWVuLCBrQ0dMUEZB
QWNjZWxlcmF0ZWQsICZpc0FjY2VsZXJhdGVkKTsKLSAgICAgICAgICAgIEFTU0VSVChlcnJvciA9
PSBrQ0dMTm9FcnJvcik7Ci0gICAgICAgICAgICBpZiAoaXNBY2NlbGVyYXRlZCkKLSAgICAgICAg
ICAgICAgICBmaXJzdEFjY2VsZXJhdGVkU2NyZWVuID0gdmlydHVhbFNjcmVlbjsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIC8vIE5vIHJlZ2lzdHJ5SUQgbWF0Y2ggZm91bmQ7IHNldCB0byBmaXJz
dCBoYXJkd2FyZS1hY2NlbGVyYXRlZCB2aXJ0dWFsIHNjcmVlbi4KLSAgICBpZiAoZmlyc3RBY2Nl
bGVyYXRlZFNjcmVlbiA+PSAwKSB7Ci0gICAgICAgIGVycm9yID0gQ0dMU2V0VmlydHVhbFNjcmVl
bihjb250ZXh0T2JqLCBmaXJzdEFjY2VsZXJhdGVkU2NyZWVuKTsKLSAgICAgICAgQVNTRVJUKGVy
cm9yID09IGtDR0xOb0Vycm9yKTsKLSAgICAgICAgTE9HKFdlYkdMLCAiUmVnaXN0cnlJRCAoJWxs
ZCkgbm90IG1hdGNoZWQ7IENvbnRleHQgKCVwKSBzZXQgdG8gdmlydHVhbCBzY3JlZW4gKCVkKS4i
LCBwcmVmZXJyZWRHUFVJRCwgY29udGV4dE9iaiwgZmlyc3RBY2NlbGVyYXRlZFNjcmVlbik7Ci0g
ICAgfQotfQotCi0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotCi1HcmFwaGljc0NvbnRleHRHTE9w
ZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250ZXh0R0xBdHRyaWJ1dGVz
IGF0dHJzLCBIb3N0V2luZG93KiBob3N0V2luZG93LCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTCog
c2hhcmVkQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VTd2FwQ2hhaW4qIHN3YXBD
aGFpbikKK0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpHcmFwaGljc0NvbnRleHRHTE9wZW5HTChH
cmFwaGljc0NvbnRleHRHTEF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaW5kb3cqLCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTCogc2hhcmVkQ29udGV4dCwgR3JhcGhpY3NDb250ZXh0R0xJT1N1cmZhY2VT
d2FwQ2hhaW4qIHN3YXBDaGFpbikKICAgICA6IEdyYXBoaWNzQ29udGV4dEdMKGF0dHJzLCBEZXN0
aW5hdGlvbjo6T2Zmc2NyZWVuLCBzaGFyZWRDb250ZXh0KQogewogICAgIG1faXNGb3JXZWJHTDIg
PSBhdHRycy53ZWJHTFZlcnNpb24gPT0gR3JhcGhpY3NDb250ZXh0R0xXZWJHTFZlcnNpb246Oldl
YkdMMjsKIAotI2lmIEhBVkUoQVBQTEVfR1JBUEhJQ1NfQ09OVFJPTCkKLSAgICBtX3Bvd2VyUHJl
ZmVyZW5jZVVzZWRGb3JDcmVhdGlvbiA9IChoYXNMb3dBbmRIaWdoUG93ZXJHUFVzKCkgJiYgYXR0
cnMucG93ZXJQcmVmZXJlbmNlID09IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpI
aWdoUGVyZm9ybWFuY2UpID8gR3JhcGhpY3NDb250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQ
ZXJmb3JtYW5jZSA6IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0Owot
I2Vsc2UKLSAgICBtX3Bvd2VyUHJlZmVyZW5jZVVzZWRGb3JDcmVhdGlvbiA9IEdyYXBoaWNzQ29u
dGV4dEdMUG93ZXJQcmVmZXJlbmNlOjpEZWZhdWx0OwotI2VuZGlmCi0KICAgICBtX2Rpc3BsYXlP
YmogPSBJbml0aWFsaXplRUdMRGlzcGxheShhdHRycyk7CiAgICAgaWYgKG1fZGlzcGxheU9iaiA9
PSBFR0xfTk9fRElTUExBWSkKICAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBzdXBwb3J0c1Bv
d2VyUHJlZmVyZW5jZSA9IGZhbHNlOworI2lmIFBMQVRGT1JNKE1BQykKICAgICBjb25zdCBjaGFy
ICpkaXNwbGF5RXh0ZW5zaW9ucyA9IEVHTF9RdWVyeVN0cmluZyhtX2Rpc3BsYXlPYmosIEVHTF9F
WFRFTlNJT05TKTsKLSAgICBMT0coV2ViR0wsICJFeHRlbnNpb25zOiAlcyIsIGRpc3BsYXlFeHRl
bnNpb25zKTsKKyAgICBtX3N1cHBvcnRzUG93ZXJQcmVmZXJlbmNlID0gc3Ryc3RyKGRpc3BsYXlF
eHRlbnNpb25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKTsKKyAgICBzdXBwb3J0c1Bv
d2VyUHJlZmVyZW5jZSA9IG1fc3VwcG9ydHNQb3dlclByZWZlcmVuY2U7CisjZW5kaWYKKyAgICBp
ZiAoIXN1cHBvcnRzUG93ZXJQcmVmZXJlbmNlICYmIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9PSBH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKSB7CisgICAg
ICAgIGF0dHJzLnBvd2VyUHJlZmVyZW5jZSA9IEdyYXBoaWNzQ29udGV4dEdMUG93ZXJQcmVmZXJl
bmNlOjpEZWZhdWx0OworICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CisgICAg
fQogCiAgICAgRUdMaW50IGNvbmZpZ0F0dHJpYnV0ZXNbXSA9IHsKICAgICAgICAgRUdMX1JFTkRF
UkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULApAQCAtMjkwLDEyICsyMzYsNiBAQCBHcmFw
aGljc0NvbnRleHRHTE9wZW5HTDo6R3JhcGhpY3NDb250ZXh0R0xPcGVuR0woR3JhcGhpY3NDb250
ZXh0R0xBdHRyaWJ1dGVzIGF0dAogICAgIGVnbENvbnRleHRBdHRyaWJ1dGVzLmFwcGVuZChFR0xf
Q09OVEVYVF9CSU5EX0dFTkVSQVRFU19SRVNPVVJDRV9DSFJPTUlVTSk7CiAgICAgZWdsQ29udGV4
dEF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9GQUxTRSk7CiAKLSAgICBpZiAoc3Ryc3RyKGRpc3BsYXlF
eHRlbnNpb25zLCAiRUdMX0FOR0xFX3Bvd2VyX3ByZWZlcmVuY2UiKSkgewotICAgICAgICBlZ2xD
b250ZXh0QXR0cmlidXRlcy5hcHBlbmQoRUdMX1BPV0VSX1BSRUZFUkVOQ0VfQU5HTEUpOwotICAg
ICAgICAvLyBFR0xfTE9XX1BPV0VSX0FOR0xFIGlzIHRoZSBkZWZhdWx0LiBDaGFuZ2UgdG8KLSAg
ICAgICAgLy8gRUdMX0hJR0hfUE9XRVJfQU5HTEUgaWYgZGVzaXJlZC4KLSAgICAgICAgZWdsQ29u
dGV4dEF0dHJpYnV0ZXMuYXBwZW5kKEVHTF9MT1dfUE9XRVJfQU5HTEUpOwotICAgIH0KICAgICBl
Z2xDb250ZXh0QXR0cmlidXRlcy5hcHBlbmQoRUdMX05PTkUpOwogCiAgICAgbV9jb250ZXh0T2Jq
ID0gRUdMX0NyZWF0ZUNvbnRleHQobV9kaXNwbGF5T2JqLCBtX2NvbmZpZ09iaiwgc2hhcmVkQ29u
dGV4dCA/IHN0YXRpY19jYXN0PEVHTENvbnRleHQ+KHNoYXJlZENvbnRleHQtPm1fY29udGV4dE9i
aikgOiBFR0xfTk9fQ09OVEVYVCwgZWdsQ29udGV4dEF0dHJpYnV0ZXMuZGF0YSgpKTsKQEAgLTMz
MiwyMSArMjcyLDYgQEAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OkdyYXBoaWNzQ29udGV4dEdM
T3BlbkdMKEdyYXBoaWNzQ29udGV4dEdMQXR0cmlidXRlcyBhdHQKICAgICAgICAgfQogICAgICAg
ICBleHRlbnNpb25zLmVuc3VyZUVuYWJsZWQoZXh0ZW5zaW9uKTsKICAgICB9Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIC8vIEZJWE1FOiBJdCdzIHVuY2xlYXIgaWYgTUFDQ0FUQUxZU1Qgc2hvdWxk
IHRha2UgdGhlc2Ugc3RlcHMgYXMgd2VsbCwgYnV0IHRoYXQKLSAgICAvLyB3b3VsZCByZXF1aXJl
IHRoZSBQbGF0Zm9ybVNjcmVlbk1hYyBjb2RlIHRvIGJlIGV4cG9zZWQgdG8gQ2F0YWx5c3QgdG9v
LgotICAgIEVHTERldmljZUVYVCBkZXZpY2UgPSBudWxscHRyOwotICAgIEVHTF9RdWVyeURpc3Bs
YXlBdHRyaWJFWFQobV9kaXNwbGF5T2JqLCBFR0xfREVWSUNFX0VYVCwgcmVpbnRlcnByZXRfY2Fz
dDxFR0xBdHRyaWIqPigmZGV2aWNlKSk7Ci0gICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0g
bnVsbHB0cjsKLSAgICBDR0xQaXhlbEZvcm1hdE9iaiBwaXhlbEZvcm1hdCA9IG51bGxwdHI7Ci0g
ICAgRUdMX1F1ZXJ5RGV2aWNlQXR0cmliRVhUKGRldmljZSwgRUdMX0NHTF9DT05URVhUX0FOR0xF
LCByZWludGVycHJldF9jYXN0PEVHTEF0dHJpYio+KCZjZ2xDb250ZXh0KSk7Ci0gICAgRUdMX1F1
ZXJ5RGV2aWNlQXR0cmliRVhUKGRldmljZSwgRUdMX0NHTF9QSVhFTF9GT1JNQVRfQU5HTEUsIHJl
aW50ZXJwcmV0X2Nhc3Q8RUdMQXR0cmliKj4oJnBpeGVsRm9ybWF0KSk7Ci0gICAgYXV0byBncHVJ
RCA9IChob3N0V2luZG93ICYmIGhvc3RXaW5kb3ctPmRpc3BsYXlJRCgpKSA/IGdwdUlERm9yRGlz
cGxheShob3N0V2luZG93LT5kaXNwbGF5SUQoKSkgOiBwcmltYXJ5R1BVSUQoKTsKLSAgICBzZXRH
UFVCeVJlZ2lzdHJ5SUQoY2dsQ29udGV4dCwgcGl4ZWxGb3JtYXQsIGdwdUlEKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGhvc3RXaW5kb3cpOwotI2VuZGlmCi0KICAgICB2YWxpZGF0ZUF0dHJp
YnV0ZXMoKTsKICAgICBhdHRycyA9IGNvbnRleHRBdHRyaWJ1dGVzKCk7IC8vIFRoZXkgbWF5IGhh
dmUgY2hhbmdlZCBkdXJpbmcgdmFsaWRhdGlvbi4KIApAQCAtNTYxLDMwICs0ODYsMjYgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6Y2hlY2tHUFVTdGF0dXMoKQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dEdMT3BlbkdMOjpzZXRDb250ZXh0VmlzaWJpbGl0eShib29sIGlzVmlzaWJsZSkK
IHsKLSAgICBpZiAobV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb24gPT0gR3JhcGhpY3ND
b250ZXh0R0xQb3dlclByZWZlcmVuY2U6OkhpZ2hQZXJmb3JtYW5jZSkgewotICAgICAgICBpZiAo
aXNWaXNpYmxlKQotICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkuYWRkQ29udGV4dFJlcXVpcmluZ0hpZ2hQZXJmb3JtYW5jZSh0aGlzKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkucmVtb3ZlQ29udGV4dFJlcXVpcmluZ0hpZ2hQZXJmb3JtYW5jZSh0
aGlzKTsKLSAgICB9Ci19Ci0KICNpZiBQTEFURk9STShNQUMpCi12b2lkIEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMOjp1cGRhdGVDR0xDb250ZXh0KCkKLXsKLSAgICBpZiAoIW1ha2VDb250ZXh0Q3Vy
cmVudCgpKQorICAgIGlmIChjb250ZXh0QXR0cmlidXRlcygpLnBvd2VyUHJlZmVyZW5jZSAhPSBH
cmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZTo6SGlnaFBlcmZvcm1hbmNlKQogICAgICAg
ICByZXR1cm47Ci0gICAgTE9HKFdlYkdMLCAiRGV0ZWN0ZWQgYSBtdXggc3dpdGNoIG9yIGRpc3Bs
YXkgcmVjb25maWd1cmF0aW9uLiBDYWxsIENHTFVwZGF0ZUNvbnRleHQuICglcCkiLCB0aGlzKTsK
LQotICAgIEVHTERldmljZUVYVCBkZXZpY2UgPSBudWxscHRyOwotICAgIEVHTF9RdWVyeURpc3Bs
YXlBdHRyaWJFWFQobV9kaXNwbGF5T2JqLCBFR0xfREVWSUNFX0VYVCwgcmVpbnRlcnByZXRfY2Fz
dDxFR0xBdHRyaWIqPigmZGV2aWNlKSk7Ci0gICAgQ0dMQ29udGV4dE9iaiBjZ2xDb250ZXh0ID0g
bnVsbHB0cjsKLSAgICBFR0xfUXVlcnlEZXZpY2VBdHRyaWJFWFQoZGV2aWNlLCBFR0xfQ0dMX0NP
TlRFWFRfQU5HTEUsIHJlaW50ZXJwcmV0X2Nhc3Q8RUdMQXR0cmliKj4oJmNnbENvbnRleHQpKTsK
LQotICAgIENHTFVwZGF0ZUNvbnRleHQoY2dsQ29udGV4dCk7Ci0gICAgbV9oYXNTd2l0Y2hlZFRv
SGlnaFBlcmZvcm1hbmNlR1BVID0gdHJ1ZTsKKyAgICBpZiAoaXNWaXNpYmxlKQorICAgICAgICBt
X2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QgPSBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVSZXF1
ZXN0OjphY3F1aXJlKCk7CisgICAgZWxzZQorICAgICAgICBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJl
cXVlc3QgPSB7IH07CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShpc1Zpc2libGUpOworI2VuZGlm
CiB9CisKK3ZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OmRpc3BsYXlXYXNSZWNvbmZpZ3Vy
ZWQoKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAobV9zdXBwb3J0c1Bvd2VyUHJlZmVy
ZW5jZSkKKyAgICAgICAgRUdMX0hhbmRsZUdQVVN3aXRjaEFOR0xFKG1fZGlzcGxheU9iaik7CiAj
ZW5kaWYKKyAgICBkaXNwYXRjaENvbnRleHRDaGFuZ2VkTm90aWZpY2F0aW9uKCk7Cit9CiAKIGJv
b2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6OnJlc2hhcGVEaXNwbGF5QnVmZmVyQmFja2luZygp
CiB7CkBAIC02NTQsNTAgKzU3NSw4IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w6Omlz
R0xFUzJDb21wbGlhbnQoKSBjb25zdAogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpz
aW11bGF0ZUNvbnRleHRDaGFuZ2VkKCkKIHsKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKS51cGRhdGVBbGxDb250ZXh0cygpOwotfQotCi1ib29sIEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMOjphbGxvd09mZmxpbmVSZW5kZXJlcnMoKSBjb25zdAotewot
I2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NL
SU5HKQotICAgIC8vIFdoZW4gV2luZG93U2VydmVyIGFjY2VzcyBpcyBibG9ja2VkIGluIHRoZSBX
ZWJQcm9jZXNzLCB0aGVyZSBpcyBubyB3YXkKLSAgICAvLyBmb3IgT3BlbkdMIHRvIGRlY2lkZSB3
aGljaCBHUFUgaXMgY29ubmVjdGVkIHRvIGEgZGlzcGxheSAob25saW5lL29mZmxpbmUpLgotICAg
IC8vIE9wZW5HTCB3aWxsIHRoZW4gY29uc2lkZXIgYWxsIEdQVXMsIG9yIHJlbmRlcmVycywgYXMg
b2ZmbGluZSwgd2hpY2ggbWVhbnMKLSAgICAvLyBhbGwgb2ZmbGluZSByZW5kZXJlcnMgbmVlZCB0
byBiZSBjb25zaWRlcmVkIHdoZW4gZmluZGluZyBhIHBpeGVsIGZvcm1hdC4KLSAgICAvLyBJbiBX
ZWJLaXQgbGVnYWN5LCB0aGVyZSB3aWxsIHN0aWxsIGJlIGEgV2luZHdTZXJ2ZXIgY29ubmVjdGlv
biwgYW5kCi0gICAgLy8gbV9kaXNwbGF5TWFzayB3aWxsIG5vdCBiZSBzZXQgaW4gdGhpcyBjYXNl
LgotICAgIGlmIChwcmltYXJ5T3BlbkdMRGlzcGxheU1hc2soKSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0jZWxpZiBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICAvLyBGSVhNRTogPHJkYXI6Ly81
MzA2Mjc5ND4gV2UncmUgdmVyeSBpbmNvbnNpc3RlbnQgYWJvdXQgV0VCUFJPQ0VTU19XSU5ET1dT
RVJWRVJfQkxPQ0tJTkcKLSAgICAvLyBhbmQgTUFDL01BQ0NBVEFMWVNUIGFuZCBPUEVOR0wvT1BF
TkdMRVMuCi0gICAgcmV0dXJuIHRydWU7Ci0jZW5kaWYKLSAgICAgICAgCi0jaWYgSEFWRShBUFBM
RV9HUkFQSElDU19DT05UUk9MKQotICAgIGlmIChoYXNMb3dBbmRIaWdoUG93ZXJHUFVzKCkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotI2VuZGlmCi0gICAgCi0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci0jaWYgUExBVEZPUk0oTUFDKQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTDo6c2NyZWVu
RGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKLXsKLSAgICBpZiAoIW1fY29u
dGV4dE9iaikKLSAgICAgICAgcmV0dXJuOwotICAgIGlmICghbV9oYXNTd2l0Y2hlZFRvSGlnaFBl
cmZvcm1hbmNlR1BVKSB7Ci0gICAgICAgIEVHTERldmljZUVYVCBkZXZpY2UgPSBudWxscHRyOwot
ICAgICAgICBFR0xfUXVlcnlEaXNwbGF5QXR0cmliRVhUKG1fZGlzcGxheU9iaiwgRUdMX0RFVklD
RV9FWFQsIHJlaW50ZXJwcmV0X2Nhc3Q8RUdMQXR0cmliKj4oJmRldmljZSkpOwotICAgICAgICBD
R0xDb250ZXh0T2JqIGNnbENvbnRleHQgPSBudWxscHRyOwotICAgICAgICBDR0xQaXhlbEZvcm1h
dE9iaiBwaXhlbEZvcm1hdCA9IG51bGxwdHI7Ci0gICAgICAgIEVHTF9RdWVyeURldmljZUF0dHJp
YkVYVChkZXZpY2UsIEVHTF9DR0xfQ09OVEVYVF9BTkdMRSwgcmVpbnRlcnByZXRfY2FzdDxFR0xB
dHRyaWIqPigmY2dsQ29udGV4dCkpOwotICAgICAgICBFR0xfUXVlcnlEZXZpY2VBdHRyaWJFWFQo
ZGV2aWNlLCBFR0xfQ0dMX1BJWEVMX0ZPUk1BVF9BTkdMRSwgcmVpbnRlcnByZXRfY2FzdDxFR0xB
dHRyaWIqPigmcGl4ZWxGb3JtYXQpKTsKLSAgICAgICAgc2V0R1BVQnlSZWdpc3RyeUlEKGNnbENv
bnRleHQsIHBpeGVsRm9ybWF0LCBncHVJREZvckRpc3BsYXkoZGlzcGxheUlEKSk7Ci0gICAgfQor
ICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLmRpc3Bs
YXlXYXNSZWNvbmZpZ3VyZWQoKTsKIH0KLSNlbmRpZiAvLyAhUExBVEZPUk0oTUFDKQogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMOjpwcmVwYXJlRm9yRGlzcGxheSgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhpY3NDaGVja3NN
YWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNzQ2hl
Y2tzTWFjLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTk5OTBhODU1NjcwZmU5Y2I5YWE4M2NhMWZjMDk4ZTIx
M2M0NWM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0dyYXBoaWNzQ2hlY2tzTWFjLmNwcApAQCAtMCwwICsxLDEyMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJHcmFwaGljc0NoZWNrc01hYy5oIgor
CisjaWYgUExBVEZPUk0oTUFDKQorCisjaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9MKQor
I2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
KyNpZiBIQVZFKEFQUExFX0dSQVBISUNTX0NPTlRST0wpCisKK2VudW0geworICAgIGtBR0NPcGVu
LAorICAgIGtBR0NDbG9zZQorfTsKKworc3RhdGljIGlvX2Nvbm5lY3RfdCBhdHRhY2hUb0FwcGxl
R3JhcGhpY3NDb250cm9sKCkKK3sKKyAgICBtYWNoX3BvcnRfdCBtYXN0ZXJQb3J0ID0gTUFDSF9Q
T1JUX05VTEw7CisKKyAgICBpZiAoSU9NYXN0ZXJQb3J0KE1BQ0hfUE9SVF9OVUxMLCAmbWFzdGVy
UG9ydCkgIT0gS0VSTl9TVUNDRVNTKQorICAgICAgICByZXR1cm4gTUFDSF9QT1JUX05VTEw7CisK
KyAgICBDRkRpY3Rpb25hcnlSZWYgY2xhc3NUb01hdGNoID0gSU9TZXJ2aWNlTWF0Y2hpbmcoIkFw
cGxlR3JhcGhpY3NDb250cm9sIik7CisgICAgaWYgKCFjbGFzc1RvTWF0Y2gpCisgICAgICAgIHJl
dHVybiBNQUNIX1BPUlRfTlVMTDsKKworICAgIGtlcm5fcmV0dXJuX3Qga2VyblJlc3VsdDsKKyAg
ICBpb19pdGVyYXRvcl90IGl0ZXJhdG9yOworICAgIGlmICgoa2VyblJlc3VsdCA9IElPU2Vydmlj
ZUdldE1hdGNoaW5nU2VydmljZXMobWFzdGVyUG9ydCwgY2xhc3NUb01hdGNoLCAmaXRlcmF0b3Ip
KSAhPSBLRVJOX1NVQ0NFU1MpCisgICAgICAgIHJldHVybiBNQUNIX1BPUlRfTlVMTDsKKworICAg
IGlvX3NlcnZpY2VfdCBzZXJ2aWNlT2JqZWN0ID0gSU9JdGVyYXRvck5leHQoaXRlcmF0b3IpOwor
ICAgIElPT2JqZWN0UmVsZWFzZShpdGVyYXRvcik7CisgICAgaWYgKCFzZXJ2aWNlT2JqZWN0KQor
ICAgICAgICByZXR1cm4gTUFDSF9QT1JUX05VTEw7CisKKyAgICBpb19jb25uZWN0X3QgZGF0YVBv
cnQ7CisgICAgSU9PYmplY3RSZXRhaW4oc2VydmljZU9iamVjdCk7CisgICAga2VyblJlc3VsdCA9
IElPU2VydmljZU9wZW4oc2VydmljZU9iamVjdCwgbWFjaF90YXNrX3NlbGYoKSwgMCwgJmRhdGFQ
b3J0KTsKKyAgICBJT09iamVjdFJlbGVhc2Uoc2VydmljZU9iamVjdCk7CisKKyAgICByZXR1cm4g
KGtlcm5SZXN1bHQgPT0gS0VSTl9TVUNDRVNTKSA/IGRhdGFQb3J0IDogTUFDSF9QT1JUX05VTEw7
Cit9CisKK3N0YXRpYyBib29sIGhhc011eENhcGFiaWxpdHkoKQoreworICAgIGlvX2Nvbm5lY3Rf
dCBkYXRhUG9ydCA9IGF0dGFjaFRvQXBwbGVHcmFwaGljc0NvbnRyb2woKTsKKworICAgIGlmIChk
YXRhUG9ydCA9PSBNQUNIX1BPUlRfTlVMTCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
Ym9vbCByZXN1bHQ7CisgICAgaWYgKElPQ29ubmVjdENhbGxTY2FsYXJNZXRob2QoZGF0YVBvcnQs
IGtBR0NPcGVuLCBudWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyKSA9PSBLRVJOX1NVQ0NFU1Mp
IHsKKyAgICAgICAgSU9Db25uZWN0Q2FsbFNjYWxhck1ldGhvZChkYXRhUG9ydCwga0FHQ0Nsb3Nl
LCBudWxscHRyLCAwLCBudWxscHRyLCBudWxscHRyKTsKKyAgICAgICAgcmVzdWx0ID0gdHJ1ZTsK
KyAgICB9IGVsc2UKKyAgICAgICAgcmVzdWx0ID0gZmFsc2U7CisKKyAgICBJT1NlcnZpY2VDbG9z
ZShkYXRhUG9ydCk7CisKKyAgICBpZiAocmVzdWx0KSB7CisgICAgICAgIC8vIFRoaXMgaXMgZGV0
ZWN0aW5nIE1hYyBoYXJkd2FyZSB3aXRoIGFuIEludGVsIGc1NzUgR1BVLCB3aGljaAorICAgICAg
ICAvLyB3ZSBkb24ndCB3YW50IHRvIG1ha2UgYXZhaWxhYmxlIHRvIG11eGluZy4KKyAgICAgICAg
Ly8gQmFzZWQgb24gaW5mb3JtYXRpb24gZnJvbSBBcHBsZSdzIE9wZW5HTCB0ZWFtLCBzdWNoIGRl
dmljZXMKKyAgICAgICAgLy8gaGF2ZSBmb3VyIG9yIGZld2VyIHByb2Nlc3NvcnMuCisgICAgICAg
IC8vIDxyZGFyOi8vcHJvYmxlbS8zMDA2MDM3OD4KKyAgICAgICAgaW50IG5hbWVzWzJdID0geyBD
VExfSFcsIEhXX05DUFUgfTsKKyAgICAgICAgaW50IGNwdUNvdW50OworICAgICAgICBzaXplX3Qg
Y3B1Q291bnRMZW5ndGggPSBzaXplb2YoY3B1Q291bnQpOworICAgICAgICBzeXNjdGwobmFtZXMs
IDIsICZjcHVDb3VudCwgJmNwdUNvdW50TGVuZ3RoLCBudWxscHRyLCAwKTsKKyAgICAgICAgcmVz
dWx0ID0gY3B1Q291bnQgPiA0OworICAgIH0KKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKyNl
bmRpZiAvLyBIQVZFKEFQUExFX0dSQVBISUNTX0NPTlRST0wpCisKK2Jvb2wgaGFzTG93QW5kSGln
aFBvd2VyR1BVcygpCit7CisjaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9MKQorICAgIHN0
YXRpYyBib29sIGNhbk11eCA9IGhhc011eENhcGFiaWxpdHkoKTsKKyAgICByZXR1cm4gY2FuTXV4
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKworfQorCisjZW5kaWYKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0dyYXBoaWNz
Q2hlY2tzTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR3JhcGhp
Y3NDaGVja3NNYWMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hZmQzOTA1NGY5OGVhZjhlNDY0NjYxNThiYTk3Yzdk
MWZlMjJiZDRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0dyYXBoaWNzQ2hlY2tzTWFjLmgKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dFQkNPUkVfRVhQT1JU
IGJvb2wgaGFzTG93QW5kSGlnaFBvd2VyR1BVcygpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVx
dWVzdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1Njb3BlZEhpZ2hQ
ZXJmb3JtYW5jZUdQVVJlcXVlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODM0ZGFjMTY2NzA3OWY5MmEyZmFl
OGQyYTliNWQ3MTI0ODQ5NTNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL1Njb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QuaApAQCAt
MCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJHcmFw
aGljc0NoZWNrc01hYy5oIgorI2luY2x1ZGUgIlN3aXRjaGluZ0dQVUNsaWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qg
eworcHVibGljOgorICAgIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QoKSA9IGRlZmF1
bHQ7CisgICAgU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVzdChTY29wZWRIaWdoUGVyZm9y
bWFuY2VHUFVSZXF1ZXN0JiYgb3RoZXIpCisgICAgICAgIDogbV9yZXF1ZXN0ZWQoc3RkOjpleGNo
YW5nZShvdGhlci5tX3JlcXVlc3RlZCwgZmFsc2UpKQorICAgIHsKKyAgICB9CisgICAgflNjb3Bl
ZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX3JlcXVl
c3RlZCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgU3dpdGNoaW5nR1BVQ2xpZW50Ojpz
aW5nbGV0b25JZkV4aXN0cygpLT5yZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCk7CisgICAgfQor
ICAgIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3QmIG9wZXJhdG9yPShTY29wZWRIaWdo
UGVyZm9ybWFuY2VHUFVSZXF1ZXN0JiYgb3RoZXIpCisgICAgeworICAgICAgICBpZiAobV9yZXF1
ZXN0ZWQpCisgICAgICAgICAgICBTd2l0Y2hpbmdHUFVDbGllbnQ6OnNpbmdsZXRvbklmRXhpc3Rz
KCktPnJlbGVhc2VIaWdoUGVyZm9ybWFuY2VHUFUoKTsKKyAgICAgICAgbV9yZXF1ZXN0ZWQgPSBz
dGQ6OmV4Y2hhbmdlKG90aGVyLm1fcmVxdWVzdGVkLCBmYWxzZSk7CisgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICB9CisgICAgc3RhdGljIFNjb3BlZEhpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Qg
YWNxdWlyZSgpCisgICAgeworICAgICAgICBpZiAoIWhhc0xvd0FuZEhpZ2hQb3dlckdQVXMoKSkK
KyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGF1dG8gY2xpZW50ID0gU3dpdGNoaW5n
R1BVQ2xpZW50OjpzaW5nbGV0b25JZkV4aXN0cygpOworICAgICAgICBpZiAoIWNsaWVudCkKKyAg
ICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIGNsaWVudC0+cmVxdWVzdEhpZ2hQZXJmb3Jt
YW5jZUdQVSgpOworICAgICAgICByZXR1cm4geyBEaWRSZXF1ZXN0IH07CisgICAgfQorcHJpdmF0
ZToKKyAgICBlbnVtIFJlcXVlc3RTdGF0ZSB7IERpZFJlcXVlc3QgfTsKKyAgICBTY29wZWRIaWdo
UGVyZm9ybWFuY2VHUFVSZXF1ZXN0KFJlcXVlc3RTdGF0ZSkKKyAgICAgICAgOiBtX3JlcXVlc3Rl
ZCh0cnVlKQorICAgIHsKKyAgICB9CisgICAgYm9vbCBtX3JlcXVlc3RlZCB7IGZhbHNlIH07Cit9
OworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
U3dpdGNoaW5nR1BVQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvU3dpdGNoaW5nR1BVQ2xpZW50LmgKaW5kZXggNDk5YTI4N2E0NWM5NjhkODMzZGVjZmU1MzMz
MTFkMGNlYjMxNzA3OC4uNDUyMzY3ODFiOGUxMDhlMjg2ZmRlMjE0ZTg1MWEzYTgyYjMwMWM3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1N3aXRjaGlu
Z0dQVUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9T
d2l0Y2hpbmdHUFVDbGllbnQuaApAQCAtMjksMTYgKzI5LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgU3dpdGNoaW5nR1BVQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgU3dpdGNoaW5nR1BVQ2xpZW50KiBzaW5nbGV0b25JZkV4aXN0cygpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIHNldFNpbmdsZXRvbihTd2l0Y2hpbmdHUFVDbGll
bnQmKTsKIAogICAgIHZpcnR1YWwgflN3aXRjaGluZ0dQVUNsaWVudCgpID0gZGVmYXVsdDsKLQor
cHJpdmF0ZToKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgU3dpdGNoaW5nR1BVQ2xpZW50KiBz
aW5nbGV0b25JZkV4aXN0cygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SGlnaFBlcmZvcm1h
bmNlR1BVKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BV
KCkgPSAwOwotICAgIAotcHJpdmF0ZToKKwogICAgIHN0YXRpYyBTd2l0Y2hpbmdHUFVDbGllbnQq
IG1fc2luZ2xldG9uOworICAgIGZyaWVuZCBjbGFzcyBTY29wZWRIaWdoUGVyZm9ybWFuY2VHUFVS
ZXF1ZXN0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAppbmRleCBm
NTJiZGQ2NmZkMGM2N2IxMjVkOGI1MTFlMjljZjkyZmMyZmNmNWUwLi44ZDdiYjM1MGZhYmQwOGZh
ODE5NjhiYTQ5NGNhY2NmYjdjMDlmZjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVu
R0wuaApAQCAtNjksNiArNjksMTAgQEAgY2xhc3MgR0NHTExheWVyOwogfQogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSAiU2NvcGVkSGlnaFBlcmZvcm1hbmNlR1BVUmVxdWVz
dC5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEV4dGVuc2lvbnNHTDsK
ICNpZiBVU0UoQU5HTEUpCkBAIC0yNTYsNyArMjYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgdGV4
U3ViSW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xpbnQgeG9mZnNl
dCwgR0NHTGludCB5b2Zmc2V0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdD
R0xlbnVtIGZvcm1hdCwgR0NHTGVudW0gdHlwZSwgR0NHTFNwYW48Y29uc3QgR0NHTHZvaWQ+IHBp
eGVscykgZmluYWw7CiAgICAgdm9pZCB0ZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdldCwgR0NH
TGludCBsZXZlbCwgR0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50IHlvZmZzZXQsIEdDR0xzaXplaSB3
aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMZW51bSB0eXBlLCBH
Q0dMaW50cHRyIG9mZnNldCkgZmluYWw7CiAgICAgdm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChH
Q0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWwsIEdDR0xlbnVtIGludGVybmFsZm9ybWF0LCBH
Q0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWlnaHQsIEdDR0xpbnQgYm9yZGVyLCBHQ0dMc2l6
ZWkgaW1hZ2VTaXplLCBHQ0dMU3Bhbjxjb25zdCBHQ0dMdm9pZD4gZGF0YSkgZmluYWw7Ci0gICAg
dm9pZCBjb21wcmVzc2VkVGV4SW1hZ2UyRChHQ0dMZW51bSB0YXJnZXQsIEdDR0xpbnQgbGV2ZWws
IEdDR0xlbnVtIGludGVybmFsZm9ybWF0LCBHQ0dMc2l6ZWkgd2lkdGgsIEdDR0xzaXplaSBoZWln
aHQsIEdDR0xpbnQgYm9yZGVyLCBHQ0dMc2l6ZWkgaW1hZ2VTaXplLCBHQ0dMaW50cHRyIG9mZnNl
dCkgZmluYWw7IAorICAgIHZvaWQgY29tcHJlc3NlZFRleEltYWdlMkQoR0NHTGVudW0gdGFyZ2V0
LCBHQ0dMaW50IGxldmVsLCBHQ0dMZW51bSBpbnRlcm5hbGZvcm1hdCwgR0NHTHNpemVpIHdpZHRo
LCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMaW50IGJvcmRlciwgR0NHTHNpemVpIGltYWdlU2l6ZSwg
R0NHTGludHB0ciBvZmZzZXQpIGZpbmFsOwogICAgIHZvaWQgY29tcHJlc3NlZFRleFN1YkltYWdl
MkQoR0NHTGVudW0gdGFyZ2V0LCBHQ0dMaW50IGxldmVsLCBHQ0dMaW50IHhvZmZzZXQsIEdDR0xp
bnQgeW9mZnNldCwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkgaGVpZ2h0LCBHQ0dMZW51bSBm
b3JtYXQsIEdDR0xzaXplaSBpbWFnZVNpemUsIEdDR0xTcGFuPGNvbnN0IEdDR0x2b2lkPiBkYXRh
KSBmaW5hbDsKICAgICB2b2lkIGNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKEdDR0xlbnVtIHRhcmdl
dCwgR0NHTGludCBsZXZlbCwgR0NHTGludCB4b2Zmc2V0LCBHQ0dMaW50IHlvZmZzZXQsIEdDR0xz
aXplaSB3aWR0aCwgR0NHTHNpemVpIGhlaWdodCwgR0NHTGVudW0gZm9ybWF0LCBHQ0dMc2l6ZWkg
aW1hZ2VTaXplLCBHQ0dMaW50cHRyIG9mZnNldCkgZmluYWw7CiAKQEAgLTQ2MSwxNCArNDY1LDEy
IEBAIHB1YmxpYzoKICAgICB2b2lkIHByaW1pdGl2ZVJlc3RhcnRJbmRleChHQ0dMdWludCk7CiAj
ZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBQTEFURk9STShNQUMpCi0gICAgdm9pZCB1
cGRhdGVDR0xDb250ZXh0KCk7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCBkaXNwbGF5
V2FzUmVjb25maWd1cmVkKCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0Q29udGV4dFZpc2liaWxp
dHkoYm9vbCkgZmluYWw7CiAKLSAgICBHcmFwaGljc0NvbnRleHRHTFBvd2VyUHJlZmVyZW5jZSBw
b3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Bv
d2VyUHJlZmVyZW5jZVVzZWRGb3JDcmVhdGlvbjsgfQotCiAgICAgLy8gU3VwcG9ydCBmb3IgYnVm
ZmVyIGNyZWF0aW9uIGFuZCBkZWxldGlvbgogICAgIFBsYXRmb3JtR0xPYmplY3QgY3JlYXRlQnVm
ZmVyKCkgZmluYWw7CiAgICAgUGxhdGZvcm1HTE9iamVjdCBjcmVhdGVGcmFtZWJ1ZmZlcigpIGZp
bmFsOwpAQCAtNDk3LDExICs0OTksNiBAQCBwdWJsaWM6CiAKICAgICB1bnNpZ25lZCB0ZXh0dXJl
U2VlZChHQ0dMdWludCB0ZXh0dXJlKSB7IHJldHVybiBtX3N0YXRlLnRleHR1cmVTZWVkQ291bnQu
Y291bnQodGV4dHVyZSk7IH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICB1c2luZyBQbGF0Zm9y
bURpc3BsYXlJRCA9IHVpbnQzMl90OwotICAgIHZvaWQgc2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3Jt
RGlzcGxheUlEKTsKLSNlbmRpZgotCiAgICAgdm9pZCBwcmVwYXJlRm9yRGlzcGxheSgpIGZpbmFs
OwogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoQVZGT1VOREFUSU9OKQpAQCAtNTI5LDcgKzUy
Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gaW1wbGVtZW50YXRpb24uCiAgICAgdm9pZCB2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOwog
ICAgIHZvaWQgdmFsaWRhdGVBdHRyaWJ1dGVzKCk7Ci0gICAgCisKICAgICB2b2lkIHJlYWRuUGl4
ZWxzSW1wbChHQ0dMaW50IHgsIEdDR0xpbnQgeSwgR0NHTHNpemVpIHdpZHRoLCBHQ0dMc2l6ZWkg
aGVpZ2h0LCBHQ0dMZW51bSBmb3JtYXQsIEdDR0xlbnVtIHR5cGUsIEdDR0xzaXplaSBidWZTaXpl
LCBHQ0dMc2l6ZWkqIGxlbmd0aCwgR0NHTHNpemVpKiBjb2x1bW5zLCBHQ0dMc2l6ZWkqIHJvd3Ms
IEdDR0x2b2lkKiBkYXRhLCBib29sIHJlYWRpbmdUb1BpeGVsQnVmZmVyT2JqZWN0KTsKIAogICAg
IC8vIERpZCB0aGUgbW9zdCByZWNlbnQgZHJhd2luZyBvcGVyYXRpb24gbGVhdmUgdGhlIEdQVSBp
biBhbiBhY2NlcHRhYmxlIHN0YXRlPwpAQCAtNTQ3LDcgKzU0NCw2IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBhdHRhY2hEZXB0aEFuZFN0ZW5jaWxCdWZmZXJJZk5lZWRlZChHQ0dMdWludCBpbnRlcm5h
bERlcHRoU3RlbmNpbEZvcm1hdCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIGJvb2wgYWxsb3dPZmZsaW5lUmVuZGVyZXJzKCkgY29uc3Q7CiAgICAg
Ym9vbCByZXNoYXBlRGlzcGxheUJ1ZmZlckJhY2tpbmcoKTsKICAgICBib29sIGFsbG9jYXRlQW5k
QmluZERpc3BsYXlCdWZmZXJCYWNraW5nKCk7CiAgICAgYm9vbCBiaW5kRGlzcGxheUJ1ZmZlckJh
Y2tpbmcoc3RkOjp1bmlxdWVfcHRyPElPU3VyZmFjZT4gYmFja2luZywgdm9pZCogcGJ1ZmZlcik7
CkBAIC01ODMsNyArNTc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgaXNWYWxpZChmYWxz
ZSkKICAgICAgICAgewogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIFNoYWRlclN5bWJv
bE1hcCYgc3ltYm9sTWFwKGVudW0gQU5HTEVTaGFkZXJTeW1ib2xUeXBlIHN5bWJvbFR5cGUpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChzeW1ib2xUeXBlID09IFNIQURFUl9TWU1CT0xf
VFlQRV9BVFRSSUJVVEUgfHwgc3ltYm9sVHlwZSA9PSBTSEFERVJfU1lNQk9MX1RZUEVfVU5JRk9S
TSB8fCBzeW1ib2xUeXBlID09IFNIQURFUl9TWU1CT0xfVFlQRV9WQVJZSU5HKTsKQEAgLTY0OCw3
ICs2NDQsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zR0xPcGVu
R0w+IG1fZXh0ZW5zaW9uczsKICNlbmRpZgogCi0gICAgR3JhcGhpY3NDb250ZXh0R0xQb3dlclBy
ZWZlcmVuY2UgbV9wb3dlclByZWZlcmVuY2VVc2VkRm9yQ3JlYXRpb24geyBHcmFwaGljc0NvbnRl
eHRHTFBvd2VyUHJlZmVyZW5jZTo6RGVmYXVsdCB9OwogICAgIFZlY3RvcjxWZWN0b3I8ZmxvYXQ+
PiBtX3ZlcnRleEFycmF5OwogCiAjaWYgIVVTRShBTkdMRSkKQEAgLTY4MCw3ICs2NzUsNyBAQCBw
cml2YXRlOgogCiAgICAgICAgIHVzaW5nIEJvdW5kVGV4dHVyZU1hcCA9IEhhc2hNYXA8R0NHTGVu
dW0sCiAgICAgICAgICAgICBzdGQ6OnBhaXI8R0NHTHVpbnQsIEdDR0xlbnVtPiwKLSAgICAgICAg
ICAgIFdURjo6SW50SGFzaDxHQ0dMZW51bT4sIAorICAgICAgICAgICAgV1RGOjpJbnRIYXNoPEdD
R0xlbnVtPiwKICAgICAgICAgICAgIFdURjo6VW5zaWduZWRXaXRoWmVyb0tleUhhc2hUcmFpdHM8
R0NHTHVpbnQ+LAogICAgICAgICAgICAgV1RGOjpQYWlySGFzaFRyYWl0czxXVEY6OlVuc2lnbmVk
V2l0aFplcm9LZXlIYXNoVHJhaXRzPEdDR0x1aW50PiwgV1RGOjpVbnNpZ25lZFdpdGhaZXJvS2V5
SGFzaFRyYWl0czxHQ0dMdWludD4+CiAgICAgICAgID47CkBAIC03NjEsOCArNzU2LDEwIEBAIHBy
aXZhdGU6CiAgICAgLy8gV2hlbiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPT0gdHJ1ZSwgdGhpcyBp
cyBibGl0dGVkIHRvIGR1cmluZyBkaXNwbGF5IHByZXBhcmUuCiAgICAgc3RkOjp1bmlxdWVfcHRy
PElPU3VyZmFjZT4gbV9kaXNwbGF5QnVmZmVyQmFja2luZzsKICAgICB2b2lkKiBtX2Rpc3BsYXlC
dWZmZXJQYnVmZmVyIHsgbnVsbHB0ciB9OwotCi0gICAgYm9vbCBtX2hhc1N3aXRjaGVkVG9IaWdo
UGVyZm9ybWFuY2VHUFUgeyBmYWxzZSB9OworI2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGJvb2wgbV9zdXBwb3J0c1Bvd2VyUHJlZmVyZW5jZSB7IGZhbHNlIH07CisgICAgU2NvcGVkSGln
aFBlcmZvcm1hbmNlR1BVUmVxdWVzdCBtX2hpZ2hQZXJmb3JtYW5jZUdQVVJlcXVlc3Q7CiAjZW5k
aWYKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgc3RkOjp1bmlx
dWVfcHRyPEdyYXBoaWNzQ29udGV4dEdMQ1Y+IG1fY3Y7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCmluZGV4IDQxYWI1MGNiZWYyZWE2NDI5M2JhMGM5
OWJlOGIwNWZjOTcwNzdkZTYuLjA3ZWJhMDQyNmI2Y2NjNGEyZDE0Yjg3ZTA4Yjc3NjNmNzUzMGIy
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIuY3Bw
CkBAIC0zMSw5MSArMzEsOCBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogCi0jaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9M
KQotI2luY2x1ZGUgPHN5cy9zeXNjdGwuaD4KLSNlbmRpZgotCi0jaWYgUExBVEZPUk0oTUFDKQot
I2luY2x1ZGUgIlN3aXRjaGluZ0dQVUNsaWVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotI2lmIEhBVkUoQVBQTEVfR1JBUEhJQ1NfQ09OVFJPTCkKLQotZW51bSB7Ci0gICAg
a0FHQ09wZW4sCi0gICAga0FHQ0Nsb3NlCi19OwotCi1zdGF0aWMgaW9fY29ubmVjdF90IGF0dGFj
aFRvQXBwbGVHcmFwaGljc0NvbnRyb2woKQotewotICAgIG1hY2hfcG9ydF90IG1hc3RlclBvcnQg
PSBNQUNIX1BPUlRfTlVMTDsKLSAgICAKLSAgICBpZiAoSU9NYXN0ZXJQb3J0KE1BQ0hfUE9SVF9O
VUxMLCAmbWFzdGVyUG9ydCkgIT0gS0VSTl9TVUNDRVNTKQotICAgICAgICByZXR1cm4gTUFDSF9Q
T1JUX05VTEw7Ci0gICAgCi0gICAgQ0ZEaWN0aW9uYXJ5UmVmIGNsYXNzVG9NYXRjaCA9IElPU2Vy
dmljZU1hdGNoaW5nKCJBcHBsZUdyYXBoaWNzQ29udHJvbCIpOwotICAgIGlmICghY2xhc3NUb01h
dGNoKQotICAgICAgICByZXR1cm4gTUFDSF9QT1JUX05VTEw7Ci0gICAgCi0gICAga2Vybl9yZXR1
cm5fdCBrZXJuUmVzdWx0OwotICAgIGlvX2l0ZXJhdG9yX3QgaXRlcmF0b3I7Ci0gICAgaWYgKChr
ZXJuUmVzdWx0ID0gSU9TZXJ2aWNlR2V0TWF0Y2hpbmdTZXJ2aWNlcyhtYXN0ZXJQb3J0LCBjbGFz
c1RvTWF0Y2gsICZpdGVyYXRvcikpICE9IEtFUk5fU1VDQ0VTUykKLSAgICAgICAgcmV0dXJuIE1B
Q0hfUE9SVF9OVUxMOwotICAgIAotICAgIGlvX3NlcnZpY2VfdCBzZXJ2aWNlT2JqZWN0ID0gSU9J
dGVyYXRvck5leHQoaXRlcmF0b3IpOwotICAgIElPT2JqZWN0UmVsZWFzZShpdGVyYXRvcik7Ci0g
ICAgaWYgKCFzZXJ2aWNlT2JqZWN0KQotICAgICAgICByZXR1cm4gTUFDSF9QT1JUX05VTEw7Ci0g
ICAgCi0gICAgaW9fY29ubmVjdF90IGRhdGFQb3J0OwotICAgIElPT2JqZWN0UmV0YWluKHNlcnZp
Y2VPYmplY3QpOwotICAgIGtlcm5SZXN1bHQgPSBJT1NlcnZpY2VPcGVuKHNlcnZpY2VPYmplY3Qs
IG1hY2hfdGFza19zZWxmKCksIDAsICZkYXRhUG9ydCk7Ci0gICAgSU9PYmplY3RSZWxlYXNlKHNl
cnZpY2VPYmplY3QpOwotICAgIAotICAgIHJldHVybiAoa2VyblJlc3VsdCA9PSBLRVJOX1NVQ0NF
U1MpID8gZGF0YVBvcnQgOiBNQUNIX1BPUlRfTlVMTDsKLX0KLQotc3RhdGljIGJvb2wgaGFzTXV4
Q2FwYWJpbGl0eSgpCi17Ci0gICAgaW9fY29ubmVjdF90IGRhdGFQb3J0ID0gYXR0YWNoVG9BcHBs
ZUdyYXBoaWNzQ29udHJvbCgpOwotICAgIAotICAgIGlmIChkYXRhUG9ydCA9PSBNQUNIX1BPUlRf
TlVMTCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIGJvb2wgcmVzdWx0OwotICAg
IGlmIChJT0Nvbm5lY3RDYWxsU2NhbGFyTWV0aG9kKGRhdGFQb3J0LCBrQUdDT3BlbiwgbnVsbHB0
ciwgMCwgbnVsbHB0ciwgbnVsbHB0cikgPT0gS0VSTl9TVUNDRVNTKSB7Ci0gICAgICAgIElPQ29u
bmVjdENhbGxTY2FsYXJNZXRob2QoZGF0YVBvcnQsIGtBR0NDbG9zZSwgbnVsbHB0ciwgMCwgbnVs
bHB0ciwgbnVsbHB0cik7Ci0gICAgICAgIHJlc3VsdCA9IHRydWU7Ci0gICAgfSBlbHNlCi0gICAg
ICAgIHJlc3VsdCA9IGZhbHNlOwotICAgIAotICAgIElPU2VydmljZUNsb3NlKGRhdGFQb3J0KTsK
LSAgICAKLSAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIC8vIFRoaXMgaXMgZGV0ZWN0aW5nIE1h
YyBoYXJkd2FyZSB3aXRoIGFuIEludGVsIGc1NzUgR1BVLCB3aGljaAotICAgICAgICAvLyB3ZSBk
b24ndCB3YW50IHRvIG1ha2UgYXZhaWxhYmxlIHRvIG11eGluZy4KLSAgICAgICAgLy8gQmFzZWQg
b24gaW5mb3JtYXRpb24gZnJvbSBBcHBsZSdzIE9wZW5HTCB0ZWFtLCBzdWNoIGRldmljZXMKLSAg
ICAgICAgLy8gaGF2ZSBmb3VyIG9yIGZld2VyIHByb2Nlc3NvcnMuCi0gICAgICAgIC8vIDxyZGFy
Oi8vcHJvYmxlbS8zMDA2MDM3OD4KLSAgICAgICAgaW50IG5hbWVzWzJdID0geyBDVExfSFcsIEhX
X05DUFUgfTsKLSAgICAgICAgaW50IGNwdUNvdW50OwotICAgICAgICBzaXplX3QgY3B1Q291bnRM
ZW5ndGggPSBzaXplb2YoY3B1Q291bnQpOwotICAgICAgICBzeXNjdGwobmFtZXMsIDIsICZjcHVD
b3VudCwgJmNwdUNvdW50TGVuZ3RoLCBudWxscHRyLCAwKTsKLSAgICAgICAgcmVzdWx0ID0gY3B1
Q291bnQgPiA0OwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi1ib29sIGhh
c0xvd0FuZEhpZ2hQb3dlckdQVXMoKQotewotICAgIHN0YXRpYyBib29sIGNhbk11eCA9IGhhc011
eENhcGFiaWxpdHkoKTsKLSAgICByZXR1cm4gY2FuTXV4OwotfQotI2VuZGlmIC8vIEhBVkUoQVBQ
TEVfR1JBUEhJQ1NfQ09OVFJPTCkKLQogR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyJiBH
cmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKQogewogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI+IHNfbWFu
YWdlcjsKQEAgLTEyNywzMyArNDQsMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1h
bmFnZXI6OmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoQ0dEaXJlY3REaXNwbGF5SUQsIEMKIHsKICAg
ICBMT0coV2ViR0wsICJHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OmRpc3BsYXlXYXNS
ZWNvbmZpZ3VyZWQiKTsKICAgICBpZiAoZmxhZ3MgJiBrQ0dEaXNwbGF5U2V0TW9kZUZsYWcpCi0g
ICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnVw
ZGF0ZUFsbENvbnRleHRzKCk7CisgICAgICAgIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpLmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKIH0KICNlbmRpZgog
Ci12b2lkIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6dXBkYXRlQWxsQ29udGV4dHMo
KQotewotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRleHQgOiBt
X2NvbnRleHRzKSB7Ci0gICAgICAgIGNvbnRleHQtPnVwZGF0ZUNHTENvbnRleHQoKTsKLSAgICAg
ICAgY29udGV4dC0+ZGlzcGF0Y2hDb250ZXh0Q2hhbmdlZE5vdGlmaWNhdGlvbigpOwotICAgIH0K
LSNlbmRpZgotfQotCi0jaWYgUExBVEZPUk0oTUFDKQotdm9pZCBHcmFwaGljc0NvbnRleHRHTE9w
ZW5HTE1hbmFnZXI6OnNjcmVlbkRpZENoYW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQs
IGNvbnN0IEhvc3RXaW5kb3cqIHdpbmRvdykKKyNpZiBQTEFURk9STShDT0NPQSkKK3ZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNwbGF5V2FzUmVjb25maWd1cmVkKCkKIHsK
LSAgICBmb3IgKGNvbnN0IGF1dG8mIGNvbnRleHRBbmRXaW5kb3cgOiBtX2NvbnRleHRXaW5kb3dN
YXApIHsKLSAgICAgICAgaWYgKGNvbnRleHRBbmRXaW5kb3cudmFsdWUgPT0gd2luZG93KSB7Ci0g
ICAgICAgICAgICBjb250ZXh0QW5kV2luZG93LmtleS0+c2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJ
RCk7Ci0gICAgICAgICAgICBMT0coV2ViR0wsICJDaGFuZ2luZyBjb250ZXh0ICglcCkgdG8gZGlz
cGxheSAoJWQpLiIsIGNvbnRleHRBbmRXaW5kb3cua2V5LCBkaXNwbGF5SUQpOwotICAgICAgICB9
Ci0gICAgfQorICAgIGZvciAoY29uc3QgYXV0byYgY29udGV4dCA6IG1fY29udGV4dHMpCisgICAg
ICAgIGNvbnRleHQtPmRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKIH0KICNlbmRpZgogCi12b2lk
IEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6YWRkQ29udGV4dChHcmFwaGljc0NvbnRl
eHRHTE9wZW5HTCogY29udGV4dCwgSG9zdFdpbmRvdyogd2luZG93KQordm9pZCBHcmFwaGljc0Nv
bnRleHRHTE9wZW5HTE1hbmFnZXI6OmFkZENvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wq
IGNvbnRleHQpCiB7CiAgICAgQVNTRVJUKGNvbnRleHQpOwogICAgIGlmICghY29udGV4dCkKQEAg
LTE2Niw3ICs2OSw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRD
b250ZXh0KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0CiAKICAgICBBU1NFUlQoIW1f
Y29udGV4dHMuY29udGFpbnMoY29udGV4dCkpOwogICAgIG1fY29udGV4dHMuYXBwZW5kKGNvbnRl
eHQpOwotICAgIG1fY29udGV4dFdpbmRvd01hcC5zZXQoY29udGV4dCwgd2luZG93KTsKIH0KIAog
dm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlbW92ZUNvbnRleHQoR3JhcGhp
Y3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQpCkBAIC0xNzQsOTcgKzc2LDEyIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZW1vdmVDb250ZXh0KEdyYXBoaWNzQ29udGV4
dEdMT3BlbkdMKiBjb250CiAgICAgaWYgKCFtX2NvbnRleHRzLmNvbnRhaW5zKGNvbnRleHQpKQog
ICAgICAgICByZXR1cm47CiAgICAgbV9jb250ZXh0cy5yZW1vdmVGaXJzdChjb250ZXh0KTsKLSAg
ICBtX2NvbnRleHRXaW5kb3dNYXAucmVtb3ZlKGNvbnRleHQpOwotICAgIHJlbW92ZUNvbnRleHRS
ZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoY29udGV4dCk7Ci0gICAgCiAjaWYgUExBVEZPUk0oTUFD
KSAmJiAhRU5BQkxFKFdFQlBST0NFU1NfV0lORE9XU0VSVkVSX0JMT0NLSU5HKQogICAgIGlmICgh
bV9jb250ZXh0cy5zaXplKCkpCiAgICAgICAgIENHRGlzcGxheVJlbW92ZVJlY29uZmlndXJhdGlv
bkNhbGxiYWNrKGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQsIG51bGxwdHIpOwogI2VuZGlmCiB9CiAK
LUhvc3RXaW5kb3cqIEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlcjo6aG9zdFdpbmRvd0Zv
ckNvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQpIGNvbnN0Ci17Ci0gICAg
QVNTRVJUKG1fY29udGV4dFdpbmRvd01hcC5jb250YWlucyhjb250ZXh0KSk7Ci0gICAgcmV0dXJu
IG1fY29udGV4dFdpbmRvd01hcC5nZXQoY29udGV4dCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyOjphZGRDb250ZXh0UmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlKEdy
YXBoaWNzQ29udGV4dEdMT3BlbkdMKiBjb250ZXh0KQotewotICAgIEFTU0VSVChjb250ZXh0KTsK
LSAgICBpZiAoIWNvbnRleHQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBBU1NFUlQobV9j
b250ZXh0cy5jb250YWlucyhjb250ZXh0KSk7Ci0gICAgQVNTRVJUKCFtX2NvbnRleHRzUmVxdWly
aW5nSGlnaFBlcmZvcm1hbmNlLmNvbnRhaW5zKGNvbnRleHQpKTsKLSAgICAKLSAgICBMT0coV2Vi
R0wsICJUaGlzIGNvbnRleHQgKCVwKSByZXF1aXJlcyB0aGUgaGlnaC1wZXJmb3JtYW5jZSBHUFUu
IiwgY29udGV4dCk7Ci0gICAgbV9jb250ZXh0c1JlcXVpcmluZ0hpZ2hQZXJmb3JtYW5jZS5hZGQo
Y29udGV4dCk7Ci0gICAgCi0gICAgdXBkYXRlSGlnaFBlcmZvcm1hbmNlU3RhdGUoKTsKLX0KLQot
dm9pZCBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXI6OnJlbW92ZUNvbnRleHRSZXF1aXJp
bmdIaWdoUGVyZm9ybWFuY2UoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqIGNvbnRleHQpCi17Ci0g
ICAgaWYgKCFjb250ZXh0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoIW1fY29udGV4dHNS
ZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UuY29udGFpbnMoY29udGV4dCkpCi0gICAgICAgIHJldHVy
bjsKLSAgICAKLSAgICBMT0coV2ViR0wsICJUaGlzIGNvbnRleHQgKCVwKSBubyBsb25nZXIgcmVx
dWlyZXMgdGhlIGhpZ2gtcGVyZm9ybWFuY2UgR1BVLiIsIGNvbnRleHQpOwotICAgIG1fY29udGV4
dHNSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UucmVtb3ZlKGNvbnRleHQpOwotICAgIAotICAgIHVw
ZGF0ZUhpZ2hQZXJmb3JtYW5jZVN0YXRlKCk7Ci19Ci0KLXZvaWQgR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0xNYW5hZ2VyOjp1cGRhdGVIaWdoUGVyZm9ybWFuY2VTdGF0ZSgpCi17Ci0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIGlmICghaGFzTG93QW5kSGlnaFBvd2VyR1BVcygpKQotICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgaWYgKG1fY29udGV4dHNSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2Uuc2l6
ZSgpKSB7Ci0gICAgICAgIAotICAgICAgICBpZiAobV9kaXNhYmxlSGlnaFBlcmZvcm1hbmNlR1BV
VGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICAgICAgTE9HKFdlYkdMLCAiQ2FuY2VsIHBlbmRp
bmcgdGltZXIgZm9yIHR1cm5pbmcgb2ZmIGhpZ2gtcGVyZm9ybWFuY2UgR1BVLiIpOwotICAgICAg
ICAgICAgbV9kaXNhYmxlSGlnaFBlcmZvcm1hbmNlR1BVVGltZXIuc3RvcCgpOwotICAgICAgICB9
Ci0KLSAgICAgICAgaWYgKCFtX3JlcXVlc3RpbmdIaWdoUGVyZm9ybWFuY2UpIHsKLSAgICAgICAg
ICAgIExPRyhXZWJHTCwgIlJlcXVlc3QgdGhlIGhpZ2gtcGVyZm9ybWFuY2UgR1BVLiIpOwotICAg
ICAgICAgICAgbV9yZXF1ZXN0aW5nSGlnaFBlcmZvcm1hbmNlID0gdHJ1ZTsKLSAgICAgICAgICAg
IGlmIChhdXRvKiBzaW5nbGV0b24gPSBTd2l0Y2hpbmdHUFVDbGllbnQ6OnNpbmdsZXRvbklmRXhp
c3RzKCkpCi0gICAgICAgICAgICAgICAgc2luZ2xldG9uLT5yZXF1ZXN0SGlnaFBlcmZvcm1hbmNl
R1BVKCk7Ci0gICAgICAgIH0KLQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIERvbid0IGltbWVk
aWF0ZWx5IHR1cm4gb2ZmIHRoZSBoaWdoLXBlcmZvcm1hbmNlIEdQVS4gVGhlIHVzZXIgbWlnaHQg
YmUKLSAgICAgICAgLy8gc3dhcHBpbmcgYmFjayBhbmQgZm9ydGggYmV0d2VlbiB0YWJzIG9yIHdp
bmRvd3MsIGFuZCB3ZSBkb24ndCB3YW50IHRvIGNhdXNlCi0gICAgICAgIC8vIGNodXJuIGlmIHdl
IGNhbiBhdm9pZCBpdC4KLSAgICAgICAgaWYgKCFtX2Rpc2FibGVIaWdoUGVyZm9ybWFuY2VHUFVU
aW1lci5pc0FjdGl2ZSgpKSB7Ci0gICAgICAgICAgICBMT0coV2ViR0wsICJTZXQgYSB0aW1lciB0
byByZWxlYXNlIHRoZSBoaWdoLXBlcmZvcm1hbmNlIEdQVS4iKTsKLSAgICAgICAgICAgIC8vIEZJ
WE1FOiBFeHBvc2UgdGhpcyB2YWx1ZSBhcyBhIFNldHRpbmcsIHdoaWNoIHdvdWxkIHJlcXVpcmUg
dGhpcyBjbGFzcwotICAgICAgICAgICAgLy8gdG8gcmVmZXJlbmNlIGEgZnJhbWUsIHBhZ2Ugb3Ig
ZG9jdW1lbnQuCi0gICAgICAgICAgICBzdGF0aWMgY29uc3QgU2Vjb25kcyB0aW1lVG9LZWVwSGln
aFBlcmZvcm1hbmNlR1BVQWxpdmUgeyAxMF9zIH07Ci0gICAgICAgICAgICBtX2Rpc2FibGVIaWdo
UGVyZm9ybWFuY2VHUFVUaW1lci5zdGFydE9uZVNob3QodGltZVRvS2VlcEhpZ2hQZXJmb3JtYW5j
ZUdQVUFsaXZlKTsKLSAgICAgICAgfQotICAgIH0KLSNlbmRpZgotfQotCi12b2lkIEdyYXBoaWNz
Q29udGV4dEdMT3BlbkdMTWFuYWdlcjo6ZGlzYWJsZUhpZ2hQZXJmb3JtYW5jZUdQVVRpbWVyRmly
ZWQoKQotewotICAgIGlmIChtX2NvbnRleHRzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlLnNpemUo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9yZXF1ZXN0aW5nSGlnaFBlcmZvcm1hbmNlID0g
ZmFsc2U7Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChhdXRvKiBzaW5nbGV0b24gPSBTd2l0
Y2hpbmdHUFVDbGllbnQ6OnNpbmdsZXRvbklmRXhpc3RzKCkpCi0gICAgICAgIHNpbmdsZXRvbi0+
cmVsZWFzZUhpZ2hQZXJmb3JtYW5jZUdQVSgpOwotI2VuZGlmCi19Ci0KIHZvaWQgR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpyZWN5Y2xlQ29udGV4dElmTmVjZXNzYXJ5KCkKIHsKICAg
ICBpZiAoaGFzVG9vTWFueUNvbnRleHRzKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHRHTE9wZW5HTE1hbmFnZXIuaAppbmRleCAzYWY4YTA1MmFlOGUyYTE1ZDVjMDUxNzg0ZmIwODU0
NWVlOWExZDY0Li44M2Y3MGVhMjJjOTIxMTFiMThjM2M0ZDRiNjE5OTQyNzQyNDA3NmUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0R0xPcGVuR0xNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oCkBAIC0yNSw4ICsy
NSw2IEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKICNpZiBQTEFURk9STShN
QUMpCkBAIC0zOCw1MiArMzYsMjkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgdW5zaWdu
ZWQgTWF4Q29udGV4dHMgPSAxNjsKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0R0xPcGVuR0w7Ci1j
bGFzcyBIb3N0V2luZG93OwotCi11c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90Owot
Ci0jaWYgSEFWRShBUFBMRV9HUkFQSElDU19DT05UUk9MKQotV0VCQ09SRV9FWFBPUlQgYm9vbCBo
YXNMb3dBbmRIaWdoUG93ZXJHUFVzKCk7Ci0jZW5kaWYKIAogY2xhc3MgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyIHsKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8R3JhcGhpY3NDb250
ZXh0R0xPcGVuR0xNYW5hZ2VyPjsKIHB1YmxpYzoKICAgICBzdGF0aWMgR3JhcGhpY3NDb250ZXh0
R0xPcGVuR0xNYW5hZ2VyJiBzaGFyZWRNYW5hZ2VyKCk7CiAgICAgCi0gICAgdm9pZCBhZGRDb250
ZXh0KEdyYXBoaWNzQ29udGV4dEdMT3BlbkdMKiwgSG9zdFdpbmRvdyopOworICAgIHZvaWQgYWRk
Q29udGV4dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCopOwogICAgIHZvaWQgcmVtb3ZlQ29udGV4
dChHcmFwaGljc0NvbnRleHRHTE9wZW5HTCopOwotCi0gICAgSG9zdFdpbmRvdyogaG9zdFdpbmRv
d0ZvckNvbnRleHQoR3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKSBjb25zdDsKLSAgICAKLSAgICB2
b2lkIGFkZENvbnRleHRSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoR3JhcGhpY3NDb250ZXh0R0xP
cGVuR0wqKTsKLSAgICB2b2lkIHJlbW92ZUNvbnRleHRSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2Uo
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqKTsKICAgICAKICAgICB2b2lkIHJlY3ljbGVDb250ZXh0
SWZOZWNlc3NhcnkoKTsKICAgICBib29sIGhhc1Rvb01hbnlDb250ZXh0cygpIGNvbnN0IHsgcmV0
dXJuIG1fY29udGV4dHMuc2l6ZSgpID49IE1heENvbnRleHRzOyB9CiAgICAgCi0gICAgdm9pZCB1
cGRhdGVBbGxDb250ZXh0cygpOwotCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2NyZWVu
RGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBjb25zdCBIb3N0V2luZG93Kik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGxheVdhc1JlY29uZmlndXJlZChDR0RpcmVjdERp
c3BsYXlJRCwgQ0dEaXNwbGF5Q2hhbmdlU3VtbWFyeUZsYWdzLCB2b2lkKik7CiAjZW5kaWYKKyNp
ZiBQTEFURk9STShDT0NPQSkKKyAgICB2b2lkIGRpc3BsYXlXYXNSZWNvbmZpZ3VyZWQoKTsKKyNl
bmRpZgogICAgIAogcHJpdmF0ZToKLSAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIo
KQotICAgICAgICA6IG1fZGlzYWJsZUhpZ2hQZXJmb3JtYW5jZUdQVVRpbWVyKCp0aGlzLCAmR3Jh
cGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyOjpkaXNhYmxlSGlnaFBlcmZvcm1hbmNlR1BVVGlt
ZXJGaXJlZCkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCB1cGRhdGVIaWdoUGVyZm9ybWFuY2VT
dGF0ZSgpOwotICAgIHZvaWQgZGlzYWJsZUhpZ2hQZXJmb3JtYW5jZUdQVVRpbWVyRmlyZWQoKTsK
KyAgICBHcmFwaGljc0NvbnRleHRHTE9wZW5HTE1hbmFnZXIoKSA9IGRlZmF1bHQ7CiAKICAgICBW
ZWN0b3I8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqPiBtX2NvbnRleHRzOwotICAgIEhhc2hNYXA8
R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqLCBIb3N0V2luZG93Kj4gbV9jb250ZXh0V2luZG93TWFw
OwotICAgIEhhc2hTZXQ8R3JhcGhpY3NDb250ZXh0R0xPcGVuR0wqPiBtX2NvbnRleHRzUmVxdWly
aW5nSGlnaFBlcmZvcm1hbmNlOwotICAgIAotICAgIFRpbWVyIG1fZGlzYWJsZUhpZ2hQZXJmb3Jt
YW5jZUdQVVRpbWVyOwotICAgIGJvb2wgbV9yZXF1ZXN0aW5nSGlnaFBlcmZvcm1hbmNlIHsgZmFs
c2UgfTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBmZTcy
MGU5MzVlZTlmMzJhY2M3ZDhkOGVjYjVmNTMxYWNiMWQ5ZjIxLi4xZjk1MWI3ZTk0ZWY3YWU0NDA4
ZjQ1YjFiYjE1NmEwZDM1N2E0YWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CkBAIC0zMjAsNyArMzIwLDcgQEAKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dEdMT3BlbkdMTWFuYWdlci5oIgorI2luY2x1ZGUgIkdyYXBoaWNz
Q2hlY2tzTWFjLmgiCiAjaW5jbHVkZSAiTlNTY3JvbGxlckltcERldGFpbHMuaCIKICNpbmNsdWRl
ICJTY3JvbGxiYXJUaGVtZU1hYy5oIgogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlci5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL0hpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIuaAppbmRleCA1NTU2Y2Jk
NDRmMGY1NDdjZDY1ZDNkZTQxZTUyMDY1Zjg5M2QzYWFlLi5hYzYyMTkzYWNmZDVjMmI2NDJhNTc1
YWYzNDdmNWU1MmUwMmZlNjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9IaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
ZiBQTEFURk9STShNQUMpCiAKICNpbmNsdWRlIDxPcGVuR0wvQ0dMVHlwZXMuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIApAQCAtNDQsMTMgKzQ1LDEzIEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZVByb2Nlc3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoV2ViUHJvY2Vzc1Byb3h5
Kik7CiAKIHByaXZhdGU6Ci0gICAgSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlcigpID0gZGVmYXVs
dDsKKyAgICBIaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyKCk7CiAgICAgfkhpZ2hQZXJmb3JtYW5j
ZUdQVU1hbmFnZXIoKTsKLQogICAgIHZvaWQgdXBkYXRlU3RhdGUoKTsKIAogICAgIEhhc2hTZXQ8
V2ViUHJvY2Vzc1Byb3h5Kj4gbV9wcm9jZXNzZXNSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2U7CiAg
ICAgQ0dMUGl4ZWxGb3JtYXRPYmogbV9waXhlbEZvcm1hdE9iaiB7IG51bGxwdHIgfTsKKyAgICBX
ZWJDb3JlOjpUaW1lciBtX3VwZGF0ZVN0YXRlVGltZXI7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9IaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyLm1t
CmluZGV4IGE5NmZjM2QxMTM3OThlNzlhZmMwZmRiNjI2NWZkZGFmZDAzZDBhZTAuLjU5ZGZmOGIy
M2M4MGMwMjY1YmVlNTE5Zjg0NjA3Mzg4NGY2MTVjOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9IaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9IaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyLm1tCkBAIC0y
OSw3ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oTUFDKQogCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgot
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0R0xPcGVuR0xNYW5hZ2VyLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NoZWNrc01hYy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvT3Bl
bkdMU29mdExpbmtDb2NvYS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ0LDYgKzQ0LDEz
IEBAIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXImIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIHNoYXJlZE1hbmFnZXI7CiB9CiAKK0hpZ2hQZXJmb3Jt
YW5jZUdQVU1hbmFnZXI6OkhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXIoKQorICAgIDogbV91cGRh
dGVTdGF0ZVRpbWVyKCp0aGlzLCAmSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlcjo6dXBkYXRlU3Rh
dGUpCit7Cit9CisKK0hpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6On5IaWdoUGVyZm9ybWFuY2VH
UFVNYW5hZ2VyKCkgPSBkZWZhdWx0OworCiB2b2lkIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6
OmFkZFByb2Nlc3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoV2ViUHJvY2Vzc1Byb3h5KiBwcm9j
ZXNzKQogewogICAgIGlmICghV2ViQ29yZTo6aGFzTG93QW5kSGlnaFBvd2VyR1BVcygpKQpAQCAt
NjUsNyArNzIsOCBAQCB2b2lkIEhpZ2hQZXJmb3JtYW5jZUdQVU1hbmFnZXI6OnJlbW92ZVByb2Nl
c3NSZXF1aXJpbmdIaWdoUGVyZm9ybWFuY2UoV2ViUHJvY2VzcwogCiAgICAgaWYgKG1fcHJvY2Vz
c2VzUmVxdWlyaW5nSGlnaFBlcmZvcm1hbmNlLnJlbW92ZShwcm9jZXNzKSkgewogICAgICAgICBM
T0coV2ViR0wsICJIaWdoUGVyZm9ybWFuY2VHUFVNYW5hZ2VyOjpyZW1vdmVQcm9jZXNzUmVxdWly
aW5nSGlnaFBlcmZvcm1hbmNlKCkgLSByZW1vdmluZyBwcm9jZXNzICVwIiwgcHJvY2Vzcyk7Ci0g
ICAgICAgIHVwZGF0ZVN0YXRlKCk7CisgICAgICAgIHN0YXRpYyBjb25zdCBTZWNvbmRzIHRpbWVU
b0tlZXBIaWdoUGVyZm9ybWFuY2VHUFVBbGl2ZSB7IDEwX3MgfTsKKyAgICAgICAgbV91cGRhdGVT
dGF0ZVRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVG9LZWVwSGlnaFBlcmZvcm1hbmNlR1BVQWxpdmUp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NCw2ICs4Miw4IEBAIHZvaWQgSGlnaFBl
cmZvcm1hbmNlR1BVTWFuYWdlcjo6cmVtb3ZlUHJvY2Vzc1JlcXVpcmluZ0hpZ2hQZXJmb3JtYW5j
ZShXZWJQcm9jZXNzCiAKIHZvaWQgSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlcjo6dXBkYXRlU3Rh
dGUoKQogeworICAgIGlmIChtX3VwZGF0ZVN0YXRlVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAg
bV91cGRhdGVTdGF0ZVRpbWVyLnN0b3AoKTsKICAgICBpZiAobV9wcm9jZXNzZXNSZXF1aXJpbmdI
aWdoUGVyZm9ybWFuY2Uuc2l6ZSgpKSB7CiAgICAgICAgIGlmICghbV9waXhlbEZvcm1hdE9iaikg
ewogICAgICAgICAgICAgTE9HKFdlYkdMLCAiSGlnaFBlcmZvcm1hbmNlR1BVTWFuYWdlciAtIHR1
cm5pbmcgb24gaGlnaC1wZXJmb3JtYW5jZSBHUFUuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN3aXRjaGluZ0dQVUNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN3aXRj
aGluZ0dQVUNsaWVudC5jcHAKaW5kZXggNDRjNmI0MzJlN2Q1YzVkYWE3OGQ4ZDAyYWI3N2M3OTBj
MTRhOTM0YS4uYzFjMmEyZWJkYzc3ODc3ZTE3ZjdjMTkyNTMzNTkzODVkYWY3ODQ3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTd2l0
Y2hpbmdHUFVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9tYWMvV2ViU3dpdGNoaW5nR1BVQ2xpZW50LmNwcApAQCAtNDMsMTIgKzQzLDE5IEBA
IFdlYlN3aXRjaGluZ0dQVUNsaWVudCYgV2ViU3dpdGNoaW5nR1BVQ2xpZW50OjpzaW5nbGV0b24o
KQogCiB2b2lkIFdlYlN3aXRjaGluZ0dQVUNsaWVudDo6cmVxdWVzdEhpZ2hQZXJmb3JtYW5jZUdQ
VSgpCiB7CisgICAgbV9yZXF1ZXN0cysrOworICAgIGlmIChtX3JlcXVlc3RzICE9IDEpCisgICAg
ICAgIHJldHVybjsKICAgICBMT0coV2ViR0wsICJXZWJTd2l0Y2hpbmdHUFVDbGllbnQ6OnJlcXVl
c3RIaWdoUGVyZm9ybWFuY2VHUFUoKSBmcm9tIFdlYlByb2Nlc3MiKTsKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OlJlcXVlc3RIaWdoUGVyZm9ybWFuY2VHUFUoKSwgMCk7CiB9CiAKIHZv
aWQgV2ViU3dpdGNoaW5nR1BVQ2xpZW50OjpyZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCkKIHsK
KyAgICBBU1NFUlQobV9yZXF1ZXN0cyk7CisgICAgbV9yZXF1ZXN0cy0tOworICAgIGlmIChtX3Jl
cXVlc3RzKQorICAgICAgICByZXR1cm47CiAgICAgTE9HKFdlYkdMLCAiV2ViU3dpdGNoaW5nR1BV
Q2xpZW50OjpyZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCkgZnJvbSBXZWJQcm9jZXNzIik7CiAg
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpSZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCks
IDApOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L21hYy9XZWJTd2l0Y2hpbmdHUFVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9tYWMvV2ViU3dpdGNoaW5nR1BVQ2xpZW50LmgKaW5kZXggMjBlYjJl
ZTI1NzFmZWJhMmRhNDg0ZjIxODc3NzhiMTI5NDBhZTUzMy4uYmI4MWQ4YTYwOGFiMWZkYTQ1ZjA3
ZWE3YjM4YTYzNDUxOWU3ODQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTd2l0Y2hpbmdHUFVDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN3aXRjaGluZ0dQVUNsaWVu
dC5oCkBAIC0zMiw5ICszMiwxMCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlN3aXRj
aGluZ0dQVUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpTd2l0Y2hpbmdHUFVDbGllbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBXZWJTd2l0Y2hpbmdHUFVDbGllbnQmIHNpbmdsZXRvbigpOwotICAg
IAorcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RIaWdoUGVyZm9ybWFuY2VHUFUoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHJlbGVhc2VIaWdoUGVyZm9ybWFuY2VHUFUoKSBvdmVycmlkZTsKKyAgICB1
bnNpZ25lZCBtX3JlcXVlc3RzIHsgMCB9OwogfTsKIAogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>