<?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>182635</bug_id>
          
          <creation_ts>2018-02-08 20:20:21 -0800</creation_ts>
          <short_desc>[RenderTreeBuilder] Introduce RenderTreeBuilder to willBeDestoryed/removeFromParentAndDestroy</short_desc>
          <delta_ts>2018-02-09 12:51:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1397816</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-02-08 20:20:21 -0800</bug_when>
    <thetext>temporarily</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397817</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-08 20:20:56 -0800</bug_when>
    <thetext>&lt;rdar://problem/37377489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1397818</commentid>
    <comment_count>2</comment_count>
      <attachid>333442</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-08 20:33:58 -0800</bug_when>
    <thetext>Created attachment 333442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398021</commentid>
    <comment_count>3</comment_count>
      <attachid>333501</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-09 11:00:58 -0800</bug_when>
    <thetext>Created attachment 333501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398040</commentid>
    <comment_count>4</comment_count>
      <attachid>333505</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-02-09 11:49:30 -0800</bug_when>
    <thetext>Created attachment 333505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398063</commentid>
    <comment_count>5</comment_count>
      <attachid>333505</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-09 12:51:04 -0800</bug_when>
    <thetext>Comment on attachment 333505
Patch

Clearing flags on attachment: 333505

Committed r228337: &lt;https://trac.webkit.org/changeset/228337&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1398064</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-09 12:51:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333442</attachid>
            <date>2018-02-08 20:33:58 -0800</date>
            <delta_ts>2018-02-09 11:00:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182635-20180208203356.patch</filename>
            <type>text/plain</type>
            <size>69220</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDE0YjlmODg1MTBmMzUx
