<?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>196722</bug_id>
          
          <creation_ts>2019-04-08 19:22:05 -0700</creation_ts>
          <short_desc>Web Inspector: save sheet should be anchored underneath the tab bar when detached</short_desc>
          <delta_ts>2019-04-10 19:05:05 -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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1525526</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-08 19:22:05 -0700</bug_when>
    <thetext># STEPS TO REPRODUCE:
1. inspect any page
2. detach Web Inspector so it&apos;s its own window
3. view the main resource of the page
4. save the resource (⌘S)
 =&gt; the save sheet appears from the top of the window, rather than underneath the tab bar (like Safari)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525527</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-08 19:22:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/49613280&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525534</commentid>
    <comment_count>2</comment_count>
      <attachid>367016</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-08 19:31:07 -0700</bug_when>
    <thetext>Created attachment 367016
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525535</commentid>
    <comment_count>3</comment_count>
      <attachid>367016</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-08 19:33:49 -0700</bug_when>
    <thetext>Comment on attachment 367016
Patch

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

&gt; Source/WebKit/UIProcess/mac/RemoteWebInspectorProxyMac.mm:57
&gt; +        return NSMakeRect(0, _inspectorProxy-&gt;sheetRect().height(), _inspectorProxy-&gt;sheetRect().width(), 0);

At first this appeared really weird to me, but after logging `rect` and reading the docs &lt;https://developer.apple.com/documentation/appkit/nswindowdelegate/1419611-window?language=objc#discussion&gt;, I think this is the right way to go.

&gt; Source/WebKit/UIProcess/mac/WebInspectorProxyMac.mm:99
&gt; +        return NSMakeRect(0, _inspectorProxy-&gt;sheetRect().height(), _inspectorProxy-&gt;sheetRect().width(), 0);

Ditto (&gt;RemoteWebInspectorProxyMac.mm:57).

&gt; Source/WebKitLegacy/mac/WebCoreSupport/WebInspectorClient.mm:519
&gt; +        return NSMakeRect(0, _frontendClient-&gt;sheetRect().height(), _frontendClient-&gt;sheetRect().width(), 0);

Ditto (&gt;RemoteWebInspectorProxyMac.mm:57).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526158</commentid>
    <comment_count>4</comment_count>
      <attachid>367016</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-04-10 15:27:44 -0700</bug_when>
    <thetext>Comment on attachment 367016
Patch

Nice! Need to fix other platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526167</commentid>
    <comment_count>5</comment_count>
      <attachid>367172</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-10 15:46:54 -0700</bug_when>
    <thetext>Created attachment 367172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526197</commentid>
    <comment_count>6</comment_count>
      <attachid>367174</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-10 16:06:37 -0700</bug_when>
    <thetext>Created attachment 367174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526239</commentid>
    <comment_count>7</comment_count>
      <attachid>367174</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-10 17:33:53 -0700</bug_when>
    <thetext>Comment on attachment 367174
Patch

Rejecting attachment 367174 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;land-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--parent-command=commit-queue&apos;, 367174, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=367174&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=196722&amp;ctype=xml&amp;excludefield=attachmentdata
Processing 1 patch from 1 bug.
Updating working directory
Processing patch 367174 from bug 196722.
Fetching: https://bugs.webkit.org/attachment.cgi?id=367174
Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	Source/WebCore/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebCore/ChangeLog&apos; is out of date
W: eaee47ecbebbd665d2d163aeb4a1aee412a6f439 and refs/remotes/origin/master differ, using rebase:
:040000 040000 de9a7a232aba666ff91782b902139acbeedf5cde 08dcb51af906ddb6cbbdae23acc12fe0e6be7517 M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	Source/WebCore/ChangeLog

ERROR from SVN:
Item is out of date: File &apos;/trunk/Source/WebCore/ChangeLog&apos; is out of date
W: eaee47ecbebbd665d2d163aeb4a1aee412a6f439 and refs/remotes/origin/master differ, using rebase:
:040000 040000 de9a7a232aba666ff91782b902139acbeedf5cde 08dcb51af906ddb6cbbdae23acc12fe0e6be7517 M	Source
Current branch master is up to date.
ERROR: Not all changes have been committed into SVN, however the committed
ones (if any) seem to be successfully integrated into the working tree.
Please see the above messages for details.


Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;, &apos;--rmdir&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit
Updating OpenSource
From https://git.webkit.org/git/WebKit
   dc732d83800..2b5c0854895  master     -&gt; origin/master
Partial-rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc ...
Currently at 244170 = dc732d83800e22179e016484bdd23a2aab31654e
r244171 = 2b5c08548956d8183b1c152486f0d297f078326d
Done rebuilding .git/svn/refs/remotes/origin/master/.rev_map.268f45cc-cd09-0410-ab3c-d52691b4dbfc
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/origin/master.

Full output: https://webkit-queues.webkit.org/results/11835673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526267</commentid>
    <comment_count>8</comment_count>
      <attachid>367187</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-04-10 18:46:47 -0700</bug_when>
    <thetext>Created attachment 367187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526270</commentid>
    <comment_count>9</comment_count>
      <attachid>367187</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-10 19:05:03 -0700</bug_when>
    <thetext>Comment on attachment 367187
Patch

Clearing flags on attachment: 367187

Committed r244180: &lt;https://trac.webkit.org/changeset/244180&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526271</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-10 19:05:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367016</attachid>
            <date>2019-04-08 19:31:07 -0700</date>
            <delta_ts>2019-04-10 15:46:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196722-20190408193106.patch</filename>
            <type>text/plain</type>
            <size>35951</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhODRhMGExNTA2YWZkYWNjZDg5MzAxNjI4NmQ1ZTA3MmQyOWZkODM1Li4y
