<?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>215041</bug_id>
          
          <creation_ts>2020-07-31 16:10:00 -0700</creation_ts>
          <short_desc>[WinCairo] WebKitTestRunner should support pixel dump for accelerated compositing mode</short_desc>
          <delta_ts>2022-11-03 22:48:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=247479</see_also>
          <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="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1677029</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-31 16:10:00 -0700</bug_when>
    <thetext>[WinCairo] DumpRenderTree and WebKitTestRunner doesn&apos;s support pixel dump for accelerated compositing mode

AppleWin supports it. CACFLayerTreeHost::paint seems do the task.

Bug 46849 – [chromium] Add accelerated compositing support to DumpRenderTree and test_shell</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677031</commentid>
    <comment_count>1</comment_count>
      <attachid>405755</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-07-31 16:13:11 -0700</bug_when>
    <thetext>Created attachment 405755
WIP patch

BitBlt can capture the window content.
But, the problem is the windows shoudd be visible and needs diabling WindowStaion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807028</commentid>
    <comment_count>2</comment_count>
      <attachid>441991</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2021-10-20 23:52:56 -0700</bug_when>
    <thetext>Created attachment 441991
Playwright script

I checked Playwright screen capture feature on Windows.
Chrome and Firefox can capture the browser window both in headless and non-headless modes.
WebKit (WinCairo based) can capture only in non-headless modes.
I should check how Chrome and Firefox capture in the headless mode.

winget openjs.nodejs
npm install playwright
node video.mjs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831403</commentid>
    <comment_count>3</comment_count>
      <attachid>449309</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-16 22:57:25 -0800</bug_when>
    <thetext>Created attachment 449309
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831619</commentid>
    <comment_count>4</comment_count>
      <attachid>449364</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-17 23:45:33 -0800</bug_when>
    <thetext>Created attachment 449364
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833858</commentid>
    <comment_count>5</comment_count>
      <attachid>449966</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-25 14:12:33 -0800</bug_when>
    <thetext>Created attachment 449966
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833988</commentid>
    <comment_count>6</comment_count>
      <attachid>449997</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-25 22:41:06 -0800</bug_when>
    <thetext>Created attachment 449997
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834723</commentid>
    <comment_count>7</comment_count>
      <attachid>449997</attachid>
    <who name="Don Olmstead">don.olmstead</who>
    <bug_when>2022-01-27 15:09:03 -0800</bug_when>
    <thetext>Comment on attachment 449997
Patch