MDBmMjcwNmZiMDM3NzE5Mjc3ZTQ4Zjg4Ny4uYmMyYmE1NGJhZWUwZDA3Njk5NDg5ZDhjNDllMGJi
YTMyNjViNDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MSBAQAorMjAxOC0wMi0wOCAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtSZW5kZXJUcmVlQnVpbGRl
cl0gSW50cm9kdWNlIFJlbmRlclRyZWVCdWlsZGVyIHRvIHdpbGxCZURlc3RvcnllZC9yZW1vdmVG
cm9tUGFyZW50QW5kRGVzdHJveQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyNjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzM3NzQ4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXSVAgcGF0Y2gu
CisKKyAgICAgICAgTm8gY2hhbmdlIGluIGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20v
RG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldEZ1bGxTY3JlZW5S
ZW5kZXJlcik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjp3aWxsQmVE
ZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnRha2VDaGlsZCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6Ondp
bGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVtb3ZlQW5kRGVzdHJveUFsbENv
bnRpbnVhdGlvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQnV0dG9uOjpzZXRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ291
bnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJDb3VudGVyOjp3aWxsQmVEZXN0cm95
ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJDb3VudGVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRWxlbWVu
dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnJh
Z21lbnRlZEZsb3c6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZyYWdtZW50ZWRGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6d2lsbEJlRGVzdHJveWVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZ1bGxTY3JlZW46OndyYXBOZXdSZW5kZXJlcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGdWxsU2NyZWVuOjp3cmFwRXhpc3RpbmdSZW5kZXJl
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcik6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaDoKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW1hZ2U6Ondp
bGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlcklubGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMaXN0Qm94Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
aXN0Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RJdGVtOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
aXN0TWFya2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxpc3RNYXJrZXI6OndpbGxC
ZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTWVudUxpc3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtbkZsb3c6OmhhbmRsZVNw
YW5uZXJSZW1vdmFsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpkZXN0cm95KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0cm95ZWQpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlBc0lubGluZTo6
dGFrZUNoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJ1YnlBc0Jsb2NrOjp0YWtlQ2hp
bGQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTZWFyY2hGaWVsZDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW46OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clNuYXBzaG90dGVkUGx1Z0luLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbE11bHRpTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbE11bHRpTGluZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4
dEZyYWdtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRGcmFnbWVudDo6d2ls
bEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRleHRGcmFnbWVudDo6c2V0
VGV4dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJWaWRlby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJW
aWRlbzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ry
b3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHSW1hZ2U6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbWFnZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6d2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdSb290Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oOgorICAgICAgICAqIHJlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
cmVlQnVpbGRlcjo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3lDbGVhbmluZ1VwQW5vbnltb3Vz
V3JhcHBlcnMpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Okxpc3Q6OnVw
ZGF0ZUl0ZW1NYXJrZXIpOgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlck11bHRpQ29sdW1uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRyZWVCdWls
ZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRyZWVCdWlsZGVyOjpSdWJ5Ojptb3ZlQmxvY2tDaGlsZHJlbik6CisKIDIwMTgt
MDItMDggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBGb3JtIHN1
Ym1pc3Npb24gYWZ0ZXIgbmF2aWdhdGlvbiBmYWlscyB3aGVuIGRlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24gaXMgYXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGRmNzc2YTM5
OGQ2NjlhNGNjMTRmZGNkM2NkZDI0Yzg4MWU2YjRhMzAuLjU5MDgyY2ZhNGNhODllYjQ3NGYwMzIz
MzMxM2ZkMzc0NGM1NmY1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjI5Nyw3ICs2
Mjk3LDcgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqKQogICAgIGV4aXRpbmdEb2N1bWVudC5tX2Z1bGxTY3JlZW5DaGFuZ2VEZWxheVRp
bWVyLnN0YXJ0T25lU2hvdCgwX3MpOwogfQogCi12b2lkIERvY3VtZW50OjpzZXRGdWxsU2NyZWVu
UmVuZGVyZXIoUmVuZGVyRnVsbFNjcmVlbiogcmVuZGVyZXIpCit2b2lkIERvY3VtZW50OjpzZXRG
dWxsU2NyZWVuUmVuZGVyZXIoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlckZ1bGxT
Y3JlZW4qIHJlbmRlcmVyKQogewogICAgIGlmIChyZW5kZXJlciA9PSBtX2Z1bGxTY3JlZW5SZW5k
ZXJlcikKICAgICAgICAgcmV0dXJuOwpAQCAtNjMxMiw3ICs2MzEyLDcgQEAgdm9pZCBEb2N1bWVu
dDo6c2V0RnVsbFNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qIHJlbmRlcmVyKQogICAg
IH0KIAogICAgIGlmIChtX2Z1bGxTY3JlZW5SZW5kZXJlcikKLSAgICAgICAgbV9mdWxsU2NyZWVu
UmVuZGVyZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIG1fZnVsbFNj
cmVlblJlbmRlcmVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKICAgICBB
U1NFUlQoIW1fZnVsbFNjcmVlblJlbmRlcmVyKTsKIAogICAgIG1fZnVsbFNjcmVlblJlbmRlcmVy
ID0gbWFrZVdlYWtQdHIocmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBmZDZlNmEx
NzlhNjhiM2VlNjUwYWNiZTk4M2E1MWM1YjdlNjliYjQ0Li42YjFiNmY4MTY5YjYwYjVkMWY0ZWJh
YjNhNzBiMDM2NmYxNTdhMTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMTUyLDYgKzE1Miw3
IEBAIGNsYXNzIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKIGNsYXNzIFF1YWxpZmllZE5hbWU7CiBj
bGFzcyBSYW5nZTsKIGNsYXNzIFJlbmRlckZ1bGxTY3JlZW47CitjbGFzcyBSZW5kZXJUcmVlQnVp
bGRlcjsKIGNsYXNzIFJlbmRlclZpZXc7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVDYWxs
YmFjazsKIGNsYXNzIFNWR0RvY3VtZW50RXh0ZW5zaW9uczsKQEAgLTExMzAsNyArMTEzMSw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdlYmtpdFdpbGxFeGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2Via2l0RGlk
RXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKTsKICAgICAKLSAgICB2b2lkIHNldEZ1
bGxTY3JlZW5SZW5kZXJlcihSZW5kZXJGdWxsU2NyZWVuKik7CisgICAgdm9pZCBzZXRGdWxsU2Ny
ZWVuUmVuZGVyZXIoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJGdWxsU2NyZWVuKik7CiAgICAg
UmVuZGVyRnVsbFNjcmVlbiogZnVsbFNjcmVlblJlbmRlcmVyKCkgY29uc3QgeyByZXR1cm4gbV9m
dWxsU2NyZWVuUmVuZGVyZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQgZnVsbFNjcmVlbkNoYW5nZURl
bGF5VGltZXJGaXJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
aW5kZXggYzcxZmI1NGY1MTEzZWQzNWE5ZDllM2UwNDNjNWY4M2JlMDEwOTcxZi4uZmI5MTk4ZWI4
ZjdlODBlYTdmYTc4MmM1NGMwMGExNTM0NDA5YWMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgUmVuZGVyQmxvY2s6On5SZW5k
ZXJCbG9jaygpCiB9CiAKIC8vIE5vdGUgdGhhdCB0aGlzIGlzIG5vdCBjYWxsZWQgZm9yIFJlbmRl
ckJsb2NrRmxvd3MuCi12b2lkIFJlbmRlckJsb2NrOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBS
ZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQog
ewogICAgIGlmICghcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgaWYgKHBh
cmVudCgpKQpAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ry
b3llZCgpCiAKICAgICBibG9ja1dpbGxCZURlc3Ryb3llZCgpOwogCi0gICAgUmVuZGVyQm94Ojp3
aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZChidWlsZGVy
KTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6YmxvY2tXaWxsQmVEZXN0cm95ZWQoKQpAQCAtNTc4
LDcgKzU3OCw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlckJsb2NrOjp0YWtlQ2hp
bGQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIsIFJlbmRlCiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIC8vIERlbGV0ZSB0aGUgbm93LWVtcHR5IGJsb2NrJ3MgbGluZXMgYW5kIG51a2UgaXQu
CiAgICAgICAgICAgICBuZXh0QmxvY2suZGVsZXRlTGluZXMoKTsKLSAgICAgICAgICAgIG5leHRC
bG9jay5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgICAgICAgICAgbmV4dEJsb2Nr
LnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgICAgICAgICAgbmV4dCA9
IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oCmluZGV4IGExODNkY2NmYWZkMWY5ZDBhM2U1MWEzMzY0ODI0OTk5MDM1YzYzODMuLmMz
ZjU0NTljMGQ2M2ZjYWI2NjhmMmMwNzEyYTY0NmM4NmFlM2Y1YzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oCkBAIC0zMjMsNyArMzIzLDcgQEAgcHVibGljOgogICAgIAog
cHJvdGVjdGVkOgogICAgIFJlbmRlckZyYWdtZW50ZWRGbG93KiBsb2NhdGVFbmNsb3NpbmdGcmFn
bWVudGVkRmxvdygpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBv
dmVycmlkZTsKIAogICAgIHZvaWQgbGF5b3V0KCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMDc1YmQyMmQ3NWZkZDNiY2Fl
ODA4MjcxYzA1M2JkZGZlMWEwYTMzZS4uYjFmOGUzMzY0YzFjMGQ4MDMyYjQxNmQ1YTA2YWMyNWVj
ZDA0N2E1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBSZW5kZXJCbG9ja0Zsb3c6On5SZW5kZXJCbG9ja0Zsb3co
KQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ry
b3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95
ZWQoKQordm9pZCBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAoIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpKSB7
CiAgICAgICAgIGlmIChmaXJzdFJvb3RCb3goKSkgewpAQCAtMTU0LDcgKzE1NCw3IEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgIGJsb2NrV2lsbEJlRGVzdHJv
eWVkKCk7CiAKICAgICAvLyBOT1RFOiBUaGlzIGp1bXBzIGRvd24gdG8gUmVuZGVyQm94LCBieXBh
c3NpbmcgUmVuZGVyQmxvY2sgc2luY2UgaXQgd291bGQgZG8gZHVwbGljYXRlIHdvcmsuCi0gICAg
UmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ry
b3llZChidWlsZGVyKTsKIH0KIAogUmVuZGVyQmxvY2tGbG93KiBSZW5kZXJCbG9ja0Zsb3c6OnBy
ZXZpb3VzU2libGluZ1dpdGhPdmVyaGFuZ2luZ0Zsb2F0cyhib29sJiBwYXJlbnRIYXNGbG9hdHMp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKaW5kZXgg
OWJjNmIwMGU2MTc4ZjI0YzRkZWNlNGE4Nzk5NmE5NTRhNzdlNzU5Yy4uNTIwNzhiOTYyNjU1ZjE3
NzIwMWFlMDI5NmYyZTY5MzUwNGJjYTE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsYXlv
dXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWln
aHQgPSAwKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXIm
KSBvdmVycmlkZTsKICAgICAKICAgICAvLyBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYXQgdGhlIHN0
YXJ0IG9mIGxheW91dCB0byB3aXBlIGF3YXkgYWxsIG9mIHRoZSBmbG9hdHMgaW4gb3VyIGZsb2F0
aW5nIG9iamVjdHMgbGlzdC4gSXQgYWxzbwogICAgIC8vIHJlcG9wdWxhdGVzIHRoZSBsaXN0IHdp
dGggYW55IGZsb2F0cyB0aGF0IGludHJ1ZGUgZnJvbSBwcmV2aW91cyBzaWJsaW5ncyBvciBwYXJl
bnRzLiBGbG9hdHMgdGhhdCB3ZXJlIGFkZGVkIGJ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCmluZGV4IGEwZTUwNGQxZGU0ZGY4Y2NjOThlZDg1ZmFjZGJkYWNmNTQ1YjdjNDcu
LmM2ZDhkYzE3NjQ0MWYyYzg3MGJiNGM3MzcxOWM0MTU3MWVhOTlmODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC0xNTAsNyArMTUwLDcgQEAgUmVuZGVyQm94Ojp+
UmVuZGVyQm94KCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3
aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckJveDo6d2lsbEJlRGVz
dHJveWVkKCkKK3ZvaWQgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxk
ZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKGZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuYXV0b3Njcm9s
bFJlbmRlcmVyKCkgPT0gdGhpcykKICAgICAgICAgZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5zdG9w
QXV0b3Njcm9sbFRpbWVyKHRydWUpOwpAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgUmVuZGVyQm94
Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICB2aWV3KCkudW5yZWdpc3RlckJveFdpdGhTY3Jv
bGxTbmFwUG9zaXRpb25zKCp0aGlzKTsKICNlbmRpZgogCi0gICAgUmVuZGVyQm94TW9kZWxPYmpl
Y3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVE
ZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBSZW5kZXJC
b3g6OmNsYW1wVG9TdGFydEFuZEVuZEZyYWdtZW50cyhSZW5kZXJGcmFnbWVudENvbnRhaW5lciog
ZnJhZ21lbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggYWQ0
NDkxYmQ3Y2FkYTQzMDZhNWU0MTEyNDE5NGMyYmJiMjYyMTQxZS4uMTdlNjk0ZWY1YzcwMDhlN2Ix
MTFhNDE4ZTNmMTc2YjZjN2ZiYWEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aApAQCAtNjMxLDcgKzYzMSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsK
ICAgICB2b2lkIHVwZGF0ZUZyb21TdHlsZSgpIG92ZXJyaWRlOwogCi0gICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVl
QnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRl
eHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hN
b2RlbE9iamVjdC5jcHAKaW5kZXggYTgxODZlZjk2N2I1NWZhODkzMzJhZjNhM2UyYWQwYjNiNGM4
OGU4Ni4uZTJkNjNhOWYzMWEyY2Y4ZWM1MzQzMjQ0NTdkMzdhNWQxNTdkYWYyOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCkBAIC0y
MzcsMTAgKzIzNywxMCBAQCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6flJlbmRlckJveE1vZGVsT2Jq
ZWN0KCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVE
ZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxs
QmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVk
KFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChjb250aW51YXRpb24oKSAm
JiAhaXNDb250aW51YXRpb24oKSkgewotICAgICAgICByZW1vdmVBbmREZXN0cm95QWxsQ29udGlu
dWF0aW9ucygpOworICAgICAgICByZW1vdmVBbmREZXN0cm95QWxsQ29udGludWF0aW9ucyhidWls
ZGVyKTsKICAgICAgICAgQVNTRVJUKCFjb250aW51YXRpb24oKSk7CiAgICAgfQogICAgIGlmICho
YXNDb250aW51YXRpb25DaGFpbk5vZGUoKSkKQEAgLTI1Miw3ICsyNTIsNyBAQCB2b2lkIFJlbmRl
ckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgIGlmICghcmVuZGVyVHJlZUJl
aW5nRGVzdHJveWVkKCkpCiAgICAgICAgIHZpZXcoKS5pbWFnZVF1YWxpdHlDb250cm9sbGVyKCku
cmVuZGVyZXJXaWxsQmVEZXN0cm95ZWQoKnRoaXMpOwogCi0gICAgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6d2ls
bEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBib29sIFJlbmRlckJveE1vZGVsT2JqZWN0Ojpo
YXNWaXNpYmxlQm94RGVjb3JhdGlvblN0eWxlKCkgY29uc3QKQEAgLTI1NTEsMTQgKzI1NTEsMTQg
QEAgYXV0byBSZW5kZXJCb3hNb2RlbE9iamVjdDo6ZW5zdXJlQ29udGludWF0aW9uQ2hhaW5Ob2Rl
KCkgLT4gQ29udGludWF0aW9uQ2hhaW5Ob2QKICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiB9CiAK
LXZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlbW92ZUFuZERlc3Ryb3lBbGxDb250aW51YXRp
b25zKCkKK3ZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OnJlbW92ZUFuZERlc3Ryb3lBbGxDb250
aW51YXRpb25zKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIEFTU0VSVCghaXND
b250aW51YXRpb24oKSk7CiAgICAgQVNTRVJUKGhhc0NvbnRpbnVhdGlvbkNoYWluTm9kZSgpKTsK
ICAgICBBU1NFUlQoY29udGludWF0aW9uQ2hhaW5Ob2RlTWFwKCkuY29udGFpbnModGhpcykpOwog
ICAgIGF1dG8mIGNvbnRpbnVhdGlvbkNoYWluTm9kZSA9ICpjb250aW51YXRpb25DaGFpbk5vZGVN
YXAoKS5nZXQodGhpcyk7CiAgICAgd2hpbGUgKGNvbnRpbnVhdGlvbkNoYWluTm9kZS5uZXh0KQot
ICAgICAgICBjb250aW51YXRpb25DaGFpbk5vZGUubmV4dC0+cmVuZGVyZXItPnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIGNvbnRpbnVhdGlvbkNoYWluTm9kZS5uZXh0LT5y
ZW5kZXJlci0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiAgICAgcmVtb3Zl
RnJvbUNvbnRpbnVhdGlvbkNoYWluKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKaW5kZXggN2JlOGIyYmFlMjk2NTM0YWE2OWVlMmVh
NGU4MzBkZTNiZWJjNmY0ZC4uZWU4NDBjYjA3NDQ1MTBjYTY0MTA0N2IxYTU4YTA1ZDQyN2UwYTg0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2Jq
ZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmgKQEAgLTI0NSw3ICsyNDUsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyQm94TW9kZWxPYmpl
Y3QoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIEJhc2VUeXBlRmxhZ3MpOwogICAgIFJlbmRlckJv
eE1vZGVsT2JqZWN0KERvY3VtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CiAK
LSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVz
dHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICBMYXlvdXRQb2ludCBh
ZGp1c3RlZFBvc2l0aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudChjb25zdCBMYXlvdXRQb2ludCYp
IGNvbnN0OwogCkBAIC0zMDgsNyArMzA4LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIENv
bnRpbnVhdGlvbkNoYWluTm9kZSYgZW5zdXJlQ29udGludWF0aW9uQ2hhaW5Ob2RlKCk7Ci0gICAg
dm9pZCByZW1vdmVBbmREZXN0cm95QWxsQ29udGludWF0aW9ucygpOworICAgIHZvaWQgcmVtb3Zl
QW5kRGVzdHJveUFsbENvbnRpbnVhdGlvbnMoUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAogICAgIExh
eW91dFVuaXQgY29tcHV0ZWRDU1NQYWRkaW5nKGNvbnN0IExlbmd0aCYpIGNvbnN0OwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcAppbmRleCA2NWFkMzRjMTIy
NjEzZDlhMDY3MDZlMmEwMjQ5YTQ5OGY5MWRhODdmLi5lZDhhMWViNTkxMTRiNzNkNGIzMmQ4NmY1
OTQ1ZTY2MWEyOTNjOGM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQnV0dG9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9u
LmNwcApAQCAtMTI4LDcgKzEyOCwxMiBAQCB2b2lkIFJlbmRlckJ1dHRvbjo6c2V0VGV4dChjb25z
dCBTdHJpbmcmIHN0cikKICAgICAgICAgbV9idXR0b25UZXh0LT5zZXRUZXh0KHN0ci5pbXBsKCkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIG1fYnV0dG9uVGV4dC0+cmVtb3ZlRnJvbVBh
cmVudEFuZERlc3Ryb3koKTsKKyAgICBpZiAoUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSkK
KyAgICAgICAgbV9idXR0b25UZXh0LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgqUmVuZGVy
VHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSk7CisgICAgZWxzZSB7CisgICAgICAgIFJlbmRlclRyZWVC
dWlsZGVyIGJ1aWxkZXIoKmRvY3VtZW50KCkucmVuZGVyVmlldygpKTsKKyAgICAgICAgbV9idXR0
b25UZXh0LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKKyAgICB9CiB9CiAK
IFN0cmluZyBSZW5kZXJCdXR0b246OnRleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckNvdW50ZXIuY3BwCmluZGV4IDNmMTRlNjkxZThlNGVjZDQ0NjI2OThmMTQ1OTc1
NTk1YjYwMDJjM2IuLjU2NTFhZjQ1YmNmNWQ0NjZmOGM3N2MwOTliZmVjMWIxYzI0NjYzYzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKQEAgLTM1Miw3ICsz
NTIsNyBAQCBSZW5kZXJDb3VudGVyOjp+UmVuZGVyQ291bnRlcigpCiAgICAgLy8gRG8gbm90IGFk
ZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0K
IAotdm9pZCBSZW5kZXJDb3VudGVyOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJDb3Vu
dGVyOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAg
dmlldygpLnJlbW92ZVJlbmRlckNvdW50ZXIoKTsKIApAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQg
UmVuZGVyQ291bnRlcjo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAgICAgQVNTRVJUKCFtX2NvdW50
ZXJOb2RlKTsKICAgICB9CiAgICAgCi0gICAgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCk7
CisgICAgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBjb25zdCBj
aGFyKiBSZW5kZXJDb3VudGVyOjpyZW5kZXJOYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5oCmluZGV4IDhhOTAyMDJkNDUwOTYxYTE1ODcxMTQ5MWQ1NzA1
NTYyZTg1NDhiOTQuLmRiNGRmN2IwZTY0ZTUyMWJhNmVhZTlmY2ViODFjNGI2YzI4MmZlZjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaApAQCAtNDMsNyArNDMsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVDb3VudGVyKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogICAgIAogICAgIGNvbnN0IGNoYXIqIHJlbmRl
ck5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzQ291bnRlcigpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCmluZGV4IGI3
NDBkOTgyMTg5NWEyMmRhNGQyMjgyZDg1NGVmOTgwNmU5ZWU3ZjguLmUyODE1NWQwNWNkNzY5NzMw
MmQ1Mzg1YmUxYzJlZmUwNjM5ZmM1NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKQEAgLTEwNTAsNyArMTA1MCw3IEBAIGlubGluZSB2b2lkIFJlbmRlckVs
ZW1lbnQ6OmNsZWFyU3VidHJlZUxheW91dFJvb3RJZk5lZWRlZCgpIGNvbnN0CiAgICAgdmlldygp
LmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5jbGVhclN1YnRyZWVMYXlvdXRSb290KCk7CiB9
CiAKLXZvaWQgUmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyRWxl
bWVudDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAg
IGlmIChtX3N0eWxlLmhhc0ZpeGVkQmFja2dyb3VuZEltYWdlKCkgJiYgIXNldHRpbmdzKCkuZml4
ZWRCYWNrZ3JvdW5kc1BhaW50UmVsYXRpdmVUb0RvY3VtZW50KCkpCiAgICAgICAgIHZpZXcoKS5m
cmFtZVZpZXcoKS5yZW1vdmVTbG93UmVwYWludE9iamVjdCgqdGhpcyk7CkBAIC0xMDYwLDcgKzEw
NjAsNyBAQCB2b2lkIFJlbmRlckVsZW1lbnQ6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgaWYgKGhh
c0NvdW50ZXJOb2RlTWFwKCkpCiAgICAgICAgIFJlbmRlckNvdW50ZXI6OmRlc3Ryb3lDb3VudGVy
Tm9kZXMoKnRoaXMpOwogCi0gICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAg
ICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIAogICAgIGNsZWFyU3Vi
dHJlZUxheW91dFJvb3RJZk5lZWRlZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuaAppbmRleCBjZWFiN2M4OTY2MWRjOTVmZmNkYTU5ZGUyYjA4YzlkMjFiOWY5ZWE1
Li5hZmVhNTEyMDNiOWU2NTJhYjBiODcyZTBjMjU0ZWMyNzJkM2JlZjY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTI2MCw3ICsyNjAsNyBAQCBwcm90ZWN0
ZWQ6CiAKICAgICB2b2lkIGluc2VydGVkSW50b1RyZWUoKSBvdmVycmlkZTsKICAgICB2b2lkIHdp
bGxCZVJlbW92ZWRGcm9tVHJlZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXIm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2V0UmVuZGVySW5saW5lQWx3YXlzQ3JlYXRlc0xpbmVC
b3hlcyhib29sIGIpIHsgbV9yZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzID0gYjsg
fQogICAgIGJvb2wgcmVuZGVySW5saW5lQWx3YXlzQ3JlYXRlc0xpbmVCb3hlcygpIGNvbnN0IHsg
cmV0dXJuIG1fcmVuZGVySW5saW5lQWx3YXlzQ3JlYXRlc0xpbmVCb3hlczsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggMDAw
YTA4OTg0YzE0ODNlZjkxMTIxZmQ4OWFhMWY0MWQ3NjcxNTk1Yi4uZjg4NjlkYjllZWNkYjQ3Yjc1
YzRmYTMyZjk3ZTY5YWI4NjQ5Y2FlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC0xMTMsMTAgKzExMywxMCBAQCBSZW5kZXJF
bWJlZGRlZE9iamVjdDo6flJlbmRlckVtYmVkZGVkT2JqZWN0KCkKICAgICAvLyBEbyBub3QgYWRk
IGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQog
Ci12b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWls
ZGVyKQogewogICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5yZW1vdmVFbWJlZGRlZE9iamVjdFRvVXBk
YXRlKCp0aGlzKTsKLSAgICBSZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJl
bmRlcldpZGdldDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBSZW5kZXJQdHI8UmVu
ZGVyRW1iZWRkZWRPYmplY3Q+IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpjcmVhdGVGb3JBcHBsZXQo
SFRNTEFwcGxldEVsZW1lbnQmIGFwcGxldCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKaW5kZXggZWFhYjc4
NmYxZDQ0ODcwNDVkNjc2ZWFmN2Y5MDBhNTFiYWYxMGM4Ny4uNTBmNTc2ZjA3YWJhOWQwZDY3MzE0
YjMyOGQzOGM3MjlhNDRhOTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHJvdGVjdGVkOgogCiBwcm90
ZWN0ZWQ6CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxCZURlc3Ry
b3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWls
ZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJFbWJlZGRlZE9iamVjdCI7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCmluZGV4
IGY1YTliOGQyM2MyYzkwNGVjZWIwNzEyMTdkNWQ2NDgyNDQzZmI5MDEuLjgyMDlhZGYwYmYwMWY2
OGE1MTFmMTU2MTlkYTc0MjA3NWQ1MGNlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcApAQCAtNzYzLDEwICs3NjMsMTAgQEAgdm9p
ZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6ZGVsZXRlTGluZXMoKQogICAgIFJlbmRlckJsb2NrRmxv
dzo6ZGVsZXRlTGluZXMoKTsKIH0KIAotdm9pZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6d2lsbEJl
RGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyRnJhZ21lbnRlZEZsb3c6OndpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBjbGVhckxpbmVzVG9GcmFnbWVudE1h
cCgpOwotICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVy
QmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyRnJh
Z21lbnRlZEZsb3c6Om1hcmtGcmFnbWVudHNGb3JPdmVyZmxvd0xheW91dElmTmVlZGVkKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmgKaW5kZXgg
Y2RkNDNjY2UxYWVkMmMwMTBhZDRkZmE4NmJiM2Y5NGZmZTFkZWE4MC4uZWFjMTYyYWEyNjM5ODQ0
Y2ZkZjU3OTgyYjg4MmQ3NTZiNWVhYmM0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmgKQEAgLTE5OCw3ICsxOTgsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGluaXRpYWxMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJl
dHVybiAwOyB9OwogICAgIAogICAgIHZvaWQgY2xlYXJMaW5lc1RvRnJhZ21lbnRNYXAoKTsKLSAg
ICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIG1hcExvY2FsVG9D
b250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwg
VHJhbnNmb3JtU3RhdGUmLCBNYXBDb29yZGluYXRlc0ZsYWdzLCBib29sKiB3YXNGaXhlZCkgY29u
c3Qgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGdWxsU2NyZWVuLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2Ny
ZWVuLmNwcAppbmRleCA4ZjAzNTJkOGU1MDIyOTJhOWFlMjQ0MThlZWUwMTFjZDE2M2NiN2Y4Li44
NDk5M2MwY2M5YjQwZmZmNjQ0ZDQ4OTg3YzdiZDUwNjc3ZWJjN2FkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCkBAIC01OCwxNCArNTgsMTQgQEAg
UmVuZGVyRnVsbFNjcmVlbjo6UmVuZGVyRnVsbFNjcmVlbihEb2N1bWVudCYgZG9jdW1lbnQsIFJl
bmRlclN0eWxlJiYgc3R5bGUpCiAgICAgc2V0UmVwbGFjZWQoZmFsc2UpOyAKIH0KIAotdm9pZCBS
ZW5kZXJGdWxsU2NyZWVuOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJGdWxsU2NyZWVu
Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYg
KG1fcGxhY2Vob2xkZXIpIHsKLSAgICAgICAgbV9wbGFjZWhvbGRlci0+cmVtb3ZlRnJvbVBhcmVu
dEFuZERlc3Ryb3koKTsKKyAgICAgICAgbV9wbGFjZWhvbGRlci0+cmVtb3ZlRnJvbVBhcmVudEFu
ZERlc3Ryb3koYnVpbGRlcik7CiAgICAgICAgIEFTU0VSVCghbV9wbGFjZWhvbGRlcik7CiAgICAg
fQogCi0gICAgUmVuZGVyRmxleGlibGVCb3g6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRl
ckZsZXhpYmxlQm94Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHN0YXRpYyBSZW5k
ZXJTdHlsZSBjcmVhdGVGdWxsU2NyZWVuU3R5bGUoKQpAQCAtMTA2LDcgKzEwNiw3IEBAIFJlbmRl
clB0cjxSZW5kZXJGdWxsU2NyZWVuPiBSZW5kZXJGdWxsU2NyZWVuOjp3cmFwTmV3UmVuZGVyZXIo
UmVuZGVyVHJlZUJ1aWxkZXImCiAgICAgYnVpbGRlci5pbnNlcnRDaGlsZChmdWxsc2NyZWVuUmVu
ZGVyZXIsIFdURk1vdmUocmVuZGVyZXIpKTsKICAgICBmdWxsc2NyZWVuUmVuZGVyZXIuc2V0TmVl
ZHNMYXlvdXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAKLSAgICBkb2N1bWVudC5zZXRGdWxsU2Ny
ZWVuUmVuZGVyZXIoJmZ1bGxzY3JlZW5SZW5kZXJlcik7CisgICAgZG9jdW1lbnQuc2V0RnVsbFNj
cmVlblJlbmRlcmVyKGJ1aWxkZXIsICZmdWxsc2NyZWVuUmVuZGVyZXIpOwogCiAgICAgcmV0dXJu
IG5ld0Z1bGxzY3JlZW5SZW5kZXJlcjsKIH0KQEAgLTE0Myw3ICsxNDMsNyBAQCB2b2lkIFJlbmRl
ckZ1bGxTY3JlZW46OndyYXBFeGlzdGluZ1JlbmRlcmVyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVy
LCBEb2N1bWVudCYgZAogICAgIGJ1aWxkZXIuaW5zZXJ0Q2hpbGQoZnVsbHNjcmVlblJlbmRlcmVy
LCBXVEZNb3ZlKHRvTW92ZSkpOwogICAgIGZ1bGxzY3JlZW5SZW5kZXJlci5zZXROZWVkc0xheW91
dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKIAotICAgIGRvY3VtZW50LnNldEZ1bGxTY3JlZW5SZW5k
ZXJlcigmZnVsbHNjcmVlblJlbmRlcmVyKTsKKyAgICBkb2N1bWVudC5zZXRGdWxsU2NyZWVuUmVu
ZGVyZXIoYnVpbGRlciwgJmZ1bGxzY3JlZW5SZW5kZXJlcik7CiB9CiAKIHZvaWQgUmVuZGVyRnVs
bFNjcmVlbjo6dW53cmFwUmVuZGVyZXIoYm9vbCYgcmVxdWlyZXNSZW5kZXJUcmVlUmVidWlsZCkK
QEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIFJlbmRlckZ1bGxTY3JlZW46OnVud3JhcFJlbmRlcmVy
KGJvb2wmIHJlcXVpcmVzUmVuZGVyVHJlZVJlYnVpbGQpCiAgICAgICAgICAgICAgICAgaWYgKGF1
dG8qIG5vbkFub255bW91c0NoaWxkID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KCpjaGlsZCkuZmly
c3RDaGlsZCgpKQogICAgICAgICAgICAgICAgICAgICBjaGlsZCA9IG5vbkFub255bW91c0NoaWxk
OwogICAgICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICBjaGlsZC0+cmVt
b3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQtPnJl
bW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CkBAIC0xODQsMTAgKzE4
NCwxMCBAQCB2b2lkIFJlbmRlckZ1bGxTY3JlZW46OnVud3JhcFJlbmRlcmVyKGJvb2wmIHJlcXVp
cmVzUmVuZGVyVHJlZVJlYnVpbGQpCiAgICAgICAgIH0KICAgICB9CiAgICAgaWYgKHBsYWNlaG9s
ZGVyKCkpCi0gICAgICAgIHBsYWNlaG9sZGVyKCktPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
KCk7CisgICAgICAgIHBsYWNlaG9sZGVyKCktPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1
aWxkZXIpOwogICAgIEFTU0VSVCghcGxhY2Vob2xkZXIoKSk7CiAKLSAgICByZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgIHJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIp
OwogfQogCiB2b2lkIFJlbmRlckZ1bGxTY3JlZW46OmNyZWF0ZVBsYWNlaG9sZGVyKHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUsIGNvbnN0IExheW91dFJlY3QmIGZyYW1lUmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCmluZGV4IDVmOWMx
Mjk3OGM2YWNlZTI2YTQ1MWQzYzY3YzlkZTM1MmIxOTgzNGEuLmIzNmNmYTRhMGNmNDI0YTQyNGNm
YjI1NmFlZTY0OTcyMDA5MmNmM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGdWxsU2NyZWVuLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZ1bGxTY3JlZW4uaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgCiBwcml2YXRlOgog
ICAgIGJvb2wgaXNSZW5kZXJGdWxsU2NyZWVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxs
QmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICBib29sIGlzRmxl
eGlibGVCb3hJbXBsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcm90ZWN0
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBmMzRlZDEw
YjM2NWQyNTIzOTQ1YmFmYjU2OGFiOTdiNTBmMjJlZjc1Li45ZTczODg3MDE3MmJiMmU3Y2RkMjAz
MjhjYzU3MzNkMmVmZTRlMmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHAKQEAgLTE0OSwxMCArMTQ5LDEwIEBAIFJlbmRlckltYWdlOjp+UmVuZGVySW1hZ2UoKQog
ICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3ll
ZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVySW1hZ2U6OndpbGxCZURlc3Ryb3llZCgpCit2
b2lkIFJlbmRlckltYWdlOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxk
ZXIpCiB7CiAgICAgaW1hZ2VSZXNvdXJjZSgpLnNodXRkb3duKCk7Ci0gICAgUmVuZGVyUmVwbGFj
ZWQ6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0cm95
ZWQoYnVpbGRlcik7CiB9CiAKIC8vIElmIHdlJ2xsIGJlIGRpc3BsYXlpbmcgZWl0aGVyIGFsdCB0
ZXh0IG9yIGFuIGltYWdlLCBhZGQgc29tZSBwYWRkaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW1hZ2UuaAppbmRleCA1NjU0MzEwMTBjYTJlOThlMTkwYjA5NGNkZmM4NTRkZjZiODkz
MWYzLi4wNmU4ZTFlMGZmZDZkOWE0NWU2Mjg1MzFjYzg2OGY3N2RmNTIyNzRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNOb25CaXRtYXBJbWFnZSgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBuZWVkc1ByZWZlcnJlZFdp
ZHRoc1JlY2FsY3VsYXRpb24oKSBjb25zdCBmaW5hbDsKICAgICBSZW5kZXJCb3gqIGVtYmVkZGVk
Q29udGVudEJveCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcAppbmRleCBlN2Y1ZjhiMGFhYTAwNmJiNzFlYjlhZTg2ZTM2YThiZjBjMzBlNjY5
Li4wNzU0NzQ1YTg4MzY1NTY2NjIwNTA4MGJmZDAxZjJlMzBmMzE2OTQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApAQCAtNzAsNyArNzAsNyBAQCBSZW5kZXJJ
bmxpbmU6OlJlbmRlcklubGluZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5
bGUpCiAgICAgc2V0Q2hpbGRyZW5JbmxpbmUodHJ1ZSk7CiB9CiAKLXZvaWQgUmVuZGVySW5saW5l
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICNpZiAhQVNTRVJUX0RJU0FCTEVECiAgICAg
Ly8gTWFrZSBzdXJlIHdlIGRvIG5vdCByZXRhaW4gInRoaXMiIGluIHRoZSBjb250aW51YXRpb24g
b3V0bGluZSB0YWJsZSBtYXAgb2Ygb3VyIGNvbnRhaW5pbmcgYmxvY2tzLgpAQCAtMTA3LDcgKzEw
Nyw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjp3aWxsQmVEZXN0cm95ZWQoKQogCiAgICAgbV9saW5l
Qm94ZXMuZGVsZXRlTGluZUJveGVzKCk7CiAKLSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2ls
bEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJJbmxpbmU6OnVwZGF0ZUZyb21TdHlsZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKaW5kZXggNzMyNmM3NmJjYmZjMDI5
MzY3ZGI3ZmYwNzQ2Y2MwNmQ5YWZhNmY5MC4uNmY0ZjlmYTk3NDE1OTFjMWFkMjQ0ZWU2YmQ5ZjRi
MTkwMGJhNDZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaApAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhZGRDaGlsZElnbm9yaW5nQ29udGludWF0
aW9uKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gbmV3Q2hpbGQs
IFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSBudWxscHRyKSBmaW5hbDsKIAogcHJvdGVjdGVk
OgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc3R5bGVX
aWxsQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUmIG5ld1N0eWxlKSBv
dmVycmlkZTsKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRleCA1NWI0M2E2YzgyNDlk
ZjBlYzU3ZmRlMTEzMGJmZDliZDBmNjc2Y2E3Li40MWNhNjlkZTA3Yjc5NzM5OGI4ODIzNDhiYTM2
YmVlYzhlY2EzNWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC02NSw3ICs2NSw3IEBAIFJlbmRlckxheWVyTW9kZWxP
YmplY3Q6On5SZW5kZXJMYXllck1vZGVsT2JqZWN0KCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBj
b2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lk
IFJlbmRlckxheWVyTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckxh
eWVyTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRl
cikKIHsKICAgICBpZiAoaXNQb3NpdGlvbmVkKCkpIHsKICAgICAgICAgaWYgKHN0eWxlKCkuaGFz
Vmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCkpCkBAIC03Nyw3ICs3Nyw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAgICAgZGVzdHJveUxh
eWVyKCk7CiAgICAgfQogCi0gICAgUmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKCk7Cisg
ICAgUmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogICAgIAogICAgIGNs
ZWFyUmVwYWludExheW91dFJlY3RzKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaAppbmRleCBlNjA1YTQ4YmE1NTE2ZmY4NGM5OWY5
ZmE2NmU3YzIzMDY4ODZjZGZjLi4wZDlhNzZlOGFmY2YwMTU1N2U0N2JiMmYxMTZmNTY3OTI3Zjg0
MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmgKQEAgLTczLDcgKzczLDcgQEAgcHJvdGVjdGVkOgogICAgIFJlbmRlckxheWVyTW9k
ZWxPYmplY3QoRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKIAogICAg
IHZvaWQgY3JlYXRlTGF5ZXIoKTsKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRl
OworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7
CiAKIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlckxheWVyPiBtX2xheWVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4IDRjNGQ5YWJj
YjUzYTMyNjZhY2FiOTYwMzI5MzMzYTYxNzk2ZWE4OTYuLmFhOTE3ZWY3MzU3YjVmMjQ0MDI4ZTI0
Y2M2ZTI0Yjc2MmQ2ZmI5NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKQEAgLTEwNCwxMSArMTA0LDExIEBAIFJlbmRlckxpc3RCb3g6On5SZW5kZXJMaXN0
Qm94KCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVE
ZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OndpbGxCZURlc3Ry
b3llZCgpCit2b2lkIFJlbmRlckxpc3RCb3g6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYgYnVpbGRlcikKIHsKICAgICBzZXRIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSk7CiAg
ICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVNjcm9sbGFibGVBcmVhKHRoaXMpOwotICAgIFJl
bmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyQmxvY2tGbG93Ojp3
aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIEhUTUxTZWxlY3RFbGVtZW50JiBSZW5kZXJM
aXN0Qm94OjpzZWxlY3RFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDlkNjk0ZGY0NWEzMmIwM2QyODk3YjkxMGIzZGJlYzg4M2NkZjU0
N2IuLjg4YzQ3MjMwMTRmY2RkZDBjOTRmMTYxNWFjODk4Nzc4NjRiNTI1ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6
CiAgICAgYm9vbCBzY3JvbGxlZFRvUmlnaHQoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVz
dHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGVsZW1lbnQo
KSBjb25zdCA9IGRlbGV0ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
SXRlbS5jcHAKaW5kZXggYjM1NGRkZDVkNWQ4YTI0ZGQyNDNkZjA4NWFiZTk5MjIxMjRkOWUzZS4u
YmM1OTliNDNkZGVmMTY4Mzk3MDJjNzgwMTQzMGY2MDY1MjAzYjQyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCkBAIC01NCwxMSArNTQsMTEgQEAgUmVu
ZGVyTGlzdEl0ZW06On5SZW5kZXJMaXN0SXRlbSgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29k
ZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBS
ZW5kZXJMaXN0SXRlbTo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyTGlzdEl0ZW06Ondp
bGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAobV9t
YXJrZXIpCi0gICAgICAgIG1fbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOwot
ICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgICAgIG1fbWFya2Vy
LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKKyAgICBSZW5kZXJCbG9ja0Zs
b3c6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogUmVuZGVyU3R5bGUgUmVuZGVyTGlz
dEl0ZW06OmNvbXB1dGVNYXJrZXJTdHlsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0SXRlbS5oCmluZGV4IGU2N2Q2NDBkYjZjMGI0MmM2ZWRjNmI0YTI4ZmIxYzM3
OTkzNDAyZWMuLjgzOThjN2IwM2M1NWNkYzM2M2U2YTc2ZmU0Zjg3ZTkyZDE2OGI1MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oCkBAIC02Miw3ICs2Miw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzSW5SZXZlcnNlZE9yZGVyZWRMaXN0KCkgY29uc3Q7CiAKIHBy
aXZhdGU6Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIGZpbmFsOwogCiAgICAgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJSZW5kZXJMaXN0SXRlbSI7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCmluZGV4IGRk
MTg3NzcyODIyY2EyMjE3YWM2MmNkYTQ5OTMzMjI5YjJmZDdhMDUuLjYxYzNjNWFkNjZkMjQwNmZj
YzIwYTQzOTQ1ZWUxNjZjZmRlMTNkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdE1hcmtlci5jcHAKQEAgLTExMzQsMTEgKzExMzQsMTEgQEAgUmVuZGVyTGlzdE1h
cmtlcjo6flJlbmRlckxpc3RNYXJrZXIoKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVy
ZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVy
TGlzdE1hcmtlcjo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyTGlzdE1hcmtlcjo6d2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChtX2lt
YWdlKQogICAgICAgICBtX2ltYWdlLT5yZW1vdmVDbGllbnQodGhpcyk7Ci0gICAgUmVuZGVyQm94
Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZChidWls
ZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJMaXN0TWFya2VyOjpzdHlsZURpZENoYW5nZShTdHlsZURp
ZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKaW5kZXggMTNmMTI0ZjAzN2I0ZGIyMzdj
MDU3ZTI4ZDljMWY5ZGQ1NDAwMmVjYS4uOTI3OGRjMjA0MTkwZDAzOGVmMDRhMWQ5OWY4N2VjZjI3
ZTQyYjg5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RN
YXJrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5o
CkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVu
ZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0g
ZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApp
bmRleCA0MDdkMmNiMmY4MTBjZTBjMWUyNGUyY2QyZWRjYWU5ZDRkY2M0OGM1Li41NDNjN2YwOTBk
NGE4NGM3NmMyYmQwMDNiMWM1ZDM1Y2NlZjA1NTIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgUmVuZGVyTWVudUxpc3Q6
On5SZW5kZXJNZW51TGlzdCgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQg
aXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJNZW51TGlz
dDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OndpbGxCZURlc3Ryb3ll
ZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IGlmIChtX3BvcHVwKQpAQCAtOTcsNyArOTcsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0Ojp3aWxs
QmVEZXN0cm95ZWQoKQogICAgIG1fcG9wdXAgPSBudWxscHRyOwogI2VuZGlmCiAKLSAgICBSZW5k
ZXJGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyRmxleGlibGVCb3g6
OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0
SW5uZXJSZW5kZXJlcihSZW5kZXJCbG9jayYgaW5uZXJSZW5kZXJlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKaW5kZXggYmRmNDQ3MTZlZTBmMWZjN2ZlOWI3M2Nl
ZjhhNDhmNWUwNWM5NzE2ZC4uNjZmZWI3MjRhNDQwOTZlOGViM2YyMDU3YWMyYWZjYTZjNDJmMjA4
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmgKQEAgLTYzLDcg
KzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SW5uZXJSZW5kZXJlcihSZW5kZXJCbG9jayYp
OwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3cuY3BwCmluZGV4IGY0ZDBhMzViMjZmYTFl
N2YyNGJmMWVkYmFkNTViNmU0NWYwMmJjOTcuLjkzZGE2NDMwMDQyOTUyMjY4OWQwNDZmM2U4Y2Mz
MTc4YjE0NDk5ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtbkZsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
dWx0aUNvbHVtbkZsb3cuY3BwCkBAIC0zNjMsMTMgKzM2MywxMyBAQCB2b2lkIFJlbmRlck11bHRp
Q29sdW1uRmxvdzo6aGFuZGxlU3Bhbm5lclJlbW92YWwoUmVuZGVyT2JqZWN0JiBzcGFubmVyKQog
ewogICAgIC8vIFRoZSBwbGFjZWhvbGRlciBtYXkgYWxyZWFkeSBoYXZlIGJlZW4gcmVtb3ZlZCwg
YnV0IGlmIGl0IGhhc24ndCwgZG8gc28gbm93LgogICAgIGlmIChhdXRvIHBsYWNlaG9sZGVyID0g
c3Bhbm5lck1hcCgpLnRha2UoJmRvd25jYXN0PFJlbmRlckJveD4oc3Bhbm5lcikpKQotICAgICAg
ICBwbGFjZWhvbGRlci0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgcGxh
Y2Vob2xkZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCpSZW5kZXJUcmVlQnVpbGRlcjo6
Y3VycmVudCgpKTsKIAogICAgIGlmIChSZW5kZXJPYmplY3QqIG5leHQgPSBzcGFubmVyLm5leHRT
aWJsaW5nKCkpIHsKICAgICAgICAgaWYgKFJlbmRlck9iamVjdCogcHJldmlvdXMgPSBzcGFubmVy
LnByZXZpb3VzU2libGluZygpKSB7CiAgICAgICAgICAgICBpZiAocHJldmlvdXMtPmlzUmVuZGVy
TXVsdGlDb2x1bW5TZXQoKSAmJiBuZXh0LT5pc1JlbmRlck11bHRpQ29sdW1uU2V0KCkpIHsKICAg
ICAgICAgICAgICAgICAvLyBNZXJnZSB0d28gc2V0cyB0aGF0IG5vIGxvbmdlciB3aWxsIGJlIHNl
cGFyYXRlZCBieSBhIHNwYW5uZXIuCi0gICAgICAgICAgICAgICAgbmV4dC0+cmVtb3ZlRnJvbVBh
cmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgICAgICAgICBuZXh0LT5yZW1vdmVGcm9tUGFyZW50
QW5kRGVzdHJveSgqUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSk7CiAgICAgICAgICAgICAg
ICAgcHJldmlvdXMtPnNldE5lZWRzTGF5b3V0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNjcwNjZhYzky
Njg3NzRhM2U2NGVhODQ2N2I0MTVmM2UwOWU3YzFmMC4uMmVhODVkNWU3NzUxNjNjNzYwYWQ5ZTM0
N2M0NTYzZGI5ZmI5YzAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKQEAgLTI1NSwxMCArMjU1LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRQYXJlbnQo
UmVuZGVyRWxlbWVudCogcGFyZW50KQogICAgIG1fcGFyZW50ID0gcGFyZW50OwogfQogCi12b2lk
IFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKQordm9pZCBSZW5kZXJP
YmplY3Q6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KFJlbmRlclRyZWVCdWlsZGVyJiBidWls
ZGVyKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgbV9wYXJlbnQtPnJlbW92ZUFuZERl
c3Ryb3lDaGlsZCgqUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSwgKnRoaXMpOworICAgIG1f
cGFyZW50LT5yZW1vdmVBbmREZXN0cm95Q2hpbGQoYnVpbGRlciwgKnRoaXMpOwogfQogCiBSZW5k
ZXJPYmplY3QqIFJlbmRlck9iamVjdDo6bmV4dEluUHJlT3JkZXIoKSBjb25zdApAQCAtMTQzNCw3
ICsxNDM0LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2VsZWN0aW9uQm9yZGVyKCkgY29uc3QK
ICAgICAgICAgfHwgdmlldygpLnNlbGVjdGlvbigpLmVuZCgpID09IHRoaXM7CiB9CiAKLXZvaWQg
UmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJPYmplY3Q6OndpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpCiB7CiAgICAgQVNTRVJUKCFtX3BhcmVudCk7
CiAgICAgQVNTRVJUKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIHx8ICFpczxSZW5kZXJFbGVt
ZW50PigqdGhpcykgfHwgIXZpZXcoKS5mcmFtZVZpZXcoKS5oYXNTbG93UmVwYWludE9iamVjdChk
b3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykpKTsKQEAgLTE0ODQsNyArMTQ4NCw3IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQm94TW9k
ZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpLT53aWxsQmVEZXN0cm95ZWQoKTsKICNlbmRpZgogCi0g
ICAgd2lsbEJlRGVzdHJveWVkKCk7CisgICAgd2lsbEJlRGVzdHJveWVkKCpSZW5kZXJUcmVlQnVp
bGRlcjo6Y3VycmVudCgpKTsKIAogICAgIGlmIChpczxSZW5kZXJXaWRnZXQ+KCp0aGlzKSkgewog
ICAgICAgICBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0aGlzKS5kZXJlZigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGVlNjhiYjA3ZDQ1ZjhhYmVjM2U1YmMz
NjVlZmY4Nzg5ZGQxNjc3NmMuLmQ1NGMxOTA4NzM1MmRjYzgwNzQ4NmViNjE2Y2VjMmQ5NzU2YmMw
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTYzLDYgKzYz
LDcgQEAgY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJMYXllck1vZGVsT2JqZWN0Owog
Y2xhc3MgUmVuZGVyRnJhZ21lbnRDb250YWluZXI7CiBjbGFzcyBSZW5kZXJUaGVtZTsKK2NsYXNz
IFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgU2VsZWN0aW9uUmFuZ2VEYXRhOwogY2xhc3MgVHJh
bnNmb3JtU3RhdGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC03NTIsNyArNzUzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVj
dCogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSB7IH0KIAotICAgIHZvaWQg
cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICB2b2lkIHJlbW92ZUZyb21QYXJlbnRB
bmREZXN0cm95KFJlbmRlclRyZWVCdWlsZGVyJik7CiAKICAgICBDU1NBbmltYXRpb25Db250cm9s
bGVyJiBhbmltYXRpb24oKSBjb25zdDsKIApAQCAtNzg3LDcgKzc4OCw3IEBAIHByb3RlY3RlZDoK
IAogICAgIHZvaWQgYWRqdXN0UmVjdEZvck91dGxpbmVBbmRTaGFkb3coTGF5b3V0UmVjdCYpIGNv
bnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnRlZEludG9UcmVlKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRG
cm9tVHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
aW5kZXggY2FkZGQ0ZWE4N2VlOWMyOWRmNzJlYzA0NzRmMDdhOGZkZTAwMDMzZS4uYTdjOGQ5MWY1
OWEwNTc2MGUxODAzNzZhZGYxNTQxOGVlMzBjZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC03MiwxMiArNzIsMTIgQEAgUmVuZGVyUmVwbGFj
ZWQ6OlJlbmRlclJlcGxhY2VkKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgTGEKIAogUmVuZGVyUmVwbGFjZWQ6On5SZW5kZXJSZXBsYWNlZCgpID0gZGVmYXVs
dDsKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVy
UmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsK
ICAgICBpZiAoIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpICYmIHBhcmVudCgpKQogICAgICAg
ICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOwogCi0gICAgUmVu
ZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJSZXBsYWNlZDo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYWU1ZDk1NDQ3M2Q4OGYzNDA4
MjhmM2I3YjAzOTQzYTBiMTdmZmUxOC4uYmY2OWJmYzcwNzg4NTE3OTE5YzQ2OWY0YTU1ODBkMTNh
NmI2YjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAg
LTY3LDcgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc2hvdWxkUGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICBMYXlvdXRSZWN0IGxvY2FsU2VsZWN0aW9uUmVj
dChib29sIGNoZWNrV2hldGhlclNlbGVjdGVkID0gdHJ1ZSkgY29uc3Q7IC8vIFRoaXMgaXMgaW4g
bG9jYWwgY29vcmRpbmF0ZXMsIGJ1dCBpdCdzIGEgcGh5c2ljYWwgcmVjdCAoc28gdGhlIHRvcCBs
ZWZ0IGNvcm5lciBpcyBwaHlzaWNhbCB0b3AgbGVmdCkuCiAKLSAgICB2b2lkIHdpbGxCZURlc3Ry
b3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWls
ZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29uc3Ry
YWluZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5kZXggN2MwNGE4NjIwYzA5Y2FhN2VkNTE4
YjFlYWRhNGVlNzJhNWM1YTVkYi4uOGFkYjI0ODQ1ZjBkYTY4YTgzYjk4NWVmZWFlNWQ2YjA3Nzcw
OWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlBc0lubGluZTo6dGFr
ZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyCiAgICAgICAgIEFTU0VSVChjaGlsZC5p
c0JlZm9yZUNvbnRlbnQoKSB8fCBjaGlsZC5pc0FmdGVyQ29udGVudCgpKTsKICAgICAgICAgYXV0
byYgcGFyZW50ID0gKmNoaWxkLnBhcmVudCgpOwogICAgICAgICBhdXRvIHRha2VuQ2hpbGQgPSBw
YXJlbnQudGFrZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsKLSAgICAgICAgcGFyZW50LnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIHBhcmVudC5yZW1vdmVGcm9tUGFyZW50QW5k
RGVzdHJveShidWlsZGVyKTsKICAgICAgICAgcmV0dXJuIHRha2VuQ2hpbGQ7CiAgICAgfQogCkBA
IC0xNDgsNyArMTQ4LDcgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzQmxv
Y2s6OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwKICAgICAgICAgQVNTRVJU
KGNoaWxkLmlzQmVmb3JlQ29udGVudCgpIHx8IGNoaWxkLmlzQWZ0ZXJDb250ZW50KCkpOwogICAg
ICAgICBhdXRvJiBwYXJlbnQgPSAqY2hpbGQucGFyZW50KCk7CiAgICAgICAgIGF1dG8gdGFrZW5D
aGlsZCA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwotICAgICAgICBwYXJlbnQu
cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgcGFyZW50LnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgICAgICByZXR1cm4gdGFrZW5DaGlsZDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hG
aWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3Bw
CmluZGV4IDg4ZmQ2NGFiYWM4MDQ1ZjViZjI1MzcyMTQxODcyOWZhNGE3OTM3OTUuLjVhODMyOGVm
ODUxNWYxMzk1YTI2N2NjOTQ5NmRkMTViZTk3NDIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNjQsMTQgKzY0LDE0IEBAIFJlbmRl
clNlYXJjaEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQoKQogICAgIC8vIERvIG5vdCBhZGQgYW55
IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZv
aWQgUmVuZGVyU2VhcmNoRmllbGQ6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclNlYXJj
aEZpZWxkOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51
KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7
CiAgICAgfQogCi0gICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp3aWxsQmVEZXN0cm95
ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OndpbGxCZURlc3Ryb3llZChi
dWlsZGVyKTsKIH0KIAogaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJTZWFyY2hGaWVsZDo6cmVz
dWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuaAppbmRleCAzYTg0MWRlZDNmOWFkYTNhNTI5MTkyNTIzZTQxNDE2M2E4
NGUzYWVlLi4yMzNlNmVkN2NlOWE0YjRmYTE0MWM2ZmIwNjVkMmMwZTUwYWQ1ZGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlk
ZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogICAgIEVWaXNpYmlsaXR5
IHZpc2liaWxpdHlGb3JDYW5jZWxCdXR0b24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IGVlNjIzMzBk
OTM4NjdkZTAwYmFjZTZkMDJhZGU5NTdjZDMxODAwNTguLmU0NDcyMjFiNWRlOTQ0NzA0ZmYwMDJi
MDA3YjQzMmUxMzBlYzU2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtNjMsMTIgKzYzLDEyIEBAIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjp+UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oKQogICAgIC8vIERvIG5v
dCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQu
CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OndpbGxCZURlc3Ryb3llZCgpCit2
b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgQVNTRVJUKG1fc25hcHNob3RSZXNvdXJjZSk7CiAgICAg
bV9zbmFwc2hvdFJlc291cmNlLT5zaHV0ZG93bigpOwogCi0gICAgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVE
ZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpwbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCBhNDVh
MzFhNTcwYjJlZmNiNDVhNmUxMGViNDY3YjhlYWIwZGM0MWYwLi41YjFiZTg5MDZlMTg4MjljMThi
ZDkyMjc2YTI3YTQ1MGRkMjhkNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGZyYW1lT3duZXJFbGVtZW50KCkgY29uc3Qg
PSBkZWxldGU7CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0KICAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0
Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggNmFlMDQ3YzQ2OWZlOWNkYWJlZjIx
Y2RkY2FlYzk2NzMzMjVlZGE3YS4uNTFjMmZiZWZmNTBjYzVhNjQxODkwZGVlNTNhNTlkMjhiZDhl
ZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMjg3LDcg
KzI4Nyw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cmVtb3ZlQW5kRGVzdHJveVRleHRCb3hlcygpCiAg
ICAgbV9saW5lQm94ZXMuZGVsZXRlQWxsKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dDo6d2lsbEJl
RGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJiBidWlsZGVyKQogewogICAgIHNlY3VyZVRleHRUaW1lcnMoKS5yZW1vdmUodGhpcyk7
CiAKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgp
CiAKICAgICBzZXRJbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzKG51bGxwdHIpOwogCi0g
ICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJPYmplY3Q6Ondp
bGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0OjpkZWxldGVMaW5l
Qm94ZXNCZWZvcmVTaW1wbGVMaW5lTGF5b3V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCmluZGV4IGY0NjI5MGY1ZGVhYjBhZWJlOWM3YzgyNDBkMGQ2ZjM5NDU2NjgwNGEuLmMy
NDYzMThkZDZjZDcxMmFiZDZiNjVkNzE3NGIwNTc1MDRiMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTgzLDcgKzE4Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9h
dCBsZWFkV2lkdGgpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJlZFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggNTI2
Mzg1Y2RhMmQ3MTIzNmI2NTQ2MTU5ODg3ZDVmMTVhYTA3MjdiMi4uN2UwMjVlYWM2Mzc5NTY0Njkz
MDlmMmNlNzNlNGUyZTEwNjE4M2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCkBAIC00NSwxMiArNDUsMTIg
QEAgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6On5SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZSgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVz
dHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6
d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OndpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAodGV4dEFy
ZWFFbGVtZW50KCkuaXNDb25uZWN0ZWQoKSkKICAgICAgICAgdGV4dEFyZWFFbGVtZW50KCkucmVu
ZGVyZXJXaWxsQmVEZXN0cm95ZWQoKTsKIAotICAgIFJlbmRlclRleHRDb250cm9sOjp3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxk
ZXIpOwogfQogCiBIVE1MVGV4dEFyZWFFbGVtZW50JiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZTo6dGV4dEFyZWFFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggNzIxYWY5ZjZhMzNmYWY0
Yjg5Yzc1MWNiZTkyNDkzOGI0Y2QzYjA2OS4uMTk2MDhlZjczNTQxZDZiNTQ0OWY0ODAyYWM4NWJl
MjZhZWRkN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogICAgIEhU
TUxUZXh0QXJlYUVsZW1lbnQmIHRleHRBcmVhRWxlbWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGVsZW1lbnQoKSBj
b25zdCA9IGRlbGV0ZTsKIAogICAgIGJvb2wgaXNUZXh0QXJlYSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRG
cmFnbWVudC5jcHAKaW5kZXggZGQ5YWNjN2QxMDMyNzc0NjhkOGM4ZTVjMjY3ZWMwZGQwYjFlZDVh
ZS4uMDE2OWFkY2E1NWJkYmIxN2MzOTdlMDBiYTc0MmIzMjcyZDdmNzhhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5GbG93LmgiCisjaW5jbHVkZSAiUmVuZGVy
VHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KIApAQCAtNzMsMTEgKzc0LDExIEBAIHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50
OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
CiAgICAgICAgIGJsb2NrLT5tdXRhYmxlU3R5bGUoKS5yZW1vdmVDYWNoZWRQc2V1ZG9TdHlsZShG
SVJTVF9MRVRURVIpOwogfQogCi12b2lkIFJlbmRlclRleHRGcmFnbWVudDo6d2lsbEJlRGVzdHJv
eWVkKCkKK3ZvaWQgUmVuZGVyVGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1fZmlyc3RMZXR0ZXIpCi0gICAgICAgIG1f
Zmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7Ci0gICAgUmVuZGVyVGV4
dDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOworICAgIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6OnNldFRleHQoY29uc3Qg
U3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQpAQCAtODcsNyArODgsMTIgQEAgdm9pZCBSZW5k
ZXJUZXh0RnJhZ21lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNl
KQogICAgIG1fZW5kID0gdGV4dCgpLmxlbmd0aCgpOwogICAgIGlmICghbV9maXJzdExldHRlcikK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmRE
ZXN0cm95KCk7CisgICAgaWYgKFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCkpCisgICAgICAg
IG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCpSZW5kZXJUcmVlQnVp
bGRlcjo6Y3VycmVudCgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIg
YnVpbGRlcigqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpOworICAgICAgICBtX2ZpcnN0TGV0dGVy
LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKKyAgICB9CiAgICAgQVNTRVJU
KCFtX2ZpcnN0TGV0dGVyKTsKICAgICBBU1NFUlQoIXRleHROb2RlKCkgfHwgdGV4dE5vZGUoKS0+
cmVuZGVyZXIoKSA9PSB0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0RnJhZ21lbnQuaAppbmRleCA0N2JhMDY5YTA2ZTdkYmE3MGVmMGNjMjg2OThlYmM1MTAz
YzRiY2Y4Li5iNWQ1OWQ5YTIxMjE5ZWY3ZDEwNGM4NjYwYTdkNjczZjliMDNhZGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC02MCw3ICs2
MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1RleHRGcmFnbWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICBVQ2hhciBwcmV2aW91c0NoYXJh
Y3RlcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcAppbmRleCAwMjg5MjA1YjVlZWUxMTA1OWQ2Y2I3ZmU3NjI4Mjc1ZGFhMWZkNzFiLi42
NDEwNjUyZTA5ZThlMDY2OTQwYTYyMzRlZjU4N2UwMDliOGMyNGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTYyLDEyICs2MiwxMiBAQCBSZW5kZXJWaWRl
bzo6flJlbmRlclZpZGVvKCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBp
dCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlclZpZGVvOjp3
aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJWaWRlbzo6d2lsbEJlRGVzdHJveWVkKFJlbmRl
clRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IHZpZGVvRWxl
bWVudCgpLnBsYXllcigpKQogICAgICAgICBwbGF5ZXItPnNldFZpc2libGUoZmFsc2UpOwogCi0g
ICAgUmVuZGVyTWVkaWE6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlck1lZGlhOjp3aWxs
QmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyVmlkZW86OnZpc2libGVJblZp
ZXdwb3J0U3RhdGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgK
aW5kZXggOGUyNWM2OGE1M2Y4OWI0YTE3MGZiOTY1MWIxODdmZmI4YWMwZmFjMy4uZDIzNGY0YmY3
YTdkMTdhM2U4OTExM2YyMmQ5ZTlmMWI2NzYyM2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZGVvLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
RnJvbUVsZW1lbnQoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3ll
ZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVy
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZWRpYUVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIAog
ICAgIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA1OTQxNmJhZGQ2N2NlZmMzMmEzNTkwZWFkZDZlYzMw
MmIxNDdjYmQ0Li5mN2I3Y2E4ZmY4MmFhODc2MGE2MTEyM2ZmYmZmN2MyNGU3ZDQ3ODgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC02MTEsOSArNjExLDkgQEAg
Ym9vbCBSZW5kZXJWaWV3Ojppc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QK
ICAgICByZXR1cm4gZnJhbWVWaWV3KCkuaXNTY3JvbGxhYmxlKGRlZmluZVNjcm9sbGFibGUpOwog
fQogCi12b2lkIFJlbmRlclZpZXc6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclZpZXc6
OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKLSAgICBSZW5k
ZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJsb2NrRmxvdzo6d2ls
bEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgd29ya2Fyb3Vu
ZCBmb3IgbGVmdG92ZXIgY29udGVudCAoc2VlIHdlYmtpdC5vcmcvYi8xODI1NDcpLgogICAgIGlm
IChmaXJzdENoaWxkKCkpIHsKICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIgYnVpbGRlcigqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA5YzViYjk4OTVjNTI0
NzViZTJlOThkN2MzOWIwMWU0OTAzODIxZGExLi42ZDIzZjBlMjBmZGQzZjE0MjkwYzg1MDZjZDQ0
M2UxMzYyZmQwMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIx
NCw3ICsyMTQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJh
bmRhYmxlQm94KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3JiBtX2ZyYW1lVmlldzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYTJlY2QwODFkNzVlYWYx
NmFhYzEyNzM4OGM2NmUyMDc3MTAzMWJiYy4uNGY3MmQxNGNiN2U1ODhiNTE2ODQwOTRhNjljZTVk
MWI1ZDA2NDI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
QEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyV2lkZ2V0OjpSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3du
ZXJFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIHNldElubGluZShm
YWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyV2lkZ2V0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBS
ZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikK
IHsKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGhhc0xheWVyKCkpCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBzZXRXaWRn
ZXQobnVsbHB0cik7CiAKLSAgICBSZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCk7Cisg
ICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogUmVuZGVy
V2lkZ2V0Ojp+UmVuZGVyV2lkZ2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuaAppbmRleCA4YWUzZDJjNjViMmQ0NGU1MjYwMGEwMmM3YTYzZjczNDU0OWQxOTZjLi43OGFl
ZDNmMTJjNTk2Mzk4MDM3NWU1ZmNmOThjNzdhZTIxZDlkMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgUmVuZGVyU3R5bGUm
Jik7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkg
ZmluYWw7CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50KFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCmluZGV4IGIwMTE2NzU5MTI5MTc2NGUy
MzVkMzk2NjUwYzZiOTNjNzkzZTdjNzkuLjMzNTU1NmQ0MTc4ZjcyOTU5NDcyZWU0MDg4ODA2MDQ2
ZDgzZTFiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
QmxvY2suY3BwCkBAIC03MSwxMCArNzEsMTAgQEAgdm9pZCBSZW5kZXJTVkdCbG9jazo6YWJzb2x1
dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHQmxvY2s6OndpbGxCZURl
c3Ryb3llZCgpCit2b2lkIFJlbmRlclNWR0Jsb2NrOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ry
b3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAg
ICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBS
ZW5kZXJTVkdCbG9jazo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQmxvY2suaAppbmRleCBmZWRiYTY2ZmE0YzUwZTgwMmY0OTk0MTAwMGEzMTM0OTRk
MDNkMGJiLi5kNGU2YjEyNWUxYmQ4MjU4Mzc5OWY3NjcyMzVjMjYwZjVlNjZmOGJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCkBAIC0zNSw3ICsz
NSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJlbmRlclNWR0Jsb2NrKFNWR0dyYXBo
aWNzRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5k
ZXggOTRlZWZlODVkNWY1Nzc4ZGU3N2JmYTBmMjQ3MGNiZTk4YTYxOWNmNy4uMmQzOWViNDIyOTRk
MjI0MTdhM2ZjZWY0NjgxMGNjY2RiYWIxYzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTU3LDEwICs1NywxMCBAQCBSZW5kZXJT
VkdJbWFnZTo6UmVuZGVyU1ZHSW1hZ2UoU1ZHSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSYmIHN0eWxlKQogCiBSZW5kZXJTVkdJbWFnZTo6flJlbmRlclNWR0ltYWdlKCkgPSBkZWZh
dWx0OwogCi12b2lkIFJlbmRlclNWR0ltYWdlOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5k
ZXJTVkdJbWFnZTo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQog
ewogICAgIGltYWdlUmVzb3VyY2UoKS5zaHV0ZG93bigpOwotICAgIFJlbmRlclNWR01vZGVsT2Jq
ZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJl
RGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBTVkdJbWFnZUVsZW1lbnQmIFJlbmRlclNWR0ltYWdl
OjppbWFnZUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbWFnZS5oCmluZGV4IGEyMjdjMTY3ZTgxNGRmOGJmNjFmZjM4MWNiYTMwMzYxNDRj
N2YyNWUuLmJjNGVkNzE4ODBlMjMwODUyYjU5MzE2MWJjYWE4YWM3MGFjNTk2MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRGb3JlZ3JvdW5kKFBhaW50SW5mbyYpOwogCiBw
cml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
ZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXggZGRlNGZkYjAxMTE1Zjg5MDA0ZjlmZWE4
OTU3NDBlNDcwYTZhYTYzMy4uNzdmNWFkZDU2NDAzMDJhYzVlNjBhMDAwZjhiZTgxZmM3YzY0ZTEz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY28KICAgICAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHRleHRCb3VuZGlu
Z0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5nQm94LnkoKSArIGJveC0+eSgpLCBib3gt
PmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWlnaHQoKSksIFVzZVRyYW5zZm9ybXMsIHdh
c0ZpeGVkKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjp3aWxsQmVEZXN0cm95ZWQoKQor
dm9pZCBSZW5kZXJTVkdJbmxpbmU6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYg
YnVpbGRlcikKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlz
KTsKLSAgICBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlcklubGlu
ZTo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlclNWR0lubGluZTo6
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5oCmluZGV4IDk3OWE4MmU4NWJhNWEwNmUyYjZjYzA4M2UyMTg3NWYyZmQ4N2Y3MDguLmIxMmM3
Zjk2NzllYjFjNGVmMTE3ZjVhMjM0ZTAzMWYzN2M3YmI1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2
YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGluZUZsb3dCb3g+IGNyZWF0ZUlubGluZUZs
b3dCb3goKSBmaW5hbDsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CisgICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBmaW5hbDsKICAgICB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBmaW5hbDsKIAogICAgIHZvaWQgYWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IG51
bGxwdHIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA5MmFiNjUzZDczMWM2N2VlZGI4Zjc0NDllZDAz
MGUxMDMyNDMzYWU5Li4xM2UyYzg4ZjM3Y2ZiODI0YzRlMWUyNzJlZGU4ZGMzNWE5OGIwZWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmNwcApAQCAtOTIsMTAgKzkyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlCiAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91bmRpbmdCb3goKSwg
VXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVj
dDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURl
c3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBTVkdSZXNvdXJjZXND
YWNoZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlzKTsKLSAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7
CiB9CiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOGUz
YTBlMTJmNTRkYWFjYjQ3NmZiMzRhOWU5OWIxNzgyNmNjMDdjOC4uODk5ZDk2OTkwZDgzNTU3MjFl
ODVmOGZjZTRiYjhkYzI0YzNlNWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3QoU1ZHRWxlbWVudCYsIFJlbmRl
clN0eWxlJiYpOwogCi0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIGJvb2wgaXNSZW5kZXJTVkdNb2RlbE9iamVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKaW5kZXggMDE0NDk0YmZmNjQwMzljM2Fi
YjY2NDQ5ZDMzOWVlNjQ1NmFlM2ZhNS4uMjA3NDlkN2QxMzJlMmMxYzI3NGVhOWVhOGMwNTU3ZGMx
NjgwMjlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bGF5b3V0KCkKICAgICBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXI6OmxheW91dCgpOwogfQogCi12b2lkIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIFNWR1Jlc291
cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCgqdGhpcyk7CiAKQEAgLTY0LDcgKzY0LDcgQEAg
dm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAg
ICAgbV9yZWdpc3RlcmVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyOjp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6
OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lcjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaAppbmRleCBmNjM3YjcxNGRhNWI5Yzlh
ZGI3MGU4NjFjODMwNzUzYTE3YmNjNDFjLi5iZmU0MzBkODc0YmZiMDY3ZmM0Y2UxODU5MWQwOWVi
YTAzMDkxYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50KFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7
CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBmaW5hbDsKICAg
ICB2b2lkIHJlZ2lzdGVyUmVzb3VyY2UoKTsKIAogICAgIEF0b21pY1N0cmluZyBtX2lkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggZDBj
MTkyZDRhMjEyNGQxNmI5M2NiNzk1Njc4YjZjYTc0YThkNzI0OC4uNTY1ZGIzZTM1OTU5MzMzYWY4
MTg1Nzk0Zjk2NzA2Yjk5NGZhZWMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC0yNzAsMTIgKzI3MCwxMiBAQCB2b2lkIFJlbmRlclNW
R1Jvb3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludAogICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQoKS5yZXN0b3JlKCk7CiB9CiAK
LXZvaWQgUmVuZGVyU1ZHUm9vdDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyU1ZHUm9v
dDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIFJl
bmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudChjb25zdF9jYXN0PFJlbmRl
clNWR1Jvb3QmPigqdGhpcykpOwogCiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ry
b3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZCgpOworICAg
IFJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHUm9vdDo6aW5zZXJ0ZWRJbnRvVHJlZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDc4NjcwN2FiNGNjNTQ5NjBkZmVkYmFiZDdiZTFl
ZTcyMGY1YzJkY2IuLmQyMDVjYWY5MjE5MTI0MmU0YWZhZmExOWIyNjAxNDJhOWYyZDQxOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC03Niw3
ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5zZXJ0
ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmNwcAppbmRleCBiNDMxZDZjOTFhOWYxYzg5YjMzN2JjM2M1NWM5NWY5M2ZjMzU1MWU4Li4xMDBk
YTc1MzE1M2IxMDYzYTllZDQ5NTY5NzE1NDg1NDZkZTYyODAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKQEAgLTIyNSwxMiArMjI1LDEyIEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeShSZW5k
ZXJTVkdUZXh0KiB0ZXh0LCBWZWN0b3I8CiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQo
UmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNs
ZWFyKCk7CiAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jbGVhclRleHRQb3NpdGlvbmlu
Z0VsZW1lbnRzKCk7CiAKLSAgICBSZW5kZXJTVkdCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7Cisg
ICAgUmVuZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBS
ZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKFJlbmRlck9iamVjdCogY2hp
bGQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4
IDEyNzI5MGFmOTJlMWFjN2NkNmJiOTUxNDA3MDAwN2Q4OWZmMGQ4MmIuLmMzODc2N2EzNjI3NWNl
YmJiNTdjMzhkYTJhNWM1NTkxNWIwODM1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0
cikgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRl
clRyZWVCdWlsZGVyJiwgUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVl
QnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRv
UGFyZW50VHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9y
bTsgfQogICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDg1MTIxODRi
MzQxNGM3OTQzNjAxZDJlYWU4ZTkyODY4ZDAwNDAzMzguLmQ4YmQ2OTdmZjYyOGI3NzI3NzZlZDQz
NWY1YjNhMzdhYTcyYTdmNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMzgwLDcgKzM4MCw3IEBAIHZv
aWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95Q2xlYW5pbmdV
cEFub255bW91c1dyYXBwZXJzKFJlCiB7CiAgICAgLy8gSWYgdGhlIHRyZWUgaXMgZGVzdHJveWVk
LCB0aGVyZSBpcyBubyBuZWVkIGZvciBhIGNsZWFuLXVwIHBoYXNlLgogICAgIGlmIChjaGlsZC5y
ZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkgewotICAgICAgICBjaGlsZC5yZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgICAgICBjaGlsZC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJv
eSgqdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAK
aW5kZXggYjAwOGM1YTZlYjZiZjUwZDA2MWQ0YTU2MTc0ZWJmMjA1YzM5YWYxOC4uM2MxOTZjNjNi
MzFhMzNiMWQ0OWU4NDAzMzEyZDdjYzgwOTQ2Y2JlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAK
QEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRl
bU1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW1SZW5kZXJlcikKIAogICAgIGlmIChzdHls
ZS5saXN0U3R5bGVUeXBlKCkgPT0gTm9uZUxpc3RTdHlsZSAmJiAoIXN0eWxlLmxpc3RTdHlsZUlt
YWdlKCkgfHwgc3R5bGUubGlzdFN0eWxlSW1hZ2UoKS0+ZXJyb3JPY2N1cnJlZCgpKSkgewogICAg
ICAgICBpZiAoYXV0byogbWFya2VyID0gbGlzdEl0ZW1SZW5kZXJlci5tYXJrZXJSZW5kZXJlcigp
KQotICAgICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAg
ICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShtX2J1aWxkZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBSZW5kZXJU
cmVlQnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0
ZW1SZW5kZXJlcikKIAogICAgIC8vIElmIGN1cnJlbnQgcGFyZW50IGlzIGFuIGFub255bW91cyBi
bG9jayB0aGF0IGhhcyBsb3N0IGFsbCBpdHMgY2hpbGRyZW4sIGRlc3Ryb3kgaXQuCiAgICAgaWYg
KGN1cnJlbnRQYXJlbnQgJiYgY3VycmVudFBhcmVudC0+aXNBbm9ueW1vdXNCbG9jaygpICYmICFj
dXJyZW50UGFyZW50LT5maXJzdENoaWxkKCkgJiYgIWRvd25jYXN0PFJlbmRlckJsb2NrPigqY3Vy
cmVudFBhcmVudCkuY29udGludWF0aW9uKCkpCi0gICAgICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92
ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KG1fYnVpbGRlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ck11bHRpQ29sdW1uLmNwcAppbmRleCA4YTc0YTI2ZjZiZDIwZmJjOTJkMmYxYWIxYmE4ZTFlNDdj
OTEyZGZhLi4wNDBkMTEzYmFhY2QxMDU5Yjk3ZTVlNWMxY2ZkYzc4ZmU2ZjdiZGJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJN
dWx0aUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCkBAIC0xMzAsMTEgKzEzMCwxMSBAQCB2b2lk
IFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KFJl
bmRlckJsb2NrRmxvdyYgZmxvdwogICAgICAgICBwYXJlbnRBbmRTcGFubmVyTGlzdC5hcHBlbmQo
c3RkOjptYWtlX3BhaXIoc3Bhbm5lck9yaWdpbmFsUGFyZW50LCBzcGFubmVyLT5wYXJlbnQoKS0+
dGFrZUNoaWxkKG1fYnVpbGRlciwgKnNwYW5uZXIpKSk7CiAgICAgfQogICAgIHdoaWxlIChhdXRv
KiBjb2x1bW5TZXQgPSBtdWx0aUNvbHVtbkZsb3cuZmlyc3RNdWx0aUNvbHVtblNldCgpKQotICAg
ICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIGNv
bHVtblNldC0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kobV9idWlsZGVyKTsKIAogICAgIGZs
b3cuY2xlYXJNdWx0aUNvbHVtbkZsb3coKTsKICAgICBtdWx0aUNvbHVtbkZsb3cubW92ZUFsbENo
aWxkcmVuVG8obV9idWlsZGVyLCAmZmxvdywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwotICAgIG11bHRpQ29sdW1uRmxvdy5yZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgIG11bHRpQ29sdW1uRmxvdy5yZW1vdmVGcm9tUGFyZW50QW5k
RGVzdHJveShtX2J1aWxkZXIpOwogICAgIGZvciAoYXV0byYgcGFyZW50QW5kU3Bhbm5lciA6IHBh
cmVudEFuZFNwYW5uZXJMaXN0KQogICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKnBhcmVu
dEFuZFNwYW5uZXIuZmlyc3QsIFdURk1vdmUocGFyZW50QW5kU3Bhbm5lci5zZWNvbmQpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlclJ1YnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyUnVieS5jcHAKaW5kZXggNDA3YjhjZjA5YWEyOWM4ZGZkMDU3MjJjYTc1YTll
ZTEzZWQ4ZDdmMi4uODU0NGQ4NjA5NmUzYWZiN2U5NDFkM2EyNGQzMTI3M2Q1ODA2ZDY3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyUnVieS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyUnVieS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFJlbmRlclRyZWVC
dWlsZGVyOjpSdWJ5Ojptb3ZlQmxvY2tDaGlsZHJlbihSZW5kZXJSdWJ5QmFzZSYgZnJvbSwgUmVu
ZGVyUnVieQogICAgICAgICBhdXRvKiBhbm9uQmxvY2tUaGVyZSA9IGRvd25jYXN0PFJlbmRlckJs
b2NrPihsYXN0Q2hpbGRUaGVyZSk7CiAgICAgICAgIGFub25CbG9ja0hlcmUtPm1vdmVBbGxDaGls
ZHJlblRvKG1fYnVpbGRlciwgYW5vbkJsb2NrVGhlcmUsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpO
b3JtYWxpemVBZnRlckluc2VydGlvbjo6WWVzKTsKICAgICAgICAgYW5vbkJsb2NrSGVyZS0+ZGVs
ZXRlTGluZXMoKTsKLSAgICAgICAgYW5vbkJsb2NrSGVyZS0+cmVtb3ZlRnJvbVBhcmVudEFuZERl
c3Ryb3koKTsKKyAgICAgICAgYW5vbkJsb2NrSGVyZS0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ry
b3kobV9idWlsZGVyKTsKICAgICB9CiAgICAgLy8gTW92ZSBhbGwgcmVtYWluaW5nIGNoaWxkcmVu
IG5vcm1hbGx5LgogICAgIGZyb20ubW92ZUNoaWxkcmVuVG8obV9idWlsZGVyLCAmdG8sIGZyb20u
Zmlyc3RDaGlsZCgpLCBiZWZvcmVDaGlsZCwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uOjpObyk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333501</attachid>
            <date>2018-02-09 11:00:58 -0800</date>
            <delta_ts>2018-02-09 11:27:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182635-20180209110058.patch</filename>
            <type>text/plain</type>
            <size>68080</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1YzY1ZDE1NDVjMjI0