ZTAxZWI1ZWEyYjM5NjgyYTQwYTM3NDI5YmM3MDRkNGNjMmUxNmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTktMDQtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVk
IHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyB3ZWIgb2JzZXJ2YWJsZSBjaGFuZ2UuCisKKyAgICAgICAgKiBpbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50OjpjaGFuZ2VTaGVldFJlY3QpOiBBZGRlZC4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg6CisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmlkbDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9u
dGVuZEhvc3Q6OnNldFNoZWV0UmVjdCk6IEFkZGVkLgorCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yU3R1YkZyb250ZW5kOjpzZXRT
aGVldFJlY3QpOiBBZGRlZC4KKwogMjAxOS0wNC0wOCAgVGltb3RoeSBIYXRjaGVyICA8dGltb3Ro
eUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIGlPU01hYyBh
ZnRlciByMjQzODkzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggYzY1ZmVlZTIzOWZmOWNk
YzY4ZWEwNTg5NWUxNDRmNmQ3MDgyYzFhYS4uZjMzNDEwYTgwYzBjNmNlZDgxYTZhZWQxNWVjYTBl
MWU2MGZiOGJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIw
MTktMDQtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdl
YiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhl
IHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYxMzI4MD4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVzZXJJ
bnRlcmZhY2UvQmFzZS9NYWluLmpzOgorICAgICAgICAoV0kuY29udGVudExvYWRlZCk6CisKIDIw
MTktMDQtMDggIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YiBJbnNwZWN0b3I6IFJFR1JFU1NJT046IEF1ZGl0OiBkZWZhdWx0IGF1ZGl0cyBhcmVuJ3QgYWRk
ZWQgd2hlbiBhbiBleGlzdGluZyBhdWRpdCBpcyBwcmVzZW50CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk1ZGY2Mzdi
YjZjZmVlZjhiMjE2NTU0YTYxMDY1MTYzYjVmOTJjMjUuLjgwOTFhY2Y5ZmFmOWExOWRlZjYyYTU1
Yjk4ODg0NjA0OTZhMDk1YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDYgQEAKKzIwMTktMDQtMDgg
IERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIg
d2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYxMzI4MD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpjaGFuZ2VT
aGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzaGVldFJlY3QgY29uc3QpOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6c2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBB
ZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgor
ICAgICAgICAoLVtXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgd2luZG93OndpbGxQb3Np
dGlvblNoZWV0OnVzaW5nUmVjdDpdKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6c2hlZXRSZWN0IGNvbnN0KTogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnNldFNoZWV0UmVjdCk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRT
aGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3Bl
Y3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIHdpbmRvdzp3aWxsUG9zaXRpb25TaGVldDp1c2luZ1Jl
Y3Q6XSk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBhZ2VBbmRXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKwog
MjAxOS0wNC0wOCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEZpeCBzZWxlY3RvciBuYW1lIGFmdGVyIHIyNDM4MzQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9z
L0NoYW5nZUxvZwppbmRleCAzNDJlOTg5MTQ1MmI1MjQ3N2E0ZWZkZDA3MzMxYjFhOTEwZjViNTQ1
Li4wYTI2MDFmNzM0ZjNmMDMxYzMyNTY3OWU0NGY2M2NkZjVmNTE3ZjFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMDQtMDggIERldmluIFJvdXNz
byAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hl
ZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIy
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRT
aGVldFJlY3QpOiBBZGRlZC4KKwogMjAxOS0wMy0wMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIENvbnRlbnQgb2JzZXJ2
YXRpb24gc2hvdWxkIGJlIGxpbWl0ZWQgdG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggMTE4NjM3YjA1MzY4MzM2NDkwMmQ5YjJiMDlmODcxODc3
NzUzYjc0My4uMGNjYmNlY2ExMWRmNDZlMWVkNzIzMTJhYWUyMTg3YTlkMGYxMDliZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA0LTA4ICBEZXZp
biBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBz
YXZlIHNoZWV0IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRoZSB0YWIgYmFyIHdoZW4g
ZGV0YWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE5NjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpz
aGVldFJlY3QgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQubW06CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xs
ZXIgd2luZG93OndpbGxQb3NpdGlvblNoZWV0OnVzaW5nUmVjdDpdKToKKwogMjAxOS0wNC0wNSAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT04oQXBwbGVXZWJLaXQvNjA1LjEuMTUpOiBXZWJEb3dubG9hZERlbGVnYXRlIGRlbGVn
YXRlIG1ldGhvZHMgY2FsbGVkIG9uIG5vbi1tYWluIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IDZjOTQ5ODFhNzIzMmYxZTFjNDc0NDQ0Mzg0YWI1MGQ2NGE0MDkwNzguLjU0
ODAxNmEyOTEyNTY2NDUxYTUwNDFiOTQwYTA0MjY2YmU3NjJkNjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0wOCAgRGV2aW4gUm91c3NvICA8
ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2F2ZSBzaGVldCBz
aG91bGQgYmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJhciB3aGVuIGRldGFjaGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3MjIKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRTaGVldFJlY3QpOiBBZGRl
ZC4KKwogMjAxOS0wNC0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjI0MzgzMy4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKaW5kZXggMzg2
NTk4ODY3MzdhMzA3MGFjZTdmNzk3NTJjNTk1YjgyNWU0MTNmOC4uMDBjZTgyNWZkZjE1ZTdjNmIz
NTNlMWU1NDY4OTM2NDk4YThmYmY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgKQEAgLTM3LDYgKzM3LDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFJlY3Q7CisKIGNsYXNzIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50IHsKIHB1YmxpYzoKICAgICBlbnVtIGNsYXNzIERvY2tTaWRlIHsKQEAgLTcwLDYg
KzcyLDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjaGFuZ2VB
dHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgPSAwOwogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7CiAKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYpID0gMDsKKwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBvcGVuSW5OZXdU
YWIoY29uc3QgU3RyaW5nJiB1cmwpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5TYXZlKCkg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuY3BwCmluZGV4IDI0M2Q4NDljOWJmMWExZTU5ZDhmYTc0ODc0ODky
YjI2NTIyMjZlMDMuLjVmNWQxMWFkNjU3Mzk5MmE1MjFiY2I2NTMwNjE1YzIxOGE3MjZjZTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5jcHAKQEAgLTIyMyw2ICsyMjMsMTEgQEAgdm9pZCBJbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsOjpjaGFuZ2VBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRo
KQogICAgIHNldEF0dGFjaGVkV2luZG93V2lkdGgoYXR0YWNoZWRXaWR0aCk7CiB9CiAKK3ZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKK3sKKyAgICBzZXRTaGVldFJlY3QocmVjdCk7Cit9CisKIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQog
ewogICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvciB7IFByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmgKaW5kZXggNTEzOWVlZTE2YjU2OWRlMTI5OGY5ZGJhOWRkYzA3
YTVjNjZlOGMzMC4uYWUyNmNjYWU5Y2E5OWM1ZDVjMmFlNmU0OTY2N2FlYTg4NjdiMWQ5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5oCkBAIC0zOCw2ICszOCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAor
Y2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgRnJhbWU7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVy
OwogY2xhc3MgSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoVGFzazsKQEAgLTcwLDYgKzcxLDcgQEAg
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVxdWVzdFNldERvY2tTaWRlKERvY2tT
aWRlKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNoYW5nZUF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpIGZpbmFsOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSBmaW5hbDsKICAgICBi
b29sIGNhblNhdmUoKSAgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2b2lkIHNhdmUo
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkgb3ZlcnJpZGUgeyB9CkBA
IC0xMTYsNiArMTE4LDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRBdHRhY2hl
ZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXN0
b3JlQXR0YWNoZWRXaW5kb3dIZWlnaHQoKTsKIAorICAgIHZpcnR1YWwgdm9pZCBzZXRTaGVldFJl
Y3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgPSAwOworCiBwcml2YXRlOgogICAgIGJvb2wg
ZXZhbHVhdGVBc0Jvb2xlYW4oY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKICAgICB2b2lkIGV2
YWx1YXRlT25Mb2FkKGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDUzNjhlNzQ2
NTAwNzFiZjg0OTUxZmE4YzQ2NzMzYzkyMTc0MzM2ZWYuLjY0ZDFhYmFlYzI3OGIxZmUxNDJlMjE2
MTJiMTY1OTliODk0OWNiMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiRG9j
dW1lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgorI2luY2x1
ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgpAQCAtMjQyLDYgKzI0MywxMiBA
QCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNp
Z25lZCB3aWR0aCkKICAgICAgICAgbV9jbGllbnQtPmNoYW5nZUF0dGFjaGVkV2luZG93V2lkdGgo
d2lkdGgpOwogfQogCit2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2V0U2hlZXRSZWN0KGZs
b2F0IHgsIGZsb2F0IHksIHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAg
aWYgKG1fY2xpZW50KQorICAgICAgICBtX2NsaWVudC0+Y2hhbmdlU2hlZXRSZWN0KEZsb2F0UmVj
dCh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7Cit9CisKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
OjpzdGFydFdpbmRvd0RyYWcoKQogewogICAgIGlmIChtX2NsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAppbmRleCA3NmE2ZmI0ZDM5
MTliNWQwN2E3YTU5MTM1MGY2ZmE3Y2YzMTYwZGU0Li4zMDE3Y2I3NmMwOWU1ZDI3ZWU0MTZlZDVj
OWJjNDdkM2IwZWNkY2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5oCkBAIC03Miw2ICs3Miw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKICAgICB2b2lkIHNldEF0dGFjaGVkV2lu
ZG93V2lkdGgodW5zaWduZWQpOwogCisgICAgdm9pZCBzZXRTaGVldFJlY3QoZmxvYXQgeCwgZmxv
YXQgeSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCk7CisKICAgICB2b2lkIHN0YXJ0
V2luZG93RHJhZygpOwogICAgIHZvaWQgbW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuaWRsCmluZGV4IGIxZTRkZWJmYTZjZTQ2OTE2YjFhY2I3ODNmMmY4YTViNDQ4MDM1MmIu
LjAyM2EzOWNiYzhmMDg4NGUzOTBiMjk4MjJkMTliZGFmZmE5MTI5OTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCkBAIC01Myw2
ICs1Myw4IEBACiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBsb25n
IGhlaWdodCk7CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIGxvbmcg
d2lkdGgpOwogCisgICAgdm9pZCBzZXRTaGVldFJlY3QodW5yZXN0cmljdGVkIGZsb2F0IHgsIHVu
cmVzdHJpY3RlZCBmbG9hdCB5LCB1bnNpZ25lZCBsb25nIHdpZHRoLCB1bnNpZ25lZCBsb25nIGhl
aWdodCk7CisKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpOwogICAgIHZvaWQgbW92ZVdpbmRv
d0J5KHVucmVzdHJpY3RlZCBmbG9hdCB4LCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCA0OGVkODJhYmNhNDM3MzMwZGNhNjI0ZGRh
YmZmNGEzMGNhOTc1MDU1Li42M2JjZWEzZmIzNjRhNGM3YTU4NzJlN2U5YmY3YmRkNzI5MTgyZjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zMjAsNiArMzIwLDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8m
KSBmaW5hbCB7IH0KICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSBm
aW5hbCB7IH0KICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpIGZpbmFs
IHsgfQorICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGZpbmFsIHsgfQog
CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKSBm
aW5hbDsKICAgICBDb25uZWN0aW9uVHlwZSBjb25uZWN0aW9uVHlwZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIENvbm5lY3Rpb25UeXBlOjpMb2NhbDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCmluZGV4IDA0Y2Y1NDMxYjUzYzhhZmE1NzYx
NjgwMWVkZmM3YzdmY2E1ZGNjOWMuLjdiYTQ2N2EwMDdmZjI4N2VlNzkyNDA0NDNkZjk3OTcyMGY4
YTY0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNl
L01haW4uanMKQEAgLTU4Miw2ICs1ODIsOSBAQCBXSS5jb250ZW50TG9hZGVkID0gZnVuY3Rpb24o
KQogICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEFQSS5sb2FkQ29tcGxldGVkKCk7CiAgICAgfSk7
CiAKKyAgICBsZXQgbWFpbkVsZW1lbnRSZWN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1h
aW4iKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Qu
c2V0U2hlZXRSZWN0KG1haW5FbGVtZW50UmVjdC54LCBtYWluRWxlbWVudFJlY3QueSwgbWFpbkVs
ZW1lbnRSZWN0LndpZHRoLCBtYWluRWxlbWVudFJlY3QuaGVpZ2h0KTsKKwogICAgIC8vIFRlbGwg
dGhlIEluc3BlY3RvckZyb250ZW5kSG9zdCB3ZSBsb2FkZWQsIHdoaWNoIGNhdXNlcyB0aGUgd2lu
ZG93IHRvIGRpc3BsYXkKICAgICAvLyBhbmQgcGVuZGluZyBJbnNwZWN0b3JGcm9udGVuZEFQSSBj
b21tYW5kcyB0byBiZSBzZW50LgogICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5sb2FkZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5
LmNwcAppbmRleCAzYzlkYTUzZDg1YmM5YWMyYjIzNTExM2M4MDY5MTc3Mjc5MTAyMzFhLi5kYmUy
YWMwMTkzYjdlN2UyMjFiZWY4ZWI0NTZjYjE5YmQ5NDEzMzZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0xMTcsNiAr
MTE3LDExIEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OmFwcGVuZChjb25zdCBTdHJp
bmcmIHN1Z2dlc3RlZFVSTCwgY29uc3QgU3RyaW5nJiBjCiAgICAgcGxhdGZvcm1BcHBlbmQoc3Vn
Z2VzdGVkVVJMLCBjb250ZW50KTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
c2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBwbGF0Zm9ybVNldFNo
ZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6c3RhcnRX
aW5kb3dEcmFnKCkKIHsKICAgICBwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpOwpAQCAtMTc1LDYg
KzE4MCw3IEBAIFdlYlBhZ2VQcm94eSogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
Q3JlYXRlRnJvbnRlbmRQYWdlQW5kV2luZG93KCkKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9v
bCkgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0KK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIHsgfQogdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKSB7IH0KIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbkluTmV3VGFiKGNvbnN0IFN0cmlu
ZyYpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TaG93Q2VydGlm
aWNhdGUoY29uc3QgQ2VydGlmaWNhdGVJbmZvJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA5ZWNiNDJiMDg4Zjg4MmY2
Y2Y4ZWE1YmU5NGUzYjI1YjIwN2YyNGM5Li4wZmQwZTgzYTViNTYwNGQ3ZDZlYzVmOTE2NzUyMGZh
MTkzMGRkY2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTc5LDYgKzgwLDggQEAgcHVibGljOgog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBOU1dpbmRvdyAqd2luZG93KCkgY29uc3QgeyByZXR1cm4g
bV93aW5kb3cuZ2V0KCk7IH0KICAgICBXS1dlYlZpZXcgKndlYlZpZXcoKSBjb25zdDsKKworICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc2hlZXRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGVldFJlY3Q7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtOTksNiArMTAyLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZvaWQgc2F2ZShjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5j
b2RlZCwgYm9vbCBmb3JjZVNhdmVBcyk7CiAgICAgdm9pZCBhcHBlbmQoY29uc3QgU3RyaW5nJiBm
aWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KTsKKyAgICB2b2lkIHNldFNoZWV0UmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIHN0YXJ0V2luZG93RHJhZygpOwog
ICAgIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICB2b2lkIHNob3dD
ZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKQEAgLTExMyw2ICsx
MTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1CcmluZ1RvRnJvbnQoKTsKICAgICB2
b2lkIHBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcyk7CiAgICAgdm9pZCBw
bGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRl
bnQpOworICAgIHZvaWQgcGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0Jik7CiAgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpOwogICAgIHZvaWQgcGxh
dGZvcm1PcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgcGxhdGZvcm1T
aG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJbmZvJik7CkBAIC0xMjgs
NiArMTMzLDcgQEAgcHJpdmF0ZToKICAgICBSZXRhaW5QdHI8TlNXaW5kb3c+IG1fd2luZG93Owog
ICAgIFJldGFpblB0cjxXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI+IG1fb2Jq
Q0FkYXB0ZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJldGFpblB0cjxOU1VSTD4+IG1fc3VnZ2Vz
dGVkVG9BY3R1YWxVUkxNYXA7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fc2hlZXRSZWN0Owog
I2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0a1dpZGdldCogbV93ZWJWaWV3IHsgbnVs
bHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiYzU5MWY0OTk4MjQxMWU0NTVhNmE5
NzRjNWI3ZTFmOGYyNTJiOTAxLi5iNzg3MjM1ZWQ4MGQ2MDQ3MmUzNmM1YTgwMGE5YmQxYjg1NjVm
ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0
b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjgsNiArMjgsOCBAQCBtZXNzYWdlcyAt
PiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgU2F2ZShTdHJpbmcgZmlsZW5hbWUsIFN0
cmluZyBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpCiAgICAg
QXBwZW5kKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGNvbnRlbnQpCiAKKyAgICBTZXRTaGVldFJl
Y3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisKICAgICBTdGFydFdpbmRvd0RyYWcoKQogCiAg
ICAgT3BlbkluTmV3VGFiKFN0cmluZyB1cmwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5jcHAKaW5kZXggNmVkMGUwODgxMjhhODBhMDM3NzQwM2Y2MmY4YjYy
YWJjMzljYTcyNC4uNTZkY2EwNWNkZmE5NGEwNzE1MDBlNGI4OTljMTRjZTcwNDg3ZGQzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApAQCAtMzI1
LDYgKzMyNSwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hlZFdpbmRvd1dp
ZHRoKHVuc2lnbmVkIHdpZHRoKQogICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh3
aWR0aCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldFNoZWV0UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCit7CisgICAgcGxhdGZvcm1TZXRTaGVldFJlY3QocmVjdCk7Cit9CisK
IHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgcGxhdGZv
cm1TdGFydFdpbmRvd0RyYWcoKTsKQEAgLTY4OSw2ICs2OTQsMTEgQEAgdm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNl
dFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclByb3h5LmgKaW5kZXggOWIzMDU4MjA1MWU1MWMwMTZhNGQ1MTllNTQ3MmIzZWE4MjcyNDUy
NC4uNmFhZWI4MWRlNjMyZWJmYmFjN2Q3NzYxMTQ4MTg3MTZlODJhNjAxNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVXRpbGl0
aWVzLmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVs
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KQEAgLTEyMCw2ICsxMjEsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdHRhY2htZW50Vmll
d0RpZENoYW5nZShOU1ZpZXcgKm9sZFZpZXcsIE5TVmlldyAqbmV3Vmlldyk7CiAgICAgdm9pZCBh
dHRhY2htZW50V2lsbE1vdmVGcm9tV2luZG93KE5TV2luZG93ICpvbGRXaW5kb3cpOwogICAgIHZv
aWQgYXR0YWNobWVudERpZE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqbmV3V2luZG93KTsKKworICAg
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgc2hlZXRSZWN0KCkgY29uc3QgeyByZXR1cm4gbV9z
aGVldFJlY3Q7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtMTQzLDYgKzE0Niw4
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsK
ICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpOwogCisgICAgdm9pZCBz
ZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7CisKICAgICB2b2lkIHN0YXJ0
V2luZG93RHJhZygpOwogCiAgICAgYm9vbCBpc1Byb2ZpbGluZ1BhZ2UoKSBjb25zdCB7IHJldHVy
biBtX2lzUHJvZmlsaW5nUGFnZTsgfQpAQCAtMTk3LDYgKzIwMiw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBwbGF0Zm9ybURldGFjaCgpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCh1bnNpZ25lZCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lk
dGgodW5zaWduZWQpOworICAgIHZvaWQgcGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0Jik7CiAgICAgdm9pZCBwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpOwogICAg
IHZvaWQgcGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
Y29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lk
IHBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29u
dGVudCk7CkBAIC0yNjYsNiArMjcyLDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFN0cmluZywg
UmV0YWluUHRyPE5TVVJMPj4gbV9zdWdnZXN0ZWRUb0FjdHVhbFVSTE1hcDsKICAgICBSdW5Mb29w
OjpUaW1lcjxXZWJJbnNwZWN0b3JQcm94eT4gbV9jbG9zZUZyb250ZW5kQWZ0ZXJJbmFjdGl2aXR5
VGltZXI7CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBt
X3NoZWV0UmVjdDsKICAgICBib29sIG1faXNPYnNlcnZpbmdDb250ZW50TGF5b3V0UmVjdCB7IGZh
bHNlIH07CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkluc3Bl
Y3RvclByb3h5Q2xpZW50PiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNGNjZTBmZjJlYWI4NGUx
NjhjZWIwZjMzMjFhYjIzYWRmMzM4ZjcxYS4uMTI4NGJkNGE3NTJlMjc2NDNiZGVlZjNkY2ZkNGRh
Y2VhMTAzMjA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ4LDUgKzQ4LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
SW5zcGVjdG9yUHJveHkgewogICAgIFNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhl
aWdodCkKICAgICBTZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRoKQogCisgICAg
U2V0U2hlZXRSZWN0KFdlYkNvcmU6OkZsb2F0UmVjdCByZWN0KQorCiAgICAgU3RhcnRXaW5kb3dE
cmFnKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDkyZWFkMDQ1ZThiOGZjMmU0Yjk5MzQ0
MjZiZDEwYTRhOGU1OWY5ZGMuLmMxYWMwNDNiMzMwNDZkMTU3NTA2ZDA2NTYxM2VhN2NlY2QwMDRi
NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9SZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtMTAzLDYgKzEwMywxMCBAQCB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKQogewogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNl
dFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQoreworfQorCiB2b2lkIFJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCiB7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcAppbmRleCA2
OTcyYjMwNjFjNGMzNThkMjNlNTQxYmEyNDUyOWI0MjhmYTQzYTU5Li5kMTk1NjA3ODg2ZDFkZjcy
ZjQ3ZWE2OGI2NmQ3OTU2M2I0NWI0Y2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKQEAgLTQ0NCw2ICs0NDQsMTEgQEAg
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVu
c2lnbmVkIHdpZHRoKQogICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0SW5zcGVjdG9yVmlld1NpemUo
V0VCS0lUX1dFQl9WSUVXX0JBU0UoaW5zcGVjdGVkUGFnZSgpLT52aWV3V2lkZ2V0KCkpLCB3aWR0
aCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogICAgIG5vdEltcGxl
bWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggNTRlNmUyOTEzMWRkMDMzMTk1MzU3MGI2
MWI5NDdiZWMwYzVhOTI2MS4uNzYwYTFkMDA5ZGUyM2M2YzJiNTU4YTVmZDNlMWE1M2I1YmMzODU3
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1JlbW90ZVdlYkluc3Bl
Y3RvclByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtNDMsNyArNDMsNyBAQAogI2ltcG9ydCA8V2ViQ29y
ZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogCi1AaW50
ZXJmYWNlIFdLUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciA6IE5TT2JqZWN0IDxX
S0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+IHsKK0BpbnRlcmZhY2UgV0tSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIDogTlNPYmplY3QgPE5TV2luZG93RGVsZWdhdGUs
IFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gewogICAgIFdlYktpdDo6UmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHkqIF9pbnNwZWN0b3JQcm94eTsKIH0KIC0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFJlbW90ZVdlYkluc3BlY3RvclByb3h5OihXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5KilpbnNwZWN0b3JQcm94eTsKQEAgLTUxLDYgKzUxLDEzIEBAIEBlbmQKIAogQGltcGxl
bWVudGF0aW9uIFdLUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcgogCistIChOU1Jl
Y3Qpd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3aWxsUG9zaXRpb25TaGVldDooTlNXaW5kb3cg
KilzaGVldCB1c2luZ1JlY3Q6KE5TUmVjdClyZWN0Cit7CisgICAgaWYgKF9pbnNwZWN0b3JQcm94
eSkKKyAgICAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgX2luc3BlY3RvclByb3h5LT5zaGVldFJl
Y3QoKS5oZWlnaHQoKSwgX2luc3BlY3RvclByb3h5LT5zaGVldFJlY3QoKS53aWR0aCgpLCAwKTsK
KyAgICByZXR1cm4gcmVjdDsKK30KKwogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkqKWluc3BlY3Rv
clByb3h5CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCkBAIC04OSw2ICs5Niw3
IEBAIFdlYlBhZ2VQcm94eSogUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRl
RnJvbnRlbmRQYWdlQW5kV2luZG93KCkKICAgICBbbV9pbnNwZWN0b3JWaWV3LmdldCgpIHNldERl
bGVnYXRlOm1fb2JqQ0FkYXB0ZXIuZ2V0KCldOwogCiAgICAgbV93aW5kb3cgPSBXZWJJbnNwZWN0
b3JQcm94eTo6Y3JlYXRlRnJvbnRlbmRXaW5kb3coTlNaZXJvUmVjdCwgV2ViSW5zcGVjdG9yUHJv
eHk6Okluc3BlY3Rpb25UYXJnZXRUeXBlOjpSZW1vdGUpOworICAgIFttX3dpbmRvdyBzZXREZWxl
Z2F0ZTptX29iakNBZGFwdGVyLmdldCgpXTsKICAgICBbbV93aW5kb3cgc2V0RnJhbWVBdXRvc2F2
ZU5hbWU6QCJXS1JlbW90ZVdlYkluc3BlY3RvcldpbmRvd0ZyYW1lIl07CiAKICAgICBOU1ZpZXcg
KmNvbnRlbnRWaWV3ID0gbV93aW5kb3cuZ2V0KCkuY29udGVudFZpZXc7CkBAIC0yMDcsNiArMjE1
LDExIEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0
IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTCiAgICAgaW5zcGVjdG9yUGFnZS0+cHJvY2Vz
cygpLnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3RvclVJOjpEaWRBcHBlbmQoW2FjdHVh
bFVSTCBhYnNvbHV0ZVN0cmluZ10pLCBpbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CiB9CiAKK3Zv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3NoZWV0UmVjdCA9IHJlY3Q7Cit9CisKIHZvaWQgUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICB3
ZWJWaWV3KCktPl9wYWdlLT5zdGFydFdpbmRvd0RyYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCA5NzgxMmZmODli
YzQwMWUxZmE2ODdhNTFkMzU5MjI5MTU4MTlhNTNlLi5iZTM3ODlhOTA0OTI1OTRkMGY2OTQxMjdk
M2M3ZjlkMTYzMWFjN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC01Miw3ICs1Miw3IEBAIHN0YXRpYyBjb25zdCBT
ZWNvbmRzIHdlYlZpZXdDbG9zZVRpbWVvdXQgeyAxX21pbiB9OwogCiBzdGF0aWMgdm9pZCoga1dp
bmRvd0NvbnRlbnRMYXlvdXRPYnNlcnZlckNvbnRleHQgPSAma1dpbmRvd0NvbnRlbnRMYXlvdXRP
YnNlcnZlckNvbnRleHQ7CiAKLUBpbnRlcmZhY2UgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFw
dGVyICgpIDxXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+CitAaW50ZXJmYWNlIFdL
V2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciAoKSA8TlNXaW5kb3dEZWxlZ2F0ZSwgV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlPgogCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhX
ZWJJbnNwZWN0b3JQcm94eTooV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eSopaW5zcGVjdG9yUHJv
eHk7CiAtICh2b2lkKWludmFsaWRhdGU7CkBAIC05Myw2ICs5MywxMyBAQCAtICh2b2lkKWludmFs
aWRhdGUKICAgICBfaW5zcGVjdG9yUHJveHkgPSBudWxscHRyOwogfQogCistIChOU1JlY3Qpd2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3aWxsUG9zaXRpb25TaGVldDooTlNXaW5kb3cgKilzaGVl
dCB1c2luZ1JlY3Q6KE5TUmVjdClyZWN0Cit7CisgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkKKyAg
ICAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgX2luc3BlY3RvclByb3h5LT5zaGVldFJlY3QoKS5o
ZWlnaHQoKSwgX2luc3BlY3RvclByb3h5LT5zaGVldFJlY3QoKS53aWR0aCgpLCAwKTsKKyAgICBy
ZXR1cm4gcmVjdDsKK30KKwogLSAodm9pZCl3aW5kb3dEaWRNb3ZlOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgogewogICAgIGlmIChfaW5zcGVjdG9yUHJveHkpCkBAIC03MTQsNiArNzIx
LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dX
aWR0aCh1bnNpZ25lZCB3aWR0aCkKICAgICBpbnNwZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2Uod2lk
dGgpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgbV9zaGVldFJlY3QgPSByZWN0OworfQorCiB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAg
W21faW5zcGVjdG9yVmlld0NvbnRyb2xsZXIgd2ViVmlld10tPl9wYWdlLT5zdGFydFdpbmRvd0Ry
YWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0
b3JQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9y
UHJveHlXaW4uY3BwCmluZGV4IDdiOTZlZTVkNmY0MzdkN2I5NDQ2YmRhMzNkNTBiNjc4MDg4MDUz
MWMuLjhhYWE0NDQ1ZGQyMjJmZGEyY2YzMTIyNzU3OWQ2MGQ1NDFkNDQ0ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcApA
QCAtMzU4LDYgKzM1OCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgOjpTZXRXaW5kb3dQb3MobV9p
bnNwZWN0ZWRWaWV3V2luZG93LCAwLCB3aW5kb3dJbmZvLmxlZnQsIHdpbmRvd0luZm8udG9wLCB3
aW5kb3dJbmZvLnBhcmVudFdpZHRoIC0gd2luZG93SW5mby5sZWZ0LCB3aW5kb3dJbmZvLnBhcmVu
dEhlaWdodCAtIHdpbmRvd0luZm8udG9wLCBTV1BfTk9aT1JERVIpOwogfQogCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIGJvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtSXNGcm9udCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCmluZGV4IGYwNjU3
ZjQxMDdkOTJiM2ZiMzAwMzMxNzkwNzFkNDA3YzZiMjI5YTguLjBmNDI2NTYzMjkzZGJmMmNjZGZm
NjQ2NDY3YTQ0NmIxNzJiZTM4ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMTM0LDYgKzEzNCwxMSBAQCB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWdu
ZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93
RHJhZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAppbmRleCBm
MDE4NDU5YzdlNTI5YTc0ZTU0ZjNmMGRlMzU4MjMwMmIyOTNjMzMwLi4wNTQ0MDQ1NmY0MWRiMWM0
ZjA5MDViNTVlZGZhMzg0MWZmN2MxZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zNCw2ICsz
NCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rv
ckNvbnRyb2xsZXIuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC05OSw2ICsxMDAsMTEgQEAg
dm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6ZnJvbnRlbmRMb2FkZWQoKQogICAgIGJyaW5nVG9G
cm9udCgpOwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpTZXRTaGVldFJlY3QocmVjdCksIG1fcGFnZS5wYWdlSUQoKSk7Cit9CisKIHZvaWQg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OnN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlN0YXJ0V2luZG93RHJhZygpLCBtX3BhZ2UucGFnZUlE
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZVdlYkluc3BlY3RvclVJLmgKaW5kZXggZjliNjdiMzFmY2ZkMDQ5ODQ4ZjQwZmM3ZjhmNGRlNzU4
ZTY4MTgzMC4uNjIxMzExMDgyMWFlODE0NzY1Y2NkZTg1YWJlMWY4MTcxOWE2YzZmMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNw
ZWN0b3JVSS5oCkBAIC0zMyw2ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNz
IENlcnRpZmljYXRlSW5mbzsKK2NsYXNzIEZsb2F0UmVjdDsKIH0KIAogbmFtZXNwYWNlIFdlYktp
dCB7CkBAIC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKICAgICAvLyBXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudAogICAgIHZvaWQgd2luZG93T2JqZWN0Q2xlYXJlZCgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgZnJvbnRlbmRMb2FkZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNoYW5nZVNoZWV0
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2b2lkIHN0YXJ0
V2luZG93RHJhZygpIG92ZXJyaWRlOwogICAgIHZvaWQgbW92ZVdpbmRvd0J5KGZsb2F0IHgsIGZs
b2F0IHkpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKaW5kZXggZWYyNmEwMWEwOWQ4ZWQ1ZTY3NWVhODE5YWZi
MzA3OGU0ZGRiMGEwYi4uMDJjY2Q1N2RhYjU5MGY0NTYxMjJlOTA5MGU4ZjY2MDk2MGY0NzVmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
VUkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
clVJLmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJ
bmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DaHJvbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RP
TVdyYXBwZXJXb3JsZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5o
PgpAQCAtMjQ3LDYgKzI0OCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclVJOjpjaGFuZ2VBdHRhY2hl
ZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRoKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclBy
b3h5OjpTZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHdpZHRoKSwgbV9pbnNwZWN0ZWRQYWdlSWRlbnRp
Zmllcik7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZVNoZWV0UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldFNo
ZWV0UmVjdChyZWN0KSwgbV9pbnNwZWN0ZWRQYWdlSWRlbnRpZmllcik7Cit9CisKIHZvaWQgV2Vi
SW5zcGVjdG9yVUk6Om9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCkKIHsKICAgICBpZiAo
bV9iYWNrZW5kQ29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3JVSS5oCmluZGV4IGIxNTM3ZGJhZDBiY2UxMmJlNTFmMWY0OTczZGE2
ZTdhMDE4NTMyYTguLjgzODFiZjFjZWRlY2I2NWM1ZDQ3NDc1YzIyYjdkM2RiNjJmYmZkOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJ
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUku
aApAQCAtMzMsNiArMzMsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW5zcGVjdG9y
Q29udHJvbGxlcjsKIGNsYXNzIENlcnRpZmljYXRlSW5mbzsKK2NsYXNzIEZsb2F0UmVjdDsKIH0K
IAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMDEsNiArMTAyLDggQEAgcHVibGljOgogICAgIHZv
aWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAKKyAgICB2
b2lkIGNoYW5nZVNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsK
KwogICAgIHZvaWQgb3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKSBvdmVycmlkZTsKIAog
ICAgIGJvb2wgY2FuU2F2ZSgpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1tIGIvU291cmNl
L1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1t
CmluZGV4IGU4YzJlZTUwMWZjZjZmYzhmYmZmYjcyYWY3MGI4YmRhNWY0ZDFjZTAuLjA3MTY5ODA1
NDAzNjY4MzAwNDM1ZmQ0NDNiMDI5MzU2Mzg3NDkyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnRJT1MubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIldlYk5vZGVIaWdobGlnaHRlci5o
IgogI2ltcG9ydCAiV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmlj
YXRlSW5mby5oPgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNv
cmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CkBAIC0xMzAsNiArMTMxLDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6YXR0YWNoV2luZG93KERvY2tTaWRlKSB7IH0KIHZv
aWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OmRldGFjaFdpbmRvdygpIHsgfQogdm9pZCBX
ZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWdu
ZWQpIHsgfQogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0QXR0YWNoZWRXaW5k
b3dXaWR0aCh1bnNpZ25lZCkgeyB9Cit2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpz
ZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250
ZW5kQ2xpZW50OjpzdGFydFdpbmRvd0RyYWcoKSB7IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFdl
Ykluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzaG93Q2VydGlmaWNhdGUoY29uc3QgQ2VydGlmaWNh
dGVJbmZvJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCmluZGV4IDhjZTk3Yjg2MmFkYjhkZmY1
Y2I2Y2MzNjQxM2IzOTU5OGMzZjM5MDUuLmRkMDA3YjhiMDBlZTJhZGZjNDQ3Y2I0ZDA3YTNhZDMy
NGQ1NDE5NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAgKi8K
IAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JD
bGllbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
PgogI2ltcG9ydCA8d3RmL0ZvcndhcmQuaD4KQEAgLTEyNSw2ICsxMjYsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJy
aWRlOwogCisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7
IHJldHVybiBtX3NoZWV0UmVjdDsgfQorICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgcmVjdCkgb3ZlcnJpZGUgeyBtX3NoZWV0UmVjdCA9IHJlY3Q7IH0KKwog
ICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIG5ld1VSTCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzaG93Q2VydGlmaWNhdGUoY29uc3QgV2ViQ29yZTo6Q2VydGlmaWNhdGVJ
bmZvJikgb3ZlcnJpZGU7CiAKQEAgLTE0MCw1ICsxNDQsNiBAQCBwcml2YXRlOgogICAgIFJldGFp
blB0cjxXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9sbGVyPiBtX2Zyb250ZW5kV2luZG93Q29udHJv
bGxlcjsKICAgICBTdHJpbmcgbV9pbnNwZWN0ZWRVUkw7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFJl
dGFpblB0cjxOU1VSTD4+IG1fc3VnZ2VzdGVkVG9BY3R1YWxVUkxNYXA7CisgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IG1fc2hlZXRSZWN0OwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1t
CmluZGV4IDYzMTVlNjhiNjI5NmJjN2Q2NDY4ZDBmNjE5N2NhYTVkMjNiNjg4NTYuLjJmZTUzMTI3
NDdiZGJkZTgyM2Q0YWNlNDFmNWNiYzYwNWNmYjg5ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbQorKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQu
bW0KQEAgLTUxNSw4ICs1MTUsMTAgQEAgLSAoTlNXaW5kb3cgKil3aW5kb3cKIAogLSAoTlNSZWN0
KXdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2lsbFBvc2l0aW9uU2hlZXQ6KE5TV2luZG93ICop
c2hlZXQgdXNpbmdSZWN0OihOU1JlY3QpcmVjdAogeworICAgIGlmIChfZnJvbnRlbmRDbGllbnQp
CisgICAgICAgIHJldHVybiBOU01ha2VSZWN0KDAsIF9mcm9udGVuZENsaWVudC0+c2hlZXRSZWN0
KCkuaGVpZ2h0KCksIF9mcm9udGVuZENsaWVudC0+c2hlZXRSZWN0KCkud2lkdGgoKSwgMCk7CisK
ICAgICAvLyBBcHBLaXQgZG9lc24ndCBrbm93IGFib3V0IG91ciBIVE1MIHRvb2xiYXIsIGFuZCBw
bGFjZXMgdGhlIHNoZWV0IGp1c3QgYSBsaXR0bGUgYml0IHRvbyBoaWdoLgotICAgIC8vIEZJWE1F
OiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gZ2V0IHRoZSBoZWlnaHQgb2YgdGhlIHRvb2xiYXIgYW5k
IHVzZSBpdCBpbiB0aGlzIGNhbGN1bGF0aW9uLgogICAgIHJlY3Qub3JpZ2luLnkgLT0gMTsKICAg
ICByZXR1cm4gcmVjdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4IGIyZGFlZGI2
YzIzZTdjZjMwNmYwN2UzZmEzYzZkYmY0ODljNDljZWUuLmEwZDc2OWQyMWQzYWMwNDM1NWU5NmE5
Y2YyZGI0NmVmNjVmZGI1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtMzQwLDYg
KzM0MCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hlZFdp
bmRvd1dpZHRoKHVuc2lnbmVkKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6Omluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwpCiB7CiAgICAg
bV9pbnNwZWN0ZWRVUkwgPSBuZXdVUkw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCmluZGV4IDc5NjZj
ZjJjN2NjMDJhOGE5Y2Y1ZTg4YWIwNmJiNTY0N2Y0NDExYzAuLjE3MzNhNzI3MmY4MDI3OTk3Mzli
MjBjMmIwZjA1YTVhYmNmOGE0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oCkBAIC0xMDgsNiAr
MTA4LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWdu
ZWQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkg
b3ZlcnJpZGU7CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBvdmVycmlkZTsKKwogICAgIHZvaWQgaW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBXVEY6
OlN0cmluZyYgbmV3VVJMKSBvdmVycmlkZTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKSBvdmVycmlkZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367172</attachid>
            <date>2019-04-10 15:46:54 -0700</date>
            <delta_ts>2019-04-10 16:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196722-20190410154653.patch</filename>
            <type>text/plain</type>
            <size>35950</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA0MjgwNmFhNzRmZTRjYWYzYjU1YjczZmFmMTZmNTA1ZTI0NzlmMzllLi5k