Is this all that&apos;s needed to get pixel tests working? TestController:::takeViewPortSnapshot is unimplemented on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834770</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2022-01-27 16:54:16 -0800</bug_when>
    <thetext>(In reply to Don Olmstead from comment #7)
&gt; Comment on attachment 449997 [details]
&gt; Patch
&gt; 
&gt; Is this all that&apos;s needed to get pixel tests working?
&gt; TestController:::takeViewPortSnapshot is unimplemented on Windows.

Yes, this patch makes AC mode pixel tests pass. However, DRT doesn&apos;t support it.

takeViewPortSnapshot is used only by fast/mediastream tests (Bug 231059).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835240</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-28 21:23:28 -0800</bug_when>
    <thetext>Committed r288784 (246561@main): &lt;https://commits.webkit.org/246561@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449997.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1835241</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-28 21:24:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/88217028&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405755</attachid>
            <date>2020-07-31 16:13:11 -0700</date>
            <delta_ts>2022-01-16 22:57:25 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>dump-pixel-ac.diff</filename>
            <type>text/plain</type>
            <size>7332</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGQwYjlk
OGM3ZTcyLi5lMzcwZjVmZjQ1NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGJvb2wgdXNlQWNjZWxlcmF0
ZWREcmF3aW5nID0gdHJ1ZTsgLy8gTm90IHVzZWQKIHN0YXRpYyBib29sIGdjQmV0d2VlblRlc3Rz
ID0gdHJ1ZTsgCiBzdGF0aWMgYm9vbCBwcmludFNlcGFyYXRvcnMgPSBmYWxzZTsKIHN0YXRpYyBi
b29sIGxlYWtDaGVja2luZyA9IGZhbHNlOwotc3RhdGljIGJvb2wgc2hvd1dlYlZpZXcgPSBmYWxz
ZTsKK3N0YXRpYyBib29sIHNob3dXZWJWaWV3ID0gdHJ1ZTsKIHN0YXRpYyBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0aW9uOwogCiB2b2xhdGlsZSBi
b29sIGRvbmU7CkBAIC0xNTczLDM0ICsxNTczLDM4IEBAIGludCBtYWluKGludCBhcmdjLCBjb25z
dCBjaGFyKiBhcmd2W10pCiAgICAgaWYgKHJlc3VsdCkKICAgICAgICAgcmV0dXJuIC01OwogCi0g
ICAgLy8gVGVzdHMgaW52b2x2aW5nIHRoZSBjbGlwYm9hcmQgYXJlIGZsYWt5IHdoZW4gcnVubmlu
ZyB3aXRoIG11bHRpcGxlIERSVHMsIHNpbmNlIHRoZSBjbGlwYm9hcmQgaXMgZ2xvYmFsLgotICAg
IC8vIFdlIGNhbiBmaXggdGhpcyBieSBhc3NpZ25pbmcgZWFjaCBEUlQgYSBzZXBhcmF0ZSB3aW5k
b3cgc3RhdGlvbiAoZWFjaCB3aW5kb3cgc3RhdGlvbiBoYXMgaXRzIG93biBjbGlwYm9hcmQpLgot
ICAgIERXT1JEIHByb2Nlc3NJZCA9IDo6R2V0Q3VycmVudFByb2Nlc3NJZCgpOwotICAgIFN0cmlu
ZyB3aW5kb3dTdGF0aW9uTmFtZSA9IG1ha2VTdHJpbmcoIndpbmRvd1N0YXRpb24iLCBwcm9jZXNz
SWQpOwotICAgIFN0cmluZyBkZXNrdG9wTmFtZSA9IG1ha2VTdHJpbmcoImRlc2t0b3AiLCBwcm9j
ZXNzSWQpOwotICAgIEhERVNLIGRlc2t0b3AgPSBudWxscHRyOwotCi0gICAgYXV0byB3aW5kb3dz
U3RhdGlvbiA9IDo6Q3JlYXRlV2luZG93U3RhdGlvbih3aW5kb3dTdGF0aW9uTmFtZS53aWRlQ2hh
cmFjdGVycygpLmRhdGEoKSwgQ1dGX0NSRUFURV9PTkxZLCBXSU5TVEFfQUxMX0FDQ0VTUywgbnVs
bHB0cik7Ci0gICAgaWYgKHdpbmRvd3NTdGF0aW9uKSB7Ci0gICAgICAgIGlmICghOjpTZXRQcm9j
ZXNzV2luZG93U3RhdGlvbih3aW5kb3dzU3RhdGlvbikpCi0gICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIlNldFByb2Nlc3NXaW5kb3dTdGF0aW9uIGZhaWxlZCB3aXRoIGVycm9yICVsdVxuIiwg
OjpHZXRMYXN0RXJyb3IoKSk7CisgICAgVmVjdG9yPGNvbnN0IGNoYXIqPiB0ZXN0cyA9IGluaXRp
YWxpemVHbG9iYWxzRnJvbUNvbW1hbmRMaW5lT3B0aW9ucyhhcmdjLCBhcmd2KTsKIAotICAgICAg
ICBkZXNrdG9wID0gOjpDcmVhdGVEZXNrdG9wKGRlc2t0b3BOYW1lLndpZGVDaGFyYWN0ZXJzKCku
ZGF0YSgpLCBudWxscHRyLCBudWxscHRyLCAwLCBHRU5FUklDX0FMTCwgbnVsbHB0cik7Ci0gICAg
ICAgIGlmICghZGVza3RvcCkKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRv
IGNyZWF0ZSBkZXNrdG9wIHdpdGggZXJyb3IgJWx1XG4iLCA6OkdldExhc3RFcnJvcigpKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBEV09SRCBlcnJvciA9IDo6R2V0TGFzdEVycm9yKCk7Ci0gICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiRmFpbGVkIHRvIGNyZWF0ZSB3aW5kb3cgc3RhdGlvbiB3aXRo
IGVycm9yICVsdVxuIiwgZXJyb3IpOwotICAgICAgICBpZiAoZXJyb3IgPT0gRVJST1JfQUNDRVNT
X0RFTklFRCkKLSAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRHVtcFJlbmRlclRyZWUgc2hv
dWxkIGJlIHJ1biBhcyBBZG1pbmlzdHJhdG9yIVxuIik7CisgICAgSERFU0sgZGVza3RvcCA9IG51
bGxwdHI7CisgICAgSFdJTlNUQSB3aW5kb3dzU3RhdGlvbiA9IG51bGxwdHI7CisKKyAgICBpZiAo
IXNob3dXZWJWaWV3KSB7CisgICAgICAgIC8vIFRlc3RzIGludm9sdmluZyB0aGUgY2xpcGJvYXJk
IGFyZSBmbGFreSB3aGVuIHJ1bm5pbmcgd2l0aCBtdWx0aXBsZSBEUlRzLCBzaW5jZSB0aGUgY2xp
cGJvYXJkIGlzIGdsb2JhbC4KKyAgICAgICAgLy8gV2UgY2FuIGZpeCB0aGlzIGJ5IGFzc2lnbmlu
ZyBlYWNoIERSVCBhIHNlcGFyYXRlIHdpbmRvdyBzdGF0aW9uIChlYWNoIHdpbmRvdyBzdGF0aW9u
IGhhcyBpdHMgb3duIGNsaXBib2FyZCkuCisgICAgICAgIERXT1JEIHByb2Nlc3NJZCA9IDo6R2V0
Q3VycmVudFByb2Nlc3NJZCgpOworICAgICAgICBTdHJpbmcgd2luZG93U3RhdGlvbk5hbWUgPSBt
YWtlU3RyaW5nKCJ3aW5kb3dTdGF0aW9uIiwgcHJvY2Vzc0lkKTsKKyAgICAgICAgU3RyaW5nIGRl
c2t0b3BOYW1lID0gbWFrZVN0cmluZygiZGVza3RvcCIsIHByb2Nlc3NJZCk7CisKKyAgICAgICAg
d2luZG93c1N0YXRpb24gPSA6OkNyZWF0ZVdpbmRvd1N0YXRpb24od2luZG93U3RhdGlvbk5hbWUu
d2lkZUNoYXJhY3RlcnMoKS5kYXRhKCksIENXRl9DUkVBVEVfT05MWSwgV0lOU1RBX0FMTF9BQ0NF
U1MsIG51bGxwdHIpOworICAgICAgICBpZiAod2luZG93c1N0YXRpb24pIHsKKyAgICAgICAgICAg
IGlmICghOjpTZXRQcm9jZXNzV2luZG93U3RhdGlvbih3aW5kb3dzU3RhdGlvbikpCisgICAgICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJTZXRQcm9jZXNzV2luZG93U3RhdGlvbiBmYWlsZWQg
d2l0aCBlcnJvciAlbHVcbiIsIDo6R2V0TGFzdEVycm9yKCkpOworCisgICAgICAgICAgICBkZXNr
dG9wID0gOjpDcmVhdGVEZXNrdG9wKGRlc2t0b3BOYW1lLndpZGVDaGFyYWN0ZXJzKCkuZGF0YSgp
LCBudWxscHRyLCBudWxscHRyLCAwLCBHRU5FUklDX0FMTCwgbnVsbHB0cik7CisgICAgICAgICAg
ICBpZiAoIWRlc2t0b3ApCisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQg
dG8gY3JlYXRlIGRlc2t0b3Agd2l0aCBlcnJvciAlbHVcbiIsIDo6R2V0TGFzdEVycm9yKCkpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRFdPUkQgZXJyb3IgPSA6OkdldExhc3RFcnJv
cigpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJGYWlsZWQgdG8gY3JlYXRlIHdpbmRv
dyBzdGF0aW9uIHdpdGggZXJyb3IgJWx1XG4iLCBlcnJvcik7CisgICAgICAgICAgICBpZiAoZXJy
b3IgPT0gRVJST1JfQUNDRVNTX0RFTklFRCkKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVy
ciwgIkR1bXBSZW5kZXJUcmVlIHNob3VsZCBiZSBydW4gYXMgQWRtaW5pc3RyYXRvciFcbiIpOwor
ICAgICAgICB9CiAgICAgfQogCiAgICAgaW5pdGlhbGl6ZSgpOwogCiAgICAgc2V0RGVmYXVsdHNU
b0NvbnNpc3RlbnRWYWx1ZXNGb3JUZXN0aW5nKCk7CiAKLSAgICBWZWN0b3I8Y29uc3QgY2hhcio+
IHRlc3RzID0gaW5pdGlhbGl6ZUdsb2JhbHNGcm9tQ29tbWFuZExpbmVPcHRpb25zKGFyZ2MsIGFy
Z3YpOwotCiAgICAgLy8gRklYTUUgLSBuZWVkIHRvIG1ha2UgRFJUIHBhc3Mgd2l0aCBXaW5kb3dz
IG5hdGl2ZSBjb250cm9scyA8aHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjU1OTI+CiAgICAgQ09NUHRyPElXZWJQcmVmZXJlbmNlcz4gdG1wUHJlZmVyZW5jZXM7CiAgICAg
aWYgKEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShDTFNJRF9XZWJQcmVmZXJlbmNlcywgMCwg
SUlEX0lXZWJQcmVmZXJlbmNlcywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KCZ0bXBQcmVmZXJl
bmNlcykpKSkKQEAgLTE2ODEsNyArMTY4NSw3IEBAIGludCBtYWluKGludCBhcmdjLCBjb25zdCBj
aGFyKiBhcmd2W10pCiAgICAgICAgIDo6Q2xvc2VEZXNrdG9wKGRlc2t0b3ApOwogICAgIGlmICh3
aW5kb3dzU3RhdGlvbikKICAgICAgICAgOjpDbG9zZVdpbmRvd1N0YXRpb24od2luZG93c1N0YXRp
b24pOwotCisgICAgCiAgICAgOjpPbGVVbmluaXRpYWxpemUoKTsKIAogICAgIHJldHVybiAwOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4u
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3BwCmlu
ZGV4IGE5YmE2OTE4MzExLi43OGY2MzAzZGI5NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL1BpeGVsRHVtcFN1cHBvcnRXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9QaXhlbER1bXBTdXBwb3J0V2luLmNwcApAQCAtMjcsNiArMjcsMTIgQEAKICAqLwog
CiAjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHVtcFJlbmRlclRyZWUuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvSFduZERDLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL3dpbi9HRElPYmplY3QuaD4K
IAogI2lmIFVTRShDRykKICNpbmNsdWRlICJQaXhlbER1bXBTdXBwb3J0Q0cuaCIKQEAgLTM2LDE3
ICs0MiwxMSBAQAogI2luY2x1ZGUgIlBpeGVsRHVtcFN1cHBvcnREaXJlY3QyRC5oIgogI2VuZGlm
CiAKLSNpbmNsdWRlICJEdW1wUmVuZGVyVHJlZS5oIgotCiAjaWYgVVNFKENHKQogLy8gTm90ZTog
TXVzdCBiZSBpbmNsdWRlZCAqYWZ0ZXIqIER1bXBSZW5kZXJUcmVlLmggdG8gYXZvaWQgY29tcGls
ZSBlcnJvci4KICNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dCaXRtYXBDb250ZXh0Lmg+CiAjZW5k
aWYKIAotI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgotI2luY2x1ZGUgPHd0Zi93aW4vR0RJT2JqZWN0Lmg+Ci0KIHN0YXRpYyB2b2lkIG1ha2VB
bHBoYUNoYW5uZWxPcGFxdWUodm9pZCogYXJnYkJpdHMsIExPTkcgd2lkdGgsIExPTkcgaGVpZ2h0
KQogewogICAgIHVuc2lnbmVkKiBwaXhlbCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkKj4oYXJnYkJp
dHMpOwpAQCAtNjIsMTAgKzYyLDE1IEBAIFJlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRt
YXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1lCiAgICAgaWYg
KCFHZXRXaW5kb3dSZWN0KHdlYlZpZXdXaW5kb3csICZmcmFtZSkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCisgICAgV2ViQ29yZTo6SFduZERDIHdpbmRvd0RDKHdlYlZpZXdXaW5kb3cpOwor
CisgICAgYXV0byB3aWR0aCA9IGZyYW1lLnJpZ2h0IC0gZnJhbWUubGVmdDsKKyAgICBhdXRvIGhl
aWdodCA9IGZyYW1lLmJvdHRvbSAtIGZyYW1lLnRvcDsKKwogICAgIEJJVE1BUElORk8gYm1wIHsg
fTsKICAgICBibXAuYm1pSGVhZGVyLmJpU2l6ZSA9IHNpemVvZihCSVRNQVBJTkZPSEVBREVSKTsK
LSAgICBibXAuYm1pSGVhZGVyLmJpV2lkdGggPSBmcmFtZS5yaWdodCAtIGZyYW1lLmxlZnQ7Ci0g
ICAgYm1wLmJtaUhlYWRlci5iaUhlaWdodCA9IC0oZnJhbWUuYm90dG9tIC0gZnJhbWUudG9wKTsK
KyAgICBibXAuYm1pSGVhZGVyLmJpV2lkdGggPSB3aWR0aDsKKyAgICBibXAuYm1pSGVhZGVyLmJp
SGVpZ2h0ID0gLWhlaWdodDsKICAgICBibXAuYm1pSGVhZGVyLmJpUGxhbmVzID0gMTsKICAgICBi
bXAuYm1pSGVhZGVyLmJpQml0Q291bnQgPSAzMjsKICAgICBibXAuYm1pSGVhZGVyLmJpQ29tcHJl
c3Npb24gPSBCSV9SR0I7CkBAIC03Nyw3ICs4Miw3IEBAIFJlZlB0cjxCaXRtYXBDb250ZXh0PiBj
cmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCBvbnNjcmVlbiwgYm9vbCBpbmNyZW1l
CiAKICAgICBhdXRvIG1lbW9yeURDID0gYWRvcHRHRElPYmplY3QoOjpDcmVhdGVDb21wYXRpYmxl
REMoMCkpOwogICAgIDo6U2VsZWN0T2JqZWN0KG1lbW9yeURDLmdldCgpLCBiaXRtYXApOwotICAg
IFNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIFdNX1BSSU5ULCByZWludGVycHJldF9jYXN0PFdQ
QVJBTT4obWVtb3J5REMuZ2V0KCkpLCBQUkZfQ0xJRU5UIHwgUFJGX0NISUxEUkVOIHwgUFJGX09X
TkVEKTsKKyAgICBCaXRCbHQobWVtb3J5REMuZ2V0KCksIDAsIDAsIHdpZHRoLCBoZWlnaHQsIHdp
bmRvd0RDLCAwLCAwLCBTUkNDT1BZKTsKIAogICAgIEJJVE1BUCBpbmZvIHsgfTsKICAgICBHZXRP
YmplY3QoYml0bWFwLCBzaXplb2YoaW5mbyksICZpbmZvKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCmluZGV4IGM2YTM2ZTE5MWEyLi5k
N2VmNTlhZmZjZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZv
cm1XZWJWaWV3V2luLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9y
bVdlYlZpZXdXaW4uY3BwCkBAIC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBQbGF0Zm9ybVdlYlZpZXc6
OnNldFdpbmRvd0ZyYW1lKFdLUmVjdCBmcmFtZSwgV2ViVmlld1NpemluZ01vZGUpCiAgICAgICAg
IFNXUF9OT01PVkUgfCBTV1BfTk9aT1JERVIgfCBTV1BfTk9BQ1RJVkFURSB8IFNXUF9OT0NPUFlC
SVRTKTsKIAogICAgIFVJTlQgZmxhZ3MgPSBTV1BfTk9aT1JERVIgfCBTV1BfTk9BQ1RJVkFURSB8
IFNXUF9OT0NPUFlCSVRTOwotICAgIGlmIChtX29wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcpCisg
ICAgaWYgKG1fb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldywgMSkKICAgICAgICAgZmxhZ3MgfD0g
U1dQX05PTU9WRTsKICAgICA6OlNldFdpbmRvd1BvcygKICAgICAgICAgbV93aW5kb3csCkBAIC0y
MzIsNyArMjMyLDcgQEAgY2Fpcm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1Nu
YXBzaG90SW1hZ2UoKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIDo6U2VsZWN0T2Jq
ZWN0KG1lbW9yeURDLmdldCgpLCBiaXRtYXAuZ2V0KCkpOwotICAgIDo6U2VuZE1lc3NhZ2UobV93
aW5kb3csIFdNX1BSSU5ULCByZWludGVycHJldF9jYXN0PFdQQVJBTT4obWVtb3J5REMuZ2V0KCkp
LCBQUkZfQ0xJRU5UIHwgUFJGX0NISUxEUkVOIHwgUFJGX09XTkVEKTsKKyAgICBCaXRCbHQobWVt
b3J5REMuZ2V0KCksIDAsIDAsIHdpZHRoLCBoZWlnaHQsIHdpbmRvd0RDLCAwLCAwLCBTUkNDT1BZ
KTsKIAogICAgIEJJVE1BUCBiaXRtYXBUYWcgeyB9OwogICAgIEdldE9iamVjdChiaXRtYXAuZ2V0
KCksIHNpemVvZihiaXRtYXBUYWcpLCAmYml0bWFwVGFnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>441991</attachid>
            <date>2021-10-20 23:52:56 -0700</date>
            <delta_ts>2021-10-20 23:53:22 -0700</delta_ts>
            <desc>Playwright script</desc>
            <filename>video.mjs</filename>
            <type>text/javascript</type>
            <size>564</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">aW1wb3J0IHtjaHJvbWl1bSwgd2Via2l0LCBmaXJlZm94fSBmcm9tICJwbGF5d3JpZ2h0IjsKCihh
c3luYyAoKSA9PiB7CiAgICBmb3IgKGNvbnN0IGJyb3dzZXJUeXBlIG9mIFtjaHJvbWl1bSwgZmly
ZWZveCwgd2Via2l0XSkgewoJY29uc3QgYnJvd3NlciA9IGF3YWl0IGJyb3dzZXJUeXBlLmxhdW5j
aCh7IGhlYWRsZXNzOiB0cnVlIH0pOwoJY29uc3QgY29udGV4dCA9IGF3YWl0IGJyb3dzZXIubmV3
Q29udGV4dCh7CgkgICAgcmVjb3JkVmlkZW86IHsKCQlkaXI6ICd2aWRlb3MvJywKCQlzaXplOiB7
IHdpZHRoOiAxMDI0LCBoZWlnaHQ6IDc2OCB9LAoJICAgIH0KCX0pOwoJY29uc3QgcGFnZSA9IGF3
YWl0IGNvbnRleHQubmV3UGFnZSgpOwoJYXdhaXQgcGFnZS5nb3RvKCdodHRwczovL3dlYmtpdC5v
cmcvYmxvZy1maWxlcy8zZC10cmFuc2Zvcm1zL3Bvc3Rlci1jaXJjbGUuaHRtbCcpCglhd2FpdCBw
YWdlLndhaXRGb3JUaW1lb3V0KDEwMDAwKTsKCWF3YWl0IHBhZ2UuY2xvc2UoKTsKCWF3YWl0IGNv
bnRleHQuY2xvc2UoKTsKCWF3YWl0IGJyb3dzZXIuY2xvc2UoKTsKICAgIH0KfSkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449309</attachid>
            <date>2022-01-16 22:57:25 -0800</date>
            <delta_ts>2022-01-17 23:45:33 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wc-headless.diff</filename>
            <type>text/plain</type>
            <size>9910</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0
dXJlTWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggZDI2MWE0MDI0Y2Y3Li5mYWNhOGUwY2ZhYWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBUZXh0dXJlTWFw
cGVyR0w6OmJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyBmbGFncykKICAgICBtX2NsaXBTdGFjay5y
ZXNldChJbnRSZWN0KDAsIDAsIGRhdGEoKS52aWV3cG9ydFsyXSwgZGF0YSgpLnZpZXdwb3J0WzNd
KSwgZmxhZ3MgJiBQYWludGluZ01pcnJvcmVkID8gQ2xpcFN0YWNrOjpZQXhpc01vZGU6OkRlZmF1
bHQgOiBDbGlwU3RhY2s6OllBeGlzTW9kZTo6SW52ZXJ0ZWQpOwogICAgIGdsR2V0SW50ZWdlcnYo
R0xfRlJBTUVCVUZGRVJfQklORElORywgJmRhdGEoKS50YXJnZXRGcmFtZUJ1ZmZlcik7CiAgICAg
ZGF0YSgpLlBhaW50RmxhZ3MgPSBmbGFnczsKLSAgICBiaW5kU3VyZmFjZSgwKTsKKyAgICAvL2Jp
bmRTdXJmYWNlKDApOwogCiAjaWYgIVVTRShPUEVOR0xfRVMpCiAgICAgaWYgKEdMQ29udGV4dDo6
Y3VycmVudCgpLT52ZXJzaW9uKCkgPj0gMzIwKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3Bw
CmluZGV4IDI5NGRhZGY4YzhjOC4uMjAzMGZmNjgwOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxh
eWVyLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWlu
dChUZXh0dXJlTWFwcGVyJiB0ZXh0dXJlTWFwcGVyKQogICAgIGNvbXB1dGVUcmFuc2Zvcm1zUmVj
dXJzaXZlKCk7CiAKICAgICBUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zIG9wdGlvbnModGV4dHVy
ZU1hcHBlcik7Ci0gICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJpbmRTdXJmYWNlKDApOworICAg
IC8vb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJpbmRTdXJmYWNlKDApOwogCiAgICAgcGFpbnRSZWN1
cnNpdmUob3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDAwZDVi
N2E4N2RmNy4uNmI2OTYzNjRkZjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNwcApAQCAt
ODQsMTEgKzg0LDExIEBAIHVpbnQ2NF90IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVNl
bmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OnVw
ZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSkKIHsKICAgICByZW1vdGVHcmFwaGljc0NvbnRleHRH
TFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIoKnRo
aXMpLCBzY2VuZSA9IG1fc2NlbmUuZ2V0KCksIHVwZGF0ZSA9IFdURk1vdmUodXBkYXRlKV0oKSBt
dXRhYmxlIHsKLSAgICAgICAgc2NlbmUtPnVwZGF0ZShXVEZNb3ZlKHVwZGF0ZSkpOwotICAgICAg
ICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFr
VGhpcyldIHsKKyAgICAgICAgYXV0byB1cGRhdGVJbmZvID0gc2NlbmUtPnVwZGF0ZShXVEZNb3Zl
KHVwZGF0ZSkpOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtU
aGlzID0gV1RGTW92ZSh3ZWFrVGhpcyksIHVwZGF0ZUluZm8gPSBXVEZNb3ZlKHVwZGF0ZUluZm8p
XSgpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAg
ICByZXR1cm47Ci0gICAgICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhv
c3RQcm94eTo6RGlkVXBkYXRlKCkpOworICAgICAgICAgICAgc2VuZChNZXNzYWdlczo6UmVtb3Rl
V0NMYXllclRyZWVIb3N0UHJveHk6OkRpZFVwZGF0ZShXVEZNb3ZlKHVwZGF0ZUluZm8pKSk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL3djL1dDU2NlbmUuY3BwCmluZGV4IGUxZGU2MGIxZmNlMy4uNWRjNWZjNTlmOGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuY3Bw
CkBAIC03NSwxMCArNzUsMTAgQEAgV0NTY2VuZTo6fldDU2NlbmUoKQogICAgIG1fdGV4dHVyZU1h
cHBlciA9IG51bGxwdHI7CiB9CiAKLXZvaWQgV0NTY2VuZTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYg
dXBkYXRlKQorc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiBXQ1NjZW5lOjp1cGRhdGUoV0NVcGF0
ZUluZm8mJiB1cGRhdGUpCiB7CiAgICAgaWYgKCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVu
dCgpKQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAg
ICBmb3IgKGF1dG8gaWQgOiB1cGRhdGUuYWRkZWRMYXllcnMpIHsKICAgICAgICAgYXV0byBsYXll
ciA9IG1ha2VVbmlxdWU8TGF5ZXI+KCk7CkBAIC0xOTcsMTUgKzE5Nyw0MyBAQCB2b2lkIFdDU2Nl
bmU6OnVwZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSkKICAgICBhdXRvIHJvb3RMYXllciA9ICZt
X2xheWVycy5nZXQodXBkYXRlLnJvb3RMYXllciktPnRleG1hcExheWVyOwogICAgIHJvb3RMYXll
ci0+YXBwbHlBbmltYXRpb25zUmVjdXJzaXZlbHkoTW9ub3RvbmljVGltZTo6bm93KCkpOwogCisg
ICAgYm9vbCBoZWFkbGVzc01vZGUgPSB0cnVlOwogICAgIFdlYkNvcmU6OkludFNpemUgd2luZG93
U2l6ZSA9IGV4cGFuZGVkSW50U2l6ZShyb290TGF5ZXItPnNpemUoKSk7Ci0gICAgZ2xWaWV3cG9y
dCgwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOworICAgIGlm
ICghaGVhZGxlc3NNb2RlKQorICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIHdpbmRvd1NpemUud2lk
dGgoKSwgd2luZG93U2l6ZS5oZWlnaHQoKSk7CiAKICAgICBtX3RleHR1cmVNYXBwZXItPmJlZ2lu
UGFpbnRpbmcoKTsKKworICAgIGlmIChoZWFkbGVzc01vZGUpIHsKKyAgICAgICAgYXV0byB0YXJn
ZXQgPSBtX3RleHR1cmVNYXBwZXItPmNyZWF0ZVRleHR1cmUoKTsKKyAgICAgICAgdGFyZ2V0LT5y
ZXNldCh3aW5kb3dTaXplKTsKKyAgICAgICAgbV90ZXh0dXJlTWFwcGVyLT5iaW5kU3VyZmFjZSh0
YXJnZXQucHRyKCkpOworICAgIH0gZWxzZQorICAgICAgICBtX3RleHR1cmVNYXBwZXItPmJpbmRT
dXJmYWNlKG51bGxwdHIpOworCiAgICAgcm9vdExheWVyLT5wYWludCgqbV90ZXh0dXJlTWFwcGVy
KTsKICAgICBtX2Zwc0NvdW50ZXIudXBkYXRlRlBTQW5kRGlzcGxheSgqbV90ZXh0dXJlTWFwcGVy
KTsKICAgICBtX3RleHR1cmVNYXBwZXItPmVuZFBhaW50aW5nKCk7CiAKLSAgICBtX2NvbnRleHQt
PnN3YXBCdWZmZXJzKCk7CisgICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiByZXN1bHQ7Cisg
ICAgaWYgKGhlYWRsZXNzTW9kZSkgeworICAgICAgICBhdXRvIGJpdG1hcCA9IFNoYXJlYWJsZUJp
dG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHdpbmRvd1NpemUsIHsgfSk7CisgICAgICAgIGdsUmVhZFBp
eGVscygwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCksIEdMX0JH
UkFfRVhULCBHTF9VTlNJR05FRF9CWVRFLCBiaXRtYXAtPmRhdGEoKSk7CisgICAgICAgIG1fdGV4
dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobnVsbHB0cik7CisgICAgICAgIFNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKGJpdG1hcC0+Y3JlYXRlSGFuZGxlKGhhbmRs
ZSkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5lbXBsYWNlKCk7CisgICAgICAgICAgICByZXN1bHQt
PnZpZXdTaXplID0gd2luZG93U2l6ZTsKKyAgICAgICAgICAgIHJlc3VsdC0+ZGV2aWNlU2NhbGVG
YWN0b3IgPSAxOworICAgICAgICAgICAgcmVzdWx0LT51cGRhdGVTY2FsZUZhY3RvciA9IDE7Cisg
ICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IHZpZXdwb3J0ID0geyB7IH0sIHdpbmRvd1NpemUg
fTsKKyAgICAgICAgICAgIHJlc3VsdC0+dXBkYXRlUmVjdEJvdW5kcyA9IHZpZXdwb3J0OworICAg
ICAgICAgICAgcmVzdWx0LT51cGRhdGVSZWN0cy5hcHBlbmQodmlld3BvcnQpOworICAgICAgICAg
ICAgcmVzdWx0LT5iaXRtYXBIYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CisgICAgICAgIH0KKyAg
ICB9IGVsc2UKKyAgICAgICAgbV9jb250ZXh0LT5zd2FwQnVmZmVycygpOworICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuaCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmgKaW5kZXggM2QxNTFkOWQyOTZhLi40ZTFmYjcx
NWFmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9X
Q1NjZW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2Nl
bmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQogCisj
aW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lkZW50aWZp
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmg+CiAjaW5j
bHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUwLDcgKzUxLDcgQEAgcHVibGljOgogICAgIFdDU2Nl
bmUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIH5XQ1NjZW5lKCk7CiAgICAgdm9p
ZCBpbml0aWFsaXplKFdDU2NlbmVDb250ZXh0Jik7Ci0gICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUlu
Zm8mJik7CisgICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiB1cGRhdGUoV0NVcGF0ZUluZm8m
Jik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IExheWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdD
TGF5ZXJUcmVlSG9zdFByb3h5LmNwcAppbmRleCBjMzcxZGQ5ODg4MzAuLmNkOTIwOWVmN2Q3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1v
dGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAKQEAgLTkzLDkg
KzkzLDkgQEAgdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlKFdDVXBhdGVJ
bmZvJiYgdXBkYXRlSW5mbykKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhv
c3Q6OlVwZGF0ZSh1cGRhdGVJbmZvKSk7CiB9CiAKLXZvaWQgUmVtb3RlV0NMYXllclRyZWVIb3N0
UHJveHk6OmRpZFVwZGF0ZSgpCit2b2lkIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRV
cGRhdGUoc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiB1cGRhdGVJbmZvKQogewotICAgIG1fY2xp
ZW50LmRpZFVwZGF0ZSgpOworICAgIG1fY2xpZW50LmRpZFVwZGF0ZShXVEZNb3ZlKHVwZGF0ZUlu
Zm8pKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5
ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXggZjljZjdjZTdhOWJjLi4zZTY4ZDQ0N2QxMDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NM
YXllclRyZWVIb3N0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJVcGRhdGVJbmZv
LmgiCiAjaW5jbHVkZSAiV0NMYXllclRyZWVIb3N0SWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKQEAgLTQ0LDcgKzQ1LDcgQEAgY2xhc3MgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJv
eHkKIHB1YmxpYzoKICAgICBjbGFzcyBDbGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB2b2lkIGRpZFVwZGF0ZSgpID0gMDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0
ZShzdGQ6Om9wdGlvbmFsPFVwZGF0ZUluZm8+KSA9IDA7CiAgICAgfTsKIAogICAgIFJlbW90ZVdD
TGF5ZXJUcmVlSG9zdFByb3h5KFdlYlBhZ2UmLCBDbGllbnQmKTsKQEAgLTUyLDcgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUluZm8mJik7CiAKLSAgICB2b2lkIGRp
ZFVwZGF0ZSgpOworICAgIHZvaWQgZGlkVXBkYXRlKHN0ZDo6b3B0aW9uYWw8VXBkYXRlSW5mbz4p
OwogCiBwcml2YXRlOgogICAgIFdDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgd2NMYXllclRyZWVI
b3N0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fd2NMYXllclRyZWVIb3N0SWRlbnRpZmll
cjsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
d2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IDRmOGFmNzdhMzExNi4uOWJkM2RlNjM5YTQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVl
SG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KQEAgLTIz
LDcgKzIzLDcgQEAKICNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCiAKIG1lc3NhZ2VzIC0+IFJl
bW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIERpZFVwZGF0ZSgp
CisgICAgRGlkVXBkYXRlKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpVcGRhdGVJbmZvPiB1cGRhdGVJ
bmZvKQogfQogCiAjZW5kaWYgLy8gVVNFKEdSQVBISUNTX0xBWUVSX1dDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9EcmF3aW5nQXJlYVdDLmNwcAppbmRl
eCBkMWNjMmU0NDUzMjAuLmZjZjY5MzIxMzk3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAKQEAgLTM0MCw2ICszNDAs
MTUgQEAgUmVmUHRyPEltYWdlQnVmZmVyPiBEcmF3aW5nQXJlYVdDOjpjcmVhdGVJbWFnZUJ1ZmZl
cihGbG9hdFNpemUgc2l6ZSkKICAgICByZXR1cm4gQ29uY3JldGVJbWFnZUJ1ZmZlcjxVbmFjY2Vs
ZXJhdGVkSW1hZ2VCdWZmZXJTaGFyZWFibGVCYWNrZW5kPjo6Y3JlYXRlKHNpemUsIDEsIERlc3Rp
bmF0aW9uQ29sb3JTcGFjZTo6U1JHQigpLCBQaXhlbEZvcm1hdDo6QkdSQTgsIG51bGxwdHIpOwog
fQogCit2b2lkIERyYXdpbmdBcmVhV0M6OmRpZFVwZGF0ZShzdGQ6Om9wdGlvbmFsPFVwZGF0ZUlu
Zm8+IHVwZGF0ZUluZm8pCit7CisgICAgaWYgKHVwZGF0ZUluZm8pIHsKKyAgICAgICAgc2VuZChN
ZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94eTo6VXBkYXRlKG1fYmFja2luZ1N0b3JlU3RhdGVJRCwg
V1RGTW92ZSgqdXBkYXRlSW5mbykpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkaWRV
cGRhdGUoKTsKK30KKwogdm9pZCBEcmF3aW5nQXJlYVdDOjpkaWRVcGRhdGUoKQogewogICAgIG1f
d2FpdERpZFVwZGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oCmluZGV4IDA0YzRlMWU3ZDYxMC4uNzI1MGEwZTgw
ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9EcmF3
aW5nQXJlYVdDLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJh
d2luZ0FyZWFXQy5oCkBAIC01OSwxMyArNTksMTQgQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
Y29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRV
cGRhdGUoKSBvdmVycmlkZTsKICAgICAvLyBHcmFwaGljc0xheWVyV0M6Ok9ic2VydmVyCiAgICAg
dm9pZCBncmFwaGljc0xheWVyQWRkZWQoR3JhcGhpY3NMYXllcldDJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBncmFwaGljc0xheWVyUmVtb3ZlZChHcmFwaGljc0xheWVyV0MmKSBvdmVycmlkZTsKICAg
ICB2b2lkIGNvbW1pdExheWVyVXBhdGVJbmZvKFdDTGF5ZXJVcGF0ZUluZm8mJikgb3ZlcnJpZGU7
CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBjcmVhdGVJbWFnZUJ1ZmZlcihXZWJD
b3JlOjpGbG9hdFNpemUpIG92ZXJyaWRlOwogICAgIC8vIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFBy
b3h5OjpDbGllbnQKLSAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlk
VXBkYXRlKHN0ZDo6b3B0aW9uYWw8VXBkYXRlSW5mbz4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBp
c0NvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449364</attachid>
            <date>2022-01-17 23:45:33 -0800</date>
            <delta_ts>2022-01-25 14:12:33 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wc-headless.4.diff</filename>
            <type>text/plain</type>
            <size>20066</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDU1NmM3NTgwYzY1Ni4uYWQyYjdhNTI0Yjg0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE0ODMsNyArMTQ4Myw3IEBAIHdlYmtpdC5v
cmcvYi8yMTUyNzEgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL25ldy1kYXRhYmFzZS1hZnRlci11
c2VyLWRlbGV0ZS5odG1sCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAKIGNz
czMvZmlsdGVycyBbIEltYWdlT25seUZhaWx1cmUgRmFpbHVyZSBQYXNzIF0KLWNvbXBvc2l0aW5n
IFsgU2tpcCBdCisjY29tcG9zaXRpbmcgWyBTa2lwIF0KIGZhc3QvYXR0YWNobWVudCBbIFNraXAg
XQogZmFzdC9iYWNrZ3JvdW5kcyBbIFNraXAgXQogZmFzdC9ibG9jayBbIFNraXAgXQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFw
cGVyLmgKaW5kZXggMzM0ZGNhZTg1NzBlLi44MDc2NjExMWFjOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXIuaApA
QCAtNzYsNiArNzYsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBtYWtlcyBhIHN1cmZhY2UgdGhlIHRh
cmdldCBmb3IgdGhlIGZvbGxvd2luZyBkcmF3VGV4dHVyZSBjYWxscy4KICAgICB2aXJ0dWFsIHZv
aWQgYmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSogc3VyZmFjZSkgPSAwOworICAgIHZpcnR1YWwg
UmVmUHRyPEJpdG1hcFRleHR1cmU+IGN1cnJlbnRTdXJmYWNlKCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRpb25NYXRyaXgmLCBjb25zdCBGbG9hdFJv
dW5kZWRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbmRDbGlwKCkgPSAwOwogICAgIHZp
cnR1YWwgSW50UmVjdCBjbGlwQm91bmRzKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNwcAppbmRl
eCBkMjYxYTQwMjRjZjcuLjZjMGEyNzJiMzcyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHAKQEAg
LTIxMCw3ICsyMTAsOCBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmVnaW5QYWludGluZyhQYWlu
dEZsYWdzIGZsYWdzKQogICAgIG1fY2xpcFN0YWNrLnJlc2V0KEludFJlY3QoMCwgMCwgZGF0YSgp
LnZpZXdwb3J0WzJdLCBkYXRhKCkudmlld3BvcnRbM10pLCBmbGFncyAmIFBhaW50aW5nTWlycm9y
ZWQgPyBDbGlwU3RhY2s6OllBeGlzTW9kZTo6RGVmYXVsdCA6IENsaXBTdGFjazo6WUF4aXNNb2Rl
OjpJbnZlcnRlZCk7CiAgICAgZ2xHZXRJbnRlZ2VydihHTF9GUkFNRUJVRkZFUl9CSU5ESU5HLCAm
ZGF0YSgpLnRhcmdldEZyYW1lQnVmZmVyKTsKICAgICBkYXRhKCkuUGFpbnRGbGFncyA9IGZsYWdz
OwotICAgIGJpbmRTdXJmYWNlKDApOworICAgIGlmICghY3VycmVudFN1cmZhY2UoKSkKKyAgICAg
ICAgYmluZERlZmF1bHRTdXJmYWNlKCk7CiAKICNpZiAhVVNFKE9QRU5HTF9FUykKICAgICBpZiAo
R0xDb250ZXh0OjpjdXJyZW50KCktPnZlcnNpb24oKSA+PSAzMjApIHsKQEAgLTkxOSw5ICs5MjAs
OSBAQCB2b2lkIFRleHR1cmVNYXBwZXJHTDo6YmluZFN1cmZhY2UoQml0bWFwVGV4dHVyZSAqc3Vy
ZmFjZSkKICAgICBkYXRhKCkuY3VycmVudFN1cmZhY2UgPSBzdXJmYWNlOwogfQogCi1CaXRtYXBU
ZXh0dXJlKiBUZXh0dXJlTWFwcGVyR0w6OmN1cnJlbnRTdXJmYWNlKCkKK1JlZlB0cjxCaXRtYXBU
ZXh0dXJlPiBUZXh0dXJlTWFwcGVyR0w6OmN1cnJlbnRTdXJmYWNlKCkKIHsKLSAgICByZXR1cm4g
ZGF0YSgpLmN1cnJlbnRTdXJmYWNlLmdldCgpOworICAgIHJldHVybiBkYXRhKCkuY3VycmVudFN1
cmZhY2U7CiB9CiAKIGJvb2wgVGV4dHVyZU1hcHBlckdMOjpiZWdpblNjaXNzb3JDbGlwKGNvbnN0
IFRyYW5zZm9ybWF0aW9uTWF0cml4JiBtb2RlbFZpZXdNYXRyaXgsIGNvbnN0IEZsb2F0UmVjdCYg
dGFyZ2V0UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaAppbmRleCBkOGJkMjZhYmY4MjUuLmMzYmNiYjQ1
NjAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFw
L1RleHR1cmVNYXBwZXJHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjbGVhckNvbG9yKGNvbnN0IENvbG9yJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGJpbmRT
dXJmYWNlKEJpdG1hcFRleHR1cmUqIHN1cmZhY2UpIG92ZXJyaWRlOwotICAgIEJpdG1hcFRleHR1
cmUqIGN1cnJlbnRTdXJmYWNlKCk7CisgICAgUmVmUHRyPEJpdG1hcFRleHR1cmU+IGN1cnJlbnRT
dXJmYWNlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBiZWdpbkNsaXAoY29uc3QgVHJhbnNmb3JtYXRp
b25NYXRyaXgmLCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBi
ZWdpblBhaW50aW5nKFBhaW50RmxhZ3MgPSAwKSBvdmVycmlkZTsKICAgICB2b2lkIGVuZFBhaW50
aW5nKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyTGF5ZXIuY3BwCmluZGV4IDI5NGRhZGY4
YzhjOC4uNzViZmI3Y2RkMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmNwcApAQCAtMzYs
NyArMzYsNiBAQCBwdWJsaWM6CiAKICAgICBUZXh0dXJlTWFwcGVyJiB0ZXh0dXJlTWFwcGVyOwog
ICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKLSAgICBSZWZQdHI8Qml0bWFwVGV4
dHVyZT4gc3VyZmFjZTsKICAgICBmbG9hdCBvcGFjaXR5IHsgMSB9OwogICAgIEludFNpemUgb2Zm
c2V0OwogICAgIFRleHR1cmVNYXBwZXJMYXllciogYmFja2Ryb3BMYXllciB7IG51bGxwdHIgfTsK
QEAgLTEzOSw3ICsxMzgsNiBAQCB2b2lkIFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnQoVGV4dHVy
ZU1hcHBlciYgdGV4dHVyZU1hcHBlcikKICAgICBjb21wdXRlVHJhbnNmb3Jtc1JlY3Vyc2l2ZSgp
OwogCiAgICAgVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyBvcHRpb25zKHRleHR1cmVNYXBwZXIp
OwotICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5iaW5kU3VyZmFjZSgwKTsKIAogICAgIHBhaW50
UmVjdXJzaXZlKG9wdGlvbnMpOwogfQpAQCAtNDQ0LDkgKzQ0Miw5IEBAIHZvaWQgVGV4dHVyZU1h
cHBlckxheWVyOjphcHBseU1hc2soVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykK
ICAgICBvcHRpb25zLnRleHR1cmVNYXBwZXIuc2V0TWFza01vZGUoZmFsc2UpOwogfQogCi12b2lk
IFRleHR1cmVNYXBwZXJMYXllcjo6cGFpbnRJbnRvU3VyZmFjZShUZXh0dXJlTWFwcGVyUGFpbnRP
cHRpb25zJiBvcHRpb25zKQorUmVmUHRyPEJpdG1hcFRleHR1cmU+IFRleHR1cmVNYXBwZXJMYXll
cjo6cGFpbnRJbnRvU3VyZmFjZShSZWZQdHI8Qml0bWFwVGV4dHVyZT4gc3VyZmFjZSwgVGV4dHVy
ZU1hcHBlclBhaW50T3B0aW9ucyYgb3B0aW9ucykKIHsKLSAgICBvcHRpb25zLnRleHR1cmVNYXBw
ZXIuYmluZFN1cmZhY2Uob3B0aW9ucy5zdXJmYWNlLmdldCgpKTsKKyAgICBvcHRpb25zLnRleHR1
cmVNYXBwZXIuYmluZFN1cmZhY2Uoc3VyZmFjZS5nZXQoKSk7CiAgICAgaWYgKG1faXNCYWNrZHJv
cCkgewogICAgICAgICBTZXRGb3JTY29wZTxUcmFuc2Zvcm1hdGlvbk1hdHJpeD4gc2NvcGVkVHJh
bnNmb3JtKG9wdGlvbnMudHJhbnNmb3JtLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCgpKTsKICAgICAg
ICAgU2V0Rm9yU2NvcGU8VGV4dHVyZU1hcHBlckxheWVyKj4gc2NvcGVkQmFja2Ryb3BMYXllcihv
cHRpb25zLmJhY2tkcm9wTGF5ZXIsIHRoaXMpOwpAQCAtNDU1LDM5ICs0NTMsMzkgQEAgdm9pZCBU
ZXh0dXJlTWFwcGVyTGF5ZXI6OnBhaW50SW50b1N1cmZhY2UoVGV4dHVyZU1hcHBlclBhaW50T3B0
aW9ucyYgb3B0aW9ucykKICAgICAgICAgcGFpbnRTZWxmQW5kQ2hpbGRyZW4ob3B0aW9ucyk7CiAg
ICAgaWYgKG1fc3RhdGUubWFza0xheWVyKQogICAgICAgICBtX3N0YXRlLm1hc2tMYXllci0+YXBw
bHlNYXNrKG9wdGlvbnMpOwotICAgIG9wdGlvbnMuc3VyZmFjZSA9IG9wdGlvbnMuc3VyZmFjZS0+
YXBwbHlGaWx0ZXJzKG9wdGlvbnMudGV4dHVyZU1hcHBlciwgbV9jdXJyZW50RmlsdGVycyk7Ci0g
ICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJpbmRTdXJmYWNlKG9wdGlvbnMuc3VyZmFjZS5nZXQo
KSk7CisgICAgcmV0dXJuIHN1cmZhY2UtPmFwcGx5RmlsdGVycyhvcHRpb25zLnRleHR1cmVNYXBw
ZXIsIG1fY3VycmVudEZpbHRlcnMpOwogfQogCiBzdGF0aWMgdm9pZCBjb21taXRTdXJmYWNlKFRl
eHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMsIEJpdG1hcFRleHR1cmUmIHN1cmZhY2Us
IGNvbnN0IEludFJlY3QmIHJlY3QsIGZsb2F0IG9wYWNpdHkpCiB7CiAgICAgSW50UmVjdCB0YXJn
ZXRSZWN0KHJlY3QpOwogICAgIHRhcmdldFJlY3QubW92ZShvcHRpb25zLm9mZnNldCk7Ci0gICAg
b3B0aW9ucy50ZXh0dXJlTWFwcGVyLmJpbmRTdXJmYWNlKG9wdGlvbnMuc3VyZmFjZS5nZXQoKSk7
CiAgICAgb3B0aW9ucy50ZXh0dXJlTWFwcGVyLmRyYXdUZXh0dXJlKHN1cmZhY2UsIHRhcmdldFJl
Y3QsIHsgfSwgb3BhY2l0eSk7CiB9CiAKIHZvaWQgVGV4dHVyZU1hcHBlckxheWVyOjpwYWludFdp
dGhJbnRlcm1lZGlhdGVTdXJmYWNlKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmIG9wdGlvbnMs
IGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CisgICAgYXV0byBjdXJyZW50U3VyZmFjZSA9IG9wdGlv
bnMudGV4dHVyZU1hcHBlci5jdXJyZW50U3VyZmFjZSgpOwogICAgIGF1dG8gc3VyZmFjZSA9IG9w
dGlvbnMudGV4dHVyZU1hcHBlci5hY3F1aXJlVGV4dHVyZUZyb21Qb29sKHJlY3Quc2l6ZSgpLCBC
aXRtYXBUZXh0dXJlOjpTdXBwb3J0c0FscGhhKTsKICAgICB7Ci0gICAgICAgIFNldEZvclNjb3Bl
PFJlZlB0cjxCaXRtYXBUZXh0dXJlPj4gc2NvcGVkU3VyZmFjZShvcHRpb25zLnN1cmZhY2UsIHN1
cmZhY2UpOwogICAgICAgICBTZXRGb3JTY29wZTxJbnRTaXplPiBzY29wZWRPZmZzZXQob3B0aW9u
cy5vZmZzZXQsIC10b0ludFNpemUocmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgIFNldEZvclNj
b3BlPGZsb2F0PiBzY29wZWRPcGFjaXR5KG9wdGlvbnMub3BhY2l0eSwgMSk7CiAgICAgICAgIGlm
IChtX3N0YXRlLnJlcGxpY2FMYXllcikgewogICAgICAgICAgICAgewogICAgICAgICAgICAgICAg
IFNldEZvclNjb3BlPFRyYW5zZm9ybWF0aW9uTWF0cml4PiBzY29wZWRUcmFuc2Zvcm0ob3B0aW9u
cy50cmFuc2Zvcm0sIG9wdGlvbnMudHJhbnNmb3JtKTsKICAgICAgICAgICAgICAgICBvcHRpb25z
LnRyYW5zZm9ybS5tdWx0aXBseShyZXBsaWNhVHJhbnNmb3JtKCkpOwotICAgICAgICAgICAgICAg
IHBhaW50SW50b1N1cmZhY2Uob3B0aW9ucyk7CisgICAgICAgICAgICAgICAgc3VyZmFjZSA9IHBh
aW50SW50b1N1cmZhY2Uoc3VyZmFjZSwgb3B0aW9ucyk7CiAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICBpZiAobV9zdGF0ZS5yZXBsaWNhTGF5ZXItPm1fc3RhdGUubWFza0xheWVyKQorICAgICAg
ICAgICAgaWYgKG1fc3RhdGUucmVwbGljYUxheWVyLT5tX3N0YXRlLm1hc2tMYXllcikgeworICAg
ICAgICAgICAgICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5iaW5kU3VyZmFjZShzdXJmYWNlLmdl
dCgpKTsKICAgICAgICAgICAgICAgICBtX3N0YXRlLnJlcGxpY2FMYXllci0+bV9zdGF0ZS5tYXNr
TGF5ZXItPmFwcGx5TWFzayhvcHRpb25zKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0g
ICAgICAgIHBhaW50SW50b1N1cmZhY2Uob3B0aW9ucyk7Ci0gICAgICAgIHN1cmZhY2UgPSBvcHRp
b25zLnN1cmZhY2U7CisgICAgICAgIHN1cmZhY2UgPSBwYWludEludG9TdXJmYWNlKHN1cmZhY2Us
IG9wdGlvbnMpOwogICAgIH0KIAorICAgIG9wdGlvbnMudGV4dHVyZU1hcHBlci5iaW5kU3VyZmFj
ZShjdXJyZW50U3VyZmFjZS5nZXQoKSk7CiAgICAgY29tbWl0U3VyZmFjZShvcHRpb25zLCAqc3Vy
ZmFjZSwgcmVjdCwgb3B0aW9ucy5vcGFjaXR5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXllci5o
CmluZGV4IDNjOWQzN2U2MDhkZi4uMGI4ZjQxY2YyZmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckxheWVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJMYXll
ci5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGFpbnRSZWN1cnNp
dmUoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQgcGFpbnRVc2luZ092ZXJs
YXBSZWdpb25zKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKLSAgICB2b2lkIHBhaW50SW50
b1N1cmZhY2UoVGV4dHVyZU1hcHBlclBhaW50T3B0aW9ucyYpOworICAgIFJlZlB0cjxCaXRtYXBU
ZXh0dXJlPiBwYWludEludG9TdXJmYWNlKFJlZlB0cjxCaXRtYXBUZXh0dXJlPiwgVGV4dHVyZU1h
cHBlclBhaW50T3B0aW9ucyYpOwogICAgIHZvaWQgcGFpbnRXaXRoSW50ZXJtZWRpYXRlU3VyZmFj
ZShUZXh0dXJlTWFwcGVyUGFpbnRPcHRpb25zJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQg
cGFpbnRTZWxmKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKICAgICB2b2lkIHBhaW50U2Vs
ZkFuZENoaWxkcmVuKFRleHR1cmVNYXBwZXJQYWludE9wdGlvbnMmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJU
cmVlSG9zdC5jcHAKaW5kZXggMDBkNWI3YTg3ZGY3Li42YjY5NjM2NGRmNDggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhv
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVX
Q0xheWVyVHJlZUhvc3QuY3BwCkBAIC04NCwxMSArODQsMTEgQEAgdWludDY0X3QgUmVtb3RlV0NM
YXllclRyZWVIb3N0OjptZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiB2b2lkIFJl
bW90ZVdDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlKQogewogICAg
IHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0cigqdGhpcyksIHNjZW5lID0gbV9zY2VuZS5nZXQoKSwgdXBkYXRl
ID0gV1RGTW92ZSh1cGRhdGUpXSgpIG11dGFibGUgewotICAgICAgICBzY2VuZS0+dXBkYXRlKFdU
Rk1vdmUodXBkYXRlKSk7Ci0gICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywg
d2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKV0geworICAgICAgICBhdXRvIHVwZGF0ZUluZm8g
PSBzY2VuZS0+dXBkYXRlKFdURk1vdmUodXBkYXRlKSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgdXBkYXRlSW5m
byA9IFdURk1vdmUodXBkYXRlSW5mbyldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OlJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpEaWRVcGRhdGUoKSk7CisgICAgICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6RGlkVXBkYXRlKFdU
Rk1vdmUodXBkYXRlSW5mbykpKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKaW5kZXggZTFkZTYw
YjFmY2UzLi4yOTg5YTk2NGYwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKQEAgLTc1LDEwICs3NSwxMCBAQCBXQ1NjZW5lOjp+V0NT
Y2VuZSgpCiAgICAgbV90ZXh0dXJlTWFwcGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBXQ1NjZW5l
Ojp1cGRhdGUoV0NVcGF0ZUluZm8mJiB1cGRhdGUpCitzdGQ6Om9wdGlvbmFsPFVwZGF0ZUluZm8+
IFdDU2NlbmU6OnVwZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSkKIHsKICAgICBpZiAoIW1fY29u
dGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGZvciAoYXV0byBpZCA6IHVwZGF0ZS5hZGRlZExheWVy
cykgewogICAgICAgICBhdXRvIGxheWVyID0gbWFrZVVuaXF1ZTxMYXllcj4oKTsKQEAgLTE5Nywx
NSArMTk3LDQwIEBAIHZvaWQgV0NTY2VuZTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlKQog
ICAgIGF1dG8gcm9vdExheWVyID0gJm1fbGF5ZXJzLmdldCh1cGRhdGUucm9vdExheWVyKS0+dGV4
bWFwTGF5ZXI7CiAgICAgcm9vdExheWVyLT5hcHBseUFuaW1hdGlvbnNSZWN1cnNpdmVseShNb25v
dG9uaWNUaW1lOjpub3coKSk7CiAKKyAgICBib29sIGhlYWRsZXNzTW9kZSA9IHRydWU7CiAgICAg
V2ViQ29yZTo6SW50U2l6ZSB3aW5kb3dTaXplID0gZXhwYW5kZWRJbnRTaXplKHJvb3RMYXllci0+
c2l6ZSgpKTsKLSAgICBnbFZpZXdwb3J0KDAsIDAsIHdpbmRvd1NpemUud2lkdGgoKSwgd2luZG93
U2l6ZS5oZWlnaHQoKSk7CisKKyAgICBpZiAoaGVhZGxlc3NNb2RlKSB7CisgICAgICAgIGF1dG8g
dGFyZ2V0ID0gbV90ZXh0dXJlTWFwcGVyLT5jcmVhdGVUZXh0dXJlKCk7CisgICAgICAgIHRhcmdl
dC0+cmVzZXQod2luZG93U2l6ZSk7CisgICAgICAgIG1fdGV4dHVyZU1hcHBlci0+YmluZFN1cmZh
Y2UodGFyZ2V0LnB0cigpKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZ2xWaWV3cG9ydCgwLCAwLCB3
aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCkpOwogCiAgICAgbV90ZXh0dXJl
TWFwcGVyLT5iZWdpblBhaW50aW5nKCk7CiAgICAgcm9vdExheWVyLT5wYWludCgqbV90ZXh0dXJl
TWFwcGVyKTsKICAgICBtX2Zwc0NvdW50ZXIudXBkYXRlRlBTQW5kRGlzcGxheSgqbV90ZXh0dXJl
TWFwcGVyKTsKICAgICBtX3RleHR1cmVNYXBwZXItPmVuZFBhaW50aW5nKCk7CiAKLSAgICBtX2Nv
bnRleHQtPnN3YXBCdWZmZXJzKCk7CisgICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiByZXN1
bHQ7CisgICAgaWYgKGhlYWRsZXNzTW9kZSkgeworICAgICAgICBhdXRvIGJpdG1hcCA9IFNoYXJl
YWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHdpbmRvd1NpemUsIHsgfSk7CisgICAgICAgIGds
UmVhZFBpeGVscygwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVpZ2h0KCks
IEdMX0JHUkFfRVhULCBHTF9VTlNJR05FRF9CWVRFLCBiaXRtYXAtPmRhdGEoKSk7CisgICAgICAg
IG1fdGV4dHVyZU1hcHBlci0+YmluZFN1cmZhY2UobnVsbHB0cik7CisgICAgICAgIFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKGJpdG1hcC0+Y3JlYXRlSGFuZGxl
KGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5lbXBsYWNlKCk7CisgICAgICAgICAgICBy
ZXN1bHQtPnZpZXdTaXplID0gd2luZG93U2l6ZTsKKyAgICAgICAgICAgIHJlc3VsdC0+ZGV2aWNl
U2NhbGVGYWN0b3IgPSAxOworICAgICAgICAgICAgcmVzdWx0LT51cGRhdGVTY2FsZUZhY3RvciA9
IDE7CisgICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IHZpZXdwb3J0ID0geyB7IH0sIHdpbmRv
d1NpemUgfTsKKyAgICAgICAgICAgIHJlc3VsdC0+dXBkYXRlUmVjdEJvdW5kcyA9IHZpZXdwb3J0
OworICAgICAgICAgICAgcmVzdWx0LT51cGRhdGVSZWN0cy5hcHBlbmQodmlld3BvcnQpOworICAg
ICAgICAgICAgcmVzdWx0LT5iaXRtYXBIYW5kbGUgPSBXVEZNb3ZlKGhhbmRsZSk7CisgICAgICAg
IH0KKyAgICB9IGVsc2UKKyAgICAgICAgbV9jb250ZXh0LT5zd2FwQnVmZmVycygpOworICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmgKaW5kZXggM2QxNTFkOWQyOTZhLi40
ZTFmYjcxNWFmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy93Yy9XQ1NjZW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3dj
L1dDU2NlbmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dD
KQogCisjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUHJvY2Vzc0lk
ZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBwZXJGUFNDb3VudGVyLmg+
CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTUwLDcgKzUxLDcgQEAgcHVibGljOgogICAg
IFdDU2NlbmUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50aWZpZXIpOwogICAgIH5XQ1NjZW5lKCk7CiAg
ICAgdm9pZCBpbml0aWFsaXplKFdDU2NlbmVDb250ZXh0Jik7Ci0gICAgdm9pZCB1cGRhdGUoV0NV
cGF0ZUluZm8mJik7CisgICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiB1cGRhdGUoV0NVcGF0
ZUluZm8mJik7CiAKIHByaXZhdGU6CiAgICAgc3RydWN0IExheWVyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5jcHAKaW5kZXggZjYzOTdlODlk
N2IyLi5lZTRlY2ZlMGE1NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dj
L0RyYXdpbmdBcmVhUHJveHlXQy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2Mv
RHJhd2luZ0FyZWFQcm94eVdDLmNwcApAQCAtNTksNiArNTksMTEgQEAgdm9pZCBEcmF3aW5nQXJl
YVByb3h5V0M6OnNpemVEaWRDaGFuZ2UoKQogICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVh
OjpVcGRhdGVHZW9tZXRyeShtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlELCBtX3NpemUpKTsK
IH0KIAordm9pZCBEcmF3aW5nQXJlYVByb3h5V0M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdp
bmcoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5v
bmUpOworfQorCiB2b2lkIERyYXdpbmdBcmVhUHJveHlXQzo6dXBkYXRlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgaWYg
KGJhY2tpbmdTdG9yZVN0YXRlSUQgPT0gbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmgKaW5kZXgg
YTE0N2MxMWNmNDczLi4wZjYzMWU0MTExOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5oCkBAIC00NCw2ICs0NCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gRHJhd2luZ0FyZWFQcm94eQogICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFu
Z2UoKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpGdW5jdGlvbjx2b2lkKENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsKICAgICAvLyBtZXNzYWdlIGhhbmRlcnMK
ICAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCwgY29uc3QgVXBkYXRlSW5mbyYpOwogICAgIHZvaWQg
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCwgY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmNwcApp
bmRleCBjMzcxZGQ5ODg4MzAuLmNkOTIwOWVmN2Q3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVX
Q0xheWVyVHJlZUhvc3RQcm94eS5jcHAKQEAgLTkzLDkgKzkzLDkgQEAgdm9pZCBSZW1vdGVXQ0xh
eWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlSW5mbykKICAgICBz
ZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OlVwZGF0ZSh1cGRhdGVJbmZvKSk7
CiB9CiAKLXZvaWQgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6OmRpZFVwZGF0ZSgpCit2b2lk
IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpkaWRVcGRhdGUoc3RkOjpvcHRpb25hbDxVcGRh
dGVJbmZvPiB1cGRhdGVJbmZvKQogewotICAgIG1fY2xpZW50LmRpZFVwZGF0ZSgpOworICAgIG1f
Y2xpZW50LmRpZFVwZGF0ZShXVEZNb3ZlKHVwZGF0ZUluZm8pKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5LmgKaW5kZXgg
ZjljZjdjZTdhOWJjLi4zZTY4ZDQ0N2QxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJU
cmVlSG9zdFByb3h5LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29u
bmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VTZW5kZXIuaCIKKyNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0NMYXllclRy
ZWVIb3N0SWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ0LDcgKzQ1LDcg
QEAgY2xhc3MgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkKIHB1YmxpYzoKICAgICBjbGFzcyBD
bGllbnQgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpID0g
MDsKKyAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZShzdGQ6Om9wdGlvbmFsPFVwZGF0ZUlu
Zm8+KSA9IDA7CiAgICAgfTsKIAogICAgIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5KFdlYlBh
Z2UmLCBDbGllbnQmKTsKQEAgLTUyLDcgKzUzLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRh
dGUoV0NVcGF0ZUluZm8mJik7CiAKLSAgICB2b2lkIGRpZFVwZGF0ZSgpOworICAgIHZvaWQgZGlk
VXBkYXRlKHN0ZDo6b3B0aW9uYWw8VXBkYXRlSW5mbz4pOwogCiBwcml2YXRlOgogICAgIFdDTGF5
ZXJUcmVlSG9zdElkZW50aWZpZXIgd2NMYXllclRyZWVIb3N0SWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fd2NMYXllclRyZWVIb3N0SWRlbnRpZmllcjsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNz
L3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDRmOGFmNzdh
MzExNi4uOWJkM2RlNjM5YTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXll
clRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4KQEAgLTIzLDcgKzIzLDcgQEAKICNpZiBVU0UoR1JB
UEhJQ1NfTEFZRVJfV0MpCiAKIG1lc3NhZ2VzIC0+IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5
IE5vdFJlZkNvdW50ZWQgewotICAgIERpZFVwZGF0ZSgpCisgICAgRGlkVXBkYXRlKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpVcGRhdGVJbmZvPiB1cGRhdGVJbmZvKQogfQogCiAjZW5kaWYgLy8gVVNF
KEdSQVBISUNTX0xBWUVSX1dDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS93Yy9EcmF3aW5nQXJlYVdDLmNwcAppbmRleCBkMWNjMmU0NDUzMjAuLjg0MjlkMzdi
ODM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJh
d2luZ0FyZWFXQy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2Mv
RHJhd2luZ0FyZWFXQy5jcHAKQEAgLTEyMSw2ICsxMjEsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYVdD
Ojp1cGRhdGVHZW9tZXRyeSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBJbnRTaXplIHZp
ZXdTaXoKIAogdm9pZCBEcmF3aW5nQXJlYVdDOjpzZXROZWVkc0Rpc3BsYXkoKQogeworICAgIGlm
IChpc0NvbXBvc2l0aW5nTW9kZSgpKSB7CisgICAgICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2RpcnR5UmVnaW9uID0geyB9OwogICAg
IG1fc2Nyb2xsUmVjdCA9IHsgfTsKICAgICBtX3Njcm9sbE9mZnNldCA9IHsgfTsKQEAgLTE2NSw2
ICsxNjksMTIgQEAgdm9pZCBEcmF3aW5nQXJlYVdDOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEKICAgICB0cmlnZ2VyUmVuZGVyaW5n
VXBkYXRlKCk7CiB9CiAKK3ZvaWQgRHJhd2luZ0FyZWFXQzo6Zm9yY2VSZXBhaW50QXN5bmMoV2Vi
UGFnZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sK
KyAgICBtX2ZvcmNlUmVwYWludENvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcik7CisgICAgc2V0TmVlZHNEaXNwbGF5KCk7Cit9CisKIHZvaWQgRHJhd2luZ0FyZWFX
Qzo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgaWYgKG1faXNSZW5kZXJpbmdTdXNw
ZW5kZWQgfHwgbV93YWl0RGlkVXBkYXRlKSB7CkBAIC0yNjksNyArMjc5LDcgQEAgdm9pZCBEcmF3
aW5nQXJlYVdDOjpzZW5kVXBkYXRlTm9uQUMoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IEludFJlY3QgYm91bmRzID0gbV9kaXJ0eVJlZ2lvbi5ib3VuZHMoKTsKLSAgICBBU1NFUlQobV93
ZWJQYWdlLmJvdW5kcygpLmNvbnRhaW5zKGJvdW5kcykpOworICAgIC8vQVNTRVJUKG1fd2ViUGFn
ZS5ib3VuZHMoKS5jb250YWlucyhib3VuZHMpKTsKICAgICBJbnRTaXplIGJpdG1hcFNpemUgPSBi
b3VuZHMuc2l6ZSgpOwogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gbV93ZWJQYWdlLmNv
cmVQYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCk7CiAgICAgYml0bWFwU2l6ZS5zY2FsZShkZXZp
Y2VTY2FsZUZhY3Rvcik7CkBAIC0zNDYsNyArMzU2LDE3IEBAIHZvaWQgRHJhd2luZ0FyZWFXQzo6
ZGlkVXBkYXRlKCkKICAgICBpZiAobV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSkgewogICAg
ICAgICBtX2hhc0RlZmVycmVkUmVuZGVyaW5nVXBkYXRlID0gZmFsc2U7CiAgICAgICAgIHRyaWdn
ZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB9IGVsc2UgaWYgKG1fZm9yY2VSZXBhaW50Q29tcGxl
dGlvbkhhbmRsZXIpCisgICAgICAgIG1fZm9yY2VSZXBhaW50Q29tcGxldGlvbkhhbmRsZXIoKTsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdDOjpkaWRVcGRhdGUoc3RkOjpvcHRpb25hbDxVcGRhdGVJ
bmZvPiB1cGRhdGVJbmZvKQoreworICAgIGlmICh1cGRhdGVJbmZvKSB7CisgICAgICAgIHNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OlVwZGF0ZShtX2JhY2tpbmdTdG9yZVN0YXRlSUQs
IFdURk1vdmUoKnVwZGF0ZUluZm8pKSk7CisgICAgICAgIHJldHVybjsKICAgICB9CisgICAgZGlk
VXBkYXRlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oCmluZGV4IDA0YzRlMWU3
ZDYxMC4uMmVjYjA1YjFkMDdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS93Yy9EcmF3aW5nQXJlYVdDLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKICAgICB2b2lkIHNldE5lZWRzRGlz
cGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
Y3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOwotICAgIHZvaWQgZm9yY2VSZXBhaW50QXN5
bmMoV2ViUGFnZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgb3ZlcnJpZGUgeyB9Cisg
ICAgdm9pZCBmb3JjZVJlcGFpbnRBc3luYyhXZWJQYWdlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKSBvdmVy
cmlkZTsKICAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3
cG9ydEF0dHJpYnV0ZXMmJikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBkZXZpY2VPclBhZ2VTY2Fs
ZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZSB7IH0KQEAgLTU5LDEzICs1OSwxNCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKICAgICBib29sIHNob3VsZFVzZVRpbGVkQmFj
a2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOwogICAgIC8vIEdyYXBoaWNzTGF5ZXJX
Qzo6T2JzZXJ2ZXIKICAgICB2b2lkIGdyYXBoaWNzTGF5ZXJBZGRlZChHcmFwaGljc0xheWVyV0Mm
KSBvdmVycmlkZTsKICAgICB2b2lkIGdyYXBoaWNzTGF5ZXJSZW1vdmVkKEdyYXBoaWNzTGF5ZXJX
QyYpIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0TGF5ZXJVcGF0ZUluZm8oV0NMYXllclVwYXRl
SW5mbyYmKSBvdmVycmlkZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2VCdWZmZXI+IGNyZWF0
ZUltYWdlQnVmZmVyKFdlYkNvcmU6OkZsb2F0U2l6ZSkgb3ZlcnJpZGU7CiAgICAgLy8gUmVtb3Rl
V0NMYXllclRyZWVIb3N0UHJveHk6OkNsaWVudAotICAgIHZvaWQgZGlkVXBkYXRlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRVcGRhdGUoc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPikgb3ZlcnJp
ZGU7CiAKICAgICBib29sIGlzQ29tcG9zaXRpbmdNb2RlKCk7CiAgICAgdm9pZCB1cGRhdGVSZW5k
ZXJpbmcoKTsKQEAgLTkxLDYgKzkyLDcgQEAgcHJpdmF0ZToKICAgICBXZWJDb3JlOjpSZWdpb24g
bV9kaXJ0eVJlZ2lvbjsKICAgICBXZWJDb3JlOjpJbnRSZWN0IG1fc2Nyb2xsUmVjdDsKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fc2Nyb2xsT2Zmc2V0OworICAgIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4gbV9mb3JjZVJlcGFpbnRDb21wbGV0aW9uSGFuZGxlcjsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCBmODE4
YTBlNjdkMmQuLjEyNDdkODJiOTU3NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25z
OjpkZWZhdWx0cygpCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICAgICAgICAgeyAiVXNl
R1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQiLCBmYWxzZSB9LAogI2VuZGlmCi0jaWYg
RU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmICFQTEFURk9STShXSU4pCiAgICAgICAgICAgICB7ICJV
c2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkIiwgZmFsc2UgfSwKICNlbmRpZgogICAgICAgICB9
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449966</attachid>
            <date>2022-01-25 14:12:33 -0800</date>
            <delta_ts>2022-01-25 22:40:53 -0800</delta_ts>
            <desc>WIP patch</desc>
            <filename>wc-2022-01-26.diff</filename>
            <type>text/plain</type>
            <size>34623</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLmNwcAppbmRleCA3MmE0MjJkNGFlZmQuLjAwNWZmODI0YjBjZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cApAQCAtMzU1LDkgKzM1NSw5IEBAIHZvaWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y29u
ZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBjaGFubmVsTmFtCiB9CiAKICNpZiBV
U0UoR1JBUEhJQ1NfTEFZRVJfV0MpCi12b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNy
ZWF0ZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF0aXZlV2luZG93KQordm9pZCBHUFVDb25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpjcmVhdGVXQ0xheWVyVHJlZUhvc3QoV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdywgYm9vbCB1c2VzT2Zmc2Ny
ZWVuUmVuZGVyaW5nKQogewotICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVXQ0xheWVyVHJl
ZUhvc3RNYXAuYWRkKGlkZW50aWZpZXIsIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCp0
aGlzLCBXVEZNb3ZlKGlkZW50aWZpZXIpLCBuYXRpdmVXaW5kb3cpKTsKKyAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fcmVtb3RlV0NMYXllclRyZWVIb3N0TWFwLmFkZChpZGVudGlmaWVyLCBSZW1vdGVX
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShpZGVudGlmaWVyKSwgbmF0aXZl
V2luZG93LCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKSk7CiAgICAgQVNTRVJUX1VOVVNFRChhZGRS
ZXN1bHQsIGFkZFJlc3VsdC5pc05ld0VudHJ5KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKaW5kZXggOTgxYjQ4ZTg3
ZTZkLi5iYmVkMzMyY2UyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9H
UFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuaApAQCAtMjQ5LDcgKzI0OSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmLCBXVEZMb2dD
aGFubmVsU3RhdGUsIFdURkxvZ0xldmVsKTsKIAogI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykK
LSAgICB2b2lkIGNyZWF0ZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdyk7CisgICAgdm9pZCBjcmVhdGVXQ0xheWVy
VHJlZUhvc3QoV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyLCB1aW50NjRfdCBuYXRp
dmVXaW5kb3csIGJvb2wgdXNlc09mZnNjcmVlblJlbmRlcmluZyk7CiAgICAgdm9pZCByZWxlYXNl
V0NMYXllclRyZWVIb3N0KFdlYktpdDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmllcik7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCA5MTliNWQzMGUxMGYuLjFiODMy
YTMxODNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTUzLDcgKzUzLDcgQEAg
bWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2Fn
ZSB7CiAgICAgU2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhWZWN0b3I8U3RyaW5nPiBsYW5ndWFn
ZXMpCiAgICAgQ29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoU3RyaW5nIGNoYW5uZWxOYW1lLCBlbnVt
OnVpbnQ4X3QgV1RGTG9nQ2hhbm5lbFN0YXRlIHN0YXRlLCBlbnVtOnVpbnQ4X3QgV1RGTG9nTGV2
ZWwgbGV2ZWwpCiAjaWYgVVNFKEdSQVBISUNTX0xBWUVSX1dDKQotICAgIENyZWF0ZVdDTGF5ZXJU
cmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDY0X3QgbmF0aXZlV2luZG93KQorICAgIENyZWF0ZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldD
TGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZlV2luZG93
LCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpCiAgICAgUmVsZWFzZVdDTGF5ZXJUcmVlSG9z
dChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllcikKICNlbmRpZgog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90
ZVdDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
d2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAwMGQ1YjdhODdkZjcuLjIwZWJlNjU1
ZmIwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1Jl
bW90ZVdDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTMyLDI2ICszMiwyNSBAQAog
I2luY2x1ZGUgIkdQVVByb2Nlc3MuaCIKICNpbmNsdWRlICJSZW1vdGVHcmFwaGljc0NvbnRleHRH
TC5oIgogI2luY2x1ZGUgIlJlbW90ZVdDTGF5ZXJUcmVlSG9zdE1lc3NhZ2VzLmgiCi0jaW5jbHVk
ZSAiUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIlN0cmVh
bUNvbm5lY3Rpb25Xb3JrUXVldWUuaCIKICNpbmNsdWRlICJXQ1NjZW5lLmgiCiAjaW5jbHVkZSAi
V0NVcGF0ZUluZm8uaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLXN0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVXQ0xheWVyVHJlZUhvc3Q+IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKEdQVUNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdlYktpdDo6V0NM
YXllclRyZWVIb3N0SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVXaW5kb3cp
CitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlV0NMYXllclRyZWVIb3N0PiBSZW1vdGVXQ0xheWVyVHJl
ZUhvc3Q6OmNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWlu
dDY0X3QgbmF0aXZlV2luZG93LCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpCiB7Ci0gICAg
cmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlV0NMYXllclRyZWVIb3N0Pihjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzLCBpZGVudGlmaWVyLCBuYXRpdmVXaW5kb3cpOworICAgIHJldHVybiBtYWtlVW5pcXVl
PFJlbW90ZVdDTGF5ZXJUcmVlSG9zdD4oY29ubmVjdGlvblRvV2ViUHJvY2VzcywgaWRlbnRpZmll
ciwgbmF0aXZlV2luZG93LCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKTsKIH0KIAotUmVtb3RlV0NM
YXllclRyZWVIb3N0OjpSZW1vdGVXQ0xheWVyVHJlZUhvc3QoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdykKK1JlbW90ZVdDTGF5ZXJU
cmVlSG9zdDo6UmVtb3RlV0NMYXllclRyZWVIb3N0KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdlYktpdDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmll
ciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVXaW5kb3csIGJvb2wgdXNlc09mZnNjcmVlblJl
bmRlcmluZykKICAgICA6IG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcyhjb25uZWN0aW9uVG9XZWJQ
cm9jZXNzKQogICAgICwgbV93ZWJQcm9jZXNzSWRlbnRpZmllcihjb25uZWN0aW9uVG9XZWJQcm9j
ZXNzLndlYlByb2Nlc3NJZGVudGlmaWVyKCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKICAgICAsIG1fc2hhcmVkU2NlbmVDb250ZXh0SG9sZGVyKGNvbm5lY3Rpb25Ub1dlYlByb2Nl
c3MuZ3B1UHJvY2VzcygpLnNoYXJlZFNjZW5lQ29udGV4dCgpLmVuc3VyZUhvbGRlckZvcldpbmRv
dyhuYXRpdmVXaW5kb3cpKQogewogICAgIG1fY29ubmVjdGlvblRvV2ViUHJvY2Vzcy0+bWVzc2Fn
ZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVy
VHJlZUhvc3Q6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyLnRvVUludDY0KCks
ICp0aGlzKTsKLSAgICBtX3NjZW5lID0gbWFrZVVuaXF1ZTxXQ1NjZW5lPihtX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyKTsKKyAgICBtX3NjZW5lID0gbWFrZVVuaXF1ZTxXQ1NjZW5lPihtX3dlYlByb2Nl
c3NJZGVudGlmaWVyLCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKTsKICAgICByZW1vdGVHcmFwaGlj
c0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFtzY2VuZSA9IG1fc2NlbmUuZ2V0
KCksIHNjZW5lQ29udGV4dEhvbGRlciA9IG1fc2hhcmVkU2NlbmVDb250ZXh0SG9sZGVyLmdldCgp
LCBuYXRpdmVXaW5kb3ddIHsKICAgICAgICAgaWYgKCFzY2VuZUNvbnRleHRIb2xkZXItPmNvbnRl
eHQpCiAgICAgICAgICAgICBzY2VuZUNvbnRleHRIb2xkZXItPmNvbnRleHQuZW1wbGFjZShuYXRp
dmVXaW5kb3cpOwpAQCAtODEsMTQgKzgwLDE0IEBAIHVpbnQ2NF90IFJlbW90ZVdDTGF5ZXJUcmVl
SG9zdDo6bWVzc2FnZVNlbmRlckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiBtX2lk
ZW50aWZpZXIudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OnVw
ZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSkKK3ZvaWQgUmVtb3RlV0NMYXllclRyZWVIb3N0Ojp1
cGRhdGUoV0NVcGF0ZUluZm8mJiB1cGRhdGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxXZWJLaXQ6OlVwZGF0ZUluZm8+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAg
ICByZW1vdGVHcmFwaGljc0NvbnRleHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIoKnRoaXMpLCBzY2VuZSA9IG1fc2NlbmUuZ2V0KCksIHVwZGF0
ZSA9IFdURk1vdmUodXBkYXRlKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgc2NlbmUtPnVwZGF0ZShX
VEZNb3ZlKHVwZGF0ZSkpOwotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMs
IHdlYWtUaGlzID0gV1RGTW92ZSh3ZWFrVGhpcyldIHsKKyAgICByZW1vdGVHcmFwaGljc0NvbnRl
eHRHTFN0cmVhbVdvcmtRdWV1ZSgpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIo
KnRoaXMpLCBzY2VuZSA9IG1fc2NlbmUuZ2V0KCksIHVwZGF0ZSA9IFdURk1vdmUodXBkYXRlKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgYXV0byB1cGRhdGVJbmZvID0gc2NlbmUtPnVwZGF0ZShXVEZNb3ZlKHVwZGF0
ZSkpOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0g
V1RGTW92ZSh3ZWFrVGhpcyksIHVwZGF0ZUluZm8gPSBXVEZNb3ZlKHVwZGF0ZUluZm8pLCBjb21w
bGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6RGlkVXBk
YXRlKCkpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZSh1cGRhdGVJbmZv
KSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5oCmluZGV4
IGIxYmIyYWFmNTdlNy4uZWFkN2U0MTRkZWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5oCkBA
IC0zNiwxNyArMzYsMTggQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOworY2xhc3MgVXBkYXRlSW5mbzsKIGNsYXNzIFdDU2NlbmU7CiBzdHJ1
Y3QgV0NVcGF0ZUluZm87CiAKIGNsYXNzIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdCA6IHB1YmxpYyBJ
UEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIgewogICAgIFdU
Rl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9w
dHI8UmVtb3RlV0NMYXllclRyZWVIb3N0PiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIFdlYktpdDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZlV2lu
ZG93KTsKLSAgICBSZW1vdGVXQ0xheWVyVHJlZUhvc3QoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cyYsIFdlYktpdDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZlV2lu
ZG93KTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVdDTGF5ZXJUcmVlSG9zdD4g
Y3JlYXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9z
dElkZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdywgYm9vbCB1c2VzT2Zmc2NyZWVuUmVu
ZGVyaW5nKTsKKyAgICBSZW1vdGVXQ0xheWVyVHJlZUhvc3QoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYsIFdlYktpdDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZl
V2luZG93LCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpOwogICAgIH5SZW1vdGVXQ0xheWVy
VHJlZUhvc3QoKTsKICAgICAvLyBtZXNzYWdlIGhhbmRsZXJzCi0gICAgdm9pZCB1cGRhdGUoV0NV
cGF0ZUluZm8mJik7CisgICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUluZm8mJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6VXBkYXRlSW5mbz4pPiYmKTsKIAogcHJp
dmF0ZToKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVy
VHJlZUhvc3QubWVzc2FnZXMuaW4KaW5kZXggMjUxNmZkYTQxOTFkLi42YmQzMWEyMTM0OWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xh
eWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMs
NyBAQAogI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKIAogbWVzc2FnZXMgLT4gUmVtb3RlV0NM
YXllclRyZWVIb3N0IE5vdFJlZkNvdW50ZWQgewotICAgIFVwZGF0ZShzdHJ1Y3QgV2ViS2l0OjpX
Q1VwYXRlSW5mbyB1cGRhdGVJbmZvKQorICAgIFVwZGF0ZShzdHJ1Y3QgV2ViS2l0OjpXQ1VwYXRl
SW5mbyB1cGRhdGVJbmZvKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlVwZGF0ZUluZm8+IHVw
ZGF0ZUluZm8pIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKaW5k
ZXggZTFkZTYwYjFmY2UzLi5kMmI5MjkxZDAzYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQ
VVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKQEAgLTY0LDggKzY0LDkgQEAgdm9pZCBX
Q1NjZW5lOjppbml0aWFsaXplKFdDU2NlbmVDb250ZXh0JiBjb250ZXh0KQogICAgIG1fdGV4dHVy
ZU1hcHBlciA9IG1fY29udGV4dC0+Y3JlYXRlVGV4dHVyZU1hcHBlcigpOwogfQogCi1XQ1NjZW5l
OjpXQ1NjZW5lKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVy
KQorV0NTY2VuZTo6V0NTY2VuZShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllciB3ZWJQcm9jZXNz
SWRlbnRpZmllciwgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKQogICAgIDogbV93ZWJQcm9j
ZXNzSWRlbnRpZmllcih3ZWJQcm9jZXNzSWRlbnRpZmllcikKKyAgICAsIG1fdXNlc09mZnNjcmVl
blJlbmRlcmluZyh1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKQogewogfQogCkBAIC03NSwxMCArNzYs
MTAgQEAgV0NTY2VuZTo6fldDU2NlbmUoKQogICAgIG1fdGV4dHVyZU1hcHBlciA9IG51bGxwdHI7
CiB9CiAKLXZvaWQgV0NTY2VuZTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlKQorc3RkOjpv
cHRpb25hbDxVcGRhdGVJbmZvPiBXQ1NjZW5lOjp1cGRhdGUoV0NVcGF0ZUluZm8mJiB1cGRhdGUp
CiB7CiAgICAgaWYgKCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQotICAgICAgICBy
ZXR1cm47CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBmb3IgKGF1dG8gaWQg
OiB1cGRhdGUuYWRkZWRMYXllcnMpIHsKICAgICAgICAgYXV0byBsYXllciA9IG1ha2VVbmlxdWU8
TGF5ZXI+KCk7CkBAIC0yMDAsMTIgKzIwMSwyOSBAQCB2b2lkIFdDU2NlbmU6OnVwZGF0ZShXQ1Vw
YXRlSW5mbyYmIHVwZGF0ZSkKICAgICBXZWJDb3JlOjpJbnRTaXplIHdpbmRvd1NpemUgPSBleHBh
bmRlZEludFNpemUocm9vdExheWVyLT5zaXplKCkpOwogICAgIGdsVmlld3BvcnQoMCwgMCwgd2lu
ZG93U2l6ZS53aWR0aCgpLCB3aW5kb3dTaXplLmhlaWdodCgpKTsKIAotICAgIG1fdGV4dHVyZU1h
cHBlci0+YmVnaW5QYWludGluZygpOworICAgIG1fdGV4dHVyZU1hcHBlci0+YmVnaW5QYWludGlu
ZyhtX3VzZXNPZmZzY3JlZW5SZW5kZXJpbmcgPyBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWlu
dGluZ01pcnJvcmVkIDogMCk7CiAgICAgcm9vdExheWVyLT5wYWludCgqbV90ZXh0dXJlTWFwcGVy
KTsKICAgICBtX2Zwc0NvdW50ZXIudXBkYXRlRlBTQW5kRGlzcGxheSgqbV90ZXh0dXJlTWFwcGVy
KTsKICAgICBtX3RleHR1cmVNYXBwZXItPmVuZFBhaW50aW5nKCk7CiAKLSAgICBtX2NvbnRleHQt
PnN3YXBCdWZmZXJzKCk7CisgICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiByZXN1bHQ7Cisg
ICAgaWYgKG1fdXNlc09mZnNjcmVlblJlbmRlcmluZykgeworICAgICAgICBhdXRvIGJpdG1hcCA9
IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlU2hhcmVhYmxlKHdpbmRvd1NpemUsIHsgfSk7CisgICAg
ICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVp
Z2h0KCksIEdMX0JHUkFfRVhULCBHTF9VTlNJR05FRF9CWVRFLCBiaXRtYXAtPmRhdGEoKSk7Cisg
ICAgICAgIFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGhhbmRsZTsKKyAgICAgICAgaWYgKGJpdG1h
cC0+Y3JlYXRlSGFuZGxlKGhhbmRsZSkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5lbXBsYWNlKCk7
CisgICAgICAgICAgICByZXN1bHQtPnZpZXdTaXplID0gd2luZG93U2l6ZTsKKyAgICAgICAgICAg
IHJlc3VsdC0+ZGV2aWNlU2NhbGVGYWN0b3IgPSAxOworICAgICAgICAgICAgcmVzdWx0LT51cGRh
dGVTY2FsZUZhY3RvciA9IDE7CisgICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0IHZpZXdwb3J0
ID0geyB7IH0sIHdpbmRvd1NpemUgfTsKKyAgICAgICAgICAgIHJlc3VsdC0+dXBkYXRlUmVjdEJv
dW5kcyA9IHZpZXdwb3J0OworICAgICAgICAgICAgcmVzdWx0LT51cGRhdGVSZWN0cy5hcHBlbmQo
dmlld3BvcnQpOworICAgICAgICAgICAgcmVzdWx0LT5iaXRtYXBIYW5kbGUgPSBXVEZNb3ZlKGhh
bmRsZSk7CisgICAgICAgIH0KKyAgICB9IGVsc2UKKyAgICAgICAgbV9jb250ZXh0LT5zd2FwQnVm
ZmVycygpOworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUu
aCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmgKaW5kZXgg
M2QxNTFkOWQyOTZhLi5iZDY5NTJhYTU4MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgVVNFKEdS
QVBISUNTX0xBWUVSX1dDKQogCisjaW5jbHVkZSAiVXBkYXRlSW5mby5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUHJvY2Vzc0lkZW50aWZpZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHR1cmVNYXBw
ZXJGUFNDb3VudGVyLmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTQ3LDEwICs0OCwx
MCBAQCBzdHJ1Y3QgV0NVcGF0ZUluZm87CiBjbGFzcyBXQ1NjZW5lIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBXQ1NjZW5lKFdlYkNvcmU6OlByb2Nlc3NJZGVu
dGlmaWVyKTsKKyAgICBXQ1NjZW5lKFdlYkNvcmU6OlByb2Nlc3NJZGVudGlmaWVyLCBib29sIHVz
ZXNPZmZzY3JlZW5SZW5kZXJpbmcpOwogICAgIH5XQ1NjZW5lKCk7CiAgICAgdm9pZCBpbml0aWFs
aXplKFdDU2NlbmVDb250ZXh0Jik7Ci0gICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUluZm8mJik7Cisg
ICAgc3RkOjpvcHRpb25hbDxVcGRhdGVJbmZvPiB1cGRhdGUoV0NVcGF0ZUluZm8mJik7CiAKIHBy
aXZhdGU6CiAgICAgc3RydWN0IExheWVyOwpAQCAtNjEsNiArNjIsNyBAQCBwcml2YXRlOgogICAg
IHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0dXJlTWFwcGVyPiBtX3RleHR1cmVNYXBwZXI7
CiAgICAgV2ViQ29yZTo6VGV4dHVyZU1hcHBlckZQU0NvdW50ZXIgbV9mcHNDb3VudGVyOwogICAg
IExheWVyTWFwIG1fbGF5ZXJzOworICAgIGJvb2wgbV91c2VzT2Zmc2NyZWVuUmVuZGVyaW5nOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQppbmRleCAz
Njc2YzM1MTQ1NjQuLjI0YmQ4NDI2NzJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0
Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0x
NDcsOCArMTQ3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0X0lOQ0xVREVfRElSRUNUT1JJRVMKIAog
bGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy9ncmFw
aGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3QKLQotICAgIFdlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5CiApCiAKIHNldChXZWJLaXRDb21tb25J
bmNsdWRlRGlyZWN0b3JpZXMgJHtXZWJLaXRfSU5DTFVERV9ESVJFQ1RPUklFU30pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4
IDU4MmM1ZTNiZTMzNS4uODM4OTMyNDI4N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtMTMzLDYgKzEzMyw5IEBAIHZv
aWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKICNlbmRpZgogI2lmIFBMQVRGT1JNKFdJTikKICAgICBlbmNvZGVyIDw8IG5hdGl2
ZVdpbmRvd0hhbmRsZTsKKyNlbmRpZgorI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKKyAgICBl
bmNvZGVyIDw8IHVzZXNPZmZzY3JlZW5SZW5kZXJpbmc7CiAjZW5kaWYKICAgICBlbmNvZGVyIDw8
IHNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQ7CiAgICAgZW5jb2RlciA8PCB1c2VySW50ZXJm
YWNlTGF5b3V0RGlyZWN0aW9uOwpAQCAtNDUwLDYgKzQ1MywxMCBAQCBzdGQ6Om9wdGlvbmFsPFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29k
ZShJUEM6OgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5uYXRpdmVXaW5kb3dI
YW5kbGUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogI2VuZGlmCisjaWYgVVNFKEdS
QVBISUNTX0xBWUVSX1dDKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy51c2Vz
T2Zmc2NyZWVuUmVuZGVyaW5nKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyNlbmRp
ZgogCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNob3VsZFNjYWxlVmlld1Rv
Rml0RG9jdW1lbnQpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGViZDUxZjU0
NjFmZC4uN2I3MDY1YWI5ZDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5oCkBAIC0xOTUsNiArMTk1LDkgQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogI2VuZGlmCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIHVpbnQ2
NF90IG5hdGl2ZVdpbmRvd0hhbmRsZTsKKyNlbmRpZgorI2lmIFVTRShHUkFQSElDU19MQVlFUl9X
QykKKyAgICBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcgeyBmYWxzZSB9OwogI2VuZGlmCiAg
ICAgYm9vbCBzaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuY3BwCmluZGV4IDUzMWZmNTJkMzVlYi4uMTM3ODhk
N2UyYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNw
cApAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCBXS1ZpZXdTZXRJc0luV2luZG93KFdLVmlld1JlZiB2
aWV3UmVmLCBib29sIGlzSW5XaW5kb3cpCiAgICAgdG9JbXBsKHZpZXdSZWYpLT5zZXRJc0luV2lu
ZG93KGlzSW5XaW5kb3cpOwogfQogCit2b2lkIFdLVmlld1NldFVzZXNPZmZzY3JlZW5SZW5kZXJp
bmcoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwodmlld1Jl
ZiktPnNldFVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoZW5hYmxlZCk7Cit9CisKIHZvaWQgV0tWaWV3
U2V0U2Nyb2xsT2Zmc2V0T25OZXh0UmVzaXplKFdLVmlld1JlZiB2aWV3UmVmLCBXS1NpemUgc2Ny
b2xsT2Zmc2V0KQogewogICAgIHRvSW1wbCh2aWV3UmVmKS0+c2V0U2Nyb2xsT2Zmc2V0T25OZXh0
UmVzaXplKHRvSW50U2l6ZShzY3JvbGxPZmZzZXQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL3dpbi9XS1ZpZXcuaAppbmRleCBmMTUxZDhhZjQzMzkuLmE1OWE4YTJmMjkzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaApAQCAtNDEsNiArNDEs
NyBAQCBXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmIHZpZXcpOwog
V0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0UGFyZW50V2luZG93KFdLVmlld1JlZiB2aWV3LCBIV05E
IHBhcmVudFdpbmRvdyk7CiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdXaW5kb3dBbmNlc3RyeURpZENo
YW5nZShXS1ZpZXdSZWYgdmlldyk7CiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRJc0luV2luZG93
KFdLVmlld1JlZiB2aWV3LCBib29sIGlzSW5XaW5kb3cpOworV0tfRVhQT1JUIHZvaWQgV0tWaWV3
U2V0VXNlc09mZnNjcmVlblJlbmRlcmluZyhXS1ZpZXdSZWYgdmlldywgYm9vbCBlbmFibGVkKTsK
IFdLX0VYUE9SVCB2b2lkIFdLVmlld1NldFNjcm9sbE9mZnNldE9uTmV4dFJlc2l6ZShXS1ZpZXdS
ZWYgdmlldywgV0tTaXplIHNjcm9sbE9mZnNldCk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDgyZDlkY2ZhNTZhOS4uYmJlNGE1YzA1
NzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC02MzgsNiArNjM4LDEw
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUNsaWNrRm9yRGF0YURldGVjdGlvblJlc3VsdChjb25zdCBXZWJDb3JlOjpEYXRhRGV0
ZWN0b3JFbGVtZW50SW5mbyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CiAjZW5kaWYK
KworI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKKyAgICB2aXJ0dWFsIGJvb2wgdXNlc09mZnNj
cmVlblJlbmRlcmluZygpIGNvbnN0ID0gMDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2MDI3
M2MxMDBiZDUuLjEwOWUwOWRhZjVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC04MzEwLDYgKzgzMTAsOSBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwog
I2lmIFBMQVRGT1JNKFdJTikKICAgICBwYXJhbWV0ZXJzLm5hdGl2ZVdpbmRvd0hhbmRsZSA9IHJl
aW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHZpZXdXaWRnZXQoKSk7CiAjZW5kaWYKKyNpZiBVU0Uo
R1JBUEhJQ1NfTEFZRVJfV0MpCisgICAgcGFyYW1ldGVycy51c2VzT2Zmc2NyZWVuUmVuZGVyaW5n
ID0gcGFnZUNsaWVudCgpLnVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoKTsKKyNlbmRpZgogCiAgICAg
Zm9yIChhdXRvJiBpdGVyYXRvciA6IG1fdXJsU2NoZW1lSGFuZGxlcnNCeVNjaGVtZSkKICAgICAg
ICAgcGFyYW1ldGVycy51cmxTY2hlbWVIYW5kbGVycy5zZXQoaXRlcmF0b3Iua2V5LCBpdGVyYXRv
ci52YWx1ZS0+aWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93
Yy9EcmF3aW5nQXJlYVByb3h5V0MuY3BwCmluZGV4IGY2Mzk3ZTg5ZDdiMi4uZWU0ZWNmZTBhNTZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93Yy9EcmF3aW5nQXJlYVByb3h5
V0MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlX
Qy5jcHAKQEAgLTU5LDYgKzU5LDExIEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eVdDOjpzaXplRGlk
Q2hhbmdlKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6VXBkYXRlR2VvbWV0cnko
bV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCwgbV9zaXplKSk7CiB9CiAKK3ZvaWQgRHJhd2lu
Z0FyZWFQcm94eVdDOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248
dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBj
b21wbGV0aW9uSGFuZGxlcihDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKK30KKwogdm9pZCBE
cmF3aW5nQXJlYVByb3h5V0M6OnVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBVcGRhdGVJbmZvJiB1cGRhdGVJbmZvKQogewogICAgIGlmIChiYWNraW5nU3RvcmVTdGF0
ZUlEID09IG1fY3VycmVudEJhY2tpbmdTdG9yZVN0YXRlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93Yy9EcmF3aW5nQXJlYVByb3h5V0MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5oCmluZGV4IGExNDdjMTFjZjQ3My4uMGY2
MzFlNDExMTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93Yy9EcmF3aW5n
QXJlYVByb3h5V0MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93Yy9EcmF3aW5nQXJl
YVByb3h5V0MuaApAQCAtNDQsNiArNDQsNyBAQCBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVh
UHJveHkKICAgICB2b2lkIGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGUgeyB9
CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJikgb3ZlcnJpZGU7CiAgICAgLy8gbWVzc2FnZSBoYW5kZXJzCiAgICAgdm9pZCB1cGRhdGUo
dWludDY0X3QsIGNvbnN0IFVwZGF0ZUluZm8mKTsKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUodWludDY0X3QsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDdjYWFl
MWY2OGI0Zi4uNGJmZTRkNmNlNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dp
bi9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTM0Miw2ICszNDIsMTEgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnRO
YXZpZ2F0aW8KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29sIFBhZ2VDbGllbnRJbXBs
Ojp1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92aWV3LnVz
ZXNPZmZzY3JlZW5SZW5kZXJpbmcoKTsKK30KKwogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hh
bmdlQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAppbmRleCA4NGZlMTZhYWQ3YzIu
LjIzYjNmMGU3YTBlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1Bh
Z2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGll
bnRJbXBsLmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNo
TmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24qKSBvdmVycmlkZTsKICAgICB2b2lkIGRpZEZhaWxO
YXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlw
ZSkgb3ZlcnJpZGU7CisgICAgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3Qgb3Zl
cnJpZGU7CiAKICAgICAvLyBBdXhpbGlhcnkgQ2xpZW50IENyZWF0aW9uCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCmluZGV4
IGJhNWM3NDUyZmVmOS4uZTVhOGMzYjY5ZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2lu
L1dlYlZpZXcuY3BwCkBAIC05MzcsNCArOTM3LDE0IEBAIHZvaWQgV2ViVmlldzo6c2V0VG9vbFRp
cChjb25zdCBTdHJpbmcmIHRvb2xUaXApCiAgICAgOjpTZW5kTWVzc2FnZShtX3Rvb2xUaXBXaW5k
b3csIFRUTV9BQ1RJVkFURSwgIXRvb2xUaXAuaXNFbXB0eSgpLCAwKTsKIH0KIAordm9pZCBXZWJW
aWV3OjpzZXRVc2VzT2Zmc2NyZWVuUmVuZGVyaW5nKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3Vz
ZXNPZmZzY3JlZW5SZW5kZXJpbmcgPSBlbmFibGVkOworfQorCitib29sIFdlYlZpZXc6OnVzZXNP
ZmZzY3JlZW5SZW5kZXJpbmcoKSBjb25zdAoreworICAgIHJldHVybiBtX3VzZXNPZmZzY3JlZW5S
ZW5kZXJpbmc7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3dpbi9XZWJWaWV3LmgKaW5kZXggMGY3NjA0NWY2M2Y2Li5jOTU4NmQ0YjJhMWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaApAQCAtNjksNiArNjksOCBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRTY3JvbGxPZmZzZXRPbk5leHRSZXNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIHNldFVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoYm9vbCk7CisgICAg
Ym9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFZpZXdO
ZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7CiAKQEAgLTE0OCw2ICsxNTAsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNBY3RpdmF0ZWRCeU1vdXNlRXZlbnQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV90cmFja2luZ01vdXNlTGVhdmUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c0JlaW5nRGVzdHJveWVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdXNlc09mZnNjcmVlblJlbmRl
cmluZyB7IGZhbHNlIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50
SW1wbD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IG1fcGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3Rl
V0NMYXllclRyZWVIb3N0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAKaW5kZXggYzM3MWRkOTg4
ODMwLi40YzliMDBiYTk3NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0
UHJveHkuY3BwCkBAIC0zMCwxNiArMzAsMTUgQEAKIAogI2luY2x1ZGUgIkdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJSZW1vdGVXQ0xheWVyVHJlZUhvc3RNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIlJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXQ1VwYXRlSW5mby5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZW1vdGVXQ0xheWVyVHJlZUhvc3RQ
cm94eTo6UmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkoV2ViUGFnZSYgcGFnZSwgQ2xpZW50JiBj
bGllbnQpCitSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6UmVtb3RlV0NMYXllclRyZWVIb3N0
UHJveHkoV2ViUGFnZSYgcGFnZSwgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKQogICAgIDog
bV9wYWdlKHBhZ2UpCi0gICAgLCBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3VzZXNPZmZzY3Jl
ZW5SZW5kZXJpbmcodXNlc09mZnNjcmVlblJlbmRlcmluZykKIHsKIH0KIApAQCAtNTgsOSArNTcs
OCBAQCBHUFVQcm9jZXNzQ29ubmVjdGlvbiYgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6OmVu
c3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCkKICAgICBpZiAoIW1fZ3B1UHJvY2Vzc0Nvbm5lY3Rp
b24pIHsKICAgICAgICAgYXV0byYgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpOwogICAgICAgICBncHVQcm9j
ZXNzQ29ubmVjdGlvbi5hZGRDbGllbnQoKnRoaXMpOwotICAgICAgICBncHVQcm9jZXNzQ29ubmVj
dGlvbi5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHdjTGF5ZXJU
cmVlSG9zdElkZW50aWZpZXIoKS50b1VJbnQ2NCgpLCAqdGhpcyk7CiAgICAgICAgIGdwdVByb2Nl
c3NDb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKAotICAgICAgICAgICAgTWVzc2FnZXM6OkdQ
VUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVdDTGF5ZXJUcmVlSG9zdCh3Y0xheWVyVHJl
ZUhvc3RJZGVudGlmaWVyKCksIG1fcGFnZS5uYXRpdmVXaW5kb3dIYW5kbGUoKSksCisgICAgICAg
ICAgICBNZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlV0NMYXllclRy
ZWVIb3N0KHdjTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIoKSwgbV9wYWdlLm5hdGl2ZVdpbmRvd0hh
bmRsZSgpLCBtX3VzZXNPZmZzY3JlZW5SZW5kZXJpbmcpLAogICAgICAgICAgICAgMCwgSVBDOjpT
ZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwog
ICAgICAgICBtX2dwdVByb2Nlc3NDb25uZWN0aW9uID0gZ3B1UHJvY2Vzc0Nvbm5lY3Rpb247CiAg
ICAgfQpAQCAtNzEsNyArNjksNiBAQCB2b2lkIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Ojpk
aXNjb25uZWN0R3B1UHJvY2Vzc0lmTmVlZGVkKCkKIHsKICAgICBpZiAoYXV0byBncHVQcm9jZXNz
Q29ubmVjdGlvbiA9IHN0ZDo6ZXhjaGFuZ2UobV9ncHVQcm9jZXNzQ29ubmVjdGlvbiwgbnVsbHB0
cikpIHsKICAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7
Ci0gICAgICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLT5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5yZW1v
dmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Ojpt
ZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHdjTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIoKS50b1VJbnQ2
NCgpKTsKICAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPmNvbm5lY3Rpb24oKS5zZW5kKE1l
c3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpSZWxlYXNlV0NMYXllclRyZWVIb3N0
KHdjTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIoKSksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0
Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKICAgICB9CiB9CkBAIC03OSw3
ICs3Niw2IEBAIHZvaWQgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6OmRpc2Nvbm5lY3RHcHVQ
cm9jZXNzSWZOZWVkZWQoKQogdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6Z3B1UHJv
Y2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYgcHJldmlvdXNDb25u
ZWN0aW9uKQogewogICAgIHByZXZpb3VzQ29ubmVjdGlvbi5yZW1vdmVDbGllbnQoKnRoaXMpOwot
ICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPm1lc3NhZ2VSZWNlaXZlck1hcCgpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6Om1lc3Nh
Z2VSZWNlaXZlck5hbWUoKSwgd2NMYXllclRyZWVIb3N0SWRlbnRpZmllcigpLnRvVUludDY0KCkp
OwogICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwogfQogCkBAIC04OCwxNCAr
ODQsOSBAQCB1aW50NjRfdCBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6bWVzc2FnZVNlbmRl
ckRlc3RpbmF0aW9uSUQoKSBjb25zdAogICAgIHJldHVybiB3Y0xheWVyVHJlZUhvc3RJZGVudGlm
aWVyKCkudG9VSW50NjQoKTsKIH0KIAotdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6
dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlSW5mbykKK3ZvaWQgUmVtb3RlV0NMYXllclRyZWVI
b3N0UHJveHk6OnVwZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZUluZm8sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlVwZGF0ZUluZm8+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OlVw
ZGF0ZSh1cGRhdGVJbmZvKSk7Ci19Ci0KLXZvaWQgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6
OmRpZFVwZGF0ZSgpCi17Ci0gICAgbV9jbGllbnQuZGlkVXBkYXRlKCk7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OlVwZGF0ZSh1cGRhdGVJ
bmZvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
d2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkuaAppbmRleCBmOWNm
N2NlN2E5YmMuLmVkNGM0ZjVmMWEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVI
b3N0UHJveHkuaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0
aW9uLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNl
bmRlci5oIgorI2luY2x1ZGUgIlVwZGF0ZUluZm8uaCIKICNpbmNsdWRlICJXQ0xheWVyVHJlZUhv
c3RJZGVudGlmaWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzcsMjIgKzM4LDE0IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogc3RydWN0IFdDVXBhdGVJbmZvOwogCiBjbGFzcyBSZW1vdGVX
Q0xheWVyVHJlZUhvc3RQcm94eQotICAgIDogcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgot
ICAgICwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VTZW5kZXIKKyAgICA6IHByaXZhdGUgSVBDOjpNZXNz
YWdlU2VuZGVyCiAgICAgLCBwcml2YXRlIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgotICAgIGNsYXNzIENsaWVudCB7
Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgPSAwOwotICAg
IH07Ci0KLSAgICBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eShXZWJQYWdlJiwgQ2xpZW50Jik7
CisgICAgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkoV2ViUGFnZSYsIGJvb2wgdXNlc09mZnNj
cmVlblJlbmRlcmluZyk7CiAgICAgflJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5KCk7CiAKLSAg
ICB2b2lkIHVwZGF0ZShXQ1VwYXRlSW5mbyYmKTsKLQotICAgIHZvaWQgZGlkVXBkYXRlKCk7Cisg
ICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUluZm8mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFdlYktpdDo6VXBkYXRlSW5mbz4pPiYmKTsKIAogcHJpdmF0ZToKICAgICBXQ0xh
eWVyVHJlZUhvc3RJZGVudGlmaWVyIHdjTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3djTGF5ZXJUcmVlSG9zdElkZW50aWZpZXI7IH07CkBAIC02Miw5ICs1NSw2IEBA
IHByaXZhdGU6CiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAogICAgIHZvaWQg
Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpIGZpbmFs
OwogCi0gICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwotCiAgICAgLy8g
SVBDOjpNZXNzYWdlU2VuZGVyCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29u
bmVjdGlvbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHVpbnQ2NF90IG1lc3NhZ2VTZW5kZXJEZXN0
aW5hdGlvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CkBAIC03Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAg
ICAgV2Vha1B0cjxHUFVQcm9jZXNzQ29ubmVjdGlvbj4gbV9ncHVQcm9jZXNzQ29ubmVjdGlvbjsK
ICAgICBXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyIG1fd2NMYXllclRyZWVIb3N0SWRlbnRpZmll
ciB7IFdDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXI6OmdlbmVyYXRlKCkgfTsKICAgICBXZWJQYWdl
JiBtX3BhZ2U7Ci0gICAgQ2xpZW50JiBtX2NsaWVudDsKKyAgICBib29sIG1fdXNlc09mZnNjcmVl
blJlbmRlcmluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NM
YXllclRyZWVIb3N0UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ZjhhZjc3YTMxMTYuLjAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5
ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEsMjkgKzAsMCBA
QAotIyBDb3B5cmlnaHQgKEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRhaW5tZW50IElu
Yy4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0jICAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAot
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKLSMg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQotI2lmIFVTRShH
UkFQSElDU19MQVlFUl9XQykKLQotbWVzc2FnZXMgLT4gUmVtb3RlV0NMYXllclRyZWVIb3N0UHJv
eHkgTm90UmVmQ291bnRlZCB7Ci0gICAgRGlkVXBkYXRlKCkKLX0KLQotI2VuZGlmIC8vIFVTRShH
UkFQSElDU19MQVlFUl9XQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAKaW5kZXggZDFjYzJlNDQ1MzIwLi4yN2QxMjM1YmU4
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdp
bmdBcmVhV0MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0Ry
YXdpbmdBcmVhV0MuY3BwCkBAIC00Myw3ICs0Myw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBEcmF3aW5nQXJlYVdDOjpEcmF3aW5nQXJlYVdDKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBEcmF3aW5nQXJl
YShEcmF3aW5nQXJlYVR5cGU6OldDLCBwYXJhbWV0ZXJzLmRyYXdpbmdBcmVhSWRlbnRpZmllciwg
d2ViUGFnZSkKLSAgICAsIG1fcmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkobWFrZVVuaXF1ZTxS
ZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eT4od2ViUGFnZSwgKnRoaXMpKQorICAgICwgbV9yZW1v
dGVXQ0xheWVyVHJlZUhvc3RQcm94eShtYWtlVW5pcXVlPFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFBy
b3h5Pih3ZWJQYWdlLCBwYXJhbWV0ZXJzLnVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpKQogICAgICwg
bV9sYXllckZhY3RvcnkoKnRoaXMpCiAgICAgLCBtX3Jvb3RMYXllcihHcmFwaGljc0xheWVyOjpj
cmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgdGhpcy0+bV9yb290TGF5ZXJDbGllbnQpKQog
ICAgICwgbV91cGRhdGVSZW5kZXJpbmdUaW1lcigqdGhpcywgJkRyYXdpbmdBcmVhV0M6OnVwZGF0
ZVJlbmRlcmluZykKQEAgLTEyMSw2ICsxMjEsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYVdDOjp1cGRh
dGVHZW9tZXRyeSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBJbnRTaXplIHZpZXdTaXoK
IAogdm9pZCBEcmF3aW5nQXJlYVdDOjpzZXROZWVkc0Rpc3BsYXkoKQogeworICAgIGlmIChpc0Nv
bXBvc2l0aW5nTW9kZSgpKSB7CisgICAgICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KICAgICBtX2RpcnR5UmVnaW9uID0geyB9OwogICAgIG1fc2Ny
b2xsUmVjdCA9IHsgfTsKICAgICBtX3Njcm9sbE9mZnNldCA9IHsgfTsKQEAgLTEzMSw3ICsxMzUs
OSBAQCB2b2lkIERyYXdpbmdBcmVhV0M6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRS
ZWN0JiByZWN0KQogewogICAgIGlmIChpc0NvbXBvc2l0aW5nTW9kZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9kaXJ0eVJlZ2lvbi51bml0ZShyZWN0KTsKKyAgICBJbnRSZWN0IGRpcnR5UmVj
dCA9IHJlY3Q7CisgICAgZGlydHlSZWN0LmludGVyc2VjdChtX3dlYlBhZ2UuYm91bmRzKCkpOwor
ICAgIG1fZGlydHlSZWdpb24udW5pdGUoZGlydHlSZWN0KTsKICAgICB0cmlnZ2VyUmVuZGVyaW5n
VXBkYXRlKCk7CiB9CiAKQEAgLTE2NSw2ICsxNzEsMTIgQEAgdm9pZCBEcmF3aW5nQXJlYVdDOjpz
Y3JvbGwoY29uc3QgSW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEKICAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKK3ZvaWQgRHJhd2luZ0FyZWFX
Qzo6Zm9yY2VSZXBhaW50QXN5bmMoV2ViUGFnZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBtX2ZvcmNlUmVwYWludENvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7CisgICAgc2V0TmVlZHNEaXNwbGF5KCk7
Cit9CisKIHZvaWQgRHJhd2luZ0FyZWFXQzo6dHJpZ2dlclJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAg
ICAgaWYgKG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgfHwgbV93YWl0RGlkVXBkYXRlKSB7CkBAIC0y
MzMsMTIgKzI0NSwxOCBAQCB2b2lkIERyYXdpbmdBcmVhV0M6OnNlbmRVcGRhdGVBQygpCiAKICAg
ICBtX3VwZGF0ZUluZm8ucm9vdExheWVyID0gbV9yb290TGF5ZXItPnByaW1hcnlMYXllcklEKCk7
CiAKLSAgICBtX2NvbW1pdFF1ZXVlLT5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
KCp0aGlzKSwgdXBkYXRlSW5mbyA9IHN0ZDo6ZXhjaGFuZ2UobV91cGRhdGVJbmZvLCB7IH0pXSgp
IG11dGFibGUgeworICAgIG1fY29tbWl0UXVldWUtPmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9
IFdlYWtQdHIoKnRoaXMpLCBzdGF0ZUlEID0gbV9iYWNraW5nU3RvcmVTdGF0ZUlELCB1cGRhdGVJ
bmZvID0gc3RkOjpleGNoYW5nZShtX3VwZGF0ZUluZm8sIHsgfSldKCkgbXV0YWJsZSB7CiAgICAg
ICAgIGZsdXNoTGF5ZXJJbWFnZUJ1ZmZlcnModXBkYXRlSW5mbyk7Ci0gICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgdXBk
YXRlSW5mbyA9IFdURk1vdmUodXBkYXRlSW5mbyldKCkgbXV0YWJsZSB7CisgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwg
c3RhdGVJRCwgdXBkYXRlSW5mbyA9IFdURk1vdmUodXBkYXRlSW5mbyldKCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgICAgIG1fcmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHktPnVwZGF0ZShXVEZNb3ZlKHVwZGF0
ZUluZm8pKTsKKyAgICAgICAgICAgIG1fcmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHktPnVwZGF0
ZShXVEZNb3ZlKHVwZGF0ZUluZm8pLCBbdGhpcywgc3RhdGVJRF0oc3RkOjpvcHRpb25hbDxVcGRh
dGVJbmZvPiB1cGRhdGVJbmZvKSB7CisgICAgICAgICAgICAgICAgaWYgKHVwZGF0ZUluZm8gJiYg
c3RhdGVJRCA9PSBtX2JhY2tpbmdTdG9yZVN0YXRlSUQpIHsKKyAgICAgICAgICAgICAgICAgICAg
c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWFQcm94eTo6VXBkYXRlKG1fYmFja2luZ1N0b3JlU3Rh
dGVJRCwgV1RGTW92ZSgqdXBkYXRlSW5mbykpKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBkaWRVcGRhdGUoKTsKKyAgICAg
ICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICB9KTsKIH0KQEAgLTM0Niw3ICszNjQsOCBAQCB2
b2lkIERyYXdpbmdBcmVhV0M6OmRpZFVwZGF0ZSgpCiAgICAgaWYgKG1faGFzRGVmZXJyZWRSZW5k
ZXJpbmdVcGRhdGUpIHsKICAgICAgICAgbV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IGZh
bHNlOwogICAgICAgICB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCk7Ci0gICAgfQorICAgIH0gZWxz
ZSBpZiAobV9mb3JjZVJlcGFpbnRDb21wbGV0aW9uSGFuZGxlcikKKyAgICAgICAgbV9mb3JjZVJl
cGFpbnRDb21wbGV0aW9uSGFuZGxlcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVh
V0MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0Mu
aAppbmRleCAwNGM0ZTFlN2Q2MTAuLmI0MzM4ODk3NzJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuaApAQCAtMzYsOCArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFXQyBmaW5hbAogICAg
IDogcHVibGljIERyYXdpbmdBcmVhCi0gICAgLCBwdWJsaWMgR3JhcGhpY3NMYXllcldDOjpPYnNl
cnZlcgotICAgICwgcHVibGljIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpDbGllbnQgewor
ICAgICwgcHVibGljIEdyYXBoaWNzTGF5ZXJXQzo6T2JzZXJ2ZXIgewogcHVibGljOgogICAgIERy
YXdpbmdBcmVhV0MoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsK
ICAgICB+RHJhd2luZ0FyZWFXQygpIG92ZXJyaWRlOwpAQCAtNDgsNyArNDcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXROZWVk
c0Rpc3BsYXlJblJlY3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNjcm9sbERlbHRhKSBvdmVycmlkZTsKLSAgICB2b2lkIGZvcmNlUmVwYWlu
dEFzeW5jKFdlYlBhZ2UmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlIHsg
fQorICAgIHZvaWQgZm9yY2VSZXBhaW50QXN5bmMoV2ViUGFnZSYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCB0cmlnZ2VyUmVuZGVyaW5nVXBkYXRlKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgZGV2aWNlT3JQYWdl
U2NhbGVGYWN0b3JDaGFuZ2VkKCkgb3ZlcnJpZGUgeyB9CkBAIC01OSwxMyArNTgsMTIgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRVc2VUaWxl
ZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3Qgb3Zl
cnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGUoKSBvdmVycmlkZTsKICAgICAvLyBHcmFwaGljc0xh
eWVyV0M6Ok9ic2VydmVyCiAgICAgdm9pZCBncmFwaGljc0xheWVyQWRkZWQoR3JhcGhpY3NMYXll
cldDJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBncmFwaGljc0xheWVyUmVtb3ZlZChHcmFwaGljc0xh
eWVyV0MmKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdExheWVyVXBhdGVJbmZvKFdDTGF5ZXJV
cGF0ZUluZm8mJikgb3ZlcnJpZGU7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPiBj
cmVhdGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpGbG9hdFNpemUpIG92ZXJyaWRlOwotICAgIC8vIFJl
bW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpDbGllbnQKLSAgICB2b2lkIGRpZFVwZGF0ZSgpIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBpc0NvbXBvc2l0aW5nTW9kZSgpOwogICAgIHZvaWQgdXBkYXRl
UmVuZGVyaW5nKCk7CkBAIC05MSw2ICs4OSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6UmVn
aW9uIG1fZGlydHlSZWdpb247CiAgICAgV2ViQ29yZTo6SW50UmVjdCBtX3Njcm9sbFJlY3Q7CiAg
ICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9sbE9mZnNldDsKKyAgICBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+IG1fZm9yY2VSZXBhaW50Q29tcGxldGlvbkhhbmRsZXI7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKaW5kZXgg
ZjgxOGEwZTY3ZDJkLi4xMjQ3ZDgyYjk1NzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9w
dGlvbnMuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0
aW9uczo6ZGVmYXVsdHMoKQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAgICAgICAgIHsg
IlVzZUdQVVByb2Nlc3NGb3JET01SZW5kZXJpbmdFbmFibGVkIiwgZmFsc2UgfSwKICNlbmRpZgot
I2lmIEVOQUJMRShHUFVfUFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKQorI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykgJiYgRU5BQkxFKFdFQkdMKSAmJiAhUExBVEZPUk0oV0lOKQogICAgICAgICAgICAg
eyAiVXNlR1BVUHJvY2Vzc0ZvcldlYkdMRW5hYmxlZCIsIGZhbHNlIH0sCiAjZW5kaWYKICAgICAg
ICAgfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2Vi
Vmlld1dpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdX
aW4uY3BwCmluZGV4IGM4MzEyMjhiZGE3YS4uNjE2MDI5ODM4YmZkIDEwMDY0NAotLS0gYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHAKQEAgLTg1LDYgKzg1
LDcgQEAgUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmlndXJhdGlv
blJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXMKICAgICBSRUNUIHZpZXdSZWN0ID0geyB9Owog
ICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZSh2aWV3UmVjdCwgY29uZmlndXJhdGlvbiwgbV93aW5k
b3cpOwogICAgIFdLVmlld1NldElzSW5XaW5kb3cobV92aWV3LCB0cnVlKTsKKyAgICBXS1ZpZXdT
ZXRVc2VzT2Zmc2NyZWVuUmVuZGVyaW5nKG1fdmlldywgdHJ1ZSk7CiAKICAgICBTaG93V2luZG93
KG1fd2luZG93LCBTV19TSE9XKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449997</attachid>
            <date>2022-01-25 22:41:06 -0800</date>
            <delta_ts>2022-01-28 21:23:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215041-20220126154104.patch</filename>
            <type>text/plain</type>
            <size>41014</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlkZDg1Njc3ZThkMWY0Zjkw
Nzc3MmNkYmI4YzVhZDYxNGY1NThmZDUuLjlmZmExNjU1NDgxYmFlZGU4ZGUwM2Y0ZmJkZjk2MDlk
YTI1MDQ5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzYgQEAKKzIwMjItMDEtMjUgIEZ1amlpIEhp
cm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbkNhaXJvXSBX
ZWJLaXRUZXN0UnVubmVyIHNob3VsZCBzdXBwb3J0IHBpeGVsIGR1bXAgZm9yIGFjY2VsZXJhdGVk
IGNvbXBvc2l0aW5nIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIxNTA0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdpbmRvd3MgV2ViS2l0VGVzdFJ1bm5lciBpcyB1c2luZyBXTV9QUklOVCBtZXNz
YWdlIHRvIGdldCB0aGUKKyAgICAgICAgd2lkb253cyBjb250ZW50IGZvciB0aGUgcGl4ZWwgZHVt
cCBzdXBwb3J0LiBIb3dldmVyLCBpbiB0aGUKKyAgICAgICAgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgbW9kZSwgdGhlIGNvbXBvc2l0b3IgaW4gdGhlIEdQVSBwcm9jZXNzCisgICAgICAgIGRpcmVj
dGx5IHJlbmRlcnMgdG8gdGhlIEhXTkQgb2YgVUkgcHJvY2Vzcy4KKworICAgICAgICBUaGlzIGNo
YW5nZSBhZGRlZCB0aGUgb2Zmc2NyZWVuIHJlbmRlcmluZyBtb2RlIGZvciB0aGUgY29tcG9zaXRv
ci4KKyAgICAgICAgSW4gdGhpcyBtb2RlLCB0aGUgcmVuZGVyaW5nIHJlc3VsdHMgb2YgdGhlIGNv
bXBvc2l0b3IgYXJlIGNhcHR1cmVkCisgICAgICAgIGJ5IHVzaW5nIGdsUmVhZFBpeGVscyBpbiBH
UFUgcHJvY2VzcywgYW5kIHRyYW5zZmVycmVkIGl0IHRvIFVJCisgICAgICAgIHByb2Nlc3Mgdmlh
IHRoZSBub24tQUMgbW9kZSBjb2RlIHBhdGguCisKKyAgICAgICAgQWRkZWQgV0tWaWV3U2V0VXNl
c09mZnNjcmVlblJlbmRlcmluZyBBUEkgdG8gZW5hYmxlIHRoZSBvZmZzY3JlZW4KKyAgICAgICAg
cmVuZGVyaW5nIG1vZGUuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dl
YlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpjcmVhdGVXQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL3dj
L1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdDTGF5
ZXJUcmVlSG9zdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV0NMYXllclRyZWVI
b3N0OjpSZW1vdGVXQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXQ0xh
eWVyVHJlZUhvc3Q6OnVwZGF0ZSk6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9S
ZW1vdGVXQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL3dj
L1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNz
L2dyYXBoaWNzL3djL1dDU2NlbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXQ1NjZW5lOjpXQ1Nj
ZW5lKToKKyAgICAgICAgKFdlYktpdDo6V0NTY2VuZTo6dXBkYXRlKToKKyAgICAgICAgKiBHUFVQ
cm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUuaDoKKyAgICAgICAgKiBQbGF0Zm9ybVdpbi5jbWFr
ZToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAg
ICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdTZXRVc2VzT2Zmc2Ny
ZWVuUmVuZGVyaW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eVdDOjpkaXNwYXRjaEFmdGVyRW5z
dXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdD
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nIGNvbnN0KToK
KyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL3dpbi9XZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6c2V0VXNl
c09mZnNjcmVlblJlbmRlcmluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OnVzZXNPZmZz
Y3JlZW5SZW5kZXJpbmcgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViVmlldy5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVl
SG9zdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV0NMYXllclRyZWVIb3N0UHJv
eHk6OlJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
V0NMYXllclRyZWVIb3N0UHJveHk6OmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6OmRpc2Nvbm5lY3RHcHVQcm9j
ZXNzSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94
eTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Ojp1cGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVX
Q0xheWVyVHJlZUhvc3RQcm94eTo6ZGlkVXBkYXRlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFBy
b3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93
Yy9EcmF3aW5nQXJlYVdDLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFXQzo6RHJh
d2luZ0FyZWFXQyk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhV0M6OnNldE5lZWRzRGlz
cGxheSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhV0M6OnNldE5lZWRzRGlzcGxheUlu
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhV0M6OmZvcmNlUmVwYWludEFzeW5j
KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWFXQzo6c2VuZFVwZGF0ZUFDKToKKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWFXQzo6ZGlkVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5oOgorCiAyMDIyLTAxLTI1ICBNaWNoYWVsIFNh
Ym9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgogCiAgICAgICAgIEluc3RhbGwgYnVpbGQgZmFpbHVy
ZSB3aGVuIHVzaW5nIFNZU1RFTV9DT05URU5UX1BBVEgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCA4NWIzOTEx
Y2QxNzg4MTAxZmNmOTE5NjY5MWVlZTU3MjY4ODk3MzczLi42MTUxMDI2OTQxOGNjZTIzNTE2ZGMz
NWE3NmFmNmNkZmU0YTUxYWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC0zNTksOSArMzU5LDkgQEAgdm9p
ZCBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25z
dCBTdHJpbmcmIGNoYW5uZWxOYW0KIH0KIAogI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLXZv
aWQgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlV0NMYXllclRyZWVIb3N0KFdlYktp
dDo6V0NMYXllclRyZWVIb3N0SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVX
aW5kb3cpCit2b2lkIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNyZWF0ZVdDTGF5ZXJUcmVl
SG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0
X3QgbmF0aXZlV2luZG93LCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpCiB7Ci0gICAgYXV0
byBhZGRSZXN1bHQgPSBtX3JlbW90ZVdDTGF5ZXJUcmVlSG9zdE1hcC5hZGQoaWRlbnRpZmllciwg
UmVtb3RlV0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKnRoaXMsIFdURk1vdmUoaWRlbnRpZmllciks
IG5hdGl2ZVdpbmRvdykpOworICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9yZW1vdGVXQ0xheWVyVHJl
ZUhvc3RNYXAuYWRkKGlkZW50aWZpZXIsIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKCp0
aGlzLCBXVEZNb3ZlKGlkZW50aWZpZXIpLCBuYXRpdmVXaW5kb3csIHVzZXNPZmZzY3JlZW5SZW5k
ZXJpbmcpKTsKICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50
cnkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVj
dGlvblRvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MuaAppbmRleCBjOGFiYmY0NTA5ZjIyY2VhYzJiZTBlYzFkZTViMzdjNGU4
NTBlYmYwLi42MjRlM2ZhMzUxY2YwYjAzNWUyZTEzYTkzMzI1ZGRkNGMzNDJiMTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvR1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
LmgKQEAgLTI1Myw3ICsyNTMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29uZmlndXJlTG9nZ2lu
Z0NoYW5uZWwoY29uc3QgU3RyaW5nJiwgV1RGTG9nQ2hhbm5lbFN0YXRlLCBXVEZMb2dMZXZlbCk7
CiAKICNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCi0gICAgdm9pZCBjcmVhdGVXQ0xheWVyVHJl
ZUhvc3QoV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVX
aW5kb3cpOworICAgIHZvaWQgY3JlYXRlV0NMYXllclRyZWVIb3N0KFdlYktpdDo6V0NMYXllclRy
ZWVIb3N0SWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZlV2luZG93LCBib29sIHVzZXNPZmZzY3Jl
ZW5SZW5kZXJpbmcpOwogICAgIHZvaWQgcmVsZWFzZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldD
TGF5ZXJUcmVlSG9zdElkZW50aWZpZXIpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9HUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2Fn
ZXMuaW4KaW5kZXggOTE5YjVkMzBlMTBmZTUwYTliMGE2OWQyOTlhMDZlODMwYTU4OTRhNS4uMWI4
MzJhMzE4M2Y4Mjk0ZWMwNTdjY2E5Yzc2ZmFiYTAwMjRlNTRiYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL0dQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
bWVzc2FnZXMuaW4KQEAgLTUzLDcgKzUzLDcgQEAgbWVzc2FnZXMgLT4gR1BVQ29ubmVjdGlvblRv
V2ViUHJvY2VzcyBXYW50c0Rpc3BhdGNoTWVzc2FnZSB7CiAgICAgU2V0VXNlclByZWZlcnJlZExh
bmd1YWdlcyhWZWN0b3I8U3RyaW5nPiBsYW5ndWFnZXMpCiAgICAgQ29uZmlndXJlTG9nZ2luZ0No
YW5uZWwoU3RyaW5nIGNoYW5uZWxOYW1lLCBlbnVtOnVpbnQ4X3QgV1RGTG9nQ2hhbm5lbFN0YXRl
IHN0YXRlLCBlbnVtOnVpbnQ4X3QgV1RGTG9nTGV2ZWwgbGV2ZWwpCiAjaWYgVVNFKEdSQVBISUNT
X0xBWUVSX1dDKQotICAgIENyZWF0ZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVl
SG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3QgbmF0aXZlV2luZG93KQorICAgIENy
ZWF0ZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRl
bnRpZmllciwgdWludDY0X3QgbmF0aXZlV2luZG93LCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJp
bmcpCiAgICAgUmVsZWFzZVdDTGF5ZXJUcmVlSG9zdChXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElk
ZW50aWZpZXIgaWRlbnRpZmllcikKICNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNw
cAppbmRleCAwMGQ1YjdhODdkZjdmNjhjMjg0NWI0YjEwNDMxZjJkZDE2YTk2YTFiLi4yMGViZTY1
NWZiMDZmMDM5ZjYyMTk0ZWJmNjVhMDBhMjFiZTJiY2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVI
b3N0LmNwcApAQCAtMzIsMjYgKzMyLDI1IEBACiAjaW5jbHVkZSAiR1BVUHJvY2Vzcy5oIgogI2lu
Y2x1ZGUgIlJlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgiCiAjaW5jbHVkZSAiUmVtb3RlV0NMYXll
clRyZWVIb3N0TWVzc2FnZXMuaCIKLSNpbmNsdWRlICJSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiU3RyZWFtQ29ubmVjdGlvbldvcmtRdWV1ZS5oIgogI2lu
Y2x1ZGUgIldDU2NlbmUuaCIKICNpbmNsdWRlICJXQ1VwYXRlSW5mby5oIgogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVdDTGF5ZXJUcmVlSG9zdD4gUmVtb3Rl
V0NMYXllclRyZWVIb3N0OjpjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVj
dGlvblRvV2ViUHJvY2VzcywgV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdykKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVXQ0xh
eWVyVHJlZUhvc3Q+IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb25U
b1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIFdlYktpdDo6V0NMYXllclRyZWVI
b3N0SWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVXaW5kb3csIGJvb2wgdXNl
c09mZnNjcmVlblJlbmRlcmluZykKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxSZW1vdGVXQ0xh
eWVyVHJlZUhvc3Q+KGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MsIGlkZW50aWZpZXIsIG5hdGl2ZVdp
bmRvdyk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8UmVtb3RlV0NMYXllclRyZWVIb3N0Pihjb25u
ZWN0aW9uVG9XZWJQcm9jZXNzLCBpZGVudGlmaWVyLCBuYXRpdmVXaW5kb3csIHVzZXNPZmZzY3Jl
ZW5SZW5kZXJpbmcpOwogfQogCi1SZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OlJlbW90ZVdDTGF5ZXJU
cmVlSG9zdChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBjb25uZWN0aW9uVG9XZWJQcm9jZXNz
LCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qg
bmF0aXZlV2luZG93KQorUmVtb3RlV0NMYXllclRyZWVIb3N0OjpSZW1vdGVXQ0xheWVyVHJlZUhv
c3QoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvblRvV2ViUHJvY2VzcywgV2Vi
S2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2
ZVdpbmRvdywgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKQogICAgIDogbV9jb25uZWN0aW9u
VG9XZWJQcm9jZXNzKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgLCBtX3dlYlByb2Nlc3NJ
ZGVudGlmaWVyKGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mud2ViUHJvY2Vzc0lkZW50aWZpZXIoKSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9zaGFyZWRTY2VuZUNvbnRl
eHRIb2xkZXIoY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5ncHVQcm9jZXNzKCkuc2hhcmVkU2NlbmVD
b250ZXh0KCkuZW5zdXJlSG9sZGVyRm9yV2luZG93KG5hdGl2ZVdpbmRvdykpCiB7CiAgICAgbV9j
b25uZWN0aW9uVG9XZWJQcm9jZXNzLT5tZXNzYWdlUmVjZWl2ZXJNYXAoKS5hZGRNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX2lkZW50aWZpZXIudG9VSW50NjQoKSwgKnRoaXMpOwotICAgIG1fc2NlbmUgPSBtYWtl
VW5pcXVlPFdDU2NlbmU+KG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIpOworICAgIG1fc2NlbmUgPSBt
YWtlVW5pcXVlPFdDU2NlbmU+KG1fd2ViUHJvY2Vzc0lkZW50aWZpZXIsIHVzZXNPZmZzY3JlZW5S
ZW5kZXJpbmcpOwogICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCku
ZGlzcGF0Y2goW3NjZW5lID0gbV9zY2VuZS5nZXQoKSwgc2NlbmVDb250ZXh0SG9sZGVyID0gbV9z
aGFyZWRTY2VuZUNvbnRleHRIb2xkZXIuZ2V0KCksIG5hdGl2ZVdpbmRvd10gewogICAgICAgICBp
ZiAoIXNjZW5lQ29udGV4dEhvbGRlci0+Y29udGV4dCkKICAgICAgICAgICAgIHNjZW5lQ29udGV4
dEhvbGRlci0+Y29udGV4dC5lbXBsYWNlKG5hdGl2ZVdpbmRvdyk7CkBAIC04MSwxNCArODAsMTQg
QEAgdWludDY0X3QgUmVtb3RlV0NMYXllclRyZWVIb3N0OjptZXNzYWdlU2VuZGVyRGVzdGluYXRp
b25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIG1faWRlbnRpZmllci50b1VJbnQ2NCgpOwogfQogCi12
b2lkIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlKQor
dm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6VXBkYXRlSW5mbz4p
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3Ry
ZWFtV29ya1F1ZXVlKCkuZGlzcGF0Y2goW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0cigqdGhpcyks
IHNjZW5lID0gbV9zY2VuZS5nZXQoKSwgdXBkYXRlID0gV1RGTW92ZSh1cGRhdGUpXSgpIG11dGFi
bGUgewotICAgICAgICBzY2VuZS0+dXBkYXRlKFdURk1vdmUodXBkYXRlKSk7Ci0gICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlz
KV0geworICAgIHJlbW90ZUdyYXBoaWNzQ29udGV4dEdMU3RyZWFtV29ya1F1ZXVlKCkuZGlzcGF0
Y2goW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0cigqdGhpcyksIHNjZW5lID0gbV9zY2VuZS5nZXQo
KSwgdXBkYXRlID0gV1RGTW92ZSh1cGRhdGUpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIHVwZGF0ZUluZm8g
PSBzY2VuZS0+dXBkYXRlKFdURk1vdmUodXBkYXRlKSk7CisgICAgICAgIFJ1bkxvb3A6Om1haW4o
KS5kaXNwYXRjaChbdGhpcywgd2Vha1RoaXMgPSBXVEZNb3ZlKHdlYWtUaGlzKSwgdXBkYXRlSW5m
byA9IFdURk1vdmUodXBkYXRlSW5mbyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90
ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpEaWRVcGRhdGUoKSk7CisgICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihXVEZNb3ZlKHVwZGF0ZUluZm8pKTsKICAgICAgICAgfSk7CiAgICAgfSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvUmVtb3Rl
V0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2Mv
UmVtb3RlV0NMYXllclRyZWVIb3N0LmgKaW5kZXggYjFiYjJhYWY1N2U3YTA5NjkzNTQyYmEwMjVh
NzUwYTEyOTM2ZjVlYi4uZWFkN2U0MTRkZWI1ZDZjNzRiNDhmZjhjMTg0Y2RhNmE2YTQ5ODI4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdD
TGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93
Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3QuaApAQCAtMzYsMTcgKzM2LDE4IEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzczsKK2NsYXNzIFVwZGF0
ZUluZm87CiBjbGFzcyBXQ1NjZW5lOwogc3RydWN0IFdDVXBhdGVJbmZvOwogCiBjbGFzcyBSZW1v
dGVXQ0xheWVyVHJlZUhvc3QgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHByaXZhdGUg
SVBDOjpNZXNzYWdlU2VuZGVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZVdDTGF5ZXJUcmVlSG9zdD4gY3Jl
YXRlKEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdyk7Ci0gICAgUmVtb3RlV0NMYXllclRyZWVI
b3N0KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9zdElk
ZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdyk7CisgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxSZW1vdGVXQ0xheWVyVHJlZUhvc3Q+IGNyZWF0ZShHUFVDb25uZWN0aW9uVG9XZWJQcm9j
ZXNzJiwgV2ViS2l0OjpXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyLCB1aW50NjRfdCBuYXRpdmVX
aW5kb3csIGJvb2wgdXNlc09mZnNjcmVlblJlbmRlcmluZyk7CisgICAgUmVtb3RlV0NMYXllclRy
ZWVIb3N0KEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBXZWJLaXQ6OldDTGF5ZXJUcmVlSG9z
dElkZW50aWZpZXIsIHVpbnQ2NF90IG5hdGl2ZVdpbmRvdywgYm9vbCB1c2VzT2Zmc2NyZWVuUmVu
ZGVyaW5nKTsKICAgICB+UmVtb3RlV0NMYXllclRyZWVIb3N0KCk7CiAgICAgLy8gbWVzc2FnZSBo
YW5kbGVycwotICAgIHZvaWQgdXBkYXRlKFdDVXBhdGVJbmZvJiYpOworICAgIHZvaWQgdXBkYXRl
KFdDVXBhdGVJbmZvJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJL
aXQ6OlVwZGF0ZUluZm8+KT4mJik7CiAKIHByaXZhdGU6CiAgICAgLy8gSVBDOjpNZXNzYWdlUmVj
ZWl2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9S
ZW1vdGVXQ0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0Lm1lc3NhZ2VzLmluCmluZGV4IDI1
MTZmZGE0MTkxZGI2NTA5YTM2ODdlYTMxNjQ4NDJlNjY2YWJkZDIuLjZiZDMxYTIxMzQ5YThkOGUx
ZDA3YWI3OWI3Mzc0ZTJhYjQxNzYyNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3QubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9z
dC5tZXNzYWdlcy5pbgpAQCAtMjMsNyArMjMsNyBAQAogI2lmIFVTRShHUkFQSElDU19MQVlFUl9X
QykKIAogbWVzc2FnZXMgLT4gUmVtb3RlV0NMYXllclRyZWVIb3N0IE5vdFJlZkNvdW50ZWQgewot
ICAgIFVwZGF0ZShzdHJ1Y3QgV2ViS2l0OjpXQ1VwYXRlSW5mbyB1cGRhdGVJbmZvKQorICAgIFVw
ZGF0ZShzdHJ1Y3QgV2ViS2l0OjpXQ1VwYXRlSW5mbyB1cGRhdGVJbmZvKSAtPiAoc3RkOjpvcHRp
b25hbDxXZWJLaXQ6OlVwZGF0ZUluZm8+IHVwZGF0ZUluZm8pIEFzeW5jCiB9CiAKICNlbmRpZiAv
LyBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3Mvd2MvV0NTY2VuZS5jcHAKaW5kZXggZTFkZTYwYjFmY2UzN2U3MTlkYjNjYmRhYzQw
ZjExYjU4NjE0NTcwMS4uZDJiOTI5MWQwM2MwODYyNTBmNmEyNTliYmVhOWZhZTQwYzQ0MDA1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL3djL1dDU2NlbmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmNw
cApAQCAtNjQsOCArNjQsOSBAQCB2b2lkIFdDU2NlbmU6OmluaXRpYWxpemUoV0NTY2VuZUNvbnRl
eHQmIGNvbnRleHQpCiAgICAgbV90ZXh0dXJlTWFwcGVyID0gbV9jb250ZXh0LT5jcmVhdGVUZXh0
dXJlTWFwcGVyKCk7CiB9CiAKLVdDU2NlbmU6OldDU2NlbmUoV2ViQ29yZTo6UHJvY2Vzc0lkZW50
aWZpZXIgd2ViUHJvY2Vzc0lkZW50aWZpZXIpCitXQ1NjZW5lOjpXQ1NjZW5lKFdlYkNvcmU6OlBy
b2Nlc3NJZGVudGlmaWVyIHdlYlByb2Nlc3NJZGVudGlmaWVyLCBib29sIHVzZXNPZmZzY3JlZW5S
ZW5kZXJpbmcpCiAgICAgOiBtX3dlYlByb2Nlc3NJZGVudGlmaWVyKHdlYlByb2Nlc3NJZGVudGlm
aWVyKQorICAgICwgbV91c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKHVzZXNPZmZzY3JlZW5SZW5kZXJp
bmcpCiB7CiB9CiAKQEAgLTc1LDEwICs3NiwxMCBAQCBXQ1NjZW5lOjp+V0NTY2VuZSgpCiAgICAg
bV90ZXh0dXJlTWFwcGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBXQ1NjZW5lOjp1cGRhdGUoV0NV
cGF0ZUluZm8mJiB1cGRhdGUpCitzdGQ6Om9wdGlvbmFsPFVwZGF0ZUluZm8+IFdDU2NlbmU6OnVw
ZGF0ZShXQ1VwYXRlSW5mbyYmIHVwZGF0ZSkKIHsKICAgICBpZiAoIW1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCkpCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAogICAgIGZvciAoYXV0byBpZCA6IHVwZGF0ZS5hZGRlZExheWVycykgewogICAgICAg
ICBhdXRvIGxheWVyID0gbWFrZVVuaXF1ZTxMYXllcj4oKTsKQEAgLTIwMCwxMiArMjAxLDI5IEBA
IHZvaWQgV0NTY2VuZTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlKQogICAgIFdlYkNvcmU6
OkludFNpemUgd2luZG93U2l6ZSA9IGV4cGFuZGVkSW50U2l6ZShyb290TGF5ZXItPnNpemUoKSk7
CiAgICAgZ2xWaWV3cG9ydCgwLCAwLCB3aW5kb3dTaXplLndpZHRoKCksIHdpbmRvd1NpemUuaGVp
Z2h0KCkpOwogCi0gICAgbV90ZXh0dXJlTWFwcGVyLT5iZWdpblBhaW50aW5nKCk7CisgICAgbV90
ZXh0dXJlTWFwcGVyLT5iZWdpblBhaW50aW5nKG1fdXNlc09mZnNjcmVlblJlbmRlcmluZyA/IFdl
YkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50aW5nTWlycm9yZWQgOiAwKTsKICAgICByb290TGF5
ZXItPnBhaW50KCptX3RleHR1cmVNYXBwZXIpOwogICAgIG1fZnBzQ291bnRlci51cGRhdGVGUFNB
bmREaXNwbGF5KCptX3RleHR1cmVNYXBwZXIpOwogICAgIG1fdGV4dHVyZU1hcHBlci0+ZW5kUGFp
bnRpbmcoKTsKIAotICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKKyAgICBzdGQ6Om9wdGlv
bmFsPFVwZGF0ZUluZm8+IHJlc3VsdDsKKyAgICBpZiAobV91c2VzT2Zmc2NyZWVuUmVuZGVyaW5n
KSB7CisgICAgICAgIGF1dG8gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGVTaGFyZWFi
bGUod2luZG93U2l6ZSwgeyB9KTsKKyAgICAgICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpbmRvd1Np
emUud2lkdGgoKSwgd2luZG93U2l6ZS5oZWlnaHQoKSwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVE
X0JZVEUsIGJpdG1hcC0+ZGF0YSgpKTsKKyAgICAgICAgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUg
aGFuZGxlOworICAgICAgICBpZiAoYml0bWFwLT5jcmVhdGVIYW5kbGUoaGFuZGxlKSkgeworICAg
ICAgICAgICAgcmVzdWx0LmVtcGxhY2UoKTsKKyAgICAgICAgICAgIHJlc3VsdC0+dmlld1NpemUg
PSB3aW5kb3dTaXplOworICAgICAgICAgICAgcmVzdWx0LT5kZXZpY2VTY2FsZUZhY3RvciA9IDE7
CisgICAgICAgICAgICByZXN1bHQtPnVwZGF0ZVNjYWxlRmFjdG9yID0gMTsKKyAgICAgICAgICAg
IFdlYkNvcmU6OkludFJlY3Qgdmlld3BvcnQgPSB7IHsgfSwgd2luZG93U2l6ZSB9OworICAgICAg
ICAgICAgcmVzdWx0LT51cGRhdGVSZWN0Qm91bmRzID0gdmlld3BvcnQ7CisgICAgICAgICAgICBy
ZXN1bHQtPnVwZGF0ZVJlY3RzLmFwcGVuZCh2aWV3cG9ydCk7CisgICAgICAgICAgICByZXN1bHQt
PmJpdG1hcEhhbmRsZSA9IFdURk1vdmUoaGFuZGxlKTsKKyAgICAgICAgfQorICAgIH0gZWxzZQor
ICAgICAgICBtX2NvbnRleHQtPnN3YXBCdWZmZXJzKCk7CisgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL3djL1dDU2NlbmUuaAppbmRleCAzZDE1MWQ5ZDI5NmFjNGM2MGNiZDc1ZDk0OGRmMDg1
ZWNiYThiZjFlLi5iZDY5NTJhYTU4MjQzNDIzZjlmMzQzYzkzZmY5ZjRjMmNkNmYxM2I1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mvd2MvV0NTY2VuZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9XQ1NjZW5lLmgKQEAgLTI3
LDYgKzI3LDcgQEAKIAogI2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKIAorI2luY2x1ZGUgIlVw
ZGF0ZUluZm8uaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9UZXh0dXJlTWFwcGVyRlBTQ291bnRlci5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CkBAIC00NywxMCArNDgsMTAgQEAgc3RydWN0IFdDVXBhdGVJbmZvOwogY2xhc3Mg
V0NTY2VuZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgV0NT
Y2VuZShXZWJDb3JlOjpQcm9jZXNzSWRlbnRpZmllcik7CisgICAgV0NTY2VuZShXZWJDb3JlOjpQ
cm9jZXNzSWRlbnRpZmllciwgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKTsKICAgICB+V0NT
Y2VuZSgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZShXQ1NjZW5lQ29udGV4dCYpOwotICAgIHZvaWQg
dXBkYXRlKFdDVXBhdGVJbmZvJiYpOworICAgIHN0ZDo6b3B0aW9uYWw8VXBkYXRlSW5mbz4gdXBk
YXRlKFdDVXBhdGVJbmZvJiYpOwogCiBwcml2YXRlOgogICAgIHN0cnVjdCBMYXllcjsKQEAgLTYx
LDYgKzYyLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6VGV4dHVy
ZU1hcHBlcj4gbV90ZXh0dXJlTWFwcGVyOwogICAgIFdlYkNvcmU6OlRleHR1cmVNYXBwZXJGUFND
b3VudGVyIG1fZnBzQ291bnRlcjsKICAgICBMYXllck1hcCBtX2xheWVyczsKKyAgICBib29sIG1f
dXNlc09mZnNjcmVlblJlbmRlcmluZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm1XaW4uY21ha2UKaW5kZXggMzY3NmMzNTE0NTY0ZWIxZjFiY2Q2OTdlMzdhYWRjZDA0
MjRhZTcwNC4uMjRiZDg0MjY3MmFhODEwMWQxYzFlYjZkYjQzMzVmMWU1ZjBiODQwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtV2luLmNtYWtlCkBAIC0xNDcsOCArMTQ3LDYgQEAgbGlzdChBUFBFTkQgV2ViS2l0
X0lOQ0xVREVfRElSRUNUT1JJRVMKIAogbGlzdChBUFBFTkQgV2ViS2l0X01FU1NBR0VTX0lOX0ZJ
TEVTCiAgICAgR1BVUHJvY2Vzcy9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3QKLQot
ICAgIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5
CiApCiAKIHNldChXZWJLaXRDb21tb25JbmNsdWRlRGlyZWN0b3JpZXMgJHtXZWJLaXRfSU5DTFVE
RV9ESVJFQ1RPUklFU30pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDU4MmM1ZTNiZTMzNTExNjI5Y2NjNjZmODIxZWNmMmUw
MWJjNTM2ZDkuLjgzODkzMjQyODdlZjI4ZTQxMjNmY2RlMmJhNTgxOTRlZmEzYTFkMmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
CkBAIC0xMzMsNiArMTMzLDkgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNv
ZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogI2VuZGlmCiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIGVuY29kZXIgPDwgbmF0aXZlV2luZG93SGFuZGxlOworI2VuZGlmCisjaWYgVVNFKEdS
QVBISUNTX0xBWUVSX1dDKQorICAgIGVuY29kZXIgPDwgdXNlc09mZnNjcmVlblJlbmRlcmluZzsK
ICNlbmRpZgogICAgIGVuY29kZXIgPDwgc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudDsKICAg
ICBlbmNvZGVyIDw8IHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb247CkBAIC00NTAsNiArNDUz
LDEwIEBAIHN0ZDo6b3B0aW9uYWw8V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycz4gV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKElQQzo6CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLm5hdGl2ZVdpbmRvd0hhbmRsZSkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAjZW5kaWYKKyNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLnVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworI2VuZGlmCiAKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFt
ZXRlcnMuc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCkpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmgKaW5kZXggZWJkNTFmNTQ2MWZkMzVhYTQwOGZjZGU2OTI3YTE2MTg2Mzc0ZjZhOS4u
N2I3MDY1YWI5ZDRjY2E4OWM2MDI0MTNmMTlkOTBhMzA1NzdiMmI5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTk1LDYgKzE5
NSw5IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKFdJTikKICAgICB1aW50NjRfdCBuYXRpdmVXaW5kb3dIYW5kbGU7CisjZW5kaWYKKyNp
ZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisgICAgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5n
IHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJvb2wgc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVu
dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mvd2luL1dLVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNwcAppbmRl
eCA1MzFmZjUyZDM1ZWI1YzcyMTcxYjMxMDE1NjFhY2I0OWE3NmZiYmZjLi4xMzc4OGQ3ZTJiZmY4
ZTJhYjRlOTFlN2Q0Yjk1YmNhNWI4YjExMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy93aW4vV0tWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy93aW4vV0tWaWV3LmNwcApAQCAtNjMsNiArNjMsMTEgQEAgdm9pZCBXS1ZpZXdTZXRJ
c0luV2luZG93KFdLVmlld1JlZiB2aWV3UmVmLCBib29sIGlzSW5XaW5kb3cpCiAgICAgdG9JbXBs
KHZpZXdSZWYpLT5zZXRJc0luV2luZG93KGlzSW5XaW5kb3cpOwogfQogCit2b2lkIFdLVmlld1Nl
dFVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZW5hYmxlZCkK
K3sKKyAgICB0b0ltcGwodmlld1JlZiktPnNldFVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoZW5hYmxl
ZCk7Cit9CisKIHZvaWQgV0tWaWV3U2V0U2Nyb2xsT2Zmc2V0T25OZXh0UmVzaXplKFdLVmlld1Jl
ZiB2aWV3UmVmLCBXS1NpemUgc2Nyb2xsT2Zmc2V0KQogewogICAgIHRvSW1wbCh2aWV3UmVmKS0+
c2V0U2Nyb2xsT2Zmc2V0T25OZXh0UmVzaXplKHRvSW50U2l6ZShzY3JvbGxPZmZzZXQpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL3dpbi9XS1ZpZXcuaAppbmRleCBmMTUxZDhhZjQz
MzlkMTUyMjhlMjEyMmYwYTM5NTMzOWIzZDQ1NzM3Li5hNTlhOGEyZjI5MzM4NDM2NjAzZWRhZmYw
YTJhZDk2ODY2ODc2YWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy93aW4vV0tWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mvd2luL1dL
Vmlldy5oCkBAIC00MSw2ICs0MSw3IEBAIFdLX0VYUE9SVCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFn
ZShXS1ZpZXdSZWYgdmlldyk7CiBXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRQYXJlbnRXaW5kb3co
V0tWaWV3UmVmIHZpZXcsIEhXTkQgcGFyZW50V2luZG93KTsKIFdLX0VYUE9SVCB2b2lkIFdLVmll
d1dpbmRvd0FuY2VzdHJ5RGlkQ2hhbmdlKFdLVmlld1JlZiB2aWV3KTsKIFdLX0VYUE9SVCB2b2lk
IFdLVmlld1NldElzSW5XaW5kb3coV0tWaWV3UmVmIHZpZXcsIGJvb2wgaXNJbldpbmRvdyk7CitX
S19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRVc2VzT2Zmc2NyZWVuUmVuZGVyaW5nKFdLVmlld1JlZiB2
aWV3LCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0U2Nyb2xsT2Zmc2V0
T25OZXh0UmVzaXplKFdLVmlld1JlZiB2aWV3LCBXS1NpemUgc2Nyb2xsT2Zmc2V0KTsKIAogI2lm
ZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKaW5kZXggNTE2
OWQ3MWY1ODQwYjFhMmFjNDMyNDk2ODNhZTM4YWRlN2JiMTE4Yy4uMGZjNjE4N2E0ZmMwMzRiNjI0
NmJmOGNkMWEyYmI0Yjg4Yzk3YTlkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aApAQCAtNjM4LDYgKzYzOCwxMCBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9O
KQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVDbGlja0ZvckRhdGFEZXRlY3Rpb25SZXN1bHQoY29u
c3QgV2ViQ29yZTo6RGF0YURldGVjdG9yRWxlbWVudEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIHsgfQogI2VuZGlmCisKKyNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisgICAgdmly
dHVhbCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoKSBjb25zdCA9IDA7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKaW5kZXggZjRiMzEwZmFjYjdkMTA0NWY0M2JiNTZmZGYwMzIzM2E2ZGU3YjY3Ny4u
NDgwOTFjNGIwNTFjODE2YWE2MjFmYTE0MjY1MGZmZjQxZjQ4ZGRiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC04MzEwLDYgKzgzMTAsOSBAQCBXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlBy
b2Nlc3NQcm94eSYgcHJvYwogI2lmIFBMQVRGT1JNKFdJTikKICAgICBwYXJhbWV0ZXJzLm5hdGl2
ZVdpbmRvd0hhbmRsZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDY0X3Q+KHZpZXdXaWRnZXQoKSk7
CiAjZW5kaWYKKyNpZiBVU0UoR1JBUEhJQ1NfTEFZRVJfV0MpCisgICAgcGFyYW1ldGVycy51c2Vz
T2Zmc2NyZWVuUmVuZGVyaW5nID0gcGFnZUNsaWVudCgpLnVzZXNPZmZzY3JlZW5SZW5kZXJpbmco
KTsKKyNlbmRpZgogCiAgICAgZm9yIChhdXRvJiBpdGVyYXRvciA6IG1fdXJsU2NoZW1lSGFuZGxl
cnNCeVNjaGVtZSkKICAgICAgICAgcGFyYW1ldGVycy51cmxTY2hlbWVIYW5kbGVycy5zZXQoaXRl
cmF0b3Iua2V5LCBpdGVyYXRvci52YWx1ZS0+aWRlbnRpZmllcigpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93Yy9EcmF3aW5nQXJlYVByb3h5V0MuY3BwCmluZGV4IGY2Mzk3ZTg5
ZDdiMjZjOTM5OGRmMzJiZTU5MWE1ZjY5MTE4MTlkYzYuLmVlNGVjZmUwYTU2ZWViYzBiMjYyN2Fh
ZjZjMzM2MTRhNTQyZjM1ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dj
L0RyYXdpbmdBcmVhUHJveHlXQy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2Mv
RHJhd2luZ0FyZWFQcm94eVdDLmNwcApAQCAtNTksNiArNTksMTEgQEAgdm9pZCBEcmF3aW5nQXJl
YVByb3h5V0M6OnNpemVEaWRDaGFuZ2UoKQogICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVh
OjpVcGRhdGVHZW9tZXRyeShtX2N1cnJlbnRCYWNraW5nU3RvcmVTdGF0ZUlELCBtX3NpemUpKTsK
IH0KIAordm9pZCBEcmF3aW5nQXJlYVByb3h5V0M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdp
bmcoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5v
bmUpOworfQorCiB2b2lkIERyYXdpbmdBcmVhUHJveHlXQzo6dXBkYXRlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mIHVwZGF0ZUluZm8pCiB7CiAgICAgaWYg
KGJhY2tpbmdTdG9yZVN0YXRlSUQgPT0gbV9jdXJyZW50QmFja2luZ1N0b3JlU3RhdGVJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3djL0RyYXdpbmdBcmVhUHJveHlXQy5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmgKaW5kZXgg
YTE0N2MxMWNmNDczNzQ1NzEwYjM1YWNjNzhlODY5ZDAyMmNkNDFiZC4uMGY2MzFlNDExMTkwNDlh
ODEzODA3OTRkODA0Y2I3ZjFlOTg3Yjk2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd2MvRHJhd2luZ0FyZWFQcm94eVdDLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBEcmF3aW5nQXJlYVByb3h5CiAgICAgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5n
ZSgpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwogICAgIC8vIG1lc3NhZ2UgaGFuZGVycwog
ICAgIHZvaWQgdXBkYXRlKHVpbnQ2NF90LCBjb25zdCBVcGRhdGVJbmZvJik7CiAgICAgdm9pZCBl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90LCBjb25zdCBMYXllclRyZWVD
b250ZXh0Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJbXBs
LmNwcAppbmRleCA3Y2FhZTFmNjhiNGY0MDA5OGIxNmI0NTI4ZTYwMjA0NTcxMjE5ZmQ2Li40YmZl
NGQ2Y2U1MDdlYTIyMDNkYWRlODkxMjY0OGNmMzdjZjRhZjkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL3dpbi9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTM0Miw2ICszNDIsMTEgQEAg
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW8KICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCitib29s
IFBhZ2VDbGllbnRJbXBsOjp1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV92aWV3LnVzZXNPZmZzY3JlZW5SZW5kZXJpbmcoKTsKK30KKwogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1BhZ2VDbGllbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAppbmRl
eCA4NGZlMTZhYWQ3YzJmYzk3MDE4Y2NkMDRlMTYxNmRiZDYyM2M0NzlhLi4yM2IzZjBlN2EwZTYw
MWYwYjQ4ZjcwNDE5YTc4YWFiODIwNzY0YmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93aW4vUGFnZUNsaWVudEltcGwuaApAQCAtMTA2LDYgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaWRGaW5pc2hOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlvbiopIG92ZXJyaWRlOwogICAg
IHZvaWQgZGlkRmFpbE5hdmlnYXRpb24oQVBJOjpOYXZpZ2F0aW9uKikgb3ZlcnJpZGUgeyB9CiAg
ICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVu
dE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKyAgICBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJp
bmcoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIEF1eGlsaWFyeSBDbGllbnQgQ3JlYXRpb24K
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2Vi
Vmlldy5jcHAKaW5kZXggYmE1Yzc0NTJmZWY5NDE2NzM3NWE3N2U5YjdjMTY2ZTc5Mjc0YjQ3Yy4u
ZTVhOGMzYjY5ZTE3MmFjZDAxZjJhNmE2ZjI4YmNhZWM1M2NjNTFkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcApAQCAtOTM3LDQgKzkzNywxNCBAQCB2b2lkIFdlYlZp
ZXc6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwKQogICAgIDo6U2VuZE1lc3NhZ2Uo
bV90b29sVGlwV2luZG93LCBUVE1fQUNUSVZBVEUsICF0b29sVGlwLmlzRW1wdHkoKSwgMCk7CiB9
CiAKK3ZvaWQgV2ViVmlldzo6c2V0VXNlc09mZnNjcmVlblJlbmRlcmluZyhib29sIGVuYWJsZWQp
Cit7CisgICAgbV91c2VzT2Zmc2NyZWVuUmVuZGVyaW5nID0gZW5hYmxlZDsKK30KKworYm9vbCBX
ZWJWaWV3Ojp1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91
c2VzT2Zmc2NyZWVuUmVuZGVyaW5nOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy93aW4vV2ViVmlldy5oCmluZGV4IDBmNzYwNDVmNjNmNjBiYTBiMzRlMzJm
MjY0ZmYzOTJjZWZiZjY1MGUuLmM5NTg2ZDRiMmExY2I5M2E1ZjUzZTdiY2Y0YzAyMmJiZTUxNjA0
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYlZpZXcuaApAQCAtNjksNiArNjksOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JvbGxPZmZzZXRPbk5leHRSZXNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogICAgIHZvaWQgaW5pdGlhbGl6ZSgpOwogICAgIHZvaWQgc2V0VG9v
bFRpcChjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHNldFVzZXNPZmZzY3JlZW5SZW5kZXJpbmco
Ym9vbCk7CisgICAgYm9vbCB1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKCkgY29uc3Q7CiAKICAgICB2
b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJik7CiAKQEAgLTE0
OCw2ICsxNTAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YXNBY3RpdmF0ZWRCeU1vdXNlRXZl
bnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV90cmFja2luZ01vdXNlTGVhdmUgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdXNlc09m
ZnNjcmVlblJlbmRlcmluZyB7IGZhbHNlIH07CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0
OjpQYWdlQ2xpZW50SW1wbD4gbV9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+
IG1fcGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAKaW5k
ZXggYzM3MWRkOTg4ODMwYjAzMDhiNGRiZWZiM2Y1MzM2MTVhMDhjOTczNS4uNGM5YjAwYmE5NzRk
ODY0MDAzNjliMTc5MDFmMmMwOTNlMzhmY2M3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xh
eWVyVHJlZUhvc3RQcm94eS5jcHAKQEAgLTMwLDE2ICszMCwxNSBAQAogCiAjaW5jbHVkZSAiR1BV
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIlJlbW90ZVdDTGF5ZXJUcmVlSG9z
dE1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldDVXBhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2lu
Y2x1ZGUgIldlYlByb2Nlc3MuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVJlbW90ZVdDTGF5
ZXJUcmVlSG9zdFByb3h5OjpSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eShXZWJQYWdlJiBwYWdl
LCBDbGllbnQmIGNsaWVudCkKK1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5OjpSZW1vdGVXQ0xh
eWVyVHJlZUhvc3RQcm94eShXZWJQYWdlJiBwYWdlLCBib29sIHVzZXNPZmZzY3JlZW5SZW5kZXJp
bmcpCiAgICAgOiBtX3BhZ2UocGFnZSkKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKKyAgICAsIG1f
dXNlc09mZnNjcmVlblJlbmRlcmluZyh1c2VzT2Zmc2NyZWVuUmVuZGVyaW5nKQogewogfQogCkBA
IC01OCw5ICs1Nyw4IEBAIEdQVVByb2Nlc3NDb25uZWN0aW9uJiBSZW1vdGVXQ0xheWVyVHJlZUhv
c3RQcm94eTo6ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIGlmICghbV9ncHVQcm9j
ZXNzQ29ubmVjdGlvbikgewogICAgICAgICBhdXRvJiBncHVQcm9jZXNzQ29ubmVjdGlvbiA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAg
ICAgIGdwdVByb2Nlc3NDb25uZWN0aW9uLmFkZENsaWVudCgqdGhpcyk7Ci0gICAgICAgIGdwdVBy
b2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VSZWNlaXZlck1hcCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6UmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSwgd2NMYXllclRyZWVIb3N0SWRlbnRpZmllcigpLnRvVUludDY0KCksICp0aGlzKTsKICAgICAg
ICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoCi0gICAgICAgICAgICBN
ZXNzYWdlczo6R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlV0NMYXllclRyZWVIb3N0
KHdjTGF5ZXJUcmVlSG9zdElkZW50aWZpZXIoKSwgbV9wYWdlLm5hdGl2ZVdpbmRvd0hhbmRsZSgp
KSwKKyAgICAgICAgICAgIE1lc3NhZ2VzOjpHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVh
dGVXQ0xheWVyVHJlZUhvc3Qod2NMYXllclRyZWVIb3N0SWRlbnRpZmllcigpLCBtX3BhZ2UubmF0
aXZlV2luZG93SGFuZGxlKCksIG1fdXNlc09mZnNjcmVlblJlbmRlcmluZyksCiAgICAgICAgICAg
ICAwLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7CiAgICAgICAgIG1fZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24gPSBncHVQcm9jZXNzQ29u
bmVjdGlvbjsKICAgICB9CkBAIC03MSw3ICs2OSw2IEBAIHZvaWQgUmVtb3RlV0NMYXllclRyZWVI
b3N0UHJveHk6OmRpc2Nvbm5lY3RHcHVQcm9jZXNzSWZOZWVkZWQoKQogewogICAgIGlmIChhdXRv
IGdwdVByb2Nlc3NDb25uZWN0aW9uID0gc3RkOjpleGNoYW5nZShtX2dwdVByb2Nlc3NDb25uZWN0
aW9uLCBudWxscHRyKSkgewogICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi0+cmVtb3ZlQ2xp
ZW50KCp0aGlzKTsKLSAgICAgICAgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb24tPm1lc3NhZ2VSZWNlaXZl
ck1hcCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlV0NMYXllclRyZWVI
b3N0UHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgd2NMYXllclRyZWVIb3N0SWRlbnRpZmll
cigpLnRvVUludDY0KCkpOwogICAgICAgICBncHVQcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlv
bigpLnNlbmQoTWVzc2FnZXM6OkdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlJlbGVhc2VXQ0xh
eWVyVHJlZUhvc3Qod2NMYXllclRyZWVIb3N0SWRlbnRpZmllcigpKSwgMCwgSVBDOjpTZW5kT3B0
aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogICAgIH0K
IH0KQEAgLTc5LDcgKzc2LDYgQEAgdm9pZCBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6ZGlz
Y29ubmVjdEdwdVByb2Nlc3NJZk5lZWRlZCgpCiB2b2lkIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFBy
b3h5OjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJiBw
cmV2aW91c0Nvbm5lY3Rpb24pCiB7CiAgICAgcHJldmlvdXNDb25uZWN0aW9uLnJlbW92ZUNsaWVu
dCgqdGhpcyk7Ci0gICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbi0+bWVzc2FnZVJlY2VpdmVyTWFw
KCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVXQ0xheWVyVHJlZUhvc3RQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCB3Y0xheWVyVHJlZUhvc3RJZGVudGlmaWVyKCku
dG9VSW50NjQoKSk7CiAgICAgbV9ncHVQcm9jZXNzQ29ubmVjdGlvbiA9IG51bGxwdHI7CiB9CiAK
QEAgLTg4LDE0ICs4NCw5IEBAIHVpbnQ2NF90IFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Ojpt
ZXNzYWdlU2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0CiAgICAgcmV0dXJuIHdjTGF5ZXJUcmVl
SG9zdElkZW50aWZpZXIoKS50b1VJbnQ2NCgpOwogfQogCi12b2lkIFJlbW90ZVdDTGF5ZXJUcmVl
SG9zdFByb3h5Ojp1cGRhdGUoV0NVcGF0ZUluZm8mJiB1cGRhdGVJbmZvKQordm9pZCBSZW1vdGVX
Q0xheWVyVHJlZUhvc3RQcm94eTo6dXBkYXRlKFdDVXBhdGVJbmZvJiYgdXBkYXRlSW5mbywgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6VXBkYXRlSW5mbz4pPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHNlbmQoTWVzc2FnZXM6OlJlbW90ZVdDTGF5ZXJU
cmVlSG9zdDo6VXBkYXRlKHVwZGF0ZUluZm8pKTsKLX0KLQotdm9pZCBSZW1vdGVXQ0xheWVyVHJl
ZUhvc3RQcm94eTo6ZGlkVXBkYXRlKCkKLXsKLSAgICBtX2NsaWVudC5kaWRVcGRhdGUoKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OlJlbW90ZVdDTGF5ZXJUcmVlSG9zdDo6VXBk
YXRlKHVwZGF0ZUluZm8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5o
CmluZGV4IGY5Y2Y3Y2U3YTliY2QwZDg3YTY4Mzk1ZWI2ZjlkZGE3NWJlNDg3OTcuLmVkNGM0ZjVm
MWEwYWRlY2FhN2RkMDUyYTE1OGNhNTFhYjhjNDFmMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mvd2MvUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1JlbW90ZVdD
TGF5ZXJUcmVlSG9zdFByb3h5LmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJHUFVQcm9j
ZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKKyNpbmNsdWRlICJVcGRhdGVJbmZvLmgiCiAjaW5jbHVkZSAiV0NM
YXllclRyZWVIb3N0SWRlbnRpZmllci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTM3LDIy
ICszOCwxNCBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHN0cnVjdCBXQ1VwYXRlSW5mbzsKIAogY2xh
c3MgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkKLSAgICA6IHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIKLSAgICAsIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyCisgICAgOiBwcml2YXRl
IElQQzo6TWVzc2FnZVNlbmRlcgogICAgICwgcHJpdmF0ZSBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6
Q2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBjbGFz
cyBDbGllbnQgewotICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgp
ID0gMDsKLSAgICB9OwotCi0gICAgUmVtb3RlV0NMYXllclRyZWVIb3N0UHJveHkoV2ViUGFnZSYs
IENsaWVudCYpOworICAgIFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5KFdlYlBhZ2UmLCBib29s
IHVzZXNPZmZzY3JlZW5SZW5kZXJpbmcpOwogICAgIH5SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94
eSgpOwogCi0gICAgdm9pZCB1cGRhdGUoV0NVcGF0ZUluZm8mJik7Ci0KLSAgICB2b2lkIGRpZFVw
ZGF0ZSgpOworICAgIHZvaWQgdXBkYXRlKFdDVXBhdGVJbmZvJiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlVwZGF0ZUluZm8+KT4mJik7CiAKIHByaXZhdGU6
CiAgICAgV0NMYXllclRyZWVIb3N0SWRlbnRpZmllciB3Y0xheWVyVHJlZUhvc3RJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV93Y0xheWVyVHJlZUhvc3RJZGVudGlmaWVyOyB9OwpAQCAtNjIs
OSArNTUsNiBAQCBwcml2YXRlOgogICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQK
ICAgICB2b2lkIGdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mKSBmaW5hbDsKIAotICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCi0gICAgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsK
LQogICAgIC8vIElQQzo6TWVzc2FnZVNlbmRlcgogICAgIElQQzo6Q29ubmVjdGlvbiogbWVzc2Fn
ZVNlbmRlckNvbm5lY3Rpb24oKSBjb25zdCBvdmVycmlkZTsKICAgICB1aW50NjRfdCBtZXNzYWdl
U2VuZGVyRGVzdGluYXRpb25JRCgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNzIsNyArNjIsNyBAQCBw
cml2YXRlOgogICAgIFdlYWtQdHI8R1BVUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fZ3B1UHJvY2Vzc0Nv
bm5lY3Rpb247CiAgICAgV0NMYXllclRyZWVIb3N0SWRlbnRpZmllciBtX3djTGF5ZXJUcmVlSG9z
dElkZW50aWZpZXIgeyBXQ0xheWVyVHJlZUhvc3RJZGVudGlmaWVyOjpnZW5lcmF0ZSgpIH07CiAg
ICAgV2ViUGFnZSYgbV9wYWdlOwotICAgIENsaWVudCYgbV9jbGllbnQ7CisgICAgYm9vbCBtX3Vz
ZXNPZmZzY3JlZW5SZW5kZXJpbmcgeyBmYWxzZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3dj
L1JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy93Yy9SZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS5tZXNz
YWdlcy5pbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGY4YWY3N2EzMTE2MTdlNzI4
MWVjYmNkMzYyMGRhMjJmNjk3MzZlZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL3djL1Jl
bW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Lm1lc3NhZ2VzLmluCisrKyAvZGV2L251bGwKQEAgLTEs
MjkgKzAsMCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMjEgU29ueSBJbnRlcmFjdGl2ZSBFbnRlcnRh
aW5tZW50IEluYy4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0j
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAotIyBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAotIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0jIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCi0jIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwKLSMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKLSMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKLSMgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwKLSMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLQot
I2lmIFVTRShHUkFQSElDU19MQVlFUl9XQykKLQotbWVzc2FnZXMgLT4gUmVtb3RlV0NMYXllclRy
ZWVIb3N0UHJveHkgTm90UmVmQ291bnRlZCB7Ci0gICAgRGlkVXBkYXRlKCkKLX0KLQotI2VuZGlm
IC8vIFVTRShHUkFQSElDU19MQVlFUl9XQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAKaW5kZXggZDFjYzJlNDQ1MzIwZThm
YzUwNDJjZjU0M2M1ZDFkN2ZmMzE4NDU5OS4uMjdkMTIzNWJlOGQ3M2I0NmRkZjZlZjIzZTQyMjI4
NWMzNzMyYTVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2MvRHJhd2luZ0FyZWFXQy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd2MvRHJhd2luZ0FyZWFXQy5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKIERyYXdpbmdBcmVhV0M6OkRyYXdpbmdBcmVhV0MoV2ViUGFnZSYgd2ViUGFn
ZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKICAgICA6IERy
YXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZTo6V0MsIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJZGVu
dGlmaWVyLCB3ZWJQYWdlKQotICAgICwgbV9yZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eShtYWtl
VW5pcXVlPFJlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5Pih3ZWJQYWdlLCAqdGhpcykpCisgICAg
LCBtX3JlbW90ZVdDTGF5ZXJUcmVlSG9zdFByb3h5KG1ha2VVbmlxdWU8UmVtb3RlV0NMYXllclRy
ZWVIb3N0UHJveHk+KHdlYlBhZ2UsIHBhcmFtZXRlcnMudXNlc09mZnNjcmVlblJlbmRlcmluZykp
CiAgICAgLCBtX2xheWVyRmFjdG9yeSgqdGhpcykKICAgICAsIG1fcm9vdExheWVyKEdyYXBoaWNz
TGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCB0aGlzLT5tX3Jvb3RMYXllckNs
aWVudCkpCiAgICAgLCBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyKCp0aGlzLCAmRHJhd2luZ0FyZWFX
Qzo6dXBkYXRlUmVuZGVyaW5nKQpAQCAtMTIxLDYgKzEyMSwxMCBAQCB2b2lkIERyYXdpbmdBcmVh
V0M6OnVwZGF0ZUdlb21ldHJ5KHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIEludFNpemUg
dmlld1NpegogCiB2b2lkIERyYXdpbmdBcmVhV0M6OnNldE5lZWRzRGlzcGxheSgpCiB7CisgICAg
aWYgKGlzQ29tcG9zaXRpbmdNb2RlKCkpIHsKKyAgICAgICAgdHJpZ2dlclJlbmRlcmluZ1VwZGF0
ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQogICAgIG1fZGlydHlSZWdpb24gPSB7IH07CiAg
ICAgbV9zY3JvbGxSZWN0ID0geyB9OwogICAgIG1fc2Nyb2xsT2Zmc2V0ID0geyB9OwpAQCAtMTMx
LDcgKzEzNSw5IEBAIHZvaWQgRHJhd2luZ0FyZWFXQzo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKGlzQ29tcG9zaXRpbmdNb2RlKCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2RpcnR5UmVnaW9uLnVuaXRlKHJlY3QpOworICAgIEludFJlY3Qg
ZGlydHlSZWN0ID0gcmVjdDsKKyAgICBkaXJ0eVJlY3QuaW50ZXJzZWN0KG1fd2ViUGFnZS5ib3Vu
ZHMoKSk7CisgICAgbV9kaXJ0eVJlZ2lvbi51bml0ZShkaXJ0eVJlY3QpOwogICAgIHRyaWdnZXJS
ZW5kZXJpbmdVcGRhdGUoKTsKIH0KIApAQCAtMTY1LDYgKzE3MSwxMiBAQCB2b2lkIERyYXdpbmdB
cmVhV0M6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJiBz
Y3JvbGxEZWx0YQogICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAordm9pZCBEcmF3
aW5nQXJlYVdDOjpmb3JjZVJlcGFpbnRBc3luYyhXZWJQYWdlJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fZm9yY2VSZXBhaW50Q29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBzZXROZWVkc0Rp
c3BsYXkoKTsKK30KKwogdm9pZCBEcmF3aW5nQXJlYVdDOjp0cmlnZ2VyUmVuZGVyaW5nVXBkYXRl
KCkKIHsKICAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRlZCB8fCBtX3dhaXREaWRVcGRhdGUp
IHsKQEAgLTIzMywxMiArMjQ1LDE4IEBAIHZvaWQgRHJhd2luZ0FyZWFXQzo6c2VuZFVwZGF0ZUFD
KCkKIAogICAgIG1fdXBkYXRlSW5mby5yb290TGF5ZXIgPSBtX3Jvb3RMYXllci0+cHJpbWFyeUxh
eWVySUQoKTsKIAotICAgIG1fY29tbWl0UXVldWUtPmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9
IFdlYWtQdHIoKnRoaXMpLCB1cGRhdGVJbmZvID0gc3RkOjpleGNoYW5nZShtX3VwZGF0ZUluZm8s
IHsgfSldKCkgbXV0YWJsZSB7CisgICAgbV9jb21taXRRdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0cigqdGhpcyksIHN0YXRlSUQgPSBtX2JhY2tpbmdTdG9yZVN0YXRlSUQs
IHVwZGF0ZUluZm8gPSBzdGQ6OmV4Y2hhbmdlKG1fdXBkYXRlSW5mbywgeyB9KV0oKSBtdXRhYmxl
IHsKICAgICAgICAgZmx1c2hMYXllckltYWdlQnVmZmVycyh1cGRhdGVJbmZvKTsKLSAgICAgICAg
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1Ro
aXMpLCB1cGRhdGVJbmZvID0gV1RGTW92ZSh1cGRhdGVJbmZvKV0oKSBtdXRhYmxlIHsKKyAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vh
a1RoaXMpLCBzdGF0ZUlELCB1cGRhdGVJbmZvID0gV1RGTW92ZSh1cGRhdGVJbmZvKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICAgICAgbV9yZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eS0+dXBkYXRlKFdURk1v
dmUodXBkYXRlSW5mbykpOworICAgICAgICAgICAgbV9yZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94
eS0+dXBkYXRlKFdURk1vdmUodXBkYXRlSW5mbyksIFt0aGlzLCBzdGF0ZUlEXShzdGQ6Om9wdGlv
bmFsPFVwZGF0ZUluZm8+IHVwZGF0ZUluZm8pIHsKKyAgICAgICAgICAgICAgICBpZiAodXBkYXRl
SW5mbyAmJiBzdGF0ZUlEID09IG1fYmFja2luZ1N0b3JlU3RhdGVJRCkgeworICAgICAgICAgICAg
ICAgICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpVcGRhdGUobV9iYWNraW5n
U3RvcmVTdGF0ZUlELCBXVEZNb3ZlKCp1cGRhdGVJbmZvKSkpOworICAgICAgICAgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGRpZFVwZGF0ZSgp
OworICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgIH0pOwogfQpAQCAtMzQ2LDcgKzM2
NCw4IEBAIHZvaWQgRHJhd2luZ0FyZWFXQzo6ZGlkVXBkYXRlKCkKICAgICBpZiAobV9oYXNEZWZl
cnJlZFJlbmRlcmluZ1VwZGF0ZSkgewogICAgICAgICBtX2hhc0RlZmVycmVkUmVuZGVyaW5nVXBk
YXRlID0gZmFsc2U7CiAgICAgICAgIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGUoKTsKLSAgICB9Cisg
ICAgfSBlbHNlIGlmIChtX2ZvcmNlUmVwYWludENvbXBsZXRpb25IYW5kbGVyKQorICAgICAgICBt
X2ZvcmNlUmVwYWludENvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJh
d2luZ0FyZWFXQy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2MvRHJhd2lu
Z0FyZWFXQy5oCmluZGV4IDA0YzRlMWU3ZDYxMGViODY2OThmMDAxMDVkODBkNjQ4NzYyZTgyZDMu
LmI0MzM4ODk3NzJlNThiYzEyY2IxMTQ0YmNhZDA4Njc0YjI3NmQwNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL3djL0RyYXdpbmdBcmVhV0MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS93Yy9EcmF3aW5nQXJlYVdDLmgKQEAgLTM2
LDggKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIERyYXdpbmdBcmVhV0MgZmlu
YWwKICAgICA6IHB1YmxpYyBEcmF3aW5nQXJlYQotICAgICwgcHVibGljIEdyYXBoaWNzTGF5ZXJX
Qzo6T2JzZXJ2ZXIKLSAgICAsIHB1YmxpYyBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6Q2xp
ZW50IHsKKyAgICAsIHB1YmxpYyBHcmFwaGljc0xheWVyV0M6Ok9ic2VydmVyIHsKIHB1YmxpYzoK
ICAgICBEcmF3aW5nQXJlYVdDKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzJik7CiAgICAgfkRyYXdpbmdBcmVhV0MoKSBvdmVycmlkZTsKQEAgLTQ4LDcgKzQ3LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBmb3Jj
ZVJlcGFpbnRBc3luYyhXZWJQYWdlJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVy
cmlkZSB7IH0KKyAgICB2b2lkIGZvcmNlUmVwYWludEFzeW5jKFdlYlBhZ2UmLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgdHJpZ2dlclJlbmRlcmluZ1Vw
ZGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdl
YkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYmKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGRldmlj
ZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlIHsgfQpAQCAtNTksMTMgKzU4LDEy
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5j
ZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOwogICAgIGJvb2wgc2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgZGlkVXBkYXRlKCkgb3ZlcnJpZGU7CiAgICAgLy8gR3Jh
cGhpY3NMYXllcldDOjpPYnNlcnZlcgogICAgIHZvaWQgZ3JhcGhpY3NMYXllckFkZGVkKEdyYXBo
aWNzTGF5ZXJXQyYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ3JhcGhpY3NMYXllclJlbW92ZWQoR3Jh
cGhpY3NMYXllcldDJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRMYXllclVwYXRlSW5mbyhX
Q0xheWVyVXBhdGVJbmZvJiYpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZUJ1
ZmZlcj4gY3JlYXRlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6RmxvYXRTaXplKSBvdmVycmlkZTsKLSAg
ICAvLyBSZW1vdGVXQ0xheWVyVHJlZUhvc3RQcm94eTo6Q2xpZW50Ci0gICAgdm9pZCBkaWRVcGRh
dGUoKSBvdmVycmlkZTsKIAogICAgIGJvb2wgaXNDb21wb3NpdGluZ01vZGUoKTsKICAgICB2b2lk
IHVwZGF0ZVJlbmRlcmluZygpOwpAQCAtOTEsNiArODksNyBAQCBwcml2YXRlOgogICAgIFdlYkNv
cmU6OlJlZ2lvbiBtX2RpcnR5UmVnaW9uOwogICAgIFdlYkNvcmU6OkludFJlY3QgbV9zY3JvbGxS
ZWN0OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9zY3JvbGxPZmZzZXQ7CisgICAgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiBtX2ZvcmNlUmVwYWludENvbXBsZXRpb25IYW5kbGVyOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZjExMDhhNzNmYmY1NGU0NmQ4YzEyM2U4ZDQ5NWY3NTM3ZTkzYjEz
Zi4uMDBjOWM1MWJiNzYzNWQ5MGFhNmY3NzlmMGVkODFiMjI4OGUyYWI3YiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDIyLTAxLTI1ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisg
ICAgICAgIFtXaW5DYWlyb10gV2ViS2l0VGVzdFJ1bm5lciBzaG91bGQgc3VwcG9ydCBwaXhlbCBk
dW1wIGZvciBhY2NlbGVyYXRlZCBjb21wb3NpdGluZyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTUwNDEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlv
bnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVmYXVsdHMpOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3JtV2ViVmlld1dpbi5jcHA6CisgICAgICAgIChX
VFI6OlBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KToKKwogMjAyMi0wMS0yNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBpbnB1
dC1zZWN1cml0eSBDU1MgcHJvcGVydHkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5j
cHAKaW5kZXggZjgxOGEwZTY3ZDJkNmJmMGQ1ZTJjM2RlNmNmZmFiMDI3MTkxN2ViMC4uMTI0N2Q4
MmI5NTc3MmE2MzMxMzAyOWFmNjY0MTc3ZDk4NTM3OGE5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMm
IFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQogICAgICAg
ICAgICAgeyAiVXNlR1BVUHJvY2Vzc0ZvckRPTVJlbmRlcmluZ0VuYWJsZWQiLCBmYWxzZSB9LAog
I2VuZGlmCi0jaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpCisjaWYgRU5B
QkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoV0VCR0wpICYmICFQTEFURk9STShXSU4pCiAgICAg
ICAgICAgICB7ICJVc2VHUFVQcm9jZXNzRm9yV2ViR0xFbmFibGVkIiwgZmFsc2UgfSwKICNlbmRp
ZgogICAgICAgICB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxh
dGZvcm1XZWJWaWV3V2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL1BsYXRmb3Jt
V2ViVmlld1dpbi5jcHAKaW5kZXggYzgzMTIyOGJkYTdhZmNlNjA4YmRlMjJjYjg4MWJkYzY1ZTI4
MzA3Zi4uNjE2MDI5ODM4YmZkNGNhNTZkZjUzNDdkYzU4YmQ0YmFiMGI0NjIxOSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93aW4vUGxhdGZvcm1XZWJWaWV3V2luLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9QbGF0Zm9ybVdlYlZpZXdXaW4uY3BwCkBAIC04
NSw2ICs4NSw3IEBAIFBsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZp
Z3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzCiAgICAgUkVDVCB2aWV3UmVjdCA9
IHsgfTsKICAgICBtX3ZpZXcgPSBXS1ZpZXdDcmVhdGUodmlld1JlY3QsIGNvbmZpZ3VyYXRpb24s
IG1fd2luZG93KTsKICAgICBXS1ZpZXdTZXRJc0luV2luZG93KG1fdmlldywgdHJ1ZSk7CisgICAg
V0tWaWV3U2V0VXNlc09mZnNjcmVlblJlbmRlcmluZyhtX3ZpZXcsIHRydWUpOwogCiAgICAgU2hv
d1dpbmRvdyhtX3dpbmRvdywgU1dfU0hPVyk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>