<?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>170913</bug_id>
          
          <creation_ts>2017-04-17 13:52:25 -0700</creation_ts>
          <short_desc>Plumb all four obscured insets to WebCore, instead of just top/left</short_desc>
          <delta_ts>2017-04-18 19:37:54 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>mitz</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297998</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 13:52:25 -0700</bug_when>
    <thetext>Plumb all four obscured insets to WebCore, instead of just top/left</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297999</commentid>
    <comment_count>1</comment_count>
      <attachid>307293</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 13:52:59 -0700</bug_when>
    <thetext>Created attachment 307293
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298002</commentid>
    <comment_count>2</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 13:58:57 -0700</bug_when>
    <thetext>Maybe this should use FloatBoxExtent?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298003</commentid>
    <comment_count>3</comment_count>
      <attachid>307293</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-04-17 13:59:07 -0700</bug_when>
    <thetext>Comment on attachment 307293
Patch

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

&gt; Source/WebCore/platform/graphics/FloatRectInsets.h:32
&gt; +class FloatRectInsets {

Can this be a BoxExtent&lt;float&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298004</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-17 13:59:18 -0700</bug_when>
    <thetext>Attachment 307293 did not pass style-queue:


ERROR: Source/WebKit2/Shared/VisibleContentRectUpdateInfo.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298005</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 13:59:39 -0700</bug_when>
    <thetext>lol, I beat you by 10 seconds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298007</commentid>
    <comment_count>6</comment_count>
      <attachid>307293</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-17 14:03:32 -0700</bug_when>
    <thetext>Comment on attachment 307293
Patch

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=170913

Maybe add a &quot;(Work towards )&lt;rdar://problem/________&gt;&quot; here?

&gt; Source/WebKit2/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=170913

Maybe add a &quot;(Work towards )&lt;rdar://problem/________&gt;&quot; here?

&gt; Source/WebCore/platform/graphics/FloatRectInsets.cpp:33
&gt; +TextStream&amp; operator&lt;&lt;(TextStream&amp; ts, const FloatRectInsets &amp;insets)

&quot;FloatRectInsets &amp;&quot; =&gt; &quot;FloatRectInsets&amp; &quot;

&gt; Source/WebCore/platform/graphics/FloatRectInsets.h:58
&gt; +

Should this know how to convert to UIEdgeInsets via operator UIEdgeInsets()? (like how FloatRect can convert to a CGRect).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298053</commentid>
    <comment_count>7</comment_count>
      <attachid>307306</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 15:33:53 -0700</bug_when>
    <thetext>Created attachment 307306
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298054</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-17 15:36:02 -0700</bug_when>
    <thetext>Attachment 307306 did not pass style-queue:


ERROR: Source/WebKit2/Shared/VisibleContentRectUpdateInfo.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298094</commentid>
    <comment_count>9</comment_count>
      <attachid>307318</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 16:32:16 -0700</bug_when>
    <thetext>Created attachment 307318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298099</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-17 16:37:51 -0700</bug_when>
    <thetext>Attachment 307318 did not pass style-queue:


ERROR: Source/WebKit2/Shared/VisibleContentRectUpdateInfo.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298122</commentid>
    <comment_count>11</comment_count>
      <attachid>307327</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-17 18:02:40 -0700</bug_when>
    <thetext>Created attachment 307327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298125</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-17 18:04:49 -0700</bug_when>
    <thetext>Attachment 307327 did not pass style-queue:


ERROR: Source/WebKit2/Shared/VisibleContentRectUpdateInfo.h:57:  Wrong number of spaces before statement. (expected: 12)  [whitespace/indent] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298143</commentid>
    <comment_count>13</comment_count>
      <attachid>307327</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-17 19:37:22 -0700</bug_when>
    <thetext>Comment on attachment 307327
Patch

Clearing flags on attachment: 307327

Committed r215446: &lt;http://trac.webkit.org/changeset/215446&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298144</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-17 19:37:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298316</commentid>
    <comment_count>15</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2017-04-18 09:36:33 -0700</bug_when>
    <thetext>This change broke the iOS debug build:
https://build.webkit.org/builders/Apple%20iOS%2010%20Simulator%20Debug%20%28Build%29/builds/843</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298554</commentid>
    <comment_count>16</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-18 18:49:51 -0700</bug_when>
    <thetext>Is this for Mac and iOS, or just iOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298559</commentid>
    <comment_count>17</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-18 19:03:49 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #16)
&gt; Is this for Mac and iOS, or just iOS?

Just iOS. Mac sends even less! Only top. But we should use the same mechanism (the WebCore parts are not iOS specific) in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298563</commentid>
    <comment_count>18</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-18 19:16:43 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #17)
&gt; (In reply to Sam Weinig from comment #16)
&gt; &gt; Is this for Mac and iOS, or just iOS?
&gt; 
&gt; Just iOS. Mac sends even less! Only top. But we should use the same
&gt; mechanism (the WebCore parts are not iOS specific) in the future.

Yay-boo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298564</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-18 19:17:37 -0700</bug_when>
    <thetext>Also, was this really not testable? You even updated TextStream to support it :|</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298568</commentid>
    <comment_count>20</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-04-18 19:29:01 -0700</bug_when>
    <thetext>Settle down and wait for the next patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298573</commentid>
    <comment_count>21</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-18 19:37:54 -0700</bug_when>
    <thetext>(In reply to Tim Horton from comment #20)
&gt; Settle down and wait for the next patch :)

Oh, so now I have to trust that &quot;tests are coming&quot;? I&apos;ve been spun that tale before young man.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307293</attachid>
            <date>2017-04-17 13:52:59 -0700</date>
            <delta_ts>2017-04-17 15:33:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170913-20170417135258.patch</filename>
            <type>text/plain</type>
            <size>42915</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI4MjEwZjFlZGU2Zjc0
NmVmNjZlMGViM2I1MTVhZjlmZWJiODY4NC4uMjczN2ZkYTFhY2E3YTVmZjdmNmExMzJlZWUzYmRm
MDViNDBkODA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE3LTA0LTE3ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVtYiBh
bGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZSwgaW5zdGVhZCBvZiBqdXN0IHRvcC9s
ZWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA5
MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIG5vIG9ic2VydmFibGUgYmVoYXZpb3IgY2hhbmdlIHlldC4KKworICAgICAgICBJ
biBwcmVwYXJhdGlvbiBmb3IgYSBmdXR1cmUgcGF0Y2gsIHBsdW1iIGFsbCBmb3VyIG9ic2N1cmVk
IGluc2V0cyB0bworICAgICAgICBXZWJDb3JlL3RoZSBXZWIgQ29udGVudCBwcm9jZXNzLCBpbnN0
ZWFkIG9mIGp1c3QgdGhlIHRvcCBhbmQgbGVmdCBpbnNldHMuCisKKyAgICAgICAgVG8gZG8gc28s
IGludHJvZHVjZSBhIG5ldyBvYmplY3QgdG8gc3RvcmUgaW5zZXRzLCBhIFdlYkNvcmUgZXF1aXZh
bGVudAorICAgICAgICBvZiBVSUVkZ2VJbnNldHMgb3IgTlNFZGdlSW5zZXRzLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0SW5zZXRzLmNwcDogQWRkZWQuCisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFJlY3RJbnNldHMuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHM6
OkZsb2F0UmVjdEluc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHM6OnRv
cCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHM6OnJpZ2h0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0czo6Ym90dG9tKToKKyAgICAgICAgKFdlYkNvcmU6OkZs
b2F0UmVjdEluc2V0czo6bGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHM6
OnNldFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHM6OnNldFJpZ2h0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0czo6c2V0Qm90dG9tKToKKyAgICAgICAg
KFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0czo6c2V0TGVmdCk6CisgICAgICAgIChXZWJDb3JlOjpv
cGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yIT0pOgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgSW50cm9kdWNlIEZsb2F0
UmVjdEluc2V0cworCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhpc3Rvcnkv
SGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpvYnNjdXJlZElu
c2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0T2JzY3VyZWRJbnNldHMp
OgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Om9ic2N1cmVkSW5zZXQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldE9ic2N1cmVkSW5zZXQpOiBEZWxl
dGVkLgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRl
VG9JdGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6
Om9ic2N1cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE9ic2N1cmVkSW5z
ZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om9ic2N1cmVkSW5zZXQpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T2JzY3VyZWRJbnNldCk6IERlbGV0ZWQuCisgICAg
ICAgIEFkb3B0IEZsb2F0UmVjdEluc2V0cyBmb3Igb2JzY3VyZWRJbnNldHMgKGFuZCBhZGp1c3Qg
cGx1cmFsaXphdGlvbikuCisKIDIwMTctMDQtMTcgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIHZpZXdwb3J0IHBhcmFtZXRlciB0byBk
aXNhYmxlIGNsaXBwaW5nIHRvIHRoZSBzYWZlIGFyZWEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyN2JkODNlZGRm
ZjZjYzhkZmVhODY0NjM1Y2I2OWM4ZTU3YWIxYmNkLi5iYmU5NmJiNDkyOGIwNjkzMDExNTExOWNm
ODM3M2ZiNThmNjBiMjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTctMDQtMTcg
IFRpbW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFBs
dW1iIGFsbCBmb3VyIG9ic2N1cmVkIGluc2V0cyB0byBXZWJDb3JlLCBpbnN0ZWFkIG9mIGp1c3Qg
dG9wL2xlZnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MDkxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAoV2Vi
S2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZv
OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJs
ZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6b2JzY3VyZWRJbnNldHMpOgorICAgICAgICAoV2ViS2l0
OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
SW5mbzo6b2JzY3VyZWRJbnNldCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0
SW5zZXRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJlY3RJ
bnNldHM+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46cHJldmlvdXNPYnNjdXJl
ZEluc2V0OnNjYWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVZpc2libGVDb250
ZW50UmVjdHNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToKKyAg
ICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVkUmVj
dDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRzOmlu
cHV0Vmlld0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5naW5n
T2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JW
aWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0OnVu
b2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2JzY3Vy
ZWRJbnNldDppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNjYWxlOmluU3RhYmxlU3RhdGU6
aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTplbmNsb3NlZEluU2Nyb2xsYWJs
ZUFuY2VzdG9yVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3JlUGFn
ZVN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKToKKyAgICAgICAgQWRv
cHQgRmxvYXRSZWN0SW5zZXRzIGZvciBvYnNjdXJlZEluc2V0cyAoYW5kIGFkanVzdCBwbHVyYWxp
emF0aW9uKS4KKwogMjAxNy0wNC0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxl
LmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgdmlld3BvcnQgcGFyYW1ldGVyIHRvIGRpc2FibGUg
Y2xpcHBpbmcgdG8gdGhlIHNhZmUgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGYyYzY0OWVmNWQzNDNjMDA4MTQ3YjllOGEz
ZGI5ZTAyMjIyNTk1N2EuLjk2ZTRiODM2ZjRjZjg3MDExYjYxNjRmNzUxMDgzMDYwMGViMTA0Nzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEyMTQsNiArMTIxNCw4IEBACiAJCTJENkYzRTk1MUMxRjg1NTUwMDYxREJENCAvKiBK
U01vY2tQYWdlT3ZlcmxheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkQ2RjNFOTMxQzFGODU1NTAwNjFEQkQ0IC8qIEpTTW9ja1BhZ2VPdmVybGF5Lmgg
Ki87IH07CiAJCTJENzBCQTEzMTgwNzREREYwMDAxOTA4QSAvKiBQbGF0Zm9ybUNBTGF5ZXJDb2Nv
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3MEJB
MTIxODA3NERERjAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllckNvY29hLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQ3MEJBMTUxODA3NEY4NjAw
MDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyRDcwQkExNDE4MDc0Rjg1MDAwMTkwOEEgLyogUGxhdGZvcm1D
QUxheWVyLmNwcCAqLzsgfTsKKwkJMkQ3NUNGOEIxRUE1NDI5MTAwMDc3QzJDIC8qIEZsb2F0UmVj
dEluc2V0cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkQ3NUNGODkxRUE1NDI5MTAwMDc3QzJDIC8qIEZsb2F0UmVjdEluc2V0cy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJENzVDRjhGMUVBNTRGRkIw
MDA3N0MyQyAvKiBGbG9hdFJlY3RJbnNldHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ3NUNGOEUxRUE1NEZGQjAwMDc3QzJDIC8qIEZsb2F0UmVj
dEluc2V0cy5jcHAgKi87IH07CiAJCTJENzZCQjgyMTk0NTYzMjQwMENGRDI5QSAvKiBSdW5Mb29w
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJENzZCQjgwMTk0NTYzMjQwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDc2QkI4NDE5NDU2Rjgx
MDBDRkQyOUEgLyogUnVuTG9vcE9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJENzZCQjgzMTk0NTZGODEwMENGRDI5QSAvKiBSdW5Mb29w
T2JzZXJ2ZXIuY3BwICovOyB9OwogCQkyRDc3QUMyOTFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nl
c3NpYmlsaXR5U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRDc3QUMyNjFCRjJCOTg2MDA3MjQ3MEEgLyogTlNBY2Nlc3NpYmlsaXR5U1BJLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg3MjUsNiAr
ODcyNyw4IEBACiAJCTJENkYzRTkzMUMxRjg1NTUwMDYxREJENCAvKiBKU01vY2tQYWdlT3Zlcmxh
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01vY2tQYWdlT3ZlcmxheS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDcwQkExMjE4MDc0RERGMDAwMTkwOEEg
LyogUGxhdGZvcm1DQUxheWVyQ29jb2EuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUGxhdGZvcm1DQUxheWVyQ29jb2EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkQ3MEJBMTQxODA3NEY4NTAwMDE5MDhBIC8qIFBsYXRmb3JtQ0FMYXllci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQbGF0Zm9ybUNBTGF5ZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRDc1Q0Y4OTFFQTU0MjkxMDAwNzdDMkMgLyogRmxvYXRS
ZWN0SW5zZXRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZsb2F0UmVjdElu
c2V0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDc1Q0Y4RTFFQTU0RkZCMDAw
NzdDMkMgLyogRmxvYXRSZWN0SW5zZXRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEZsb2F0UmVjdEluc2V0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJENzZCQjgwMTk0NTYzMjQwMENGRDI5QSAvKiBSdW5Mb29wT2JzZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcE9ic2VydmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJENzZCQjgzMTk0NTZGODEwMENGRDI5QSAvKiBSdW5Mb29wT2Jz
ZXJ2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcE9i
c2VydmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ3N0FDMjYxQkYyQjk4
NjAwNzI0NzBBIC8qIE5TQWNjZXNzaWJpbGl0eVNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBOU0FjY2Vzc2liaWxpdHlTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIzMDA1LDYgKzIzMDA5LDggQEAKIAkJCQkwRkQ3MjM4MDBFQzhCRDkzMDBDQTVERDcg
LyogRmxvYXRRdWFkLmggKi8sCiAJCQkJQjI3NTM1M0MwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0
UmVjdC5jcHAgKi8sCiAJCQkJQjI3NTM1M0QwQjA1MzgxNDAwMkNFNjRGIC8qIEZsb2F0UmVjdC5o
ICovLAorCQkJCTJENzVDRjhFMUVBNTRGRkIwMDA3N0MyQyAvKiBGbG9hdFJlY3RJbnNldHMuY3Bw
ICovLAorCQkJCTJENzVDRjg5MUVBNTQyOTEwMDA3N0MyQyAvKiBGbG9hdFJlY3RJbnNldHMuaCAq
LywKIAkJCQk2RTBFNTY5OTE4M0JGRkU2MDBFMEU4RDUgLyogRmxvYXRSb3VuZGVkUmVjdC5jcHAg
Ki8sCiAJCQkJNkUwRTU2OUExODNCRkZFNjAwRTBFOEQ1IC8qIEZsb2F0Um91bmRlZFJlY3QuaCAq
LywKIAkJCQlCMjc1MzUzRTBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRTaXplLmNwcCAqLywKQEAg
LTI2NTcyLDYgKzI2NTc4LDcgQEAKIAkJCQlGNTVCM0RCNDEyNTFGMTJEMDAzRUYyNjkgLyogQ29s
b3JJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUVERTNBNTAwMEM3QTQzMDYwMDk1NkEz
NyAvKiBDb2xvck1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM4MkRGNTgxMEE4RDVDOTAwOTI1
NjUyIC8qIENvbG9yU3BhY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCTJENzVDRjhCMUVBNTQyOTEw
MDA3N0MyQyAvKiBGbG9hdFJlY3RJbnNldHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDREQ0NTRF
MTIzNkM5NUMwMDlBNzk4NSAvKiBDb2x1bW5JbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk0M0VE
RDY3RjFCNDg1REJGMDA2NDBFNzUgLyogQ29tYmluZWRGaWx0ZXJzQWxwaGFiZXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTI2RTk0NEQ5MUFDNEIyREQwMDdCODVCNSAvKiBDb21iaW5lZFVSTEZpbHRl
cnMuaCBpbiBIZWFkZXJzICovLApAQCAtMzE2NzIsNiArMzE2NzksNyBAQAogCQkJCTE0MDNCQTBD
MDlFQjE4QzcwMDc5N0M3RiAvKiBKU0RPTVdpbmRvdy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlC
QzY5MzI3MzBEN0UyOTM5MDBBRTQ0RDEgLyogSlNET01XaW5kb3dCYXNlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDRDlDMjYyMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQkyRDc1Q0Y4RjFFQTU0RkZCMDAwNzdDMkMgLyogRmxvYXRS
ZWN0SW5zZXRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2MENCRjM1MUQ0QkNEMEUwMDkyRTg4
RSAvKiBKU0RPTVdpbmRvd1Byb3BlcnRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCRkI1
M0MwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDE3MEEyRUExRDhDMENDQTAwMzE4NDUyIC8qIEpTRE9NV3JhcHBlci5jcHAgaW4gU291
cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAKaW5kZXggOGE5ODBi
M2ZmZjRkMGI1MGMyZmQ5NDZmYTRlZTJkMjM3OTc1MTM0Mi4uNjQ4NDRhNzU0MTgzOGFkM2MzNmQ5
MzA5NmI2OGMyZWY5MGUxZGE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9I
aXN0b3J5SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCBpbmxpbmUgSGlzdG9yeUl0ZW06Okhpc3RvcnlJdGVtKGNv
bnN0IEhpc3RvcnlJdGVtJiBpdGVtKQogICAgICwgbV9mb3JtQ29udGVudFR5cGUoaXRlbS5tX2Zv
cm1Db250ZW50VHlwZSkKICAgICAsIG1fcHJ1bmluZ1JlYXNvbihQcnVuaW5nUmVhc29uOjpOb25l
KQogI2lmIFBMQVRGT1JNKElPUykKLSAgICAsIG1fb2JzY3VyZWRJbnNldChpdGVtLm1fb2JzY3Vy
ZWRJbnNldCkKKyAgICAsIG1fb2JzY3VyZWRJbnNldHMoaXRlbS5tX29ic2N1cmVkSW5zZXRzKQog
ICAgICwgbV9zY2FsZShpdGVtLm1fc2NhbGUpCiAgICAgLCBtX3NjYWxlSXNJbml0aWFsKGl0ZW0u
bV9zY2FsZUlzSW5pdGlhbCkKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9IaXN0b3J5SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5o
CmluZGV4IDc1Y2ZjODU4MTJkNGM2NjEyMWEzZDZhYTllYzI4YjgzNzkyYzZkNjguLjM4ZmQzMDM5
MWZmOTA2YzM1ZDQ4ZGJiY2RmNzE5MTg3NGUwMDdjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hp
c3RvcnlJdGVtLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAi
RmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0SW5zZXRzLmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgpAQCAtMTc0LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHVub2JzY3VyZWRD
b250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OyB9CiAg
ICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoSW50UmVjdCB1bm9ic2N1cmVkQ29udGVu
dFJlY3QpIHsgbV91bm9ic2N1cmVkQ29udGVudFJlY3QgPSB1bm9ic2N1cmVkQ29udGVudFJlY3Q7
IH0KIAotICAgIEZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYnNj
dXJlZEluc2V0OyB9Ci0gICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0KGNvbnN0IEZsb2F0U2l6ZSYg
aW5zZXQpIHsgbV9vYnNjdXJlZEluc2V0ID0gaW5zZXQ7IH0KKyAgICBGbG9hdFJlY3RJbnNldHMg
b2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXRzOyB9CisgICAg
dm9pZCBzZXRPYnNjdXJlZEluc2V0cyhjb25zdCBGbG9hdFJlY3RJbnNldHMmIGluc2V0cykgeyBt
X29ic2N1cmVkSW5zZXRzID0gaW5zZXRzOyB9CiAKICAgICBGbG9hdFNpemUgbWluaW11bUxheW91
dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bUxh
eW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlczsgfQogICAgIHZvaWQgc2V0TWluaW11bUxh
eW91dFNpemVJblNjcm9sbFZpZXdDb29yZGluYXRlcyhGbG9hdFNpemUgbWluaW11bUxheW91dFNp
emVJblNjcm9sbFZpZXdDb29yZGluYXRlcykgeyBtX21pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMgPSBtaW5pbXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
OyB9CkBAIC0yNTcsNyArMjU4LDcgQEAgcHJpdmF0ZToKICAgICBJbnRSZWN0IG1fdW5vYnNjdXJl
ZENvbnRlbnRSZWN0OwogICAgIEZsb2F0U2l6ZSBtX21pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXM7CiAgICAgSW50U2l6ZSBtX2NvbnRlbnRTaXplOwotICAgIEZsb2F0U2l6
ZSBtX29ic2N1cmVkSW5zZXQ7CisgICAgRmxvYXRSZWN0SW5zZXRzIG1fb2JzY3VyZWRJbnNldHM7
CiAgICAgZmxvYXQgbV9zY2FsZSB7IDAgfTsgLy8gTm90ZSB0aGF0IFVJV2ViVmlldyBsb29rcyBm
b3IgYSBub24temVybyB2YWx1ZSwgc28gdGhpcyBoYXMgdG8gc3RhcnQgYXMgMC4KICAgICBib29s
IG1fc2NhbGVJc0luaXRpYWwgeyBmYWxzZSB9OwogICAgIFZpZXdwb3J0QXJndW1lbnRzIG1fdmll
d3BvcnRBcmd1bWVudHM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9y
eUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVy
LmNwcAppbmRleCA3NDMxMDhiMzg3NjgxNjE2OGEzMjc0NTNmYzM2NWQ4MmVkOGY3NGFhLi40NDQ3
Yzc3YjZlY2I4ZjViODA1NzhkOWFjMWRhYmJjMzFlYTcwYTU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgdm9pZCBIaXN0
b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmlld1N0YXRlVG9JdGVtKEhpc3Rv
cnlJdGVtKiBpdGVtKQogICAgIGlmIChwYWdlICYmIG1fZnJhbWUuaXNNYWluRnJhbWUoKSkgewog
ICAgICAgICBpdGVtLT5zZXRQYWdlU2NhbGVGYWN0b3IocGFnZS0+cGFnZVNjYWxlRmFjdG9yKCkg
LyBwYWdlLT52aWV3U2NhbGVGYWN0b3IoKSk7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBp
dGVtLT5zZXRPYnNjdXJlZEluc2V0KHBhZ2UtPm9ic2N1cmVkSW5zZXQoKSk7CisgICAgICAgIGl0
ZW0tPnNldE9ic2N1cmVkSW5zZXRzKHBhZ2UtPm9ic2N1cmVkSW5zZXRzKCkpOwogI2VuZGlmCiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IGExNDI5ODZmYjExM2FlZTQxMjhmZDgwNDJiNTI5YjRi
NTBjMDJjZTkuLmUwNmM4MDEzZjA3YTYwYWQxMDFlNGUyYTFhYmNlMDhjMzVmMDI1NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlICJBY3Rpdml0eVN0YXRlLmgi
CiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKKyNpbmNsdWRlICJGbG9hdFJlY3RJbnNldHMuaCIK
ICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0TWlsZXN0b25l
cy5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKQEAgLTMyOSw4ICszMzAsOCBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRUb3BDb250ZW50SW5zZXQoZmxvYXQpOwogCiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIEZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyBy
ZXR1cm4gbV9vYnNjdXJlZEluc2V0OyB9Ci0gICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0KEZsb2F0
U2l6ZSBpbnNldCkgeyBtX29ic2N1cmVkSW5zZXQgPSBpbnNldDsgfQorICAgIEZsb2F0UmVjdElu
c2V0cyBvYnNjdXJlZEluc2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fb2JzY3VyZWRJbnNldHM7IH0K
KyAgICB2b2lkIHNldE9ic2N1cmVkSW5zZXRzKEZsb2F0UmVjdEluc2V0cyBpbnNldHMpIHsgbV9v
YnNjdXJlZEluc2V0cyA9IGluc2V0czsgfQogICAgIAogICAgIGJvb2wgZW5jbG9zZWRJblNjcm9s
bGFibGVBbmNlc3RvclZpZXcoKSBjb25zdCB7IHJldHVybiBtX2VuY2xvc2VkSW5TY3JvbGxhYmxl
QW5jZXN0b3JWaWV3OyB9CiAgICAgdm9pZCBzZXRFbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9y
Vmlldyhib29sIGYpIHsgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyA9IGY7IH0K
QEAgLTY4OCw3ICs2ODksNyBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8v
IFRoaXMgaXMgb25seSB1c2VkIGZvciBoaXN0b3J5IHNjcm9sbCBwb3NpdGlvbiByZXN0b3JhdGlv
bi4KLSAgICBGbG9hdFNpemUgbV9vYnNjdXJlZEluc2V0OworICAgIEZsb2F0UmVjdEluc2V0cyBt
X29ic2N1cmVkSW5zZXRzOwogICAgIGJvb2wgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9y
VmlldyB7IGZhbHNlIH07CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0SW5zZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0Zsb2F0UmVjdEluc2V0cy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmZmZjM0NDUwMzIx
MjAwNGNmMjhhMmE4NWNkYTZhODZkY2Y2OTQzNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdEluc2V0cy5jcHAKQEAgLTAsMCArMSw0
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0SW5zZXRzLmgiCisKKyNpbmNsdWRl
ICJUZXh0U3RyZWFtLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgRmxvYXRSZWN0SW5zZXRzICZpbnNldHMpCit7
CisgICAgcmV0dXJuIHRzIDw8ICJ0b3A9IiA8PCBUZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNw
ZWN0aW5nSW50ZWdlcnMoaW5zZXRzLnRvcCgpKQorICAgICAgICA8PCAiIHJpZ2h0PSIgPDwgVGV4
dFN0cmVhbTo6Rm9ybWF0TnVtYmVyUmVzcGVjdGluZ0ludGVnZXJzKGluc2V0cy5yaWdodCgpKQor
ICAgICAgICA8PCAiIGJvdHRvbT0iIDw8IFRleHRTdHJlYW06OkZvcm1hdE51bWJlclJlc3BlY3Rp
bmdJbnRlZ2VycyhpbnNldHMuYm90dG9tKCkpCisgICAgICAgIDw8ICIgbGVmdD0iIDw8IFRleHRT
dHJlYW06OkZvcm1hdE51bWJlclJlc3BlY3RpbmdJbnRlZ2VycyhpbnNldHMubGVmdCgpKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0SW5zZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3RJ
bnNldHMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4yZTYyMThlOGUxNzEzZDA1MDIzMTJhNTk1OWI1ODYwOWVlZGNl
MmYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSZWN0SW5zZXRzLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0U3RyZWFtOworCitjbGFzcyBGbG9hdFJlY3RJbnNldHMgeworcHVi
bGljOgorICAgIEZsb2F0UmVjdEluc2V0cygpIHsgfQorICAgIEZsb2F0UmVjdEluc2V0cyhmbG9h
dCB0b3AsIGZsb2F0IHJpZ2h0LCBmbG9hdCBib3R0b20sIGZsb2F0IGxlZnQpCisgICAgICAgIDog
bV90b3AodG9wKQorICAgICAgICAsIG1fcmlnaHQocmlnaHQpCisgICAgICAgICwgbV9ib3R0b20o
Ym90dG9tKQorICAgICAgICAsIG1fbGVmdChsZWZ0KQorICAgIHsgfQorCisgICAgZmxvYXQgdG9w
KCkgY29uc3QgeyByZXR1cm4gbV90b3A7IH0KKyAgICBmbG9hdCByaWdodCgpIGNvbnN0IHsgcmV0
dXJuIG1fcmlnaHQ7IH0KKyAgICBmbG9hdCBib3R0b20oKSBjb25zdCB7IHJldHVybiBtX2JvdHRv
bTsgfQorICAgIGZsb2F0IGxlZnQoKSBjb25zdCB7IHJldHVybiBtX2xlZnQ7IH0KKworICAgIHZv
aWQgc2V0VG9wKGZsb2F0IHRvcCkgeyBtX3RvcCA9IHRvcDsgfQorICAgIHZvaWQgc2V0UmlnaHQo
ZmxvYXQgcmlnaHQpIHsgbV9yaWdodCA9IHJpZ2h0OyB9CisgICAgdm9pZCBzZXRCb3R0b20oZmxv
YXQgYm90dG9tKSB7IG1fYm90dG9tID0gYm90dG9tOyB9CisgICAgdm9pZCBzZXRMZWZ0KGZsb2F0
IGxlZnQpIHsgbV9sZWZ0ID0gbGVmdDsgfQorCitwcml2YXRlOgorICAgIGZsb2F0IG1fdG9wIHsg
MCB9OworICAgIGZsb2F0IG1fcmlnaHQgeyAwIH07CisgICAgZmxvYXQgbV9ib3R0b20geyAwIH07
CisgICAgZmxvYXQgbV9sZWZ0IHsgMCB9OworfTsKKworaW5saW5lIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBGbG9hdFJlY3RJbnNldHMmIGEsIGNvbnN0IEZsb2F0UmVjdEluc2V0cyYgYikKK3sKKyAg
ICByZXR1cm4gYS50b3AoKSA9PSBiLnRvcCgpICYmIGEucmlnaHQoKSA9PSBiLnJpZ2h0KCkgJiYg
YS5ib3R0b20oKSA9PSBiLmJvdHRvbSgpICYmIGEubGVmdCgpID09IGIubGVmdCgpOworfQorCitp
bmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZsb2F0UmVjdEluc2V0cyYgYSwgY29uc3QgRmxv
YXRSZWN0SW5zZXRzJiBiKQoreworICAgIHJldHVybiBhLnRvcCgpICE9IGIudG9wKCkgfHwgYS5y
aWdodCgpICE9IGIucmlnaHQoKSB8fCBhLmJvdHRvbSgpICE9IGIuYm90dG9tKCkgfHwgYS5sZWZ0
KCkgIT0gYi5sZWZ0KCk7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFRleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYsIGNvbnN0IEZsb2F0UmVjdEluc2V0cyYpOworCit9CisKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNw
cAppbmRleCAyNzdhZWFkNzc3M2ZjOWIwMGNmY2ViNzM4ODk0NDU0MjNlY2VkZDA2Li5kNmQ2OTU3
MGQwNTA1YWYyMzVjZmIxYjYyMjdhZDE0YjI2ODkzZmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCkBAIC0zOSw3
ICszOSw3IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdW5vYnNjdXJlZENvbnRl
bnRSZWN0OwogICAgIGVuY29kZXIgPDwgbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzOwogICAgIGVuY29kZXIgPDwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsKLSAgICBl
bmNvZGVyIDw8IG1fb2JzY3VyZWRJbnNldDsKKyAgICBlbmNvZGVyIDw8IG1fb2JzY3VyZWRJbnNl
dHM7CiAgICAgZW5jb2RlciA8PCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOwogICAgIGVu
Y29kZXIgPDwgbV9zY2FsZTsKICAgICBlbmNvZGVyIDw8IG1fdGltZXN0YW1wOwpAQCAtNjMsNyAr
NjMsNyBAQCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZShJUEM6OkRl
Y29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5t
X29ic2N1cmVkSW5zZXQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fb2JzY3Vy
ZWRJbnNldHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQubV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTExMSw3ICsxMTEsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiBpbmZvKQogICAgIHRz
LmR1bXBQcm9wZXJ0eSgidW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcyIsIGlu
Zm8udW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcygpKTsKICAgICB0cy5kdW1w
UHJvcGVydHkoInVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMi
LCBpbmZvLnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMoKSk7
CiAgICAgdHMuZHVtcFByb3BlcnR5KCJjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCIsIGluZm8uY3Vz
dG9tRml4ZWRQb3NpdGlvblJlY3QoKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJvYnNjdXJlZElu
c2V0IiwgaW5mby5vYnNjdXJlZEluc2V0KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgib2JzY3Vy
ZWRJbnNldCIsIGluZm8ub2JzY3VyZWRJbnNldHMoKSk7CiAKICAgICB0cy5kdW1wUHJvcGVydHko
InNjYWxlIiwgaW5mby5zY2FsZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImluU3RhYmxlU3Rh
dGUiLCBpbmZvLmluU3RhYmxlU3RhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAppbmRleCA4ZWExNTM1OGQ5MjMxNzZl
YzAwYjBmOGM3NGRhZmRiZmU0Y2JiYWYyLi5jYjA2NDcwMWFlZGUzM2M2MzIwYjUwMjk0ZjE4YmQx
Y2FiYjc2MzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29u
dGVudFJlY3RVcGRhdGVJbmZvLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVj
dEluc2V0cy5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2LDE0ICs0NywxNCBAQCBwdWJsaWM6CiAKICAgICBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhw
b3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250
ZW50UmVjdCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2Jz
Y3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsCi0gICAgICAgIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldCwgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxl
U3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdP
YnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBl
bmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6
RmxvYXRSZWN0SW5zZXRzJiBvYnNjdXJlZEluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3Rh
YmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9v
bCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywKICAgICAgICAgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZl
bG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKICAgICAgICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVu
dFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRl
bnRSZWN0KQogICAgICAgICAsIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cyh1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKQogICAgICAgICAsIG1fdW5v
YnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcyh1bm9ic2N1cmVkQ29u
dGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKQogICAgICAgICAsIG1fY3VzdG9tRml4
ZWRQb3NpdGlvblJlY3QoY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpCi0gICAgICAgICwgbV9vYnNj
dXJlZEluc2V0KG9ic2N1cmVkSW5zZXQpCisgICAgICAgICwgbV9vYnNjdXJlZEluc2V0cyhvYnNj
dXJlZEluc2V0cykKICAgICAgICAgLCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICAsIG1fc2NhbGUoc2NhbGUpCiAgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQpAQCAtNzMsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1
cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOyB9CiAgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUgb2JzY3VyZWRJbnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzY3VyZWRJbnNldDsgfQorICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0cyBvYnNjdXJlZEluc2V0cygpIGNvbnN0IHsg
cmV0dXJuIG1fb2JzY3VyZWRJbnNldHM7IH0KIAogICAgIGRvdWJsZSBzY2FsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2NhbGU7IH0KICAgICBib29sIGluU3RhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2luU3RhYmxlU3RhdGU7IH0KQEAgLTEwMCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBtX3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7
CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGlu
Z0lucHV0Vmlld0JvdW5kczsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9jdXN0b21GaXhlZFBv
c2l0aW9uUmVjdDsgLy8gV2hlbiB2aXN1YWwgdmlld3BvcnRzIGFyZSBlbmFibGVkLCB0aGlzIGlz
IHRoZSBsYXlvdXQgdmlld3BvcnQuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fb2JzY3VyZWRJ
bnNldDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHMgbV9vYnNjdXJlZEluc2V0czsKICAg
ICB1aW50NjRfdCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEIHsgMCB9OwogICAgIGRvdWJs
ZSBtX3NjYWxlIHsgLTEgfTsKICAgICBNb25vdG9uaWNUaW1lIG1fdGltZXN0YW1wOwpAQCAtMTIx
LDcgKzEyMiw3IEBAIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgVmlzaWJsZUNvbnRlbnRS
ZWN0VXBkYXRlSW5mbyYgYSwgY29uc3QgVmlzaWJsZUNvbnRlCiAgICAgICAgICYmIGEuZXhwb3Nl
ZENvbnRlbnRSZWN0KCkgPT0gYi5leHBvc2VkQ29udGVudFJlY3QoKQogICAgICAgICAmJiBhLnVu
b2JzY3VyZWRDb250ZW50UmVjdCgpID09IGIudW5vYnNjdXJlZENvbnRlbnRSZWN0KCkKICAgICAg
ICAgJiYgYS5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpID09IGIuY3VzdG9tRml4ZWRQb3NpdGlv
blJlY3QoKQotICAgICAgICAmJiBhLm9ic2N1cmVkSW5zZXQoKSA9PSBiLm9ic2N1cmVkSW5zZXQo
KQorICAgICAgICAmJiBhLm9ic2N1cmVkSW5zZXRzKCkgPT0gYi5vYnNjdXJlZEluc2V0cygpCiAg
ICAgICAgICYmIGEuaG9yaXpvbnRhbFZlbG9jaXR5KCkgPT0gYi5ob3Jpem9udGFsVmVsb2NpdHko
KQogICAgICAgICAmJiBhLnZlcnRpY2FsVmVsb2NpdHkoKSA9PSBiLnZlcnRpY2FsVmVsb2NpdHko
KQogICAgICAgICAmJiBhLnNjYWxlQ2hhbmdlUmF0ZSgpID09IGIuc2NhbGVDaGFuZ2VSYXRlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5k
ZXggYjg0MTMxY2QyN2JjODhlMDUzZDYxZTU5NzAzNGQ4Njc0M2NiNTljMC4uODZlMGNjOGFkYTQ5
MmJhOGU3MjlmNzQ5OGYzMWUwNWNkNWVmZmRjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTQyLDYgKzQyLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJPcGVyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Zsb2F0UmVjdEluc2V0cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250
ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JREJHZXRSZXN1bHQuaD4KQEAgLTM4OSw2ICszOTAsMTcgQEAgYm9vbCBBcmd1bWVudENv
ZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0
UmVjdCkKIH0KIAogCit2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0SW5zZXRzPjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZsb2F0UmVjdEluc2V0cyYgZmxvYXRSZWN0SW5zZXRz
KQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0SW5zZXRzPjo6ZW5jb2RlKGVu
Y29kZXIsIGZsb2F0UmVjdEluc2V0cyk7Cit9CisgICAgCitib29sIEFyZ3VtZW50Q29kZXI8Rmxv
YXRSZWN0SW5zZXRzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdEluc2V0cyYg
ZmxvYXRSZWN0SW5zZXRzKQoreworICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0
UmVjdEluc2V0cz46OmRlY29kZShkZWNvZGVyLCBmbG9hdFJlY3RJbnNldHMpOworfQorICAgIAor
CiB2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRTaXplPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIs
IGNvbnN0IEZsb2F0U2l6ZSYgZmxvYXRTaXplKQogewogICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRTaXplPjo6ZW5jb2RlKGVuY29kZXIsIGZsb2F0U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggZWZiN2IxNzM4OTViYWJhMTI2
MzUyNmU2ZmU0MzgxZTQ2NjgyN2E5MC4uYmZkNzEyMjQyMmU3NDA0MWE2NjFlOTEyY2QxYTNlYWIy
MmEyOTVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtNTUsNiArNTUsNyBAQCBjbGFzcyBGaWx0ZXJPcGVyYXRpb25zOwogY2xhc3MgRmxv
YXRQb2ludDsKIGNsYXNzIEZsb2F0UG9pbnQzRDsKIGNsYXNzIEZsb2F0UmVjdDsKK2NsYXNzIEZs
b2F0UmVjdEluc2V0czsKIGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7
CiBjbGFzcyBGaXhlZFBvc2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKQEAgLTIyNCw2ICsyMjUs
MTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFJlY3Q+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRS
ZWN0Jik7CiB9OworICAgIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFJlY3RJbnNldHM+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0cyYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShE
ZWNvZGVyJiwgV2ViQ29yZTo6RmxvYXRSZWN0SW5zZXRzJik7Cit9OwogCiB0ZW1wbGF0ZTw+IHN0
cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0U2l6ZT4gewogICAgIHN0YXRpYyB2b2lk
IGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGY5ZTFiMzY4
NmMzMWNkY2MyYTY5YWY4MDM0YWVlOGJjOTM1MmRhMTkuLjgzMjk5NjEyNDM2Mzg4YmE3ZGI2Yzk3
ODRjYjgxN2QyZWQxN2FiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0yNTgsNyArMjU4LDcgQEAgV0tXZWJWaWV3KiBmcm9tV2Vi
UGFnZVByb3h5KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogCiAgICAgQk9PTCBfY29tbWl0
RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gX3Njcm9sbE9mZnNldFRvUmVzdG9yZTsKLSAgICBXZWJDb3JlOjpGbG9hdFNpemUg
X29ic2N1cmVkSW5zZXRXaGVuU2F2ZWQ7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0SW5zZXRzIF9v
YnNjdXJlZEluc2V0c1doZW5TYXZlZDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmU7CiAgICAgdWludDY0X3QgX2ZpcnN0
VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmU7CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoZmxvYXQgYSwgZmxvYXQg
YikKIAogICAgICAgICAgICAgaWYgKGFyZUVzc2VudGlhbGx5RXF1YWxBc0Zsb2F0KGNvbnRlbnRa
b29tU2NhbGUoc2VsZiksIF9zY2FsZVRvUmVzdG9yZSkpIHsKICAgICAgICAgICAgICAgICBzY2Fs
ZWRTY3JvbGxPZmZzZXQuc2NhbGUoX3NjYWxlVG9SZXN0b3JlKTsKLSAgICAgICAgICAgICAgICBX
ZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9
IHNjYWxlZFNjcm9sbE9mZnNldCAtIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkOworICAgICAgICAg
ICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzID0gc2NhbGVkU2Nyb2xsT2Zmc2V0IC0gV2ViQ29yZTo6RmxvYXRTaXplKF9vYnNjdXJl
ZEluc2V0c1doZW5TYXZlZC5sZWZ0KCksIF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZC50b3AoKSk7
CiAKICAgICAgICAgICAgICAgICBjaGFuZ2VDb250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5n
ZShfc2Nyb2xsVmlldy5nZXQoKSwgY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
KTsKICAgICAgICAgICAgICAgICBfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uID0gWUVT
OwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGFyZUVzc2VudGlhbGx5
RXF1YWxBc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgICAgIF9nZXN0dXJlQ29udHJvbGxl
ci0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLS0gKHZvaWQpX3Jlc3RvcmVQYWdl
U2Nyb2xsUG9zaXRpb246KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pc2Nyb2xs
UG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9yaWdpbiBw
cmV2aW91c09ic2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZsb2F0U2l6ZSlvYnNjdXJlZEluc2V0IHNj
YWxlOihkb3VibGUpc2NhbGUKKy0gKHZvaWQpX3Jlc3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246KHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3Jp
Z2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9yaWdpbiBwcmV2aW91c09ic2N1cmVkSW5z
ZXQ6KFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0cylvYnNjdXJlZEluc2V0cyBzY2FsZTooZG91Ymxl
KXNjYWxlCiB7CiAgICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IER5bmFtaWNW
aWV3cG9ydFVwZGF0ZU1vZGU6Ok5vdFJlc2l6aW5nKQogICAgICAgICByZXR1cm47CkBAIC0xNTg2
LDcgKzE1ODYsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxv
YXQoZmxvYXQgYSwgZmxvYXQgYikKICAgICBlbHNlCiAgICAgICAgIF9zY3JvbGxPZmZzZXRUb1Jl
c3RvcmUgPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICBfb2JzY3VyZWRJbnNldFdoZW5TYXZlZCA9IG9i
c2N1cmVkSW5zZXQ7CisgICAgX29ic2N1cmVkSW5zZXRzV2hlblNhdmVkID0gb2JzY3VyZWRJbnNl
dHM7CiAgICAgX3NjYWxlVG9SZXN0b3JlID0gc2NhbGU7CiB9CiAKQEAgLTI0MDMsNyArMjQwMyw3
IEBAIHN0YXRpYyBib29sIHNjcm9sbFZpZXdDYW5TY3JvbGwoVUlTY3JvbGxWaWV3ICpzY3JvbGxW
aWV3KQogICAgIFtfY29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJ
bkNvbnRlbnRDb29yZGluYXRlcwogICAgICAgICB1bm9ic2N1cmVkUmVjdDp1bm9ic2N1cmVkUmVj
dEluQ29udGVudENvb3JkaW5hdGVzCiAgICAgICAgIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3
Q29vcmRpbmF0ZXM6dW5vYnNjdXJlZFJlY3QKLSAgICAgICAgb2JzY3VyZWRJbnNldDpDR1NpemVN
YWtlKF9vYnNjdXJlZEluc2V0cy5sZWZ0LCBfb2JzY3VyZWRJbnNldHMudG9wKQorICAgICAgICBv
YnNjdXJlZEluc2V0czpfb2JzY3VyZWRJbnNldHMKICAgICAgICAgaW5wdXRWaWV3Qm91bmRzOl9p
bnB1dFZpZXdCb3VuZHMKICAgICAgICAgc2NhbGU6c2NhbGVGYWN0b3IgbWluaW11bVNjYWxlOltf
c2Nyb2xsVmlldyBtaW5pbXVtWm9vbVNjYWxlXQogICAgICAgICBpblN0YWJsZVN0YXRlOmluU3Rh
YmxlU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA3NzhkNGY2ZmM2MmViYjk4N2E4OTBlN2M2OGM2OTZh
ZWZkOTI3MjBkLi4wNzI1YTZjMjkwM2U2ZDFiZTFiZTk3OGZhZWEzYmZiNjg5NWUxZGRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVy
bmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCiAj
aW1wb3J0ICJXS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKICNpbXBvcnQgPFdlYkNvcmUvRmxv
YXRSZWN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdEluc2V0cy5oPgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1MpCkBAIC04MSw3ICs4Miw3IEBAIHN0cnVjdCBQcmludEluZm87CiAK
IC0gKHZvaWQpX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXRUb1NjYWxlOihkb3Vi
bGUpbmV3U2NhbGUgcG9zaXRpb246KENHUG9pbnQpbmV3U2Nyb2xsUG9zaXRpb24gbmV4dFZhbGlk
TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDoodWludDY0X3QpbmV4dFZhbGlkTGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JRDsKIC0gKHZvaWQpX2NvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZTsKLS0gKHZvaWQpX3Jl
c3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2lu
dD4pc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9s
bE9yaWdpbiBwcmV2aW91c09ic2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZsb2F0U2l6ZSl0b3BJbnNl
dCBzY2FsZTooZG91YmxlKXNjYWxlOworLSAodm9pZClfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlv
bjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PilzY3JvbGxQb3NpdGlvbiBzY3Jv
bGxPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsT3JpZ2luIHByZXZpb3VzT2JzY3Vy
ZWRJbnNldDooV2ViQ29yZTo6RmxvYXRSZWN0SW5zZXRzKWluc2V0cyBzY2FsZTooZG91YmxlKXNj
YWxlOwogLSAodm9pZClfcmVzdG9yZVBhZ2VTdGF0ZVRvVW5vYnNjdXJlZENlbnRlcjooc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiljZW50ZXIgc2NhbGU6KGRvdWJsZSlzY2FsZTsg
Ly8gRklYTUU6IG5lZWRzIHNjcm9sbCBvcmlnaW4/CiAKIC0gKFBhc3NSZWZQdHI8V2ViS2l0OjpW
aWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgKaW5kZXggMGRkZmQ0NjIzNTQ0NTQ4NjMwMmMyODE1ZjU1ZTgzMTBmZmQwNzk2Zi4u
N2M2YTQwOGRlOTg2ZTVjZDc2MTgyMjFiM2QxNDIzODBjMjNhZWViZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yOTYsNyArMjk2LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5l
d1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgdWlu
dDY0X3QgdHJhbnNhY3Rpb25JRCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjb3VsZE5vdFJlc3Rv
cmVQYWdlU3RhdGUoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IG9ic2N1cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0SW5zZXRzJiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91Ymxl
IHNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIsIGRvdWJsZSBzY2FsZSkg
PSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3Rl
ZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZp
b3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM4ODMzNTgyMTU0MmQ2MTQ0N2EyYjEyNmFmYzIx
NzM5OTdiOGNkMzguLjI2NGZiODhmYjE2ZjRhMGYzNTBjY2JkMDE3NmM5YTkzZWJjMWViYmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMTgsNiArMTE4
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9F
dmVudE5hbWVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0Zsb2F0UmVjdEluc2V0cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSlNET01FeGNlcHRpb25IYW5kbGluZy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oCmluZGV4IDI3Y2RmZmRjNDFjMGExMWM1MzYxNjhlNzFjNTQ1NDEzNzE4NmQ0MTQu
LjcxNWY4M2MzMTk2NDdlZDFiNDY2NWY2OTAyMzgxOTNhNTg5ZDM0ZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE1MCw2ICsxNTAsNyBAQCBjbGFzcyBBdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZTsKIGNsYXNzIEN1cnNvcjsKIGNsYXNzIERyYWdEYXRhOwogY2xh
c3MgRmxvYXRSZWN0OworY2xhc3MgRmxvYXRSZWN0SW5zZXRzOwogY2xhc3MgR3JhcGhpY3NMYXll
cjsKIGNsYXNzIEludFNpemU7CiBjbGFzcyBQcm90ZWN0aW9uU3BhY2U7CkBAIC0xNTIxLDcgKzE1
MjIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2Vk
VGFyZ2V0KGRvdWJsZSBuZXdUYXJnZXRTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCk7
CiAgICAgdm9pZCBjb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKTsKLSAgICB2b2lkIHJlc3RvcmVQ
YWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG9ic2N1cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSk7CisgICAgdm9p
ZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0SW5zZXRzJiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91Ymxl
IHNjYWxlKTsKICAgICB2b2lkIHJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFBvaW50PiwgZG91YmxlIHNjYWxlKTsKIAogICAgIHZvaWQgZGlkR2V0
VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21ldHJp
ZXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21M
ZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1cyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA4NDVkNDMwOTRlMTAwYmQwYjEwMmIxYzcyMDM1ODg1NWIwYmZlMzJiLi4wNzcwMmNjMDk0
YzY4ZDFhNzcwOWVhMWRiYTJhN2RkN2E0ODU1NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3OCw3ICszNzgsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogI2lmIFBMQVRGT1JNKElPUykKICAgICBEeW5hbWlj
Vmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRvdWJsZSBuZXdUYXJnZXRTY2FsZSwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZUlEKQogICAgIENvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCi0gICAgUmVzdG9y
ZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0
aW9uLCBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6RmxvYXRTaXpl
IG9ic2N1cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkKKyAgICBSZXN0b3JlUGFnZVN0YXRl
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIFdlYkNv
cmU6OkZsb2F0UG9pbnQgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHMgb2Jz
Y3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkKICAgICBSZXN0b3JlUGFnZUNlbnRlckFu
ZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gdW5vYnNjdXJlZENlbnRl
ciwgZG91YmxlIHNjYWxlKQogICAgIERpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0
X3QgcmVxdWVzdElELCBXZWJDb3JlOjpDb2xvciBjb2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29yZTo6SW50U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3Jl
OjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRp
dXMsIFdlYkNvcmU6OkludFNpemUgYm90dG9tUmlnaHRSYWRpdXMpCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAppbmRleCA2OTE0MjZkZGY2
Y2Y2YjI2OTQxODczM2I5MGYwMDFmN2I0NDM1NWNhLi5iNDM1Yjg0MmZkZjM5MWNlZDk3NmUyN2Fh
ODY5YmJiMzJmMDQxMTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xMjIsNyArMTIyLDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3U2NhbGUsIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCB1aW50NjRfdCB0cmFu
c2FjdGlvbklEKSBvdmVycmlkZTsKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgp
IG92ZXJyaWRlOwotICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UG9pbnQ+LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRTaXplJiwgZG91YmxlKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc3RvcmVQYWdlU3Rh
dGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdEluc2V0cyYsIGRvdWJsZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0YXJ0QXNz
aXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50
ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCmluZGV4IGQ4ZDViYjA5MzEzNTQxMDVhZTExMjlkYTNlNDVlODg1NDE0NDMyNjAu
LjRjY2NlOTA1NGU4YzAyNWZmMWYwZDI5ZThkNTRhMDk2ODBjYzQzODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTM0LDkg
KzUzNCw5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgp
CiAgICAgW21fd2ViVmlldyBfY291bGROb3RSZXN0b3JlUGFnZVN0YXRlXTsKIH0KIAotdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3Jv
bGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2ZSwg
ZG91YmxlIHNjYWxlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdElu
c2V0cyYgb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkKIHsKLSAgICBbbV93ZWJW
aWV3IF9yZXN0b3JlUGFnZVNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdp
bjpzY3JvbGxPcmlnaW4gcHJldmlvdXNPYnNjdXJlZEluc2V0Om9ic2N1cmVkSW5zZXRPblNhdmUg
c2NhbGU6c2NhbGVdOworICAgIFttX3dlYlZpZXcgX3Jlc3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBwcmV2aW91c09ic2N1cmVk
SW5zZXQ6b2JzY3VyZWRJbnNldHNPblNhdmUgc2NhbGU6c2NhbGVdOwogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRQb2ludD4gY2VudGVyLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGVjODJmN2IxOTM2NGZjZGE4YTkxNDRh
NjFhMmNjYmU5MjhlMTAyODguLjg0MmZjZjM5MzJlMjI4NDNiOTRmNDg5NWQ4MmI1NTFjNDM1OTAy
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCkBA
IC03MCw3ICs3MCw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogLSAodm9pZClkaWRVcGRhdGVW
aXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVSZWN0CiAgICAgdW5vYnNjdXJlZFJlY3Q6KENHUmVj
dCl1bm9ic2N1cmVkUmVjdAogICAgIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0
ZXM6KENHUmVjdCl1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzCi0gICAgb2Jz
Y3VyZWRJbnNldDooQ0dTaXplKXRvcEluc2V0CisgICAgb2JzY3VyZWRJbnNldHM6KFVJRWRnZUlu
c2V0cylvYnNjdXJlZEluc2V0cwogICAgIGlucHV0Vmlld0JvdW5kczooQ0dSZWN0KWlucHV0Vmll
d0JvdW5kcwogICAgIHNjYWxlOihDR0Zsb2F0KXNjYWxlIG1pbmltdW1TY2FsZTooQ0dGbG9hdClt
aW5pbXVtU2NhbGUKICAgICBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQppbmRleCA3NWY3MThi
ZGY5ZGI3OTUxZWQxODYyMjhmMDk1YTljOGUxYTgyOTM2Li5kMGM4YjBkNzlhYzRhYWU1MDUxZGJl
YTA0MGEwZGJlZjk5ODljNzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCkBAIC0zODUsNyArMzg1LDcgQEAgcHJpdmF0ZToKIC0gKHZvaWQpZGlk
VXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlQ29udGVudFJlY3QKICAgICB1bm9ic2N1
cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRDb250ZW50UmVjdAogICAgIHVub2JzY3VyZWRSZWN0
SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6KENHUmVjdCl1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzCi0gICAgb2JzY3VyZWRJbnNldDooQ0dTaXplKW9ic2N1cmVkSW5zZXQKKyAg
ICBvYnNjdXJlZEluc2V0czooVUlFZGdlSW5zZXRzKW9ic2N1cmVkSW5zZXRzCiAgICAgaW5wdXRW
aWV3Qm91bmRzOihDR1JlY3QpaW5wdXRWaWV3Qm91bmRzCiAgICAgc2NhbGU6KENHRmxvYXQpem9v
bVNjYWxlIG1pbmltdW1TY2FsZTooQ0dGbG9hdCltaW5pbXVtU2NhbGUKICAgICBpblN0YWJsZVN0
YXRlOihCT09MKWlzU3RhYmxlU3RhdGUKQEAgLTQxNCw3ICs0MTQsNyBAQCBwcml2YXRlOgogICAg
ICAgICB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLAogICAgICAgICB1bm9i
c2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLAogICAgICAgICBmaXhl
ZFBvc2l0aW9uUmVjdEZvckxheW91dCwKLSAgICAgICAgV2ViQ29yZTo6RmxvYXRTaXplKG9ic2N1
cmVkSW5zZXQpLAorICAgICAgICBXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHMob2JzY3VyZWRJbnNl
dHMudG9wLCBvYnNjdXJlZEluc2V0cy5yaWdodCwgb2JzY3VyZWRJbnNldHMuYm90dG9tLCBvYnNj
dXJlZEluc2V0cy5sZWZ0KSwKICAgICAgICAgem9vbVNjYWxlLAogICAgICAgICBpc1N0YWJsZVN0
YXRlLAogICAgICAgICBfc2l6ZUNoYW5nZWRTaW5jZUxhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CmluZGV4IDc5YjFkYzk0ZjQzMWY4ZGU2NDM3NWE3ZjM0MmVkNDFiNWVlMzdiOWQuLmUyNTU0NTc5
MTcwNWQzZDcyYWJjOGFmZjE4MjBhZmIxNjg5NzRhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC05MDYsOSArOTA2LDkgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCiAgICAgbV9wYWdlQ2xp
ZW50LmNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6
cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0
IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2ZSwgZG91YmxlIHNjYWxlKQor
dm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3RJbnNldHMmIG9ic2N1cmVkSW5z
ZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LnJlc3RvcmVQYWdl
U3RhdGUoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbiwgb2JzY3VyZWRJbnNldE9uU2F2ZSwg
c2NhbGUpOworICAgIG1fcGFnZUNsaWVudC5yZXN0b3JlUGFnZVN0YXRlKHNjcm9sbFBvc2l0aW9u
LCBzY3JvbGxPcmlnaW4sIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBzY2FsZSk7CiB9CiAKIHZvaWQg
V2ViUGFnZVByb3h5OjpyZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4gY2VudGVyLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNGIxMzVk
MDRhMzM0MjBkMWI2YzNmNDg1MzFjY2JlNTU5YjgxN2E1Yi4uNDg2OWIwNmNmZWQ4ZjE5MDE4YmIz
MTdkOWUzMjJkNzhhOTUwMzg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2Vi
UGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAg
ICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5zZXRFeHBvc2VkQ29udGVudFJlY3QoaGlzdG9yeUl0
ZW0uZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb24gPSBG
bG9hdFBvaW50KGhpc3RvcnlJdGVtLnNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB9Ci0gICAg
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVzdG9yZVBhZ2VTdGF0ZShzY3JvbGxQ
b3NpdGlvbiwgZnJhbWVWaWV3LnNjcm9sbE9yaWdpbigpLCBoaXN0b3J5SXRlbS5vYnNjdXJlZElu
c2V0KCksIGJvdW5kZWRTY2FsZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlc3RvcmVQYWdlU3RhdGUoc2Nyb2xsUG9zaXRpb24sIGZyYW1lVmlldy5zY3JvbGxPcmln
aW4oKSwgaGlzdG9yeUl0ZW0ub2JzY3VyZWRJbnNldHMoKSwgYm91bmRlZFNjYWxlKSk7CiAgICAg
fSBlbHNlIHsKICAgICAgICAgSW50U2l6ZSBvbGRDb250ZW50U2l6ZSA9IGhpc3RvcnlJdGVtLmNv
bnRlbnRTaXplKCk7CiAgICAgICAgIEludFNpemUgbmV3Q29udGVudFNpemUgPSBmcmFtZVZpZXcu
Y29udGVudHNTaXplKCk7CkBAIC0zMTk2LDcgKzMxOTYsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0
ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYg
dmlzaQogICAgICAgICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAKICAgICBmcmFt
ZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRTaXplKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUlu
Zm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkuc2l6ZSgpKTsKLSAgICBtX3BhZ2UtPnNldE9ic2N1
cmVkSW5zZXQodmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5vYnNjdXJlZEluc2V0KCkpOwor
ICAgIG1fcGFnZS0+c2V0T2JzY3VyZWRJbnNldHModmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
by5vYnNjdXJlZEluc2V0cygpKTsKICAgICBtX3BhZ2UtPnNldEVuY2xvc2VkSW5TY3JvbGxhYmxl
QW5jZXN0b3JWaWV3KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZW5jbG9zZWRJblNjcm9s
bGFibGVBbmNlc3RvclZpZXcoKSk7CiAKICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0g
dmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307306</attachid>
            <date>2017-04-17 15:33:53 -0700</date>
            <delta_ts>2017-04-17 16:32:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170913-20170417153351.patch</filename>
            <type>text/plain</type>
            <size>34563</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI4MjEwZjFlZGU2Zjc0
NmVmNjZlMGViM2I1MTVhZjlmZWJiODY4NC4uOTA0Y2QwMWIxYmI2MDlhMDRlMTgwNjUyZGY2Zjhi
MjRmYThhZDgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA0LTE3ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVtYiBh
bGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZSwgaW5zdGVhZCBvZiBqdXN0IHRvcC9s
ZWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA5
MTMKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgSW4g
cHJlcGFyYXRpb24gZm9yIGEgZnV0dXJlIHBhdGNoIChmb3IgcmRhcjovL3Byb2JsZW0vMzE1NjQ2
NTIpLCBwbHVtYgorICAgICAgICBhbGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZS90
aGUgV2ViIENvbnRlbnQgcHJvY2VzcywgaW5zdGVhZCBvZgorICAgICAgICBqdXN0IHRoZSB0b3Ag
YW5kIGxlZnQgaW5zZXRzLgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhp
c3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpvYnNj
dXJlZEluc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0T2JzY3VyZWRJ
bnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Om9ic2N1cmVkSW5zZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldE9ic2N1cmVkSW5zZXQp
OiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmll
d1N0YXRlVG9JdGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6Om9ic2N1cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE9ic2N1
cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om9ic2N1cmVkSW5zZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T2JzY3VyZWRJbnNldCk6IERlbGV0ZWQu
CisgICAgICAgIEFkb3B0IEZsb2F0Qm94RXh0ZW50IGZvciBvYnNjdXJlZEluc2V0cyAoYW5kIGFk
anVzdCBwbHVyYWxpemF0aW9uKS4KKwogMjAxNy0wNC0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgdmlld3BvcnQgcGFyYW1ldGVy
IHRvIGRpc2FibGUgY2xpcHBpbmcgdG8gdGhlIHNhZmUgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI3YmQ4
M2VkZGZmNmNjOGRmZWE4NjQ2MzVjYjY5YzhlNTdhYjFiY2QuLmE1MTJjMDEwNTBmY2E2MGQxOTA2
M2VmN2U3MTg4MmNmNmMwMDEyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxNy0w
NC0xNyAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGx1bWIgYWxsIGZvdXIgb2JzY3VyZWQgaW5zZXRzIHRvIFdlYkNvcmUsIGluc3RlYWQgb2Yg
anVzdCB0b3AvbGVmdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwOTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAg
ICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6b2JzY3VyZWRJbnNldHMpOgorICAgICAgICAoV2Vi
S2l0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6b2JzY3VyZWRJbnNldCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0SW5zZXRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJl
Y3RJbnNldHM+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46cHJldmlvdXNPYnNj
dXJlZEluc2V0OnNjYWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVZpc2libGVD
b250ZW50UmVjdHNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRz
OmlucHV0Vmlld0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0
OnVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2Jz
Y3VyZWRJbnNldDppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNjYWxlOmluU3RhYmxlU3Rh
dGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTplbmNsb3NlZEluU2Nyb2xs
YWJsZUFuY2VzdG9yVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3Jl
UGFnZVN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKToKKyAgICAgICAg
QWRvcHQgRmxvYXRCb3hFeHRlbnQgZm9yIG9ic2N1cmVkSW5zZXRzIChhbmQgYWRqdXN0IHBsdXJh
bGl6YXRpb24pLgorCiAyMDE3LTA0LTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSB2aWV3cG9ydCBwYXJhbWV0ZXIgdG8gZGlzYWJs
ZSBjbGlwcGluZyB0byB0aGUgc2FmZSBhcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCmluZGV4IDhhOTgwYjNmZmY0ZDBiNTBjMmZkOTQ2ZmE0ZWUyZDIzNzk3NTEzNDIuLjY0
ODQ0YTc1NDE4MzhhZDNjMzZkOTMwOTZiNjhjMmVmOTBlMWRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIEhpc3RvcnlJ
dGVtOjpIaXN0b3J5SXRlbShjb25zdCBIaXN0b3J5SXRlbSYgaXRlbSkKICAgICAsIG1fZm9ybUNv
bnRlbnRUeXBlKGl0ZW0ubV9mb3JtQ29udGVudFR5cGUpCiAgICAgLCBtX3BydW5pbmdSZWFzb24o
UHJ1bmluZ1JlYXNvbjo6Tm9uZSkKICNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX29ic2N1cmVk
SW5zZXQoaXRlbS5tX29ic2N1cmVkSW5zZXQpCisgICAgLCBtX29ic2N1cmVkSW5zZXRzKGl0ZW0u
bV9vYnNjdXJlZEluc2V0cykKICAgICAsIG1fc2NhbGUoaXRlbS5tX3NjYWxlKQogICAgICwgbV9z
Y2FsZUlzSW5pdGlhbChpdGVtLm1fc2NhbGVJc0luaXRpYWwpCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCA3NWNmYzg1ODEyZDRjNjYxMjFhM2Q2YWE5ZWMyOGI4
Mzc5MmM2ZDY4Li40ZDFlMmNkZDc0NjEyZjQ4Y2NmMjJmNzQxY2Y5OTU0NzdjOGE1NmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgpAQCAtMTc0LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHVub2JzY3VyZWRD
b250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OyB9CiAg
ICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoSW50UmVjdCB1bm9ic2N1cmVkQ29udGVu
dFJlY3QpIHsgbV91bm9ic2N1cmVkQ29udGVudFJlY3QgPSB1bm9ic2N1cmVkQ29udGVudFJlY3Q7
IH0KIAotICAgIEZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYnNj
dXJlZEluc2V0OyB9Ci0gICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0KGNvbnN0IEZsb2F0U2l6ZSYg
aW5zZXQpIHsgbV9vYnNjdXJlZEluc2V0ID0gaW5zZXQ7IH0KKyAgICBjb25zdCBGbG9hdEJveEV4
dGVudCYgb2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXRzOyB9
CisgICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYgaW5zZXRz
KSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7IH0KIAogICAgIEZsb2F0U2l6ZSBtaW5pbXVt
TGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9taW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOyB9CiAgICAgdm9pZCBzZXRNaW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKEZsb2F0U2l6ZSBtaW5pbXVtTGF5
b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKSB7IG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlcyA9IG1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXM7IH0KQEAgLTI1Nyw3ICsyNTgsNyBAQCBwcml2YXRlOgogICAgIEludFJlY3QgbV91bm9i
c2N1cmVkQ29udGVudFJlY3Q7CiAgICAgRmxvYXRTaXplIG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlczsKICAgICBJbnRTaXplIG1fY29udGVudFNpemU7Ci0gICAgRmxv
YXRTaXplIG1fb2JzY3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5z
ZXRzOwogICAgIGZsb2F0IG1fc2NhbGUgeyAwIH07IC8vIE5vdGUgdGhhdCBVSVdlYlZpZXcgbG9v
a3MgZm9yIGEgbm9uLXplcm8gdmFsdWUsIHNvIHRoaXMgaGFzIHRvIHN0YXJ0IGFzIDAuCiAgICAg
Ym9vbCBtX3NjYWxlSXNJbml0aWFsIHsgZmFsc2UgfTsKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBt
X3ZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAKaW5kZXggNzQzMTA4YjM4NzY4MTYxNjhhMzI3NDUzZmMzNjVkODJlZDhmNzRhYS4u
NDQ0N2M3N2I2ZWNiOGY1YjgwNTc4ZDlhYzFkYWJiYzMxZWE3MGE1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShI
aXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKICAgICAgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpIC8gcGFnZS0+dmlld1NjYWxlRmFjdG9yKCkpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAg
ICAgaXRlbS0+c2V0T2JzY3VyZWRJbnNldChwYWdlLT5vYnNjdXJlZEluc2V0KCkpOworICAgICAg
ICBpdGVtLT5zZXRPYnNjdXJlZEluc2V0cyhwYWdlLT5vYnNjdXJlZEluc2V0cygpKTsKICNlbmRp
ZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhMTQyOTg2ZmIxMTNhZWU0MTI4ZmQ4MDQyYjUy
OWI0YjUwYzAyY2U5Li40M2UwYjgwZmYwN2E1NTRhYzdkOTViMzMzZGYwYjFmNjk2OTY0ZThjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
ICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFnaW5hdGlvbi5o
IgpAQCAtMzI5LDggKzMzMCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRvcENvbnRlbnRJbnNldChmbG9hdCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgRmxvYXRT
aXplIG9ic2N1cmVkSW5zZXQoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXQ7IH0KLSAg
ICB2b2lkIHNldE9ic2N1cmVkSW5zZXQoRmxvYXRTaXplIGluc2V0KSB7IG1fb2JzY3VyZWRJbnNl
dCA9IGluc2V0OyB9CisgICAgY29uc3QgRmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzKCkg
Y29uc3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0czsgfQorICAgIHZvaWQgc2V0T2JzY3VyZWRJ
bnNldHMoRmxvYXRCb3hFeHRlbnQgaW5zZXRzKSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7
IH0KICAgICAKICAgICBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29u
c3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsgfQogICAgIHZv
aWQgc2V0RW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoYm9vbCBmKSB7IG1fZW5jbG9z
ZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcgPSBmOyB9CkBAIC02ODgsNyArNjg5LDcgQEAgcHJp
dmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBmb3Ig
aGlzdG9yeSBzY3JvbGwgcG9zaXRpb24gcmVzdG9yYXRpb24uCi0gICAgRmxvYXRTaXplIG1fb2Jz
Y3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAgIGJv
b2wgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyB7IGZhbHNlIH07CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKaW5kZXggY2E4ZmMwYzI1ODRjMDY1
YWZkMWU4YjY0ZGU3ODgyZTE3ODY2MWMwMy4uNjAxYmQwYjk3MjgxNzkwNGIwMTU0MmU2MDJkYTFk
OTMwOGI5OGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guY3BwCkBAIC0zMCw3
ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTGVuZ3RoQm94JiBib3gpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBCb3hFeHRl
bnQ8VD4mIGJveCkKIHsKICAgICB0cyA8PCAidG9wOiAiIDw8IGJveC50b3AoKSA8PCAiIHJpZ2h0
OiAiIDw8IGJveC5yaWdodCgpIDw8ICIgYm90dG9tOiAiIDw8IGJveC5ib3R0b20oKSA8PCAiIGxl
ZnQ6ICIgPDwgYm94LmxlZnQoKTsKICAgICByZXR1cm4gdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xl
bmd0aEJveC5oCmluZGV4IDNlMGYyMTg0ZTY4NmQwZWRjMGNlYTM5YjM0NThlNzRmNmM2ZWE3NTEu
LmFkMDNiYTFkZjE0MmY1NDVmYjdiZTkxYzE4MDg0ZTZkZTM0OTAzMGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xlbmd0aEJveC5oCkBAIC0xNTcsNiArMTU3LDYgQEAgcHVibGljOgogdXNpbmcgTGF5
b3V0Qm94RXh0ZW50ID0gQm94RXh0ZW50PExheW91dFVuaXQ+OwogdXNpbmcgRmxvYXRCb3hFeHRl
bnQgPSBCb3hFeHRlbnQ8ZmxvYXQ+OwogCi1UZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mLCBjb25zdCBMZW5ndGhCb3gmKTsKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYsIGNvbnN0IEJveEV4dGVudDxUPiYpOwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IDE0ZGQ2OTdlOGI4YzlkYzg2MGU5NzQ4MjVjOTMwN2QzMGFhODQ0ZjMuLjFlYzhlZjc1
OWQxN2MwYjBmYWY1YTRmZGM4MDI0OTA1YzQ3OGJjNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yODksNiArMjg5LDcgQEAgZGVmIGNsYXNzX3RlbXBs
YXRlX2hlYWRlcnModGVtcGxhdGVfc3RyaW5nKToKICAgICB0ZW1wbGF0ZV9zdHJpbmcgPSB0ZW1w
bGF0ZV9zdHJpbmcuc3RyaXAoKQogCiAgICAgY2xhc3NfdGVtcGxhdGVfdHlwZXMgPSB7CisgICAg
ICAgICdXZWJDb3JlOjpCb3hFeHRlbnQnOiB7J2hlYWRlcnMnOiBbJzxXZWJDb3JlL0xlbmd0aEJv
eC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIldlYkNvcmVBcmd1bWVudENvZGVy
cy5oIiddfSwKICAgICAgICAgJ0hhc2hNYXAnOiB7J2hlYWRlcnMnOiBbJzx3dGYvSGFzaE1hcC5o
PiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAog
ICAgICAgICAnc3RkOjpvcHRpb25hbCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9PcHRpb25hbC5oPidd
LCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LAogICAg
ICAgICAnT3B0aW9uU2V0JzogeydoZWFkZXJzJzogWyc8d3RmL09wdGlvblNldC5oPiddLCAnYXJn
dW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29kZXJzLmgiJ119LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3Bw
CmluZGV4IDI3N2FlYWQ3NzczZmM5YjAwY2ZjZWI3Mzg4OTQ0NTQyM2VjZWRkMDYuLmVkY2Y2MGU3
YTZjMmFlMDFkOGQ3MGFiMWU5MWJjNGRmMzlkNzZlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKQEAgLTI3LDYg
KzI3LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgiCiAKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0
aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFN0cmVhbS5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKQEAgLTM5LDcgKzQwLDcgQEAgdm9pZCBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIg
PDwgbV91bm9ic2N1cmVkQ29udGVudFJlY3Q7CiAgICAgZW5jb2RlciA8PCBtX3Vub2JzY3VyZWRS
ZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7CiAgICAgZW5jb2RlciA8PCBtX2N1c3RvbUZpeGVk
UG9zaXRpb25SZWN0OwotICAgIGVuY29kZXIgPDwgbV9vYnNjdXJlZEluc2V0OworICAgIGVuY29k
ZXIgPDwgbV9vYnNjdXJlZEluc2V0czsKICAgICBlbmNvZGVyIDw8IG1fbGFzdExheWVyVHJlZVRy
YW5zYWN0aW9uSUQ7CiAgICAgZW5jb2RlciA8PCBtX3NjYWxlOwogICAgIGVuY29kZXIgPDwgbV90
aW1lc3RhbXA7CkBAIC02Myw3ICs2NCw3IEBAIGJvb2wgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRl
SW5mbzo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgVmlzaWJsZUNvbnRlbnRSCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2N1c3Rv
bUZpeGVkUG9zaXRpb25SZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGUocmVzdWx0Lm1fb2JzY3VyZWRJbnNldCkpCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShyZXN1bHQubV9vYnNjdXJlZEluc2V0cykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklE
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTExLDcgKzExMiw3IEBAIFRleHRTdHJlYW0m
IG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0
ZUluZm8mIGluZm8pCiAgICAgdHMuZHVtcFByb3BlcnR5KCJ1bm9ic2N1cmVkUmVjdEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzIiwgaW5mby51bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgidW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVj
dGluZ0lucHV0Vmlld0JvdW5kcyIsIGluZm8udW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGlu
Z0lucHV0Vmlld0JvdW5kcygpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImN1c3RvbUZpeGVkUG9z
aXRpb25SZWN0IiwgaW5mby5jdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpKTsKLSAgICB0cy5kdW1w
UHJvcGVydHkoIm9ic2N1cmVkSW5zZXQiLCBpbmZvLm9ic2N1cmVkSW5zZXQoKSk7CisgICAgdHMu
ZHVtcFByb3BlcnR5KCJvYnNjdXJlZEluc2V0cyIsIGluZm8ub2JzY3VyZWRJbnNldHMoKSk7CiAK
ICAgICB0cy5kdW1wUHJvcGVydHkoInNjYWxlIiwgaW5mby5zY2FsZSgpKTsKICAgICB0cy5kdW1w
UHJvcGVydHkoImluU3RhYmxlU3RhdGUiLCBpbmZvLmluU3RhYmxlU3RhdGUoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaApp
bmRleCA4ZWExNTM1OGQ5MjMxNzZlYzAwYjBmOGM3NGRhZmRiZmU0Y2JiYWYyLi5hN2E0OGQ4ZTk0
ZGUzNTJiYWFhN2JlMjMyYTM5ODJkNmEwYTZlMDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPHd0Zi9Nb25vdG9uaWNUaW1lLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ2LDE0ICs0NywxNCBAQCBw
dWJsaWM6CiAKICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHVub2JzY3VyZWRDb250ZW50UmVjdCwKICAgICAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QsCi0gICAg
ICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldCwgZG91YmxlIHNjYWxl
LCBib29sIGluU3RhYmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBi
b29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJp
bmtUb0ZpdCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywKKyAgICAgICAg
Y29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzLCBkb3VibGUgc2Nh
bGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0VXBkYXRlRm9yTmV3Vmlld1NpemUs
IGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseSwgYm9vbCBhbGxvd1No
cmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3LAogICAgICAg
ICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGhvcml6b250YWxWZWxvY2l0eSwgZG91
YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNoYW5nZVJhdGUsIHVpbnQ2NF90IGxh
c3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICA6IG1fZXhwb3NlZENvbnRlbnRSZWN0
KGV4cG9zZWRDb250ZW50UmVjdCkKICAgICAgICAgLCBtX3Vub2JzY3VyZWRDb250ZW50UmVjdCh1
bm9ic2N1cmVkQ29udGVudFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xs
Vmlld0Nvb3JkaW5hdGVzKHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMpCiAg
ICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
KHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMpCiAgICAgICAg
ICwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCkKLSAg
ICAgICAgLCBtX29ic2N1cmVkSW5zZXQob2JzY3VyZWRJbnNldCkKKyAgICAgICAgLCBtX29ic2N1
cmVkSW5zZXRzKG9ic2N1cmVkSW5zZXRzKQogICAgICAgICAsIG1fbGFzdExheWVyVHJlZVRyYW5z
YWN0aW9uSUQobGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCiAgICAgICAgICwgbV9zY2FsZShz
Y2FsZSkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3RhbXApCkBAIC03Myw3ICs3NCw3IEBA
IHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3Vub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVu
b2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMoKSBjb25zdCB7IHJl
dHVybiBtX3Vub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHM7IH0K
ICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkg
Y29uc3QgeyByZXR1cm4gbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsgfQotICAgIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYnNjdXJl
ZEluc2V0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5z
ZXRzKCkgY29uc3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0czsgfQogCiAgICAgZG91YmxlIHNj
YWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQogICAgIGJvb2wgaW5TdGFibGVTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1faW5TdGFibGVTdGF0ZTsgfQpAQCAtMTAwLDcgKzEwMSw3IEBAIHBy
aXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlczsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV91bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBt
X2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OyAvLyBXaGVuIHZpc3VhbCB2aWV3cG9ydHMgYXJlIGVu
YWJsZWQsIHRoaXMgaXMgdGhlIGxheW91dCB2aWV3cG9ydC4KLSAgICBXZWJDb3JlOjpGbG9hdFNp
emUgbV9vYnNjdXJlZEluc2V0OworICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50IG1fb2JzY3Vy
ZWRJbnNldHM7CiAgICAgdWludDY0X3QgbV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCB7IDAg
fTsKICAgICBkb3VibGUgbV9zY2FsZSB7IC0xIH07CiAgICAgTW9ub3RvbmljVGltZSBtX3RpbWVz
dGFtcDsKQEAgLTEyMSw3ICsxMjIsNyBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNvbnN0IFZpc2libGVDb250ZQogICAgICAg
ICAmJiBhLmV4cG9zZWRDb250ZW50UmVjdCgpID09IGIuZXhwb3NlZENvbnRlbnRSZWN0KCkKICAg
ICAgICAgJiYgYS51bm9ic2N1cmVkQ29udGVudFJlY3QoKSA9PSBiLnVub2JzY3VyZWRDb250ZW50
UmVjdCgpCiAgICAgICAgICYmIGEuY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSA9PSBiLmN1c3Rv
bUZpeGVkUG9zaXRpb25SZWN0KCkKLSAgICAgICAgJiYgYS5vYnNjdXJlZEluc2V0KCkgPT0gYi5v
YnNjdXJlZEluc2V0KCkKKyAgICAgICAgJiYgYS5vYnNjdXJlZEluc2V0cygpID09IGIub2JzY3Vy
ZWRJbnNldHMoKQogICAgICAgICAmJiBhLmhvcml6b250YWxWZWxvY2l0eSgpID09IGIuaG9yaXpv
bnRhbFZlbG9jaXR5KCkKICAgICAgICAgJiYgYS52ZXJ0aWNhbFZlbG9jaXR5KCkgPT0gYi52ZXJ0
aWNhbFZlbG9jaXR5KCkKICAgICAgICAgJiYgYS5zY2FsZUNoYW5nZVJhdGUoKSA9PSBiLnNjYWxl
Q2hhbmdlUmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IGI4NDEzMWNkMjdiYzg4ZTA1M2Q2MWU1OTcwMzRkODY3NDNjYjU5YzAu
LjU4YWFlYzMxZmUzYzVjNDM4MDkyNmY5OGNhM2YzNGU2OGRmNjA3NWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC00OCw2ICs0OCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01F
eGNlcHRpb25IYW5kbGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhdGguaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Byb3RlY3Rpb25T
cGFjZS5oPgpAQCAtMzg5LDYgKzM5MCwxNyBAQCBib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRSZWN0
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVjdCYgZmxvYXRSZWN0KQogfQogCiAK
K3ZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyLCBjb25zdCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hFeHRlbnQpCit7CisgICAgU2ltcGxl
QXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29kZShlbmNvZGVyLCBmbG9hdEJveEV4
dGVudCk7Cit9CisgICAgCitib29sIEFyZ3VtZW50Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQorewor
ICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKGRl
Y29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKK30KKyAgICAKKwogdm9pZCBBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdFNpemUmIGZsb2F0
U2l6ZSkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShlbmNv
ZGVyLCBmbG9hdFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IGVmYjdiMTczODk1YmFiYTEyNjM1MjZlNmZlNDM4MWU0NjY4MjdhOTAu
LjRkODNiMjI0Y2ZhYWEzZjA0YzUwMzc4YzEzMTAxOTQxNTEzMDk3ODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEwMSw2ICsxMDEsOSBA
QCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFRleHRJbmRpY2F0b3JEYXRhOwog
c3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKKyAgICAK
K3RlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgQm94RXh0ZW50OwordXNpbmcgRmxvYXRCb3hFeHRl
bnQgPSBCb3hFeHRlbnQ8ZmxvYXQ+OwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yMjQs
NiArMjI3LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Rmxv
YXRSZWN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6
OkZsb2F0UmVjdCYpOwogfTsKKyAgICAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpOworfTsKIAogdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFNpemU+IHsKICAgICBzdGF0aWMg
dm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBmOWUx
YjM2ODZjMzFjZGNjMmE2OWFmODAzNGFlZThiYzkzNTJkYTE5Li4zMGVmODg0MWUzMTQ2NTQyZmZk
OTk1MDFhOWRhYWI3ZjNkMDk5ZTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjU4LDcgKzI1OCw3IEBAIFdLV2ViVmlldyogZnJv
bVdlYlBhZ2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKIAogICAgIEJPT0wgX2Nv
bW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbjsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UG9pbnQ+IF9zY3JvbGxPZmZzZXRUb1Jlc3RvcmU7Ci0gICAgV2ViQ29yZTo6RmxvYXRT
aXplIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkOworICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
IF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZDsKIAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRQb2ludD4gX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3RvcmU7CiAgICAgdWludDY0X3QgX2Zp
cnN0VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmU7CkBAIC0xNTA0LDcgKzE1MDQsNyBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoZmxvYXQgYSwgZmxv
YXQgYikKIAogICAgICAgICAgICAgaWYgKGFyZUVzc2VudGlhbGx5RXF1YWxBc0Zsb2F0KGNvbnRl
bnRab29tU2NhbGUoc2VsZiksIF9zY2FsZVRvUmVzdG9yZSkpIHsKICAgICAgICAgICAgICAgICBz
Y2FsZWRTY3JvbGxPZmZzZXQuc2NhbGUoX3NjYWxlVG9SZXN0b3JlKTsKLSAgICAgICAgICAgICAg
ICBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRl
cyA9IHNjYWxlZFNjcm9sbE9mZnNldCAtIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkOworICAgICAg
ICAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nv
b3JkaW5hdGVzID0gc2NhbGVkU2Nyb2xsT2Zmc2V0IC0gV2ViQ29yZTo6RmxvYXRTaXplKF9vYnNj
dXJlZEluc2V0c1doZW5TYXZlZC5sZWZ0KCksIF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZC50b3Ao
KSk7CiAKICAgICAgICAgICAgICAgICBjaGFuZ2VDb250ZW50T2Zmc2V0Qm91bmRlZEluVmFsaWRS
YW5nZShfc2Nyb2xsVmlldy5nZXQoKSwgY29udGVudE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzKTsKICAgICAgICAgICAgICAgICBfY29tbWl0RGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uID0g
WUVTOwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGFyZUVzc2VudGlh
bGx5RXF1YWxBc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAgICAgICAgIF9nZXN0dXJlQ29udHJv
bGxlci0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiB9CiAKLS0gKHZvaWQpX3Jlc3RvcmVQ
YWdlU2Nyb2xsUG9zaXRpb246KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pc2Ny
b2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9yaWdp
biBwcmV2aW91c09ic2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZsb2F0U2l6ZSlvYnNjdXJlZEluc2V0
IHNjYWxlOihkb3VibGUpc2NhbGUKKy0gKHZvaWQpX3Jlc3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246
KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pc2Nyb2xsUG9zaXRpb24gc2Nyb2xs
T3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9yaWdpbiBwcmV2aW91c09ic2N1cmVk
SW5zZXQ6KFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KW9ic2N1cmVkSW5zZXRzIHNjYWxlOihkb3Vi
bGUpc2NhbGUKIHsKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgIT0gRHluYW1p
Y1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCiAgICAgICAgIHJldHVybjsKQEAgLTE1
ODYsNyArMTU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhcmVFc3NlbnRpYWxseUVxdWFsQXNG
bG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIGVsc2UKICAgICAgICAgX3Njcm9sbE9mZnNldFRv
UmVzdG9yZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkID0g
b2JzY3VyZWRJbnNldDsKKyAgICBfb2JzY3VyZWRJbnNldHNXaGVuU2F2ZWQgPSBvYnNjdXJlZElu
c2V0czsKICAgICBfc2NhbGVUb1Jlc3RvcmUgPSBzY2FsZTsKIH0KIApAQCAtMjQwMyw3ICsyNDAz
LDcgQEAgc3RhdGljIGJvb2wgc2Nyb2xsVmlld0NhblNjcm9sbChVSVNjcm9sbFZpZXcgKnNjcm9s
bFZpZXcpCiAgICAgW19jb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp2aXNpYmxlUmVj
dEluQ29udGVudENvb3JkaW5hdGVzCiAgICAgICAgIHVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRS
ZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMKICAgICAgICAgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZp
ZXdDb29yZGluYXRlczp1bm9ic2N1cmVkUmVjdAotICAgICAgICBvYnNjdXJlZEluc2V0OkNHU2l6
ZU1ha2UoX29ic2N1cmVkSW5zZXRzLmxlZnQsIF9vYnNjdXJlZEluc2V0cy50b3ApCisgICAgICAg
IG9ic2N1cmVkSW5zZXRzOl9vYnNjdXJlZEluc2V0cwogICAgICAgICBpbnB1dFZpZXdCb3VuZHM6
X2lucHV0Vmlld0JvdW5kcwogICAgICAgICBzY2FsZTpzY2FsZUZhY3RvciBtaW5pbXVtU2NhbGU6
W19zY3JvbGxWaWV3IG1pbmltdW1ab29tU2NhbGVdCiAgICAgICAgIGluU3RhYmxlU3RhdGU6aW5T
dGFibGVTdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDc3OGQ0ZjZmYzYyZWJiOTg3YTg5MGU3YzY4YzY5
NmFlZmQ5MjcyMGQuLmIwMTU4YzFlYWM0YmNjNjBkMzY2ZDRjOTQ2M2JmNmQyYzczYWYxZWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIK
ICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIgogI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPUykKQEAgLTgxLDcgKzgyLDcgQEAgc3RydWN0IFByaW50SW5mbzsKIAogLSAo
dm9pZClfZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldFRvU2NhbGU6KGRvdWJsZSlu
ZXdTY2FsZSBwb3NpdGlvbjooQ0dQb2ludCluZXdTY3JvbGxQb3NpdGlvbiBuZXh0VmFsaWRMYXll
clRyZWVUcmFuc2FjdGlvbklEOih1aW50NjRfdCluZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlv
bklEOwogLSAodm9pZClfY291bGROb3RSZXN0b3JlUGFnZVN0YXRlOwotLSAodm9pZClfcmVzdG9y
ZVBhZ2VTY3JvbGxQb3NpdGlvbjooc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50Pilz
Y3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6OkZsb2F0UG9pbnQpc2Nyb2xsT3Jp
Z2luIHByZXZpb3VzT2JzY3VyZWRJbnNldDooV2ViQ29yZTo6RmxvYXRTaXplKXRvcEluc2V0IHNj
YWxlOihkb3VibGUpc2NhbGU7CistICh2b2lkKV9yZXN0b3JlUGFnZVNjcm9sbFBvc2l0aW9uOihz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9y
aWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxPcmlnaW4gcHJldmlvdXNPYnNjdXJlZElu
c2V0OihXZWJDb3JlOjpGbG9hdEJveEV4dGVudClpbnNldHMgc2NhbGU6KGRvdWJsZSlzY2FsZTsK
IC0gKHZvaWQpX3Jlc3RvcmVQYWdlU3RhdGVUb1Vub2JzY3VyZWRDZW50ZXI6KHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pY2VudGVyIHNjYWxlOihkb3VibGUpc2NhbGU7IC8vIEZJ
WE1FOiBuZWVkcyBzY3JvbGwgb3JpZ2luPwogCiAtIChQYXNzUmVmUHRyPFdlYktpdDo6Vmlld1Nu
YXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVu
dC5oCmluZGV4IDBkZGZkNDYyMzU0NDU0ODYzMDJjMjgxNWY1NWU4MzEwZmZkMDc5NmYuLjdlMTcx
M2RiZjQ4MmYwODI1OTFmOWNiMGVkMDU1MzE4NzcyMTY1ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaApAQCAtMjk2LDcgKzI5Niw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRvdWJsZSBuZXdTY2Fs
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90
IHRyYW5zYWN0aW9uSUQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY291bGROb3RSZXN0b3JlUGFn
ZVN0YXRlKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0
aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBvYnNj
dXJlZEluc2V0T25TYXZlLCBkb3VibGUgc2NhbGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVz
dG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxl
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIsIGRvdWJsZSBzY2FsZSkgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5vZGVJ
bmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9k
ZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IGM4ODMzNTgyMTU0MmQ2MTQ0N2EyYjEyNmFmYzIxNzM5OTdi
OGNkMzguLjRjYzdhZWNjNWY0NDU2NjNmNWMxMjVhZmNiMDQ3ZjQwYjBiODMzMmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xMjEsNiArMTIxLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9K
U0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlN
RVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI3Y2RmZmRjNDFjMGExMWM1MzYxNjhlNzFjNTQ1NDEz
NzE4NmQ0MTQuLjZkMWM0NGUwN2JiZGIwYjJjYmFjOTJiZThhM2Y4NGVmMzUzNjc3OGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE3MCw2ICsxNzAsOSBAQCBz
dHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50Owog
ZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7CisKK3RlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgQm94
RXh0ZW50OwordXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBCb3hFeHRlbnQ8ZmxvYXQ+OwogfQogCiAj
aWYgUExBVEZPUk0oR1RLKQpAQCAtMTUyMSw3ICsxNTI0LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3VGFyZ2V0U2Nh
bGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCB1aW50NjRf
dCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAgIHZvaWQgY291bGROb3RSZXN0b3Jl
UGFnZVN0YXRlKCk7Ci0gICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBvYnNjdXJlZEluc2V0
T25TYXZlLCBkb3VibGUgc2NhbGUpOworICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxlKTsKICAgICB2b2lkIHJlc3RvcmVQ
YWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiwgZG91
YmxlIHNjYWxlKTsKIAogICAgIHZvaWQgZGlkR2V0VGFwSGlnaGxpZ2h0R2VvbWV0cmllcyh1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21ldHJpZXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBib3R0b21SaWdodFJhZGl1cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4NDVkNDMwOTRlMTAwYmQwYjEwMmIx
YzcyMDM1ODg1NWIwYmZlMzJiLi42MTFlNDFiMjkzZjljODFiYzRlMjg4NmI2OTBkZGY0Yzc2ZTdh
NDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTM3OCw3ICszNzgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewog
I2lmIFBMQVRGT1JNKElPUykKICAgICBEeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0
KGRvdWJsZSBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBuZXdTY3JvbGxQb3Np
dGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEKQogICAgIENvdWxkTm90
UmVzdG9yZVBhZ2VTdGF0ZSgpCi0gICAgUmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBXZWJDb3JlOjpGbG9hdFBvaW50IHNj
cm9sbE9yaWdpbiwgV2ViQ29yZTo6RmxvYXRTaXplIG9ic2N1cmVkSW5zZXRPblNhdmUsIGRvdWJs
ZSBzY2FsZSkKKyAgICBSZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OkZsb2F0UG9pbnQgc2Nyb2xsT3JpZ2lu
LCBXZWJDb3JlOjpCb3hFeHRlbnQ8ZmxvYXQ+IG9ic2N1cmVkSW5zZXRzT25TYXZlLCBkb3VibGUg
c2NhbGUpCiAgICAgUmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UG9pbnQ+IHVub2JzY3VyZWRDZW50ZXIsIGRvdWJsZSBzY2FsZSkKICAgICBEaWRH
ZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Q29s
b3IgY29sb3IsIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+IGdlb21ldHJpZXMsIFdlYkNvcmU6
OkludFNpemUgdG9wTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSB0b3BSaWdodFJhZGl1cywg
V2ViQ29yZTo6SW50U2l6ZSBib3R0b21MZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJvdHRv
bVJpZ2h0UmFkaXVzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmgKaW5kZXggNjkxNDI2ZGRmNmNmNmIyNjk0MTg3MzNiOTBmMDAxZjdiNDQz
NTVjYS4uYTZkNmJjMDUwYzI1NzkwZjc1OGM4ZDQzY2NlYTY5Y2RkYTExNDEwYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMTIy
LDcgKzEyMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGR5bmFtaWNWaWV3cG9ydFVwZGF0ZUNo
YW5nZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBu
ZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QgdHJhbnNhY3Rpb25JRCkgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc3Rv
cmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIGRvdWJsZSkgb3Zl
cnJpZGU7CisgICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpG
bG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNl
bnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSkg
b3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9kZShjb25zdCBBc3Npc3RlZE5v
ZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3Vz
Tm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGQ4ZDViYjA5MzEz
NTQxMDVhZTExMjlkYTNlNDVlODg1NDE0NDMyNjAuLjQ2NDZjNGFhZDM2ZDUzODI0MzlkNzU1MzNl
ZWUxNGYzY2JjMGQyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTM0LDkgKzUzNCw5IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OmNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCiAgICAgW21fd2ViVmlldyBfY291bGROb3RS
ZXN0b3JlUGFnZVN0YXRlXTsKIH0KIAotdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVzdG9yZVBhZ2VT
dGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2ZSwgZG91YmxlIHNjYWxlKQordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9p
bnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0c09uU2F2ZSwg
ZG91YmxlIHNjYWxlKQogewotICAgIFttX3dlYlZpZXcgX3Jlc3RvcmVQYWdlU2Nyb2xsUG9zaXRp
b246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBwcmV2aW91c09ic2N1
cmVkSW5zZXQ6b2JzY3VyZWRJbnNldE9uU2F2ZSBzY2FsZTpzY2FsZV07CisgICAgW21fd2ViVmll
dyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46
c2Nyb2xsT3JpZ2luIHByZXZpb3VzT2JzY3VyZWRJbnNldDpvYnNjdXJlZEluc2V0c09uU2F2ZSBz
Y2FsZTpzY2FsZV07CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlc3RvcmVQYWdlQ2VudGVy
QW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIsIGRvdWJs
ZSBzY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgK
aW5kZXggZWM4MmY3YjE5MzY0ZmNkYThhOTE0NGE2MWEyY2NiZTkyOGUxMDI4OC4uODQyZmNmMzkz
MmUyMjg0M2I5NGY0ODk1ZDgyYjU1MWM0MzU5MDI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKQEAgLTcwLDcgKzcwLDcgQEAgY2xhc3MgV2ViUHJv
Y2Vzc1Bvb2w7CiAtICh2b2lkKWRpZFVwZGF0ZVZpc2libGVSZWN0OihDR1JlY3QpdmlzaWJsZVJl
Y3QKICAgICB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRSZWN0CiAgICAgdW5vYnNj
dXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczooQ0dSZWN0KXVub2JzY3VyZWRSZWN0SW5T
Y3JvbGxWaWV3Q29vcmRpbmF0ZXMKLSAgICBvYnNjdXJlZEluc2V0OihDR1NpemUpdG9wSW5zZXQK
KyAgICBvYnNjdXJlZEluc2V0czooVUlFZGdlSW5zZXRzKW9ic2N1cmVkSW5zZXRzCiAgICAgaW5w
dXRWaWV3Qm91bmRzOihDR1JlY3QpaW5wdXRWaWV3Qm91bmRzCiAgICAgc2NhbGU6KENHRmxvYXQp
c2NhbGUgbWluaW11bVNjYWxlOihDR0Zsb2F0KW1pbmltdW1TY2FsZQogICAgIGluU3RhYmxlU3Rh
dGU6KEJPT0wpaXNTdGFibGVTdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3Lm1tCmluZGV4IDc1ZjcxOGJkZjlkYjc5NTFlZDE4NjIyOGYwOTVhOWM4ZTFh
ODI5MzYuLmRmNWZkMTIyMGEwZmRiMzY3NjM3MzIzOTU4MTc1NWQxYmNiOTA3MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KQEAgLTM4NSw3ICsz
ODUsNyBAQCBwcml2YXRlOgogLSAodm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZp
c2libGVDb250ZW50UmVjdAogICAgIHVub2JzY3VyZWRSZWN0OihDR1JlY3QpdW5vYnNjdXJlZENv
bnRlbnRSZWN0CiAgICAgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczooQ0dS
ZWN0KXVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMKLSAgICBvYnNjdXJlZElu
c2V0OihDR1NpemUpb2JzY3VyZWRJbnNldAorICAgIG9ic2N1cmVkSW5zZXRzOihVSUVkZ2VJbnNl
dHMpb2JzY3VyZWRJbnNldHMKICAgICBpbnB1dFZpZXdCb3VuZHM6KENHUmVjdClpbnB1dFZpZXdC
b3VuZHMKICAgICBzY2FsZTooQ0dGbG9hdCl6b29tU2NhbGUgbWluaW11bVNjYWxlOihDR0Zsb2F0
KW1pbmltdW1TY2FsZQogICAgIGluU3RhYmxlU3RhdGU6KEJPT0wpaXNTdGFibGVTdGF0ZQpAQCAt
NDE0LDcgKzQxNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxW
aWV3Q29vcmRpbmF0ZXMsCiAgICAgICAgIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJ
bnB1dFZpZXdCb3VuZHMsCiAgICAgICAgIGZpeGVkUG9zaXRpb25SZWN0Rm9yTGF5b3V0LAotICAg
ICAgICBXZWJDb3JlOjpGbG9hdFNpemUob2JzY3VyZWRJbnNldCksCisgICAgICAgIFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50KG9ic2N1cmVkSW5zZXRzLnRvcCwgb2JzY3VyZWRJbnNldHMucmlnaHQs
IG9ic2N1cmVkSW5zZXRzLmJvdHRvbSwgb2JzY3VyZWRJbnNldHMubGVmdCksCiAgICAgICAgIHpv
b21TY2FsZSwKICAgICAgICAgaXNTdGFibGVTdGF0ZSwKICAgICAgICAgX3NpemVDaGFuZ2VkU2lu
Y2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA3OWIxZGM5NGY0MzFmOGRlNjQzNzVh
N2YzNDJlZDQxYjVlZTM3YjlkLi4zYzAyZjg2NmMyOWNhYzhhNGYyMzg5ZDhmMWIwMjUyNWUyYTdj
M2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQpAQCAtOTA2LDkgKzkwNiw5IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb3VsZE5vdFJlc3Rv
cmVQYWdlU3RhdGUoKQogICAgIG1fcGFnZUNsaWVudC5jb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUo
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG9ic2N1cmVk
SW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkKK3ZvaWQgV2ViUGFnZVByb3h5OjpyZXN0b3JlUGFn
ZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCiB7Ci0g
ICAgbV9wYWdlQ2xpZW50LnJlc3RvcmVQYWdlU3RhdGUoc2Nyb2xsUG9zaXRpb24sIHNjcm9sbE9y
aWdpbiwgb2JzY3VyZWRJbnNldE9uU2F2ZSwgc2NhbGUpOworICAgIG1fcGFnZUNsaWVudC5yZXN0
b3JlUGFnZVN0YXRlKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4sIG9ic2N1cmVkSW5zZXRz
T25TYXZlLCBzY2FsZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5OjpyZXN0b3JlUGFnZUNlbnRl
ckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gY2VudGVyLCBkb3Vi
bGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
aW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9z
L1dlYlBhZ2VJT1MubW0KaW5kZXggNGIxMzVkMDRhMzM0MjBkMWI2YzNmNDg1MzFjY2JlNTU5Yjgx
N2E1Yi4uNDg2OWIwNmNmZWQ4ZjE5MDE4YmIzMTdkOWUzMjJkNzhhOTUwMzg0OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpA
QCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVzdG9yZVBhZ2VTdGF0ZShjb25zdCBI
aXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAgICAgICAgICBtX2RyYXdpbmdBcmVhLT5zZXRF
eHBvc2VkQ29udGVudFJlY3QoaGlzdG9yeUl0ZW0uZXhwb3NlZENvbnRlbnRSZWN0KCkpOwogICAg
ICAgICAgICAgc2Nyb2xsUG9zaXRpb24gPSBGbG9hdFBvaW50KGhpc3RvcnlJdGVtLnNjcm9sbFBv
c2l0aW9uKCkpOwogICAgICAgICB9Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVzdG9yZVBhZ2VTdGF0ZShzY3JvbGxQb3NpdGlvbiwgZnJhbWVWaWV3LnNjcm9sbE9yaWdp
bigpLCBoaXN0b3J5SXRlbS5vYnNjdXJlZEluc2V0KCksIGJvdW5kZWRTY2FsZSkpOworICAgICAg
ICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc3RvcmVQYWdlU3RhdGUoc2Nyb2xsUG9z
aXRpb24sIGZyYW1lVmlldy5zY3JvbGxPcmlnaW4oKSwgaGlzdG9yeUl0ZW0ub2JzY3VyZWRJbnNl
dHMoKSwgYm91bmRlZFNjYWxlKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgSW50U2l6ZSBvbGRD
b250ZW50U2l6ZSA9IGhpc3RvcnlJdGVtLmNvbnRlbnRTaXplKCk7CiAgICAgICAgIEludFNpemUg
bmV3Q29udGVudFNpemUgPSBmcmFtZVZpZXcuY29udGVudHNTaXplKCk7CkBAIC0zMTk2LDcgKzMx
OTYsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVDb250ZW50UmVjdHMoY29uc3QgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAgICAgICB2aWV3cG9ydENvbmZpZ3Vy
YXRpb25DaGFuZ2VkKCk7CiAKICAgICBmcmFtZVZpZXcuc2V0VW5vYnNjdXJlZENvbnRlbnRTaXpl
KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNjdXJlZENvbnRlbnRSZWN0KCkuc2l6
ZSgpKTsKLSAgICBtX3BhZ2UtPnNldE9ic2N1cmVkSW5zZXQodmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5vYnNjdXJlZEluc2V0KCkpOworICAgIG1fcGFnZS0+c2V0T2JzY3VyZWRJbnNldHMo
dmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5vYnNjdXJlZEluc2V0cygpKTsKICAgICBtX3Bh
Z2UtPnNldEVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KHZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoKSk7CiAKICAgICBk
b3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0gdmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5o
b3Jpem9udGFsVmVsb2NpdHkoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307318</attachid>
            <date>2017-04-17 16:32:16 -0700</date>
            <delta_ts>2017-04-17 18:02:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170913-20170417163214.patch</filename>
            <type>text/plain</type>
            <size>34777</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI4MjEwZjFlZGU2Zjc0
NmVmNjZlMGViM2I1MTVhZjlmZWJiODY4NC4uOTA0Y2QwMWIxYmI2MDlhMDRlMTgwNjUyZGY2Zjhi
MjRmYThhZDgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA0LTE3ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVtYiBh
bGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZSwgaW5zdGVhZCBvZiBqdXN0IHRvcC9s
ZWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA5
MTMKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgSW4g
cHJlcGFyYXRpb24gZm9yIGEgZnV0dXJlIHBhdGNoIChmb3IgcmRhcjovL3Byb2JsZW0vMzE1NjQ2
NTIpLCBwbHVtYgorICAgICAgICBhbGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZS90
aGUgV2ViIENvbnRlbnQgcHJvY2VzcywgaW5zdGVhZCBvZgorICAgICAgICBqdXN0IHRoZSB0b3Ag
YW5kIGxlZnQgaW5zZXRzLgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhp
c3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpvYnNj
dXJlZEluc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0T2JzY3VyZWRJ
bnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Om9ic2N1cmVkSW5zZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldE9ic2N1cmVkSW5zZXQp
OiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmll
d1N0YXRlVG9JdGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6Om9ic2N1cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE9ic2N1
cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om9ic2N1cmVkSW5zZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T2JzY3VyZWRJbnNldCk6IERlbGV0ZWQu
CisgICAgICAgIEFkb3B0IEZsb2F0Qm94RXh0ZW50IGZvciBvYnNjdXJlZEluc2V0cyAoYW5kIGFk
anVzdCBwbHVyYWxpemF0aW9uKS4KKwogMjAxNy0wNC0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgdmlld3BvcnQgcGFyYW1ldGVy
IHRvIGRpc2FibGUgY2xpcHBpbmcgdG8gdGhlIHNhZmUgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI3YmQ4
M2VkZGZmNmNjOGRmZWE4NjQ2MzVjYjY5YzhlNTdhYjFiY2QuLmE1MTJjMDEwNTBmY2E2MGQxOTA2
M2VmN2U3MTg4MmNmNmMwMDEyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxNy0w
NC0xNyAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGx1bWIgYWxsIGZvdXIgb2JzY3VyZWQgaW5zZXRzIHRvIFdlYkNvcmUsIGluc3RlYWQgb2Yg
anVzdCB0b3AvbGVmdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwOTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAg
ICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6b2JzY3VyZWRJbnNldHMpOgorICAgICAgICAoV2Vi
S2l0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6b2JzY3VyZWRJbnNldCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0SW5zZXRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJl
Y3RJbnNldHM+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46cHJldmlvdXNPYnNj
dXJlZEluc2V0OnNjYWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVZpc2libGVD
b250ZW50UmVjdHNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRz
OmlucHV0Vmlld0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0
OnVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2Jz
Y3VyZWRJbnNldDppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNjYWxlOmluU3RhYmxlU3Rh
dGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTplbmNsb3NlZEluU2Nyb2xs
YWJsZUFuY2VzdG9yVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3Jl
UGFnZVN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKToKKyAgICAgICAg
QWRvcHQgRmxvYXRCb3hFeHRlbnQgZm9yIG9ic2N1cmVkSW5zZXRzIChhbmQgYWRqdXN0IHBsdXJh
bGl6YXRpb24pLgorCiAyMDE3LTA0LTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSB2aWV3cG9ydCBwYXJhbWV0ZXIgdG8gZGlzYWJs
ZSBjbGlwcGluZyB0byB0aGUgc2FmZSBhcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCmluZGV4IDhhOTgwYjNmZmY0ZDBiNTBjMmZkOTQ2ZmE0ZWUyZDIzNzk3NTEzNDIuLjY0
ODQ0YTc1NDE4MzhhZDNjMzZkOTMwOTZiNjhjMmVmOTBlMWRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIEhpc3RvcnlJ
dGVtOjpIaXN0b3J5SXRlbShjb25zdCBIaXN0b3J5SXRlbSYgaXRlbSkKICAgICAsIG1fZm9ybUNv
bnRlbnRUeXBlKGl0ZW0ubV9mb3JtQ29udGVudFR5cGUpCiAgICAgLCBtX3BydW5pbmdSZWFzb24o
UHJ1bmluZ1JlYXNvbjo6Tm9uZSkKICNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX29ic2N1cmVk
SW5zZXQoaXRlbS5tX29ic2N1cmVkSW5zZXQpCisgICAgLCBtX29ic2N1cmVkSW5zZXRzKGl0ZW0u
bV9vYnNjdXJlZEluc2V0cykKICAgICAsIG1fc2NhbGUoaXRlbS5tX3NjYWxlKQogICAgICwgbV9z
Y2FsZUlzSW5pdGlhbChpdGVtLm1fc2NhbGVJc0luaXRpYWwpCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCA3NWNmYzg1ODEyZDRjNjYxMjFhM2Q2YWE5ZWMyOGI4
Mzc5MmM2ZDY4Li40ZDFlMmNkZDc0NjEyZjQ4Y2NmMjJmNzQxY2Y5OTU0NzdjOGE1NmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgpAQCAtMTc0LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHVub2JzY3VyZWRD
b250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OyB9CiAg
ICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoSW50UmVjdCB1bm9ic2N1cmVkQ29udGVu
dFJlY3QpIHsgbV91bm9ic2N1cmVkQ29udGVudFJlY3QgPSB1bm9ic2N1cmVkQ29udGVudFJlY3Q7
IH0KIAotICAgIEZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYnNj
dXJlZEluc2V0OyB9Ci0gICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0KGNvbnN0IEZsb2F0U2l6ZSYg
aW5zZXQpIHsgbV9vYnNjdXJlZEluc2V0ID0gaW5zZXQ7IH0KKyAgICBjb25zdCBGbG9hdEJveEV4
dGVudCYgb2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXRzOyB9
CisgICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYgaW5zZXRz
KSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7IH0KIAogICAgIEZsb2F0U2l6ZSBtaW5pbXVt
TGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9taW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOyB9CiAgICAgdm9pZCBzZXRNaW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKEZsb2F0U2l6ZSBtaW5pbXVtTGF5
b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKSB7IG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlcyA9IG1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXM7IH0KQEAgLTI1Nyw3ICsyNTgsNyBAQCBwcml2YXRlOgogICAgIEludFJlY3QgbV91bm9i
c2N1cmVkQ29udGVudFJlY3Q7CiAgICAgRmxvYXRTaXplIG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlczsKICAgICBJbnRTaXplIG1fY29udGVudFNpemU7Ci0gICAgRmxv
YXRTaXplIG1fb2JzY3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5z
ZXRzOwogICAgIGZsb2F0IG1fc2NhbGUgeyAwIH07IC8vIE5vdGUgdGhhdCBVSVdlYlZpZXcgbG9v
a3MgZm9yIGEgbm9uLXplcm8gdmFsdWUsIHNvIHRoaXMgaGFzIHRvIHN0YXJ0IGFzIDAuCiAgICAg
Ym9vbCBtX3NjYWxlSXNJbml0aWFsIHsgZmFsc2UgfTsKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBt
X3ZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAKaW5kZXggNzQzMTA4YjM4NzY4MTYxNjhhMzI3NDUzZmMzNjVkODJlZDhmNzRhYS4u
NDQ0N2M3N2I2ZWNiOGY1YjgwNTc4ZDlhYzFkYWJiYzMxZWE3MGE1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShI
aXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKICAgICAgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpIC8gcGFnZS0+dmlld1NjYWxlRmFjdG9yKCkpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAg
ICAgaXRlbS0+c2V0T2JzY3VyZWRJbnNldChwYWdlLT5vYnNjdXJlZEluc2V0KCkpOworICAgICAg
ICBpdGVtLT5zZXRPYnNjdXJlZEluc2V0cyhwYWdlLT5vYnNjdXJlZEluc2V0cygpKTsKICNlbmRp
ZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhMTQyOTg2ZmIxMTNhZWU0MTI4ZmQ4MDQyYjUy
OWI0YjUwYzAyY2U5Li40M2UwYjgwZmYwN2E1NTRhYzdkOTViMzMzZGYwYjFmNjk2OTY0ZThjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
ICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFnaW5hdGlvbi5o
IgpAQCAtMzI5LDggKzMzMCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRvcENvbnRlbnRJbnNldChmbG9hdCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgRmxvYXRT
aXplIG9ic2N1cmVkSW5zZXQoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXQ7IH0KLSAg
ICB2b2lkIHNldE9ic2N1cmVkSW5zZXQoRmxvYXRTaXplIGluc2V0KSB7IG1fb2JzY3VyZWRJbnNl
dCA9IGluc2V0OyB9CisgICAgY29uc3QgRmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzKCkg
Y29uc3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0czsgfQorICAgIHZvaWQgc2V0T2JzY3VyZWRJ
bnNldHMoRmxvYXRCb3hFeHRlbnQgaW5zZXRzKSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7
IH0KICAgICAKICAgICBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29u
c3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsgfQogICAgIHZv
aWQgc2V0RW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoYm9vbCBmKSB7IG1fZW5jbG9z
ZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcgPSBmOyB9CkBAIC02ODgsNyArNjg5LDcgQEAgcHJp
dmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBmb3Ig
aGlzdG9yeSBzY3JvbGwgcG9zaXRpb24gcmVzdG9yYXRpb24uCi0gICAgRmxvYXRTaXplIG1fb2Jz
Y3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAgIGJv
b2wgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyB7IGZhbHNlIH07CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKaW5kZXggY2E4ZmMwYzI1ODRjMDY1
YWZkMWU4YjY0ZGU3ODgyZTE3ODY2MWMwMy4uNjAxYmQwYjk3MjgxNzkwNGIwMTU0MmU2MDJkYTFk
OTMwOGI5OGM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guY3BwCkBAIC0zMCw3
ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgY29uc3QgTGVuZ3RoQm94JiBib3gpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBCb3hFeHRl
bnQ8VD4mIGJveCkKIHsKICAgICB0cyA8PCAidG9wOiAiIDw8IGJveC50b3AoKSA8PCAiIHJpZ2h0
OiAiIDw8IGJveC5yaWdodCgpIDw8ICIgYm90dG9tOiAiIDw8IGJveC5ib3R0b20oKSA8PCAiIGxl
ZnQ6ICIgPDwgYm94LmxlZnQoKTsKICAgICByZXR1cm4gdHM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xl
bmd0aEJveC5oCmluZGV4IDNlMGYyMTg0ZTY4NmQwZWRjMGNlYTM5YjM0NThlNzRmNmM2ZWE3NTEu
LjExZWM4ZjhlZjMwOWQyY2M0OGU3OTNkNDU0MGQ5ZTlkYjE4ZDFjNzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xlbmd0aEJveC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEJveEV4dGVudCB7CiBwdWJsaWM6CiAgICAgQm94
RXh0ZW50KCkKLSAgICAgICAgOiBtX3NpZGVzKHsgeyB7IDAgfSwgeyAwIH0sIHsgMCB9LCB7IDAg
fSB9IH0pCisgICAgICAgIDogbV9zaWRlcyh7IHsgMCwgMCwgMCwgMCB9IH0pCiAgICAgewogICAg
IH0KIApAQCAtMTU3LDYgKzE1Nyw2IEBAIHB1YmxpYzoKIHVzaW5nIExheW91dEJveEV4dGVudCA9
IEJveEV4dGVudDxMYXlvdXRVbml0PjsKIHVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gQm94RXh0ZW50
PGZsb2F0PjsKIAotVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgTGVu
Z3RoQm94Jik7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mLCBjb25zdCBCb3hFeHRlbnQ8VD4mKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkg
Yi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAxNGRkNjk3
ZThiOGM5ZGM4NjBlOTc0ODI1YzkzMDdkMzBhYTg0NGYzLi4xZWM4ZWY3NTlkMTdjMGIwZmFmNWE0
ZmRjODAyNDkwNWM0NzhiYzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQpAQCAtMjg5LDYgKzI4OSw3IEBAIGRlZiBjbGFzc190ZW1wbGF0ZV9oZWFkZXJzKHRl
bXBsYXRlX3N0cmluZyk6CiAgICAgdGVtcGxhdGVfc3RyaW5nID0gdGVtcGxhdGVfc3RyaW5nLnN0
cmlwKCkKIAogICAgIGNsYXNzX3RlbXBsYXRlX3R5cGVzID0geworICAgICAgICAnV2ViQ29yZTo6
Qm94RXh0ZW50JzogeydoZWFkZXJzJzogWyc8V2ViQ29yZS9MZW5ndGhCb3guaD4nXSwgJ2FyZ3Vt
ZW50X2NvZGVyX2hlYWRlcnMnOiBbJyJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCInXX0sCiAgICAg
ICAgICdIYXNoTWFwJzogeydoZWFkZXJzJzogWyc8d3RmL0hhc2hNYXAuaD4nXSwgJ2FyZ3VtZW50
X2NvZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ3N0ZDo6
b3B0aW9uYWwnOiB7J2hlYWRlcnMnOiBbJzx3dGYvT3B0aW9uYWwuaD4nXSwgJ2FyZ3VtZW50X2Nv
ZGVyX2hlYWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ09wdGlvblNl
dCc6IHsnaGVhZGVycyc6IFsnPHd0Zi9PcHRpb25TZXQuaD4nXSwgJ2FyZ3VtZW50X2NvZGVyX2hl
YWRlcnMnOiBbJyJBcmd1bWVudENvZGVycy5oIiddfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmNwcAppbmRleCAyNzdhZWFk
Nzc3M2ZjOWIwMGNmY2ViNzM4ODk0NDU0MjNlY2VkZDA2Li5lZGNmNjBlN2E2YzJhZTAxZDhkNzBh
YjFlOTFiYzRkZjM5ZDc2ZTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5j
bHVkZSAiVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIgogCiAjaW5jbHVkZSAiV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRTdHJlYW0uaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBA
IC0zOSw3ICs0MCw3IEBAIHZvaWQgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZW5jb2Rl
KElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fdW5vYnNjdXJl
ZENvbnRlbnRSZWN0OwogICAgIGVuY29kZXIgPDwgbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmll
d0Nvb3JkaW5hdGVzOwogICAgIGVuY29kZXIgPDwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdDsK
LSAgICBlbmNvZGVyIDw8IG1fb2JzY3VyZWRJbnNldDsKKyAgICBlbmNvZGVyIDw8IG1fb2JzY3Vy
ZWRJbnNldHM7CiAgICAgZW5jb2RlciA8PCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEOwog
ICAgIGVuY29kZXIgPDwgbV9zY2FsZTsKICAgICBlbmNvZGVyIDw8IG1fdGltZXN0YW1wOwpAQCAt
NjMsNyArNjQsNyBAQCBib29sIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm86OmRlY29kZShJ
UEM6OkRlY29kZXImIGRlY29kZXIsIFZpc2libGVDb250ZW50UgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9jdXN0b21GaXhlZFBvc2l0aW9u
UmVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJl
c3VsdC5tX29ic2N1cmVkSW5zZXQpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1f
b2JzY3VyZWRJbnNldHMpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShyZXN1bHQubV9sYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKQEAgLTExMSw3ICsxMTIsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBjb25zdCBWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvJiBpbmZvKQog
ICAgIHRzLmR1bXBQcm9wZXJ0eSgidW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cyIsIGluZm8udW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlcygpKTsKICAgICB0
cy5kdW1wUHJvcGVydHkoInVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdC
b3VuZHMiLCBpbmZvLnVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3Vu
ZHMoKSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCIsIGlu
Zm8uY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QoKSk7Ci0gICAgdHMuZHVtcFByb3BlcnR5KCJvYnNj
dXJlZEluc2V0IiwgaW5mby5vYnNjdXJlZEluc2V0KCkpOworICAgIHRzLmR1bXBQcm9wZXJ0eSgi
b2JzY3VyZWRJbnNldHMiLCBpbmZvLm9ic2N1cmVkSW5zZXRzKCkpOwogCiAgICAgdHMuZHVtcFBy
b3BlcnR5KCJzY2FsZSIsIGluZm8uc2NhbGUoKSk7CiAgICAgdHMuZHVtcFByb3BlcnR5KCJpblN0
YWJsZVN0YXRlIiwgaW5mby5pblN0YWJsZVN0YXRlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmgKaW5kZXggOGVhMTUzNThk
OTIzMTc2ZWMwMGIwZjhjNzRkYWZkYmZlNGNiYmFmMi4uYTdhNDhkOGU5NGRlMzUyYmFhYTdiZTIz
MmEzOTgyZDZhMGE2ZTA1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2li
bGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9u
Y2UKIAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9M
ZW5ndGhCb3guaD4KICNpbmNsdWRlIDx3dGYvTW9ub3RvbmljVGltZS5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NiwxNCArNDcsMTQgQEAgcHVibGljOgogCiAgICAg
VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyhjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGV4
cG9zZWRDb250ZW50UmVjdCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29u
dGVudFJlY3QsCiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgdW5vYnNjdXJlZFJl
Y3RJblNjcm9sbFZpZXdDb29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9i
c2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIGN1c3RvbUZpeGVkUG9zaXRpb25SZWN0LAotICAgICAgICBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmIG9ic2N1cmVkSW5zZXQsIGRvdWJsZSBzY2FsZSwgYm9vbCBpblN0YWJs
ZVN0YXRlLCBib29sIGlzRmlyc3RVcGRhdGVGb3JOZXdWaWV3U2l6ZSwgYm9vbCBpc0NoYW5naW5n
T2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5LCBib29sIGFsbG93U2hyaW5rVG9GaXQsIGJvb2wg
ZW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcsCisgICAgICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cywgZG91YmxlIHNjYWxlLCBib29sIGluU3Rh
YmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVwZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdp
bmdPYnNjdXJlZEluc2V0c0ludGVyYWN0aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9v
bCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldywKICAgICAgICAgTW9ub3RvbmljVGlt
ZSB0aW1lc3RhbXAsIGRvdWJsZSBob3Jpem9udGFsVmVsb2NpdHksIGRvdWJsZSB2ZXJ0aWNhbFZl
bG9jaXR5LCBkb3VibGUgc2NhbGVDaGFuZ2VSYXRlLCB1aW50NjRfdCBsYXN0TGF5ZXJUcmVlVHJh
bnNhY3Rpb25JZCkKICAgICAgICAgOiBtX2V4cG9zZWRDb250ZW50UmVjdChleHBvc2VkQ29udGVu
dFJlY3QpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3QodW5vYnNjdXJlZENvbnRl
bnRSZWN0KQogICAgICAgICAsIG1fdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRl
cyh1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKQogICAgICAgICAsIG1fdW5v
YnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcyh1bm9ic2N1cmVkQ29u
dGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKQogICAgICAgICAsIG1fY3VzdG9tRml4
ZWRQb3NpdGlvblJlY3QoY3VzdG9tRml4ZWRQb3NpdGlvblJlY3QpCi0gICAgICAgICwgbV9vYnNj
dXJlZEluc2V0KG9ic2N1cmVkSW5zZXQpCisgICAgICAgICwgbV9vYnNjdXJlZEluc2V0cyhvYnNj
dXJlZEluc2V0cykKICAgICAgICAgLCBtX2xhc3RMYXllclRyZWVUcmFuc2FjdGlvbklEKGxhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICAsIG1fc2NhbGUoc2NhbGUpCiAgICAgICAg
ICwgbV90aW1lc3RhbXAodGltZXN0YW1wKQpAQCAtNzMsNyArNzQsNyBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkQ29udGVu
dFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV91bm9ic2N1
cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOyB9CiAgICAgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiBjdXN0b21GaXhlZFBvc2l0aW9uUmVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fY3VzdG9tRml4ZWRQb3NpdGlvblJlY3Q7IH0KLSAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUgb2JzY3VyZWRJbnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzY3VyZWRJbnNldDsgfQorICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0cygpIGNvbnN0IHsg
cmV0dXJuIG1fb2JzY3VyZWRJbnNldHM7IH0KIAogICAgIGRvdWJsZSBzY2FsZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2NhbGU7IH0KICAgICBib29sIGluU3RhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2luU3RhYmxlU3RhdGU7IH0KQEAgLTEwMCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBtX3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7
CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0UmVzcGVjdGlu
Z0lucHV0Vmlld0JvdW5kczsKICAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9jdXN0b21GaXhlZFBv
c2l0aW9uUmVjdDsgLy8gV2hlbiB2aXN1YWwgdmlld3BvcnRzIGFyZSBlbmFibGVkLCB0aGlzIGlz
IHRoZSBsYXlvdXQgdmlld3BvcnQuCi0gICAgV2ViQ29yZTo6RmxvYXRTaXplIG1fb2JzY3VyZWRJ
bnNldDsKKyAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAg
IHVpbnQ2NF90IG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQgeyAwIH07CiAgICAgZG91Ymxl
IG1fc2NhbGUgeyAtMSB9OwogICAgIE1vbm90b25pY1RpbWUgbV90aW1lc3RhbXA7CkBAIC0xMjEs
NyArMTIyLDcgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvJiBhLCBjb25zdCBWaXNpYmxlQ29udGUKICAgICAgICAgJiYgYS5leHBvc2Vk
Q29udGVudFJlY3QoKSA9PSBiLmV4cG9zZWRDb250ZW50UmVjdCgpCiAgICAgICAgICYmIGEudW5v
YnNjdXJlZENvbnRlbnRSZWN0KCkgPT0gYi51bm9ic2N1cmVkQ29udGVudFJlY3QoKQogICAgICAg
ICAmJiBhLmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkgPT0gYi5jdXN0b21GaXhlZFBvc2l0aW9u
UmVjdCgpCi0gICAgICAgICYmIGEub2JzY3VyZWRJbnNldCgpID09IGIub2JzY3VyZWRJbnNldCgp
CisgICAgICAgICYmIGEub2JzY3VyZWRJbnNldHMoKSA9PSBiLm9ic2N1cmVkSW5zZXRzKCkKICAg
ICAgICAgJiYgYS5ob3Jpem9udGFsVmVsb2NpdHkoKSA9PSBiLmhvcml6b250YWxWZWxvY2l0eSgp
CiAgICAgICAgICYmIGEudmVydGljYWxWZWxvY2l0eSgpID09IGIudmVydGljYWxWZWxvY2l0eSgp
CiAgICAgICAgICYmIGEuc2NhbGVDaGFuZ2VSYXRlKCkgPT0gYi5zY2FsZUNoYW5nZVJhdGUoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCBiODQxMzFjZDI3YmM4OGUwNTNkNjFlNTk3MDM0ZDg2NzQzY2I1OWMwLi41OGFhZWMzMWZlM2M1
YzQzODA5MjZmOThjYTNmMzRlNjhkZjYwNzViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTGVu
Z3RoQm94Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXRoLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KQEAgLTM4
OSw2ICszOTAsMTcgQEAgYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0UmVjdD46OmRlY29kZShEZWNv
ZGVyJiBkZWNvZGVyLCBGbG9hdFJlY3QmIGZsb2F0UmVjdCkKIH0KIAogCit2b2lkIEFyZ3VtZW50
Q29kZXI8RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxv
YXRCb3hFeHRlbnQmIGZsb2F0Qm94RXh0ZW50KQoreworICAgIFNpbXBsZUFyZ3VtZW50Q29kZXI8
RmxvYXRCb3hFeHRlbnQ+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRCb3hFeHRlbnQpOworfQorICAg
IAorYm9vbCBBcmd1bWVudENvZGVyPEZsb2F0Qm94RXh0ZW50Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIEZsb2F0Qm94RXh0ZW50JiBmbG9hdEJveEV4dGVudCkKK3sKKyAgICByZXR1cm4gU2lt
cGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmRlY29kZShkZWNvZGVyLCBmbG9hdEJv
eEV4dGVudCk7Cit9CisgICAgCisKIHZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRmxvYXRTaXplJiBmbG9hdFNpemUpCiB7CiAgICAg
U2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdFNpemU+OjplbmNvZGUoZW5jb2RlciwgZmxvYXRTaXpl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRl
eCBlZmI3YjE3Mzg5NWJhYmExMjYzNTI2ZTZmZTQzODFlNDY2ODI3YTkwLi40ZDgzYjIyNGNmYWFh
M2YwNGM1MDM3OGMxMzEwMTk0MTUxMzA5NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xMDEsNiArMTAxLDkgQEAgc3RydWN0IFRleHRD
aGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBUZXh0SW5kaWNhdG9yRGF0YTsKIHN0cnVjdCBWaWV3cG9y
dEF0dHJpYnV0ZXM7CiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CisgICAgCit0ZW1wbGF0ZSA8dHlw
ZW5hbWU+IGNsYXNzIEJveEV4dGVudDsKK3VzaW5nIEZsb2F0Qm94RXh0ZW50ID0gQm94RXh0ZW50
PGZsb2F0PjsKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQpAQCAtMjI0LDYgKzIyNywxMSBAQCB0
ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0UmVjdD4gewogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsK
IH07CisgICAgCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0
Qm94RXh0ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKTsKK307CiAKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRTaXplPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggZjllMWIzNjg2YzMxY2RjYzJh
NjlhZjgwMzRhZWU4YmM5MzUyZGExOS4uMzBlZjg4NDFlMzE0NjU0MmZmZDk5NTAxYTlkYWFiN2Yz
ZDA5OWUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTI1OCw3ICsyNTgsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJveHko
V2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAKICAgICBCT09MIF9jb21taXREaWRSZXN0b3Jl
U2Nyb2xsUG9zaXRpb247CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBf
c2Nyb2xsT2Zmc2V0VG9SZXN0b3JlOwotICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBfb2JzY3VyZWRJ
bnNldFdoZW5TYXZlZDsKKyAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCBfb2JzY3VyZWRJbnNl
dHNXaGVuU2F2ZWQ7CiAKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IF91
bm9ic2N1cmVkQ2VudGVyVG9SZXN0b3JlOwogICAgIHVpbnQ2NF90IF9maXJzdFRyYW5zYWN0aW9u
SURBZnRlclBhZ2VSZXN0b3JlOwpAQCAtMTUwNCw3ICsxNTA0LDcgQEAgc3RhdGljIGlubGluZSBi
b29sIGFyZUVzc2VudGlhbGx5RXF1YWxBc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAKICAgICAg
ICAgICAgIGlmIChhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdChjb250ZW50Wm9vbVNjYWxlKHNl
bGYpLCBfc2NhbGVUb1Jlc3RvcmUpKSB7CiAgICAgICAgICAgICAgICAgc2NhbGVkU2Nyb2xsT2Zm
c2V0LnNjYWxlKF9zY2FsZVRvUmVzdG9yZSk7Ci0gICAgICAgICAgICAgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb250ZW50T2Zmc2V0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMgPSBzY2FsZWRTY3Jv
bGxPZmZzZXQgLSBfb2JzY3VyZWRJbnNldFdoZW5TYXZlZDsKKyAgICAgICAgICAgICAgICBXZWJD
b3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyA9IHNj
YWxlZFNjcm9sbE9mZnNldCAtIFdlYkNvcmU6OkZsb2F0U2l6ZShfb2JzY3VyZWRJbnNldHNXaGVu
U2F2ZWQubGVmdCgpLCBfb2JzY3VyZWRJbnNldHNXaGVuU2F2ZWQudG9wKCkpOwogCiAgICAgICAg
ICAgICAgICAgY2hhbmdlQ29udGVudE9mZnNldEJvdW5kZWRJblZhbGlkUmFuZ2UoX3Njcm9sbFZp
ZXcuZ2V0KCksIGNvbnRlbnRPZmZzZXRJblNjcm9sbFZpZXdDb29yZGluYXRlcyk7CiAgICAgICAg
ICAgICAgICAgX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbiA9IFlFUzsKQEAgLTE1NzIs
NyArMTU3Miw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhcmVFc3NlbnRpYWxseUVxdWFsQXNGbG9h
dChmbG9hdCBhLCBmbG9hdCBiKQogICAgICAgICBfZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpOwogfQogCi0tICh2b2lkKV9yZXN0b3JlUGFnZVNjcm9sbFBvc2l0
aW9uOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+KXNjcm9sbFBvc2l0aW9uIHNj
cm9sbE9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxPcmlnaW4gcHJldmlvdXNPYnNj
dXJlZEluc2V0OihXZWJDb3JlOjpGbG9hdFNpemUpb2JzY3VyZWRJbnNldCBzY2FsZTooZG91Ymxl
KXNjYWxlCistICh2b2lkKV9yZXN0b3JlUGFnZVNjcm9sbFBvc2l0aW9uOihzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UG9pbnQ+KXNjcm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29y
ZTo6RmxvYXRQb2ludClzY3JvbGxPcmlnaW4gcHJldmlvdXNPYnNjdXJlZEluc2V0OihXZWJDb3Jl
OjpGbG9hdEJveEV4dGVudClvYnNjdXJlZEluc2V0cyBzY2FsZTooZG91YmxlKXNjYWxlCiB7CiAg
ICAgaWYgKF9keW5hbWljVmlld3BvcnRVcGRhdGVNb2RlICE9IER5bmFtaWNWaWV3cG9ydFVwZGF0
ZU1vZGU6Ok5vdFJlc2l6aW5nKQogICAgICAgICByZXR1cm47CkBAIC0xNTg2LDcgKzE1ODYsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVhbEFzRmxvYXQoZmxvYXQgYSwg
ZmxvYXQgYikKICAgICBlbHNlCiAgICAgICAgIF9zY3JvbGxPZmZzZXRUb1Jlc3RvcmUgPSBzdGQ6
Om51bGxvcHQ7CiAKLSAgICBfb2JzY3VyZWRJbnNldFdoZW5TYXZlZCA9IG9ic2N1cmVkSW5zZXQ7
CisgICAgX29ic2N1cmVkSW5zZXRzV2hlblNhdmVkID0gb2JzY3VyZWRJbnNldHM7CiAgICAgX3Nj
YWxlVG9SZXN0b3JlID0gc2NhbGU7CiB9CiAKQEAgLTI0MDMsNyArMjQwMyw3IEBAIHN0YXRpYyBi
b29sIHNjcm9sbFZpZXdDYW5TY3JvbGwoVUlTY3JvbGxWaWV3ICpzY3JvbGxWaWV3KQogICAgIFtf
Y29udGVudFZpZXcgZGlkVXBkYXRlVmlzaWJsZVJlY3Q6dmlzaWJsZVJlY3RJbkNvbnRlbnRDb29y
ZGluYXRlcwogICAgICAgICB1bm9ic2N1cmVkUmVjdDp1bm9ic2N1cmVkUmVjdEluQ29udGVudENv
b3JkaW5hdGVzCiAgICAgICAgIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6
dW5vYnNjdXJlZFJlY3QKLSAgICAgICAgb2JzY3VyZWRJbnNldDpDR1NpemVNYWtlKF9vYnNjdXJl
ZEluc2V0cy5sZWZ0LCBfb2JzY3VyZWRJbnNldHMudG9wKQorICAgICAgICBvYnNjdXJlZEluc2V0
czpfb2JzY3VyZWRJbnNldHMKICAgICAgICAgaW5wdXRWaWV3Qm91bmRzOl9pbnB1dFZpZXdCb3Vu
ZHMKICAgICAgICAgc2NhbGU6c2NhbGVGYWN0b3IgbWluaW11bVNjYWxlOltfc2Nyb2xsVmlldyBt
aW5pbXVtWm9vbVNjYWxlXQogICAgICAgICBpblN0YWJsZVN0YXRlOmluU3RhYmxlU3RhdGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAppbmRleCA3NzhkNGY2ZmM2MmViYjk4N2E4OTBlN2M2OGM2OTZhZWZkOTI3MjBkLi5i
MDE1OGMxZWFjNGJjYzYwZDM2NmQ0Yzk0NjNiZjZkMmM3M2FmMWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCkBA
IC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCiAjaW1wb3J0ICJXS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24uaCIKICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC04MSw3ICs4Miw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKIC0gKHZvaWQpX2R5bmFtaWNW
aWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXRUb1NjYWxlOihkb3VibGUpbmV3U2NhbGUgcG9zaXRp
b246KENHUG9pbnQpbmV3U2Nyb2xsUG9zaXRpb24gbmV4dFZhbGlkTGF5ZXJUcmVlVHJhbnNhY3Rp
b25JRDoodWludDY0X3QpbmV4dFZhbGlkTGF5ZXJUcmVlVHJhbnNhY3Rpb25JRDsKIC0gKHZvaWQp
X2NvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZTsKLS0gKHZvaWQpX3Jlc3RvcmVQYWdlU2Nyb2xsUG9z
aXRpb246KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pc2Nyb2xsUG9zaXRpb24g
c2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9yaWdpbiBwcmV2aW91c09i
c2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZsb2F0U2l6ZSl0b3BJbnNldCBzY2FsZTooZG91YmxlKXNj
YWxlOworLSAodm9pZClfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjooc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFBvaW50PilzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6
OkZsb2F0UG9pbnQpc2Nyb2xsT3JpZ2luIHByZXZpb3VzT2JzY3VyZWRJbnNldDooV2ViQ29yZTo6
RmxvYXRCb3hFeHRlbnQpaW5zZXRzIHNjYWxlOihkb3VibGUpc2NhbGU7CiAtICh2b2lkKV9yZXN0
b3JlUGFnZVN0YXRlVG9Vbm9ic2N1cmVkQ2VudGVyOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZs
b2F0UG9pbnQ+KWNlbnRlciBzY2FsZTooZG91YmxlKXNjYWxlOyAvLyBGSVhNRTogbmVlZHMgc2Ny
b2xsIG9yaWdpbj8KIAogLSAoUGFzc1JlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rha2VW
aWV3U25hcHNob3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNs
aWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAwZGRm
ZDQ2MjM1NDQ1NDg2MzAyYzI4MTVmNTVlODMxMGZmZDA3OTZmLi43ZTE3MTNkYmY0ODJmMDgyNTkx
ZjljYjBlZDA1NTMxODc3MjE2NWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKQEAgLTI5Niw3ICsyOTYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZHluYW1p
Y1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3U2NhbGUsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uLCB1aW50NjRfdCB0cmFuc2FjdGlvbklE
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2
ZSwgZG91YmxlIHNjYWxlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdlU3RhdGUo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
V2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJv
eEV4dGVudCYgb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6RmxvYXRQb2ludD4gY2VudGVyLCBkb3VibGUgc2NhbGUpID0gMDsKIAogICAgIHZpcnR1YWwg
dm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24mLCBi
b29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAppbmRleCBjODgzMzU4MjE1NDJkNjE0NDdhMmIxMjZhZmMyMTczOTk3YjhjZDM4Li40Y2M3YWVj
YzVmNDQ1NjYzZjVjMTI1YWZjYjA0N2Y0MGIwYjgzMzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTIxLDYgKzEyMSw3IEBACiAjaW5jbHVkZSA8V2Vi
Q29yZS9Gb2N1c0RpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNET01CaW5kaW5nLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnku
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1B1YmxpY1N1ZmZpeC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UmVuZGVyRW1iZWRkZWRPYmplY3QuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAppbmRleCAyN2NkZmZkYzQxYzBhMTFjNTM2MTY4ZTcxYzU0NTQxMzcxODZkNDE0Li42ZDFj
NDRlMDdiYmRiMGIyY2JhYzkyYmU4YTNmODRlZjM1MzY3NzhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNzAsNiArMTcwLDkgQEAgc3RydWN0IFdpbmRvd0Zl
YXR1cmVzOwogCiBlbnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKIGVudW0gY2xhc3MgU2hv
dWxkU2FtcGxlOworCit0ZW1wbGF0ZSA8dHlwZW5hbWU+IGNsYXNzIEJveEV4dGVudDsKK3VzaW5n
IEZsb2F0Qm94RXh0ZW50ID0gQm94RXh0ZW50PGZsb2F0PjsKIH0KIAogI2lmIFBMQVRGT1JNKEdU
SykKQEAgLTE1MjEsNyArMTUyNCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGR5bmFtaWNWaWV3
cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5ld1RhcmdldFNjYWxlLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdw
b3J0U2l6ZVVwZGF0ZUlEKTsKICAgICB2b2lkIGNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpOwot
ICAgIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9p
bnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2ZSwgZG91Ymxl
IHNjYWxlKTsKKyAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
c2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNl
dHNPblNhdmUsIGRvdWJsZSBzY2FsZSk7CiAgICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNj
YWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGRvdWJsZSBzY2FsZSk7CiAK
ICAgICB2b2lkIGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElE
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9h
dFF1YWQ+JiBnZW9tZXRyaWVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVz
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgYm90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9t
UmlnaHRSYWRpdXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggODQ1ZDQzMDk0ZTEwMGJkMGIxMDJiMWM3MjAzNTg4NTViMGJm
ZTMyYi4uNjExZTQxYjI5M2Y5YzgxYmM0ZTI4ODZiNjkwZGRmNGM3NmU3YTQxZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0z
NzgsNyArMzc4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgRHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdldChkb3VibGUgbmV3VGFy
Z2V0U2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24sIHVpbnQ2NF90
IGR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGVJRCkKICAgICBDb3VsZE5vdFJlc3RvcmVQYWdlU3Rh
dGUoKQotICAgIFJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBv
aW50PiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxPcmlnaW4sIFdl
YkNvcmU6OkZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0T25TYXZlLCBkb3VibGUgc2NhbGUpCisgICAg
UmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9s
bFBvc2l0aW9uLCBXZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6Qm94
RXh0ZW50PGZsb2F0PiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxlKQogICAgIFJl
c3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50
PiB1bm9ic2N1cmVkQ2VudGVyLCBkb3VibGUgc2NhbGUpCiAgICAgRGlkR2V0VGFwSGlnaGxpZ2h0
R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkNvbG9yIGNvbG9yLCBWZWN0
b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiBnZW9tZXRyaWVzLCBXZWJDb3JlOjpJbnRTaXplIHRvcExl
ZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgdG9wUmlnaHRSYWRpdXMsIFdlYkNvcmU6OkludFNp
emUgYm90dG9tTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21SaWdodFJhZGl1cykK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5o
CmluZGV4IDY5MTQyNmRkZjZjZjZiMjY5NDE4NzMzYjkwZjAwMWY3YjQ0MzU1Y2EuLmE2ZDZiYzA1
MGMyNTc5MGY3NThjOGQ0M2NjZWE2OWNkZGExMTQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRv
dWJsZSBuZXdTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Nyb2xsUG9zaXRp
b24sIHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpIG92ZXJyaWRlOwogICAgIHZvaWQgY291bGROb3RS
ZXN0b3JlUGFnZVN0YXRlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCBkb3VibGUpIG92ZXJyaWRlOworICAgIHZv
aWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQm
LCBkb3VibGUpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBkb3VibGUpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzdGFydEFzc2lzdGluZ05vZGUoY29uc3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb24m
LCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIEFQSTo6T2Jq
ZWN0KiB1c2VyRGF0YSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBkOGQ1YmIwOTMxMzU0MTA1YWUxMTI5ZGEz
ZTQ1ZTg4NTQxNDQzMjYwLi40NjQ2YzRhYWQzNmQ1MzgyNDM5ZDc1NTMzZWVlMTRmM2NiYzBkMjI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBs
SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTUzNCw5ICs1MzQsOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjb3VsZE5vdFJl
c3RvcmVQYWdlU3RhdGUoKQogICAgIFttX3dlYlZpZXcgX2NvdWxkTm90UmVzdG9yZVBhZ2VTdGF0
ZV07CiB9CiAKLXZvaWQgUGFnZUNsaWVudEltcGw6OnJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIG9ic2N1
cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlc3Rv
cmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3Np
dGlvbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJD
b3JlOjpGbG9hdEJveEV4dGVudCYgb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkK
IHsKLSAgICBbbV93ZWJWaWV3IF9yZXN0b3JlUGFnZVNjcm9sbFBvc2l0aW9uOnNjcm9sbFBvc2l0
aW9uIHNjcm9sbE9yaWdpbjpzY3JvbGxPcmlnaW4gcHJldmlvdXNPYnNjdXJlZEluc2V0Om9ic2N1
cmVkSW5zZXRPblNhdmUgc2NhbGU6c2NhbGVdOworICAgIFttX3dlYlZpZXcgX3Jlc3RvcmVQYWdl
U2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9sbE9yaWdpbiBw
cmV2aW91c09ic2N1cmVkSW5zZXQ6b2JzY3VyZWRJbnNldHNPblNhdmUgc2NhbGU6c2NhbGVdOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gY2VudGVyLCBkb3VibGUgc2NhbGUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IGVjODJmN2Ix
OTM2NGZjZGE4YTkxNDRhNjFhMmNjYmU5MjhlMTAyODguLjg0MmZjZjM5MzJlMjI4NDNiOTRmNDg5
NWQ4MmI1NTFjNDM1OTAyNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oCkBAIC03MCw3ICs3MCw3IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogLSAo
dm9pZClkaWRVcGRhdGVWaXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVSZWN0CiAgICAgdW5vYnNj
dXJlZFJlY3Q6KENHUmVjdCl1bm9ic2N1cmVkUmVjdAogICAgIHVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXM6KENHUmVjdCl1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3Jk
aW5hdGVzCi0gICAgb2JzY3VyZWRJbnNldDooQ0dTaXplKXRvcEluc2V0CisgICAgb2JzY3VyZWRJ
bnNldHM6KFVJRWRnZUluc2V0cylvYnNjdXJlZEluc2V0cwogICAgIGlucHV0Vmlld0JvdW5kczoo
Q0dSZWN0KWlucHV0Vmlld0JvdW5kcwogICAgIHNjYWxlOihDR0Zsb2F0KXNjYWxlIG1pbmltdW1T
Y2FsZTooQ0dGbG9hdCltaW5pbXVtU2NhbGUKICAgICBpblN0YWJsZVN0YXRlOihCT09MKWlzU3Rh
YmxlU3RhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5t
bQppbmRleCA3NWY3MThiZGY5ZGI3OTUxZWQxODYyMjhmMDk1YTljOGUxYTgyOTM2Li5kZjVmZDEy
MjBhMGZkYjM2NzYzNzMyMzk1ODE3NTVkMWJjYjkwNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCkBAIC0zODUsNyArMzg1LDcgQEAgcHJpdmF0
ZToKIC0gKHZvaWQpZGlkVXBkYXRlVmlzaWJsZVJlY3Q6KENHUmVjdCl2aXNpYmxlQ29udGVudFJl
Y3QKICAgICB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2JzY3VyZWRDb250ZW50UmVjdAogICAg
IHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6KENHUmVjdCl1bm9ic2N1cmVk
UmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzCi0gICAgb2JzY3VyZWRJbnNldDooQ0dTaXplKW9i
c2N1cmVkSW5zZXQKKyAgICBvYnNjdXJlZEluc2V0czooVUlFZGdlSW5zZXRzKW9ic2N1cmVkSW5z
ZXRzCiAgICAgaW5wdXRWaWV3Qm91bmRzOihDR1JlY3QpaW5wdXRWaWV3Qm91bmRzCiAgICAgc2Nh
bGU6KENHRmxvYXQpem9vbVNjYWxlIG1pbmltdW1TY2FsZTooQ0dGbG9hdCltaW5pbXVtU2NhbGUK
ICAgICBpblN0YWJsZVN0YXRlOihCT09MKWlzU3RhYmxlU3RhdGUKQEAgLTQxNCw3ICs0MTQsNyBA
QCBwcml2YXRlOgogICAgICAgICB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVz
LAogICAgICAgICB1bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRz
LAogICAgICAgICBmaXhlZFBvc2l0aW9uUmVjdEZvckxheW91dCwKLSAgICAgICAgV2ViQ29yZTo6
RmxvYXRTaXplKG9ic2N1cmVkSW5zZXQpLAorICAgICAgICBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dChvYnNjdXJlZEluc2V0cy50b3AsIG9ic2N1cmVkSW5zZXRzLnJpZ2h0LCBvYnNjdXJlZEluc2V0
cy5ib3R0b20sIG9ic2N1cmVkSW5zZXRzLmxlZnQpLAogICAgICAgICB6b29tU2NhbGUsCiAgICAg
ICAgIGlzU3RhYmxlU3RhdGUsCiAgICAgICAgIF9zaXplQ2hhbmdlZFNpbmNlTGFzdFZpc2libGVD
b250ZW50UmVjdFVwZGF0ZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViUGFnZVByb3h5SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQ
YWdlUHJveHlJT1MubW0KaW5kZXggNzliMWRjOTRmNDMxZjhkZTY0Mzc1YTdmMzQyZWQ0MWI1ZWUz
N2I5ZC4uM2MwMmY4NjZjMjljYWM4YTRmMjM4OWQ4ZjFiMDI1MjVlMmE3YzNjMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0KQEAgLTkwNiw5
ICs5MDYsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCkK
ICAgICBtX3BhZ2VDbGllbnQuY291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCk7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpyZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9s
bE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBvYnNjdXJlZEluc2V0T25TYXZlLCBk
b3VibGUgc2NhbGUpCit2b2lkIFdlYlBhZ2VQcm94eTo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50
JiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxlKQogewotICAgIG1fcGFnZUNsaWVu
dC5yZXN0b3JlUGFnZVN0YXRlKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxPcmlnaW4sIG9ic2N1cmVk
SW5zZXRPblNhdmUsIHNjYWxlKTsKKyAgICBtX3BhZ2VDbGllbnQucmVzdG9yZVBhZ2VTdGF0ZShz
Y3JvbGxQb3NpdGlvbiwgc2Nyb2xsT3JpZ2luLCBvYnNjdXJlZEluc2V0c09uU2F2ZSwgc2NhbGUp
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6cmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IGNlbnRlciwgZG91YmxlIHNjYWxlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
CmluZGV4IDRiMTM1ZDA0YTMzNDIwZDFiNmMzZjQ4NTMxY2NiZTU1OWI4MTdhNWIuLjQ4NjliMDZj
ZmVkOGYxOTAxOGJiMzE3ZDllMzIyZDc4YTk1MDM4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTMwMCw3ICszMDAs
NyBAQCB2b2lkIFdlYlBhZ2U6OnJlc3RvcmVQYWdlU3RhdGUoY29uc3QgSGlzdG9yeUl0ZW0mIGhp
c3RvcnlJdGVtKQogICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+c2V0RXhwb3NlZENvbnRlbnRS
ZWN0KGhpc3RvcnlJdGVtLmV4cG9zZWRDb250ZW50UmVjdCgpKTsKICAgICAgICAgICAgIHNjcm9s
bFBvc2l0aW9uID0gRmxvYXRQb2ludChoaXN0b3J5SXRlbS5zY3JvbGxQb3NpdGlvbigpKTsKICAg
ICAgICAgfQotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc3RvcmVQYWdl
U3RhdGUoc2Nyb2xsUG9zaXRpb24sIGZyYW1lVmlldy5zY3JvbGxPcmlnaW4oKSwgaGlzdG9yeUl0
ZW0ub2JzY3VyZWRJbnNldCgpLCBib3VuZGVkU2NhbGUpKTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZXN0b3JlUGFnZVN0YXRlKHNjcm9sbFBvc2l0aW9uLCBmcmFtZVZp
ZXcuc2Nyb2xsT3JpZ2luKCksIGhpc3RvcnlJdGVtLm9ic2N1cmVkSW5zZXRzKCksIGJvdW5kZWRT
Y2FsZSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEludFNpemUgb2xkQ29udGVudFNpemUgPSBo
aXN0b3J5SXRlbS5jb250ZW50U2l6ZSgpOwogICAgICAgICBJbnRTaXplIG5ld0NvbnRlbnRTaXpl
ID0gZnJhbWVWaWV3LmNvbnRlbnRzU2l6ZSgpOwpAQCAtMzE5Niw3ICszMTk2LDcgQEAgdm9pZCBX
ZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKGNvbnN0IFZpc2libGVDb250ZW50UmVj
dFVwZGF0ZUluZm8mIHZpc2kKICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgp
OwogCiAgICAgZnJhbWVWaWV3LnNldFVub2JzY3VyZWRDb250ZW50U2l6ZSh2aXNpYmxlQ29udGVu
dFJlY3RVcGRhdGVJbmZvLnVub2JzY3VyZWRDb250ZW50UmVjdCgpLnNpemUoKSk7Ci0gICAgbV9w
YWdlLT5zZXRPYnNjdXJlZEluc2V0KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8ub2JzY3Vy
ZWRJbnNldCgpKTsKKyAgICBtX3BhZ2UtPnNldE9ic2N1cmVkSW5zZXRzKHZpc2libGVDb250ZW50
UmVjdFVwZGF0ZUluZm8ub2JzY3VyZWRJbnNldHMoKSk7CiAgICAgbV9wYWdlLT5zZXRFbmNsb3Nl
ZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyh2aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmVu
Y2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkpOwogCiAgICAgZG91YmxlIGhvcml6b250
YWxWZWxvY2l0eSA9IHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaG9yaXpvbnRhbFZlbG9j
aXR5KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307327</attachid>
            <date>2017-04-17 18:02:40 -0700</date>
            <delta_ts>2017-04-17 19:37:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170913-20170417180239.patch</filename>
            <type>text/plain</type>
            <size>34755</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI4MjEwZjFlZGU2Zjc0
NmVmNjZlMGViM2I1MTVhZjlmZWJiODY4NC4uOTA0Y2QwMWIxYmI2MDlhMDRlMTgwNjUyZGY2Zjhi
MjRmYThhZDgzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE3LTA0LTE3ICBUaW1v
dGh5IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBQbHVtYiBh
bGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZSwgaW5zdGVhZCBvZiBqdXN0IHRvcC9s
ZWZ0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA5
MTMKKworICAgICAgICBSZXZpZXdlZCBieSBXZW5zb24gSHNpZWguCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLCBubyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZSB5ZXQuCisKKyAgICAgICAgSW4g
cHJlcGFyYXRpb24gZm9yIGEgZnV0dXJlIHBhdGNoIChmb3IgcmRhcjovL3Byb2JsZW0vMzE1NjQ2
NTIpLCBwbHVtYgorICAgICAgICBhbGwgZm91ciBvYnNjdXJlZCBpbnNldHMgdG8gV2ViQ29yZS90
aGUgV2ViIENvbnRlbnQgcHJvY2VzcywgaW5zdGVhZCBvZgorICAgICAgICBqdXN0IHRoZSB0b3Ag
YW5kIGxlZnQgaW5zZXRzLgorCisgICAgICAgICogaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIGhp
c3RvcnkvSGlzdG9yeUl0ZW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpvYnNj
dXJlZEluc2V0cyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0T2JzY3VyZWRJ
bnNldHMpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06Om9ic2N1cmVkSW5zZXQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeUl0ZW06OnNldE9ic2N1cmVkSW5zZXQp
OiBEZWxldGVkLgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIaXN0b3J5Q29udHJvbGxlcjo6c2F2ZVNjcm9sbFBvc2l0aW9uQW5kVmll
d1N0YXRlVG9JdGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlBhZ2U6Om9ic2N1cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNldE9ic2N1
cmVkSW5zZXRzKToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6Om9ic2N1cmVkSW5zZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0T2JzY3VyZWRJbnNldCk6IERlbGV0ZWQu
CisgICAgICAgIEFkb3B0IEZsb2F0Qm94RXh0ZW50IGZvciBvYnNjdXJlZEluc2V0cyAoYW5kIGFk
anVzdCBwbHVyYWxpemF0aW9uKS4KKwogMjAxNy0wNC0xNyAgVGltIEhvcnRvbiAgPHRpbW90aHlf
aG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBQcm92aWRlIGEgdmlld3BvcnQgcGFyYW1ldGVy
IHRvIGRpc2FibGUgY2xpcHBpbmcgdG8gdGhlIHNhZmUgYXJlYQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDI3YmQ4
M2VkZGZmNmNjOGRmZWE4NjQ2MzVjYjY5YzhlNTdhYjFiY2QuLmE1MTJjMDEwNTBmY2E2MGQxOTA2
M2VmN2U3MTg4MmNmNmMwMDEyYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxNy0w
NC0xNyAgVGltb3RoeSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUGx1bWIgYWxsIGZvdXIgb2JzY3VyZWQgaW5zZXRzIHRvIFdlYkNvcmUsIGluc3RlYWQgb2Yg
anVzdCB0b3AvbGVmdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTcwOTEzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAg
ICAgICogU2hhcmVkL1Zpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uY3BwOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjpkZWNvZGUpOgorICAgICAgICAo
V2ViS2l0OjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBTaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0
VXBkYXRlSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvOjpWaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvKToKKyAgICAgICAgKFdlYktpdDo6Vmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6b2JzY3VyZWRJbnNldHMpOgorICAgICAgICAoV2Vi
S2l0OjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYktpdDo6VmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mbzo6b2JzY3VyZWRJbnNldCk6IERlbGV0ZWQuCisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8RmxvYXRS
ZWN0SW5zZXRzPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxGbG9hdFJl
Y3RJbnNldHM+OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9kaWRDb21taXRMYXllclRyZWU6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxPcmlnaW46cHJldmlvdXNPYnNj
dXJlZEluc2V0OnNjYWxlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3VwZGF0ZVZpc2libGVD
b250ZW50UmVjdHNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5tbToK
KyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkaWRVcGRhdGVWaXNpYmxlUmVjdDp1bm9ic2N1cmVk
UmVjdDp1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOm9ic2N1cmVkSW5zZXRz
OmlucHV0Vmlld0JvdW5kczpzY2FsZTptaW5pbXVtU2NhbGU6aW5TdGFibGVTdGF0ZTppc0NoYW5n
aW5nT2JzY3VyZWRJbnNldHNJbnRlcmFjdGl2ZWx5OmVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0
b3JWaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRpZFVwZGF0ZVZpc2libGVSZWN0
OnVub2JzY3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM6b2Jz
Y3VyZWRJbnNldDppbnB1dFZpZXdCb3VuZHM6c2NhbGU6bWluaW11bVNjYWxlOmluU3RhYmxlU3Rh
dGU6aXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJhY3RpdmVseTplbmNsb3NlZEluU2Nyb2xs
YWJsZUFuY2VzdG9yVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3Jl
UGFnZVN0YXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnJlc3RvcmVQYWdlU3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKToKKyAgICAgICAg
QWRvcHQgRmxvYXRCb3hFeHRlbnQgZm9yIG9ic2N1cmVkSW5zZXRzIChhbmQgYWRqdXN0IHBsdXJh
bGl6YXRpb24pLgorCiAyMDE3LTA0LTE3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIFByb3ZpZGUgYSB2aWV3cG9ydCBwYXJhbWV0ZXIgdG8gZGlzYWJs
ZSBjbGlwcGluZyB0byB0aGUgc2FmZSBhcmVhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L0hpc3RvcnlJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0
ZW0uY3BwCmluZGV4IDhhOTgwYjNmZmY0ZDBiNTBjMmZkOTQ2ZmE0ZWUyZDIzNzk3NTEzNDIuLjY0
ODQ0YTc1NDE4MzhhZDNjMzZkOTMwOTZiNjhjMmVmOTBlMWRhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgaW5saW5lIEhpc3RvcnlJ
dGVtOjpIaXN0b3J5SXRlbShjb25zdCBIaXN0b3J5SXRlbSYgaXRlbSkKICAgICAsIG1fZm9ybUNv
bnRlbnRUeXBlKGl0ZW0ubV9mb3JtQ29udGVudFR5cGUpCiAgICAgLCBtX3BydW5pbmdSZWFzb24o
UHJ1bmluZ1JlYXNvbjo6Tm9uZSkKICNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX29ic2N1cmVk
SW5zZXQoaXRlbS5tX29ic2N1cmVkSW5zZXQpCisgICAgLCBtX29ic2N1cmVkSW5zZXRzKGl0ZW0u
bV9vYnNjdXJlZEluc2V0cykKICAgICAsIG1fc2NhbGUoaXRlbS5tX3NjYWxlKQogICAgICwgbV9z
Y2FsZUlzSW5pdGlhbChpdGVtLm1fc2NhbGVJc0luaXRpYWwpCiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvSGlzdG9yeUl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2hp
c3RvcnkvSGlzdG9yeUl0ZW0uaAppbmRleCA3NWNmYzg1ODEyZDRjNjYxMjFhM2Q2YWE5ZWMyOGI4
Mzc5MmM2ZDY4Li40ZDFlMmNkZDc0NjEyZjQ4Y2NmMjJmNzQxY2Y5OTU0NzdjOGE1NmNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkludFBvaW50LmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgpAQCAtMTc0LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IHVub2JzY3VyZWRD
b250ZW50UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdW5vYnNjdXJlZENvbnRlbnRSZWN0OyB9CiAg
ICAgdm9pZCBzZXRVbm9ic2N1cmVkQ29udGVudFJlY3QoSW50UmVjdCB1bm9ic2N1cmVkQ29udGVu
dFJlY3QpIHsgbV91bm9ic2N1cmVkQ29udGVudFJlY3QgPSB1bm9ic2N1cmVkQ29udGVudFJlY3Q7
IH0KIAotICAgIEZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV9vYnNj
dXJlZEluc2V0OyB9Ci0gICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0KGNvbnN0IEZsb2F0U2l6ZSYg
aW5zZXQpIHsgbV9vYnNjdXJlZEluc2V0ID0gaW5zZXQ7IH0KKyAgICBjb25zdCBGbG9hdEJveEV4
dGVudCYgb2JzY3VyZWRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXRzOyB9
CisgICAgdm9pZCBzZXRPYnNjdXJlZEluc2V0cyhjb25zdCBGbG9hdEJveEV4dGVudCYgaW5zZXRz
KSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7IH0KIAogICAgIEZsb2F0U2l6ZSBtaW5pbXVt
TGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV9taW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzOyB9CiAgICAgdm9pZCBzZXRNaW5p
bXVtTGF5b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKEZsb2F0U2l6ZSBtaW5pbXVtTGF5
b3V0U2l6ZUluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKSB7IG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlcyA9IG1pbmltdW1MYXlvdXRTaXplSW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXM7IH0KQEAgLTI1Nyw3ICsyNTgsNyBAQCBwcml2YXRlOgogICAgIEludFJlY3QgbV91bm9i
c2N1cmVkQ29udGVudFJlY3Q7CiAgICAgRmxvYXRTaXplIG1fbWluaW11bUxheW91dFNpemVJblNj
cm9sbFZpZXdDb29yZGluYXRlczsKICAgICBJbnRTaXplIG1fY29udGVudFNpemU7Ci0gICAgRmxv
YXRTaXplIG1fb2JzY3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5z
ZXRzOwogICAgIGZsb2F0IG1fc2NhbGUgeyAwIH07IC8vIE5vdGUgdGhhdCBVSVdlYlZpZXcgbG9v
a3MgZm9yIGEgbm9uLXplcm8gdmFsdWUsIHNvIHRoaXMgaGFzIHRvIHN0YXJ0IGFzIDAuCiAgICAg
Ym9vbCBtX3NjYWxlSXNJbml0aWFsIHsgZmFsc2UgfTsKICAgICBWaWV3cG9ydEFyZ3VtZW50cyBt
X3ZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hp
c3RvcnlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJv
bGxlci5jcHAKaW5kZXggNzQzMTA4YjM4NzY4MTYxNjhhMzI3NDUzZmMzNjVkODJlZDhmNzRhYS4u
NDQ0N2M3N2I2ZWNiOGY1YjgwNTc4ZDlhYzFkYWJiYzMxZWE3MGE1OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OnNhdmVTY3JvbGxQb3NpdGlvbkFuZFZpZXdTdGF0ZVRvSXRlbShI
aXN0b3J5SXRlbSogaXRlbSkKICAgICBpZiAocGFnZSAmJiBtX2ZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKICAgICAgICAgaXRlbS0+c2V0UGFnZVNjYWxlRmFjdG9yKHBhZ2UtPnBhZ2VTY2FsZUZhY3Rv
cigpIC8gcGFnZS0+dmlld1NjYWxlRmFjdG9yKCkpOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICAg
ICAgaXRlbS0+c2V0T2JzY3VyZWRJbnNldChwYWdlLT5vYnNjdXJlZEluc2V0KCkpOworICAgICAg
ICBpdGVtLT5zZXRPYnNjdXJlZEluc2V0cyhwYWdlLT5vYnNjdXJlZEluc2V0cygpKTsKICNlbmRp
ZgogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBhMTQyOTg2ZmIxMTNhZWU0MTI4ZmQ4MDQyYjUy
OWI0YjUwYzAyY2U5Li40M2UwYjgwZmYwN2E1NTRhYzdkOTViMzMzZGYwYjFmNjk2OTY0ZThjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJMYXlvdXRNaWxlc3RvbmVzLmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVj
dC5oIgorI2luY2x1ZGUgIkxlbmd0aEJveC5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIK
ICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGFnaW5hdGlvbi5o
IgpAQCAtMzI5LDggKzMzMCw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dFRvcENvbnRlbnRJbnNldChmbG9hdCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgRmxvYXRT
aXplIG9ic2N1cmVkSW5zZXQoKSBjb25zdCB7IHJldHVybiBtX29ic2N1cmVkSW5zZXQ7IH0KLSAg
ICB2b2lkIHNldE9ic2N1cmVkSW5zZXQoRmxvYXRTaXplIGluc2V0KSB7IG1fb2JzY3VyZWRJbnNl
dCA9IGluc2V0OyB9CisgICAgY29uc3QgRmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzKCkg
Y29uc3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0czsgfQorICAgIHZvaWQgc2V0T2JzY3VyZWRJ
bnNldHMoRmxvYXRCb3hFeHRlbnQgaW5zZXRzKSB7IG1fb2JzY3VyZWRJbnNldHMgPSBpbnNldHM7
IH0KICAgICAKICAgICBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JWaWV3KCkgY29u
c3QgeyByZXR1cm4gbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldzsgfQogICAgIHZv
aWQgc2V0RW5jbG9zZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcoYm9vbCBmKSB7IG1fZW5jbG9z
ZWRJblNjcm9sbGFibGVBbmNlc3RvclZpZXcgPSBmOyB9CkBAIC02ODgsNyArNjg5LDcgQEAgcHJp
dmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBmb3Ig
aGlzdG9yeSBzY3JvbGwgcG9zaXRpb24gcmVzdG9yYXRpb24uCi0gICAgRmxvYXRTaXplIG1fb2Jz
Y3VyZWRJbnNldDsKKyAgICBGbG9hdEJveEV4dGVudCBtX29ic2N1cmVkSW5zZXRzOwogICAgIGJv
b2wgbV9lbmNsb3NlZEluU2Nyb2xsYWJsZUFuY2VzdG9yVmlldyB7IGZhbHNlIH07CiAjZW5kaWYK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5jcHAKaW5kZXggY2E4ZmMwYzI1ODRjMDY1
YWZkMWU4YjY0ZGU3ODgyZTE3ODY2MWMwMy4uYzg2MjE2MDM2ZWJlMzdlYjIzYjc0MDM1YWM4YmY1
MTQzZTRjMDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoQm94
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guY3BwCkBAIC0zNiw0
ICszNiwxMCBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBM
ZW5ndGhCb3gmIGJveCkKICAgICByZXR1cm4gdHM7CiB9CiAKK1RleHRTdHJlYW0mIG9wZXJhdG9y
PDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IEZsb2F0Qm94RXh0ZW50JiBib3gpCit7CisgICAgdHMg
PDwgInRvcDogIiA8PCBib3gudG9wKCkgPDwgIiByaWdodDogIiA8PCBib3gucmlnaHQoKSA8PCAi
IGJvdHRvbTogIiA8PCBib3guYm90dG9tKCkgPDwgIiBsZWZ0OiAiIDw8IGJveC5sZWZ0KCk7Cisg
ICAgcmV0dXJuIHRzOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MZW5ndGhCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0xlbmd0aEJveC5oCmluZGV4IDNlMGYyMTg0ZTY4NmQwZWRjMGNlYTM5YjM0NThlNzRmNmM2
ZWE3NTEuLjRjZjgxZTMzOTUxODE1YmMzNzE5NGQ0MmYyNmE4Zjk2Mzg3MTIyMDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0xlbmd0aEJveC5oCkBAIC0zMCw3ICszMCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIEJveEV4dGVudCB7CiBwdWJsaWM6CiAg
ICAgQm94RXh0ZW50KCkKLSAgICAgICAgOiBtX3NpZGVzKHsgeyB7IDAgfSwgeyAwIH0sIHsgMCB9
LCB7IDAgfSB9IH0pCisgICAgICAgIDogbV9zaWRlcyh7IHsgMCwgMCwgMCwgMCB9IH0pCiAgICAg
ewogICAgIH0KIApAQCAtMTU4LDUgKzE1OCw2IEBAIHVzaW5nIExheW91dEJveEV4dGVudCA9IEJv
eEV4dGVudDxMYXlvdXRVbml0PjsKIHVzaW5nIEZsb2F0Qm94RXh0ZW50ID0gQm94RXh0ZW50PGZs
b2F0PjsKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiwgY29uc3QgTGVuZ3Ro
Qm94Jik7CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mLCBjb25zdCBGbG9hdEJv
eEV4dGVudCYpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQyL1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IDE0ZGQ2OTdlOGI4YzlkYzg2MGU5NzQ4MjVjOTMw
N2QzMGFhODQ0ZjMuLjFlYzhlZjc1OWQxN2MwYjBmYWY1YTRmZGM4MDI0OTA1YzQ3OGJjNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC0yODksNiArMjg5
LDcgQEAgZGVmIGNsYXNzX3RlbXBsYXRlX2hlYWRlcnModGVtcGxhdGVfc3RyaW5nKToKICAgICB0
ZW1wbGF0ZV9zdHJpbmcgPSB0ZW1wbGF0ZV9zdHJpbmcuc3RyaXAoKQogCiAgICAgY2xhc3NfdGVt
cGxhdGVfdHlwZXMgPSB7CisgICAgICAgICdXZWJDb3JlOjpCb3hFeHRlbnQnOiB7J2hlYWRlcnMn
OiBbJzxXZWJDb3JlL0xlbmd0aEJveC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsn
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIiddfSwKICAgICAgICAgJ0hhc2hNYXAnOiB7J2hlYWRl
cnMnOiBbJzx3dGYvSGFzaE1hcC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFy
Z3VtZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnc3RkOjpvcHRpb25hbCc6IHsnaGVhZGVycyc6
IFsnPHd0Zi9PcHRpb25hbC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3Vt
ZW50Q29kZXJzLmgiJ119LAogICAgICAgICAnT3B0aW9uU2V0JzogeydoZWFkZXJzJzogWyc8d3Rm
L09wdGlvblNldC5oPiddLCAnYXJndW1lbnRfY29kZXJfaGVhZGVycyc6IFsnIkFyZ3VtZW50Q29k
ZXJzLmgiJ119LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8uY3BwCmluZGV4IDI3N2FlYWQ3NzczZmM5YjAwY2ZjZWI3Mzg4OTQ0
NTQyM2VjZWRkMDYuLmVkY2Y2MGU3YTZjMmFlMDFkOGQ3MGFiMWU5MWJjNGRmMzlkNzZlNWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBk
YXRlSW5mby5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJWaXNpYmxlQ29udGVudFJl
Y3RVcGRhdGVJbmZvLmgiCiAKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dFN0cmVh
bS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTM5LDcgKzQwLDcgQEAgdm9pZCBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogICAgIGVuY29kZXIgPDwgbV91bm9ic2N1cmVkQ29udGVudFJlY3Q7CiAgICAgZW5j
b2RlciA8PCBtX3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7CiAgICAgZW5j
b2RlciA8PCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OwotICAgIGVuY29kZXIgPDwgbV9vYnNj
dXJlZEluc2V0OworICAgIGVuY29kZXIgPDwgbV9vYnNjdXJlZEluc2V0czsKICAgICBlbmNvZGVy
IDw8IG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQ7CiAgICAgZW5jb2RlciA8PCBtX3NjYWxl
OwogICAgIGVuY29kZXIgPDwgbV90aW1lc3RhbXA7CkBAIC02Myw3ICs2NCw3IEBAIGJvb2wgVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbzo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2Rlciwg
VmlzaWJsZUNvbnRlbnRSCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHJlc3VsdC5tX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0KSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fb2JzY3VyZWRJbnNldCkp
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9vYnNjdXJlZEluc2V0cykpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2xhc3RM
YXllclRyZWVUcmFuc2FjdGlvbklEKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTExLDcg
KzExMiw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFZp
c2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGluZm8pCiAgICAgdHMuZHVtcFByb3BlcnR5KCJ1
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzIiwgaW5mby51bm9ic2N1cmVkUmVj
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKCkpOwogICAgIHRzLmR1bXBQcm9wZXJ0eSgidW5vYnNj
dXJlZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcyIsIGluZm8udW5vYnNjdXJl
ZENvbnRlbnRSZWN0UmVzcGVjdGluZ0lucHV0Vmlld0JvdW5kcygpKTsKICAgICB0cy5kdW1wUHJv
cGVydHkoImN1c3RvbUZpeGVkUG9zaXRpb25SZWN0IiwgaW5mby5jdXN0b21GaXhlZFBvc2l0aW9u
UmVjdCgpKTsKLSAgICB0cy5kdW1wUHJvcGVydHkoIm9ic2N1cmVkSW5zZXQiLCBpbmZvLm9ic2N1
cmVkSW5zZXQoKSk7CisgICAgdHMuZHVtcFByb3BlcnR5KCJvYnNjdXJlZEluc2V0cyIsIGluZm8u
b2JzY3VyZWRJbnNldHMoKSk7CiAKICAgICB0cy5kdW1wUHJvcGVydHkoInNjYWxlIiwgaW5mby5z
Y2FsZSgpKTsKICAgICB0cy5kdW1wUHJvcGVydHkoImluU3RhYmxlU3RhdGUiLCBpbmZvLmluU3Rh
YmxlU3RhdGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1Zpc2libGVDb250
ZW50UmVjdFVwZGF0ZUluZm8uaAppbmRleCA4ZWExNTM1OGQ5MjMxNzZlYzAwYjBmOGM3NGRhZmRi
ZmU0Y2JiYWYyLi5hN2E0OGQ4ZTk0ZGUzNTJiYWFhN2JlMjMyYTM5ODJkNmEwYTZlMDVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5m
by5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaXNpYmxlQ29udGVudFJlY3RVcGRhdGVJ
bmZvLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUg
PHd0Zi9Nb25vdG9uaWNUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTQ2LDE0ICs0NywxNCBAQCBwdWJsaWM6CiAKICAgICBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgZXhwb3NlZENvbnRlbnRSZWN0LCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdCwKICAgICAgICAgY29u
c3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB1bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5h
dGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3Bl
Y3RpbmdJbnB1dFZpZXdCb3VuZHMsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgY3VzdG9tRml4
ZWRQb3NpdGlvblJlY3QsCi0gICAgICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3Vy
ZWRJbnNldCwgZG91YmxlIHNjYWxlLCBib29sIGluU3RhYmxlU3RhdGUsIGJvb2wgaXNGaXJzdFVw
ZGF0ZUZvck5ld1ZpZXdTaXplLCBib29sIGlzQ2hhbmdpbmdPYnNjdXJlZEluc2V0c0ludGVyYWN0
aXZlbHksIGJvb2wgYWxsb3dTaHJpbmtUb0ZpdCwgYm9vbCBlbmNsb3NlZEluU2Nyb2xsYWJsZUFu
Y2VzdG9yVmlldywKKyAgICAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1
cmVkSW5zZXRzLCBkb3VibGUgc2NhbGUsIGJvb2wgaW5TdGFibGVTdGF0ZSwgYm9vbCBpc0ZpcnN0
VXBkYXRlRm9yTmV3Vmlld1NpemUsIGJvb2wgaXNDaGFuZ2luZ09ic2N1cmVkSW5zZXRzSW50ZXJh
Y3RpdmVseSwgYm9vbCBhbGxvd1Nocmlua1RvRml0LCBib29sIGVuY2xvc2VkSW5TY3JvbGxhYmxl
QW5jZXN0b3JWaWV3LAogICAgICAgICBNb25vdG9uaWNUaW1lIHRpbWVzdGFtcCwgZG91YmxlIGhv
cml6b250YWxWZWxvY2l0eSwgZG91YmxlIHZlcnRpY2FsVmVsb2NpdHksIGRvdWJsZSBzY2FsZUNo
YW5nZVJhdGUsIHVpbnQ2NF90IGxhc3RMYXllclRyZWVUcmFuc2FjdGlvbklkKQogICAgICAgICA6
IG1fZXhwb3NlZENvbnRlbnRSZWN0KGV4cG9zZWRDb250ZW50UmVjdCkKICAgICAgICAgLCBtX3Vu
b2JzY3VyZWRDb250ZW50UmVjdCh1bm9ic2N1cmVkQ29udGVudFJlY3QpCiAgICAgICAgICwgbV91
bm9ic2N1cmVkUmVjdEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKHVub2JzY3VyZWRSZWN0SW5TY3Jv
bGxWaWV3Q29vcmRpbmF0ZXMpCiAgICAgICAgICwgbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNw
ZWN0aW5nSW5wdXRWaWV3Qm91bmRzKHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1
dFZpZXdCb3VuZHMpCiAgICAgICAgICwgbV9jdXN0b21GaXhlZFBvc2l0aW9uUmVjdChjdXN0b21G
aXhlZFBvc2l0aW9uUmVjdCkKLSAgICAgICAgLCBtX29ic2N1cmVkSW5zZXQob2JzY3VyZWRJbnNl
dCkKKyAgICAgICAgLCBtX29ic2N1cmVkSW5zZXRzKG9ic2N1cmVkSW5zZXRzKQogICAgICAgICAs
IG1fbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSUQobGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQp
CiAgICAgICAgICwgbV9zY2FsZShzY2FsZSkKICAgICAgICAgLCBtX3RpbWVzdGFtcCh0aW1lc3Rh
bXApCkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVy
biBtX3Vub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmIHVub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZp
ZXdCb3VuZHMoKSBjb25zdCB7IHJldHVybiBtX3Vub2JzY3VyZWRDb250ZW50UmVjdFJlc3BlY3Rp
bmdJbnB1dFZpZXdCb3VuZHM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGN1c3Rv
bUZpeGVkUG9zaXRpb25SZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21GaXhlZFBvc2l0aW9u
UmVjdDsgfQotICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSBvYnNjdXJlZEluc2V0KCkgY29u
c3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0OyB9CisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRC
b3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzKCkgY29uc3QgeyByZXR1cm4gbV9vYnNjdXJlZEluc2V0
czsgfQogCiAgICAgZG91YmxlIHNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY2FsZTsgfQogICAg
IGJvb2wgaW5TdGFibGVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5TdGFibGVTdGF0ZTsgfQpA
QCAtMTAwLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fdW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczsKICAgICBXZWJDb3JlOjpGbG9hdFJl
Y3QgbV91bm9ic2N1cmVkQ29udGVudFJlY3RSZXNwZWN0aW5nSW5wdXRWaWV3Qm91bmRzOwogICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBtX2N1c3RvbUZpeGVkUG9zaXRpb25SZWN0OyAvLyBXaGVuIHZp
c3VhbCB2aWV3cG9ydHMgYXJlIGVuYWJsZWQsIHRoaXMgaXMgdGhlIGxheW91dCB2aWV3cG9ydC4K
LSAgICBXZWJDb3JlOjpGbG9hdFNpemUgbV9vYnNjdXJlZEluc2V0OworICAgIFdlYkNvcmU6OkZs
b2F0Qm94RXh0ZW50IG1fb2JzY3VyZWRJbnNldHM7CiAgICAgdWludDY0X3QgbV9sYXN0TGF5ZXJU
cmVlVHJhbnNhY3Rpb25JRCB7IDAgfTsKICAgICBkb3VibGUgbV9zY2FsZSB7IC0xIH07CiAgICAg
TW9ub3RvbmljVGltZSBtX3RpbWVzdGFtcDsKQEAgLTEyMSw3ICsxMjIsNyBAQCBpbmxpbmUgYm9v
bCBvcGVyYXRvcj09KGNvbnN0IFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8mIGEsIGNvbnN0
IFZpc2libGVDb250ZQogICAgICAgICAmJiBhLmV4cG9zZWRDb250ZW50UmVjdCgpID09IGIuZXhw
b3NlZENvbnRlbnRSZWN0KCkKICAgICAgICAgJiYgYS51bm9ic2N1cmVkQ29udGVudFJlY3QoKSA9
PSBiLnVub2JzY3VyZWRDb250ZW50UmVjdCgpCiAgICAgICAgICYmIGEuY3VzdG9tRml4ZWRQb3Np
dGlvblJlY3QoKSA9PSBiLmN1c3RvbUZpeGVkUG9zaXRpb25SZWN0KCkKLSAgICAgICAgJiYgYS5v
YnNjdXJlZEluc2V0KCkgPT0gYi5vYnNjdXJlZEluc2V0KCkKKyAgICAgICAgJiYgYS5vYnNjdXJl
ZEluc2V0cygpID09IGIub2JzY3VyZWRJbnNldHMoKQogICAgICAgICAmJiBhLmhvcml6b250YWxW
ZWxvY2l0eSgpID09IGIuaG9yaXpvbnRhbFZlbG9jaXR5KCkKICAgICAgICAgJiYgYS52ZXJ0aWNh
bFZlbG9jaXR5KCkgPT0gYi52ZXJ0aWNhbFZlbG9jaXR5KCkKICAgICAgICAgJiYgYS5zY2FsZUNo
YW5nZVJhdGUoKSA9PSBiLnNjYWxlQ2hhbmdlUmF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGI4NDEzMWNkMjdiYzg4ZTA1M2Q2
MWU1OTcwMzRkODY3NDNjYjU5YzAuLjU4YWFlYzMxZmUzYzVjNDM4MDkyNmY5OGNhM2YzNGU2OGRm
NjA3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC00OCw2ICs0OCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9JbWFnZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSlNET01FeGNlcHRpb25IYW5kbGluZy5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvTGVuZ3RoLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9MZW5ndGhCb3guaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1BhdGguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGEuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Byb3RlY3Rpb25TcGFjZS5oPgpAQCAtMzg5LDYgKzM5MCwxNyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8RmxvYXRSZWN0Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIEZsb2F0UmVj
dCYgZmxvYXRSZWN0KQogfQogCiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBGbG9hdEJveEV4dGVudCYgZmxvYXRCb3hF
eHRlbnQpCit7CisgICAgU2ltcGxlQXJndW1lbnRDb2RlcjxGbG9hdEJveEV4dGVudD46OmVuY29k
ZShlbmNvZGVyLCBmbG9hdEJveEV4dGVudCk7Cit9CisgICAgCitib29sIEFyZ3VtZW50Q29kZXI8
RmxvYXRCb3hFeHRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgRmxvYXRCb3hFeHRlbnQm
IGZsb2F0Qm94RXh0ZW50KQoreworICAgIHJldHVybiBTaW1wbGVBcmd1bWVudENvZGVyPEZsb2F0
Qm94RXh0ZW50Pjo6ZGVjb2RlKGRlY29kZXIsIGZsb2F0Qm94RXh0ZW50KTsKK30KKyAgICAKKwog
dm9pZCBBcmd1bWVudENvZGVyPEZsb2F0U2l6ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBGbG9hdFNpemUmIGZsb2F0U2l6ZSkKIHsKICAgICBTaW1wbGVBcmd1bWVudENvZGVyPEZs
b2F0U2l6ZT46OmVuY29kZShlbmNvZGVyLCBmbG9hdFNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IGVmYjdiMTczODk1YmFiYTEyNjM1
MjZlNmZlNDM4MWU0NjY4MjdhOTAuLjRkODNiMjI0Y2ZhYWEzZjA0YzUwMzc4YzEzMTAxOTQxNTEz
MDk3ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0
IFRleHRJbmRpY2F0b3JEYXRhOwogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBX
aW5kb3dGZWF0dXJlczsKKyAgICAKK3RlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgQm94RXh0ZW50
OwordXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBCb3hFeHRlbnQ8ZmxvYXQ+OwogfQogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCkBAIC0yMjQsNiArMjI3LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3Vt
ZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRSZWN0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVu
Y29kZXImLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNv
ZGUoRGVjb2RlciYsIFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogfTsKKyAgICAKK3RlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQ+IHsKKyAgICBzdGF0
aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik7
CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpGbG9hdEJveEV4dGVu
dCYpOworfTsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9h
dFNpemU+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0U2l6ZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQppbmRleCBmOWUxYjM2ODZjMzFjZGNjMmE2OWFmODAzNGFlZThiYzkzNTJkYTE5
Li4zMGVmODg0MWUzMTQ2NTQyZmZkOTk1MDFhOWRhYWI3ZjNkMDk5ZTFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMjU4LDcgKzI1
OCw3IEBAIFdLV2ViVmlldyogZnJvbVdlYlBhZ2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYg
cGFnZSkKIAogICAgIEJPT0wgX2NvbW1pdERpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbjsKICAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IF9zY3JvbGxPZmZzZXRUb1Jlc3RvcmU7
Ci0gICAgV2ViQ29yZTo6RmxvYXRTaXplIF9vYnNjdXJlZEluc2V0V2hlblNhdmVkOworICAgIFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50IF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZDsKIAogICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gX3Vub2JzY3VyZWRDZW50ZXJUb1Jlc3Rv
cmU7CiAgICAgdWludDY0X3QgX2ZpcnN0VHJhbnNhY3Rpb25JREFmdGVyUGFnZVJlc3RvcmU7CkBA
IC0xNTA0LDcgKzE1MDQsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYXJlRXNzZW50aWFsbHlFcXVh
bEFzRmxvYXQoZmxvYXQgYSwgZmxvYXQgYikKIAogICAgICAgICAgICAgaWYgKGFyZUVzc2VudGlh
bGx5RXF1YWxBc0Zsb2F0KGNvbnRlbnRab29tU2NhbGUoc2VsZiksIF9zY2FsZVRvUmVzdG9yZSkp
IHsKICAgICAgICAgICAgICAgICBzY2FsZWRTY3JvbGxPZmZzZXQuc2NhbGUoX3NjYWxlVG9SZXN0
b3JlKTsKLSAgICAgICAgICAgICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmZzZXRJ
blNjcm9sbFZpZXdDb29yZGluYXRlcyA9IHNjYWxlZFNjcm9sbE9mZnNldCAtIF9vYnNjdXJlZElu
c2V0V2hlblNhdmVkOworICAgICAgICAgICAgICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVu
dE9mZnNldEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzID0gc2NhbGVkU2Nyb2xsT2Zmc2V0IC0gV2Vi
Q29yZTo6RmxvYXRTaXplKF9vYnNjdXJlZEluc2V0c1doZW5TYXZlZC5sZWZ0KCksIF9vYnNjdXJl
ZEluc2V0c1doZW5TYXZlZC50b3AoKSk7CiAKICAgICAgICAgICAgICAgICBjaGFuZ2VDb250ZW50
T2Zmc2V0Qm91bmRlZEluVmFsaWRSYW5nZShfc2Nyb2xsVmlldy5nZXQoKSwgY29udGVudE9mZnNl
dEluU2Nyb2xsVmlld0Nvb3JkaW5hdGVzKTsKICAgICAgICAgICAgICAgICBfY29tbWl0RGlkUmVz
dG9yZVNjcm9sbFBvc2l0aW9uID0gWUVTOwpAQCAtMTU3Miw3ICsxNTcyLDcgQEAgc3RhdGljIGlu
bGluZSBib29sIGFyZUVzc2VudGlhbGx5RXF1YWxBc0Zsb2F0KGZsb2F0IGEsIGZsb2F0IGIpCiAg
ICAgICAgIF9nZXN0dXJlQ29udHJvbGxlci0+ZGlkUmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiB9
CiAKLS0gKHZvaWQpX3Jlc3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246KHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6RmxvYXRQb2ludD4pc2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpG
bG9hdFBvaW50KXNjcm9sbE9yaWdpbiBwcmV2aW91c09ic2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZs
b2F0U2l6ZSlvYnNjdXJlZEluc2V0IHNjYWxlOihkb3VibGUpc2NhbGUKKy0gKHZvaWQpX3Jlc3Rv
cmVQYWdlU2Nyb2xsUG9zaXRpb246KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4p
c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOihXZWJDb3JlOjpGbG9hdFBvaW50KXNjcm9sbE9y
aWdpbiBwcmV2aW91c09ic2N1cmVkSW5zZXQ6KFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KW9ic2N1
cmVkSW5zZXRzIHNjYWxlOihkb3VibGUpc2NhbGUKIHsKICAgICBpZiAoX2R5bmFtaWNWaWV3cG9y
dFVwZGF0ZU1vZGUgIT0gRHluYW1pY1ZpZXdwb3J0VXBkYXRlTW9kZTo6Tm90UmVzaXppbmcpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE1ODYsNyArMTU4Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBh
cmVFc3NlbnRpYWxseUVxdWFsQXNGbG9hdChmbG9hdCBhLCBmbG9hdCBiKQogICAgIGVsc2UKICAg
ICAgICAgX3Njcm9sbE9mZnNldFRvUmVzdG9yZSA9IHN0ZDo6bnVsbG9wdDsKIAotICAgIF9vYnNj
dXJlZEluc2V0V2hlblNhdmVkID0gb2JzY3VyZWRJbnNldDsKKyAgICBfb2JzY3VyZWRJbnNldHNX
aGVuU2F2ZWQgPSBvYnNjdXJlZEluc2V0czsKICAgICBfc2NhbGVUb1Jlc3RvcmUgPSBzY2FsZTsK
IH0KIApAQCAtMjQwMyw3ICsyNDAzLDcgQEAgc3RhdGljIGJvb2wgc2Nyb2xsVmlld0NhblNjcm9s
bChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcpCiAgICAgW19jb250ZW50VmlldyBkaWRVcGRhdGVW
aXNpYmxlUmVjdDp2aXNpYmxlUmVjdEluQ29udGVudENvb3JkaW5hdGVzCiAgICAgICAgIHVub2Jz
Y3VyZWRSZWN0OnVub2JzY3VyZWRSZWN0SW5Db250ZW50Q29vcmRpbmF0ZXMKICAgICAgICAgdW5v
YnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczp1bm9ic2N1cmVkUmVjdAotICAgICAg
ICBvYnNjdXJlZEluc2V0OkNHU2l6ZU1ha2UoX29ic2N1cmVkSW5zZXRzLmxlZnQsIF9vYnNjdXJl
ZEluc2V0cy50b3ApCisgICAgICAgIG9ic2N1cmVkSW5zZXRzOl9vYnNjdXJlZEluc2V0cwogICAg
ICAgICBpbnB1dFZpZXdCb3VuZHM6X2lucHV0Vmlld0JvdW5kcwogICAgICAgICBzY2FsZTpzY2Fs
ZUZhY3RvciBtaW5pbXVtU2NhbGU6W19zY3JvbGxWaWV3IG1pbmltdW1ab29tU2NhbGVdCiAgICAg
ICAgIGluU3RhYmxlU3RhdGU6aW5TdGFibGVTdGF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDc3OGQ0ZjZm
YzYyZWJiOTg3YTg5MGU3YzY4YzY5NmFlZmQ5MjcyMGQuLmIwMTU4YzFlYWM0YmNjNjBkMzY2ZDRj
OTQ2M2JmNmQyYzczYWYxZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBv
cnQgIldLQ29udGVudFZpZXcuaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
IgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTGVuZ3Ro
Qm94Lmg+CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTgxLDcgKzgyLDcgQEAgc3Ry
dWN0IFByaW50SW5mbzsKIAogLSAodm9pZClfZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRh
cmdldFRvU2NhbGU6KGRvdWJsZSluZXdTY2FsZSBwb3NpdGlvbjooQ0dQb2ludCluZXdTY3JvbGxQ
b3NpdGlvbiBuZXh0VmFsaWRMYXllclRyZWVUcmFuc2FjdGlvbklEOih1aW50NjRfdCluZXh0VmFs
aWRMYXllclRyZWVUcmFuc2FjdGlvbklEOwogLSAodm9pZClfY291bGROb3RSZXN0b3JlUGFnZVN0
YXRlOwotLSAodm9pZClfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjooc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGbG9hdFBvaW50PilzY3JvbGxQb3NpdGlvbiBzY3JvbGxPcmlnaW46KFdlYkNvcmU6
OkZsb2F0UG9pbnQpc2Nyb2xsT3JpZ2luIHByZXZpb3VzT2JzY3VyZWRJbnNldDooV2ViQ29yZTo6
RmxvYXRTaXplKXRvcEluc2V0IHNjYWxlOihkb3VibGUpc2NhbGU7CistICh2b2lkKV9yZXN0b3Jl
UGFnZVNjcm9sbFBvc2l0aW9uOihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+KXNj
cm9sbFBvc2l0aW9uIHNjcm9sbE9yaWdpbjooV2ViQ29yZTo6RmxvYXRQb2ludClzY3JvbGxPcmln
aW4gcHJldmlvdXNPYnNjdXJlZEluc2V0OihXZWJDb3JlOjpGbG9hdEJveEV4dGVudClpbnNldHMg
c2NhbGU6KGRvdWJsZSlzY2FsZTsKIC0gKHZvaWQpX3Jlc3RvcmVQYWdlU3RhdGVUb1Vub2JzY3Vy
ZWRDZW50ZXI6KHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4pY2VudGVyIHNjYWxl
Oihkb3VibGUpc2NhbGU7IC8vIEZJWE1FOiBuZWVkcyBzY3JvbGwgb3JpZ2luPwogCiAtIChQYXNz
UmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hvdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IDBkZGZkNDYyMzU0NDU0ODYzMDJjMjgxNWY1
NWU4MzEwZmZkMDc5NmYuLjdlMTcxM2RiZjQ4MmYwODI1OTFmOWNiMGVkMDU1MzE4NzcyMTY1ZjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMjk2LDcgKzI5Niw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBkeW5hbWljVmlld3BvcnRVcGRhdGVDaGFuZ2Vk
VGFyZ2V0KGRvdWJsZSBuZXdTY2FsZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbmV3U2Ny
b2xsUG9zaXRpb24sIHVpbnQ2NF90IHRyYW5zYWN0aW9uSUQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgY291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCByZXN0
b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9z
aXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRTaXplJiBvYnNjdXJlZEluc2V0T25TYXZlLCBkb3VibGUgc2NhbGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBz
Y3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0
c09uU2F2ZSwgZG91YmxlIHNjYWxlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVQYWdl
Q2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBjZW50ZXIs
IGRvdWJsZSBzY2FsZSkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0QXNzaXN0aW5nTm9k
ZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3Rpbmcs
IGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGM4ODMzNTgyMTU0MmQ2
MTQ0N2EyYjEyNmFmYzIxNzM5OTdiOGNkMzguLjRjYzdhZWNjNWY0NDU2NjNmNWMxMjVhZmNiMDQ3
ZjQwYjBiODMzMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CkBAIC0xMjEsNiArMTIxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pT
RE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UHVibGljU3VmZml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDI3Y2RmZmRjNDFj
MGExMWM1MzYxNjhlNzFjNTQ1NDEzNzE4NmQ0MTQuLjZkMWM0NGUwN2JiZGIwYjJjYmFjOTJiZThh
M2Y4NGVmMzUzNjc3OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTE3MCw2ICsxNzAsOSBAQCBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIGVudW0gY2xhc3Mg
SGFzSW5zZWN1cmVDb250ZW50OwogZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7CisKK3RlbXBsYXRl
IDx0eXBlbmFtZT4gY2xhc3MgQm94RXh0ZW50OwordXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBCb3hF
eHRlbnQ8ZmxvYXQ+OwogfQogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTUyMSw3ICsxNTI0LDcg
QEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZHluYW1pY1ZpZXdwb3J0VXBkYXRlQ2hhbmdlZFRhcmdl
dChkb3VibGUgbmV3VGFyZ2V0U2NhbGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Nj
cm9sbFBvc2l0aW9uLCB1aW50NjRfdCBkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQpOwogICAg
IHZvaWQgY291bGROb3RSZXN0b3JlUGFnZVN0YXRlKCk7Ci0gICAgdm9pZCByZXN0b3JlUGFnZVN0
YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBvYnNjdXJlZEluc2V0T25TYXZlLCBkb3VibGUgc2NhbGUpOworICAgIHZvaWQgcmVz
dG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBv
c2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdl
YkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBvYnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxl
KTsKICAgICB2b2lkIHJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpGbG9hdFBvaW50PiwgZG91YmxlIHNjYWxlKTsKIAogICAgIHZvaWQgZGlkR2V0VGFwSGln
aGxpZ2h0R2VvbWV0cmllcyh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9y
JiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21ldHJpZXMsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFk
aXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1cyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4
NDVkNDMwOTRlMTAwYmQwYjEwMmIxYzcyMDM1ODg1NWIwYmZlMzJiLi42MTFlNDFiMjkzZjljODFi
YzRlMjg4NmI2OTBkZGY0Yzc2ZTdhNDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTM3OCw3ICszNzgsNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogI2lmIFBMQVRGT1JNKElPUykKICAgICBEeW5hbWljVmlld3Bv
cnRVcGRhdGVDaGFuZ2VkVGFyZ2V0KGRvdWJsZSBuZXdUYXJnZXRTY2FsZSwgV2ViQ29yZTo6Rmxv
YXRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QgZHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEKQogICAgIENvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCi0gICAgUmVzdG9yZVBhZ2VT
dGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IHNjcm9sbE9yaWdpbiwgV2ViQ29yZTo6RmxvYXRTaXplIG9ic2N1
cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkKKyAgICBSZXN0b3JlUGFnZVN0YXRlKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OkZs
b2F0UG9pbnQgc2Nyb2xsT3JpZ2luLCBXZWJDb3JlOjpCb3hFeHRlbnQ8ZmxvYXQ+IG9ic2N1cmVk
SW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpCiAgICAgUmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2Fs
ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHVub2JzY3VyZWRDZW50ZXIsIGRv
dWJsZSBzY2FsZSkKICAgICBEaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJl
cXVlc3RJRCwgV2ViQ29yZTo6Q29sb3IgY29sb3IsIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+
IGdlb21ldHJpZXMsIFdlYkNvcmU6OkludFNpemUgdG9wTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50
U2l6ZSB0b3BSaWdodFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21MZWZ0UmFkaXVzLCBX
ZWJDb3JlOjpJbnRTaXplIGJvdHRvbVJpZ2h0UmFkaXVzKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKaW5kZXggNjkxNDI2ZGRmNmNmNmIy
Njk0MTg3MzNiOTBmMDAxZjdiNDQzNTVjYS4uYTZkNmJjMDUwYzI1NzkwZjc1OGM4ZDQzY2NlYTY5
Y2RkYTExNDEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaApAQCAtMTIyLDcgKzEyMiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGR5
bmFtaWNWaWV3cG9ydFVwZGF0ZUNoYW5nZWRUYXJnZXQoZG91YmxlIG5ld1NjYWxlLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3NpdGlvbiwgdWludDY0X3QgdHJhbnNhY3Rp
b25JRCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpG
bG9hdFBvaW50PiwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkZs
b2F0U2l6ZSYsIGRvdWJsZSkgb3ZlcnJpZGU7CisgICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9p
bnQmLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYsIGRvdWJsZSkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCByZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRQb2ludD4sIGRvdWJsZSkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHN0YXJ0QXNzaXN0aW5n
Tm9kZShjb25zdCBBc3Npc3RlZE5vZGVJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3Rp
bmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
Lm1tCmluZGV4IGQ4ZDViYjA5MzEzNTQxMDVhZTExMjlkYTNlNDVlODg1NDE0NDMyNjAuLjQ2NDZj
NGFhZDM2ZDUzODI0MzlkNzU1MzNlZWUxNGYzY2JjMGQyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQpAQCAtNTM0LDkgKzUzNCw5
IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNvdWxkTm90UmVzdG9yZVBhZ2VTdGF0ZSgpCiAgICAg
W21fd2ViVmlldyBfY291bGROb3RSZXN0b3JlUGFnZVN0YXRlXTsKIH0KIAotdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9p
bnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxPcmln
aW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgb2JzY3VyZWRJbnNldE9uU2F2ZSwgZG91Ymxl
IHNjYWxlKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVzdG9yZVBhZ2VTdGF0ZShzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+IHNjcm9sbFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBzY3JvbGxPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50JiBv
YnNjdXJlZEluc2V0c09uU2F2ZSwgZG91YmxlIHNjYWxlKQogewotICAgIFttX3dlYlZpZXcgX3Jl
c3RvcmVQYWdlU2Nyb2xsUG9zaXRpb246c2Nyb2xsUG9zaXRpb24gc2Nyb2xsT3JpZ2luOnNjcm9s
bE9yaWdpbiBwcmV2aW91c09ic2N1cmVkSW5zZXQ6b2JzY3VyZWRJbnNldE9uU2F2ZSBzY2FsZTpz
Y2FsZV07CisgICAgW21fd2ViVmlldyBfcmVzdG9yZVBhZ2VTY3JvbGxQb3NpdGlvbjpzY3JvbGxQ
b3NpdGlvbiBzY3JvbGxPcmlnaW46c2Nyb2xsT3JpZ2luIHByZXZpb3VzT2JzY3VyZWRJbnNldDpv
YnNjdXJlZEluc2V0c09uU2F2ZSBzY2FsZTpzY2FsZV07CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFBvaW50PiBjZW50ZXIsIGRvdWJsZSBzY2FsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3LmgKaW5kZXggZWM4MmY3YjE5MzY0ZmNkYThhOTE0NGE2MWEyY2Ni
ZTkyOGUxMDI4OC4uODQyZmNmMzkzMmUyMjg0M2I5NGY0ODk1ZDgyYjU1MWM0MzU5MDI1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgKQEAgLTcwLDcg
KzcwLDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAtICh2b2lkKWRpZFVwZGF0ZVZpc2libGVS
ZWN0OihDR1JlY3QpdmlzaWJsZVJlY3QKICAgICB1bm9ic2N1cmVkUmVjdDooQ0dSZWN0KXVub2Jz
Y3VyZWRSZWN0CiAgICAgdW5vYnNjdXJlZFJlY3RJblNjcm9sbFZpZXdDb29yZGluYXRlczooQ0dS
ZWN0KXVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMKLSAgICBvYnNjdXJlZElu
c2V0OihDR1NpemUpdG9wSW5zZXQKKyAgICBvYnNjdXJlZEluc2V0czooVUlFZGdlSW5zZXRzKW9i
c2N1cmVkSW5zZXRzCiAgICAgaW5wdXRWaWV3Qm91bmRzOihDR1JlY3QpaW5wdXRWaWV3Qm91bmRz
CiAgICAgc2NhbGU6KENHRmxvYXQpc2NhbGUgbWluaW11bVNjYWxlOihDR0Zsb2F0KW1pbmltdW1T
Y2FsZQogICAgIGluU3RhYmxlU3RhdGU6KEJPT0wpaXNTdGFibGVTdGF0ZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tCmluZGV4IDc1ZjcxOGJkZjlkYjc5
NTFlZDE4NjIyOGYwOTVhOWM4ZTFhODI5MzYuLmRmNWZkMTIyMGEwZmRiMzY3NjM3MzIzOTU4MTc1
NWQxYmNiOTA3MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXcubW0KQEAgLTM4NSw3ICszODUsNyBAQCBwcml2YXRlOgogLSAodm9pZClkaWRVcGRhdGVW
aXNpYmxlUmVjdDooQ0dSZWN0KXZpc2libGVDb250ZW50UmVjdAogICAgIHVub2JzY3VyZWRSZWN0
OihDR1JlY3QpdW5vYnNjdXJlZENvbnRlbnRSZWN0CiAgICAgdW5vYnNjdXJlZFJlY3RJblNjcm9s
bFZpZXdDb29yZGluYXRlczooQ0dSZWN0KXVub2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRp
bmF0ZXMKLSAgICBvYnNjdXJlZEluc2V0OihDR1NpemUpb2JzY3VyZWRJbnNldAorICAgIG9ic2N1
cmVkSW5zZXRzOihVSUVkZ2VJbnNldHMpb2JzY3VyZWRJbnNldHMKICAgICBpbnB1dFZpZXdCb3Vu
ZHM6KENHUmVjdClpbnB1dFZpZXdCb3VuZHMKICAgICBzY2FsZTooQ0dGbG9hdCl6b29tU2NhbGUg
bWluaW11bVNjYWxlOihDR0Zsb2F0KW1pbmltdW1TY2FsZQogICAgIGluU3RhYmxlU3RhdGU6KEJP
T0wpaXNTdGFibGVTdGF0ZQpAQCAtNDE0LDcgKzQxNCw3IEBAIHByaXZhdGU6CiAgICAgICAgIHVu
b2JzY3VyZWRSZWN0SW5TY3JvbGxWaWV3Q29vcmRpbmF0ZXMsCiAgICAgICAgIHVub2JzY3VyZWRD
b250ZW50UmVjdFJlc3BlY3RpbmdJbnB1dFZpZXdCb3VuZHMsCiAgICAgICAgIGZpeGVkUG9zaXRp
b25SZWN0Rm9yTGF5b3V0LAotICAgICAgICBXZWJDb3JlOjpGbG9hdFNpemUob2JzY3VyZWRJbnNl
dCksCisgICAgICAgIFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50KG9ic2N1cmVkSW5zZXRzLnRvcCwg
b2JzY3VyZWRJbnNldHMucmlnaHQsIG9ic2N1cmVkSW5zZXRzLmJvdHRvbSwgb2JzY3VyZWRJbnNl
dHMubGVmdCksCiAgICAgICAgIHpvb21TY2FsZSwKICAgICAgICAgaXNTdGFibGVTdGF0ZSwKICAg
ICAgICAgX3NpemVDaGFuZ2VkU2luY2VMYXN0VmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCA3
OWIxZGM5NGY0MzFmOGRlNjQzNzVhN2YzNDJlZDQxYjVlZTM3YjlkLi4zYzAyZjg2NmMyOWNhYzhh
NGYyMzg5ZDhmMWIwMjUyNWUyYTdjM2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtOTA2LDkgKzkwNiw5IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpjb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKQogICAgIG1fcGFnZUNsaWVudC5jb3Vs
ZE5vdFJlc3RvcmVQYWdlU3RhdGUoKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnJlc3RvcmVQ
YWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlv
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsT3JpZ2luLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFNpemUmIG9ic2N1cmVkSW5zZXRPblNhdmUsIGRvdWJsZSBzY2FsZSkKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpyZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQ
b2ludD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9y
aWdpbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzT25TYXZl
LCBkb3VibGUgc2NhbGUpCiB7Ci0gICAgbV9wYWdlQ2xpZW50LnJlc3RvcmVQYWdlU3RhdGUoc2Ny
b2xsUG9zaXRpb24sIHNjcm9sbE9yaWdpbiwgb2JzY3VyZWRJbnNldE9uU2F2ZSwgc2NhbGUpOwor
ICAgIG1fcGFnZUNsaWVudC5yZXN0b3JlUGFnZVN0YXRlKHNjcm9sbFBvc2l0aW9uLCBzY3JvbGxP
cmlnaW4sIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBzY2FsZSk7CiB9CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjpyZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6Rmxv
YXRQb2ludD4gY2VudGVyLCBkb3VibGUgc2NhbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNGIxMzVkMDRhMzM0MjBk
MWI2YzNmNDg1MzFjY2JlNTU5YjgxN2E1Yi4uNDg2OWIwNmNmZWQ4ZjE5MDE4YmIzMTdkOWUzMjJk
NzhhOTUwMzg0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzAwLDcgKzMwMCw3IEBAIHZvaWQgV2ViUGFnZTo6cmVz
dG9yZVBhZ2VTdGF0ZShjb25zdCBIaXN0b3J5SXRlbSYgaGlzdG9yeUl0ZW0pCiAgICAgICAgICAg
ICBtX2RyYXdpbmdBcmVhLT5zZXRFeHBvc2VkQ29udGVudFJlY3QoaGlzdG9yeUl0ZW0uZXhwb3Nl
ZENvbnRlbnRSZWN0KCkpOwogICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb24gPSBGbG9hdFBvaW50
KGhpc3RvcnlJdGVtLnNjcm9sbFBvc2l0aW9uKCkpOwogICAgICAgICB9Ci0gICAgICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVzdG9yZVBhZ2VTdGF0ZShzY3JvbGxQb3NpdGlvbiwg
ZnJhbWVWaWV3LnNjcm9sbE9yaWdpbigpLCBoaXN0b3J5SXRlbS5vYnNjdXJlZEluc2V0KCksIGJv
dW5kZWRTY2FsZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlc3Rv
cmVQYWdlU3RhdGUoc2Nyb2xsUG9zaXRpb24sIGZyYW1lVmlldy5zY3JvbGxPcmlnaW4oKSwgaGlz
dG9yeUl0ZW0ub2JzY3VyZWRJbnNldHMoKSwgYm91bmRlZFNjYWxlKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgSW50U2l6ZSBvbGRDb250ZW50U2l6ZSA9IGhpc3RvcnlJdGVtLmNvbnRlbnRTaXpl
KCk7CiAgICAgICAgIEludFNpemUgbmV3Q29udGVudFNpemUgPSBmcmFtZVZpZXcuY29udGVudHNT
aXplKCk7CkBAIC0zMTk2LDcgKzMxOTYsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVZpc2libGVD
b250ZW50UmVjdHMoY29uc3QgVmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mbyYgdmlzaQogICAg
ICAgICB2aWV3cG9ydENvbmZpZ3VyYXRpb25DaGFuZ2VkKCk7CiAKICAgICBmcmFtZVZpZXcuc2V0
VW5vYnNjdXJlZENvbnRlbnRTaXplKHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8udW5vYnNj
dXJlZENvbnRlbnRSZWN0KCkuc2l6ZSgpKTsKLSAgICBtX3BhZ2UtPnNldE9ic2N1cmVkSW5zZXQo
dmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5vYnNjdXJlZEluc2V0KCkpOworICAgIG1fcGFn
ZS0+c2V0T2JzY3VyZWRJbnNldHModmlzaWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5vYnNjdXJl
ZEluc2V0cygpKTsKICAgICBtX3BhZ2UtPnNldEVuY2xvc2VkSW5TY3JvbGxhYmxlQW5jZXN0b3JW
aWV3KHZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uZW5jbG9zZWRJblNjcm9sbGFibGVBbmNl
c3RvclZpZXcoKSk7CiAKICAgICBkb3VibGUgaG9yaXpvbnRhbFZlbG9jaXR5ID0gdmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mby5ob3Jpem9udGFsVmVsb2NpdHkoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>