<?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>238607</bug_id>
          
          <creation_ts>2022-03-31 07:48:15 -0700</creation_ts>
          <short_desc>[iOS] [WK2] Add plumbing for extracting video frames in element fullscreen</short_desc>
          <delta_ts>2022-04-01 19:11:13 -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>Platform</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>238579</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>akeerthi</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1856799</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-03-31 07:48:15 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856801</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-31 07:49:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/91102888&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1856821</commentid>
    <comment_count>2</comment_count>
      <attachid>456242</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-03-31 08:53:24 -0700</bug_when>
    <thetext>Created attachment 456242
Depends on #238579</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857274</commentid>
    <comment_count>3</comment_count>
      <attachid>456364</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 08:56:32 -0700</bug_when>
    <thetext>Created attachment 456364
Rebase on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857288</commentid>
    <comment_count>4</comment_count>
      <attachid>456368</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 09:50:22 -0700</bug_when>
    <thetext>Created attachment 456368
Fix non-GPUP build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857327</commentid>
    <comment_count>5</comment_count>
      <attachid>456368</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2022-04-01 11:18:29 -0700</bug_when>
    <thetext>Comment on attachment 456368
Fix non-GPUP build

View in context: https://bugs.webkit.org/attachment.cgi?id=456368&amp;action=review

r=me once the bots are happy

&gt; Source/WebCore/html/HTMLMediaElement.cpp:626
&gt; +    return m_player ? std::make_optional(m_player-&gt;identifier()) : std::nullopt;

Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857419</commentid>
    <comment_count>6</comment_count>
      <attachid>456368</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 15:46:23 -0700</bug_when>
    <thetext>Comment on attachment 456368
Fix non-GPUP build

View in context: https://bugs.webkit.org/attachment.cgi?id=456368&amp;action=review

Thank you for the review!

