<?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>209669</bug_id>
          
          <creation_ts>2020-03-27 11:17:27 -0700</creation_ts>
          <short_desc>[AutoSizing] Bring back the old auto-sizing code as a deprecated codepath for compatibility reasons</short_desc>
          <delta_ts>2020-06-09 10:21:27 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=196743</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>graouts</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634901</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-27 11:17:27 -0700</bug_when>
    <thetext>[AutoSizing] Bring back the old auto-sizing code as a deprecated codepath for compatibility reasons</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634905</commentid>
    <comment_count>1</comment_count>
      <attachid>394735</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-27 11:25:16 -0700</bug_when>
    <thetext>Created attachment 394735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634911</commentid>
    <comment_count>2</comment_count>
      <attachid>394735</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 11:33:43 -0700</bug_when>
    <thetext>Comment on attachment 394735
Patch

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

&gt; Source/WebCore/page/FrameViewLayoutContext.cpp:236
&gt;          view().autoSizeIfEnabled();
&gt; +        view().legacyAutoSizeIfEnabled();

Can we instead move it to autoSizeIfEnabled and branch in there for legacy behavior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634955</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-27 12:39:02 -0700</bug_when>
    <thetext>Please include the radar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634957</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-27 12:41:46 -0700</bug_when>
    <thetext>Can we also rename to avoid confusion with text autosizing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634971</commentid>
    <comment_count>5</comment_count>
      <attachid>394750</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-27 13:18:30 -0700</bug_when>
    <thetext>Created attachment 394750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634996</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-27 14:21:41 -0700</bug_when>
    <thetext>FrameView&amp;co looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635144</commentid>
    <comment_count>7</comment_count>
      <attachid>394799</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-28 02:36:26 -0700</bug_when>
    <thetext>Created attachment 394799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635150</commentid>
    <comment_count>8</comment_count>
      <attachid>394803</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-28 03:06:33 -0700</bug_when>
    <thetext>Created attachment 394803
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635157</commentid>
    <comment_count>9</comment_count>
      <attachid>394809</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-28 03:30:14 -0700</bug_when>
    <thetext>Created attachment 394809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635334</commentid>
    <comment_count>10</comment_count>
      <attachid>394809</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-29 08:35:32 -0700</bug_when>
    <thetext>Comment on attachment 394809
Patch

Can we call this something other than &quot;deprecated&quot; auto-size mode? How does it differ from the non-deprecated one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635335</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-03-29 08:39:28 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #10)
&gt; Comment on attachment 394809 [details]
&gt; Patch
&gt; 
&gt; Can we call this something other than &quot;deprecated&quot; auto-size mode? How does
&gt; it differ from the non-deprecated one?
It&apos;s very different. The old auto-size flattens the content, the new one does not. The current auto-size code pretty much just lays out the content with a fixed constraint and reports the intrinsic size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635337</commentid>
    <comment_count>12</comment_count>
      <attachid>394809</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-03-29 08:46:33 -0700</bug_when>
    <thetext>Comment on attachment 394809
Patch

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

This looks OK but I’m very surprised that we are not adding any tests for this

&gt; Source/WebCore/page/FrameView.h:710
&gt; +    enum class AutoSizeMode : uint8_t { Default, Deprecated };

Could use bool instead of uint8_t. Do we know if one is superior?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635356</commentid>
    <comment_count>13</comment_count>
      <attachid>394870</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-29 10:59:26 -0700</bug_when>
    <thetext>Created attachment 394870
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635364</commentid>
    <comment_count>14</comment_count>
      <attachid>394872</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-29 12:35:20 -0700</bug_when>
    <thetext>Created attachment 394872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635366</commentid>
    <comment_count>15</comment_count>
      <attachid>394874</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-29 12:37:29 -0700</bug_when>
    <thetext>Created attachment 394874
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635373</commentid>
    <comment_count>16</comment_count>
      <attachid>394876</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-29 13:43:17 -0700</bug_when>
    <thetext>Created attachment 394876
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635413</commentid>
    <comment_count>17</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-30 00:33:42 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/259187/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635414</commentid>
    <comment_count>18</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-30 00:34:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/61044059&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635415</commentid>
    <comment_count>19</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-03-30 00:38:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/60111081&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1660725</commentid>
    <comment_count>20</comment_count>
      <attachid>394876</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2020-06-09 10:21:27 -0700</bug_when>
    <thetext>Comment on attachment 394876
Patch

Clearing review flag. This landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394735</attachid>
            <date>2020-03-27 11:25:16 -0700</date>
            <delta_ts>2020-03-27 13:18:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200327192515.patch</filename>
            <type>text/plain</type>
            <size>36309</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM0NDg5ZTQ3Y2EyZjU2
M2QzMDk1MmVhNzk4NjQ3NGViNDA2NjYwOC4uNzA0NGIwNmRmMjA5OTA2N2QyZTJjYmMyZTUwOTc4
Nzg4ODNjMmM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTAzLTI3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZSBjaGFuZ2VkIHRoZSBhdXRvLXNpemluZyBjb2RlIGZvciB3
ZWJraXQub3JnL2IvMTk2NzQzIGluIHIyNDQwOTgsIGJ1dCBzb21lIGNsaWVudHMgbmVlZCBpdCBh
bmQgd2UgYnJpbmcgaXQgYmFjaworICAgICAgICB2aWEgYSBuZXcgZGVkaWNhdGVkIC1bV0tXZWJW
aWV3IF9zZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOl0gU1BJIGJ1dCBtYXJraW5n
IHNwZWNpZmljYWxseSBhcyBkZXByZWNhdGVkLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpsZWdhY3lBdXRvU2l6ZUlmRW5hYmxl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmVuYWJsZUxlZ2FjeUF1dG9TaXplTW9k
ZSk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29u
dGV4dDo6bGF5b3V0KToKKwogMjAyMC0wMy0yNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFk
QHNvbnkuY29tPgogCiAgICAgICAgIFtNU1ZDXSBSZW1vdmUgZXhwZXJpbWVudGFsIGxhbWJkYSBw
cm9jZXNzb3IgdXNhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDliNjU3ZDlhYWJlNzY5ZWEyODU5NDQ1YzVmNWZi
ZTEwMGQxYzQ1MC4uYmMyYzU0NWY2NzA2OGRjYjM5OTRhZmZlNzQ1M2VkNjY2YjI1OTY4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw1MyBAQAorMjAyMC0wMy0yNyAgQW50b2luZSBRdWludCAgPGdyYW91
dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5nXSBCcmluZyBiYWNrIHRoZSBvbGQg
YXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29kZXBhdGggZm9yIGNvbXBhdGliaWxp
dHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjA5NjY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2UgY2hhbmdlZCB0aGUgYXV0by1zaXppbmcgY29kZSBmb3Igd2Via2l0Lm9yZy9iLzE5Njc0
MyBpbiByMjQ0MDk4LCBidXQgc29tZSBjbGllbnRzIG5lZWQgaXQgYW5kIHdlIGJyaW5nIGl0IGJh
Y2sKKyAgICAgICAgdmlhIGEgbmV3IGRlZGljYXRlZCAtW1dLV2ViVmlldyBfc2V0RGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTpdIFNQSSBidXQgbWFya2luZyBzcGVjaWZpY2FsbHkgYXMg
ZGVwcmVjYXRlZC4KKworICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRlcHJlY2F0ZWRBdXRvTGF5
b3V0TWF4aW11bVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldERlcHJlY2F0ZWRBdXRvTGF5
b3V0TWF4aW11bVNpemU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3
TWFjLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXREZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWNDb250
ZW50U2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAg
ICAgKFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eTo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgY29uc3QpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eTo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdlb21l
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZy
YW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1f
cHJvY2Vzc0Rpc3BsYXlOYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cmVpbml0aWFs
aXplV2ViUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJbnRy
aW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpkZXByZWNhdGVkQXV0b0xheW91
dE1heGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOgorCiAyMDIwLTAzLTI2ICBEYXZpZCBL
aWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgTmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OmRvbUNvb2tpZXNGb3JIb3N0IHNob3VsZCB2YWxpZGF0ZSBpdHMgYGhvc3Rg
IHBhcmFtZXRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDQ1MDIzOTM4NzU2NGUx
ZjA3M2YzOGMzMzRjNGQ3YmZmOTdkMDBmZTYuLmQwZGYxNTc3NGNlZGM4YmQzM2I5OWUyNmU0MjA1
ZjFjYzdhOWY1YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTM0NTYsNiArMzQ1
NiwxMTEgQEAgdm9pZCBGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKCkKICAgICBtX2RpZFJ1
bkF1dG9zaXplID0gdHJ1ZTsKIH0KIAordm9pZCBGcmFtZVZpZXc6OmxlZ2FjeUF1dG9TaXplSWZF
bmFibGVkKCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkTGVnYWN5QXV0b1NpemUpCisgICAgICAgIHJl
dHVybjsKKworICAgIGlmIChtX2luTGVnYWN5QXV0b1NpemUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+
cmVuZGVyVmlldygpOworICAgIGlmICghcmVuZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgSW50U2l6ZSBtaW5BdXRvU2l6ZSgxLCAxKTsKKworICAgIExPRyhMYXlvdXQsICJGcmFtZVZp
ZXcgJXAgbGVnYWN5QXV0b1NpemVJZkVuYWJsZWQiLCB0aGlzKTsKKyAgICBTZXRGb3JTY29wZTxi
b29sPiBjaGFuZ2VJbkxlZ2FjeUF1dG9TaXplKG1faW5MZWdhY3lBdXRvU2l6ZSwgdHJ1ZSk7Cisg
ICAgaWYgKGxheW91dENvbnRleHQoKS5zdWJ0cmVlTGF5b3V0Um9vdCgpKQorICAgICAgICBsYXlv
dXRDb250ZXh0KCkuY29udmVydFN1YnRyZWVMYXlvdXRUb0Z1bGxMYXlvdXQoKTsKKworICAgIC8v
IFN0YXJ0IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBhbmQgYWxsb3cgaXQgdG8gZ3Jvdy4KKyAgICBy
ZXNpemUobWluQXV0b1NpemUud2lkdGgoKSwgbWluQXV0b1NpemUuaGVpZ2h0KCkpOworICAgIElu
dFNpemUgc2l6ZSA9IGZyYW1lUmVjdCgpLnNpemUoKTsKKyAgICAvLyBEbyB0aGUgcmVzaXppbmcg
dHdpY2UuIFRoZSBmaXJzdCB0aW1lIGlzIGJhc2ljYWxseSBhIHJvdWdoIGNhbGN1bGF0aW9uIHVz
aW5nIHRoZSBwcmVmZXJyZWQgd2lkdGgKKyAgICAvLyB3aGljaCBtYXkgcmVzdWx0IGluIGEgaGVp
Z2h0IGNoYW5nZSBkdXJpbmcgdGhlIHNlY29uZCBpdGVyYXRpb24uCisgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgLy8gVXBkYXRlIHZhcmlvdXMgc2l6ZXMgaW5jbHVk
aW5nIGNvbnRlbnRzU2l6ZSwgc2Nyb2xsSGVpZ2h0LCBldGMuCisgICAgICAgIGRvY3VtZW50LT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgaW50IHdpZHRo
ID0gcmVuZGVyVmlldy0+bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CisgICAgICAgIGludCBo
ZWlnaHQgPSByZW5kZXJWaWV3LT5kb2N1bWVudFJlY3QoKS5oZWlnaHQoKTsKKyAgICAgICAgSW50
U2l6ZSBuZXdTaXplKHdpZHRoLCBoZWlnaHQpOworCisgICAgICAgIC8vIENoZWNrIHRvIHNlZSBp
ZiBhIHNjcm9sbGJhciBpcyBuZWVkZWQgZm9yIGEgZ2l2ZW4gZGltZW5zaW9uIGFuZAorICAgICAg
ICAvLyBpZiBzbywgaW5jcmVhc2UgdGhlIG90aGVyIGRpbWVuc2lvbiB0byBhY2NvdW50IGZvciB0
aGUgc2Nyb2xsYmFyLgorICAgICAgICAvLyBTaW5jZSB0aGUgZGltZW5zaW9ucyBhcmUgb25seSBm
b3IgdGhlIHZpZXcgcmVjdGFuZ2xlLCBvbmNlIGEKKyAgICAgICAgLy8gZGltZW5zaW9uIGV4Y2Vl
ZHMgdGhlIG1heGltdW0sIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jcmVhc2UgaXQgZnVydGhlci4K
KyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZS53aWR0aCgpKSB7CisgICAgICAgICAgICBSZWZQdHI8U2Nyb2xsYmFyPiBsb2NhbEhv
cml6b250YWxTY3JvbGxiYXIgPSBob3Jpem9udGFsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBp
ZiAoIWxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhcikKKyAgICAgICAgICAgICAgICBsb2NhbEhvcml6
b250YWxTY3JvbGxiYXIgPSBjcmVhdGVTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7Cisg
ICAgICAgICAgICBuZXdTaXplLmV4cGFuZCgwLCBsb2NhbEhvcml6b250YWxTY3JvbGxiYXItPm9j
Y3VwaWVkSGVpZ2h0KCkpOworCisgICAgICAgICAgICAvLyBEb24ndCBib3RoZXIgY2hlY2tpbmcg
Zm9yIGEgdmVydGljYWwgc2Nyb2xsYmFyIGJlY2F1c2UgdGhlIHdpZHRoIGlzIGF0CisgICAgICAg
ICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIgdGhlIG1heGltdW0uCisgICAgICAgIH0gZWxzZSBpZiAo
bmV3U2l6ZS5oZWlnaHQoKSA+IG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS5oZWln
aHQoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxWZXJ0aWNhbFNjcm9s
bGJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsVmVydGlj
YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAgICAgbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IGNy
ZWF0ZVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXplLmV4
cGFuZChsb2NhbFZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOworCisgICAg
ICAgICAgICAvLyBEb24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgaG9yaXpvbnRhbCBzY3JvbGxi
YXIgYmVjYXVzZSB0aGUgaGVpZ2h0IGlzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIg
dGhlIG1heGltdW0uCisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgdGhlIHNpemUgaXMg
YXQgbGVhc3QgdGhlIG1pbiBib3VuZHMuCisgICAgICAgIG5ld1NpemUgPSBuZXdTaXplLmV4cGFu
ZGVkVG8obWluQXV0b1NpemUpOworCisgICAgICAgIC8vIEJvdW5kIHRoZSBkaW1lbnNpb25zIGJ5
IHRoZSBtYXggYm91bmRzIGFuZCBkZXRlcm1pbmUgd2hhdCBzY3JvbGxiYXJzIHRvIHNob3cuCisg
ICAgICAgIFNjcm9sbGJhck1vZGUgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFs
d2F5c09mZjsKKyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpKSB7CisgICAgICAgICAgICBuZXdTaXplLnNldFdpZHRo
KG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpKTsKKyAgICAgICAgICAg
IGhvcml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPbjsKKyAgICAgICAgfQor
ICAgICAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFs
d2F5c09mZjsKKyAgICAgICAgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBtX2RlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemUuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIG5ld1NpemUuc2V0SGVp
Z2h0KG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS5oZWlnaHQoKSk7CisgICAgICAg
ICAgICB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPbjsKKyAgICAgICAg
fQorCisgICAgICAgIGlmIChuZXdTaXplID09IHNpemUpCisgICAgICAgICAgICBjb250aW51ZTsK
KworICAgICAgICAvLyBXaGlsZSBsb2FkaW5nIG9ubHkgYWxsb3cgdGhlIHNpemUgdG8gaW5jcmVh
c2UgKHRvIGF2b2lkIHR3aXRjaGluZyBkdXJpbmcgaW50ZXJtZWRpYXRlIHNtYWxsZXIgc3RhdGVz
KQorICAgICAgICAvLyB1bmxlc3MgYXV0b3Jlc2l6ZSBoYXMganVzdCBiZWVuIHR1cm5lZCBvbiBv
ciB0aGUgbWF4aW11bSBzaXplIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCBzaXplLgorICAg
ICAgICBpZiAobV9kaWRSdW5MZWdhY3lBdXRvU2l6ZSAmJiBzaXplLmhlaWdodCgpIDw9IG1fZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS5oZWlnaHQoKSAmJiBzaXplLndpZHRoKCkgPD0g
bV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLndpZHRoKCkKKyAgICAgICAgICAgICYm
ICFmcmFtZSgpLmxvYWRlcigpLmlzQ29tcGxldGUoKSAmJiAobmV3U2l6ZS5oZWlnaHQoKSA8IHNp
emUuaGVpZ2h0KCkgfHwgbmV3U2l6ZS53aWR0aCgpIDwgc2l6ZS53aWR0aCgpKSkKKyAgICAgICAg
ICAgIGJyZWFrOworCisgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1lIGFyb3VuZCwgcmVzaXplIHRv
IHRoZSBtaW5pbXVtIGhlaWdodCBhZ2Fpbjsgb3RoZXJ3aXNlLAorICAgICAgICAvLyBvbiBwYWdl
cyAoZS5nLiBxdWlya3MgbW9kZSkgd2hlcmUgdGhlIGJvZHkvZG9jdW1lbnQgcmVzaXplIHRvIHRo
ZSB2aWV3IHNpemUsCisgICAgICAgIC8vIHdlJ2xsIGVuZCB1cCBub3Qgc2hyaW5raW5nIGJhY2sg
ZG93biBhZnRlciByZXNpemluZyB0byB0aGUgY29tcHV0ZWQgcHJlZmVycmVkIHdpZHRoLgorICAg
ICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1pbkF1
dG9TaXplLmhlaWdodCgpKTsKKyAgICAgICAgLy8gRm9yY2UgdGhlIHNjcm9sbGJhciBzdGF0ZSB0
byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0gYW5kIGNhdXNpbmcgdGhlbSB0
byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAorICAgICAgICAvLyBhIHZlcnRpY2FsIHNjcm9sbGJh
ciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3JlYXNlIHRoZSBoZWlnaHQgKHdo
aWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMgbmVlZGVkKS4KKyAgICAgICAg
c2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICAgICAgc2V0SG9yaXpvbnRhbFNj
cm9sbGJhckxvY2soZmFsc2UpOworICAgICAgICBzZXRTY3JvbGxiYXJNb2Rlcyhob3Jpem9uYWxT
Y3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUsIHRydWUsIHRydWUpOworICAgIH0K
KyAgICAvLyBBbGwgdGhlIHJlc2l6aW5nIGFib3ZlIG1heSBoYXZlIGludmFsaWRhdGVkIHN0eWxl
IChmb3IgZXhhbXBsZSBpZiB2aWV3cG9ydCB1bml0cyBhcmUgYmVpbmcgdXNlZCkuCisKKyAgICBk
b2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIC8vIEZJWE1FOiBVc2UgdGhlIGZp
bmFsIGxheW91dCdzIHJlc3VsdCBhcyB0aGUgY29udGVudCBzaXplICh3ZWJraXQub3JnL2IvMTcz
NTYxKS4KKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVudHNTaXplKCk7CisKKyAgICBp
ZiAoYXV0byogcGFnZSA9IGZyYW1lKCkucGFnZSgpKQorICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5pbnRyaW5zaWNDb250ZW50c1NpemVDaGFuZ2VkKG1fYXV0b1NpemVDb250ZW50U2l6
ZSk7CisKKyAgICBtX2RpZFJ1bkxlZ2FjeUF1dG9TaXplID0gdHJ1ZTsKKyAgICBMT0dfV0lUSF9T
VFJFQU0oTGF5b3V0LCBzdHJlYW0gPDwgIkZyYW1lVmlldyAiIDw8IHRoaXMgPDwgIiBsZWdhY3lB
dXRvU2l6ZUlmRW5hYmxlZCgpIGNoYW5nZWQgc2l6ZSBmcm9tICIgPDwgc2l6ZSA8PCAiIHRvICIg
PDwgZnJhbWVSZWN0KCkuc2l6ZSgpKTsKK30KKwogdm9pZCBGcmFtZVZpZXc6OnNldEF1dG9TaXpl
Rml4ZWRNaW5pbXVtSGVpZ2h0KGludCBmaXhlZE1pbmltdW1IZWlnaHQpCiB7CiAgICAgaWYgKG1f
YXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPT0gZml4ZWRNaW5pbXVtSGVpZ2h0KQpAQCAtNDQ4
Niw2ICs0NTkxLDMxIEBAIHZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBl
bmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQogICAgIHNldFNjcm9sbGJhck1vZGVzKFNj
cm9sbGJhckF1dG8sIFNjcm9sbGJhckF1dG8pOwogfQogCit2b2lkIEZyYW1lVmlldzo6ZW5hYmxl
TGVnYWN5QXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkK
K3sKKyAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUuaXNFbXB0eSgpKTsKKyAgICBpZiAo
bV9zaG91bGRMZWdhY3lBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9kZXByZWNhdGVkQXV0b0xheW91
dE1heGltdW1TaXplID09IHZpZXdTaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Nob3Vs
ZExlZ2FjeUF1dG9TaXplID0gZW5hYmxlOworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZSA9IHZpZXdTaXplOworICAgIG1fYXV0b1NpemVDb250ZW50U2l6ZSA9IGNvbnRlbnRz
U2l6ZSgpOworICAgIG1fZGlkUnVuTGVnYWN5QXV0b1NpemUgPSBmYWxzZTsKKworICAgIHNldE5l
ZWRzTGF5b3V0QWZ0ZXJWaWV3Q29uZmlndXJhdGlvbkNoYW5nZSgpOworICAgIGxheW91dENvbnRl
eHQoKS5zY2hlZHVsZUxheW91dCgpOworICAgIGlmIChtX3Nob3VsZExlZ2FjeUF1dG9TaXplKSB7
CisgICAgICAgIG92ZXJyaWRlVmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyh7IG1fZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpLCBtX292ZXJyaWRlVmlld3BvcnRT
aXplID8gbV9vdmVycmlkZVZpZXdwb3J0U2l6ZS0+aGVpZ2h0IDogV1RGOjpudWxsb3B0IH0pOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2xlYXJWaWV3cG9ydFNpemVPdmVycmlkZUZv
ckNTU1ZpZXdwb3J0VW5pdHMoKTsKKyAgICAvLyBTaW5jZSBhdXRvc2l6ZSBtb2RlIGZvcmNlcyB0
aGUgc2Nyb2xsYmFyIG1vZGUsIGNoYW5nZSB0aGVtIHRvIGJlaW5nIGF1dG8uCisgICAgc2V0VmVy
dGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICBzZXRIb3Jpem9udGFsU2Nyb2xsYmFyTG9j
ayhmYWxzZSk7CisgICAgc2V0U2Nyb2xsYmFyTW9kZXMoU2Nyb2xsYmFyQXV0bywgU2Nyb2xsYmFy
QXV0byk7Cit9CisKIHZvaWQgRnJhbWVWaWV3Ojpmb3JjZUxheW91dChib29sIGFsbG93U3VidHJl
ZUxheW91dCkKIHsKICAgICBpZiAoIWFsbG93U3VidHJlZUxheW91dCAmJiBsYXlvdXRDb250ZXh0
KCkuc3VidHJlZUxheW91dFJvb3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGMyMmU0
ZTU4YzE0NDhhMmRmYzY2Zjk0NDBiNDE3MmQ3ODIyNGU2MzAuLjg5NGEyZWFhMjY1M2MyOTViYTRm
NTlmYmQ2ODc5Y2E4NDBjN2Q0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtNDAwLDgg
KzQwMCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1
YWxseU5vbkVtcHR5U3RhdGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0
b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGVuYWJsZUxlZ2FjeUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29u
c3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRvU2l6
ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwogICAgIGJvb2wgaXNBdXRvU2l6ZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9CisgICAgYm9vbCBpc0xlZ2FjeUF1dG9T
aXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkTGVnYWN5QXV0b1NpemU7IH0KICAg
ICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBmb3Jj
ZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZhbHNlKTsKQEAgLTcwNSw2ICs3MDcs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgZmx1c2hQb3N0TGF5b3V0VGFza3NRdWV1ZSgpOwogICAg
IHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOwogICAgIHZvaWQgYXV0b1NpemVJZkVuYWJs
ZWQoKTsKKyAgICB2b2lkIGxlZ2FjeUF1dG9TaXplSWZFbmFibGVkKCk7CiAKICAgICB2b2lkIGFw
cGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkIChG
cmFtZVZpZXcmIGZyYW1lVmlldywgY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpPiYpOwogICAg
IHZvaWQgcmVzdW1lVmlzaWJsZUltYWdlQW5pbWF0aW9ucyhjb25zdCBJbnRSZWN0JiB2aXNpYmxl
UmVjdCk7CkBAIC04NzgsNiArODgxLDggQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSB2aWV3IHNp
emUgd2hlbiBhdXRvc2l6aW5nLgogICAgIEludFNpemUgbV9hdXRvU2l6ZUNvbnN0cmFpbnQ7Cisg
ICAgLy8gVGhlIG1heGltdW0gdmlldyBzaXplIHdoZW4gbGVnYWN5IGF1dG9zaXppbmcuCisgICAg
SW50U2l6ZSBtX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CiAgICAgLy8gVGhlIGZp
eGVkIGhlaWdodCB0byByZXNpemUgdGhlIHZpZXcgdG8gYWZ0ZXIgYXV0b3NpemluZyBpcyBjb21w
bGV0ZS4KICAgICBpbnQgbV9hdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCB7IDAgfTsKICAgICAv
LyBUaGUgaW50cmluc2ljIGNvbnRlbnQgc2l6ZSBkZWNpZGVkIGJ5IGF1dG9zaXppbmcuCkBAIC05
MzMsOSArOTM4LDE0IEBAIHByaXZhdGU6CiAKICAgICAvLyBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5
IHJlc2l6ZSB0aGUgZnJhbWUgdmlldyBhcm91bmQgaXRzIGNvbnRlbnQuCiAgICAgYm9vbCBtX3No
b3VsZEF1dG9TaXplIHsgZmFsc2UgfTsKKyAgICAvLyBJZiB0cnVlLCBhdXRvbWF0aWNhbGx5IHJl
c2l6ZSB0aGUgZnJhbWUgdmlldyBhcm91bmQgaXRzIGNvbnRlbnQuCisgICAgYm9vbCBtX3Nob3Vs
ZExlZ2FjeUF1dG9TaXplIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5BdXRvU2l6ZSB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2luTGVnYWN5QXV0b1NpemUgeyBmYWxzZSB9OwogICAgIC8vIFRydWUg
aWYgYXV0b3NpemUgaGFzIGJlZW4gcnVuIHNpbmNlIG1fc2hvdWxkQXV0b1NpemUgd2FzIHNldC4K
ICAgICBib29sIG1fZGlkUnVuQXV0b3NpemUgeyBmYWxzZSB9OworICAgIC8vIFRydWUgaWYgYXV0
b3NpemUgaGFzIGJlZW4gcnVuIHNpbmNlIG1fc2hvdWxkTGVnYWN5QXV0b1NpemUgd2FzIHNldC4K
KyAgICBib29sIG1fZGlkUnVuTGVnYWN5QXV0b1NpemUgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
blVwZGF0ZUVtYmVkZGVkT2JqZWN0cyB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCBjMzA0Y2YxY2UxNmUwNmE0
ZjA1MzY3MWZiYTc4Y2UwZmNlODYzN2UxLi5mYzYzMDdlMTRjMDQ1YjJmNGJhOGVlZjRjZTFmZGU0
ZmNlNmYzZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5jcHAKQEAgLTIzMyw2ICsyMzMsNyBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6
OmxheW91dCgpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgdmlldygpLmF1dG9TaXpl
SWZFbmFibGVkKCk7CisgICAgICAgIHZpZXcoKS5sZWdhY3lBdXRvU2l6ZUlmRW5hYmxlZCgpOwog
ICAgICAgICBpZiAoIXJlbmRlclZpZXcoKSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRl
eCA3MjRjMTZlNTA0MzNkZWJiMjQwZDliZTEzYmU5YTVmMDU3OWJhYTQzLi5iYzA2MjhjMDkxZjlm
OWNkYmZlNTM1OGJmNWVmZGM2YzMwZWI1OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcApAQCAtNjcsNiArNjcsNyBAQCB2b2lk
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIp
IGNvbnN0CiAgICAgZW5jb2RlciA8PCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGVu
Y29kZXIgPDwgbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkOwogICAgIGVuY29kZXIgPDwgbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0OworICAgIGVuY29kZXIgPDwgZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZTsKICAgICBlbmNvZGVyIDw8IGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdI
ZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOwpAQCAtMjQ4LDYg
KzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9y
QXV0b0xheW91dCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpKQor
ICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFy
YW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KSkKICAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZThiOWZhODg2Y2MzN2Q2ODhkMWM4
ODU4NDYzNWIyMTI5NDViMGU5MS4uZGY3NDM5NTRjZmUyMDBhMzZmZjFhZGE0NjBkNjkzNjhiMjkx
YzM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuaApAQCAtMTE4LDYgKzExOCw3IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzIHsKICAgICBib29sIG1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKICAg
ICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBXZWJDb3Jl
OjpJbnRTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CiAgICAgYm9vbCBhdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIE9wdGlvbmFsPFdlYkNvcmU6Oklu
dFNpemU+IHZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAppbmRleCAwZjIy
NmViYzU4M2E2ZWQ4NGZlMzE0OGYzNWY2NTRjZWQ3OGRiZWQ2Li5iZTJlZGU3OWVhZDU1OThjMmI0
NGExZjIyZTk3NmI5OWQ2NjE2MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKQEAgLTU4LDYgKzU4LDcgQEAKICsgKHZvaWQpaGlk
ZVdvcmREZWZpbml0aW9uV2luZG93OwogCiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgTlNTaXplIG1p
bmltdW1TaXplRm9yQXV0b0xheW91dDsKK0Bwcm9wZXJ0eSAocmVhZHdyaXRlKSBOU1NpemUgZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09M
IHNob3VsZENsaXBUb1Zpc2libGVSZWN0OwogQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgc2hv
dWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHks
IGdldHRlcj1pc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcpIEJPT0wgdXNpbmdVSVNpZGVDb21wb3Np
dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IGIzYzBkMTI5MTk1ODU4NDgzOGQ0MWNhNmUzMjllYTAyYTQyNzBj
ZmUuLmEzMDBlZDI5MDYyMDg2MTkyM2MwYWY3ZDRlNjMzNzlkZWRlZjliNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApA
QCAtNTA2LDYgKzUwNiw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlv
dXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBX
S19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0
aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOikgQ0dTaXplIF9kZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0
dGVyPV9zZXRBbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dz
SG9yaXpvbnRhbFNjcm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVy
OikgQk9PTCBfYWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpp
bmRleCBkZGM2ZmZmYTMzMGE4M2NiNzJiZTE5MzBmYzcyMTAxMzM0MjBkODI2Li4wYWI0ZmRhNGM4
MWU2MzliMjQ2ZTNjM2U5ZWFiYWRjYTZjNGIxNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMTI2OCw2ICsxMjY4LDE2IEBAIC0gKHZvaWQpc2V0TWlu
aW11bVNpemVGb3JBdXRvTGF5b3V0OihOU1NpemUpbWluaW11bVNpemVGb3JBdXRvTGF5b3V0CiAg
ICAgX2RhdGEtPl9pbXBsLT5zZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoTlNTaXplVG9DR1Np
emUobWluaW11bVNpemVGb3JBdXRvTGF5b3V0KSk7CiB9CiAKKy0gKE5TU2l6ZSlkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplCit7CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2Rh
dGEtPl9pbXBsLT5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkpOworfQorCistICh2
b2lkKXNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU6KE5TU2l6ZSlkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplCit7CisgICAgX2RhdGEtPl9pbXBsLT5zZXREZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKE5TU2l6ZVRvQ0dTaXplKGRlcHJlY2F0ZWRBdXRvTGF5b3V0
TWF4aW11bVNpemUpKTsKK30KKwogLSAoQk9PTClzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JB
dXRvTGF5b3V0CiB7CiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0Rm9yQXV0b0xheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLV2ViVmlld01hYy5tbQppbmRleCA3NThlZTExMTJiNDk5MzAwZTVlYTZmNWZhNzAzNDlm
NGI3NWU0YTNmLi5hMGNjZTZjOTVkYWQ5MDg3OGJkZmM0ZWFmNDI0MWJiY2JlYThiZWMzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQpAQCAt
MTQwMCw2ICsxNDAwLDIxIEBAIC0gKHZvaWQpX3NldE1pbmltdW1MYXlvdXRXaWR0aDooQ0dGbG9h
dCl3aWR0aAogICAgIF9pbXBsLT5zZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsK
IH0KIAorLSAoQ0dTaXplKV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplCit7CisgICAg
cmV0dXJuIF9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKK30KKworLSAodm9pZClf
c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBC
T09MIGV4cGFuZHNUb0ZpdCA9IHNpemUud2lkdGggPiAwICYmIHNpemUuaGVpZ2h0ID4gMDsKKwor
ICAgIF9wYWdlLT5zZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKFdlYkNvcmU6Oklu
dFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5oZWlnaHQpKTsKKyAgICBfcGFnZS0+c2V0TWFpbkZyYW1l
SXNTY3JvbGxhYmxlKCFleHBhbmRzVG9GaXQpOworCisgICAgX2ltcGwtPnNldENsaXBzVG9WaXNp
YmxlUmVjdChleHBhbmRzVG9GaXQpOworfQorCiAtIChCT09MKV9jbGlwc1RvVmlzaWJsZVJlY3QK
IHsKICAgICByZXR1cm4gX2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggNzhlNTQ2MjczZmM3N2FjZjgx
MzdlMDNhN2I4MmM2MjBlZjgxZmMzNy4uMTcyNTA3YTJmMDM5MGY3ZTI4ZmVmYTVhYTdmY2UzY2I4
M2UxMTkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CkBAIC0yMjQsNiArMjI0LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQoQ0dTaXplKTsKICAgICBDR1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0
KCkgY29uc3Q7CisgICAgdm9pZCBzZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKENH
U2l6ZSk7CisgICAgQ0dTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKSBjb25z
dDsKICAgICB2b2lkIHNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoYm9v
bCk7CiAgICAgYm9vbCBzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCkgY29u
c3Q7CiAgICAgdm9pZCBzZXRJbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmOWQ3YWJlNzRjNDI2
ZmI0NTQyMzAzZDE1ZDMyM2YwYzJmMmFkMDU5Li4zMWI1MDhkNzliMDhmYmFkZTg0NjlmMzE2YWMw
ODVlNDM3NDI5MjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQpAQCAtMTkyNiw2ICsxOTI2LDIxIEBAIENHU2l6ZSBXZWJWaWV3SW1wbDo6bWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3QKICAgICByZXR1cm4gbV9wYWdlLT5taW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQoKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0RGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZShDR1NpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSkKK3sKKyAgICBib29sIGV4cGFuZHNUb0ZpdCA9IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUud2lkdGggPiAwICYmIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUuaGVpZ2h0
ID4gMDsKKworICAgIG1fcGFnZS0+c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShX
ZWJDb3JlOjpJbnRTaXplKGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpKTsKKyAgICBt
X3BhZ2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKKworICAgIHNl
dENsaXBzVG9WaXNpYmxlUmVjdChleHBhbmRzVG9GaXQpOworfQorCitDR1NpemUgV2ViVmlld0lt
cGw6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKSBjb25zdAoreworICAgIHJldHVy
biBtX3BhZ2UtPmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBX
ZWJWaWV3SW1wbDo6c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29s
IHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5z
ZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQpOwpAQCAtMTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQog
ICAgIC8vIHNvIHdlIGNhbiByZXBvcnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4g
SWYgbm90LCB3ZSBuZWVkIHRvIHJlcG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28g
dGhhdCBhdXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAg
IC8vIEZJWE1FOiB3aGF0IHRvIGRvIGhlcmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRT
aXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAg
ICBpZiAoaW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9y
QXV0b0xheW91dCgpLndpZHRoKCkpCiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93
bGVkZ2luZ0ZsZXhpYmxlV2lkdGgud2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4
MWMzY2M0YWUxNjRkZmEyMmUwNTNmZGM5OTE0OWNjLi4wNGExYTIxZGRhZDU3NGZiNmZjNDMxOThm
YjMzYzhiOTFlZThiYTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xv
clNwYWNlRGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0
b0xheW91dERpZENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplRGlkQ2hhbmdlKCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0
VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwMzhmY2Yw
OTgyNDQ4OGYzNTU5ZTRhOGU2YTczMTE2ZmRmOTQyZmEzLi4zODBmMzlkMGQ5MThjYTEwZTUyNTY1
ZjY2ZDgwYzRmYWEyNTVhYTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKQEAgLTc2NjAsNiArNzY2MCw3IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2Vi
UGFnZVByb3h5OjpjcmVhdGlvblBhcmFtZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAg
cGFyYW1ldGVycy5tYXlTdGFydE1lZGlhV2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hl
bkluV2luZG93OwogICAgIHBhcmFtZXRlcnMubWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkID0gbV9t
ZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQ7CiAgICAgcGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1
dG9MYXlvdXQgPSBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBwYXJhbWV0ZXJzLmRl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgPSBtX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemU7CiAgICAgcGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVp
Z2h0ID0gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRl
cnMudmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0czsKICAgICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1f
c2Nyb2xsUGlubmluZ0JlaGF2aW9yOwpAQCAtODMyOSw2ICs4MzMwLDI1IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2RlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUgPT0gc2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9k
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVu
bmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShzaXplKSk7CisgICAgbV9k
cmF3aW5nQXJlYS0+ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSgpOwor
CisjaWYgVVNFKEFQUEtJVCkKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplLndpZHRoKCkgPD0gMCkKKyAgICAgICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNpemUo
SW50U2l6ZSgtMSwgLTEpKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAg
ICBpZiAobV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMGExODczNTkzNmEw
MmMyNTQ2NzJjMjI2MGNkNTI4YjdlNWZiMmI1Ny4uYjkxMjhhNzhjOTdhOTgzYTRhMWUyZTUyZGY2
ZmM3OWVjMzIyMWFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTEzNDIsNiArMTM0Miw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1T
aXplRm9yQXV0b0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRvTGF5
b3V0OyB9CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYpOwogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91
dE1heGltdW1TaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplOyB9CisgICAgdm9pZCBzZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKTsKKwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodDsgfQogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodChib29sKTsKIApAQCAtMjU5MSw2ICsyNTk0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1f
c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1dG9TaXpp
bmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkludFNp
emUgbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2Rl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CisKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJ
bnRTaXplPiBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAKICAgICAvLyBWaXN1
YWwgdmlld3BvcnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4YzNiZGNj
YjFjZTE0ZGViOTZlZjk2NTcxOTMwNGEyMjlmNTgwNDk0Li4xNjVmMGQ4ZTAzMmE2NDc1ZjhiMmVm
ZGFjMzg3ZjY2NzI0OTFlNmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKQEAg
LTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbG9yU3BhY2VEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIG1p
bmltdW1TaXplRm9yQXV0b0xheW91dERpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKICAgICB2b2lkIHVw
ZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKQEAgLTcxLDYgKzcyLDkgQEAg
cHJpdmF0ZToKICAgICAvLyBUaGUgbGFzdCBtaW5pbXVtIGxheW91dCBzaXplIHdlIHNlbnQgdG8g
dGhlIHdlYiBwcm9jZXNzLgogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2VudE1pbmltdW1T
aXplRm9yQXV0b0xheW91dDsKIAorICAgIC8vIFRoZSBsYXN0IG1heG1pdW0gc2l6ZSBmb3IgbGVn
YWN5IGF1dG8tbGF5b3V0IHdlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLgorICAgIFdlYkNvcmU6
OkludFNpemUgbV9sYXN0U2VudERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CisKICAg
ICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0OWM1ZGJhNTcwZTUwZjBmMDMzZjBkNWM1NDNhZTc5Ny4u
NjQ5ZWFiN2Y5Zjg1NTc0YjllZDViNWRhYTcxYTlmZTNhMDcwZDYwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJv
eHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTkwLDYgKzkwLDE5IEBAIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0RGlkQ2hhbmdl
KCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5OjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hh
bmdlKCkKK3sKKyAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIG9ubHkgd2FudCBvbmUgVXBkYXRlR2VvbWV0cnkg
bWVzc2FnZSBpbiBmbGlnaHQgYXQgb25jZSwgc28gaWYgd2UndmUgYWxyZWFkeSBzZW50IG9uZSBi
dXQKKyAgICAvLyBoYXZlbid0IHlldCByZWNlaXZlZCB0aGUgcmVwbHkgd2UnbGwganVzdCByZXR1
cm4gZWFybHkgaGVyZS4KKyAgICBpZiAobV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZFVwZGF0ZUdlb21ldHJ5KCk7Cit9CisKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVD
b250ZXh0JiBsYXllclRyZWVDb250ZXh0KQogewogICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7CkBAIC0xMDcsMTAgKzEy
MCwxMSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0
ZUdlb21ldHJ5KCkKICAgICBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7
CiAKICAgICBJbnRTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5
Lm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpOworICAgIEludFNpemUgZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZSA9IG1fd2ViUGFnZVByb3h5LmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hpbGUgd2Ug
d2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhlIHdlYiBw
cm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJlLgotICAg
IGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1TaXplRm9y
QXV0b0xheW91dCAhPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpCisgICAgaWYgKG1fbGFzdFNl
bnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5b3V0ICE9
IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCB8fCBtX2xhc3RTZW50RGVwcmVjYXRlZEF1dG9MYXlv
dXRNYXhpbXVtU2l6ZSAhPSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKQogICAgICAg
ICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIApAQCAtMTIzLDYgKzEzNyw3IEBAIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckRpZFVwZGF0ZUFjdGl2aXR5
U3RhdGUoQWN0aXZpdHlTCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6
OndpbGxTZW5kVXBkYXRlR2VvbWV0cnkoKQogewogICAgIG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQgPSBtX3dlYlBhZ2VQcm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsK
KyAgICBtX2xhc3RTZW50RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IG1fd2ViUGFn
ZVByb3h5LmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKTsKICAgICBtX2xhc3RTZW50
U2l6ZSA9IG1fc2l6ZTsKICAgICBtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1
ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDMyN2ZmYzRmNmRkNTYz
OTE5NDBlYjBhMDcxNDM1MGNiOGYyMmYyZGQuLjMyNGVlOWU0YjhiZTg4OWIxOGZkYzQzNzk0ZDBl
OTUwNTExZTg5ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTUxMyw2
ICsxNTEzLDE0IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1p
dHRlZEZvck5ld1BhZ2UoKQogICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmlt
dW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKICAgICB9CiAKKyAgICBJbnRTaXpl
IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgPSB3ZWJQYWdlLT5kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplKCk7CisgICAgaWYgKGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUud2lkdGgoKSAmJiBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLmhlaWdodCgp
KSB7CisgICAgICAgIHZpZXctPmVuYWJsZUxlZ2FjeUF1dG9TaXplTW9kZSh0cnVlLCBkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0
b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9
CisKICAgICBpZiAoYXV0byB2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpKQogICAgICAgICB2aWV3LT5zZXRWaWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRz
KTsKICAgICB2aWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGlu
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGY3NWVmNTJhMTNiNGFmYWE4ZTA5ZGM1MTNkNDI4ZDMxMjJlMWYwMzYuLjU5NWI3OTVhYzMzNmRi
NjhiMDFlYWFhYzFkYWFhMjJkNTYyODc5N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzMsNiArNjMzLDcgQEAgV2ViUGFnZTo6V2ViUGFn
ZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzKQogICAgIHVwZGF0ZUlzSW5XaW5kb3codHJ1ZSk7CiAKICAgICBzZXRNaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAg
IHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKTsKICAgICBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0KHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCk7
CiAgICAgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhwYXJhbWV0ZXJzLnZpZXdw
b3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOwogICAgIApAQCAtNzk0LDYgKzc5NSw3IEBAIHZv
aWQgV2ViUGFnZTo6cmVpbml0aWFsaXplV2ViUGFnZShXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
JiYgcGFyYW1ldGVycykKICAgICB9CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQo
cGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplKTsKIAogICAgIGlmIChtX2FjdGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0
eVN0YXRlKQogICAgICAgICBzZXRBY3Rpdml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0
ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkp
OwpAQCAtNTY4NCw2ICs1Njg2LDIwIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCkudmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6
bWF4KHNpemUuaGVpZ2h0KCksIDEpIH0pOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldERlcHJlY2F0
ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAo
bV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisgICAg
aWYgKHNpemUud2lkdGgoKSA8PSAwIHx8IHNpemUuaGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBj
b3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZUxlZ2FjeUF1dG9TaXplTW9kZShm
YWxzZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvcmVQYWdlKCktPm1h
aW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlTGVnYWN5QXV0b1NpemVNb2RlKHRydWUsIHNpemUpOwor
fQorCiB2b2lkIFdlYlBhZ2U6OnNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQo
Ym9vbCBzaG91bGRFeHBhbmQpCiB7CiAgICAgaWYgKG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCA9PSBzaG91bGRFeHBhbmQpCkBAIC02NDMxLDEwICs2NDQ3LDEwIEBAIHZvaWQg
V2ViUGFnZTo6cmVtb3ZlQWxsVXNlckNvbnRlbnQoKQogCiB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUlu
dHJpbnNpY0NvbnRlbnRTaXplSWZOZWVkZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkK
IHsKLSAgICBpZiAoIW1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkpCisgICAgaWYg
KCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpICYmICFkZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplKCkud2lkdGgoKSAmJiAhZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZSgpLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1haW5GcmFtZVZp
ZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQoKSk7
CisgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQoKSB8fCBtYWlu
RnJhbWVWaWV3KCktPmlzTGVnYWN5QXV0b1NpemVFbmFibGVkKCkpOwogICAgIEFTU0VSVCghbWFp
bkZyYW1lVmlldygpLT5uZWVkc0xheW91dCgpKTsKICAgICBpZiAobV9sYXN0U2VudEludHJpbnNp
Y0NvbnRlbnRTaXplID09IHNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MjYyNzAzN2E3ZTlmYmNlYzk0NmY3ZDM0
M2FkY2I3MzIzMDM2ZTI0Li4wNGM5MzY2OTUyNmE5ZmE3ODU5MjIwZDYwNWNmZGYzYTljM2M4MGUy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDY1
LDYgKzEwNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNvcmU6OkludFNpemUgbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQ7IH0KIAorICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplOyB9CisKICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRU
b1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodCgpIHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodDsgfQogCkBAIC0xOTA3LDYgKzE5MTAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hT
ZXQ8dW5zaWduZWQgbG9uZz4gbV90cmFja2VkTmV0d29ya1Jlc291cmNlUmVxdWVzdElkZW50aWZp
ZXJzOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsK
KyAgICBXZWJDb3JlOjpJbnRTaXplIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsK
ICAgICBib29sIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07
CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJi
ZjYwOTcyMGJhLi4xZjg4ZWY2NzQ1MWYyN2M2NDQyMjJhNDY1ZGQ2ZmNmMWQ2MTk3YzJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5k
KGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNl
dEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3Jv
bGxlcikKIAogICAgIFNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXpl
IHNpemUpCisgICAgU2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJ
bnRTaXplIHNpemUpCiAgICAgU2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChi
b29sIHNob3VsZEV4cGFuZCkKIAogICAgIFNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMoT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IGIyYTZkM2RkMWRkZTQ0MGRmZjZjOGJi
ZTIxNjdjZjVhNzJlZjkwYzAuLmY5N2UyNDVjZmZkNTM3NjhmZGVmMWI3N2RiMjYzOWM0ODY4MzI3
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTU4NCw3
ICs1ODQsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9t
ZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAgIEludFNpemUgc2l6ZSA9IHZp
ZXdTaXplOwogICAgIEludFNpemUgY29udGVudFNpemUgPSBJbnRTaXplKC0xLCAtMSk7CiAKLSAg
ICBpZiAoIW1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IG1f
d2ViUGFnZS5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkpCisgICAgaWYgKCFt
X3dlYlBhZ2UubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2Uu
YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHx8ICghbV93ZWJQYWdlLmRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS53aWR0aCgpICYmICFtX3dlYlBhZ2UuZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdl
LnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5t
YWluRnJhbWVWaWV3KCk7CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJv
b2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFn
ZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAg
IGlmIChmcmFtZVZpZXcgJiYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53
aWR0aCgpIHx8IChtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLndp
ZHRoKCkgJiYgbV93ZWJQYWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS5oZWln
aHQoKSkpKSB7CiAgICAgICAgIGNvbnRlbnRTaXplID0gZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50
cmluc2ljQ29udGVudFNpemUoKTsKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394750</attachid>
            <date>2020-03-27 13:18:30 -0700</date>
            <delta_ts>2020-03-28 02:36:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200327211829.patch</filename>
            <type>text/plain</type>
            <size>36513</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM0NDg5ZTQ3Y2EyZjU2
M2QzMDk1MmVhNzk4NjQ3NGViNDA2NjYwOC4uZWEwNjhkNjUzNDZhODk3MDI1Nzc3ZWUzODI4ZTAz
NDM5MGJhMmQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTI3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU6XSBTUEkgYnV0IG1hcmtpbmcgc3BlY2lmaWNhbGx5IGFzIGRlcHJl
Y2F0ZWQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cGVyZm9ybU1vZGVybkF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6cGVyZm9ybUxlZ2FjeUF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
ZW5hYmxlQXV0b1NpemVNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZW5hYmxl
TGVnYWN5QXV0b1NpemVNb2RlKToKKwogMjAyMC0wMy0yNiAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9s
bXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIFtNU1ZDXSBSZW1vdmUgZXhwZXJpbWVudGFsIGxh
bWJkYSBwcm9jZXNzb3IgdXNhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDliNjU3ZDlhYWJlNzY5ZWEyODU5NDQ1
YzVmNWZiZTEwMGQxYzQ1MC4uNWYyZjU0YzBhMGRmZmE4N2Q4MTc1OGEwZmQwZjg2ZDU1NDRlNDI1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMC0wMy0yNyAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5nXSBCcmluZyBiYWNrIHRo
ZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29kZXBhdGggZm9yIGNvbXBh
dGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDExMTA4MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBjaGFuZ2VkIHRo
ZSBhdXRvLXNpemluZyBjb2RlIGZvciB3ZWJraXQub3JnL2IvMTk2NzQzIGluIHIyNDQwOTgsIGJ1
dCBzb21lIGNsaWVudHMgbmVlZCBpdCBhbmQgd2UgYnJpbmcgaXQgYmFjaworICAgICAgICB2aWEg
YSBuZXcgZGVkaWNhdGVkIC1bV0tXZWJWaWV3IF9zZXREZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplOl0gU1BJIGJ1dCBtYXJraW5nIHNwZWNpZmljYWxseSBhcyBkZXByZWNhdGVkLgorCisg
ICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZV0p
OgorICAgICAgICAoLVtXS1ZpZXcgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW06CisgICAgICAg
ICgtW1dLV2ViVmlldyBfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZV0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU6XSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5OjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdlKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0
ZUdlb21ldHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6
OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5h
bWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXpl
SWZOZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgY29u
c3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Ojp1cGRhdGVHZW9tZXRyeSk6CisKIDIwMjAtMDMtMjYgIERhdmlkIEtpbHplciAgPGRka2lsemVy
QGFwcGxlLmNvbT4KIAogICAgICAgICBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZG9t
Q29va2llc0Zvckhvc3Qgc2hvdWxkIHZhbGlkYXRlIGl0cyBgaG9zdGAgcGFyYW1ldGVyCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggNDUwMjM5Mzg3NTY0ZTFmMDczZjM4YzMzNGM0ZDdi
ZmY5N2QwMGZlNi4uY2M3NDA3MmY5ZGY0YzcwODJlZDlmZDg3ZTZlYmUwYzQ0ZmZlNTIzZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzQyMywxMSArMzQyMywzMyBAQCB2b2lkIEZy
YW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAgIGlmICghZmlyc3RDaGlsZCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgTE9HKExheW91dCwgIkZyYW1lVmlldyAlcCBhdXRvU2l6ZUlmRW5h
YmxlZCIsIHRoaXMpOwogICAgIFNldEZvclNjb3BlPGJvb2w+IGNoYW5nZUluQXV0b1NpemUobV9p
bkF1dG9TaXplLCB0cnVlKTsKICAgICBpZiAobGF5b3V0Q29udGV4dCgpLnN1YnRyZWVMYXlvdXRS
b290KCkpCiAgICAgICAgIGxheW91dENvbnRleHQoKS5jb252ZXJ0U3VidHJlZUxheW91dFRvRnVs
bExheW91dCgpOwogCisgICAgc3dpdGNoIChtX2F1dG9TaXplTW9kZSkgeworICAgIGNhc2UgQXV0
b1NpemVNb2RlOjpMZWdhY3k6CisgICAgICAgIHBlcmZvcm1MZWdhY3lBdXRvU2l6ZSgpOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEF1dG9TaXplTW9kZTo6TW9kZXJuOgorICAgICAgICBwZXJm
b3JtTW9kZXJuQXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKGF1
dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChtX2F1dG9TaXplQ29udGVudFNpemUpOwor
CisgICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJm
b3JtTW9kZXJuQXV0b1NpemUoKQoreworICAgIExPRyhMYXlvdXQsICJGcmFtZVZpZXcgJXAgcGVy
Zm9ybU1vZGVybkF1dG9TaXplIiwgdGhpcyk7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1l
KCkuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJlbmRlclZp
ZXcoKTsKKyAgICBhdXRvKiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOwor
CiAgICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3
YXlzT2ZmOwogICAgIFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xs
YmFyQWx3YXlzT2ZmOwogICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC0z
NDQyLDcgKzM0NjQsNyBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAg
IFJlZjxGcmFtZVZpZXc+IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGRvY3VtZW50LT51cGRh
dGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwotICAgIC8vIFdoaWxlIHRoZSBmaW5hbCBjb250ZW50IHNpemUgY291
bGQgc2xpZ2h0bHkgYmUgZGlmZmVyZW50IGFmdGVyIHRoZSBuZXh0IHJlc2l6ZS9sYXlvdXQgKHNl
ZSBiZWxvdyksIHdlIGludGVudGlvbmFsbHkgc2F2ZSBhbmQgcmVwb3J0IAorICAgIC8vIFdoaWxl
IHRoZSBmaW5hbCBjb250ZW50IHNpemUgY291bGQgc2xpZ2h0bHkgYmUgZGlmZmVyZW50IGFmdGVy
IHRoZSBuZXh0IHJlc2l6ZS9sYXlvdXQgKHNlZSBiZWxvdyksIHdlIGludGVudGlvbmFsbHkgc2F2
ZSBhbmQgcmVwb3J0CiAgICAgLy8gdGhlIGN1cnJlbnQgdmFsdWUgdG8gYXZvaWQgdW5zdGFibGUg
bGF5b3V0IChlLmcuIGNvbnRlbnQgImhlaWdodDogMTAwJSIpLgogICAgIC8vIFNlZSBhbHNvIHdl
YmtpdC5vcmcvYi8xNzM1NjEKICAgICBtX2F1dG9TaXplQ29udGVudFNpemUgPSBjb250ZW50c1Np
emUoKTsKQEAgLTM0NTEsOSArMzQ3Myw5NCBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVu
YWJsZWQoKQogICAgIGF1dG8gZmluYWxIZWlnaHQgPSBtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVp
Z2h0ID8gc3RkOjptYXgobV9hdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCwgbV9hdXRvU2l6ZUNv
bnRlbnRTaXplLmhlaWdodCgpKSA6IG1fYXV0b1NpemVDb250ZW50U2l6ZS5oZWlnaHQoKTsKICAg
ICByZXNpemUoZmluYWxXaWR0aCwgZmluYWxIZWlnaHQpOwogICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKK30KKwordm9pZCBGcmFtZVZpZXc6OnBl
cmZvcm1MZWdhY3lBdXRvU2l6ZSgpCit7CisgICAgTE9HKExheW91dCwgIkZyYW1lVmlldyAlcCBw
ZXJmb3JtTGVnYWN5QXV0b1NpemUiLCB0aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVy
VmlldygpOworCisgICAgSW50U2l6ZSBtaW5BdXRvU2l6ZSgxLCAxKTsKKworICAgIC8vIFN0YXJ0
IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBhbmQgYWxsb3cgaXQgdG8gZ3Jvdy4KKyAgICByZXNpemUo
bWluQXV0b1NpemUud2lkdGgoKSwgbWluQXV0b1NpemUuaGVpZ2h0KCkpOworICAgIEludFNpemUg
c2l6ZSA9IGZyYW1lUmVjdCgpLnNpemUoKTsKKyAgICAvLyBEbyB0aGUgcmVzaXppbmcgdHdpY2Uu
IFRoZSBmaXJzdCB0aW1lIGlzIGJhc2ljYWxseSBhIHJvdWdoIGNhbGN1bGF0aW9uIHVzaW5nIHRo
ZSBwcmVmZXJyZWQgd2lkdGgKKyAgICAvLyB3aGljaCBtYXkgcmVzdWx0IGluIGEgaGVpZ2h0IGNo
YW5nZSBkdXJpbmcgdGhlIHNlY29uZCBpdGVyYXRpb24uCisgICAgZm9yIChpbnQgaSA9IDA7IGkg
PCAyOyBpKyspIHsKKyAgICAgICAgLy8gVXBkYXRlIHZhcmlvdXMgc2l6ZXMgaW5jbHVkaW5nIGNv
bnRlbnRzU2l6ZSwgc2Nyb2xsSGVpZ2h0LCBldGMuCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgaW50IHdpZHRoID0gcmVu
ZGVyVmlldy0+bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CisgICAgICAgIGludCBoZWlnaHQg
PSByZW5kZXJWaWV3LT5kb2N1bWVudFJlY3QoKS5oZWlnaHQoKTsKKyAgICAgICAgSW50U2l6ZSBu
ZXdTaXplKHdpZHRoLCBoZWlnaHQpOworCisgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiBhIHNj
cm9sbGJhciBpcyBuZWVkZWQgZm9yIGEgZ2l2ZW4gZGltZW5zaW9uIGFuZAorICAgICAgICAvLyBp
ZiBzbywgaW5jcmVhc2UgdGhlIG90aGVyIGRpbWVuc2lvbiB0byBhY2NvdW50IGZvciB0aGUgc2Ny
b2xsYmFyLgorICAgICAgICAvLyBTaW5jZSB0aGUgZGltZW5zaW9ucyBhcmUgb25seSBmb3IgdGhl
IHZpZXcgcmVjdGFuZ2xlLCBvbmNlIGEKKyAgICAgICAgLy8gZGltZW5zaW9uIGV4Y2VlZHMgdGhl
IG1heGltdW0sIHRoZXJlIGlzIG5vIG5lZWQgdG8gaW5jcmVhc2UgaXQgZnVydGhlci4KKyAgICAg
ICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpIHsK
KyAgICAgICAgICAgIFJlZlB0cjxTY3JvbGxiYXI+IGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGhvcml6b250YWxTY3JvbGxiYXIoKTsKKyAgICAgICAgICAgIGlmICghbG9jYWxIb3Jpem9udGFs
U2Nyb2xsYmFyKQorICAgICAgICAgICAgICAgIGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9IGNy
ZWF0ZVNjcm9sbGJhcihIb3Jpem9udGFsU2Nyb2xsYmFyKTsKKyAgICAgICAgICAgIG5ld1NpemUu
ZXhwYW5kKDAsIGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhci0+b2NjdXBpZWRIZWlnaHQoKSk7CisK
KyAgICAgICAgICAgIC8vIERvbid0IGJvdGhlciBjaGVja2luZyBmb3IgYSB2ZXJ0aWNhbCBzY3Jv
bGxiYXIgYmVjYXVzZSB0aGUgd2lkdGggaXMgYXQKKyAgICAgICAgICAgIC8vIGFscmVhZHkgZ3Jl
YXRlciB0aGUgbWF4aW11bS4KKyAgICAgICAgfSBlbHNlIGlmIChuZXdTaXplLmhlaWdodCgpID4g
bV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3Jv
bGxiYXI+IGxvY2FsVmVydGljYWxTY3JvbGxiYXIgPSB2ZXJ0aWNhbFNjcm9sbGJhcigpOworICAg
ICAgICAgICAgaWYgKCFsb2NhbFZlcnRpY2FsU2Nyb2xsYmFyKQorICAgICAgICAgICAgICAgIGxv
Y2FsVmVydGljYWxTY3JvbGxiYXIgPSBjcmVhdGVTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIp
OworICAgICAgICAgICAgbmV3U2l6ZS5leHBhbmQobG9jYWxWZXJ0aWNhbFNjcm9sbGJhci0+b2Nj
dXBpZWRXaWR0aCgpLCAwKTsKKworICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNoZWNraW5n
IGZvciBhIGhvcml6b250YWwgc2Nyb2xsYmFyIGJlY2F1c2UgdGhlIGhlaWdodCBpcworICAgICAg
ICAgICAgLy8gYWxyZWFkeSBncmVhdGVyIHRoZSBtYXhpbXVtLgorICAgICAgICB9CisKKyAgICAg
ICAgLy8gRW5zdXJlIHRoZSBzaXplIGlzIGF0IGxlYXN0IHRoZSBtaW4gYm91bmRzLgorICAgICAg
ICBuZXdTaXplID0gbmV3U2l6ZS5leHBhbmRlZFRvKG1pbkF1dG9TaXplKTsKKworICAgICAgICAv
LyBCb3VuZCB0aGUgZGltZW5zaW9ucyBieSB0aGUgbWF4IGJvdW5kcyBhbmQgZGV0ZXJtaW5lIHdo
YXQgc2Nyb2xsYmFycyB0byBzaG93LgorICAgICAgICBTY3JvbGxiYXJNb2RlIGhvcml6b25hbFNj
cm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CisgICAgICAgIGlmIChuZXdTaXplLndp
ZHRoKCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKSB7CisgICAgICAgICAgICBuZXdT
aXplLnNldFdpZHRoKG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpOworICAgICAgICAgICAg
aG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09uOworICAgICAgICB9Cisg
ICAgICAgIFNjcm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3
YXlzT2ZmOworICAgICAgICBpZiAobmV3U2l6ZS5oZWlnaHQoKSA+IG1fYXV0b1NpemVDb25zdHJh
aW50LmhlaWdodCgpKSB7CisgICAgICAgICAgICBuZXdTaXplLnNldEhlaWdodChtX2F1dG9TaXpl
Q29uc3RyYWludC5oZWlnaHQoKSk7CisgICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUg
PSBTY3JvbGxiYXJBbHdheXNPbjsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChuZXdTaXplID09
IHNpemUpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBXaGlsZSBsb2FkaW5n
IG9ubHkgYWxsb3cgdGhlIHNpemUgdG8gaW5jcmVhc2UgKHRvIGF2b2lkIHR3aXRjaGluZyBkdXJp
bmcgaW50ZXJtZWRpYXRlIHNtYWxsZXIgc3RhdGVzKQorICAgICAgICAvLyB1bmxlc3MgYXV0b3Jl
c2l6ZSBoYXMganVzdCBiZWVuIHR1cm5lZCBvbiBvciB0aGUgbWF4aW11bSBzaXplIGlzIHNtYWxs
ZXIgdGhhbiB0aGUgY3VycmVudCBzaXplLgorICAgICAgICBpZiAobV9kaWRSdW5BdXRvc2l6ZSAm
JiBzaXplLmhlaWdodCgpIDw9IG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpICYmIHNpemUu
d2lkdGgoKSA8PSBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpCisgICAgICAgICAgICAmJiAh
ZnJhbWUoKS5sb2FkZXIoKS5pc0NvbXBsZXRlKCkgJiYgKG5ld1NpemUuaGVpZ2h0KCkgPCBzaXpl
LmhlaWdodCgpIHx8IG5ld1NpemUud2lkdGgoKSA8IHNpemUud2lkdGgoKSkpCisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICAvLyBUaGUgZmlyc3QgdGltZSBhcm91bmQsIHJlc2l6ZSB0byB0
aGUgbWluaW11bSBoZWlnaHQgYWdhaW47IG90aGVyd2lzZSwKKyAgICAgICAgLy8gb24gcGFnZXMg
KGUuZy4gcXVpcmtzIG1vZGUpIHdoZXJlIHRoZSBib2R5L2RvY3VtZW50IHJlc2l6ZSB0byB0aGUg
dmlldyBzaXplLAorICAgICAgICAvLyB3ZSdsbCBlbmQgdXAgbm90IHNocmlua2luZyBiYWNrIGRv
d24gYWZ0ZXIgcmVzaXppbmcgdG8gdGhlIGNvbXB1dGVkIHByZWZlcnJlZCB3aWR0aC4KKyAgICAg
ICAgcmVzaXplKG5ld1NpemUud2lkdGgoKSwgaSA/IG5ld1NpemUuaGVpZ2h0KCkgOiBtaW5BdXRv
U2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIC8vIEZvcmNlIHRoZSBzY3JvbGxiYXIgc3RhdGUgdG8g
YXZvaWQgdGhlIHNjcm9sbGJhciBjb2RlIGFkZGluZyB0aGVtIGFuZCBjYXVzaW5nIHRoZW0gdG8g
YmUgbmVlZGVkLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgLy8gYSB2ZXJ0aWNhbCBzY3JvbGxiYXIg
bWF5IGNhdXNlIHRleHQgdG8gd3JhcCBhbmQgdGh1cyBpbmNyZWFzZSB0aGUgaGVpZ2h0ICh3aGlj
aCBpcyB0aGUgb25seSByZWFzb24gdGhlIHNjb2xsYmFyIGlzIG5lZWRlZCkuCisgICAgICAgIHNl
dFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CisgICAgICAgIHNldEhvcml6b250YWxTY3Jv
bGxiYXJMb2NrKGZhbHNlKTsKKyAgICAgICAgc2V0U2Nyb2xsYmFyTW9kZXMoaG9yaXpvbmFsU2Ny
b2xsYmFyTW9kZSwgdmVydGljYWxTY3JvbGxiYXJNb2RlLCB0cnVlLCB0cnVlKTsKKyAgICB9Cisg
ICAgLy8gQWxsIHRoZSByZXNpemluZyBhYm92ZSBtYXkgaGF2ZSBpbnZhbGlkYXRlZCBzdHlsZSAo
Zm9yIGV4YW1wbGUgaWYgdmlld3BvcnQgdW5pdHMgYXJlIGJlaW5nIHVzZWQpLgorCisgICAgZG9j
dW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBmaW5h
bCBsYXlvdXQncyByZXN1bHQgYXMgdGhlIGNvbnRlbnQgc2l6ZSAod2Via2l0Lm9yZy9iLzE3MzU2
MSkuCisgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIG1fYXV0b1NpemVDb250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOworCiAgICAgaWYg
KGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xp
ZW50KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChtX2F1dG9TaXplQ29udGVudFNpemUp
OwotICAgIG1fZGlkUnVuQXV0b3NpemUgPSB0cnVlOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0
QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQoaW50IGZpeGVkTWluaW11bUhlaWdodCkKQEAgLTQ0
NjIsMTEgKzQ1NjksMjIgQEAgYm9vbCBGcmFtZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFt
ZSgpIGNvbnN0CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBl
bmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9k
ZShlbmFibGUsIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6Ok1vZGVybik7Cit9CisKK3ZvaWQgRnJh
bWVWaWV3OjplbmFibGVMZWdhY3lBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNp
emUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFibGUsIHZpZXdTaXpl
LCBBdXRvU2l6ZU1vZGU6OkxlZ2FjeSk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRv
U2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBBdXRvU2l6ZU1v
ZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUuaXNFbXB0eSgpKTsK
ICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9hdXRvU2l6ZUNvbnN0cmFp
bnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fYXV0b1NpemVNb2RlID0g
bW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5hYmxlOwogICAgIG1fYXV0b1NpemVDb25z
dHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVudHNT
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMxNDQ4YTJkZmM2NmY5
NDQwYjQxNzJkNzgyMjRlNjMwLi41ODYzMDM2MmM2OGU0OWM2YzQ4ZmRjYTZjYzE0ZDA0N2UzOWU2
MGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQwMCw4ICs0MDAsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgY2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRl
KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmFibGVMZWdhY3lBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1heFNp
emUpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWln
aHQoaW50KTsKLSAgICBib29sIGlzQXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRBdXRvU2l6ZTsgfQorICAgIGJvb2wgaXNBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3Nob3VsZEF1dG9TaXplICYmIG1fYXV0b1NpemVNb2RlID09IEF1dG9TaXplTW9kZTo6
TW9kZXJuOyB9CisgICAgYm9vbCBpc0xlZ2FjeUF1dG9TaXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2hvdWxkQXV0b1NpemUgJiYgbV9hdXRvU2l6ZU1vZGUgPT0gQXV0b1NpemVNb2RlOjpM
ZWdhY3k7IH0KICAgICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBmb3JjZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZhbHNlKTsKQEAg
LTcwNCw3ICs3MDYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlTGF5b3V0UGFyZW50Vmll
d0lmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVlKCk7CiAgICAg
dm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CisKKyAgICBlbnVtIGNsYXNzIEF1dG9TaXpl
TW9kZSA6IHVpbnQ4X3QgeyBMZWdhY3ksIE1vZGVybiB9OworICAgIHZvaWQgZW5hYmxlQXV0b1Np
emVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBBdXRvU2l6ZU1vZGUp
OwogICAgIHZvaWQgYXV0b1NpemVJZkVuYWJsZWQoKTsKKyAgICB2b2lkIHBlcmZvcm1Nb2Rlcm5B
dXRvU2l6ZSgpOworICAgIHZvaWQgcGVyZm9ybUxlZ2FjeUF1dG9TaXplKCk7CiAKICAgICB2b2lk
IGFwcGx5UmVjdXJzaXZlbHlXaXRoVmlzaWJsZVJlY3QoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lk
IChGcmFtZVZpZXcmIGZyYW1lVmlldywgY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpPiYpOwog
ICAgIHZvaWQgcmVzdW1lVmlzaWJsZUltYWdlQW5pbWF0aW9ucyhjb25zdCBJbnRSZWN0JiB2aXNp
YmxlUmVjdCk7CkBAIC05MzEsOCArOTM4LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0Zs
aXBwZWRCbG9ja1JlbmRlcmVycyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3NwZWN1bGF0aXZlVGls
aW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogCisgICAgQXV0b1NpemVNb2Rl
IG1fYXV0b1NpemVNb2RlIHsgQXV0b1NpemVNb2RlOjpNb2Rlcm4gfTsKICAgICAvLyBJZiB0cnVl
LCBhdXRvbWF0aWNhbGx5IHJlc2l6ZSB0aGUgZnJhbWUgdmlldyBhcm91bmQgaXRzIGNvbnRlbnQu
CiAgICAgYm9vbCBtX3Nob3VsZEF1dG9TaXplIHsgZmFsc2UgfTsKKyAgICAvLyBJZiB0cnVlLCBh
dXRvbWF0aWNhbGx5IHJlc2l6ZSB0aGUgZnJhbWUgdmlldyBhcm91bmQgaXRzIGNvbnRlbnQuCiAg
ICAgYm9vbCBtX2luQXV0b1NpemUgeyBmYWxzZSB9OwogICAgIC8vIFRydWUgaWYgYXV0b3NpemUg
aGFzIGJlZW4gcnVuIHNpbmNlIG1fc2hvdWxkQXV0b1NpemUgd2FzIHNldC4KICAgICBib29sIG1f
ZGlkUnVuQXV0b3NpemUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCA3MjRjMTZlNTA0MzNkZWJiMjQwZDli
ZTEzYmU5YTVmMDU3OWJhYTQzLi5iYzA2MjhjMDkxZjlmOWNkYmZlNTM1OGJmNWVmZGM2YzMwZWI1
OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcApAQCAtNjcsNiArNjcsNyBAQCB2b2lkIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnM6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBt
YXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIGVuY29kZXIgPDwgbWVkaWFQbGF5YmFja0lz
U3VzcGVuZGVkOwogICAgIGVuY29kZXIgPDwgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworICAg
IGVuY29kZXIgPDwgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKICAgICBlbmNvZGVy
IDw8IGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShz
Y3JvbGxQaW5uaW5nQmVoYXZpb3IpOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJ
UEM6OkRlY29kCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmRl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpKQorICAgICAgICByZXR1cm4gV1RGOjpudWxs
b3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0KSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMudmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRV
bml0cykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzLmgKaW5kZXggZThiOWZhODg2Y2MzN2Q2ODhkMWM4ODU4NDYzNWIyMTI5NDViMGU5MS4uZGY3
NDM5NTRjZmUyMDBhMzZmZjFhZGE0NjBkNjkzNjhiMjkxYzM2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMTE4LDYgKzExOCw3
IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHsKICAgICBib29sIG1lZGlhUGxh
eWJhY2tJc1N1c3BlbmRlZCB7IGZhbHNlIH07CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmlt
dW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIGRlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU7CiAgICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0OwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHM7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLVmlld1ByaXZhdGUuaAppbmRleCAwZjIyNmViYzU4M2E2ZWQ4NGZlMzE0OGYzNWY2
NTRjZWQ3OGRiZWQ2Li5iZTJlZGU3OWVhZDU1OThjMmI0NGExZjIyZTk3NmI5OWQ2NjE2MjA3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRl
LmgKQEAgLTU4LDYgKzU4LDcgQEAKICsgKHZvaWQpaGlkZVdvcmREZWZpbml0aW9uV2luZG93Owog
CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgTlNTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dDsK
K0Bwcm9wZXJ0eSAocmVhZHdyaXRlKSBOU1NpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZTsKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIHNob3VsZENsaXBUb1Zpc2libGVSZWN0
OwogQHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9y
QXV0b0xheW91dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1VzaW5nVUlTaWRlQ29t
cG9zaXRpbmcpIEJPT0wgdXNpbmdVSVNpZGVDb21wb3NpdGluZzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGIzYzBk
MTI5MTk1ODU4NDgzOGQ0MWNhNmUzMjllYTAyYTQyNzBjZmUuLmEzMDBlZDI5MDYyMDg2MTkyM2Mw
YWY3ZDRlNjMzNzlkZWRlZjliNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNTA2LDYgKzUwNiw3IEBAIGZvciB0
aGlzIHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhw
YW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRD
b250ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRX
aWR0aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplOikgQ0dTaXplIF9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNTaG93c0hvcml6
b250YWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRl
cj1fc2V0QWx3YXlzU2hvd3NWZXJ0aWNhbFNjcm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NWZXJ0
aWNhbFNjcm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkZGM2ZmZmYTMzMGE4M2NiNzJi
ZTE5MzBmYzcyMTAxMzM0MjBkODI2Li4wYWI0ZmRhNGM4MWU2MzliMjQ2ZTNjM2U5ZWFiYWRjYTZj
NGIxNzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAt
MTI2OCw2ICsxMjY4LDE2IEBAIC0gKHZvaWQpc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0OihO
U1NpemUpbWluaW11bVNpemVGb3JBdXRvTGF5b3V0CiAgICAgX2RhdGEtPl9pbXBsLT5zZXRNaW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoTlNTaXplVG9DR1NpemUobWluaW11bVNpemVGb3JBdXRvTGF5
b3V0KSk7CiB9CiAKKy0gKE5TU2l6ZSlkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplCit7
CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplKCkpOworfQorCistICh2b2lkKXNldERlcHJlY2F0ZWRBdXRvTGF5
b3V0TWF4aW11bVNpemU6KE5TU2l6ZSlkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplCit7
CisgICAgX2RhdGEtPl9pbXBsLT5zZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKE5T
U2l6ZVRvQ0dTaXplKGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpKTsKK30KKwogLSAo
Qk9PTClzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0CiB7CiAgICAgcmV0dXJu
IF9kYXRhLT5faW1wbC0+c2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQppbmRl
eCA3NThlZTExMTJiNDk5MzAwZTVlYTZmNWZhNzAzNDlmNGI3NWU0YTNmLi5hMGNjZTZjOTVkYWQ5
MDg3OGJkZmM0ZWFmNDI0MWJiY2JlYThiZWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbQpAQCAtMTQwMCw2ICsxNDAwLDIxIEBAIC0gKHZv
aWQpX3NldE1pbmltdW1MYXlvdXRXaWR0aDooQ0dGbG9hdCl3aWR0aAogICAgIF9pbXBsLT5zZXRD
bGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKIH0KIAorLSAoQ0dTaXplKV9kZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplCit7CisgICAgcmV0dXJuIF9wYWdlLT5taW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQoKTsKK30KKworLSAodm9pZClfc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZTooQ0dTaXplKXNpemUKK3sKKyAgICBCT09MIGV4cGFuZHNUb0ZpdCA9IHNpemUu
d2lkdGggPiAwICYmIHNpemUuaGVpZ2h0ID4gMDsKKworICAgIF9wYWdlLT5zZXREZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKFdlYkNvcmU6OkludFNpemUoc2l6ZS53aWR0aCwgc2l6ZS5o
ZWlnaHQpKTsKKyAgICBfcGFnZS0+c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKCFleHBhbmRzVG9G
aXQpOworCisgICAgX2ltcGwtPnNldENsaXBzVG9WaXNpYmxlUmVjdChleHBhbmRzVG9GaXQpOwor
fQorCiAtIChCT09MKV9jbGlwc1RvVmlzaWJsZVJlY3QKIHsKICAgICByZXR1cm4gX2ltcGwtPmNs
aXBzVG9WaXNpYmxlUmVjdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgKaW5kZXggNzhlNTQ2MjczZmM3N2FjZjgxMzdlMDNhN2I4MmM2MjBlZjgxZmMzNy4u
MTcyNTA3YTJmMDM5MGY3ZTI4ZmVmYTVhYTdmY2UzY2I4M2UxMTkyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0yMjQsNiArMjI0LDggQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoQ0dTaXplKTsKICAg
ICBDR1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRE
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKENHU2l6ZSk7CisgICAgQ0dTaXplIGRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKSBjb25zdDsKICAgICB2b2lkIHNldFNob3VsZEV4
cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoYm9vbCk7CiAgICAgYm9vbCBzaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCkgY29uc3Q7CiAgICAgdm9pZCBzZXRJbnRyaW5z
aWNDb250ZW50U2l6ZShDR1NpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQppbmRleCBmOWQ3YWJlNzRjNDI2ZmI0NTQyMzAzZDE1ZDMyM2YwYzJmMmFk
MDU5Li4zMWI1MDhkNzliMDhmYmFkZTg0NjlmMzE2YWMwODVlNDM3NDI5MjEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMTkyNiw2ICsxOTI2
LDIxIEBAIENHU2l6ZSBXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29u
c3QKICAgICByZXR1cm4gbV9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKIH0KIAor
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShDR1Np
emUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSkKK3sKKyAgICBib29sIGV4cGFuZHNU
b0ZpdCA9IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUud2lkdGggPiAwICYmIGRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUuaGVpZ2h0ID4gMDsKKworICAgIG1fcGFnZS0+c2V0
RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplKGRlcHJlY2F0
ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpKTsKKyAgICBtX3BhZ2UtPnNldE1haW5GcmFtZUlzU2Ny
b2xsYWJsZSghZXhwYW5kc1RvRml0KTsKKworICAgIHNldENsaXBzVG9WaXNpYmxlUmVjdChleHBh
bmRzVG9GaXQpOworfQorCitDR1NpemUgV2ViVmlld0ltcGw6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0
TWF4aW11bVNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UtPmRlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5zZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5k
VG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOwpAQCAt
MTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SW50cmluc2ljQ29udGVudFNp
emUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQogICAgIC8vIHNvIHdlIGNhbiByZXBvcnQg
dGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90LCB3ZSBuZWVkIHRvIHJlcG9y
dCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwga25v
dyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAgIC8vIEZJWE1FOiB3aGF0IHRvIGRvIGhl
cmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxl
V2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBpZiAoaW50cmluc2ljQ29udGVudFNp
emUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkpCiAg
ICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGgud2lk
dGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4MWMzY2M0YWUxNjRkZmEyMmUwNTNmZGM5
OTE0OWNjLi4wNGExYTIxZGRhZDU3NGZiNmZjNDMxOThmYjMzYzhiOTFlZThiYTgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04MCw2ICs4MCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91dERpZENoYW5nZSgpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdl
KCkgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdl
YkNvcmU6OkZsb2F0UG9pbnQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjb21taXRUcmFuc2llbnRa
b29tKGRvdWJsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCAwMzhmY2YwOTgyNDQ4OGYzNTU5ZTRhOGU2YTczMTE2
ZmRmOTQyZmEzLi4zODBmMzlkMGQ5MThjYTEwZTUyNTY1ZjY2ZDgwYzRmYWEyNTVhYTljIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTc2NjAsNiArNzY2MCw3
IEBAIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgV2ViUGFnZVByb3h5OjpjcmVhdGlvblBhcmFt
ZXRlcnMoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jCiAgICAgcGFyYW1ldGVycy5tYXlTdGFydE1lZGlh
V2hlbkluV2luZG93ID0gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OwogICAgIHBhcmFtZXRl
cnMubWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkID0gbV9tZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQ7
CiAgICAgcGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBtX21pbmltdW1TaXpl
Rm9yQXV0b0xheW91dDsKKyAgICBwYXJhbWV0ZXJzLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUgPSBtX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CiAgICAgcGFyYW1ldGVy
cy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID0gbV9hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRlcnMudmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBwYXJh
bWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOwpA
QCAtODMyOSw2ICs4MzMwLDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogfQogCit2b2lkIFdlYlBh
Z2VQcm94eTo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBJbnRTaXpl
JiBzaXplKQoreworICAgIGlmIChtX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgPT0g
c2l6ZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0RGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZShzaXplKSk7CisgICAgbV9kcmF3aW5nQXJlYS0+ZGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSgpOworCisjaWYgVVNFKEFQUEtJVCkKKyAgICBp
ZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLndpZHRoKCkgPD0gMCkKKyAgICAg
ICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNpemUoSW50U2l6ZSgtMSwgLTEpKTsKKyNlbmRp
ZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmll
d0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAgICBpZiAobV9hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKaW5kZXggMGExODczNTkzNmEwMmMyNTQ2NzJjMjI2MGNkNTI4YjdlNWZi
MmI1Ny4uYjkxMjhhNzhjOTdhOTgzYTRhMWUyZTUyZGY2ZmM3OWVjMzIyMWFjYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzNDIsNiArMTM0Miw5IEBAIHB1Ymxp
YzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0
IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OyB9CiAgICAgdm9pZCBzZXRNaW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogCisgICAgV2Vi
Q29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOyB9CisgICAgdm9pZCBzZXRE
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
KwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsgfQogICAgIHZvaWQg
c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sKTsKIApAQCAtMjU5MSw2
ICsyNTk0LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRl
cyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9taW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2RlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemU7CisKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiBtX3ZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHM7CiAKICAgICAvLyBWaXN1YWwgdmlld3BvcnRzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4YzNiZGNjYjFjZTE0ZGViOTZlZjk2NTcxOTMwNGEy
MjlmNTgwNDk0Li4xNjVmMGQ4ZTAzMmE2NDc1ZjhiMmVmZGFjMzg3ZjY2NzI0OTFlNmY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTQyLDYgKzQyLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbG9yU3BhY2VE
aWRDaGFuZ2UoKSBvdmVycmlkZTsKICAgICB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91dERp
ZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmKSBvdmVycmlkZTsKQEAgLTcxLDYgKzcyLDkgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbGFz
dCBtaW5pbXVtIGxheW91dCBzaXplIHdlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLgogICAgIFdl
YkNvcmU6OkludFNpemUgbV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dDsKIAorICAg
IC8vIFRoZSBsYXN0IG1heG1pdW0gc2l6ZSBmb3IgbGVnYWN5IGF1dG8tbGF5b3V0IHdlIHNlbnQg
dG8gdGhlIHdlYiBwcm9jZXNzLgorICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2VudERlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CisKICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNr
czsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0
OWM1ZGJhNTcwZTUwZjBmMDMzZjBkNWM1NDNhZTc5Ny4uNjQ5ZWFiN2Y5Zjg1NTc0YjllZDViNWRh
YTcxYTlmZTNhMDcwZDYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAg
LTkwLDYgKzkwLDE5IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
bWluaW11bVNpemVGb3JBdXRvTGF5b3V0RGlkQ2hhbmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0
cnkoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAoIW1fd2Vi
UGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IFdlIG9ubHkgd2FudCBvbmUgVXBkYXRlR2VvbWV0cnkgbWVzc2FnZSBpbiBmbGlnaHQgYXQgb25j
ZSwgc28gaWYgd2UndmUgYWxyZWFkeSBzZW50IG9uZSBidXQKKyAgICAvLyBoYXZlbid0IHlldCBy
ZWNlaXZlZCB0aGUgcmVwbHkgd2UnbGwganVzdCByZXR1cm4gZWFybHkgaGVyZS4KKyAgICBpZiAo
bV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
c2VuZFVwZGF0ZUdlb21ldHJ5KCk7Cit9CisKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNr
aW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0
KQogewogICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
bGF5ZXJUcmVlQ29udGV4dCk7CkBAIC0xMDcsMTAgKzEyMCwxMSBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpZFVwZGF0ZUdlb21ldHJ5KCkKICAgICBtX2lzV2Fp
dGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gZmFsc2U7CiAKICAgICBJbnRTaXplIG1pbmltdW1T
aXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmltdW1TaXplRm9yQXV0b0xheW91
dCgpOworICAgIEludFNpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IG1fd2Vi
UGFnZVByb3h5LmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKTsKIAogICAgIC8vIElm
IHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hpbGUgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVw
ZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhlIHdlYiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQg
dG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJlLgotICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBt
X3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCAhPSBtaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQpCisgICAgaWYgKG1fbGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xh
c3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91
dCB8fCBtX2xhc3RTZW50RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSAhPSBkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplKQogICAgICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsK
IH0KIApAQCAtMTIzLDYgKzEzNyw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6d2FpdEZvckRpZFVwZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTCiB2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OndpbGxTZW5kVXBkYXRlR2VvbWV0cnko
KQogewogICAgIG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBtX3dlYlBhZ2VQ
cm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKKyAgICBtX2xhc3RTZW50RGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IG1fd2ViUGFnZVByb3h5LmRlcHJlY2F0ZWRBdXRvTGF5
b3V0TWF4aW11bVNpemUoKTsKICAgICBtX2xhc3RTZW50U2l6ZSA9IG1fc2l6ZTsKICAgICBtX2lz
V2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5ID0gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCmluZGV4IDMyN2ZmYzRmNmRkNTYzOTE5NDBlYjBhMDcxNDM1MGNiOGYyMmYy
ZGQuLjMyNGVlOWU0YjhiZTg4OWIxOGZkYzQzNzk0ZDBlOTUwNTExZTg5ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTUxMyw2ICsxNTEzLDE0IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UoKQogICAgICAg
ICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgp
LmhlaWdodCgpKTsKICAgICB9CiAKKyAgICBJbnRTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUgPSB3ZWJQYWdlLT5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCk7Cisg
ICAgaWYgKGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUud2lkdGgoKSAmJiBkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplLmhlaWdodCgpKSB7CisgICAgICAgIHZpZXctPmVuYWJs
ZUxlZ2FjeUF1dG9TaXplTW9kZSh0cnVlLCBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXpl
KTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQo
d2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9CisKICAgICBpZiAoYXV0byB2aWV3cG9y
dFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0cygpKQogICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKICAgICB2aWV3LT5zZXRQcm9oaWJp
dHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3NWVmNTJhMTNiNGFmYWE4ZTA5ZGM1
MTNkNDI4ZDMxMjJlMWYwMzYuLjU5NWI3OTVhYzMzNmRiNjhiMDFlYWFhYzFkYWFhMjJkNTYyODc5
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC02MzMsNiArNjMzLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQs
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHVwZGF0ZUlzSW5X
aW5kb3codHJ1ZSk7CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVy
cy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0
TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKTsK
ICAgICBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHBhcmFtZXRlcnMuYXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCk7CiAgICAgc2V0Vmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cyhwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMpOwogICAgIApAQCAtNzk0LDYgKzc5NSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVpbml0aWFsaXpl
V2ViUGFnZShXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICB9CiAK
ICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUocGFy
YW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2Fj
dGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rp
dml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFz
eW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY4NCw2ICs1Njg2LDIwIEBA
IHZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IEludFNpemUm
IHNpemUpCiAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVBdXRvU2l6
ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6bWF4KHNpemUuaGVpZ2h0KCksIDEpIH0p
OwogfQogCit2b2lkIFdlYlBhZ2U6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisgICAgaWYgKHNpemUud2lkdGgoKSA8PSAwIHx8
IHNpemUuaGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52
aWV3KCktPmVuYWJsZUxlZ2FjeUF1dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxl
TGVnYWN5QXV0b1NpemVNb2RlKHRydWUsIHNpemUpOworfQorCiB2b2lkIFdlYlBhZ2U6OnNldEF1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiB7CiAg
ICAgaWYgKG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9PSBzaG91bGRFeHBh
bmQpCkBAIC02NDMxLDEwICs2NDQ3LDEwIEBAIHZvaWQgV2ViUGFnZTo6cmVtb3ZlQWxsVXNlckNv
bnRlbnQoKQogCiB2b2lkIFdlYlBhZ2U6OnVwZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplSWZOZWVk
ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBpZiAoIW1pbmltdW1TaXpl
Rm9yQXV0b0xheW91dCgpLndpZHRoKCkpCisgICAgaWYgKCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQoKS53aWR0aCgpICYmICFkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkud2lkdGgo
KSAmJiAhZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKQogICAgICAg
ICByZXR1cm47CiAgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5G
cmFtZVZpZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQoKSk7CisgICAgQVNTRVJUKG1haW5GcmFtZVZp
ZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQoKSB8fCBtYWluRnJhbWVWaWV3KCktPmlzTGVnYWN5QXV0
b1NpemVFbmFibGVkKCkpOwogICAgIEFTU0VSVCghbWFpbkZyYW1lVmlldygpLT5uZWVkc0xheW91
dCgpKTsKICAgICBpZiAobV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplID09IHNpemUpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAppbmRleCA0MjYyNzAzN2E3ZTlmYmNlYzk0NmY3ZDM0M2FkY2I3MzIzMDM2ZTI0Li4wNGM5MzY2
OTUyNmE5ZmE3ODU5MjIwZDYwNWNmZGYzYTljM2M4MGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDY1LDYgKzEwNjUsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpOwogICAgIFdlYkNvcmU6OkludFNpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29u
c3QgeyByZXR1cm4gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7IH0KIAorICAgIHZvaWQgc2V0
RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkg
Y29uc3QgeyByZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOyB9CisKICAg
ICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRF
eHBhbmQpOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHsg
cmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsgfQogCkBAIC0xOTA3
LDYgKzE5MTAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV90cmFj
a2VkTmV0d29ya1Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJzOwogCiAgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1f
ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1NpemluZ1No
b3VsZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6
SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRl
eCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi4xZjg4ZWY2NzQ1MWYy
N2M2NDQyMjJhNDY1ZGQ2ZmNmMWQ2MTk3YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBA
QCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5
bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGljYWxTY3Jv
bGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1pbmltdW1T
aXplRm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0RGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplIHNpemUpCiAgICAgU2V0QXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIAogICAg
IFNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoT3B0aW9uYWw8V2ViQ29yZTo6SW50
U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tCmluZGV4IGIyYTZkM2RkMWRkZTQ0MGRmZjZjOGJiZTIxNjdjZjVhNzJlZjkwYzAuLmY5N2Uy
NDVjZmZkNTM3NjhmZGVmMWI3N2RiMjYzOWM0ODY4MzI3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTU4NCw3ICs1ODQsNyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3
U2l6ZSwgYm9vbAogICAgIEludFNpemUgc2l6ZSA9IHZpZXdTaXplOwogICAgIEludFNpemUgY29u
dGVudFNpemUgPSBJbnRTaXplKC0xLCAtMSk7CiAKLSAgICBpZiAoIW1fd2ViUGFnZS5taW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IG1fd2ViUGFnZS5hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0KCkpCisgICAgaWYgKCFtX3dlYlBhZ2UubWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpIHx8ICghbV93ZWJQYWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNp
emUoKS53aWR0aCgpICYmICFtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSgpLmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CiAKICAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC01OTQs
NyArNTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2Vv
bWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2ViUGFnZS5sYXlv
dXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQoKS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcgJiYgKG1fd2Vi
UGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dlYlBhZ2UuZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLndpZHRoKCkgJiYgbV93ZWJQYWdlLmRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS5oZWlnaHQoKSkpKSB7CiAgICAgICAgIGNvbnRl
bnRTaXplID0gZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50cmluc2ljQ29udGVudFNpemUoKTsKICAg
ICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394799</attachid>
            <date>2020-03-28 02:36:26 -0700</date>
            <delta_ts>2020-03-28 03:06:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200328103624.patch</filename>
            <type>text/plain</type>
            <size>36624</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM0NDg5ZTQ3Y2EyZjU2
M2QzMDk1MmVhNzk4NjQ3NGViNDA2NjYwOC4uOTE0MWE5MDRiOTJjMjhhNGE0NTEyZWY3MzkwZTdk
NTYzZjNlM2NiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAzLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU6XSBTUEkgYnV0IG1hcmtpbmcgc3BlY2lmaWNhbGx5IGFzIGRlcHJl
Y2F0ZWQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cGVyZm9ybURlZmF1bHRBdXRvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpl
bmFibGVEZXByZWNhdGVkQXV0b1NpemVNb2RlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorCiAyMDIwLTAzLTI2ICBEb24gT2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAK
ICAgICAgICAgW01TVkNdIFJlbW92ZSBleHBlcmltZW50YWwgbGFtYmRhIHByb2Nlc3NvciB1c2Fn
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA0OWI2NTdkOWFhYmU3NjllYTI4NTk0NDVjNWY1ZmJlMTAwZDFjNDUwLi5j
MDFmYmYyOTI5NDdjOGM1MGM1ZjY3MTc1MDRmMmIyNWM1NDQ0Yjk2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDU0IEBACisyMDIwLTAzLTI4ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJyaW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBj
b2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTExMDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUg
Zm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4gcjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVk
IGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisgICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtX
S1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU6XSBTUEkgYnV0IG1h
cmtpbmcgc3BlY2lmaWNhbGx5IGFzIGRlcHJlY2F0ZWQuCisKKyAgICAgICAgKiBTaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1By
aXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dL
VmlldyBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplXSk6CisgICAgICAgICgtW1dLVmll
dyBzZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0
RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRlcHJlY2F0
ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6c2V0SW50cmluc2ljQ29udGVudFNpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk6OmRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVE
aWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OndpbGxTZW5kVXBkYXRlR2VvbWV0cnkpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0
dGVkRm9yTmV3UGFnZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
OgorICAgICAgICAoV2ViS2l0OjptX3Byb2Nlc3NEaXNwbGF5TmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdlYlBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6dXBkYXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAg
KFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToK
KwogMjAyMC0wMy0yNiAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkb21Db29raWVzRm9ySG9zdCBzaG91
bGQgdmFsaWRhdGUgaXRzIGBob3N0YCBwYXJhbWV0ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cAppbmRleCA0NTAyMzkzODc1NjRlMWYwNzNmMzhjMzM0YzRkN2JmZjk3ZDAwZmU2Li42ZjM3ZmU2
MDE4MTVlMWQwYzg5NGYwNmE0YTE5ZGNhYzI2Y2RlNTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCkBAIC0zNDIzLDExICszNDIzLDMzIEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlm
RW5hYmxlZCgpCiAgICAgaWYgKCFmaXJzdENoaWxkKQogICAgICAgICByZXR1cm47CiAKLSAgICBM
T0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXplSWZFbmFibGVkIiwgdGhpcyk7CiAgICAg
U2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZShtX2luQXV0b1NpemUsIHRydWUpOwog
ICAgIGlmIChsYXlvdXRDb250ZXh0KCkuc3VidHJlZUxheW91dFJvb3QoKSkKICAgICAgICAgbGF5
b3V0Q29udGV4dCgpLmNvbnZlcnRTdWJ0cmVlTGF5b3V0VG9GdWxsTGF5b3V0KCk7CiAKKyAgICBz
d2l0Y2ggKG1fYXV0b1NpemVNb2RlKSB7CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkRlcHJlY2F0
ZWQ6CisgICAgICAgIHBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkRlZmF1bHQ6CisgICAgICAgIHBlcmZvcm1EZWZhdWx0
QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2Ug
PSBmcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaW50cmlu
c2ljQ29udGVudHNTaXplQ2hhbmdlZChtX2F1dG9TaXplQ29udGVudFNpemUpOworCisgICAgbV9k
aWRSdW5BdXRvc2l6ZSA9IHRydWU7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRGVmYXVs
dEF1dG9TaXplKCkKK3sKKyAgICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1EZWZh
dWx0QXV0b1NpemUiLCB0aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1
bWVudCgpOworICAgIGF1dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOwor
ICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENoaWxkKCk7CisKICAgICBT
Y3JvbGxiYXJNb2RlIGhvcml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7
CiAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdh
eXNPZmY7CiAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTM0NDIsNyAr
MzQ2NCw3IEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgUmVmPEZy
YW1lVmlldz4gcHJvdGVjdGVkVGhpcygqdGhpcyk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxl
SWZOZWVkZWQoKTsKICAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7Ci0gICAgLy8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGln
aHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93
KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCByZXBvcnQgCisgICAgLy8gV2hpbGUgdGhlIGZp
bmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5l
eHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCBy
ZXBvcnQKICAgICAvLyB0aGUgY3VycmVudCB2YWx1ZSB0byBhdm9pZCB1bnN0YWJsZSBsYXlvdXQg
KGUuZy4gY29udGVudCAiaGVpZ2h0OiAxMDAlIikuCiAgICAgLy8gU2VlIGFsc28gd2Via2l0Lm9y
Zy9iLzE3MzU2MQogICAgIG1fYXV0b1NpemVDb250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwpA
QCAtMzQ1MSw5ICszNDczLDk0IEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgp
CiAgICAgYXV0byBmaW5hbEhlaWdodCA9IG1fYXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPyBz
dGQ6Om1heChtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0LCBtX2F1dG9TaXplQ29udGVudFNp
emUuaGVpZ2h0KCkpIDogbV9hdXRvU2l6ZUNvbnRlbnRTaXplLmhlaWdodCgpOwogICAgIHJlc2l6
ZShmaW5hbFdpZHRoLCBmaW5hbEhlaWdodCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworfQorCit2b2lkIEZyYW1lVmlldzo6cGVyZm9ybURl
cHJlY2F0ZWRBdXRvU2l6ZSgpCit7CisgICAgTE9HKExheW91dCwgIkZyYW1lVmlldyAlcCBwZXJm
b3JtRGVwcmVjYXRlZEF1dG9TaXplIiwgdGhpcyk7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGZy
YW1lKCkuZG9jdW1lbnQoKTsKKyAgICBhdXRvKiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJlbmRl
clZpZXcoKTsKKworICAgIEludFNpemUgbWluQXV0b1NpemUoMSwgMSk7CisKKyAgICAvLyBTdGFy
dCBmcm9tIHRoZSBtaW5pbXVtIHNpemUgYW5kIGFsbG93IGl0IHRvIGdyb3cuCisgICAgcmVzaXpl
KG1pbkF1dG9TaXplLndpZHRoKCksIG1pbkF1dG9TaXplLmhlaWdodCgpKTsKKyAgICBJbnRTaXpl
IHNpemUgPSBmcmFtZVJlY3QoKS5zaXplKCk7CisgICAgLy8gRG8gdGhlIHJlc2l6aW5nIHR3aWNl
LiBUaGUgZmlyc3QgdGltZSBpcyBiYXNpY2FsbHkgYSByb3VnaCBjYWxjdWxhdGlvbiB1c2luZyB0
aGUgcHJlZmVycmVkIHdpZHRoCisgICAgLy8gd2hpY2ggbWF5IHJlc3VsdCBpbiBhIGhlaWdodCBj
aGFuZ2UgZHVyaW5nIHRoZSBzZWNvbmQgaXRlcmF0aW9uLgorICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgMjsgaSsrKSB7CisgICAgICAgIC8vIFVwZGF0ZSB2YXJpb3VzIHNpemVzIGluY2x1ZGluZyBj
b250ZW50c1NpemUsIHNjcm9sbEhlaWdodCwgZXRjLgorICAgICAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGludCB3aWR0aCA9IHJl
bmRlclZpZXctPm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpOworICAgICAgICBpbnQgaGVpZ2h0
ID0gcmVuZGVyVmlldy0+ZG9jdW1lbnRSZWN0KCkuaGVpZ2h0KCk7CisgICAgICAgIEludFNpemUg
bmV3U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKKworICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYgYSBz
Y3JvbGxiYXIgaXMgbmVlZGVkIGZvciBhIGdpdmVuIGRpbWVuc2lvbiBhbmQKKyAgICAgICAgLy8g
aWYgc28sIGluY3JlYXNlIHRoZSBvdGhlciBkaW1lbnNpb24gdG8gYWNjb3VudCBmb3IgdGhlIHNj
cm9sbGJhci4KKyAgICAgICAgLy8gU2luY2UgdGhlIGRpbWVuc2lvbnMgYXJlIG9ubHkgZm9yIHRo
ZSB2aWV3IHJlY3RhbmdsZSwgb25jZSBhCisgICAgICAgIC8vIGRpbWVuc2lvbiBleGNlZWRzIHRo
ZSBtYXhpbXVtLCB0aGVyZSBpcyBubyBuZWVkIHRvIGluY3JlYXNlIGl0IGZ1cnRoZXIuCisgICAg
ICAgIGlmIChuZXdTaXplLndpZHRoKCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKSB7
CisgICAgICAgICAgICBSZWZQdHI8U2Nyb2xsYmFyPiBsb2NhbEhvcml6b250YWxTY3JvbGxiYXIg
PSBob3Jpem9udGFsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsSG9yaXpvbnRh
bFNjcm9sbGJhcikKKyAgICAgICAgICAgICAgICBsb2NhbEhvcml6b250YWxTY3JvbGxiYXIgPSBj
cmVhdGVTY3JvbGxiYXIoSG9yaXpvbnRhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXpl
LmV4cGFuZCgwLCBsb2NhbEhvcml6b250YWxTY3JvbGxiYXItPm9jY3VwaWVkSGVpZ2h0KCkpOwor
CisgICAgICAgICAgICAvLyBEb24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgdmVydGljYWwgc2Ny
b2xsYmFyIGJlY2F1c2UgdGhlIHdpZHRoIGlzIGF0CisgICAgICAgICAgICAvLyBhbHJlYWR5IGdy
ZWF0ZXIgdGhlIG1heGltdW0uCisgICAgICAgIH0gZWxzZSBpZiAobmV3U2l6ZS5oZWlnaHQoKSA+
IG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKSB7CisgICAgICAgICAgICBSZWZQdHI8U2Ny
b2xsYmFyPiBsb2NhbFZlcnRpY2FsU2Nyb2xsYmFyID0gdmVydGljYWxTY3JvbGxiYXIoKTsKKyAg
ICAgICAgICAgIGlmICghbG9jYWxWZXJ0aWNhbFNjcm9sbGJhcikKKyAgICAgICAgICAgICAgICBs
b2NhbFZlcnRpY2FsU2Nyb2xsYmFyID0gY3JlYXRlU2Nyb2xsYmFyKFZlcnRpY2FsU2Nyb2xsYmFy
KTsKKyAgICAgICAgICAgIG5ld1NpemUuZXhwYW5kKGxvY2FsVmVydGljYWxTY3JvbGxiYXItPm9j
Y3VwaWVkV2lkdGgoKSwgMCk7CisKKyAgICAgICAgICAgIC8vIERvbid0IGJvdGhlciBjaGVja2lu
ZyBmb3IgYSBob3Jpem9udGFsIHNjcm9sbGJhciBiZWNhdXNlIHRoZSBoZWlnaHQgaXMKKyAgICAg
ICAgICAgIC8vIGFscmVhZHkgZ3JlYXRlciB0aGUgbWF4aW11bS4KKyAgICAgICAgfQorCisgICAg
ICAgIC8vIEVuc3VyZSB0aGUgc2l6ZSBpcyBhdCBsZWFzdCB0aGUgbWluIGJvdW5kcy4KKyAgICAg
ICAgbmV3U2l6ZSA9IG5ld1NpemUuZXhwYW5kZWRUbyhtaW5BdXRvU2l6ZSk7CisKKyAgICAgICAg
Ly8gQm91bmQgdGhlIGRpbWVuc2lvbnMgYnkgdGhlIG1heCBib3VuZHMgYW5kIGRldGVybWluZSB3
aGF0IHNjcm9sbGJhcnMgdG8gc2hvdy4KKyAgICAgICAgU2Nyb2xsYmFyTW9kZSBob3Jpem9uYWxT
Y3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOworICAgICAgICBpZiAobmV3U2l6ZS53
aWR0aCgpID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lkdGgoKSkgeworICAgICAgICAgICAgbmV3
U2l6ZS5zZXRXaWR0aChtX2F1dG9TaXplQ29uc3RyYWludC53aWR0aCgpKTsKKyAgICAgICAgICAg
IGhvcml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPbjsKKyAgICAgICAgfQor
ICAgICAgICBTY3JvbGxiYXJNb2RlIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFs
d2F5c09mZjsKKyAgICAgICAgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBtX2F1dG9TaXplQ29uc3Ry
YWludC5oZWlnaHQoKSkgeworICAgICAgICAgICAgbmV3U2l6ZS5zZXRIZWlnaHQobV9hdXRvU2l6
ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpOworICAgICAgICAgICAgdmVydGljYWxTY3JvbGxiYXJNb2Rl
ID0gU2Nyb2xsYmFyQWx3YXlzT247CisgICAgICAgIH0KKworICAgICAgICBpZiAobmV3U2l6ZSA9
PSBzaXplKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgLy8gV2hpbGUgbG9hZGlu
ZyBvbmx5IGFsbG93IHRoZSBzaXplIHRvIGluY3JlYXNlICh0byBhdm9pZCB0d2l0Y2hpbmcgZHVy
aW5nIGludGVybWVkaWF0ZSBzbWFsbGVyIHN0YXRlcykKKyAgICAgICAgLy8gdW5sZXNzIGF1dG9y
ZXNpemUgaGFzIGp1c3QgYmVlbiB0dXJuZWQgb24gb3IgdGhlIG1heGltdW0gc2l6ZSBpcyBzbWFs
bGVyIHRoYW4gdGhlIGN1cnJlbnQgc2l6ZS4KKyAgICAgICAgaWYgKG1fZGlkUnVuQXV0b3NpemUg
JiYgc2l6ZS5oZWlnaHQoKSA8PSBtX2F1dG9TaXplQ29uc3RyYWludC5oZWlnaHQoKSAmJiBzaXpl
LndpZHRoKCkgPD0gbV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lkdGgoKQorICAgICAgICAgICAgJiYg
IWZyYW1lKCkubG9hZGVyKCkuaXNDb21wbGV0ZSgpICYmIChuZXdTaXplLmhlaWdodCgpIDwgc2l6
ZS5oZWlnaHQoKSB8fCBuZXdTaXplLndpZHRoKCkgPCBzaXplLndpZHRoKCkpKQorICAgICAgICAg
ICAgYnJlYWs7CisKKyAgICAgICAgLy8gVGhlIGZpcnN0IHRpbWUgYXJvdW5kLCByZXNpemUgdG8g
dGhlIG1pbmltdW0gaGVpZ2h0IGFnYWluOyBvdGhlcndpc2UsCisgICAgICAgIC8vIG9uIHBhZ2Vz
IChlLmcuIHF1aXJrcyBtb2RlKSB3aGVyZSB0aGUgYm9keS9kb2N1bWVudCByZXNpemUgdG8gdGhl
IHZpZXcgc2l6ZSwKKyAgICAgICAgLy8gd2UnbGwgZW5kIHVwIG5vdCBzaHJpbmtpbmcgYmFjayBk
b3duIGFmdGVyIHJlc2l6aW5nIHRvIHRoZSBjb21wdXRlZCBwcmVmZXJyZWQgd2lkdGguCisgICAg
ICAgIHJlc2l6ZShuZXdTaXplLndpZHRoKCksIGkgPyBuZXdTaXplLmhlaWdodCgpIDogbWluQXV0
b1NpemUuaGVpZ2h0KCkpOworICAgICAgICAvLyBGb3JjZSB0aGUgc2Nyb2xsYmFyIHN0YXRlIHRv
IGF2b2lkIHRoZSBzY3JvbGxiYXIgY29kZSBhZGRpbmcgdGhlbSBhbmQgY2F1c2luZyB0aGVtIHRv
IGJlIG5lZWRlZC4gRm9yIGV4YW1wbGUsCisgICAgICAgIC8vIGEgdmVydGljYWwgc2Nyb2xsYmFy
IG1heSBjYXVzZSB0ZXh0IHRvIHdyYXAgYW5kIHRodXMgaW5jcmVhc2UgdGhlIGhlaWdodCAod2hp
Y2ggaXMgdGhlIG9ubHkgcmVhc29uIHRoZSBzY29sbGJhciBpcyBuZWVkZWQpLgorICAgICAgICBz
ZXRWZXJ0aWNhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgICAgICBzZXRIb3Jpem9udGFsU2Ny
b2xsYmFyTG9jayhmYWxzZSk7CisgICAgICAgIHNldFNjcm9sbGJhck1vZGVzKGhvcml6b25hbFNj
cm9sbGJhck1vZGUsIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSwgdHJ1ZSwgdHJ1ZSk7CisgICAgfQor
ICAgIC8vIEFsbCB0aGUgcmVzaXppbmcgYWJvdmUgbWF5IGhhdmUgaW52YWxpZGF0ZWQgc3R5bGUg
KGZvciBleGFtcGxlIGlmIHZpZXdwb3J0IHVuaXRzIGFyZSBiZWluZyB1c2VkKS4KKworICAgIGRv
Y3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgLy8gRklYTUU6IFVzZSB0aGUgZmlu
YWwgbGF5b3V0J3MgcmVzdWx0IGFzIHRoZSBjb250ZW50IHNpemUgKHdlYmtpdC5vcmcvYi8xNzM1
NjEpLgorICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKKyAgICBtX2F1dG9TaXplQ29udGVudFNpemUgPSBjb250ZW50c1NpemUoKTsKKwogICAgIGlm
IChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmludHJpbnNpY0NvbnRlbnRzU2l6ZUNoYW5nZWQobV9hdXRvU2l6ZUNvbnRlbnRTaXpl
KTsKLSAgICBtX2RpZFJ1bkF1dG9zaXplID0gdHJ1ZTsKIH0KIAogdm9pZCBGcmFtZVZpZXc6OnNl
dEF1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0KGludCBmaXhlZE1pbmltdW1IZWlnaHQpCkBAIC00
NDYyLDExICs0NTY5LDIyIEBAIGJvb2wgRnJhbWVWaWV3Ojppc1ZpZXdGb3JEb2N1bWVudEluRnJh
bWUoKSBjb25zdAogfQogCiB2b2lkIEZyYW1lVmlldzo6ZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wg
ZW5hYmxlLCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSkKK3sKKyAgICBlbmFibGVBdXRvU2l6ZU1v
ZGUoZW5hYmxlLCB2aWV3U2l6ZSwgQXV0b1NpemVNb2RlOjpEZWZhdWx0KTsKK30KKwordm9pZCBG
cmFtZVZpZXc6OmVuYWJsZURlcHJlY2F0ZWRBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0
IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFibGUsIHZp
ZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkRlcHJlY2F0ZWQpOworfQorCit2b2lkIEZyYW1lVmlldzo6
ZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwg
QXV0b1NpemVNb2RlIG1vZGUpCiB7CiAgICAgQVNTRVJUKCFlbmFibGUgfHwgIXZpZXdTaXplLmlz
RW1wdHkoKSk7CiAgICAgaWYgKG1fc2hvdWxkQXV0b1NpemUgPT0gZW5hYmxlICYmIG1fYXV0b1Np
emVDb25zdHJhaW50ID09IHZpZXdTaXplKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX2F1dG9T
aXplTW9kZSA9IG1vZGU7CiAgICAgbV9zaG91bGRBdXRvU2l6ZSA9IGVuYWJsZTsKICAgICBtX2F1
dG9TaXplQ29uc3RyYWludCA9IHZpZXdTaXplOwogICAgIG1fYXV0b1NpemVDb250ZW50U2l6ZSA9
IGNvbnRlbnRzU2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKaW5kZXggYzIyZTRlNThjMTQ0
OGEyZGZjNjZmOTQ0MGI0MTcyZDc4MjI0ZTYzMC4uYzg1MWVmYjA0ZjgyM2FhZTBjZmQ2NjcwODky
NGNmODgxMzkzNDM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBAIC00MDAsOCArNDAwLDEw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGNoZWNrQW5kRGlzcGF0Y2hEaWRSZWFjaFZpc3VhbGx5Tm9u
RW1wdHlTdGF0ZSgpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVBdXRvU2l6ZU1v
ZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUpOworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZW5hYmxlRGVwcmVjYXRlZEF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3Qg
SW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdXRvU2l6ZUZp
eGVkTWluaW11bUhlaWdodChpbnQpOwotICAgIGJvb2wgaXNBdXRvU2l6ZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9CisgICAgYm9vbCBpc0F1dG9TaXplRW5hYmxl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQXV0b1NpemUgJiYgbV9hdXRvU2l6ZU1vZGUgPT0g
QXV0b1NpemVNb2RlOjpEZWZhdWx0OyB9CisgICAgYm9vbCBpc0RlcHJlY2F0ZWRBdXRvU2l6ZUVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplICYmIG1fYXV0b1NpemVNb2Rl
ID09IEF1dG9TaXplTW9kZTo6RGVwcmVjYXRlZDsgfQogICAgIEludFNpemUgYXV0b1NpemluZ0lu
dHJpbnNpY0NvbnRlbnRTaXplKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvU2l6ZUNvbnRlbnRTaXpl
OyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGZvcmNlTGF5b3V0KGJvb2wgYWxsb3dTdWJ0
cmVlTGF5b3V0ID0gZmFsc2UpOwpAQCAtNzA0LDcgKzcwNiwxMiBAQCBwcml2YXRlOgogICAgIHZv
aWQgZm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKTsKICAgICB2b2lkIGZsdXNoUG9zdExh
eW91dFRhc2tzUXVldWUoKTsKICAgICB2b2lkIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKKwor
ICAgIGVudW0gY2xhc3MgQXV0b1NpemVNb2RlIDogdWludDhfdCB7IERlZmF1bHQsIERlcHJlY2F0
ZWQgfTsKKyAgICB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50
U2l6ZSYgbWluU2l6ZSwgQXV0b1NpemVNb2RlKTsKICAgICB2b2lkIGF1dG9TaXplSWZFbmFibGVk
KCk7CisgICAgdm9pZCBwZXJmb3JtRGVmYXVsdEF1dG9TaXplKCk7CisgICAgdm9pZCBwZXJmb3Jt
RGVwcmVjYXRlZEF1dG9TaXplKCk7CiAKICAgICB2b2lkIGFwcGx5UmVjdXJzaXZlbHlXaXRoVmlz
aWJsZVJlY3QoY29uc3QgV1RGOjpGdW5jdGlvbjx2b2lkIChGcmFtZVZpZXcmIGZyYW1lVmlldywg
Y29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpPiYpOwogICAgIHZvaWQgcmVzdW1lVmlzaWJsZUlt
YWdlQW5pbWF0aW9ucyhjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVjdCk7CkBAIC05MzEsOCArOTM4
LDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0ZsaXBwZWRCbG9ja1JlbmRlcmVycyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3Rp
bmcgeyBmYWxzZSB9OwogCisgICAgQXV0b1NpemVNb2RlIG1fYXV0b1NpemVNb2RlIHsgQXV0b1Np
emVNb2RlOjpEZWZhdWx0IH07CiAgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUg
dGhlIGZyYW1lIHZpZXcgYXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9zaG91bGRBdXRv
U2l6ZSB7IGZhbHNlIH07CisgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUgdGhl
IGZyYW1lIHZpZXcgYXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9pbkF1dG9TaXplIHsg
ZmFsc2UgfTsKICAgICAvLyBUcnVlIGlmIGF1dG9zaXplIGhhcyBiZWVuIHJ1biBzaW5jZSBtX3No
b3VsZEF1dG9TaXplIHdhcyBzZXQuCiAgICAgYm9vbCBtX2RpZFJ1bkF1dG9zaXplIHsgZmFsc2Ug
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5jcHAKaW5kZXggNzI0YzE2ZTUwNDMzZGViYjI0MGQ5YmUxM2JlOWE1ZjA1NzliYWE0My4uYmMw
NjI4YzA5MWY5ZjljZGJmZTUzNThiZjVlZmRjNmMzMGViNTlmNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY3LDYgKzY3
LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dzsKICAgICBlbmNvZGVyIDw8IG1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZDsKICAgICBlbmNvZGVy
IDw8IG1pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBlbmNvZGVyIDw8IGRlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemU7CiAgICAgZW5jb2RlciA8PCBhdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0OwogICAgIGVuY29kZXIgPDwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3Bv
cnRVbml0czsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsK
QEAgLTI0OCw2ICsyNDksOCBAQCBPcHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQpKQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCkpCiAg
ICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJh
bWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGU4YjlmYTg4NmNj
MzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLmRmNzQzOTU0Y2ZlMjAwYTM2ZmYxYWRhNDYw
ZDY5MzY4YjI5MWMzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxz
ZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOwogICAg
IGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBPcHRpb25hbDxX
ZWJDb3JlOjpJbnRTaXplPiB2aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgK
aW5kZXggMGYyMjZlYmM1ODNhNmVkODRmZTMxNDhmMzVmNjU0Y2VkNzhkYmVkNi4uYmUyZWRlNzll
YWQ1NTk4YzJiNDRhMWYyMmU5NzZiOTlkNjYxNjIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5oCkBAIC01OCw2ICs1OCw3IEBACiAr
ICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdzsKIAogQHByb3BlcnR5IChyZWFkd3JpdGUp
IE5TU2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CitAcHJvcGVydHkgKHJlYWR3cml0ZSkg
TlNTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CiBAcHJvcGVydHkgKHJlYWR3
cml0ZSkgQk9PTCBzaG91bGRDbGlwVG9WaXNpYmxlUmVjdDsKIEBwcm9wZXJ0eSAocmVhZHdyaXRl
KSBCT09MIHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ7CiBAcHJvcGVydHkg
KHJlYWRvbmx5LCBnZXR0ZXI9aXNVc2luZ1VJU2lkZUNvbXBvc2l0aW5nKSBCT09MIHVzaW5nVUlT
aWRlQ29tcG9zaXRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBiM2MwZDEyOTE5NTg1ODQ4MzhkNDFjYTZlMzI5
ZWEwMmE0MjcwY2ZlLi5hMzAwZWQyOTA2MjA4NjE5MjNjMGFmN2Q0ZTYzMzc5ZGVkZWY5Yjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKQEAgLTUwNiw2ICs1MDYsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRG
b3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1
dG9MYXlvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOwogCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVt
TGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMikpOworQHByb3BlcnR5IChu
b25hdG9taWMsIHNldHRlcj1fc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTopIENH
U2l6ZSBfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKIAogQHByb3BlcnR5IChub25h
dG9taWMsIHNldHRlcj1fc2V0QWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI6KSBCT09MIF9h
bHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEz
LjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzVmVydGlj
YWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KaW5kZXggZGRjNmZmZmEzMzBhODNjYjcyYmUxOTMwZmM3MjEwMTMzNDIwZDgyNi4u
MGFiNGZkYTRjODFlNjM5YjI0NmUzYzNlOWVhYmFkY2E2YzRiMTc4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTEyNjgsNiArMTI2OCwxNiBAQCAtICh2
b2lkKXNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dDooTlNTaXplKW1pbmltdW1TaXplRm9yQXV0
b0xheW91dAogICAgIF9kYXRhLT5faW1wbC0+c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KE5T
U2l6ZVRvQ0dTaXplKG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpOwogfQogCistIChOU1NpemUp
ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQoreworICAgIHJldHVybiBOU1NpemVGcm9t
Q0dTaXplKF9kYXRhLT5faW1wbC0+ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpKTsK
K30KKworLSAodm9pZClzZXREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOihOU1NpemUp
ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQoreworICAgIF9kYXRhLT5faW1wbC0+c2V0
RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShOU1NpemVUb0NHU2l6ZShkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKSk7Cit9CisKIC0gKEJPT0wpc2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0Rm9yQXV0b0xheW91dAogewogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnNob3VsZEV4
cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXggNzU4ZWUxMTEyYjQ5OTMwMGU1ZWE2
ZjVmYTcwMzQ5ZjRiNzVlNGEzZi4uYTBjY2U2Yzk1ZGFkOTA4NzhiZGZjNGVhZjQyNDFiYmNiZWE4
YmVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZp
ZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdN
YWMubW0KQEAgLTE0MDAsNiArMTQwMCwyMSBAQCAtICh2b2lkKV9zZXRNaW5pbXVtTGF5b3V0V2lk
dGg6KENHRmxvYXQpd2lkdGgKICAgICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFu
ZHNUb0ZpdCk7CiB9CiAKKy0gKENHU2l6ZSlfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZQoreworICAgIHJldHVybiBfcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7Cit9CisK
Ky0gKHZvaWQpX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU6KENHU2l6ZSlzaXpl
Cit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQgPSBzaXplLndpZHRoID4gMCAmJiBzaXplLmhlaWdo
dCA+IDA7CisKKyAgICBfcGFnZS0+c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShX
ZWJDb3JlOjpJbnRTaXplKHNpemUud2lkdGgsIHNpemUuaGVpZ2h0KSk7CisgICAgX3BhZ2UtPnNl
dE1haW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKKworICAgIF9pbXBsLT5zZXRD
bGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30KKwogLSAoQk9PTClfY2xpcHNUb1Zp
c2libGVSZWN0CiB7CiAgICAgcmV0dXJuIF9pbXBsLT5jbGlwc1RvVmlzaWJsZVJlY3QoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDc4ZTU0NjI3
M2ZjNzdhY2Y4MTM3ZTAzYTdiODJjNjIwZWY4MWZjMzcuLjE3MjUwN2EyZjAzOTBmN2UyOGZlZmE1
YWE3ZmNlM2NiODNlMTE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaApAQCAtMjI0LDYgKzIyNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWlu
aW11bVNpemVGb3JBdXRvTGF5b3V0KENHU2l6ZSk7CiAgICAgQ0dTaXplIG1pbmltdW1TaXplRm9y
QXV0b0xheW91dCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZShDR1NpemUpOworICAgIENHU2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRv
TGF5b3V0KGJvb2wpOwogICAgIGJvb2wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xh
eW91dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggZjlk
N2FiZTc0YzQyNmZiNDU0MjMwM2QxNWQzMjNmMGMyZjJhZDA1OS4uMzFiNTA4ZDc5YjA4ZmJhZGU4
NDY5ZjMxNmFjMDg1ZTQzNzQyOTIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MjYsNiArMTkyNiwyMSBAQCBDR1NpemUgV2ViVmlld0lt
cGw6Om1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+
bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldERl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoQ0dTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0
TWF4aW11bVNpemUpCit7CisgICAgYm9vbCBleHBhbmRzVG9GaXQgPSBkZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplLndpZHRoID4gMCAmJiBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplLmhlaWdodCA+IDA7CisKKyAgICBtX3BhZ2UtPnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXpl
KSk7CisgICAgbV9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7
CisKKyAgICBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30KKworQ0dTaXpl
IFdlYlZpZXdJbXBsOjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlLT5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCk7Cit9
CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9M
YXlvdXQoYm9vbCBzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KQogewogICAg
IG1fcGFnZS0+c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChzaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KTsKQEAgLTE5NDIsNiArMTk1Nyw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZSBpbnRyaW5zaWNDb250
ZW50U2l6ZSkKICAgICAvLyBzbyB3ZSBjYW4gcmVwb3J0IHRoYXQgdGhhdCBkaW1lbnNpb24gaXMg
ZmxleGlibGUuIElmIG5vdCwgd2UgbmVlZCB0byByZXBvcnQgb3VyIGludHJpbnNpYyB3aWR0aAog
ICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxsIGtub3cgdG8gcHJvdmlkZSBzcGFjZSBmb3Ig
dXMuCiAKKyAgICAvLyBGSVhNRTogd2hhdCB0byBkbyBoZXJlPwogICAgIENHU2l6ZSBpbnRyaW5z
aWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoID0gaW50cmluc2ljQ29udGVu
dFNpemU7CiAgICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9wYWdlLT5taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpKQogICAgICAgICBpbnRyaW5zaWNDb250ZW50
U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnRyaW5zaWNN
ZXRyaWM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXgg
YWRmNzRhMzFjODFjM2NjNGFlMTY0ZGZhMjJlMDUzZmRjOTkxNDljYy4uMDRhMWEyMWRkYWQ1NzRm
YjZmYzQzMTk4ZmIzM2M4YjkxZWU4YmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaApAQCAtODAsNiArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2
b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZs
b2F0UG9pbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMDM4ZmNmMDk4MjQ0ODhmMzU1OWU0YThlNmE3MzExNmZkZjk0MmZhMy4uMzgwZjM5ZDBkOTE4
Y2ExMGU1MjU2NWY2NmQ4MGM0ZmFhMjU1YWE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC03NjYwLDYgKzc2NjAsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYg
cHJvYwogICAgIHBhcmFtZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3Bl
bmRlZCA9IG1fbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11
bVNpemVGb3JBdXRvTGF5b3V0ID0gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFy
YW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID0gbV9kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplOwogICAgIHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCA9IG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAg
ICBwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSBtX3ZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgcGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVo
YXZpb3IgPSBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKQEAgLTgzMjksNiArODMzMCwyNSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IEludFNp
emUmIHNpemUpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnNldERlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9k
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisKKyAgICBp
ZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoc2l6ZSkp
OworICAgIG1fZHJhd2luZ0FyZWEtPmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRD
aGFuZ2UoKTsKKworI2lmIFVTRShBUFBLSVQpCisgICAgaWYgKG1fZGVwcmVjYXRlZEF1dG9MYXlv
dXRNYXhpbXVtU2l6ZS53aWR0aCgpIDw9IDApCisgICAgICAgIGRpZENoYW5nZUludHJpbnNpY0Nv
bnRlbnRTaXplKEludFNpemUoLTEsIC0xKSk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJv
eHk6OnNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBh
bmQpCiB7CiAgICAgaWYgKG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9PSBz
aG91bGRFeHBhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDBh
MTg3MzU5MzZhMDJjMjU0NjcyYzIyNjBjZDUyOGI3ZTVmYjJiNTcuLmI5MTI4YTc4Yzk3YTk4M2E0
YTFlMmU1MmRmNmZjNzllYzMyMjFhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCkBAIC0xMzQyLDYgKzEzNDIsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6SW50U2l6
ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1TaXpl
Rm9yQXV0b0xheW91dDsgfQogICAgIHZvaWQgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNv
bnN0IFdlYkNvcmU6OkludFNpemUmKTsKIAorICAgIFdlYkNvcmU6OkludFNpemUgZGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZTsgfQorICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisKICAgICBib29sIGF1dG9TaXppbmdT
aG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSBjb25zdCB7IHJldHVybiBtX2F1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHQoYm9vbCk7CiAKQEAgLTI1OTEsNiArMjU5NCw4IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0IHsgZmFsc2UgfTsKICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6Oklu
dFNpemUgbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8
V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAg
ICAgLy8gVmlzdWFsIHZpZXdwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggOGMzYmRjY2IxY2UxNGRlYjk2ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uOWZkZTdkN2QyZWU0
NGRhNDhlYTUxMWI3NWMzNWZiN2E1NTI5ZGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdl
KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBi
YWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5n
U3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CkBAIC03MSw2
ICs3Miw5IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGxhc3QgbWluaW11bSBsYXlvdXQgc2l6ZSB3
ZSBzZW50IHRvIHRoZSB3ZWIgcHJvY2Vzcy4KICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNl
bnRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CiAKKyAgICAvLyBUaGUgbGFzdCBtYXhtaXVtIHNp
emUgZm9yIGRlcHJlY2F0ZWQgYXV0by1sYXlvdXQgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3Mu
CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZTsKKwogICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCA4MTAwNDdjZDQ5YzVkYmE1NzBlNTBmMGYwMzNm
MGQ1YzU0M2FlNzk3Li42NDllYWI3ZjlmODU1NzRiOWVkNWI1ZGFhNzFhOWZlM2EwNzBkNjA5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtOTAsNiArOTAsMTkgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjptaW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXREaWRDaGFuZ2UoKQogICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCit2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemVEaWRDaGFuZ2UoKQoreworICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugb25seSB3YW50IG9uZSBV
cGRhdGVHZW9tZXRyeSBtZXNzYWdlIGluIGZsaWdodCBhdCBvbmNlLCBzbyBpZiB3ZSd2ZSBhbHJl
YWR5IHNlbnQgb25lIGJ1dAorICAgIC8vIGhhdmVuJ3QgeWV0IHJlY2VpdmVkIHRoZSByZXBseSB3
ZSdsbCBqdXN0IHJldHVybiBlYXJseSBoZXJlLgorICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVw
ZGF0ZUdlb21ldHJ5KQorICAgICAgICByZXR1cm47CisKKyAgICBzZW5kVXBkYXRlR2VvbWV0cnko
KTsKK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjplbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgbV93ZWJQYWdl
UHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsK
QEAgLTEwNywxMCArMTIwLDExIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkoKQogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2Vv
bWV0cnkgPSBmYWxzZTsKIAogICAgIEludFNpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0g
bV93ZWJQYWdlUHJveHkubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7CisgICAgSW50U2l6ZSBk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuZGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpOwogCiAgICAgLy8gSWYgdGhlIFdLVmlldyB3YXMgcmVz
aXplZCB3aGlsZSB3ZSB3ZXJlIHdhaXRpbmcgZm9yIGEgRGlkVXBkYXRlR2VvbWV0cnkgcmVwbHkg
ZnJvbSB0aGUgd2ViIHByb2Nlc3MsCiAgICAgLy8gd2UgbmVlZCB0byByZXNlbmQgdGhlIG5ldyBz
aXplIGhlcmUuCi0gICAgaWYgKG1fbGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50
TWluaW11bVNpemVGb3JBdXRvTGF5b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkKKyAg
ICBpZiAobV9sYXN0U2VudFNpemUgIT0gbV9zaXplIHx8IG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQgIT0gbWluaW11bVNpemVGb3JBdXRvTGF5b3V0IHx8IG1fbGFzdFNlbnREZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplICE9IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUpCiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0xMjMsNiArMTM3
LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlk
VXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAgbV9sYXN0U2Vu
dE1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmltdW1TaXplRm9y
QXV0b0xheW91dCgpOworICAgIG1fbGFzdFNlbnREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplID0gbV93ZWJQYWdlUHJveHkuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpOwog
ICAgIG1fbGFzdFNlbnRTaXplID0gbV9zaXplOwogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRl
R2VvbWV0cnkgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXgg
MzI3ZmZjNGY2ZGQ1NjM5MTk0MGViMGEwNzE0MzUwY2I4ZjIyZjJkZC4uNjJkZGY1NmY1NjYwMjRm
N2YzNGQ2YTAwMzc4MGEwMTc0NjAzNzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwCkBAIC0xNTEzLDYgKzE1MTMsMTQgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJh
bnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAgICAgICAgICB2aWV3LT5zZXRBdXRv
U2l6ZUZpeGVkTWluaW11bUhlaWdodCh3ZWJQYWdlLT5zaXplKCkuaGVpZ2h0KCkpOwogICAgIH0K
IAorICAgIEludFNpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHdlYlBhZ2Ut
PmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKTsKKyAgICBpZiAoZGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpICYmIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUuaGVpZ2h0KCkpIHsKKyAgICAgICAgdmlldy0+ZW5hYmxlRGVwcmVjYXRlZEF1dG9TaXpl
TW9kZSh0cnVlLCBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKKworICAgICAgICBp
ZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAg
ICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgp
LmhlaWdodCgpKTsKKyAgICB9CisKICAgICBpZiAoYXV0byB2aWV3cG9ydFNpemVGb3JWaWV3cG9y
dFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpKQogICAg
ICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNp
emVGb3JWaWV3cG9ydFVuaXRzKTsKICAgICB2aWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hv
dWxkRGlzYWJsZVNjcm9sbGluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IGY3NWVmNTJhMTNiNGFmYWE4ZTA5ZGM1MTNkNDI4ZDMxMjJlMWYw
MzYuLjllNTcxZWZmMWQxMzQwZTJmOWI0NDY4MmNiZGFiZjA3MTBlMDI3NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzMsNiArNjMzLDcg
QEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHVwZGF0ZUlzSW5XaW5kb3codHJ1ZSk7CiAK
ICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUocGFy
YW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKICAgICBzZXRBdXRvU2l6
aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodCk7CiAgICAgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0
cyhwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOwogICAgIApAQCAt
Nzk0LDYgKzc5NSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVpbml0aWFsaXplV2ViUGFnZShXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAgICB9CiAKICAgICBzZXRNaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOwor
ICAgIHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2FjdGl2aXR5U3RhdGUgIT0g
cGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rpdml0eVN0YXRlKHBhcmFt
ZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cywgVmVj
dG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY4NCw2ICs1Njg2LDIwIEBAIHZvaWQgV2ViUGFnZTo6
c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgY29y
ZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBz
aXplLndpZHRoKCksIHN0ZDo6bWF4KHNpemUuaGVpZ2h0KCksIDEpIH0pOwogfQogCit2b2lkIFdl
YlBhZ2U6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID09IHNp
emUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZSA9IHNpemU7CisgICAgaWYgKHNpemUud2lkdGgoKSA8PSAwIHx8IHNpemUuaGVpZ2h0KCkg
PD0gMCkgeworICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZURl
cHJlY2F0ZWRBdXRvU2l6ZU1vZGUoZmFsc2UsIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZURlcHJlY2F0ZWRB
dXRvU2l6ZU1vZGUodHJ1ZSwgc2l6ZSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0QXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAgICBpZiAo
bV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFuZCkKQEAg
LTY0MzEsMTAgKzY0NDcsMTAgQEAgdm9pZCBXZWJQYWdlOjpyZW1vdmVBbGxVc2VyQ29udGVudCgp
CiAKIHZvaWQgV2ViUGFnZTo6dXBkYXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZChjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewotICAgIGlmICghbWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KCkud2lkdGgoKSkKKyAgICBpZiAoIW1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndp
ZHRoKCkgJiYgIWRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS53aWR0aCgpICYmICFk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBBU1NFUlQobWFpbkZyYW1lVmlldygpKTsKLSAgICBBU1NFUlQobWFpbkZyYW1lVmll
dygpLT5pc0F1dG9TaXplRW5hYmxlZCgpKTsKKyAgICBBU1NFUlQobWFpbkZyYW1lVmlldygpLT5p
c0F1dG9TaXplRW5hYmxlZCgpIHx8IG1haW5GcmFtZVZpZXcoKS0+aXNEZXByZWNhdGVkQXV0b1Np
emVFbmFibGVkKCkpOwogICAgIEFTU0VSVCghbWFpbkZyYW1lVmlldygpLT5uZWVkc0xheW91dCgp
KTsKICAgICBpZiAobV9sYXN0U2VudEludHJpbnNpY0NvbnRlbnRTaXplID09IHNpemUpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA0MjYyNzAzN2E3ZTlmYmNlYzk0NmY3ZDM0M2FkY2I3MzIzMDM2ZTI0Li4wNGM5MzY2OTUy
NmE5ZmE3ODU5MjIwZDYwNWNmZGYzYTljM2M4MGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDY1LDYgKzEwNjUsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogICAgIFdlYkNvcmU6OkludFNpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3Qg
eyByZXR1cm4gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7IH0KIAorICAgIHZvaWQgc2V0RGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7Cisg
ICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29u
c3QgeyByZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOyB9CisKICAgICB2
b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBh
bmQpOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHsgcmV0
dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsgfQogCkBAIC0xOTA3LDYg
KzE5MTAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV90cmFja2Vk
TmV0d29ya1Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJzOwogCiAgICAgV2ViQ29yZTo6SW50U2l6
ZSBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fZGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50
U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAw
Zjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi4xZjg4ZWY2NzQ1MWYyN2M2
NDQyMjJhNDY1ZGQ2ZmNmMWQ2MTk3YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBH
ZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRo
ZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxl
cihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1pbmltdW1TaXpl
Rm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0RGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplIHNpemUpCiAgICAgU2V0QXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIAogICAgIFNl
dFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6
ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CmluZGV4IGIyYTZkM2RkMWRkZTQ0MGRmZjZjOGJiZTIxNjdjZjVhNzJlZjkwYzAuLmY5N2UyNDVj
ZmZkNTM3NjhmZGVmMWI3N2RiMjYzOWM0ODY4MzI3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTU4NCw3ICs1ODQsNyBAQCB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6
ZSwgYm9vbAogICAgIEludFNpemUgc2l6ZSA9IHZpZXdTaXplOwogICAgIEludFNpemUgY29udGVu
dFNpemUgPSBJbnRTaXplKC0xLCAtMSk7CiAKLSAgICBpZiAoIW1fd2ViUGFnZS5taW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IG1fd2ViUGFnZS5hdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0KCkpCisgICAgaWYgKCFtX3dlYlBhZ2UubWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmll
d0hlaWdodCgpIHx8ICghbV93ZWJQYWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUo
KS53aWR0aCgpICYmICFtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgp
LmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFt
ZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC01OTQsNyAr
NTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0
cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJ
Zk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQo
KS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcgJiYgKG1fd2ViUGFn
ZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dlYlBhZ2UuZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLndpZHRoKCkgJiYgbV93ZWJQYWdlLmRlcHJlY2F0
ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS5oZWlnaHQoKSkpKSB7CiAgICAgICAgIGNvbnRlbnRT
aXplID0gZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50cmluc2ljQ29udGVudFNpemUoKTsKICAgICAg
ICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394803</attachid>
            <date>2020-03-28 03:06:33 -0700</date>
            <delta_ts>2020-03-28 03:30:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200328110632.patch</filename>
            <type>text/plain</type>
            <size>36474</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uYWJjMzNlZDUyNWYyNTNmYzQzOWNjOWQ5NTAyNGJi
ZmJhZGQ5NjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAzLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU6XSBTUEkgYnV0IG1hcmtpbmcgc3BlY2lmaWNhbGx5IGFzIGRlcHJl
Y2F0ZWQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cGVyZm9ybURlZmF1bHRBdXRvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpl
bmFibGVEZXByZWNhdGVkQXV0b1NpemVNb2RlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorCiAyMDIwLTAzLTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIERlZmluZSBFTkFCTEVfV0hFRUxfRVZFTlRfTEFUQ0hJTkcgYW5kIHVzZSBpdCB0
byB3cmFwIHdoZWVsIGV2ZW50IGxhdGNoaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTA4MDc0NjZkYWYz
MjUxNTc4NTBjMWRiZWQ0N2QyZGQxNDNkNThjYi4uMmU2Yjk5YTg5N2YzZWE5ODkwYTNkMjUzYjVi
NWU3ZjRiMDhkMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMC0wMy0yOCAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5nXSBC
cmluZyBiYWNrIHRoZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29kZXBh
dGggZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDEx
MTA4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjaGFuZ2VkIHRoZSBhdXRvLXNpemluZyBjb2RlIGZvciB3ZWJraXQub3JnL2IvMTk2NzQzIGlu
IHIyNDQwOTgsIGJ1dCBzb21lIGNsaWVudHMgbmVlZCBpdCBhbmQgd2UgYnJpbmcgaXQgYmFjawor
ICAgICAgICB2aWEgYSBuZXcgZGVkaWNhdGVkIC1bV0tXZWJWaWV3IF9zZXREZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplOl0gU1BJIGJ1dCBtYXJraW5nIHNwZWNpZmljYWxseSBhcyBkZXBy
ZWNhdGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRT
aXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojpk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkp
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3
aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9j
ZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVX
ZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0RGVwcmVjYXRlZEF1dG9MYXlv
dXRNYXhpbXVtU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUludHJpbnNp
Y0NvbnRlbnRTaXplSWZOZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6CisKIDIwMjAtMDMtMjcgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIGNvbnRlbnQgcHJvY2Vz
c2VzIHNob3VsZCBub3QgYmUgYWJsZSB0byBhcmJpdHJhcmlseSByZXF1ZXN0IHBhc3RlYm9hcmQg
ZGF0YSBmcm9tIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NTJlZDQ4NjU4MTEzY2I1MzZlOGIyYTk4NzhlNTY1MGM4NzE4NGIzOS4uNDE0MDE1YWIwMGNjM2Vi
YzUwM2U1MjEwZGQ2ZjQ3ZmM5NDNjMDg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzQyMywxMSArMzQyMywzMyBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQo
KQogICAgIGlmICghZmlyc3RDaGlsZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTE9HKExheW91
dCwgIkZyYW1lVmlldyAlcCBhdXRvU2l6ZUlmRW5hYmxlZCIsIHRoaXMpOwogICAgIFNldEZvclNj
b3BlPGJvb2w+IGNoYW5nZUluQXV0b1NpemUobV9pbkF1dG9TaXplLCB0cnVlKTsKICAgICBpZiAo
bGF5b3V0Q29udGV4dCgpLnN1YnRyZWVMYXlvdXRSb290KCkpCiAgICAgICAgIGxheW91dENvbnRl
eHQoKS5jb252ZXJ0U3VidHJlZUxheW91dFRvRnVsbExheW91dCgpOwogCisgICAgc3dpdGNoICht
X2F1dG9TaXplTW9kZSkgeworICAgIGNhc2UgQXV0b1NpemVNb2RlOjpEZXByZWNhdGVkOgorICAg
ICAgICBwZXJmb3JtRGVwcmVjYXRlZEF1dG9TaXplKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXV0b1NpemVNb2RlOjpEZWZhdWx0OgorICAgICAgICBwZXJmb3JtRGVmYXVsdEF1dG9TaXpl
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUo
KS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRl
bnRzU2l6ZUNoYW5nZWQobV9hdXRvU2l6ZUNvbnRlbnRTaXplKTsKKworICAgIG1fZGlkUnVuQXV0
b3NpemUgPSB0cnVlOworfQorCit2b2lkIEZyYW1lVmlldzo6cGVyZm9ybURlZmF1bHRBdXRvU2l6
ZSgpCit7CisgICAgTE9HKExheW91dCwgIkZyYW1lVmlldyAlcCBwZXJmb3JtRGVmYXVsdEF1dG9T
aXplIiwgdGhpcyk7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsK
KyAgICBhdXRvKiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKKyAgICBhdXRv
KiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOworCiAgICAgU2Nyb2xsYmFy
TW9kZSBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOwogICAgIFNj
cm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOwog
ICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC0zNDQyLDcgKzM0NjQsNyBA
QCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAgIFJlZjxGcmFtZVZpZXc+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwotICAgIC8vIFdoaWxlIHRoZSBmaW5hbCBjb250ZW50IHNpemUgY291bGQgc2xpZ2h0bHkgYmUg
ZGlmZmVyZW50IGFmdGVyIHRoZSBuZXh0IHJlc2l6ZS9sYXlvdXQgKHNlZSBiZWxvdyksIHdlIGlu
dGVudGlvbmFsbHkgc2F2ZSBhbmQgcmVwb3J0IAorICAgIC8vIFdoaWxlIHRoZSBmaW5hbCBjb250
ZW50IHNpemUgY291bGQgc2xpZ2h0bHkgYmUgZGlmZmVyZW50IGFmdGVyIHRoZSBuZXh0IHJlc2l6
ZS9sYXlvdXQgKHNlZSBiZWxvdyksIHdlIGludGVudGlvbmFsbHkgc2F2ZSBhbmQgcmVwb3J0CiAg
ICAgLy8gdGhlIGN1cnJlbnQgdmFsdWUgdG8gYXZvaWQgdW5zdGFibGUgbGF5b3V0IChlLmcuIGNv
bnRlbnQgImhlaWdodDogMTAwJSIpLgogICAgIC8vIFNlZSBhbHNvIHdlYmtpdC5vcmcvYi8xNzM1
NjEKICAgICBtX2F1dG9TaXplQ29udGVudFNpemUgPSBjb250ZW50c1NpemUoKTsKQEAgLTM0NTEs
OSArMzQ3Myw5MSBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAgIGF1
dG8gZmluYWxIZWlnaHQgPSBtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0ID8gc3RkOjptYXgo
bV9hdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCwgbV9hdXRvU2l6ZUNvbnRlbnRTaXplLmhlaWdo
dCgpKSA6IG1fYXV0b1NpemVDb250ZW50U2l6ZS5oZWlnaHQoKTsKICAgICByZXNpemUoZmluYWxX
aWR0aCwgZmluYWxIZWlnaHQpOwogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKLSAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lKCkucGFnZSgpKQot
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5pbnRyaW5zaWNDb250ZW50c1NpemVDaGFu
Z2VkKG1fYXV0b1NpemVDb250ZW50U2l6ZSk7Ci0gICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7
Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRGVwcmVjYXRlZEF1dG9TaXplKCkKK3sKKyAg
ICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUiLCB0
aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1
dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworCisgICAgSW50U2l6ZSBt
aW5BdXRvU2l6ZSgxLCAxKTsKKworICAgIC8vIFN0YXJ0IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBh
bmQgYWxsb3cgaXQgdG8gZ3Jvdy4KKyAgICByZXNpemUobWluQXV0b1NpemUud2lkdGgoKSwgbWlu
QXV0b1NpemUuaGVpZ2h0KCkpOworICAgIEludFNpemUgc2l6ZSA9IGZyYW1lUmVjdCgpLnNpemUo
KTsKKyAgICAvLyBEbyB0aGUgcmVzaXppbmcgdHdpY2UuIFRoZSBmaXJzdCB0aW1lIGlzIGJhc2lj
YWxseSBhIHJvdWdoIGNhbGN1bGF0aW9uIHVzaW5nIHRoZSBwcmVmZXJyZWQgd2lkdGgKKyAgICAv
LyB3aGljaCBtYXkgcmVzdWx0IGluIGEgaGVpZ2h0IGNoYW5nZSBkdXJpbmcgdGhlIHNlY29uZCBp
dGVyYXRpb24uCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgLy8g
VXBkYXRlIHZhcmlvdXMgc2l6ZXMgaW5jbHVkaW5nIGNvbnRlbnRzU2l6ZSwgc2Nyb2xsSGVpZ2h0
LCBldGMuCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICAgICAgaW50IHdpZHRoID0gcmVuZGVyVmlldy0+bWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoKCk7CisgICAgICAgIGludCBoZWlnaHQgPSByZW5kZXJWaWV3LT5kb2N1bWVudFJl
Y3QoKS5oZWlnaHQoKTsKKyAgICAgICAgSW50U2l6ZSBuZXdTaXplKHdpZHRoLCBoZWlnaHQpOwor
CisgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiBhIHNjcm9sbGJhciBpcyBuZWVkZWQgZm9yIGEg
Z2l2ZW4gZGltZW5zaW9uIGFuZAorICAgICAgICAvLyBpZiBzbywgaW5jcmVhc2UgdGhlIG90aGVy
IGRpbWVuc2lvbiB0byBhY2NvdW50IGZvciB0aGUgc2Nyb2xsYmFyLgorICAgICAgICAvLyBTaW5j
ZSB0aGUgZGltZW5zaW9ucyBhcmUgb25seSBmb3IgdGhlIHZpZXcgcmVjdGFuZ2xlLCBvbmNlIGEK
KyAgICAgICAgLy8gZGltZW5zaW9uIGV4Y2VlZHMgdGhlIG1heGltdW0sIHRoZXJlIGlzIG5vIG5l
ZWQgdG8gaW5jcmVhc2UgaXQgZnVydGhlci4KKyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+
IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3Jv
bGxiYXI+IGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIoKTsK
KyAgICAgICAgICAgIGlmICghbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICAgICAg
ICAgIGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9IGNyZWF0ZVNjcm9sbGJhcihIb3Jpem9udGFs
U2Nyb2xsYmFyKTsKKyAgICAgICAgICAgIG5ld1NpemUuZXhwYW5kKDAsIGxvY2FsSG9yaXpvbnRh
bFNjcm9sbGJhci0+b2NjdXBpZWRIZWlnaHQoKSk7CisKKyAgICAgICAgICAgIC8vIERvbid0IGJv
dGhlciBjaGVja2luZyBmb3IgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYmVjYXVzZSB0aGUgd2lkdGgg
aXMgYXQKKyAgICAgICAgICAgIC8vIGFscmVhZHkgZ3JlYXRlciB0aGUgbWF4aW11bS4KKyAgICAg
ICAgfSBlbHNlIGlmIChuZXdTaXplLmhlaWdodCgpID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3JvbGxiYXI+IGxvY2FsVmVydGljYWxTY3Jv
bGxiYXIgPSB2ZXJ0aWNhbFNjcm9sbGJhcigpOworICAgICAgICAgICAgaWYgKCFsb2NhbFZlcnRp
Y2FsU2Nyb2xsYmFyKQorICAgICAgICAgICAgICAgIGxvY2FsVmVydGljYWxTY3JvbGxiYXIgPSBj
cmVhdGVTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIpOworICAgICAgICAgICAgbmV3U2l6ZS5l
eHBhbmQobG9jYWxWZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpLCAwKTsKKworICAg
ICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNoZWNraW5nIGZvciBhIGhvcml6b250YWwgc2Nyb2xs
YmFyIGJlY2F1c2UgdGhlIGhlaWdodCBpcworICAgICAgICAgICAgLy8gYWxyZWFkeSBncmVhdGVy
IHRoZSBtYXhpbXVtLgorICAgICAgICB9CisKKyAgICAgICAgLy8gRW5zdXJlIHRoZSBzaXplIGlz
IGF0IGxlYXN0IHRoZSBtaW4gYm91bmRzLgorICAgICAgICBuZXdTaXplID0gbmV3U2l6ZS5leHBh
bmRlZFRvKG1pbkF1dG9TaXplKTsKKworICAgICAgICAvLyBCb3VuZCB0aGUgZGltZW5zaW9ucyBi
eSB0aGUgbWF4IGJvdW5kcyBhbmQgZGV0ZXJtaW5lIHdoYXQgc2Nyb2xsYmFycyB0byBzaG93Lgor
ICAgICAgICBTY3JvbGxiYXJNb2RlIGhvcml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJB
bHdheXNPZmY7CisgICAgICAgIGlmIChuZXdTaXplLndpZHRoKCkgPiBtX2F1dG9TaXplQ29uc3Ry
YWludC53aWR0aCgpKSB7CisgICAgICAgICAgICBuZXdTaXplLnNldFdpZHRoKG1fYXV0b1NpemVD
b25zdHJhaW50LndpZHRoKCkpOworICAgICAgICAgICAgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9
IFNjcm9sbGJhckFsd2F5c09uOworICAgICAgICB9CisgICAgICAgIFNjcm9sbGJhck1vZGUgdmVy
dGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOworICAgICAgICBpZiAobmV3
U2l6ZS5oZWlnaHQoKSA+IG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKSB7CisgICAgICAg
ICAgICBuZXdTaXplLnNldEhlaWdodChtX2F1dG9TaXplQ29uc3RyYWludC5oZWlnaHQoKSk7Cisg
ICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPbjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChuZXdTaXplID09IHNpemUpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAvLyBXaGlsZSBsb2FkaW5nIG9ubHkgYWxsb3cgdGhlIHNpemUgdG8g
aW5jcmVhc2UgKHRvIGF2b2lkIHR3aXRjaGluZyBkdXJpbmcgaW50ZXJtZWRpYXRlIHNtYWxsZXIg
c3RhdGVzKQorICAgICAgICAvLyB1bmxlc3MgYXV0b3Jlc2l6ZSBoYXMganVzdCBiZWVuIHR1cm5l
ZCBvbiBvciB0aGUgbWF4aW11bSBzaXplIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCBzaXpl
LgorICAgICAgICBpZiAobV9kaWRSdW5BdXRvc2l6ZSAmJiBzaXplLmhlaWdodCgpIDw9IG1fYXV0
b1NpemVDb25zdHJhaW50LmhlaWdodCgpICYmIHNpemUud2lkdGgoKSA8PSBtX2F1dG9TaXplQ29u
c3RyYWludC53aWR0aCgpCisgICAgICAgICAgICAmJiAhZnJhbWUoKS5sb2FkZXIoKS5pc0NvbXBs
ZXRlKCkgJiYgKG5ld1NpemUuaGVpZ2h0KCkgPCBzaXplLmhlaWdodCgpIHx8IG5ld1NpemUud2lk
dGgoKSA8IHNpemUud2lkdGgoKSkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBU
aGUgZmlyc3QgdGltZSBhcm91bmQsIHJlc2l6ZSB0byB0aGUgbWluaW11bSBoZWlnaHQgYWdhaW47
IG90aGVyd2lzZSwKKyAgICAgICAgLy8gb24gcGFnZXMgKGUuZy4gcXVpcmtzIG1vZGUpIHdoZXJl
IHRoZSBib2R5L2RvY3VtZW50IHJlc2l6ZSB0byB0aGUgdmlldyBzaXplLAorICAgICAgICAvLyB3
ZSdsbCBlbmQgdXAgbm90IHNocmlua2luZyBiYWNrIGRvd24gYWZ0ZXIgcmVzaXppbmcgdG8gdGhl
IGNvbXB1dGVkIHByZWZlcnJlZCB3aWR0aC4KKyAgICAgICAgcmVzaXplKG5ld1NpemUud2lkdGgo
KSwgaSA/IG5ld1NpemUuaGVpZ2h0KCkgOiBtaW5BdXRvU2l6ZS5oZWlnaHQoKSk7CisgICAgICAg
IC8vIEZvcmNlIHRoZSBzY3JvbGxiYXIgc3RhdGUgdG8gYXZvaWQgdGhlIHNjcm9sbGJhciBjb2Rl
IGFkZGluZyB0aGVtIGFuZCBjYXVzaW5nIHRoZW0gdG8gYmUgbmVlZGVkLiBGb3IgZXhhbXBsZSwK
KyAgICAgICAgLy8gYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgbWF5IGNhdXNlIHRleHQgdG8gd3JhcCBh
bmQgdGh1cyBpbmNyZWFzZSB0aGUgaGVpZ2h0ICh3aGljaCBpcyB0aGUgb25seSByZWFzb24gdGhl
IHNjb2xsYmFyIGlzIG5lZWRlZCkuCisgICAgICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhm
YWxzZSk7CisgICAgICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICAg
ICAgc2V0U2Nyb2xsYmFyTW9kZXMoaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSwgdmVydGljYWxTY3Jv
bGxiYXJNb2RlLCB0cnVlLCB0cnVlKTsKKyAgICB9CisgICAgLy8gQWxsIHRoZSByZXNpemluZyBh
Ym92ZSBtYXkgaGF2ZSBpbnZhbGlkYXRlZCBzdHlsZSAoZm9yIGV4YW1wbGUgaWYgdmlld3BvcnQg
dW5pdHMgYXJlIGJlaW5nIHVzZWQpLgorCisgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBmaW5hbCBsYXlvdXQncyByZXN1bHQgYXMgdGhl
IGNvbnRlbnQgc2l6ZSAod2Via2l0Lm9yZy9iLzE3MzU2MSkuCisgICAgZG9jdW1lbnQtPnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIG1fYXV0b1NpemVDb250ZW50
U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0QXV0b1NpemVG
aXhlZE1pbmltdW1IZWlnaHQoaW50IGZpeGVkTWluaW11bUhlaWdodCkKQEAgLTQ0NjYsMTEgKzQ1
NzAsMjIgQEAgYm9vbCBGcmFtZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFtZSgpIGNvbnN0
CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNv
bnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFibGUs
IHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkRlZmF1bHQpOworfQorCit2b2lkIEZyYW1lVmlldzo6
ZW5hYmxlRGVwcmVjYXRlZEF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYg
dmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2RlKGVuYWJsZSwgdmlld1NpemUsIEF1
dG9TaXplTW9kZTo6RGVwcmVjYXRlZCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRv
U2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBBdXRvU2l6ZU1v
ZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUuaXNFbXB0eSgpKTsK
ICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9hdXRvU2l6ZUNvbnN0cmFp
bnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fYXV0b1NpemVNb2RlID0g
bW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5hYmxlOwogICAgIG1fYXV0b1NpemVDb25z
dHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVudHNT
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMxNDQ4YTJkZmM2NmY5
NDQwYjQxNzJkNzgyMjRlNjMwLi4xZTJlYmQ2MGJkNmIwYTE3ODI1ODM0NTM1ZGRkM2Q3NGI4MWY2
M2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQwMCw4ICs0MDAsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgY2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRl
KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSk7CisgICAgdm9pZCBlbmFibGVEZXByZWNhdGVk
QXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtYXhTaXplKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0KGludCk7Ci0g
ICAgYm9vbCBpc0F1dG9TaXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQXV0b1Np
emU7IH0KKyAgICBib29sIGlzQXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1vZGU6OkRlZmF1bHQ7IH0K
KyAgICBib29sIGlzRGVwcmVjYXRlZEF1dG9TaXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkQXV0b1NpemUgJiYgbV9hdXRvU2l6ZU1vZGUgPT0gQXV0b1NpemVNb2RlOjpEZXByZWNh
dGVkOyB9CiAgICAgSW50U2l6ZSBhdXRvU2l6aW5nSW50cmluc2ljQ29udGVudFNpemUoKSBjb25z
dCB7IHJldHVybiBtX2F1dG9TaXplQ29udGVudFNpemU7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZm9yY2VMYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWVMYXlvdXQgPSBmYWxzZSk7CkBAIC03
MDQsNyArNzA2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb3JjZUxheW91dFBhcmVudFZpZXdJ
Zk5lZWRlZCgpOwogICAgIHZvaWQgZmx1c2hQb3N0TGF5b3V0VGFza3NRdWV1ZSgpOwogICAgIHZv
aWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOworCisgICAgZW51bSBjbGFzcyBBdXRvU2l6ZU1v
ZGUgOiB1aW50OF90IHsgRGVmYXVsdCwgRGVwcmVjYXRlZCB9OworICAgIHZvaWQgZW5hYmxlQXV0
b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5TaXplLCBBdXRvU2l6ZU1v
ZGUpOwogICAgIHZvaWQgYXV0b1NpemVJZkVuYWJsZWQoKTsKKyAgICB2b2lkIHBlcmZvcm1EZWZh
dWx0QXV0b1NpemUoKTsKKyAgICB2b2lkIHBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUoKTsKIAog
ICAgIHZvaWQgYXBwbHlSZWN1cnNpdmVseVdpdGhWaXNpYmxlUmVjdChjb25zdCBXVEY6OkZ1bmN0
aW9uPHZvaWQgKEZyYW1lVmlldyYgZnJhbWVWaWV3LCBjb25zdCBJbnRSZWN0JiB2aXNpYmxlUmVj
dCk+Jik7CiAgICAgdm9pZCByZXN1bWVWaXNpYmxlSW1hZ2VBbmltYXRpb25zKGNvbnN0IEludFJl
Y3QmIHZpc2libGVSZWN0KTsKQEAgLTkzMSw2ICs5MzgsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXNGbGlwcGVkQmxvY2tSZW5kZXJlcnMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zcGVjdWxh
dGl2ZVRpbGluZ0RlbGF5RGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2UgfTsKIAorICAgIEF1dG9T
aXplTW9kZSBtX2F1dG9TaXplTW9kZSB7IEF1dG9TaXplTW9kZTo6RGVmYXVsdCB9OwogICAgIC8v
IElmIHRydWUsIGF1dG9tYXRpY2FsbHkgcmVzaXplIHRoZSBmcmFtZSB2aWV3IGFyb3VuZCBpdHMg
Y29udGVudC4KICAgICBib29sIG1fc2hvdWxkQXV0b1NpemUgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pbkF1dG9TaXplIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzI0YzE2ZTUwNDMzZGViYjI0MGQ5YmUx
M2JlOWE1ZjA1NzliYWE0My4uYmMwNjI4YzA5MWY5ZjljZGJmZTUzNThiZjVlZmRjNmMzMGViNTlm
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5jcHAKQEAgLTY3LDYgKzY3LDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
OjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbWF5
U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBlbmNvZGVyIDw8IG1lZGlhUGxheWJhY2tJc1N1
c3BlbmRlZDsKICAgICBlbmNvZGVyIDw8IG1pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBl
bmNvZGVyIDw8IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7CiAgICAgZW5jb2RlciA8
PCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIGVuY29kZXIgPDwgdmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Ny
b2xsUGlubmluZ0JlaGF2aW9yKTsKQEAgLTI0OCw2ICsyNDksOCBAQCBPcHRpb25hbDxXZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUoSVBD
OjpEZWNvZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIGlmICghZGVjb2Rlci5k
ZWNvZGUocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5kZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9w
dDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cy5oCmluZGV4IGU4YjlmYTg4NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLmRmNzQz
OTU0Y2ZlMjAwYTM2ZmYxYWRhNDYwZDY5MzY4YjI5MWMzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBA
QCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXli
YWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodDsKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiB2aWV3cG9ydFNpemVGb3JDU1NW
aWV3cG9ydFVuaXRzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1ZpZXdQcml2YXRlLmgKaW5kZXggMGYyMjZlYmM1ODNhNmVkODRmZTMxNDhmMzVmNjU0
Y2VkNzhkYmVkNi4uYmUyZWRlNzllYWQ1NTk4YzJiNDRhMWYyMmU5NzZiOTlkNjYxNjIwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0ZS5o
CkBAIC01OCw2ICs1OCw3IEBACiArICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdzsKIAog
QHByb3BlcnR5IChyZWFkd3JpdGUpIE5TU2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CitA
cHJvcGVydHkgKHJlYWR3cml0ZSkgTlNTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNp
emU7CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQk9PTCBzaG91bGRDbGlwVG9WaXNpYmxlUmVjdDsK
IEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1
dG9MYXlvdXQ7CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBnZXR0ZXI9aXNVc2luZ1VJU2lkZUNvbXBv
c2l0aW5nKSBCT09MIHVzaW5nVUlTaWRlQ29tcG9zaXRpbmc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBmMmFjNjAx
ODYxNTBkZTYyZmZiZTQ5NzFiZjViZjJjMjNlNTg1MTY0Li5lYzNkMzExNGRhNTA0MWJmY2RmNzhk
MWNiNDZlNzllODBmOTU5NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTUwOCw2ICs1MDgsNyBAQCBmb3IgdGhp
cyBwcm9wZXJ0eS4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZEV4cGFu
ZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBfc2hvdWxkRXhwYW5kQ29u
dGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4x
MikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRNaW5pbXVtTGF5b3V0V2lk
dGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0V2lkdGggV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZTopIENHU2l6ZSBfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3YXlzU2hvd3NIb3Jpem9u
dGFsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c0hvcml6b250YWxTY3JvbGxlciBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcjopIEJPT0wgX2Fsd2F5c1Nob3dzVmVydGlj
YWxTY3JvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZGRjNmZmZmEzMzBhODNjYjcyYmUx
OTMwZmM3MjEwMTMzNDIwZDgyNi4uMGFiNGZkYTRjODFlNjM5YjI0NmUzYzNlOWVhYmFkY2E2YzRi
MTc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTEy
NjgsNiArMTI2OCwxNiBAQCAtICh2b2lkKXNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dDooTlNT
aXplKW1pbmltdW1TaXplRm9yQXV0b0xheW91dAogICAgIF9kYXRhLT5faW1wbC0+c2V0TWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KE5TU2l6ZVRvQ0dTaXplKG1pbmltdW1TaXplRm9yQXV0b0xheW91
dCkpOwogfQogCistIChOU1NpemUpZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQorewor
ICAgIHJldHVybiBOU1NpemVGcm9tQ0dTaXplKF9kYXRhLT5faW1wbC0+ZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZSgpKTsKK30KKworLSAodm9pZClzZXREZXByZWNhdGVkQXV0b0xheW91
dE1heGltdW1TaXplOihOU1NpemUpZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQorewor
ICAgIF9kYXRhLT5faW1wbC0+c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShOU1Np
emVUb0NHU2l6ZShkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKSk7Cit9CisKIC0gKEJP
T0wpc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dAogewogICAgIHJldHVybiBf
ZGF0YS0+X2ltcGwtPnNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KaW5kZXgg
NzU4ZWUxMTEyYjQ5OTMwMGU1ZWE2ZjVmYTcwMzQ5ZjRiNzVlNGEzZi4uYTBjY2U2Yzk1ZGFkOTA4
NzhiZGZjNGVhZjQyNDFiYmNiZWE4YmVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTE0MDAsNiArMTQwMCwyMSBAQCAtICh2b2lk
KV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KENHRmxvYXQpd2lkdGgKICAgICBfaW1wbC0+c2V0Q2xp
cHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7CiB9CiAKKy0gKENHU2l6ZSlfZGVwcmVjYXRl
ZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQoreworICAgIHJldHVybiBfcGFnZS0+bWluaW11bVNpemVG
b3JBdXRvTGF5b3V0KCk7Cit9CisKKy0gKHZvaWQpX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQgPSBzaXplLndp
ZHRoID4gMCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+c2V0RGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemUud2lkdGgsIHNpemUuaGVp
Z2h0KSk7CisgICAgX3BhZ2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0
KTsKKworICAgIF9pbXBsLT5zZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30K
KwogLSAoQk9PTClfY2xpcHNUb1Zpc2libGVSZWN0CiB7CiAgICAgcmV0dXJuIF9pbXBsLT5jbGlw
c1RvVmlzaWJsZVJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCmluZGV4IDc4ZTU0NjI3M2ZjNzdhY2Y4MTM3ZTAzYTdiODJjNjIwZWY4MWZjMzcuLjE3
MjUwN2EyZjAzOTBmN2UyOGZlZmE1YWE3ZmNlM2NiODNlMTE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjI0LDYgKzIyNCw4IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KENHU2l6ZSk7CiAgICAg
Q0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0OworICAgIHZvaWQgc2V0RGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShDR1NpemUpOworICAgIENHU2l6ZSBkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJvb2wgc2hvdWxkRXhwYW5k
VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW50cmluc2lj
Q29udGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZiODNkYTBmZTU2MjQxOGMx
ZS4uOTBjMTExODRhMmE1ZTM1MTQ2MDRmZmRiMDBiZTc5ZTZiM2Q1MWJkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MjYsNiArMTkyNiwy
MSBAQCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoQ0dTaXpl
IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpCit7CisgICAgYm9vbCBleHBhbmRzVG9G
aXQgPSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLndpZHRoID4gMCAmJiBkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplLmhlaWdodCA+IDA7CisKKyAgICBtX3BhZ2UtPnNldERl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9s
bGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhwYW5k
c1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpkZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5kZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplKCk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFu
ZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoYm9vbCBzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRG
b3JBdXRvTGF5b3V0KQogewogICAgIG1fcGFnZS0+c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodChzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KTsKQEAgLTE5
NDIsNiArMTk1Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXpl
KENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSkKICAgICAvLyBzbyB3ZSBjYW4gcmVwb3J0IHRo
YXQgdGhhdCBkaW1lbnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwgd2UgbmVlZCB0byByZXBvcnQg
b3VyIGludHJpbnNpYyB3aWR0aAogICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxsIGtub3cg
dG8gcHJvdmlkZSBzcGFjZSBmb3IgdXMuCiAKKyAgICAvLyBGSVhNRTogd2hhdCB0byBkbyBoZXJl
PwogICAgIENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdp
ZHRoID0gaW50cmluc2ljQ29udGVudFNpemU7CiAgICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXpl
LndpZHRoIDwgbV9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpKQogICAg
ICAgICBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRo
ID0gTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKaW5kZXggYWRmNzRhMzFjODFjM2NjNGFlMTY0ZGZhMjJlMDUzZmRjOTkx
NDljYy4uMDRhMWEyMWRkYWQ1NzRmYjZmYzQzMTk4ZmIzM2M4YjkxZWU4YmE4MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApAQCAtODAsNiArODAsNyBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sb3JTcGFjZURpZENoYW5nZSgpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZURpZENoYW5nZSgp
IHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91YmxlLCBXZWJD
b3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9v
bShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBkMjAzZDYzNjAzYjc3MmI4NjFiNTY4
ZmVjYTJmMy4uODIzZWEzZTdkNjBmNTM5NWY5MmY2MTgyN2M3YzE3NjUyOWEwY2NiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03Njg2LDYgKzc2ODYsNyBA
QCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25QYXJhbWV0
ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMubWF5U3RhcnRNZWRpYVdo
ZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBwYXJhbWV0ZXJz
Lm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFja0lzU3VzcGVuZGVkOwog
ICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0gbV9taW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplID0gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOwogICAgIHBhcmFtZXRlcnMu
YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9IG1fYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodDsKICAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMgPSBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHM7CiAgICAgcGFyYW1l
dGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsKQEAg
LTgzNTUsNiArODM1NiwyNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KGNvbnN0IEludFNpemUmIHNpemUpCiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdl
UHJveHk6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID09IHNp
emUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZSA9IHNpemU7CisKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldERlcHJlY2F0ZWRBdXRvTGF5
b3V0TWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1fZHJhd2luZ0FyZWEtPmRlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKTsKKworI2lmIFVTRShBUFBLSVQpCisgICAgaWYg
KG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpIDw9IDApCisgICAgICAg
IGRpZENoYW5nZUludHJpbnNpY0NvbnRlbnRTaXplKEludFNpemUoLTEsIC0xKSk7CisjZW5kaWYK
K30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdI
ZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiB7CiAgICAgaWYgKG1fYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodCA9PSBzaG91bGRFeHBhbmQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDY2ODg4MDEyYzMyOTlhMjY2ZTdlMWU1ODVjMDNiMGEyODVkYmZm
OGUuLmY0MjFlMTgxOThiMWYwYjE5MWFiMzBiZDY1ZmQ5MTJiNjA4ZTJlM2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzQ0LDYgKzEzNDQsOSBAQCBwdWJsaWM6
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdCB7
IHJldHVybiBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogICAgIHZvaWQgc2V0TWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKIAorICAgIFdlYkNv
cmU6OkludFNpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsgfQorICAgIHZvaWQgc2V0RGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisK
ICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKSBjb25zdCB7IHJl
dHVybiBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7IH0KICAgICB2b2lkIHNl
dEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCk7CiAKQEAgLTI2MDMsNiAr
MjYwNiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11bVNpemVGb3JBdXRvTGF5
b3V0OworICAgIFdlYkNvcmU6OkludFNpemUgbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplOworCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JD
U1NWaWV3cG9ydFVuaXRzOwogCiAgICAgLy8gVmlzdWFsIHZpZXdwb3J0cwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOGMzYmRjY2IxY2UxNGRlYjk2ZWY5NjU3MTkzMDRhMjI5
ZjU4MDQ5NC4uOWZkZTdkN2QyZWU0NGRhNDhlYTUxMWI3NWMzNWZiN2E1NTI5ZGRiZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xvclNwYWNlRGlk
Q2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRD
aGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNp
emVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVD
b250ZXh0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0
Jikgb3ZlcnJpZGU7CkBAIC03MSw2ICs3Miw5IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGxhc3Qg
bWluaW11bSBsYXlvdXQgc2l6ZSB3ZSBzZW50IHRvIHRoZSB3ZWIgcHJvY2Vzcy4KICAgICBXZWJD
b3JlOjpJbnRTaXplIG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CiAKKyAgICAv
LyBUaGUgbGFzdCBtYXhtaXVtIHNpemUgZm9yIGRlcHJlY2F0ZWQgYXV0by1sYXlvdXQgd2Ugc2Vu
dCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50RGVw
cmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKKwogICAgIENhbGxiYWNrTWFwIG1fY2FsbGJh
Y2tzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCA4MTAwNDdj
ZDQ5YzVkYmE1NzBlNTBmMGYwMzNmMGQ1YzU0M2FlNzk3Li42NDllYWI3ZjlmODU1NzRiOWVkNWI1
ZGFhNzFhOWZlM2EwNzBkNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpA
QCAtOTAsNiArOTAsMTkgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
OjptaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKQogICAgIHNlbmRVcGRhdGVHZW9t
ZXRyeSgpOwogfQogCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKQoreworICAgIGlmICghbV93
ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gV2Ugb25seSB3YW50IG9uZSBVcGRhdGVHZW9tZXRyeSBtZXNzYWdlIGluIGZsaWdodCBhdCBv
bmNlLCBzbyBpZiB3ZSd2ZSBhbHJlYWR5IHNlbnQgb25lIGJ1dAorICAgIC8vIGhhdmVuJ3QgeWV0
IHJlY2VpdmVkIHRoZSByZXBseSB3ZSdsbCBqdXN0IHJldHVybiBlYXJseSBoZXJlLgorICAgIGlm
IChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5KQorICAgICAgICByZXR1cm47CisKKyAg
ICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKK30KKwogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJh
Y2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRl
eHQpCiB7CiAgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShsYXllclRyZWVDb250ZXh0KTsKQEAgLTEwNywxMCArMTIwLDExIEBAIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkoKQogICAgIG1faXNX
YWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgPSBmYWxzZTsKIAogICAgIEludFNpemUgbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0ID0gbV93ZWJQYWdlUHJveHkubWluaW11bVNpemVGb3JBdXRvTGF5
b3V0KCk7CisgICAgSW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID0gbV93
ZWJQYWdlUHJveHkuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpOwogCiAgICAgLy8g
SWYgdGhlIFdLVmlldyB3YXMgcmVzaXplZCB3aGlsZSB3ZSB3ZXJlIHdhaXRpbmcgZm9yIGEgRGlk
VXBkYXRlR2VvbWV0cnkgcmVwbHkgZnJvbSB0aGUgd2ViIHByb2Nlc3MsCiAgICAgLy8gd2UgbmVl
ZCB0byByZXNlbmQgdGhlIG5ldyBzaXplIGhlcmUuCi0gICAgaWYgKG1fbGFzdFNlbnRTaXplICE9
IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5b3V0ICE9IG1pbmltdW1T
aXplRm9yQXV0b0xheW91dCkKKyAgICBpZiAobV9sYXN0U2VudFNpemUgIT0gbV9zaXplIHx8IG1f
bGFzdFNlbnRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgIT0gbWluaW11bVNpemVGb3JBdXRvTGF5
b3V0IHx8IG1fbGFzdFNlbnREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplICE9IGRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpCiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgp
OwogfQogCkBAIC0xMjMsNiArMTM3LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRy
eSgpCiB7CiAgICAgbV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFn
ZVByb3h5Lm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpOworICAgIG1fbGFzdFNlbnREZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZSgpOwogICAgIG1fbGFzdFNlbnRTaXplID0gbV9zaXplOwogICAgIG1f
aXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgPSB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKaW5kZXggMzI3ZmZjNGY2ZGQ1NjM5MTk0MGViMGEwNzE0MzUwY2I4ZjIy
ZjJkZC4uNjJkZGY1NmY1NjYwMjRmN2YzNGQ2YTAwMzc4MGEwMTc0NjAzNzc4YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTEzLDYgKzE1MTMsMTQgQEAgdm9pZCBXZWJG
cmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpCiAgICAg
ICAgICAgICB2aWV3LT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCh3ZWJQYWdlLT5zaXpl
KCkuaGVpZ2h0KCkpOwogICAgIH0KIAorICAgIEludFNpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZSA9IHdlYlBhZ2UtPmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKTsK
KyAgICBpZiAoZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgpICYmIGRlcHJl
Y2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUuaGVpZ2h0KCkpIHsKKyAgICAgICAgdmlldy0+ZW5h
YmxlRGVwcmVjYXRlZEF1dG9TaXplTW9kZSh0cnVlLCBkZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplKTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1I
ZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9CisKICAgICBpZiAoYXV0byB2
aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmlld3BvcnRTaXplRm9yQ1NT
Vmlld3BvcnRVbml0cygpKQogICAgICAgICB2aWV3LT5zZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsKICAgICB2aWV3LT5zZXRQ
cm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3NWVmNTJhMTNiNGFmYWE4
ZTA5ZGM1MTNkNDI4ZDMxMjJlMWYwMzYuLjllNTcxZWZmMWQxMzQwZTJmOWI0NDY4MmNiZGFiZjA3
MTBlMDI3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCkBAIC02MzMsNiArNjMzLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQYWdlSWRlbnRpZmllciBw
YWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQogICAgIHVwZGF0
ZUlzSW5XaW5kb3codHJ1ZSk7CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFy
YW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplKTsKICAgICBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHBhcmFtZXRl
cnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCk7CiAgICAgc2V0Vmlld3BvcnRT
aXplRm9yQ1NTVmlld3BvcnRVbml0cyhwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdw
b3J0VW5pdHMpOwogICAgIApAQCAtNzk0LDYgKzc5NSw3IEBAIHZvaWQgV2ViUGFnZTo6cmVpbml0
aWFsaXplV2ViUGFnZShXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKICAg
ICB9CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNp
emUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKTsKIAogICAgIGlm
IChtX2FjdGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBz
ZXRBY3Rpdml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNo
YW5nZUFzeW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY4NCw2ICs1Njg2
LDIwIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IElu
dFNpemUmIHNpemUpCiAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVB
dXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6bWF4KHNpemUuaGVpZ2h0KCks
IDEpIH0pOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisgICAgaWYgKHNpemUud2lkdGgoKSA8
PSAwIHx8IHNpemUuaGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJh
bWUoKS52aWV3KCktPmVuYWJsZURlcHJlY2F0ZWRBdXRvU2l6ZU1vZGUoZmFsc2UsIHsgfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3
KCktPmVuYWJsZURlcHJlY2F0ZWRBdXRvU2l6ZU1vZGUodHJ1ZSwgc2l6ZSk7Cit9CisKIHZvaWQg
V2ViUGFnZTo6c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3Vs
ZEV4cGFuZCkKIHsKICAgICBpZiAobV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
ID09IHNob3VsZEV4cGFuZCkKQEAgLTY0MzEsMTAgKzY0NDcsMTAgQEAgdm9pZCBXZWJQYWdlOjpy
ZW1vdmVBbGxVc2VyQ29udGVudCgpCiAKIHZvaWQgV2ViUGFnZTo6dXBkYXRlSW50cmluc2ljQ29u
dGVudFNpemVJZk5lZWRlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQogewotICAgIGlm
ICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkKKyAgICBpZiAoIW1pbmltdW1T
aXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkgJiYgIWRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemUoKS53aWR0aCgpICYmICFkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkuaGVp
Z2h0KCkpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobWFpbkZyYW1lVmlldygpKTsKLSAg
ICBBU1NFUlQobWFpbkZyYW1lVmlldygpLT5pc0F1dG9TaXplRW5hYmxlZCgpKTsKKyAgICBBU1NF
UlQobWFpbkZyYW1lVmlldygpLT5pc0F1dG9TaXplRW5hYmxlZCgpIHx8IG1haW5GcmFtZVZpZXco
KS0+aXNEZXByZWNhdGVkQXV0b1NpemVFbmFibGVkKCkpOwogICAgIEFTU0VSVCghbWFpbkZyYW1l
VmlldygpLT5uZWVkc0xheW91dCgpKTsKICAgICBpZiAobV9sYXN0U2VudEludHJpbnNpY0NvbnRl
bnRTaXplID09IHNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MjYyNzAzN2E3ZTlmYmNlYzk0NmY3ZDM0M2FkY2I3
MzIzMDM2ZTI0Li4wNGM5MzY2OTUyNmE5ZmE3ODU5MjIwZDYwNWNmZGYzYTljM2M4MGUyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDY1LDYgKzEw
NjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNvcmU6OkludFNpemUgbWluaW11bVNpemVG
b3JBdXRvTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7
IH0KIAorICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBkZXByZWNhdGVkQXV0b0xh
eW91dE1heGltdW1TaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplOyB9CisKICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdI
ZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCgpIHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodDsgfQogCkBAIC0xOTA3LDYgKzE5MTAsNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8dW5z
aWduZWQgbG9uZz4gbV90cmFja2VkTmV0d29ya1Jlc291cmNlUmVxdWVzdElkZW50aWZpZXJzOwog
CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsKKyAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKICAgICBi
b29sIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAg
T3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVu
aXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbgppbmRleCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcy
MGJhLi4xZjg4ZWY2NzQ1MWYyN2M2NDQyMjJhNDY1ZGQ2ZmNmMWQ2MTk3YzJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
QEAgLTQ2MSw2ICs0NjEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06
dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5
c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikK
IAogICAgIFNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUp
CisgICAgU2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXpl
IHNpemUpCiAgICAgU2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNo
b3VsZEV4cGFuZCkKIAogICAgIFNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMoT3B0
aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IGIyYTZkM2RkMWRkZTQ0MGRmZjZjOGJiZTIxNjdj
ZjVhNzJlZjkwYzAuLmY5N2UyNDVjZmZkNTM3NjhmZGVmMWI3N2RiMjYzOWM0ODY4MzI3YWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KQEAgLTU4NCw3ICs1ODQs
NyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShj
b25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAgIEludFNpemUgc2l6ZSA9IHZpZXdTaXpl
OwogICAgIEludFNpemUgY29udGVudFNpemUgPSBJbnRTaXplKC0xLCAtMSk7CiAKLSAgICBpZiAo
IW1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IG1fd2ViUGFn
ZS5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkpCisgICAgaWYgKCFtX3dlYlBh
Z2UubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHx8ICghbV93ZWJQYWdlLmRlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUoKS53aWR0aCgpICYmICFtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNp
emUoc2l6ZSk7CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJh
bWVWaWV3KCk7CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAog
ICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChm
cmFtZVZpZXcgJiYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgp
IHx8IChtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLndpZHRoKCkg
JiYgbV93ZWJQYWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS5oZWlnaHQoKSkp
KSB7CiAgICAgICAgIGNvbnRlbnRTaXplID0gZnJhbWVWaWV3LT5hdXRvU2l6aW5nSW50cmluc2lj
Q29udGVudFNpemUoKTsKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394809</attachid>
            <date>2020-03-28 03:30:14 -0700</date>
            <delta_ts>2020-03-29 10:59:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200328113012.patch</filename>
            <type>text/plain</type>
            <size>36489</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uYWJjMzNlZDUyNWYyNTNmYzQzOWNjOWQ5NTAyNGJi
ZmJhZGQ5NjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTAzLTI4ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU6XSBTUEkgYnV0IG1hcmtpbmcgc3BlY2lmaWNhbGx5IGFzIGRlcHJl
Y2F0ZWQuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmF1dG9TaXplSWZFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6cGVyZm9ybURlZmF1bHRBdXRvU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojpl
bmFibGVEZXByZWNhdGVkQXV0b1NpemVNb2RlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5o
OgorCiAyMDIwLTAzLTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIERlZmluZSBFTkFCTEVfV0hFRUxfRVZFTlRfTEFUQ0hJTkcgYW5kIHVzZSBpdCB0
byB3cmFwIHdoZWVsIGV2ZW50IGxhdGNoaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTA4MDc0NjZkYWYz
MjUxNTc4NTBjMWRiZWQ0N2QyZGQxNDNkNThjYi4uMmU2Yjk5YTg5N2YzZWE5ODkwYTNkMjUzYjVi
NWU3ZjRiMDhkMjU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAyMC0wMy0yOCAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5nXSBC
cmluZyBiYWNrIHRoZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29kZXBh
dGggZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDEx
MTA4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBX
ZSBjaGFuZ2VkIHRoZSBhdXRvLXNpemluZyBjb2RlIGZvciB3ZWJraXQub3JnL2IvMTk2NzQzIGlu
IHIyNDQwOTgsIGJ1dCBzb21lIGNsaWVudHMgbmVlZCBpdCBhbmQgd2UgYnJpbmcgaXQgYmFjawor
ICAgICAgICB2aWEgYSBuZXcgZGVkaWNhdGVkIC1bV0tXZWJWaWV3IF9zZXREZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplOl0gU1BJIGJ1dCBtYXJraW5nIHNwZWNpZmljYWxseSBhcyBkZXBy
ZWNhdGVkLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUgY29u
c3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjpkZWNvZGUp
OgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMu
bW06CisgICAgICAgICgtW1dLV2ViVmlldyBfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11
bVNpemU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplIGNv
bnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRT
aXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojpk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkp
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3
aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVM
b2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9j
ZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVX
ZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0RGVwcmVjYXRlZEF1dG9MYXlv
dXRNYXhpbXVtU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZUludHJpbnNp
Y0NvbnRlbnRTaXplSWZOZWVkZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6CisKIDIwMjAtMDMtMjcgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIGNvbnRlbnQgcHJvY2Vz
c2VzIHNob3VsZCBub3QgYmUgYWJsZSB0byBhcmJpdHJhcmlseSByZXF1ZXN0IHBhc3RlYm9hcmQg
ZGF0YSBmcm9tIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
NTJlZDQ4NjU4MTEzY2I1MzZlOGIyYTk4NzhlNTY1MGM4NzE4NGIzOS4uNDE0MDE1YWIwMGNjM2Vi
YzUwM2U1MjEwZGQ2ZjQ3ZmM5NDNjMDg3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtMzQyMywxMSArMzQyMywzMyBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQo
KQogICAgIGlmICghZmlyc3RDaGlsZCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTE9HKExheW91
dCwgIkZyYW1lVmlldyAlcCBhdXRvU2l6ZUlmRW5hYmxlZCIsIHRoaXMpOwogICAgIFNldEZvclNj
b3BlPGJvb2w+IGNoYW5nZUluQXV0b1NpemUobV9pbkF1dG9TaXplLCB0cnVlKTsKICAgICBpZiAo
bGF5b3V0Q29udGV4dCgpLnN1YnRyZWVMYXlvdXRSb290KCkpCiAgICAgICAgIGxheW91dENvbnRl
eHQoKS5jb252ZXJ0U3VidHJlZUxheW91dFRvRnVsbExheW91dCgpOwogCisgICAgc3dpdGNoICht
X2F1dG9TaXplTW9kZSkgeworICAgIGNhc2UgQXV0b1NpemVNb2RlOjpEZXByZWNhdGVkOgorICAg
ICAgICBwZXJmb3JtRGVwcmVjYXRlZEF1dG9TaXplKCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQXV0b1NpemVNb2RlOjpEZWZhdWx0OgorICAgICAgICBwZXJmb3JtRGVmYXVsdEF1dG9TaXpl
KCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUo
KS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRl
bnRzU2l6ZUNoYW5nZWQobV9hdXRvU2l6ZUNvbnRlbnRTaXplKTsKKworICAgIG1fZGlkUnVuQXV0
b3NpemUgPSB0cnVlOworfQorCit2b2lkIEZyYW1lVmlldzo6cGVyZm9ybURlZmF1bHRBdXRvU2l6
ZSgpCit7CisgICAgTE9HKExheW91dCwgIkZyYW1lVmlldyAlcCBwZXJmb3JtRGVmYXVsdEF1dG9T
aXplIiwgdGhpcyk7CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IGZyYW1lKCkuZG9jdW1lbnQoKTsK
KyAgICBhdXRvKiByZW5kZXJWaWV3ID0gZG9jdW1lbnQtPnJlbmRlclZpZXcoKTsKKyAgICBhdXRv
KiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOworCiAgICAgU2Nyb2xsYmFy
TW9kZSBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOwogICAgIFNj
cm9sbGJhck1vZGUgdmVydGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOwog
ICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhmYWxzZSk7CkBAIC0zNDQyLDcgKzM0NjQsNyBA
QCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAgIFJlZjxGcmFtZVZpZXc+
IHByb3RlY3RlZFRoaXMoKnRoaXMpOwogICAgIGRvY3VtZW50LT51cGRhdGVTdHlsZUlmTmVlZGVk
KCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwotICAgIC8vIFdoaWxlIHRoZSBmaW5hbCBjb250ZW50IHNpemUgY291bGQgc2xpZ2h0bHkgYmUg
ZGlmZmVyZW50IGFmdGVyIHRoZSBuZXh0IHJlc2l6ZS9sYXlvdXQgKHNlZSBiZWxvdyksIHdlIGlu
dGVudGlvbmFsbHkgc2F2ZSBhbmQgcmVwb3J0IAorICAgIC8vIFdoaWxlIHRoZSBmaW5hbCBjb250
ZW50IHNpemUgY291bGQgc2xpZ2h0bHkgYmUgZGlmZmVyZW50IGFmdGVyIHRoZSBuZXh0IHJlc2l6
ZS9sYXlvdXQgKHNlZSBiZWxvdyksIHdlIGludGVudGlvbmFsbHkgc2F2ZSBhbmQgcmVwb3J0CiAg
ICAgLy8gdGhlIGN1cnJlbnQgdmFsdWUgdG8gYXZvaWQgdW5zdGFibGUgbGF5b3V0IChlLmcuIGNv
bnRlbnQgImhlaWdodDogMTAwJSIpLgogICAgIC8vIFNlZSBhbHNvIHdlYmtpdC5vcmcvYi8xNzM1
NjEKICAgICBtX2F1dG9TaXplQ29udGVudFNpemUgPSBjb250ZW50c1NpemUoKTsKQEAgLTM0NTEs
OSArMzQ3Myw5MSBAQCB2b2lkIEZyYW1lVmlldzo6YXV0b1NpemVJZkVuYWJsZWQoKQogICAgIGF1
dG8gZmluYWxIZWlnaHQgPSBtX2F1dG9TaXplRml4ZWRNaW5pbXVtSGVpZ2h0ID8gc3RkOjptYXgo
bV9hdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodCwgbV9hdXRvU2l6ZUNvbnRlbnRTaXplLmhlaWdo
dCgpKSA6IG1fYXV0b1NpemVDb250ZW50U2l6ZS5oZWlnaHQoKTsKICAgICByZXNpemUoZmluYWxX
aWR0aCwgZmluYWxIZWlnaHQpOwogICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKLSAgICBpZiAoYXV0byogcGFnZSA9IGZyYW1lKCkucGFnZSgpKQot
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5pbnRyaW5zaWNDb250ZW50c1NpemVDaGFu
Z2VkKG1fYXV0b1NpemVDb250ZW50U2l6ZSk7Ci0gICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7
Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRGVwcmVjYXRlZEF1dG9TaXplKCkKK3sKKyAg
ICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1EZXByZWNhdGVkQXV0b1NpemUiLCB0
aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1
dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworCisgICAgSW50U2l6ZSBt
aW5BdXRvU2l6ZSgxLCAxKTsKKworICAgIC8vIFN0YXJ0IGZyb20gdGhlIG1pbmltdW0gc2l6ZSBh
bmQgYWxsb3cgaXQgdG8gZ3Jvdy4KKyAgICByZXNpemUobWluQXV0b1NpemUud2lkdGgoKSwgbWlu
QXV0b1NpemUuaGVpZ2h0KCkpOworICAgIEludFNpemUgc2l6ZSA9IGZyYW1lUmVjdCgpLnNpemUo
KTsKKyAgICAvLyBEbyB0aGUgcmVzaXppbmcgdHdpY2UuIFRoZSBmaXJzdCB0aW1lIGlzIGJhc2lj
YWxseSBhIHJvdWdoIGNhbGN1bGF0aW9uIHVzaW5nIHRoZSBwcmVmZXJyZWQgd2lkdGgKKyAgICAv
LyB3aGljaCBtYXkgcmVzdWx0IGluIGEgaGVpZ2h0IGNoYW5nZSBkdXJpbmcgdGhlIHNlY29uZCBp
dGVyYXRpb24uCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCAyOyBpKyspIHsKKyAgICAgICAgLy8g
VXBkYXRlIHZhcmlvdXMgc2l6ZXMgaW5jbHVkaW5nIGNvbnRlbnRzU2l6ZSwgc2Nyb2xsSGVpZ2h0
LCBldGMuCisgICAgICAgIGRvY3VtZW50LT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICAgICAgaW50IHdpZHRoID0gcmVuZGVyVmlldy0+bWluUHJlZmVycmVkTG9n
aWNhbFdpZHRoKCk7CisgICAgICAgIGludCBoZWlnaHQgPSByZW5kZXJWaWV3LT5kb2N1bWVudFJl
Y3QoKS5oZWlnaHQoKTsKKyAgICAgICAgSW50U2l6ZSBuZXdTaXplKHdpZHRoLCBoZWlnaHQpOwor
CisgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiBhIHNjcm9sbGJhciBpcyBuZWVkZWQgZm9yIGEg
Z2l2ZW4gZGltZW5zaW9uIGFuZAorICAgICAgICAvLyBpZiBzbywgaW5jcmVhc2UgdGhlIG90aGVy
IGRpbWVuc2lvbiB0byBhY2NvdW50IGZvciB0aGUgc2Nyb2xsYmFyLgorICAgICAgICAvLyBTaW5j
ZSB0aGUgZGltZW5zaW9ucyBhcmUgb25seSBmb3IgdGhlIHZpZXcgcmVjdGFuZ2xlLCBvbmNlIGEK
KyAgICAgICAgLy8gZGltZW5zaW9uIGV4Y2VlZHMgdGhlIG1heGltdW0sIHRoZXJlIGlzIG5vIG5l
ZWQgdG8gaW5jcmVhc2UgaXQgZnVydGhlci4KKyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+
IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3Jv
bGxiYXI+IGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9IGhvcml6b250YWxTY3JvbGxiYXIoKTsK
KyAgICAgICAgICAgIGlmICghbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICAgICAg
ICAgIGxvY2FsSG9yaXpvbnRhbFNjcm9sbGJhciA9IGNyZWF0ZVNjcm9sbGJhcihIb3Jpem9udGFs
U2Nyb2xsYmFyKTsKKyAgICAgICAgICAgIG5ld1NpemUuZXhwYW5kKDAsIGxvY2FsSG9yaXpvbnRh
bFNjcm9sbGJhci0+b2NjdXBpZWRIZWlnaHQoKSk7CisKKyAgICAgICAgICAgIC8vIERvbid0IGJv
dGhlciBjaGVja2luZyBmb3IgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgYmVjYXVzZSB0aGUgd2lkdGgg
aXMgYXQKKyAgICAgICAgICAgIC8vIGFscmVhZHkgZ3JlYXRlciB0aGUgbWF4aW11bS4KKyAgICAg
ICAgfSBlbHNlIGlmIChuZXdTaXplLmhlaWdodCgpID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgIFJlZlB0cjxTY3JvbGxiYXI+IGxvY2FsVmVydGljYWxTY3Jv
bGxiYXIgPSB2ZXJ0aWNhbFNjcm9sbGJhcigpOworICAgICAgICAgICAgaWYgKCFsb2NhbFZlcnRp
Y2FsU2Nyb2xsYmFyKQorICAgICAgICAgICAgICAgIGxvY2FsVmVydGljYWxTY3JvbGxiYXIgPSBj
cmVhdGVTY3JvbGxiYXIoVmVydGljYWxTY3JvbGxiYXIpOworICAgICAgICAgICAgbmV3U2l6ZS5l
eHBhbmQobG9jYWxWZXJ0aWNhbFNjcm9sbGJhci0+b2NjdXBpZWRXaWR0aCgpLCAwKTsKKworICAg
ICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNoZWNraW5nIGZvciBhIGhvcml6b250YWwgc2Nyb2xs
YmFyIGJlY2F1c2UgdGhlIGhlaWdodCBpcworICAgICAgICAgICAgLy8gYWxyZWFkeSBncmVhdGVy
IHRoZSBtYXhpbXVtLgorICAgICAgICB9CisKKyAgICAgICAgLy8gRW5zdXJlIHRoZSBzaXplIGlz
IGF0IGxlYXN0IHRoZSBtaW4gYm91bmRzLgorICAgICAgICBuZXdTaXplID0gbmV3U2l6ZS5leHBh
bmRlZFRvKG1pbkF1dG9TaXplKTsKKworICAgICAgICAvLyBCb3VuZCB0aGUgZGltZW5zaW9ucyBi
eSB0aGUgbWF4IGJvdW5kcyBhbmQgZGV0ZXJtaW5lIHdoYXQgc2Nyb2xsYmFycyB0byBzaG93Lgor
ICAgICAgICBTY3JvbGxiYXJNb2RlIGhvcml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJB
bHdheXNPZmY7CisgICAgICAgIGlmIChuZXdTaXplLndpZHRoKCkgPiBtX2F1dG9TaXplQ29uc3Ry
YWludC53aWR0aCgpKSB7CisgICAgICAgICAgICBuZXdTaXplLnNldFdpZHRoKG1fYXV0b1NpemVD
b25zdHJhaW50LndpZHRoKCkpOworICAgICAgICAgICAgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9
IFNjcm9sbGJhckFsd2F5c09uOworICAgICAgICB9CisgICAgICAgIFNjcm9sbGJhck1vZGUgdmVy
dGljYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3YXlzT2ZmOworICAgICAgICBpZiAobmV3
U2l6ZS5oZWlnaHQoKSA+IG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKSB7CisgICAgICAg
ICAgICBuZXdTaXplLnNldEhlaWdodChtX2F1dG9TaXplQ29uc3RyYWludC5oZWlnaHQoKSk7Cisg
ICAgICAgICAgICB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPbjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmIChuZXdTaXplID09IHNpemUpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICAvLyBXaGlsZSBsb2FkaW5nIG9ubHkgYWxsb3cgdGhlIHNpemUgdG8g
aW5jcmVhc2UgKHRvIGF2b2lkIHR3aXRjaGluZyBkdXJpbmcgaW50ZXJtZWRpYXRlIHNtYWxsZXIg
c3RhdGVzKQorICAgICAgICAvLyB1bmxlc3MgYXV0b3Jlc2l6ZSBoYXMganVzdCBiZWVuIHR1cm5l
ZCBvbiBvciB0aGUgbWF4aW11bSBzaXplIGlzIHNtYWxsZXIgdGhhbiB0aGUgY3VycmVudCBzaXpl
LgorICAgICAgICBpZiAobV9kaWRSdW5BdXRvc2l6ZSAmJiBzaXplLmhlaWdodCgpIDw9IG1fYXV0
b1NpemVDb25zdHJhaW50LmhlaWdodCgpICYmIHNpemUud2lkdGgoKSA8PSBtX2F1dG9TaXplQ29u
c3RyYWludC53aWR0aCgpCisgICAgICAgICAgICAmJiAhZnJhbWUoKS5sb2FkZXIoKS5pc0NvbXBs
ZXRlKCkgJiYgKG5ld1NpemUuaGVpZ2h0KCkgPCBzaXplLmhlaWdodCgpIHx8IG5ld1NpemUud2lk
dGgoKSA8IHNpemUud2lkdGgoKSkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICAvLyBU
aGUgZmlyc3QgdGltZSBhcm91bmQsIHJlc2l6ZSB0byB0aGUgbWluaW11bSBoZWlnaHQgYWdhaW47
IG90aGVyd2lzZSwKKyAgICAgICAgLy8gb24gcGFnZXMgKGUuZy4gcXVpcmtzIG1vZGUpIHdoZXJl
IHRoZSBib2R5L2RvY3VtZW50IHJlc2l6ZSB0byB0aGUgdmlldyBzaXplLAorICAgICAgICAvLyB3
ZSdsbCBlbmQgdXAgbm90IHNocmlua2luZyBiYWNrIGRvd24gYWZ0ZXIgcmVzaXppbmcgdG8gdGhl
IGNvbXB1dGVkIHByZWZlcnJlZCB3aWR0aC4KKyAgICAgICAgcmVzaXplKG5ld1NpemUud2lkdGgo
KSwgaSA/IG5ld1NpemUuaGVpZ2h0KCkgOiBtaW5BdXRvU2l6ZS5oZWlnaHQoKSk7CisgICAgICAg
IC8vIEZvcmNlIHRoZSBzY3JvbGxiYXIgc3RhdGUgdG8gYXZvaWQgdGhlIHNjcm9sbGJhciBjb2Rl
IGFkZGluZyB0aGVtIGFuZCBjYXVzaW5nIHRoZW0gdG8gYmUgbmVlZGVkLiBGb3IgZXhhbXBsZSwK
KyAgICAgICAgLy8gYSB2ZXJ0aWNhbCBzY3JvbGxiYXIgbWF5IGNhdXNlIHRleHQgdG8gd3JhcCBh
bmQgdGh1cyBpbmNyZWFzZSB0aGUgaGVpZ2h0ICh3aGljaCBpcyB0aGUgb25seSByZWFzb24gdGhl
IHNjb2xsYmFyIGlzIG5lZWRlZCkuCisgICAgICAgIHNldFZlcnRpY2FsU2Nyb2xsYmFyTG9jayhm
YWxzZSk7CisgICAgICAgIHNldEhvcml6b250YWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICAg
ICAgc2V0U2Nyb2xsYmFyTW9kZXMoaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSwgdmVydGljYWxTY3Jv
bGxiYXJNb2RlLCB0cnVlLCB0cnVlKTsKKyAgICB9CisgICAgLy8gQWxsIHRoZSByZXNpemluZyBh
Ym92ZSBtYXkgaGF2ZSBpbnZhbGlkYXRlZCBzdHlsZSAoZm9yIGV4YW1wbGUgaWYgdmlld3BvcnQg
dW5pdHMgYXJlIGJlaW5nIHVzZWQpLgorCisgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKKyAgICAvLyBGSVhNRTogVXNlIHRoZSBmaW5hbCBsYXlvdXQncyByZXN1bHQgYXMgdGhl
IGNvbnRlbnQgc2l6ZSAod2Via2l0Lm9yZy9iLzE3MzU2MSkuCisgICAgZG9jdW1lbnQtPnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIG1fYXV0b1NpemVDb250ZW50
U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwogfQogCiB2b2lkIEZyYW1lVmlldzo6c2V0QXV0b1NpemVG
aXhlZE1pbmltdW1IZWlnaHQoaW50IGZpeGVkTWluaW11bUhlaWdodCkKQEAgLTQ0NjYsMTEgKzQ1
NzAsMjIgQEAgYm9vbCBGcmFtZVZpZXc6OmlzVmlld0ZvckRvY3VtZW50SW5GcmFtZSgpIGNvbnN0
CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNv
bnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFibGUs
IHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkRlZmF1bHQpOworfQorCit2b2lkIEZyYW1lVmlldzo6
ZW5hYmxlRGVwcmVjYXRlZEF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYg
dmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2RlKGVuYWJsZSwgdmlld1NpemUsIEF1
dG9TaXplTW9kZTo6RGVwcmVjYXRlZCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjplbmFibGVBdXRv
U2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBBdXRvU2l6ZU1v
ZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUuaXNFbXB0eSgpKTsK
ICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9hdXRvU2l6ZUNvbnN0cmFp
bnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fYXV0b1NpemVNb2RlID0g
bW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5hYmxlOwogICAgIG1fYXV0b1NpemVDb25z
dHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVudHNT
aXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMxNDQ4YTJkZmM2NmY5
NDQwYjQxNzJkNzgyMjRlNjMwLi5hYmE5ZjdmNWQxNzEzZWY5ODJhNGYwZmJmZWQ3MDI5MmVlZWYw
MGVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTQwMCw4ICs0MDAsMTAgQEAgcHVibGlj
OgogICAgIHZvaWQgY2hlY2tBbmREaXNwYXRjaERpZFJlYWNoVmlzdWFsbHlOb25FbXB0eVN0YXRl
KCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWluU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBl
bmFibGVEZXByZWNhdGVkQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBt
YXhTaXplKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEF1dG9TaXplRml4ZWRNaW5pbXVt
SGVpZ2h0KGludCk7Ci0gICAgYm9vbCBpc0F1dG9TaXplRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkQXV0b1NpemU7IH0KKyAgICBib29sIGlzQXV0b1NpemVFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1v
ZGU6OkRlZmF1bHQ7IH0KKyAgICBib29sIGlzRGVwcmVjYXRlZEF1dG9TaXplRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkQXV0b1NpemUgJiYgbV9hdXRvU2l6ZU1vZGUgPT0gQXV0b1Np
emVNb2RlOjpEZXByZWNhdGVkOyB9CiAgICAgSW50U2l6ZSBhdXRvU2l6aW5nSW50cmluc2ljQ29u
dGVudFNpemUoKSBjb25zdCB7IHJldHVybiBtX2F1dG9TaXplQ29udGVudFNpemU7IH0KIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZm9yY2VMYXlvdXQoYm9vbCBhbGxvd1N1YnRyZWVMYXlvdXQg
PSBmYWxzZSk7CkBAIC03MDQsNyArNzA2LDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb3JjZUxh
eW91dFBhcmVudFZpZXdJZk5lZWRlZCgpOwogICAgIHZvaWQgZmx1c2hQb3N0TGF5b3V0VGFza3NR
dWV1ZSgpOwogICAgIHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOworCisgICAgZW51bSBj
bGFzcyBBdXRvU2l6ZU1vZGUgOiB1aW50OF90IHsgRGVmYXVsdCwgRGVwcmVjYXRlZCB9OworICAg
IHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRTaXplJiBtaW5T
aXplLCBBdXRvU2l6ZU1vZGUpOwogICAgIHZvaWQgYXV0b1NpemVJZkVuYWJsZWQoKTsKKyAgICB2
b2lkIHBlcmZvcm1EZWZhdWx0QXV0b1NpemUoKTsKKyAgICB2b2lkIHBlcmZvcm1EZXByZWNhdGVk
QXV0b1NpemUoKTsKIAogICAgIHZvaWQgYXBwbHlSZWN1cnNpdmVseVdpdGhWaXNpYmxlUmVjdChj
b25zdCBXVEY6OkZ1bmN0aW9uPHZvaWQgKEZyYW1lVmlldyYgZnJhbWVWaWV3LCBjb25zdCBJbnRS
ZWN0JiB2aXNpYmxlUmVjdCk+Jik7CiAgICAgdm9pZCByZXN1bWVWaXNpYmxlSW1hZ2VBbmltYXRp
b25zKGNvbnN0IEludFJlY3QmIHZpc2libGVSZWN0KTsKQEAgLTkzMSw2ICs5MzgsNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9oYXNGbGlwcGVkQmxvY2tSZW5kZXJlcnMgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9zcGVjdWxhdGl2ZVRpbGluZ0RlbGF5RGlzYWJsZWRGb3JUZXN0aW5nIHsgZmFsc2Ug
fTsKIAorICAgIEF1dG9TaXplTW9kZSBtX2F1dG9TaXplTW9kZSB7IEF1dG9TaXplTW9kZTo6RGVm
YXVsdCB9OwogICAgIC8vIElmIHRydWUsIGF1dG9tYXRpY2FsbHkgcmVzaXplIHRoZSBmcmFtZSB2
aWV3IGFyb3VuZCBpdHMgY29udGVudC4KICAgICBib29sIG1fc2hvdWxkQXV0b1NpemUgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9pbkF1dG9TaXplIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKaW5kZXggNzI0YzE2ZTUw
NDMzZGViYjI0MGQ5YmUxM2JlOWE1ZjA1NzliYWE0My4uYmMwNjI4YzA5MWY5ZjljZGJmZTUzNThi
ZjVlZmRjNmMzMGViNTlmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKQEAgLTY3LDYgKzY3LDcgQEAgdm9pZCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAg
IGVuY29kZXIgPDwgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBlbmNvZGVyIDw8IG1l
ZGlhUGxheWJhY2tJc1N1c3BlbmRlZDsKICAgICBlbmNvZGVyIDw8IG1pbmltdW1TaXplRm9yQXV0
b0xheW91dDsKKyAgICBlbmNvZGVyIDw8IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU7
CiAgICAgZW5jb2RlciA8PCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAg
IGVuY29kZXIgPDwgdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAgICBlbmNvZGVy
LmVuY29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKQEAgLTI0OCw2ICsyNDksOCBAQCBP
cHRpb25hbDxXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzPiBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0
ZXJzOjpkZWNvZGUoSVBDOjpEZWNvZAogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQp
KQogICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUo
cGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKSkKKyAgICAgICAgcmV0
dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZv
ckNTU1ZpZXdwb3J0VW5pdHMpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGU4YjlmYTg4NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEy
OTQ1YjBlOTEuLmRmNzQzOTU0Y2ZlMjAwYTM2ZmYxYWRhNDYwZDY5MzY4YjI5MWMzNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAg
Ym9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBPcHRpb25hbDxXZWJDb3JlOjpJbnRTaXplPiB2aWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKaW5kZXggMGYyMjZlYmM1ODNhNmVk
ODRmZTMxNDhmMzVmNjU0Y2VkNzhkYmVkNi4uYmUyZWRlNzllYWQ1NTk4YzJiNDRhMWYyMmU5NzZi
OTlkNjYxNjIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tWaWV3UHJpdmF0ZS5oCkBAIC01OCw2ICs1OCw3IEBACiArICh2b2lkKWhpZGVXb3JkRGVmaW5p
dGlvbldpbmRvdzsKIAogQHByb3BlcnR5IChyZWFkd3JpdGUpIE5TU2l6ZSBtaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQ7CitAcHJvcGVydHkgKHJlYWR3cml0ZSkgTlNTaXplIGRlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemU7CiBAcHJvcGVydHkgKHJlYWR3cml0ZSkgQk9PTCBzaG91bGRDbGlw
VG9WaXNpYmxlUmVjdDsKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIHNob3VsZEV4cGFuZFRv
Vmlld0hlaWdodEZvckF1dG9MYXlvdXQ7CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBnZXR0ZXI9aXNV
c2luZ1VJU2lkZUNvbXBvc2l0aW5nKSBCT09MIHVzaW5nVUlTaWRlQ29tcG9zaXRpbmc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAppbmRleCBmMmFjNjAxODYxNTBkZTYyZmZiZTQ5NzFiZjViZjJjMjNlNTg1MTY0Li5lYzNkMzEx
NGRhNTA0MWJmY2RmNzhkMWNiNDZlNzllODBmOTU5NzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTUwOCw2ICs1
MDgsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFNob3VsZEV4cGFuZENvbnRlbnRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0OikgQk9PTCBf
c2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMikpOwogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRN
aW5pbXVtTGF5b3V0V2lkdGg6KSBDR0Zsb2F0IF9taW5pbXVtTGF5b3V0V2lkdGggV0tfQVBJX0FW
QUlMQUJMRShtYWNvcygxMC4xMikpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0
RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTopIENHU2l6ZSBfZGVwcmVjYXRlZEF1dG9M
YXlvdXRNYXhpbXVtU2l6ZTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QWx3
YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c0hvcml6b250YWxT
Y3JvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcjopIEJPT0wgX2Fs
d2F5c1Nob3dzVmVydGljYWxTY3JvbGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZGRjNmZm
ZmEzMzBhODNjYjcyYmUxOTMwZmM3MjEwMTMzNDIwZDgyNi4uMGFiNGZkYTRjODFlNjM5YjI0NmUz
YzNlOWVhYmFkY2E2YzRiMTc4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KQEAgLTEyNjgsNiArMTI2OCwxNiBAQCAtICh2b2lkKXNldE1pbmltdW1TaXplRm9y
QXV0b0xheW91dDooTlNTaXplKW1pbmltdW1TaXplRm9yQXV0b0xheW91dAogICAgIF9kYXRhLT5f
aW1wbC0+c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KE5TU2l6ZVRvQ0dTaXplKG1pbmltdW1T
aXplRm9yQXV0b0xheW91dCkpOwogfQogCistIChOU1NpemUpZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZQoreworICAgIHJldHVybiBOU1NpemVGcm9tQ0dTaXplKF9kYXRhLT5faW1wbC0+
ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpKTsKK30KKworLSAodm9pZClzZXREZXBy
ZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOihOU1NpemUpZGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZQoreworICAgIF9kYXRhLT5faW1wbC0+c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRN
YXhpbXVtU2l6ZShOU1NpemVUb0NHU2l6ZShkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXpl
KSk7Cit9CisKIC0gKEJPT0wpc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dAog
ewogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1
dG9MYXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMv
V0tXZWJWaWV3TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZp
ZXdNYWMubW0KaW5kZXggNzU4ZWUxMTEyYjQ5OTMwMGU1ZWE2ZjVmYTcwMzQ5ZjRiNzVlNGEzZi4u
YTBjY2U2Yzk1ZGFkOTA4NzhiZGZjNGVhZjQyNDFiYmNiZWE4YmVjMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1dlYlZpZXdNYWMubW0KQEAgLTE0MDAsNiArMTQw
MCwyMSBAQCAtICh2b2lkKV9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6KENHRmxvYXQpd2lkdGgKICAg
ICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7CiB9CiAKKy0gKENH
U2l6ZSlfZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZQoreworICAgIHJldHVybiBfcGFn
ZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7Cit9CisKKy0gKHZvaWQpX3NldERlcHJlY2F0
ZWRBdXRvTGF5b3V0TWF4aW11bVNpemU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRz
VG9GaXQgPSBzaXplLndpZHRoID4gMCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+
c2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemUu
d2lkdGgsIHNpemUuaGVpZ2h0KSk7CisgICAgX3BhZ2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJs
ZSghZXhwYW5kc1RvRml0KTsKKworICAgIF9pbXBsLT5zZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhw
YW5kc1RvRml0KTsKK30KKwogLSAoQk9PTClfY2xpcHNUb1Zpc2libGVSZWN0CiB7CiAgICAgcmV0
dXJuIF9pbXBsLT5jbGlwc1RvVmlzaWJsZVJlY3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDc4ZTU0NjI3M2ZjNzdhY2Y4MTM3ZTAzYTdiODJj
NjIwZWY4MWZjMzcuLjE3MjUwN2EyZjAzOTBmN2UyOGZlZmE1YWE3ZmNlM2NiODNlMTE5MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjI0LDYg
KzIyNCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0
KENHU2l6ZSk7CiAgICAgQ0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0Owor
ICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShDR1NpemUpOworICAg
IENHU2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJv
b2wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZv
aWQgc2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZi
ODNkYTBmZTU2MjQxOGMxZS4uOTBjMTExODRhMmE1ZTM1MTQ2MDRmZmRiMDBiZTc5ZTZiM2Q1MWJk
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTE5MjYsNiArMTkyNiwyMSBAQCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0
b0xheW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5
b3V0KCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4
aW11bVNpemUoQ0dTaXplIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpCit7CisgICAg
Ym9vbCBleHBhbmRzVG9GaXQgPSBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLndpZHRo
ID4gMCAmJiBkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplLmhlaWdodCA+IDA7CisKKyAg
ICBtX3BhZ2UtPnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoV2ViQ29yZTo6SW50
U2l6ZShkZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5zZXRN
YWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1RvVmlz
aWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpkZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLT5k
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6
OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoYm9vbCBzaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KQogewogICAgIG1fcGFnZS0+c2V0QXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRv
TGF5b3V0KTsKQEAgLTE5NDIsNiArMTk1Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEludHJp
bnNpY0NvbnRlbnRTaXplKENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSkKICAgICAvLyBzbyB3
ZSBjYW4gcmVwb3J0IHRoYXQgdGhhdCBkaW1lbnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwgd2Ug
bmVlZCB0byByZXBvcnQgb3VyIGludHJpbnNpYyB3aWR0aAogICAgIC8vIHNvIHRoYXQgYXV0b2xh
eW91dCB3aWxsIGtub3cgdG8gcHJvdmlkZSBzcGFjZSBmb3IgdXMuCiAKKyAgICAvLyBGSVhNRTog
d2hhdCB0byBkbyBoZXJlPwogICAgIENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xl
ZGdpbmdGbGV4aWJsZVdpZHRoID0gaW50cmluc2ljQ29udGVudFNpemU7CiAgICAgaWYgKGludHJp
bnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQo
KS53aWR0aCgpKQogICAgICAgICBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4
aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWM7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggYWRmNzRhMzFjODFjM2NjNGFlMTY0
ZGZhMjJlMDUzZmRjOTkxNDljYy4uMDRhMWEyMWRkYWQ1NzRmYjZmYzQzMTk4ZmIzM2M4YjkxZWU4
YmE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaApAQCAt
ODAsNiArODAsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sb3JTcGFjZURpZENo
YW5nZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRD
aGFuZ2UoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZURpZENoYW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpv
b20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29t
bWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBkMjAzZDYz
NjAzYjc3MmI4NjFiNTY4ZmVjYTJmMy4uODIzZWEzZTdkNjBmNTM5NWY5MmY2MTgyN2M3YzE3NjUy
OWEwY2NiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03
Njg2LDYgKzc2ODYsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6
Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMu
bWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsK
ICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFj
a0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0g
bV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplID0gbV9kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplOwog
ICAgIHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9IG1fYXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBwYXJhbWV0ZXJzLnZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMgPSBtX3ZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5p
dHM7CiAgICAgcGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Njcm9sbFBpbm5p
bmdCZWhhdmlvcjsKQEAgLTgzNTUsNiArODM1NiwyNSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IEludFNpemUmIHNpemUpCiAjZW5kaWYKIH0K
IAordm9pZCBXZWJQYWdlUHJveHk6OnNldERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9kZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGVwcmVjYXRlZEF1
dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisKKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNz
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlNldERl
cHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1fZHJhd2luZ0FyZWEt
PmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKTsKKworI2lmIFVTRShB
UFBLSVQpCisgICAgaWYgKG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53aWR0aCgp
IDw9IDApCisgICAgICAgIGRpZENoYW5nZUludHJpbnNpY0NvbnRlbnRTaXplKEludFNpemUoLTEs
IC0xKSk7CisjZW5kaWYKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnNldEF1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiB7CiAgICAgaWYgKG1fYXV0
b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCA9PSBzaG91bGRFeHBhbmQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDY2ODg4MDEyYzMyOTlhMjY2ZTdlMWU1
ODVjMDNiMGEyODVkYmZmOGUuLmY0MjFlMTgxOThiMWYwYjE5MWFiMzBiZDY1ZmQ5MTJiNjA4ZTJl
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzQ0LDYgKzEz
NDQsOSBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQoKSBjb25zdCB7IHJldHVybiBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogICAg
IHZvaWQgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KTsKIAorICAgIFdlYkNvcmU6OkludFNpemUgZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsgfQor
ICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJik7CisKICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQoKSBjb25zdCB7IHJldHVybiBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7
IH0KICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCk7
CiAKQEAgLTI2MDMsNiArMjYwNiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3N1cHByZXNzVmlz
aWJpbGl0eVVwZGF0ZXMgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9hdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0IHsgZmFsc2UgfTsKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6OkludFNpemUgbV9kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92
aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAgLy8gVmlzdWFsIHZpZXdwb3J0
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOGMzYmRjY2IxY2UxNGRlYjk2
ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uOWZkZTdkN2QyZWU0NGRhNDhlYTUxMWI3NWMzNWZiN2E1
NTI5ZGRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00Miw2ICs0Miw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBM
YXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CkBAIC03MSw2ICs3Miw5IEBAIHByaXZhdGU6CiAg
ICAgLy8gVGhlIGxhc3QgbWluaW11bSBsYXlvdXQgc2l6ZSB3ZSBzZW50IHRvIHRoZSB3ZWIgcHJv
Y2Vzcy4KICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQ7CiAKKyAgICAvLyBUaGUgbGFzdCBtYXhtaXVtIHNpemUgZm9yIGRlcHJlY2F0ZWQgYXV0
by1sYXlvdXQgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgV2ViQ29yZTo6SW50U2l6
ZSBtX2xhc3RTZW50RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZTsKKwogICAgIENhbGxi
YWNrTWFwIG1fY2FsbGJhY2tzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5t
bQppbmRleCA4MTAwNDdjZDQ5YzVkYmE1NzBlNTBmMGYwMzNmMGQ1YzU0M2FlNzk3Li42NDllYWI3
ZjlmODU1NzRiOWVkNWI1ZGFhNzFhOWZlM2EwNzBkNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eS5tbQpAQCAtOTAsNiArOTAsMTkgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5OjptaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKQogICAg
IHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHk6OmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemVEaWRDaGFuZ2UoKQor
eworICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gV2Ugb25seSB3YW50IG9uZSBVcGRhdGVHZW9tZXRyeSBtZXNzYWdl
IGluIGZsaWdodCBhdCBvbmNlLCBzbyBpZiB3ZSd2ZSBhbHJlYWR5IHNlbnQgb25lIGJ1dAorICAg
IC8vIGhhdmVuJ3QgeWV0IHJlY2VpdmVkIHRoZSByZXBseSB3ZSdsbCBqdXN0IHJldHVybiBlYXJs
eSBoZXJlLgorICAgIGlmIChtX2lzV2FpdGluZ0ZvckRpZFVwZGF0ZUdlb21ldHJ5KQorICAgICAg
ICByZXR1cm47CisKKyAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKK30KKwogdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQm
IGxheWVyVHJlZUNvbnRleHQpCiB7CiAgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKQEAgLTEwNywxMCArMTIwLDExIEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0
cnkoKQogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgPSBmYWxzZTsKIAogICAg
IEludFNpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0gbV93ZWJQYWdlUHJveHkubWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KCk7CisgICAgSW50U2l6ZSBkZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6
ZSgpOwogCiAgICAgLy8gSWYgdGhlIFdLVmlldyB3YXMgcmVzaXplZCB3aGlsZSB3ZSB3ZXJlIHdh
aXRpbmcgZm9yIGEgRGlkVXBkYXRlR2VvbWV0cnkgcmVwbHkgZnJvbSB0aGUgd2ViIHByb2Nlc3Ms
CiAgICAgLy8gd2UgbmVlZCB0byByZXNlbmQgdGhlIG5ldyBzaXplIGhlcmUuCi0gICAgaWYgKG1f
bGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5
b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkKKyAgICBpZiAobV9sYXN0U2VudFNpemUg
IT0gbV9zaXplIHx8IG1fbGFzdFNlbnRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgIT0gbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0IHx8IG1fbGFzdFNlbnREZXByZWNhdGVkQXV0b0xheW91dE1heGlt
dW1TaXplICE9IGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUpCiAgICAgICAgIHNlbmRV
cGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0xMjMsNiArMTM3LDcgQEAgdm9pZCBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShB
Y3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2lsbFNl
bmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAgbV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpOworICAgIG1f
bGFzdFNlbnREZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHku
ZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpOwogICAgIG1fbGFzdFNlbnRTaXplID0g
bV9zaXplOwogICAgIG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0cnkgPSB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzI3ZmZjNGY2ZGQ1NjM5MTk0MGVi
MGEwNzE0MzUwY2I4ZjIyZjJkZC4uNjJkZGY1NmY1NjYwMjRmN2YzNGQ2YTAwMzc4MGEwMTc0NjAz
Nzc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNTEzLDYgKzE1MTMs
MTQgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dHJhbnNpdGlvblRvQ29tbWl0dGVkRm9y
TmV3UGFnZSgpCiAgICAgICAgICAgICB2aWV3LT5zZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdo
dCh3ZWJQYWdlLT5zaXplKCkuaGVpZ2h0KCkpOwogICAgIH0KIAorICAgIEludFNpemUgZGVwcmVj
YXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHdlYlBhZ2UtPmRlcHJlY2F0ZWRBdXRvTGF5b3V0
TWF4aW11bVNpemUoKTsKKyAgICBpZiAoZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZS53
aWR0aCgpICYmIGRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUuaGVpZ2h0KCkpIHsKKyAg
ICAgICAgdmlldy0+ZW5hYmxlRGVwcmVjYXRlZEF1dG9TaXplTW9kZSh0cnVlLCBkZXByZWNhdGVk
QXV0b0xheW91dE1heGltdW1TaXplKTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0b1Np
emVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9CisK
ICAgICBpZiAoYXV0byB2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzID0gd2ViUGFnZS0+dmll
d3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cygpKQogICAgICAgICB2aWV3LT5zZXRWaWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKCp2aWV3cG9ydFNpemVGb3JWaWV3cG9ydFVuaXRzKTsK
ICAgICB2aWV3LT5zZXRQcm9oaWJpdHNTY3JvbGxpbmcoc2hvdWxkRGlzYWJsZVNjcm9sbGluZyk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3
NWVmNTJhMTNiNGFmYWE4ZTA5ZGM1MTNkNDI4ZDMxMjJlMWYwMzYuLjllNTcxZWZmMWQxMzQwZTJm
OWI0NDY4MmNiZGFiZjA3MTBlMDI3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC02MzMsNiArNjMzLDcgQEAgV2ViUGFnZTo6V2ViUGFnZShQ
YWdlSWRlbnRpZmllciBwYWdlSUQsIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0
ZXJzKQogICAgIHVwZGF0ZUlzSW5XaW5kb3codHJ1ZSk7CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQocGFyYW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNl
dERlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0
b0xheW91dE1heGltdW1TaXplKTsKICAgICBzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0KHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCk7CiAg
ICAgc2V0Vmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyhwYXJhbWV0ZXJzLnZpZXdwb3J0
U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpOwogICAgIApAQCAtNzk0LDYgKzc5NSw3IEBAIHZvaWQg
V2ViUGFnZTo6cmVpbml0aWFsaXplV2ViUGFnZShXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJiYg
cGFyYW1ldGVycykKICAgICB9CiAKICAgICBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQocGFy
YW1ldGVycy5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOworICAgIHNldERlcHJlY2F0ZWRBdXRv
TGF5b3V0TWF4aW11bVNpemUocGFyYW1ldGVycy5kZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1T
aXplKTsKIAogICAgIGlmIChtX2FjdGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0eVN0
YXRlKQogICAgICAgICBzZXRBY3Rpdml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSwg
QWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkpOwpA
QCAtNTY4NCw2ICs1Njg2LDIwIEBAIHZvaWQgV2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6bWF4
KHNpemUuaGVpZ2h0KCksIDEpIH0pOwogfQogCit2b2lkIFdlYlBhZ2U6OnNldERlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9k
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplID09IHNpemUpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSA9IHNpemU7CisgICAgaWYg
KHNpemUud2lkdGgoKSA8PSAwIHx8IHNpemUuaGVpZ2h0KCkgPD0gMCkgeworICAgICAgICBjb3Jl
UGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZURlcHJlY2F0ZWRBdXRvU2l6ZU1vZGUo
ZmFsc2UsIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjb3JlUGFnZSgpLT5t
YWluRnJhbWUoKS52aWV3KCktPmVuYWJsZURlcHJlY2F0ZWRBdXRvU2l6ZU1vZGUodHJ1ZSwgc2l6
ZSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAgICBpZiAobV9hdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFuZCkKQEAgLTY0MzEsMTAgKzY0NDcsMTAgQEAg
dm9pZCBXZWJQYWdlOjpyZW1vdmVBbGxVc2VyQ29udGVudCgpCiAKIHZvaWQgV2ViUGFnZTo6dXBk
YXRlSW50cmluc2ljQ29udGVudFNpemVJZk5lZWRlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
aXplKQogewotICAgIGlmICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkKKyAg
ICBpZiAoIW1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkgJiYgIWRlcHJlY2F0ZWRB
dXRvTGF5b3V0TWF4aW11bVNpemUoKS53aWR0aCgpICYmICFkZXByZWNhdGVkQXV0b0xheW91dE1h
eGltdW1TaXplKCkuaGVpZ2h0KCkpCiAgICAgICAgIHJldHVybjsKICAgICBBU1NFUlQobWFpbkZy
YW1lVmlldygpKTsKLSAgICBBU1NFUlQobWFpbkZyYW1lVmlldygpLT5pc0F1dG9TaXplRW5hYmxl
ZCgpKTsKKyAgICBBU1NFUlQobWFpbkZyYW1lVmlldygpLT5pc0F1dG9TaXplRW5hYmxlZCgpIHx8
IG1haW5GcmFtZVZpZXcoKS0+aXNEZXByZWNhdGVkQXV0b1NpemVFbmFibGVkKCkpOwogICAgIEFT
U0VSVCghbWFpbkZyYW1lVmlldygpLT5uZWVkc0xheW91dCgpKTsKICAgICBpZiAobV9sYXN0U2Vu
dEludHJpbnNpY0NvbnRlbnRTaXplID09IHNpemUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA0MjYyNzAzN2E3ZTlmYmNl
Yzk0NmY3ZDM0M2FkY2I3MzIzMDM2ZTI0Li4wNGM5MzY2OTUyNmE5ZmE3ODU5MjIwZDYwNWNmZGYz
YTljM2M4MGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CkBAIC0xMDY1LDYgKzEwNjUsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpOwogICAgIFdlYkNvcmU6OkludFNp
emUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9taW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQ7IH0KIAorICAgIHZvaWQgc2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBk
ZXByZWNhdGVkQXV0b0xheW91dE1heGltdW1TaXplKCkgY29uc3QgeyByZXR1cm4gbV9kZXByZWNh
dGVkQXV0b0xheW91dE1heGltdW1TaXplOyB9CisKICAgICB2b2lkIHNldEF1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpOwogICAgIGJvb2wgYXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodDsgfQogCkBAIC0xOTA3LDYgKzE5MTAsNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hTZXQ8dW5zaWduZWQgbG9uZz4gbV90cmFja2VkTmV0d29ya1Jlc291cmNlUmVxdWVz
dElkZW50aWZpZXJzOwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX21pbmltdW1TaXplRm9yQXV0
b0xheW91dDsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhp
bXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCB7
IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVG
b3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQz
MTMwMTUyZmJiZjYwOTcyMGJhLi4xZjg4ZWY2NzQ1MWYyN2M2NDQyMjJhNDY1ZGQ2ZmNmMWQ2MTk3
YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRp
bmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlw
ZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVy
dGljYWxTY3JvbGxlcikKIAogICAgIFNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChXZWJDb3Jl
OjpJbnRTaXplIHNpemUpCisgICAgU2V0RGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZShX
ZWJDb3JlOjpJbnRTaXplIHNpemUpCiAgICAgU2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmll
d0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIAogICAgIFNldFZpZXdwb3J0U2l6ZUZvckNTU1Zp
ZXdwb3J0VW5pdHMoT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCmluZGV4IGIyYTZkM2RkMWRkZTQ0
MGRmZjZjOGJiZTIxNjdjZjVhNzJlZjkwYzAuLmY5N2UyNDVjZmZkNTM3NjhmZGVmMWI3N2RiMjYz
OWM0ODY4MzI3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0K
QEAgLTU4NCw3ICs1ODQsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1
cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAgIEludFNpemUg
c2l6ZSA9IHZpZXdTaXplOwogICAgIEludFNpemUgY29udGVudFNpemUgPSBJbnRTaXplKC0xLCAt
MSk7CiAKLSAgICBpZiAoIW1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0
aCgpIHx8IG1fd2ViUGFnZS5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkpCisg
ICAgaWYgKCFtX3dlYlBhZ2UubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSB8fCBt
X3dlYlBhZ2UuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpIHx8ICghbV93ZWJQ
YWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNpemUoKS53aWR0aCgpICYmICFtX3dlYlBh
Z2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkKICAgICAgICAg
bV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1f
d2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmll
d1NpemUsIGJvb2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYg
KG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpICYmIGZyYW1lVmll
dykgeworICAgIGlmIChmcmFtZVZpZXcgJiYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQoKS53aWR0aCgpIHx8IChtX3dlYlBhZ2UuZGVwcmVjYXRlZEF1dG9MYXlvdXRNYXhpbXVt
U2l6ZSgpLndpZHRoKCkgJiYgbV93ZWJQYWdlLmRlcHJlY2F0ZWRBdXRvTGF5b3V0TWF4aW11bVNp
emUoKS5oZWlnaHQoKSkpKSB7CiAgICAgICAgIGNvbnRlbnRTaXplID0gZnJhbWVWaWV3LT5hdXRv
U2l6aW5nSW50cmluc2ljQ29udGVudFNpemUoKTsKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXpl
OwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394870</attachid>
            <date>2020-03-29 10:59:26 -0700</date>
            <delta_ts>2020-03-29 12:35:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200329195925.patch</filename>
            <type>text/plain</type>
            <size>40385</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uYjgzYjgzMDM5OGE0ZmI3NmRhM2FlYWU3NDFiOTZj
M2Y2MWNhYTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSB0d28gZXhjbHVzaXZlIGF1dG8tc2l6aW5nIG1vZGU6IGZpeGVkLXdpZHRoICh0
aGUgZXhpc3RpbmcgbW9kZSkgYW5kIHNpemUtdG8tY29udGVudCAodGhlIHJlc3VycmVjdGVkIG1v
ZGUpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1EZWZhdWx0QXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmVuYWJsZVNpemVUb0NvbnRlbnRBdXRvU2l6ZU1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZSk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMjAtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGVmaW5lIEVOQUJMRV9XSEVFTF9FVkVOVF9MQVRDSElORyBhbmQgdXNlIGl0IHRv
IHdyYXAgd2hlZWwgZXZlbnQgbGF0Y2hpbmcgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMDgwNzQ2NmRhZjMy
NTE1Nzg1MGMxZGJlZDQ3ZDJkZDE0M2Q1OGNiLi42MTYyNjc4NmI1M2JjZjc1MmZkNThlNThjMzM2
MjNiN2Y3MzIyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldFNpemVUb0NvbnRlbnRB
dXRvU2l6ZU1heGltdW1TaXplOl0gU1BJLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldFNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFNpemVU
b0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6
ZU1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1p
dHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFy
Yml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1MmVkNDg2NTgxMTNjYjUzNmU4YjJhOTg3OGU1
NjUwYzg3MTg0YjM5Li5lZGM4OWYzOThiNzhmYzFmZDEyZGFlYjJjZTFiZDVkNjljMjEzZWE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNDIzLDExICszNDIzLDMzIEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgaWYgKCFmaXJzdENoaWxkKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXplSWZF
bmFibGVkIiwgdGhpcyk7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZSht
X2luQXV0b1NpemUsIHRydWUpOwogICAgIGlmIChsYXlvdXRDb250ZXh0KCkuc3VidHJlZUxheW91
dFJvb3QoKSkKICAgICAgICAgbGF5b3V0Q29udGV4dCgpLmNvbnZlcnRTdWJ0cmVlTGF5b3V0VG9G
dWxsTGF5b3V0KCk7CiAKKyAgICBzd2l0Y2ggKG1fYXV0b1NpemVNb2RlKSB7CisgICAgY2FzZSBB
dXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRlbnQ6CisgICAgICAgIHBlcmZvcm1TaXplVG9Db250ZW50
QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkZpeGVk
V2lkdGg6CisgICAgICAgIHBlcmZvcm1EZWZhdWx0QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChtX2F1
dG9TaXplQ29udGVudFNpemUpOworCisgICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7Cit9CisK
K3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRGVmYXVsdEF1dG9TaXplKCkKK3sKKyAgICBMT0coTGF5
b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1EZWZhdWx0QXV0b1NpemUiLCB0aGlzKTsKKworICAg
IGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8qIHJlbmRlclZp
ZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSByZW5k
ZXJWaWV3LT5maXJzdENoaWxkKCk7CisKICAgICBTY3JvbGxiYXJNb2RlIGhvcml6b25hbFNjcm9s
bGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNh
bFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgc2V0VmVydGljYWxTY3Jv
bGxiYXJMb2NrKGZhbHNlKTsKQEAgLTM0NDIsNyArMzQ2NCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojph
dXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgUmVmPEZyYW1lVmlldz4gcHJvdGVjdGVkVGhpcygqdGhp
cyk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBkb2N1bWVudC0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgLy8gV2hpbGUgdGhl
IGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhl
IG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFu
ZCByZXBvcnQgCisgICAgLy8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGln
aHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93
KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCByZXBvcnQKICAgICAvLyB0aGUgY3VycmVudCB2
YWx1ZSB0byBhdm9pZCB1bnN0YWJsZSBsYXlvdXQgKGUuZy4gY29udGVudCAiaGVpZ2h0OiAxMDAl
IikuCiAgICAgLy8gU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE3MzU2MQogICAgIG1fYXV0b1NpemVD
b250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwpAQCAtMzQ1MSw5ICszNDczLDkxIEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgYXV0byBmaW5hbEhlaWdodCA9IG1f
YXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPyBzdGQ6Om1heChtX2F1dG9TaXplRml4ZWRNaW5p
bXVtSGVpZ2h0LCBtX2F1dG9TaXplQ29udGVudFNpemUuaGVpZ2h0KCkpIDogbV9hdXRvU2l6ZUNv
bnRlbnRTaXplLmhlaWdodCgpOwogICAgIHJlc2l6ZShmaW5hbFdpZHRoLCBmaW5hbEhlaWdodCk7
CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwot
ICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRlbnRzU2l6ZUNoYW5nZWQobV9hdXRvU2l6ZUNvbnRl
bnRTaXplKTsKLSAgICBtX2RpZFJ1bkF1dG9zaXplID0gdHJ1ZTsKK30KKwordm9pZCBGcmFtZVZp
ZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQoreworICAgIExPRyhMYXlvdXQsICJG
cmFtZVZpZXcgJXAgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSIsIHRoaXMpOworCisgICAg
YXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byogcmVuZGVyVmll
dyA9IGRvY3VtZW50LT5yZW5kZXJWaWV3KCk7CisKKyAgICBJbnRTaXplIG1pbkF1dG9TaXplKDEs
IDEpOworCisgICAgLy8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFuZCBhbGxvdyBpdCB0
byBncm93LgorICAgIHJlc2l6ZShtaW5BdXRvU2l6ZS53aWR0aCgpLCBtaW5BdXRvU2l6ZS5oZWln
aHQoKSk7CisgICAgSW50U2l6ZSBzaXplID0gZnJhbWVSZWN0KCkuc2l6ZSgpOworICAgIC8vIERv
IHRoZSByZXNpemluZyB0d2ljZS4gVGhlIGZpcnN0IHRpbWUgaXMgYmFzaWNhbGx5IGEgcm91Z2gg
Y2FsY3VsYXRpb24gdXNpbmcgdGhlIHByZWZlcnJlZCB3aWR0aAorICAgIC8vIHdoaWNoIG1heSBy
ZXN1bHQgaW4gYSBoZWlnaHQgY2hhbmdlIGR1cmluZyB0aGUgc2Vjb25kIGl0ZXJhdGlvbi4KKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAvLyBVcGRhdGUgdmFyaW91
cyBzaXplcyBpbmNsdWRpbmcgY29udGVudHNTaXplLCBzY3JvbGxIZWlnaHQsIGV0Yy4KKyAgICAg
ICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAg
ICAgICBpbnQgd2lkdGggPSByZW5kZXJWaWV3LT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsK
KyAgICAgICAgaW50IGhlaWdodCA9IHJlbmRlclZpZXctPmRvY3VtZW50UmVjdCgpLmhlaWdodCgp
OworICAgICAgICBJbnRTaXplIG5ld1NpemUod2lkdGgsIGhlaWdodCk7CisKKyAgICAgICAgLy8g
Q2hlY2sgdG8gc2VlIGlmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCBmb3IgYSBnaXZlbiBkaW1lbnNp
b24gYW5kCisgICAgICAgIC8vIGlmIHNvLCBpbmNyZWFzZSB0aGUgb3RoZXIgZGltZW5zaW9uIHRv
IGFjY291bnQgZm9yIHRoZSBzY3JvbGxiYXIuCisgICAgICAgIC8vIFNpbmNlIHRoZSBkaW1lbnNp
b25zIGFyZSBvbmx5IGZvciB0aGUgdmlldyByZWN0YW5nbGUsIG9uY2UgYQorICAgICAgICAvLyBk
aW1lbnNpb24gZXhjZWVkcyB0aGUgbWF4aW11bSwgdGhlcmUgaXMgbm8gbmVlZCB0byBpbmNyZWFz
ZSBpdCBmdXJ0aGVyLgorICAgICAgICBpZiAobmV3U2l6ZS53aWR0aCgpID4gbV9hdXRvU2l6ZUNv
bnN0cmFpbnQud2lkdGgoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxI
b3Jpem9udGFsU2Nyb2xsYmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpOworICAgICAgICAgICAg
aWYgKCFsb2NhbEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAgICAgbG9jYWxIb3Jp
em9udGFsU2Nyb2xsYmFyID0gY3JlYXRlU2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwor
ICAgICAgICAgICAgbmV3U2l6ZS5leHBhbmQoMCwgbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyLT5v
Y2N1cGllZEhlaWdodCgpKTsKKworICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNoZWNraW5n
IGZvciBhIHZlcnRpY2FsIHNjcm9sbGJhciBiZWNhdXNlIHRoZSB3aWR0aCBpcyBhdAorICAgICAg
ICAgICAgLy8gYWxyZWFkeSBncmVhdGVyIHRoZSBtYXhpbXVtLgorICAgICAgICB9IGVsc2UgaWYg
KG5ld1NpemUuaGVpZ2h0KCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC5oZWlnaHQoKSkgeworICAg
ICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IHZlcnRp
Y2FsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsVmVydGljYWxTY3JvbGxiYXIp
CisgICAgICAgICAgICAgICAgbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IGNyZWF0ZVNjcm9sbGJh
cihWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXplLmV4cGFuZChsb2NhbFZl
cnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOworCisgICAgICAgICAgICAvLyBE
b24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIgYmVjYXVzZSB0
aGUgaGVpZ2h0IGlzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIgdGhlIG1heGltdW0u
CisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgdGhlIHNpemUgaXMgYXQgbGVhc3QgdGhl
IG1pbiBib3VuZHMuCisgICAgICAgIG5ld1NpemUgPSBuZXdTaXplLmV4cGFuZGVkVG8obWluQXV0
b1NpemUpOworCisgICAgICAgIC8vIEJvdW5kIHRoZSBkaW1lbnNpb25zIGJ5IHRoZSBtYXggYm91
bmRzIGFuZCBkZXRlcm1pbmUgd2hhdCBzY3JvbGxiYXJzIHRvIHNob3cuCisgICAgICAgIFNjcm9s
bGJhck1vZGUgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09mZjsKKyAg
ICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkp
IHsKKyAgICAgICAgICAgIG5ld1NpemUuc2V0V2lkdGgobV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lk
dGgoKSk7CisgICAgICAgICAgICBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3
YXlzT247CisgICAgICAgIH0KKyAgICAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJh
ck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CisgICAgICAgIGlmIChuZXdTaXplLmhlaWdodCgp
ID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIG5ld1NpemUu
c2V0SGVpZ2h0KG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKTsKKyAgICAgICAgICAgIHZl
cnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09uOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKG5ld1NpemUgPT0gc2l6ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIFdoaWxlIGxvYWRpbmcgb25seSBhbGxvdyB0aGUgc2l6ZSB0byBpbmNyZWFzZSAodG8g
YXZvaWQgdHdpdGNoaW5nIGR1cmluZyBpbnRlcm1lZGlhdGUgc21hbGxlciBzdGF0ZXMpCisgICAg
ICAgIC8vIHVubGVzcyBhdXRvcmVzaXplIGhhcyBqdXN0IGJlZW4gdHVybmVkIG9uIG9yIHRoZSBt
YXhpbXVtIHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHNpemUuCisgICAgICAgIGlm
IChtX2RpZFJ1bkF1dG9zaXplICYmIHNpemUuaGVpZ2h0KCkgPD0gbV9hdXRvU2l6ZUNvbnN0cmFp
bnQuaGVpZ2h0KCkgJiYgc2l6ZS53aWR0aCgpIDw9IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRo
KCkKKyAgICAgICAgICAgICYmICFmcmFtZSgpLmxvYWRlcigpLmlzQ29tcGxldGUoKSAmJiAobmV3
U2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkgfHwgbmV3U2l6ZS53aWR0aCgpIDwgc2l6ZS53
aWR0aCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1l
IGFyb3VuZCwgcmVzaXplIHRvIHRoZSBtaW5pbXVtIGhlaWdodCBhZ2Fpbjsgb3RoZXJ3aXNlLAor
ICAgICAgICAvLyBvbiBwYWdlcyAoZS5nLiBxdWlya3MgbW9kZSkgd2hlcmUgdGhlIGJvZHkvZG9j
dW1lbnQgcmVzaXplIHRvIHRoZSB2aWV3IHNpemUsCisgICAgICAgIC8vIHdlJ2xsIGVuZCB1cCBu
b3Qgc2hyaW5raW5nIGJhY2sgZG93biBhZnRlciByZXNpemluZyB0byB0aGUgY29tcHV0ZWQgcHJl
ZmVycmVkIHdpZHRoLgorICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6
ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgpKTsKKyAgICAgICAgLy8gRm9yY2UgdGhl
IHNjcm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0g
YW5kIGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAorICAgICAgICAvLyBh
IHZlcnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3Jl
YXNlIHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMg
bmVlZGVkKS4KKyAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICAg
ICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgICAgICBzZXRTY3JvbGxi
YXJNb2Rlcyhob3Jpem9uYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUsIHRy
dWUsIHRydWUpOworICAgIH0KKyAgICAvLyBBbGwgdGhlIHJlc2l6aW5nIGFib3ZlIG1heSBoYXZl
IGludmFsaWRhdGVkIHN0eWxlIChmb3IgZXhhbXBsZSBpZiB2aWV3cG9ydCB1bml0cyBhcmUgYmVp
bmcgdXNlZCkuCisKKyAgICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIC8v
IEZJWE1FOiBVc2UgdGhlIGZpbmFsIGxheW91dCdzIHJlc3VsdCBhcyB0aGUgY29udGVudCBzaXpl
ICh3ZWJraXQub3JnL2IvMTczNTYxKS4KKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVu
dHNTaXplKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhl
aWdodChpbnQgZml4ZWRNaW5pbXVtSGVpZ2h0KQpAQCAtNDQ2NSwxMiArNDU2OSwyMyBAQCBib29s
IEZyYW1lVmlldzo6aXNWaWV3Rm9yRG9jdW1lbnRJbkZyYW1lKCkgY29uc3QKICAgICByZXR1cm4g
JnJlbmRlclZpZXctPmZyYW1lVmlldygpID09IHRoaXM7CiB9CiAKLXZvaWQgRnJhbWVWaWV3Ojpl
bmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQor
dm9pZCBGcmFtZVZpZXc6OmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUs
IGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFi
bGUsIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkZpeGVkV2lkdGgpOworfQorCit2b2lkIEZyYW1l
Vmlldzo6ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3Qg
SW50U2l6ZSYgdmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2RlKGVuYWJsZSwgdmll
d1NpemUsIEF1dG9TaXplTW9kZTo6U2l6ZVRvQ29udGVudCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3
OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXpl
LCBBdXRvU2l6ZU1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUu
aXNFbXB0eSgpKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9hdXRv
U2l6ZUNvbnN0cmFpbnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fYXV0
b1NpemVNb2RlID0gbW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5hYmxlOwogICAgIG1f
YXV0b1NpemVDb25zdHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXpl
ID0gY29udGVudHNTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMx
NDQ4YTJkZmM2NmY5NDQwYjQxNzJkNzgyMjRlNjMwLi44NDM2ODQ1MTIxMGNjYTNmYzAyOTA1YzM5
MDlkMmNmMmMyZjVlMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTM5OSw5ICszOTks
MTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5OyB9CiAgICAgdm9pZCBjaGVj
a0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRT
aXplJiBtaW5TaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUZpeGVkV2lkdGhB
dXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwotICAgIGJvb2wgaXNBdXRvU2l6ZUVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9CisgICAgYm9vbCBpc0Zp
eGVkV2lkdGhBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXpl
ICYmIG1fYXV0b1NpemVNb2RlID09IEF1dG9TaXplTW9kZTo6Rml4ZWRXaWR0aDsgfQorICAgIGJv
b2wgaXNTaXplVG9Db250ZW50QXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRl
bnQ7IH0KICAgICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmb3JjZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZhbHNlKTsKQEAgLTcw
NCw3ICs3MDYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlTGF5b3V0UGFyZW50Vmlld0lm
TmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVlKCk7CiAgICAgdm9p
ZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CisKKyAgICBlbnVtIGNsYXNzIEF1dG9TaXplTW9k
ZSA6IHVpbnQ4X3QgeyBGaXhlZFdpZHRoLCBTaXplVG9Db250ZW50IH07CisgICAgdm9pZCBlbmFi
bGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUsIEF1dG9T
aXplTW9kZSk7CiAgICAgdm9pZCBhdXRvU2l6ZUlmRW5hYmxlZCgpOworICAgIHZvaWQgcGVyZm9y
bURlZmF1bHRBdXRvU2l6ZSgpOworICAgIHZvaWQgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6
ZSgpOwogCiAgICAgdm9pZCBhcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2libGVSZWN0KGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZCAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIHZp
c2libGVSZWN0KT4mKTsKICAgICB2b2lkIHJlc3VtZVZpc2libGVJbWFnZUFuaW1hdGlvbnMoY29u
c3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwpAQCAtOTMxLDYgKzkzOCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2hhc0ZsaXBwZWRCbG9ja1JlbmRlcmVycyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogCisg
ICAgQXV0b1NpemVNb2RlIG1fYXV0b1NpemVNb2RlIHsgQXV0b1NpemVNb2RlOjpGaXhlZFdpZHRo
IH07CiAgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUgdGhlIGZyYW1lIHZpZXcg
YXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9zaG91bGRBdXRvU2l6ZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2luQXV0b1NpemUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFmZmI0MzY5YWI0ZWMzYTljMGJmZmMyOTgu
LmM4ZmJmNWY4NmRiODE4YjUwOTQ3YTY4NTk2NDdjN2MwOWFjNjhlZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2b2lkIEludGVybmFsczo6
cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgICAgICBwYWdlLnNldFRvcENv
bnRlbnRJbnNldCgwKTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0VXNlRml4ZWRMYXlvdXQo
ZmFsc2UpOwogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRGaXhlZExheW91dFNpemUoSW50U2l6
ZSgpKTsKLSAgICAgICAgbWFpbkZyYW1lVmlldy0+ZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCB7
IH0pOworICAgICAgICBtYWluRnJhbWVWaWV3LT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2Rl
KGZhbHNlLCB7IH0pOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICAgICAgbWFp
bkZyYW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdCgpKTsKICNlbmRp
ZgpAQCAtMzU4MiwxMiArMzU4MiwxMiBAQCB2b2lkIEludGVybmFsczo6cmVsb2FkRXhwaXJlZE9u
bHkoKQogICAgIGZyYW1lKCktPmxvYWRlcigpLnJlbG9hZChSZWxvYWRPcHRpb246OkV4cGlyZWRP
bmx5KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJs
ZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3ZvaWQgSW50ZXJuYWxzOjplbmFibGVGaXhlZFdp
ZHRoQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewog
ICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVu
dCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGRvY3VtZW50LT52
aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShlbmFibGVkLCB7IHdpZHRoLCBoZWlnaHQgfSk7Cisg
ICAgZG9jdW1lbnQtPnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShlbmFibGVk
LCB7IHdpZHRoLCBoZWlnaHQgfSk7CiB9CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUyMzUyMzQxZGI4YzE1ZDQy
OWY5Y2VmZDI4OWRmNTIyNzBlNWFjN2MuLjI3YjA4Yzk0OGQ0NzgwYmIwYWNhMzA2ZGExN2Y0MGZh
ZjUxZWE4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTM4LDcgKzUzOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wgZW5kVG9FbmQpOwogICAgIHZv
aWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJv
b2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGVuYWJsZUZpeGVk
V2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGVkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwog
CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBpbml0aWFsaXpl
TW9ja0NETSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDE2MmZhZjQ5
NDZlYWFkZDk4MGU1Nzg5YTE4YmJkZWM1NTgzZjYzMjMuLjA0NDY5MjA2MjFlZjQyMTJlMmM1OGE3
NmUxOGMxMTNmMDU2ZmU0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTU2NCw3ICs1NjQsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICB2b2lkIGZvcmNl
UmVsb2FkKGJvb2xlYW4gZW5kVG9FbmQpOwogICAgIHZvaWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsK
IAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2xlYW4gZW5hYmxlZCwgbG9uZyB3aWR0
aCwgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShi
b29sZWFuIGVuYWJsZWQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKIAogICAgIFtDb25kaXRp
b25hbD1WSURFT10gc2VxdWVuY2U8RE9NU3RyaW5nPiBtZWRpYVJlc3BvbnNlU291cmNlcyhIVE1M
TWVkaWFFbGVtZW50IG1lZGlhKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHNlcXVlbmNlPERP
TVN0cmluZz4gbWVkaWFSZXNwb25zZUNvbnRlbnRSYW5nZXMoSFRNTE1lZGlhRWxlbWVudCBtZWRp
YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDcyNGMxNmU1MDQzM2RlYmIyNDBkOWJlMTNiZTlhNWYwNTc5YmFhNDMuLmM2
YWVmNTFjY2Y5ZTQ5NzYxM2U3YmFmMTgwZTI1MzhkNmY3ODZmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02Nyw2ICs2
Nyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQ7CiAgICAgZW5jb2Rl
ciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgZW5jb2RlciA8PCBzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBlbmNvZGVyIDw8IGF1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxQaW5uaW5nQmVoYXZpb3Ip
OwpAQCAtMjQ4LDYgKzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1p
bmltdW1TaXplRm9yQXV0b0xheW91dCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1h
eGltdW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCkp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGU4YjlmYTg4
NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLjU4OGZhYzUwZmU5MGFiMjEwZWVlNjc5
OGY0NTk1ZGM2Y2U2MmRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBm
YWxzZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsK
ICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0
ZS5oCmluZGV4IDBmMjI2ZWJjNTgzYTZlZDg0ZmUzMTQ4ZjM1ZjY1NGNlZDc4ZGJlZDYuLmExYTcy
NjYyYmYyYzc2ZDBiNmFhMGY2Y2IzYzJhODA3MGY2ZDMwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtNTgsNiArNTgsNyBA
QAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3c7CiAKIEBwcm9wZXJ0eSAocmVhZHdy
aXRlKSBOU1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworQHByb3BlcnR5IChyZWFkd3Jp
dGUpIE5TU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKIEBwcm9wZXJ0eSAo
cmVhZHdyaXRlKSBCT09MIHNob3VsZENsaXBUb1Zpc2libGVSZWN0OwogQHByb3BlcnR5IChyZWFk
d3JpdGUpIEJPT0wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDsKIEBwcm9w
ZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcpIEJPT0wgdXNp
bmdVSVNpZGVDb21wb3NpdGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGYyYWM2MDE4NjE1MGRlNjJmZmJlNDk3
MWJmNWJmMmMyM2U1ODUxNjQuLjIwM2ViMzdjY2IxZGVkOWVkNWFkMDQ4N2EwNTRlNjkxM2FkNGIw
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaApAQCAtNTA4LDYgKzUwOCw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0
Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21p
bmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTopIENHU2l6ZSBfc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOikg
Qk9PTCBfYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRkYzZmZmZhMzMwYTgzY2I3MmJlMTkzMGZjNzIxMDEzMzQy
MGQ4MjYuLmI0Mjc1N2Y5NTY2MDMxYTYwZjA2ZWFkMmM1ZTEzOGQ5OGRkNWNhYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMjY4LDYgKzEyNjgsMTYg
QEAgLSAodm9pZClzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ6KE5TU2l6ZSltaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQKICAgICBfZGF0YS0+X2ltcGwtPnNldE1pbmltdW1TaXplRm9yQXV0b0xh
eW91dChOU1NpemVUb0NHU2l6ZShtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpKTsKIH0KIAorLSAo
TlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIE5T
U2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVt
U2l6ZSgpKTsKK30KKworLSAodm9pZClzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTooTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgX2RhdGEt
Pl9pbXBsLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShOU1NpemVUb0NHU2l6
ZShzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkpOworfQorCiAtIChCT09MKXNob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQKIHsKICAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT5zaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IDc1OGVlMTEx
MmI0OTkzMDBlNWVhNmY1ZmE3MDM0OWY0Yjc1ZTRhM2YuLmZiMjdhNmE0NDc2NDFmMmJmYWU2NDhj
MTYzYWE0MjM5YTI0MzdkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9t
YWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNDAwLDYgKzE0MDAsMjEgQEAgLSAodm9pZClfc2V0TWlu
aW11bUxheW91dFdpZHRoOihDR0Zsb2F0KXdpZHRoCiAgICAgX2ltcGwtPnNldENsaXBzVG9WaXNp
YmxlUmVjdChleHBhbmRzVG9GaXQpOwogfQogCistIChDR1NpemUpX3NpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIF9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQoKTsKK30KKworLSAodm9pZClfc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNp
emU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQgPSBzaXplLndpZHRoID4g
MCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+c2V0U2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCkp
OworICAgIF9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisK
KyAgICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7Cit9CisKIC0g
KEJPT0wpX2NsaXBzVG9WaXNpYmxlUmVjdAogewogICAgIHJldHVybiBfaW1wbC0+Y2xpcHNUb1Zp
c2libGVSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAppbmRleCA3OGU1NDYyNzNmYzc3YWNmODEzN2UwM2E3YjgyYzYyMGVmODFmYzM3Li5jYjdmYmY5
M2UzMDBjMTI2ZjgwZGE0NzRlOTZhMmUyYzliYjRkYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTIyNCw2ICsyMjQsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChDR1NpemUpOwogICAgIENHU2l6
ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdDsKKyAgICB2b2lkIHNldFNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSk7CisgICAgQ0dTaXplIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRFeHBhbmRU
b1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJvb2wgc2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW50cmluc2ljQ29u
dGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZiODNkYTBmZTU2MjQxOGMxZS4u
MThiNjI3YzhlNTA4MDg0ZGRjNDRkYjU4NTYwZmJlYWYzZTAwMTkwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MjYsNiArMTkyNiwyMSBA
QCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7CiB9CiAKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSBz
aXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkKK3sKKyAgICBib29sIGV4cGFuZHNUb0Zp
dCA9IHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRoID4gMCAmJiBzaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQgPiAwOworCisgICAgbV9wYWdlLT5zZXRT
aXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5zZXRNYWluRnJhbWVJc1Nj
cm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhw
YW5kc1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+c2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5zZXRBdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOwpA
QCAtMTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SW50cmluc2ljQ29udGVu
dFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQogICAgIC8vIHNvIHdlIGNhbiByZXBv
cnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90LCB3ZSBuZWVkIHRvIHJl
cG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwg
a25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAgIC8vIEZJWE1FOiB3aGF0IHRvIGRv
IGhlcmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhp
YmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBpZiAoaW50cmluc2ljQ29udGVu
dFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkp
CiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGgu
d2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4MWMzY2M0YWUxNjRkZmEyMmUwNTNm
ZGM5OTE0OWNjLi5kNTExOTI2NjQ5MGFjOWMzZjBlOWRjYjA5YjZiMTA1ZjQ1OTdhNzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04MCw2ICs4MCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91dERpZENoYW5nZSgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENo
YW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91Ymxl
LCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNp
ZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBkMjAzZDYzNjAzYjc3MmI4
NjFiNTY4ZmVjYTJmMy4uOTAyYzk4YWNkYzc3ZTQ3OWVhMGUxMzNmMjhlY2FmZTgwYWE3ZGVmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03Njg2LDYgKzc2
ODYsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMubWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBwYXJh
bWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0gbV9taW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSA9IG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CiAgICAgcGFy
YW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID0gbV9hdXRvU2l6aW5n
U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRlcnMudmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAg
ICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Nyb2xsUGlubmluZ0JlaGF2
aW9yOwpAQCAtODM1NSw2ICs4MzU2LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVt
U2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2l6ZVRv
Q29udGVudEF1dG9TaXplTWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1fZHJhd2luZ0FyZWEtPnNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCk7CisKKyNpZiBVU0UoQVBQ
S0lUKQorICAgIGlmIChtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRoKCkg
PD0gMCkKKyAgICAgICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNpemUoSW50U2l6ZSgtMSwg
LTEpKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAgICBpZiAobV9hdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFuZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjY4ODgwMTJjMzI5OWEyNjZlN2UxZTU4
NWMwM2IwYTI4NWRiZmY4ZS4uZTYxYjdmNDJkOTBhMTZjMmQ4NTVkZTIxY2U5YzJkNTRmZDkyYjJh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzNDQsNiArMTM0
NCw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OyB9CiAgICAg
dm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0K
KyAgICB2b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKKwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdo
dDsgfQogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29s
KTsKIApAQCAtMjYwMyw2ICsyNjA2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4g
bV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAgLy8gVmlzdWFsIHZpZXdw
b3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOGMzYmRjY2IxY2UxNGRl
Yjk2ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uODNjNzBjZmMxMTNmYTM3ZjRlM2VkYWYzODBjNjMw
NmQ5ZDY0YmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00Miw2ICs0
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpAQCAtNzEsNiArNzIsOSBAQCBwcml2YXRl
OgogICAgIC8vIFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ugc2VudCB0byB0aGUgd2Vi
IHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50TWluaW11bVNpemVGb3JB
dXRvTGF5b3V0OwogCisgICAgLy8gVGhlIGxhc3QgbWF4bWl1bSBzaXplIGZvciBzaXplLXRvLWNv
bnRlbnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CisK
ICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0OWM1ZGJhNTcwZTUwZjBmMDMzZjBkNWM1NDNhZTc5
Ny4uNzFlNDVhMjYxYjA0ZDUwMjk5ZWVlMzQwMDZmOTdkYzc5YjkwMmIyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTkwLDYgKzkwLDE5IEBAIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0RGlkQ2hh
bmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURp
ZENoYW5nZSgpCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2Vzcygp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBvbmx5IHdhbnQgb25lIFVwZGF0ZUdlb21l
dHJ5IG1lc3NhZ2UgaW4gZmxpZ2h0IGF0IG9uY2UsIHNvIGlmIHdlJ3ZlIGFscmVhZHkgc2VudCBv
bmUgYnV0CisgICAgLy8gaGF2ZW4ndCB5ZXQgcmVjZWl2ZWQgdGhlIHJlcGx5IHdlJ2xsIGp1c3Qg
cmV0dXJuIGVhcmx5IGhlcmUuCisgICAgaWYgKG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0
cnkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOworfQorCiB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5lbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwpAQCAtMTA3LDEw
ICsxMjAsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRV
cGRhdGVHZW9tZXRyeSgpCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSA9IGZh
bHNlOwogCiAgICAgSW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBtX3dlYlBhZ2VQ
cm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKKyAgICBJbnRTaXplIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuc2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hp
bGUgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhl
IHdlYiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJl
LgotICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1T
aXplRm9yQXV0b0xheW91dCAhPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpCisgICAgaWYgKG1f
bGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5
b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCB8fCBtX2xhc3RTZW50U2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUgIT0gc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUp
CiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0xMjMsNiArMTM3LDcgQEAg
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRl
QWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAgbV9sYXN0U2VudE1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpOworICAgIG1fbGFzdFNlbnRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9
IG1fd2ViUGFnZVByb3h5LnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKCk7CiAgICAg
bV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9t
ZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzMjdm
ZmM0ZjZkZDU2MzkxOTQwZWIwYTA3MTQzNTBjYjhmMjJmMmRkLi5kZTIxNjY0NzZiNmU3M2IxYmI4
NjI5MjBiNzlhYjgzNGNmOWYwY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTE1MDcsNyArMTUwNywxNSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3ID0g
bV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBpZiAoaW50IHdpZHRoID0gd2ViUGFn
ZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkgewogICAgICAgICBpbnQgaGVp
Z2h0ID0gc3RkOjptYXgod2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkuaGVpZ2h0
KCksIDEpOwotICAgICAgICB2aWV3LT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyB3aWR0aCwg
aGVpZ2h0IH0pOworICAgICAgICB2aWV3LT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKHRy
dWUsIHsgd2lkdGgsIGhlaWdodCB9KTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0b1Np
emVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9CisK
KyAgICBJbnRTaXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gd2ViUGFnZS0+
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKKyAgICBpZiAoc2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUud2lkdGgoKSAmJiBzaXplVG9Db250ZW50QXV0b1NpemVNYXhp
bXVtU2l6ZS5oZWlnaHQoKSkgeworICAgICAgICB2aWV3LT5lbmFibGVTaXplVG9Db250ZW50QXV0
b1NpemVNb2RlKHRydWUsIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAg
ICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQog
ICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+
c2l6ZSgpLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZjc1ZWY1MmExM2I0YWZhYThlMDlkYzUxM2Q0MjhkMzEyMmUxZjAzNi4u
NzA3YzM4ZTRkMzBjZmI0NmRkM2ZmZjUzNTQ1NGJlNmVhYjk3NDM3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYzMyw2ICs2MzMsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgdXBkYXRlSXNJbldpbmRvdyh0cnVlKTsKIAogICAg
IHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9yQXV0
b0xheW91dCk7CisgICAgc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUocGFyYW1l
dGVycy5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSk7CiAgICAgc2V0QXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChwYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHQpOwogICAgIHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMo
cGFyYW1ldGVycy52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKICAgICAKQEAgLTc5
NCw2ICs3OTUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdlYlBhZ2UoV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgfQogCiAgICAgc2V0TWluaW11bVNp
emVGb3JBdXRvTGF5b3V0KHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KTsKKyAg
ICBzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShwYXJhbWV0ZXJzLnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2FjdGl2aXR5U3RhdGUgIT0g
cGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rpdml0eVN0YXRlKHBhcmFt
ZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cywgVmVj
dG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY3NywxMSArNTY3OSwyNSBAQCB2b2lkIFdlYlBhZ2U6
OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAg
bV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBzaXplOwogICAgIGlmIChzaXplLndpZHRoKCkg
PD0gMCkgewotICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZUF1
dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGZhbHNlLCB7IH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5l
bmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6bWF4KHNpemUuaGVp
Z2h0KCksIDEpIH0pOworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxl
Rml4ZWRXaWR0aEF1dG9TaXplTW9kZSh0cnVlLCB7IHNpemUud2lkdGgoKSwgc3RkOjptYXgoc2l6
ZS5oZWlnaHQoKSwgMSkgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKyAgICBpZiAo
c2l6ZS53aWR0aCgpIDw9IDAgfHwgc2l6ZS5oZWlnaHQoKSA8PSAwKSB7CisgICAgICAgIGNvcmVQ
YWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9k
ZShmYWxzZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZSh0cnVl
LCBzaXplKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKQpAQCAtNjQzMSwxMCArNjQ0NywxMCBAQCB2b2lk
IFdlYlBhZ2U6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVJ
bnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUp
CiB7Ci0gICAgaWYgKCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpKQorICAgIGlm
ICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSAmJiAhc2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmICFzaXplVG9Db250ZW50QXV0b1NpemVNYXhp
bXVtU2l6ZSgpLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1haW5GcmFt
ZVZpZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQo
KSk7CisgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNGaXhlZFdpZHRoQXV0b1NpemVFbmFi
bGVkKCkgfHwgbWFpbkZyYW1lVmlldygpLT5pc1NpemVUb0NvbnRlbnRBdXRvU2l6ZUVuYWJsZWQo
KSk7CiAgICAgQVNTRVJUKCFtYWluRnJhbWVWaWV3KCktPm5lZWRzTGF5b3V0KCkpOwogICAgIGlm
IChtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemUgPT0gc2l6ZSkKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQyNjI3
MDM3YTdlOWZiY2VjOTQ2ZjdkMzQzYWRjYjczMjMwMzZlMjQuLmIwOGE0ZjVhMGFmZjM2MzFhODRj
MDZkMTY4ZGUxZTYzMGQ3NjU1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTEwNjUsNiArMTA2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1p
bmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2Vi
Q29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogCisgICAgdm9pZCBzZXRTaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0KKwogICAgIHZvaWQgc2V0
QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCk7CiAg
ICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkgeyByZXR1cm4gbV9h
dXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OyB9CiAKQEAgLTE5MDcsNiArMTkxMCw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nPiBtX3RyYWNrZWROZXR3b3Jr
UmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWlu
aW11bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4g
bV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAwZjg4NDZk
MjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi42NGEzZDIwMGE5YzQ1Y2ZjNTVmZmU3
YjE2MTBiOGE0NWU0MTBmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29s
IGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1pbmltdW1TaXplRm9yQXV0
b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0U2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZSBzaXplKQogICAgIFNldEF1dG9TaXppbmdT
aG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiAKICAgICBTZXRWaWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKE9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZp
ZXdwb3J0U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRl
eCBiMmE2ZDNkZDFkZGU0NDBkZmY2YzhiYmUyMTY3Y2Y1YTcyZWY5MGMwLi45YzA4ODdlNjkzZTI4
OGVjNGU3YTNlMDMwN2Q2ZGM3MTk5OTJkOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhLm1tCkBAIC01ODQsNyArNTg0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJv
b2wKICAgICBJbnRTaXplIHNpemUgPSB2aWV3U2l6ZTsKICAgICBJbnRTaXplIGNvbnRlbnRTaXpl
ID0gSW50U2l6ZSgtMSwgLTEpOwogCi0gICAgaWYgKCFtX3dlYlBhZ2UubWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpKQorICAgIGlmICghbV93ZWJQYWdlLm1pbmltdW1TaXplRm9yQXV0b0xheW91
dCgpLndpZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQoKSB8fCAoIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLndp
ZHRoKCkgJiYgIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhl
aWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC01OTQsNyArNTk0
LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnko
Y29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5l
ZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53
aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcgJiYgKG1fd2ViUGFnZS5t
aW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dlYlBhZ2Uuc2l6ZVRvQ29u
dGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmIG1fd2ViUGFnZS5zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkpIHsKICAgICAgICAgY29udGVudFNp
emUgPSBmcmFtZVZpZXctPmF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpOwogICAgICAg
ICBzaXplID0gY29udGVudFNpemU7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394872</attachid>
            <date>2020-03-29 12:35:20 -0700</date>
            <delta_ts>2020-03-29 12:37:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200329213518.patch</filename>
            <type>text/plain</type>
            <size>43011</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uYjgzYjgzMDM5OGE0ZmI3NmRhM2FlYWU3NDFiOTZj
M2Y2MWNhYTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSB0d28gZXhjbHVzaXZlIGF1dG8tc2l6aW5nIG1vZGU6IGZpeGVkLXdpZHRoICh0
aGUgZXhpc3RpbmcgbW9kZSkgYW5kIHNpemUtdG8tY29udGVudCAodGhlIHJlc3VycmVjdGVkIG1v
ZGUpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1EZWZhdWx0QXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3
OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OmVuYWJsZVNpemVUb0NvbnRlbnRBdXRvU2l6ZU1vZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkludGVybmFsczo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZSk6IERlbGV0ZWQuCisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6
CisKIDIwMjAtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgRGVmaW5lIEVOQUJMRV9XSEVFTF9FVkVOVF9MQVRDSElORyBhbmQgdXNlIGl0IHRv
IHdyYXAgd2hlZWwgZXZlbnQgbGF0Y2hpbmcgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMDgwNzQ2NmRhZjMy
NTE1Nzg1MGMxZGJlZDQ3ZDJkZDE0M2Q1OGNiLi42MTYyNjc4NmI1M2JjZjc1MmZkNThlNThjMzM2
MjNiN2Y3MzIyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldFNpemVUb0NvbnRlbnRB
dXRvU2l6ZU1heGltdW1TaXplOl0gU1BJLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgc2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldFNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFNpemVU
b0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6
ZU1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXpl
RGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0NvbW1p
dHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGFy
Yml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1MmVkNDg2NTgxMTNjYjUzNmU4YjJhOTg3OGU1
NjUwYzg3MTg0YjM5Li5lZGM4OWYzOThiNzhmYzFmZDEyZGFlYjJjZTFiZDVkNjljMjEzZWE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNDIzLDExICszNDIzLDMzIEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgaWYgKCFmaXJzdENoaWxkKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXplSWZF
bmFibGVkIiwgdGhpcyk7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6ZSht
X2luQXV0b1NpemUsIHRydWUpOwogICAgIGlmIChsYXlvdXRDb250ZXh0KCkuc3VidHJlZUxheW91
dFJvb3QoKSkKICAgICAgICAgbGF5b3V0Q29udGV4dCgpLmNvbnZlcnRTdWJ0cmVlTGF5b3V0VG9G
dWxsTGF5b3V0KCk7CiAKKyAgICBzd2l0Y2ggKG1fYXV0b1NpemVNb2RlKSB7CisgICAgY2FzZSBB
dXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRlbnQ6CisgICAgICAgIHBlcmZvcm1TaXplVG9Db250ZW50
QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkZpeGVk
V2lkdGg6CisgICAgICAgIHBlcmZvcm1EZWZhdWx0QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7
CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKKyAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChtX2F1
dG9TaXplQ29udGVudFNpemUpOworCisgICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7Cit9CisK
K3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRGVmYXVsdEF1dG9TaXplKCkKK3sKKyAgICBMT0coTGF5
b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1EZWZhdWx0QXV0b1NpemUiLCB0aGlzKTsKKworICAg
IGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1dG8qIHJlbmRlclZp
ZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSByZW5k
ZXJWaWV3LT5maXJzdENoaWxkKCk7CisKICAgICBTY3JvbGxiYXJNb2RlIGhvcml6b25hbFNjcm9s
bGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNh
bFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgc2V0VmVydGljYWxTY3Jv
bGxiYXJMb2NrKGZhbHNlKTsKQEAgLTM0NDIsNyArMzQ2NCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojph
dXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgUmVmPEZyYW1lVmlldz4gcHJvdGVjdGVkVGhpcygqdGhp
cyk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBkb2N1bWVudC0+
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAgLy8gV2hpbGUgdGhl
IGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhl
IG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFu
ZCByZXBvcnQgCisgICAgLy8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGln
aHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93
KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCByZXBvcnQKICAgICAvLyB0aGUgY3VycmVudCB2
YWx1ZSB0byBhdm9pZCB1bnN0YWJsZSBsYXlvdXQgKGUuZy4gY29udGVudCAiaGVpZ2h0OiAxMDAl
IikuCiAgICAgLy8gU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE3MzU2MQogICAgIG1fYXV0b1NpemVD
b250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwpAQCAtMzQ1MSw5ICszNDczLDkxIEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgYXV0byBmaW5hbEhlaWdodCA9IG1f
YXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPyBzdGQ6Om1heChtX2F1dG9TaXplRml4ZWRNaW5p
bXVtSGVpZ2h0LCBtX2F1dG9TaXplQ29udGVudFNpemUuaGVpZ2h0KCkpIDogbV9hdXRvU2l6ZUNv
bnRlbnRTaXplLmhlaWdodCgpOwogICAgIHJlc2l6ZShmaW5hbFdpZHRoLCBmaW5hbEhlaWdodCk7
CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwot
ICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRlbnRzU2l6ZUNoYW5nZWQobV9hdXRvU2l6ZUNvbnRl
bnRTaXplKTsKLSAgICBtX2RpZFJ1bkF1dG9zaXplID0gdHJ1ZTsKK30KKwordm9pZCBGcmFtZVZp
ZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQoreworICAgIExPRyhMYXlvdXQsICJG
cmFtZVZpZXcgJXAgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSIsIHRoaXMpOworCisgICAg
YXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0byogcmVuZGVyVmll
dyA9IGRvY3VtZW50LT5yZW5kZXJWaWV3KCk7CisKKyAgICBJbnRTaXplIG1pbkF1dG9TaXplKDEs
IDEpOworCisgICAgLy8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFuZCBhbGxvdyBpdCB0
byBncm93LgorICAgIHJlc2l6ZShtaW5BdXRvU2l6ZS53aWR0aCgpLCBtaW5BdXRvU2l6ZS5oZWln
aHQoKSk7CisgICAgSW50U2l6ZSBzaXplID0gZnJhbWVSZWN0KCkuc2l6ZSgpOworICAgIC8vIERv
IHRoZSByZXNpemluZyB0d2ljZS4gVGhlIGZpcnN0IHRpbWUgaXMgYmFzaWNhbGx5IGEgcm91Z2gg
Y2FsY3VsYXRpb24gdXNpbmcgdGhlIHByZWZlcnJlZCB3aWR0aAorICAgIC8vIHdoaWNoIG1heSBy
ZXN1bHQgaW4gYSBoZWlnaHQgY2hhbmdlIGR1cmluZyB0aGUgc2Vjb25kIGl0ZXJhdGlvbi4KKyAg
ICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAvLyBVcGRhdGUgdmFyaW91
cyBzaXplcyBpbmNsdWRpbmcgY29udGVudHNTaXplLCBzY3JvbGxIZWlnaHQsIGV0Yy4KKyAgICAg
ICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAg
ICAgICBpbnQgd2lkdGggPSByZW5kZXJWaWV3LT5taW5QcmVmZXJyZWRMb2dpY2FsV2lkdGgoKTsK
KyAgICAgICAgaW50IGhlaWdodCA9IHJlbmRlclZpZXctPmRvY3VtZW50UmVjdCgpLmhlaWdodCgp
OworICAgICAgICBJbnRTaXplIG5ld1NpemUod2lkdGgsIGhlaWdodCk7CisKKyAgICAgICAgLy8g
Q2hlY2sgdG8gc2VlIGlmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCBmb3IgYSBnaXZlbiBkaW1lbnNp
b24gYW5kCisgICAgICAgIC8vIGlmIHNvLCBpbmNyZWFzZSB0aGUgb3RoZXIgZGltZW5zaW9uIHRv
IGFjY291bnQgZm9yIHRoZSBzY3JvbGxiYXIuCisgICAgICAgIC8vIFNpbmNlIHRoZSBkaW1lbnNp
b25zIGFyZSBvbmx5IGZvciB0aGUgdmlldyByZWN0YW5nbGUsIG9uY2UgYQorICAgICAgICAvLyBk
aW1lbnNpb24gZXhjZWVkcyB0aGUgbWF4aW11bSwgdGhlcmUgaXMgbm8gbmVlZCB0byBpbmNyZWFz
ZSBpdCBmdXJ0aGVyLgorICAgICAgICBpZiAobmV3U2l6ZS53aWR0aCgpID4gbV9hdXRvU2l6ZUNv
bnN0cmFpbnQud2lkdGgoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxI
b3Jpem9udGFsU2Nyb2xsYmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpOworICAgICAgICAgICAg
aWYgKCFsb2NhbEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAgICAgbG9jYWxIb3Jp
em9udGFsU2Nyb2xsYmFyID0gY3JlYXRlU2Nyb2xsYmFyKEhvcml6b250YWxTY3JvbGxiYXIpOwor
ICAgICAgICAgICAgbmV3U2l6ZS5leHBhbmQoMCwgbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyLT5v
Y2N1cGllZEhlaWdodCgpKTsKKworICAgICAgICAgICAgLy8gRG9uJ3QgYm90aGVyIGNoZWNraW5n
IGZvciBhIHZlcnRpY2FsIHNjcm9sbGJhciBiZWNhdXNlIHRoZSB3aWR0aCBpcyBhdAorICAgICAg
ICAgICAgLy8gYWxyZWFkeSBncmVhdGVyIHRoZSBtYXhpbXVtLgorICAgICAgICB9IGVsc2UgaWYg
KG5ld1NpemUuaGVpZ2h0KCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC5oZWlnaHQoKSkgeworICAg
ICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IHZlcnRp
Y2FsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsVmVydGljYWxTY3JvbGxiYXIp
CisgICAgICAgICAgICAgICAgbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IGNyZWF0ZVNjcm9sbGJh
cihWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXplLmV4cGFuZChsb2NhbFZl
cnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOworCisgICAgICAgICAgICAvLyBE
b24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgaG9yaXpvbnRhbCBzY3JvbGxiYXIgYmVjYXVzZSB0
aGUgaGVpZ2h0IGlzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIgdGhlIG1heGltdW0u
CisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgdGhlIHNpemUgaXMgYXQgbGVhc3QgdGhl
IG1pbiBib3VuZHMuCisgICAgICAgIG5ld1NpemUgPSBuZXdTaXplLmV4cGFuZGVkVG8obWluQXV0
b1NpemUpOworCisgICAgICAgIC8vIEJvdW5kIHRoZSBkaW1lbnNpb25zIGJ5IHRoZSBtYXggYm91
bmRzIGFuZCBkZXRlcm1pbmUgd2hhdCBzY3JvbGxiYXJzIHRvIHNob3cuCisgICAgICAgIFNjcm9s
bGJhck1vZGUgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09mZjsKKyAg
ICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRoKCkp
IHsKKyAgICAgICAgICAgIG5ld1NpemUuc2V0V2lkdGgobV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lk
dGgoKSk7CisgICAgICAgICAgICBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0gU2Nyb2xsYmFyQWx3
YXlzT247CisgICAgICAgIH0KKyAgICAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0aWNhbFNjcm9sbGJh
ck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CisgICAgICAgIGlmIChuZXdTaXplLmhlaWdodCgp
ID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpIHsKKyAgICAgICAgICAgIG5ld1NpemUu
c2V0SGVpZ2h0KG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKTsKKyAgICAgICAgICAgIHZl
cnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09uOworICAgICAgICB9CisKKyAg
ICAgICAgaWYgKG5ld1NpemUgPT0gc2l6ZSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIFdoaWxlIGxvYWRpbmcgb25seSBhbGxvdyB0aGUgc2l6ZSB0byBpbmNyZWFzZSAodG8g
YXZvaWQgdHdpdGNoaW5nIGR1cmluZyBpbnRlcm1lZGlhdGUgc21hbGxlciBzdGF0ZXMpCisgICAg
ICAgIC8vIHVubGVzcyBhdXRvcmVzaXplIGhhcyBqdXN0IGJlZW4gdHVybmVkIG9uIG9yIHRoZSBt
YXhpbXVtIHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHNpemUuCisgICAgICAgIGlm
IChtX2RpZFJ1bkF1dG9zaXplICYmIHNpemUuaGVpZ2h0KCkgPD0gbV9hdXRvU2l6ZUNvbnN0cmFp
bnQuaGVpZ2h0KCkgJiYgc2l6ZS53aWR0aCgpIDw9IG1fYXV0b1NpemVDb25zdHJhaW50LndpZHRo
KCkKKyAgICAgICAgICAgICYmICFmcmFtZSgpLmxvYWRlcigpLmlzQ29tcGxldGUoKSAmJiAobmV3
U2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkgfHwgbmV3U2l6ZS53aWR0aCgpIDwgc2l6ZS53
aWR0aCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIFRoZSBmaXJzdCB0aW1l
IGFyb3VuZCwgcmVzaXplIHRvIHRoZSBtaW5pbXVtIGhlaWdodCBhZ2Fpbjsgb3RoZXJ3aXNlLAor
ICAgICAgICAvLyBvbiBwYWdlcyAoZS5nLiBxdWlya3MgbW9kZSkgd2hlcmUgdGhlIGJvZHkvZG9j
dW1lbnQgcmVzaXplIHRvIHRoZSB2aWV3IHNpemUsCisgICAgICAgIC8vIHdlJ2xsIGVuZCB1cCBu
b3Qgc2hyaW5raW5nIGJhY2sgZG93biBhZnRlciByZXNpemluZyB0byB0aGUgY29tcHV0ZWQgcHJl
ZmVycmVkIHdpZHRoLgorICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgpLCBpID8gbmV3U2l6
ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgpKTsKKyAgICAgICAgLy8gRm9yY2UgdGhl
IHNjcm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUgYWRkaW5nIHRoZW0g
YW5kIGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAorICAgICAgICAvLyBh
IHZlcnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFuZCB0aHVzIGluY3Jl
YXNlIHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUgc2NvbGxiYXIgaXMg
bmVlZGVkKS4KKyAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKKyAgICAg
ICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgICAgICBzZXRTY3JvbGxi
YXJNb2Rlcyhob3Jpem9uYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUsIHRy
dWUsIHRydWUpOworICAgIH0KKyAgICAvLyBBbGwgdGhlIHJlc2l6aW5nIGFib3ZlIG1heSBoYXZl
IGludmFsaWRhdGVkIHN0eWxlIChmb3IgZXhhbXBsZSBpZiB2aWV3cG9ydCB1bml0cyBhcmUgYmVp
bmcgdXNlZCkuCisKKyAgICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIC8v
IEZJWE1FOiBVc2UgdGhlIGZpbmFsIGxheW91dCdzIHJlc3VsdCBhcyB0aGUgY29udGVudCBzaXpl
ICh3ZWJraXQub3JnL2IvMTczNTYxKS4KKyAgICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXplID0gY29udGVu
dHNTaXplKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhl
aWdodChpbnQgZml4ZWRNaW5pbXVtSGVpZ2h0KQpAQCAtNDQ2NSwxMiArNDU2OSwyMyBAQCBib29s
IEZyYW1lVmlldzo6aXNWaWV3Rm9yRG9jdW1lbnRJbkZyYW1lKCkgY29uc3QKICAgICByZXR1cm4g
JnJlbmRlclZpZXctPmZyYW1lVmlldygpID09IHRoaXM7CiB9CiAKLXZvaWQgRnJhbWVWaWV3Ojpl
bmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQor
dm9pZCBGcmFtZVZpZXc6OmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUs
IGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9TaXplTW9kZShlbmFi
bGUsIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkZpeGVkV2lkdGgpOworfQorCit2b2lkIEZyYW1l
Vmlldzo6ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVuYWJsZSwgY29uc3Qg
SW50U2l6ZSYgdmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2RlKGVuYWJsZSwgdmll
d1NpemUsIEF1dG9TaXplTW9kZTo6U2l6ZVRvQ29udGVudCk7Cit9CisKK3ZvaWQgRnJhbWVWaWV3
OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXpl
LCBBdXRvU2l6ZU1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8fCAhdmlld1NpemUu
aXNFbXB0eSgpKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFibGUgJiYgbV9hdXRv
U2l6ZUNvbnN0cmFpbnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1fYXV0
b1NpemVNb2RlID0gbW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5hYmxlOwogICAgIG1f
YXV0b1NpemVDb25zdHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6ZUNvbnRlbnRTaXpl
ID0gY29udGVudHNTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCBjMjJlNGU1OGMx
NDQ4YTJkZmM2NmY5NDQwYjQxNzJkNzgyMjRlNjMwLi44NDM2ODQ1MTIxMGNjYTNmYzAyOTA1YzM5
MDlkMmNmMmMyZjVlMzFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTM5OSw5ICszOTks
MTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXN1YWxseU5vbkVtcHR5KCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5OyB9CiAgICAgdm9pZCBjaGVj
a0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsKIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlLCBjb25zdCBJbnRT
aXplJiBtaW5TaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZUZpeGVkV2lkdGhB
dXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwotICAgIGJvb2wgaXNBdXRvU2l6ZUVu
YWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9CisgICAgYm9vbCBpc0Zp
eGVkV2lkdGhBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXpl
ICYmIG1fYXV0b1NpemVNb2RlID09IEF1dG9TaXplTW9kZTo6Rml4ZWRXaWR0aDsgfQorICAgIGJv
b2wgaXNTaXplVG9Db250ZW50QXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91
bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRl
bnQ7IH0KICAgICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBmb3JjZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZhbHNlKTsKQEAgLTcw
NCw3ICs3MDYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlTGF5b3V0UGFyZW50Vmlld0lm
TmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVlKCk7CiAgICAgdm9p
ZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CisKKyAgICBlbnVtIGNsYXNzIEF1dG9TaXplTW9k
ZSA6IHVpbnQ4X3QgeyBGaXhlZFdpZHRoLCBTaXplVG9Db250ZW50IH07CisgICAgdm9pZCBlbmFi
bGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNpemUsIEF1dG9T
aXplTW9kZSk7CiAgICAgdm9pZCBhdXRvU2l6ZUlmRW5hYmxlZCgpOworICAgIHZvaWQgcGVyZm9y
bURlZmF1bHRBdXRvU2l6ZSgpOworICAgIHZvaWQgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6
ZSgpOwogCiAgICAgdm9pZCBhcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2libGVSZWN0KGNvbnN0IFdU
Rjo6RnVuY3Rpb248dm9pZCAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNvbnN0IEludFJlY3QmIHZp
c2libGVSZWN0KT4mKTsKICAgICB2b2lkIHJlc3VtZVZpc2libGVJbWFnZUFuaW1hdGlvbnMoY29u
c3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwpAQCAtOTMxLDYgKzkzOCw3IEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBtX2hhc0ZsaXBwZWRCbG9ja1JlbmRlcmVycyB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9OwogCisg
ICAgQXV0b1NpemVNb2RlIG1fYXV0b1NpemVNb2RlIHsgQXV0b1NpemVNb2RlOjpGaXhlZFdpZHRo
IH07CiAgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUgdGhlIGZyYW1lIHZpZXcg
YXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9zaG91bGRBdXRvU2l6ZSB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2luQXV0b1NpemUgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuY3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFmZmI0MzY5YWI0ZWMzYTljMGJmZmMyOTgu
LmM4ZmJmNWY4NmRiODE4YjUwOTQ3YTY4NTk2NDdjN2MwOWFjNjhlZTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2b2lkIEludGVybmFsczo6
cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgICAgICBwYWdlLnNldFRvcENv
bnRlbnRJbnNldCgwKTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0VXNlRml4ZWRMYXlvdXQo
ZmFsc2UpOwogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRGaXhlZExheW91dFNpemUoSW50U2l6
ZSgpKTsKLSAgICAgICAgbWFpbkZyYW1lVmlldy0+ZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCB7
IH0pOworICAgICAgICBtYWluRnJhbWVWaWV3LT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2Rl
KGZhbHNlLCB7IH0pOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICAgICAgbWFp
bkZyYW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50UmVjdCgpKTsKICNlbmRp
ZgpAQCAtMzU4MiwxMiArMzU4MiwxMiBAQCB2b2lkIEludGVybmFsczo6cmVsb2FkRXhwaXJlZE9u
bHkoKQogICAgIGZyYW1lKCktPmxvYWRlcigpLnJlbG9hZChSZWxvYWRPcHRpb246OkV4cGlyZWRP
bmx5KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZShib29sIGVuYWJs
ZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3ZvaWQgSW50ZXJuYWxzOjplbmFibGVGaXhlZFdp
ZHRoQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KQogewog
ICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVu
dCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGRvY3VtZW50LT52
aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShlbmFibGVkLCB7IHdpZHRoLCBoZWlnaHQgfSk7Cisg
ICAgZG9jdW1lbnQtPnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShlbmFibGVk
LCB7IHdpZHRoLCBoZWlnaHQgfSk7CiB9CiAKICNpZiBFTkFCTEUoTEVHQUNZX0VOQ1JZUFRFRF9N
RURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUyMzUyMzQxZGI4YzE1ZDQy
OWY5Y2VmZDI4OWRmNTIyNzBlNWFjN2MuLjI3YjA4Yzk0OGQ0NzgwYmIwYWNhMzA2ZGExN2Y0MGZh
ZjUxZWE4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNTM4LDcgKzUzOCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wgZW5kVG9FbmQpOwogICAgIHZv
aWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJv
b2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2b2lkIGVuYWJsZUZpeGVk
V2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGVkLCBpbnQgd2lkdGgsIGludCBoZWlnaHQpOwog
CiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAgdm9pZCBpbml0aWFsaXpl
TW9ja0NETSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDE2MmZhZjQ5
NDZlYWFkZDk4MGU1Nzg5YTE4YmJkZWM1NTgzZjYzMjMuLjA0NDY5MjA2MjFlZjQyMTJlMmM1OGE3
NmUxOGMxMTNmMDU2ZmU0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAg
LTU2NCw3ICs1NjQsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKICAgICB2b2lkIGZvcmNl
UmVsb2FkKGJvb2xlYW4gZW5kVG9FbmQpOwogICAgIHZvaWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsK
IAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2xlYW4gZW5hYmxlZCwgbG9uZyB3aWR0
aCwgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShi
b29sZWFuIGVuYWJsZWQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsKIAogICAgIFtDb25kaXRp
b25hbD1WSURFT10gc2VxdWVuY2U8RE9NU3RyaW5nPiBtZWRpYVJlc3BvbnNlU291cmNlcyhIVE1M
TWVkaWFFbGVtZW50IG1lZGlhKTsKICAgICBbQ29uZGl0aW9uYWw9VklERU9dIHNlcXVlbmNlPERP
TVN0cmluZz4gbWVkaWFSZXNwb25zZUNvbnRlbnRSYW5nZXMoSFRNTE1lZGlhRWxlbWVudCBtZWRp
YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCmluZGV4IDcyNGMxNmU1MDQzM2RlYmIyNDBkOWJlMTNiZTlhNWYwNTc5YmFhNDMuLmM2
YWVmNTFjY2Y5ZTQ5NzYxM2U3YmFmMTgwZTI1MzhkNmY3ODZmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02Nyw2ICs2
Nyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6RW5jb2Rl
ciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5k
b3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQ7CiAgICAgZW5jb2Rl
ciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgZW5jb2RlciA8PCBzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBlbmNvZGVyIDw8IGF1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9ydFNpemVGb3JDU1NWaWV3
cG9ydFVuaXRzOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxQaW5uaW5nQmVoYXZpb3Ip
OwpAQCAtMjQ4LDYgKzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRlY29kCiAgICAgICAgIHJl
dHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLm1p
bmltdW1TaXplRm9yQXV0b0xheW91dCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Cisg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1h
eGltdW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCkp
CiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShw
YXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCmluZGV4IGU4YjlmYTg4
NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLjU4OGZhYzUwZmU5MGFiMjEwZWVlNjc5
OGY0NTk1ZGM2Y2U2MmRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBh
Z2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQYWdl
Q3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBzdHJ1Y3QgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNrSXNTdXNwZW5kZWQgeyBm
YWxzZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7
CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsK
ICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgT3B0aW9u
YWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tWaWV3UHJpdmF0
ZS5oCmluZGV4IDBmMjI2ZWJjNTgzYTZlZDg0ZmUzMTQ4ZjM1ZjY1NGNlZDc4ZGJlZDYuLmExYTcy
NjYyYmYyYzc2ZDBiNmFhMGY2Y2IzYzJhODA3MGY2ZDMwMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApAQCAtNTgsNiArNTgsNyBA
QAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3c7CiAKIEBwcm9wZXJ0eSAocmVhZHdy
aXRlKSBOU1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworQHByb3BlcnR5IChyZWFkd3Jp
dGUpIE5TU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKIEBwcm9wZXJ0eSAo
cmVhZHdyaXRlKSBCT09MIHNob3VsZENsaXBUb1Zpc2libGVSZWN0OwogQHByb3BlcnR5IChyZWFk
d3JpdGUpIEJPT0wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDsKIEBwcm9w
ZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcpIEJPT0wgdXNp
bmdVSVNpZGVDb21wb3NpdGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGYyYWM2MDE4NjE1MGRlNjJmZmJlNDk3
MWJmNWJmMmMyM2U1ODUxNjQuLjIwM2ViMzdjY2IxZGVkOWVkNWFkMDQ4N2EwNTRlNjkxM2FkNGIw
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
Vmlld1ByaXZhdGUuaApAQCAtNTA4LDYgKzUwOCw3IEBAIGZvciB0aGlzIHByb3BlcnR5LgogQHBy
b3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5kQ29udGVudFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250ZW50VG9WaWV3SGVpZ2h0
Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0aDopIENHRmxvYXQgX21p
bmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTopIENHU2l6ZSBfc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CiAKIEBwcm9wZXJ0
eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpvbnRhbFNjcm9sbGVyOikg
Qk9PTCBfYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbHdheXNTaG93
c1ZlcnRpY2FsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRkYzZmZmZhMzMwYTgzY2I3MmJlMTkzMGZjNzIxMDEzMzQy
MGQ4MjYuLmI0Mjc1N2Y5NTY2MDMxYTYwZjA2ZWFkMmM1ZTEzOGQ5OGRkNWNhYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMjY4LDYgKzEyNjgsMTYg
QEAgLSAodm9pZClzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ6KE5TU2l6ZSltaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQKICAgICBfZGF0YS0+X2ltcGwtPnNldE1pbmltdW1TaXplRm9yQXV0b0xh
eW91dChOU1NpemVUb0NHU2l6ZShtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpKTsKIH0KIAorLSAo
TlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIE5T
U2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVt
U2l6ZSgpKTsKK30KKworLSAodm9pZClzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTooTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgX2RhdGEt
Pl9pbXBsLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShOU1NpemVUb0NHU2l6
ZShzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkpOworfQorCiAtIChCT09MKXNob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQKIHsKICAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT5zaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCmluZGV4IDc1OGVlMTEx
MmI0OTkzMDBlNWVhNmY1ZmE3MDM0OWY0Yjc1ZTRhM2YuLmZiMjdhNmE0NDc2NDFmMmJmYWU2NDhj
MTYzYWE0MjM5YTI0MzdkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9t
YWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNDAwLDYgKzE0MDAsMjEgQEAgLSAodm9pZClfc2V0TWlu
aW11bUxheW91dFdpZHRoOihDR0Zsb2F0KXdpZHRoCiAgICAgX2ltcGwtPnNldENsaXBzVG9WaXNp
YmxlUmVjdChleHBhbmRzVG9GaXQpOwogfQogCistIChDR1NpemUpX3NpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIF9wYWdlLT5taW5pbXVtU2l6ZUZvckF1dG9M
YXlvdXQoKTsKK30KKworLSAodm9pZClfc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNp
emU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQgPSBzaXplLndpZHRoID4g
MCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+c2V0U2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplLndpZHRoLCBzaXplLmhlaWdodCkp
OworICAgIF9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisK
KyAgICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7Cit9CisKIC0g
KEJPT0wpX2NsaXBzVG9WaXNpYmxlUmVjdAogewogICAgIHJldHVybiBfaW1wbC0+Y2xpcHNUb1Zp
c2libGVSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAppbmRleCA3OGU1NDYyNzNmYzc3YWNmODEzN2UwM2E3YjgyYzYyMGVmODFmYzM3Li5jYjdmYmY5
M2UzMDBjMTI2ZjgwZGE0NzRlOTZhMmUyYzliYjRkYjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTIyNCw2ICsyMjQsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChDR1NpemUpOwogICAgIENHU2l6
ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdDsKKyAgICB2b2lkIHNldFNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSk7CisgICAgQ0dTaXplIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRTaG91bGRFeHBhbmRU
b1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJvb2wgc2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW50cmluc2ljQ29u
dGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZiODNkYTBmZTU2MjQxOGMxZS4u
MThiNjI3YzhlNTA4MDg0ZGRjNDRkYjU4NTYwZmJlYWYzZTAwMTkwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5MjYsNiArMTkyNiwyMSBA
QCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCk7CiB9CiAKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSBz
aXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkKK3sKKyAgICBib29sIGV4cGFuZHNUb0Zp
dCA9IHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRoID4gMCAmJiBzaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQgPiAwOworCisgICAgbV9wYWdlLT5zZXRT
aXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5zZXRNYWluRnJhbWVJc1Nj
cm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhw
YW5kc1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS0+c2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hl
aWdodEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5zZXRBdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOwpA
QCAtMTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SW50cmluc2ljQ29udGVu
dFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQogICAgIC8vIHNvIHdlIGNhbiByZXBv
cnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90LCB3ZSBuZWVkIHRvIHJl
cG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwg
a25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAgIC8vIEZJWE1FOiB3aGF0IHRvIGRv
IGhlcmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhp
YmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBpZiAoaW50cmluc2ljQ29udGVu
dFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkp
CiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGgu
d2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4MWMzY2M0YWUxNjRkZmEyMmUwNTNm
ZGM5OTE0OWNjLi5kNTExOTI2NjQ5MGFjOWMzZjBlOWRjYjA5YjZiMTA1ZjQ1OTdhNzBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC04MCw2ICs4MCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91dERpZENoYW5nZSgpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENo
YW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5zaWVudFpvb20oZG91Ymxl
LCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0VHJhbnNp
ZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBkMjAzZDYzNjAzYjc3MmI4
NjFiNTY4ZmVjYTJmMy4uOTAyYzk4YWNkYzc3ZTQ3OWVhMGUxMzNmMjhlY2FmZTgwYWE3ZGVmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03Njg2LDYgKzc2
ODYsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQcm94eTo6Y3JlYXRpb25Q
YXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFtZXRlcnMubWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsKICAgICBwYXJh
bWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQbGF5YmFja0lzU3VzcGVu
ZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0ID0gbV9taW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSA9IG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CiAgICAgcGFy
YW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID0gbV9hdXRvU2l6aW5n
U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRlcnMudmlld3BvcnRTaXplRm9y
Q1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0czsKICAg
ICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Nyb2xsUGlubmluZ0JlaGF2
aW9yOwpAQCAtODM1NSw2ICs4MzU2LDI1IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNlbmRpZgogfQogCit2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVt
U2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3NpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0U2l6ZVRv
Q29udGVudEF1dG9TaXplTWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1fZHJhd2luZ0FyZWEtPnNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCk7CisKKyNpZiBVU0UoQVBQ
S0lUKQorICAgIGlmIChtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRoKCkg
PD0gMCkKKyAgICAgICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNpemUoSW50U2l6ZSgtMSwg
LTEpKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsKICAgICBpZiAobV9hdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4cGFuZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjY4ODgwMTJjMzI5OWEyNjZlN2UxZTU4
NWMwM2IwYTI4NWRiZmY4ZS4uZTYxYjdmNDJkOTBhMTZjMmQ4NTVkZTIxY2U5YzJkNTRmZDkyYjJh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEzNDQsNiArMTM0
NCw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OyB9CiAgICAg
dm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
OwogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0K
KyAgICB2b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKKwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdo
dDsgfQogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29s
KTsKIApAQCAtMjYwMyw2ICsyNjA2LDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6OkludFNpemUgbV9taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3NpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4g
bV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAgLy8gVmlzdWFsIHZpZXdw
b3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggOGMzYmRjY2IxY2UxNGRl
Yjk2ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uODNjNzBjZmMxMTNmYTM3ZjRlM2VkYWYzODBjNjMw
NmQ5ZDY0YmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC00Miw2ICs0
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpAQCAtNzEsNiArNzIsOSBAQCBwcml2YXRl
OgogICAgIC8vIFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ugc2VudCB0byB0aGUgd2Vi
IHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50TWluaW11bVNpemVGb3JB
dXRvTGF5b3V0OwogCisgICAgLy8gVGhlIGxhc3QgbWF4bWl1bSBzaXplIGZvciBzaXplLXRvLWNv
bnRlbnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CisK
ICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0OWM1ZGJhNTcwZTUwZjBmMDMzZjBkNWM1NDNhZTc5
Ny4uNzFlNDVhMjYxYjA0ZDUwMjk5ZWVlMzQwMDZmOTdkYzc5YjkwMmIyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTkwLDYgKzkwLDE5IEBAIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0RGlkQ2hh
bmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAordm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURp
ZENoYW5nZSgpCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2Vzcygp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBvbmx5IHdhbnQgb25lIFVwZGF0ZUdlb21l
dHJ5IG1lc3NhZ2UgaW4gZmxpZ2h0IGF0IG9uY2UsIHNvIGlmIHdlJ3ZlIGFscmVhZHkgc2VudCBv
bmUgYnV0CisgICAgLy8gaGF2ZW4ndCB5ZXQgcmVjZWl2ZWQgdGhlIHJlcGx5IHdlJ2xsIGp1c3Qg
cmV0dXJuIGVhcmx5IGhlcmUuCisgICAgaWYgKG1faXNXYWl0aW5nRm9yRGlkVXBkYXRlR2VvbWV0
cnkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOworfQorCiB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmVudGVyQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJU
cmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBtX3dlYlBhZ2VQcm94eS5lbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOwpAQCAtMTA3LDEw
ICsxMjAsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaWRV
cGRhdGVHZW9tZXRyeSgpCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSA9IGZh
bHNlOwogCiAgICAgSW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBtX3dlYlBhZ2VQ
cm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKKyAgICBJbnRTaXplIHNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuc2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcgd2FzIHJlc2l6ZWQgd2hp
bGUgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5IHJlcGx5IGZyb20gdGhl
IHdlYiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRoZSBuZXcgc2l6ZSBoZXJl
LgotICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9sYXN0U2VudE1pbmltdW1T
aXplRm9yQXV0b0xheW91dCAhPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpCisgICAgaWYgKG1f
bGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11bVNpemVGb3JBdXRvTGF5
b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCB8fCBtX2xhc3RTZW50U2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUgIT0gc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUp
CiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0xMjMsNiArMTM3LDcgQEAg
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRl
QWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAgbV9sYXN0U2VudE1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpOworICAgIG1fbGFzdFNlbnRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9
IG1fd2ViUGFnZVByb3h5LnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKCk7CiAgICAg
bV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9t
ZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzMjdm
ZmM0ZjZkZDU2MzkxOTQwZWIwYTA3MTQzNTBjYjhmMjJmMmRkLi5kZTIxNjY0NzZiNmU3M2IxYmI4
NjI5MjBiNzlhYjgzNGNmOWYwY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTE1MDcsNyArMTUwNywxNSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp0cmFuc2l0
aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBSZWZQdHI8RnJhbWVWaWV3PiB2aWV3ID0g
bV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBpZiAoaW50IHdpZHRoID0gd2ViUGFn
ZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkgewogICAgICAgICBpbnQgaGVp
Z2h0ID0gc3RkOjptYXgod2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkuaGVpZ2h0
KCksIDEpOwotICAgICAgICB2aWV3LT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyB3aWR0aCwg
aGVpZ2h0IH0pOworICAgICAgICB2aWV3LT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKHRy
dWUsIHsgd2lkdGgsIGhlaWdodCB9KTsKKworICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAgdmlldy0+c2V0QXV0b1Np
emVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKKyAgICB9CisK
KyAgICBJbnRTaXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gd2ViUGFnZS0+
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKKyAgICBpZiAoc2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemUud2lkdGgoKSAmJiBzaXplVG9Db250ZW50QXV0b1NpemVNYXhp
bXVtU2l6ZS5oZWlnaHQoKSkgeworICAgICAgICB2aWV3LT5lbmFibGVTaXplVG9Db250ZW50QXV0
b1NpemVNb2RlKHRydWUsIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAg
ICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQog
ICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+
c2l6ZSgpLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggZjc1ZWY1MmExM2I0YWZhYThlMDlkYzUxM2Q0MjhkMzEyMmUxZjAzNi4u
NzA3YzM4ZTRkMzBjZmI0NmRkM2ZmZjUzNTQ1NGJlNmVhYjk3NDM3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYzMyw2ICs2MzMsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgdXBkYXRlSXNJbldpbmRvdyh0cnVlKTsKIAogICAg
IHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9yQXV0
b0xheW91dCk7CisgICAgc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUocGFyYW1l
dGVycy5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSk7CiAgICAgc2V0QXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChwYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBh
bmRUb1ZpZXdIZWlnaHQpOwogICAgIHNldFZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMo
cGFyYW1ldGVycy52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKTsKICAgICAKQEAgLTc5
NCw2ICs3OTUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdlYlBhZ2UoV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgfQogCiAgICAgc2V0TWluaW11bVNp
emVGb3JBdXRvTGF5b3V0KHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5b3V0KTsKKyAg
ICBzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShwYXJhbWV0ZXJzLnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2FjdGl2aXR5U3RhdGUgIT0g
cGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rpdml0eVN0YXRlKHBhcmFt
ZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cywgVmVj
dG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY3NywxMSArNTY3OSwyNSBAQCB2b2lkIFdlYlBhZ2U6
OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAg
bV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBzaXplOwogICAgIGlmIChzaXplLndpZHRoKCkg
PD0gMCkgewotICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmVuYWJsZUF1
dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCku
dmlldygpLT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGZhbHNlLCB7IH0pOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgY29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmlldygpLT5l
bmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0ZDo6bWF4KHNpemUuaGVp
Z2h0KCksIDEpIH0pOworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxl
Rml4ZWRXaWR0aEF1dG9TaXplTW9kZSh0cnVlLCB7IHNpemUud2lkdGgoKSwgc3RkOjptYXgoc2l6
ZS5oZWlnaHQoKSwgMSkgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisK
KyAgICBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKyAgICBpZiAo
c2l6ZS53aWR0aCgpIDw9IDAgfHwgc2l6ZS5oZWlnaHQoKSA8PSAwKSB7CisgICAgICAgIGNvcmVQ
YWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9k
ZShmYWxzZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZSh0cnVl
LCBzaXplKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9W
aWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKQpAQCAtNjQzMSwxMCArNjQ0NywxMCBAQCB2b2lk
IFdlYlBhZ2U6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKIAogdm9pZCBXZWJQYWdlOjp1cGRhdGVJ
bnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUp
CiB7Ci0gICAgaWYgKCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpKQorICAgIGlm
ICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSAmJiAhc2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmICFzaXplVG9Db250ZW50QXV0b1NpemVNYXhp
bXVtU2l6ZSgpLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAgQVNTRVJUKG1haW5GcmFt
ZVZpZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNBdXRvU2l6ZUVuYWJsZWQo
KSk7CisgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNGaXhlZFdpZHRoQXV0b1NpemVFbmFi
bGVkKCkgfHwgbWFpbkZyYW1lVmlldygpLT5pc1NpemVUb0NvbnRlbnRBdXRvU2l6ZUVuYWJsZWQo
KSk7CiAgICAgQVNTRVJUKCFtYWluRnJhbWVWaWV3KCktPm5lZWRzTGF5b3V0KCkpOwogICAgIGlm
IChtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemUgPT0gc2l6ZSkKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQyNjI3
MDM3YTdlOWZiY2VjOTQ2ZjdkMzQzYWRjYjczMjMwMzZlMjQuLmIwOGE0ZjVhMGFmZjM2MzFhODRj
MDZkMTY4ZGUxZTYzMGQ3NjU1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmgKQEAgLTEwNjUsNiArMTA2NSw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1p
bmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgV2Vi
Q29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdCB7IHJldHVybiBt
X21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogCisgICAgdm9pZCBzZXRTaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2ViQ29y
ZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0KKwogICAgIHZvaWQgc2V0
QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCk7CiAg
ICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCkgeyByZXR1cm4gbV9h
dXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OyB9CiAKQEAgLTE5MDcsNiArMTkxMCw3
IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nPiBtX3RyYWNrZWROZXR3b3Jr
UmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbWlu
aW11bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4g
bV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgppbmRleCAwZjg4NDZk
MjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi42NGEzZDIwMGE5YzQ1Y2ZjNTVmZmU3
YjE2MTBiOGE0NWU0MTBmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0NjEsNyBAQCBHZW5lcmF0
ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6OlN5bnRoZXRpY0Vk
aXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcihib29s
IGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1pbmltdW1TaXplRm9yQXV0
b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0U2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZSBzaXplKQogICAgIFNldEF1dG9TaXppbmdT
aG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQpCiAKICAgICBTZXRWaWV3
cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKE9wdGlvbmFsPFdlYkNvcmU6OkludFNpemU+IHZp
ZXdwb3J0U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRl
eCBiMmE2ZDNkZDFkZGU0NDBkZmY2YzhiYmUyMTY3Y2Y1YTcyZWY5MGMwLi45YzA4ODdlNjkzZTI4
OGVjNGU3YTNlMDMwN2Q2ZGM3MTk5OTJkOGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhLm1tCkBAIC01ODQsNyArNTg0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJv
b2wKICAgICBJbnRTaXplIHNpemUgPSB2aWV3U2l6ZTsKICAgICBJbnRTaXplIGNvbnRlbnRTaXpl
ID0gSW50U2l6ZSgtMSwgLTEpOwogCi0gICAgaWYgKCFtX3dlYlBhZ2UubWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpKQorICAgIGlmICghbV93ZWJQYWdlLm1pbmltdW1TaXplRm9yQXV0b0xheW91
dCgpLndpZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQoKSB8fCAoIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLndp
ZHRoKCkgJiYgIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhl
aWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CiAKICAgICBGcmFtZVZp
ZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7CkBAIC01OTQsNyArNTk0
LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnko
Y29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5l
ZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53
aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcgJiYgKG1fd2ViUGFnZS5t
aW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dlYlBhZ2Uuc2l6ZVRvQ29u
dGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmIG1fd2ViUGFnZS5zaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkpIHsKICAgICAgICAgY29udGVudFNp
emUgPSBmcmFtZVZpZXctPmF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50U2l6ZSgpOwogICAgICAg
ICBzaXplID0gY29udGVudFNpemU7CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQyZTJmN2Q1NTZlOTVlYzMyNGE5
NGUyZjMyOGYxM2NmYjQwODE3NmMuLmJhYmUyYTU2YWQ1Njc5MGM3NWU4MGRjNjg4NTUwNjExMzRi
YmQzZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0yOSAgQW50b2luZSBRdWludCAg
PGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5nXSBCcmluZyBiYWNrIHRo
ZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29kZXBhdGggZm9yIGNvbXBh
dGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MDExMTA4MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbWV0aG9kcyBp
bnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKCkgaGFzIGNoYW5nZWQgdG8gaW50ZXJuYWxzLmVu
YWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoKS4KKworICAgICAgICAqIGZhc3QvZHluYW1pYy9j
cmFzaC1zdWJ0cmVlLWxheW91dC13aGVuLWF1dG8tc2l6ZS1lbmFibGVkLmh0bWw6CisgICAgICAg
ICogZmFzdC9keW5hbWljL21haWwtYXV0b3NpemUtdmlld3BvcnQtdW5pdC5odG1sOgorCiAyMDIw
LTAzLTI3ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIE51
bGxwdHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4g
aW5zZXJ0aW5nIE9MIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2R5bmFtaWMvY3Jhc2gtc3VidHJlZS1sYXlvdXQtd2hlbi1hdXRvLXNpemUtZW5h
YmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2NyYXNoLXN1YnRyZWUtbGF5b3V0
LXdoZW4tYXV0by1zaXplLWVuYWJsZWQuaHRtbAppbmRleCBkZDhkNDdhYWM3NzI1YTRlN2IzOWZi
MGJmN2EzOTJjYjVhODUwNDQ0Li41M2QzNDZiMWVmYmQwMTI5YjhlMDNiNjU2MzcwM2M2ODNlZWEy
ZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY3Jhc2gtc3VidHJlZS1s
YXlvdXQtd2hlbi1hdXRvLXNpemUtZW5hYmxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZHluYW1pYy9jcmFzaC1zdWJ0cmVlLWxheW91dC13aGVuLWF1dG8tc2l6ZS1lbmFibGVkLmh0bWwK
QEAgLTE1LDcgKzE1LDcgQEAKIDxkaXY+UGFzcyBpZiBubyBjcmFzaCBvciBhc3NlcnQuPGRpdiBp
ZD1yZXNpemVUaGlzPjwvZGl2PjwvZGl2PgogPHNjcmlwdD4KIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIGludGVybmFscy5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgODAwLCA2MDApOworICAg
IGludGVybmFscy5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKHRydWUsIDgwMCwgNjAwKTsK
IAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvbWFpbC1hdXRvc2l6ZS12
aWV3cG9ydC11bml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvbWFpbC1hdXRvc2l6
ZS12aWV3cG9ydC11bml0Lmh0bWwKaW5kZXggNWQ1NWNhZTQ4YzQ4NmIzMjNjZjYyYjc0NGIwZjcx
ODcyOGI3ZWMyOC4uYmE5NDg1YjI0NDkzMGMyYzQ1Y2FmOTVhMjZhNGJjNjNmMTY0ZDM1MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL21haWwtYXV0b3NpemUtdmlld3BvcnQt
dW5pdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9tYWlsLWF1dG9zaXplLXZp
ZXdwb3J0LXVuaXQuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiBp
ZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKHRy
dWUsIDIwMDAsIDYwMCk7CisgICAgaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1v
ZGUodHJ1ZSwgMjAwMCwgNjAwKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAtNDUsNyArNDUsNyBAQCByZXN1bHQudGV4dENvbnRlbnQg
PSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh3MTAwLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3
aWR0aAogICAgICsgd2luZG93LmdldENvbXB1dGVkU3R5bGUodzEwLCBudWxsKS5nZXRQcm9wZXJ0
eVZhbHVlKCJ3aWR0aCIpICsgIiAiICAKIAkrIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHcwLCBu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOyAgCiBpZiAod2luZG93LmludGVybmFscykK
LSAgICBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCAwLCAwLCAwLCAwKTsKKyAg
ICBpbnRlcm5hbHMuZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShmYWxzZSwgMCwgMCwgMCwg
MCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394874</attachid>
            <date>2020-03-29 12:37:29 -0700</date>
            <delta_ts>2020-03-29 13:43:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200329213727.patch</filename>
            <type>text/plain</type>
            <size>43026</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uM2M3YzM1NmI3YTBmZTA0NzRhMDVkZmJhN2NiNTY0
ZWJmM2I4MDQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSB0d28gZXhjbHVzaXZlIGF1dG8tc2l6aW5nIG1vZGU6IGZpeGVkLXdpZHRoICh0
aGUgZXhpc3RpbmcgbW9kZSkgYW5kIHNpemUtdG8tY29udGVudCAodGhlIHJlc3VycmVjdGVkIG1v
ZGUpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmVuYWJsZVNpemVUb0NvbnRlbnRBdXRvU2l6ZU1vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgRGVmaW5lIEVOQUJMRV9XSEVFTF9FVkVOVF9MQVRDSElORyBhbmQgdXNlIGl0
IHRvIHdyYXAgd2hlZWwgZXZlbnQgbGF0Y2hpbmcgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMDgwNzQ2NmRh
ZjMyNTE1Nzg1MGMxZGJlZDQ3ZDJkZDE0M2Q1OGNiLi42MTYyNjc4NmI1M2JjZjc1MmZkNThlNThj
MzM2MjNiN2Y3MzIyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTI5ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmdd
IEJyaW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2Rl
cGF0aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYw
MTExMDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlIGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMg
aW4gcjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNr
CisgICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldFNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplOl0gU1BJLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcg
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3IHNl
dFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1h
eGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21l
dHJ5KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRv
IGFyYml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1MmVkNDg2NTgxMTNjYjUzNmU4YjJhOTg3
OGU1NjUwYzg3MTg0YjM5Li5mOTg0ZmMyZmYxODBjYTg5ZTI4YTc3YWYwMDY4YTZkNDAzNDM1NmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNDIzLDExICszNDIzLDMzIEBAIHZv
aWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgaWYgKCFmaXJzdENoaWxkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXpl
SWZFbmFibGVkIiwgdGhpcyk7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6
ZShtX2luQXV0b1NpemUsIHRydWUpOwogICAgIGlmIChsYXlvdXRDb250ZXh0KCkuc3VidHJlZUxh
eW91dFJvb3QoKSkKICAgICAgICAgbGF5b3V0Q29udGV4dCgpLmNvbnZlcnRTdWJ0cmVlTGF5b3V0
VG9GdWxsTGF5b3V0KCk7CiAKKyAgICBzd2l0Y2ggKG1fYXV0b1NpemVNb2RlKSB7CisgICAgY2Fz
ZSBBdXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRlbnQ6CisgICAgICAgIHBlcmZvcm1TaXplVG9Db250
ZW50QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkZp
eGVkV2lkdGg6CisgICAgICAgIHBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKKyAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdl
ZChtX2F1dG9TaXplQ29udGVudFNpemUpOworCisgICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7
Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRml4ZWRXaWR0aEF1dG9TaXplKCkKK3sKKyAg
ICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUiLCB0
aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1
dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGF1dG8qIGZpcnN0
Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENoaWxkKCk7CisKICAgICBTY3JvbGxiYXJNb2RlIGhv
cml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgU2Nyb2xsYmFy
TW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgc2V0
VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTM0NDIsNyArMzQ2NCw3IEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgUmVmPEZyYW1lVmlldz4gcHJvdGVj
dGVkVGhpcygqdGhpcyk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAg
ICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAg
Ly8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJl
bnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9u
YWxseSBzYXZlIGFuZCByZXBvcnQgCisgICAgLy8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6
ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91
dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCByZXBvcnQKICAgICAvLyB0
aGUgY3VycmVudCB2YWx1ZSB0byBhdm9pZCB1bnN0YWJsZSBsYXlvdXQgKGUuZy4gY29udGVudCAi
aGVpZ2h0OiAxMDAlIikuCiAgICAgLy8gU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE3MzU2MQogICAg
IG1fYXV0b1NpemVDb250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwpAQCAtMzQ1MSw5ICszNDcz
LDkxIEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgYXV0byBmaW5h
bEhlaWdodCA9IG1fYXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPyBzdGQ6Om1heChtX2F1dG9T
aXplRml4ZWRNaW5pbXVtSGVpZ2h0LCBtX2F1dG9TaXplQ29udGVudFNpemUuaGVpZ2h0KCkpIDog
bV9hdXRvU2l6ZUNvbnRlbnRTaXplLmhlaWdodCgpOwogICAgIHJlc2l6ZShmaW5hbFdpZHRoLCBm
aW5hbEhlaWdodCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwotICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCi0gICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRlbnRzU2l6ZUNoYW5nZWQobV9h
dXRvU2l6ZUNvbnRlbnRTaXplKTsKLSAgICBtX2RpZFJ1bkF1dG9zaXplID0gdHJ1ZTsKK30KKwor
dm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQoreworICAgIExP
RyhMYXlvdXQsICJGcmFtZVZpZXcgJXAgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSIsIHRo
aXMpOworCisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0
byogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJWaWV3KCk7CisKKyAgICBJbnRTaXplIG1p
bkF1dG9TaXplKDEsIDEpOworCisgICAgLy8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFu
ZCBhbGxvdyBpdCB0byBncm93LgorICAgIHJlc2l6ZShtaW5BdXRvU2l6ZS53aWR0aCgpLCBtaW5B
dXRvU2l6ZS5oZWlnaHQoKSk7CisgICAgSW50U2l6ZSBzaXplID0gZnJhbWVSZWN0KCkuc2l6ZSgp
OworICAgIC8vIERvIHRoZSByZXNpemluZyB0d2ljZS4gVGhlIGZpcnN0IHRpbWUgaXMgYmFzaWNh
bGx5IGEgcm91Z2ggY2FsY3VsYXRpb24gdXNpbmcgdGhlIHByZWZlcnJlZCB3aWR0aAorICAgIC8v
IHdoaWNoIG1heSByZXN1bHQgaW4gYSBoZWlnaHQgY2hhbmdlIGR1cmluZyB0aGUgc2Vjb25kIGl0
ZXJhdGlvbi4KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAvLyBV
cGRhdGUgdmFyaW91cyBzaXplcyBpbmNsdWRpbmcgY29udGVudHNTaXplLCBzY3JvbGxIZWlnaHQs
IGV0Yy4KKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgICAgICBpbnQgd2lkdGggPSByZW5kZXJWaWV3LT5taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGgoKTsKKyAgICAgICAgaW50IGhlaWdodCA9IHJlbmRlclZpZXctPmRvY3VtZW50UmVj
dCgpLmhlaWdodCgpOworICAgICAgICBJbnRTaXplIG5ld1NpemUod2lkdGgsIGhlaWdodCk7CisK
KyAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCBmb3IgYSBn
aXZlbiBkaW1lbnNpb24gYW5kCisgICAgICAgIC8vIGlmIHNvLCBpbmNyZWFzZSB0aGUgb3RoZXIg
ZGltZW5zaW9uIHRvIGFjY291bnQgZm9yIHRoZSBzY3JvbGxiYXIuCisgICAgICAgIC8vIFNpbmNl
IHRoZSBkaW1lbnNpb25zIGFyZSBvbmx5IGZvciB0aGUgdmlldyByZWN0YW5nbGUsIG9uY2UgYQor
ICAgICAgICAvLyBkaW1lbnNpb24gZXhjZWVkcyB0aGUgbWF4aW11bSwgdGhlcmUgaXMgbm8gbmVl
ZCB0byBpbmNyZWFzZSBpdCBmdXJ0aGVyLgorICAgICAgICBpZiAobmV3U2l6ZS53aWR0aCgpID4g
bV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lkdGgoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9s
bGJhcj4gbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpOwor
ICAgICAgICAgICAgaWYgKCFsb2NhbEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAg
ICAgbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyID0gY3JlYXRlU2Nyb2xsYmFyKEhvcml6b250YWxT
Y3JvbGxiYXIpOworICAgICAgICAgICAgbmV3U2l6ZS5leHBhbmQoMCwgbG9jYWxIb3Jpem9udGFs
U2Nyb2xsYmFyLT5vY2N1cGllZEhlaWdodCgpKTsKKworICAgICAgICAgICAgLy8gRG9uJ3QgYm90
aGVyIGNoZWNraW5nIGZvciBhIHZlcnRpY2FsIHNjcm9sbGJhciBiZWNhdXNlIHRoZSB3aWR0aCBp
cyBhdAorICAgICAgICAgICAgLy8gYWxyZWFkeSBncmVhdGVyIHRoZSBtYXhpbXVtLgorICAgICAg
ICB9IGVsc2UgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC5oZWln
aHQoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxWZXJ0aWNhbFNjcm9s
bGJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsVmVydGlj
YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAgICAgbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IGNy
ZWF0ZVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXplLmV4
cGFuZChsb2NhbFZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOworCisgICAg
ICAgICAgICAvLyBEb24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgaG9yaXpvbnRhbCBzY3JvbGxi
YXIgYmVjYXVzZSB0aGUgaGVpZ2h0IGlzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIg
dGhlIG1heGltdW0uCisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgdGhlIHNpemUgaXMg
YXQgbGVhc3QgdGhlIG1pbiBib3VuZHMuCisgICAgICAgIG5ld1NpemUgPSBuZXdTaXplLmV4cGFu
ZGVkVG8obWluQXV0b1NpemUpOworCisgICAgICAgIC8vIEJvdW5kIHRoZSBkaW1lbnNpb25zIGJ5
IHRoZSBtYXggYm91bmRzIGFuZCBkZXRlcm1pbmUgd2hhdCBzY3JvbGxiYXJzIHRvIHNob3cuCisg
ICAgICAgIFNjcm9sbGJhck1vZGUgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFs
d2F5c09mZjsKKyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fYXV0b1NpemVDb25zdHJh
aW50LndpZHRoKCkpIHsKKyAgICAgICAgICAgIG5ld1NpemUuc2V0V2lkdGgobV9hdXRvU2l6ZUNv
bnN0cmFpbnQud2lkdGgoKSk7CisgICAgICAgICAgICBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0g
U2Nyb2xsYmFyQWx3YXlzT247CisgICAgICAgIH0KKyAgICAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0
aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CisgICAgICAgIGlmIChuZXdT
aXplLmhlaWdodCgpID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpIHsKKyAgICAgICAg
ICAgIG5ld1NpemUuc2V0SGVpZ2h0KG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKTsKKyAg
ICAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09uOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKG5ld1NpemUgPT0gc2l6ZSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIC8vIFdoaWxlIGxvYWRpbmcgb25seSBhbGxvdyB0aGUgc2l6ZSB0byBp
bmNyZWFzZSAodG8gYXZvaWQgdHdpdGNoaW5nIGR1cmluZyBpbnRlcm1lZGlhdGUgc21hbGxlciBz
dGF0ZXMpCisgICAgICAgIC8vIHVubGVzcyBhdXRvcmVzaXplIGhhcyBqdXN0IGJlZW4gdHVybmVk
IG9uIG9yIHRoZSBtYXhpbXVtIHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHNpemUu
CisgICAgICAgIGlmIChtX2RpZFJ1bkF1dG9zaXplICYmIHNpemUuaGVpZ2h0KCkgPD0gbV9hdXRv
U2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkgJiYgc2l6ZS53aWR0aCgpIDw9IG1fYXV0b1NpemVDb25z
dHJhaW50LndpZHRoKCkKKyAgICAgICAgICAgICYmICFmcmFtZSgpLmxvYWRlcigpLmlzQ29tcGxl
dGUoKSAmJiAobmV3U2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkgfHwgbmV3U2l6ZS53aWR0
aCgpIDwgc2l6ZS53aWR0aCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIFRo
ZSBmaXJzdCB0aW1lIGFyb3VuZCwgcmVzaXplIHRvIHRoZSBtaW5pbXVtIGhlaWdodCBhZ2Fpbjsg
b3RoZXJ3aXNlLAorICAgICAgICAvLyBvbiBwYWdlcyAoZS5nLiBxdWlya3MgbW9kZSkgd2hlcmUg
dGhlIGJvZHkvZG9jdW1lbnQgcmVzaXplIHRvIHRoZSB2aWV3IHNpemUsCisgICAgICAgIC8vIHdl
J2xsIGVuZCB1cCBub3Qgc2hyaW5raW5nIGJhY2sgZG93biBhZnRlciByZXNpemluZyB0byB0aGUg
Y29tcHV0ZWQgcHJlZmVycmVkIHdpZHRoLgorICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgp
LCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgpKTsKKyAgICAgICAg
Ly8gRm9yY2UgdGhlIHNjcm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUg
YWRkaW5nIHRoZW0gYW5kIGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAor
ICAgICAgICAvLyBhIHZlcnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFu
ZCB0aHVzIGluY3JlYXNlIHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUg
c2NvbGxiYXIgaXMgbmVlZGVkKS4KKyAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZh
bHNlKTsKKyAgICAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgICAg
ICBzZXRTY3JvbGxiYXJNb2Rlcyhob3Jpem9uYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9s
bGJhck1vZGUsIHRydWUsIHRydWUpOworICAgIH0KKyAgICAvLyBBbGwgdGhlIHJlc2l6aW5nIGFi
b3ZlIG1heSBoYXZlIGludmFsaWRhdGVkIHN0eWxlIChmb3IgZXhhbXBsZSBpZiB2aWV3cG9ydCB1
bml0cyBhcmUgYmVpbmcgdXNlZCkuCisKKyAgICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOworICAgIC8vIEZJWE1FOiBVc2UgdGhlIGZpbmFsIGxheW91dCdzIHJlc3VsdCBhcyB0aGUg
Y29udGVudCBzaXplICh3ZWJraXQub3JnL2IvMTczNTYxKS4KKyAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgbV9hdXRvU2l6ZUNvbnRlbnRT
aXplID0gY29udGVudHNTaXplKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRBdXRvU2l6ZUZp
eGVkTWluaW11bUhlaWdodChpbnQgZml4ZWRNaW5pbXVtSGVpZ2h0KQpAQCAtNDQ2NSwxMiArNDU2
OSwyMyBAQCBib29sIEZyYW1lVmlldzo6aXNWaWV3Rm9yRG9jdW1lbnRJbkZyYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gJnJlbmRlclZpZXctPmZyYW1lVmlldygpID09IHRoaXM7CiB9CiAKLXZvaWQg
RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUm
IHZpZXdTaXplKQordm9pZCBGcmFtZVZpZXc6OmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUo
Ym9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9T
aXplTW9kZShlbmFibGUsIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkZpeGVkV2lkdGgpOworfQor
Cit2b2lkIEZyYW1lVmlldzo6ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2Rl
KGVuYWJsZSwgdmlld1NpemUsIEF1dG9TaXplTW9kZTo6U2l6ZVRvQ29udGVudCk7Cit9CisKK3Zv
aWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNp
emUmIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8
fCAhdmlld1NpemUuaXNFbXB0eSgpKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFi
bGUgJiYgbV9hdXRvU2l6ZUNvbnN0cmFpbnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fYXV0b1NpemVNb2RlID0gbW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5h
YmxlOwogICAgIG1fYXV0b1NpemVDb25zdHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6
ZUNvbnRlbnRTaXplID0gY29udGVudHNTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCBjMjJlNGU1OGMxNDQ4YTJkZmM2NmY5NDQwYjQxNzJkNzgyMjRlNjMwLi4yZjMzM2UxNWRhMWVj
OTBhNmRhOWYyZTg1YmY4MjVkNzUxNWIyMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTM5OSw5ICszOTksMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXN1YWxseU5vbkVtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5OyB9CiAg
ICAgdm9pZCBjaGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxl
LCBjb25zdCBJbnRTaXplJiBtaW5TaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJs
ZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNp
emUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXpl
TW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwotICAgIGJvb2wg
aXNBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9Cisg
ICAgYm9vbCBpc0ZpeGVkV2lkdGhBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZEF1dG9TaXplICYmIG1fYXV0b1NpemVNb2RlID09IEF1dG9TaXplTW9kZTo6Rml4ZWRXaWR0
aDsgfQorICAgIGJvb2wgaXNTaXplVG9Db250ZW50QXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1vZGU6
OlNpemVUb0NvbnRlbnQ7IH0KICAgICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmb3JjZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZh
bHNlKTsKQEAgLTcwNCw3ICs3MDYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlTGF5b3V0
UGFyZW50Vmlld0lmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVl
KCk7CiAgICAgdm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CisKKyAgICBlbnVtIGNsYXNz
IEF1dG9TaXplTW9kZSA6IHVpbnQ4X3QgeyBGaXhlZFdpZHRoLCBTaXplVG9Db250ZW50IH07Cisg
ICAgdm9pZCBlbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1p
blNpemUsIEF1dG9TaXplTW9kZSk7CiAgICAgdm9pZCBhdXRvU2l6ZUlmRW5hYmxlZCgpOworICAg
IHZvaWQgcGVyZm9ybUZpeGVkV2lkdGhBdXRvU2l6ZSgpOworICAgIHZvaWQgcGVyZm9ybVNpemVU
b0NvbnRlbnRBdXRvU2l6ZSgpOwogCiAgICAgdm9pZCBhcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2li
bGVSZWN0KGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNv
bnN0IEludFJlY3QmIHZpc2libGVSZWN0KT4mKTsKICAgICB2b2lkIHJlc3VtZVZpc2libGVJbWFn
ZUFuaW1hdGlvbnMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwpAQCAtOTMxLDYgKzkzOCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0ZsaXBwZWRCbG9ja1JlbmRlcmVycyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3Rpbmcg
eyBmYWxzZSB9OwogCisgICAgQXV0b1NpemVNb2RlIG1fYXV0b1NpemVNb2RlIHsgQXV0b1NpemVN
b2RlOjpGaXhlZFdpZHRoIH07CiAgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUg
dGhlIGZyYW1lIHZpZXcgYXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9zaG91bGRBdXRv
U2l6ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luQXV0b1NpemUgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFmZmI0MzY5YWI0
ZWMzYTljMGJmZmMyOTguLmM4ZmJmNWY4NmRiODE4YjUwOTQ3YTY4NTk2NDdjN2MwOWFjNjhlZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2
b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgICAg
ICBwYWdlLnNldFRvcENvbnRlbnRJbnNldCgwKTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0
VXNlRml4ZWRMYXlvdXQoZmFsc2UpOwogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRGaXhlZExh
eW91dFNpemUoSW50U2l6ZSgpKTsKLSAgICAgICAgbWFpbkZyYW1lVmlldy0+ZW5hYmxlQXV0b1Np
emVNb2RlKGZhbHNlLCB7IH0pOworICAgICAgICBtYWluRnJhbWVWaWV3LT5lbmFibGVGaXhlZFdp
ZHRoQXV0b1NpemVNb2RlKGZhbHNlLCB7IH0pOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50
UmVjdCgpKTsKICNlbmRpZgpAQCAtMzU4MiwxMiArMzU4MiwxMiBAQCB2b2lkIEludGVybmFsczo6
cmVsb2FkRXhwaXJlZE9ubHkoKQogICAgIGZyYW1lKCktPmxvYWRlcigpLnJlbG9hZChSZWxvYWRP
cHRpb246OkV4cGlyZWRPbmx5KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXpl
TW9kZShib29sIGVuYWJsZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3ZvaWQgSW50ZXJuYWxz
OjplbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIGRvY3VtZW50LT52aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShlbmFibGVkLCB7IHdpZHRo
LCBoZWlnaHQgfSk7CisgICAgZG9jdW1lbnQtPnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9T
aXplTW9kZShlbmFibGVkLCB7IHdpZHRoLCBoZWlnaHQgfSk7CiB9CiAKICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUy
MzUyMzQxZGI4YzE1ZDQyOWY5Y2VmZDI4OWRmNTIyNzBlNWFjN2MuLjI3YjA4Yzk0OGQ0NzgwYmIw
YWNhMzA2ZGExN2Y0MGZhZjUxZWE4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtNTM4LDcgKzUzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wgZW5k
VG9FbmQpOwogICAgIHZvaWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxl
QXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2
b2lkIGVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGVkLCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpOwogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAg
dm9pZCBpbml0aWFsaXplTW9ja0NETSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDE2MmZhZjQ5NDZlYWFkZDk4MGU1Nzg5YTE4YmJkZWM1NTgzZjYzMjMuLjA0NDY5MjA2
MjFlZjQyMTJlMmM1OGE3NmUxOGMxMTNmMDU2ZmU0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTU2NCw3ICs1NjQsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsK
ICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2xlYW4gZW5kVG9FbmQpOwogICAgIHZvaWQgcmVsb2Fk
RXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2xlYW4gZW5h
YmxlZCwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgZW5hYmxlRml4ZWRXaWR0
aEF1dG9TaXplTW9kZShib29sZWFuIGVuYWJsZWQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsK
IAogICAgIFtDb25kaXRpb25hbD1WSURFT10gc2VxdWVuY2U8RE9NU3RyaW5nPiBtZWRpYVJlc3Bv
bnNlU291cmNlcyhIVE1MTWVkaWFFbGVtZW50IG1lZGlhKTsKICAgICBbQ29uZGl0aW9uYWw9VklE
RU9dIHNlcXVlbmNlPERPTVN0cmluZz4gbWVkaWFSZXNwb25zZUNvbnRlbnRSYW5nZXMoSFRNTE1l
ZGlhRWxlbWVudCBtZWRpYSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDcyNGMxNmU1MDQzM2RlYmIyNDBkOWJlMTNiZTlh
NWYwNTc5YmFhNDMuLmM2YWVmNTFjY2Y5ZTQ5NzYxM2U3YmFmMTgwZTI1MzhkNmY3ODZmMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC02Nyw2ICs2Nyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBsYXliYWNrSXNTdXNwZW5k
ZWQ7CiAgICAgZW5jb2RlciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgZW5jb2Rl
ciA8PCBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBlbmNvZGVyIDw8IGF1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxQ
aW5uaW5nQmVoYXZpb3IpOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IGU4YjlmYTg4NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLjU4OGZhYzUw
ZmU5MGFiMjEwZWVlNjc5OGY0NTk1ZGM2Y2U2MmRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBz
dHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNr
SXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZTsKICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQ7CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tWaWV3UHJpdmF0ZS5oCmluZGV4IDBmMjI2ZWJjNTgzYTZlZDg0ZmUzMTQ4ZjM1ZjY1NGNl
ZDc4ZGJlZDYuLmExYTcyNjYyYmYyYzc2ZDBiNmFhMGY2Y2IzYzJhODA3MGY2ZDMwMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApA
QCAtNTgsNiArNTgsNyBAQAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3c7CiAKIEBw
cm9wZXJ0eSAocmVhZHdyaXRlKSBOU1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworQHBy
b3BlcnR5IChyZWFkd3JpdGUpIE5TU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTsKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIHNob3VsZENsaXBUb1Zpc2libGVSZWN0Owog
QHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0
b0xheW91dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1VzaW5nVUlTaWRlQ29tcG9z
aXRpbmcpIEJPT0wgdXNpbmdVSVNpZGVDb21wb3NpdGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGYyYWM2MDE4
NjE1MGRlNjJmZmJlNDk3MWJmNWJmMmMyM2U1ODUxNjQuLjIwM2ViMzdjY2IxZGVkOWVkNWFkMDQ4
N2EwNTRlNjkxM2FkNGIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNTA4LDYgKzUwOCw3IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5k
Q29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250
ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0
aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZTopIENHU2l6ZSBfc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNp
emU7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpv
bnRhbFNjcm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRkYzZmZmZhMzMwYTgzY2I3MmJl
MTkzMGZjNzIxMDEzMzQyMGQ4MjYuLmI0Mjc1N2Y5NTY2MDMxYTYwZjA2ZWFkMmM1ZTEzOGQ5OGRk
NWNhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0x
MjY4LDYgKzEyNjgsMTYgQEAgLSAodm9pZClzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ6KE5T
U2l6ZSltaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQKICAgICBfZGF0YS0+X2ltcGwtPnNldE1pbmlt
dW1TaXplRm9yQXV0b0xheW91dChOU1NpemVUb0NHU2l6ZShtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQpKTsKIH0KIAorLSAoTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7
CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5zaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZSgpKTsKK30KKworLSAodm9pZClzZXRTaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZTooTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXpl
Cit7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZShOU1NpemVUb0NHU2l6ZShzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkpOworfQor
CiAtIChCT09MKXNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQKIHsKICAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5zaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmll
d01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
CmluZGV4IDc1OGVlMTExMmI0OTkzMDBlNWVhNmY1ZmE3MDM0OWY0Yjc1ZTRhM2YuLmZiMjdhNmE0
NDc2NDFmMmJmYWU2NDhjMTYzYWE0MjM5YTI0MzdkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNDAwLDYgKzE0MDAsMjEgQEAg
LSAodm9pZClfc2V0TWluaW11bUxheW91dFdpZHRoOihDR0Zsb2F0KXdpZHRoCiAgICAgX2ltcGwt
PnNldENsaXBzVG9WaXNpYmxlUmVjdChleHBhbmRzVG9GaXQpOwogfQogCistIChDR1NpemUpX3Np
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIF9wYWdlLT5taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKK30KKworLSAodm9pZClfc2V0U2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQg
PSBzaXplLndpZHRoID4gMCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+c2V0U2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplLndpZHRo
LCBzaXplLmhlaWdodCkpOworICAgIF9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4
cGFuZHNUb0ZpdCk7CisKKyAgICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNU
b0ZpdCk7Cit9CisKIC0gKEJPT0wpX2NsaXBzVG9WaXNpYmxlUmVjdAogewogICAgIHJldHVybiBf
aW1wbC0+Y2xpcHNUb1Zpc2libGVSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAppbmRleCA3OGU1NDYyNzNmYzc3YWNmODEzN2UwM2E3YjgyYzYyMGVm
ODFmYzM3Li5jYjdmYmY5M2UzMDBjMTI2ZjgwZGE0NzRlOTZhMmUyYzliYjRkYjc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTIyNCw2ICsyMjQs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChDR1Np
emUpOwogICAgIENHU2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdDsKKyAgICB2
b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSk7CisgICAgQ0dT
aXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJvb2wg
c2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZiODNk
YTBmZTU2MjQxOGMxZS4uMThiNjI3YzhlNTA4MDg0ZGRjNDRkYjU4NTYwZmJlYWYzZTAwMTkwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5
MjYsNiArMTkyNiwyMSBAQCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0
KCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKENHU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkKK3sKKyAgICBi
b29sIGV4cGFuZHNUb0ZpdCA9IHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRo
ID4gMCAmJiBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQgPiAwOworCisg
ICAgbV9wYWdlLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShXZWJDb3JlOjpJ
bnRTaXplKHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5z
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1Rv
VmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpzaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5zZXRBdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQpOwpAQCAtMTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0
SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQogICAgIC8v
IHNvIHdlIGNhbiByZXBvcnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90
LCB3ZSBuZWVkIHRvIHJlcG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28gdGhhdCBh
dXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAgIC8vIEZJ
WE1FOiB3aGF0IHRvIGRvIGhlcmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNr
bm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBpZiAo
aW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpLndpZHRoKCkpCiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2lu
Z0ZsZXhpYmxlV2lkdGgud2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4MWMzY2M0
YWUxNjRkZmEyMmUwNTNmZGM5OTE0OWNjLi5kNTExOTI2NjQ5MGFjOWMzZjBlOWRjYjA5YjZiMTA1
ZjQ1OTdhNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNl
RGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91
dERpZENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZURpZENoYW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5z
aWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBk
MjAzZDYzNjAzYjc3MmI4NjFiNTY4ZmVjYTJmMy4uOTAyYzk4YWNkYzc3ZTQ3OWVhMGUxMzNmMjhl
Y2FmZTgwYWE3ZGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC03Njg2LDYgKzc2ODYsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQ
cm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFt
ZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdzsKICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQ
bGF5YmFja0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5
b3V0ID0gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5zaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9IG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11
bVNpemU7CiAgICAgcGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
ID0gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRlcnMu
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czsKICAgICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yOwpAQCAtODM1NSw2ICs4MzU2LDI1IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNl
bmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4
aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Np
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVu
bmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1f
ZHJhd2luZ0FyZWEtPnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCk7
CisKKyNpZiBVU0UoQVBQS0lUKQorICAgIGlmIChtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplLndpZHRoKCkgPD0gMCkKKyAgICAgICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNp
emUoSW50U2l6ZSgtMSwgLTEpKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsK
ICAgICBpZiAobV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4
cGFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjY4ODgwMTJj
MzI5OWEyNjZlN2UxZTU4NWMwM2IwYTI4NWRiZmY4ZS4uZTYxYjdmNDJkOTBhMTZjMmQ4NTVkZTIx
Y2U5YzJkNTRmZDkyYjJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTEzNDQsNiArMTM0NCw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRv
TGF5b3V0OyB9CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXpl
TWF4aW11bVNpemU7IH0KKyAgICB2b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodDsgfQogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodChib29sKTsKIApAQCAtMjYwMyw2ICsyNjA2LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fc3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6
OkludFNpemUgbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAg
Ly8gVmlzdWFsIHZpZXdwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXgg
OGMzYmRjY2IxY2UxNGRlYjk2ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uODNjNzBjZmMxMTNmYTM3
ZjRlM2VkYWYzODBjNjMwNmQ5ZDY0YmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpAQCAtNzEsNiAr
NzIsOSBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ug
c2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50
TWluaW11bVNpemVGb3JBdXRvTGF5b3V0OwogCisgICAgLy8gVGhlIGxhc3QgbWF4bWl1bSBzaXpl
IGZvciBzaXplLXRvLWNvbnRlbnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nl
c3MuCisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVudEF1dG9TaXpl
TWF4aW11bVNpemU7CisKICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0OWM1ZGJhNTcwZTUwZjBm
MDMzZjBkNWM1NDNhZTc5Ny4uNzFlNDVhMjYxYjA0ZDUwMjk5ZWVlMzQwMDZmOTdkYzc5YjkwMmIy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTkwLDYgKzkwLDE5IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6bWluaW11bVNpemVGb3JB
dXRvTGF5b3V0RGlkQ2hhbmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAordm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZURpZENoYW5nZSgpCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNS
dW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBvbmx5IHdhbnQg
b25lIFVwZGF0ZUdlb21ldHJ5IG1lc3NhZ2UgaW4gZmxpZ2h0IGF0IG9uY2UsIHNvIGlmIHdlJ3Zl
IGFscmVhZHkgc2VudCBvbmUgYnV0CisgICAgLy8gaGF2ZW4ndCB5ZXQgcmVjZWl2ZWQgdGhlIHJl
cGx5IHdlJ2xsIGp1c3QgcmV0dXJuIGVhcmx5IGhlcmUuCisgICAgaWYgKG1faXNXYWl0aW5nRm9y
RGlkVXBkYXRlR2VvbWV0cnkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmRVcGRhdGVHZW9t
ZXRyeSgpOworfQorCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBtX3dl
YlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRl
eHQpOwpAQCAtMTA3LDEwICsxMjAsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSgpCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRh
dGVHZW9tZXRyeSA9IGZhbHNlOwogCiAgICAgSW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQgPSBtX3dlYlBhZ2VQcm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKKyAgICBJbnRT
aXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuc2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcg
d2FzIHJlc2l6ZWQgd2hpbGUgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5
IHJlcGx5IGZyb20gdGhlIHdlYiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRo
ZSBuZXcgc2l6ZSBoZXJlLgotICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9s
YXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCAhPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQpCisgICAgaWYgKG1fbGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11
bVNpemVGb3JBdXRvTGF5b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCB8fCBtX2xhc3RT
ZW50U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUgIT0gc2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUpCiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0x
MjMsNiArMTM3LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3
YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAg
bV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCgpOworICAgIG1fbGFzdFNlbnRTaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZSA9IG1fd2ViUGFnZVByb3h5LnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKCk7CiAgICAgbV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9pc1dhaXRpbmdG
b3JEaWRVcGRhdGVHZW9tZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCAzMjdmZmM0ZjZkZDU2MzkxOTQwZWIwYTA3MTQzNTBjYjhmMjJmMmRkLi5kZTIx
NjY0NzZiNmU3M2IxYmI4NjI5MjBiNzlhYjgzNGNmOWYwY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTE1MDcsNyArMTUwNywxNSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBSZWZQdHI8RnJh
bWVWaWV3PiB2aWV3ID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBpZiAoaW50
IHdpZHRoID0gd2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkgewog
ICAgICAgICBpbnQgaGVpZ2h0ID0gc3RkOjptYXgod2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KCkuaGVpZ2h0KCksIDEpOwotICAgICAgICB2aWV3LT5lbmFibGVBdXRvU2l6ZU1vZGUo
dHJ1ZSwgeyB3aWR0aCwgaGVpZ2h0IH0pOworICAgICAgICB2aWV3LT5lbmFibGVGaXhlZFdpZHRo
QXV0b1NpemVNb2RlKHRydWUsIHsgd2lkdGgsIGhlaWdodCB9KTsKKworICAgICAgICBpZiAod2Vi
UGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAg
dmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdo
dCgpKTsKKyAgICB9CisKKyAgICBJbnRTaXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplID0gd2ViUGFnZS0+c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKKyAgICBp
ZiAoc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUud2lkdGgoKSAmJiBzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQoKSkgeworICAgICAgICB2aWV3LT5lbmFibGVT
aXplVG9Db250ZW50QXV0b1NpemVNb2RlKHRydWUsIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKTsKIAogICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpKQogICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1I
ZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjc1ZWY1MmExM2I0YWZhYThlMDlkYzUxM2Q0
MjhkMzEyMmUxZjAzNi4uNzA3YzM4ZTRkMzBjZmI0NmRkM2ZmZjUzNTQ1NGJlNmVhYjk3NDM3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYz
Myw2ICs2MzMsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgdXBkYXRlSXNJbldpbmRv
dyh0cnVlKTsKIAogICAgIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChwYXJhbWV0ZXJzLm1p
bmltdW1TaXplRm9yQXV0b0xheW91dCk7CisgICAgc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4
aW11bVNpemUocGFyYW1ldGVycy5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSk7CiAg
ICAgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChwYXJhbWV0ZXJzLmF1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQpOwogICAgIHNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMocGFyYW1ldGVycy52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
KTsKICAgICAKQEAgLTc5NCw2ICs3OTUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdl
YlBhZ2UoV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgfQogCiAg
ICAgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KTsKKyAgICBzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShwYXJh
bWV0ZXJzLnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2Fj
dGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rp
dml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFz
eW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY3NywxMSArNTY3OSwyNSBA
QCB2b2lkIFdlYlBhZ2U6OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBJbnRTaXpl
JiBzaXplKQogCiAgICAgbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBzaXplOwogICAgIGlm
IChzaXplLndpZHRoKCkgPD0gMCkgewotICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52
aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgY29yZVBhZ2Uo
KS0+bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGZhbHNl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29yZVBhZ2UoKS0+bWFpbkZy
YW1lKCkudmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0
ZDo6bWF4KHNpemUuaGVpZ2h0KCksIDEpIH0pOworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSh0cnVlLCB7IHNpemUud2lkdGgo
KSwgc3RkOjptYXgoc2l6ZS5oZWlnaHQoKSwgMSkgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0
U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sK
KyAgICBpZiAobV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0g
c2l6ZTsKKyAgICBpZiAoc2l6ZS53aWR0aCgpIDw9IDAgfHwgc2l6ZS5oZWlnaHQoKSA8PSAwKSB7
CisgICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29u
dGVudEF1dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1
dG9TaXplTW9kZSh0cnVlLCBzaXplKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRBdXRvU2l6aW5n
U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKQpAQCAtNjQzMSwxMCAr
NjQ0NywxMCBAQCB2b2lkIFdlYlBhZ2U6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKIAogdm9pZCBX
ZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53
aWR0aCgpKQorICAgIGlmICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSAmJiAh
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmICFzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAg
QVNTRVJUKG1haW5GcmFtZVZpZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNB
dXRvU2l6ZUVuYWJsZWQoKSk7CisgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNGaXhlZFdp
ZHRoQXV0b1NpemVFbmFibGVkKCkgfHwgbWFpbkZyYW1lVmlldygpLT5pc1NpemVUb0NvbnRlbnRB
dXRvU2l6ZUVuYWJsZWQoKSk7CiAgICAgQVNTRVJUKCFtYWluRnJhbWVWaWV3KCktPm5lZWRzTGF5
b3V0KCkpOwogICAgIGlmIChtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemUgPT0gc2l6ZSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDQyNjI3MDM3YTdlOWZiY2VjOTQ2ZjdkMzQzYWRjYjczMjMwMzZlMjQuLmIwOGE0
ZjVhMGFmZjM2MzFhODRjMDZkMTY4ZGUxZTYzMGQ3NjU1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwNjUsNiArMTA2NSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBj
b25zdCB7IHJldHVybiBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogCisgICAgdm9pZCBz
ZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0K
KwogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNo
b3VsZEV4cGFuZCk7CiAgICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
KCkgeyByZXR1cm4gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OyB9CiAKQEAg
LTE5MDcsNiArMTkxMCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nPiBt
X3RyYWNrZWROZXR3b3JrUmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBXZWJDb3Jl
OjpJbnRTaXplIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6OkludFNp
emUgbV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi42NGEzZDIw
MGE5YzQ1Y2ZjNTVmZmU3YjE2MTBiOGE0NWU0MTBmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0
NjEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGlj
YWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1p
bmltdW1TaXplRm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0U2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZSBzaXplKQogICAg
IFNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQp
CiAKICAgICBTZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKE9wdGlvbmFsPFdlYkNv
cmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQppbmRleCBiMmE2ZDNkZDFkZGU0NDBkZmY2YzhiYmUyMTY3Y2Y1YTcyZWY5MGMw
Li45YzA4ODdlNjkzZTI4OGVjNGU3YTNlMDMwN2Q2ZGM3MTk5OTJkOGQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC01ODQsNyArNTg0LDcgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6
ZSYgdmlld1NpemUsIGJvb2wKICAgICBJbnRTaXplIHNpemUgPSB2aWV3U2l6ZTsKICAgICBJbnRT
aXplIGNvbnRlbnRTaXplID0gSW50U2l6ZSgtMSwgLTEpOwogCi0gICAgaWYgKCFtX3dlYlBhZ2Uu
bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgIGlmICghbV93ZWJQYWdlLm1pbmltdW1T
aXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQoKSB8fCAoIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSgpLndpZHRoKCkgJiYgIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7
CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7
CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2Vi
UGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQoKS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcg
JiYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dl
YlBhZ2Uuc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmIG1fd2Vi
UGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkpIHsKICAg
ICAgICAgY29udGVudFNpemUgPSBmcmFtZVZpZXctPmF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50
U2l6ZSgpOwogICAgICAgICBzaXplID0gY29udGVudFNpemU7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQyZTJm
N2Q1NTZlOTVlYzMyNGE5NGUyZjMyOGYxM2NmYjQwODE3NmMuLmJhYmUyYTU2YWQ1Njc5MGM3NWU4
MGRjNjg4NTUwNjExMzRiYmQzZTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMy0yOSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5n
XSBCcmluZyBiYWNrIHRoZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29k
ZXBhdGggZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MDExMTA4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgbWV0aG9kcyBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKCkgaGFzIGNoYW5nZWQg
dG8gaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoKS4KKworICAgICAgICAq
IGZhc3QvZHluYW1pYy9jcmFzaC1zdWJ0cmVlLWxheW91dC13aGVuLWF1dG8tc2l6ZS1lbmFibGVk
Lmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL21haWwtYXV0b3NpemUtdmlld3BvcnQtdW5p
dC5odG1sOgorCiAyMDIwLTAzLTI3ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQ
YXJhZ3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9MIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY3Jhc2gtc3VidHJlZS1sYXlvdXQtd2hl
bi1hdXRvLXNpemUtZW5hYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2NyYXNo
LXN1YnRyZWUtbGF5b3V0LXdoZW4tYXV0by1zaXplLWVuYWJsZWQuaHRtbAppbmRleCBkZDhkNDdh
YWM3NzI1YTRlN2IzOWZiMGJmN2EzOTJjYjVhODUwNDQ0Li41M2QzNDZiMWVmYmQwMTI5YjhlMDNi
NjU2MzcwM2M2ODNlZWEyZjM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMv
Y3Jhc2gtc3VidHJlZS1sYXlvdXQtd2hlbi1hdXRvLXNpemUtZW5hYmxlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZHluYW1pYy9jcmFzaC1zdWJ0cmVlLWxheW91dC13aGVuLWF1dG8tc2l6
ZS1lbmFibGVkLmh0bWwKQEAgLTE1LDcgKzE1LDcgQEAKIDxkaXY+UGFzcyBpZiBubyBjcmFzaCBv
ciBhc3NlcnQuPGRpdiBpZD1yZXNpemVUaGlzPjwvZGl2PjwvZGl2PgogPHNjcmlwdD4KIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwg
ODAwLCA2MDApOworICAgIGludGVybmFscy5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKHRy
dWUsIDgwMCwgNjAwKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMv
bWFpbC1hdXRvc2l6ZS12aWV3cG9ydC11bml0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFt
aWMvbWFpbC1hdXRvc2l6ZS12aWV3cG9ydC11bml0Lmh0bWwKaW5kZXggNWQ1NWNhZTQ4YzQ4NmIz
MjNjZjYyYjc0NGIwZjcxODcyOGI3ZWMyOC4uYmE5NDg1YjI0NDkzMGMyYzQ1Y2FmOTVhMjZhNGJj
NjNmMTY0ZDM1MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL21haWwtYXV0
b3NpemUtdmlld3BvcnQtdW5pdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9t
YWlsLWF1dG9zaXplLXZpZXdwb3J0LXVuaXQuaHRtbApAQCAtMjUsNyArMjUsNyBAQAogPC9zdHls
ZT4KIDxzY3JpcHQ+CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuZW5hYmxl
QXV0b1NpemVNb2RlKHRydWUsIDIwMDAsIDYwMCk7CisgICAgaW50ZXJuYWxzLmVuYWJsZUZpeGVk
V2lkdGhBdXRvU2l6ZU1vZGUodHJ1ZSwgMjAwMCwgNjAwKTsKIAogaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwpAQCAtNDUsNyArNDUsNyBAQCByZXN1
bHQudGV4dENvbnRlbnQgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh3MTAwLCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCJ3aWR0aAogICAgICsgd2luZG93LmdldENvbXB1dGVkU3R5bGUodzEwLCBu
dWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpICsgIiAiICAKIAkrIHdpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHcwLCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ3aWR0aCIpOyAgCiBpZiAod2lu
ZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKGZhbHNlLCAw
LCAwLCAwLCAwKTsKKyAgICBpbnRlcm5hbHMuZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZShm
YWxzZSwgMCwgMCwgMCwgMCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394876</attachid>
            <date>2020-03-29 13:43:17 -0700</date>
            <delta_ts>2020-06-09 10:21:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209669-20200329224315.patch</filename>
            <type>text/plain</type>
            <size>44401</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE0NDdjYTMwN2E2YmI1
YzIyMWZhZDJjYmQwZGE5NTc1YTc3YjQ1ZC4uM2M3YzM1NmI3YTBmZTA0NzRhMDVkZmJhN2NiNTY0
ZWJmM2I4MDQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIwLTAzLTI5ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmddIEJy
aW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2RlcGF0
aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwMTEx
MDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMgaW4g
cjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNrCisg
ICAgICAgIHZpYSB0d28gZXhjbHVzaXZlIGF1dG8tc2l6aW5nIG1vZGU6IGZpeGVkLXdpZHRoICh0
aGUgZXhpc3RpbmcgbW9kZSkgYW5kIHNpemUtdG8tY29udGVudCAodGhlIHJlc3VycmVjdGVkIG1v
ZGUpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZp
ZXc6OnBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpwZXJmb3JtU2l6ZVRvQ29udGVudEF1dG9TaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lVmlldzo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmVuYWJsZVNpemVUb0NvbnRlbnRBdXRvU2l6ZU1vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkludGVybmFsczo6ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXplTW9kZSk6IERlbGV0ZWQuCisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMjAtMDMtMjcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgRGVmaW5lIEVOQUJMRV9XSEVFTF9FVkVOVF9MQVRDSElORyBhbmQgdXNlIGl0
IHRvIHdyYXAgd2hlZWwgZXZlbnQgbGF0Y2hpbmcgY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMDgwNzQ2NmRh
ZjMyNTE1Nzg1MGMxZGJlZDQ3ZDJkZDE0M2Q1OGNiLi42MTYyNjc4NmI1M2JjZjc1MmZkNThlNThj
MzM2MjNiN2Y3MzIyYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDIwLTAzLTI5ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgW0F1dG9TaXppbmdd
IEJyaW5nIGJhY2sgdGhlIG9sZCBhdXRvLXNpemluZyBjb2RlIGFzIGEgZGVwcmVjYXRlZCBjb2Rl
cGF0aCBmb3IgY29tcGF0aWJpbGl0eSByZWFzb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NjkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYw
MTExMDgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFdlIGNoYW5nZWQgdGhlIGF1dG8tc2l6aW5nIGNvZGUgZm9yIHdlYmtpdC5vcmcvYi8xOTY3NDMg
aW4gcjI0NDA5OCwgYnV0IHNvbWUgY2xpZW50cyBuZWVkIGl0IGFuZCB3ZSBicmluZyBpdCBiYWNr
CisgICAgICAgIHZpYSBhIG5ldyBkZWRpY2F0ZWQgLVtXS1dlYlZpZXcgX3NldFNpemVUb0NvbnRl
bnRBdXRvU2l6ZU1heGltdW1TaXplOl0gU1BJLgorCisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRl
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcg
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3IHNl
dFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLV2ViVmlld01hYy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFNp
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpzaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZURpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1h
eGltdW1TaXplIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1RpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6ZGlkVXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OnRyYW5zaXRpb25Ub0Nv
bW1pdHRlZEZvck5ld1BhZ2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wcm9jZXNzRGlzcGxheU5hbWUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjpyZWluaXRpYWxpemVXZWJQYWdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSBjb25zdCk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21l
dHJ5KToKKwogMjAyMC0wMy0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNv
bT4KIAogICAgICAgICBXZWIgY29udGVudCBwcm9jZXNzZXMgc2hvdWxkIG5vdCBiZSBhYmxlIHRv
IGFyYml0cmFyaWx5IHJlcXVlc3QgcGFzdGVib2FyZCBkYXRhIGZyb20gdGhlIFVJIHByb2Nlc3MK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1MmVkNDg2NTgxMTNjYjUzNmU4YjJhOTg3
OGU1NjUwYzg3MTg0YjM5Li5mOTg0ZmMyZmYxODBjYTg5ZTI4YTc3YWYwMDY4YTZkNDAzNDM1NmM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zNDIzLDExICszNDIzLDMzIEBAIHZv
aWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgaWYgKCFmaXJzdENoaWxkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIGF1dG9TaXpl
SWZFbmFibGVkIiwgdGhpcyk7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlSW5BdXRvU2l6
ZShtX2luQXV0b1NpemUsIHRydWUpOwogICAgIGlmIChsYXlvdXRDb250ZXh0KCkuc3VidHJlZUxh
eW91dFJvb3QoKSkKICAgICAgICAgbGF5b3V0Q29udGV4dCgpLmNvbnZlcnRTdWJ0cmVlTGF5b3V0
VG9GdWxsTGF5b3V0KCk7CiAKKyAgICBzd2l0Y2ggKG1fYXV0b1NpemVNb2RlKSB7CisgICAgY2Fz
ZSBBdXRvU2l6ZU1vZGU6OlNpemVUb0NvbnRlbnQ6CisgICAgICAgIHBlcmZvcm1TaXplVG9Db250
ZW50QXV0b1NpemUoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBdXRvU2l6ZU1vZGU6OkZp
eGVkV2lkdGg6CisgICAgICAgIHBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgaWYgKGF1dG8qIHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkKKyAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdl
ZChtX2F1dG9TaXplQ29udGVudFNpemUpOworCisgICAgbV9kaWRSdW5BdXRvc2l6ZSA9IHRydWU7
Cit9CisKK3ZvaWQgRnJhbWVWaWV3OjpwZXJmb3JtRml4ZWRXaWR0aEF1dG9TaXplKCkKK3sKKyAg
ICBMT0coTGF5b3V0LCAiRnJhbWVWaWV3ICVwIHBlcmZvcm1GaXhlZFdpZHRoQXV0b1NpemUiLCB0
aGlzKTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gZnJhbWUoKS5kb2N1bWVudCgpOworICAgIGF1
dG8qIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGF1dG8qIGZpcnN0
Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENoaWxkKCk7CisKICAgICBTY3JvbGxiYXJNb2RlIGhv
cml6b25hbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgU2Nyb2xsYmFy
TW9kZSB2ZXJ0aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CiAgICAgc2V0
VmVydGljYWxTY3JvbGxiYXJMb2NrKGZhbHNlKTsKQEAgLTM0NDIsNyArMzQ2NCw3IEBAIHZvaWQg
RnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgUmVmPEZyYW1lVmlldz4gcHJvdGVj
dGVkVGhpcygqdGhpcyk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAg
ICBkb2N1bWVudC0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Ci0gICAg
Ly8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJl
bnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9u
YWxseSBzYXZlIGFuZCByZXBvcnQgCisgICAgLy8gV2hpbGUgdGhlIGZpbmFsIGNvbnRlbnQgc2l6
ZSBjb3VsZCBzbGlnaHRseSBiZSBkaWZmZXJlbnQgYWZ0ZXIgdGhlIG5leHQgcmVzaXplL2xheW91
dCAoc2VlIGJlbG93KSwgd2UgaW50ZW50aW9uYWxseSBzYXZlIGFuZCByZXBvcnQKICAgICAvLyB0
aGUgY3VycmVudCB2YWx1ZSB0byBhdm9pZCB1bnN0YWJsZSBsYXlvdXQgKGUuZy4gY29udGVudCAi
aGVpZ2h0OiAxMDAlIikuCiAgICAgLy8gU2VlIGFsc28gd2Via2l0Lm9yZy9iLzE3MzU2MQogICAg
IG1fYXV0b1NpemVDb250ZW50U2l6ZSA9IGNvbnRlbnRzU2l6ZSgpOwpAQCAtMzQ1MSw5ICszNDcz
LDkxIEBAIHZvaWQgRnJhbWVWaWV3OjphdXRvU2l6ZUlmRW5hYmxlZCgpCiAgICAgYXV0byBmaW5h
bEhlaWdodCA9IG1fYXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQgPyBzdGQ6Om1heChtX2F1dG9T
aXplRml4ZWRNaW5pbXVtSGVpZ2h0LCBtX2F1dG9TaXplQ29udGVudFNpemUuaGVpZ2h0KCkpIDog
bV9hdXRvU2l6ZUNvbnRlbnRTaXplLmhlaWdodCgpOwogICAgIHJlc2l6ZShmaW5hbFdpZHRoLCBm
aW5hbEhlaWdodCk7CiAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOwotICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUoKS5wYWdlKCkpCi0gICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmludHJpbnNpY0NvbnRlbnRzU2l6ZUNoYW5nZWQobV9h
dXRvU2l6ZUNvbnRlbnRTaXplKTsKLSAgICBtX2RpZFJ1bkF1dG9zaXplID0gdHJ1ZTsKK30KKwor
dm9pZCBGcmFtZVZpZXc6OnBlcmZvcm1TaXplVG9Db250ZW50QXV0b1NpemUoKQoreworICAgIExP
RyhMYXlvdXQsICJGcmFtZVZpZXcgJXAgcGVyZm9ybVNpemVUb0NvbnRlbnRBdXRvU2l6ZSIsIHRo
aXMpOworCisgICAgYXV0byogZG9jdW1lbnQgPSBmcmFtZSgpLmRvY3VtZW50KCk7CisgICAgYXV0
byogcmVuZGVyVmlldyA9IGRvY3VtZW50LT5yZW5kZXJWaWV3KCk7CisKKyAgICBJbnRTaXplIG1p
bkF1dG9TaXplKDEsIDEpOworCisgICAgLy8gU3RhcnQgZnJvbSB0aGUgbWluaW11bSBzaXplIGFu
ZCBhbGxvdyBpdCB0byBncm93LgorICAgIHJlc2l6ZShtaW5BdXRvU2l6ZS53aWR0aCgpLCBtaW5B
dXRvU2l6ZS5oZWlnaHQoKSk7CisgICAgSW50U2l6ZSBzaXplID0gZnJhbWVSZWN0KCkuc2l6ZSgp
OworICAgIC8vIERvIHRoZSByZXNpemluZyB0d2ljZS4gVGhlIGZpcnN0IHRpbWUgaXMgYmFzaWNh
bGx5IGEgcm91Z2ggY2FsY3VsYXRpb24gdXNpbmcgdGhlIHByZWZlcnJlZCB3aWR0aAorICAgIC8v
IHdoaWNoIG1heSByZXN1bHQgaW4gYSBoZWlnaHQgY2hhbmdlIGR1cmluZyB0aGUgc2Vjb25kIGl0
ZXJhdGlvbi4KKyAgICBmb3IgKGludCBpID0gMDsgaSA8IDI7IGkrKykgeworICAgICAgICAvLyBV
cGRhdGUgdmFyaW91cyBzaXplcyBpbmNsdWRpbmcgY29udGVudHNTaXplLCBzY3JvbGxIZWlnaHQs
IGV0Yy4KKyAgICAgICAgZG9jdW1lbnQtPnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgICAgICBpbnQgd2lkdGggPSByZW5kZXJWaWV3LT5taW5QcmVmZXJyZWRMb2dp
Y2FsV2lkdGgoKTsKKyAgICAgICAgaW50IGhlaWdodCA9IHJlbmRlclZpZXctPmRvY3VtZW50UmVj
dCgpLmhlaWdodCgpOworICAgICAgICBJbnRTaXplIG5ld1NpemUod2lkdGgsIGhlaWdodCk7CisK
KyAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIGEgc2Nyb2xsYmFyIGlzIG5lZWRlZCBmb3IgYSBn
aXZlbiBkaW1lbnNpb24gYW5kCisgICAgICAgIC8vIGlmIHNvLCBpbmNyZWFzZSB0aGUgb3RoZXIg
ZGltZW5zaW9uIHRvIGFjY291bnQgZm9yIHRoZSBzY3JvbGxiYXIuCisgICAgICAgIC8vIFNpbmNl
IHRoZSBkaW1lbnNpb25zIGFyZSBvbmx5IGZvciB0aGUgdmlldyByZWN0YW5nbGUsIG9uY2UgYQor
ICAgICAgICAvLyBkaW1lbnNpb24gZXhjZWVkcyB0aGUgbWF4aW11bSwgdGhlcmUgaXMgbm8gbmVl
ZCB0byBpbmNyZWFzZSBpdCBmdXJ0aGVyLgorICAgICAgICBpZiAobmV3U2l6ZS53aWR0aCgpID4g
bV9hdXRvU2l6ZUNvbnN0cmFpbnQud2lkdGgoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9s
bGJhcj4gbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyID0gaG9yaXpvbnRhbFNjcm9sbGJhcigpOwor
ICAgICAgICAgICAgaWYgKCFsb2NhbEhvcml6b250YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAg
ICAgbG9jYWxIb3Jpem9udGFsU2Nyb2xsYmFyID0gY3JlYXRlU2Nyb2xsYmFyKEhvcml6b250YWxT
Y3JvbGxiYXIpOworICAgICAgICAgICAgbmV3U2l6ZS5leHBhbmQoMCwgbG9jYWxIb3Jpem9udGFs
U2Nyb2xsYmFyLT5vY2N1cGllZEhlaWdodCgpKTsKKworICAgICAgICAgICAgLy8gRG9uJ3QgYm90
aGVyIGNoZWNraW5nIGZvciBhIHZlcnRpY2FsIHNjcm9sbGJhciBiZWNhdXNlIHRoZSB3aWR0aCBp
cyBhdAorICAgICAgICAgICAgLy8gYWxyZWFkeSBncmVhdGVyIHRoZSBtYXhpbXVtLgorICAgICAg
ICB9IGVsc2UgaWYgKG5ld1NpemUuaGVpZ2h0KCkgPiBtX2F1dG9TaXplQ29uc3RyYWludC5oZWln
aHQoKSkgeworICAgICAgICAgICAgUmVmUHRyPFNjcm9sbGJhcj4gbG9jYWxWZXJ0aWNhbFNjcm9s
bGJhciA9IHZlcnRpY2FsU2Nyb2xsYmFyKCk7CisgICAgICAgICAgICBpZiAoIWxvY2FsVmVydGlj
YWxTY3JvbGxiYXIpCisgICAgICAgICAgICAgICAgbG9jYWxWZXJ0aWNhbFNjcm9sbGJhciA9IGNy
ZWF0ZVNjcm9sbGJhcihWZXJ0aWNhbFNjcm9sbGJhcik7CisgICAgICAgICAgICBuZXdTaXplLmV4
cGFuZChsb2NhbFZlcnRpY2FsU2Nyb2xsYmFyLT5vY2N1cGllZFdpZHRoKCksIDApOworCisgICAg
ICAgICAgICAvLyBEb24ndCBib3RoZXIgY2hlY2tpbmcgZm9yIGEgaG9yaXpvbnRhbCBzY3JvbGxi
YXIgYmVjYXVzZSB0aGUgaGVpZ2h0IGlzCisgICAgICAgICAgICAvLyBhbHJlYWR5IGdyZWF0ZXIg
dGhlIG1heGltdW0uCisgICAgICAgIH0KKworICAgICAgICAvLyBFbnN1cmUgdGhlIHNpemUgaXMg
YXQgbGVhc3QgdGhlIG1pbiBib3VuZHMuCisgICAgICAgIG5ld1NpemUgPSBuZXdTaXplLmV4cGFu
ZGVkVG8obWluQXV0b1NpemUpOworCisgICAgICAgIC8vIEJvdW5kIHRoZSBkaW1lbnNpb25zIGJ5
IHRoZSBtYXggYm91bmRzIGFuZCBkZXRlcm1pbmUgd2hhdCBzY3JvbGxiYXJzIHRvIHNob3cuCisg
ICAgICAgIFNjcm9sbGJhck1vZGUgaG9yaXpvbmFsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFs
d2F5c09mZjsKKyAgICAgICAgaWYgKG5ld1NpemUud2lkdGgoKSA+IG1fYXV0b1NpemVDb25zdHJh
aW50LndpZHRoKCkpIHsKKyAgICAgICAgICAgIG5ld1NpemUuc2V0V2lkdGgobV9hdXRvU2l6ZUNv
bnN0cmFpbnQud2lkdGgoKSk7CisgICAgICAgICAgICBob3Jpem9uYWxTY3JvbGxiYXJNb2RlID0g
U2Nyb2xsYmFyQWx3YXlzT247CisgICAgICAgIH0KKyAgICAgICAgU2Nyb2xsYmFyTW9kZSB2ZXJ0
aWNhbFNjcm9sbGJhck1vZGUgPSBTY3JvbGxiYXJBbHdheXNPZmY7CisgICAgICAgIGlmIChuZXdT
aXplLmhlaWdodCgpID4gbV9hdXRvU2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkpIHsKKyAgICAgICAg
ICAgIG5ld1NpemUuc2V0SGVpZ2h0KG1fYXV0b1NpemVDb25zdHJhaW50LmhlaWdodCgpKTsKKyAg
ICAgICAgICAgIHZlcnRpY2FsU2Nyb2xsYmFyTW9kZSA9IFNjcm9sbGJhckFsd2F5c09uOworICAg
ICAgICB9CisKKyAgICAgICAgaWYgKG5ld1NpemUgPT0gc2l6ZSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworCisgICAgICAgIC8vIFdoaWxlIGxvYWRpbmcgb25seSBhbGxvdyB0aGUgc2l6ZSB0byBp
bmNyZWFzZSAodG8gYXZvaWQgdHdpdGNoaW5nIGR1cmluZyBpbnRlcm1lZGlhdGUgc21hbGxlciBz
dGF0ZXMpCisgICAgICAgIC8vIHVubGVzcyBhdXRvcmVzaXplIGhhcyBqdXN0IGJlZW4gdHVybmVk
IG9uIG9yIHRoZSBtYXhpbXVtIHNpemUgaXMgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50IHNpemUu
CisgICAgICAgIGlmIChtX2RpZFJ1bkF1dG9zaXplICYmIHNpemUuaGVpZ2h0KCkgPD0gbV9hdXRv
U2l6ZUNvbnN0cmFpbnQuaGVpZ2h0KCkgJiYgc2l6ZS53aWR0aCgpIDw9IG1fYXV0b1NpemVDb25z
dHJhaW50LndpZHRoKCkKKyAgICAgICAgICAgICYmICFmcmFtZSgpLmxvYWRlcigpLmlzQ29tcGxl
dGUoKSAmJiAobmV3U2l6ZS5oZWlnaHQoKSA8IHNpemUuaGVpZ2h0KCkgfHwgbmV3U2l6ZS53aWR0
aCgpIDwgc2l6ZS53aWR0aCgpKSkKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIC8vIFRo
ZSBmaXJzdCB0aW1lIGFyb3VuZCwgcmVzaXplIHRvIHRoZSBtaW5pbXVtIGhlaWdodCBhZ2Fpbjsg
b3RoZXJ3aXNlLAorICAgICAgICAvLyBvbiBwYWdlcyAoZS5nLiBxdWlya3MgbW9kZSkgd2hlcmUg
dGhlIGJvZHkvZG9jdW1lbnQgcmVzaXplIHRvIHRoZSB2aWV3IHNpemUsCisgICAgICAgIC8vIHdl
J2xsIGVuZCB1cCBub3Qgc2hyaW5raW5nIGJhY2sgZG93biBhZnRlciByZXNpemluZyB0byB0aGUg
Y29tcHV0ZWQgcHJlZmVycmVkIHdpZHRoLgorICAgICAgICByZXNpemUobmV3U2l6ZS53aWR0aCgp
LCBpID8gbmV3U2l6ZS5oZWlnaHQoKSA6IG1pbkF1dG9TaXplLmhlaWdodCgpKTsKKyAgICAgICAg
Ly8gRm9yY2UgdGhlIHNjcm9sbGJhciBzdGF0ZSB0byBhdm9pZCB0aGUgc2Nyb2xsYmFyIGNvZGUg
YWRkaW5nIHRoZW0gYW5kIGNhdXNpbmcgdGhlbSB0byBiZSBuZWVkZWQuIEZvciBleGFtcGxlLAor
ICAgICAgICAvLyBhIHZlcnRpY2FsIHNjcm9sbGJhciBtYXkgY2F1c2UgdGV4dCB0byB3cmFwIGFu
ZCB0aHVzIGluY3JlYXNlIHRoZSBoZWlnaHQgKHdoaWNoIGlzIHRoZSBvbmx5IHJlYXNvbiB0aGUg
c2NvbGxiYXIgaXMgbmVlZGVkKS4KKyAgICAgICAgc2V0VmVydGljYWxTY3JvbGxiYXJMb2NrKGZh
bHNlKTsKKyAgICAgICAgc2V0SG9yaXpvbnRhbFNjcm9sbGJhckxvY2soZmFsc2UpOworICAgICAg
ICBzZXRTY3JvbGxiYXJNb2Rlcyhob3Jpem9uYWxTY3JvbGxiYXJNb2RlLCB2ZXJ0aWNhbFNjcm9s
bGJhck1vZGUsIHRydWUsIHRydWUpOworICAgIH0KKyAgICAvLyBBbGwgdGhlIHJlc2l6aW5nIGFi
b3ZlIG1heSBoYXZlIGludmFsaWRhdGVkIHN0eWxlIChmb3IgZXhhbXBsZSBpZiB2aWV3cG9ydCB1
bml0cyBhcmUgYmVpbmcgdXNlZCkuCisKKyAgICBkb2N1bWVudC0+dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpOworICAgIC8vIEZJWE1FOiBVc2UgdGhlIGZpbmFsIGxheW91dCdzIHJlc3VsdCBhcyB0aGUg
Y29udGVudCBzaXplICh3ZWJraXQub3JnL2IvMTczNTYxKS4KKyAgICBkb2N1bWVudC0+dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgbV9hdXRvU2l6ZUNvbnRlbnRT
aXplID0gY29udGVudHNTaXplKCk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRBdXRvU2l6ZUZp
eGVkTWluaW11bUhlaWdodChpbnQgZml4ZWRNaW5pbXVtSGVpZ2h0KQpAQCAtNDQ2NSwxMiArNDU2
OSwyMyBAQCBib29sIEZyYW1lVmlldzo6aXNWaWV3Rm9yRG9jdW1lbnRJbkZyYW1lKCkgY29uc3QK
ICAgICByZXR1cm4gJnJlbmRlclZpZXctPmZyYW1lVmlldygpID09IHRoaXM7CiB9CiAKLXZvaWQg
RnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUm
IHZpZXdTaXplKQordm9pZCBGcmFtZVZpZXc6OmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUo
Ym9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIHZpZXdTaXplKQoreworICAgIGVuYWJsZUF1dG9T
aXplTW9kZShlbmFibGUsIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGU6OkZpeGVkV2lkdGgpOworfQor
Cit2b2lkIEZyYW1lVmlldzo6ZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXplTW9kZShib29sIGVu
YWJsZSwgY29uc3QgSW50U2l6ZSYgdmlld1NpemUpCit7CisgICAgZW5hYmxlQXV0b1NpemVNb2Rl
KGVuYWJsZSwgdmlld1NpemUsIEF1dG9TaXplTW9kZTo6U2l6ZVRvQ29udGVudCk7Cit9CisKK3Zv
aWQgRnJhbWVWaWV3OjplbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNp
emUmIHZpZXdTaXplLCBBdXRvU2l6ZU1vZGUgbW9kZSkKIHsKICAgICBBU1NFUlQoIWVuYWJsZSB8
fCAhdmlld1NpemUuaXNFbXB0eSgpKTsKICAgICBpZiAobV9zaG91bGRBdXRvU2l6ZSA9PSBlbmFi
bGUgJiYgbV9hdXRvU2l6ZUNvbnN0cmFpbnQgPT0gdmlld1NpemUpCiAgICAgICAgIHJldHVybjsK
IAorICAgIG1fYXV0b1NpemVNb2RlID0gbW9kZTsKICAgICBtX3Nob3VsZEF1dG9TaXplID0gZW5h
YmxlOwogICAgIG1fYXV0b1NpemVDb25zdHJhaW50ID0gdmlld1NpemU7CiAgICAgbV9hdXRvU2l6
ZUNvbnRlbnRTaXplID0gY29udGVudHNTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRl
eCBjMjJlNGU1OGMxNDQ4YTJkZmM2NmY5NDQwYjQxNzJkNzgyMjRlNjMwLi4yZjMzM2UxNWRhMWVj
OTBhNmRhOWYyZTg1YmY4MjVkNzUxNWIyMTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAg
LTM5OSw5ICszOTksMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNWaXN1YWxseU5vbkVtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9jb250ZW50UXVhbGlmaWVzQXNWaXN1YWxseU5vbkVtcHR5OyB9CiAg
ICAgdm9pZCBjaGVja0FuZERpc3BhdGNoRGlkUmVhY2hWaXN1YWxseU5vbkVtcHR5U3RhdGUoKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxl
LCBjb25zdCBJbnRTaXplJiBtaW5TaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJs
ZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1pblNp
emUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU2l6ZVRvQ29udGVudEF1dG9TaXpl
TW9kZShib29sIGVuYWJsZSwgY29uc3QgSW50U2l6ZSYgbWF4U2l6ZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRBdXRvU2l6ZUZpeGVkTWluaW11bUhlaWdodChpbnQpOwotICAgIGJvb2wg
aXNBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEF1dG9TaXplOyB9Cisg
ICAgYm9vbCBpc0ZpeGVkV2lkdGhBdXRvU2l6ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3No
b3VsZEF1dG9TaXplICYmIG1fYXV0b1NpemVNb2RlID09IEF1dG9TaXplTW9kZTo6Rml4ZWRXaWR0
aDsgfQorICAgIGJvb2wgaXNTaXplVG9Db250ZW50QXV0b1NpemVFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRBdXRvU2l6ZSAmJiBtX2F1dG9TaXplTW9kZSA9PSBBdXRvU2l6ZU1vZGU6
OlNpemVUb0NvbnRlbnQ7IH0KICAgICBJbnRTaXplIGF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50
U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemVDb250ZW50U2l6ZTsgfQogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBmb3JjZUxheW91dChib29sIGFsbG93U3VidHJlZUxheW91dCA9IGZh
bHNlKTsKQEAgLTcwNCw3ICs3MDYsMTIgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvcmNlTGF5b3V0
UGFyZW50Vmlld0lmTmVlZGVkKCk7CiAgICAgdm9pZCBmbHVzaFBvc3RMYXlvdXRUYXNrc1F1ZXVl
KCk7CiAgICAgdm9pZCBwZXJmb3JtUG9zdExheW91dFRhc2tzKCk7CisKKyAgICBlbnVtIGNsYXNz
IEF1dG9TaXplTW9kZSA6IHVpbnQ4X3QgeyBGaXhlZFdpZHRoLCBTaXplVG9Db250ZW50IH07Cisg
ICAgdm9pZCBlbmFibGVBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGUsIGNvbnN0IEludFNpemUmIG1p
blNpemUsIEF1dG9TaXplTW9kZSk7CiAgICAgdm9pZCBhdXRvU2l6ZUlmRW5hYmxlZCgpOworICAg
IHZvaWQgcGVyZm9ybUZpeGVkV2lkdGhBdXRvU2l6ZSgpOworICAgIHZvaWQgcGVyZm9ybVNpemVU
b0NvbnRlbnRBdXRvU2l6ZSgpOwogCiAgICAgdm9pZCBhcHBseVJlY3Vyc2l2ZWx5V2l0aFZpc2li
bGVSZWN0KGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZCAoRnJhbWVWaWV3JiBmcmFtZVZpZXcsIGNv
bnN0IEludFJlY3QmIHZpc2libGVSZWN0KT4mKTsKICAgICB2b2lkIHJlc3VtZVZpc2libGVJbWFn
ZUFuaW1hdGlvbnMoY29uc3QgSW50UmVjdCYgdmlzaWJsZVJlY3QpOwpAQCAtOTMxLDYgKzkzOCw3
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc0ZsaXBwZWRCbG9ja1JlbmRlcmVycyB7IGZhbHNl
IH07CiAgICAgYm9vbCBtX3NwZWN1bGF0aXZlVGlsaW5nRGVsYXlEaXNhYmxlZEZvclRlc3Rpbmcg
eyBmYWxzZSB9OwogCisgICAgQXV0b1NpemVNb2RlIG1fYXV0b1NpemVNb2RlIHsgQXV0b1NpemVN
b2RlOjpGaXhlZFdpZHRoIH07CiAgICAgLy8gSWYgdHJ1ZSwgYXV0b21hdGljYWxseSByZXNpemUg
dGhlIGZyYW1lIHZpZXcgYXJvdW5kIGl0cyBjb250ZW50LgogICAgIGJvb2wgbV9zaG91bGRBdXRv
U2l6ZSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luQXV0b1NpemUgeyBmYWxzZSB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGFmMjdiOTlmMzg3YzEyOGFmZmI0MzY5YWI0
ZWMzYTljMGJmZmMyOTguLmM4ZmJmNWY4NmRiODE4YjUwOTQ3YTY4NTk2NDdjN2MwOWFjNjhlZTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ5MSw3ICs0OTEsNyBAQCB2
b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlJiBwYWdlKQogICAgICAg
ICBwYWdlLnNldFRvcENvbnRlbnRJbnNldCgwKTsKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0
VXNlRml4ZWRMYXlvdXQoZmFsc2UpOwogICAgICAgICBtYWluRnJhbWVWaWV3LT5zZXRGaXhlZExh
eW91dFNpemUoSW50U2l6ZSgpKTsKLSAgICAgICAgbWFpbkZyYW1lVmlldy0+ZW5hYmxlQXV0b1Np
emVNb2RlKGZhbHNlLCB7IH0pOworICAgICAgICBtYWluRnJhbWVWaWV3LT5lbmFibGVGaXhlZFdp
ZHRoQXV0b1NpemVNb2RlKGZhbHNlLCB7IH0pOwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElD
UykKICAgICAgICAgbWFpbkZyYW1lVmlldy0+c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoSW50
UmVjdCgpKTsKICNlbmRpZgpAQCAtMzU4MiwxMiArMzU4MiwxMiBAQCB2b2lkIEludGVybmFsczo6
cmVsb2FkRXhwaXJlZE9ubHkoKQogICAgIGZyYW1lKCktPmxvYWRlcigpLnJlbG9hZChSZWxvYWRP
cHRpb246OkV4cGlyZWRPbmx5KTsKIH0KIAotdm9pZCBJbnRlcm5hbHM6OmVuYWJsZUF1dG9TaXpl
TW9kZShib29sIGVuYWJsZWQsIGludCB3aWR0aCwgaW50IGhlaWdodCkKK3ZvaWQgSW50ZXJuYWxz
OjplbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQogewogICAgIGF1dG8qIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7CiAg
ICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkKICAgICAgICAgcmV0dXJuOwot
ICAgIGRvY3VtZW50LT52aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShlbmFibGVkLCB7IHdpZHRo
LCBoZWlnaHQgfSk7CisgICAgZG9jdW1lbnQtPnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9T
aXplTW9kZShlbmFibGVkLCB7IHdpZHRoLCBoZWlnaHQgfSk7CiB9CiAKICNpZiBFTkFCTEUoTEVH
QUNZX0VOQ1JZUFRFRF9NRURJQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGUy
MzUyMzQxZGI4YzE1ZDQyOWY5Y2VmZDI4OWRmNTIyNzBlNWFjN2MuLjI3YjA4Yzk0OGQ0NzgwYmIw
YWNhMzA2ZGExN2Y0MGZhZjUxZWE4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApA
QCAtNTM4LDcgKzUzOCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2wgZW5k
VG9FbmQpOwogICAgIHZvaWQgcmVsb2FkRXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxl
QXV0b1NpemVNb2RlKGJvb2wgZW5hYmxlZCwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsKKyAgICB2
b2lkIGVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoYm9vbCBlbmFibGVkLCBpbnQgd2lkdGgs
IGludCBoZWlnaHQpOwogCiAjaWYgRU5BQkxFKExFR0FDWV9FTkNSWVBURURfTUVESUEpCiAgICAg
dm9pZCBpbml0aWFsaXplTW9ja0NETSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDE2MmZhZjQ5NDZlYWFkZDk4MGU1Nzg5YTE4YmJkZWM1NTgzZjYzMjMuLjA0NDY5MjA2
MjFlZjQyMTJlMmM1OGE3NmUxOGMxMTNmMDU2ZmU0NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTU2NCw3ICs1NjQsNyBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsK
ICAgICB2b2lkIGZvcmNlUmVsb2FkKGJvb2xlYW4gZW5kVG9FbmQpOwogICAgIHZvaWQgcmVsb2Fk
RXhwaXJlZE9ubHkoKTsKIAotICAgIHZvaWQgZW5hYmxlQXV0b1NpemVNb2RlKGJvb2xlYW4gZW5h
YmxlZCwgbG9uZyB3aWR0aCwgbG9uZyBoZWlnaHQpOworICAgIHZvaWQgZW5hYmxlRml4ZWRXaWR0
aEF1dG9TaXplTW9kZShib29sZWFuIGVuYWJsZWQsIGxvbmcgd2lkdGgsIGxvbmcgaGVpZ2h0KTsK
IAogICAgIFtDb25kaXRpb25hbD1WSURFT10gc2VxdWVuY2U8RE9NU3RyaW5nPiBtZWRpYVJlc3Bv
bnNlU291cmNlcyhIVE1MTWVkaWFFbGVtZW50IG1lZGlhKTsKICAgICBbQ29uZGl0aW9uYWw9VklE
RU9dIHNlcXVlbmNlPERPTVN0cmluZz4gbWVkaWFSZXNwb25zZUNvbnRlbnRSYW5nZXMoSFRNTE1l
ZGlhRWxlbWVudCBtZWRpYSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuY3BwCmluZGV4IDcyNGMxNmU1MDQzM2RlYmIyNDBkOWJlMTNiZTlh
NWYwNTc5YmFhNDMuLmM2YWVmNTFjY2Y5ZTQ5NzYxM2U3YmFmMTgwZTI1MzhkNmY3ODZmMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMu
Y3BwCkBAIC02Nyw2ICs2Nyw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZW5j
b2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1heVN0YXJ0
TWVkaWFXaGVuSW5XaW5kb3c7CiAgICAgZW5jb2RlciA8PCBtZWRpYVBsYXliYWNrSXNTdXNwZW5k
ZWQ7CiAgICAgZW5jb2RlciA8PCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgZW5jb2Rl
ciA8PCBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBlbmNvZGVyIDw8IGF1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgZW5jb2RlciA8PCB2aWV3cG9y
dFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzY3JvbGxQ
aW5uaW5nQmVoYXZpb3IpOwpAQCAtMjQ4LDYgKzI0OSw4IEBAIE9wdGlvbmFsPFdlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM+IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJUEM6OkRl
Y29kCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLm1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnNpemVUb0Nv
bnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSkKKyAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsK
ICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCkpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLnZpZXdwb3J0U2l6ZUZvckNTU1ZpZXdwb3J0VW5pdHMp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycy5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5o
CmluZGV4IGU4YjlmYTg4NmNjMzdkNjg4ZDFjODg1ODQ2MzViMjEyOTQ1YjBlOTEuLjU4OGZhYzUw
ZmU5MGFiMjEwZWVlNjc5OGY0NTk1ZGM2Y2U2MmRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAgLTExOCw2ICsxMTgsNyBAQCBz
dHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyB7CiAgICAgYm9vbCBtZWRpYVBsYXliYWNr
SXNTdXNwZW5kZWQgeyBmYWxzZSB9OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZTsKICAgICBib29sIGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQ7CiAgICAgT3B0aW9uYWw8V2ViQ29yZTo6SW50U2l6ZT4gdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1ZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tWaWV3UHJpdmF0ZS5oCmluZGV4IDBmMjI2ZWJjNTgzYTZlZDg0ZmUzMTQ4ZjM1ZjY1NGNl
ZDc4ZGJlZDYuLmExYTcyNjYyYmYyYzc2ZDBiNmFhMGY2Y2IzYzJhODA3MGY2ZDMwMTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ZpZXdQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVmlld1ByaXZhdGUuaApA
QCAtNTgsNiArNTgsNyBAQAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3c7CiAKIEBw
cm9wZXJ0eSAocmVhZHdyaXRlKSBOU1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworQHBy
b3BlcnR5IChyZWFkd3JpdGUpIE5TU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZTsKIEBwcm9wZXJ0eSAocmVhZHdyaXRlKSBCT09MIHNob3VsZENsaXBUb1Zpc2libGVSZWN0Owog
QHByb3BlcnR5IChyZWFkd3JpdGUpIEJPT0wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0
b0xheW91dDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIGdldHRlcj1pc1VzaW5nVUlTaWRlQ29tcG9z
aXRpbmcpIEJPT0wgdXNpbmdVSVNpZGVDb21wb3NpdGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGYyYWM2MDE4
NjE1MGRlNjJmZmJlNDk3MWJmNWJmMmMyM2U1ODUxNjQuLjIwM2ViMzdjY2IxZGVkOWVkNWFkMDQ4
N2EwNTRlNjkxM2FkNGIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNTA4LDYgKzUwOCw3IEBAIGZvciB0aGlz
IHByb3BlcnR5LgogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U2hvdWxkRXhwYW5k
Q29udGVudFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KSBCT09MIF9zaG91bGRFeHBhbmRDb250
ZW50VG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEy
KSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldE1pbmltdW1MYXlvdXRXaWR0
aDopIENHRmxvYXQgX21pbmltdW1MYXlvdXRXaWR0aCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEw
LjEyKSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZTopIENHU2l6ZSBfc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNp
emU7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsd2F5c1Nob3dzSG9yaXpv
bnRhbFNjcm9sbGVyOikgQk9PTCBfYWx3YXlzU2hvd3NIb3Jpem9udGFsU2Nyb2xsZXIgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRBbHdheXNTaG93c1ZlcnRpY2FsU2Nyb2xsZXI6KSBCT09MIF9hbHdheXNTaG93c1ZlcnRp
Y2FsU2Nyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRkYzZmZmZhMzMwYTgzY2I3MmJl
MTkzMGZjNzIxMDEzMzQyMGQ4MjYuLmI0Mjc1N2Y5NTY2MDMxYTYwZjA2ZWFkMmM1ZTEzOGQ5OGRk
NWNhYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0x
MjY4LDYgKzEyNjgsMTYgQEAgLSAodm9pZClzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ6KE5T
U2l6ZSltaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQKICAgICBfZGF0YS0+X2ltcGwtPnNldE1pbmlt
dW1TaXplRm9yQXV0b0xheW91dChOU1NpemVUb0NHU2l6ZShtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQpKTsKIH0KIAorLSAoTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7
CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5zaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZSgpKTsKK30KKworLSAodm9pZClzZXRTaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZTooTlNTaXplKXNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXpl
Cit7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZShOU1NpemVUb0NHU2l6ZShzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkpOworfQor
CiAtIChCT09MKXNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQKIHsKICAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5zaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLV2ViVmll
d01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1t
CmluZGV4IDc1OGVlMTExMmI0OTkzMDBlNWVhNmY1ZmE3MDM0OWY0Yjc1ZTRhM2YuLmZiMjdhNmE0
NDc2NDFmMmJmYWU2NDhjMTYzYWE0MjM5YTI0MzdkNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tXZWJWaWV3TWFjLm1tCkBAIC0xNDAwLDYgKzE0MDAsMjEgQEAg
LSAodm9pZClfc2V0TWluaW11bUxheW91dFdpZHRoOihDR0Zsb2F0KXdpZHRoCiAgICAgX2ltcGwt
PnNldENsaXBzVG9WaXNpYmxlUmVjdChleHBhbmRzVG9GaXQpOwogfQogCistIChDR1NpemUpX3Np
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplCit7CisgICAgcmV0dXJuIF9wYWdlLT5taW5p
bXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKK30KKworLSAodm9pZClfc2V0U2l6ZVRvQ29udGVudEF1
dG9TaXplTWF4aW11bVNpemU6KENHU2l6ZSlzaXplCit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQg
PSBzaXplLndpZHRoID4gMCAmJiBzaXplLmhlaWdodCA+IDA7CisKKyAgICBfcGFnZS0+c2V0U2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplLndpZHRo
LCBzaXplLmhlaWdodCkpOworICAgIF9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4
cGFuZHNUb0ZpdCk7CisKKyAgICBfaW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNU
b0ZpdCk7Cit9CisKIC0gKEJPT0wpX2NsaXBzVG9WaXNpYmxlUmVjdAogewogICAgIHJldHVybiBf
aW1wbC0+Y2xpcHNUb1Zpc2libGVSZWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaAppbmRleCA3OGU1NDYyNzNmYzc3YWNmODEzN2UwM2E3YjgyYzYyMGVm
ODFmYzM3Li5jYjdmYmY5M2UzMDBjMTI2ZjgwZGE0NzRlOTZhMmUyYzliYjRkYjc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTIyNCw2ICsyMjQs
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChDR1Np
emUpOwogICAgIENHU2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBjb25zdDsKKyAgICB2
b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKENHU2l6ZSk7CisgICAgQ0dT
aXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOwogICAgIGJvb2wg
c2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQg
c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMGZkMmU1NjI4OTViMzE2M2VmNmU3OTZiODNk
YTBmZTU2MjQxOGMxZS4uMThiNjI3YzhlNTA4MDg0ZGRjNDRkYjU4NTYwZmJlYWYzZTAwMTkwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTE5
MjYsNiArMTkyNiwyMSBAQCBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0
KCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKENHU2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSkKK3sKKyAgICBi
b29sIGV4cGFuZHNUb0ZpdCA9IHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplLndpZHRo
ID4gMCAmJiBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQgPiAwOworCisg
ICAgbV9wYWdlLT5zZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShXZWJDb3JlOjpJ
bnRTaXplKHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKSk7CisgICAgbV9wYWdlLT5z
ZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisKKyAgICBzZXRDbGlwc1Rv
VmlzaWJsZVJlY3QoZXhwYW5kc1RvRml0KTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjpzaXpl
VG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKK30KKwogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpCiB7CiAgICAgbV9wYWdlLT5zZXRBdXRv
U2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQpOwpAQCAtMTk0Miw2ICsxOTU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0
SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQogICAgIC8v
IHNvIHdlIGNhbiByZXBvcnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90
LCB3ZSBuZWVkIHRvIHJlcG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCiAgICAgLy8gc28gdGhhdCBh
dXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAorICAgIC8vIEZJ
WE1FOiB3aGF0IHRvIGRvIGhlcmU/CiAgICAgQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNr
bm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKICAgICBpZiAo
aW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCgpLndpZHRoKCkpCiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2lu
Z0ZsZXhpYmxlV2lkdGgud2lkdGggPSBOU1ZpZXdOb0ludHJpbnNpY01ldHJpYzsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCBhZGY3NGEzMWM4MWMzY2M0
YWUxNjRkZmEyMmUwNTNmZGM5OTE0OWNjLi5kNTExOTI2NjQ5MGFjOWMzZjBlOWRjYjA5YjZiMTA1
ZjQ1OTdhNzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJl
YVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5o
CkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjb2xvclNwYWNl
RGlkQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1pbmltdW1TaXplRm9yQXV0b0xheW91
dERpZENoYW5nZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZURpZENoYW5nZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFRyYW5z
aWVudFpvb20oZG91YmxlLCBXZWJDb3JlOjpGbG9hdFBvaW50KSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZjVkMmJhZjEwYjBk
MjAzZDYzNjAzYjc3MmI4NjFiNTY4ZmVjYTJmMy4uOTAyYzk4YWNkYzc3ZTQ3OWVhMGUxMzNmMjhl
Y2FmZTgwYWE3ZGVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC03Njg2LDYgKzc2ODYsNyBAQCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIFdlYlBhZ2VQ
cm94eTo6Y3JlYXRpb25QYXJhbWV0ZXJzKFdlYlByb2Nlc3NQcm94eSYgcHJvYwogICAgIHBhcmFt
ZXRlcnMubWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyA9IG1fbWF5U3RhcnRNZWRpYVdoZW5Jbldp
bmRvdzsKICAgICBwYXJhbWV0ZXJzLm1lZGlhUGxheWJhY2tJc1N1c3BlbmRlZCA9IG1fbWVkaWFQ
bGF5YmFja0lzU3VzcGVuZGVkOwogICAgIHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JBdXRvTGF5
b3V0ID0gbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgcGFyYW1ldGVycy5zaXplVG9D
b250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9IG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11
bVNpemU7CiAgICAgcGFyYW1ldGVycy5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
ID0gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OwogICAgIHBhcmFtZXRlcnMu
dmlld3BvcnRTaXplRm9yQ1NTVmlld3BvcnRVbml0cyA9IG1fdmlld3BvcnRTaXplRm9yQ1NTVmll
d3BvcnRVbml0czsKICAgICBwYXJhbWV0ZXJzLnNjcm9sbFBpbm5pbmdCZWhhdmlvciA9IG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yOwpAQCAtODM1NSw2ICs4MzU2LDI1IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgSW50U2l6ZSYgc2l6ZSkKICNl
bmRpZgogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6c2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4
aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9zaXplVG9Db250ZW50
QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Np
emVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gc2l6ZTsKKworICAgIGlmICghaGFzUnVu
bmluZ1Byb2Nlc3MoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6U2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoc2l6ZSkpOworICAgIG1f
ZHJhd2luZ0FyZWEtPnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCk7
CisKKyNpZiBVU0UoQVBQS0lUKQorICAgIGlmIChtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplLndpZHRoKCkgPD0gMCkKKyAgICAgICAgZGlkQ2hhbmdlSW50cmluc2ljQ29udGVudFNp
emUoSW50U2l6ZSgtMSwgLTEpKTsKKyNlbmRpZgorfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0
QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNob3VsZEV4cGFuZCkKIHsK
ICAgICBpZiAobV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0ID09IHNob3VsZEV4
cGFuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNjY4ODgwMTJj
MzI5OWEyNjZlN2UxZTU4NWMwM2IwYTI4NWRiZmY4ZS4uZTYxYjdmNDJkOTBhMTZjMmQ4NTVkZTIx
Y2U5YzJkNTRmZDkyYjJhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTEzNDQsNiArMTM0NCw5IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpJbnRTaXplIG1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bVNpemVGb3JBdXRv
TGF5b3V0OyB9CiAgICAgdm9pZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpOwogCisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0
b1NpemVNYXhpbXVtU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXpl
TWF4aW11bVNpemU7IH0KKyAgICB2b2lkIHNldFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKwogICAgIGJvb2wgYXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodDsgfQogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodChib29sKTsKIApAQCAtMjYwMyw2ICsyNjA2LDggQEAgcHJpdmF0ZToKICAgICBi
b29sIG1fc3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2F1
dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQgeyBmYWxzZSB9OwogICAgIFdlYkNvcmU6
OkludFNpemUgbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOworCiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCiAgICAg
Ly8gVmlzdWFsIHZpZXdwb3J0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXgg
OGMzYmRjY2IxY2UxNGRlYjk2ZWY5NjU3MTkzMDRhMjI5ZjU4MDQ5NC4uODNjNzBjZmMxMTNmYTM3
ZjRlM2VkYWYzODBjNjMwNmQ5ZDY0YmRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oCkBAIC00Miw2ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaXplRGlkQ2hhbmdlKCkg
b3ZlcnJpZGU7CiAgICAgdm9pZCBjb2xvclNwYWNlRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXREaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7
CiAKICAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOwpAQCAtNzEsNiAr
NzIsOSBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBsYXN0IG1pbmltdW0gbGF5b3V0IHNpemUgd2Ug
c2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50
TWluaW11bVNpemVGb3JBdXRvTGF5b3V0OwogCisgICAgLy8gVGhlIGxhc3QgbWF4bWl1bSBzaXpl
IGZvciBzaXplLXRvLWNvbnRlbnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nl
c3MuCisgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVudEF1dG9TaXpl
TWF4aW11bVNpemU7CisKICAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggODEwMDQ3Y2Q0OWM1ZGJhNTcwZTUwZjBm
MDMzZjBkNWM1NDNhZTc5Ny4uNzFlNDVhMjYxYjA0ZDUwMjk5ZWVlMzQwMDZmOTdkYzc5YjkwMmIy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTkwLDYgKzkwLDE5IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6bWluaW11bVNpemVGb3JB
dXRvTGF5b3V0RGlkQ2hhbmdlKCkKICAgICBzZW5kVXBkYXRlR2VvbWV0cnkoKTsKIH0KIAordm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpzaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZURpZENoYW5nZSgpCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNS
dW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBvbmx5IHdhbnQg
b25lIFVwZGF0ZUdlb21ldHJ5IG1lc3NhZ2UgaW4gZmxpZ2h0IGF0IG9uY2UsIHNvIGlmIHdlJ3Zl
IGFscmVhZHkgc2VudCBvbmUgYnV0CisgICAgLy8gaGF2ZW4ndCB5ZXQgcmVjZWl2ZWQgdGhlIHJl
cGx5IHdlJ2xsIGp1c3QgcmV0dXJuIGVhcmx5IGhlcmUuCisgICAgaWYgKG1faXNXYWl0aW5nRm9y
RGlkVXBkYXRlR2VvbWV0cnkpCisgICAgICAgIHJldHVybjsKKworICAgIHNlbmRVcGRhdGVHZW9t
ZXRyeSgpOworfQorCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKIHsKICAgICBtX3dl
YlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRl
eHQpOwpAQCAtMTA3LDEwICsxMjAsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5OjpkaWRVcGRhdGVHZW9tZXRyeSgpCiAgICAgbV9pc1dhaXRpbmdGb3JEaWRVcGRh
dGVHZW9tZXRyeSA9IGZhbHNlOwogCiAgICAgSW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQgPSBtX3dlYlBhZ2VQcm94eS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKTsKKyAgICBJbnRT
aXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0gbV93ZWJQYWdlUHJveHkuc2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKIAogICAgIC8vIElmIHRoZSBXS1ZpZXcg
d2FzIHJlc2l6ZWQgd2hpbGUgd2Ugd2VyZSB3YWl0aW5nIGZvciBhIERpZFVwZGF0ZUdlb21ldHJ5
IHJlcGx5IGZyb20gdGhlIHdlYiBwcm9jZXNzLAogICAgIC8vIHdlIG5lZWQgdG8gcmVzZW5kIHRo
ZSBuZXcgc2l6ZSBoZXJlLgotICAgIGlmIChtX2xhc3RTZW50U2l6ZSAhPSBtX3NpemUgfHwgbV9s
YXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCAhPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlv
dXQpCisgICAgaWYgKG1fbGFzdFNlbnRTaXplICE9IG1fc2l6ZSB8fCBtX2xhc3RTZW50TWluaW11
bVNpemVGb3JBdXRvTGF5b3V0ICE9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dCB8fCBtX2xhc3RT
ZW50U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUgIT0gc2l6ZVRvQ29udGVudEF1dG9T
aXplTWF4aW11bVNpemUpCiAgICAgICAgIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogfQogCkBAIC0x
MjMsNiArMTM3LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp3
YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVMKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpCiB7CiAgICAg
bV9sYXN0U2VudE1pbmltdW1TaXplRm9yQXV0b0xheW91dCA9IG1fd2ViUGFnZVByb3h5Lm1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCgpOworICAgIG1fbGFzdFNlbnRTaXplVG9Db250ZW50QXV0b1Np
emVNYXhpbXVtU2l6ZSA9IG1fd2ViUGFnZVByb3h5LnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKCk7CiAgICAgbV9sYXN0U2VudFNpemUgPSBtX3NpemU7CiAgICAgbV9pc1dhaXRpbmdG
b3JEaWRVcGRhdGVHZW9tZXRyeSA9IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCAzMjdmZmM0ZjZkZDU2MzkxOTQwZWIwYTA3MTQzNTBjYjhmMjJmMmRkLi5kZTIx
NjY0NzZiNmU3M2IxYmI4NjI5MjBiNzlhYjgzNGNmOWYwY2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAKQEAgLTE1MDcsNyArMTUwNywxNSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50Ojp0cmFuc2l0aW9uVG9Db21taXR0ZWRGb3JOZXdQYWdlKCkKICAgICBSZWZQdHI8RnJh
bWVWaWV3PiB2aWV3ID0gbV9mcmFtZS0+Y29yZUZyYW1lKCktPnZpZXcoKTsKICAgICBpZiAoaW50
IHdpZHRoID0gd2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSkgewog
ICAgICAgICBpbnQgaGVpZ2h0ID0gc3RkOjptYXgod2ViUGFnZS0+bWluaW11bVNpemVGb3JBdXRv
TGF5b3V0KCkuaGVpZ2h0KCksIDEpOwotICAgICAgICB2aWV3LT5lbmFibGVBdXRvU2l6ZU1vZGUo
dHJ1ZSwgeyB3aWR0aCwgaGVpZ2h0IH0pOworICAgICAgICB2aWV3LT5lbmFibGVGaXhlZFdpZHRo
QXV0b1NpemVNb2RlKHRydWUsIHsgd2lkdGgsIGhlaWdodCB9KTsKKworICAgICAgICBpZiAod2Vi
UGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgICAgICAgICAg
dmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1IZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdo
dCgpKTsKKyAgICB9CisKKyAgICBJbnRTaXplIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1T
aXplID0gd2ViUGFnZS0+c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKTsKKyAgICBp
ZiAoc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUud2lkdGgoKSAmJiBzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZS5oZWlnaHQoKSkgeworICAgICAgICB2aWV3LT5lbmFibGVT
aXplVG9Db250ZW50QXV0b1NpemVNb2RlKHRydWUsIHNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGlt
dW1TaXplKTsKIAogICAgICAgICBpZiAod2ViUGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRv
Vmlld0hlaWdodCgpKQogICAgICAgICAgICAgdmlldy0+c2V0QXV0b1NpemVGaXhlZE1pbmltdW1I
ZWlnaHQod2ViUGFnZS0+c2l6ZSgpLmhlaWdodCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZjc1ZWY1MmExM2I0YWZhYThlMDlkYzUxM2Q0
MjhkMzEyMmUxZjAzNi4uNzA3YzM4ZTRkMzBjZmI0NmRkM2ZmZjUzNTQ1NGJlNmVhYjk3NDM3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYz
Myw2ICs2MzMsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgdXBkYXRlSXNJbldpbmRv
dyh0cnVlKTsKIAogICAgIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChwYXJhbWV0ZXJzLm1p
bmltdW1TaXplRm9yQXV0b0xheW91dCk7CisgICAgc2V0U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4
aW11bVNpemUocGFyYW1ldGVycy5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSk7CiAg
ICAgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChwYXJhbWV0ZXJzLmF1dG9T
aXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQpOwogICAgIHNldFZpZXdwb3J0U2l6ZUZvckNT
U1ZpZXdwb3J0VW5pdHMocGFyYW1ldGVycy52aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRz
KTsKICAgICAKQEAgLTc5NCw2ICs3OTUsNyBAQCB2b2lkIFdlYlBhZ2U6OnJlaW5pdGlhbGl6ZVdl
YlBhZ2UoV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCiAgICAgfQogCiAg
ICAgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KHBhcmFtZXRlcnMubWluaW11bVNpemVGb3JB
dXRvTGF5b3V0KTsKKyAgICBzZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShwYXJh
bWV0ZXJzLnNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplKTsKIAogICAgIGlmIChtX2Fj
dGl2aXR5U3RhdGUgIT0gcGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlKQogICAgICAgICBzZXRBY3Rp
dml0eVN0YXRlKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSwgQWN0aXZpdHlTdGF0ZUNoYW5nZUFz
eW5jaHJvbm91cywgVmVjdG9yPENhbGxiYWNrSUQ+KCkpOwpAQCAtNTY3NywxMSArNTY3OSwyNSBA
QCB2b2lkIFdlYlBhZ2U6OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBJbnRTaXpl
JiBzaXplKQogCiAgICAgbV9taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQgPSBzaXplOwogICAgIGlm
IChzaXplLndpZHRoKCkgPD0gMCkgewotICAgICAgICBjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52
aWV3KCktPmVuYWJsZUF1dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgY29yZVBhZ2Uo
KS0+bWFpbkZyYW1lKCkudmlldygpLT5lbmFibGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKGZhbHNl
LCB7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY29yZVBhZ2UoKS0+bWFpbkZy
YW1lKCkudmlldygpLT5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1ZSwgeyBzaXplLndpZHRoKCksIHN0
ZDo6bWF4KHNpemUuaGVpZ2h0KCksIDEpIH0pOworICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgp
LnZpZXcoKS0+ZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXplTW9kZSh0cnVlLCB7IHNpemUud2lkdGgo
KSwgc3RkOjptYXgoc2l6ZS5oZWlnaHQoKSwgMSkgfSk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6c2V0
U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKK3sK
KyAgICBpZiAobV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSA9PSBzaXplKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX3NpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplID0g
c2l6ZTsKKyAgICBpZiAoc2l6ZS53aWR0aCgpIDw9IDAgfHwgc2l6ZS5oZWlnaHQoKSA8PSAwKSB7
CisgICAgICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29u
dGVudEF1dG9TaXplTW9kZShmYWxzZSwgeyB9KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+ZW5hYmxlU2l6ZVRvQ29udGVudEF1
dG9TaXplTW9kZSh0cnVlLCBzaXplKTsKIH0KIAogdm9pZCBXZWJQYWdlOjpzZXRBdXRvU2l6aW5n
U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KGJvb2wgc2hvdWxkRXhwYW5kKQpAQCAtNjQzMSwxMCAr
NjQ0NywxMCBAQCB2b2lkIFdlYlBhZ2U6OnJlbW92ZUFsbFVzZXJDb250ZW50KCkKIAogdm9pZCBX
ZWJQYWdlOjp1cGRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZUlmTmVlZGVkKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKCFtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53
aWR0aCgpKQorICAgIGlmICghbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSAmJiAh
c2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmICFzaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKQogICAgICAgICByZXR1cm47CiAgICAg
QVNTRVJUKG1haW5GcmFtZVZpZXcoKSk7Ci0gICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNB
dXRvU2l6ZUVuYWJsZWQoKSk7CisgICAgQVNTRVJUKG1haW5GcmFtZVZpZXcoKS0+aXNGaXhlZFdp
ZHRoQXV0b1NpemVFbmFibGVkKCkgfHwgbWFpbkZyYW1lVmlldygpLT5pc1NpemVUb0NvbnRlbnRB
dXRvU2l6ZUVuYWJsZWQoKSk7CiAgICAgQVNTRVJUKCFtYWluRnJhbWVWaWV3KCktPm5lZWRzTGF5
b3V0KCkpOwogICAgIGlmIChtX2xhc3RTZW50SW50cmluc2ljQ29udGVudFNpemUgPT0gc2l6ZSkK
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCmluZGV4IDQyNjI3MDM3YTdlOWZiY2VjOTQ2ZjdkMzQzYWRjYjczMjMwMzZlMjQuLmIwOGE0
ZjVhMGFmZjM2MzFhODRjMDZkMTY4ZGUxZTYzMGQ3NjU1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwNjUsNiArMTA2NSw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKSBj
b25zdCB7IHJldHVybiBtX21pbmltdW1TaXplRm9yQXV0b0xheW91dDsgfQogCisgICAgdm9pZCBz
ZXRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jik7CisgICAgV2ViQ29yZTo6SW50U2l6ZSBzaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7IH0K
KwogICAgIHZvaWQgc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChib29sIHNo
b3VsZEV4cGFuZCk7CiAgICAgYm9vbCBhdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
KCkgeyByZXR1cm4gbV9hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0OyB9CiAKQEAg
LTE5MDcsNiArMTkxMCw3IEBAIHByaXZhdGU6CiAgICAgSGFzaFNldDx1bnNpZ25lZCBsb25nPiBt
X3RyYWNrZWROZXR3b3JrUmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcnM7CiAKICAgICBXZWJDb3Jl
OjpJbnRTaXplIG1fbWluaW11bVNpemVGb3JBdXRvTGF5b3V0OworICAgIFdlYkNvcmU6OkludFNp
emUgbV9zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKICAgICBib29sIG1fYXV0b1Np
emluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCB7IGZhbHNlIH07CiAgICAgT3B0aW9uYWw8V2Vi
Q29yZTo6SW50U2l6ZT4gbV92aWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgppbmRleCAwZjg4NDZkMjM1NjM1YmU2MGQ2NWQzMTMwMTUyZmJiZjYwOTcyMGJhLi42NGEzZDIw
MGE5YzQ1Y2ZjNTVmZmU3YjE2MTBiOGE0NWU0MTBmMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTQ2MSw2ICs0
NjEsNyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJL
aXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIFNldEFsd2F5c1Nob3dzVmVydGlj
YWxTY3JvbGxlcihib29sIGFsd2F5c1Nob3dzVmVydGljYWxTY3JvbGxlcikKIAogICAgIFNldE1p
bmltdW1TaXplRm9yQXV0b0xheW91dChXZWJDb3JlOjpJbnRTaXplIHNpemUpCisgICAgU2V0U2l6
ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoV2ViQ29yZTo6SW50U2l6ZSBzaXplKQogICAg
IFNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoYm9vbCBzaG91bGRFeHBhbmQp
CiAKICAgICBTZXRWaWV3cG9ydFNpemVGb3JDU1NWaWV3cG9ydFVuaXRzKE9wdGlvbmFsPFdlYkNv
cmU6OkludFNpemU+IHZpZXdwb3J0U2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQppbmRleCBiMmE2ZDNkZDFkZGU0NDBkZmY2YzhiYmUyMTY3Y2Y1YTcyZWY5MGMw
Li45YzA4ODdlNjkzZTI4OGVjNGU3YTNlMDMwN2Q2ZGM3MTk5OTJkOGQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCkBAIC01ODQsNyArNTg0LDcgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6
ZSYgdmlld1NpemUsIGJvb2wKICAgICBJbnRTaXplIHNpemUgPSB2aWV3U2l6ZTsKICAgICBJbnRT
aXplIGNvbnRlbnRTaXplID0gSW50U2l6ZSgtMSwgLTEpOwogCi0gICAgaWYgKCFtX3dlYlBhZ2Uu
bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkud2lkdGgoKSB8fCBtX3dlYlBhZ2UuYXV0b1Npemlu
Z1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodCgpKQorICAgIGlmICghbV93ZWJQYWdlLm1pbmltdW1T
aXplRm9yQXV0b0xheW91dCgpLndpZHRoKCkgfHwgbV93ZWJQYWdlLmF1dG9TaXppbmdTaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHQoKSB8fCAoIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSgpLndpZHRoKCkgJiYgIW1fd2ViUGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVN
YXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkKICAgICAgICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7
CiAKICAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fd2ViUGFnZS5tYWluRnJhbWVWaWV3KCk7
CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKIAogICAgIG1fd2Vi
UGFnZS5sYXlvdXRJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZv
ckF1dG9MYXlvdXQoKS53aWR0aCgpICYmIGZyYW1lVmlldykgeworICAgIGlmIChmcmFtZVZpZXcg
JiYgKG1fd2ViUGFnZS5taW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoKS53aWR0aCgpIHx8IChtX3dl
YlBhZ2Uuc2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemUoKS53aWR0aCgpICYmIG1fd2Vi
UGFnZS5zaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZSgpLmhlaWdodCgpKSkpIHsKICAg
ICAgICAgY29udGVudFNpemUgPSBmcmFtZVZpZXctPmF1dG9TaXppbmdJbnRyaW5zaWNDb250ZW50
U2l6ZSgpOwogICAgICAgICBzaXplID0gY29udGVudFNpemU7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQyZTJm
N2Q1NTZlOTVlYzMyNGE5NGUyZjMyOGYxM2NmYjQwODE3NmMuLmQ5YmRjZTNjYzVlMDVlN2FiMGJk
ZGRhZjVhYzlmMjM4MWFmNzQ5MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wMy0yOSAg
QW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgorCisgICAgICAgIFtBdXRvU2l6aW5n
XSBCcmluZyBiYWNrIHRoZSBvbGQgYXV0by1zaXppbmcgY29kZSBhcyBhIGRlcHJlY2F0ZWQgY29k
ZXBhdGggZm9yIGNvbXBhdGliaWxpdHkgcmVhc29ucworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5NjY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82
MDExMTA4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGUgbWV0aG9kcyBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2RlKCkgaGFzIGNoYW5nZWQg
dG8gaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUoKS4KKworICAgICAgICAq
IGNzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhzL3ZoLWF1dG8tc2l6ZS1leHBlY3RlZC5o
dG1sOgorICAgICAgICAqIGNzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhzL3ZoLWF1dG8t
c2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvZHluYW1pYy9jcmFzaC1zdWJ0cmVlLWxheW91dC13
aGVuLWF1dG8tc2l6ZS1lbmFibGVkLmh0bWw6CisgICAgICAgICogZmFzdC9keW5hbWljL21haWwt
YXV0b3NpemUtdmlld3BvcnQtdW5pdC5odG1sOgorCiAyMDIwLTAzLTI3ICBKYWNrIExlZSAgPHNo
aWhjaGllaF9sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gQ29tcG9z
aXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9MIGludG8gdW5l
ZGl0YWJsZSBwYXJlbnQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBl
cmNlbnRhZ2UtbGVuZ3Rocy92aC1hdXRvLXNpemUtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2NzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhzL3ZoLWF1dG8tc2l6ZS1leHBlY3RlZC5o
dG1sCmluZGV4IGJjYWY0ZDk1M2MwYjIxOTMyYjIyOTFlYTIzNzM3OWUwNmRjNjFlN2QuLjIyNGYx
ODQxODVmOTNjM2FmYmIyZTkxNjA4YWFjM2RiNWI2MmNiNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhzL3ZoLWF1dG8tc2l6ZS1leHBlY3Rl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvdmlld3BvcnQtcGVyY2VudGFnZS1sZW5ndGhz
L3ZoLWF1dG8tc2l6ZS1leHBlY3RlZC5odG1sCkBAIC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5lbmFibGVBdXRvU2l6ZU1vZGUodHJ1
ZSwgMTAwMCwgMSk7CisgICAgaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6ZU1vZGUo
dHJ1ZSwgMTAwMCwgMSk7CiA8L3NjcmlwdD4KIHRleHQgdGV4dCB0ZXh0IHRleHQgdGV4dCB0ZXh0
IHRleHQKIDxkaXYgc3R5bGU9ImhlaWdodDoxMDAwcHg7IGJvcmRlcjoycHggc29saWQgZ3JlZW4i
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0
aHMvdmgtYXV0by1zaXplLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBlcmNlbnRh
Z2UtbGVuZ3Rocy92aC1hdXRvLXNpemUuaHRtbAppbmRleCA4NzFmZDhmNzYyZWYzYTBkMzNmMTgw
M2QyODlhYTQ0M2FlNGQzNGYyLi5kNDFlNGY1ZTc5MjZhYmI0ZjFhOTg3MTQ0YzAyYTI1YjA0OTk3
NTZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVu
Z3Rocy92aC1hdXRvLXNpemUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3ZpZXdwb3J0LXBl
cmNlbnRhZ2UtbGVuZ3Rocy92aC1hdXRvLXNpemUuaHRtbApAQCAtMiw3ICsyLDcgQEAKIDxoZWFk
PgogPHNjcmlwdD4KIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5lbmFibGVB
dXRvU2l6ZU1vZGUodHJ1ZSwgMTAwMCwgMSk7CisgICAgaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lk
dGhBdXRvU2l6ZU1vZGUodHJ1ZSwgMTAwMCwgMSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9keW5hbWljL2NyYXNoLXN1YnRyZWUtbGF5
b3V0LXdoZW4tYXV0by1zaXplLWVuYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZHluYW1p
Yy9jcmFzaC1zdWJ0cmVlLWxheW91dC13aGVuLWF1dG8tc2l6ZS1lbmFibGVkLmh0bWwKaW5kZXgg
ZGQ4ZDQ3YWFjNzcyNWE0ZTdiMzlmYjBiZjdhMzkyY2I1YTg1MDQ0NC4uNTNkMzQ2YjFlZmJkMDEy
OWI4ZTAzYjY1NjM3MDNjNjgzZWVhMmYzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
eW5hbWljL2NyYXNoLXN1YnRyZWUtbGF5b3V0LXdoZW4tYXV0by1zaXplLWVuYWJsZWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2R5bmFtaWMvY3Jhc2gtc3VidHJlZS1sYXlvdXQtd2hlbi1h
dXRvLXNpemUtZW5hYmxlZC5odG1sCkBAIC0xNSw3ICsxNSw3IEBACiA8ZGl2PlBhc3MgaWYgbm8g
Y3Jhc2ggb3IgYXNzZXJ0LjxkaXYgaWQ9cmVzaXplVGhpcz48L2Rpdj48L2Rpdj4KIDxzY3JpcHQ+
CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuZW5hYmxlQXV0b1NpemVNb2Rl
KHRydWUsIDgwMCwgNjAwKTsKKyAgICBpbnRlcm5hbHMuZW5hYmxlRml4ZWRXaWR0aEF1dG9TaXpl
TW9kZSh0cnVlLCA4MDAsIDYwMCk7CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
eW5hbWljL21haWwtYXV0b3NpemUtdmlld3BvcnQtdW5pdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9keW5hbWljL21haWwtYXV0b3NpemUtdmlld3BvcnQtdW5pdC5odG1sCmluZGV4IDVkNTVjYWU0
OGM0ODZiMzIzY2Y2MmI3NDRiMGY3MTg3MjhiN2VjMjguLmJhOTQ4NWIyNDQ5MzBjMmM0NWNhZjk1
YTI2YTRiYzYzZjE2NGQzNTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZHluYW1pYy9t
YWlsLWF1dG9zaXplLXZpZXdwb3J0LXVuaXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2R5
bmFtaWMvbWFpbC1hdXRvc2l6ZS12aWV3cG9ydC11bml0Lmh0bWwKQEAgLTI1LDcgKzI1LDcgQEAK
IDwvc3R5bGU+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxz
LmVuYWJsZUF1dG9TaXplTW9kZSh0cnVlLCAyMDAwLCA2MDApOworICAgIGludGVybmFscy5lbmFi
bGVGaXhlZFdpZHRoQXV0b1NpemVNb2RlKHRydWUsIDIwMDAsIDYwMCk7CiAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKQEAgLTQ1LDcgKzQ1LDcg
QEAgcmVzdWx0LnRleHRDb250ZW50ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodzEwMCwgbnVs
bCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgKICAgICArIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxl
KHcxMCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKSArICIgIiAgCiAJKyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh3MCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgid2lkdGgiKTsgIAog
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLmVuYWJsZUF1dG9TaXplTW9kZShm
YWxzZSwgMCwgMCwgMCwgMCk7CisgICAgaW50ZXJuYWxzLmVuYWJsZUZpeGVkV2lkdGhBdXRvU2l6
ZU1vZGUoZmFsc2UsIDAsIDAsIDAsIDApOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>