M2I4ZDc4ZGMzMmMwZTkzY2U1YTExZWRiNDhiZmYzMzhjY2IzOTlmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVk
IHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisK
KyAgICAgICAgTm8gd2ViIG9ic2VydmFibGUgY2hhbmdlLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZVNoZWV0UmVjdCk6IEFkZGVkLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKworICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0dWJGcm9udGVuZDo6c2V0
U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMDkgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYnVpbGQgbWFpbnRlbmFuY2UgLS0gdXBk
YXRlIC54Y2ZpbGVsaXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDUwMjZjNmM3NzVk
ZjEwNTI2ZWQ1MGYzYzRhOWNlMjNhNGQ4Yzg4MGMuLjA3ZjMwZWUzNDFkNjI3OTk0ZmZiM2Q1NDcx
MTg5NjA4OGUzYjc4YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDE5LTA0LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBzYXZlIHNoZWV0IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRo
IHRoZSB0YWIgYmFyIHdoZW4gZGV0YWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5NjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMy
ODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToK
KwogMjAxOS0wNC0wOCAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViIEluc3BlY3RvcjogRWxlbWVudHMgdGFiOiBDbGFzc2VzIHRvZ2dsZSBzaG91bGQgdXNl
IGFjY2VudCBjb2xvciBvbiBob3ZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBhMDcyNTJjMjk2MDYwZjRkMzcyZTAx
Zjg0ZTllNDE1YjRhOTIyZTgxLi40YWY3MzYwNTM0NjljMDAyODZlNzUyYzQxOTY1NGQyMzQ3NThj
NDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA0LTEwICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzYXZlIHNoZWV0
IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRoZSB0YWIgYmFyIHdoZW4gZGV0YWNoZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjcyMgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yVUk6OmNoYW5nZVNoZWV0UmVjdCk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbjoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yUHJveHk6OnNoZWV0UmVjdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW06CisgICAgICAgICgtW1dL
V2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciB3aW5kb3c6d2lsbFBvc2l0aW9uU2hlZXQ6dXNp
bmdSZWN0Ol0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dpbi9XZWJJ
bnNwZWN0b3JQcm94eVdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUv
V2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQ
cm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVdlYkluc3BlY3RvclByb3h5OjpzaGVldFJlY3QgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6c2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5
T2JqQ0FkYXB0ZXIgd2luZG93OndpbGxQb3NpdGlvblNoZWV0OnVzaW5nUmVjdDpdKTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUZyb250ZW5kUGFnZUFuZFdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVkLgorCiAyMDE5LTA0LTA5ICBL
ZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIGJ1
aWxkIG1haW50ZW5hbmNlIC0tIHVwZGF0ZSAueGNmaWxlbGlzdHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9D
aGFuZ2VMb2cKaW5kZXggMzQyZTk4OTE0NTJiNTI0NzdhNGVmZGQwNzMzMWIxYTkxMGY1YjU0NS4u
Yzg1YzRlNzM2YjcwZWNlMzBmNDQxZjM4OWIyM2QwMWYzODJkODQzNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
aW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5LTA0LTEwICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzYXZlIHNoZWV0
IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRoZSB0YWIgYmFyIHdoZW4gZGV0YWNoZWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NjcyMgor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
VGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNldFNo
ZWV0UmVjdCk6IEFkZGVkLgorCiAyMDE5LTAzLTAzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvbnRlbnRDaGFuZ2VPYnNlcnZlcl0gQ29udGVudCBvYnNlcnZh
dGlvbiBzaG91bGQgYmUgbGltaXRlZCB0byB0aGUgY3VycmVudCBkb2N1bWVudC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwppbmRleCBmZjUyZTcwZTY1NzNkOWEzMzAyZmNiZGU0NmI2NTcyMDk4
YTY3NzY3Li5kNzE2MjE5NWQwZmY2Y2MxMWM1ODg5NjNiMmVmZTA4YTM0MzA4MmJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDQtMTAgIERldmlu
IFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNh
dmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBk
ZXRhY2hlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpz
aGVldFJlY3QgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQubW06CisgICAgICAgICgtW1dlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xs
ZXIgd2luZG93OndpbGxQb3NpdGlvblNoZWV0OnVzaW5nUmVjdDpdKToKKwogMjAxOS0wNC0wOCAg
SnVzdGluIEZhbiAgPGp1c3Rpbl9mYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgR1BVXSBG
aXggV2ViIEdQVSBleHBlcmltZW50YWwgZmVhdHVyZSBvbiBpT1MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0No
YW5nZUxvZwppbmRleCA2Yzk0OTgxYTcyMzJmMWUxYzQ3NDQ0NDM4NGFiNTBkNjRhNDA5MDc4Li5l
NTE5YTQ1NTA1ZDJhNDBjY2E4ZjYxODU5MmFkZTI1YTAzMGFiMTRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAg
PGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQg
c2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBU
aW1vdGh5IEhhdGNoZXIuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNldFNoZWV0UmVjdCk6IEFk
ZGVkLgorCiAyMDE5LTA0LTA1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQzODMzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCAz
ODY1OTg4NjczN2EzMDcwYWNlN2Y3OTc1MmM1OTViODI1ZTQxM2Y4Li4wMGNlODI1ZmRmMTVlN2M2
YjM1M2UxZTU0Njg5MzY0OThhOGZiZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaApAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZsb2F0UmVjdDsKKwogY2xhc3MgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQgewogcHVibGljOgogICAgIGVudW0gY2xhc3MgRG9ja1NpZGUgewpAQCAtNzAs
NiArNzIsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5n
ZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKSA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKIAor
ICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxv
YXRSZWN0JikgPSAwOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIG9wZW5Jbk5l
d1RhYihjb25zdCBTdHJpbmcmIHVybCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblNhdmUo
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXggMjQzZDg0OWM5YmYxYTFlNTlkOGZhNzQ4NzQ4
OTJiMjY1MjIyNmUwMy4uNWY1ZDExYWQ2NTczOTkyYTUyMWJjYjY1MzA2MTVjMjE4YTcyNmNlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZENsaWVudExvY2FsLmNwcApAQCAtMjIzLDYgKzIyMywxMSBAQCB2b2lkIEluc3BlY3RvckZy
b250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lk
dGgpCiAgICAgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aChhdHRhY2hlZFdpZHRoKTsKIH0KIAordm9p
ZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxv
YXRSZWN0JiByZWN0KQoreworICAgIHNldFNoZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwp
CiB7CiAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9y
RnJvbnRlbmRDbGllbnRMb2NhbC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWwuaAppbmRleCA1MTM5ZWVlMTZiNTY5ZGUxMjk4ZjlkYmE5ZGRj
MDdhNWM2NmU4YzMwLi5hZTI2Y2NhZTljYTk5YzVkNWMyYWU2ZTQ5NjY3YWVhODg2N2IxZDk2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnRMb2NhbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xs
ZXI7CiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hUYXNrOwpAQCAtNzAsNiArNzEsNyBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZXF1ZXN0U2V0RG9ja1NpZGUoRG9j
a1NpZGUpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5k
b3dIZWlnaHQodW5zaWduZWQpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdl
QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOwogICAg
IGJvb2wgY2FuU2F2ZSgpICBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgc2F2
ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSBvdmVycmlkZSB7IH0K
QEAgLTExNiw2ICsxMTgsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFj
aGVkV2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJl
c3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpOwogCisgICAgdmlydHVhbCB2b2lkIHNldFNoZWV0
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSA9IDA7CisKIHByaXZhdGU6CiAgICAgYm9v
bCBldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwogICAgIHZvaWQg
ZXZhbHVhdGVPbkxvYWQoY29uc3QgU3RyaW5nJiBleHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggNTM2OGU3
NDY1MDA3MWJmODQ5NTFmYThjNDY3MzNjOTIxNzQzMzZlZi4uNjRkMWFiYWVjMjc4YjFmZTE0MmUy
MTYxMmIxNjU5OWI4OTQ5Y2IyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJE
b2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5j
bHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCkBAIC0yNDIsNiArMjQzLDEy
IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVu
c2lnbmVkIHdpZHRoKQogICAgICAgICBtX2NsaWVudC0+Y2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0
aCh3aWR0aCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzZXRTaGVldFJlY3Qo
ZmxvYXQgeCwgZmxvYXQgeSwgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKK3sKKyAg
ICBpZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT5jaGFuZ2VTaGVldFJlY3QoRmxvYXRS
ZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhv
c3Q6OnN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDc2YTZmYjRk
MzkxOWI1ZDA3YTdhNTkxMzUwZjZmYTdjZjMxNjBkZTQuLjMwMTdjYjc2YzA5ZTVkMjdlZTQxNmVk
NWM5YmM0N2QzYjBlY2RjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgIHZvaWQg
c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0QXR0YWNoZWRX
aW5kb3dXaWR0aCh1bnNpZ25lZCk7CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdChmbG9hdCB4LCBm
bG9hdCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KTsKKwogICAgIHZvaWQgc3Rh
cnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250
ZW5kSG9zdC5pZGwKaW5kZXggYjFlNGRlYmZhNmNlNDY5MTZiMWFjYjc4M2YyZjhhNWI0NDgwMzUy
Yi4uMDIzYTM5Y2JjOGYwODg0ZTM5MGIyOTgyMmQxOWJkYWZmYTkxMjk5MiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTUz
LDYgKzUzLDggQEAKICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGxv
bmcgaGVpZ2h0KTsKICAgICB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgbG9u
ZyB3aWR0aCk7CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdCh1bnJlc3RyaWN0ZWQgZmxvYXQgeCwg
dW5yZXN0cmljdGVkIGZsb2F0IHksIHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcg
aGVpZ2h0KTsKKwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBtb3ZlV2lu
ZG93QnkodW5yZXN0cmljdGVkIGZsb2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDRmY2Q2YTdlMmI1ZGJhZjJlNmJkZTc5
NTVjZjg4NTg2MmVhMDUyODIuLmQxMjkwNjZhYTZhOWVkZTdiNTA0MWIyNWM3MDM0MTQxOTNlYTQ1
YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMyMSw2ICszMjEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRlSW5m
byYpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQp
IGZpbmFsIHsgfQogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmlu
YWwgeyB9CisgICAgdm9pZCBzZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWwgeyB9
CiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
IGZpbmFsOwogICAgIENvbm5lY3Rpb25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gQ29ubmVjdGlvblR5cGU6OkxvY2FsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01haW4uanMKaW5kZXggMDRjZjU0MzFiNTNjOGFmYTU3
NjE2ODAxZWRmYzdjN2ZjYTVkY2M5Yy4uN2JhNDY3YTAwN2ZmMjg3ZWU3OTI0MDQ0M2RmOTc5NzIw
ZjhhNjRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
QmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jh
c2UvTWFpbi5qcwpAQCAtNTgyLDYgKzU4Miw5IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlv
bigpCiAgICAgICAgIEluc3BlY3RvckZyb250ZW5kQVBJLmxvYWRDb21wbGV0ZWQoKTsKICAgICB9
KTsKIAorICAgIGxldCBtYWluRWxlbWVudFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
bWFpbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIEluc3BlY3RvckZyb250ZW5kSG9z
dC5zZXRTaGVldFJlY3QobWFpbkVsZW1lbnRSZWN0LngsIG1haW5FbGVtZW50UmVjdC55LCBtYWlu
RWxlbWVudFJlY3Qud2lkdGgsIG1haW5FbGVtZW50UmVjdC5oZWlnaHQpOworCiAgICAgLy8gVGVs
bCB0aGUgSW5zcGVjdG9yRnJvbnRlbmRIb3N0IHdlIGxvYWRlZCwgd2hpY2ggY2F1c2VzIHRoZSB3
aW5kb3cgdG8gZGlzcGxheQogICAgIC8vIGFuZCBwZW5kaW5nIEluc3BlY3RvckZyb250ZW5kQVBJ
IGNvbW1hbmRzIHRvIGJlIHNlbnQuCiAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHkuY3BwCmluZGV4IDNjOWRhNTNkODViYzlhYzJiMjM1MTEzYzgwNjkxNzcyNzkxMDIzMWEuLmRi
ZTJhYzAxOTNiN2U3ZTIyMWJlZjhlYjQ1NmNiMTliZDk0MTMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTExNyw2
ICsxMTcsMTEgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6YXBwZW5kKGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmIGMKICAgICBwbGF0Zm9ybUFwcGVuZChz
dWdnZXN0ZWRVUkwsIGNvbnRlbnQpOwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5
OjpzZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHBsYXRmb3JtU2V0
U2hlZXRSZWN0KHJlY3QpOworfQorCiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzdGFy
dFdpbmRvd0RyYWcoKQogewogICAgIHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CkBAIC0xNzUs
NiArMTgwLDcgQEAgV2ViUGFnZVByb3h5KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1DcmVhdGVGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBi
b29sKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIHsgfQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgeyB9CiB2b2lkIFJl
bW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9p
ZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3QgU3Ry
aW5nJikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0
aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDllY2I0MmIwODhmODgy
ZjZjZjhlYTViZTk0ZTNiMjViMjA3ZjI0YzkuLjBmZDBlODNhNWI1NjA0ZDdkNmVjNWY5MTY3NTIw
ZmExOTMwZGRjYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHkuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0
LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9h
dFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgpAQCAtNzksNiArODAsOCBAQCBwdWJsaWM6
CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TV2luZG93ICp3aW5kb3coKSBjb25zdCB7IHJldHVy
biBtX3dpbmRvdy5nZXQoKTsgfQogICAgIFdLV2ViVmlldyAqd2ViVmlldygpIGNvbnN0OworCisg
ICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3NoZWV0UmVjdDsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC05OSw2ICsxMDIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYnJpbmdUb0Zyb250KCk7CiAgICAgdm9pZCBzYXZlKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRF
bmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpOworICAgIHZvaWQgc2V0U2hlZXRSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7
CiAgICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2hv
d0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwpAQCAtMTEzLDYg
KzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpOwogICAg
IHZvaWQgcGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
Y29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lk
IHBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29u
dGVudCk7CisgICAgdm9pZCBwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmKTsKICAgICB2b2lkIHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBw
bGF0Zm9ybU9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBwbGF0Zm9y
bVNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKQEAgLTEy
OCw2ICsxMzMsNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gbV93aW5kb3c7
CiAgICAgUmV0YWluUHRyPFdLUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcj4gbV9v
YmpDQWRhcHRlcjsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0YWluUHRyPE5TVVJMPj4gbV9zdWdn
ZXN0ZWRUb0FjdHVhbFVSTE1hcDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9zaGVldFJlY3Q7
CiAjZW5kaWYKICNpZiBQTEFURk9STShHVEspCiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXcgeyBu
dWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGJjNTkxZjQ5OTgyNDExZTQ1NWE2
YTk3NGM1YjdlMWY4ZjI1MmI5MDEuLmI3ODcyMzVlZDgwZDYwNDcyZTM2YzVhODAwYTliZDFiODU2
NWZlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3Bl
Y3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw4IEBAIG1lc3NhZ2Vz
IC0+IFJlbW90ZVdlYkluc3BlY3RvclByb3h5IHsKICAgICBTYXZlKFN0cmluZyBmaWxlbmFtZSwg
U3RyaW5nIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykKICAg
ICBBcHBlbmQoU3RyaW5nIGZpbGVuYW1lLCBTdHJpbmcgY29udGVudCkKIAorICAgIFNldFNoZWV0
UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVjdCkKKwogICAgIFN0YXJ0V2luZG93RHJhZygpCiAK
ICAgICBPcGVuSW5OZXdUYWIoU3RyaW5nIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA2ZWQwZTA4ODEyOGE4MGEwMzc3NDAzZjYyZjhi
NjJhYmMzOWNhNzI0Li41NmRjYTA1Y2RmYTk0YTA3MTUwMGU0Yjg5OWMxNGNlNzA0ODdkZDM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0z
MjUsNiArMzI1LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93
V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRo
KHdpZHRoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0U2hlZXRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBwbGF0Zm9ybVNldFNoZWV0UmVjdChyZWN0KTsKK30K
Kwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBwbGF0
Zm9ybVN0YXJ0V2luZG93RHJhZygpOwpAQCAtNjg5LDYgKzY5NCwxMSBAQCB2b2lkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
U2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaAppbmRleCA5YjMwNTgyMDUxZTUxYzAxNmE0ZDUxOWU1NDcyYjNlYTgyNzI0
NTI0Li42YWFlYjgxZGU2MzJlYmZiYWM3ZDc3NjExNDgxODcxNmU4MmE2MDE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGls
aXRpZXMuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5u
ZWwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgpAQCAtMTIwLDYgKzEyMSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGFjaG1lbnRW
aWV3RGlkQ2hhbmdlKE5TVmlldyAqb2xkVmlldywgTlNWaWV3ICpuZXdWaWV3KTsKICAgICB2b2lk
IGF0dGFjaG1lbnRXaWxsTW92ZUZyb21XaW5kb3coTlNXaW5kb3cgKm9sZFdpbmRvdyk7CiAgICAg
dm9pZCBhdHRhY2htZW50RGlkTW92ZVRvV2luZG93KE5TV2luZG93ICpuZXdXaW5kb3cpOworCisg
ICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3NoZWV0UmVjdDsgfQogI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xNDMsNiArMTQ2
LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQp
OwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7CiAKKyAgICB2b2lk
IHNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKKwogICAgIHZvaWQgc3Rh
cnRXaW5kb3dEcmFnKCk7CiAKICAgICBib29sIGlzUHJvZmlsaW5nUGFnZSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNQcm9maWxpbmdQYWdlOyB9CkBAIC0xOTcsNiArMjAyLDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldEF0dGFjaGVkV2lu
ZG93SGVpZ2h0KHVuc2lnbmVkKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dX
aWR0aCh1bnNpZ25lZCk7CisgICAgdm9pZCBwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5n
JiBjb250ZW50LCBib29sIGJhc2U2NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpOwogICAgIHZv
aWQgcGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBj
b250ZW50KTsKQEAgLTI2Niw2ICsyNzIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5n
LCBSZXRhaW5QdHI8TlNVUkw+PiBtX3N1Z2dlc3RlZFRvQWN0dWFsVVJMTWFwOwogICAgIFJ1bkxv
b3A6OlRpbWVyPFdlYkluc3BlY3RvclByb3h5PiBtX2Nsb3NlRnJvbnRlbmRBZnRlckluYWN0aXZp
dHlUaW1lcjsKICAgICBTdHJpbmcgbV91cmxTdHJpbmc7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0
IG1fc2hlZXRSZWN0OwogICAgIGJvb2wgbV9pc09ic2VydmluZ0NvbnRlbnRMYXlvdXRSZWN0IHsg
ZmFsc2UgfTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5z
cGVjdG9yUHJveHlDbGllbnQ+IG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0Y2NlMGZmMmVhYjg0
ZTE2OGNlYjBmMzMyMWFiMjNhZGYzMzhmNzFhLi4xMjg0YmQ0YTc1MmUyNzY0M2JkZWVmM2RjZmQ0
ZGFjZWExMDMyMDgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJ
bnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDgsNSArNDgsNyBAQCBtZXNzYWdlcyAtPiBX
ZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQg
aGVpZ2h0KQogICAgIFNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAKKyAg
ICBTZXRTaGVldFJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0IHJlY3QpCisKICAgICBTdGFydFdpbmRv
d0RyYWcoKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKaW5kZXggOTJlYWQwNDVlOGI4ZmMyZTRiOTkz
NDQyNmJkMTBhNGE4ZTU5ZjlkYy4uYzFhYzA0M2IzMzA0NmQxNTc1MDZkMDY1NjEzZWE3Y2VjZDAw
NGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCkBAIC0xMDMsNiArMTAzLDEwIEBAIHZvaWQgUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0
IFN0cmluZyYpCiB7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
U2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4
IDY5NzJiMzA2MWM0YzM1OGQyM2U1NDFiYTI0NTI5YjQyOGZhNDNhNTkuLjI4YzIwNzhmYThhYmI3
NzBiMTM2MDVmOTBlOGY2MmMxZTMxOGI4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtNDQ0LDYgKzQ0NCwxMSBA
QCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgo
dW5zaWduZWQgd2lkdGgpCiAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6
ZShXRUJLSVRfV0VCX1ZJRVdfQkFTRShpbnNwZWN0ZWRQYWdlKCktPnZpZXdXaWRnZXQoKSksIHdp
ZHRoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3Qo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eU1hYy5tbQppbmRleCA1NGU2ZTI5MTMxZGQw
MzMxOTUzNTcwYjYxYjk0N2JlYzBjNWE5MjYxLi43NjBhMWQwMDlkZTIzYzZjMmI1NThhNWZkM2Ux
YTUzYjViYzM4NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5TWFjLm1tCkBAIC00Myw3ICs0Myw3IEBACiAjaW1w
b3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0
Lmg+CiAKLUBpbnRlcmZhY2UgV0tSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIDog
TlNPYmplY3QgPFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4geworQGludGVyZmFj
ZSBXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgOiBOU09iamVjdCA8TlNXaW5k
b3dEZWxlZ2F0ZSwgV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlPiB7CiAgICAgV2Vi
S2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSogX2luc3BlY3RvclByb3h5OwogfQogLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6KFdlYktpdDo6UmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHkqKWluc3BlY3RvclByb3h5OwpAQCAtNTEsNiArNTEsMTMgQEAgQGVu
ZAogCiBAaW1wbGVtZW50YXRpb24gV0tSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVy
CiAKKy0gKE5TUmVjdCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHdpbGxQb3NpdGlvblNoZWV0
OihOU1dpbmRvdyAqKXNoZWV0IHVzaW5nUmVjdDooTlNSZWN0KXJlY3QKK3sKKyAgICBpZiAoX2lu
c3BlY3RvclByb3h5KQorICAgICAgICByZXR1cm4gTlNNYWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJv
eHktPnNoZWV0UmVjdCgpLmhlaWdodCgpLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLndp
ZHRoKCksIDApOworICAgIHJldHVybiByZWN0OworfQorCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTooV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eSopaW5zcGVjdG9yUHJveHkKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKQEAg
LTg5LDYgKzk2LDcgQEAgV2ViUGFnZVByb3h5KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1DcmVhdGVGcm9udGVuZFBhZ2VBbmRXaW5kb3coKQogICAgIFttX2luc3BlY3RvclZpZXcu
Z2V0KCkgc2V0RGVsZWdhdGU6bV9vYmpDQWRhcHRlci5nZXQoKV07CiAKICAgICBtX3dpbmRvdyA9
IFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVGcm9udGVuZFdpbmRvdyhOU1plcm9SZWN0LCBXZWJJ
bnNwZWN0b3JQcm94eTo6SW5zcGVjdGlvblRhcmdldFR5cGU6OlJlbW90ZSk7CisgICAgW21fd2lu
ZG93IHNldERlbGVnYXRlOm1fb2JqQ0FkYXB0ZXIuZ2V0KCldOwogICAgIFttX3dpbmRvdyBzZXRG
cmFtZUF1dG9zYXZlTmFtZTpAIldLUmVtb3RlV2ViSW5zcGVjdG9yV2luZG93RnJhbWUiXTsKIAog
ICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBtX3dpbmRvdy5nZXQoKS5jb250ZW50VmlldzsKQEAg
LTIwNyw2ICsyMTUsMTEgQEAgdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1B
cHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFMKICAgICBpbnNwZWN0b3JQ
YWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OkRpZEFw
cGVuZChbYWN0dWFsVVJMIGFic29sdXRlU3RyaW5nXSksIGluc3BlY3RvclBhZ2UtPnBhZ2VJRCgp
KTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJl
Y3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIG1fc2hlZXRSZWN0ID0gcmVjdDsKK30K
Kwogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWco
KQogewogICAgIHdlYlZpZXcoKS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4
IDk3ODEyZmY4OWJjNDAxZTFmYTY4N2E1MWQzNTkyMjkxNTgxOWE1M2UuLmJlMzc4OWE5MDQ5MjU5
NGQwZjY5NDEyN2QzYzdmOWQxNjMxYWM3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgc3Rh
dGljIGNvbnN0IFNlY29uZHMgd2ViVmlld0Nsb3NlVGltZW91dCB7IDFfbWluIH07CiAKIHN0YXRp
YyB2b2lkKiBrV2luZG93Q29udGVudExheW91dE9ic2VydmVyQ29udGV4dCA9ICZrV2luZG93Q29u
dGVudExheW91dE9ic2VydmVyQ29udGV4dDsKIAotQGludGVyZmFjZSBXS1dlYkluc3BlY3RvclBy
b3h5T2JqQ0FkYXB0ZXIgKCkgPFdLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KK0Bp
bnRlcmZhY2UgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyICgpIDxOU1dpbmRvd0RlbGVn
YXRlLCBXS0luc3BlY3RvclZpZXdDb250cm9sbGVyRGVsZWdhdGU+CiAKIC0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFdlYkluc3BlY3RvclByb3h5OihXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Kilp
bnNwZWN0b3JQcm94eTsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKQEAgLTkzLDYgKzkzLDEzIEBAIC0g
KHZvaWQpaW52YWxpZGF0ZQogICAgIF9pbnNwZWN0b3JQcm94eSA9IG51bGxwdHI7CiB9CiAKKy0g
KE5TUmVjdCl3aW5kb3c6KE5TV2luZG93ICopd2luZG93IHdpbGxQb3NpdGlvblNoZWV0OihOU1dp
bmRvdyAqKXNoZWV0IHVzaW5nUmVjdDooTlNSZWN0KXJlY3QKK3sKKyAgICBpZiAoX2luc3BlY3Rv
clByb3h5KQorICAgICAgICByZXR1cm4gTlNNYWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJveHktPnNo
ZWV0UmVjdCgpLmhlaWdodCgpLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLndpZHRoKCks
IDApOworICAgIHJldHVybiByZWN0OworfQorCiAtICh2b2lkKXdpbmRvd0RpZE1vdmU6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkKQEAg
LTcxNCw2ICs3MjEsMTEgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRh
Y2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRoKQogICAgIGluc3BlY3RlZFZpZXdGcmFtZURp
ZENoYW5nZSh3aWR0aCk7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0
U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBtX3NoZWV0UmVjdCA9IHJl
Y3Q7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFn
KCkKIHsKICAgICBbbV9pbnNwZWN0b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XS0+X3BhZ2UtPnN0
YXJ0V2luZG93RHJhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2lu
L1dlYkluc3BlY3RvclByb3h5V2luLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9X
ZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKaW5kZXggN2I5NmVlNWQ2ZjQzN2Q3Yjk0NDZiZGEzM2Q1
MGI2NzgwODgwNTMxYy4uYTdmY2NlMTA5OTc5NzJhYzQ1MjIxZjIyN2JhNzRjMTFlMDJiMjBmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5
V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJv
eHlXaW4uY3BwCkBAIC0zNTgsNiArMzU4LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCB3aWR0aCkKICAgICA6OlNldFdp
bmRvd1BvcyhtX2luc3BlY3RlZFZpZXdXaW5kb3csIDAsIHdpbmRvd0luZm8ubGVmdCwgd2luZG93
SW5mby50b3AsIHdpbmRvd0luZm8ucGFyZW50V2lkdGggLSB3aW5kb3dJbmZvLmxlZnQsIHdpbmRv
d0luZm8ucGFyZW50SGVpZ2h0IC0gd2luZG93SW5mby50b3AsIFNXUF9OT1pPUkRFUik7CiB9CiAK
K3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogYm9vbCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclBy
b3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94
eVdQRS5jcHAKaW5kZXggZjA2NTdmNDEwN2Q5MmIzZmIzMDAzMzE3OTA3MWQ0MDdjNmIyMjlhOC4u
MGY0MjY1NjMyOTNkYmYyY2NkZmY2NDY0NjdhNDQ2YjE3MmJlMzhmMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCkBAIC0x
MzQsNiArMTM0LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNo
ZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3Qm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVj
dG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5z
cGVjdG9yVUkuY3BwCmluZGV4IGYwMTg0NTljN2U1MjlhNzRlNTRmM2YwZGUzNTgyMzAyYjI5M2Mz
MzAuLjA1NDQwNDU2ZjQxZGIxYzRmMDkwNWI1NWVkZmEzODQxZmY3YzFmZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0
b3JVSS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRl
SW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9E
T01XcmFwcGVyV29ybGQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
QEAgLTk5LDYgKzEwMCwxMSBAQCB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExv
YWRlZCgpCiAgICAgYnJpbmdUb0Zyb250KCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9y
VUk6OmNoYW5nZVNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OlNldFNoZWV0UmVjdChyZWN0KSwgbV9wYWdlLnBh
Z2VJRCgpKTsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6c3RhcnRXaW5kb3dEcmFn
KCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U3RhcnRXaW5kb3dE
cmFnKCksIG1fcGFnZS5wYWdlSUQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaAppbmRleCBmOWI2N2IzMWZjZmQw
NDk4NDhmNDBmYzdmOGY0ZGU3NThlNjgxODMwLi42MjEzMTEwODIxYWU4MTQ3NjVjY2RlODVhYmUx
ZjgxNzE5YTZjNmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgRmxvYXRSZWN0Owog
fQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8v
IFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RD
bGVhcmVkKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3Zl
V2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcAppbmRleCBlZjI2YTAx
YTA5ZDhlZDVlNjc1ZWE4MTlhZmIzMDc4ZTRkZGIwYTBiLi4wMmNjZDU3ZGFiNTkwZjQ1NjEyMmU5
MDkwZThmNjYwOTYwZjQ3NWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBlcldvcmxkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg+CkBAIC0yNDcsNiArMjQ4LDExIEBAIHZvaWQgV2ViSW5zcGVj
dG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNldEF0dGFjaGVkV2luZG93V2lkdGgod2lkdGgpLCBt
X2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hh
bmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJ
bnNwZWN0b3JQcm94eTo6U2V0U2hlZXRSZWN0KHJlY3QpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlm
aWVyKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmlu
ZyYgdXJsKQogewogICAgIGlmIChtX2JhY2tlbmRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggYjE1MzdkYmFk
MGJjZTEyYmU1MWYxZjQ5NzNkYTZlN2EwMTg1MzJhOC4uODM4MWJmMWNlZGVjYjY1YzVkNDc0NzVj
MjJiN2QzZGI2MmZiZmQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3JVSS5oCkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9sbGVyOwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOwor
Y2xhc3MgRmxvYXRSZWN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwMSw2ICsxMDIs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVk
KSBvdmVycmlkZTsKIAorICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5n
JiB1cmwpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjYW5TYXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JD
bGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnRJT1MubW0KaW5kZXggZThjMmVlNTAxZmNmNmZjOGZiZmZiNzJhZjcwYjhi
ZGE1ZjRkMWNlMC4uMDcxNjk4MDU0MDM2NjgzMDA0MzVmZDQ0M2IwMjkzNTYzODc0OTI0ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAi
V2ViTm9kZUhpZ2hsaWdodGVyLmgiCiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBv
cnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVj
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTEz
MCw2ICsxMzEsNyBAQCB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5k
b3coRG9ja1NpZGUpIHsgfQogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGV0YWNo
V2luZG93KCkgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hl
ZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSB7IH0KK3ZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OnNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIHZv
aWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBT
dHJpbmcmKSB7IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNob3dDZXJ0aWZp
Y2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5k
ZXggOGNlOTdiODYyYWRiOGRmZjVjYjZjYzM2NDEzYjM5NTk4YzNmMzkwNS4uMjliNWNhNDY3Yzky
YjY2NjM5MTA2NzljMDQxNTU2OTJjNTI5MGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAg
LTI3LDYgKzI3LDcgQEAKICAqLwogCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0luc3BlY3RvckNsaWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JG
cm9udGVuZENsaWVudExvY2FsLmg+CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgpAQCAtMTI1LDYg
KzEyNiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNp
Z25lZCBoZWlnaHQpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1
bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlOwogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisg
ICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBt
X3NoZWV0UmVjdDsgfQorI2VuZGlmCisgICAgdm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiByZWN0KSBvdmVycmlkZSB7IG1fc2hlZXRSZWN0ID0gcmVjdDsgfQorCiAg
ICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbmV3VVJMKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUlu
Zm8mKSBvdmVycmlkZTsKIApAQCAtMTQwLDUgKzE0Niw2IEBAIHByaXZhdGU6CiAgICAgUmV0YWlu
UHRyPFdlYkluc3BlY3RvcldpbmRvd0NvbnRyb2xsZXI+IG1fZnJvbnRlbmRXaW5kb3dDb250cm9s
bGVyOwogICAgIFN0cmluZyBtX2luc3BlY3RlZFVSTDsKICAgICBIYXNoTWFwPFN0cmluZywgUmV0
YWluUHRyPE5TVVJMPj4gbV9zdWdnZXN0ZWRUb0FjdHVhbFVSTE1hcDsKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgbV9zaGVldFJlY3Q7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0K
aW5kZXggNjMxNWU2OGI2Mjk2YmM3ZDY0NjhkMGY2MTk3Y2FhNWQyM2I2ODg1Ni4uMmZlNTMxMjc0
N2JkYmRlODIzZDRhY2U0MWY1Y2JjNjA1Y2ZiODlkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bQpAQCAtNTE1LDggKzUxNSwxMCBAQCAtIChOU1dpbmRvdyAqKXdpbmRvdwogCiAtIChOU1JlY3Qp
d2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3aWxsUG9zaXRpb25TaGVldDooTlNXaW5kb3cgKilz
aGVldCB1c2luZ1JlY3Q6KE5TUmVjdClyZWN0CiB7CisgICAgaWYgKF9mcm9udGVuZENsaWVudCkK
KyAgICAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgX2Zyb250ZW5kQ2xpZW50LT5zaGVldFJlY3Qo
KS5oZWlnaHQoKSwgX2Zyb250ZW5kQ2xpZW50LT5zaGVldFJlY3QoKS53aWR0aCgpLCAwKTsKKwog
ICAgIC8vIEFwcEtpdCBkb2Vzbid0IGtub3cgYWJvdXQgb3VyIEhUTUwgdG9vbGJhciwgYW5kIHBs
YWNlcyB0aGUgc2hlZXQganVzdCBhIGxpdHRsZSBiaXQgdG9vIGhpZ2guCi0gICAgLy8gRklYTUU6
IEl0IHdvdWxkIGJlIGJldHRlciB0byBnZXQgdGhlIGhlaWdodCBvZiB0aGUgdG9vbGJhciBhbmQg
dXNlIGl0IGluIHRoaXMgY2FsY3VsYXRpb24uCiAgICAgcmVjdC5vcmlnaW4ueSAtPSAxOwogICAg
IHJldHVybiByZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggYjJkYWVkYjZj
MjNlN2NmMzA2ZjA3ZTNmYTNjNmRiZjQ4OWM0OWNlZS4uYTBkNzY5ZDIxZDNhYzA0MzU1ZTk2YTlj
ZjJkYjQ2ZWY2NWZkYjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC0zNDAsNiAr
MzQwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNldEF0dGFjaGVkV2lu
ZG93V2lkdGgodW5zaWduZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAordm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENs
aWVudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmIG5ld1VSTCkKIHsKICAgICBt
X2luc3BlY3RlZFVSTCA9IG5ld1VSTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggNzk2NmNm
MmM3Y2MwMmE4YTljZjVlODhhYjA2YmI1NjQ3ZjQ0MTFjMC4uMTczM2E3MjcyZjgwMjc5OTczOWIy
MGMyYjBmMDVhNWFiY2Y4YTQwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTEwOCw2ICsx
MDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSBv
dmVycmlkZTsKIAorICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVj
dCYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBpbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFdURjo6
U3RyaW5nJiBuZXdVUkwpIG92ZXJyaWRlOwogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0
IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIG92ZXJyaWRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367174</attachid>
            <date>2019-04-10 16:06:37 -0700</date>
            <delta_ts>2019-04-10 18:46:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196722-20190410160636.patch</filename>
            <type>text/plain</type>
            <size>36310</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiMjAwZjM5NDgzZDY4MWIzOGM4YzE4ZGU3MTkxMzk0Njc2ZmMxZjQ2Li4x