Hm…it looks like EWS is still lagging behind :(

In the interim, I ran a subset of media and fullscreen layout tests locally on iOS sim and macOS, and verified that this doesn&apos;t cause any new tests to fail. I did find some existing, unrelated debug assertions, which I&apos;ll fix investigate in a followup bug.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:626
&gt;&gt; +    return m_player ? std::make_optional(m_player-&gt;identifier()) : std::nullopt;
&gt; 
&gt; Thank you!

👍🏻</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857425</commentid>
    <comment_count>7</comment_count>
      <attachid>456368</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-01 15:49:37 -0700</bug_when>
    <thetext>Comment on attachment 456368
Fix non-GPUP build

View in context: https://bugs.webkit.org/attachment.cgi?id=456368&amp;action=review

&gt;&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:626
&gt;&gt;&gt; +    return m_player ? std::make_optional(m_player-&gt;identifier()) : std::nullopt;
&gt;&gt; 
&gt;&gt; Thank you!
&gt; 
&gt; 👍🏻

Note that with C++17, you should be able to just `std::optional { m_player-&gt;identifier() }`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857427</commentid>
    <comment_count>8</comment_count>
      <attachid>456368</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 15:50:57 -0700</bug_when>
    <thetext>Comment on attachment 456368
Fix non-GPUP build

View in context: https://bugs.webkit.org/attachment.cgi?id=456368&amp;action=review

&gt;&gt;&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:626
&gt;&gt;&gt;&gt; +    return m_player ? std::make_optional(m_player-&gt;identifier()) : std::nullopt;
&gt;&gt;&gt; 
&gt;&gt;&gt; Thank you!
&gt;&gt; 
&gt;&gt; 👍🏻
&gt; 
&gt; Note that with C++17, you should be able to just `std::optional { m_player-&gt;identifier() }`

Sounds good — I&apos;ll go with that!

(I wasn&apos;t sure whether we prefer std::optional { } or std::make_optional() — it sounds like the former is preferred?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857428</commentid>
    <comment_count>9</comment_count>
      <attachid>456368</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-01 15:52:33 -0700</bug_when>
    <thetext>Comment on attachment 456368
Fix non-GPUP build

View in context: https://bugs.webkit.org/attachment.cgi?id=456368&amp;action=review

&gt;&gt;&gt;&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:626
&gt;&gt;&gt;&gt;&gt; +    return m_player ? std::make_optional(m_player-&gt;identifier()) : std::nullopt;
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Thank you!
&gt;&gt;&gt; 
&gt;&gt;&gt; 👍🏻
&gt;&gt; 
&gt;&gt; Note that with C++17, you should be able to just `std::optional { m_player-&gt;identifier() }`
&gt; 
&gt; Sounds good — I&apos;ll go with that!
&gt; 
&gt; (I wasn&apos;t sure whether we prefer std::optional { } or std::make_optional() — it sounds like the former is preferred?)

It&apos;s more concise so I think std::optional { } is better. Darin made a similar comment on one of my patches recently so I am passing it along :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857430</commentid>
    <comment_count>10</comment_count>
      <attachid>456413</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 15:57:57 -0700</bug_when>
    <thetext>Created attachment 456413
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857461</commentid>
    <comment_count>11</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-04-01 17:39:09 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #6)
&gt; Hm…it looks like EWS is still lagging behind :(
&gt; 
&gt; In the interim, I ran a subset of media and fullscreen layout tests locally
&gt; on iOS sim and macOS, and verified that this doesn&apos;t cause any new tests to
&gt; fail. I did find some existing, unrelated debug assertions, which I&apos;ll
&gt; investigate in a followup bug.


Tracking these existing failures in: &lt;https://webkit.org/b/238687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857494</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-01 19:11:07 -0700</bug_when>
    <thetext>Committed r292252 (249150@main): &lt;https://commits.webkit.org/249150@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456413.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456242</attachid>
            <date>2022-03-31 08:53:24 -0700</date>
            <delta_ts>2022-04-01 08:56:30 -0700</delta_ts>
            <desc>Depends on #238579</desc>
            <filename>bug-238607-20220331085323.patch</filename>
            <type>text/plain</type>
            <size>16154</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxOTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjcyMjk0Y2I2ZTI3ZGQ4
NjRhZjE1NWMzMjkwN2FlMmRmNTZjMjUwOS4uMmYyZDVhNjQzYWIzYTlkM2U4ZjNiYmJhZGIwNjc3
ZGFlODkzZDU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTAzLTMxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtXSzJd
IEFkZCBwbHVtYmluZyBmb3IgZXh0cmFjdGluZyB2aWRlbyBmcmFtZXMgaW4gZWxlbWVudCBmdWxs
c2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzg2MDcKKyAgICAgICAgcmRhcjovLzkxMTAyODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIG9uIEhUTUxNZWRp
YUVsZW1lbnQgdG8gcmV0dXJuIHRoZSBpZGVudGlmaWVyIG9mIGl0cyBNZWRpYVBsYXllci4gU2Vl
IFdlYktpdCBDaGFuZ2VMb2cgZm9yCisgICAgICAgIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGxheWVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisKIDIwMjItMDMtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGEgaGV1cmlzdGljIHRvIGlkZW50aWZ5IGFuZCBl
eHRyYWN0IHRoZSBwcm9taW5lbnQgdmlkZW8gZWxlbWVudCBpbiBlbGVtZW50IGZ1bGxzY3JlZW4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggNTQzZGI0YzhlN2Y0MzY1NDU1M2Q5ZTlkZWNlOWU4MTE0NzRmNGY3Ny4uMzRm
ODIxZTlmOWJkMzY4MzgwMGE1MzAzYjY1MWVhODdlMzhlYjZmMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw1MSBAQAorMjAyMi0wMy0zMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KKworICAgICAgICBbaU9TXSBbV0syXSBBZGQgcGx1bWJpbmcgZm9yIGV4dHJhY3Rpbmcgdmlk
ZW8gZnJhbWVzIGluIGVsZW1lbnQgZnVsbHNjcmVlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NjA3CisgICAgICAgIHJkYXI6Ly85MTEwMjg4OAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJL
aXQyIGNsaWVudCBsYXllciBwbHVtYmluZyBmb3IgdHJpZ2dlcmluZyB2aWRlbyBleHRyYWN0aW9u
IGZvciB0aGUgcHJvbWluZW50IHZpZGVvIGluIGVsZW1lbnQgZnVsbHNjcmVlbi4KKyAgICAgICAg
U2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNs
aWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpiZWdpbkVsZW1lbnRGdWxsc2Ny
ZWVuVmlkZW9FeHRyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudDo6Y2FuY2Vs
RWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorCisgICAgICAgIEFkZCBuZXcgUGFn
ZUNsaWVudCBob29rcyB0byBzdGFydCBhbmQgY2FuY2VsIHZpZGVvIGVsZW1lbnQgZXh0cmFjdGlv
biBpbiBlbGVtZW50IGZ1bGxzY3JlZW4uIFdlIG9ubHkgaW1wbGVtZW50CisgICAgICAgIHRoZXNl
IG9uIGlPUywgZm9yIG5vdy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmV4dHJhY3RWaWRlb0luRWxlbWVudEZ1
bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNhbmNlbFZpZGVvRXh0
cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgor
CisgICAgICAgIEFkZCBJUEMgcGx1bWJpbmcgZnJvbSBXZWJQYWdlIHRvIFdlYlBhZ2VQcm94eSBm
b3Igc3RhcnRpbmcgYW5kIGNhbmNlbGluZyB2aWRlbyBlbGVtZW50IGV4dHJhY3Rpb24uCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4
dHJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVv
RXh0cmFjdGlvbjpib3VuZHM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY2FuY2VsRWxl
bWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25dKToKKworICAgICAgICBBZGQgbWV0aG9kIHN0
dWJzIGZvciBub24taW50ZXJuYWwgYnVpbGRzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVs
bFNjcmVlbk1hbmFnZXI6Om1haW5WaWRlb0VsZW1lbnRFeHRyYWN0aW9uVGltZXJGaXJlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbmRNYWluVmlkZW9FbGVtZW50
RXh0cmFjdGlvbklmTmVlZGVkKToKKworICAgICAgICBSZW1vdmUgdGhlIEZJWE1FcyBhbmQgY2Fs
bCBpbnRvIHRoZSBuZXcgaGVscGVyIG1ldGhvZHMgb24gV2ViUGFnZSB0byBzdGFydCBhbmQgY2Fu
Y2VsIHZpZGVvIGVsZW1lbnQgZXh0cmFjdGlvbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZXh0cmFjdFZpZGVv
SW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhbmNlbFZp
ZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjItMDMtMzAgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gQWRkIHN1cHBvcnQgZm9yIHRlbXBvcmFy
aWx5IGluc3RhbGxpbmcgVktDSW1hZ2VBbmFseXNpc0ludGVyYWN0aW9uIG9uIFdLQ29udGVudFZp
ZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGQzNzMyYjgx
OGNiMjYxZTI1ZGNhMzI3YzMwOTkwYjZlNDc4N2RkNTYuLjQ0ODBmOGFmZjRkODhkYmU0YmJjOWNh
ZmMwYmJlODUzNzM0MmNiNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjIxLDYgKzYyMSwxMSBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxl
bWVudCgpCiAgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJM
KG1fYmxvYlVSTEZvclJlYWRpbmcpOwogfQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVySWRl
bnRpZmllcj4gSFRNTE1lZGlhRWxlbWVudDo6cGxheWVySWRlbnRpZmllcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcGxheWVyID8gc3RkOjptYWtlX29wdGlvbmFsKG1fcGxheWVyLT5pZGVudGlm
aWVyKCkpIDogc3RkOjpudWxsb3B0OworfQorCiBSZWZQdHI8SFRNTE1lZGlhRWxlbWVudD4gSFRN
TE1lZGlhRWxlbWVudDo6YmVzdE1lZGlhRWxlbWVudEZvclJlbW90ZUNvbnRyb2xzKE1lZGlhRWxl
bWVudFNlc3Npb246OlBsYXliYWNrQ29udHJvbHNQdXJwb3NlIHB1cnBvc2UsIGNvbnN0IERvY3Vt
ZW50KiBkb2N1bWVudCkKIHsKICAgICBWZWN0b3I8TWVkaWFFbGVtZW50U2Vzc2lvbkluZm8+IGNh
bmRpZGF0ZVNlc3Npb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRl
eCBmZTE1MjdkY2JlODRkY2UwODU2ZDFhYTEwNzI0NTg3MTIxYTZlYTA5Li5kOTM5ZmQ3NWI3MGRh
NWY2NTFmNzZmMWMyZDJlNTAzNTllNzBkYjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuaApAQCAtMTU1LDYgKzE1NSw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBIVE1MRWxl
bWVudDo6d2Vha1B0ckZhY3Rvcnk7CiAKICAgICBSZWZQdHI8TWVkaWFQbGF5ZXI+IHBsYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRp
b25hbDxNZWRpYVBsYXllcklkZW50aWZpZXI+IHBsYXllcklkZW50aWZpZXIoKSBjb25zdDsKKwog
ICAgIGJvb2wgc3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIG1f
Y2FjaGVkU3VwcG9ydHNBY2NlbGVyYXRlZFJlbmRlcmluZzsgfQogCiAgICAgdmlydHVhbCBib29s
IGlzVmlkZW8oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCmluZGV4IGNiZjljOGI4OWU0MDVlZGJjMzExNjFmMjk1MzgwODVkODBmMzkwMTEu
LmQ5YzBmOGI4NWRlNzQ1MmY4ZTZlYTBhODJjMDdhNTk1NjJlMTI4MTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAgLTUwOSw2ICs1MDksOSBAQCBwdWJsaWM6CiAjZW5kaWYK
ICAgICB2aXJ0dWFsIGJvb2wgaXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQgYmVnaW5FbGVtZW50RnVs
bHNjcmVlblZpZGVvRXh0cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdl
YkNvcmU6OkZsb2F0UmVjdCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGNhbmNlbEVsZW1lbnRGdWxs
c2NyZWVuVmlkZW9FeHRyYWN0aW9uKCkgeyB9CisKICAgICAvLyBBdXhpbGlhcnkgQ2xpZW50IENy
ZWF0aW9uCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIHZpcnR1YWwgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eUNsaWVudCYgZnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCgpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDM3YTQ1MjRm
OWM3YmQ3ODlkZjNiNGVhYmIzYTFiMmUwODJkZTlkMGMuLmQ4MWJlODgzNTc5NzkzNDQ1ZGJlOGQx
M2JmM2JiZDc3MTIyOTQ3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcApAQCAtMTEyNjMsNiArMTEyNjMsMzUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBv
bGljeUZvck1vZGFsQ29udGFpbmVyKE9wdGlvblNldDxNb2RhbENvbnRhaW5lckNvbnRyb2wKICAg
ICBtX3VpQ2xpZW50LT5kZWNpZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcih0eXBlcywgV1RGTW92
ZShjb21wbGV0aW9uKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpleHRyYWN0VmlkZW9JbkVs
ZW1lbnRGdWxsU2NyZWVuKE1lZGlhUGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBGbG9hdFJl
Y3QgYm91bmRzKQoreworICAgIGlmICghcGFnZUNsaWVudCgpLmlzRnVsbHNjcmVlblZpZGVvRXh0
cmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgUmVmUHRyIGdwdVByb2Nl
c3MgPSBHUFVQcm9jZXNzUHJveHk6OnNpbmdsZXRvbklmQ3JlYXRlZCgpOworICAgIGlmICghZ3B1
UHJvY2VzcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxT
Y3JlZW5WaWRlb0V4dHJhY3Rpb24gPSB0cnVlOworICAgIGdwdVByb2Nlc3MtPnJlcXVlc3RCaXRt
YXBJbWFnZUZvckN1cnJlbnRUaW1lKG1fcHJvY2Vzcy0+Y29yZVByb2Nlc3NJZGVudGlmaWVyKCks
IGlkZW50aWZpZXIsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBib3VuZHNdKGF1dG8m
IGJpdG1hcEhhbmRsZSkgeworICAgICAgICBSZWZQdHIgcHJvdGVjdGVkVGhpcyA9IHdlYWtUaGlz
LmdldCgpOworICAgICAgICBpZiAoIXByb3RlY3RlZFRoaXMgfHwgIXByb3RlY3RlZFRoaXMtPm1f
aGFzUGVuZGluZ0VsZW1lbnRGdWxsU2NyZWVuVmlkZW9FeHRyYWN0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIHByb3RlY3RlZFRoaXMtPnBhZ2VDbGllbnQoKS5iZWdpbkVsZW1l
bnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uKGJpdG1hcEhhbmRsZSwgYm91bmRzKTsKKyAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+bV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRlb0V4dHJh
Y3Rpb24gPSBmYWxzZTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFZp
ZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4oKQoreworICAgIGlmICghcGFnZUNsaWVu
dCgpLmlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRlb0V4dHJhY3Rpb24gPSBm
YWxzZTsKKyAgICBwYWdlQ2xpZW50KCkuY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb24oKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBXRUJQQUdFUFJP
WFlfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
Y2EyNDJmMjNmYjBkYWNkOWZjMjMxYjI0ODZiMDEzZjIzNDI2YzFhNC4uOGUxOTVjODIzZjQ5YzRl
MTZhMGEwNjM5OWFhZDRlYWE2NzQzNDExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKQEAgLTIwODEsNiArMjA4MSw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW50ZXJh
Y3RhYmxlUmVnaW9uc0luUm9vdFZpZXdDb29yZGluYXRlcyhXZWJDb3JlOjpGbG9hdFJlY3QsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OkZsb2F0UmVjdD4pPiYmKTsKIAor
ICAgIHZvaWQgZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbihXZWJDb3JlOjpNZWRpYVBs
YXllcklkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcyk7CisgICAgdm9p
ZCBjYW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisKIHByaXZhdGU6
CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJ
OjpQYWdlQ29uZmlndXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsK
QEAgLTMyMjUsNiArMzIyOCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQbGF5YmFj
a1Nlc3Npb25Db250ZXh0SWRlbnRpZmllcj4gbV9jdXJyZW50RnVsbHNjcmVlblZpZGVvU2Vzc2lv
bklkZW50aWZpZXI7CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZVByb3h5PiBtX2Z1bGxzY3Jl
ZW5WaWRlb0V4dHJhY3Rpb25UaW1lcjsKICNlbmRpZgorICAgIGJvb2wgbV9oYXNQZW5kaW5nRWxl
bWVudEZ1bGxTY3JlZW5WaWRlb0V4dHJhY3Rpb24geyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKElN
QUdFX0FOQUxZU0lTX0VOSEFOQ0VNRU5UUykKICAgICBlbnVtIGNsYXNzIENyb3BwZWRJbWFnZU92
ZXJsYXlTdGF0ZSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGM3N2RiMjM0ZmFkZjExMDAzOTA4MzMxNjdiMzI0
ZmI0YmI3ZDgyYTAuLmMzMDNiYjMyMTg0Njk3OTc2YjFhMTU5MTVkMDNjZWE3NjE1MmFiMDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTM3OCw2ICszNzgsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpY3Rh
dGlvbkFsdGVybmF0aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRl
eHQpIC0+IChWZWN0b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYK
IAorICAgIEV4dHJhY3RWaWRlb0luRWxlbWVudEZ1bGxTY3JlZW4oV2ViQ29yZTo6TWVkaWFQbGF5
ZXJJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcykK
KyAgICBDYW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCkKKwogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCiAgICAgQ291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCkKICAgICBS
ZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xs
UG9zaXRpb24sIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpSZWN0
RWRnZXM8ZmxvYXQ+IG9ic2N1cmVkSW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGRmYjE5
Mzk5MzYxNmU4MDBhMWE1MDg4MTg4MzJlNGRmMjU3NmRjZDkuLjIzZGE2NjA3OGUzODAzNTIzOTZh
Y2RlYzk3YWM4MDIzMDA0YmQ1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0zMDcsNiArMzA3LDkgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGNhbmNlbEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKSBmaW5hbDsKICAgICBib29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQo
KSBjb25zdCBmaW5hbDsKIAorICAgIHZvaWQgYmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0
cmFjdGlvbihjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OkZsb2F0UmVj
dCkgZmluYWw7CisgICAgdm9pZCBjYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlv
bigpIGZpbmFsOworCiAgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV9jb250ZW50Vmll
dzsKICAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmlu
ZGV4IGViOGY3MGY2ZGNjZGU0MGQ5NzUwMWZkMjllZjUwNjVkMTJjZjBkNTkuLmE3NmEzMzI0OTEz
ZTJjM2NmNzM1NmRmM2UwNjgwODg2M2UyOTAxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNjAsNiArMTA2MCwxNiBAQCBi
b29sIFBhZ2VDbGllbnRJbXBsOjppc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkKCkg
Y29uc3QKICAgICByZXR1cm4gW21fY29udGVudFZpZXcgaXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0
aW9uRW5hYmxlZF07CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxz
Y3JlZW5WaWRlb0V4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGJpdG1h
cEhhbmRsZSwgRmxvYXRSZWN0IGJvdW5kcykKK3sKKyAgICBbbV9jb250ZW50VmlldyBiZWdpbkVs
ZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOmJpdG1hcEhhbmRsZSBib3VuZHM6Ym91bmRz
XTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRl
b0V4dHJhY3Rpb24oKQoreworICAgIFttX2NvbnRlbnRWaWV3IGNhbmNlbEVsZW1lbnRGdWxsc2Ny
ZWVuVmlkZW9FeHRyYWN0aW9uXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRp
ZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDkwYTYzMjAwNzg4Y2Nh
ODljMDM2N2JhMTBmYmU1MjNlMTAyYjRkMTEuLmE0NTJiOTBiZTEzYzZkZDMxYTdkMThkOGQ5MzVh
N2ViOWUyZjc2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTgwNCw2ICs4MDQsOSBAQCBGT1JfRUFDSF9Q
UklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05f
Rk9SX1dFQl9WSUVXKQogLSAodm9pZCljYW5jZWxGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOihB
VlBsYXllclZpZXdDb250cm9sbGVyICopY29udHJvbGxlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWlj
LCByZWFkb25seSkgQk9PTCBpc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkOwogCist
ICh2b2lkKWJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb246KGNvbnN0IFdlYktp
dDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKWJpdG1hcEhhbmRsZSBib3VuZHM6KFdlYkNvcmU6
OkZsb2F0UmVjdClib3VuZHM7CistICh2b2lkKWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9F
eHRyYWN0aW9uOworCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tUZXN0aW5n
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KaW5kZXggZWRjNDVhOTBkNjRmMTI4OWU2YzIzNTU3ZWVkMDI4NGM2MGI5
MTE0Yi4uNGY4NWY4NTI3ODBiMzdhM2UzZGQ4MmNjYjQ5YTAxZDkxMTkyMDkxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCkBAIC0xMTA0OCw2ICsxMTA0OCwxNCBAQCAtIChCT09MKWlzRnVsbHNjcmVlblZpZGVv
RXh0cmFjdGlvbkVuYWJsZWQKICAgICByZXR1cm4gTk87CiB9CiAKKy0gKHZvaWQpYmVnaW5FbGVt
ZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbjooY29uc3QgV2ViS2l0OjpTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYpYml0bWFwSGFuZGxlIGJvdW5kczooV2ViQ29yZTo6RmxvYXRSZWN0KWJvdW5k
cworeworfQorCistICh2b2lkKWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9u
Cit7Cit9CisKICNlbmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggNzUx
NDAwZWVjMmM5ODk0YmFiOGI0MDc0MjIyOWVhNzEzMTJlOGE2Mi4uNmU5OWZhNmRjMjMzNWI2MjI3
M2ViMzM2NDExOTM4Yzk1NWIxMTdmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzYx
LDggKzM2MSwxMSBAQCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptYWluVmlkZW9FbGVtZW50
RXh0cmFjdGlvblRpbWVyRmlyZWQoKQogICAgIGlmICghbV9tYWluVmlkZW9FbGVtZW50KQogICAg
ICAgICByZXR1cm47CiAKKyAgICBpZiAobV9pc0V4dHJhY3RpbmdNYWluVmlkZW9FbGVtZW50KQor
ICAgICAgICBtX3BhZ2UtPmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4o
KTsKKwogICAgIG1faXNFeHRyYWN0aW5nTWFpblZpZGVvRWxlbWVudCA9IHRydWU7Ci0gICAgLy8g
RklYTUU6IEJlZ2luIG1haW4gdmlkZW8gZXh0cmFjdGlvbiBpbiBmb3IgZWxlbWVudCBmdWxsc2Ny
ZWVuLgorICAgIG1fcGFnZS0+ZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbigqbV9tYWlu
VmlkZW9FbGVtZW50KTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c2NoZWR1bGVN
YWluVmlkZW9FbGVtZW50RXh0cmFjdGlvbigpCkBAIC0zNzUsNyArMzc4LDcgQEAgdm9pZCBXZWJG
dWxsU2NyZWVuTWFuYWdlcjo6ZW5kTWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb25JZk5lZWRlZCgp
CiAgICAgbV9tYWluVmlkZW9FbGVtZW50RXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKIAogICAgIGlm
IChtX2lzRXh0cmFjdGluZ01haW5WaWRlb0VsZW1lbnQpIHsKLSAgICAgICAgLy8gRklYTUU6IENh
bmNlbCB0aGUgY3VycmVudCB2aWRlbyBleHRyYWN0aW9uIHNlc3Npb24uCisgICAgICAgIG1fcGFn
ZS0+Y2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpOwogICAgICAgICBt
X2lzRXh0cmFjdGluZ01haW5WaWRlb0VsZW1lbnQgPSBmYWxzZTsKICAgICB9CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDBiMWU4NDlhZWRk
NTA4MGU5NGM0NmU4MGFhOTdkZTc3YmE4MmIyZjMuLjkzNTgyNTUxNWQ0M2NiMWQ5MzA0NGRiNDMw
MDAxOGRkMGU1MDQ4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCkBAIC0yMzYsNiArMjM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxh
eWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvUmVuZGVyVHJlZUFzVGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlkZW8uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgpAQCAtODAyNCw2ICs4MDI1LDMyIEBAIHZvaWQgV2ViUGFnZTo6c2Nyb2xsVG9SZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6CiAgICAgbWFp
bkZyYW1lVmlldygpLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCh0YXJnZXRSZWN0Lm1pblhN
aW5ZQ29ybmVyKCkpKTsKIH0KIAordm9pZCBXZWJQYWdlOjpleHRyYWN0VmlkZW9JbkVsZW1lbnRG
dWxsU2NyZWVuKGNvbnN0IEhUTUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgUmVmUHRy
IHZpZXcgPSBlbGVtZW50LmRvY3VtZW50KCkudmlldygpOworICAgIGlmICghdmlldykKKyAgICAg
ICAgcmV0dXJuOworCisgICAgYXV0byBtZWRpYVBsYXllcklkZW50aWZpZXIgPSB2YWx1ZU9yRGVm
YXVsdChlbGVtZW50LnBsYXllcklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFtZWRpYVBsYXllcklk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVu
dC5yZW5kZXJlcigpOworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKworICAg
IGF1dG8gcmVjdEluUm9vdFZpZXcgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXIt
PnZpZGVvQm94KCkpOworICAgIGlmIChyZWN0SW5Sb290Vmlldy5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXh0cmFjdFZpZGVv
SW5FbGVtZW50RnVsbFNjcmVlbihtZWRpYVBsYXllcklkZW50aWZpZXIsIHJlY3RJblJvb3RWaWV3
KSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6Y2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVs
bFNjcmVlbigpCit7CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxWaWRl
b0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKIAogI3VuZGVmIFdFQlBBR0VfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCBlZDJlOThmMTE5NWEyNzcxY2ZiZTAzNmQ0NzMw
NDZkNDE4ZDhhNjQ1Li4xYjUwNDY0ZDRjY2ExMGIxNDAwYjUwMjhjNTczNjBjOTZmZjBiZDRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMDAsNiAr
MjAwLDcgQEAgY2xhc3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNZW51RWxlbWVudDsK
IGNsYXNzIEhUTUxNZW51SXRlbUVsZW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2Ns
YXNzIEhUTUxWaWRlb0VsZW1lbnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEtleWJvYXJkRXZl
bnQ7CiBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDsKQEAgLTE1MjYsNiArMTUyNyw5
IEBAIHB1YmxpYzoKICAgICBib29sIHVzZVNjZW5lS2l0Rm9yTW9kZWwoKSBjb25zdCB7IHJldHVy
biBtX3VzZVNjZW5lS2l0Rm9yTW9kZWw7IH07CiAjZW5kaWYKIAorICAgIHZvaWQgZXh0cmFjdFZp
ZGVvSW5FbGVtZW50RnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7
CisgICAgdm9pZCBjYW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisK
IHByaXZhdGU6CiAgICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456364</attachid>
            <date>2022-04-01 08:56:32 -0700</date>
            <delta_ts>2022-04-01 10:50:49 -0700</delta_ts>
            <desc>Rebase on trunk</desc>
            <filename>bug-238607-20220401085631.patch</filename>
            <type>text/plain</type>
            <size>15987</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhlNzBlMjQyNGM5YjYy
MzY5YzI3ZGQ4OGRmOGI4Zjg0ZmIxMTEwNi4uNDBmMGYxNThmYTQ0ZDcyZjVjNzIzNTMyZTg1YmQ5
Yzc5N2E5NDViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtXSzJd
IEFkZCBwbHVtYmluZyBmb3IgZXh0cmFjdGluZyB2aWRlbyBmcmFtZXMgaW4gZWxlbWVudCBmdWxs
c2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzg2MDcKKyAgICAgICAgcmRhcjovLzkxMTAyODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIG9uIEhUTUxNZWRp
YUVsZW1lbnQgdG8gcmV0dXJuIHRoZSBpZGVudGlmaWVyIG9mIGl0cyBNZWRpYVBsYXllci4gU2Vl
IFdlYktpdCBDaGFuZ2VMb2cgZm9yCisgICAgICAgIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGxheWVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisKIDIwMjItMDQtMDEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNv
bT4KIAogICAgICAgICBBZGQgUmVuZGVyR3JpZCBwYXJhbWV0ZXIgdG8gcmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGNjMGQ4MjIyYWVjMzZkMDc4N2U5ZjRhODRmODFh
YmU4ZmQwYmExMC4uZjkzZjc0Y2NkYzUyZDRmZmRkZGFhZDRkMzI1M2I0MTVlM2EyZWM5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMi0wNC0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBbV0syXSBBZGQgcGx1bWJpbmcgZm9y
IGV4dHJhY3RpbmcgdmlkZW8gZnJhbWVzIGluIGVsZW1lbnQgZnVsbHNjcmVlbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NjA3CisgICAgICAgIHJk
YXI6Ly85MTEwMjg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBXZWJLaXQyIGNsaWVudCBsYXllciBwbHVtYmluZyBmb3IgdHJpZ2dlcmluZyB2
aWRlbyBleHRyYWN0aW9uIGZvciB0aGUgcHJvbWluZW50IHZpZGVvIGluIGVsZW1lbnQgZnVsbHNj
cmVlbi4KKyAgICAgICAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpiZWdp
bkVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorCisgICAg
ICAgIEFkZCBuZXcgUGFnZUNsaWVudCBob29rcyB0byBzdGFydCBhbmQgY2FuY2VsIHZpZGVvIGVs
ZW1lbnQgZXh0cmFjdGlvbiBpbiBlbGVtZW50IGZ1bGxzY3JlZW4uIFdlIG9ubHkgaW1wbGVtZW50
CisgICAgICAgIHRoZXNlIG9uIGlPUywgZm9yIG5vdy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmV4dHJhY3RW
aWRlb0luRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBJUEMgcGx1bWJpbmcgZnJvbSBXZWJQYWdlIHRv
IFdlYlBhZ2VQcm94eSBmb3Igc3RhcnRpbmcgYW5kIGNhbmNlbGluZyB2aWRlbyBlbGVtZW50IGV4
dHJhY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1
bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYmVnaW5FbGVtZW50
RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbjpib3VuZHM6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25dKToKKworICAgICAg
ICBBZGQgbWV0aG9kIHN0dWJzIGZvciBub24taW50ZXJuYWwgYnVpbGRzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1haW5WaWRlb0VsZW1lbnRFeHRyYWN0aW9u
VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbmRN
YWluVmlkZW9FbGVtZW50RXh0cmFjdGlvbklmTmVlZGVkKToKKworICAgICAgICBSZW1vdmUgdGhl
IEZJWE1FcyBhbmQgY2FsbCBpbnRvIHRoZSBuZXcgaGVscGVyIG1ldGhvZHMgb24gV2ViUGFnZSB0
byBzdGFydCBhbmQgY2FuY2VsIHZpZGVvIGVsZW1lbnQgZXh0cmFjdGlvbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjItMDQtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uZ2V0Tm90aWZpY2F0aW9ucyBzaG91bGQgbGlzdCBhbGwgcGVyc2lzdGVudCBub3RpZmlj
YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0YjZk
MGU1YjQ0NDcxNDY5MWY4ZDk3MDU2MDY4NDgzYzY4OTBmMDNiLi44NThhMTMwMTU3NmRkODk5NDky
NWZhOWJkYjJkZmNiZjQwZTJiMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTYyMSw2ICs2MjEsMTEgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxv
YlVSTChtX2Jsb2JVUkxGb3JSZWFkaW5nKTsKIH0KIAorc3RkOjpvcHRpb25hbDxNZWRpYVBsYXll
cklkZW50aWZpZXI+IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXllcklkZW50aWZpZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX3BsYXllciA/IHN0ZDo6bWFrZV9vcHRpb25hbChtX3BsYXllci0+aWRl
bnRpZmllcigpKSA6IHN0ZDo6bnVsbG9wdDsKK30KKwogUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+
IEhUTUxNZWRpYUVsZW1lbnQ6OmJlc3RNZWRpYUVsZW1lbnRGb3JSZW1vdGVDb250cm9scyhNZWRp
YUVsZW1lbnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlLCBjb25zdCBE
b2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgVmVjdG9yPE1lZGlhRWxlbWVudFNlc3Npb25JbmZv
PiBjYW5kaWRhdGVTZXNzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
aW5kZXggOTk2MGIyZWM4ODUxNjVlNjlmMTIyM2Y5ZjcyNDdjMTBmZmQ1ODY5Mi4uYzY3MjM5ZmNj
NzIxNTQzNmZiNjIyZmFhN2I1ZDA0NDE0NDI2YjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRN
TEVsZW1lbnQ6OndlYWtQdHJGYWN0b3J5OwogCiAgICAgUmVmUHRyPE1lZGlhUGxheWVyPiBwbGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8TWVkaWFQbGF5ZXJJZGVudGlmaWVyPiBwbGF5ZXJJZGVudGlmaWVyKCkgY29uc3Q7
CisKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAppbmRleCBjYmY5YzhiODllNDA1ZWRiYzMxMTYxZjI5NTM4MDg1ZDgwZjM5
MDExLi5kOWMwZjhiODVkZTc0NTJmOGU2ZWEwYTgyYzA3YTU5NTYyZTEyODEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01MDksNiArNTA5LDkgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVu
dEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
LCBXZWJDb3JlOjpGbG9hdFJlY3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxFbGVtZW50
RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbigpIHsgfQorCiAgICAgLy8gQXV4aWxpYXJ5IENsaWVu
dCBDcmVhdGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQmIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQo
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiNjI0
NmQwNmFiYTkxYTA1M2QyZDBjZjllYmZkM2I1MDc4ZjE0ZDRlLi43YThlNzVlODAwNjJmMTFkZDlm
MmUzZDU2ZTJkYmVhZTNhZjQ3YjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTExMzA5LDYgKzExMzA5LDM1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9s
CiAgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMsIFdU
Rk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXh0cmFjdFZpZGVv
SW5FbGVtZW50RnVsbFNjcmVlbihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgRmxv
YXRSZWN0IGJvdW5kcykKK3sKKyAgICBpZiAoIXBhZ2VDbGllbnQoKS5pc0Z1bGxzY3JlZW5WaWRl
b0V4dHJhY3Rpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIFJlZlB0ciBncHVQ
cm9jZXNzID0gR1BVUHJvY2Vzc1Byb3h5OjpzaW5nbGV0b25JZkNyZWF0ZWQoKTsKKyAgICBpZiAo
IWdwdVByb2Nlc3MpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzUGVuZGluZ0VsZW1lbnRG
dWxsU2NyZWVuVmlkZW9FeHRyYWN0aW9uID0gdHJ1ZTsKKyAgICBncHVQcm9jZXNzLT5yZXF1ZXN0
Qml0bWFwSW1hZ2VGb3JDdXJyZW50VGltZShtX3Byb2Nlc3MtPmNvcmVQcm9jZXNzSWRlbnRpZmll
cigpLCBpZGVudGlmaWVyLCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgYm91bmRzXShh
dXRvJiBiaXRtYXBIYW5kbGUpIHsKKyAgICAgICAgUmVmUHRyIHByb3RlY3RlZFRoaXMgPSB3ZWFr
VGhpcy5nZXQoKTsKKyAgICAgICAgaWYgKCFwcm90ZWN0ZWRUaGlzIHx8ICFwcm90ZWN0ZWRUaGlz
LT5tX2hhc1BlbmRpbmdFbGVtZW50RnVsbFNjcmVlblZpZGVvRXh0cmFjdGlvbikKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5wYWdlQ2xpZW50KCkuYmVnaW5F
bGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbihiaXRtYXBIYW5kbGUsIGJvdW5kcyk7Cisg
ICAgICAgIHByb3RlY3RlZFRoaXMtPm1faGFzUGVuZGluZ0VsZW1lbnRGdWxsU2NyZWVuVmlkZW9F
eHRyYWN0aW9uID0gZmFsc2U7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpjYW5j
ZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCkKK3sKKyAgICBpZiAoIXBhZ2VD
bGllbnQoKS5pc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1faGFzUGVuZGluZ0VsZW1lbnRGdWxsU2NyZWVuVmlkZW9FeHRyYWN0aW9u
ID0gZmFsc2U7CisgICAgcGFnZUNsaWVudCgpLmNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9F
eHRyYWN0aW9uKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgV0VCUEFH
RVBST1hZX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDFjN2Q1NWMxNDNlMzcwYjgyYWI2ODk4OTU0MGZiMDVlNGExNDcyZmUuLjliYTI5YWJlY2E4
M2EwYWIwZmQ4NTkwMDVlZGJiNjI0NTUxNTNlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0yMDkzLDYgKzIwOTMsOSBAQCBwdWJsaWM6CiAgICAgfQogI2VuZGlm
CiAKKyAgICB2b2lkIGV4dHJhY3RWaWRlb0luRWxlbWVudEZ1bGxTY3JlZW4oV2ViQ29yZTo6TWVk
aWFQbGF5ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgdmlkZW9Cb3VuZHMpOworICAg
IHZvaWQgY2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpOworCiBwcml2
YXRlOgogICAgIFdlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiwgV2ViUHJvY2Vzc1Byb3h5JiwgUmVm
PEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CkBAIC0zMjQwLDYgKzMyNDMsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6b3B0aW9uYWw8UGxh
eWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXI+IG1fY3VycmVudEZ1bGxzY3JlZW5WaWRlb1Nl
c3Npb25JZGVudGlmaWVyOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYlBhZ2VQcm94eT4gbV9mdWxs
c2NyZWVuVmlkZW9FeHRyYWN0aW9uVGltZXI7CiAjZW5kaWYKKyAgICBib29sIG1faGFzUGVuZGlu
Z0VsZW1lbnRGdWxsU2NyZWVuVmlkZW9FeHRyYWN0aW9uIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJM
RShJTUFHRV9BTkFMWVNJU19FTkhBTkNFTUVOVFMpCiAgICAgZW51bSBjbGFzcyBDcm9wcGVkSW1h
Z2VPdmVybGF5U3RhdGUgOiB1aW50OF90IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBjNzdkYjIzNGZhZGYxMTAwMzkwODMzMTY3
YjMyNGZiNGJiN2Q4MmEwLi5jMzAzYmIzMjE4NDY5Nzk3NmIxYTE1OTE1ZDAzY2VhNzYxNTJhYjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0zNzgsNiArMzc4LDkgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBE
aWN0YXRpb25BbHRlcm5hdGl2ZXMoV2ViQ29yZTo6RGljdGF0aW9uQ29udGV4dCBkaWN0YXRpb25D
b250ZXh0KSAtPiAoVmVjdG9yPFN0cmluZz4gYWx0ZXJuYXRpdmVzKSBTeW5jaHJvbm91cwogI2Vu
ZGlmCiAKKyAgICBFeHRyYWN0VmlkZW9JbkVsZW1lbnRGdWxsU2NyZWVuKFdlYkNvcmU6Ok1lZGlh
UGxheWVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGbG9hdFJlY3QgdmlkZW9Cb3Vu
ZHMpCisgICAgQ2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpCisKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIENvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCiAg
ICAgUmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNj
cm9sbFBvc2l0aW9uLCBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6
UmVjdEVkZ2VzPGZsb2F0PiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCBk
ZmIxOTM5OTM2MTZlODAwYTFhNTA4ODE4ODMyZTRkZjI1NzZkY2Q5Li4yM2RhNjYwNzhlMzgwMzUy
Mzk2YWNkZWM5N2FjODAyMzAwNGJkNWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMzA3LDYgKzMwNyw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBjYW5jZWxGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uKEFWUGxheWVyVmlld0NvbnRy
b2xsZXIgKikgZmluYWw7CiAgICAgYm9vbCBpc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFi
bGVkKCkgY29uc3QgZmluYWw7CiAKKyAgICB2b2lkIGJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRl
b0V4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpGbG9h
dFJlY3QpIGZpbmFsOworICAgIHZvaWQgY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb24oKSBmaW5hbDsKKwogICAgIFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+IG1fY29udGVu
dFZpZXc7CiAgICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldD4gbV91bmRvVGFyZ2V0Owog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCBlYjhmNzBmNmRjY2RlNDBkOTc1MDFmZDI5ZWY1MDY1ZDEyY2YwZDU5Li5hNzZhMzMy
NDkxM2UyYzNjZjczNTZkZjNlMDY4MDg4NjNlMjkwMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0xMDYwLDYgKzEwNjAsMTYg
QEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uRW5hYmxl
ZCgpIGNvbnN0CiAgICAgcmV0dXJuIFttX2NvbnRlbnRWaWV3IGlzRnVsbHNjcmVlblZpZGVvRXh0
cmFjdGlvbkVuYWJsZWRdOwogfQogCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdpbkVsZW1lbnRG
dWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBi
aXRtYXBIYW5kbGUsIEZsb2F0UmVjdCBib3VuZHMpCit7CisgICAgW21fY29udGVudFZpZXcgYmVn
aW5FbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbjpiaXRtYXBIYW5kbGUgYm91bmRzOmJv
dW5kc107Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNhbmNlbEVsZW1lbnRGdWxsc2NyZWVu
VmlkZW9FeHRyYWN0aW9uKCkKK3sKKyAgICBbbV9jb250ZW50VmlldyBjYW5jZWxFbGVtZW50RnVs
bHNjcmVlblZpZGVvRXh0cmFjdGlvbl07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCA5MGE2MzIwMDc4
OGNjYTg5YzAzNjdiYTEwZmJlNTIzZTEwMmI0ZDExLi5hNDUyYjkwYmUxM2M2ZGQzMWE3ZDE4ZDhk
OTM1YTdlYjllMmY3NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04MDQsNiArODA0LDkgQEAgRk9SX0VB
Q0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpY2FuY2VsRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlv
bjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKWNvbnRyb2xsZXI7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIEJPT0wgaXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uRW5hYmxlZDsK
IAorLSAodm9pZCliZWdpbkVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOihjb25zdCBX
ZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiliaXRtYXBIYW5kbGUgYm91bmRzOihXZWJD
b3JlOjpGbG9hdFJlY3QpYm91bmRzOworLSAodm9pZCljYW5jZWxFbGVtZW50RnVsbHNjcmVlblZp
ZGVvRXh0cmFjdGlvbjsKKwogQGVuZAogCiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgKFdLVGVz
dGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDQ1ZGViYmRhNzM4OWQ4ZWEyNGY4YmI4MjdiN2I3MGE5
MDUwZDdlOTAuLjdkYjMxYjc1YWIzZWU4NjViM2RhNTY4YWJmMjk4Y2JkNmI5NWEwMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtMTEwNDgsNiArMTEwNDgsMTQgQEAgLSAoQk9PTClpc0Z1bGxzY3JlZW5W
aWRlb0V4dHJhY3Rpb25FbmFibGVkCiAgICAgcmV0dXJuIE5POwogfQogCistICh2b2lkKWJlZ2lu
RWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb246KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmKWJpdG1hcEhhbmRsZSBib3VuZHM6KFdlYkNvcmU6OkZsb2F0UmVjdCli
b3VuZHMKK3sKK30KKworLSAodm9pZCljYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFj
dGlvbgoreworfQorCiAjZW5kaWYKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCmluZGV4
IDNhOTE0ZTY3YTBmNTZmYWJkMzJjYWMwMzNkZDIwM2ZkYjJiNjliOGEuLjA0YjIxZjEwMGM3MWMx
OWIwZjlkZGQ4MDBiMjRiYWNlYjY4MzIxZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKQEAg
LTM2MSw4ICszNjEsMTEgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6bWFpblZpZGVvRWxl
bWVudEV4dHJhY3Rpb25UaW1lckZpcmVkKCkKICAgICBpZiAoIW1fbWFpblZpZGVvRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1faXNFeHRyYWN0aW5nTWFpblZpZGVvRWxlbWVu
dCkKKyAgICAgICAgbV9wYWdlLT5jYW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2Ny
ZWVuKCk7CisKICAgICBtX2lzRXh0cmFjdGluZ01haW5WaWRlb0VsZW1lbnQgPSB0cnVlOwotICAg
IC8vIEZJWE1FOiBCZWdpbiBtYWluIHZpZGVvIGV4dHJhY3Rpb24gaW4gZm9yIGVsZW1lbnQgZnVs
bHNjcmVlbi4KKyAgICBtX3BhZ2UtPmV4dHJhY3RWaWRlb0luRWxlbWVudEZ1bGxTY3JlZW4oKm1f
bWFpblZpZGVvRWxlbWVudCk7CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXI6OnNjaGVk
dWxlTWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb24oKQpAQCAtMzc1LDcgKzM3OCw3IEBAIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVuZE1haW5WaWRlb0VsZW1lbnRFeHRyYWN0aW9uSWZOZWVk
ZWQoKQogICAgIG1fbWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb25UaW1lci5zdG9wKCk7CiAKICAg
ICBpZiAobV9pc0V4dHJhY3RpbmdNYWluVmlkZW9FbGVtZW50KSB7Ci0gICAgICAgIC8vIEZJWE1F
OiBDYW5jZWwgdGhlIGN1cnJlbnQgdmlkZW8gZXh0cmFjdGlvbiBzZXNzaW9uLgorICAgICAgICBt
X3BhZ2UtPmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4oKTsKICAgICAg
ICAgbV9pc0V4dHJhY3RpbmdNYWluVmlkZW9FbGVtZW50ID0gZmFsc2U7CiAgICAgfQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3Mjk0OTQx
Y2FhMmI1YzdlNTVjNGY1MTQwYzhjY2FmOTU2ODQ4ZDBmLi41NDQxZDY5ZGU0OTk1ZmM4NWU3NmI5
ZGY1NGE3NzI5ZDc5ZWRkN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtMjM2LDYgKzIzNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5k
ZXJMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVGhlbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlclRyZWVBc1RleHQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlclZpZGVv
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJWaWV3Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVl
c3QuaD4KQEAgLTgwODYsNiArODA4NywzMiBAQCB2b2lkIFdlYlBhZ2U6OnNjcm9sbFRvUmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHRhcmdldFJlY3QsIGNvbnN0IFdlYkNvcmU6OgogICAg
IG1haW5GcmFtZVZpZXcoKS0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQodGFyZ2V0UmVjdC5t
aW5YTWluWUNvcm5lcigpKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6ZXh0cmFjdFZpZGVvSW5FbGVt
ZW50RnVsbFNjcmVlbihjb25zdCBIVE1MVmlkZW9FbGVtZW50JiBlbGVtZW50KQoreworICAgIFJl
ZlB0ciB2aWV3ID0gZWxlbWVudC5kb2N1bWVudCgpLnZpZXcoKTsKKyAgICBpZiAoIXZpZXcpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8gbWVkaWFQbGF5ZXJJZGVudGlmaWVyID0gdmFsdWVP
ckRlZmF1bHQoZWxlbWVudC5wbGF5ZXJJZGVudGlmaWVyKCkpOworICAgIGlmICghbWVkaWFQbGF5
ZXJJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvKiByZW5kZXJlciA9IGVs
ZW1lbnQucmVuZGVyZXIoKTsKKyAgICBpZiAoIXJlbmRlcmVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBhdXRvIHJlY3RJblJvb3RWaWV3ID0gdmlldy0+Y29udGVudHNUb1Jvb3RWaWV3KHJlbmRl
cmVyLT52aWRlb0JveCgpKTsKKyAgICBpZiAocmVjdEluUm9vdFZpZXcuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4dHJhY3RW
aWRlb0luRWxlbWVudEZ1bGxTY3JlZW4obWVkaWFQbGF5ZXJJZGVudGlmaWVyLCByZWN0SW5Sb290
VmlldykpOworfQorCit2b2lkIFdlYlBhZ2U6OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVu
dEZ1bGxTY3JlZW4oKQoreworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q2FuY2Vs
VmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CiAKICN1bmRlZiBXRUJQQUdFX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMWViMzdjNTFlZjBjNzVhZTUwZmY5ZjRm
NjlmNzcwZDAyYzU0MzI5YS4uMGRkMjIwNjE1Y2VlMTM4NTQ2NjQyOTM3NmJhM2EzZTg5NDc1NDM1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMjAw
LDYgKzIwMCw3IEBAIGNsYXNzIEhUTUxJbWFnZUVsZW1lbnQ7CiBjbGFzcyBIVE1MTWVudUVsZW1l
bnQ7CiBjbGFzcyBIVE1MTWVudUl0ZW1FbGVtZW50OwogY2xhc3MgSFRNTFBsdWdJbkVsZW1lbnQ7
CitjbGFzcyBIVE1MVmlkZW9FbGVtZW50OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBLZXlib2Fy
ZEV2ZW50OwogY2xhc3MgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ7CkBAIC0xNTI5LDYgKzE1
MzAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCB1c2VTY2VuZUtpdEZvck1vZGVsKCkgY29uc3QgeyBy
ZXR1cm4gbV91c2VTY2VuZUtpdEZvck1vZGVsOyB9OwogI2VuZGlmCiAKKyAgICB2b2lkIGV4dHJh
Y3RWaWRlb0luRWxlbWVudEZ1bGxTY3JlZW4oY29uc3QgV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dCYpOworICAgIHZvaWQgY2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigp
OworCiBwcml2YXRlOgogICAgIFdlYlBhZ2UoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMmJik7CiAK
</data>
<flag name="commit-queue"
          id="484640"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456368</attachid>
            <date>2022-04-01 09:50:22 -0700</date>
            <delta_ts>2022-04-01 15:50:57 -0700</delta_ts>
            <desc>Fix non-GPUP build</desc>
            <filename>bug-238607-20220401095022.patch</filename>
            <type>text/plain</type>
            <size>16085</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhlNzBlMjQyNGM5YjYy
MzY5YzI3ZGQ4OGRmOGI4Zjg0ZmIxMTEwNi4uNDBmMGYxNThmYTQ0ZDcyZjVjNzIzNTMyZTg1YmQ5
Yzc5N2E5NDViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtXSzJd
IEFkZCBwbHVtYmluZyBmb3IgZXh0cmFjdGluZyB2aWRlbyBmcmFtZXMgaW4gZWxlbWVudCBmdWxs
c2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzg2MDcKKyAgICAgICAgcmRhcjovLzkxMTAyODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgaGVscGVyIGZ1bmN0aW9uIG9uIEhUTUxNZWRp
YUVsZW1lbnQgdG8gcmV0dXJuIHRoZSBpZGVudGlmaWVyIG9mIGl0cyBNZWRpYVBsYXllci4gU2Vl
IFdlYktpdCBDaGFuZ2VMb2cgZm9yCisgICAgICAgIG1vcmUgaW5mb3JtYXRpb24uCisKKyAgICAg
ICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6cGxheWVySWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogaHRtbC9IVE1M
TWVkaWFFbGVtZW50Lmg6CisKIDIwMjItMDQtMDEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNv
bT4KIAogICAgICAgICBBZGQgUmVuZGVyR3JpZCBwYXJhbWV0ZXIgdG8gcmVzb2x2ZUdyaWRQb3Np
dGlvbnNGcm9tU3R5bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNGNjMGQ4MjIyYWVjMzZkMDc4N2U5ZjRhODRmODFh
YmU4ZmQwYmExMC4uZjkzZjc0Y2NkYzUyZDRmZmRkZGFhZDRkMzI1M2I0MTVlM2EyZWM5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MSBAQAorMjAyMi0wNC0wMSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBbV0syXSBBZGQgcGx1bWJpbmcgZm9y
IGV4dHJhY3RpbmcgdmlkZW8gZnJhbWVzIGluIGVsZW1lbnQgZnVsbHNjcmVlbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NjA3CisgICAgICAgIHJk
YXI6Ly85MTEwMjg4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBXZWJLaXQyIGNsaWVudCBsYXllciBwbHVtYmluZyBmb3IgdHJpZ2dlcmluZyB2
aWRlbyBleHRyYWN0aW9uIGZvciB0aGUgcHJvbWluZW50IHZpZGVvIGluIGVsZW1lbnQgZnVsbHNj
cmVlbi4KKyAgICAgICAgU2VlIGJlbG93IGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50OjpiZWdp
bkVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorCisgICAg
ICAgIEFkZCBuZXcgUGFnZUNsaWVudCBob29rcyB0byBzdGFydCBhbmQgY2FuY2VsIHZpZGVvIGVs
ZW1lbnQgZXh0cmFjdGlvbiBpbiBlbGVtZW50IGZ1bGxzY3JlZW4uIFdlIG9ubHkgaW1wbGVtZW50
CisgICAgICAgIHRoZXNlIG9uIGlPUywgZm9yIG5vdy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmV4dHJhY3RW
aWRlb0luRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorCisgICAgICAgIEFkZCBJUEMgcGx1bWJpbmcgZnJvbSBXZWJQYWdlIHRv
IFdlYlBhZ2VQcm94eSBmb3Igc3RhcnRpbmcgYW5kIGNhbmNlbGluZyB2aWRlbyBlbGVtZW50IGV4
dHJhY3Rpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1
bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYmVnaW5FbGVtZW50
RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbjpib3VuZHM6XSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25dKToKKworICAgICAg
ICBBZGQgbWV0aG9kIHN0dWJzIGZvciBub24taW50ZXJuYWwgYnVpbGRzLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6Om1haW5WaWRlb0VsZW1lbnRFeHRyYWN0aW9u
VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjplbmRN
YWluVmlkZW9FbGVtZW50RXh0cmFjdGlvbklmTmVlZGVkKToKKworICAgICAgICBSZW1vdmUgdGhl
IEZJWE1FcyBhbmQgY2FsbCBpbnRvIHRoZSBuZXcgaGVscGVyIG1ldGhvZHMgb24gV2ViUGFnZSB0
byBzdGFydCBhbmQgY2FuY2VsIHZpZGVvIGVsZW1lbnQgZXh0cmFjdGlvbi4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisKIDIwMjItMDQtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24uZ2V0Tm90aWZpY2F0aW9ucyBzaG91bGQgbGlzdCBhbGwgcGVyc2lzdGVudCBub3RpZmlj
YXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA0YjZk
MGU1YjQ0NDcxNDY5MWY4ZDk3MDU2MDY4NDgzYzY4OTBmMDNiLi44NThhMTMwMTU3NmRkODk5NDky
NWZhOWJkYjJkZmNiZjQwZTJiMzVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTYyMSw2ICs2MjEsMTEgQEAgSFRNTE1lZGlhRWxlbWVudDo6fkhUTUxNZWRp
YUVsZW1lbnQoKQogICAgICAgICBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5Ojp1bnJlZ2lzdGVyQmxv
YlVSTChtX2Jsb2JVUkxGb3JSZWFkaW5nKTsKIH0KIAorc3RkOjpvcHRpb25hbDxNZWRpYVBsYXll
cklkZW50aWZpZXI+IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXllcklkZW50aWZpZXIoKSBjb25zdAor
eworICAgIHJldHVybiBtX3BsYXllciA/IHN0ZDo6bWFrZV9vcHRpb25hbChtX3BsYXllci0+aWRl
bnRpZmllcigpKSA6IHN0ZDo6bnVsbG9wdDsKK30KKwogUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+
IEhUTUxNZWRpYUVsZW1lbnQ6OmJlc3RNZWRpYUVsZW1lbnRGb3JSZW1vdGVDb250cm9scyhNZWRp
YUVsZW1lbnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlLCBjb25zdCBE
b2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgVmVjdG9yPE1lZGlhRWxlbWVudFNlc3Npb25JbmZv
PiBjYW5kaWRhdGVTZXNzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgK
aW5kZXggOTk2MGIyZWM4ODUxNjVlNjlmMTIyM2Y5ZjcyNDdjMTBmZmQ1ODY5Mi4uYzY3MjM5ZmNj
NzIxNTQzNmZiNjIyZmFhN2I1ZDA0NDE0NDI2YjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
TWVkaWFFbGVtZW50LmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRN
TEVsZW1lbnQ6OndlYWtQdHJGYWN0b3J5OwogCiAgICAgUmVmUHRyPE1lZGlhUGxheWVyPiBwbGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX3BsYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8TWVkaWFQbGF5ZXJJZGVudGlmaWVyPiBwbGF5ZXJJZGVudGlmaWVyKCkgY29uc3Q7
CisKICAgICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVy
biBtX2NhY2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1BhZ2VDbGllbnQuaAppbmRleCBjYmY5YzhiODllNDA1ZWRiYzMxMTYxZjI5NTM4MDg1ZDgwZjM5
MDExLi5kOWMwZjhiODVkZTc0NTJmOGU2ZWEwYTgyYzA3YTU5NTYyZTEyODEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01MDksNiArNTA5LDkgQEAgcHVibGljOgogI2Vu
ZGlmCiAgICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVu
dEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
LCBXZWJDb3JlOjpGbG9hdFJlY3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxFbGVtZW50
RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbigpIHsgfQorCiAgICAgLy8gQXV4aWxpYXJ5IENsaWVu
dCBDcmVhdGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQmIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQo
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiNjI0
NmQwNmFiYTkxYTA1M2QyZDBjZjllYmZkM2I1MDc4ZjE0ZDRlLi5kYjJiMjhiOWQyODVmYTI5YTM4
OTBiZTJkZWRmYTlhMDc2Y2VkOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTExMzA5LDYgKzExMzA5LDQwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNp
ZGVQb2xpY3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9s
CiAgICAgbV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMsIFdU
Rk1vdmUoY29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXh0cmFjdFZpZGVv
SW5FbGVtZW50RnVsbFNjcmVlbihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgRmxv
YXRSZWN0IGJvdW5kcykKK3sKKyAgICBpZiAoIXBhZ2VDbGllbnQoKS5pc0Z1bGxzY3JlZW5WaWRl
b0V4dHJhY3Rpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IEdQVVByb2Nlc3NQcm94eTo6c2luZ2xl
dG9uSWZDcmVhdGVkKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX2hhc1BlbmRpbmdFbGVtZW50RnVsbFNjcmVlblZpZGVvRXh0cmFjdGlvbiA9IHRydWU7
CisgICAgZ3B1UHJvY2Vzcy0+cmVxdWVzdEJpdG1hcEltYWdlRm9yQ3VycmVudFRpbWUobV9wcm9j
ZXNzLT5jb3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgaWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIGJvdW5kc10oYXV0byYgYml0bWFwSGFuZGxlKSB7CisgICAgICAgIFJl
ZlB0ciBwcm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghcHJvdGVj
dGVkVGhpcyB8fCAhcHJvdGVjdGVkVGhpcy0+bV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5W
aWRlb0V4dHJhY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgcHJvdGVjdGVk
VGhpcy0+cGFnZUNsaWVudCgpLmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24o
Yml0bWFwSGFuZGxlLCBib3VuZHMpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2hhc1BlbmRp
bmdFbGVtZW50RnVsbFNjcmVlblZpZGVvRXh0cmFjdGlvbiA9IGZhbHNlOworICAgIH0pOworI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGJvdW5k
cyk7CisjZW5kaWYKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFZpZGVvRXh0cmFjdGlv
bkluRWxlbWVudEZ1bGxTY3JlZW4oKQoreworICAgIGlmICghcGFnZUNsaWVudCgpLmlzRnVsbHNj
cmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9o
YXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRlb0V4dHJhY3Rpb24gPSBmYWxzZTsKKyAgICBw
YWdlQ2xpZW50KCkuY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBXRUJQQUdFUFJPWFlfUkVMRUFTRV9M
T0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMWM3ZDU1YzE0M2Uz
NzBiODJhYjY4OTg5NTQwZmIwNWU0YTE0NzJmZS4uOWJhMjlhYmVjYTgzYTBhYjBmZDg1OTAwNWVk
YmI2MjQ1NTE1M2U4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTIwOTMsNiArMjA5Myw5IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAorICAgIHZvaWQgZXh0
cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZp
ZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcyk7CisgICAgdm9pZCBjYW5jZWxWaWRl
b0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFn
ZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmln
dXJhdGlvbj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTMyNDAsNiAr
MzI0Myw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQbGF5YmFja1Nlc3Npb25Db250
ZXh0SWRlbnRpZmllcj4gbV9jdXJyZW50RnVsbHNjcmVlblZpZGVvU2Vzc2lvbklkZW50aWZpZXI7
CiAgICAgUnVuTG9vcDo6VGltZXI8V2ViUGFnZVByb3h5PiBtX2Z1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb25UaW1lcjsKICNlbmRpZgorICAgIGJvb2wgbV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3Jl
ZW5WaWRlb0V4dHJhY3Rpb24geyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lT
X0VOSEFOQ0VNRU5UUykKICAgICBlbnVtIGNsYXNzIENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA6
IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGM3N2RiMjM0ZmFkZjExMDAzOTA4MzMxNjdiMzI0ZmI0YmI3ZDgyYTAu
LmMzMDNiYjMyMTg0Njk3OTc2YjFhMTU5MTVkMDNjZWE3NjE1MmFiMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3OCw2ICsz
NzgsOSBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpY3RhdGlvbkFsdGVybmF0
aXZlcyhXZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0
b3I8U3RyaW5nPiBhbHRlcm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAorICAgIEV4dHJh
Y3RWaWRlb0luRWxlbWVudEZ1bGxTY3JlZW4oV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcykKKyAgICBDYW5jZWxW
aWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCkKKwogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgQ291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCkKICAgICBSZXN0b3JlUGFnZVN0
YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIFdl
YkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+
IG9ic2N1cmVkSW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGRmYjE5Mzk5MzYxNmU4MDBh
MWE1MDg4MTg4MzJlNGRmMjU3NmRjZDkuLjIzZGE2NjA3OGUzODAzNTIzOTZhY2RlYzk3YWM4MDIz
MDA0YmQ1YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCkBAIC0zMDcsNiArMzA3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbEZ1
bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKSBmaW5hbDsK
ICAgICBib29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSBjb25zdCBmaW5h
bDsKIAorICAgIHZvaWQgYmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbihjb25z
dCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OkZsb2F0UmVjdCkgZmluYWw7Cisg
ICAgdm9pZCBjYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbigpIGZpbmFsOwor
CiAgICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV9jb250ZW50VmlldzsKICAgICBSZXRh
aW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGViOGY3MGY2
ZGNjZGU0MGQ5NzUwMWZkMjllZjUwNjVkMTJjZjBkNTkuLmE3NmEzMzI0OTEzZTJjM2NmNzM1NmRm
M2UwNjgwODg2M2UyOTAxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9QYWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTEwNjAsNiArMTA2MCwxNiBAQCBib29sIFBhZ2VDbGll
bnRJbXBsOjppc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkKCkgY29uc3QKICAgICBy
ZXR1cm4gW21fY29udGVudFZpZXcgaXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uRW5hYmxlZF07
CiB9CiAKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4
dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGJpdG1hcEhhbmRsZSwgRmxv
YXRSZWN0IGJvdW5kcykKK3sKKyAgICBbbV9jb250ZW50VmlldyBiZWdpbkVsZW1lbnRGdWxsc2Ny
ZWVuVmlkZW9FeHRyYWN0aW9uOmJpdG1hcEhhbmRsZSBib3VuZHM6Ym91bmRzXTsKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24o
KQoreworICAgIFttX2NvbnRlbnRWaWV3IGNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRy
YWN0aW9uXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9S
TShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDkwYTYzMjAwNzg4Y2NhODljMDM2N2JhMTBm
YmU1MjNlMTAyYjRkMTEuLmE0NTJiOTBiZTEzYzZkZDMxYTdkMThkOGQ5MzVhN2ViOWUyZjc2Mzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmgKQEAgLTgwNCw2ICs4MDQsOSBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVX
KQogLSAodm9pZCljYW5jZWxGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOihBVlBsYXllclZpZXdD
b250cm9sbGVyICopY29udHJvbGxlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBpc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkOwogCistICh2b2lkKWJlZ2lu
RWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb246KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmKWJpdG1hcEhhbmRsZSBib3VuZHM6KFdlYkNvcmU6OkZsb2F0UmVjdCli
b3VuZHM7CistICh2b2lkKWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOwor
CiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tUZXN0aW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggNDVkZWJiZGE3Mzg5ZDhlYTI0ZjhiYjgyN2I3YjcwYTkwNTBkN2U5MC4uN2RiMzFi
NzVhYjNlZTg2NWIzZGE1NjhhYmYyOThjYmQ2Yjk1YTAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0x
MTA0OCw2ICsxMTA0OCwxNCBAQCAtIChCT09MKWlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVu
YWJsZWQKICAgICByZXR1cm4gTk87CiB9CiAKKy0gKHZvaWQpYmVnaW5FbGVtZW50RnVsbHNjcmVl
blZpZGVvRXh0cmFjdGlvbjooY29uc3QgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYp
Yml0bWFwSGFuZGxlIGJvdW5kczooV2ViQ29yZTo6RmxvYXRSZWN0KWJvdW5kcworeworfQorCist
ICh2b2lkKWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uCit7Cit9CisKICNl
bmRpZgogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
RnVsbFNjcmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggM2E5MTRlNjdhMGY1NmZh
YmQzMmNhYzAzM2RkMjAzZmRiMmI2OWI4YS4uMDRiMjFmMTAwYzcxYzE5YjBmOWRkZDgwMGIyNGJh
Y2ViNjgzMjFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3Jl
ZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9GdWxsU2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzYxLDggKzM2MSwxMSBA
QCB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptYWluVmlkZW9FbGVtZW50RXh0cmFjdGlvblRp
bWVyRmlyZWQoKQogICAgIGlmICghbV9tYWluVmlkZW9FbGVtZW50KQogICAgICAgICByZXR1cm47
CiAKKyAgICBpZiAobV9pc0V4dHJhY3RpbmdNYWluVmlkZW9FbGVtZW50KQorICAgICAgICBtX3Bh
Z2UtPmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4oKTsKKwogICAgIG1f
aXNFeHRyYWN0aW5nTWFpblZpZGVvRWxlbWVudCA9IHRydWU7Ci0gICAgLy8gRklYTUU6IEJlZ2lu
IG1haW4gdmlkZW8gZXh0cmFjdGlvbiBpbiBmb3IgZWxlbWVudCBmdWxsc2NyZWVuLgorICAgIG1f
cGFnZS0+ZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbigqbV9tYWluVmlkZW9FbGVtZW50
KTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c2NoZWR1bGVNYWluVmlkZW9FbGVt
ZW50RXh0cmFjdGlvbigpCkBAIC0zNzUsNyArMzc4LDcgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFu
YWdlcjo6ZW5kTWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb25JZk5lZWRlZCgpCiAgICAgbV9tYWlu
VmlkZW9FbGVtZW50RXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX2lzRXh0cmFj
dGluZ01haW5WaWRlb0VsZW1lbnQpIHsKLSAgICAgICAgLy8gRklYTUU6IENhbmNlbCB0aGUgY3Vy
cmVudCB2aWRlbyBleHRyYWN0aW9uIHNlc3Npb24uCisgICAgICAgIG1fcGFnZS0+Y2FuY2VsVmlk
ZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpOwogICAgICAgICBtX2lzRXh0cmFjdGlu
Z01haW5WaWRlb0VsZW1lbnQgPSBmYWxzZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDcyOTQ5NDFjYWEyYjVjN2U1NWM0ZjUx
NDBjOGNjYWY5NTY4NDhkMGYuLjU0NDFkNjlkZTQ5OTVmYzg1ZTc2YjlkZjU0YTc3MjlkNzllZGQ3
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0yMzYsNiArMjM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJl
ZUFzVGV4dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlkZW8uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRp
c3RpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtODA4Niw2
ICs4MDg3LDMyIEBAIHZvaWQgV2ViUGFnZTo6c2Nyb2xsVG9SZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6CiAgICAgbWFpbkZyYW1lVmlldygp
LT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCh0YXJnZXRSZWN0Lm1pblhNaW5ZQ29ybmVyKCkp
KTsKIH0KIAordm9pZCBXZWJQYWdlOjpleHRyYWN0VmlkZW9JbkVsZW1lbnRGdWxsU2NyZWVuKGNv
bnN0IEhUTUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgUmVmUHRyIHZpZXcgPSBlbGVt
ZW50LmRvY3VtZW50KCkudmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgYXV0byBtZWRpYVBsYXllcklkZW50aWZpZXIgPSB2YWx1ZU9yRGVmYXVsdChlbGVtZW50
LnBsYXllcklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFtZWRpYVBsYXllcklkZW50aWZpZXIpCisg
ICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigp
OworICAgIGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcmVjdElu
Um9vdFZpZXcgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPnZpZGVvQm94KCkp
OworICAgIGlmIChyZWN0SW5Sb290Vmlldy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXh0cmFjdFZpZGVvSW5FbGVtZW50RnVs
bFNjcmVlbihtZWRpYVBsYXllcklkZW50aWZpZXIsIHJlY3RJblJvb3RWaWV3KSk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6Y2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpCit7
CisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxWaWRlb0V4dHJhY3Rpb25J
bkVsZW1lbnRGdWxsU2NyZWVuKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3Vu
ZGVmIFdFQlBBR0VfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAxZWIzN2M1MWVmMGM3NWFlNTBmZjlmNGY2OWY3NzBkMDJjNTQzMjlh
Li4wZGQyMjA2MTVjZWUxMzg1NDY2NDI5Mzc2YmEzYTNlODk0NzU0MzU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMDAsNiArMjAwLDcgQEAgY2xh
c3MgSFRNTEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNZW51RWxlbWVudDsKIGNsYXNzIEhUTUxN
ZW51SXRlbUVsZW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEhUTUxWaWRl
b0VsZW1lbnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDsKQEAgLTE1MjksNiArMTUzMCw5IEBAIHB1YmxpYzoK
ICAgICBib29sIHVzZVNjZW5lS2l0Rm9yTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX3VzZVNjZW5l
S2l0Rm9yTW9kZWw7IH07CiAjZW5kaWYKIAorICAgIHZvaWQgZXh0cmFjdFZpZGVvSW5FbGVtZW50
RnVsbFNjcmVlbihjb25zdCBXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAgdm9pZCBj
YW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisKIHByaXZhdGU6CiAg
ICAgV2ViUGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYmKTsKIAo=
</data>
<flag name="review"
          id="484638"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456413</attachid>
            <date>2022-04-01 15:57:57 -0700</date>
            <delta_ts>2022-04-01 19:11:10 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-238607-20220401155756.patch</filename>
            <type>text/plain</type>
            <size>16079</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMjIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODhlNzBlMjQyNGM5YjYy
MzY5YzI3ZGQ4OGRmOGI4Zjg0ZmIxMTEwNi4uYjg0ZjQ3NzRhYWE3NDU1MWE3ZjFhM2EwOGFiOWUy
ODAzZTFiMDI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIyLTA0LTAxICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFtXSzJd
IEFkZCBwbHVtYmluZyBmb3IgZXh0cmFjdGluZyB2aWRlbyBmcmFtZXMgaW4gZWxlbWVudCBmdWxs
c2NyZWVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
Mzg2MDcKKyAgICAgICAgcmRhcjovLzkxMTAyODg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBDYXJsc29uLgorCisgICAgICAgIEFkZCBhIGhlbHBlciBmdW5jdGlvbiBvbiBIVE1MTWVkaWFF
bGVtZW50IHRvIHJldHVybiB0aGUgaWRlbnRpZmllciBvZiBpdHMgTWVkaWFQbGF5ZXIuIFNlZSBX
ZWJLaXQgQ2hhbmdlTG9nIGZvcgorICAgICAgICBtb3JlIGluZm9ybWF0aW9uLgorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OnBsYXllcklkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAqIGh0bWwvSFRNTE1l
ZGlhRWxlbWVudC5oOgorCiAyMDIyLTA0LTAxICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+
CiAKICAgICAgICAgQWRkIFJlbmRlckdyaWQgcGFyYW1ldGVyIHRvIHJlc29sdmVHcmlkUG9zaXRp
b25zRnJvbVN0eWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjYzBkODIyMmFlYzM2ZDA3ODdlOWY0YTg0ZjgxYWJl
OGZkMGJhMTAuLjlhNjA0OGM4NzgyYTdmODI1ZmEwNDFlYzUwZjZmZmY3ZDA1OTNkMzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjItMDQtMDEgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gW1dLMl0gQWRkIHBsdW1iaW5nIGZvciBl
eHRyYWN0aW5nIHZpZGVvIGZyYW1lcyBpbiBlbGVtZW50IGZ1bGxzY3JlZW4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODYwNworICAgICAgICByZGFy
Oi8vOTExMDI4ODgKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisKKyAgICAg
ICAgQWRkIFdlYktpdDIgY2xpZW50IGxheWVyIHBsdW1iaW5nIGZvciB0cmlnZ2VyaW5nIHZpZGVv
IGV4dHJhY3Rpb24gZm9yIHRoZSBwcm9taW5lbnQgdmlkZW8gaW4gZWxlbWVudCBmdWxsc2NyZWVu
LgorICAgICAgICBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OmJlZ2luRWxl
bWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50OjpjYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbik6CisKKyAgICAgICAg
QWRkIG5ldyBQYWdlQ2xpZW50IGhvb2tzIHRvIHN0YXJ0IGFuZCBjYW5jZWwgdmlkZW8gZWxlbWVu
dCBleHRyYWN0aW9uIGluIGVsZW1lbnQgZnVsbHNjcmVlbi4gV2Ugb25seSBpbXBsZW1lbnQKKyAg
ICAgICAgdGhlc2Ugb24gaU9TLCBmb3Igbm93LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZXh0cmFjdFZpZGVv
SW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y2Fu
Y2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW46CisKKyAgICAgICAgQWRkIElQQyBwbHVtYmluZyBmcm9tIFdlYlBhZ2UgdG8gV2Vi
UGFnZVByb3h5IGZvciBzdGFydGluZyBhbmQgY2FuY2VsaW5nIHZpZGVvIGVsZW1lbnQgZXh0cmFj
dGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6YmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjYW5jZWxFbGVtZW50RnVsbHNj
cmVlblZpZGVvRXh0cmFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBiZWdpbkVsZW1lbnRGdWxs
c2NyZWVuVmlkZW9FeHRyYWN0aW9uOmJvdW5kczpdKToKKyAgICAgICAgKC1bV0tDb250ZW50Vmll
dyBjYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbl0pOgorCisgICAgICAgIEFk
ZCBtZXRob2Qgc3R1YnMgZm9yIG5vbi1pbnRlcm5hbCBidWlsZHMuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0Z1bGxTY3JlZW4vV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6bWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb25UaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OmVuZE1haW5W
aWRlb0VsZW1lbnRFeHRyYWN0aW9uSWZOZWVkZWQpOgorCisgICAgICAgIFJlbW92ZSB0aGUgRklY
TUVzIGFuZCBjYWxsIGludG8gdGhlIG5ldyBoZWxwZXIgbWV0aG9kcyBvbiBXZWJQYWdlIHRvIHN0
YXJ0IGFuZCBjYW5jZWwgdmlkZW8gZWxlbWVudCBleHRyYWN0aW9uLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpl
eHRyYWN0VmlkZW9JbkVsZW1lbnRGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Y2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbik6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMi0wNC0wMSAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bi5nZXROb3RpZmljYXRpb25zIHNob3VsZCBsaXN0IGFsbCBwZXJzaXN0ZW50IG5vdGlmaWNhdGlv
bnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDRiNmQwZTVi
NDQ0NzE0NjkxZjhkOTcwNTYwNjg0ODNjNjg5MGYwM2IuLmJjMGY2ZDYxODhmOTgyMDJjNDI1NzAy
NjUxYWQ3ZWE0ZWZlMTc1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1l
ZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcApAQCAtNjIxLDYgKzYyMSwxMSBAQCBIVE1MTWVkaWFFbGVtZW50Ojp+SFRNTE1lZGlhRWxl
bWVudCgpCiAgICAgICAgIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OnVucmVnaXN0ZXJCbG9iVVJM
KG1fYmxvYlVSTEZvclJlYWRpbmcpOwogfQogCitzdGQ6Om9wdGlvbmFsPE1lZGlhUGxheWVySWRl
bnRpZmllcj4gSFRNTE1lZGlhRWxlbWVudDo6cGxheWVySWRlbnRpZmllcigpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fcGxheWVyID8gc3RkOjpvcHRpb25hbCB7IG1fcGxheWVyLT5pZGVudGlmaWVy
KCkgfSA6IHN0ZDo6bnVsbG9wdDsKK30KKwogUmVmUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IEhUTUxN
ZWRpYUVsZW1lbnQ6OmJlc3RNZWRpYUVsZW1lbnRGb3JSZW1vdGVDb250cm9scyhNZWRpYUVsZW1l
bnRTZXNzaW9uOjpQbGF5YmFja0NvbnRyb2xzUHVycG9zZSBwdXJwb3NlLCBjb25zdCBEb2N1bWVu
dCogZG9jdW1lbnQpCiB7CiAgICAgVmVjdG9yPE1lZGlhRWxlbWVudFNlc3Npb25JbmZvPiBjYW5k
aWRhdGVTZXNzaW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKaW5kZXgg
OTk2MGIyZWM4ODUxNjVlNjlmMTIyM2Y5ZjcyNDdjMTBmZmQ1ODY5Mi4uYzY3MjM5ZmNjNzIxNTQz
NmZiNjIyZmFhN2I1ZDA0NDE0NDI2YjBmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmgKQEAgLTE1NSw2ICsxNTUsOCBAQCBwdWJsaWM6CiAgICAgdXNpbmcgSFRNTEVsZW1l
bnQ6OndlYWtQdHJGYWN0b3J5OwogCiAgICAgUmVmUHRyPE1lZGlhUGxheWVyPiBwbGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3BsYXllcjsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9u
YWw8TWVkaWFQbGF5ZXJJZGVudGlmaWVyPiBwbGF5ZXJJZGVudGlmaWVyKCkgY29uc3Q7CisKICAg
ICBib29sIHN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmcoKSBjb25zdCB7IHJldHVybiBtX2Nh
Y2hlZFN1cHBvcnRzQWNjZWxlcmF0ZWRSZW5kZXJpbmc7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBp
c1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaAppbmRleCBjYmY5YzhiODllNDA1ZWRiYzMxMTYxZjI5NTM4MDg1ZDgwZjM5MDExLi5k
OWMwZjhiODVkZTc0NTJmOGU2ZWEwYTgyYzA3YTU5NTYyZTEyODEyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC01MDksNiArNTA5LDkgQEAgcHVibGljOgogI2VuZGlmCiAg
ICAgdmlydHVhbCBib29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIGJlZ2luRWxlbWVudEZ1bGxz
Y3JlZW5WaWRlb0V4dHJhY3Rpb24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBXZWJD
b3JlOjpGbG9hdFJlY3QpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxFbGVtZW50RnVsbHNj
cmVlblZpZGVvRXh0cmFjdGlvbigpIHsgfQorCiAgICAgLy8gQXV4aWxpYXJ5IENsaWVudCBDcmVh
dGlvbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlDbGllbnQmIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiNjI0NmQwNmFi
YTkxYTA1M2QyZDBjZjllYmZkM2I1MDc4ZjE0ZDRlLi5kYjJiMjhiOWQyODVmYTI5YTM4OTBiZTJk
ZWRmYTlhMDc2Y2VkOGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTExMzA5LDYgKzExMzA5LDQwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xp
Y3lGb3JNb2RhbENvbnRhaW5lcihPcHRpb25TZXQ8TW9kYWxDb250YWluZXJDb250cm9sCiAgICAg
bV91aUNsaWVudC0+ZGVjaWRlUG9saWN5Rm9yTW9kYWxDb250YWluZXIodHlwZXMsIFdURk1vdmUo
Y29tcGxldGlvbikpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZXh0cmFjdFZpZGVvSW5FbGVt
ZW50RnVsbFNjcmVlbihNZWRpYVBsYXllcklkZW50aWZpZXIgaWRlbnRpZmllciwgRmxvYXRSZWN0
IGJvdW5kcykKK3sKKyAgICBpZiAoIXBhZ2VDbGllbnQoKS5pc0Z1bGxzY3JlZW5WaWRlb0V4dHJh
Y3Rpb25FbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKKyAgICBSZWZQdHIgZ3B1UHJvY2VzcyA9IEdQVVByb2Nlc3NQcm94eTo6c2luZ2xldG9uSWZD
cmVhdGVkKCk7CisgICAgaWYgKCFncHVQcm9jZXNzKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2hhc1BlbmRpbmdFbGVtZW50RnVsbFNjcmVlblZpZGVvRXh0cmFjdGlvbiA9IHRydWU7CisgICAg
Z3B1UHJvY2Vzcy0+cmVxdWVzdEJpdG1hcEltYWdlRm9yQ3VycmVudFRpbWUobV9wcm9jZXNzLT5j
b3JlUHJvY2Vzc0lkZW50aWZpZXIoKSwgaWRlbnRpZmllciwgW3dlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIGJvdW5kc10oYXV0byYgYml0bWFwSGFuZGxlKSB7CisgICAgICAgIFJlZlB0ciBw
cm90ZWN0ZWRUaGlzID0gd2Vha1RoaXMuZ2V0KCk7CisgICAgICAgIGlmICghcHJvdGVjdGVkVGhp
cyB8fCAhcHJvdGVjdGVkVGhpcy0+bV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRlb0V4
dHJhY3Rpb24pCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+
cGFnZUNsaWVudCgpLmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oYml0bWFw
SGFuZGxlLCBib3VuZHMpOworICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2hhc1BlbmRpbmdFbGVt
ZW50RnVsbFNjcmVlblZpZGVvRXh0cmFjdGlvbiA9IGZhbHNlOworICAgIH0pOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oaWRlbnRpZmllcik7CisgICAgVU5VU0VEX1BBUkFNKGJvdW5kcyk7Cisj
ZW5kaWYKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNhbmNlbFZpZGVvRXh0cmFjdGlvbkluRWxl
bWVudEZ1bGxTY3JlZW4oKQoreworICAgIGlmICghcGFnZUNsaWVudCgpLmlzRnVsbHNjcmVlblZp
ZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9oYXNQZW5k
aW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRlb0V4dHJhY3Rpb24gPSBmYWxzZTsKKyAgICBwYWdlQ2xp
ZW50KCkuY2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICN1bmRlZiBXRUJQQUdFUFJPWFlfUkVMRUFTRV9MT0cKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMWM3ZDU1YzE0M2UzNzBiODJh
YjY4OTg5NTQwZmIwNWU0YTE0NzJmZS4uOWJhMjlhYmVjYTgzYTBhYjBmZDg1OTAwNWVkYmI2MjQ1
NTE1M2U4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTIwOTMs
NiArMjA5Myw5IEBAIHB1YmxpYzoKICAgICB9CiAjZW5kaWYKIAorICAgIHZvaWQgZXh0cmFjdFZp
ZGVvSW5FbGVtZW50RnVsbFNjcmVlbihXZWJDb3JlOjpNZWRpYVBsYXllcklkZW50aWZpZXIsIFdl
YkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcyk7CisgICAgdm9pZCBjYW5jZWxWaWRlb0V4dHJh
Y3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisKIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5
KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlv
bj4mJik7CiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoKTsKQEAgLTMyNDAsNiArMzI0Myw3
IEBAIHByaXZhdGU6CiAgICAgc3RkOjpvcHRpb25hbDxQbGF5YmFja1Nlc3Npb25Db250ZXh0SWRl
bnRpZmllcj4gbV9jdXJyZW50RnVsbHNjcmVlblZpZGVvU2Vzc2lvbklkZW50aWZpZXI7CiAgICAg
UnVuTG9vcDo6VGltZXI8V2ViUGFnZVByb3h5PiBtX2Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25U
aW1lcjsKICNlbmRpZgorICAgIGJvb2wgbV9oYXNQZW5kaW5nRWxlbWVudEZ1bGxTY3JlZW5WaWRl
b0V4dHJhY3Rpb24geyBmYWxzZSB9OwogCiAjaWYgRU5BQkxFKElNQUdFX0FOQUxZU0lTX0VOSEFO
Q0VNRU5UUykKICAgICBlbnVtIGNsYXNzIENyb3BwZWRJbWFnZU92ZXJsYXlTdGF0ZSA6IHVpbnQ4
X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGM3N2RiMjM0ZmFkZjExMDAzOTA4MzMxNjdiMzI0ZmI0YmI3ZDgyYTAuLmMzMDNi
YjMyMTg0Njk3OTc2YjFhMTU5MTVkMDNjZWE3NjE1MmFiMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3OCw2ICszNzgsOSBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpY3RhdGlvbkFsdGVybmF0aXZlcyhX
ZWJDb3JlOjpEaWN0YXRpb25Db250ZXh0IGRpY3RhdGlvbkNvbnRleHQpIC0+IChWZWN0b3I8U3Ry
aW5nPiBhbHRlcm5hdGl2ZXMpIFN5bmNocm9ub3VzCiAjZW5kaWYKIAorICAgIEV4dHJhY3RWaWRl
b0luRWxlbWVudEZ1bGxTY3JlZW4oV2ViQ29yZTo6TWVkaWFQbGF5ZXJJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWRlb0JvdW5kcykKKyAgICBDYW5jZWxWaWRlb0V4
dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCkKKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgQ291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCkKICAgICBSZXN0b3JlUGFnZVN0YXRlKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6
OkZsb2F0UG9pbnQgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpSZWN0RWRnZXM8ZmxvYXQ+IG9ic2N1
cmVkSW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGRmYjE5Mzk5MzYxNmU4MDBhMWE1MDg4
MTg4MzJlNGRmMjU3NmRjZDkuLjIzZGE2NjA3OGUzODAzNTIzOTZhY2RlYzk3YWM4MDIzMDA0YmQ1
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCkBAIC0zMDcsNiArMzA3LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNhbmNlbEZ1bGxzY3Jl
ZW5WaWRlb0V4dHJhY3Rpb24oQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKSBmaW5hbDsKICAgICBi
b29sIGlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQoKSBjb25zdCBmaW5hbDsKIAor
ICAgIHZvaWQgYmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbihjb25zdCBTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OkZsb2F0UmVjdCkgZmluYWw7CisgICAgdm9p
ZCBjYW5jZWxFbGVtZW50RnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbigpIGZpbmFsOworCiAgICAg
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gbV9jb250ZW50VmlldzsKICAgICBSZXRhaW5QdHI8
V0tFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGViOGY3MGY2ZGNjZGU0
MGQ5NzUwMWZkMjllZjUwNjVkMTJjZjBkNTkuLmE3NmEzMzI0OTEzZTJjM2NmNzM1NmRmM2UwNjgw
ODg2M2UyOTAxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0KQEAgLTEwNjAsNiArMTA2MCwxNiBAQCBib29sIFBhZ2VDbGllbnRJbXBs
Ojppc0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkKCkgY29uc3QKICAgICByZXR1cm4g
W21fY29udGVudFZpZXcgaXNGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uRW5hYmxlZF07CiB9CiAK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2luRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rp
b24oY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGJpdG1hcEhhbmRsZSwgRmxvYXRSZWN0
IGJvdW5kcykKK3sKKyAgICBbbV9jb250ZW50VmlldyBiZWdpbkVsZW1lbnRGdWxsc2NyZWVuVmlk
ZW9FeHRyYWN0aW9uOmJpdG1hcEhhbmRsZSBib3VuZHM6Ym91bmRzXTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6Y2FuY2VsRWxlbWVudEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb24oKQorewor
ICAgIFttX2NvbnRlbnRWaWV3IGNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9u
XTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDkwYTYzMjAwNzg4Y2NhODljMDM2N2JhMTBmYmU1MjNl
MTAyYjRkMTEuLmE0NTJiOTBiZTEzYzZkZDMxYTdkMThkOGQ5MzVhN2ViOWUyZjc2MzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKQEAgLTgwNCw2ICs4MDQsOSBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJ
RVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAo
dm9pZCljYW5jZWxGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOihBVlBsYXllclZpZXdDb250cm9s
bGVyICopY29udHJvbGxlcjsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBp
c0Z1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb25FbmFibGVkOwogCistICh2b2lkKWJlZ2luRWxlbWVu
dEZ1bGxzY3JlZW5WaWRlb0V4dHJhY3Rpb246KGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmKWJpdG1hcEhhbmRsZSBib3VuZHM6KFdlYkNvcmU6OkZsb2F0UmVjdClib3VuZHM7
CistICh2b2lkKWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uOworCiBAZW5k
CiAKIEBpbnRlcmZhY2UgV0tDb250ZW50VmlldyAoV0tUZXN0aW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5k
ZXggNDVkZWJiZGE3Mzg5ZDhlYTI0ZjhiYjgyN2I3YjcwYTkwNTBkN2U5MC4uN2RiMzFiNzVhYjNl
ZTg2NWIzZGE1NjhhYmYyOThjYmQ2Yjk1YTAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xMTA0OCw2
ICsxMTA0OCwxNCBAQCAtIChCT09MKWlzRnVsbHNjcmVlblZpZGVvRXh0cmFjdGlvbkVuYWJsZWQK
ICAgICByZXR1cm4gTk87CiB9CiAKKy0gKHZvaWQpYmVnaW5FbGVtZW50RnVsbHNjcmVlblZpZGVv
RXh0cmFjdGlvbjooY29uc3QgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpYml0bWFw
SGFuZGxlIGJvdW5kczooV2ViQ29yZTo6RmxvYXRSZWN0KWJvdW5kcworeworfQorCistICh2b2lk
KWNhbmNlbEVsZW1lbnRGdWxsc2NyZWVuVmlkZW9FeHRyYWN0aW9uCit7Cit9CisKICNlbmRpZgog
CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNjcmVlbi9X
ZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRnVsbFNj
cmVlbi9XZWJGdWxsU2NyZWVuTWFuYWdlci5jcHAKaW5kZXggM2E5MTRlNjdhMGY1NmZhYmQzMmNh
YzAzM2RkMjAzZmRiMmI2OWI4YS4uMDRiMjFmMTAwYzcxYzE5YjBmOWRkZDgwMGIyNGJhY2ViNjgz
MjFmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0Z1bGxTY3JlZW4vV2Vi
RnVsbFNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9GdWxs
U2NyZWVuL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcApAQCAtMzYxLDggKzM2MSwxMSBAQCB2b2lk
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyOjptYWluVmlkZW9FbGVtZW50RXh0cmFjdGlvblRpbWVyRmly
ZWQoKQogICAgIGlmICghbV9tYWluVmlkZW9FbGVtZW50KQogICAgICAgICByZXR1cm47CiAKKyAg
ICBpZiAobV9pc0V4dHJhY3RpbmdNYWluVmlkZW9FbGVtZW50KQorICAgICAgICBtX3BhZ2UtPmNh
bmNlbFZpZGVvRXh0cmFjdGlvbkluRWxlbWVudEZ1bGxTY3JlZW4oKTsKKwogICAgIG1faXNFeHRy
YWN0aW5nTWFpblZpZGVvRWxlbWVudCA9IHRydWU7Ci0gICAgLy8gRklYTUU6IEJlZ2luIG1haW4g
dmlkZW8gZXh0cmFjdGlvbiBpbiBmb3IgZWxlbWVudCBmdWxsc2NyZWVuLgorICAgIG1fcGFnZS0+
ZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVlbigqbV9tYWluVmlkZW9FbGVtZW50KTsKIH0K
IAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6c2NoZWR1bGVNYWluVmlkZW9FbGVtZW50RXh0
cmFjdGlvbigpCkBAIC0zNzUsNyArMzc4LDcgQEAgdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlcjo6
ZW5kTWFpblZpZGVvRWxlbWVudEV4dHJhY3Rpb25JZk5lZWRlZCgpCiAgICAgbV9tYWluVmlkZW9F
bGVtZW50RXh0cmFjdGlvblRpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX2lzRXh0cmFjdGluZ01h
aW5WaWRlb0VsZW1lbnQpIHsKLSAgICAgICAgLy8gRklYTUU6IENhbmNlbCB0aGUgY3VycmVudCB2
aWRlbyBleHRyYWN0aW9uIHNlc3Npb24uCisgICAgICAgIG1fcGFnZS0+Y2FuY2VsVmlkZW9FeHRy
YWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpOwogICAgICAgICBtX2lzRXh0cmFjdGluZ01haW5W
aWRlb0VsZW1lbnQgPSBmYWxzZTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IDcyOTQ5NDFjYWEyYjVjN2U1NWM0ZjUxNDBjOGNj
YWY5NTY4NDhkMGYuLjU0NDFkNjlkZTQ5OTVmYzg1ZTc2YjlkZjU0YTc3MjlkNzllZGQ3YjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMzYs
NiArMjM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlckxheWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZW5kZXJUaGVtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVHJlZUFzVGV4
dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyVmlkZW8uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1JlbmRlclZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9hZFN0YXRpc3RpY3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAtODA4Niw2ICs4MDg3
LDMyIEBAIHZvaWQgV2ViUGFnZTo6c2Nyb2xsVG9SZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYgdGFyZ2V0UmVjdCwgY29uc3QgV2ViQ29yZTo6CiAgICAgbWFpbkZyYW1lVmlldygpLT5zZXRT
Y3JvbGxQb3NpdGlvbihJbnRQb2ludCh0YXJnZXRSZWN0Lm1pblhNaW5ZQ29ybmVyKCkpKTsKIH0K
IAordm9pZCBXZWJQYWdlOjpleHRyYWN0VmlkZW9JbkVsZW1lbnRGdWxsU2NyZWVuKGNvbnN0IEhU
TUxWaWRlb0VsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgUmVmUHRyIHZpZXcgPSBlbGVtZW50LmRv
Y3VtZW50KCkudmlldygpOworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAg
YXV0byBtZWRpYVBsYXllcklkZW50aWZpZXIgPSB2YWx1ZU9yRGVmYXVsdChlbGVtZW50LnBsYXll
cklkZW50aWZpZXIoKSk7CisgICAgaWYgKCFtZWRpYVBsYXllcklkZW50aWZpZXIpCisgICAgICAg
IHJldHVybjsKKworICAgIGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC5yZW5kZXJlcigpOworICAg
IGlmICghcmVuZGVyZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gcmVjdEluUm9vdFZp
ZXcgPSB2aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocmVuZGVyZXItPnZpZGVvQm94KCkpOworICAg
IGlmIChyZWN0SW5Sb290Vmlldy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNjcmVl
bihtZWRpYVBsYXllcklkZW50aWZpZXIsIHJlY3RJblJvb3RWaWV3KSk7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6Y2FuY2VsVmlkZW9FeHRyYWN0aW9uSW5FbGVtZW50RnVsbFNjcmVlbigpCit7CisgICAg
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDYW5jZWxWaWRlb0V4dHJhY3Rpb25JbkVsZW1l
bnRGdWxsU2NyZWVuKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFdF
QlBBR0VfUkVMRUFTRV9MT0cKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAppbmRleCAxZWIzN2M1MWVmMGM3NWFlNTBmZjlmNGY2OWY3NzBkMDJjNTQzMjlhLi4wZGQy
MjA2MTVjZWUxMzg1NDY2NDI5Mzc2YmEzYTNlODk0NzU0MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0yMDAsNiArMjAwLDcgQEAgY2xhc3MgSFRN
TEltYWdlRWxlbWVudDsKIGNsYXNzIEhUTUxNZW51RWxlbWVudDsKIGNsYXNzIEhUTUxNZW51SXRl
bUVsZW1lbnQ7CiBjbGFzcyBIVE1MUGx1Z0luRWxlbWVudDsKK2NsYXNzIEhUTUxWaWRlb0VsZW1l
bnQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7CiBjbGFzcyBNZWRpYVBs
YXliYWNrVGFyZ2V0Q29udGV4dDsKQEAgLTE1MjksNiArMTUzMCw5IEBAIHB1YmxpYzoKICAgICBi
b29sIHVzZVNjZW5lS2l0Rm9yTW9kZWwoKSBjb25zdCB7IHJldHVybiBtX3VzZVNjZW5lS2l0Rm9y
TW9kZWw7IH07CiAjZW5kaWYKIAorICAgIHZvaWQgZXh0cmFjdFZpZGVvSW5FbGVtZW50RnVsbFNj
cmVlbihjb25zdCBXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAgdm9pZCBjYW5jZWxW
aWRlb0V4dHJhY3Rpb25JbkVsZW1lbnRGdWxsU2NyZWVuKCk7CisKIHByaXZhdGU6CiAgICAgV2Vi
UGFnZShXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYm
KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>