ODE2OThhNDliMDNiYzI5ODMwYjAxYWIwZi4uOGNhYzk4YWYzZDFmZWMzZWY3NDRmNDNkYzYwMWMx
YTVmZTcyMTQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MSBAQAorMjAxOC0wMi0wOCAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtSZW5kZXJUcmVlQnVpbGRl
cl0gSW50cm9kdWNlIFJlbmRlclRyZWVCdWlsZGVyIHRvIHdpbGxCZURlc3RvcnllZC9yZW1vdmVG
cm9tUGFyZW50QW5kRGVzdHJveQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyNjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzM3NzQ4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNo
IGhlbHBzIGZpbmRpbmcgY2FsbHNpdGVzIHdoZXJlIHdlIGRvbid0IGhhdmUgYSBSZW5kZXJUcmVl
QnVpbGRlciBpbnN0YW5jZS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0RnVsbFNjcmVlblJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJl
RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpyZW1v
dmVBbmREZXN0cm95QWxsQ29udGludWF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnNldFRleHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvdW50
ZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVE
ZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFnbWVudGVkRmxvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGdWxsU2NyZWVu
Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6
d3JhcE5ld1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZ1bGxTY3JlZW46Ondy
YXBFeGlzdGluZ1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZ1bGxTY3JlZW46
OnVud3JhcFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbWFnZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlz
dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZURlc3Ry
b3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdE1hcmtlcjo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uRmxvdzo6aGFuZGxlU3Bhbm5lclJlbW92YWwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZW1vdmVGcm9t
UGFyZW50QW5kRGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxC
ZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRlc3Ryb3kpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6Ondp
bGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUnVieUFzSW5saW5lOjp0YWtlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVi
eUFzQmxvY2s6OnRha2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp3aWxsQmVEZXN0
cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWxsQmVE
ZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dEZyYWdtZW50OjpzZXRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dEZy
YWdtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZGVvOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJWaWRlby5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6d2lsbEJlRGVzdHJveWVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdC
bG9jazo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0Jsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5s
aW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OndpbGxCZURl
c3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpyZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveUNs
ZWFuaW5nVXBBbm9ueW1vdXNXcmFwcGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
QnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21lbnRlZEZsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6Om1vdmVCbG9ja0No
aWxkcmVuKToKKwogMjAxOC0wMi0wOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtSZW5kZXJUcmVlQnVpbGRlcl0gTW92ZSBtdWx0aWNvbHVtbiBkZXNjZW5kYW50
L3NpYmxpbmcgcmVtb3ZhbCBsb2dpYyB0byBSZW5kZXJUcmVlQnVpbGRlcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKaW5kZXggZGY3NzZhMzk4ZDY2OWE0Y2MxNGZkY2QzY2RkMjRjODgxZTZiNGEzMC4u
NTkwODJjZmE0Y2E4OWViNDc0ZjAzMjMzMzEzZmQzNzQ0YzU2ZjU1MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCkBAIC02Mjk3LDcgKzYyOTcsNyBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXREaWRF
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopCiAgICAgZXhpdGluZ0RvY3VtZW50Lm1f
ZnVsbFNjcmVlbkNoYW5nZURlbGF5VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKLXZvaWQg
RG9jdW1lbnQ6OnNldEZ1bGxTY3JlZW5SZW5kZXJlcihSZW5kZXJGdWxsU2NyZWVuKiByZW5kZXJl
cikKK3ZvaWQgRG9jdW1lbnQ6OnNldEZ1bGxTY3JlZW5SZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRl
ciYgYnVpbGRlciwgUmVuZGVyRnVsbFNjcmVlbiogcmVuZGVyZXIpCiB7CiAgICAgaWYgKHJlbmRl
cmVyID09IG1fZnVsbFNjcmVlblJlbmRlcmVyKQogICAgICAgICByZXR1cm47CkBAIC02MzEyLDcg
KzYzMTIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRGdWxsU2NyZWVuUmVuZGVyZXIoUmVuZGVyRnVs
bFNjcmVlbiogcmVuZGVyZXIpCiAgICAgfQogCiAgICAgaWYgKG1fZnVsbFNjcmVlblJlbmRlcmVy
KQotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ry
b3koKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXItPnJlbW92ZUZyb21QYXJlbnRBbmRE
ZXN0cm95KGJ1aWxkZXIpOwogICAgIEFTU0VSVCghbV9mdWxsU2NyZWVuUmVuZGVyZXIpOwogCiAg
ICAgbV9mdWxsU2NyZWVuUmVuZGVyZXIgPSBtYWtlV2Vha1B0cihyZW5kZXJlcik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IGZkNmU2YTE3OWE2OGIzZWU2NTBhY2JlOTgzYTUxYzViN2U2OWJiNDQu
LjZiMWI2ZjgxNjliNjBiNWQxZjRlYmFiM2E3MGIwMzY2ZjE1N2ExM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oCkBAIC0xNTIsNiArMTUyLDcgQEAgY2xhc3MgUHJvY2Vzc2luZ0luc3RydWN0aW9uOwog
Y2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFJhbmdlOwogY2xhc3MgUmVuZGVyRnVsbFNjcmVl
bjsKK2NsYXNzIFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgUmVuZGVyVmlldzsKIGNsYXNzIFJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25z
OwpAQCAtMTEzMCw3ICsxMTMxLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
d2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Kik7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
OwogICAgIAotICAgIHZvaWQgc2V0RnVsbFNjcmVlblJlbmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4q
KTsKKyAgICB2b2lkIHNldEZ1bGxTY3JlZW5SZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRlciYsIFJl
bmRlckZ1bGxTY3JlZW4qKTsKICAgICBSZW5kZXJGdWxsU2NyZWVuKiBmdWxsU2NyZWVuUmVuZGVy
ZXIoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxTY3JlZW5SZW5kZXJlci5nZXQoKTsgfQogCiAgICAg
dm9pZCBmdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZpcmVkKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBjNzFmYjU0ZjUxMTNlZDM1YTlkOWUzZTA0M2M1
ZjgzYmUwMTA5NzFmLi5mYjkxOThlYjhmN2U4MGVhN2ZhNzgyYzU0YzAwYTE1MzQ0MDlhYzI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTM0Myw3ICszNDMs
NyBAQCBSZW5kZXJCbG9jazo6flJlbmRlckJsb2NrKCkKIH0KIAogLy8gTm90ZSB0aGF0IHRoaXMg
aXMgbm90IGNhbGxlZCBmb3IgUmVuZGVyQmxvY2tGbG93cy4KLXZvaWQgUmVuZGVyQmxvY2s6Ondp
bGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckJsb2NrOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVy
VHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKCFyZW5kZXJUcmVlQmVpbmdEZXN0cm95
ZWQoKSkgewogICAgICAgICBpZiAocGFyZW50KCkpCkBAIC0zNTIsNyArMzUyLDcgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCkKIAogICAgIGJsb2NrV2lsbEJlRGVzdHJveWVk
KCk7CiAKLSAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJveDo6
d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrOjpibG9ja1dp
bGxCZURlc3Ryb3llZCgpCkBAIC01NzgsNyArNTc4LDcgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVj
dD4gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVu
ZGUKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gRGVsZXRlIHRoZSBub3ctZW1wdHkgYmxv
Y2sncyBsaW5lcyBhbmQgbnVrZSBpdC4KICAgICAgICAgICAgIG5leHRCbG9jay5kZWxldGVMaW5l
cygpOwotICAgICAgICAgICAgbmV4dEJsb2NrLnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7
CisgICAgICAgICAgICBuZXh0QmxvY2sucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRl
cik7CiAgICAgICAgICAgICBuZXh0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggYTE4M2RjY2ZhZmQxZjlkMGEzZTUx
YTMzNjQ4MjQ5OTkwMzVjNjM4My4uYzNmNTQ1OWMwZDYzZmNhYjY2OGYyYzA3MTJhNjQ2Yzg2YWUz
ZjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTMyMyw3ICsz
MjMsNyBAQCBwdWJsaWM6CiAgICAgCiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyRnJhZ21lbnRlZEZs
b3cqIGxvY2F0ZUVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3ll
ZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBsYXlvdXQoKSBvdmVy
cmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApp
bmRleCAyNWM0MDRlMDE3MDU2OTc4NzdmYWM1OTJmYzAyOGEyMWM5OTg0MjIzLi4yYTBjMGI1MzUy
ZTJkZTU5YmM0MmNmNGE0NGVjZTc0OTUxMzUxMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIFJlbmRlckJsb2Nr
Rmxvdzo6flJlbmRlckJsb2NrRmxvdygpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJl
LiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJC
bG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJl
RGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmICghcmVuZGVy
VHJlZUJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAgaWYgKGZpcnN0Um9vdEJveCgpKSB7CkBA
IC0xNTQsNyArMTU0LDcgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgp
CiAgICAgYmxvY2tXaWxsQmVEZXN0cm95ZWQoKTsKIAogICAgIC8vIE5PVEU6IFRoaXMganVtcHMg
ZG93biB0byBSZW5kZXJCb3gsIGJ5cGFzc2luZyBSZW5kZXJCbG9jayBzaW5jZSBpdCB3b3VsZCBk
byBkdXBsaWNhdGUgd29yay4KLSAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOworICAg
IFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBSZW5kZXJCbG9ja0Zs
b3cqIFJlbmRlckJsb2NrRmxvdzo6cHJldmlvdXNTaWJsaW5nV2l0aE92ZXJoYW5naW5nRmxvYXRz
KGJvb2wmIHBhcmVudEhhc0Zsb2F0cykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuaAppbmRleCA5YmM2YjAwZTYxNzhmMjRjNGRlY2U0YTg3OTk2YTk1NGE3
N2U3NTljLi41MjA3OGI5NjI2NTVmMTc3MjAxYWUwMjk2ZjJlNjkzNTA0YmNhMTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCkBAIC01OSw3ICs1OSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5
b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ry
b3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogICAgIAogICAgIC8vIFRoaXMgbWV0
aG9kIGlzIGNhbGxlZCBhdCB0aGUgc3RhcnQgb2YgbGF5b3V0IHRvIHdpcGUgYXdheSBhbGwgb2Yg
dGhlIGZsb2F0cyBpbiBvdXIgZmxvYXRpbmcgb2JqZWN0cyBsaXN0LiBJdCBhbHNvCiAgICAgLy8g
cmVwb3B1bGF0ZXMgdGhlIGxpc3Qgd2l0aCBhbnkgZmxvYXRzIHRoYXQgaW50cnVkZSBmcm9tIHBy
ZXZpb3VzIHNpYmxpbmdzIG9yIHBhcmVudHMuIEZsb2F0cyB0aGF0IHdlcmUgYWRkZWQgYnkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKaW5kZXggYTBlNTA0ZDFkZTRkZjhjY2M5
OGVkODVmYWNkYmRhY2Y1NDViN2M0Ny4uYzZkOGRjMTc2NDQxZjJjODcwYmI0YzczNzE5YzQxNTcx
ZWE5OWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKQEAgLTE1MCw3
ICsxNTAsNyBAQCBSZW5kZXJCb3g6On5SZW5kZXJCb3goKQogICAgIC8vIERvIG5vdCBhZGQgYW55
IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZv
aWQgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJCb3g6OndpbGxCZURl
c3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAoZnJhbWUoKS5l
dmVudEhhbmRsZXIoKS5hdXRvc2Nyb2xsUmVuZGVyZXIoKSA9PSB0aGlzKQogICAgICAgICBmcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLnN0b3BBdXRvc2Nyb2xsVGltZXIodHJ1ZSk7CkBAIC0xNzAsNyAr
MTcwLDcgQEAgdm9pZCBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgICAgIHZpZXco
KS51bnJlZ2lzdGVyQm94V2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMoKnRoaXMpOwogI2VuZGlmCiAK
LSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogUmVuZGVyRnJh
Z21lbnRDb250YWluZXIqIFJlbmRlckJveDo6Y2xhbXBUb1N0YXJ0QW5kRW5kRnJhZ21lbnRzKFJl
bmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guaAppbmRleCBhZDQ0OTFiZDdjYWRhNDMwNmE1ZTQxMTI0MTk0YzJiYmIyNjIx
NDFlLi4xN2U2OTRlZjVjNzAwOGU3YjExMWE0MThlM2YxNzZiNmM3ZmJhYTI4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC02MzEsNyArNjMxLDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlRnJvbVN0eWxlKCkgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICBib29sIGNy
ZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAppbmRleCBhODE4NmVmOTY3YjU1
ZmE4OTMzMmFmM2EzZTJhZDBiM2I0Yzg4ZTg2Li5lMmQ2M2E5ZjMxYTJjZjhlYzUzNDMyNDQ1N2Qz
N2E1ZDE1N2RhZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAKQEAgLTIzNywxMCArMjM3LDEwIEBAIFJlbmRlckJveE1vZGVsT2Jq
ZWN0Ojp+UmVuZGVyQm94TW9kZWxPYmplY3QoKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUg
aGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckJveE1vZGVs
T2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgaWYgKGNvbnRpbnVhdGlvbigpICYmICFpc0NvbnRpbnVhdGlvbigpKSB7Ci0gICAgICAgIHJl
bW92ZUFuZERlc3Ryb3lBbGxDb250aW51YXRpb25zKCk7CisgICAgICAgIHJlbW92ZUFuZERlc3Ry
b3lBbGxDb250aW51YXRpb25zKGJ1aWxkZXIpOwogICAgICAgICBBU1NFUlQoIWNvbnRpbnVhdGlv
bigpKTsKICAgICB9CiAgICAgaWYgKGhhc0NvbnRpbnVhdGlvbkNoYWluTm9kZSgpKQpAQCAtMjUy
LDcgKzI1Miw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgp
CiAgICAgaWYgKCFyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkKICAgICAgICAgdmlldygpLmlt
YWdlUXVhbGl0eUNvbnRyb2xsZXIoKS5yZW5kZXJlcldpbGxCZURlc3Ryb3llZCgqdGhpcyk7CiAK
LSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5k
ZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIGJvb2wg
UmVuZGVyQm94TW9kZWxPYmplY3Q6Omhhc1Zpc2libGVCb3hEZWNvcmF0aW9uU3R5bGUoKSBjb25z
dApAQCAtMjU1MSwxNCArMjU1MSwxNCBAQCBhdXRvIFJlbmRlckJveE1vZGVsT2JqZWN0OjplbnN1
cmVDb250aW51YXRpb25DaGFpbk5vZGUoKSAtPiBDb250aW51YXRpb25DaGFpbk5vZAogICAgIH0p
Lml0ZXJhdG9yLT52YWx1ZTsKIH0KIAotdm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVtb3Zl
QW5kRGVzdHJveUFsbENvbnRpbnVhdGlvbnMoKQordm9pZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6
cmVtb3ZlQW5kRGVzdHJveUFsbENvbnRpbnVhdGlvbnMoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxk
ZXIpCiB7CiAgICAgQVNTRVJUKCFpc0NvbnRpbnVhdGlvbigpKTsKICAgICBBU1NFUlQoaGFzQ29u
dGludWF0aW9uQ2hhaW5Ob2RlKCkpOwogICAgIEFTU0VSVChjb250aW51YXRpb25DaGFpbk5vZGVN
YXAoKS5jb250YWlucyh0aGlzKSk7CiAgICAgYXV0byYgY29udGludWF0aW9uQ2hhaW5Ob2RlID0g
KmNvbnRpbnVhdGlvbkNoYWluTm9kZU1hcCgpLmdldCh0aGlzKTsKICAgICB3aGlsZSAoY29udGlu
dWF0aW9uQ2hhaW5Ob2RlLm5leHQpCi0gICAgICAgIGNvbnRpbnVhdGlvbkNoYWluTm9kZS5uZXh0
LT5yZW5kZXJlci0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgY29udGlu
dWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJv
eShidWlsZGVyKTsKICAgICByZW1vdmVGcm9tQ29udGludWF0aW9uQ2hhaW4oKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAppbmRleCA3
YmU4YjJiYWUyOTY1MzRhYTY5ZWUyZWE0ZTgzMGRlM2JlYmM2ZjRkLi5lZTg0MGNiMDc0NDUxMGNh
NjQxMDQ3YjFhNThhMDVkNDI3ZTBhODQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjQ1LDcgKzI0NSw3IEBAIHByb3RlY3RlZDoK
ICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5
cGVGbGFncyk7CiAgICAgUmVuZGVyQm94TW9kZWxPYmplY3QoRG9jdW1lbnQmLCBSZW5kZXJTdHls
ZSYmLCBCYXNlVHlwZUZsYWdzKTsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlk
ZTsKIAogICAgIExheW91dFBvaW50IGFkanVzdGVkUG9zaXRpb25SZWxhdGl2ZVRvT2Zmc2V0UGFy
ZW50KGNvbnN0IExheW91dFBvaW50JikgY29uc3Q7CiAKQEAgLTMwOCw3ICszMDgsNyBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgQ29udGludWF0aW9uQ2hhaW5Ob2RlJiBlbnN1cmVDb250aW51
YXRpb25DaGFpbk5vZGUoKTsKLSAgICB2b2lkIHJlbW92ZUFuZERlc3Ryb3lBbGxDb250aW51YXRp
b25zKCk7CisgICAgdm9pZCByZW1vdmVBbmREZXN0cm95QWxsQ29udGludWF0aW9ucyhSZW5kZXJU
cmVlQnVpbGRlciYpOwogCiAgICAgTGF5b3V0VW5pdCBjb21wdXRlZENTU1BhZGRpbmcoY29uc3Qg
TGVuZ3RoJikgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0
b24uY3BwCmluZGV4IDY1YWQzNGMxMjI2MTNkOWEwNjcwNmUyYTAyNDlhNDk4ZjkxZGE4N2YuLmVk
OGExZWI1OTExNGI3M2Q0YjMyZDg2ZjU5NDVlNjYxYTI5M2M4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0xMjgsNyArMTI4LDEyIEBAIHZvaWQgUmVu
ZGVyQnV0dG9uOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgc3RyKQogICAgICAgICBtX2J1dHRvblRl
eHQtPnNldFRleHQoc3RyLmltcGwoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgbV9i
dXR0b25UZXh0LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgIGlmIChSZW5kZXJU
cmVlQnVpbGRlcjo6Y3VycmVudCgpKQorICAgICAgICBtX2J1dHRvblRleHQtPnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KCpSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpKTsKKyAgICBlbHNl
IHsKKyAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIgYnVpbGRlcigqZG9jdW1lbnQoKS5yZW5kZXJW
aWV3KCkpOworICAgICAgICBtX2J1dHRvblRleHQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
KGJ1aWxkZXIpOworICAgIH0KIH0KIAogU3RyaW5nIFJlbmRlckJ1dHRvbjo6dGV4dCgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5jcHAKaW5kZXggM2YxNGU2
OTFlOGU0ZWNkNDQ2MjY5OGYxNDU5NzU1OTViNjAwMmMzYi4uNTY1MWFmNDViY2Y1ZDQ2NmY4Yzc3
YzA5OWJmZWMxYjFjMjQ2NjNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJD
b3VudGVyLmNwcApAQCAtMzUyLDcgKzM1Miw3IEBAIFJlbmRlckNvdW50ZXI6On5SZW5kZXJDb3Vu
dGVyKCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVE
ZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckNvdW50ZXI6OndpbGxCZURlc3Ry
b3llZCgpCit2b2lkIFJlbmRlckNvdW50ZXI6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYgYnVpbGRlcikKIHsKICAgICB2aWV3KCkucmVtb3ZlUmVuZGVyQ291bnRlcigpOwogCkBA
IC0zNjEsNyArMzYxLDcgQEAgdm9pZCBSZW5kZXJDb3VudGVyOjp3aWxsQmVEZXN0cm95ZWQoKQog
ICAgICAgICBBU1NFUlQoIW1fY291bnRlck5vZGUpOwogICAgIH0KICAgICAKLSAgICBSZW5kZXJU
ZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQo
YnVpbGRlcik7CiB9CiAKIGNvbnN0IGNoYXIqIFJlbmRlckNvdW50ZXI6OnJlbmRlck5hbWUoKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmgKaW5kZXggOGE5MDIw
MmQ0NTA5NjFhMTU4NzExNDkxZDU3MDU1NjJlODU0OGI5NC4uZGI0ZGY3YjBlNjRlNTIxYmE2ZWFl
OWZjZWI4MWM0YjZjMjgyZmVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckNvdW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ291
bnRlci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZUNvdW50ZXIo
KTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAg
IHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAgICAg
CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNDb3VudGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRWxlbWVudC5jcHAKaW5kZXggYjc0MGQ5ODIxODk1YTIyZGE0ZDIyODJkODU0ZWY5ODA2ZTll
ZTdmOC4uZTI4MTU1ZDA1Y2Q3Njk3MzAyZDUzODViZTFjMmVmZTA2MzlmYzU3OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcApAQCAtMTA1MCw3ICsxMDUwLDcg
QEAgaW5saW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6Y2xlYXJTdWJ0cmVlTGF5b3V0Um9vdElmTmVl
ZGVkKCkgY29uc3QKICAgICB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmNsZWFy
U3VidHJlZUxheW91dFJvb3QoKTsKIH0KIAotdm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0
cm95ZWQoKQordm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1fc3R5bGUuaGFzRml4ZWRCYWNrZ3JvdW5kSW1h
Z2UoKSAmJiAhc2V0dGluZ3MoKS5maXhlZEJhY2tncm91bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1l
bnQoKSkKICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVNsb3dSZXBhaW50T2JqZWN0
KCp0aGlzKTsKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHZvaWQgUmVuZGVyRWxlbWVudDo6d2lsbEJl
RGVzdHJveWVkKCkKICAgICBpZiAoaGFzQ291bnRlck5vZGVNYXAoKSkKICAgICAgICAgUmVuZGVy
Q291bnRlcjo6ZGVzdHJveUNvdW50ZXJOb2RlcygqdGhpcyk7CiAKLSAgICBSZW5kZXJPYmplY3Q6
OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlck9iamVjdDo6d2lsbEJlRGVzdHJveWVkKGJ1
aWxkZXIpOwogCiAgICAgY2xlYXJTdWJ0cmVlTGF5b3V0Um9vdElmTmVlZGVkKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCmluZGV4IGNlYWI3Yzg5NjYxZGM5NWZm
Y2RhNTlkZTJiMDhjOWQyMWI5ZjllYTUuLmFmZWE1MTIwM2I5ZTY1MmFiMGI4NzJlMGMyNTRlYzI3
MmQzYmVmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaApAQCAt
MjYwLDcgKzI2MCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgp
IG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ry
b3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzZXRSZW5kZXJJ
bmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzKGJvb2wgYikgeyBtX3JlbmRlcklubGluZUFsd2F5
c0NyZWF0ZXNMaW5lQm94ZXMgPSBiOyB9CiAgICAgYm9vbCByZW5kZXJJbmxpbmVBbHdheXNDcmVh
dGVzTGluZUJveGVzKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVz
TGluZUJveGVzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcAppbmRleCAwMDBhMDg5ODRjMTQ4M2VmOTExMjFmZDg5YWExZjQxZDc2NzE1
OTViLi5mODg2OWRiOWVlY2RiNDdiNzVjNGZhMzJmOTdlNjlhYjg2NDljYWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTEx
MywxMCArMTEzLDEwIEBAIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp+UmVuZGVyRW1iZWRkZWRPYmpl
Y3QoKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURl
c3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OndpbGxC
ZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQo
UmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgdmlldygpLmZyYW1lVmlldygpLnJl
bW92ZUVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoKnRoaXMpOwotICAgIFJlbmRlcldpZGdldDo6d2ls
bEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyV2lkZ2V0Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRl
cik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbWJlZGRlZE9iamVjdD4gUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmNyZWF0ZUZvckFwcGxldChIVE1MQXBwbGV0RWxlbWVudCYgYXBwbGV0LCBSZW5kZXJT
dHlsZSYmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaAppbmRleCBlYWFiNzg2ZjFkNDQ4NzA0NWQ2NzZlYWY3ZjkwMGE1MWJhZjEwYzg3
Li41MGY1NzZmMDdhYmE5ZDBkNjczMTRiMzI4ZDM4YzcyOWE0NGE5MjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaApAQCAtNjYsNyArNjYs
NyBAQCBwcm90ZWN0ZWQ6CiAKIHByb3RlY3RlZDoKICAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRl
OwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIlJlbmRlckVt
YmVkZGVkT2JqZWN0IjsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYWdtZW50ZWRGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
cmFnbWVudGVkRmxvdy5jcHAKaW5kZXggZjVhOWI4ZDIzYzJjOTA0ZWNlYjA3MTIxN2Q1ZDY0ODI0
NDNmYjkwMS4uODIwOWFkZjBiZjAxZjY4YTUxMWYxNTYxOWRhNzQyMDc1ZDUwY2UyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuY3BwCkBA
IC03NjMsMTAgKzc2MywxMCBAQCB2b2lkIFJlbmRlckZyYWdtZW50ZWRGbG93OjpkZWxldGVMaW5l
cygpCiAgICAgUmVuZGVyQmxvY2tGbG93OjpkZWxldGVMaW5lcygpOwogfQogCi12b2lkIFJlbmRl
ckZyYWdtZW50ZWRGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJGcmFnbWVudGVk
Rmxvdzo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAg
IGNsZWFyTGluZXNUb0ZyYWdtZW50TWFwKCk7Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZChidWlsZGVy
KTsKIH0KIAogdm9pZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6bWFya0ZyYWdtZW50c0Zvck92ZXJm
bG93TGF5b3V0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckZyYWdtZW50ZWRGbG93LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhZ21lbnRlZEZsb3cuaAppbmRleCAxZWFjOTc4ZmVhYTllM2M3NmFiMmJlZWUwYzU5ZjA3ZWZm
NjA2YTlkLi45Y2YyM2JjYzhlNGQ0MzQ0ZjUwODcxMzdmYmRmMzhkZjVkMjkxNmE0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuaApAQCAtMTk0
LDcgKzE5NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIExheW91dFVuaXQgaW5pdGlhbExv
Z2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH07CiAgICAgCiAgICAgdm9pZCBjbGVhckxp
bmVzVG9GcmFnbWVudE1hcCgpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsK
IAogICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1TdGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxh
Z3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmluZGV4IDhmMDM1MmQ4ZTUwMjI5MmE5YWUy
NDQxOGVlZTAxMWNkMTYzY2I3ZjguLjg0OTkzYzBjYzliNDBmZmY2NDRkNDg5ODdjN2JkNTA2Nzdl
YmM3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2Ny
ZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5j
cHAKQEAgLTU4LDE0ICs1OCwxNCBAQCBSZW5kZXJGdWxsU2NyZWVuOjpSZW5kZXJGdWxsU2NyZWVu
KERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICBzZXRSZXBsYWNl
ZChmYWxzZSk7IAogfQogCi12b2lkIFJlbmRlckZ1bGxTY3JlZW46OndpbGxCZURlc3Ryb3llZCgp
Cit2b2lkIFJlbmRlckZ1bGxTY3JlZW46OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRl
ciYgYnVpbGRlcikKIHsKICAgICBpZiAobV9wbGFjZWhvbGRlcikgewotICAgICAgICBtX3BsYWNl
aG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgICAgICBtX3BsYWNlaG9s
ZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKICAgICAgICAgQVNTRVJU
KCFtX3BsYWNlaG9sZGVyKTsKICAgICB9CiAKLSAgICBSZW5kZXJGbGV4aWJsZUJveDo6d2lsbEJl
RGVzdHJveWVkKCk7CisgICAgUmVuZGVyRmxleGlibGVCb3g6OndpbGxCZURlc3Ryb3llZChidWls
ZGVyKTsKIH0KIAogc3RhdGljIFJlbmRlclN0eWxlIGNyZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCkBA
IC0xMDYsNyArMTA2LDcgQEAgUmVuZGVyUHRyPFJlbmRlckZ1bGxTY3JlZW4+IFJlbmRlckZ1bGxT
Y3JlZW46OndyYXBOZXdSZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRlciYKICAgICBidWlsZGVyLmlu
c2VydENoaWxkKGZ1bGxzY3JlZW5SZW5kZXJlciwgV1RGTW92ZShyZW5kZXJlcikpOwogICAgIGZ1
bGxzY3JlZW5SZW5kZXJlci5zZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMoKTsKIAot
ICAgIGRvY3VtZW50LnNldEZ1bGxTY3JlZW5SZW5kZXJlcigmZnVsbHNjcmVlblJlbmRlcmVyKTsK
KyAgICBkb2N1bWVudC5zZXRGdWxsU2NyZWVuUmVuZGVyZXIoYnVpbGRlciwgJmZ1bGxzY3JlZW5S
ZW5kZXJlcik7CiAKICAgICByZXR1cm4gbmV3RnVsbHNjcmVlblJlbmRlcmVyOwogfQpAQCAtMTQz
LDcgKzE0Myw3IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIo
UmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIERvY3VtZW50JiBkCiAgICAgYnVpbGRlci5pbnNlcnRD
aGlsZChmdWxsc2NyZWVuUmVuZGVyZXIsIFdURk1vdmUodG9Nb3ZlKSk7CiAgICAgZnVsbHNjcmVl
blJlbmRlcmVyLnNldE5lZWRzTGF5b3V0QW5kUHJlZldpZHRoc1JlY2FsYygpOwogCi0gICAgZG9j
dW1lbnQuc2V0RnVsbFNjcmVlblJlbmRlcmVyKCZmdWxsc2NyZWVuUmVuZGVyZXIpOworICAgIGRv
Y3VtZW50LnNldEZ1bGxTY3JlZW5SZW5kZXJlcihidWlsZGVyLCAmZnVsbHNjcmVlblJlbmRlcmVy
KTsKIH0KIAogdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1bndyYXBSZW5kZXJlcihib29sJiByZXF1
aXJlc1JlbmRlclRyZWVSZWJ1aWxkKQpAQCAtMTY5LDcgKzE2OSw3IEBAIHZvaWQgUmVuZGVyRnVs
bFNjcmVlbjo6dW53cmFwUmVuZGVyZXIoYm9vbCYgcmVxdWlyZXNSZW5kZXJUcmVlUmVidWlsZCkK
ICAgICAgICAgICAgICAgICBpZiAoYXV0byogbm9uQW5vbnltb3VzQ2hpbGQgPSBkb3duY2FzdDxS
ZW5kZXJCbG9jaz4oKmNoaWxkKS5maXJzdENoaWxkKCkpCiAgICAgICAgICAgICAgICAgICAgIGNo
aWxkID0gbm9uQW5vbnltb3VzQ2hpbGQ7CiAgICAgICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgIGNoaWxkLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgICAg
ICAgICAgICAgICAgICBjaGlsZC0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7
CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KQEAgLTE4NCwxMCArMTg0LDEwIEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6dW53
cmFwUmVuZGVyZXIoYm9vbCYgcmVxdWlyZXNSZW5kZXJUcmVlUmVidWlsZCkKICAgICAgICAgfQog
ICAgIH0KICAgICBpZiAocGxhY2Vob2xkZXIoKSkKLSAgICAgICAgcGxhY2Vob2xkZXIoKS0+cmVt
b3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgcGxhY2Vob2xkZXIoKS0+cmVtb3Zl
RnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiAgICAgQVNTRVJUKCFwbGFjZWhvbGRlcigp
KTsKIAotICAgIHJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgcmVtb3ZlRnJvbVBh
cmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6Y3Jl
YXRlUGxhY2Vob2xkZXIoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZSwgY29uc3Qg
TGF5b3V0UmVjdCYgZnJhbWVSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
dWxsU2NyZWVuLmgKaW5kZXggNWY5YzEyOTc4YzZhY2VlMjZhNDUxZDNjNjdjOWRlMzUyYjE5ODM0
YS4uYjM2Y2ZhNGEwY2Y0MjRhNDI0Y2ZiMjU2YWVlNjQ5NzIwMDkyY2YzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5oCkBAIC00OCw3ICs0OCw3IEBAIHB1
YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgYm9vbCBpc1JlbmRlckZ1bGxTY3JlZW4oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBv
dmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92
ZXJyaWRlOwogICAgIGJvb2wgaXNGbGV4aWJsZUJveEltcGwoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwCmluZGV4IGYzNGVkMTBiMzY1ZDI1MjM5NDViYWZiNTY4YWI5N2I1MGYyMmVmNzUu
LjllNzM4ODcwMTcyYmIyZTdjZGQyMDMyOGNjNTczM2QyZWZlNGUyYmUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtMTQ5LDEwICsxNDksMTAgQEAgUmVuZGVy
SW1hZ2U6On5SZW5kZXJJbWFnZSgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBB
ZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJJbWFn
ZTo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVySW1hZ2U6OndpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpbWFnZVJlc291cmNlKCkuc2h1dGRv
d24oKTsKLSAgICBSZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVy
UmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogLy8gSWYgd2UnbGwgYmUg
ZGlzcGxheWluZyBlaXRoZXIgYWx0IHRleHQgb3IgYW4gaW1hZ2UsIGFkZCBzb21lIHBhZGRpbmcu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDU2NTQzMTAxMGNhMmU5
OGUxOTBiMDk0Y2RmYzg1NGRmNmI4OTMxZjMuLjA2ZThlMWUwZmZkNmQ5YTQ1ZTYyODUzMWNjODY4
Zjc3ZGY1MjI3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC03
Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhc05vbkJpdG1hcEltYWdlKCkgY29uc3Q7
CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAg
IHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAg
ICBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxjdWxhdGlvbigpIGNvbnN0IGZpbmFsOwog
ICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCmluZGV4IGU3ZjVmOGIwYWFhMDA2YmI3
MWViOWFlODZlMzZhOGJmMGMzMGU2NjkuLjA3NTQ3NDVhODgzNjU1NjY2MjA1MDgwYmZkMDFmMmUz
MGYzMTY5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCkBA
IC03MCw3ICs3MCw3IEBAIFJlbmRlcklubGluZTo6UmVuZGVySW5saW5lKERvY3VtZW50JiBkb2N1
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsK
IH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlcklu
bGluZTo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogI2lm
ICFBU1NFUlRfRElTQUJMRUQKICAgICAvLyBNYWtlIHN1cmUgd2UgZG8gbm90IHJldGFpbiAidGhp
cyIgaW4gdGhlIGNvbnRpbnVhdGlvbiBvdXRsaW5lIHRhYmxlIG1hcCBvZiBvdXIgY29udGFpbmlu
ZyBibG9ja3MuCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURl
c3Ryb3llZCgpCiAKICAgICBtX2xpbmVCb3hlcy5kZWxldGVMaW5lQm94ZXMoKTsKIAotICAgIFJl
bmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlcklubGlu
ZTo6dXBkYXRlRnJvbVN0eWxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUu
aAppbmRleCA3MzI2Yzc2YmNiZmMwMjkzNjdkYjdmZjA3NDZjYzA2ZDlhZmE2ZjkwLi42ZjRmOWZh
OTc0MTU5MWMxYWQyNDRlZTZiZDlmNGIxOTAwYmE0NmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklubGluZS5oCkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFk
ZENoaWxkSWdub3JpbmdDb250aW51YXRpb24oUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8
UmVuZGVyT2JqZWN0PiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IG51bGxw
dHIpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJy
aWRlOwogCiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBS
ZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOwogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3Qu
Y3BwCmluZGV4IDU1YjQzYTZjODI0OWRmMGVjNTdmZGUxMTMwYmZkOWJkMGY2NzZjYTcuLjQxY2E2
OWRlMDdiNzk3Mzk4Yjg4MjM0OGJhMzZiZWVjOGVjYTM1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAgLTY1LDcgKzY1
LDcgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6flJlbmRlckxheWVyTW9kZWxPYmplY3QoKQog
ICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3ll
ZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6d2lsbEJlRGVz
dHJveWVkKCkKK3ZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKFJl
bmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChpc1Bvc2l0aW9uZWQoKSkgewog
ICAgICAgICBpZiAoc3R5bGUoKS5oYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSkKQEAg
LTc3LDcgKzc3LDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQoKQogICAgICAgICBkZXN0cm95TGF5ZXIoKTsKICAgICB9CiAKLSAgICBSZW5kZXJFbGVtZW50
Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQo
YnVpbGRlcik7CiAgICAgCiAgICAgY2xlYXJSZXBhaW50TGF5b3V0UmVjdHMoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4
IGU2MDVhNDhiYTU1MTZmZjg0Yzk5ZjlmYTY2ZTdjMjMwNjg4NmNkZmMuLjBkOWE3NmU4YWZjZjAx
NTU3ZTQ3YmIyZjExNmY1Njc5MjdmODQyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApAQCAtNzMsNyArNzMsNyBAQCBwcm90ZWN0
ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChEb2N1bWVudCYsIFJlbmRlclN0eWxlJiYs
IEJhc2VUeXBlRmxhZ3MpOwogCiAgICAgdm9pZCBjcmVhdGVMYXllcigpOwotICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVy
VHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyTGF5ZXI+IG1fbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEJveC5jcHAKaW5kZXggNGM0ZDlhYmNiNTNhMzI2NmFjYWI5NjAzMjkzMzNhNjE3OTZlYTg5Ni4u
YWE5MTdlZjczNTdiNWYyNDQwMjhlMjRjYzZlMjRiNzYyZDZmYjk1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtMTA0LDExICsxMDQsMTEgQEAgUmVu
ZGVyTGlzdEJveDo6flJlbmRlckxpc3RCb3goKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUg
aGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVu
ZGVyTGlzdEJveDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyTGlzdEJveDo6d2lsbEJl
RGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIHNldEhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyKGZhbHNlKTsKICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVtb3ZlU2Nyb2xs
YWJsZUFyZWEodGhpcyk7Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsK
KyAgICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogSFRN
TFNlbGVjdEVsZW1lbnQmIFJlbmRlckxpc3RCb3g6OnNlbGVjdEVsZW1lbnQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggOWQ2OTRkZjQ1YTMyYjAz
ZDI4OTdiOTEwYjNkYmVjODgzY2RmNTQ3Yi4uODhjNDcyMzAxNGZjZGRkMGM5NGYxNjE1YWM4OTg3
Nzg2NGI1MjVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBA
IC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBib29sIHNjcm9sbGVkVG9SaWdodCgpIGNvbnN0
IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcAppbmRleCBiMzU0ZGRkNWQ1ZDhhMjRkZDI0
M2RmMDg1YWJlOTkyMjEyNGQ5ZTNlLi5iYzU5OWI0M2RkZWYxNjgzOTcwMmM3ODAxNDMwZjYwNjUy
MDNiNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAK
QEAgLTU0LDExICs1NCwxMSBAQCBSZW5kZXJMaXN0SXRlbTo6flJlbmRlckxpc3RJdGVtKCkKICAg
ICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQo
KSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckxpc3RJdGVtOjp3aWxsQmVEZXN0cm95ZWQoKQor
dm9pZCBSZW5kZXJMaXN0SXRlbTo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBi
dWlsZGVyKQogewogICAgIGlmIChtX21hcmtlcikKLSAgICAgICAgbV9tYXJrZXItPnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KCk7Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95
ZWQoKTsKKyAgICAgICAgbV9tYXJrZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxk
ZXIpOworICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQog
CiBSZW5kZXJTdHlsZSBSZW5kZXJMaXN0SXRlbTo6Y29tcHV0ZU1hcmtlclN0eWxlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKaW5kZXggZTY3ZDY0MGRi
NmMwYjQyYzZlZGM2YjRhMjhmYjFjMzc5OTM0MDJlYy4uODM5OGM3YjAzYzU1Y2RjMzYzZTZhNzZm
ZTRmODdlOTJkMTY4YjUzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJ
dGVtLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJblJldmVyc2VkT3Jk
ZXJlZExpc3QoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IGZpbmFsOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgZmlu
YWw7CiAKICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlJlbmRlckxpc3RJdGVtIjsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5jcHAKaW5kZXggZGQxODc3NzI4MjJjYTIyMTdhYzYyY2RhNDk5MzMyMjliMmZk
N2EwNS4uNjFjM2M1YWQ2NmQyNDA2ZmNjMjBhNDM5NDVlZTE2NmNmZGUxM2QzMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmNwcApAQCAtMTEzNCwxMSAr
MTEzNCwxMSBAQCBSZW5kZXJMaXN0TWFya2VyOjp+UmVuZGVyTGlzdE1hcmtlcigpCiAgICAgLy8g
RG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5z
dGVhZC4KIH0KIAotdm9pZCBSZW5kZXJMaXN0TWFya2VyOjp3aWxsQmVEZXN0cm95ZWQoKQordm9p
ZCBSZW5kZXJMaXN0TWFya2VyOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1
aWxkZXIpCiB7CiAgICAgaWYgKG1faW1hZ2UpCiAgICAgICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVu
dCh0aGlzKTsKLSAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJv
eDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlckxpc3RNYXJrZXI6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuaApp
bmRleCAxM2YxMjRmMDM3YjRkYjIzN2MwNTdlMjhkOWMxZjlkZDU0MDAyZWNhLi45Mjc4ZGMyMDQx
OTBkMDM4ZWYwNGExZDk5Zjg3ZWNmMjdlNDJiODliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogI2VuZGlm
CiAKIHByaXZhdGU6Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAg
dm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDQwN2QyY2IyZjgxMGNlMGMxZTI0ZTJjZDJlZGNh
ZTlkNGRjYzQ4YzUuLjU0M2M3ZjA5MGQ0YTg0Yzc2YzJiZDAwM2IxYzVkMzVjY2VmMDU1MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtODksNyAr
ODksNyBAQCBSZW5kZXJNZW51TGlzdDo6flJlbmRlck1lbnVMaXN0KCkKICAgICAvLyBEbyBub3Qg
YWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgog
fQogCi12b2lkIFJlbmRlck1lbnVMaXN0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJN
ZW51TGlzdDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewog
I2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fcG9wdXApCkBAIC05Nyw3ICs5Nyw3IEBAIHZv
aWQgUmVuZGVyTWVudUxpc3Q6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgbV9wb3B1cCA9IG51bGxw
dHI7CiAjZW5kaWYKIAotICAgIFJlbmRlckZsZXhpYmxlQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsK
KyAgICBSZW5kZXJGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2
b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJiBpbm5lclJl
bmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAppbmRleCBi
ZGY0NDcxNmVlMGYxZmM3ZmU5YjczY2VmOGE0OGY1ZTA1Yzk3MTZkLi42NmZlYjcyNGE0NDA5NmU4
ZWIzZjIwNTdhYzJhZmNhNmM0MmYyMDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbm5l
clJlbmRlcmVyKFJlbmRlckJsb2NrJik7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNzIyOGJiM2Vm
NjFhMTczZDI3OGJkOWRhZDFhMWE3ZTY5YzQwOTVkMS4uNWY5Y2QwMWJiOTIwYmIwMTBlNGFiODgw
NjM5NTYyYjQ3YThlMzEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5jcHAKQEAgLTI1NSwxMCArMjU1LDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpzZXRQYXJlbnQo
UmVuZGVyRWxlbWVudCogcGFyZW50KQogICAgIG1fcGFyZW50ID0gcGFyZW50OwogfQogCi12b2lk
IFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKQordm9pZCBSZW5kZXJP
YmplY3Q6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KFJlbmRlclRyZWVCdWlsZGVyJiBidWls
ZGVyKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0gICAgbV9wYXJlbnQtPnJlbW92ZUFuZERl
c3Ryb3lDaGlsZCgqUmVuZGVyVHJlZUJ1aWxkZXI6OmN1cnJlbnQoKSwgKnRoaXMpOworICAgIG1f
cGFyZW50LT5yZW1vdmVBbmREZXN0cm95Q2hpbGQoYnVpbGRlciwgKnRoaXMpOwogfQogCiBSZW5k
ZXJPYmplY3QqIFJlbmRlck9iamVjdDo6bmV4dEluUHJlT3JkZXIoKSBjb25zdApAQCAtMTQzNCw3
ICsxNDM0LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2VsZWN0aW9uQm9yZGVyKCkgY29uc3QK
ICAgICAgICAgfHwgdmlldygpLnNlbGVjdGlvbigpLmVuZCgpID09IHRoaXM7CiB9CiAKLXZvaWQg
UmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJPYmplY3Q6OndpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpCiB7CiAgICAgQVNTRVJUKCFtX3BhcmVudCk7
CiAgICAgQVNTRVJUKHJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpIHx8ICFpczxSZW5kZXJFbGVt
ZW50PigqdGhpcykgfHwgIXZpZXcoKS5mcmFtZVZpZXcoKS5oYXNTbG93UmVwYWludE9iamVjdChk
b3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykpKTsKQEAgLTE0ODUsNyArMTQ4NSw3IEBAIHZv
aWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKICAgICAgICAgZG93bmNhc3Q8UmVuZGVyQm94TW9k
ZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpLT53aWxsQmVEZXN0cm95ZWQoKTsKICNlbmRpZgogCi0g
ICAgd2lsbEJlRGVzdHJveWVkKCk7CisgICAgd2lsbEJlRGVzdHJveWVkKCpSZW5kZXJUcmVlQnVp
bGRlcjo6Y3VycmVudCgpKTsKIAogICAgIGlmIChpczxSZW5kZXJXaWRnZXQ+KCp0aGlzKSkgewog
ICAgICAgICBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0aGlzKS5kZXJlZigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGVlNjhiYjA3ZDQ1ZjhhYmVjM2U1YmMz
NjVlZmY4Nzg5ZGQxNjc3NmMuLmQ1NGMxOTA4NzM1MmRjYzgwNzQ4NmViNjE2Y2VjMmQ5NzU2YmMw
OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTYzLDYgKzYz
LDcgQEAgY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJMYXllck1vZGVsT2JqZWN0Owog
Y2xhc3MgUmVuZGVyRnJhZ21lbnRDb250YWluZXI7CiBjbGFzcyBSZW5kZXJUaGVtZTsKK2NsYXNz
IFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgU2VsZWN0aW9uUmFuZ2VEYXRhOwogY2xhc3MgVHJh
bnNmb3JtU3RhdGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRpb247CkBAIC03NTIsNyArNzUzLDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENhY2hlZEltYWdlKiwgY29uc3QgSW50UmVj
dCogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdy
YXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSB7IH0KIAotICAgIHZvaWQg
cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICB2b2lkIHJlbW92ZUZyb21QYXJlbnRB
bmREZXN0cm95KFJlbmRlclRyZWVCdWlsZGVyJik7CiAKICAgICBDU1NBbmltYXRpb25Db250cm9s
bGVyJiBhbmltYXRpb24oKSBjb25zdDsKIApAQCAtNzg3LDcgKzc4OCw3IEBAIHByb3RlY3RlZDoK
IAogICAgIHZvaWQgYWRqdXN0UmVjdEZvck91dGxpbmVBbmRTaGFkb3coTGF5b3V0UmVjdCYpIGNv
bnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOworICAgIHZpcnR1YWwg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBpbnNlcnRlZEludG9UcmVlKCk7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRG
cm9tVHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
aW5kZXggY2FkZGQ0ZWE4N2VlOWMyOWRmNzJlYzA0NzRmMDdhOGZkZTAwMDMzZS4uYTdjOGQ5MWY1
OWEwNTc2MGUxODAzNzZhZGYxNTQxOGVlMzBjZTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC03MiwxMiArNzIsMTIgQEAgUmVuZGVyUmVwbGFj
ZWQ6OlJlbmRlclJlcGxhY2VkKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHls
ZSwgY29uc3QgTGEKIAogUmVuZGVyUmVwbGFjZWQ6On5SZW5kZXJSZXBsYWNlZCgpID0gZGVmYXVs
dDsKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVy
UmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsK
ICAgICBpZiAoIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3llZCgpICYmIHBhcmVudCgpKQogICAgICAg
ICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2VkQ2hpbGQoKnRoaXMpOwogCi0gICAgUmVu
ZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJSZXBsYWNlZDo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggYWU1ZDk1NDQ3M2Q4OGYzNDA4
MjhmM2I3YjAzOTQzYTBiMTdmZmUxOC4uYmY2OWJmYzcwNzg4NTE3OTE5YzQ2OWY0YTU1ODBkMTNh
NmI2YjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAg
LTY3LDcgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc2hvdWxkUGFpbnQoUGFpbnRJbmZv
JiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICBMYXlvdXRSZWN0IGxvY2FsU2VsZWN0aW9uUmVj
dChib29sIGNoZWNrV2hldGhlclNlbGVjdGVkID0gdHJ1ZSkgY29uc3Q7IC8vIFRoaXMgaXMgaW4g
bG9jYWwgY29vcmRpbmF0ZXMsIGJ1dCBpdCdzIGEgcGh5c2ljYWwgcmVjdCAoc28gdGhlIHRvcCBs
ZWZ0IGNvcm5lciBpcyBwaHlzaWNhbCB0b3AgbGVmdCkuCiAKLSAgICB2b2lkIHdpbGxCZURlc3Ry
b3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWls
ZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlQ29uc3Ry
YWluZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5kZXggN2MwNGE4NjIwYzA5Y2FhN2VkNTE4
YjFlYWRhNGVlNzJhNWM1YTVkYi4uOGFkYjI0ODQ1ZjBkYTY4YTgzYjk4NWVmZWFlNWQ2YjA3Nzcw
OWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSdWJ5LmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IFJlbmRlclJ1YnlBc0lubGluZTo6dGFr
ZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyCiAgICAgICAgIEFTU0VSVChjaGlsZC5p
c0JlZm9yZUNvbnRlbnQoKSB8fCBjaGlsZC5pc0FmdGVyQ29udGVudCgpKTsKICAgICAgICAgYXV0
byYgcGFyZW50ID0gKmNoaWxkLnBhcmVudCgpOwogICAgICAgICBhdXRvIHRha2VuQ2hpbGQgPSBw
YXJlbnQudGFrZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsKLSAgICAgICAgcGFyZW50LnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIHBhcmVudC5yZW1vdmVGcm9tUGFyZW50QW5k
RGVzdHJveShidWlsZGVyKTsKICAgICAgICAgcmV0dXJuIHRha2VuQ2hpbGQ7CiAgICAgfQogCkBA
IC0xNDgsNyArMTQ4LDcgQEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyUnVieUFzQmxv
Y2s6OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwKICAgICAgICAgQVNTRVJU
KGNoaWxkLmlzQmVmb3JlQ29udGVudCgpIHx8IGNoaWxkLmlzQWZ0ZXJDb250ZW50KCkpOwogICAg
ICAgICBhdXRvJiBwYXJlbnQgPSAqY2hpbGQucGFyZW50KCk7CiAgICAgICAgIGF1dG8gdGFrZW5D
aGlsZCA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwgY2hpbGQpOwotICAgICAgICBwYXJlbnQu
cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgcGFyZW50LnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgICAgICByZXR1cm4gdGFrZW5DaGlsZDsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hG
aWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3Bw
CmluZGV4IDg4ZmQ2NGFiYWM4MDQ1ZjViZjI1MzcyMTQxODcyOWZhNGE3OTM3OTUuLjVhODMyOGVm
ODUxNWYxMzk1YTI2N2NjOTQ5NmRkMTViZTk3NDIwOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtNjQsMTQgKzY0LDE0IEBAIFJlbmRl
clNlYXJjaEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQoKQogICAgIC8vIERvIG5vdCBhZGQgYW55
IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZv
aWQgUmVuZGVyU2VhcmNoRmllbGQ6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclNlYXJj
aEZpZWxkOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKICAgICAgICAgbV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51
KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7
CiAgICAgfQogCi0gICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjp3aWxsQmVEZXN0cm95
ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OndpbGxCZURlc3Ryb3llZChi
dWlsZGVyKTsKIH0KIAogaW5saW5lIEhUTUxFbGVtZW50KiBSZW5kZXJTZWFyY2hGaWVsZDo6cmVz
dWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuaAppbmRleCAzYTg0MWRlZDNmOWFkYTNhNTI5MTkyNTIzZTQxNDE2M2E4
NGUzYWVlLi4yMzNlNmVkN2NlOWE0YjRmYTE0MWM2ZmIwNjVkMmMwZTUwYWQ1ZGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlk
ZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9sTG9naWNhbEhlaWdodChMYXlvdXRVbml0
IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVudEhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92ZXJyaWRlOwogICAgIEVWaXNpYmlsaXR5
IHZpc2liaWxpdHlGb3JDYW5jZWxCdXR0b24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uY3BwCmluZGV4IGVlNjIzMzBk
OTM4NjdkZTAwYmFjZTZkMDJhZGU5NTdjZDMxODAwNTguLmU0NDcyMjFiNWRlOTQ0NzA0ZmYwMDJi
MDA3YjQzMmUxMzBlYzU2YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAtNjMsMTIgKzYzLDEyIEBAIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjp+UmVuZGVyU25hcHNob3R0ZWRQbHVnSW4oKQogICAgIC8vIERvIG5v
dCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQu
CiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVnSW46OndpbGxCZURlc3Ryb3llZCgpCit2
b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgQVNTRVJUKG1fc25hcHNob3RSZXNvdXJjZSk7CiAgICAg
bV9zbmFwc2hvdFJlc291cmNlLT5zaHV0ZG93bigpOwogCi0gICAgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVE
ZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQmIFJlbmRlclNu
YXBzaG90dGVkUGx1Z0luOjpwbHVnSW5JbWFnZUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAppbmRleCBhNDVh
MzFhNTcwYjJlZmNiNDVhNmUxMGViNDY3YjhlYWIwZGM0MWYwLi41YjFiZTg5MDZlMTg4MjljMThi
ZDkyMjc2YTI3YTQ1MGRkMjhkNWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAtNDMsNyArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGZyYW1lT3duZXJFbGVtZW50KCkgY29uc3Qg
PSBkZWxldGU7CiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0KICAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0
Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29yJikgY29uc3QgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5kZXggNmFlMDQ3YzQ2OWZlOWNkYWJlZjIx
Y2RkY2FlYzk2NzMzMjVlZGE3YS4uNTFjMmZiZWZmNTBjYzVhNjQxODkwZGVlNTNhNTlkMjhiZDhl
ZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmNwcApAQCAtMjg3LDcg
KzI4Nyw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cmVtb3ZlQW5kRGVzdHJveVRleHRCb3hlcygpCiAg
ICAgbV9saW5lQm94ZXMuZGVsZXRlQWxsKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGV4dDo6d2lsbEJl
RGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJiBidWlsZGVyKQogewogICAgIHNlY3VyZVRleHRUaW1lcnMoKS5yZW1vdmUodGhpcyk7
CiAKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3llZCgp
CiAKICAgICBzZXRJbmxpbmVXcmFwcGVyRm9yRGlzcGxheUNvbnRlbnRzKG51bGxwdHIpOwogCi0g
ICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJPYmplY3Q6Ondp
bGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0OjpkZWxldGVMaW5l
Qm94ZXNCZWZvcmVTaW1wbGVMaW5lTGF5b3V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dC5oCmluZGV4IGY0NjI5MGY1ZGVhYjBhZWJlOWM3YzgyNDBkMGQ2ZjM5NDU2NjgwNGEuLmMy
NDYzMThkZDZjZDcxMmFiZDZiNjVkNzE3NGIwNTc1MDRiMGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTgzLDcgKzE4Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVj
dGVkOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyhmbG9h
dCBsZWFkV2lkdGgpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJlZFRleHQoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVh
bCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5jcHAKaW5kZXggNTI2
Mzg1Y2RhMmQ3MTIzNmI2NTQ2MTU5ODg3ZDVmMTVhYTA3MjdiMi4uN2UwMjVlYWM2Mzc5NTY0Njkz
MDlmMmNlNzNlNGUyZTEwNjE4M2M4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmUuY3BwCkBAIC00NSwxMiArNDUsMTIg
QEAgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6On5SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZSgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVz
dHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6
d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6OndpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAodGV4dEFy
ZWFFbGVtZW50KCkuaXNDb25uZWN0ZWQoKSkKICAgICAgICAgdGV4dEFyZWFFbGVtZW50KCkucmVu
ZGVyZXJXaWxsQmVEZXN0cm95ZWQoKTsKIAotICAgIFJlbmRlclRleHRDb250cm9sOjp3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxk
ZXIpOwogfQogCiBIVE1MVGV4dEFyZWFFbGVtZW50JiBSZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZTo6dGV4dEFyZWFFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKaW5kZXggNzIxYWY5ZjZhMzNmYWY0
Yjg5Yzc1MWNiZTkyNDkzOGI0Y2QzYjA2OS4uMTk2MDhlZjczNTQxZDZiNTQ0OWY0ODAyYWM4NWJl
MjZhZWRkN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogICAgIEhU
TUxUZXh0QXJlYUVsZW1lbnQmIHRleHRBcmVhRWxlbWVudCgpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGVsZW1lbnQoKSBj
b25zdCA9IGRlbGV0ZTsKIAogICAgIGJvb2wgaXNUZXh0QXJlYSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRG
cmFnbWVudC5jcHAKaW5kZXggZGQ5YWNjN2QxMDMyNzc0NjhkOGM4ZTVjMjY3ZWMwZGQwYjFlZDVh
ZS4uMDE2OWFkY2E1NWJkYmIxN2MzOTdlMDBiYTc0MmIzMjcyZDdmNzhhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKQEAgLTI2LDYgKzI2
LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5GbG93LmgiCisjaW5jbHVkZSAiUmVuZGVy
VHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxv
Y0lubGluZXMuaD4KIApAQCAtNzMsMTEgKzc0LDExIEBAIHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50
OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUq
CiAgICAgICAgIGJsb2NrLT5tdXRhYmxlU3R5bGUoKS5yZW1vdmVDYWNoZWRQc2V1ZG9TdHlsZShG
SVJTVF9MRVRURVIpOwogfQogCi12b2lkIFJlbmRlclRleHRGcmFnbWVudDo6d2lsbEJlRGVzdHJv
eWVkKCkKK3ZvaWQgUmVuZGVyVGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1fZmlyc3RMZXR0ZXIpCi0gICAgICAgIG1f
Zmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7Ci0gICAgUmVuZGVyVGV4
dDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOworICAgIFJlbmRlclRleHQ6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6OnNldFRleHQoY29uc3Qg
U3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQpAQCAtODcsNyArODgsMTIgQEAgdm9pZCBSZW5k
ZXJUZXh0RnJhZ21lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNl
KQogICAgIG1fZW5kID0gdGV4dCgpLmxlbmd0aCgpOwogICAgIGlmICghbV9maXJzdExldHRlcikK
ICAgICAgICAgcmV0dXJuOwotICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmRE
ZXN0cm95KCk7CisgICAgaWYgKFJlbmRlclRyZWVCdWlsZGVyOjpjdXJyZW50KCkpCisgICAgICAg
IG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCpSZW5kZXJUcmVlQnVp
bGRlcjo6Y3VycmVudCgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIg
YnVpbGRlcigqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpOworICAgICAgICBtX2ZpcnN0TGV0dGVy
LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKKyAgICB9CiAgICAgQVNTRVJU
KCFtX2ZpcnN0TGV0dGVyKTsKICAgICBBU1NFUlQoIXRleHROb2RlKCkgfHwgdGV4dE5vZGUoKS0+
cmVuZGVyZXIoKSA9PSB0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0RnJhZ21lbnQuaAppbmRleCA0N2JhMDY5YTA2ZTdkYmE3MGVmMGNjMjg2OThlYmM1MTAz
YzRiY2Y4Li5iNWQ1OWQ5YTIxMjE5ZWY3ZDEwNGM4NjYwYTdkNjczZjliMDNhZGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dEZyYWdtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5oCkBAIC02MCw3ICs2
MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9vbCBpc1RleHRGcmFnbWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxl
RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICBVQ2hhciBwcmV2aW91c0NoYXJh
Y3RlcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZGVvLmNwcAppbmRleCAwMjg5MjA1YjVlZWUxMTA1OWQ2Y2I3ZmU3NjI4Mjc1ZGFhMWZkNzFiLi42
NDEwNjUyZTA5ZThlMDY2OTQwYTYyMzRlZjU4N2UwMDliOGMyNGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTYyLDEyICs2MiwxMiBAQCBSZW5kZXJWaWRl
bzo6flJlbmRlclZpZGVvKCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBp
dCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlclZpZGVvOjp3
aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJWaWRlbzo6d2lsbEJlRGVzdHJveWVkKFJlbmRl
clRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChhdXRvIHBsYXllciA9IHZpZGVvRWxl
bWVudCgpLnBsYXllcigpKQogICAgICAgICBwbGF5ZXItPnNldFZpc2libGUoZmFsc2UpOwogCi0g
ICAgUmVuZGVyTWVkaWE6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlck1lZGlhOjp3aWxs
QmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyVmlkZW86OnZpc2libGVJblZp
ZXdwb3J0U3RhdGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgK
aW5kZXggOGUyNWM2OGE1M2Y4OWI0YTE3MGZiOTY1MWIxODdmZmI4YWMwZmFjMy4uZDIzNGY0YmY3
YTdkMTdhM2U4OTExM2YyMmQ5ZTlmMWI2NzYyM2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZGVvLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRl
RnJvbUVsZW1lbnQoKSBmaW5hbDsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3ll
ZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVy
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZWRpYUVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIAog
ICAgIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA1OTQxNmJhZGQ2N2NlZmMzMmEzNTkwZWFkZDZlYzMw
MmIxNDdjYmQ0Li5mN2I3Y2E4ZmY4MmFhODc2MGE2MTEyM2ZmYmZmN2MyNGU3ZDQ3ODgyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC02MTEsOSArNjExLDkgQEAg
Ym9vbCBSZW5kZXJWaWV3Ojppc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3QK
ICAgICByZXR1cm4gZnJhbWVWaWV3KCkuaXNTY3JvbGxhYmxlKGRlZmluZVNjcm9sbGFibGUpOwog
fQogCi12b2lkIFJlbmRlclZpZXc6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclZpZXc6
OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKLSAgICBSZW5k
ZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJsb2NrRmxvdzo6d2ls
bEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgd29ya2Fyb3Vu
ZCBmb3IgbGVmdG92ZXIgY29udGVudCAoc2VlIHdlYmtpdC5vcmcvYi8xODI1NDcpLgogICAgIGlm
IChmaXJzdENoaWxkKCkpIHsKICAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIgYnVpbGRlcigqdGhp
cyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA5YzViYjk4OTVjNTI0
NzViZTJlOThkN2MzOWIwMWU0OTAzODIxZGExLi42ZDIzZjBlMjBmZGQzZjE0MjkwYzg1MDZjZDQ0
M2UxMzYyZmQwMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIx
NCw3ICsyMTQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBpc1Njcm9sbGFibGVPclJ1YmJlcmJh
bmRhYmxlQm94KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikg
b3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRnJhbWVWaWV3JiBtX2ZyYW1lVmlldzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggYTJlY2QwODFkNzVlYWYx
NmFhYzEyNzM4OGM2NmUyMDc3MTAzMWJiYy4uNGY3MmQxNGNiN2U1ODhiNTE2ODQwOTRhNjljZTVk
MWI1ZDA2NDI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldp
ZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAK
QEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyV2lkZ2V0OjpSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3du
ZXJFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogICAgIHNldElubGluZShm
YWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyV2lkZ2V0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBS
ZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikK
IHsKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGhhc0xheWVyKCkpCkBAIC0xMDIsNyArMTAy
LDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBzZXRXaWRn
ZXQobnVsbHB0cik7CiAKLSAgICBSZW5kZXJSZXBsYWNlZDo6d2lsbEJlRGVzdHJveWVkKCk7Cisg
ICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogUmVuZGVy
V2lkZ2V0Ojp+UmVuZGVyV2lkZ2V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuaAppbmRleCA4YWUzZDJjNjViMmQ0NGU1MjYwMGEwMmM3YTYzZjczNDU0OWQxOTZjLi43OGFl
ZDNmMTJjNTk2Mzk4MDM3NWU1ZmNmOThjNzdhZTIxZDlkMjMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3Rl
ZDoKICAgICBSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3duZXJFbGVtZW50JiwgUmVuZGVyU3R5bGUm
Jik7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkg
ZmluYWw7CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50KFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCmluZGV4IGIwMTE2NzU5MTI5MTc2NGUy
MzVkMzk2NjUwYzZiOTNjNzkzZTdjNzkuLjMzNTU1NmQ0MTc4ZjcyOTU5NDcyZWU0MDg4ODA2MDQ2
ZDgzZTFiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
QmxvY2suY3BwCkBAIC03MSwxMCArNzEsMTAgQEAgdm9pZCBSZW5kZXJTVkdCbG9jazo6YWJzb2x1
dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBMYXlvdXRQb2ludCYpIGNvbnN0CiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHQmxvY2s6OndpbGxCZURl
c3Ryb3llZCgpCit2b2lkIFJlbmRlclNWR0Jsb2NrOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ry
b3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAg
ICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBS
ZW5kZXJTVkdCbG9jazo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHQmxvY2suaAppbmRleCBmZWRiYTY2ZmE0YzUwZTgwMmY0OTk0MTAwMGEzMTM0OTRk
MDNkMGJiLi5kNGU2YjEyNWUxYmQ4MjU4Mzc5OWY3NjcyMzVjMjYwZjVlNjZmOGJlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Jsb2NrLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5oCkBAIC0zNSw3ICsz
NSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIFJlbmRlclNWR0Jsb2NrKFNWR0dyYXBo
aWNzRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBv
dmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5k
ZXggOTRlZWZlODVkNWY1Nzc4ZGU3N2JmYTBmMjQ3MGNiZTk4YTYxOWNmNy4uMmQzOWViNDIyOTRk
MjI0MTdhM2ZjZWY0NjgxMGNjY2RiYWIxYzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAgLTU3LDEwICs1NywxMCBAQCBSZW5kZXJT
VkdJbWFnZTo6UmVuZGVyU1ZHSW1hZ2UoU1ZHSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJT
dHlsZSYmIHN0eWxlKQogCiBSZW5kZXJTVkdJbWFnZTo6flJlbmRlclNWR0ltYWdlKCkgPSBkZWZh
dWx0OwogCi12b2lkIFJlbmRlclNWR0ltYWdlOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5k
ZXJTVkdJbWFnZTo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQog
ewogICAgIGltYWdlUmVzb3VyY2UoKS5zaHV0ZG93bigpOwotICAgIFJlbmRlclNWR01vZGVsT2Jq
ZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJl
RGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBTVkdJbWFnZUVsZW1lbnQmIFJlbmRlclNWR0ltYWdl
OjppbWFnZUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdJbWFnZS5oCmluZGV4IGEyMjdjMTY3ZTgxNGRmOGJmNjFmZjM4MWNiYTMwMzYxNDRj
N2YyNWUuLmJjNGVkNzE4ODBlMjMwODUyYjU5MzE2MWJjYWE4YWM3MGFjNTk2MDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRGb3JlZ3JvdW5kKFBhaW50SW5mbyYpOwogCiBw
cml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
ZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXggZGRlNGZkYjAxMTE1Zjg5MDA0ZjlmZWE4
OTU3NDBlNDcwYTZhYTYzMy4uNzdmNWFkZDU2NDAzMDJhYzVlNjBhMDAwZjhiZTgxZmM3YzY0ZTEz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxp
bmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5l
LmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgdm9pZCBSZW5kZXJTVkdJbmxpbmU6OmFic29sdXRl
UXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlZCkgY28KICAgICAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHRleHRCb3VuZGlu
Z0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5nQm94LnkoKSArIGJveC0+eSgpLCBib3gt
PmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWlnaHQoKSksIFVzZVRyYW5zZm9ybXMsIHdh
c0ZpeGVkKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjp3aWxsQmVEZXN0cm95ZWQoKQor
dm9pZCBSZW5kZXJTVkdJbmxpbmU6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYg
YnVpbGRlcikKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlz
KTsKLSAgICBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlcklubGlu
ZTo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlclNWR0lubGluZTo6
c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBv
bGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5oCmluZGV4IDk3OWE4MmU4NWJhNWEwNmUyYjZjYzA4M2UyMTg3NWYyZmQ4N2Y3MDguLmIxMmM3
Zjk2NzllYjFjNGVmMTE3ZjVhMjM0ZTAzMWYzN2M3YmI1OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNTgsNyArNTgsNyBAQCBwcml2
YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGluZUZsb3dCb3g+IGNyZWF0ZUlubGluZUZs
b3dCb3goKSBmaW5hbDsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CisgICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBmaW5hbDsKICAgICB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBmaW5hbDsKIAogICAgIHZvaWQgYWRkQ2hpbGQoUmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5k
ZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IG51
bGxwdHIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA5MmFiNjUzZDczMWM2N2VlZGI4Zjc0NDllZDAz
MGUxMDMyNDMzYWU5Li4xM2UyYzg4ZjM3Y2ZiODI0YzRlMWUyNzJlZGU4ZGMzNWE5OGIwZWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVs
T2JqZWN0LmNwcApAQCAtOTIsMTAgKzkyLDEwIEBAIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBib29sKiB3YXNGaXhlCiAg
ICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1YWQoc3Ryb2tlQm91bmRpbmdCb3goKSwg
VXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKIH0KIAotdm9pZCBSZW5kZXJTVkdNb2RlbE9iamVj
dDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OndpbGxCZURl
c3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBTVkdSZXNvdXJjZXND
YWNoZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlzKTsKLSAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVE
ZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7
CiB9CiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKaW5kZXggOGUz
YTBlMTJmNTRkYWFjYjQ3NmZiMzRhOWU5OWIxNzgyNmNjMDdjOC4uODk5ZDk2OTkwZDgzNTU3MjFl
ODVmOGZjZTRiYjhkYzI0YzNlNWIwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6
CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyU1ZHTW9kZWxPYmplY3QoU1ZHRWxlbWVudCYsIFJlbmRl
clN0eWxlJiYpOwogCi0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiBwcml2
YXRlOgogICAgIGJvb2wgaXNSZW5kZXJTVkdNb2RlbE9iamVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKaW5kZXggMDE0NDk0YmZmNjQwMzljM2Fi
YjY2NDQ5ZDMzOWVlNjQ1NmFlM2ZhNS4uMjA3NDlkN2QxMzJlMmMxYzI3NGVhOWVhOGMwNTU3ZGMx
NjgwMjlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBS
ZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bGF5b3V0KCkKICAgICBSZW5kZXJTVkdIaWRkZW5D
b250YWluZXI6OmxheW91dCgpOwogfQogCi12b2lkIFJlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIFNWR1Jlc291
cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCgqdGhpcyk7CiAKQEAgLTY0LDcgKzY0LDcgQEAg
dm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAg
ICAgbV9yZWdpc3RlcmVkID0gZmFsc2U7CiAgICAgfQogCi0gICAgUmVuZGVyU1ZHSGlkZGVuQ29u
dGFpbmVyOjp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6
OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNv
bnRhaW5lcjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRl
clN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaAppbmRleCBmNjM3YjcxNGRhNWI5Yzlh
ZGI3MGU4NjFjODMwNzUzYTE3YmNjNDFjLi5iZmU0MzBkODc0YmZiMDY3ZmM0Y2UxODU5MWQwOWVi
YTAzMDkxYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCkBAIC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlQ2xp
ZW50KFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgZmluYWw7
CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBmaW5hbDsKICAg
ICB2b2lkIHJlZ2lzdGVyUmVzb3VyY2UoKTsKIAogICAgIEF0b21pY1N0cmluZyBtX2lkOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggZDBj
MTkyZDRhMjEyNGQxNmI5M2NiNzk1Njc4YjZjYTc0YThkNzI0OC4uNTY1ZGIzZTM1OTU5MzMzYWY4
MTg1Nzk0Zjk2NzA2Yjk5NGZhZWMyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC0yNzAsMTIgKzI3MCwxMiBAQCB2b2lkIFJlbmRlclNW
R1Jvb3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludAogICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQoKS5yZXN0b3JlKCk7CiB9CiAK
LXZvaWQgUmVuZGVyU1ZHUm9vdDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyU1ZHUm9v
dDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIFJl
bmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVzY2VuZGFudChjb25zdF9jYXN0PFJlbmRl
clNWR1Jvb3QmPigqdGhpcykpOwogCiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ry
b3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZCgpOworICAg
IFJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVu
ZGVyU1ZHUm9vdDo6aW5zZXJ0ZWRJbnRvVHJlZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDc4NjcwN2FiNGNjNTQ5NjBkZmVkYmFiZDdiZTFl
ZTcyMGY1YzJkY2IuLmQyMDVjYWY5MjE5MTI0MmU0YWZhZmExOWIyNjAxNDJhOWYyZDQxOGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCkBAIC03Niw3
ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKICAgICB2b2lk
IHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsK
IAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgaW5zZXJ0
ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0
LmNwcAppbmRleCBiNDMxZDZjOTFhOWYxYzg5YjMzN2JjM2M1NWM5NWY5M2ZjMzU1MWU4Li4xMDBk
YTc1MzE1M2IxMDYzYTllZDQ5NTY5NzE1NDg1NDZkZTYyODAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKQEAgLTIyNSwxMiArMjI1LDEyIEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja0xheW91dEF0dHJpYnV0ZXNDb25zaXN0ZW5jeShSZW5k
ZXJTVkdUZXh0KiB0ZXh0LCBWZWN0b3I8CiAjZW5kaWYKIH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQo
UmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNs
ZWFyKCk7CiAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVpbGRlci5jbGVhclRleHRQb3NpdGlvbmlu
Z0VsZW1lbnRzKCk7CiAKLSAgICBSZW5kZXJTVkdCbG9jazo6d2lsbEJlRGVzdHJveWVkKCk7Cisg
ICAgUmVuZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBS
ZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXaWxsQmVSZW1vdmVkKFJlbmRlck9iamVjdCogY2hp
bGQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRlcyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0
ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4
IDEyNzI5MGFmOTJlMWFjN2NkNmJiOTUxNDA3MDAwN2Q4OWZmMGQ4MmIuLmMzODc2N2EzNjI3NWNl
YmJiNTdjMzhkYTJhNWM1NTkxNWIwODM1M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgY29u
c3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJlbmRlckdlb21ldHJ5TWFwJikgY29uc3Qg
b3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0
cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0
cikgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gdGFrZUNoaWxkKFJlbmRl
clRyZWVCdWlsZGVyJiwgUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsQmVE
ZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVl
QnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRv
UGFyZW50VHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sb2NhbFRyYW5zZm9y
bTsgfQogICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDRkMDVkMzcx
OGRkN2UwNGRhM2Q4M2U4YjgxYTQwYmEzOWVjN2NlMzcuLjEwMjRjZDlmMWZhZGFiZDUxYjgzOWY1
ZDI5MWFmNmY1NjIwYzM1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAtMzg1LDcgKzM4NSw3IEBAIHZv
aWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95Q2xlYW5pbmdV
cEFub255bW91c1dyYXBwZXJzKFJlCiB7CiAgICAgLy8gSWYgdGhlIHRyZWUgaXMgZGVzdHJveWVk
LCB0aGVyZSBpcyBubyBuZWVkIGZvciBhIGNsZWFuLXVwIHBoYXNlLgogICAgIGlmIChjaGlsZC5y
ZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkgewotICAgICAgICBjaGlsZC5yZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgICAgICBjaGlsZC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJv
eSgqdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlckxpc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAK
aW5kZXggYjAwOGM1YTZlYjZiZjUwZDA2MWQ0YTU2MTc0ZWJmMjA1YzM5YWYxOC4uM2MxOTZjNjNi
MzFhMzNiMWQ0OWU4NDAzMzEyZDdjYzgwOTQ2Y2JlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHAK
QEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRl
bU1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW1SZW5kZXJlcikKIAogICAgIGlmIChzdHls
ZS5saXN0U3R5bGVUeXBlKCkgPT0gTm9uZUxpc3RTdHlsZSAmJiAoIXN0eWxlLmxpc3RTdHlsZUlt
YWdlKCkgfHwgc3R5bGUubGlzdFN0eWxlSW1hZ2UoKS0+ZXJyb3JPY2N1cnJlZCgpKSkgewogICAg
ICAgICBpZiAoYXV0byogbWFya2VyID0gbGlzdEl0ZW1SZW5kZXJlci5tYXJrZXJSZW5kZXJlcigp
KQotICAgICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAg
ICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShtX2J1aWxkZXIpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjEsNyArMTIxLDcgQEAgdm9pZCBSZW5kZXJU
cmVlQnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0
ZW1SZW5kZXJlcikKIAogICAgIC8vIElmIGN1cnJlbnQgcGFyZW50IGlzIGFuIGFub255bW91cyBi
bG9jayB0aGF0IGhhcyBsb3N0IGFsbCBpdHMgY2hpbGRyZW4sIGRlc3Ryb3kgaXQuCiAgICAgaWYg
KGN1cnJlbnRQYXJlbnQgJiYgY3VycmVudFBhcmVudC0+aXNBbm9ueW1vdXNCbG9jaygpICYmICFj
dXJyZW50UGFyZW50LT5maXJzdENoaWxkKCkgJiYgIWRvd25jYXN0PFJlbmRlckJsb2NrPigqY3Vy
cmVudFBhcmVudCkuY29udGludWF0aW9uKCkpCi0gICAgICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92
ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KG1fYnVpbGRlcik7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRl
ck11bHRpQ29sdW1uLmNwcAppbmRleCBkN2ZjMzQ5MDljZDZlYWEyZWJhOWU1ZTE5YmRlNWE0MDUz
ZWYxZDEwLi45OGYzNDI3OGE0Njk0YmMxMjhmZGJhYzkwNDg2YzA0NzgyZTg2MzUwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJN
dWx0aUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCkBAIC0yMTEsMTEgKzIxMSwxMSBAQCB2b2lk
IFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6ZGVzdHJveUZyYWdtZW50ZWRGbG93KFJl
bmRlckJsb2NrRmxvdyYgZmxvdwogICAgICAgICBwYXJlbnRBbmRTcGFubmVyTGlzdC5hcHBlbmQo
c3RkOjptYWtlX3BhaXIoc3Bhbm5lck9yaWdpbmFsUGFyZW50LCBzcGFubmVyLT5wYXJlbnQoKS0+
dGFrZUNoaWxkKG1fYnVpbGRlciwgKnNwYW5uZXIpKSk7CiAgICAgfQogICAgIHdoaWxlIChhdXRv
KiBjb2x1bW5TZXQgPSBtdWx0aUNvbHVtbkZsb3cuZmlyc3RNdWx0aUNvbHVtblNldCgpKQotICAg
ICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIGNv
bHVtblNldC0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kobV9idWlsZGVyKTsKIAogICAgIGZs
b3cuY2xlYXJNdWx0aUNvbHVtbkZsb3coKTsKICAgICBtdWx0aUNvbHVtbkZsb3cubW92ZUFsbENo
aWxkcmVuVG8obV9idWlsZGVyLCAmZmxvdywgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwotICAgIG11bHRpQ29sdW1uRmxvdy5yZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgIG11bHRpQ29sdW1uRmxvdy5yZW1vdmVGcm9tUGFyZW50QW5k
RGVzdHJveShtX2J1aWxkZXIpOwogICAgIGZvciAoYXV0byYgcGFyZW50QW5kU3Bhbm5lciA6IHBh
cmVudEFuZFNwYW5uZXJMaXN0KQogICAgICAgICBtX2J1aWxkZXIuaW5zZXJ0Q2hpbGQoKnBhcmVu
dEFuZFNwYW5uZXIuZmlyc3QsIFdURk1vdmUocGFyZW50QW5kU3Bhbm5lci5zZWNvbmQpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVl
QnVpbGRlclJ1YnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyUnVieS5jcHAKaW5kZXggNDA3YjhjZjA5YWEyOWM4ZGZkMDU3MjJjYTc1YTll
ZTEzZWQ4ZDdmMi4uODU0NGQ4NjA5NmUzYWZiN2U5NDFkM2EyNGQzMTI3M2Q1ODA2ZDY3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWls
ZGVyUnVieS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVCdWlsZGVyUnVieS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFJlbmRlclRyZWVC
dWlsZGVyOjpSdWJ5Ojptb3ZlQmxvY2tDaGlsZHJlbihSZW5kZXJSdWJ5QmFzZSYgZnJvbSwgUmVu
ZGVyUnVieQogICAgICAgICBhdXRvKiBhbm9uQmxvY2tUaGVyZSA9IGRvd25jYXN0PFJlbmRlckJs
b2NrPihsYXN0Q2hpbGRUaGVyZSk7CiAgICAgICAgIGFub25CbG9ja0hlcmUtPm1vdmVBbGxDaGls
ZHJlblRvKG1fYnVpbGRlciwgYW5vbkJsb2NrVGhlcmUsIFJlbmRlckJveE1vZGVsT2JqZWN0OjpO
b3JtYWxpemVBZnRlckluc2VydGlvbjo6WWVzKTsKICAgICAgICAgYW5vbkJsb2NrSGVyZS0+ZGVs
ZXRlTGluZXMoKTsKLSAgICAgICAgYW5vbkJsb2NrSGVyZS0+cmVtb3ZlRnJvbVBhcmVudEFuZERl
c3Ryb3koKTsKKyAgICAgICAgYW5vbkJsb2NrSGVyZS0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ry
b3kobV9idWlsZGVyKTsKICAgICB9CiAgICAgLy8gTW92ZSBhbGwgcmVtYWluaW5nIGNoaWxkcmVu
IG5vcm1hbGx5LgogICAgIGZyb20ubW92ZUNoaWxkcmVuVG8obV9idWlsZGVyLCAmdG8sIGZyb20u
Zmlyc3RDaGlsZCgpLCBiZWZvcmVDaGlsZCwgUmVuZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6
ZUFmdGVySW5zZXJ0aW9uOjpObyk7Cg==
</data>
<flag name="review"
          id="352386"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333505</attachid>
            <date>2018-02-09 11:49:30 -0800</date>
            <delta_ts>2018-02-09 12:51:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182635-20180209114929.patch</filename>
            <type>text/plain</type>
            <size>68898</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4MzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2M3NWE2ZGVhNDlkZDNk