YjBhNDExMjYyYWNmMTYxZDNjMDMzZTJiZGZlNDE1MDE5YTQ0ZjJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVk
IHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisK
KyAgICAgICAgTm8gd2ViIG9ic2VydmFibGUgY2hhbmdlLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZVNoZWV0UmVjdCk6IEFkZGVkLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKworICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0dWJGcm9udGVuZDo6c2V0
U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJlc3Bv
bnNlLl9kb3dubG9hZEF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggYjNhMzcx
ZmViZWM4YjViY2U1YmUwNDg2NDQxYmY4NDUxMGMxNDM4ZC4uODUyOWNiZDg2NjY3NzI5ZjExODBm
YWQ1YTYwZjhkN2NiNzVmZTgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVkIHVuZGVy
bmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80
OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisKKyAgICAg
ICAgKiBVc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qczoKKyAgICAgICAgKFdJLmNvbnRlbnRMb2Fk
ZWQpOgorCiAyMDE5LTA0LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBUaW1lbGluZXM6IGNhbid0IHJlbGlhYmx5IHN0b3Avc3Rh
cnQgYSByZWNvcmRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTk2MGYxODgwZTlmOTM0NjlkYjg4ZTQ4NDY1ZmQ0
ODE1NTU5MWRkNC4uNTFlYTM3ZmUwMWU4MWIzNDNiNmMxY2VkYTRiM2QwMWQ3YzkyNTdhZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0NiBAQAorMjAxOS0wNC0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNz
b0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2F2ZSBzaGVldCBzaG91bGQg
YmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJhciB3aGVuIGRldGFjaGVkCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3MjIKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkg
SGF0Y2hlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5o
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclVJOjpjaGFuZ2VTaGVldFJlY3QpOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvclByb3h5OjpzaGVldFJlY3QgY29uc3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6c2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1dlYkluc3Bl
Y3RvclByb3h5T2JqQ0FkYXB0ZXIgd2luZG93OndpbGxQb3NpdGlvblNoZWV0OnVzaW5nUmVjdDpd
KTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNl
dFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9y
UHJveHlXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYkluc3Bl
Y3RvclByb3h5V1BFLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNw
ZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Jl
bW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eTo6c2hlZXRSZWN0IGNvbnN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6OnNldFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRS
ZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFw
dGVyIHdpbmRvdzp3aWxsUG9zaXRpb25TaGVldDp1c2luZ1JlY3Q6XSk6IEFkZGVkLgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVu
ZFBhZ2VBbmRXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKwogMjAxOS0wNC0xMCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYXIgQ2FjaGUgU3RvcmFnZSBz
dHJ1Y3R1cmVzIGJlZm9yZSByZW1vdmluZyBhbGwgcmVsYXRlZCBmaWxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9p
b3MvQ2hhbmdlTG9nCmluZGV4IDM0MmU5ODkxNDUyYjUyNDc3YTRlZmRkMDczMzFiMWE5MTBmNWI1
NDUuLmM4NWM0ZTczNmI3MGVjZTMwZjQ0MWYzODliMjNkMDFmMzgyZDg0MzUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wNC0xMCAgRGV2aW4gUm91
c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjogc2F2ZSBz
aGVldCBzaG91bGQgYmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJhciB3aGVuIGRldGFj
aGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTY3
MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50Ojpz
ZXRTaGVldFJlY3QpOiBBZGRlZC4KKwogMjAxOS0wMy0wMyAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIENvbnRlbnQgb2Jz
ZXJ2YXRpb24gc2hvdWxkIGJlIGxpbWl0ZWQgdG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOTQ2ODIxNjQ3NzFiMzMxYjBlODY1YTM3N2ZkNTY2
OWViOGM2ZWQ1Yi4uNGQxMTM0OGZkYTAyYzQ5YWIyZDMzNmFiOWI2N2M3OGVjZmM5ODdkNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA0LTEwICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBzYXZlIHNoZWV0IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRoZSB0YWIgYmFyIHdo
ZW4gZGV0YWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6c2hlZXRSZWN0IGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dDb250cm9s
bGVyIHdpbmRvdzp3aWxsUG9zaXRpb25TaGVldDp1c2luZ1JlY3Q6XSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQt
MTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBZGQgU1BJIFdLTmF2aWdhdGlvblJlc3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDc4MjliNzdmYjdjNmFiNWU5NTQxMWUxZTcyOWQzNGFm
OWQ3MTJlOGQuLjEyNjVhNmU5OGY5ODdiNjhhYzQ0MzczODUwNjY2ZTBkOTc4NjYzZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0xMCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2F2ZSBzaGVldCBzaG91bGQgYmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJhciB3aGVu
IGRldGFjaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTY3MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hl
ZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0
ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJlc3BvbnNl
Ll9kb3dubG9hZEF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCAzODY1OTg4NjczN2EzMDcwYWNlN2Y3OTc1MmM1
OTViODI1ZTQxM2Y4Li4wMGNlODI1ZmRmMTVlN2M2YjM1M2UxZTU0Njg5MzY0OThhOGZiZjRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQuaApAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZs
b2F0UmVjdDsKKwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGljOgogICAg
IGVudW0gY2xhc3MgRG9ja1NpZGUgewpAQCAtNzAsNiArNzIsOCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2ln
bmVkKSA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVk
V2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOworCiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIG9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVybCkgPSAw
OwogCiAgICAgdmlydHVhbCBib29sIGNhblNhdmUoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5k
ZXggMjQzZDg0OWM5YmYxYTFlNTlkOGZhNzQ4NzQ4OTJiMjY1MjIyNmUwMy4uNWY1ZDExYWQ2NTcz
OTkyYTUyMWJjYjY1MzA2MTVjMjE4YTcyNmNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAtMjIz
LDYgKzIyMywxMSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgc2V0QXR0YWNoZWRXaW5kb3dX
aWR0aChhdHRhY2hlZFdpZHRoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAgIHNldFNo
ZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpv
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgVXNlckdlc3R1cmVJbmRpY2F0
b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAppbmRl
eCA1MTM5ZWVlMTZiNTY5ZGUxMjk4ZjlkYmE5ZGRjMDdhNWM2NmU4YzMwLi5hZTI2Y2NhZTljYTk5
YzVkNWMyYWU2ZTQ5NjY3YWVhODg2N2IxZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKQEAgLTM4LDYgKzM4
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBG
cmFtZTsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBJbnNwZWN0b3JCYWNrZW5k
RGlzcGF0Y2hUYXNrOwpAQCAtNzAsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCByZXF1ZXN0U2V0RG9ja1NpZGUoRG9ja1NpZGUpIGZpbmFsOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIGZpbmFsOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25l
ZCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3Qg
RmxvYXRSZWN0JikgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvcGVuSW5OZXdUYWIo
Y29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOwogICAgIGJvb2wgY2FuU2F2ZSgpICBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBib29sLCBib29sKSBvdmVycmlkZSB7IH0KQEAgLTExNiw2ICsxMTgsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpID0g
MDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgp
OwogCisgICAgdmlydHVhbCB2b2lkIHNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSA9IDA7CisKIHByaXZhdGU6CiAgICAgYm9vbCBldmFsdWF0ZUFzQm9vbGVhbihjb25zdCBT
dHJpbmcmIGV4cHJlc3Npb24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkxvYWQoY29uc3QgU3RyaW5n
JiBleHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5jcHAKaW5kZXggNTM2OGU3NDY1MDA3MWJmODQ5NTFmYThjNDY3MzNjOTIx
NzQzMzZlZi4uNjRkMWFiYWVjMjc4YjFmZTE0MmUyMTYxMmIxNjU5OWI4OTQ5Y2IyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkVkaXRv
ci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVk
ZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIaXRU
ZXN0UmVzdWx0LmgiCkBAIC0yNDIsNiArMjQzLDEyIEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRoKQogICAgICAgICBtX2Ns
aWVudC0+Y2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0aCh3aWR0aCk7CiB9CiAKK3ZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0OjpzZXRTaGVldFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgdW5zaWduZWQg
d2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAgIG1f
Y2xpZW50LT5jaGFuZ2VTaGVldFJlY3QoRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpKTsK
K30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnN0YXJ0V2luZG93RHJhZygpCiB7CiAg
ICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5oCmluZGV4IDc2YTZmYjRkMzkxOWI1ZDA3YTdhNTkxMzUwZjZmYTdjZjMx
NjBkZTQuLjMwMTdjYjc2YzA5ZTVkMjdlZTQxNmVkNWM5YmM0N2QzYjBlY2RjYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTcy
LDYgKzcyLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5z
aWduZWQpOwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7CiAKKyAg
ICB2b2lkIHNldFNoZWV0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCB1bnNpZ25lZCB3aWR0aCwgdW5z
aWduZWQgaGVpZ2h0KTsKKwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBt
b3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKaW5kZXggYjFlNGRlYmZh
NmNlNDY5MTZiMWFjYjc4M2YyZjhhNWI0NDgwMzUyYi4uMDIzYTM5Y2JjOGYwODg0ZTM5MGIyOTgy
MmQxOWJkYWZmYTkxMjk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTUzLDYgKzUzLDggQEAKICAgICB2b2lkIHNldEF0
dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKICAgICB2b2lkIHNldEF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgbG9uZyB3aWR0aCk7CiAKKyAgICB2b2lkIHNldFNo
ZWV0UmVjdCh1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHksIHVuc2ln
bmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKwogICAgIHZvaWQgc3RhcnRX
aW5kb3dEcmFnKCk7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkodW5yZXN0cmljdGVkIGZsb2F0IHgs
IHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CmluZGV4IDRmY2Q2YTdlMmI1ZGJhZjJlNmJkZTc5NTVjZjg4NTg2MmVhMDUyODIuLmQxMjkwNjZh
YTZhOWVkZTdiNTA0MWIyNWM3MDM0MTQxOTNlYTQ1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKQEAgLTMyMSw2ICszMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2hvd0Nl
cnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRlSW5mbyYpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0QXR0
YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmluYWwgeyB9CisgICAgdm9pZCBzZXRTaGVldFJl
Y3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWwgeyB9CiAKICAgICB2b2lkIHNlbmRNZXNzYWdlVG9G
cm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOwogICAgIENvbm5lY3Rpb25UeXBl
IGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29ubmVjdGlvblR5cGU6Okxv
Y2FsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9CYXNlL01h
aW4uanMKaW5kZXggMDRjZjU0MzFiNTNjOGFmYTU3NjE2ODAxZWRmYzdjN2ZjYTVkY2M5Yy4uN2Jh
NDY3YTAwN2ZmMjg3ZWU3OTI0MDQ0M2RmOTc5NzIwZjhhNjRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtNTgyLDYgKzU4Miw5
IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIEluc3BlY3RvckZyb250
ZW5kQVBJLmxvYWRDb21wbGV0ZWQoKTsKICAgICB9KTsKIAorICAgIGxldCBtYWluRWxlbWVudFJl
Y3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpLmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOworICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zZXRTaGVldFJlY3QobWFpbkVsZW1lbnRS
ZWN0LngsIG1haW5FbGVtZW50UmVjdC55LCBtYWluRWxlbWVudFJlY3Qud2lkdGgsIG1haW5FbGVt
ZW50UmVjdC5oZWlnaHQpOworCiAgICAgLy8gVGVsbCB0aGUgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
IHdlIGxvYWRlZCwgd2hpY2ggY2F1c2VzIHRoZSB3aW5kb3cgdG8gZGlzcGxheQogICAgIC8vIGFu
ZCBwZW5kaW5nIEluc3BlY3RvckZyb250ZW5kQVBJIGNvbW1hbmRzIHRvIGJlIHNlbnQuCiAgICAg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IDNjOWRhNTNkODViYzlh
YzJiMjM1MTEzYzgwNjkxNzcyNzkxMDIzMWEuLmRiZTJhYzAxOTNiN2U3ZTIyMWJlZjhlYjQ1NmNi
MTliZDk0MTMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdl
Ykluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTExNyw2ICsxMTcsMTEgQEAgdm9pZCBSZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eTo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBjb25zdCBT
dHJpbmcmIGMKICAgICBwbGF0Zm9ybUFwcGVuZChzdWdnZXN0ZWRVUkwsIGNvbnRlbnQpOwogfQog
Cit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzZXRTaGVldFJlY3QoY29uc3QgRmxvYXRS
ZWN0JiByZWN0KQoreworICAgIHBsYXRmb3JtU2V0U2hlZXRSZWN0KHJlY3QpOworfQorCiB2b2lk
IFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzdGFydFdpbmRvd0RyYWcoKQogewogICAgIHBsYXRm
b3JtU3RhcnRXaW5kb3dEcmFnKCk7CkBAIC0xNzUsNiArMTgwLDcgQEAgV2ViUGFnZVByb3h5KiBS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBhZ2VBbmRXaW5k
b3coKQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQo
KSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25zdCBT
dHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
IHsgfQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybVN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90ZVdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUlu
Zm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0
b3JQcm94eS5oCmluZGV4IDllY2I0MmIwODhmODgyZjZjZjhlYTViZTk0ZTNiMjViMjA3ZjI0Yzku
LjBmZDBlODNhNWI1NjA0ZDdkNmVjNWY5MTY3NTIwZmExOTMwZGRjYWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMjcsNiAr
MjcsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2Vp
dmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgpAQCAtNzksNiArODAsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5T
V2luZG93ICp3aW5kb3coKSBjb25zdCB7IHJldHVybiBtX3dpbmRvdy5nZXQoKTsgfQogICAgIFdL
V2ViVmlldyAqd2ViVmlldygpIGNvbnN0OworCisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShHVEspCkBAIC05OSw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYnJp
bmdUb0Zyb250KCk7CiAgICAgdm9pZCBzYXZlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0
IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsK
ICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGNv
bnRlbnQpOworICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
OwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBvcGVuSW5OZXdUYWIoY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6
OkNlcnRpZmljYXRlSW5mbyYpOwpAQCAtMTEzLDYgKzExNyw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpOwogICAgIHZvaWQgcGxhdGZvcm1TYXZlKGNvbnN0IFN0
cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVk
LCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lkIHBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmlu
ZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCk7CisgICAgdm9pZCBwbGF0Zm9ybVNl
dFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIHBsYXRmb3Jt
U3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5Jbk5ld1RhYihjb25zdCBT
dHJpbmcmIHVybCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBXZWJD
b3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKQEAgLTEyOCw2ICsxMzMsNyBAQCBwcml2YXRlOgogICAg
IFJldGFpblB0cjxOU1dpbmRvdz4gbV93aW5kb3c7CiAgICAgUmV0YWluUHRyPFdLUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcj4gbV9vYmpDQWRhcHRlcjsKICAgICBIYXNoTWFwPFN0
cmluZywgUmV0YWluUHRyPE5TVVJMPj4gbV9zdWdnZXN0ZWRUb0FjdHVhbFVSTE1hcDsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgbV9zaGVldFJlY3Q7CiAjZW5kaWYKICNpZiBQTEFURk9STShHVEsp
CiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXcgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGJjNTkxZjQ5OTgyNDExZTQ1NWE2YTk3NGM1YjdlMWY4ZjI1MmI5MDEuLmI3ODcy
MzVlZDgwZDYwNDcyZTM2YzVhODAwYTliZDFiODU2NWZlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC0yOCw2ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVdlYkluc3BlY3RvclByb3h5
IHsKICAgICBTYXZlKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGNvbnRlbnQsIGJvb2wgYmFzZTY0
RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykKICAgICBBcHBlbmQoU3RyaW5nIGZpbGVuYW1lLCBT
dHJpbmcgY29udGVudCkKIAorICAgIFNldFNoZWV0UmVjdChXZWJDb3JlOjpGbG9hdFJlY3QgcmVj
dCkKKwogICAgIFN0YXJ0V2luZG93RHJhZygpCiAKICAgICBPcGVuSW5OZXdUYWIoU3RyaW5nIHVy
bCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRl
eCA2ZWQwZTA4ODEyOGE4MGEwMzc3NDAzZjYyZjhiNjJhYmMzOWNhNzI0Li41NmRjYTA1Y2RmYTk0
YTA3MTUwMGU0Yjg5OWMxNGNlNzA0ODdkZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0zMjUsNiArMzI1LDExIEBAIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAg
cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHdpZHRoKTsKIH0KIAordm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6c2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBw
bGF0Zm9ybVNldFNoZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
c3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpOwpAQCAt
Njg5LDYgKzY5NCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFj
aGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA5YjMwNTgy
MDUxZTUxYzAxNmE0ZDUxOWU1NDcyYjNlYTgyNzI0NTI0Li42YWFlYjgxZGU2MzJlYmZiYWM3ZDc3
NjExNDgxODcxNmU4MmE2MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclByb3h5LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTIwLDYgKzEyMSw4IEBA
IHB1YmxpYzoKICAgICB2b2lkIGF0dGFjaG1lbnRWaWV3RGlkQ2hhbmdlKE5TVmlldyAqb2xkVmll
dywgTlNWaWV3ICpuZXdWaWV3KTsKICAgICB2b2lkIGF0dGFjaG1lbnRXaWxsTW92ZUZyb21XaW5k
b3coTlNXaW5kb3cgKm9sZFdpbmRvdyk7CiAgICAgdm9pZCBhdHRhY2htZW50RGlkTW92ZVRvV2lu
ZG93KE5TV2luZG93ICpuZXdXaW5kb3cpOworCisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShHVEspCkBAIC0xNDMsNiArMTQ2LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5k
b3dXaWR0aCh1bnNpZ25lZCk7CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdChjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmKTsKKwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAKICAgICBib29s
IGlzUHJvZmlsaW5nUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9maWxpbmdQYWdlOyB9CkBA
IC0xOTcsNiArMjAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNoKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsKICAgICB2
b2lkIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7CisgICAgdm9pZCBw
bGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lk
IHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNhdmUoY29uc3Qg
U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJhc2U2NEVuY29k
ZWQsIGJvb2wgZm9yY2VTYXZlQXMpOwogICAgIHZvaWQgcGxhdGZvcm1BcHBlbmQoY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KTsKQEAgLTI2Niw2ICsyNzIsNyBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNVUkw+PiBtX3N1Z2dl
c3RlZFRvQWN0dWFsVVJMTWFwOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYkluc3BlY3RvclByb3h5
PiBtX2Nsb3NlRnJvbnRlbmRBZnRlckluYWN0aXZpdHlUaW1lcjsKICAgICBTdHJpbmcgbV91cmxT
dHJpbmc7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fc2hlZXRSZWN0OwogICAgIGJvb2wgbV9p
c09ic2VydmluZ0NvbnRlbnRMYXlvdXRSZWN0IHsgZmFsc2UgfTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGllbnQ+IG1fY2xpZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5t
ZXNzYWdlcy5pbgppbmRleCA0Y2NlMGZmMmVhYjg0ZTE2OGNlYjBmMzMyMWFiMjNhZGYzMzhmNzFh
Li4xMjg0YmQ0YTc1MmUyNzY0M2JkZWVmM2RjZmQ0ZGFjZWExMDMyMDgzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgpA
QCAtNDgsNSArNDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgU2V0
QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQogICAgIFNldEF0dGFjaGVkV2lu
ZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAKKyAgICBTZXRTaGVldFJlY3QoV2ViQ29yZTo6Rmxv
YXRSZWN0IHJlY3QpCisKICAgICBTdGFydFdpbmRvd0RyYWcoKQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5j
cHAKaW5kZXggOTJlYWQwNDVlOGI4ZmMyZTRiOTkzNDQyNmJkMTBhNGE4ZTU5ZjlkYy4uYzFhYzA0
M2IzMzA0NmQxNTc1MDZkMDY1NjEzZWE3Y2VjZDAwNGI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlHdGsuY3Bw
CkBAIC0xMDMsNiArMTAzLDEwIEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK3ZvaWQgUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpCit7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRX
aW5kb3dEcmFnKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0
ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
V2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDY5NzJiMzA2MWM0YzM1OGQyM2U1NDFiYTI0
NTI5YjQyOGZhNDNhNTkuLjI4YzIwNzhmYThhYmI3NzBiMTM2MDVmOTBlOGY2MmMxZTMxOGI4OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94
eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkluc3BlY3RvclBy
b3h5R3RrLmNwcApAQCAtNDQ0LDYgKzQ0NCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgd2Via2l0
V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZShXRUJLSVRfV0VCX1ZJRVdfQkFTRShpbnNw
ZWN0ZWRQYWdlKCktPnZpZXdXaWRnZXQoKSksIHdpZHRoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94
eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eU1hYy5tbQppbmRleCA1NGU2ZTI5MTMxZGQwMzMxOTUzNTcwYjYxYjk0N2JlYzBjNWE5MjYx
Li43NjBhMWQwMDlkZTIzYzZjMmI1NThhNWZkM2UxYTUzYjViYzM4NTczIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1JlbW90ZVdlYkluc3BlY3RvclByb3h5
TWFjLm1tCkBAIC00Myw3ICs0Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmljYXRlSW5m
by5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKLUBpbnRlcmZhY2UgV0tSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIDogTlNPYmplY3QgPFdLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXJEZWxlZ2F0ZT4geworQGludGVyZmFjZSBXS1JlbW90ZVdlYkluc3BlY3RvclByb3h5
T2JqQ0FkYXB0ZXIgOiBOU09iamVjdCA8TlNXaW5kb3dEZWxlZ2F0ZSwgV0tJbnNwZWN0b3JWaWV3
Q29udHJvbGxlckRlbGVnYXRlPiB7CiAgICAgV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94
eSogX2luc3BlY3RvclByb3h5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkqKWluc3BlY3Rv
clByb3h5OwpAQCAtNTEsNiArNTEsMTMgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyCiAKKy0gKE5TUmVjdCl3aW5kb3c6KE5TV2lu
ZG93ICopd2luZG93IHdpbGxQb3NpdGlvblNoZWV0OihOU1dpbmRvdyAqKXNoZWV0IHVzaW5nUmVj
dDooTlNSZWN0KXJlY3QKK3sKKyAgICBpZiAoX2luc3BlY3RvclByb3h5KQorICAgICAgICByZXR1
cm4gTlNNYWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLmhlaWdodCgpLCBf
aW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLndpZHRoKCksIDApOworICAgIHJldHVybiByZWN0
OworfQorCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZW1vdGVXZWJJbnNwZWN0b3JQcm94eToo
V2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSopaW5zcGVjdG9yUHJveHkKIHsKICAgICBp
ZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKQEAgLTg5LDYgKzk2LDcgQEAgV2ViUGFnZVByb3h5
KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBhZ2VBbmRX
aW5kb3coKQogICAgIFttX2luc3BlY3RvclZpZXcuZ2V0KCkgc2V0RGVsZWdhdGU6bV9vYmpDQWRh
cHRlci5nZXQoKV07CiAKICAgICBtX3dpbmRvdyA9IFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVG
cm9udGVuZFdpbmRvdyhOU1plcm9SZWN0LCBXZWJJbnNwZWN0b3JQcm94eTo6SW5zcGVjdGlvblRh
cmdldFR5cGU6OlJlbW90ZSk7CisgICAgW21fd2luZG93IHNldERlbGVnYXRlOm1fb2JqQ0FkYXB0
ZXIuZ2V0KCldOwogICAgIFttX3dpbmRvdyBzZXRGcmFtZUF1dG9zYXZlTmFtZTpAIldLUmVtb3Rl
V2ViSW5zcGVjdG9yV2luZG93RnJhbWUiXTsKIAogICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBt
X3dpbmRvdy5nZXQoKS5jb250ZW50VmlldzsKQEAgLTIwNyw2ICsyMTUsMTEgQEAgdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0
ZWRVUkwsIGNvbnN0IFMKICAgICBpbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdl
czo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OkRpZEFwcGVuZChbYWN0dWFsVVJMIGFic29sdXRlU3Ry
aW5nXSksIGluc3BlY3RvclBhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQor
eworICAgIG1fc2hlZXRSZWN0ID0gcmVjdDsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogICAgIHdlYlZpZXcoKS0+X3BhZ2Ut
PnN0YXJ0V2luZG93RHJhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDk3ODEyZmY4OWJjNDAxZTFmYTY4N2E1MWQz
NTkyMjkxNTgxOWE1M2UuLmJlMzc4OWE5MDQ5MjU5NGQwZjY5NDEyN2QzYzdmOWQxNjMxYWM3ZmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94
eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgd2ViVmlld0Ns
b3NlVGltZW91dCB7IDFfbWluIH07CiAKIHN0YXRpYyB2b2lkKiBrV2luZG93Q29udGVudExheW91
dE9ic2VydmVyQ29udGV4dCA9ICZrV2luZG93Q29udGVudExheW91dE9ic2VydmVyQ29udGV4dDsK
IAotQGludGVyZmFjZSBXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgKCkgPFdLSW5zcGVj
dG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyICgpIDxOU1dpbmRvd0RlbGVnYXRlLCBXS0luc3BlY3RvclZpZXdDb250cm9s
bGVyRGVsZWdhdGU+CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYkluc3BlY3RvclByb3h5
OihXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5KilpbnNwZWN0b3JQcm94eTsKIC0gKHZvaWQpaW52
YWxpZGF0ZTsKQEAgLTkzLDYgKzkzLDEzIEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogICAgIF9pbnNw
ZWN0b3JQcm94eSA9IG51bGxwdHI7CiB9CiAKKy0gKE5TUmVjdCl3aW5kb3c6KE5TV2luZG93ICop
d2luZG93IHdpbGxQb3NpdGlvblNoZWV0OihOU1dpbmRvdyAqKXNoZWV0IHVzaW5nUmVjdDooTlNS
ZWN0KXJlY3QKK3sKKyAgICBpZiAoX2luc3BlY3RvclByb3h5KQorICAgICAgICByZXR1cm4gTlNN
YWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLmhlaWdodCgpLCBfaW5zcGVj
dG9yUHJveHktPnNoZWV0UmVjdCgpLndpZHRoKCksIDApOworICAgIHJldHVybiByZWN0OworfQor
CiAtICh2b2lkKXdpbmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7
CiAgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkKQEAgLTcxNCw2ICs3MjEsMTEgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdp
ZHRoKQogICAgIGluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSh3aWR0aCk7CiB9CiAKK3ZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYg
cmVjdCkKK3sKKyAgICBtX3NoZWV0UmVjdCA9IHJlY3Q7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBbbV9pbnNwZWN0b3JWaWV3
Q29udHJvbGxlciB3ZWJWaWV3XS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKaW5k
ZXggN2I5NmVlNWQ2ZjQzN2Q3Yjk0NDZiZGEzM2Q1MGI2NzgwODgwNTMxYy4uYTdmY2NlMTA5OTc5
NzJhYzQ1MjIxZjIyN2JhNzRjMTFlMDJiMjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC0zNTgsNiArMzU4LDEx
IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0
aCh1bnNpZ25lZCB3aWR0aCkKICAgICA6OlNldFdpbmRvd1BvcyhtX2luc3BlY3RlZFZpZXdXaW5k
b3csIDAsIHdpbmRvd0luZm8ubGVmdCwgd2luZG93SW5mby50b3AsIHdpbmRvd0luZm8ucGFyZW50
V2lkdGggLSB3aW5kb3dJbmZvLmxlZnQsIHdpbmRvd0luZm8ucGFyZW50SGVpZ2h0IC0gd2luZG93
SW5mby50b3AsIFNXUF9OT1pPUkRFUik7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwogYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zy
b250KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKaW5kZXggZjA2NTdmNDEwN2Q5
MmIzZmIzMDAzMzE3OTA3MWQ0MDdjNmIyMjlhOC4uMGY0MjY1NjMyOTNkYmYyY2NkZmY2NDY0Njdh
NDQ2YjE3MmJlMzhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dl
Ykluc3BlY3RvclByb3h5V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy93cGUv
V2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCkBAIC0xMzQsNiArMTM0LDExIEBAIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bVNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGYwMTg0NTlj
N2U1MjlhNzRlNTRmM2YwZGUzNTgyMzAyYjI5M2MzMzAuLjA1NDQwNDU2ZjQxZGIxYzRmMDkwNWI1
NWVkZmEzODQxZmY3YzFmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Q2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9yQ29udHJv
bGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk5LDYgKzEwMCwxMSBAQCB2b2lkIFJl
bW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCgpCiAgICAgYnJpbmdUb0Zyb250KCk7
CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNoYW5nZVNoZWV0UmVjdChjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OlNldFNoZWV0UmVjdChyZWN0KSwgbV9wYWdlLnBhZ2VJRCgpKTsKK30KKwogdm9pZCBSZW1vdGVX
ZWJJbnNwZWN0b3JVSTo6c3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6U3RhcnRXaW5kb3dEcmFnKCksIG1fcGFnZS5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNw
ZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5z
cGVjdG9yVUkuaAppbmRleCBmOWI2N2IzMWZjZmQwNDk4NDhmNDBmYzdmOGY0ZGU3NThlNjgxODMw
Li42MjEzMTEwODIxYWU4MTQ3NjVjY2RlODVhYmUxZjgxNzE5YTZjNmYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJ
LmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2VydGlm
aWNhdGVJbmZvOworY2xhc3MgRmxvYXRSZWN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAg
LTU1LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vIFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5k
Q2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgY2hhbmdlU2hlZXRSZWN0KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRXaW5kb3dE
cmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkg
b3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3RvclVJLmNwcAppbmRleCBlZjI2YTAxYTA5ZDhlZDVlNjc1ZWE4MTlhZmIzMDc4ZTRk
ZGIwYTBiLi4wMmNjZDU3ZGFiNTkwZjQ1NjEyMmU5MDkwZThmNjYwOTYwZjQ3NWYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3Bw
CkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUluZm8uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9NV3JhcHBl
cldvcmxkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CkBAIC0y
NDcsNiArMjQ4LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVkV2luZG93
V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OlNl
dEF0dGFjaGVkV2luZG93V2lkdGgod2lkdGgpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsK
IH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hlZXRSZWN0
KHJlY3QpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0
b3JVSTo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmIChtX2JhY2tl
bmRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3RvclVJLmgKaW5kZXggYjE1MzdkYmFkMGJjZTEyYmU1MWYxZjQ5NzNkYTZlN2EwMTg1
MzJhOC4uODM4MWJmMWNlZGVjYjY1YzVkNDc0NzVjMjJiN2QzZGI2MmZiZmQ4ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5oCkBAIC0z
Myw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJbnNwZWN0b3JDb250cm9s
bGVyOwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgRmxvYXRSZWN0OwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTEwMSw2ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGFu
Z2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjaGFu
Z2VBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSBvdmVycmlkZTsKIAorICAgIHZvaWQgY2hh
bmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworCiAgICAg
dm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBjYW5TYXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L2lv
cy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0KaW5kZXgg
ZThjMmVlNTAxZmNmNmZjOGZiZmZiNzJhZjcwYjhiZGE1ZjRkMWNlMC4uMDcxNjk4MDU0MDM2Njgz
MDA0MzVmZDQ0M2IwMjkzNTYzODc0OTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudElPUy5t
bQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViTm9kZUhpZ2hsaWdodGVyLmgiCiAjaW1w
b3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZv
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNw
ZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCB2b2lkIFdlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5kb3coRG9ja1NpZGUpIHsgfQogdm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGV0YWNoV2luZG93KCkgeyB9CiB2b2lkIFdlYkluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgeyB9
CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRo
KHVuc2lnbmVkKSB7IH0KK3ZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNldFNoZWV0
UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OnN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVu
dDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKSB7IH0KIHZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OnNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0ZUluZm8m
KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOGNlOTdiODYyYWRiOGRmZjVjYjZjYzM2
NDEzYjM5NTk4YzNmMzkwNS4uNGEyNWE2Yzk2M2Q0MTM1NWFjNTNlNmU3OTEwZjUyNjRjYjI5YmQx
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
SW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICAqLwogCiAjaW1w
b3J0IDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckNsaWVudC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CiAjaW1w
b3J0IDx3dGYvRm9yd2FyZC5oPgpAQCAtMTI1LDYgKzEyNiwxMSBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlOwogICAg
IHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRlOwog
CisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQorI2VuZGlmCisgICAg
dm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisK
ICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwpIG92ZXJy
aWRlOwogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRl
SW5mbyYpIG92ZXJyaWRlOwogCkBAIC0xNDAsNSArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBSZXRh
aW5QdHI8V2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlcj4gbV9mcm9udGVuZFdpbmRvd0NvbnRy
b2xsZXI7CiAgICAgU3RyaW5nIG1faW5zcGVjdGVkVVJMOwogICAgIEhhc2hNYXA8U3RyaW5nLCBS
ZXRhaW5QdHI8TlNVUkw+PiBtX3N1Z2dlc3RlZFRvQWN0dWFsVVJMTWFwOworICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBtX3NoZWV0UmVjdDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bQppbmRleCA2MzE1ZTY4YjYyOTZiYzdkNjQ2OGQwZjYxOTdjYWE1ZDIzYjY4ODU2Li4xYjkwM2Fm
OGI0Y2FmZTJhOWI1NmY3MTI4YzdlNDBiOTJhY2I2OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0KKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
Lm1tCkBAIC0yNzksNiArMjc5LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6
OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCiAgICAgLy8gRG9jayB0byByaWdodCBp
cyBub3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0IDEuCiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnQ6OnNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAg
bV9zaGVldFJlY3QgPSByZWN0OworfQorCiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50
OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbmV3VVJMKQogewogICAgIG1faW5z
cGVjdGVkVVJMID0gbmV3VVJMOwpAQCAtNTE1LDggKzUyMCwxMCBAQCAtIChOU1dpbmRvdyAqKXdp
bmRvdwogCiAtIChOU1JlY3Qpd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3aWxsUG9zaXRpb25T
aGVldDooTlNXaW5kb3cgKilzaGVldCB1c2luZ1JlY3Q6KE5TUmVjdClyZWN0CiB7CisgICAgaWYg
KF9mcm9udGVuZENsaWVudCkKKyAgICAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgX2Zyb250ZW5k
Q2xpZW50LT5zaGVldFJlY3QoKS5oZWlnaHQoKSwgX2Zyb250ZW5kQ2xpZW50LT5zaGVldFJlY3Qo
KS53aWR0aCgpLCAwKTsKKwogICAgIC8vIEFwcEtpdCBkb2Vzbid0IGtub3cgYWJvdXQgb3VyIEhU
TUwgdG9vbGJhciwgYW5kIHBsYWNlcyB0aGUgc2hlZXQganVzdCBhIGxpdHRsZSBiaXQgdG9vIGhp
Z2guCi0gICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciB0byBnZXQgdGhlIGhlaWdodCBv
ZiB0aGUgdG9vbGJhciBhbmQgdXNlIGl0IGluIHRoaXMgY2FsY3VsYXRpb24uCiAgICAgcmVjdC5v
cmlnaW4ueSAtPSAxOwogICAgIHJldHVybiByZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5j
cHAKaW5kZXggYjJkYWVkYjZjMjNlN2NmMzA2ZjA3ZTNmYTNjNmRiZjQ4OWM0OWNlZS4uYTBkNzY5
ZDIxZDNhYzA0MzU1ZTk2YTljZjJkYjQ2ZWY2NWZkYjU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGll
bnQuY3BwCkBAIC0zNDAsNiArMzQwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQ6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hlZXRSZWN0KGNv
bnN0IEZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JGcm9udGVuZENsaWVudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcm
IG5ld1VSTCkKIHsKICAgICBtX2luc3BlY3RlZFVSTCA9IG5ld1VSTDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5o
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50LmgKaW5kZXggNzk2NmNmMmM3Y2MwMmE4YTljZjVlODhhYjA2YmI1NjQ3ZjQ0MTFjMC4uMTcz
M2E3MjcyZjgwMjc5OTczOWIyMGMyYjBmMDVhNWFiY2Y4YTQwZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50LmgKQEAgLTEwOCw2ICsxMDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdp
bmRvd0hlaWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRv
d1dpZHRoKHVuc2lnbmVkKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBpbnNwZWN0ZWRVUkxD
aGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5nJiBuZXdVUkwpIG92ZXJyaWRlOwogICAgIHZvaWQgc2hv
d0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIG92ZXJyaWRlOwog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367187</attachid>
            <date>2019-04-10 18:46:47 -0700</date>
            <delta_ts>2019-04-10 19:05:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196722-20190410184647.patch</filename>
            <type>text/plain</type>
            <size>36316</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyMDQ2MWQ4Mzk3OWIzNzRlZDQxODY2N2I1ZTEyNTU1ZTZjOGI2N2ZmLi5m
ZGQ4ZWY1ZjFiZTc1NTNlYWRkYTE0MDQ2NGMwMWNiYmFmMjY1ZDI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjggQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hvcmVk
IHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCisK
KyAgICAgICAgTm8gd2ViIG9ic2VydmFibGUgY2hhbmdlLgorCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENsaWVudDo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZVNoZWV0UmVjdCk6IEFkZGVkLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisgICAgICAgICog
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oOgorICAgICAgICAqIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKworICAgICAgICAqIHRlc3RpbmcvSW50
ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0dWJGcm9udGVuZDo6c2V0
U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29A
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEluc3BlY3RvcjogbGF6aWx5IGNy
ZWF0ZSB0aGUgYWdlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IGIzYTM3MWZlYmVjOGI1
YmNlNWJlMDQ4NjQ0MWJmODQ1MTBjMTQzOGQuLjg1MjljYmQ4NjY2NzcyOWYxMTgwZmFkNWE2MGY4
ZDdjYjc1ZmU4MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDE5LTA0LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBzYXZlIHNoZWV0IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRo
ZSB0YWIgYmFyIHdoZW4gZGV0YWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9CYXNlL01haW4uanM6CisgICAgICAgIChXSS5jb250ZW50TG9hZGVkKToKKwog
MjAxOS0wNC0xMCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3RvcjogVGltZWxpbmVzOiBjYW4ndCByZWxpYWJseSBzdG9wL3N0YXJ0IGEgcmVj
b3JkaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCmluZGV4IDlmMDBjNjQ3YTI1NzU2MDU5NDczM2MyYmQxNDg0Y2RjZThhMWM4
NDYuLjYzYjcxMTY1ODYwOGI3YzE3MjQwZjYxMzE5Y2MzZmEyODA5NzBmYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsNDYgQEAKKzIwMTktMDQtMTAgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUu
Y29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHNhdmUgc2hlZXQgc2hvdWxkIGJlIGFuY2hv
cmVkIHVuZGVybmVhdGggdGhlIHRhYiBiYXIgd2hlbiBkZXRhY2hlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk2NzIyCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS80OTYxMzI4MD4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6c2hlZXRSZWN0IGNvbnN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNl
dFNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1TZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dl
Ykluc3BlY3RvclByb3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyIHdpbmRvdzp3aWxsUG9zaXRpb25TaGVldDp1c2luZ1JlY3Q6XSk6IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJl
Y3QpOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hl
ZXRSZWN0KTogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94
eVdQRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNl
dFNoZWV0UmVjdCk6IEFkZGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZVdlYkluc3BlY3RvclVJLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdl
Ykluc3BlY3RvclVJLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6
OmNoYW5nZVNoZWV0UmVjdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJv
eHk6OnNoZWV0UmVjdCBjb25zdCk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3Rv
clByb3h5OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eUd0ay5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFNoZWV0UmVjdCk6IEFk
ZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlNYWMu
bW06CisgICAgICAgICgtW1dLUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciB3aW5k
b3c6d2lsbFBvc2l0aW9uU2hlZXQ6dXNpbmdSZWN0Ol0pOiBBZGRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlRnJvbnRlbmRQYWdlQW5k
V2luZG93KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtU2V0U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMTAgIEFuZHkgRXN0ZXMgIDxhZXN0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIExldCBQREZIb3N0Vmlld0NvbnRyb2xsZXIg
c3BlY2lmeSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byB1c2UgZm9yIFdLUERGVmlldwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9pb3MvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9pb3MvQ2hhbmdlTG9nCmluZGV4IDM0MmU5ODkxNDUyYjUyNDc3YTRlZmRkMDczMzFiMWE5
MTBmNWI1NDUuLmM4NWM0ZTczNmI3MGVjZTMwZjQ0MWYzODliMjNkMDFmMzgyZDg0MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOS0wNC0xMCAgRGV2
aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
c2F2ZSBzaGVldCBzaG91bGQgYmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJhciB3aGVu
IGRldGFjaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTY3MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkluc3BlY3RvckZyb250ZW5kQ2xp
ZW50OjpzZXRTaGVldFJlY3QpOiBBZGRlZC4KKwogMjAxOS0wMy0wMyAgWmFsYW4gQnVqdGFzICA8
emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtDb250ZW50Q2hhbmdlT2JzZXJ2ZXJdIENvbnRl
bnQgb2JzZXJ2YXRpb24gc2hvdWxkIGJlIGxpbWl0ZWQgdG8gdGhlIGN1cnJlbnQgZG9jdW1lbnQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggOTQ2ODIxNjQ3NzFiMzMxYjBlODY1YTM3
N2ZkNTY2OWViOGM2ZWQ1Yi4uNGQxMTM0OGZkYTAyYzQ5YWIyZDMzNmFiOWI2N2M3OGVjZmM5ODdk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA0
LTEwICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBzYXZlIHNoZWV0IHNob3VsZCBiZSBhbmNob3JlZCB1bmRlcm5lYXRoIHRoZSB0YWIg
YmFyIHdoZW4gZGV0YWNoZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5NjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk2MTMyODA+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50Lmg6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6c2hlZXRSZWN0IGNvbnN0KTogQWRkZWQuCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50Lm1tOgorICAgICAgICAoLVtXZWJJbnNwZWN0b3JXaW5kb3dD
b250cm9sbGVyIHdpbmRvdzp3aWxsUG9zaXRpb25TaGVldDp1c2luZ1JlY3Q6XSk6CisgICAgICAg
IChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hlZXRSZWN0KTogQWRkZWQuCisKIDIw
MTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJlc3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDc4MjliNzdmYjdjNmFiNWU5NTQxMWUxZTcy
OWQzNGFmOWQ3MTJlOGQuLjEyNjVhNmU5OGY5ODdiNjhhYzQ0MzczODUwNjY2ZTBkOTc4NjYzZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNC0x
MCAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3Rvcjogc2F2ZSBzaGVldCBzaG91bGQgYmUgYW5jaG9yZWQgdW5kZXJuZWF0aCB0aGUgdGFiIGJh
ciB3aGVuIGRldGFjaGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xOTY3MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5NjEzMjgwPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L1dlYkluc3BlY3RvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6
c2V0U2hlZXRSZWN0KTogQWRkZWQuCisKIDIwMTktMDQtMTAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgU1BJIFdLTmF2aWdhdGlvblJl
c3BvbnNlLl9kb3dubG9hZEF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaAppbmRleCAzODY1OTg4NjczN2EzMDcwYWNlN2Y3
OTc1MmM1OTViODI1ZTQxM2Y4Li4wMGNlODI1ZmRmMTVlN2M2YjM1M2UxZTU0Njg5MzY0OThhOGZi
ZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaApAQCAtMzcsNiArMzcsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2Ns
YXNzIEZsb2F0UmVjdDsKKwogY2xhc3MgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQgewogcHVibGlj
OgogICAgIGVudW0gY2xhc3MgRG9ja1NpZGUgewpAQCAtNzAsNiArNzIsOCBAQCBwdWJsaWM6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0
KHVuc2lnbmVkKSA9IDA7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGNoYW5nZUF0
dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpID0gMDsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgdm9pZCBjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgPSAwOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIG9wZW5Jbk5ld1RhYihjb25zdCBTdHJpbmcmIHVy
bCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblNhdmUoKSA9IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKaW5kZXggNzQxMjBkMmI0MGViMjljNTY2OTk0YTg4Y2Y3M2Y1OTcxMzZkOTI2Ny4uZWE2YWY1
NGVlOTAyNDdiNmZhOTAwYzIwNWVhMTdhZWQxZTgwYTkyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApA
QCAtMjIzLDYgKzIyMywxMSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNo
YW5nZUF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgc2V0QXR0YWNoZWRX
aW5kb3dXaWR0aChhdHRhY2hlZFdpZHRoKTsKIH0KIAordm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpjaGFuZ2VTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQoreworICAg
IHNldFNoZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpCiB7CiAgICAgVXNlckdlc3R1cmVJ
bmRpY2F0b3IgaW5kaWNhdG9yIHsgUHJvY2Vzc2luZ1VzZXJHZXN0dXJlIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5o
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwu
aAppbmRleCA1MTM5ZWVlMTZiNTY5ZGUxMjk4ZjlkYmE5ZGRjMDdhNWM2NmU4YzMwLi5hZTI2Y2Nh
ZTljYTk5YzVkNWMyYWU2ZTQ5NjY3YWVhODg2N2IxZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgKQEAgLTM4
LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBGbG9hdFJlY3Q7CiBj
bGFzcyBGcmFtZTsKIGNsYXNzIEluc3BlY3RvckNvbnRyb2xsZXI7CiBjbGFzcyBJbnNwZWN0b3JC
YWNrZW5kRGlzcGF0Y2hUYXNrOwpAQCAtNzAsNiArNzEsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCByZXF1ZXN0U2V0RG9ja1NpZGUoRG9ja1NpZGUpIGZpbmFsOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIGZp
bmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0aCh1
bnNpZ25lZCkgZmluYWw7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjaGFuZ2VTaGVldFJlY3Qo
Y29uc3QgRmxvYXRSZWN0JikgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBvcGVuSW5O
ZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIGZpbmFsOwogICAgIGJvb2wgY2FuU2F2ZSgpICBvdmVy
cmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZvaWQgc2F2ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBib29sLCBib29sKSBvdmVycmlkZSB7IH0KQEAgLTExNiw2ICsxMTgsOCBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWdu
ZWQpID0gMDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3RvcmVBdHRhY2hlZFdpbmRvd0hl
aWdodCgpOwogCisgICAgdmlydHVhbCB2b2lkIHNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpG
bG9hdFJlY3QmKSA9IDA7CisKIHByaXZhdGU6CiAgICAgYm9vbCBldmFsdWF0ZUFzQm9vbGVhbihj
b25zdCBTdHJpbmcmIGV4cHJlc3Npb24pOwogICAgIHZvaWQgZXZhbHVhdGVPbkxvYWQoY29uc3Qg
U3RyaW5nJiBleHByZXNzaW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggNTM2OGU3NDY1MDA3MWJmODQ5NTFmYThjNDY3
MzNjOTIxNzQzMzZlZi4uNjRkMWFiYWVjMjc4YjFmZTE0MmUyMTYxMmIxNjU5OWI4OTQ5Y2IyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkVkaXRvci5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAj
aW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCkBAIC0yNDIsNiArMjQzLDEyIEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkIHdpZHRoKQogICAgICAg
ICBtX2NsaWVudC0+Y2hhbmdlQXR0YWNoZWRXaW5kb3dXaWR0aCh3aWR0aCk7CiB9CiAKK3ZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzZXRTaGVldFJlY3QoZmxvYXQgeCwgZmxvYXQgeSwgdW5z
aWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKK3sKKyAgICBpZiAobV9jbGllbnQpCisgICAg
ICAgIG1fY2xpZW50LT5jaGFuZ2VTaGVldFJlY3QoRmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWln
aHQpKTsKK30KKwogdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnN0YXJ0V2luZG93RHJhZygp
CiB7CiAgICAgaWYgKG1fY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IDc2YTZmYjRkMzkxOWI1ZDA3YTdhNTkxMzUwZjZm
YTdjZjMxNjBkZTQuLjMwMTdjYjc2YzA5ZTVkMjdlZTQxNmVkNWM5YmM0N2QzYjBlY2RjYWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgK
QEAgLTcyLDYgKzcyLDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dIZWln
aHQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7
CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdChmbG9hdCB4LCBmbG9hdCB5LCB1bnNpZ25lZCB3aWR0
aCwgdW5zaWduZWQgaGVpZ2h0KTsKKwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAgICAg
dm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKaW5kZXggYjFl
NGRlYmZhNmNlNDY5MTZiMWFjYjc4M2YyZjhhNWI0NDgwMzUyYi4uMDIzYTM5Y2JjOGYwODg0ZTM5
MGIyOTgyMmQxOWJkYWZmYTkxMjk5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKQEAgLTUzLDYgKzUzLDggQEAKICAgICB2b2lk
IHNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKICAgICB2b2lk
IHNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgbG9uZyB3aWR0aCk7CiAKKyAgICB2b2lk
IHNldFNoZWV0UmVjdCh1bnJlc3RyaWN0ZWQgZmxvYXQgeCwgdW5yZXN0cmljdGVkIGZsb2F0IHks
IHVuc2lnbmVkIGxvbmcgd2lkdGgsIHVuc2lnbmVkIGxvbmcgaGVpZ2h0KTsKKwogICAgIHZvaWQg
c3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkodW5yZXN0cmljdGVkIGZs
b2F0IHgsIHVucmVzdHJpY3RlZCBmbG9hdCB5KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDRmY2Q2YTdlMmI1ZGJhZjJlNmJkZTc5NTVjZjg4NTg2MmVhMDUyODIuLmQx
MjkwNjZhYTZhOWVkZTdiNTA0MWIyNWM3MDM0MTQxOTNlYTQ1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTMyMSw2ICszMjEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2hvd0NlcnRpZmljYXRlKGNvbnN0IENlcnRpZmljYXRlSW5mbyYpIGZpbmFsIHsgfQogICAgIHZv
aWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpIGZpbmFsIHsgfQogICAgIHZvaWQg
c2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkgZmluYWwgeyB9CisgICAgdm9pZCBzZXRT
aGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JikgZmluYWwgeyB9CiAKICAgICB2b2lkIHNlbmRNZXNz
YWdlVG9Gcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIGZpbmFsOwogICAgIENvbm5lY3Rp
b25UeXBlIGNvbm5lY3Rpb25UeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29ubmVjdGlvblR5
cGU6OkxvY2FsOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9CYXNlL01haW4uanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9C
YXNlL01haW4uanMKaW5kZXggMDRjZjU0MzFiNTNjOGFmYTU3NjE2ODAxZWRmYzdjN2ZjYTVkY2M5
Yy4uN2JhNDY3YTAwN2ZmMjg3ZWU3OTI0MDQ0M2RmOTc5NzIwZjhhNjRkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS9NYWluLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvTWFpbi5qcwpAQCAtNTgyLDYg
KzU4Miw5IEBAIFdJLmNvbnRlbnRMb2FkZWQgPSBmdW5jdGlvbigpCiAgICAgICAgIEluc3BlY3Rv
ckZyb250ZW5kQVBJLmxvYWRDb21wbGV0ZWQoKTsKICAgICB9KTsKIAorICAgIGxldCBtYWluRWxl
bWVudFJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFpbiIpLmdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5zZXRTaGVldFJlY3QobWFpbkVs
ZW1lbnRSZWN0LngsIG1haW5FbGVtZW50UmVjdC55LCBtYWluRWxlbWVudFJlY3Qud2lkdGgsIG1h
aW5FbGVtZW50UmVjdC5oZWlnaHQpOworCiAgICAgLy8gVGVsbCB0aGUgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0IHdlIGxvYWRlZCwgd2hpY2ggY2F1c2VzIHRoZSB3aW5kb3cgdG8gZGlzcGxheQogICAg
IC8vIGFuZCBwZW5kaW5nIEluc3BlY3RvckZyb250ZW5kQVBJIGNvbW1hbmRzIHRvIGJlIHNlbnQu
CiAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmxvYWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IDNjOWRhNTNk
ODViYzlhYzJiMjM1MTEzYzgwNjkxNzcyNzkxMDIzMWEuLmRiZTJhYzAxOTNiN2U3ZTIyMWJlZjhl
YjQ1NmNiMTliZDk0MTMzNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZVdlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTExNyw2ICsxMTcsMTEgQEAgdm9pZCBSZW1v
dGVXZWJJbnNwZWN0b3JQcm94eTo6YXBwZW5kKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBj
b25zdCBTdHJpbmcmIGMKICAgICBwbGF0Zm9ybUFwcGVuZChzdWdnZXN0ZWRVUkwsIGNvbnRlbnQp
OwogfQogCit2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzZXRTaGVldFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQoreworICAgIHBsYXRmb3JtU2V0U2hlZXRSZWN0KHJlY3QpOworfQor
CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5OjpzdGFydFdpbmRvd0RyYWcoKQogewogICAg
IHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CkBAIC0xNzUsNiArMTgwLDcgQEAgV2ViUGFnZVBy
b3h5KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBhZ2VB
bmRXaW5kb3coKQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1Rv
RnJvbnQoKSB7IH0KIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKSB7IH0KIHZvaWQgUmVtb3Rl
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0
cmluZyYpIHsgfQordm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVl
dFJlY3QoY29uc3QgRmxvYXRSZWN0JikgeyB9CiB2b2lkIFJlbW90ZVdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9pZCBSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1PcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJikgeyB9CiB2b2lkIFJlbW90
ZVdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZp
Y2F0ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90
ZVdlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJ
bnNwZWN0b3JQcm94eS5oCmluZGV4IDllY2I0MmIwODhmODgyZjZjZjhlYTViZTk0ZTNiMjViMjA3
ZjI0YzkuLjBmZDBlODNhNWI1NjA0ZDdkNmVjNWY5MTY3NTIwZmExOTMwZGRjYWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHkuaApAQCAt
MjcsNiArMjcsNyBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiTWVzc2Fn
ZVJlY2VpdmVyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgpAQCAtNzksNiArODAsOCBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIE5TV2luZG93ICp3aW5kb3coKSBjb25zdCB7IHJldHVybiBtX3dpbmRvdy5nZXQoKTsgfQog
ICAgIFdLV2ViVmlldyAqd2ViVmlldygpIGNvbnN0OworCisgICAgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQogI2VuZGlm
CiAKICNpZiBQTEFURk9STShHVEspCkBAIC05OSw2ICsxMDIsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgYnJpbmdUb0Zyb250KCk7CiAgICAgdm9pZCBzYXZlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUs
IGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVkLCBib29sIGZvcmNlU2F2
ZUFzKTsKICAgICB2b2lkIGFwcGVuZChjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJp
bmcmIGNvbnRlbnQpOworICAgIHZvaWQgc2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpOwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBvcGVuSW5OZXdU
YWIoY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdl
YkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpOwpAQCAtMTEzLDYgKzExNyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpOwogICAgIHZvaWQgcGxhdGZvcm1TYXZlKGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRF
bmNvZGVkLCBib29sIGZvcmNlU2F2ZUFzKTsKICAgICB2b2lkIHBsYXRmb3JtQXBwZW5kKGNvbnN0
IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCk7CisgICAgdm9pZCBwbGF0
Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAgICB2b2lkIHBs
YXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBwbGF0Zm9ybU9wZW5Jbk5ld1RhYihj
b25zdCBTdHJpbmcmIHVybCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNob3dDZXJ0aWZpY2F0ZShjb25z
dCBXZWJDb3JlOjpDZXJ0aWZpY2F0ZUluZm8mKTsKQEAgLTEyOCw2ICsxMzMsNyBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gbV93aW5kb3c7CiAgICAgUmV0YWluUHRyPFdLUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcj4gbV9vYmpDQWRhcHRlcjsKICAgICBIYXNo
TWFwPFN0cmluZywgUmV0YWluUHRyPE5TVVJMPj4gbV9zdWdnZXN0ZWRUb0FjdHVhbFVSTE1hcDsK
KyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbV9zaGVldFJlY3Q7CiAjZW5kaWYKICNpZiBQTEFURk9S
TShHVEspCiAgICAgR3RrV2lkZ2V0KiBtX3dlYlZpZXcgeyBudWxscHRyIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVXZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1l
c3NhZ2VzLmluCmluZGV4IGJjNTkxZjQ5OTgyNDExZTQ1NWE2YTk3NGM1YjdlMWY4ZjI1MmI5MDEu
LmI3ODcyMzVlZDgwZDYwNDcyZTM2YzVhODAwYTliZDFiODU2NWZlOGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZVdlYkluc3BlY3RvclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yOCw2ICsyOCw4IEBAIG1lc3NhZ2VzIC0+IFJlbW90ZVdlYkluc3BlY3Rv
clByb3h5IHsKICAgICBTYXZlKFN0cmluZyBmaWxlbmFtZSwgU3RyaW5nIGNvbnRlbnQsIGJvb2wg
YmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVBcykKICAgICBBcHBlbmQoU3RyaW5nIGZpbGVu
YW1lLCBTdHJpbmcgY29udGVudCkKIAorICAgIFNldFNoZWV0UmVjdChXZWJDb3JlOjpGbG9hdFJl
Y3QgcmVjdCkKKwogICAgIFN0YXJ0V2luZG93RHJhZygpCiAKICAgICBPcGVuSW5OZXdUYWIoU3Ry
aW5nIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNw
cAppbmRleCA2ZWQwZTA4ODEyOGE4MGEwMzc3NDAzZjYyZjhiNjJhYmMzOWNhNzI0Li41NmRjYTA1
Y2RmYTk0YTA3MTUwMGU0Yjg5OWMxNGNlNzA0ODdkZDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0zMjUsNiArMzI1LDExIEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgp
CiAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHdpZHRoKTsKIH0KIAordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6c2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sK
KyAgICBwbGF0Zm9ybVNldFNoZWV0UmVjdChyZWN0KTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6c3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygp
OwpAQCAtNjg5LDYgKzY5NCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNl
dEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCA5
YjMwNTgyMDUxZTUxYzAxNmE0ZDUxOWU1NDcyYjNlYTgyNzI0NTI0Li42YWFlYjgxZGU2MzJlYmZi
YWM3ZDc3NjExNDgxODcxNmU4MmE2MDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
Ykluc3BlY3RvclByb3h5LmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVdGlsaXRpZXMuaCIKICNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMTIwLDYgKzEy
MSw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGF0dGFjaG1lbnRWaWV3RGlkQ2hhbmdlKE5TVmlldyAq
b2xkVmlldywgTlNWaWV3ICpuZXdWaWV3KTsKICAgICB2b2lkIGF0dGFjaG1lbnRXaWxsTW92ZUZy
b21XaW5kb3coTlNXaW5kb3cgKm9sZFdpbmRvdyk7CiAgICAgdm9pZCBhdHRhY2htZW50RGlkTW92
ZVRvV2luZG93KE5TV2luZG93ICpuZXdXaW5kb3cpOworCisgICAgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQogI2VuZGlm
CiAKICNpZiBQTEFURk9STShHVEspCkBAIC0xNDMsNiArMTQ2LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpOwogICAgIHZvaWQgc2V0QXR0YWNo
ZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7CiAKKyAgICB2b2lkIHNldFNoZWV0UmVjdChjb25zdCBX
ZWJDb3JlOjpGbG9hdFJlY3QmKTsKKwogICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CiAKICAg
ICBib29sIGlzUHJvZmlsaW5nUGFnZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9maWxpbmdQYWdl
OyB9CkBAIC0xOTcsNiArMjAyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtRGV0YWNo
KCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKTsK
ICAgICB2b2lkIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCk7CisgICAg
dm9pZCBwbGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKICAg
ICB2b2lkIHBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCk7CiAgICAgdm9pZCBwbGF0Zm9ybVNhdmUo
Y29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50LCBib29sIGJhc2U2
NEVuY29kZWQsIGJvb2wgZm9yY2VTYXZlQXMpOwogICAgIHZvaWQgcGxhdGZvcm1BcHBlbmQoY29u
c3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KTsKQEAgLTI2Niw2ICsy
NzIsNyBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZXRhaW5QdHI8TlNVUkw+PiBt
X3N1Z2dlc3RlZFRvQWN0dWFsVVJMTWFwOwogICAgIFJ1bkxvb3A6OlRpbWVyPFdlYkluc3BlY3Rv
clByb3h5PiBtX2Nsb3NlRnJvbnRlbmRBZnRlckluYWN0aXZpdHlUaW1lcjsKICAgICBTdHJpbmcg
bV91cmxTdHJpbmc7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG1fc2hlZXRSZWN0OwogICAgIGJv
b2wgbV9pc09ic2VydmluZ0NvbnRlbnRMYXlvdXRSZWN0IHsgZmFsc2UgfTsKICNlbGlmIFBMQVRG
T1JNKEdUSykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViSW5zcGVjdG9yUHJveHlDbGllbnQ+IG1f
Y2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9y
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA0Y2NlMGZmMmVhYjg0ZTE2OGNlYjBmMzMyMWFiMjNhZGYz
MzhmNzFhLi4xMjg0YmQ0YTc1MmUyNzY0M2JkZWVmM2RjZmQ0ZGFjZWExMDMyMDgzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNDgsNSArNDgsNyBAQCBtZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAg
ICAgU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQogICAgIFNldEF0dGFj
aGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAKKyAgICBTZXRTaGVldFJlY3QoV2ViQ29y
ZTo6RmxvYXRSZWN0IHJlY3QpCisKICAgICBTdGFydFdpbmRvd0RyYWcoKQogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3Rr
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9SZW1vdGVXZWJJbnNwZWN0b3JQcm94
eUd0ay5jcHAKaW5kZXggOTJlYWQwNDVlOGI4ZmMyZTRiOTkzNDQyNmJkMTBhNGE4ZTU5ZjlkYy4u
YzFhYzA0M2IzMzA0NmQxNTc1MDZkMDY1NjEzZWE3Y2VjZDAwNGI3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1JlbW90ZVdlYkluc3BlY3RvclByb3h5R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlH
dGsuY3BwCkBAIC0xMDMsNiArMTAzLDEwIEBAIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQXBwZW5kKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCiB7CiB9CiAKK3Zv
aWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYpCit7Cit9CisKIHZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
U3RhcnRXaW5kb3dEcmFnKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvV2ViSW5zcGVjdG9yUHJveHlHdGsuY3BwCmluZGV4IDY5NzJiMzA2MWM0YzM1OGQyM2U1
NDFiYTI0NTI5YjQyOGZhNDNhNTkuLjI4YzIwNzhmYThhYmI3NzBiMTM2MDVmOTBlOGY2MmMxZTMx
OGI4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJJbnNwZWN0
b3JQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkluc3Bl
Y3RvclByb3h5R3RrLmNwcApAQCAtNDQ0LDYgKzQ0NCwxMSBAQCB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAg
d2Via2l0V2ViVmlld0Jhc2VTZXRJbnNwZWN0b3JWaWV3U2l6ZShXRUJLSVRfV0VCX1ZJRVdfQkFT
RShpbnNwZWN0ZWRQYWdlKCktPnZpZXdXaWRnZXQoKSksIHdpZHRoKTsKIH0KIAordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCiB2b2lkIFdlYkluc3BlY3RvclBy
b3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNwZWN0
b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9SZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbQppbmRleCA1NGU2ZTI5MTMxZGQwMzMxOTUzNTcwYjYxYjk0N2JlYzBj
NWE5MjYxLi43NjBhMWQwMDlkZTIzYzZjMmI1NThhNWZkM2UxYTUzYjViYzM4NTczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUmVtb3RlV2ViSW5zcGVjdG9yUHJveHlN
YWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1JlbW90ZVdlYkluc3BlY3Rv
clByb3h5TWFjLm1tCkBAIC00Myw3ICs0Myw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NlcnRpZmlj
YXRlSW5mby5oPgogI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CiAKLUBpbnRlcmZhY2UgV0tS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIDogTlNPYmplY3QgPFdLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4geworQGludGVyZmFjZSBXS1JlbW90ZVdlYkluc3BlY3Rv
clByb3h5T2JqQ0FkYXB0ZXIgOiBOU09iamVjdCA8TlNXaW5kb3dEZWxlZ2F0ZSwgV0tJbnNwZWN0
b3JWaWV3Q29udHJvbGxlckRlbGVnYXRlPiB7CiAgICAgV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0
b3JQcm94eSogX2luc3BlY3RvclByb3h5OwogfQogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUmVt
b3RlV2ViSW5zcGVjdG9yUHJveHk6KFdlYktpdDo6UmVtb3RlV2ViSW5zcGVjdG9yUHJveHkqKWlu
c3BlY3RvclByb3h5OwpAQCAtNTEsNiArNTEsMTMgQEAgQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V0tSZW1vdGVXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyCiAKKy0gKE5TUmVjdCl3aW5kb3c6
KE5TV2luZG93ICopd2luZG93IHdpbGxQb3NpdGlvblNoZWV0OihOU1dpbmRvdyAqKXNoZWV0IHVz
aW5nUmVjdDooTlNSZWN0KXJlY3QKK3sKKyAgICBpZiAoX2luc3BlY3RvclByb3h5KQorICAgICAg
ICByZXR1cm4gTlNNYWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLmhlaWdo
dCgpLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLndpZHRoKCksIDApOworICAgIHJldHVy
biByZWN0OworfQorCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhSZW1vdGVXZWJJbnNwZWN0b3JQ
cm94eTooV2ViS2l0OjpSZW1vdGVXZWJJbnNwZWN0b3JQcm94eSopaW5zcGVjdG9yUHJveHkKIHsK
ICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKQEAgLTg5LDYgKzk2LDcgQEAgV2ViUGFn
ZVByb3h5KiBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVGcm9udGVuZFBh
Z2VBbmRXaW5kb3coKQogICAgIFttX2luc3BlY3RvclZpZXcuZ2V0KCkgc2V0RGVsZWdhdGU6bV9v
YmpDQWRhcHRlci5nZXQoKV07CiAKICAgICBtX3dpbmRvdyA9IFdlYkluc3BlY3RvclByb3h5Ojpj
cmVhdGVGcm9udGVuZFdpbmRvdyhOU1plcm9SZWN0LCBXZWJJbnNwZWN0b3JQcm94eTo6SW5zcGVj
dGlvblRhcmdldFR5cGU6OlJlbW90ZSk7CisgICAgW21fd2luZG93IHNldERlbGVnYXRlOm1fb2Jq
Q0FkYXB0ZXIuZ2V0KCldOwogICAgIFttX3dpbmRvdyBzZXRGcmFtZUF1dG9zYXZlTmFtZTpAIldL
UmVtb3RlV2ViSW5zcGVjdG9yV2luZG93RnJhbWUiXTsKIAogICAgIE5TVmlldyAqY29udGVudFZp
ZXcgPSBtX3dpbmRvdy5nZXQoKS5jb250ZW50VmlldzsKQEAgLTIwNyw2ICsyMTUsMTEgQEAgdm9p
ZCBSZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiBz
dWdnZXN0ZWRVUkwsIGNvbnN0IFMKICAgICBpbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9yVUk6OkRpZEFwcGVuZChbYWN0dWFsVVJMIGFic29s
dXRlU3RyaW5nXSksIGluc3BlY3RvclBhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBSZW1vdGVX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRTaGVldFJlY3QoY29uc3QgRmxvYXRSZWN0JiBy
ZWN0KQoreworICAgIG1fc2hlZXRSZWN0ID0gcmVjdDsKK30KKwogdm9pZCBSZW1vdGVXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogICAgIHdlYlZpZXcoKS0+
X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDk3ODEyZmY4OWJjNDAxZTFmYTY4
N2E1MWQzNTkyMjkxNTgxOWE1M2UuLmJlMzc4OWE5MDQ5MjU5NGQwZjY5NDEyN2QzYzdmOWQxNjMx
YWM3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0
b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVj
dG9yUHJveHlNYWMubW0KQEAgLTUyLDcgKzUyLDcgQEAgc3RhdGljIGNvbnN0IFNlY29uZHMgd2Vi
Vmlld0Nsb3NlVGltZW91dCB7IDFfbWluIH07CiAKIHN0YXRpYyB2b2lkKiBrV2luZG93Q29udGVu
dExheW91dE9ic2VydmVyQ29udGV4dCA9ICZrV2luZG93Q29udGVudExheW91dE9ic2VydmVyQ29u
dGV4dDsKIAotQGludGVyZmFjZSBXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgKCkgPFdL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4KK0BpbnRlcmZhY2UgV0tXZWJJbnNwZWN0
b3JQcm94eU9iakNBZGFwdGVyICgpIDxOU1dpbmRvd0RlbGVnYXRlLCBXS0luc3BlY3RvclZpZXdD
b250cm9sbGVyRGVsZWdhdGU+CiAKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYkluc3BlY3Rv
clByb3h5OihXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5KilpbnNwZWN0b3JQcm94eTsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKQEAgLTkzLDYgKzkzLDEzIEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogICAg
IF9pbnNwZWN0b3JQcm94eSA9IG51bGxwdHI7CiB9CiAKKy0gKE5TUmVjdCl3aW5kb3c6KE5TV2lu
ZG93ICopd2luZG93IHdpbGxQb3NpdGlvblNoZWV0OihOU1dpbmRvdyAqKXNoZWV0IHVzaW5nUmVj
dDooTlNSZWN0KXJlY3QKK3sKKyAgICBpZiAoX2luc3BlY3RvclByb3h5KQorICAgICAgICByZXR1
cm4gTlNNYWtlUmVjdCgwLCBfaW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLmhlaWdodCgpLCBf
aW5zcGVjdG9yUHJveHktPnNoZWV0UmVjdCgpLndpZHRoKCksIDApOworICAgIHJldHVybiByZWN0
OworfQorCiAtICh2b2lkKXdpbmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiB7CiAgICAgaWYgKF9pbnNwZWN0b3JQcm94eSkKQEAgLTcxNCw2ICs3MjEsMTEgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2ln
bmVkIHdpZHRoKQogICAgIGluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZSh3aWR0aCk7CiB9CiAK
K3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKK3sKKyAgICBtX3NoZWV0UmVjdCA9IHJlY3Q7Cit9CisKIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBbbV9pbnNwZWN0
b3JWaWV3Q29udHJvbGxlciB3ZWJWaWV3XS0+X3BhZ2UtPnN0YXJ0V2luZG93RHJhZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2lu
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5j
cHAKaW5kZXggN2I5NmVlNWQ2ZjQzN2Q3Yjk0NDZiZGEzM2Q1MGI2NzgwODgwNTMxYy4uYTdmY2Nl
MTA5OTc5NzJhYzQ1MjIxZjIyN2JhNzRjMTFlMDJiMjBmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCkBAIC0zNTgsNiAr
MzU4LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5k
b3dXaWR0aCh1bnNpZ25lZCB3aWR0aCkKICAgICA6OlNldFdpbmRvd1BvcyhtX2luc3BlY3RlZFZp
ZXdXaW5kb3csIDAsIHdpbmRvd0luZm8ubGVmdCwgd2luZG93SW5mby50b3AsIHdpbmRvd0luZm8u
cGFyZW50V2lkdGggLSB3aW5kb3dJbmZvLmxlZnQsIHdpbmRvd0luZm8ucGFyZW50SGVpZ2h0IC0g
d2luZG93SW5mby50b3AsIFNXUF9OT1pPUkRFUik7CiB9CiAKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0U2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1Jc0Zyb250KCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKaW5kZXggZjA2NTdm
NDEwN2Q5MmIzZmIzMDAzMzE3OTA3MWQ0MDdjNmIyMjlhOC4uMGY0MjY1NjMyOTNkYmYyY2NkZmY2
NDY0NjdhNDQ2YjE3MmJlMzhmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
d3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCkBAIC0xMzQsNiArMTM0LDExIEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25l
ZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybVNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dE
cmFnKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlV2ViSW5zcGVjdG9yVUkuY3BwCmluZGV4IGYw
MTg0NTljN2U1MjlhNzRlNTRmM2YwZGUzNTgyMzAyYjI5M2MzMzAuLjA1NDQwNDU2ZjQxZGIxYzRm
MDkwNWI1NWVkZmEzODQxZmY3YzFmZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3BlY3RvclVJLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JVSS5jcHAKQEAgLTM0LDYgKzM0
LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQ2hyb21lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9ET01XcmFwcGVyV29ybGQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW5zcGVjdG9y
Q29udHJvbGxlci5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTk5LDYgKzEwMCwxMSBAQCB2
b2lkIFJlbW90ZVdlYkluc3BlY3RvclVJOjpmcm9udGVuZExvYWRlZCgpCiAgICAgYnJpbmdUb0Zy
b250KCk7CiB9CiAKK3ZvaWQgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmNoYW5nZVNoZWV0UmVjdChj
b25zdCBGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6UmVtb3RlV2ViSW5zcGVjdG9y
UHJveHk6OlNldFNoZWV0UmVjdChyZWN0KSwgbV9wYWdlLnBhZ2VJRCgpKTsKK30KKwogdm9pZCBS
ZW1vdGVXZWJJbnNwZWN0b3JVSTo6c3RhcnRXaW5kb3dEcmFnKCkKIHsKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpS
ZW1vdGVXZWJJbnNwZWN0b3JQcm94eTo6U3RhcnRXaW5kb3dEcmFnKCksIG1fcGFnZS5wYWdlSUQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVX
ZWJJbnNwZWN0b3JVSS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaAppbmRleCBmOWI2N2IzMWZjZmQwNDk4NDhmNDBmYzdmOGY0ZGU3NThl
NjgxODMwLi42MjEzMTEwODIxYWU4MTQ3NjVjY2RlODVhYmUxZjgxNzE5YTZjNmYyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVXZWJJbnNwZWN0b3JV
SS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZVdlYkluc3Bl
Y3RvclVJLmgKQEAgLTMzLDYgKzMzLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
Q2VydGlmaWNhdGVJbmZvOworY2xhc3MgRmxvYXRSZWN0OwogfQogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKQEAgLTU1LDYgKzU2LDcgQEAgcHVibGljOgogICAgIC8vIFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kQ2xpZW50CiAgICAgdm9pZCB3aW5kb3dPYmplY3RDbGVhcmVkKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBmcm9udGVuZExvYWRlZCgpIG92ZXJyaWRlOworICAgIHZvaWQgY2hhbmdlU2hlZXRS
ZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIHZvaWQgc3RhcnRX
aW5kb3dEcmFnKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBtb3ZlV2luZG93QnkoZmxvYXQgeCwgZmxv
YXQgeSkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkluc3BlY3RvclVJLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3RvclVJLmNwcAppbmRleCBlZjI2YTAxYTA5ZDhlZDVlNjc1ZWE4MTlhZmIz
MDc4ZTRkZGIwYTBiLi4wMmNjZDU3ZGFiNTkwZjQ1NjEyMmU5MDkwZThmNjYwOTYwZjQ3NWYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JV
SS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9y
VUkuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DZXJ0aWZpY2F0ZUlu
Zm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Nocm9tZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRE9N
V3JhcHBlcldvcmxkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0luc3BlY3RvckNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+
CkBAIC0yNDcsNiArMjQ4LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yVUk6OmNoYW5nZUF0dGFjaGVk
V2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yUHJv
eHk6OlNldEF0dGFjaGVkV2luZG93V2lkdGgod2lkdGgpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlm
aWVyKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JVSTo6Y2hhbmdlU2hlZXRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgcmVjdCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9j
ZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JQcm94eTo6U2V0U2hl
ZXRSZWN0KHJlY3QpLCBtX2luc3BlY3RlZFBhZ2VJZGVudGlmaWVyKTsKK30KKwogdm9pZCBXZWJJ
bnNwZWN0b3JVSTo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsKQogewogICAgIGlmICht
X2JhY2tlbmRDb25uZWN0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYkluc3BlY3RvclVJLmgKaW5kZXggYjE1MzdkYmFkMGJjZTEyYmU1MWYxZjQ5NzNkYTZl
N2EwMTg1MzJhOC4uODM4MWJmMWNlZGVjYjY1YzVkNDc0NzVjMjJiN2QzZGI2MmZiZmQ4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yVUku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3JVSS5o
CkBAIC0zMyw2ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJbnNwZWN0b3JD
b250cm9sbGVyOwogY2xhc3MgQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgRmxvYXRSZWN0OwogfQog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEwMSw2ICsxMDIsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSBvdmVycmlkZTsKIAorICAgIHZv
aWQgY2hhbmdlU2hlZXRSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOwor
CiAgICAgdm9pZCBvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmwpIG92ZXJyaWRlOwogCiAg
ICAgYm9vbCBjYW5TYXZlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnRJT1MubW0K
aW5kZXggZThjMmVlNTAxZmNmNmZjOGZiZmZiNzJhZjcwYjhiZGE1ZjRkMWNlMC4uMDcxNjk4MDU0
MDM2NjgzMDA0MzVmZDQ0M2IwMjkzNTYzODc0OTI0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50SU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVu
dElPUy5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCAiV2ViTm9kZUhpZ2hsaWdodGVyLmgi
CiAjaW1wb3J0ICJXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvQ2VydGlmaWNh
dGVJbmZvLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9JbnNwZWN0b3JDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BhZ2UuaD4KQEAgLTEzMCw2ICsxMzEsNyBAQCB2b2lkIFdl
Ykluc3BlY3RvckZyb250ZW5kQ2xpZW50OjphdHRhY2hXaW5kb3coRG9ja1NpZGUpIHsgfQogdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6ZGV0YWNoV2luZG93KCkgeyB9CiB2b2lkIFdl
Ykluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCkgeyB9CiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50OjpzZXRBdHRhY2hlZFdpbmRv
d1dpZHRoKHVuc2lnbmVkKSB7IH0KK3ZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNl
dFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmKSB7IH0KIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OnN0YXJ0V2luZG93RHJhZygpIHsgfQogdm9pZCBXZWJJbnNwZWN0b3JGcm9udGVu
ZENsaWVudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKSB7IH0KIHZvaWQgV2Vi
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnQ6OnNob3dDZXJ0aWZpY2F0ZShjb25zdCBDZXJ0aWZpY2F0
ZUluZm8mKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKaW5kZXggOGNlOTdiODYyYWRiOGRmZjVj
YjZjYzM2NDEzYjM5NTk4YzNmMzkwNS4uNGEyNWE2Yzk2M2Q0MTM1NWFjNTNlNmU3OTEwZjUyNjRj
YjI5YmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKICAqLwog
CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9JbnNwZWN0b3JGcm9udGVuZENoYW5uZWwuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0luc3BlY3RvckNs
aWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+
CiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5oPgpAQCAtMTI1LDYgKzEyNiwxMSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJyaWRl
OwogICAgIHZvaWQgc2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCBoZWlnaHQpIG92ZXJy
aWRlOwogCisjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgY29uc3QgV2ViQ29yZTo6Rmxv
YXRSZWN0JiBzaGVldFJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NoZWV0UmVjdDsgfQorI2VuZGlm
CisgICAgdm9pZCBzZXRTaGVldFJlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJp
ZGU7CisKICAgICB2b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJiBuZXdVUkwp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRp
ZmljYXRlSW5mbyYpIG92ZXJyaWRlOwogCkBAIC0xNDAsNSArMTQ2LDYgQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8V2ViSW5zcGVjdG9yV2luZG93Q29udHJvbGxlcj4gbV9mcm9udGVuZFdpbmRv
d0NvbnRyb2xsZXI7CiAgICAgU3RyaW5nIG1faW5zcGVjdGVkVVJMOwogICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZXRhaW5QdHI8TlNVUkw+PiBtX3N1Z2dlc3RlZFRvQWN0dWFsVVJMTWFwOworICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCBtX3NoZWV0UmVjdDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5tbQppbmRleCA2MzE1ZTY4YjYyOTZiYzdkNjQ2OGQwZjYxOTdjYWE1ZDIzYjY4ODU2Li4x
YjkwM2FmOGI0Y2FmZTJhOWI1NmY3MTI4YzdlNDBiOTJhY2I2OGI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50Lm1tCkBAIC0yNzksNiArMjc5LDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnQ6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCiAgICAgLy8gRG9jayB0byBy
aWdodCBpcyBub3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0IDEuCiB9CiAKK3ZvaWQgV2ViSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnQ6OnNldFNoZWV0UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCit7
CisgICAgbV9zaGVldFJlY3QgPSByZWN0OworfQorCiB2b2lkIFdlYkluc3BlY3RvckZyb250ZW5k
Q2xpZW50OjppbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYgbmV3VVJMKQogewogICAg
IG1faW5zcGVjdGVkVVJMID0gbmV3VVJMOwpAQCAtNTE1LDggKzUyMCwxMCBAQCAtIChOU1dpbmRv
dyAqKXdpbmRvdwogCiAtIChOU1JlY3Qpd2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3aWxsUG9z
aXRpb25TaGVldDooTlNXaW5kb3cgKilzaGVldCB1c2luZ1JlY3Q6KE5TUmVjdClyZWN0CiB7Cisg
ICAgaWYgKF9mcm9udGVuZENsaWVudCkKKyAgICAgICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgX2Zy
b250ZW5kQ2xpZW50LT5zaGVldFJlY3QoKS5oZWlnaHQoKSwgX2Zyb250ZW5kQ2xpZW50LT5zaGVl
dFJlY3QoKS53aWR0aCgpLCAwKTsKKwogICAgIC8vIEFwcEtpdCBkb2Vzbid0IGtub3cgYWJvdXQg
b3VyIEhUTUwgdG9vbGJhciwgYW5kIHBsYWNlcyB0aGUgc2hlZXQganVzdCBhIGxpdHRsZSBiaXQg
dG9vIGhpZ2guCi0gICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIGJldHRlciB0byBnZXQgdGhlIGhl
aWdodCBvZiB0aGUgdG9vbGJhciBhbmQgdXNlIGl0IGluIHRoaXMgY2FsY3VsYXRpb24uCiAgICAg
cmVjdC5vcmlnaW4ueSAtPSAxOwogICAgIHJldHVybiByZWN0OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHAKaW5kZXggYjJkYWVkYjZjMjNlN2NmMzA2ZjA3ZTNmYTNjNmRiZjQ4OWM0OWNlZS4u
YTBkNzY5ZDIxZDNhYzA0MzU1ZTk2YTljZjJkYjQ2ZWY2NWZkYjU0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0
b3JDbGllbnQuY3BwCkBAIC0zNDAsNiArMzQwLDExIEBAIHZvaWQgV2ViSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQ6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQpCiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAordm9pZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6c2V0U2hlZXRS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9p
ZCBXZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudDo6aW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBT
dHJpbmcmIG5ld1VSTCkKIHsKICAgICBtX2luc3BlY3RlZFVSTCA9IG5ld1VSTDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmgKaW5kZXggNzk2NmNmMmM3Y2MwMmE4YTljZjVlODhhYjA2YmI1NjQ3ZjQ0MTFj
MC4uMTczM2E3MjcyZjgwMjc5OTczOWIyMGMyYjBmMDVhNWFiY2Y4YTQwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmgKQEAgLTEwOCw2ICsxMDgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRh
Y2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRBdHRhY2hl
ZFdpbmRvd1dpZHRoKHVuc2lnbmVkKSBvdmVycmlkZTsKIAorICAgIHZvaWQgc2V0U2hlZXRSZWN0
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworCiAgICAgdm9pZCBpbnNwZWN0
ZWRVUkxDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5nJiBuZXdVUkwpIG92ZXJyaWRlOwogICAgIHZv
aWQgc2hvd0NlcnRpZmljYXRlKGNvbnN0IFdlYkNvcmU6OkNlcnRpZmljYXRlSW5mbyYpIG92ZXJy
aWRlOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>