NTk4YmQyZmRjNjViOTU5Zjk4OTJjNDZjNy4uYjJlNDkyMTEwODJhMjI2Mjk5ZDVlMjM0OTkyMTFm
YzQwODkwMmIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0MSBAQAorMjAxOC0wMi0wOSAgWmFs
YW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAgICAgIFtSZW5kZXJUcmVlQnVpbGRl
cl0gSW50cm9kdWNlIFJlbmRlclRyZWVCdWlsZGVyIHRvIHdpbGxCZURlc3RvcnllZC9yZW1vdmVG
cm9tUGFyZW50QW5kRGVzdHJveQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyNjM1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNzM3NzQ4OT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAgICAgICBUaGlzIHBhdGNo
IGhlbHBzIGZpbmRpbmcgY2FsbHNpdGVzIHdoZXJlIHdlIGRvbid0IGhhdmUgYSBSZW5kZXJUcmVl
QnVpbGRlciBpbnN0YW5jZS4KKworICAgICAgICBObyBjaGFuZ2UgaW4gZnVuY3Rpb25hbGl0eS4K
KworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2V0RnVsbFNjcmVlblJlbmRlcmVyKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6dGFrZUNoaWxkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9i
amVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJl
RGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpyZW1v
dmVBbmREZXN0cm95QWxsQ29udGludWF0aW9ucyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJveE1vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCdXR0b246OnNldFRleHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckNvdW50
ZXI6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJFbGVtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVE
ZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGcmFnbWVudGVkRmxvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRnVsbFNjcmVlbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGdWxsU2NyZWVu
Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRnVsbFNjcmVlbjo6
d3JhcE5ld1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZ1bGxTY3JlZW46Ondy
YXBFeGlzdGluZ1JlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZ1bGxTY3JlZW46
OnVud3JhcFJlbmRlcmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJJbWFnZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcklubGluZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVySW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJNb2RlbE9iamVj
dDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxpc3RCb3g6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlz
dEl0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEl0ZW06OndpbGxCZURlc3Ry
b3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxpc3RNYXJrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGlzdE1hcmtlcjo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGlzdE1hcmtlci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTXVsdGlDb2x1bW5GbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uRmxvdzo6aGFuZGxlU3Bhbm5lclJlbW92YWwpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZW1vdmVGcm9t
UGFyZW50QW5kRGVzdHJveSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OndpbGxC
ZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmRlc3Ryb3kpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6Ondp
bGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyUnVieUFzSW5saW5lOjp0YWtlQ2hpbGQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUnVi
eUFzQmxvY2s6OnRha2VDaGlsZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp3aWxsQmVEZXN0
cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5oOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbjo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Ojp3aWxsQmVE
ZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Lmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRleHRDb250cm9sTXVsdGlMaW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dEZyYWdtZW50Ojp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGV4dEZyYWdtZW50OjpzZXRUZXh0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dEZy
YWdtZW50Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZGVvOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJWaWRlby5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcldpZGdldDo6d2lsbEJlRGVzdHJveWVk
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyV2lkZ2V0Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdC
bG9jazo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0Jsb2NrLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdJbWFnZTo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ltYWdlLmg6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5s
aW5lOjp3aWxsQmVEZXN0cm95ZWQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6d2lsbEJlRGVzdHJv
eWVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVy
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1RleHQ6OndpbGxCZURl
c3Ryb3llZCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0Lmg6CisgICAg
ICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRyZWVCdWlsZGVyOjpyZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveUNs
ZWFuaW5nVXBBbm9ueW1vdXNXcmFwcGVycyk6CisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5n
L1JlbmRlclRyZWVCdWlsZGVyTGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUcmVl
QnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtlcik6CisgICAgICAgICogcmVuZGVyaW5nL3Vw
ZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVHJlZUJ1aWxkZXI6Ok11bHRpQ29sdW1uOjpkZXN0cm95RnJhZ21lbnRlZEZsb3cp
OgorICAgICAgICAqIHJlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlclJ1YnkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6Om1vdmVCbG9ja0No
aWxkcmVuKToKKwogMjAxOC0wMi0wOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNv
bT4KIAogICAgICAgICBbbWFjT1MsIGlPU10gRXhwb3NlIE9TIG1hcmtldGluZyB2ZXJzaW9uIGlu
IFVzZXJBZ2VudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZGY3NzZhMzk4ZDY2OWE0Y2Mx
NGZkY2QzY2RkMjRjODgxZTZiNGEzMC4uNTkwODJjZmE0Y2E4OWViNDc0ZjAzMjMzMzEzZmQzNzQ0
YzU2ZjU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02Mjk3LDcgKzYyOTcsNyBAQCB2
b2lkIERvY3VtZW50Ojp3ZWJraXREaWRFeGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCop
CiAgICAgZXhpdGluZ0RvY3VtZW50Lm1fZnVsbFNjcmVlbkNoYW5nZURlbGF5VGltZXIuc3RhcnRP
bmVTaG90KDBfcyk7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnNldEZ1bGxTY3JlZW5SZW5kZXJlcihS
ZW5kZXJGdWxsU2NyZWVuKiByZW5kZXJlcikKK3ZvaWQgRG9jdW1lbnQ6OnNldEZ1bGxTY3JlZW5S
ZW5kZXJlcihSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGVyRnVsbFNjcmVlbiogcmVu
ZGVyZXIpCiB7CiAgICAgaWYgKHJlbmRlcmVyID09IG1fZnVsbFNjcmVlblJlbmRlcmVyKQogICAg
ICAgICByZXR1cm47CkBAIC02MzEyLDcgKzYzMTIsNyBAQCB2b2lkIERvY3VtZW50OjpzZXRGdWxs
U2NyZWVuUmVuZGVyZXIoUmVuZGVyRnVsbFNjcmVlbiogcmVuZGVyZXIpCiAgICAgfQogCiAgICAg
aWYgKG1fZnVsbFNjcmVlblJlbmRlcmVyKQotICAgICAgICBtX2Z1bGxTY3JlZW5SZW5kZXJlci0+
cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAgICAgbV9mdWxsU2NyZWVuUmVuZGVy
ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgIEFTU0VSVCghbV9m
dWxsU2NyZWVuUmVuZGVyZXIpOwogCiAgICAgbV9mdWxsU2NyZWVuUmVuZGVyZXIgPSBtYWtlV2Vh
a1B0cihyZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGZkNmU2YTE3OWE2OGIzZWU2
NTBhY2JlOTgzYTUxYzViN2U2OWJiNDQuLjZiMWI2ZjgxNjliNjBiNWQxZjRlYmFiM2E3MGIwMzY2
ZjE1N2ExM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0xNTIsNiArMTUyLDcgQEAgY2xhc3Mg
UHJvY2Vzc2luZ0luc3RydWN0aW9uOwogY2xhc3MgUXVhbGlmaWVkTmFtZTsKIGNsYXNzIFJhbmdl
OwogY2xhc3MgUmVuZGVyRnVsbFNjcmVlbjsKK2NsYXNzIFJlbmRlclRyZWVCdWlsZGVyOwogY2xh
c3MgUmVuZGVyVmlldzsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xh
c3MgU1ZHRG9jdW1lbnRFeHRlbnNpb25zOwpAQCAtMTEzMCw3ICsxMTMxLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgd2Via2l0V2lsbEV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChFbGVtZW50Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3ZWJraXREaWRFeGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoRWxlbWVudCopOwogICAgIAotICAgIHZvaWQgc2V0RnVsbFNjcmVlblJl
bmRlcmVyKFJlbmRlckZ1bGxTY3JlZW4qKTsKKyAgICB2b2lkIHNldEZ1bGxTY3JlZW5SZW5kZXJl
cihSZW5kZXJUcmVlQnVpbGRlciYsIFJlbmRlckZ1bGxTY3JlZW4qKTsKICAgICBSZW5kZXJGdWxs
U2NyZWVuKiBmdWxsU2NyZWVuUmVuZGVyZXIoKSBjb25zdCB7IHJldHVybiBtX2Z1bGxTY3JlZW5S
ZW5kZXJlci5nZXQoKTsgfQogCiAgICAgdm9pZCBmdWxsU2NyZWVuQ2hhbmdlRGVsYXlUaW1lckZp
cmVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBjNzFm
YjU0ZjUxMTNlZDM1YTlkOWUzZTA0M2M1ZjgzYmUwMTA5NzFmLi5mYjkxOThlYjhmN2U4MGVhN2Zh
NzgyYzU0YzAwYTE1MzQ0MDlhYzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKQEAgLTM0Myw3ICszNDMsNyBAQCBSZW5kZXJCbG9jazo6flJlbmRlckJsb2NrKCkK
IH0KIAogLy8gTm90ZSB0aGF0IHRoaXMgaXMgbm90IGNhbGxlZCBmb3IgUmVuZGVyQmxvY2tGbG93
cy4KLXZvaWQgUmVuZGVyQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckJsb2Nr
Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYg
KCFyZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkgewogICAgICAgICBpZiAocGFyZW50KCkpCkBA
IC0zNTIsNyArMzUyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6d2lsbEJlRGVzdHJveWVkKCkKIAog
ICAgIGJsb2NrV2lsbEJlRGVzdHJveWVkKCk7CiAKLSAgICBSZW5kZXJCb3g6OndpbGxCZURlc3Ry
b3llZCgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiB2
b2lkIFJlbmRlckJsb2NrOjpibG9ja1dpbGxCZURlc3Ryb3llZCgpCkBAIC01NzgsNyArNTc4LDcg
QEAgUmVuZGVyUHRyPFJlbmRlck9iamVjdD4gUmVuZGVyQmxvY2s6OnRha2VDaGlsZChSZW5kZXJU
cmVlQnVpbGRlciYgYnVpbGRlciwgUmVuZGUKICAgICAgICAgICAgIAogICAgICAgICAgICAgLy8g
RGVsZXRlIHRoZSBub3ctZW1wdHkgYmxvY2sncyBsaW5lcyBhbmQgbnVrZSBpdC4KICAgICAgICAg
ICAgIG5leHRCbG9jay5kZWxldGVMaW5lcygpOwotICAgICAgICAgICAgbmV4dEJsb2NrLnJlbW92
ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgICAgICBuZXh0QmxvY2sucmVtb3ZlRnJv
bVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiAgICAgICAgICAgICBuZXh0ID0gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5k
ZXggYTE4M2RjY2ZhZmQxZjlkMGEzZTUxYTMzNjQ4MjQ5OTkwMzVjNjM4My4uYzNmNTQ1OWMwZDYz
ZmNhYjY2OGYyYzA3MTJhNjQ2Yzg2YWUzZjVjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6CiAgICAgCiBwcm90ZWN0ZWQ6
CiAgICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGxvY2F0ZUVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93
KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsK
KyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAyNWM0MDRlMDE3MDU2OTc4NzdmYWM1OTJmYzAy
OGEyMWM5OTg0MjIzLi4yYTBjMGI1MzUyZTJkZTU5YmM0MmNmNGE0NGVjZTc0OTUxMzUxMjhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMTI3
LDcgKzEyNyw3IEBAIFJlbmRlckJsb2NrRmxvdzo6flJlbmRlckJsb2NrRmxvdygpCiAgICAgLy8g
RG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5z
dGVhZC4KIH0KIAotdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpCit2b2lk
IFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWls
ZGVyKQogewogICAgIGlmICghcmVuZGVyVHJlZUJlaW5nRGVzdHJveWVkKCkpIHsKICAgICAgICAg
aWYgKGZpcnN0Um9vdEJveCgpKSB7CkBAIC0xNTQsNyArMTU0LDcgQEAgdm9pZCBSZW5kZXJCbG9j
a0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgYmxvY2tXaWxsQmVEZXN0cm95ZWQoKTsKIAog
ICAgIC8vIE5PVEU6IFRoaXMganVtcHMgZG93biB0byBSZW5kZXJCb3gsIGJ5cGFzc2luZyBSZW5k
ZXJCbG9jayBzaW5jZSBpdCB3b3VsZCBkbyBkdXBsaWNhdGUgd29yay4KLSAgICBSZW5kZXJCb3g6
OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxk
ZXIpOwogfQogCiBSZW5kZXJCbG9ja0Zsb3cqIFJlbmRlckJsb2NrRmxvdzo6cHJldmlvdXNTaWJs
aW5nV2l0aE92ZXJoYW5naW5nRmxvYXRzKGJvb2wmIHBhcmVudEhhc0Zsb2F0cykgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRleCA5YmM2YjAwZTYx
NzhmMjRjNGRlY2U0YTg3OTk2YTk1NGE3N2U3NTljLi41MjA3OGI5NjI2NTVmMTc3MjAxYWUwMjk2
ZjJlNjkzNTA0YmNhMTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxheW91dEJsb2NrKGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEhlaWdodCA9IDApIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRl
OwogICAgIAogICAgIC8vIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdCB0aGUgc3RhcnQgb2YgbGF5
b3V0IHRvIHdpcGUgYXdheSBhbGwgb2YgdGhlIGZsb2F0cyBpbiBvdXIgZmxvYXRpbmcgb2JqZWN0
cyBsaXN0LiBJdCBhbHNvCiAgICAgLy8gcmVwb3B1bGF0ZXMgdGhlIGxpc3Qgd2l0aCBhbnkgZmxv
YXRzIHRoYXQgaW50cnVkZSBmcm9tIHByZXZpb3VzIHNpYmxpbmdzIG9yIHBhcmVudHMuIEZsb2F0
cyB0aGF0IHdlcmUgYWRkZWQgYnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAK
aW5kZXggYTBlNTA0ZDFkZTRkZjhjY2M5OGVkODVmYWNkYmRhY2Y1NDViN2M0Ny4uYzZkOGRjMTc2
NDQxZjJjODcwYmI0YzczNzE5YzQxNTcxZWE5OWY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKQEAgLTE1MCw3ICsxNTAsNyBAQCBSZW5kZXJCb3g6On5SZW5kZXJCb3go
KQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ry
b3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKQor
dm9pZCBSZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRl
cikKIHsKICAgICBpZiAoZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5hdXRvc2Nyb2xsUmVuZGVyZXIo
KSA9PSB0aGlzKQogICAgICAgICBmcmFtZSgpLmV2ZW50SGFuZGxlcigpLnN0b3BBdXRvc2Nyb2xs
VGltZXIodHJ1ZSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBSZW5kZXJCb3g6OndpbGxCZURl
c3Ryb3llZCgpCiAgICAgICAgIHZpZXcoKS51bnJlZ2lzdGVyQm94V2l0aFNjcm9sbFNuYXBQb3Np
dGlvbnMoKnRoaXMpOwogI2VuZGlmCiAKLSAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJl
RGVzdHJveWVkKCk7CisgICAgUmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZChi
dWlsZGVyKTsKIH0KIAogUmVuZGVyRnJhZ21lbnRDb250YWluZXIqIFJlbmRlckJveDo6Y2xhbXBU
b1N0YXJ0QW5kRW5kRnJhZ21lbnRzKFJlbmRlckZyYWdtZW50Q29udGFpbmVyKiBmcmFnbWVudCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAppbmRleCBhZDQ0OTFiZDdjYWRh
NDMwNmE1ZTQxMTI0MTk0YzJiYmIyNjIxNDFlLi4xN2U2OTRlZjVjNzAwOGU3YjExMWE0MThlM2Yx
NzZiNmM3ZmJhYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCkBAIC02MzEs
NyArNjMxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogICAgIHZvaWQg
dXBkYXRlRnJvbVN0eWxlKCkgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikg
b3ZlcnJpZGU7CiAKICAgICBib29sIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0
LmNwcAppbmRleCBhODE4NmVmOTY3YjU1ZmE4OTMzMmFmM2EzZTJhZDBiM2I0Yzg4ZTg2Li5lMmQ2
M2E5ZjMxYTJjZjhlYzUzNDMyNDQ1N2QzN2E1ZDE1N2RhZjI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKQEAgLTIzNywxMCArMjM3
LDEwIEBAIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp+UmVuZGVyQm94TW9kZWxPYmplY3QoKQogICAg
IC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgp
IGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyQm94TW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3ll
ZCgpCit2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKGNvbnRpbnVhdGlvbigpICYmICFpc0NvbnRp
bnVhdGlvbigpKSB7Ci0gICAgICAgIHJlbW92ZUFuZERlc3Ryb3lBbGxDb250aW51YXRpb25zKCk7
CisgICAgICAgIHJlbW92ZUFuZERlc3Ryb3lBbGxDb250aW51YXRpb25zKGJ1aWxkZXIpOwogICAg
ICAgICBBU1NFUlQoIWNvbnRpbnVhdGlvbigpKTsKICAgICB9CiAgICAgaWYgKGhhc0NvbnRpbnVh
dGlvbkNoYWluTm9kZSgpKQpAQCAtMjUyLDcgKzI1Miw3IEBAIHZvaWQgUmVuZGVyQm94TW9kZWxP
YmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCiAgICAgaWYgKCFyZW5kZXJUcmVlQmVpbmdEZXN0cm95
ZWQoKSkKICAgICAgICAgdmlldygpLmltYWdlUXVhbGl0eUNvbnRyb2xsZXIoKS5yZW5kZXJlcldp
bGxCZURlc3Ryb3llZCgqdGhpcyk7CiAKLSAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxs
QmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQoYnVpbGRlcik7CiB9CiAKIGJvb2wgUmVuZGVyQm94TW9kZWxPYmplY3Q6Omhhc1Zpc2libGVC
b3hEZWNvcmF0aW9uU3R5bGUoKSBjb25zdApAQCAtMjU1MSwxNCArMjU1MSwxNCBAQCBhdXRvIFJl
bmRlckJveE1vZGVsT2JqZWN0OjplbnN1cmVDb250aW51YXRpb25DaGFpbk5vZGUoKSAtPiBDb250
aW51YXRpb25DaGFpbk5vZAogICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKIH0KIAotdm9pZCBSZW5k
ZXJCb3hNb2RlbE9iamVjdDo6cmVtb3ZlQW5kRGVzdHJveUFsbENvbnRpbnVhdGlvbnMoKQordm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cmVtb3ZlQW5kRGVzdHJveUFsbENvbnRpbnVhdGlvbnMo
UmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgQVNTRVJUKCFpc0NvbnRpbnVhdGlv
bigpKTsKICAgICBBU1NFUlQoaGFzQ29udGludWF0aW9uQ2hhaW5Ob2RlKCkpOwogICAgIEFTU0VS
VChjb250aW51YXRpb25DaGFpbk5vZGVNYXAoKS5jb250YWlucyh0aGlzKSk7CiAgICAgYXV0byYg
Y29udGludWF0aW9uQ2hhaW5Ob2RlID0gKmNvbnRpbnVhdGlvbkNoYWluTm9kZU1hcCgpLmdldCh0
aGlzKTsKICAgICB3aGlsZSAoY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQpCi0gICAgICAgIGNv
bnRpbnVhdGlvbkNoYWluTm9kZS5uZXh0LT5yZW5kZXJlci0+cmVtb3ZlRnJvbVBhcmVudEFuZERl
c3Ryb3koKTsKKyAgICAgICAgY29udGludWF0aW9uQ2hhaW5Ob2RlLm5leHQtPnJlbmRlcmVyLT5y
ZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKICAgICByZW1vdmVGcm9tQ29udGlu
dWF0aW9uQ2hhaW4oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94TW9kZWxPYmplY3QuaAppbmRleCA3YmU4YjJiYWUyOTY1MzRhYTY5ZWUyZWE0ZTgzMGRlM2Jl
YmM2ZjRkLi5lZTg0MGNiMDc0NDUxMGNhNjQxMDQ3YjFhNThhMDVkNDI3ZTBhODQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaApAQCAtMjQ1
LDcgKzI0NSw3IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJCb3hNb2RlbE9iamVjdChFbGVtZW50
JiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyk7CiAgICAgUmVuZGVyQm94TW9kZWxPYmpl
Y3QoRG9jdW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKIAotICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVu
ZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIExheW91dFBvaW50IGFkanVzdGVkUG9z
aXRpb25SZWxhdGl2ZVRvT2Zmc2V0UGFyZW50KGNvbnN0IExheW91dFBvaW50JikgY29uc3Q7CiAK
QEAgLTMwOCw3ICszMDgsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQ29udGludWF0aW9u
Q2hhaW5Ob2RlJiBlbnN1cmVDb250aW51YXRpb25DaGFpbk5vZGUoKTsKLSAgICB2b2lkIHJlbW92
ZUFuZERlc3Ryb3lBbGxDb250aW51YXRpb25zKCk7CisgICAgdm9pZCByZW1vdmVBbmREZXN0cm95
QWxsQ29udGludWF0aW9ucyhSZW5kZXJUcmVlQnVpbGRlciYpOwogCiAgICAgTGF5b3V0VW5pdCBj
b21wdXRlZENTU1BhZGRpbmcoY29uc3QgTGVuZ3RoJikgY29uc3Q7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCmluZGV4IDY1YWQzNGMxMjI2MTNkOWEwNjcw
NmUyYTAyNDlhNDk4ZjkxZGE4N2YuLmVkOGExZWI1OTExNGI3M2Q0YjMyZDg2ZjU5NDVlNjYxYTI5
M2M4YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uY3BwCkBAIC0x
MjgsNyArMTI4LDEyIEBAIHZvaWQgUmVuZGVyQnV0dG9uOjpzZXRUZXh0KGNvbnN0IFN0cmluZyYg
c3RyKQogICAgICAgICBtX2J1dHRvblRleHQtPnNldFRleHQoc3RyLmltcGwoKSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgbV9idXR0b25UZXh0LT5yZW1vdmVGcm9tUGFyZW50QW5kRGVz
dHJveSgpOworICAgIGlmIChSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpKQorICAgICAgICBt
X2J1dHRvblRleHQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCpSZW5kZXJUcmVlQnVpbGRl
cjo6Y3VycmVudCgpKTsKKyAgICBlbHNlIHsKKyAgICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIgYnVp
bGRlcigqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkpOworICAgICAgICBtX2J1dHRvblRleHQtPnJl
bW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOworICAgIH0KIH0KIAogU3RyaW5nIFJl
bmRlckJ1dHRvbjo6dGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQ291bnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Q291bnRlci5jcHAKaW5kZXggM2YxNGU2OTFlOGU0ZWNkNDQ2MjY5OGYxNDU5NzU1OTViNjAwMmMz
Yi4uNTY1MWFmNDViY2Y1ZDQ2NmY4Yzc3YzA5OWJmZWMxYjFjMjQ2NjNjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJDb3VudGVyLmNwcApAQCAtMzUyLDcgKzM1Miw3IEBAIFJl
bmRlckNvdW50ZXI6On5SZW5kZXJDb3VudGVyKCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2Rl
IGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJl
bmRlckNvdW50ZXI6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckNvdW50ZXI6OndpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICB2aWV3KCkucmVt
b3ZlUmVuZGVyQ291bnRlcigpOwogCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBSZW5kZXJDb3Vu
dGVyOjp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICBBU1NFUlQoIW1fY291bnRlck5vZGUpOwog
ICAgIH0KICAgICAKLSAgICBSZW5kZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5k
ZXJUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIGNvbnN0IGNoYXIqIFJlbmRl
ckNvdW50ZXI6OnJlbmRlck5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJDb3VudGVyLmgKaW5kZXggOGE5MDIwMmQ0NTA5NjFhMTU4NzExNDkxZDU3MDU1NjJlODU0OGI5
NC4uZGI0ZGY3YjBlNjRlNTIxYmE2ZWFlOWZjZWI4MWM0YjZjMjgyZmVmOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvdW50ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQ291bnRlci5oCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHVwZGF0ZUNvdW50ZXIoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJikgb3ZlcnJpZGU7CiAgICAgCiAgICAgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNDb3VudGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggYjc0MGQ5ODIxODk1
YTIyZGE0ZDIyODJkODU0ZWY5ODA2ZTllZTdmOC4uZTI4MTU1ZDA1Y2Q3Njk3MzAyZDUzODViZTFj
MmVmZTA2MzlmYzU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50
LmNwcApAQCAtMTA1MCw3ICsxMDUwLDcgQEAgaW5saW5lIHZvaWQgUmVuZGVyRWxlbWVudDo6Y2xl
YXJTdWJ0cmVlTGF5b3V0Um9vdElmTmVlZGVkKCkgY29uc3QKICAgICB2aWV3KCkuZnJhbWVWaWV3
KCkubGF5b3V0Q29udGV4dCgpLmNsZWFyU3VidHJlZUxheW91dFJvb3QoKTsKIH0KIAotdm9pZCBS
ZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJFbGVtZW50Ojp3aWxs
QmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1fc3R5
bGUuaGFzRml4ZWRCYWNrZ3JvdW5kSW1hZ2UoKSAmJiAhc2V0dGluZ3MoKS5maXhlZEJhY2tncm91
bmRzUGFpbnRSZWxhdGl2ZVRvRG9jdW1lbnQoKSkKICAgICAgICAgdmlldygpLmZyYW1lVmlldygp
LnJlbW92ZVNsb3dSZXBhaW50T2JqZWN0KCp0aGlzKTsKQEAgLTEwNjAsNyArMTA2MCw3IEBAIHZv
aWQgUmVuZGVyRWxlbWVudDo6d2lsbEJlRGVzdHJveWVkKCkKICAgICBpZiAoaGFzQ291bnRlck5v
ZGVNYXAoKSkKICAgICAgICAgUmVuZGVyQ291bnRlcjo6ZGVzdHJveUNvdW50ZXJOb2RlcygqdGhp
cyk7CiAKLSAgICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlck9i
amVjdDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogCiAgICAgY2xlYXJTdWJ0cmVlTGF5b3V0
Um9vdElmTmVlZGVkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5o
CmluZGV4IGNlYWI3Yzg5NjYxZGM5NWZmY2RhNTlkZTJiMDhjOWQyMWI5ZjllYTUuLmFmZWE1MTIw
M2I5ZTY1MmFiMGI4NzJlMGMyNTRlYzI3MmQzYmVmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckVsZW1lbnQuaApAQCAtMjYwLDcgKzI2MCw3IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgd2lsbEJlUmVtb3Zl
ZEZyb21UcmVlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRl
OwogCiAgICAgdm9pZCBzZXRSZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzKGJvb2wg
YikgeyBtX3JlbmRlcklubGluZUFsd2F5c0NyZWF0ZXNMaW5lQm94ZXMgPSBiOyB9CiAgICAgYm9v
bCByZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzKCkgY29uc3QgeyByZXR1cm4gbV9y
ZW5kZXJJbmxpbmVBbHdheXNDcmVhdGVzTGluZUJveGVzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAwMDBhMDg5ODRjMTQ4
M2VmOTExMjFmZDg5YWExZjQxZDc2NzE1OTViLi5mODg2OWRiOWVlY2RiNDdiNzVjNGZhMzJmOTdl
NjlhYjg2NDljYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKQEAgLTExMywxMCArMTEzLDEwIEBAIFJlbmRlckVtYmVkZGVkT2Jq
ZWN0Ojp+UmVuZGVyRW1iZWRkZWRPYmplY3QoKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUg
aGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckVtYmVkZGVk
T2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZUVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoKnRoaXMp
OwotICAgIFJlbmRlcldpZGdldDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyV2lkZ2V0
Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIFJlbmRlclB0cjxSZW5kZXJFbWJlZGRl
ZE9iamVjdD4gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OmNyZWF0ZUZvckFwcGxldChIVE1MQXBwbGV0
RWxlbWVudCYgYXBwbGV0LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuaAppbmRleCBlYWFiNzg2ZjFkNDQ4NzA0
NWQ2NzZlYWY3ZjkwMGE1MWJhZjEwYzg3Li41MGY1NzZmMDdhYmE5ZDBkNjczMTRiMzI4ZDM4Yzcy
OWE0NGE5MjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuaApAQCAtNjYsNyArNjYsNyBAQCBwcm90ZWN0ZWQ6CiAKIHByb3RlY3RlZDoKICAg
ICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVy
cmlkZTsKIAogcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIlJlbmRlckVtYmVkZGVkT2JqZWN0IjsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFnbWVudGVkRmxvdy5jcHAKaW5kZXggZjVhOWI4ZDIz
YzJjOTA0ZWNlYjA3MTIxN2Q1ZDY0ODI0NDNmYjkwMS4uODIwOWFkZjBiZjAxZjY4YTUxMWYxNTYx
OWRhNzQyMDc1ZDUwY2UyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZyYWdtZW50ZWRGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhZ21lbnRlZEZsb3cuY3BwCkBAIC03NjMsMTAgKzc2MywxMCBAQCB2b2lkIFJlbmRlckZy
YWdtZW50ZWRGbG93OjpkZWxldGVMaW5lcygpCiAgICAgUmVuZGVyQmxvY2tGbG93OjpkZWxldGVM
aW5lcygpOwogfQogCi12b2lkIFJlbmRlckZyYWdtZW50ZWRGbG93Ojp3aWxsQmVEZXN0cm95ZWQo
KQordm9pZCBSZW5kZXJGcmFnbWVudGVkRmxvdzo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJiBidWlsZGVyKQogewogICAgIGNsZWFyTGluZXNUb0ZyYWdtZW50TWFwKCk7Ci0gICAg
UmVuZGVyQmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6
OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJGcmFnbWVudGVkRmxv
dzo6bWFya0ZyYWdtZW50c0Zvck92ZXJmbG93TGF5b3V0SWZOZWVkZWQoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYWdtZW50ZWRGbG93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhZ21lbnRlZEZsb3cuaAppbmRleCAxZWFjOTc4ZmVh
YTllM2M3NmFiMmJlZWUwYzU5ZjA3ZWZmNjA2YTlkLi45Y2YyM2JjYzhlNGQ0MzQ0ZjUwODcxMzdm
YmRmMzhkZjVkMjkxNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRnJhZ21lbnRlZEZsb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RnJhZ21lbnRlZEZsb3cuaApAQCAtMTk0LDcgKzE5NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIExheW91dFVuaXQgaW5pdGlhbExvZ2ljYWxXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIDA7IH07
CiAgICAgCiAgICAgdm9pZCBjbGVhckxpbmVzVG9GcmFnbWVudE1hcCgpOwotICAgIHZvaWQgd2ls
bEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVy
VHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihj
b25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBUcmFuc2Zvcm1T
dGF0ZSYsIE1hcENvb3JkaW5hdGVzRmxhZ3MsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdCBvdmVycmlk
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3Jl
ZW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uY3BwCmlu
ZGV4IDhmMDM1MmQ4ZTUwMjI5MmE5YWUyNDQxOGVlZTAxMWNkMTYzY2I3ZjguLjg0OTkzYzBjYzli
NDBmZmY2NDRkNDg5ODdjN2JkNTA2NzdlYmM3YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRnVsbFNjcmVlbi5jcHAKQEAgLTU4LDE0ICs1OCwxNCBAQCBSZW5kZXJGdWxs
U2NyZWVuOjpSZW5kZXJGdWxsU2NyZWVuKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUm
JiBzdHlsZSkKICAgICBzZXRSZXBsYWNlZChmYWxzZSk7IAogfQogCi12b2lkIFJlbmRlckZ1bGxT
Y3JlZW46OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlckZ1bGxTY3JlZW46OndpbGxCZURl
c3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAobV9wbGFjZWhv
bGRlcikgewotICAgICAgICBtX3BsYWNlaG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJv
eSgpOworICAgICAgICBtX3BsYWNlaG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShi
dWlsZGVyKTsKICAgICAgICAgQVNTRVJUKCFtX3BsYWNlaG9sZGVyKTsKICAgICB9CiAKLSAgICBS
ZW5kZXJGbGV4aWJsZUJveDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyRmxleGlibGVC
b3g6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogc3RhdGljIFJlbmRlclN0eWxlIGNy
ZWF0ZUZ1bGxTY3JlZW5TdHlsZSgpCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVuZGVyUHRyPFJlbmRl
ckZ1bGxTY3JlZW4+IFJlbmRlckZ1bGxTY3JlZW46OndyYXBOZXdSZW5kZXJlcihSZW5kZXJUcmVl
QnVpbGRlciYKICAgICBidWlsZGVyLmluc2VydENoaWxkKGZ1bGxzY3JlZW5SZW5kZXJlciwgV1RG
TW92ZShyZW5kZXJlcikpOwogICAgIGZ1bGxzY3JlZW5SZW5kZXJlci5zZXROZWVkc0xheW91dEFu
ZFByZWZXaWR0aHNSZWNhbGMoKTsKIAotICAgIGRvY3VtZW50LnNldEZ1bGxTY3JlZW5SZW5kZXJl
cigmZnVsbHNjcmVlblJlbmRlcmVyKTsKKyAgICBkb2N1bWVudC5zZXRGdWxsU2NyZWVuUmVuZGVy
ZXIoYnVpbGRlciwgJmZ1bGxzY3JlZW5SZW5kZXJlcik7CiAKICAgICByZXR1cm4gbmV3RnVsbHNj
cmVlblJlbmRlcmVyOwogfQpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVl
bjo6d3JhcEV4aXN0aW5nUmVuZGVyZXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIsIERvY3VtZW50
JiBkCiAgICAgYnVpbGRlci5pbnNlcnRDaGlsZChmdWxsc2NyZWVuUmVuZGVyZXIsIFdURk1vdmUo
dG9Nb3ZlKSk7CiAgICAgZnVsbHNjcmVlblJlbmRlcmVyLnNldE5lZWRzTGF5b3V0QW5kUHJlZldp
ZHRoc1JlY2FsYygpOwogCi0gICAgZG9jdW1lbnQuc2V0RnVsbFNjcmVlblJlbmRlcmVyKCZmdWxs
c2NyZWVuUmVuZGVyZXIpOworICAgIGRvY3VtZW50LnNldEZ1bGxTY3JlZW5SZW5kZXJlcihidWls
ZGVyLCAmZnVsbHNjcmVlblJlbmRlcmVyKTsKIH0KIAogdm9pZCBSZW5kZXJGdWxsU2NyZWVuOjp1
bndyYXBSZW5kZXJlcihib29sJiByZXF1aXJlc1JlbmRlclRyZWVSZWJ1aWxkKQpAQCAtMTY5LDcg
KzE2OSw3IEBAIHZvaWQgUmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIoYm9vbCYgcmVx
dWlyZXNSZW5kZXJUcmVlUmVidWlsZCkKICAgICAgICAgICAgICAgICBpZiAoYXV0byogbm9uQW5v
bnltb3VzQ2hpbGQgPSBkb3duY2FzdDxSZW5kZXJCbG9jaz4oKmNoaWxkKS5maXJzdENoaWxkKCkp
CiAgICAgICAgICAgICAgICAgICAgIGNoaWxkID0gbm9uQW5vbnltb3VzQ2hpbGQ7CiAgICAgICAg
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkLT5yZW1vdmVGcm9tUGFy
ZW50QW5kRGVzdHJveSgpOworICAgICAgICAgICAgICAgICAgICBjaGlsZC0+cmVtb3ZlRnJvbVBh
cmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KQEAgLTE4NCwxMCArMTg0LDEwIEBAIHZv
aWQgUmVuZGVyRnVsbFNjcmVlbjo6dW53cmFwUmVuZGVyZXIoYm9vbCYgcmVxdWlyZXNSZW5kZXJU
cmVlUmVidWlsZCkKICAgICAgICAgfQogICAgIH0KICAgICBpZiAocGxhY2Vob2xkZXIoKSkKLSAg
ICAgICAgcGxhY2Vob2xkZXIoKS0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAgICAg
ICAgcGxhY2Vob2xkZXIoKS0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiAg
ICAgQVNTRVJUKCFwbGFjZWhvbGRlcigpKTsKIAotICAgIHJlbW92ZUZyb21QYXJlbnRBbmREZXN0
cm95KCk7CisgICAgcmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koYnVpbGRlcik7CiB9CiAKIHZv
aWQgUmVuZGVyRnVsbFNjcmVlbjo6Y3JlYXRlUGxhY2Vob2xkZXIoc3RkOjp1bmlxdWVfcHRyPFJl
bmRlclN0eWxlPiBzdHlsZSwgY29uc3QgTGF5b3V0UmVjdCYgZnJhbWVSZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1bGxTY3JlZW4uaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGdWxsU2NyZWVuLmgKaW5kZXggNWY5YzEyOTc4YzZhY2Vl
MjZhNDUxZDNjNjdjOWRlMzUyYjE5ODM0YS4uYjM2Y2ZhNGEwY2Y0MjRhNDI0Y2ZiMjU2YWVlNjQ5
NzIwMDkyY2YzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZ1
bGxTY3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnVsbFNjcmVl
bi5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICAKIHByaXZhdGU6CiAgICAgYm9vbCBp
c1JlbmRlckZ1bGxTY3JlZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Ci0gICAg
dm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3ll
ZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNGbGV4aWJsZUJveElt
cGwoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKIHByb3RlY3RlZDoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGYzNGVkMTBiMzY1ZDI1MjM5
NDViYWZiNTY4YWI5N2I1MGYyMmVmNzUuLjllNzM4ODcwMTcyYmIyZTdjZGQyMDMyOGNjNTczM2Qy
ZWZlNGUyYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAt
MTQ5LDEwICsxNDksMTAgQEAgUmVuZGVySW1hZ2U6On5SZW5kZXJJbWFnZSgpCiAgICAgLy8gRG8g
bm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVh
ZC4KIH0KIAotdm9pZCBSZW5kZXJJbWFnZTo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVy
SW1hZ2U6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAg
ICBpbWFnZVJlc291cmNlKCkuc2h1dGRvd24oKTsKLSAgICBSZW5kZXJSZXBsYWNlZDo6d2lsbEJl
RGVzdHJveWVkKCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChidWlsZGVy
KTsKIH0KIAogLy8gSWYgd2UnbGwgYmUgZGlzcGxheWluZyBlaXRoZXIgYWx0IHRleHQgb3IgYW4g
aW1hZ2UsIGFkZCBzb21lIHBhZGRpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFn
ZS5oCmluZGV4IDU2NTQzMTAxMGNhMmU5OGUxOTBiMDk0Y2RmYzg1NGRmNmI4OTMxZjMuLjA2ZThl
MWUwZmZkNmQ5YTQ1ZTYyODUzMWNjODY4Zjc3ZGY1MjI3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbWFnZS5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGhh
c05vbkJpdG1hcEltYWdlKCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKLSAgICB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJikgb3ZlcnJpZGU7CiAKICAgICBib29sIG5lZWRzUHJlZmVycmVkV2lkdGhzUmVjYWxj
dWxhdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94
KCkgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3Bw
CmluZGV4IGU3ZjVmOGIwYWFhMDA2YmI3MWViOWFlODZlMzZhOGJmMGMzMGU2NjkuLjA3NTQ3NDVh
ODgzNjU1NjY2MjA1MDgwYmZkMDFmMmUzMGYzMTY5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJJbmxpbmUuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFJlbmRlcklubGluZTo6UmVu
ZGVySW5saW5lKERvY3VtZW50JiBkb2N1bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSkKICAgICBz
ZXRDaGlsZHJlbklubGluZSh0cnVlKTsKIH0KIAotdm9pZCBSZW5kZXJJbmxpbmU6OndpbGxCZURl
c3Ryb3llZCgpCit2b2lkIFJlbmRlcklubGluZTo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVC
dWlsZGVyJiBidWlsZGVyKQogewogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAvLyBNYWtlIHN1
cmUgd2UgZG8gbm90IHJldGFpbiAidGhpcyIgaW4gdGhlIGNvbnRpbnVhdGlvbiBvdXRsaW5lIHRh
YmxlIG1hcCBvZiBvdXIgY29udGFpbmluZyBibG9ja3MuCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9p
ZCBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBtX2xpbmVCb3hlcy5kZWxl
dGVMaW5lQm94ZXMoKTsKIAotICAgIFJlbmRlckJveE1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQoKTsKKyAgICBSZW5kZXJCb3hNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIp
OwogfQogCiB2b2lkIFJlbmRlcklubGluZTo6dXBkYXRlRnJvbVN0eWxlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAppbmRleCA3MzI2Yzc2YmNiZmMwMjkzNjdkYjdmZjA3
NDZjYzA2ZDlhZmE2ZjkwLi42ZjRmOWZhOTc0MTU5MWMxYWQyNDRlZTZiZDlmNGIxOTAwYmE0NmYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklubGluZS5oCkBAIC05Nyw3ICs5Nyw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZENoaWxkSWdub3JpbmdDb250aW51YXRpb24oUmVuZGVy
VHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBuZXdDaGlsZCwgUmVuZGVyT2Jq
ZWN0KiBiZWZvcmVDaGlsZCA9IG51bGxwdHIpIGZpbmFsOwogCiBwcm90ZWN0ZWQ6Ci0gICAgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChS
ZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzdHlsZVdpbGxDaGFuZ2Uo
U3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUpIG92ZXJyaWRlOwog
ICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IDU1YjQzYTZjODI0OWRmMGVjNTdmZGUx
MTMwYmZkOWJkMGY2NzZjYTcuLjQxY2E2OWRlMDdiNzk3Mzk4Yjg4MjM0OGJhMzZiZWVjOGVjYTM1
ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVs
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDo6flJl
bmRlckxheWVyTW9kZWxPYmplY3QoKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4g
QWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyTGF5
ZXJNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAg
IGlmIChpc1Bvc2l0aW9uZWQoKSkgewogICAgICAgICBpZiAoc3R5bGUoKS5oYXNWaWV3cG9ydENv
bnN0cmFpbmVkUG9zaXRpb24oKSkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBSZW5kZXJMYXllck1v
ZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQogICAgICAgICBkZXN0cm95TGF5ZXIoKTsKICAg
ICB9CiAKLSAgICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJF
bGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiAgICAgCiAgICAgY2xlYXJSZXBhaW50
TGF5b3V0UmVjdHMoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllck1vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdC5oCmluZGV4IGU2MDVhNDhiYTU1MTZmZjg0Yzk5ZjlmYTY2ZTdjMjMw
Njg4NmNkZmMuLjBkOWE3NmU4YWZjZjAxNTU3ZTQ3YmIyZjExNmY1Njc5MjdmODQyZmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuaApA
QCAtNzMsNyArNzMsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdChE
b2N1bWVudCYsIFJlbmRlclN0eWxlJiYsIEJhc2VUeXBlRmxhZ3MpOwogCiAgICAgdm9pZCBjcmVh
dGVMYXllcigpOwotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyTGF5ZXI+IG1fbGF5ZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKaW5kZXggNGM0ZDlhYmNiNTNhMzI2NmFj
YWI5NjAzMjkzMzNhNjE3OTZlYTg5Ni4uYWE5MTdlZjczNTdiNWYyNDQwMjhlMjRjYzZlMjRiNzYy
ZDZmYjk1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApA
QCAtMTA0LDExICsxMDQsMTEgQEAgUmVuZGVyTGlzdEJveDo6flJlbmRlckxpc3RCb3goKQogICAg
IC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ryb3llZCgp
IGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyTGlzdEJveDo6d2lsbEJlRGVzdHJveWVkKCkKK3Zv
aWQgUmVuZGVyTGlzdEJveDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWls
ZGVyKQogewogICAgIHNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKTsKICAgICB2aWV3KCku
ZnJhbWVWaWV3KCkucmVtb3ZlU2Nyb2xsYWJsZUFyZWEodGhpcyk7Ci0gICAgUmVuZGVyQmxvY2tG
bG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ry
b3llZChidWlsZGVyKTsKIH0KIAogSFRNTFNlbGVjdEVsZW1lbnQmIFJlbmRlckxpc3RCb3g6OnNl
bGVjdEVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKaW5kZXggOWQ2OTRkZjQ1YTMyYjAzZDI4OTdiOTEwYjNkYmVjODgzY2RmNTQ3Yi4uODhjNDcy
MzAxNGZjZGRkMGM5NGYxNjE1YWM4OTg3Nzg2NGI1MjVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC02OCw3ICs2OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHNjcm9sbGVkVG9SaWdodCgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVu
ZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0g
ZGVsZXRlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlz
dEl0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmNwcApp
bmRleCBiMzU0ZGRkNWQ1ZDhhMjRkZDI0M2RmMDg1YWJlOTkyMjEyNGQ5ZTNlLi5iYzU5OWI0M2Rk
ZWYxNjgzOTcwMmM3ODAxNDMwZjYwNjUyMDNiNDI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKQEAgLTU0LDExICs1NCwxMSBAQCBSZW5kZXJMaXN0SXRl
bTo6flJlbmRlckxpc3RJdGVtKCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFk
ZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlckxpc3RJ
dGVtOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJMaXN0SXRlbTo6d2lsbEJlRGVzdHJv
eWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlmIChtX21hcmtlcikKLSAg
ICAgICAgbV9tYXJrZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7Ci0gICAgUmVuZGVy
QmxvY2tGbG93Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICAgICAgbV9tYXJrZXItPnJlbW92ZUZy
b21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOworICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJl
RGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBSZW5kZXJTdHlsZSBSZW5kZXJMaXN0SXRlbTo6Y29t
cHV0ZU1hcmtlclN0eWxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMaXN0SXRlbS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxp
c3RJdGVtLmgKaW5kZXggZTY3ZDY0MGRiNmMwYjQyYzZlZGM2YjRhMjhmYjFjMzc5OTM0MDJlYy4u
ODM5OGM3YjAzYzU1Y2RjMzYzZTZhNzZmZTRmODdlOTJkMTY4YjUzNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxpc3RJdGVtLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNJblJldmVyc2VkT3JkZXJlZExpc3QoKSBjb25zdDsKIAogcHJpdmF0ZToKLSAg
ICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KFJlbmRlclRyZWVCdWlsZGVyJikgZmluYWw7CiAKICAgICBjb25zdCBjaGFyKiByZW5kZXJOYW1l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlJlbmRlckxpc3RJdGVtIjsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5jcHAKaW5kZXggZGQxODc3NzI4MjJj
YTIyMTdhYzYyY2RhNDk5MzMyMjliMmZkN2EwNS4uNjFjM2M1YWQ2NmQyNDA2ZmNjMjBhNDM5NDVl
ZTE2NmNmZGUxM2QzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RNYXJrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
TWFya2VyLmNwcApAQCAtMTEzNCwxMSArMTEzNCwxMSBAQCBSZW5kZXJMaXN0TWFya2VyOjp+UmVu
ZGVyTGlzdE1hcmtlcigpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBoZXJlLiBBZGQgaXQg
dG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5kZXJMaXN0TWFya2Vy
Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJMaXN0TWFya2VyOjp3aWxsQmVEZXN0cm95
ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1faW1hZ2UpCiAgICAg
ICAgIG1faW1hZ2UtPnJlbW92ZUNsaWVudCh0aGlzKTsKLSAgICBSZW5kZXJCb3g6OndpbGxCZURl
c3Ryb3llZCgpOworICAgIFJlbmRlckJveDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQog
CiB2b2lkIFJlbmRlckxpc3RNYXJrZXI6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBk
aWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxpc3RNYXJrZXIuaAppbmRleCAxM2YxMjRmMDM3YjRkYjIzN2MwNTdlMjhkOWMx
ZjlkZDU0MDAyZWNhLi45Mjc4ZGMyMDQxOTBkMDM4ZWYwNGExZDk5Zjg3ZWNmMjdlNDJiODliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdE1hcmtlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0TWFya2VyLmgKQEAgLTUyLDcg
KzUyLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDQwN2Qy
Y2IyZjgxMGNlMGMxZTI0ZTJjZDJlZGNhZTlkNGRjYzQ4YzUuLjU0M2M3ZjA5MGQ0YTg0Yzc2YzJi
ZDAwM2IxYzVkMzVjY2VmMDU1MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcApAQCAtODksNyArODksNyBAQCBSZW5kZXJNZW51TGlzdDo6flJlbmRlck1l
bnVMaXN0KCkKICAgICAvLyBEbyBub3QgYWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxs
QmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgogfQogCi12b2lkIFJlbmRlck1lbnVMaXN0Ojp3aWxsQmVE
ZXN0cm95ZWQoKQordm9pZCBSZW5kZXJNZW51TGlzdDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRy
ZWVCdWlsZGVyJiBidWlsZGVyKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1fcG9w
dXApCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OndpbGxCZURlc3Ryb3ll
ZCgpCiAgICAgbV9wb3B1cCA9IG51bGxwdHI7CiAjZW5kaWYKIAotICAgIFJlbmRlckZsZXhpYmxl
Qm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJGbGV4aWJsZUJveDo6d2lsbEJlRGVz
dHJveWVkKGJ1aWxkZXIpOwogfQogCiB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRJbm5lclJlbmRl
cmVyKFJlbmRlckJsb2NrJiBpbm5lclJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuaAppbmRleCBiZGY0NDcxNmVlMGYxZmM3ZmU5YjczY2VmOGE0OGY1ZTA1
Yzk3MTZkLi42NmZlYjcyNGE0NDA5NmU4ZWIzZjIwNTdhYzJhZmNhNmM0MmYyMDhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtNjMsNyArNjMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRJbm5lclJlbmRlcmVyKFJlbmRlckJsb2NrJik7CiAKIHByaXZh
dGU6Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxC
ZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBlbGVt
ZW50KCkgY29uc3QgPSBkZWxldGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKaW5kZXggNzIyOGJiM2VmNjFhMTczZDI3OGJkOWRhZDFhMWE3ZTY5YzQwOTVkMS4u
NWY5Y2QwMWJiOTIwYmIwMTBlNGFiODgwNjM5NTYyYjQ3YThlMzEzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI1NSwxMCArMjU1LDEwIEBAIHZvaWQg
UmVuZGVyT2JqZWN0OjpzZXRQYXJlbnQoUmVuZGVyRWxlbWVudCogcGFyZW50KQogICAgIG1fcGFy
ZW50ID0gcGFyZW50OwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVtb3ZlRnJvbVBhcmVudEFu
ZERlc3Ryb3koKQordm9pZCBSZW5kZXJPYmplY3Q6OnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95
KFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIEFTU0VSVChtX3BhcmVudCk7Ci0g
ICAgbV9wYXJlbnQtPnJlbW92ZUFuZERlc3Ryb3lDaGlsZCgqUmVuZGVyVHJlZUJ1aWxkZXI6OmN1
cnJlbnQoKSwgKnRoaXMpOworICAgIG1fcGFyZW50LT5yZW1vdmVBbmREZXN0cm95Q2hpbGQoYnVp
bGRlciwgKnRoaXMpOwogfQogCiBSZW5kZXJPYmplY3QqIFJlbmRlck9iamVjdDo6bmV4dEluUHJl
T3JkZXIoKSBjb25zdApAQCAtMTQzNCw3ICsxNDM0LDcgQEAgYm9vbCBSZW5kZXJPYmplY3Q6Omlz
U2VsZWN0aW9uQm9yZGVyKCkgY29uc3QKICAgICAgICAgfHwgdmlldygpLnNlbGVjdGlvbigpLmVu
ZCgpID09IHRoaXM7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKQor
dm9pZCBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpCiB7
CiAgICAgQVNTRVJUKCFtX3BhcmVudCk7CiAgICAgQVNTRVJUKHJlbmRlclRyZWVCZWluZ0Rlc3Ry
b3llZCgpIHx8ICFpczxSZW5kZXJFbGVtZW50PigqdGhpcykgfHwgIXZpZXcoKS5mcmFtZVZpZXco
KS5oYXNTbG93UmVwYWludE9iamVjdChkb3duY2FzdDxSZW5kZXJFbGVtZW50PigqdGhpcykpKTsK
QEAgLTE0ODUsNyArMTQ4NSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpkZXN0cm95KCkKICAgICAg
ICAgZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCp0aGlzKS5sYXllcigpLT53aWxsQmVE
ZXN0cm95ZWQoKTsKICNlbmRpZgogCi0gICAgd2lsbEJlRGVzdHJveWVkKCk7CisgICAgd2lsbEJl
RGVzdHJveWVkKCpSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpKTsKIAogICAgIGlmIChpczxS
ZW5kZXJXaWRnZXQ+KCp0aGlzKSkgewogICAgICAgICBkb3duY2FzdDxSZW5kZXJXaWRnZXQ+KCp0
aGlzKS5kZXJlZigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4
IGVlNjhiYjA3ZDQ1ZjhhYmVjM2U1YmMzNjVlZmY4Nzg5ZGQxNjc3NmMuLmQ1NGMxOTA4NzM1MmRj
YzgwNzQ4NmViNjE2Y2VjMmQ5NzU2YmMwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKQEAgLTYzLDYgKzYzLDcgQEAgY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0OwogY2xhc3MgUmVuZGVyRnJhZ21lbnRDb250YWluZXI7CiBj
bGFzcyBSZW5kZXJUaGVtZTsKK2NsYXNzIFJlbmRlclRyZWVCdWlsZGVyOwogY2xhc3MgU2VsZWN0
aW9uUmFuZ2VEYXRhOwogY2xhc3MgVHJhbnNmb3JtU3RhdGU7CiBjbGFzcyBWaXNpYmxlUG9zaXRp
b247CkBAIC03NTIsNyArNzUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgaW1hZ2VDaGFuZ2VkKENh
Y2hlZEltYWdlKiwgY29uc3QgSW50UmVjdCogPSBudWxscHRyKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgaW1hZ2VDaGFuZ2VkKFdyYXBwZWRJbWFnZVB0ciwgY29uc3QgSW50UmVjdCogPSBu
dWxscHRyKSB7IH0KIAotICAgIHZvaWQgcmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAg
ICB2b2lkIHJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KFJlbmRlclRyZWVCdWlsZGVyJik7CiAK
ICAgICBDU1NBbmltYXRpb25Db250cm9sbGVyJiBhbmltYXRpb24oKSBjb25zdDsKIApAQCAtNzg3
LDcgKzc4OCw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgYWRqdXN0UmVjdEZvck91dGxpbmVB
bmRTaGFkb3coTGF5b3V0UmVjdCYpIGNvbnN0OwogCi0gICAgdmlydHVhbCB2b2lkIHdpbGxCZURl
c3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImKTsKIAogICAgIHZpcnR1YWwgdm9pZCBpbnNlcnRlZEludG9UcmVlKCk7CiAgICAgdmly
dHVhbCB2b2lkIHdpbGxCZVJlbW92ZWRGcm9tVHJlZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggY2FkZGQ0ZWE4N2VlOWMyOWRmNzJlYzA0NzRm
MDdhOGZkZTAwMDMzZS4uYTdjOGQ5MWY1OWEwNTc2MGUxODAzNzZhZGYxNTQxOGVlMzBjZTc5YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC03Miwx
MiArNzIsMTIgQEAgUmVuZGVyUmVwbGFjZWQ6OlJlbmRlclJlcGxhY2VkKERvY3VtZW50JiBkb2N1
bWVudCwgUmVuZGVyU3R5bGUmJiBzdHlsZSwgY29uc3QgTGEKIAogUmVuZGVyUmVwbGFjZWQ6On5S
ZW5kZXJSZXBsYWNlZCgpID0gZGVmYXVsdDsKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6d2lsbEJl
RGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3llZChSZW5kZXJU
cmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBpZiAoIXJlbmRlclRyZWVCZWluZ0Rlc3Ryb3ll
ZCgpICYmIHBhcmVudCgpKQogICAgICAgICBwYXJlbnQoKS0+ZGlydHlMaW5lc0Zyb21DaGFuZ2Vk
Q2hpbGQoKnRoaXMpOwogCi0gICAgUmVuZGVyQm94Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBS
ZW5kZXJCb3g6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJSZXBs
YWNlZDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgK
aW5kZXggYWU1ZDk1NDQ3M2Q4OGYzNDA4MjhmM2I3YjAzOTQzYTBiMTdmZmUxOC4uYmY2OWJmYzcw
Nzg4NTE3OTE5YzQ2OWY0YTU1ODBkMTNhNmI2YjkxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgc2hvdWxkUGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKTsKICAgICBMYXlv
dXRSZWN0IGxvY2FsU2VsZWN0aW9uUmVjdChib29sIGNoZWNrV2hldGhlclNlbGVjdGVkID0gdHJ1
ZSkgY29uc3Q7IC8vIFRoaXMgaXMgaW4gbG9jYWwgY29vcmRpbmF0ZXMsIGJ1dCBpdCdzIGEgcGh5
c2ljYWwgcmVjdCAoc28gdGhlIHRvcCBsZWZ0IGNvcm5lciBpcyBwaHlzaWNhbCB0b3AgbGVmdCku
CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJl
RGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAg
TGF5b3V0VW5pdCBjb21wdXRlQ29uc3RyYWluZWRMb2dpY2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVBy
ZWZlcnJlZCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUnVieS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUnVieS5jcHAKaW5k
ZXggN2MwNGE4NjIwYzA5Y2FhN2VkNTE4YjFlYWRhNGVlNzJhNWM1YTVkYi4uOGFkYjI0ODQ1ZjBk
YTY4YTgzYjk4NWVmZWFlNWQ2YjA3NzcwOWVmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJ1YnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSdWJ5LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+
IFJlbmRlclJ1YnlBc0lubGluZTo6dGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVy
CiAgICAgICAgIEFTU0VSVChjaGlsZC5pc0JlZm9yZUNvbnRlbnQoKSB8fCBjaGlsZC5pc0FmdGVy
Q29udGVudCgpKTsKICAgICAgICAgYXV0byYgcGFyZW50ID0gKmNoaWxkLnBhcmVudCgpOwogICAg
ICAgICBhdXRvIHRha2VuQ2hpbGQgPSBwYXJlbnQudGFrZUNoaWxkKGJ1aWxkZXIsIGNoaWxkKTsK
LSAgICAgICAgcGFyZW50LnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAgIHBh
cmVudC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWlsZGVyKTsKICAgICAgICAgcmV0dXJu
IHRha2VuQ2hpbGQ7CiAgICAgfQogCkBAIC0xNDgsNyArMTQ4LDcgQEAgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gUmVuZGVyUnVieUFzQmxvY2s6OnRha2VDaGlsZChSZW5kZXJUcmVlQnVpbGRlciYg
YnVpbGRlciwKICAgICAgICAgQVNTRVJUKGNoaWxkLmlzQmVmb3JlQ29udGVudCgpIHx8IGNoaWxk
LmlzQWZ0ZXJDb250ZW50KCkpOwogICAgICAgICBhdXRvJiBwYXJlbnQgPSAqY2hpbGQucGFyZW50
KCk7CiAgICAgICAgIGF1dG8gdGFrZW5DaGlsZCA9IHBhcmVudC50YWtlQ2hpbGQoYnVpbGRlciwg
Y2hpbGQpOwotICAgICAgICBwYXJlbnQucmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3koKTsKKyAg
ICAgICAgcGFyZW50LnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOwogICAgICAg
ICByZXR1cm4gdGFrZW5DaGlsZDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDg4ZmQ2NGFiYWM4MDQ1ZjViZjI1MzcyMTQx
ODcyOWZhNGE3OTM3OTUuLjVhODMyOGVmODUxNWYxMzk1YTI2N2NjOTQ5NmRkMTViZTk3NDIwOTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApA
QCAtNjQsMTQgKzY0LDE0IEBAIFJlbmRlclNlYXJjaEZpZWxkOjp+UmVuZGVyU2VhcmNoRmllbGQo
KQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdpbGxCZURlc3Ry
b3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OndpbGxCZURlc3Ry
b3llZCgpCit2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJl
ZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1fc2VhcmNoUG9wdXApIHsKICAgICAgICAg
bV9zZWFyY2hQb3B1cC0+cG9wdXBNZW51KCktPmRpc2Nvbm5lY3RDbGllbnQoKTsKICAgICAgICAg
bV9zZWFyY2hQb3B1cCA9IG51bGxwdHI7CiAgICAgfQogCi0gICAgUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lOjp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmU6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogaW5saW5lIEhUTUxFbGVtZW50
KiBSZW5kZXJTZWFyY2hGaWVsZDo6cmVzdWx0c0J1dHRvbkVsZW1lbnQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuaAppbmRleCAzYTg0MWRlZDNm
OWFkYTNhNTI5MTkyNTIzZTQxNDE2M2E4NGUzYWVlLi4yMzNlNmVkN2NlOWE0YjRmYTE0MWM2ZmIw
NjVkMmMwZTUwYWQ1ZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyU2VhcmNoRmllbGQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGJvb2wg
aXNTZWFyY2hGaWVsZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVu
ZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVDb250cm9s
TG9naWNhbEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExheW91dFVuaXQgbm9uQ29udGVu
dEhlaWdodCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVGcm9tRWxlbWVudCgpIG92
ZXJyaWRlOwogICAgIEVWaXNpYmlsaXR5IHZpc2liaWxpdHlGb3JDYW5jZWxCdXR0b24oKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRl
ZFBsdWdJbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQ
bHVnSW4uY3BwCmluZGV4IGVlNjIzMzBkOTM4NjdkZTAwYmFjZTZkMDJhZGU5NTdjZDMxODAwNTgu
LmU0NDcyMjFiNWRlOTQ0NzA0ZmYwMDJiMDA3YjQzMmUxMzBlYzU2YjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTbmFwc2hvdHRlZFBsdWdJbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNuYXBzaG90dGVkUGx1Z0luLmNwcApAQCAt
NjMsMTIgKzYzLDEyIEBAIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp+UmVuZGVyU25hcHNob3R0
ZWRQbHVnSW4oKQogICAgIC8vIERvIG5vdCBhZGQgYW55IGNvZGUgaGVyZS4gQWRkIGl0IHRvIHdp
bGxCZURlc3Ryb3llZCgpIGluc3RlYWQuCiB9CiAKLXZvaWQgUmVuZGVyU25hcHNob3R0ZWRQbHVn
SW46OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjp3aWxs
QmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgQVNTRVJUKG1f
c25hcHNob3RSZXNvdXJjZSk7CiAgICAgbV9zbmFwc2hvdFJlc291cmNlLT5zaHV0ZG93bigpOwog
Ci0gICAgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRl
ckVtYmVkZGVkT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQmIFJlbmRlclNuYXBzaG90dGVkUGx1Z0luOjpwbHVnSW5JbWFnZUVsZW1l
bnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNu
YXBzaG90dGVkUGx1Z0luLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNo
b3R0ZWRQbHVnSW4uaAppbmRleCBhNDVhMzFhNTcwYjJlZmNiNDVhNmUxMGViNDY3YjhlYWIwZGM0
MWYwLi41YjFiZTg5MDZlMTg4MjljMThiZDkyMjc2YTI3YTQ1MGRkMjhkNWJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU25hcHNob3R0ZWRQbHVnSW4uaApAQCAt
NDMsNyArNDMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYW5kbGVFdmVudChFdmVudCYpOwogCiBw
cml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3
aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKICAgICB2b2lkIGZy
YW1lT3duZXJFbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAgICAgY29uc3QgY2hhciogcmVuZGVy
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJSZW5kZXJTbmFwc2hvdHRlZFBsdWdJbiI7IH0K
ICAgICBDdXJzb3JEaXJlY3RpdmUgZ2V0Q3Vyc29yKGNvbnN0IExheW91dFBvaW50JiwgQ3Vyc29y
JikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5jcHAKaW5k
ZXggNmFlMDQ3YzQ2OWZlOWNkYWJlZjIxY2RkY2FlYzk2NzMzMjVlZGE3YS4uNTFjMmZiZWZmNTBj
YzVhNjQxODkwZGVlNTNhNTlkMjhiZDhlZTExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgUmVuZGVyVGV4dDo6cmVtb3Zl
QW5kRGVzdHJveVRleHRCb3hlcygpCiAgICAgbV9saW5lQm94ZXMuZGVsZXRlQWxsKCk7CiB9CiAK
LXZvaWQgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dDo6d2ls
bEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIHNlY3VyZVRl
eHRUaW1lcnMoKS5yZW1vdmUodGhpcyk7CiAKQEAgLTI5OCw3ICsyOTgsNyBAQCB2b2lkIFJlbmRl
clRleHQ6OndpbGxCZURlc3Ryb3llZCgpCiAKICAgICBzZXRJbmxpbmVXcmFwcGVyRm9yRGlzcGxh
eUNvbnRlbnRzKG51bGxwdHIpOwogCi0gICAgUmVuZGVyT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQo
KTsKKyAgICBSZW5kZXJPYmplY3Q6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0OjpkZWxldGVMaW5lQm94ZXNCZWZvcmVTaW1wbGVMaW5lTGF5b3V0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCmluZGV4IGY0NjI5MGY1ZGVhYjBhZWJlOWM3
YzgyNDBkMGQ2ZjM5NDU2NjgwNGEuLmMyNDYzMThkZDZjZDcxMmFiZDZiNjVkNzE3NGIwNTc1MDRi
MGZiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaApAQCAtMTgzLDcgKzE4
Myw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocyhmbG9hdCBsZWFkV2lkdGgpOwotICAgIHZvaWQgd2lsbEJlRGVz
dHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJlZFRleHQoY29u
c3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9s
TXVsdGlMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bE11bHRpTGluZS5jcHAKaW5kZXggNTI2Mzg1Y2RhMmQ3MTIzNmI2NTQ2MTU5ODg3ZDVmMTVhYTA3
MjdiMi4uN2UwMjVlYWM2Mzc5NTY0NjkzMDlmMmNlNzNlNGUyZTEwNjE4M2M4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxp
bmUuY3BwCkBAIC00NSwxMiArNDUsMTIgQEAgUmVuZGVyVGV4dENvbnRyb2xNdWx0aUxpbmU6On5S
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZSgpCiAgICAgLy8gRG8gbm90IGFkZCBhbnkgY29kZSBo
ZXJlLiBBZGQgaXQgdG8gd2lsbEJlRGVzdHJveWVkKCkgaW5zdGVhZC4KIH0KIAotdm9pZCBSZW5k
ZXJUZXh0Q29udHJvbE11bHRpTGluZTo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4
dENvbnRyb2xNdWx0aUxpbmU6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVp
bGRlcikKIHsKICAgICBpZiAodGV4dEFyZWFFbGVtZW50KCkuaXNDb25uZWN0ZWQoKSkKICAgICAg
ICAgdGV4dEFyZWFFbGVtZW50KCkucmVuZGVyZXJXaWxsQmVEZXN0cm95ZWQoKTsKIAotICAgIFJl
bmRlclRleHRDb250cm9sOjp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJUZXh0Q29udHJv
bDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBIVE1MVGV4dEFyZWFFbGVtZW50JiBS
ZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZTo6dGV4dEFyZWFFbGVtZW50KCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbE11bHRpTGlu
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5l
LmgKaW5kZXggNzIxYWY5ZjZhMzNmYWY0Yjg5Yzc1MWNiZTkyNDkzOGI0Y2QzYjA2OS4uMTk2MDhl
ZjczNTQxZDZiNTQ0OWY0ODAyYWM4NWJlMjZhZWRkN2M1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sTXVsdGlMaW5lLmgKQEAgLTM1LDcg
KzM1LDcgQEAgcHVibGljOgogICAgIEhUTUxUZXh0QXJlYUVsZW1lbnQmIHRleHRBcmVhRWxlbWVu
dCgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlk
ZTsKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKIAogICAgIGJvb2wgaXNUZXh0
QXJlYSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRleHRGcmFnbWVudC5jcHAKaW5kZXggZGQ5YWNjN2QxMDMyNzc0
NjhkOGM4ZTVjMjY3ZWMwZGQwYjFlZDVhZS4uMDE2OWFkY2E1NWJkYmIxN2MzOTdlMDBiYTc0MmIz
MjcyZDdmNzhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRGcmFnbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRG
cmFnbWVudC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgog
I2luY2x1ZGUgIlJlbmRlckl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTXVsdGlDb2x1bW5G
bG93LmgiCisjaW5jbHVkZSAiUmVuZGVyVHJlZUJ1aWxkZXIuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KIApAQCAtNzMsMTEgKzc0LDExIEBA
IHZvaWQgUmVuZGVyVGV4dEZyYWdtZW50OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2Ug
ZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqCiAgICAgICAgIGJsb2NrLT5tdXRhYmxlU3R5bGUoKS5y
ZW1vdmVDYWNoZWRQc2V1ZG9TdHlsZShGSVJTVF9MRVRURVIpOwogfQogCi12b2lkIFJlbmRlclRl
eHRGcmFnbWVudDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVyVGV4dEZyYWdtZW50Ojp3
aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgaWYgKG1f
Zmlyc3RMZXR0ZXIpCi0gICAgICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmRE
ZXN0cm95KCk7Ci0gICAgUmVuZGVyVGV4dDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgICAgIG1f
Zmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KGJ1aWxkZXIpOworICAgIFJl
bmRlclRleHQ6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0
RnJhZ21lbnQ6OnNldFRleHQoY29uc3QgU3RyaW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQpAQCAt
ODcsNyArODgsMTIgQEAgdm9pZCBSZW5kZXJUZXh0RnJhZ21lbnQ6OnNldFRleHQoY29uc3QgU3Ry
aW5nJiBuZXdUZXh0LCBib29sIGZvcmNlKQogICAgIG1fZW5kID0gdGV4dCgpLmxlbmd0aCgpOwog
ICAgIGlmICghbV9maXJzdExldHRlcikKICAgICAgICAgcmV0dXJuOwotICAgIG1fZmlyc3RMZXR0
ZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgaWYgKFJlbmRlclRyZWVCdWls
ZGVyOjpjdXJyZW50KCkpCisgICAgICAgIG1fZmlyc3RMZXR0ZXItPnJlbW92ZUZyb21QYXJlbnRB
bmREZXN0cm95KCpSZW5kZXJUcmVlQnVpbGRlcjo6Y3VycmVudCgpKTsKKyAgICBlbHNlIHsKKyAg
ICAgICAgUmVuZGVyVHJlZUJ1aWxkZXIgYnVpbGRlcigqZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCkp
OworICAgICAgICBtX2ZpcnN0TGV0dGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShidWls
ZGVyKTsKKyAgICB9CiAgICAgQVNTRVJUKCFtX2ZpcnN0TGV0dGVyKTsKICAgICBBU1NFUlQoIXRl
eHROb2RlKCkgfHwgdGV4dE5vZGUoKS0+cmVuZGVyZXIoKSA9PSB0aGlzKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0RnJhZ21lbnQuaAppbmRleCA0N2JhMDY5YTA2
ZTdkYmE3MGVmMGNjMjg2OThlYmM1MTAzYzRiY2Y4Li5iNWQ1OWQ5YTIxMjE5ZWY3ZDEwNGM4NjYw
YTdkNjczZjliMDNhZGFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dEZyYWdtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRGcmFnbWVudC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgYm9v
bCBpc1RleHRGcmFnbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAK
ICAgICBVQ2hhciBwcmV2aW91c0NoYXJhY3RlcigpIGNvbnN0IG92ZXJyaWRlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcAppbmRleCAwMjg5MjA1YjVlZWUxMTA1OWQ2
Y2I3ZmU3NjI4Mjc1ZGFhMWZkNzFiLi42NDEwNjUyZTA5ZThlMDY2OTQwYTYyMzRlZjU4N2UwMDli
OGMyNGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlkZW8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKQEAgLTYy
LDEyICs2MiwxMiBAQCBSZW5kZXJWaWRlbzo6flJlbmRlclZpZGVvKCkKICAgICAvLyBEbyBub3Qg
YWRkIGFueSBjb2RlIGhlcmUuIEFkZCBpdCB0byB3aWxsQmVEZXN0cm95ZWQoKSBpbnN0ZWFkLgog
fQogCi12b2lkIFJlbmRlclZpZGVvOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJWaWRl
bzo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGlm
IChhdXRvIHBsYXllciA9IHZpZGVvRWxlbWVudCgpLnBsYXllcigpKQogICAgICAgICBwbGF5ZXIt
PnNldFZpc2libGUoZmFsc2UpOwogCi0gICAgUmVuZGVyTWVkaWE6OndpbGxCZURlc3Ryb3llZCgp
OworICAgIFJlbmRlck1lZGlhOjp3aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQg
UmVuZGVyVmlkZW86OnZpc2libGVJblZpZXdwb3J0U3RhdGVDaGFuZ2VkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKaW5kZXggOGUyNWM2OGE1M2Y4OWI0YTE3MGZiOTY1MWIx
ODdmZmI4YWMwZmFjMy4uZDIzNGY0YmY3YTdkMTdhM2U4OTExM2YyMmQ5ZTlmMWI2NzYyM2RkNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmgKQEAgLTU0LDcgKzU0LDcgQEAg
cHVibGljOgogICAgIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKSBmaW5hbDsKIAogcHJpdmF0ZToK
LSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVz
dHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtZWRpYUVsZW1l
bnQoKSBjb25zdCA9IGRlbGV0ZTsKIAogICAgIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA1OTQxNmJh
ZGQ2N2NlZmMzMmEzNTkwZWFkZDZlYzMwMmIxNDdjYmQ0Li5mN2I3Y2E4ZmY4MmFhODc2MGE2MTEy
M2ZmYmZmN2MyNGU3ZDQ3ODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwCkBAIC02MTEsOSArNjExLDkgQEAgYm9vbCBSZW5kZXJWaWV3Ojppc1Njcm9sbGFibGVPclJ1
YmJlcmJhbmRhYmxlQm94KCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3KCkuaXNTY3JvbGxh
YmxlKGRlZmluZVNjcm9sbGFibGUpOwogfQogCi12b2lkIFJlbmRlclZpZXc6OndpbGxCZURlc3Ry
b3llZCgpCit2b2lkIFJlbmRlclZpZXc6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRl
ciYgYnVpbGRlcikKIHsKLSAgICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3llZCgpOwor
ICAgIFJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGEgd29ya2Fyb3VuZCBmb3IgbGVmdG92ZXIgY29udGVudCAoc2VlIHdlYmtp
dC5vcmcvYi8xODI1NDcpLgogICAgIGlmIChmaXJzdENoaWxkKCkpIHsKICAgICAgICAgUmVuZGVy
VHJlZUJ1aWxkZXIgYnVpbGRlcigqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaAppbmRleCA5YzViYjk4OTVjNTI0NzViZTJlOThkN2MzOWIwMWU0OTAzODIxZGExLi42ZDIz
ZjBlMjBmZGQzZjE0MjkwYzg1MDZjZDQ0M2UxMzYyZmQwMmI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKQEAgLTIxNCw3ICsyMTQsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBpc1Njcm9sbGFibGVPclJ1YmJlcmJhbmRhYmxlQm94KCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAg
ICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJv
eWVkKFJlbmRlclRyZWVCdWlsZGVyJikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CiAgICAgRnJhbWVW
aWV3JiBtX2ZyYW1lVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5j
cHAKaW5kZXggYTJlY2QwODFkNzVlYWYxNmFhYzEyNzM4OGM2NmUyMDc3MTAzMWJiYy4uNGY3MmQx
NGNiN2U1ODhiNTE2ODQwOTRhNjljZTVkMWI1ZDA2NDI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgUmVuZGVyV2lkZ2V0OjpS
ZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3duZXJFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYm
IHN0eWxlKQogICAgIHNldElubGluZShmYWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyV2lkZ2V0Ojp3
aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJXaWRnZXQ6OndpbGxCZURlc3Ryb3llZChSZW5k
ZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKGhh
c0xheWVyKCkpCkBAIC0xMDIsNyArMTAyLDcgQEAgdm9pZCBSZW5kZXJXaWRnZXQ6OndpbGxCZURl
c3Ryb3llZCgpCiAKICAgICBzZXRXaWRnZXQobnVsbHB0cik7CiAKLSAgICBSZW5kZXJSZXBsYWNl
ZDo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyUmVwbGFjZWQ6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogUmVuZGVyV2lkZ2V0Ojp+UmVuZGVyV2lkZ2V0KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCA4YWUzZDJjNjViMmQ0NGU1MjYwMGEw
MmM3YTYzZjczNDU0OWQxOTZjLi43OGFlZDNmMTJjNTk2Mzk4MDM3NWU1ZmNmOThjNzdhZTIxZDlk
MjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC03Nyw3ICs3
Nyw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBSZW5kZXJXaWRnZXQoSFRNTEZyYW1lT3du
ZXJFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CiAKLSAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgp
IG92ZXJyaWRlOworICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgZmluYWw7CiAgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlk
ZTsKICAgICB2b2lkIHBhaW50KFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBvaW50Jikgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Js
b2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3Bw
CmluZGV4IGIwMTE2NzU5MTI5MTc2NGUyMzVkMzk2NjUwYzZiOTNjNzkzZTdjNzkuLjMzNTU1NmQ0
MTc4ZjcyOTU5NDcyZWU0MDg4ODA2MDQ2ZDgzZTFiZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suY3BwCkBAIC03MSwxMCArNzEsMTAgQEAgdm9p
ZCBSZW5kZXJTVkdCbG9jazo6YWJzb2x1dGVSZWN0cyhWZWN0b3I8SW50UmVjdD4mLCBjb25zdCBM
YXlvdXRQb2ludCYpIGNvbnN0CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQg
UmVuZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ryb3llZCgpCit2b2lkIFJlbmRlclNWR0Jsb2NrOjp3
aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgU1ZHUmVz
b3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ryb3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyQmxvY2tGbG93
Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdCbG9jazo6c3R5bGVEaWRDaGFuZ2UoU3R5
bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQmxvY2suaAppbmRleCBmZWRiYTY2ZmE0
YzUwZTgwMmY0OTk0MTAwMGEzMTM0OTRkMDNkMGJiLi5kNGU2YjEyNWUxYmQ4MjU4Mzc5OWY3Njcy
MzVjMjYwZjVlNjZmOGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR0Jsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdCbG9jay5oCkBAIC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIAogcHJvdGVjdGVkOgogICAg
IFJlbmRlclNWR0Jsb2NrKFNWR0dyYXBoaWNzRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotICAg
IHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95
ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKICAgICB2b2lkIGVs
ZW1lbnQoKSBjb25zdCA9IGRlbGV0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdJbWFnZS5jcHAKaW5kZXggOTRlZWZlODVkNWY1Nzc4ZGU3N2JmYTBmMjQ3MGNi
ZTk4YTYxOWNmNy4uMmQzOWViNDIyOTRkMjI0MTdhM2ZjZWY0NjgxMGNjY2RiYWIxYzlmNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5jcHAKQEAg
LTU3LDEwICs1NywxMCBAQCBSZW5kZXJTVkdJbWFnZTo6UmVuZGVyU1ZHSW1hZ2UoU1ZHSW1hZ2VF
bGVtZW50JiBlbGVtZW50LCBSZW5kZXJTdHlsZSYmIHN0eWxlKQogCiBSZW5kZXJTVkdJbWFnZTo6
flJlbmRlclNWR0ltYWdlKCkgPSBkZWZhdWx0OwogCi12b2lkIFJlbmRlclNWR0ltYWdlOjp3aWxs
QmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdJbWFnZTo6d2lsbEJlRGVzdHJveWVkKFJlbmRl
clRyZWVCdWlsZGVyJiBidWlsZGVyKQogewogICAgIGltYWdlUmVzb3VyY2UoKS5zaHV0ZG93bigp
OwotICAgIFJlbmRlclNWR01vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQogCiBTVkdJbWFn
ZUVsZW1lbnQmIFJlbmRlclNWR0ltYWdlOjppbWFnZUVsZW1lbnQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbWFnZS5oCmluZGV4IGEyMjdjMTY3ZTgx
NGRmOGJmNjFmZjM4MWNiYTMwMzYxNDRjN2YyNWUuLmJjNGVkNzE4ODBlMjMwODUyYjU5MzE2MWJj
YWE4YWM3MGFjNTk2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR0ltYWdlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZvaWQgcGFpbnRGb3Jl
Z3JvdW5kKFBhaW50SW5mbyYpOwogCiBwcml2YXRlOgotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVk
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXIm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0gZGVsZXRlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAKaW5kZXgg
ZGRlNGZkYjAxMTE1Zjg5MDA0ZjlmZWE4OTU3NDBlNDcwYTZhYTYzMy4uNzdmNWFkZDU2NDAzMDJh
YzVlNjBhMDAwZjhiZTgxZmM3YzY0ZTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcApAQCAtMTAxLDEwICsxMDEsMTAgQEAgdm9pZCBS
ZW5kZXJTVkdJbmxpbmU6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzLCBi
b29sKiB3YXNGaXhlZCkgY28KICAgICAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1
YWQoRmxvYXRSZWN0KHRleHRCb3VuZGluZ0JveC54KCkgKyBib3gtPngoKSwgdGV4dEJvdW5kaW5n
Qm94LnkoKSArIGJveC0+eSgpLCBib3gtPmxvZ2ljYWxXaWR0aCgpLCBib3gtPmxvZ2ljYWxIZWln
aHQoKSksIFVzZVRyYW5zZm9ybXMsIHdhc0ZpeGVkKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5s
aW5lOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJTVkdJbmxpbmU6OndpbGxCZURlc3Ry
b3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRlcikKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNo
ZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlzKTsKLSAgICBSZW5kZXJJbmxpbmU6OndpbGxCZURlc3Ry
b3llZCgpOworICAgIFJlbmRlcklubGluZTo6d2lsbEJlRGVzdHJveWVkKGJ1aWxkZXIpOwogfQog
CiB2b2lkIFJlbmRlclNWR0lubGluZTo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5oCmluZGV4IDk3OWE4MmU4NWJhNWEwNmUyYjZjYzA4
M2UyMTg3NWYyZmQ4N2Y3MDguLmIxMmM3Zjk2NzllYjFjNGVmMTE3ZjVhMjM0ZTAzMWYzN2M3YmI1
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUu
aApAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPElubGlu
ZUZsb3dCb3g+IGNyZWF0ZUlubGluZUZsb3dCb3goKSBmaW5hbDsKIAotICAgIHZvaWQgd2lsbEJl
RGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1
aWxkZXImKSBmaW5hbDsKICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwg
Y29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBmaW5hbDsKIAogICAgIHZvaWQgYWRkQ2hpbGQo
UmVuZGVyVHJlZUJ1aWxkZXImLCBSZW5kZXJQdHI8UmVuZGVyT2JqZWN0PiBjaGlsZCwgUmVuZGVy
T2JqZWN0KiBiZWZvcmVDaGlsZCA9IG51bGxwdHIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAppbmRleCA5MmFi
NjUzZDczMWM2N2VlZGI4Zjc0NDllZDAzMGUxMDMyNDMzYWU5Li4xM2UyYzg4ZjM3Y2ZiODI0YzRl
MWUyNzJlZGU4ZGMzNWE5OGIwZWZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcApAQCAtOTIsMTAgKzkyLDEwIEBAIHZv
aWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6OmFic29sdXRlUXVhZHMoVmVjdG9yPEZsb2F0UXVhZD4m
IHF1YWRzLCBib29sKiB3YXNGaXhlCiAgICAgcXVhZHMuYXBwZW5kKGxvY2FsVG9BYnNvbHV0ZVF1
YWQoc3Ryb2tlQm91bmRpbmdCb3goKSwgVXNlVHJhbnNmb3Jtcywgd2FzRml4ZWQpKTsKIH0KIAot
dm9pZCBSZW5kZXJTVkdNb2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKCkKK3ZvaWQgUmVuZGVy
U1ZHTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYgYnVpbGRl
cikKIHsKICAgICBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVkKCp0aGlzKTsKLSAg
ICBSZW5kZXJFbGVtZW50Ojp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBSZW5kZXJFbGVtZW50Ojp3
aWxsQmVEZXN0cm95ZWQoYnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHTW9kZWxPYmplY3Q6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR01vZGVsT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R01vZGVsT2JqZWN0LmgKaW5kZXggOGUzYTBlMTJmNTRkYWFjYjQ3NmZiMzRhOWU5OWIxNzgyNmNj
MDdjOC4uODk5ZDk2OTkwZDgzNTU3MjFlODVmOGZjZTRiYjhkYzI0YzNlNWIwZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaApA
QCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyU1ZHTW9kZWxP
YmplY3QoU1ZHRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwogCi0gICAgdm9pZCB3aWxsQmVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVp
bGRlciYpIG92ZXJyaWRlOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNSZW5kZXJTVkdNb2RlbE9i
amVjdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAK
aW5kZXggMDE0NDk0YmZmNjQwMzljM2FiYjY2NDQ5ZDMzOWVlNjQ1NmFlM2ZhNS4uMjA3NDlkN2Qx
MzJlMmMxYzI3NGVhOWVhOGMwNTU3ZGMxNjgwMjlkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6bGF5b3V0
KCkKICAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OmxheW91dCgpOwogfQogCi12b2lkIFJl
bmRlclNWR1Jlc291cmNlQ29udGFpbmVyOjp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJT
VkdSZXNvdXJjZUNvbnRhaW5lcjo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWlsZGVyJiBi
dWlsZGVyKQogewogICAgIFNWR1Jlc291cmNlc0NhY2hlOjpyZXNvdXJjZURlc3Ryb3llZCgqdGhp
cyk7CiAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6
d2lsbEJlRGVzdHJveWVkKCkKICAgICAgICAgbV9yZWdpc3RlcmVkID0gZmFsc2U7CiAgICAgfQog
Ci0gICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyOjp3aWxsQmVEZXN0cm95ZWQoKTsKKyAgICBS
ZW5kZXJTVkdIaWRkZW5Db250YWluZXI6OndpbGxCZURlc3Ryb3llZChidWlsZGVyKTsKIH0KIAog
dm9pZCBSZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lcjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDb250YWluZXIu
aAppbmRleCBmNjM3YjcxNGRhNWI5YzlhZGI3MGU4NjFjODMwNzUzYTE3YmNjNDFjLi5iZmU0MzBk
ODc0YmZiMDY3ZmM0Y2UxODU5MWQwOWViYTAzMDkxYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ29udGFpbmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNvbnRhaW5lci5oCkBA
IC02Nyw3ICs2Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRDbGllbnQoUmVuZGVyRWxlbWVu
dCYpOwogICAgIHZvaWQgcmVtb3ZlQ2xpZW50KFJlbmRlckVsZW1lbnQmKTsKIAotICAgIHZvaWQg
d2lsbEJlRGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVy
VHJlZUJ1aWxkZXImKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyUmVzb3VyY2UoKTsKIAogICAg
IEF0b21pY1N0cmluZyBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHUm9vdC5jcHAKaW5kZXggZDBjMTkyZDRhMjEyNGQxNmI5M2NiNzk1Njc4YjZjYTc0YThk
NzI0OC4uNTY1ZGIzZTM1OTU5MzMzYWY4MTg1Nzk0Zjk2NzA2Yjk5NGZhZWMyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC0yNzAsMTIg
KzI3MCwxMiBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OnBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludAogICAgIGNoaWxkUGFpbnRJbmZvLmNv
bnRleHQoKS5yZXN0b3JlKCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHUm9vdDo6d2lsbEJlRGVzdHJv
eWVkKCkKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6d2lsbEJlRGVzdHJveWVkKFJlbmRlclRyZWVCdWls
ZGVyJiBidWlsZGVyKQogewogICAgIFJlbmRlckJsb2NrOjpyZW1vdmVQZXJjZW50SGVpZ2h0RGVz
Y2VuZGFudChjb25zdF9jYXN0PFJlbmRlclNWR1Jvb3QmPigqdGhpcykpOwogCiAgICAgU1ZHUmVz
b3VyY2VzQ2FjaGU6OmNsaWVudERlc3Ryb3llZCgqdGhpcyk7Ci0gICAgUmVuZGVyUmVwbGFjZWQ6
OndpbGxCZURlc3Ryb3llZCgpOworICAgIFJlbmRlclJlcGxhY2VkOjp3aWxsQmVEZXN0cm95ZWQo
YnVpbGRlcik7CiB9CiAKIHZvaWQgUmVuZGVyU1ZHUm9vdDo6aW5zZXJ0ZWRJbnRvVHJlZSgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5oCmluZGV4IDc4Njcw
N2FiNGNjNTQ5NjBkZmVkYmFiZDdiZTFlZTcyMGY1YzJkY2IuLmQyMDVjYWY5MjE5MTI0MmU0YWZh
ZmExOWIyNjAxNDJhOWYyZDQxOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdmcvUmVuZGVyU1ZHUm9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUm9vdC5oCkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXlv
dXQoKSBvdmVycmlkZTsKICAgICB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmKSBvdmVycmlkZTsKIAotICAgIHZvaWQgd2lsbEJlRGVzdHJveWVkKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgaW5zZXJ0ZWRJbnRvVHJlZSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
d2lsbEJlUmVtb3ZlZEZyb21UcmVlKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcAppbmRleCBiNDMxZDZjOTFhOWYxYzg5YjMzN2Jj
M2M1NWM5NWY5M2ZjMzU1MWU4Li4xMDBkYTc1MzE1M2IxMDYzYTllZDQ5NTY5NzE1NDg1NDZkZTYy
ODAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Rl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5j
cHAKQEAgLTIyNSwxMiArMjI1LDEyIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjaGVja0xheW91dEF0
dHJpYnV0ZXNDb25zaXN0ZW5jeShSZW5kZXJTVkdUZXh0KiB0ZXh0LCBWZWN0b3I8CiAjZW5kaWYK
IH0KIAotdm9pZCBSZW5kZXJTVkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoKQordm9pZCBSZW5kZXJT
VkdUZXh0Ojp3aWxsQmVEZXN0cm95ZWQoUmVuZGVyVHJlZUJ1aWxkZXImIGJ1aWxkZXIpCiB7CiAg
ICAgbV9sYXlvdXRBdHRyaWJ1dGVzLmNsZWFyKCk7CiAgICAgbV9sYXlvdXRBdHRyaWJ1dGVzQnVp
bGRlci5jbGVhclRleHRQb3NpdGlvbmluZ0VsZW1lbnRzKCk7CiAKLSAgICBSZW5kZXJTVkdCbG9j
azo6d2lsbEJlRGVzdHJveWVkKCk7CisgICAgUmVuZGVyU1ZHQmxvY2s6OndpbGxCZURlc3Ryb3ll
ZChidWlsZGVyKTsKIH0KIAogdm9pZCBSZW5kZXJTVkdUZXh0OjpzdWJ0cmVlQ2hpbGRXaWxsQmVS
ZW1vdmVkKFJlbmRlck9iamVjdCogY2hpbGQsIFZlY3RvcjxTVkdUZXh0TGF5b3V0QXR0cmlidXRl
cyosIDI+JiBhZmZlY3RlZEF0dHJpYnV0ZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDEyNzI5MGFmOTJlMWFjN2NkNmJiOTUxNDA3MDAwN2Q4
OWZmMGQ4MmIuLmMzODc2N2EzNjI3NWNlYmJiNTdjMzhkYTJhNWM1NTkxNWIwODM1M2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBAIC04NSw3ICs4
NSw3IEBAIHByaXZhdGU6CiAgICAgY29uc3QgUmVuZGVyT2JqZWN0KiBwdXNoTWFwcGluZ1RvQ29u
dGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIGFuY2VzdG9yVG9TdG9wQXQsIFJl
bmRlckdlb21ldHJ5TWFwJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRDaGlsZChSZW5k
ZXJUcmVlQnVpbGRlciYsIFJlbmRlclB0cjxSZW5kZXJPYmplY3Q+IGNoaWxkLCBSZW5kZXJPYmpl
Y3QqIGJlZm9yZUNoaWxkID0gbnVsbHB0cikgb3ZlcnJpZGU7CiAgICAgUmVuZGVyUHRyPFJlbmRl
ck9iamVjdD4gdGFrZUNoaWxkKFJlbmRlclRyZWVCdWlsZGVyJiwgUmVuZGVyT2JqZWN0Jikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdp
bGxCZURlc3Ryb3llZChSZW5kZXJUcmVlQnVpbGRlciYpIG92ZXJyaWRlOwogCiAgICAgY29uc3Qg
QWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3JtKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9sb2NhbFRyYW5zZm9ybTsgfQogICAgIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRy
YW5zZm9ybSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1
aWxkZXIuY3BwCmluZGV4IDRkMDVkMzcxOGRkN2UwNGRhM2Q4M2U4YjgxYTQwYmEzOWVjN2NlMzcu
LjEwMjRjZDlmMWZhZGFiZDUxYjgzOWY1ZDI5MWFmNmY1NjIwYzM1MTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNw
cApAQCAtMzg1LDcgKzM4NSw3IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OnJlbW92ZUZyb21Q
YXJlbnRBbmREZXN0cm95Q2xlYW5pbmdVcEFub255bW91c1dyYXBwZXJzKFJlCiB7CiAgICAgLy8g
SWYgdGhlIHRyZWUgaXMgZGVzdHJveWVkLCB0aGVyZSBpcyBubyBuZWVkIGZvciBhIGNsZWFuLXVw
IHBoYXNlLgogICAgIGlmIChjaGlsZC5yZW5kZXJUcmVlQmVpbmdEZXN0cm95ZWQoKSkgewotICAg
ICAgICBjaGlsZC5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgICAgICBjaGlsZC5y
ZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgqdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJU
cmVlQnVpbGRlckxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKaW5kZXggYjAwOGM1YTZlYjZiZjUwZDA2MWQ0YTU2MTc0
ZWJmMjA1YzM5YWYxOC4uM2MxOTZjNjNiMzFhMzNiMWQ0OWU4NDAzMzEyZDdjYzgwOTQ2Y2JlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVC
dWlsZGVyTGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1Jl
bmRlclRyZWVCdWlsZGVyTGlzdC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgdm9pZCBSZW5kZXJUcmVl
QnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtlcihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW1S
ZW5kZXJlcikKIAogICAgIGlmIChzdHlsZS5saXN0U3R5bGVUeXBlKCkgPT0gTm9uZUxpc3RTdHls
ZSAmJiAoIXN0eWxlLmxpc3RTdHlsZUltYWdlKCkgfHwgc3R5bGUubGlzdFN0eWxlSW1hZ2UoKS0+
ZXJyb3JPY2N1cnJlZCgpKSkgewogICAgICAgICBpZiAoYXV0byogbWFya2VyID0gbGlzdEl0ZW1S
ZW5kZXJlci5tYXJrZXJSZW5kZXJlcigpKQotICAgICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9t
UGFyZW50QW5kRGVzdHJveSgpOworICAgICAgICAgICAgbWFya2VyLT5yZW1vdmVGcm9tUGFyZW50
QW5kRGVzdHJveShtX2J1aWxkZXIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjEs
NyArMTIxLDcgQEAgdm9pZCBSZW5kZXJUcmVlQnVpbGRlcjo6TGlzdDo6dXBkYXRlSXRlbU1hcmtl
cihSZW5kZXJMaXN0SXRlbSYgbGlzdEl0ZW1SZW5kZXJlcikKIAogICAgIC8vIElmIGN1cnJlbnQg
cGFyZW50IGlzIGFuIGFub255bW91cyBibG9jayB0aGF0IGhhcyBsb3N0IGFsbCBpdHMgY2hpbGRy
ZW4sIGRlc3Ryb3kgaXQuCiAgICAgaWYgKGN1cnJlbnRQYXJlbnQgJiYgY3VycmVudFBhcmVudC0+
aXNBbm9ueW1vdXNCbG9jaygpICYmICFjdXJyZW50UGFyZW50LT5maXJzdENoaWxkKCkgJiYgIWRv
d25jYXN0PFJlbmRlckJsb2NrPigqY3VycmVudFBhcmVudCkuY29udGludWF0aW9uKCkpCi0gICAg
ICAgIGN1cnJlbnRQYXJlbnQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7CisgICAgICAg
IGN1cnJlbnRQYXJlbnQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KG1fYnVpbGRlcik7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91
cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlck11bHRpQ29sdW1uLmNwcAppbmRleCBkN2ZjMzQ5MDlj
ZDZlYWEyZWJhOWU1ZTE5YmRlNWE0MDUzZWYxZDEwLi5iMjFiNjdmYjQ2NmMyNTE0NGMxZjZhYzcw
OGI5ZmUwNTQyMmY5ZjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJNdWx0aUNvbHVtbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyTXVsdGlDb2x1bW4uY3BwCkBA
IC0yMTEsMTEgKzIxMSwxMSBAQCB2b2lkIFJlbmRlclRyZWVCdWlsZGVyOjpNdWx0aUNvbHVtbjo6
ZGVzdHJveUZyYWdtZW50ZWRGbG93KFJlbmRlckJsb2NrRmxvdyYgZmxvdwogICAgICAgICBwYXJl
bnRBbmRTcGFubmVyTGlzdC5hcHBlbmQoc3RkOjptYWtlX3BhaXIoc3Bhbm5lck9yaWdpbmFsUGFy
ZW50LCBzcGFubmVyLT5wYXJlbnQoKS0+dGFrZUNoaWxkKG1fYnVpbGRlciwgKnNwYW5uZXIpKSk7
CiAgICAgfQogICAgIHdoaWxlIChhdXRvKiBjb2x1bW5TZXQgPSBtdWx0aUNvbHVtbkZsb3cuZmly
c3RNdWx0aUNvbHVtblNldCgpKQotICAgICAgICBjb2x1bW5TZXQtPnJlbW92ZUZyb21QYXJlbnRB
bmREZXN0cm95KCk7CisgICAgICAgIGNvbHVtblNldC0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ry
b3kobV9idWlsZGVyKTsKIAogICAgIGZsb3cuY2xlYXJNdWx0aUNvbHVtbkZsb3coKTsKICAgICBt
dWx0aUNvbHVtbkZsb3cubW92ZUFsbENoaWxkcmVuVG8obV9idWlsZGVyLCAmZmxvdywgUmVuZGVy
Qm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwotICAgIG11bHRp
Q29sdW1uRmxvdy5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgIG11bHRpQ29sdW1u
Rmxvdy5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveShtX2J1aWxkZXIpOwogICAgIGZvciAoYXV0
byYgcGFyZW50QW5kU3Bhbm5lciA6IHBhcmVudEFuZFNwYW5uZXJMaXN0KQogICAgICAgICBtX2J1
aWxkZXIuaW5zZXJ0Q2hpbGQoKnBhcmVudEFuZFNwYW5uZXIuZmlyc3QsIFdURk1vdmUocGFyZW50
QW5kU3Bhbm5lci5zZWNvbmQpKTsKIH0KQEAgLTM3MSwxMyArMzcxLDEzIEBAIHZvaWQgUmVuZGVy
VHJlZUJ1aWxkZXI6Ok11bHRpQ29sdW1uOjpoYW5kbGVTcGFubmVyUmVtb3ZhbChSZW5kZXJNdWx0
aUNvbHVtbkZsb3cmCiB7CiAgICAgLy8gVGhlIHBsYWNlaG9sZGVyIG1heSBhbHJlYWR5IGhhdmUg
YmVlbiByZW1vdmVkLCBidXQgaWYgaXQgaGFzbid0LCBkbyBzbyBub3cuCiAgICAgaWYgKGF1dG8g
cGxhY2Vob2xkZXIgPSBmbG93LnNwYW5uZXJNYXAoKS50YWtlKCZkb3duY2FzdDxSZW5kZXJCb3g+
KHNwYW5uZXIpKSkKLSAgICAgICAgcGxhY2Vob2xkZXItPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0
cm95KCk7CisgICAgICAgIHBsYWNlaG9sZGVyLT5yZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSht
X2J1aWxkZXIpOwogCiAgICAgaWYgKGF1dG8qIG5leHQgPSBzcGFubmVyLm5leHRTaWJsaW5nKCkp
IHsKICAgICAgICAgaWYgKGF1dG8qIHByZXZpb3VzID0gc3Bhbm5lci5wcmV2aW91c1NpYmxpbmco
KSkgewogICAgICAgICAgICAgaWYgKHByZXZpb3VzLT5pc1JlbmRlck11bHRpQ29sdW1uU2V0KCkg
JiYgbmV4dC0+aXNSZW5kZXJNdWx0aUNvbHVtblNldCgpKSB7CiAgICAgICAgICAgICAgICAgLy8g
TWVyZ2UgdHdvIHNldHMgdGhhdCBubyBsb25nZXIgd2lsbCBiZSBzZXBhcmF0ZWQgYnkgYSBzcGFu
bmVyLgotICAgICAgICAgICAgICAgIG5leHQtPnJlbW92ZUZyb21QYXJlbnRBbmREZXN0cm95KCk7
CisgICAgICAgICAgICAgICAgbmV4dC0+cmVtb3ZlRnJvbVBhcmVudEFuZERlc3Ryb3kobV9idWls
ZGVyKTsKICAgICAgICAgICAgICAgICBwcmV2aW91cy0+c2V0TmVlZHNMYXlvdXQoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyUnVieS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcAppbmRleCA0MDdiOGNmMDlh
YTI5YzhkZmQwNTcyMmNhNzVhOWVlMTNlZDhkN2YyLi44NTQ0ZDg2MDk2ZTNhZmI3ZTk0MWQzYTI0
ZDMxMjczZDU4MDZkNjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXJSdWJ5LmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OlJ1Ynk6Om1vdmVCbG9ja0NoaWxkcmVuKFJlbmRl
clJ1YnlCYXNlJiBmcm9tLCBSZW5kZXJSdWJ5CiAgICAgICAgIGF1dG8qIGFub25CbG9ja1RoZXJl
ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2s+KGxhc3RDaGlsZFRoZXJlKTsKICAgICAgICAgYW5vbkJs
b2NrSGVyZS0+bW92ZUFsbENoaWxkcmVuVG8obV9idWlsZGVyLCBhbm9uQmxvY2tUaGVyZSwgUmVu
ZGVyQm94TW9kZWxPYmplY3Q6Ok5vcm1hbGl6ZUFmdGVySW5zZXJ0aW9uOjpZZXMpOwogICAgICAg
ICBhbm9uQmxvY2tIZXJlLT5kZWxldGVMaW5lcygpOwotICAgICAgICBhbm9uQmxvY2tIZXJlLT5y
ZW1vdmVGcm9tUGFyZW50QW5kRGVzdHJveSgpOworICAgICAgICBhbm9uQmxvY2tIZXJlLT5yZW1v
dmVGcm9tUGFyZW50QW5kRGVzdHJveShtX2J1aWxkZXIpOwogICAgIH0KICAgICAvLyBNb3ZlIGFs
bCByZW1haW5pbmcgY2hpbGRyZW4gbm9ybWFsbHkuCiAgICAgZnJvbS5tb3ZlQ2hpbGRyZW5Ubyht
X2J1aWxkZXIsICZ0bywgZnJvbS5maXJzdENoaWxkKCksIGJlZm9yZUNoaWxkLCBSZW5kZXJCb3hN
b2RlbE9iamVjdDo6Tm9ybWFsaXplQWZ0ZXJJbnNlcnRpb246Ok5vKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>