<?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>145758</bug_id>
          
          <creation_ts>2015-06-08 08:29:18 -0700</creation_ts>
          <short_desc>Replaced 0 with nullptr in WebCore/Modules.</short_desc>
          <delta_ts>2015-06-08 16:36:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hunseop Jeong">hs85.jeong</reporter>
          <assigned_to name="Hunseop Jeong">hs85.jeong</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1100367</commentid>
    <comment_count>0</comment_count>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-06-08 08:29:18 -0700</bug_when>
    <thetext>Replaced 0 with nullptr in WebCore/Modules.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100368</commentid>
    <comment_count>1</comment_count>
      <attachid>254493</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-06-08 08:40:32 -0700</bug_when>
    <thetext>Created attachment 254493
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100386</commentid>
    <comment_count>2</comment_count>
      <attachid>254497</attachid>
    <who name="Hunseop Jeong">hs85.jeong</who>
    <bug_when>2015-06-08 09:43:06 -0700</bug_when>
    <thetext>Created attachment 254497
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100502</commentid>
    <comment_count>3</comment_count>
      <attachid>254497</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-08 16:36:54 -0700</bug_when>
    <thetext>Comment on attachment 254497
Patch

Clearing flags on attachment: 254497

Committed r185336: &lt;http://trac.webkit.org/changeset/185336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1100503</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-08 16:36:59 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254493</attachid>
            <date>2015-06-08 08:40:32 -0700</date>
            <delta_ts>2015-06-08 09:43:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145758-20150609004003.patch</filename>
            <type>text/plain</type>
            <size>54120</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJhNThkMGY2Yjk1NmM3
NzZhNzdmYjk0YTBhOTg2NjUxZWM2N2YzYy4uZDE3YzY5MGE4YzQ3NDdhNzFjYmQwY2YzYmNkMDM1
OWUyMDYyNTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDEzMiBAQAogMjAxNS0wNi0wOCAgSHVu
c2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CiAKKyAgICAgICAgUmVwbGFjZWQg
MCB3aXRoIG51bGxwdHIgaW4gV2ViQ29yZS9Nb2R1bGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2VzLgorCisgICAgICAgICogTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJhdHRlcnlNYW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAg
ICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
OjpDRE0pOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6TWVkaWFLZXlzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5czo6fk1lZGlhS2V5cyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rp
b24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRp
b25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvckFkdmFuY2VPcGVyYXRpb246OnBlcmZv
cm0pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3Jt
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6SURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJFdmVudERpc3BhdGNoZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkluZGV4OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpjb3VudCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjppbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlOjpjb3VudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
OjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9pbmRp
ZXVpL1VJUmVxdWVzdEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2ZW50
SW5pdDo6VUlSZXF1ZXN0RXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2
ZW50OjpVSVJlcXVlc3RFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyOjp+U291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1l
ZGlhU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1FdmVudEluaXQ6Ok1lZGlhU3Ry
ZWFtRXZlbnRJbml0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrRXZlbnRJ
bml0OjpNZWRpYVN0cmVhbVRyYWNrRXZlbnRJbml0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFu
bmVsOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ry
b3llZCk6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hT
eW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50
aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
U3ludGhlc2lzOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpo
YW5kbGVTcGVha2luZ0NvbXBsZXRlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZTo6flNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpjbGVhclBhbm5lck5vZGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQ29udGV4dDo6Y3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6fk1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpPc2NpbGxhdG9yTm9kZTo6c2V0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpPc2NpbGxhdG9yTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjpEYXRhYmFzZU1hbmFnZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OkRh
dGFiYXNlVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFz
ZVRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpT
UUxDYWxsYmFja1dyYXBwZXI6OnVud3JhcCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVu
dEJhY2tlbmQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRlbWVudCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnJlbGVhc2VMb2NrKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6Y2xlYXJQZWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdG9wKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlU29ja2V0U3RyZWFtKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldEhhbmRzaGFrZTo6Y2xlYXJTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVl
cjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKToKKworMjAxNS0wNi0wOCAg
SHVuc2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CisKICAgICAgICAgVXNlIG1v
ZGVybiBmb3ItbG9vcHMgaW4gV2ViQ29yZS9Nb2R1bGVzIC0gMgogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NTQxCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0dGVyeU1hbmFnZXIuY3BwCmluZGV4IGNhNDdlMzM3ODYy
MjIyYjYzODE1NzA5N2Q2OGM1NzQyYjczODMzOGEuLjNjMWVhNzc0NTZmNGQyYTk2Nzc3ZTQ5ZGM2
NTAxMTRhMjg2NjVmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVy
eS9CYXR0ZXJ5TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5
L0JhdHRlcnlNYW5hZ2VyLmNwcApAQCAtNDYsNyArNDYsNyBAQCBCYXR0ZXJ5TWFuYWdlcjo6fkJh
dHRlcnlNYW5hZ2VyKCkKIEJhdHRlcnlNYW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcihOYXZpZ2F0b3Iq
IG5hdmlnYXRvcikKICAgICA6IEFjdGl2ZURPTU9iamVjdChuYXZpZ2F0b3ItPmZyYW1lKCktPmRv
Y3VtZW50KCkpCiAgICAgLCBtX2JhdHRlcnlDb250cm9sbGVyKEJhdHRlcnlDb250cm9sbGVyOjpm
cm9tKG5hdmlnYXRvci0+ZnJhbWUoKS0+cGFnZSgpKSkKLSAgICAsIG1fYmF0dGVyeVN0YXR1cygw
KQorICAgICwgbV9iYXR0ZXJ5U3RhdHVzKG51bGxwdHIpCiB7CiAgICAgbV9iYXR0ZXJ5Q29udHJv
bGxlci0+YWRkTGlzdGVuZXIodGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
Y3J5cHRlZG1lZGlhL0NETS5jcHAKaW5kZXggMzkyZGRjMjY1Y2Q3ZTFhMjAyZjUwNDExNzYyZDgz
ZTFiOTkyNGFiYS4uZDYzYTRmNGUwODc3YzQyMmM0NzhkOTM4M2Q1YThjZWU5MWIyMGM0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtMTE4
LDcgKzExOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDRE0+IENETTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtKQogCiBDRE06OkNETShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICA6
IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKLSAgICAsIG1fY2xpZW50KDApCisgICAgLCBtX2NsaWVu
dChudWxscHRyKQogewogICAgIG1fcHJpdmF0ZSA9IENETUZhY3RvcnlGb3JLZXlTeXN0ZW0oa2V5
U3lzdGVtKS0+Y29uc3RydWN0b3IodGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL01lZGlhS2V5cy5jcHAKaW5kZXggNTY0M2FiZWRlZTNmMTAx
ZTg4NTJmOGUwZWZhMzFiYjIyYzRhYTlmNy4uOGIzNGUxMWE5Y2Q0NWI1MTBlYzQyN2NiZTk2NjM5
OGYyNWQzZGZmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRt
ZWRpYS9NZWRpYUtleXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvTWVkaWFLZXlzLmNwcApAQCAtNjYsNyArNjYsNyBAQCBSZWZQdHI8TWVkaWFLZXlzPiBN
ZWRpYUtleXM6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCiB9CiAKIE1lZGlhS2V5czo6TWVkaWFLZXlzKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBz
dGQ6OnVuaXF1ZV9wdHI8Q0RNPiBjZG0pCi0gICAgOiBtX21lZGlhRWxlbWVudCgwKQorICAgIDog
bV9tZWRpYUVsZW1lbnQobnVsbHB0cikKICAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKICAg
ICAsIG1fY2RtKFdURjo6bW92ZShjZG0pKQogewpAQCAtNzksNyArNzksNyBAQCBNZWRpYUtleXM6
On5NZWRpYUtleXMoKQogICAgIC8vIFdoZW4gZGVzdHJveWluZyBhIE1lZGlhS2V5cyBvYmplY3Qs
IGZvbGxvdyB0aGUgc3RlcHMgaW4gY2xvc2UoKS4KICAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBt
X3Nlc3Npb25zKSB7CiAgICAgICAgIHNlc3Npb24tPmNsb3NlKCk7Ci0gICAgICAgIHNlc3Npb24t
PnNldEtleXMoMCk7CisgICAgICAgIHNlc3Npb24tPnNldEtleXMobnVsbHB0cik7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJz
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4
IGM0M2NiNGEyYjg1NDFlZDJlYWM4YWI1YTI3YTlkM2YyY2M4MjhkMWQuLjdkZGRjYWJiMmU1MTFi
MjliYTQ3ZDU1MTNlYjFkNmM4YWFkNGIyNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkN1cnNvci5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0ZShKU0M6OkV4ZWNTdGF0ZSosIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBs
b25nLCBFeGNlcHRpb25Db2RlJik7CiAgICAgLy8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNv
ZGUgZ2VuZXJhdG9yIHNvIHRoaXMgb3ZlcmxvYWQgaXMgdW5uZWVkZWQuCi0gICAgdm9pZCBjb250
aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiBlYykg
eyBjb250aW51ZUZ1bmN0aW9uKHN0YXRpY19jYXN0PElEQktleSo+KDApLCBlYyk7IH0KKyAgICB2
b2lkIGNvbnRpbnVlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IGNvbnRpbnVlRnVuY3Rpb24oc3RhdGljX2Nhc3Q8SURCS2V5Kj4obnVsbHB0ciks
IGVjKTsgfQogICAgIHZvaWQgY29udGludWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwog
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3Bw
CmluZGV4IGJkNmNjMmI5NDU0NDNlNjNmYmE1YTA2MDJiMTliZGRlOGVjZjRhYTguLmNkYTE2OTdk
YWJmNGZhNjczMGUzYTViZjJlNzcwNmNlM2MyYTFjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0
aW9ucy5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uOjpw
ZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCiAgICAgICAg
IH0gZWxzZSBpZiAoIWtleSkgewogICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlcnJvciBi
dXQgYWxzbyBubyBrZXksIHRoZW4gdGhlIGN1cnNvciByZWFjaGVkIHRoZSBlbmQuCiAgICAgICAg
ICAgICBtX2N1cnNvci0+Y2xlYXIoKTsKLSAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nl
c3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOworICAgICAgICAgICAgbV9jYWxsYmFj
a3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihudWxscHRyKSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX2N1cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXku
Z2V0KCksIHByaW1hcnlLZXkuZ2V0KCksIHZhbHVlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAg
IG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CkBA
IC03Miw3ICs3Miw3IEBAIHZvaWQgQ3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3JtKHN0
ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCiAgICAgICAgIH0gZWxzZSBp
ZiAoIWtleSkgewogICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlcnJvciBidXQgYWxzbyBu
byBrZXksIHRoZW4gdGhlIGN1cnNvciByZWFjaGVkIHRoZSBlbmQuCiAgICAgICAgICAgICBtX2N1
cnNvci0+Y2xlYXIoKTsKLSAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGlj
X2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3Vj
Y2VzcyhzdGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihudWxscHRyKSk7CiAgICAgICAgIH0gZWxz
ZSB7CiAgICAgICAgICAgICBtX2N1cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHBy
aW1hcnlLZXkuZ2V0KCksIHZhbHVlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY2FsbGJh
Y2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYzAwZmMw
OTNlODNiNjRmNjA2MWE3OWQ2YmRmMWExMTM1N2Y3ZWY4Zi4uODQ2OTUxOTBmOWMwMTgwNWY1MzJi
MzgzOGI1YmFhMjNhZWViZWIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgSURCRGF0YWJh
c2U6OnRyYW5zYWN0aW9uRmluaXNoZWQoSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogCiAg
ICAgaWYgKHRyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSkgewogICAgICAgICBBU1NFUlQo
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24pOwotICAgICAgICBtX3Zl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9IDA7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5z
YWN0aW9uID0gbnVsbHB0cjsKICAgICB9CiAKICAgICBpZiAobV9jbG9zZVBlbmRpbmcgJiYgbV90
cmFuc2FjdGlvbnMuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZDky
YTM1MTBjZDk0YzM4NGI3MGMzYWQyNzFmNTVmY2ZlNDgxMTIyZC4uNjFmMjZlOTlmZGYwNGI2NjY2
YTUwZTY5ZGYxM2RhZWI4NmQ0MjI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC0z
OCw3ICszOCw3IEBAIFJlZjxJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGw+IElEQkRhdGFiYXNlQ2Fs
bGJhY2tzSW1wbDo6Y3JlYXRlKCkKIH0KIAogSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpJREJE
YXRhYmFzZUNhbGxiYWNrc0ltcGwoKQotICAgIDogbV9kYXRhYmFzZSgwKQorICAgIDogbV9kYXRh
YmFzZShudWxscHRyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJFdmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRXZlbnREaXNwYXRjaGVyLmNwcAppbmRleCAwOWExNTE0ODEyNDQ4OTU3
NTc2ZDc0ZTkwY2E0YzViMWY5NWQyMTJiLi5iODhlZGU1OGQ4MWU0MDZjODAyZTUzZThhNDE4NzQ5
YmQxMzM3YTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJFdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkV2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBJREJFdmVu
dERpc3BhdGNoZXI6OmRpc3BhdGNoKEV2ZW50KiBldmVudCwgVmVjdG9yPFJlZlB0cjxFdmVudFRh
cmdldD4+JiBldmUKICAgICAvLyAgICAgICAgZXZlbnQgb24gdGhlIHdpbmRvdyB1bnRpbCB0aGF0
IGhhcyBiZWVuIGltcGxlbWVudGVkKS4iIC0tIEpvbmFzIFNpY2tpbmcKIAogZG9uZURpc3BhdGNo
aW5nOgotICAgIGV2ZW50LT5zZXRDdXJyZW50VGFyZ2V0KDApOworICAgIGV2ZW50LT5zZXRDdXJy
ZW50VGFyZ2V0KG51bGxwdHIpOwogICAgIGV2ZW50LT5zZXRFdmVudFBoYXNlKDApOwogICAgIHJl
dHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJJbmRleC5oCmluZGV4IGIxNmY3OGY1OWRkMTc3NzQyZmZkNzk1NGE1
YTc3ZmUzNmJmZDMyODAuLjFhOWU0NzY3OTJjOWI1Zjk1ZmJiYzAwMTUwZTkyN2M3ZDZiYjA5ZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaApAQCAtNjEs
MTYgKzYxLDE2IEBAIHB1YmxpYzoKICAgICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9t
ZXRhZGF0YS5pZDsgfQogCiAgICAgLy8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNvZGUgZ2Vu
ZXJhdG9yIHNvIHRoaXMgaXMgdW5uZWVkZWQuCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBv
cGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdl
Kj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4g
b3BlbkN1cnNvcihjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIpLCBl
Yyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4
Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLCBJ
REJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBv
cGVuQ3Vyc29yKGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsg
fQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9u
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYg
a2V5LCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
RXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElE
QktleVJhbmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0
dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVj
KTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3Qg
RGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRl
eHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBzdGF0
aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIpLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJl
dHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLCBJREJDdXJzb3I6OmRpcmVjdGlv
bk5leHQoKSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29y
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNv
bnRleHQsIGtleSwgSURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRp
b25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJP
YmplY3RTdG9yZS5jcHAKaW5kZXggY2U5ZDJjZWZkNTRiZmMxZjNiZjRkZjkyMmNmMmI0YWNmNmMx
MzU3Yi4uZThiZjlkZGVmZTQ5N2I1NjNkOThmMDg1MGVhZThkNDg3ZWIyMjViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApA
QCAtMTA0LDcgKzEwNCw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6
OmFkZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIERlcHJlY2F0ZWQ6OlNjCiBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExP
RyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0U3RvcmU6OmFkZCIpOwotICAgIHJldHVybiBwdXQoSURC
RGF0YWJhc2VCYWNrZW5kOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZh
bHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPigwKSwgZWMpOworICAgIHJldHVybiBwdXQoSURCRGF0
YWJhc2VCYWNrZW5kOjpBZGRPbmx5LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVl
LCBzdGF0aWNfY2FzdDxJREJLZXkqPihudWxscHRyKSwgZWMpOwogfQogCiBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVl
JiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVjKQpAQCAtMTE2LDcgKzExNiw3IEBAIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIERl
cHJlY2F0ZWQ6OlNjCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQo
SlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0U3RvcmU6
OnB1dCIpOwotICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpBZGRPclVwZGF0ZSwg
SURCQW55OjpjcmVhdGUodGhpcyksIHN0YXRlLCB2YWx1ZSwgc3RhdGljX2Nhc3Q8SURCS2V5Kj4o
MCksIGVjKTsKKyAgICByZXR1cm4gcHV0KElEQkRhdGFiYXNlQmFja2VuZDo6QWRkT3JVcGRhdGUs
IElEQkFueTo6Y3JlYXRlKHRoaXMpLCBzdGF0ZSwgdmFsdWUsIHN0YXRpY19jYXN0PElEQktleSo+
KG51bGxwdHIpLCBlYyk7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmQ6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYgdmFsdWUsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhj
ZXB0aW9uQ29kZSYgZWMpCkBAIC0zMTUsNyArMzE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVj
dG9yPGludDY0X3QsIDE+IGluZGV4SWRzOwogICAgICAgICBpbmRleElkcy5hcHBlbmQobV9pbmRl
eE1ldGFkYXRhLmlkKTsKICAgICAgICAgaWYgKGN1cnNvcikgewotICAgICAgICAgICAgY3Vyc29y
LT5jb250aW51ZUZ1bmN0aW9uKHN0YXRpY19jYXN0PElEQktleSo+KDApLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICAgICAgICAgIGN1cnNvci0+Y29udGludWVGdW5jdGlvbihzdGF0aWNfY2Fz
dDxJREJLZXkqPihudWxscHRyKSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgICAg
IFJlZlB0cjxJREJLZXk+IHByaW1hcnlLZXkgPSBjdXJzb3ItPmlkYlByaW1hcnlLZXkoKTsKICAg
ICAgICAgICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlIHZhbHVlID0gY3Vyc29yLT52YWx1ZSgp
OwpAQCAtNDI5LDcgKzQyOSw3IEBAIFBhc3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3Jl
OjppbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIHJl
dHVybiAwOwogICAgIH0KIAotICAgIGNvbnN0IElEQkluZGV4TWV0YWRhdGEqIGluZGV4TWV0YWRh
dGEoMCk7CisgICAgY29uc3QgSURCSW5kZXhNZXRhZGF0YSogaW5kZXhNZXRhZGF0YShudWxscHRy
KTsKICAgICBmb3IgKGF1dG8mIGluZGV4IDogbV9tZXRhZGF0YS5pbmRleGVzLnZhbHVlcygpKSB7
CiAgICAgICAgIGlmIChpbmRleC5uYW1lID09IG5hbWUpIHsKICAgICAgICAgICAgIGluZGV4TWV0
YWRhdGEgPSAmaW5kZXg7CkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZTo6
ZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIAogUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4g
b3BlbkN1cnNvcihjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KDApLCBlYyk7Cisg
ICAgcmV0dXJuIG9wZW5DdXJzb3IoY29udGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFuZ2UqPihu
dWxscHRyKSwgZWMpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8
SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDdmZGVjODQw
ODRiMTM0NTg1NGViYTc4YmY1Y2FlMzlhYjVkMGE0MzcuLjU3NjZiZTAyOTNmOWM0NmRiNjYzODk2
OTNhYjBjOTU3M2UzZjkzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCT2JqZWN0U3RvcmUuaApAQCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgUGFz
c1JlZlB0cjxJREJJbmRleD4gaW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2Rl
Jik7CiAgICAgdm9pZCBkZWxldGVJbmRleChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRl
eHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJh
bmdlKj4obnVsbHB0ciksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRp
b25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9u
Q29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJPcGVuREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
Qk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4IDRiZjdiNmVhZDZhOTc4ODkzMGJhZWRmMzZiZDQ1M2Yx
OTdhZjM1NDUuLjVmNzA0MWMwYTAzMzUzYWYzMWZiNWZiZjIwZDBjOGFlMmNiMGRjZTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVl
c3QuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRl
TmVlZGVkKHVpbnQ2NF90IG9sZFZlcnNpb24sIFBhc3NSZWZQdHI8SURCRGF0YWJhCiAgICAgUmVm
UHRyPElEQkRhdGFiYXNlPiBpZGJEYXRhYmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRhYmFzZUJhY2tlbmQsIG1fZGF0YWJhc2VDYWxsYmFja3Mp
OwogICAgIGlkYkRhdGFiYXNlLT5zZXRNZXRhZGF0YShtZXRhZGF0YSk7CiAgICAgbV9kYXRhYmFz
ZUNhbGxiYWNrcy0+Y29ubmVjdChpZGJEYXRhYmFzZS5nZXQoKSk7Ci0gICAgbV9kYXRhYmFzZUNh
bGxiYWNrcyA9IDA7CisgICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IG51bGxwdHI7CiAKICAgICBJ
REJEYXRhYmFzZU1ldGFkYXRhIG9sZE1ldGFkYXRhKG1ldGFkYXRhKTsKICAgICBvbGRNZXRhZGF0
YS52ZXJzaW9uID0gb2xkVmVyc2lvbjsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIElEQk9wZW5E
QlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNzUmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZD4gcHJwQmFj
a2VuZCwgY29ucwogICAgICAgICBBU1NFUlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgICAg
IGlkYkRhdGFiYXNlID0gSURCRGF0YWJhc2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIGJhY2tlbmQucmVsZWFzZSgpLCBtX2RhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICAgICAgbV9k
YXRhYmFzZUNhbGxiYWNrcy0+Y29ubmVjdChpZGJEYXRhYmFzZS5nZXQoKSk7Ci0gICAgICAgIG1f
ZGF0YWJhc2VDYWxsYmFja3MgPSAwOworICAgICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gbnVs
bHB0cjsKICAgICAgICAgbV9yZXN1bHQgPSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5nZXQo
KSk7CiAgICAgfQogICAgIGlkYkRhdGFiYXNlLT5zZXRNZXRhZGF0YShtZXRhZGF0YSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDNi
MzFjMmRiODk5ODY2YjEzY2FkZGYyYzI2NDExZmZiMDdkMGQzZDcuLjllNTAxYjRmODYyNmIwNDAx
NmRlY2Q5NTg2MTZhODE1M2ZhNjVhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC03MCw3ICs3MCw3IEBAIFJlZjxJREJSZXF1ZXN0
PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJCiAKIElEQlJlcXVlc3Q6OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSURCRGF0YWJhc2VCYWNrZW5k
OjpUYXNrVHlwZSB0YXNrVHlwZSwgSURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDog
QWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCi0gICAgLCBtX3Jlc3VsdCgwKQorICAgICwgbV9yZXN1
bHQobnVsbHB0cikKICAgICAsIG1fZXJyb3JDb2RlKDApCiAgICAgLCBtX2NvbnRleHRTdG9wcGVk
KGZhbHNlKQogICAgICwgbV90cmFuc2FjdGlvbih0cmFuc2FjdGlvbikKQEAgLTgyLDcgKzgyLDcg
QEAgSURCUmVxdWVzdDo6SURCUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBQYXNzUmVmUHRyPElEQkFueT4gc291cmMKICAgICAsIG1fY3Vyc29yVHlwZShJbmRleGVkREI6
OkN1cnNvclR5cGU6OktleUFuZFZhbHVlKQogICAgICwgbV9jdXJzb3JEaXJlY3Rpb24oSW5kZXhl
ZERCOjpDdXJzb3JEaXJlY3Rpb246Ok5leHQpCiAgICAgLCBtX2N1cnNvckZpbmlzaGVkKGZhbHNl
KQotICAgICwgbV9wZW5kaW5nQ3Vyc29yKDApCisgICAgLCBtX3BlbmRpbmdDdXJzb3IobnVsbHB0
cikKICAgICAsIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudChmYWxzZSkKICAgICAsIG1fcHJl
dmVudFByb3BhZ2F0aW9uKGZhbHNlKQogICAgICwgbV9yZXF1ZXN0U3RhdGUoY29udGV4dCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNw
cAppbmRleCBmM2I5ZTUxYWRhZjdlYzM4ODMyZmMxNGRkN2ZhZjlkOGFlNjg5YTQ1Li45OTQ4YmM3
MmJiMjUyZWFkODA0ZWQwMzcxNTNkMjQxNGVhOGIxZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yMzksNyArMjM5
LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6T3BlbkN1cnNvck5vdGlmaWVyOjpjdXJzb3JGaW5p
c2hlZCgpCiB7CiAgICAgaWYgKG1fY3Vyc29yKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnVu
cmVnaXN0ZXJPcGVuQ3Vyc29yKG1fY3Vyc29yKTsKLSAgICAgICAgbV9jdXJzb3IgPSAwOworICAg
ICAgICBtX2N1cnNvciA9IG51bGxwdHI7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsK
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAppbmRleCA1YjE5MzI0MzU2MWE1ZjkwYTdhNmVj
OGJhYTNkZDhlN2M3ZDNiOTMxLi43OWJhODdjZmU2N2RlNmFkN2MyMjZkZjgzZTRiYTdkZTdmNzAw
ZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZC5jcHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIElEQlRy
YW5zYWN0aW9uQmFja2VuZDo6Y29tbWl0KCkKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5z
YWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAg
bV9kYXRhYmFzZSA9IDA7CisgICAgICAgIG1fZGF0YWJhc2UgPSBudWxscHRyOwogICAgIH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCmluZGV4IDFmZTQyNWMy
ZDMzOGY0ZGQ1YmU1YjRkZDg2ZDU3MWI5OTNkOWY3NzAuLjQxYzkyMTg0YTAwNjVhYmIxZWEwZjli
MWY3NjMwZDMxMjhiODAzZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMu
Y3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBPcGVuQ3Vyc29yT3BlcmF0aW9uOjpwZXJmb3Jt
KHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCiAgICAgICAgICAgICBt
X2NhbGxiYWNrcy0+b25FcnJvcihlcnJvcik7CiAgICAgICAgIH0gZWxzZSBpZiAoIWtleSkgewog
ICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlcnJvciBidXQgYWxzbyBubyBrZXksIHRoZW4g
dGhlIGN1cnNvciBoYWQgbm8gcmVjb3Jkcy4KLSAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1
Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkpOworICAgICAgICAgICAgbV9jYWxs
YmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxTaGFyZWRCdWZmZXIqPihudWxscHRyKSk7CiAg
ICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4gY3Vy
c29yID0gSURCQ3Vyc29yQmFja2VuZDo6Y3JlYXRlKGN1cnNvcklELCBtX2N1cnNvclR5cGUsIG1f
dGFza1R5cGUsICptX3RyYW5zYWN0aW9uLCBtX29iamVjdFN0b3JlSUQpOwogICAgICAgICAgICAg
Y3Vyc29yLT51cGRhdGVDdXJzb3JEYXRhKGtleS5nZXQoKSwgcHJpbWFyeUtleS5nZXQoKSwgdmFs
dWVCdWZmZXIuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRp
ZXVpL1VJUmVxdWVzdEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9V
SVJlcXVlc3RFdmVudC5jcHAKaW5kZXggYTRjMWVjODJjMWYyMjgzNzQyZDg3N2JkNzEyOTEzYTZj
YTI3ZWZmOS4uOTlmYzA4ZDUyODA0MTA1YWJiOWM5MjZiNTdlNjE0YzRkNTRhMDc1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuY3BwCkBA
IC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogVUlSZXF1ZXN0RXZlbnRJbml0
OjpVSVJlcXVlc3RFdmVudEluaXQoKQogICAgIDogVUlFdmVudEluaXQodHJ1ZSwgdHJ1ZSkKLSAg
ICAsIHJlY2VpdmVyKDApCisgICAgLCByZWNlaXZlcihudWxscHRyKQogewogfQogICAgIApAQCAt
NjQsNyArNjQsNyBAQCBVSVJlcXVlc3RFdmVudDo6VUlSZXF1ZXN0RXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiB0eXBlLCBib29sIGJ1YmJsZXMsIGJvb2wgY2FuYwogfQogCiBVSVJlcXVlc3RFdmVu
dDo6VUlSZXF1ZXN0RXZlbnQoKQotICAgIDogbV9yZWNlaXZlcigwKQorICAgIDogbV9yZWNlaXZl
cihudWxscHRyKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL01lZGlhU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
b3VyY2UvTWVkaWFTb3VyY2UuY3BwCmluZGV4IDVmN2FlZGMyMGYyMjBkMzViODU4YWY3OTFmMDQx
MzYxOTdkYWRiZTkuLmRlYzU5YzQ0YmUxODljZWJmNzIyM2IzMTRjMTlmMDUzZjI5YjhhMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIFJlZjxNZWRpYVNvdXJjZT4gTWVkaWFTb3VyY2U6OmNyZWF0
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQogCiBNZWRpYVNvdXJjZTo6TWVkaWFT
b3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9i
amVjdCgmY29udGV4dCkKLSAgICAsIG1fbWVkaWFFbGVtZW50KDApCisgICAgLCBtX21lZGlhRWxl
bWVudChudWxscHRyKQogICAgICwgbV9kdXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkp
CiAgICAgLCBtX3BlbmRpbmdTZWVrVGltZShNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAg
LCBtX3JlYWR5U3RhdGUoY2xvc2VkS2V5d29yZCgpKQpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQg
TWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkKIAog
ICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRLZXl3b3JkKCkpIHsKICAgICAgICAgbV9wcml2YXRlLmNs
ZWFyKCk7Ci0gICAgICAgIG1fbWVkaWFFbGVtZW50ID0gMDsKKyAgICAgICAgbV9tZWRpYUVsZW1l
bnQgPSBudWxscHRyOwogICAgICAgICBtX2R1cmF0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGlt
ZSgpOwogICAgIH0KIApAQCAtNjA1LDcgKzYwNSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnJlbW92
ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAg
ICAgICAgICAgICBBdWRpb1RyYWNrKiB0cmFjayA9IGF1ZGlvVHJhY2tzLT5sYXN0SXRlbSgpOwog
CiAgICAgICAgICAgICAvLyA1LjMuMSBTZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24g
dGhlIEF1ZGlvVHJhY2sgb2JqZWN0IHRvIG51bGwuCi0gICAgICAgICAgICB0cmFjay0+c2V0U291
cmNlQnVmZmVyKDApOworICAgICAgICAgICAgdHJhY2stPnNldFNvdXJjZUJ1ZmZlcihudWxscHRy
KTsKIAogICAgICAgICAgICAgLy8gNS4zLjIgSWYgdGhlIGVuYWJsZWQgYXR0cmlidXRlIG9uIHRo
ZSBBdWRpb1RyYWNrIG9iamVjdCBpcyB0cnVlLCB0aGVuIHNldCB0aGUgcmVtb3ZlZCBlbmFibGVk
CiAgICAgICAgICAgICAvLyBhdWRpbyB0cmFjayBmbGFnIHRvIHRydWUuCkBAIC02NDUsNyArNjQ1
LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciog
YnVmZmVyLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIFZpZGVvVHJhY2sqIHRyYWNr
ID0gdmlkZW9UcmFja3MtPmxhc3RJdGVtKCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNldCB0
aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8gbnVs
bC4KLSAgICAgICAgICAgIHRyYWNrLT5zZXRTb3VyY2VCdWZmZXIoMCk7CisgICAgICAgICAgICB0
cmFjay0+c2V0U291cmNlQnVmZmVyKG51bGxwdHIpOwogCiAgICAgICAgICAgICAvLyA3LjMuMiBJ
ZiB0aGUgc2VsZWN0ZWQgYXR0cmlidXRlIG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCBpcyB0cnVl
LCB0aGVuIHNldCB0aGUgcmVtb3ZlZCBzZWxlY3RlZAogICAgICAgICAgICAgLy8gdmlkZW8gdHJh
Y2sgZmxhZyB0byB0cnVlLgpAQCAtNjg1LDcgKzY4NSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnJl
bW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMp
CiAgICAgICAgICAgICBUZXh0VHJhY2sqIHRyYWNrID0gdGV4dFRyYWNrcy0+bGFzdEl0ZW0oKTsK
IAogICAgICAgICAgICAgLy8gOS4zLjEgU2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9u
IHRoZSBUZXh0VHJhY2sgb2JqZWN0IHRvIG51bGwuCi0gICAgICAgICAgICB0cmFjay0+c2V0U291
cmNlQnVmZmVyKDApOworICAgICAgICAgICAgdHJhY2stPnNldFNvdXJjZUJ1ZmZlcihudWxscHRy
KTsKIAogICAgICAgICAgICAgLy8gOS4zLjIgSWYgdGhlIG1vZGUgYXR0cmlidXRlIG9uIHRoZSBU
ZXh0VHJhY2sgb2JqZWN0IGlzIHNldCB0byAic2hvd2luZyIgb3IgImhpZGRlbiIsIHRoZW4KICAg
ICAgICAgICAgIC8vIHNldCB0aGUgcmVtb3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyB0byB0
cnVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3Vy
Y2VCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VC
dWZmZXIuY3BwCmluZGV4IDRmMjkxMDcwZTkzYjI3ZGM1Y2Y5NDY1YmEzNmJiMTY2NTU3OWExOWIu
LmQ3NTUxOGE3ZDY2ZGFhY2JmMThjYjExMDFiODA4ZWU2ZDkyODNmN2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTE1
MSw3ICsxNTEsNyBAQCBTb3VyY2VCdWZmZXI6On5Tb3VyY2VCdWZmZXIoKQogewogICAgIEFTU0VS
VChpc1JlbW92ZWQoKSk7CiAKLSAgICBtX3ByaXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3By
aXZhdGUtPnNldENsaWVudChudWxscHRyKTsKIH0KIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBT
b3VyY2VCdWZmZXI6OmJ1ZmZlcmVkKEV4Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAtNDQ3LDcg
KzQ0Nyw3IEBAIHZvaWQgU291cmNlQnVmZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKICAg
ICB9CiAKICAgICBtX3ByaXZhdGUtPnJlbW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKLSAgICBtX3Nv
dXJjZSA9IDA7CisgICAgbV9zb3VyY2UgPSBudWxscHRyOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZl
cjo6c2Vla1RvVGltZShjb25zdCBNZWRpYVRpbWUmIHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCmluZGV4IGE3ZGExMzhiMmM3
ZmQ4ZjQ2ODgyYTkwZGU1Y2Q3NjY1OWQ3ODc5NWMuLmFmYjUyM2FmNTRkOTU5MTIyNzk2ODA4MGE0
YjkxODJlMTdhNGJkNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBAIC0xMDgsNyArMTA4LDcgQEAgTWVkaWFTdHJlYW06Ok1l
ZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVk
aWFTdHJlYW0KIAogTWVkaWFTdHJlYW06On5NZWRpYVN0cmVhbSgpCiB7Ci0gICAgbV9wcml2YXRl
LT5zZXRDbGllbnQoMCk7CisgICAgbV9wcml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAK
IGJvb2wgTWVkaWFTdHJlYW06OmFjdGl2ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbUV2ZW50LmNwcAppbmRleCBjYmMw
MjQ2ZTBlZTE4MzllMzBmMDA1ZDhmN2I3NzJjOTVmNjIwYmE5Li5lZDdjMjNlNTNmZDc0ZDFkMTBk
ZDdlZWVhNjliNzA0MTQyYmE2ZmY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1FdmVudC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogTWVkaWFTdHJlYW1FdmVudEluaXQ6Ok1lZGlhU3RyZWFt
RXZlbnRJbml0KCkKLSAgICA6IHN0cmVhbSgwKQorICAgIDogc3RyZWFtKG51bGxwdHIpCiB7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja0V2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcAppbmRleCBlZmViZWJlMDVmMTUzNmNlNGU5NzY3ZGZj
NTNkN2QxZGFjY2VjNzdlLi4xNmRmZjk5NmViYmY2YTg0ZmYwM2E1NmFmNjZhZjNhNWM5NTcxMmY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3Ry
ZWFtVHJhY2tFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQuY3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIE1lZGlhU3RyZWFtVHJhY2tFdmVudEluaXQ6Ok1lZGlhU3RyZWFtVHJhY2tF
dmVudEluaXQoKQotICAgIDogdHJhY2soMCkKKyAgICA6IHRyYWNrKG51bGxwdHIpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNo
YW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hh
bm5lbC5jcHAKaW5kZXggODI3MTkxYzcyN2U3ODVhMDA2MGRkYTA0N2MxOTMzZDg4YTYzZmU2My4u
ZDc3MDhjYTA1YmVhZDE0MTY3N2ZjODQ1YTljMzM3NmU2NDRmZDMxNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAg
LTMwMCw4ICszMDAsOCBAQCB2b2lkIFJUQ0RhdGFDaGFubmVsOjpzdG9wKCkKIHsKICAgICBtX3N0
b3BwZWQgPSB0cnVlOwogICAgIG1fcmVhZHlTdGF0ZSA9IFJlYWR5U3RhdGVDbG9zZWQ7Ci0gICAg
bV9oYW5kbGVyLT5zZXRDbGllbnQoMCk7Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0g
MDsKKyAgICBtX2hhbmRsZXItPnNldENsaWVudChudWxscHRyKTsKKyAgICBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgPSBudWxscHRyOwogfQogCiB2b2lkIFJUQ0RhdGFDaGFubmVsOjpzY2hlZHVs
ZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRl
eCBjYmNlODEwZjEzMWIwMjlmZDNjMmMxZDRiNTJiYzkxYWMwZWNkMzRjLi4wNTk3NDcwNTUzM2Ew
NmRlZDczNmU4N2ZlOWU2ODA2YzJlODIyNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTIxMyw3ICsy
MTMsNyBAQCB2b2lkIFVzZXJNZWRpYVJlcXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogCiAgICAg
aWYgKG1fY29udHJvbGxlcikgewogICAgICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFJlcXVlc3Qo
KnRoaXMpOwotICAgICAgICBtX2NvbnRyb2xsZXIgPSAwOworICAgICAgICBtX2NvbnRyb2xsZXIg
PSBudWxscHRyOwogICAgIH0KIAogICAgIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250
ZXh0RGVzdHJveWVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZp
Y2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCmluZGV4IGIxZmEzMjAwNzZlMGVkZDIwYmNiNjI5MTIz
NjEzN2JiNzRjYmY4NDEuLjhmNzBmZTEzNDUxMDliNWUyNDE2ZTM1ZTE1NTBhNzE4NTU1MTk2ZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmlj
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3Rp
ZmljYXRpb24uY3BwCkBAIC01NCw3ICs1NCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5v
dGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9uKCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgwKQorICAg
IDogQWN0aXZlRE9NT2JqZWN0KG51bGxwdHIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uaAppbmRleCAyNzkyMDkyZWJl
ZmY2M2I0YzdhYTg4MDU0NTFhOWIzZjcxZDM5OTUyLi5kYjY5MzM5M2ZlYjkxNWNjNThhMDk5NGFl
ODcyYTNhNmM4ZTY2YmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlm
aWNhdGlvbnMvTm90aWZpY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3Rp
ZmljYXRpb25zL05vdGlmaWNhdGlvbi5oCkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShOT1RJRklDQVRJT05TKQogICAgIHN0YXRpYyBjb25zdCBTdHJpbmcgcGVybWlzc2lv
bihTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNv
bnN0IFN0cmluZyBwZXJtaXNzaW9uU3RyaW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lv
bik7Ci0gICAgc3RhdGljIHZvaWQgcmVxdWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCosIFBhc3NSZWZQdHI8Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiA9IDApOwor
ICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlvblBlcm1pc3Npb25DYWxsYmFjaz4gPSBudWxscHRyKTsK
ICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFN5bnRoZXNpcy5jcHAKaW5kZXggOTcxNDlmNGUyMDY2NjEwOWZmZWMxMjJmNGViMTUy
N2U3MWI3MWU4Yy4uY2Y3ZDM3OThiODhjNzZkNGU1YTZkNDhjODY3MjIwN2UzN2U3YmU5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3Bw
CkBAIC00Myw3ICs0Myw3IEBAIFJlZjxTcGVlY2hTeW50aGVzaXM+IFNwZWVjaFN5bnRoZXNpczo6
Y3JlYXRlKCkKIH0KICAgICAKIFNwZWVjaFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKCkKLSAg
ICA6IG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSgwKQorICAgIDogbV9jdXJyZW50U3BlZWNoVXR0
ZXJhbmNlKG51bGxwdHIpCiAgICAgLCBtX2lzUGF1c2VkKGZhbHNlKQogI2lmIFBMQVRGT1JNKElP
UykKICAgICAsIG1fcmVzdHJpY3Rpb25zKFJlcXVpcmVVc2VyR2VzdHVyZUZvclNwZWVjaFN0YXJ0
UmVzdHJpY3Rpb24pCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpzZXRQ
bGF0Zm9ybVN5bnRoZXNpemVyKHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoCiB7
CiAgICAgbV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyID0gV1RGOjptb3ZlKHN5bnRoZXNpemVy
KTsKICAgICBtX3ZvaWNlTGlzdC5jbGVhcigpOwotICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5j
ZSA9IDA7CisgICAgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICBtX3V0
dGVyYW5jZVF1ZXVlLmNsZWFyKCk7CiAgICAgbV9pc1BhdXNlZCA9IGZhbHNlOwogfQpAQCAtMTQ1
LDcgKzE0NSw3IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpjYW5jZWwoKQogICAgIG1fdXR0ZXJh
bmNlUXVldWUuY2xlYXIoKTsKICAgICBpZiAobV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKQog
ICAgICAgICBtX3BsYXRmb3JtU3BlZWNoU3ludGhlc2l6ZXItPmNhbmNlbCgpOwotICAgIGN1cnJl
bnQgPSAwOworICAgIGN1cnJlbnQgPSBudWxscHRyOwogICAgIAogICAgIC8vIFRoZSBwbGF0Zm9y
bSBzaG91bGQgaGF2ZSBjYWxsZWQgYmFjayBpbW1lZGlhdGVseSBhbmQgY2xlYXJlZCB0aGUgY3Vy
cmVudCB1dHRlcmFuY2UuCiAgICAgQVNTRVJUKCFtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UpOwpA
QCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpoYW5kbGVTcGVha2luZ0Nv
bXBsZXRlZChTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UqIHV0dGVyYW5jCiAgICAgQVNTRVJUKG1f
Y3VycmVudFNwZWVjaFV0dGVyYW5jZSk7CiAgICAgUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVy
YW5jZT4gcHJvdGVjdCh1dHRlcmFuY2UpOwogICAgIAotICAgIG1fY3VycmVudFNwZWVjaFV0dGVy
YW5jZSA9IDA7CisgICAgbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlID0gbnVsbHB0cjsKIAogICAg
IGZpcmVFdmVudChlcnJvck9jY3VycmVkID8gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgOiBldmVu
dE5hbWVzKCkuZW5kRXZlbnQsIHV0dGVyYW5jZSwgMCwgU3RyaW5nKCkpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJh
bmNlLmNwcAppbmRleCA4ZTc5ZTlkNGY5YzFjNjczMTY2OGEzMzViNGQ2YWU0OTUxZGI4ZmUwLi5k
OGJjN2E1NWMzMDk5OTE4MDUzYzcxM2MyYjZjOThhZTM1N2RkMWEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5j
ZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpTcGVlY2hT
eW50aGVzaXNVdHRlcmFuY2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGUKIAogU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlOjp+U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlKCkKIHsKLSAgICBt
X3BsYXRmb3JtVXR0ZXJhbmNlLT5zZXRDbGllbnQoMCk7CisgICAgbV9wbGF0Zm9ybVV0dGVyYW5j
ZS0+c2V0Q2xpZW50KG51bGxwdHIpOwogfQogCiBTcGVlY2hTeW50aGVzaXNWb2ljZSogU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlOjp2b2ljZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXgg
NjI3YjAxZDg0NjBjODM2ZDg0NDJiMjRlZjVmNTAyZWUxNzExODVhZi4uNDc1OWMzYjUwYmE1YmRm
MWI0ZDg2ODJkMGYyNjUwNzExYmZkNDdkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAtNTYsNyAr
NTYsNyBAQCBSZWY8QXVkaW9CdWZmZXJTb3VyY2VOb2RlPiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OmNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsCiAKIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlKEF1ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxl
UmF0ZSkKICAgICA6IEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShjb250ZXh0LCBzYW1wbGVSYXRl
KQotICAgICwgbV9idWZmZXIoMCkKKyAgICAsIG1fYnVmZmVyKG51bGxwdHIpCiAgICAgLCBtX2lz
TG9vcGluZyhmYWxzZSkKICAgICAsIG1fbG9vcFN0YXJ0KDApCiAgICAgLCBtX2xvb3BFbmQoMCkK
QEAgLTY1LDcgKzY1LDcgQEAgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpBdWRpb0J1ZmZlclNvdXJj
ZU5vZGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LCBmbG9hdCBzYW1wbGUKICAgICAsIG1fZ3JhaW5P
ZmZzZXQoMC4wKQogICAgICwgbV9ncmFpbkR1cmF0aW9uKERlZmF1bHRHcmFpbkR1cmF0aW9uKQog
ICAgICwgbV9sYXN0R2FpbigxLjApCi0gICAgLCBtX3Bhbm5lck5vZGUoMCkKKyAgICAsIG1fcGFu
bmVyTm9kZShudWxscHRyKQogewogICAgIHNldE5vZGVUeXBlKE5vZGVUeXBlQXVkaW9CdWZmZXJT
b3VyY2UpOwogCkBAIC02MDEsNyArNjAxLDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
OmNsZWFyUGFubmVyTm9kZSgpCiB7CiAgICAgaWYgKG1fcGFubmVyTm9kZSkgewogICAgICAgICBt
X3Bhbm5lck5vZGUtPmRlcmVmKEF1ZGlvTm9kZTo6UmVmVHlwZUNvbm5lY3Rpb24pOwotICAgICAg
ICBtX3Bhbm5lck5vZGUgPSAwOworICAgICAgICBtX3Bhbm5lck5vZGUgPSBudWxscHRyOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHQuY3BwCmluZGV4IGUzZWM5MTgzZTVhNDQxZjk2MTI4NzYzYWRmMjQyYTAzZmNlNzVjZTMuLjJl
ZDJlZjVkNGViY2FkM2NiOTMzY2FlZmYwYWIxMmZiYjNjOTU0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKQEAgLTQ1OCw3ICs0NTgs
NyBAQCBQYXNzUmVmUHRyPE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlPiBBdWRpb0NvbnRleHQ6
OmNyZWF0ZU1lZGlhU3RyZWFtU291cmNlKE1lZAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgbGF6eUluaXRpYWxpemUoKTsKIAotICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIHByb3Zp
ZGVyID0gMDsKKyAgICBBdWRpb1NvdXJjZVByb3ZpZGVyKiBwcm92aWRlciA9IG51bGxwdHI7CiAK
ICAgICBSZWZQdHI8TWVkaWFTdHJlYW1UcmFjaz4gYXVkaW9UcmFjazsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUuY3BwCmluZGV4IGIzMmZkNWRkOTMwODU3MDk2YzcxYmZjM2ZlZWMxZmZiOGQ4
MmY2ODYuLmVhYjBhNTZhMjJhMjhlYjU2NWVlNGFhZjU2NzAyYjllZTg2Y2VjMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3Vy
Y2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxl
bWVudEF1ZGlvU291cmNlTm9kZS5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgTWVkaWFFbGVtZW50QXVk
aW9Tb3VyY2VOb2RlOjpNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUoQXVkaW9Db250ZXh0KiBj
b250ZXh0LAogCiBNZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGU6On5NZWRpYUVsZW1lbnRBdWRp
b1NvdXJjZU5vZGUoKQogewotICAgIG1fbWVkaWFFbGVtZW50LT5zZXRBdWRpb1NvdXJjZU5vZGUo
MCk7CisgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF1ZGlvU291cmNlTm9kZShudWxscHRyKTsKICAg
ICB1bmluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAppbmRleCA5OWM5M2FkODc2ZjBiZDg3MjFkYmRiOTNl
OWUyNTNiMjc3YTgxMDJmLi4wMTZmZjlmNmZkYTEyY2M3MTQyMjNjOWZmMDJmYjFkYTg1NTMzNjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JO
b2RlLmNwcApAQCAtNDEsMTAgKzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAKLVBlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNf
cGVyaW9kaWNXYXZlU2luZSA9IDA7Ci1QZXJpb2RpY1dhdmUqIE9zY2lsbGF0b3JOb2RlOjpzX3Bl
cmlvZGljV2F2ZVNxdWFyZSA9IDA7Ci1QZXJpb2RpY1dhdmUqIE9zY2lsbGF0b3JOb2RlOjpzX3Bl
cmlvZGljV2F2ZVNhd3Rvb3RoID0gMDsKLVBlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNf
cGVyaW9kaWNXYXZlVHJpYW5nbGUgPSAwOworUGVyaW9kaWNXYXZlKiBPc2NpbGxhdG9yTm9kZTo6
c19wZXJpb2RpY1dhdmVTaW5lID0gbnVsbHB0cjsKK1BlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5v
ZGU6OnNfcGVyaW9kaWNXYXZlU3F1YXJlID0gbnVsbHB0cjsKK1BlcmlvZGljV2F2ZSogT3NjaWxs
YXRvck5vZGU6OnNfcGVyaW9kaWNXYXZlU2F3dG9vdGggPSBudWxscHRyOworUGVyaW9kaWNXYXZl
KiBPc2NpbGxhdG9yTm9kZTo6c19wZXJpb2RpY1dhdmVUcmlhbmdsZSA9IG51bGxwdHI7CiAKIFJl
ZjxPc2NpbGxhdG9yTm9kZT4gT3NjaWxsYXRvck5vZGU6OmNyZWF0ZShBdWRpb0NvbnRleHQqIGNv
bnRleHQsIGZsb2F0IHNhbXBsZVJhdGUpCiB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBPc2Np
bGxhdG9yTm9kZTo6c2V0VHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAKIGJvb2wgT3NjaWxsYXRv
ck5vZGU6OnNldFR5cGUodW5zaWduZWQgdHlwZSkKIHsKLSAgICBQZXJpb2RpY1dhdmUqIHBlcmlv
ZGljV2F2ZSA9IDA7CisgICAgUGVyaW9kaWNXYXZlKiBwZXJpb2RpY1dhdmUgPSBudWxscHRyOwog
ICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0aGlzLT5zYW1wbGVSYXRlKCk7CiAKICAgICBzd2l0Y2gg
KHR5cGUpIHsKQEAgLTI2OSw4ICsyNjksOCBAQCB2b2lkIE9zY2lsbGF0b3JOb2RlOjpwcm9jZXNz
KHNpemVfdCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgYm9vbCBoYXNTYW1wbGVBY2N1cmF0ZVZhbHVl
cyA9IGNhbGN1bGF0ZVNhbXBsZUFjY3VyYXRlUGhhc2VJbmNyZW1lbnRzKGZyYW1lc1RvUHJvY2Vz
cyk7CiAKICAgICBmbG9hdCBmcmVxdWVuY3kgPSAwOwotICAgIGZsb2F0KiBoaWdoZXJXYXZlRGF0
YSA9IDA7Ci0gICAgZmxvYXQqIGxvd2VyV2F2ZURhdGEgPSAwOworICAgIGZsb2F0KiBoaWdoZXJX
YXZlRGF0YSA9IG51bGxwdHI7CisgICAgZmxvYXQqIGxvd2VyV2F2ZURhdGEgPSBudWxscHRyOwog
ICAgIGZsb2F0IHRhYmxlSW50ZXJwb2xhdGlvbkZhY3RvcjsKIAogICAgIGlmICghaGFzU2FtcGxl
QWNjdXJhdGVWYWx1ZXMpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2VyLmNwcAppbmRleCA1YjViMGU2MDBlMTU3YjlmZmY3NWI2
MGIyNmM1YjhjNmE3ZjVhNDVjLi5lNjY0MWE0ZDNhMWRkNTQ3OTI4MDk1ZTg3ODYyOGQ5Y2U3NzY1
Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZU1hbmFnZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIERhdGFiYXNlTWFuYWdlciYgRGF0
YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKQogCiBEYXRhYmFzZU1hbmFnZXI6OkRhdGFiYXNlTWFu
YWdlcigpCiAgICAgOiBtX3NlcnZlcihuZXcgRGF0YWJhc2VTZXJ2ZXIpCi0gICAgLCBtX2NsaWVu
dCgwKQorICAgICwgbV9jbGllbnQobnVsbHB0cikKICAgICAsIG1fZGF0YWJhc2VJc0F2YWlsYWJs
ZSh0cnVlKQogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICAsIG1fZGF0YWJhc2VDb250ZXh0UmVn
aXN0ZXJlZENvdW50KDApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCmluZGV4IGE0NDEzYzI1NjNiMjU2MDJlZjE1YmE1MzI2
MDJiMGY5MDZmODQ1Y2MuLmFhZGU3MmM3YWI2YzViMTNiYzRkODYzYzhkMDRjMGViNGFkMzNkYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
aHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUaHJlYWQuY3BwCkBAIC00NSw3ICs0NSw3IEBAIERhdGFiYXNlVGhyZWFkOjpEYXRhYmFzZVRo
cmVhZCgpCiAjZW5kaWYKICAgICAsIG1fdHJhbnNhY3Rpb25DbGllbnQoc3RkOjptYWtlX3VuaXF1
ZTxTUUxUcmFuc2FjdGlvbkNsaWVudD4oKSkKICAgICAsIG1fdHJhbnNhY3Rpb25Db29yZGluYXRv
cihzdGQ6Om1ha2VfdW5pcXVlPFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I+KCkpCi0gICAgLCBt
X2NsZWFudXBTeW5jKDApCisgICAgLCBtX2NsZWFudXBTeW5jKG51bGxwdHIpCiB7CiAgICAgbV9z
ZWxmUmVmID0gdGhpczsKIH0KQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIERhdGFiYXNlVGhyZWFk
OjpkYXRhYmFzZVRocmVhZCgpCiAgICAgRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBjbGVhbnVw
U3luYyA9IG1fY2xlYW51cFN5bmM7CiAKICAgICAvLyBDbGVhciB0aGUgc2VsZiByZWZwdHIsIHBv
c3NpYmx5IHJlc3VsdGluZyBpbiBkZWxldGlvbgotICAgIG1fc2VsZlJlZiA9IDA7CisgICAgbV9z
ZWxmUmVmID0gbnVsbHB0cjsKIAogICAgIGlmIChjbGVhbnVwU3luYykgLy8gU29tZW9uZSB3YW50
ZWQgdG8ga25vdyB3aGVuIHdlIHdlcmUgZG9uZSBjbGVhbmluZyB1cC4KICAgICAgICAgY2xlYW51
cFN5bmMtPnRhc2tDb21wbGV0ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuaAppbmRleCA1ZjQ0MzZjMzNmOTQ3OWZiZDkxMzM5
NTA3MmM5YTVhZWYzYzM5ZWNkLi5jMWYzZjA2ZDI4MWZiZjA4Yzg4YWZhZDY1NTcwZTI4Mzg5NGI1
N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZVRocmVhZC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3RhcnQo
KTsKICAgICB2b2lkIHJlcXVlc3RUZXJtaW5hdGlvbihEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIq
IGNsZWFudXBTeW5jKTsKLSAgICBib29sIHRlcm1pbmF0aW9uUmVxdWVzdGVkKERhdGFiYXNlVGFz
a1N5bmNocm9uaXplciogdGFza1N5bmNocm9uaXplciA9IDApIGNvbnN0OworICAgIGJvb2wgdGVy
bWluYXRpb25SZXF1ZXN0ZWQoRGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiA9IG51bGxwdHIpIGNv
bnN0OwogCiAgICAgdm9pZCBzY2hlZHVsZVRhc2soc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVGFz
az4pOwogICAgIHZvaWQgc2NoZWR1bGVJbW1lZGlhdGVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxEYXRh
YmFzZVRhc2s+KTsgLy8gVGhpcyBqdXN0IGFkZHMgdGhlIHRhc2sgdG8gdGhlIGZyb250IG9mIHRo
ZSBxdWV1ZSAtIHRoZSBjYWxsZXIgbmVlZHMgdG8gYmUgZXh0cmVtZWx5IGNhcmVmdWwgbm90IHRv
IGNyZWF0ZSBkZWFkbG9ja3Mgd2hlbiB3YWl0aW5nIGZvciBjb21wbGV0aW9uLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CmluZGV4IGE3MTBkYzJhNTY3YjlhNjkzNmYyNjMwNTI0Y2QzYmUxZTQzOGMwNTQuLmRhYThhZjk0
ZWM3YjMxMWZmMjVjNDVlNTdjM2UwMzdiN2EyNWZlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTYyLDcg
KzYyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVHJhY2tlcj4gRGF0YWJhc2VUcmFja2Vy
Ojp0cmFja2VyV2l0aERhdGFiYXNlUGF0aChjb25zdAogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9w
dHI8RGF0YWJhc2VUcmFja2VyPihuZXcgRGF0YWJhc2VUcmFja2VyKGRhdGFiYXNlUGF0aCkpOwog
fQogCi1zdGF0aWMgRGF0YWJhc2VUcmFja2VyKiBzdGF0aWNUcmFja2VyID0gMDsKK3N0YXRpYyBE
YXRhYmFzZVRyYWNrZXIqIHN0YXRpY1RyYWNrZXIgPSBudWxscHRyOwogCiB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNrZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiB7
CkBAIC04Miw3ICs4Miw3IEBAIERhdGFiYXNlVHJhY2tlciYgRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyKCkKIH0KIAogRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgU3RyaW5n
JiBkYXRhYmFzZVBhdGgpCi0gICAgOiBtX2NsaWVudCgwKQorICAgIDogbV9jbGllbnQobnVsbHB0
cikKIHsKICAgICBzZXREYXRhYmFzZURpcmVjdG9yeVBhdGgoZGF0YWJhc2VQYXRoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tX
cmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNr
V3JhcHBlci5oCmluZGV4IDc3MWFlZjg1ZGUzMTNjZTYyZGE5NmQ1NTQwYWNiOWU0NGNmZDY5Y2Iu
LmNhMjI4MDExZGM0ODY5MzI1ZTFlNjczYWM2YzQ3ZGU2MmQ0N2I5YTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIu
aApAQCAtNjQsOCArNjQsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXND
b250ZXh0VGhyZWFkKCkpIHsKLSAgICAgICAgICAgICAgICBtX2NhbGxiYWNrID0gMDsKLSAgICAg
ICAgICAgICAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSAwOworICAgICAgICAgICAgICAg
IG1fY2FsbGJhY2sgPSBudWxscHRyOworICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dFB0ciA9IG1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5yZWxlYXNlKCkubGVha1JlZigpOwpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiAgICAgewogICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFT
U0VSVCghbV9jYWxsYmFjayB8fCBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRo
cmVhZCgpKTsKLSAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gMDsKKyAgICAgICAg
bV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2Fs
bGJhY2sucmVsZWFzZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50QmFja2VuZC5jcHAKaW5kZXggNDhmM2Ni
ZmM3NDMxOWIxZGUxYTk4OTBjMWY1NDk2OTgxNWEzMjdlYi4uM2Y4NzI1MDkzNTZlYmFiN2U4YTAw
YWIwZWQ1Yjc2MDZkNGE0ZWQxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudEJhY2tlbmQuY3BwCkBAIC0yMzUsNyArMjM1
LDcgQEAgdm9pZCBTUUxTdGF0ZW1lbnRCYWNrZW5kOjpzZXRGYWlsdXJlRHVlVG9RdW90YSgpCiB2
b2lkIFNRTFN0YXRlbWVudEJhY2tlbmQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAg
IGlmIChsYXN0RXhlY3V0aW9uRmFpbGVkRHVlVG9RdW90YSgpKQotICAgICAgICBtX2Vycm9yID0g
MDsKKyAgICAgICAgbV9lcnJvciA9IG51bGxwdHI7CiB9CiAKIGJvb2wgU1FMU3RhdGVtZW50QmFj
a2VuZDo6bGFzdEV4ZWN1dGlvbkZhaWxlZER1ZVRvUXVvdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRl
eCAyOGQxZDVhM2IzYTYwMzAyOTJkNmY3YTE1NzJjOTkzNjIzY2FmYjE4Li4zNDNlZTliYTVjMWU2
ZTNiOWJiZWU4MDRlNzZkMDdiZWIzYTU0MjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMTY5LDcgKzE2OSw3
IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlv
bkVycm9yQ2FsbGJhY2soKQogICAgICAgICBBU1NFUlQobV90cmFuc2FjdGlvbkVycm9yKTsKICAg
ICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQobV90cmFuc2FjdGlvbkVycm9yLmdldCgp
KTsKIAotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSAwOworICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBudWxscHRyOwogICAgIH0KIAogICAgIGNsZWFyQ2FsbGJhY2tXcmFwcGVycygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCmluZGV4IGI1YzAyZjNlODI0MmM1N2RlMWE2MGM2NmI5
ODIzNjZkYjJhMDNjNWYuLmRhMjU0YjY1NGYyMzVlNWExODJlNGQ3Zjg0YzM5YTE1NWU0ZTgwZDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNh
Y3Rpb25CYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uQmFja2VuZC5jcHAKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIFNRTFRy
YW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKCkKIHsKICAgICBpZiAoIW1fZnJvbnRlbmQpCiAg
ICAgICAgIHJldHVybjsKLSAgICBtX2Zyb250ZW5kID0gMDsgLy8gQnJlYWsgdGhlIHJlZmVyZW5j
ZSBjeWNsZS4gU2VlIGNvbW1lbnQgYWJvdXQgdGhlIGxpZmUtY3ljbGUgYWJvdmUuCisgICAgbV9m
cm9udGVuZCA9IG51bGxwdHI7IC8vIEJyZWFrIHRoZSByZWZlcmVuY2UgY3ljbGUuIFNlZSBjb21t
ZW50IGFib3V0IHRoZSBsaWZlLWN5Y2xlIGFib3ZlLgogCiAgICAgQVNTRVJUKGN1cnJlbnRUaHJl
YWQoKSA9PSBkYXRhYmFzZSgpLT5kYXRhYmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+
Z2V0VGhyZWFkSUQoKSk7CiAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9u
QmFja2VuZDo6ZG9DbGVhbnVwKCkKICAgICAvLyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgaXMgZ3Vh
cmFudGVlZCB0byBub3QgZGVzdHJ1Y3QgdW50aWwgdGhlIGZyb250ZW5kCiAgICAgLy8gaXMgYWxz
byBkZXN0cnVjdGluZy4KIAotICAgIG1fd3JhcHBlciA9IDA7CisgICAgbV93cmFwcGVyID0gbnVs
bHB0cjsKIH0KIAogU1FMU3RhdGVtZW50KiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmN1cnJlbnRT
dGF0ZW1lbnQoKQpAQCAtNjY0LDcgKzY2NCw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJh
bnNhY3Rpb25CYWNrZW5kOjpydW5TdGF0ZW1lbnRzKCkKIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJh
Y2tlbmQ6OmdldE5leHRTdGF0ZW1lbnQoKQogewotICAgIG1fY3VycmVudFN0YXRlbWVudEJhY2tl
bmQgPSAwOworICAgIG1fY3VycmVudFN0YXRlbWVudEJhY2tlbmQgPSBudWxscHRyOwogCiAgICAg
TXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3RhdGVtZW50TXV0ZXgpOwogICAgIGlmICghbV9zdGF0ZW1l
bnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA4
OWE2MmFiNzY3NzJmMjZjMjI5ZGViNzkzMTI5MzQ4ODdjM2ZmMTYxLi44NDMzMjhjZjUyMzY2Y2Rj
MWI4M2U3MmJlNjUyNjBjZGE4YmNmYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5j
cHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnJl
bGVhc2VMb2NrKFNRTFRyYW5zYWN0aW9uQmFja2VuZCogdHJhbnNhY3Rpb24pCiAgICAgICAgIGlu
Zm8uYWN0aXZlUmVhZFRyYW5zYWN0aW9ucy5yZW1vdmUodHJhbnNhY3Rpb24pOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIEFTU0VSVChpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPT0gdHJhbnNh
Y3Rpb24pOwotICAgICAgICBpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPSAwOworICAgICAg
ICBpbmZvLmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIHBy
b2Nlc3NQZW5kaW5nVHJhbnNhY3Rpb25zKGluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAppbmRleCA0NzQ2ODQ1NzczNzRlMDQ4MGZj
YzkzMTkyMjBhMjg4YzEzMjc0NjU4Li4zZmY5OThhZTE4NzBkNTQ3NGU1MzU3ZTBlNzQwNjk2NTRj
NTJmYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmNwcApAQCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50KiBjbGllbnQpCiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fcGVlcigwKQorICAgICwgbV9wZWVyKG51bGxwdHIp
CiAgICAgLCBtX2ZhaWxlZFdlYlNvY2tldENoYW5uZWxDcmVhdGlvbihmYWxzZSkKICAgICAsIG1f
c3luY01ldGhvZERvbmUodHJ1ZSkKICAgICAsIG1fc2VuZFJlcXVlc3RSZXN1bHQoVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OlNlbmRGYWlsKQpAQCAtODUsNyArODUsNyBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ3JlYXRlV2ViU29ja2V0Q2hh
bm5lbChXb3JrZXJUaAogCiB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6Y2xlYXJQZWVyKCkKIHsKLSAgICBtX3BlZXIgPSAwOworICAgIG1fcGVlciA9IG51bGxw
dHI7CiB9CiAKIGJvb2wgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpm
YWlsZWRXZWJTb2NrZXRDaGFubmVsQ3JlYXRpb24oKSBjb25zdApAQCAtMTUwLDcgKzE1MCw3IEBA
IHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRCdWZmZXJl
ZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1CiAKIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpjbGVhckNsaWVudCgpCiB7Ci0gICAgbV9jbGllbnQgPSAwOworICAg
IG1fY2xpZW50ID0gbnVsbHB0cjsKIH0KIAogdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCAwMzE1ZmJlM2ZjZDBjYWQ2MWE4ODVmOGU2
OGFlOTdkZTE3NTljMmMzLi5hODdlMjg1YmNhZWYxMmFiOTJjMWFkNmZjZTc5MjcyYTY2NDU3MzQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cApAQCAtNTExLDcgKzUxMSw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdG9wKCkKICAgICBib29sIHBl
bmRpbmcgPSBoYXNQZW5kaW5nQWN0aXZpdHkoKTsKICAgICBpZiAobV9jaGFubmVsKQogICAgICAg
ICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX2NoYW5uZWwgPSAwOworICAgIG1fY2hh
bm5lbCA9IG51bGxwdHI7CiAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICBtX3BlbmRpbmdFdmVu
dHMuY2xlYXIoKTsKICAgICBBY3RpdmVET01PYmplY3Q6OnN0b3AoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCBmNmQyOWNkMDQzMTViOTBkMGU4MTNmMzU3NjhlOWY5OTI2Njk5ZTdlLi5jN2JkNmMzZDAyYmMz
MWU1MDVmOGVhN2I3YTI2NWZmOGJlZTZlYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMjEsOCArMjIx
LDggQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKICAgICAgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LCBtX2lkZW50
aWZpZXIpOwogICAgIGlmIChtX2hhbmRzaGFrZSkKICAgICAgICAgbV9oYW5kc2hha2UtPmNsZWFy
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIG1fY2xpZW50ID0gMDsKLSAgICBtX2RvY3Vt
ZW50ID0gMDsKKyAgICBtX2NsaWVudCA9IG51bGxwdHI7CisgICAgbV9kb2N1bWVudCA9IG51bGxw
dHI7CiAgICAgaWYgKG1faGFuZGxlKQogICAgICAgICBtX2hhbmRsZS0+ZGlzY29ubmVjdCgpOwog
fQpAQCAtMjczLDkgKzI3Myw5IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2VTb2Nr
ZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlKiBoYW5kbGUpCiAgICAgICAgIGlmIChtX3N1c3Bl
bmRlZCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVu
dCogY2xpZW50ID0gbV9jbGllbnQ7Ci0gICAgICAgIG1fY2xpZW50ID0gMDsKLSAgICAgICAgbV9k
b2N1bWVudCA9IDA7Ci0gICAgICAgIG1faGFuZGxlID0gMDsKKyAgICAgICAgbV9jbGllbnQgPSBu
dWxscHRyOworICAgICAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKKyAgICAgICAgbV9oYW5kbGUg
PSBudWxscHRyOwogICAgICAgICBpZiAoY2xpZW50KQogICAgICAgICAgICAgY2xpZW50LT5kaWRD
bG9zZShtX3VuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBtX3JlY2VpdmVkQ2xvc2luZ0hhbmRzaGFr
ZSA/IFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0ZSA6IFdl
YlNvY2tldENoYW5uZWxDbGllbnQ6OkNsb3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLCBtX2Nsb3Nl
RXZlbnRDb2RlLCBtX2Nsb3NlRXZlbnRSZWFzb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmgKaW5kZXggYzE4OTM2MjRm
MmY5MGYwYzU5NzAxZmM5NGFmNDU4ZTg3M2YxZDNmZi4uMDhhMjZmMzc0N2RmOGJkNjViOWUzMTcx
ZDI5OWEyMDg4ZmExMWMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEZyYW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEZyYW1lLmgKQEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFdlYlNvY2tl
dEZyYW1lIHsKICAgICBzdGF0aWMgYm9vbCBuZWVkc0V4dGVuZGVkTGVuZ3RoRmllbGQoc2l6ZV90
IHBheWxvYWRMZW5ndGgpOwogICAgIHN0YXRpYyBQYXJzZUZyYW1lUmVzdWx0IHBhcnNlRnJhbWUo
Y2hhciogZGF0YSwgc2l6ZV90IGRhdGFMZW5ndGgsIFdlYlNvY2tldEZyYW1lJiwgY29uc3QgY2hh
ciomIGZyYW1lRW5kLCBTdHJpbmcmIGVycm9yU3RyaW5nKTsgLy8gTWF5IG1vZGlmeSBwYXJ0IG9m
IGRhdGEgdG8gdW5tYXNrIHRoZSBmcmFtZS4KIAotICAgIFdlYlNvY2tldEZyYW1lKE9wQ29kZSA9
IE9wQ29kZUludmFsaWQsIGJvb2wgZmluYWwgPSBmYWxzZSwgYm9vbCBjb21wcmVzcyA9IGZhbHNl
LCBib29sIG1hc2tlZCA9IGZhbHNlLCBjb25zdCBjaGFyKiBwYXlsb2FkID0gMCwgc2l6ZV90IHBh
eWxvYWRMZW5ndGggPSAwKTsKKyAgICBXZWJTb2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZh
bGlkLCBib29sIGZpbmFsID0gZmFsc2UsIGJvb2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNr
ZWQgPSBmYWxzZSwgY29uc3QgY2hhciogcGF5bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2Fk
TGVuZ3RoID0gMCk7CiAgICAgdm9pZCBtYWtlRnJhbWVEYXRhKFZlY3RvcjxjaGFyPiYgZnJhbWVE
YXRhKTsKIAogICAgIE9wQ29kZSBvcENvZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDU1MWRkZjIy
YTk3ZTMzMTI4ODk0OTg0NTkyMTBlZmE1Njg3NTMyZTkuLjE5Y2YwMThjMWZhOWFiYmIyNzk5YWVl
NTAwOTgwMWUyMjk4ZmM2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAg
dm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OnJlc2V0KCkKIAogdm9pZCBXZWJTb2NrZXRIYW5kc2hh
a2U6OmNsZWFyU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpCiB7Ci0gICAgbV9jb250ZXh0ID0gMDsK
KyAgICBtX2NvbnRleHQgPSBudWxscHRyOwogfQogCiBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpy
ZWFkU2VydmVySGFuZHNoYWtlKGNvbnN0IGNoYXIqIGhlYWRlciwgc2l6ZV90IGxlbikKQEAgLTQw
MSw4ICs0MDEsOCBAQCBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU3RhdHVzTGluZShjb25z
dCBjaGFyKiBoZWFkZXIsIHNpemVfdCBoZWFkZXJMZW5ndGgsCiAgICAgc3RhdHVzQ29kZSA9IC0x
OwogICAgIHN0YXR1c1RleHQgPSBTdHJpbmcoKTsKIAotICAgIGNvbnN0IGNoYXIqIHNwYWNlMSA9
IDA7Ci0gICAgY29uc3QgY2hhciogc3BhY2UyID0gMDsKKyAgICBjb25zdCBjaGFyKiBzcGFjZTEg
PSBudWxscHRyOworICAgIGNvbnN0IGNoYXIqIHNwYWNlMiA9IG51bGxwdHI7CiAgICAgY29uc3Qg
Y2hhciogcDsKICAgICBzaXplX3QgY29uc3VtZWRMZW5ndGg7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGY3NmIzNDhhM2Q5NDFiODYyNmRmNGJiYzU0
MWQwMWVkMjBkYmQ1YWEuLmJjYmRhZjk0YzcwMTE3YzNkMTQzOWE4NDNlYTdjYjAzMjhjMmVlODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjQyLDcg
KzI0Miw3IEBAIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRp
c2Nvbm5lY3QoKQogICAgIGlmICghbV9tYWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX21h
aW5XZWJTb2NrZXRDaGFubmVsID0gMDsKKyAgICBtX21haW5XZWJTb2NrZXRDaGFubmVsID0gbnVs
bHB0cjsKIH0KIAogdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6
c3VzcGVuZCgpCkBAIC0zMjYsNyArMzI2LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkKIHZvaWQgV29ya2Vy
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcg
dW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVz
IGNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBT
dHJpbmcmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fbWFp
bldlYlNvY2tldENoYW5uZWwgPSAwOworICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwgPSBudWxs
cHRyOwogCiAgICAgUmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cj4gd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKICAgICBTdHJp
bmdDYXB0dXJlIGNhcHR1cmVkUmVhc29uKHJlYXNvbik7CkBAIC0zNTMsNyArMzUzLDcgQEAgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKFBhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldEMKICAgICAsIG1fd29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xv
YmFsU2NvcGUpCiAgICAgLCBtX2xvYWRlclByb3h5KG1fd29ya2VyR2xvYmFsU2NvcGUtPnRocmVh
ZCgpLndvcmtlckxvYWRlclByb3h5KCkpCiAgICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQotICAg
ICwgbV9wZWVyKDApCisgICAgLCBtX3BlZXIobnVsbHB0cikKIHsKICAgICBBU1NFUlQobV93b3Jr
ZXJDbGllbnRXcmFwcGVyLmdldCgpKTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254497</attachid>
            <date>2015-06-08 09:43:06 -0700</date>
            <delta_ts>2015-06-08 16:36:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145758-20150609014237.patch</filename>
            <type>text/plain</type>
            <size>54096</size>
            <attacher name="Hunseop Jeong">hs85.jeong</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyMDMzNDljM2U4MTZm
MmUzMTY3MWU3NzkyZjBiMDFkNWJlMzU4ZC4uZDM5YzMxYjdlMGNiMTdlZmFkN2Q3NzNkZjhlYjgw
MjU1M2NmNmZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzMCBAQAorMjAxNS0wNi0wOCAgSHVu
c2VvcCBKZW9uZyAgPGhzODUuamVvbmdAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgUmVwbGFjZWQg
MCB3aXRoIG51bGxwdHIgaW4gV2ViQ29yZS9Nb2R1bGVzLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NzU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBiZWhhdmlvciBjaGFu
Z2VzLgorCisgICAgICAgICogTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkJhdHRlcnlNYW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcik6CisgICAgICAg
ICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
OjpDRE0pOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhS2V5czo6TWVkaWFLZXlzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhS2V5czo6fk1lZGlhS2V5cyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
SURCQ3Vyc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3I6OmNvbnRpbnVlRnVuY3Rp
b24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvckJhY2tlbmRPcGVyYXRp
b25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvckFkdmFuY2VPcGVyYXRpb246OnBlcmZv
cm0pOgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3Jt
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25GaW5pc2hlZCk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6SURCRGF0YWJhc2VDYWxsYmFja3NJ
bXBsKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJFdmVudERpc3BhdGNoZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaCk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCSW5kZXguaDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QkluZGV4OjpvcGVuQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4Ojpjb3VudCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleDo6b3BlbktleUN1cnNvcik6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmU6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6
cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjppbmRleCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZTo6b3BlbkN1cnNvcik6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVj
dFN0b3JlOjpjb3VudCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCT3BlbkRCUmVx
dWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPcGVuREJSZXF1ZXN0OjpvblVwZ3JhZGVO
ZWVkZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT3BlbkRCUmVxdWVzdDo6b25TdWNjZXNzKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlJlcXVlc3Q6OklEQlJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlRyYW5zYWN0aW9u
OjpPcGVuQ3Vyc29yTm90aWZpZXI6OmN1cnNvckZpbmlzaGVkKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCVHJhbnNhY3Rpb25CYWNrZW5kOjpjb21taXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6T3BlbkN1cnNvck9wZXJhdGlvbjo6cGVyZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9pbmRp
ZXVpL1VJUmVxdWVzdEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2ZW50
SW5pdDo6VUlSZXF1ZXN0RXZlbnRJbml0KToKKyAgICAgICAgKFdlYkNvcmU6OlVJUmVxdWVzdEV2
ZW50OjpVSVJlcXVlc3RFdmVudCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRp
YVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2Up
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnNldFJlYWR5U3RhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcik6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyOjp+U291cmNlQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1
ZmZlcjo6cmVtb3ZlZEZyb21NZWRpYVNvdXJjZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbTo6fk1l
ZGlhU3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtRXZl
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1FdmVudEluaXQ6Ok1lZGlhU3Ry
ZWFtRXZlbnRJbml0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrRXZlbnRJ
bml0OjpNZWRpYVN0cmVhbVRyYWNrRXZlbnRJbml0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0RhdGFDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0RhdGFDaGFu
bmVsOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVl
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6Y29udGV4dERlc3Ry
b3llZCk6CisgICAgICAgICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpOb3RpZmljYXRpb246Ok5vdGlmaWNhdGlvbik6CisgICAgICAg
ICogTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5oOgorICAgICAgICAqIE1vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hT
eW50aGVzaXM6OlNwZWVjaFN5bnRoZXNpcyk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hTeW50
aGVzaXM6OnNldFBsYXRmb3JtU3ludGhlc2l6ZXIpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
U3ludGhlc2lzOjpjYW5jZWwpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoU3ludGhlc2lzOjpo
YW5kbGVTcGVha2luZ0NvbXBsZXRlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvU3BlZWNo
U3ludGhlc2lzVXR0ZXJhbmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFN5bnRoZXNp
c1V0dGVyYW5jZTo6flNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGUpOgorICAgICAgICAo
V2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpjbGVhclBhbm5lck5vZGUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkF1ZGlvQ29udGV4dDo6Y3JlYXRlTWVkaWFTdHJlYW1Tb3VyY2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZTo6fk1lZGlhRWxlbWVudEF1ZGlvU291
cmNlTm9kZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpPc2NpbGxhdG9yTm9kZTo6c2V0VHlwZSk6CisgICAgICAgIChX
ZWJDb3JlOjpPc2NpbGxhdG9yTm9kZTo6cHJvY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VN
YW5hZ2VyOjpEYXRhYmFzZU1hbmFnZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUaHJlYWQ6OkRh
dGFiYXNlVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVGhyZWFkOjpkYXRhYmFz
ZVRocmVhZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1FMQ2FsbGJhY2tXcmFwcGVyOjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpT
UUxDYWxsYmFja1dyYXBwZXI6OnVud3JhcCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnRCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVu
dEJhY2tlbmQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNh
Y3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKToKKyAgICAgICAgKFdlYkNvcmU6
OlNRTFRyYW5zYWN0aW9uQmFja2VuZDo6Z2V0TmV4dFN0YXRlbWVudCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnJlbGVhc2VMb2NrKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6Y2xlYXJQZWVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6Y2xlYXJDbGllbnQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdG9wKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlU29ja2V0U3RyZWFtKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldEhhbmRzaGFrZTo6Y2xlYXJTY3JpcHRFeGVjdXRpb25Db250ZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUpOgorICAgICAgICAq
IE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVl
cjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6QnJpZGdlKToKKwogMjAxNS0wNi0wOCAg
TWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1NP
VVBdIFBlcmZvcm1zIEROUyBwcmVmZXRjaCB3aGVuIGEgcHJveHkgaXMgY29uZmlndXJlZCAoaW5m
b3JtYXRpb24gbGVhaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVy
eS9CYXR0ZXJ5TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2JhdHRlcnkvQmF0
dGVyeU1hbmFnZXIuY3BwCmluZGV4IGNhNDdlMzM3ODYyMjIyYjYzODE1NzA5N2Q2OGM1NzQyYjcz
ODMzOGEuLjNjMWVhNzc0NTZmNGQyYTk2Nzc3ZTQ5ZGM2NTAxMTRhMjg2NjVmNjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYmF0dGVyeS9CYXR0ZXJ5TWFuYWdlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9iYXR0ZXJ5L0JhdHRlcnlNYW5hZ2VyLmNwcApAQCAt
NDYsNyArNDYsNyBAQCBCYXR0ZXJ5TWFuYWdlcjo6fkJhdHRlcnlNYW5hZ2VyKCkKIEJhdHRlcnlN
YW5hZ2VyOjpCYXR0ZXJ5TWFuYWdlcihOYXZpZ2F0b3IqIG5hdmlnYXRvcikKICAgICA6IEFjdGl2
ZURPTU9iamVjdChuYXZpZ2F0b3ItPmZyYW1lKCktPmRvY3VtZW50KCkpCiAgICAgLCBtX2JhdHRl
cnlDb250cm9sbGVyKEJhdHRlcnlDb250cm9sbGVyOjpmcm9tKG5hdmlnYXRvci0+ZnJhbWUoKS0+
cGFnZSgpKSkKLSAgICAsIG1fYmF0dGVyeVN0YXR1cygwKQorICAgICwgbV9iYXR0ZXJ5U3RhdHVz
KG51bGxwdHIpCiB7CiAgICAgbV9iYXR0ZXJ5Q29udHJvbGxlci0+YWRkTGlzdGVuZXIodGhpcyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NE
TS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5jcHAKaW5k
ZXggMzkyZGRjMjY1Y2Q3ZTFhMjAyZjUwNDExNzYyZDgzZTFiOTkyNGFiYS4uZDYzYTRmNGUwODc3
YzQyMmM0NzhkOTM4M2Q1YThjZWU5MWIyMGM0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxDRE0+IENETTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtKQogCiBDRE06OkNE
TShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSkKICAgICA6IG1fa2V5U3lzdGVtKGtleVN5c3RlbSkK
LSAgICAsIG1fY2xpZW50KDApCisgICAgLCBtX2NsaWVudChudWxscHRyKQogewogICAgIG1fcHJp
dmF0ZSA9IENETUZhY3RvcnlGb3JLZXlTeXN0ZW0oa2V5U3lzdGVtKS0+Y29uc3RydWN0b3IodGhp
cyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L01lZGlhS2V5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL01l
ZGlhS2V5cy5jcHAKaW5kZXggNTY0M2FiZWRlZTNmMTAxZTg4NTJmOGUwZWZhMzFiYjIyYzRhYTlm
Ny4uOGIzNGUxMWE5Y2Q0NWI1MTBlYzQyN2NiZTk2NjM5OGYyNWQzZGZmYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9NZWRpYUtleXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvTWVkaWFLZXlzLmNwcApAQCAt
NjYsNyArNjYsNyBAQCBSZWZQdHI8TWVkaWFLZXlzPiBNZWRpYUtleXM6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB9CiAKIE1lZGlhS2V5czo6TWVk
aWFLZXlzKGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBzdGQ6OnVuaXF1ZV9wdHI8Q0RNPiBjZG0p
Ci0gICAgOiBtX21lZGlhRWxlbWVudCgwKQorICAgIDogbV9tZWRpYUVsZW1lbnQobnVsbHB0cikK
ICAgICAsIG1fa2V5U3lzdGVtKGtleVN5c3RlbSkKICAgICAsIG1fY2RtKFdURjo6bW92ZShjZG0p
KQogewpAQCAtNzksNyArNzksNyBAQCBNZWRpYUtleXM6On5NZWRpYUtleXMoKQogICAgIC8vIFdo
ZW4gZGVzdHJveWluZyBhIE1lZGlhS2V5cyBvYmplY3QsIGZvbGxvdyB0aGUgc3RlcHMgaW4gY2xv
c2UoKS4KICAgICBmb3IgKGF1dG8mIHNlc3Npb24gOiBtX3Nlc3Npb25zKSB7CiAgICAgICAgIHNl
c3Npb24tPmNsb3NlKCk7Ci0gICAgICAgIHNlc3Npb24tPnNldEtleXMoMCk7CisgICAgICAgIHNl
c3Npb24tPnNldEtleXMobnVsbHB0cik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJDdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCmluZGV4IGM0M2NiNGEyYjg1NDFlZDJlYWM4YWI1
YTI3YTlkM2YyY2M4MjhkMWQuLjdkZGRjYWJiMmU1MTFiMjliYTQ3ZDU1MTNlYjFkNmM4YWFkNGIy
NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkN1cnNvci5oCkBA
IC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IHVwZGF0
ZShKU0M6OkV4ZWNTdGF0ZSosIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiwgRXhjZXB0aW9uQ29k
ZSYpOwogICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBsb25nLCBFeGNlcHRpb25Db2RlJik7CiAg
ICAgLy8gRklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHNvIHRoaXMgb3Zl
cmxvYWQgaXMgdW5uZWVkZWQuCi0gICAgdm9pZCBjb250aW51ZUZ1bmN0aW9uKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqLCBFeGNlcHRpb25Db2RlJiBlYykgeyBjb250aW51ZUZ1bmN0aW9uKHN0YXRp
Y19jYXN0PElEQktleSo+KDApLCBlYyk7IH0KKyAgICB2b2lkIGNvbnRpbnVlRnVuY3Rpb24oU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IGNvbnRpbnVlRnVuY3Rp
b24oc3RhdGljX2Nhc3Q8SURCS2V5Kj4obnVsbHB0ciksIGVjKTsgfQogICAgIHZvaWQgY29udGlu
dWVGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVz
dD4gZGVsZXRlRnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEV4Y2VwdGlvbkNvZGUm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQ3Vy
c29yQmFja2VuZE9wZXJhdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCQ3Vyc29yQmFja2VuZE9wZXJhdGlvbnMuY3BwCmluZGV4IGJkNmNjMmI5NDU0NDNlNjNm
YmE1YTA2MDJiMTliZGRlOGVjZjRhYTguLmNkYTE2OTdkYWJmNGZhNjczMGUzYTViZjJlNzcwNmNl
M2MyYTFjZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkN1cnNvckJhY2tlbmRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJDdXJzb3JCYWNrZW5kT3BlcmF0aW9ucy5jcHAKQEAgLTQ3LDcgKzQ3LDcg
QEAgdm9pZCBDdXJzb3JBZHZhbmNlT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9p
ZCgpPiBjb21wbGV0aW9uQ2FsbGJhY2spCiAgICAgICAgIH0gZWxzZSBpZiAoIWtleSkgewogICAg
ICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBlcnJvciBidXQgYWxzbyBubyBrZXksIHRoZW4gdGhl
IGN1cnNvciByZWFjaGVkIHRoZSBlbmQuCiAgICAgICAgICAgICBtX2N1cnNvci0+Y2xlYXIoKTsK
LSAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVm
ZmVyKj4oMCkpOworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2Fz
dDxTaGFyZWRCdWZmZXIqPihudWxscHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBtX2N1cnNvci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHByaW1hcnlLZXkuZ2V0KCks
IHZhbHVlQnVmZmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Mo
a2V5LCBwcmltYXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgQ3Vy
c29ySXRlcmF0aW9uT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21w
bGV0aW9uQ2FsbGJhY2spCiAgICAgICAgIH0gZWxzZSBpZiAoIWtleSkgewogICAgICAgICAgICAg
Ly8gSWYgdGhlcmUncyBubyBlcnJvciBidXQgYWxzbyBubyBrZXksIHRoZW4gdGhlIGN1cnNvciBy
ZWFjaGVkIHRoZSBlbmQuCiAgICAgICAgICAgICBtX2N1cnNvci0+Y2xlYXIoKTsKLSAgICAgICAg
ICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVkQnVmZmVyKj4oMCkp
OworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNfY2FzdDxTaGFyZWRC
dWZmZXIqPihudWxscHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX2N1cnNv
ci0+dXBkYXRlQ3Vyc29yRGF0YShrZXkuZ2V0KCksIHByaW1hcnlLZXkuZ2V0KCksIHZhbHVlQnVm
ZmVyLmdldCgpKTsKICAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moa2V5LCBwcmlt
YXJ5S2V5LCB2YWx1ZUJ1ZmZlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZS5jcHAKaW5kZXggYzAwZmMwOTNlODNiNjRmNjA2MWE3OWQ2YmRmMWEx
MTM1N2Y3ZWY4Zi4uODQ2OTUxOTBmOWMwMTgwNWY1MzJiMzgzOGI1YmFhMjNhZWViZWIwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlLmNwcApA
QCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgSURCRGF0YWJhc2U6OnRyYW5zYWN0aW9uRmluaXNoZWQo
SURCVHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogCiAgICAgaWYgKHRyYW5zYWN0aW9uLT5pc1Zl
cnNpb25DaGFuZ2UoKSkgewogICAgICAgICBBU1NFUlQobV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rp
b24gPT0gdHJhbnNhY3Rpb24pOwotICAgICAgICBtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbiA9
IDA7CisgICAgICAgIG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uID0gbnVsbHB0cjsKICAgICB9
CiAKICAgICBpZiAobV9jbG9zZVBlbmRpbmcgJiYgbV90cmFuc2FjdGlvbnMuaXNFbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQ2FsbGJhY2tzSW1wbC5jcHAKaW5kZXggZDkyYTM1MTBjZDk0YzM4NGI3MGMzYWQyNzFm
NTVmY2ZlNDgxMTIyZC4uNjFmMjZlOTlmZGYwNGI2NjY2YTUwZTY5ZGYxM2RhZWI4NmQ0MjI1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VD
YWxsYmFja3NJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuY3BwCkBAIC0zOCw3ICszOCw3IEBAIFJlZjxJREJEYXRh
YmFzZUNhbGxiYWNrc0ltcGw+IElEQkRhdGFiYXNlQ2FsbGJhY2tzSW1wbDo6Y3JlYXRlKCkKIH0K
IAogSURCRGF0YWJhc2VDYWxsYmFja3NJbXBsOjpJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwoKQot
ICAgIDogbV9kYXRhYmFzZSgwKQorICAgIDogbV9kYXRhYmFzZShudWxscHRyKQogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJFdmVudERpc3Bh
dGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRXZlbnREaXNw
YXRjaGVyLmNwcAppbmRleCAwOWExNTE0ODEyNDQ4OTU3NTc2ZDc0ZTkwY2E0YzViMWY5NWQyMTJi
Li5iODhlZGU1OGQ4MWU0MDZjODAyZTUzZThhNDE4NzQ5YmQxMzM3YTk5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJFdmVudERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkV2ZW50RGlzcGF0Y2hlci5j
cHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBJREJFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoKEV2
ZW50KiBldmVudCwgVmVjdG9yPFJlZlB0cjxFdmVudFRhcmdldD4+JiBldmUKICAgICAvLyAgICAg
ICAgZXZlbnQgb24gdGhlIHdpbmRvdyB1bnRpbCB0aGF0IGhhcyBiZWVuIGltcGxlbWVudGVkKS4i
IC0tIEpvbmFzIFNpY2tpbmcKIAogZG9uZURpc3BhdGNoaW5nOgotICAgIGV2ZW50LT5zZXRDdXJy
ZW50VGFyZ2V0KDApOworICAgIGV2ZW50LT5zZXRDdXJyZW50VGFyZ2V0KG51bGxwdHIpOwogICAg
IGV2ZW50LT5zZXRFdmVudFBoYXNlKDApOwogICAgIHJldHVybiAhZXZlbnQtPmRlZmF1bHRQcmV2
ZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkluZGV4LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJJbmRleC5o
CmluZGV4IGIxNmY3OGY1OWRkMTc3NzQyZmZkNzk1NGE1YTc3ZmUzNmJmZDMyODAuLjFhOWU0NzY3
OTJjOWI1Zjk1ZmJiYzAwMTUwZTkyN2M3ZDZiYjA5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkluZGV4LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCSW5kZXguaApAQCAtNjEsMTYgKzYxLDE2IEBAIHB1YmxpYzoKICAg
ICBpbnQ2NF90IGlkKCkgY29uc3QgeyByZXR1cm4gbV9tZXRhZGF0YS5pZDsgfQogCiAgICAgLy8g
RklYTUU6IFRyeSB0byBtb2RpZnkgdGhlIGNvZGUgZ2VuZXJhdG9yIHNvIHRoaXMgaXMgdW5uZWVk
ZWQuCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29y
KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBzdGF0
aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51bGxwdHIpLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElE
QlJlcXVlc3Q+IG9wZW5DdXJzb3IoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFz
c1JlZlB0cjxJREJLZXlSYW5nZT4ga2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVy
biBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleVJhbmdlLCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQo
KSwgZWMpOyB9CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBr
ZXksIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuQ3Vyc29yKGNvbnRleHQsIGtleSwg
SURCQ3Vyc29yOjpkaXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVx
dWVzdD4gb3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4sIGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
LCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBjb25zdCBTdHJpbmcmIGRpcmVj
dGlvbiwgRXhjZXB0aW9uQ29kZSYpOwotICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0
dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4oMCksIGVjKTsgfQor
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRp
Y19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURC
UmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCS2V5
UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBjb3Vu
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUm
IGtleSwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVu
S2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEV4Y2VwdGlvbkNvZGUm
IGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJh
bmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3BlbktleUN1cnNv
cihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykgeyBy
ZXR1cm4gb3BlbktleUN1cnNvcihjb250ZXh0LCBzdGF0aWNfY2FzdDxJREJLZXlSYW5nZSo+KG51
bGxwdHIpLCBlYyk7IH0KICAgICBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IG9wZW5LZXlDdXJzb3Io
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
a2V5UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRl
eHQsIGtleVJhbmdlLCBJREJDdXJzb3I6OmRpcmVjdGlvbk5leHQoKSwgZWMpOyB9CiAgICAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBvcGVuS2V5Q3Vyc29yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQq
IGNvbnRleHQsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKSB7IHJldHVybiBvcGVuS2V5Q3Vyc29yKGNvbnRleHQsIGtleSwgSURCQ3Vyc29yOjpk
aXJlY3Rpb25OZXh0KCksIGVjKTsgfQogICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gb3Blbktl
eUN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4s
IGNvbnN0IFN0cmluZyYgZGlyZWN0aW9uLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKaW5kZXggY2U5
ZDJjZWZkNTRiZmMxZjNiZjRkZjkyMmNmMmI0YWNmNmMxMzU3Yi4uZThiZjlkZGVmZTQ5N2I1NjNk
OThmMDg1MGVhZThkNDg3ZWIyMjViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIFBhc3NS
ZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmFkZChKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIERlcHJlY2F0ZWQ6OlNjCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjphZGQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFs
dWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIExPRyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0
U3RvcmU6OmFkZCIpOwotICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpBZGRPbmx5
LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJLZXkq
PigwKSwgZWMpOworICAgIHJldHVybiBwdXQoSURCRGF0YWJhc2VCYWNrZW5kOjpBZGRPbmx5LCBJ
REJBbnk6OmNyZWF0ZSh0aGlzKSwgc3RhdGUsIHZhbHVlLCBzdGF0aWNfY2FzdDxJREJLZXkqPihu
dWxscHRyKSwgZWMpOwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3Jl
OjpwdXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFs
dWUsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmIGVj
KQpAQCAtMTE2LDcgKzExNiw3IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmU6OnB1dChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIERlcHJlY2F0ZWQ6OlNjCiBQYXNzUmVmUHRy
PElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IExPRyhTdG9yYWdlQVBJLCAiSURCT2JqZWN0U3RvcmU6OnB1dCIpOwotICAgIHJldHVybiBwdXQo
SURCRGF0YWJhc2VCYWNrZW5kOjpBZGRPclVwZGF0ZSwgSURCQW55OjpjcmVhdGUodGhpcyksIHN0
YXRlLCB2YWx1ZSwgc3RhdGljX2Nhc3Q8SURCS2V5Kj4oMCksIGVjKTsKKyAgICByZXR1cm4gcHV0
KElEQkRhdGFiYXNlQmFja2VuZDo6QWRkT3JVcGRhdGUsIElEQkFueTo6Y3JlYXRlKHRoaXMpLCBz
dGF0ZSwgdmFsdWUsIHN0YXRpY19jYXN0PElEQktleSo+KG51bGxwdHIpLCBlYyk7CiB9CiAKIFBh
c3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OnB1dChJREJEYXRhYmFzZUJhY2tl
bmQ6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJBbnk+IHNvdXJjZSwgSlNDOjpFeGVj
U3RhdGUqIHN0YXRlLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgdmFsdWUsIGNvbnN0IERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlJiBrZXlWYWx1ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCkBAIC0zMTUs
NyArMzE1LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVjdG9yPGludDY0X3QsIDE+IGluZGV4SWRz
OwogICAgICAgICBpbmRleElkcy5hcHBlbmQobV9pbmRleE1ldGFkYXRhLmlkKTsKICAgICAgICAg
aWYgKGN1cnNvcikgewotICAgICAgICAgICAgY3Vyc29yLT5jb250aW51ZUZ1bmN0aW9uKHN0YXRp
Y19jYXN0PElEQktleSo+KDApLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICAgICAgICAgIGN1
cnNvci0+Y29udGludWVGdW5jdGlvbihzdGF0aWNfY2FzdDxJREJLZXkqPihudWxscHRyKSwgQVNT
RVJUX05PX0VYQ0VQVElPTik7CiAKICAgICAgICAgICAgIFJlZlB0cjxJREJLZXk+IHByaW1hcnlL
ZXkgPSBjdXJzb3ItPmlkYlByaW1hcnlLZXkoKTsKICAgICAgICAgICAgIERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlIHZhbHVlID0gY3Vyc29yLT52YWx1ZSgpOwpAQCAtNDI5LDcgKzQyOSw3IEBAIFBh
c3NSZWZQdHI8SURCSW5kZXg+IElEQk9iamVjdFN0b3JlOjppbmRleChjb25zdCBTdHJpbmcmIG5h
bWUsIEV4Y2VwdGlvbkNvZGUmIGVjCiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGNv
bnN0IElEQkluZGV4TWV0YWRhdGEqIGluZGV4TWV0YWRhdGEoMCk7CisgICAgY29uc3QgSURCSW5k
ZXhNZXRhZGF0YSogaW5kZXhNZXRhZGF0YShudWxscHRyKTsKICAgICBmb3IgKGF1dG8mIGluZGV4
IDogbV9tZXRhZGF0YS5pbmRleGVzLnZhbHVlcygpKSB7CiAgICAgICAgIGlmIChpbmRleC5uYW1l
ID09IG5hbWUpIHsKICAgICAgICAgICAgIGluZGV4TWV0YWRhdGEgPSAmaW5kZXg7CkBAIC00NzMs
NyArNDczLDcgQEAgdm9pZCBJREJPYmplY3RTdG9yZTo6ZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5n
JiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJP
YmplY3RTdG9yZTo6b3BlbkN1cnNvcihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBF
eGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4gb3BlbkN1cnNvcihjb250ZXh0LCBzdGF0
aWNfY2FzdDxJREJLZXlSYW5nZSo+KDApLCBlYyk7CisgICAgcmV0dXJuIG9wZW5DdXJzb3IoY29u
dGV4dCwgc3RhdGljX2Nhc3Q8SURCS2V5UmFuZ2UqPihudWxscHRyKSwgZWMpOwogfQogCiBQYXNz
UmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpvcGVuQ3Vyc29yKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+IGtleVJhbmdlLCBF
eGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQk9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJPYmplY3RTdG9yZS5oCmluZGV4IDdmZGVjODQwODRiMTM0NTg1NGViYTc4YmY1Y2FlMzlh
YjVkMGE0MzcuLjU3NjZiZTAyOTNmOWM0NmRiNjYzODk2OTNhYjBjOTU3M2UzZjkzZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuaApA
QCAtOTAsNyArOTAsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxJREJJbmRleD4gaW5kZXgo
Y29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBkZWxldGVJbmRl
eChjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIFBhc3NSZWZQdHI8
SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0
aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNvdW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJh
bmdlKj4oMCksIGVjKTsgfQorICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRXhjZXB0aW9uQ29kZSYgZWMpIHsgcmV0dXJuIGNv
dW50KGNvbnRleHQsIHN0YXRpY19jYXN0PElEQktleVJhbmdlKj4obnVsbHB0ciksIGVjKTsgfQog
ICAgIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0
cjxJREJSZXF1ZXN0PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgRGVwcmVj
YXRlZDo6U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCmluZGV4
IDRiZjdiNmVhZDZhOTc4ODkzMGJhZWRmMzZiZDQ1M2YxOTdhZjM1NDUuLjVmNzA0MWMwYTAzMzUz
YWYzMWZiNWZiZjIwZDBjOGFlMmNiMGRjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQk9wZW5EQlJlcXVlc3QuY3BwCkBAIC05MSw3ICs5MSw3IEBA
IHZvaWQgSURCT3BlbkRCUmVxdWVzdDo6b25VcGdyYWRlTmVlZGVkKHVpbnQ2NF90IG9sZFZlcnNp
b24sIFBhc3NSZWZQdHI8SURCRGF0YWJhCiAgICAgUmVmUHRyPElEQkRhdGFiYXNlPiBpZGJEYXRh
YmFzZSA9IElEQkRhdGFiYXNlOjpjcmVhdGUoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBkYXRh
YmFzZUJhY2tlbmQsIG1fZGF0YWJhc2VDYWxsYmFja3MpOwogICAgIGlkYkRhdGFiYXNlLT5zZXRN
ZXRhZGF0YShtZXRhZGF0YSk7CiAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcy0+Y29ubmVjdChpZGJE
YXRhYmFzZS5nZXQoKSk7Ci0gICAgbV9kYXRhYmFzZUNhbGxiYWNrcyA9IDA7CisgICAgbV9kYXRh
YmFzZUNhbGxiYWNrcyA9IG51bGxwdHI7CiAKICAgICBJREJEYXRhYmFzZU1ldGFkYXRhIG9sZE1l
dGFkYXRhKG1ldGFkYXRhKTsKICAgICBvbGRNZXRhZGF0YS52ZXJzaW9uID0gb2xkVmVyc2lvbjsK
QEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIElEQk9wZW5EQlJlcXVlc3Q6Om9uU3VjY2VzcyhQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQmFja2VuZD4gcHJwQmFja2VuZCwgY29ucwogICAgICAgICBBU1NF
UlQobV9kYXRhYmFzZUNhbGxiYWNrcyk7CiAgICAgICAgIGlkYkRhdGFiYXNlID0gSURCRGF0YWJh
c2U6OmNyZWF0ZShzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGJhY2tlbmQucmVsZWFzZSgpLCBt
X2RhdGFiYXNlQ2FsbGJhY2tzKTsKICAgICAgICAgbV9kYXRhYmFzZUNhbGxiYWNrcy0+Y29ubmVj
dChpZGJEYXRhYmFzZS5nZXQoKSk7Ci0gICAgICAgIG1fZGF0YWJhc2VDYWxsYmFja3MgPSAwOwor
ICAgICAgICBtX2RhdGFiYXNlQ2FsbGJhY2tzID0gbnVsbHB0cjsKICAgICAgICAgbV9yZXN1bHQg
PSBJREJBbnk6OmNyZWF0ZShpZGJEYXRhYmFzZS5nZXQoKSk7CiAgICAgfQogICAgIGlkYkRhdGFi
YXNlLT5zZXRNZXRhZGF0YShtZXRhZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDNiMzFjMmRiODk5ODY2YjEzY2FkZGYyYzI2
NDExZmZiMDdkMGQzZDcuLjllNTAxYjRmODYyNmIwNDAxNmRlY2Q5NTg2MTZhODE1M2ZhNjVhZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CkBAIC03MCw3ICs3MCw3IEBAIFJlZjxJREJSZXF1ZXN0PiBJREJSZXF1ZXN0OjpjcmVhdGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJCiAKIElEQlJlcXVlc3Q6
OklEQlJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJ
REJBbnk+IHNvdXJjZSwgSURCRGF0YWJhc2VCYWNrZW5kOjpUYXNrVHlwZSB0YXNrVHlwZSwgSURC
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKQogICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQp
Ci0gICAgLCBtX3Jlc3VsdCgwKQorICAgICwgbV9yZXN1bHQobnVsbHB0cikKICAgICAsIG1fZXJy
b3JDb2RlKDApCiAgICAgLCBtX2NvbnRleHRTdG9wcGVkKGZhbHNlKQogICAgICwgbV90cmFuc2Fj
dGlvbih0cmFuc2FjdGlvbikKQEAgLTgyLDcgKzgyLDcgQEAgSURCUmVxdWVzdDo6SURCUmVxdWVz
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQkFueT4gc291
cmMKICAgICAsIG1fY3Vyc29yVHlwZShJbmRleGVkREI6OkN1cnNvclR5cGU6OktleUFuZFZhbHVl
KQogICAgICwgbV9jdXJzb3JEaXJlY3Rpb24oSW5kZXhlZERCOjpDdXJzb3JEaXJlY3Rpb246Ok5l
eHQpCiAgICAgLCBtX2N1cnNvckZpbmlzaGVkKGZhbHNlKQotICAgICwgbV9wZW5kaW5nQ3Vyc29y
KDApCisgICAgLCBtX3BlbmRpbmdDdXJzb3IobnVsbHB0cikKICAgICAsIG1fZGlkRmlyZVVwZ3Jh
ZGVOZWVkZWRFdmVudChmYWxzZSkKICAgICAsIG1fcHJldmVudFByb3BhZ2F0aW9uKGZhbHNlKQog
ICAgICwgbV9yZXF1ZXN0U3RhdGUoY29udGV4dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBmM2I5ZTUxYWRhZjdlYzM4
ODMyZmMxNGRkN2ZhZjlkOGFlNjg5YTQ1Li45OTQ4YmM3MmJiMjUyZWFkODA0ZWQwMzcxNTNkMjQx
NGVhOGIxZWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCVHJhbnNhY3Rpb24uY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgdm9pZCBJREJUcmFuc2FjdGlv
bjo6T3BlbkN1cnNvck5vdGlmaWVyOjpjdXJzb3JGaW5pc2hlZCgpCiB7CiAgICAgaWYgKG1fY3Vy
c29yKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPnVucmVnaXN0ZXJPcGVuQ3Vyc29yKG1fY3Vy
c29yKTsKLSAgICAgICAgbV9jdXJzb3IgPSAwOworICAgICAgICBtX2N1cnNvciA9IG51bGxwdHI7
CiAgICAgICAgIG1fdHJhbnNhY3Rpb24uY2xlYXIoKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
LmNwcAppbmRleCA1YjE5MzI0MzU2MWE1ZjkwYTdhNmVjOGJhYTNkZDhlN2M3ZDNiOTMxLi43OWJh
ODdjZmU2N2RlNmFkN2MyMjZkZjgzZTRiYTdkZTdmNzAwZmVlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZC5j
cHAKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZDo6Y29tbWl0
KCkKICAgICAgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZp
cmVkKHRoaXMpOwogICAgICAgICB9CiAKLSAgICAgICAgbV9kYXRhYmFzZSA9IDA7CisgICAgICAg
IG1fZGF0YWJhc2UgPSBudWxscHRyOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25z
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZE9wZXJhdGlvbnMuY3BwCmluZGV4IDFmZTQyNWMyZDMzOGY0ZGQ1YmU1YjRkZDg2ZDU3MWI5
OTNkOWY3NzAuLjQxYzkyMTg0YTAwNjVhYmIxZWEwZjliMWY3NjMwZDMxMjhiODAzZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFj
a2VuZE9wZXJhdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAg
dm9pZCBPcGVuQ3Vyc29yT3BlcmF0aW9uOjpwZXJmb3JtKHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBj
b21wbGV0aW9uQ2FsbGJhY2spCiAgICAgICAgICAgICBtX2NhbGxiYWNrcy0+b25FcnJvcihlcnJv
cik7CiAgICAgICAgIH0gZWxzZSBpZiAoIWtleSkgewogICAgICAgICAgICAgLy8gSWYgdGhlcmUn
cyBubyBlcnJvciBidXQgYWxzbyBubyBrZXksIHRoZW4gdGhlIGN1cnNvciBoYWQgbm8gcmVjb3Jk
cy4KLSAgICAgICAgICAgIG1fY2FsbGJhY2tzLT5vblN1Y2Nlc3Moc3RhdGljX2Nhc3Q8U2hhcmVk
QnVmZmVyKj4oMCkpOworICAgICAgICAgICAgbV9jYWxsYmFja3MtPm9uU3VjY2VzcyhzdGF0aWNf
Y2FzdDxTaGFyZWRCdWZmZXIqPihudWxscHRyKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAg
ICAgICBSZWZQdHI8SURCQ3Vyc29yQmFja2VuZD4gY3Vyc29yID0gSURCQ3Vyc29yQmFja2VuZDo6
Y3JlYXRlKGN1cnNvcklELCBtX2N1cnNvclR5cGUsIG1fdGFza1R5cGUsICptX3RyYW5zYWN0aW9u
LCBtX29iamVjdFN0b3JlSUQpOwogICAgICAgICAgICAgY3Vyc29yLT51cGRhdGVDdXJzb3JEYXRh
KGtleS5nZXQoKSwgcHJpbWFyeUtleS5nZXQoKSwgdmFsdWVCdWZmZXIuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kaWV1aS9VSVJlcXVlc3RFdmVudC5jcHAKaW5kZXgg
YTRjMWVjODJjMWYyMjgzNzQyZDg3N2JkNzEyOTEzYTZjYTI3ZWZmOS4uOTlmYzA4ZDUyODA0MTA1
YWJiOWM5MjZiNTdlNjE0YzRkNTRhMDc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRpZXVpL1VJUmVxdWVzdEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGlldWkvVUlSZXF1ZXN0RXZlbnQuY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogVUlSZXF1ZXN0RXZlbnRJbml0OjpVSVJlcXVlc3RFdmVudEluaXQoKQog
ICAgIDogVUlFdmVudEluaXQodHJ1ZSwgdHJ1ZSkKLSAgICAsIHJlY2VpdmVyKDApCisgICAgLCBy
ZWNlaXZlcihudWxscHRyKQogewogfQogICAgIApAQCAtNjQsNyArNjQsNyBAQCBVSVJlcXVlc3RF
dmVudDo6VUlSZXF1ZXN0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiB0eXBlLCBib29sIGJ1YmJs
ZXMsIGJvb2wgY2FuYwogfQogCiBVSVJlcXVlc3RFdmVudDo6VUlSZXF1ZXN0RXZlbnQoKQotICAg
IDogbV9yZWNlaXZlcigwKQorICAgIDogbV9yZWNlaXZlcihudWxscHRyKQogewogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCmlu
ZGV4IDVmN2FlZGMyMGYyMjBkMzViODU4YWY3OTFmMDQxMzYxOTdkYWRiZTkuLmRlYzU5YzQ0YmUx
ODljZWJmNzIyM2IzMTRjMTlmMDUzZjI5YjhhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC03Niw3ICs3Niw3IEBAIFJl
ZjxNZWRpYVNvdXJjZT4gTWVkaWFTb3VyY2U6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQogCiBNZWRpYVNvdXJjZTo6TWVkaWFTb3VyY2UoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkKICAgICA6IEFjdGl2ZURPTU9iamVjdCgmY29udGV4dCkKLSAgICAsIG1f
bWVkaWFFbGVtZW50KDApCisgICAgLCBtX21lZGlhRWxlbWVudChudWxscHRyKQogICAgICwgbV9k
dXJhdGlvbihNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX3BlbmRpbmdTZWVrVGlt
ZShNZWRpYVRpbWU6OmludmFsaWRUaW1lKCkpCiAgICAgLCBtX3JlYWR5U3RhdGUoY2xvc2VkS2V5
d29yZCgpKQpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnNldFJlYWR5U3Rh
dGUoY29uc3QgQXRvbWljU3RyaW5nJiBzdGF0ZSkKIAogICAgIGlmIChzdGF0ZSA9PSBjbG9zZWRL
ZXl3b3JkKCkpIHsKICAgICAgICAgbV9wcml2YXRlLmNsZWFyKCk7Ci0gICAgICAgIG1fbWVkaWFF
bGVtZW50ID0gMDsKKyAgICAgICAgbV9tZWRpYUVsZW1lbnQgPSBudWxscHRyOwogICAgICAgICBt
X2R1cmF0aW9uID0gTWVkaWFUaW1lOjppbnZhbGlkVGltZSgpOwogICAgIH0KIApAQCAtNjA1LDcg
KzYwNSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VCdWZm
ZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBBdWRpb1RyYWNrKiB0
cmFjayA9IGF1ZGlvVHJhY2tzLT5sYXN0SXRlbSgpOwogCiAgICAgICAgICAgICAvLyA1LjMuMSBT
ZXQgdGhlIHNvdXJjZUJ1ZmZlciBhdHRyaWJ1dGUgb24gdGhlIEF1ZGlvVHJhY2sgb2JqZWN0IHRv
IG51bGwuCi0gICAgICAgICAgICB0cmFjay0+c2V0U291cmNlQnVmZmVyKDApOworICAgICAgICAg
ICAgdHJhY2stPnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKIAogICAgICAgICAgICAgLy8gNS4z
LjIgSWYgdGhlIGVuYWJsZWQgYXR0cmlidXRlIG9uIHRoZSBBdWRpb1RyYWNrIG9iamVjdCBpcyB0
cnVlLCB0aGVuIHNldCB0aGUgcmVtb3ZlZCBlbmFibGVkCiAgICAgICAgICAgICAvLyBhdWRpbyB0
cmFjayBmbGFnIHRvIHRydWUuCkBAIC02NDUsNyArNjQ1LDcgQEAgdm9pZCBNZWRpYVNvdXJjZTo6
cmVtb3ZlU291cmNlQnVmZmVyKFNvdXJjZUJ1ZmZlciogYnVmZmVyLCBFeGNlcHRpb25Db2RlJiBl
YykKICAgICAgICAgICAgIFZpZGVvVHJhY2sqIHRyYWNrID0gdmlkZW9UcmFja3MtPmxhc3RJdGVt
KCk7CiAKICAgICAgICAgICAgIC8vIDcuMy4xIFNldCB0aGUgc291cmNlQnVmZmVyIGF0dHJpYnV0
ZSBvbiB0aGUgVmlkZW9UcmFjayBvYmplY3QgdG8gbnVsbC4KLSAgICAgICAgICAgIHRyYWNrLT5z
ZXRTb3VyY2VCdWZmZXIoMCk7CisgICAgICAgICAgICB0cmFjay0+c2V0U291cmNlQnVmZmVyKG51
bGxwdHIpOwogCiAgICAgICAgICAgICAvLyA3LjMuMiBJZiB0aGUgc2VsZWN0ZWQgYXR0cmlidXRl
IG9uIHRoZSBWaWRlb1RyYWNrIG9iamVjdCBpcyB0cnVlLCB0aGVuIHNldCB0aGUgcmVtb3ZlZCBz
ZWxlY3RlZAogICAgICAgICAgICAgLy8gdmlkZW8gdHJhY2sgZmxhZyB0byB0cnVlLgpAQCAtNjg1
LDcgKzY4NSw3IEBAIHZvaWQgTWVkaWFTb3VyY2U6OnJlbW92ZVNvdXJjZUJ1ZmZlcihTb3VyY2VC
dWZmZXIqIGJ1ZmZlciwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBUZXh0VHJhY2sq
IHRyYWNrID0gdGV4dFRyYWNrcy0+bGFzdEl0ZW0oKTsKIAogICAgICAgICAgICAgLy8gOS4zLjEg
U2V0IHRoZSBzb3VyY2VCdWZmZXIgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2JqZWN0IHRv
IG51bGwuCi0gICAgICAgICAgICB0cmFjay0+c2V0U291cmNlQnVmZmVyKDApOworICAgICAgICAg
ICAgdHJhY2stPnNldFNvdXJjZUJ1ZmZlcihudWxscHRyKTsKIAogICAgICAgICAgICAgLy8gOS4z
LjIgSWYgdGhlIG1vZGUgYXR0cmlidXRlIG9uIHRoZSBUZXh0VHJhY2sgb2JqZWN0IGlzIHNldCB0
byAic2hvd2luZyIgb3IgImhpZGRlbiIsIHRoZW4KICAgICAgICAgICAgIC8vIHNldCB0aGUgcmVt
b3ZlZCBlbmFibGVkIHRleHQgdHJhY2sgZmxhZyB0byB0cnVlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9Tb3VyY2VCdWZmZXIuY3BwCmluZGV4IDRmMjkxMDcw
ZTkzYjI3ZGM1Y2Y5NDY1YmEzNmJiMTY2NTU3OWExOWIuLmQ3NTUxOGE3ZDY2ZGFhY2JmMThjYjEx
MDFiODA4ZWU2ZDkyODNmN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzb3VyY2UvU291cmNlQnVmZmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc291cmNlL1NvdXJjZUJ1ZmZlci5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBTb3VyY2VCdWZm
ZXI6On5Tb3VyY2VCdWZmZXIoKQogewogICAgIEFTU0VSVChpc1JlbW92ZWQoKSk7CiAKLSAgICBt
X3ByaXZhdGUtPnNldENsaWVudCgwKTsKKyAgICBtX3ByaXZhdGUtPnNldENsaWVudChudWxscHRy
KTsKIH0KIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBTb3VyY2VCdWZmZXI6OmJ1ZmZlcmVkKEV4
Y2VwdGlvbkNvZGUmIGVjKSBjb25zdApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgU291cmNlQnVm
ZmVyOjpyZW1vdmVkRnJvbU1lZGlhU291cmNlKCkKICAgICB9CiAKICAgICBtX3ByaXZhdGUtPnJl
bW92ZWRGcm9tTWVkaWFTb3VyY2UoKTsKLSAgICBtX3NvdXJjZSA9IDA7CisgICAgbV9zb3VyY2Ug
PSBudWxscHRyOwogfQogCiB2b2lkIFNvdXJjZUJ1ZmZlcjo6c2Vla1RvVGltZShjb25zdCBNZWRp
YVRpbWUmIHRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW0uY3BwCmluZGV4IGE3ZGExMzhiMmM3ZmQ4ZjQ2ODgyYTkwZGU1Y2Q3NjY1OWQ3
ODc5NWMuLmFmYjUyM2FmNTRkOTU5MTIyNzk2ODA4MGE0YjkxODJlMTdhNGJkNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0uY3BwCkBA
IC0xMDgsNyArMTA4LDcgQEAgTWVkaWFTdHJlYW06Ok1lZGlhU3RyZWFtKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmIGNvbnRleHQsIFBhc3NSZWZQdHI8TWVkaWFTdHJlYW0KIAogTWVkaWFTdHJlYW06
On5NZWRpYVN0cmVhbSgpCiB7Ci0gICAgbV9wcml2YXRlLT5zZXRDbGllbnQoMCk7CisgICAgbV9w
cml2YXRlLT5zZXRDbGllbnQobnVsbHB0cik7CiB9CiAKIGJvb2wgTWVkaWFTdHJlYW06OmFjdGl2
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbUV2ZW50LmNwcAppbmRleCBjYmMwMjQ2ZTBlZTE4MzllMzBmMDA1ZDhmN2I3
NzJjOTVmNjIwYmE5Li5lZDdjMjNlNTNmZDc0ZDFkMTBkZDdlZWVhNjliNzA0MTQyYmE2ZmY4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
RXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1FdmVudC5jcHAKQEAgLTMzLDcgKzMzLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
TWVkaWFTdHJlYW1FdmVudEluaXQ6Ok1lZGlhU3RyZWFtRXZlbnRJbml0KCkKLSAgICA6IHN0cmVh
bSgwKQorICAgIDogc3RyZWFtKG51bGxwdHIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja0V2ZW50LmNw
cAppbmRleCBlZmViZWJlMDVmMTUzNmNlNGU5NzY3ZGZjNTNkN2QxZGFjY2VjNzdlLi4xNmRmZjk5
NmViYmY2YTg0ZmYwM2E1NmFmNjZhZjNhNWM5NTcxMmY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tFdmVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrRXZlbnQu
Y3BwCkBAIC0zMyw3ICszMyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE1lZGlhU3RyZWFt
VHJhY2tFdmVudEluaXQ6Ok1lZGlhU3RyZWFtVHJhY2tFdmVudEluaXQoKQotICAgIDogdHJhY2so
MCkKKyAgICA6IHRyYWNrKG51bGxwdHIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDRGF0YUNoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKaW5kZXggODI3MTkxYzcy
N2U3ODVhMDA2MGRkYTA0N2MxOTMzZDg4YTYzZmU2My4uZDc3MDhjYTA1YmVhZDE0MTY3N2ZjODQ1
YTljMzM3NmU2NDRmZDMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENEYXRhQ2hhbm5lbC5jcHAKQEAgLTMwMCw4ICszMDAsOCBAQCB2b2lkIFJU
Q0RhdGFDaGFubmVsOjpzdG9wKCkKIHsKICAgICBtX3N0b3BwZWQgPSB0cnVlOwogICAgIG1fcmVh
ZHlTdGF0ZSA9IFJlYWR5U3RhdGVDbG9zZWQ7Ci0gICAgbV9oYW5kbGVyLT5zZXRDbGllbnQoMCk7
Ci0gICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0ID0gMDsKKyAgICBtX2hhbmRsZXItPnNldENs
aWVudChudWxscHRyKTsKKyAgICBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQgPSBudWxscHRyOwog
fQogCiB2b2lkIFJUQ0RhdGFDaGFubmVsOjpzY2hlZHVsZURpc3BhdGNoRXZlbnQoUGFzc1JlZlB0
cjxFdmVudD4gZXZlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAppbmRleCBjYmNlODEwZjEzMWIwMjlmZDNjMmMx
ZDRiNTJiYzkxYWMwZWNkMzRjLi4wNTk3NDcwNTUzM2EwNmRlZDczNmU4N2ZlOWU2ODA2YzJlODIy
NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJN
ZWRpYVJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAKQEAgLTIxMyw3ICsyMTMsNyBAQCB2b2lkIFVzZXJNZWRpYVJl
cXVlc3Q6OmNvbnRleHREZXN0cm95ZWQoKQogCiAgICAgaWYgKG1fY29udHJvbGxlcikgewogICAg
ICAgICBtX2NvbnRyb2xsZXItPmNhbmNlbFJlcXVlc3QoKnRoaXMpOwotICAgICAgICBtX2NvbnRy
b2xsZXIgPSAwOworICAgICAgICBtX2NvbnRyb2xsZXIgPSBudWxscHRyOwogICAgIH0KIAogICAg
IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpjb250ZXh0RGVzdHJveWVkKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3Bw
CmluZGV4IGIxZmEzMjAwNzZlMGVkZDIwYmNiNjI5MTIzNjEzN2JiNzRjYmY4NDEuLjhmNzBmZTEz
NDUxMDliNWUyNDE2ZTM1ZTE1NTBhNzE4NTU1MTk2ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9Ob3RpZmljYXRpb24uY3BwCkBAIC01NCw3ICs1
NCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIE5vdGlmaWNhdGlvbjo6Tm90aWZpY2F0aW9u
KCkKLSAgICA6IEFjdGl2ZURPTU9iamVjdCgwKQorICAgIDogQWN0aXZlRE9NT2JqZWN0KG51bGxw
dHIpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0
aW9ucy9Ob3RpZmljYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9u
cy9Ob3RpZmljYXRpb24uaAppbmRleCAyNzkyMDkyZWJlZmY2M2I0YzdhYTg4MDU0NTFhOWIzZjcx
ZDM5OTUyLi5kYjY5MzM5M2ZlYjkxNWNjNThhMDk5NGFlODcyYTNhNmM4ZTY2YmRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL05vdGlmaWNhdGlvbi5o
CkBAIC0xMjQsNyArMTI0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKQog
ICAgIHN0YXRpYyBjb25zdCBTdHJpbmcgcGVybWlzc2lvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0
Kik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IFN0cmluZyBwZXJtaXNzaW9uU3Ry
aW5nKE5vdGlmaWNhdGlvbkNsaWVudDo6UGVybWlzc2lvbik7Ci0gICAgc3RhdGljIHZvaWQgcmVx
dWVzdFBlcm1pc3Npb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8Tm90aWZp
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrPiA9IDApOworICAgIHN0YXRpYyB2b2lkIHJlcXVlc3RQ
ZXJtaXNzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPE5vdGlmaWNhdGlv
blBlcm1pc3Npb25DYWxsYmFjaz4gPSBudWxscHRyKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpcy5jcHAKaW5k
ZXggOTcxNDlmNGUyMDY2NjEwOWZmZWMxMjJmNGViMTUyN2U3MWI3MWU4Yy4uY2Y3ZDM3OThiODhj
NzZkNGU1YTZkNDhjODY3MjIwN2UzN2U3YmU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9TcGVlY2hTeW50aGVzaXMuY3BwCkBAIC00Myw3ICs0Myw3IEBAIFJlZjxT
cGVlY2hTeW50aGVzaXM+IFNwZWVjaFN5bnRoZXNpczo6Y3JlYXRlKCkKIH0KICAgICAKIFNwZWVj
aFN5bnRoZXNpczo6U3BlZWNoU3ludGhlc2lzKCkKLSAgICA6IG1fY3VycmVudFNwZWVjaFV0dGVy
YW5jZSgwKQorICAgIDogbV9jdXJyZW50U3BlZWNoVXR0ZXJhbmNlKG51bGxwdHIpCiAgICAgLCBt
X2lzUGF1c2VkKGZhbHNlKQogI2lmIFBMQVRGT1JNKElPUykKICAgICAsIG1fcmVzdHJpY3Rpb25z
KFJlcXVpcmVVc2VyR2VzdHVyZUZvclNwZWVjaFN0YXJ0UmVzdHJpY3Rpb24pCkBAIC01NSw3ICs1
NSw3IEBAIHZvaWQgU3BlZWNoU3ludGhlc2lzOjpzZXRQbGF0Zm9ybVN5bnRoZXNpemVyKHN0ZDo6
dW5pcXVlX3B0cjxQbGF0Zm9ybVNwZWVjaFN5bnRoCiB7CiAgICAgbV9wbGF0Zm9ybVNwZWVjaFN5
bnRoZXNpemVyID0gV1RGOjptb3ZlKHN5bnRoZXNpemVyKTsKICAgICBtX3ZvaWNlTGlzdC5jbGVh
cigpOwotICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9IDA7CisgICAgbV9jdXJyZW50U3Bl
ZWNoVXR0ZXJhbmNlID0gbnVsbHB0cjsKICAgICBtX3V0dGVyYW5jZVF1ZXVlLmNsZWFyKCk7CiAg
ICAgbV9pc1BhdXNlZCA9IGZhbHNlOwogfQpAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgU3BlZWNo
U3ludGhlc2lzOjpjYW5jZWwoKQogICAgIG1fdXR0ZXJhbmNlUXVldWUuY2xlYXIoKTsKICAgICBp
ZiAobV9wbGF0Zm9ybVNwZWVjaFN5bnRoZXNpemVyKQogICAgICAgICBtX3BsYXRmb3JtU3BlZWNo
U3ludGhlc2l6ZXItPmNhbmNlbCgpOwotICAgIGN1cnJlbnQgPSAwOworICAgIGN1cnJlbnQgPSBu
dWxscHRyOwogICAgIAogICAgIC8vIFRoZSBwbGF0Zm9ybSBzaG91bGQgaGF2ZSBjYWxsZWQgYmFj
ayBpbW1lZGlhdGVseSBhbmQgY2xlYXJlZCB0aGUgY3VycmVudCB1dHRlcmFuY2UuCiAgICAgQVNT
RVJUKCFtX2N1cnJlbnRTcGVlY2hVdHRlcmFuY2UpOwpAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQg
U3BlZWNoU3ludGhlc2lzOjpoYW5kbGVTcGVha2luZ0NvbXBsZXRlZChTcGVlY2hTeW50aGVzaXNV
dHRlcmFuY2UqIHV0dGVyYW5jCiAgICAgQVNTRVJUKG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSk7
CiAgICAgUmVmUHRyPFNwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZT4gcHJvdGVjdCh1dHRlcmFuY2Up
OwogICAgIAotICAgIG1fY3VycmVudFNwZWVjaFV0dGVyYW5jZSA9IDA7CisgICAgbV9jdXJyZW50
U3BlZWNoVXR0ZXJhbmNlID0gbnVsbHB0cjsKIAogICAgIGZpcmVFdmVudChlcnJvck9jY3VycmVk
ID8gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgOiBldmVudE5hbWVzKCkuZW5kRXZlbnQsIHV0dGVy
YW5jZSwgMCwgU3RyaW5nKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlLmNwcAppbmRleCA4ZTc5ZTlkNGY5
YzFjNjczMTY2OGEzMzViNGQ2YWU0OTUxZGI4ZmUwLi5kOGJjN2E1NWMzMDk5OTE4MDUzYzcxM2My
YjZjOThhZTM1N2RkMWEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVj
aC9TcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFN5bnRoZXNpc1V0dGVyYW5jZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAg
U3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjpTcGVlY2hTeW50aGVzaXNVdHRlcmFuY2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGUKIAogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjp+U3Bl
ZWNoU3ludGhlc2lzVXR0ZXJhbmNlKCkKIHsKLSAgICBtX3BsYXRmb3JtVXR0ZXJhbmNlLT5zZXRD
bGllbnQoMCk7CisgICAgbV9wbGF0Zm9ybVV0dGVyYW5jZS0+c2V0Q2xpZW50KG51bGxwdHIpOwog
fQogCiBTcGVlY2hTeW50aGVzaXNWb2ljZSogU3BlZWNoU3ludGhlc2lzVXR0ZXJhbmNlOjp2b2lj
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKaW5kZXggNjI3YjAxZDg0NjBjODM2ZDg0NDJiMjRl
ZjVmNTAyZWUxNzExODVhZi4uNDc1OWMzYjUwYmE1YmRmMWI0ZDg2ODJkMGYyNjUwNzExYmZkNDdk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBSZWY8QXVkaW9CdWZmZXJT
b3VyY2VOb2RlPiBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNyZWF0ZShBdWRpb0NvbnRleHQqIGNv
bnRleHQsCiAKIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlKEF1
ZGlvQ29udGV4dCogY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSkKICAgICA6IEF1ZGlvU2NoZWR1
bGVkU291cmNlTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlKQotICAgICwgbV9idWZmZXIoMCkKKyAg
ICAsIG1fYnVmZmVyKG51bGxwdHIpCiAgICAgLCBtX2lzTG9vcGluZyhmYWxzZSkKICAgICAsIG1f
bG9vcFN0YXJ0KDApCiAgICAgLCBtX2xvb3BFbmQoMCkKQEAgLTY1LDcgKzY1LDcgQEAgQXVkaW9C
dWZmZXJTb3VyY2VOb2RlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGUoQXVkaW9Db250ZXh0KiBjb250
ZXh0LCBmbG9hdCBzYW1wbGUKICAgICAsIG1fZ3JhaW5PZmZzZXQoMC4wKQogICAgICwgbV9ncmFp
bkR1cmF0aW9uKERlZmF1bHRHcmFpbkR1cmF0aW9uKQogICAgICwgbV9sYXN0R2FpbigxLjApCi0g
ICAgLCBtX3Bhbm5lck5vZGUoMCkKKyAgICAsIG1fcGFubmVyTm9kZShudWxscHRyKQogewogICAg
IHNldE5vZGVUeXBlKE5vZGVUeXBlQXVkaW9CdWZmZXJTb3VyY2UpOwogCkBAIC02MDEsNyArNjAx
LDcgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OmNsZWFyUGFubmVyTm9kZSgpCiB7CiAg
ICAgaWYgKG1fcGFubmVyTm9kZSkgewogICAgICAgICBtX3Bhbm5lck5vZGUtPmRlcmVmKEF1ZGlv
Tm9kZTo6UmVmVHlwZUNvbm5lY3Rpb24pOwotICAgICAgICBtX3Bhbm5lck5vZGUgPSAwOworICAg
ICAgICBtX3Bhbm5lck5vZGUgPSBudWxscHRyOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCmluZGV4IGUzZWM5MTgzZTVh
NDQxZjk2MTI4NzYzYWRmMjQyYTAzZmNlNzVjZTMuLjJlZDJlZjVkNGViY2FkM2NiOTMzY2FlZmYw
YWIxMmZiYjNjOTU0MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dC5jcHAKQEAgLTQ1OCw3ICs0NTgsNyBAQCBQYXNzUmVmUHRyPE1lZGlhU3Ry
ZWFtQXVkaW9Tb3VyY2VOb2RlPiBBdWRpb0NvbnRleHQ6OmNyZWF0ZU1lZGlhU3RyZWFtU291cmNl
KE1lZAogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbGF6eUluaXRpYWxpemUoKTsK
IAotICAgIEF1ZGlvU291cmNlUHJvdmlkZXIqIHByb3ZpZGVyID0gMDsKKyAgICBBdWRpb1NvdXJj
ZVByb3ZpZGVyKiBwcm92aWRlciA9IG51bGxwdHI7CiAKICAgICBSZWZQdHI8TWVkaWFTdHJlYW1U
cmFjaz4gYXVkaW9UcmFjazsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUuY3BwCmluZGV4IGIz
MmZkNWRkOTMwODU3MDk2YzcxYmZjM2ZlZWMxZmZiOGQ4MmY2ODYuLmVhYjBhNTZhMjJhMjhlYjU2
NWVlNGFhZjU2NzAyYjllZTg2Y2VjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL01lZGlhRWxlbWVudEF1ZGlvU291cmNlTm9kZS5jcHAK
QEAgLTYxLDcgKzYxLDcgQEAgTWVkaWFFbGVtZW50QXVkaW9Tb3VyY2VOb2RlOjpNZWRpYUVsZW1l
bnRBdWRpb1NvdXJjZU5vZGUoQXVkaW9Db250ZXh0KiBjb250ZXh0LAogCiBNZWRpYUVsZW1lbnRB
dWRpb1NvdXJjZU5vZGU6On5NZWRpYUVsZW1lbnRBdWRpb1NvdXJjZU5vZGUoKQogewotICAgIG1f
bWVkaWFFbGVtZW50LT5zZXRBdWRpb1NvdXJjZU5vZGUoMCk7CisgICAgbV9tZWRpYUVsZW1lbnQt
PnNldEF1ZGlvU291cmNlTm9kZShudWxscHRyKTsKICAgICB1bmluaXRpYWxpemUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNw
cAppbmRleCA5OWM5M2FkODc2ZjBiZDg3MjFkYmRiOTNlOWUyNTNiMjc3YTgxMDJmLi4wMTZmZjlm
NmZkYTEyY2M3MTQyMjNjOWZmMDJmYjFkYTg1NTMzNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcApAQCAtNDEsMTAgKzQxLDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIFZlY3Rvck1hdGg7CiAK
LVBlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNfcGVyaW9kaWNXYXZlU2luZSA9IDA7Ci1Q
ZXJpb2RpY1dhdmUqIE9zY2lsbGF0b3JOb2RlOjpzX3BlcmlvZGljV2F2ZVNxdWFyZSA9IDA7Ci1Q
ZXJpb2RpY1dhdmUqIE9zY2lsbGF0b3JOb2RlOjpzX3BlcmlvZGljV2F2ZVNhd3Rvb3RoID0gMDsK
LVBlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNfcGVyaW9kaWNXYXZlVHJpYW5nbGUgPSAw
OworUGVyaW9kaWNXYXZlKiBPc2NpbGxhdG9yTm9kZTo6c19wZXJpb2RpY1dhdmVTaW5lID0gbnVs
bHB0cjsKK1BlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNfcGVyaW9kaWNXYXZlU3F1YXJl
ID0gbnVsbHB0cjsKK1BlcmlvZGljV2F2ZSogT3NjaWxsYXRvck5vZGU6OnNfcGVyaW9kaWNXYXZl
U2F3dG9vdGggPSBudWxscHRyOworUGVyaW9kaWNXYXZlKiBPc2NpbGxhdG9yTm9kZTo6c19wZXJp
b2RpY1dhdmVUcmlhbmdsZSA9IG51bGxwdHI7CiAKIFJlZjxPc2NpbGxhdG9yTm9kZT4gT3NjaWxs
YXRvck5vZGU6OmNyZWF0ZShBdWRpb0NvbnRleHQqIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUp
CiB7CkBAIC0xMTUsNyArMTE1LDcgQEAgdm9pZCBPc2NpbGxhdG9yTm9kZTo6c2V0VHlwZShjb25z
dCBTdHJpbmcmIHR5cGUpCiAKIGJvb2wgT3NjaWxsYXRvck5vZGU6OnNldFR5cGUodW5zaWduZWQg
dHlwZSkKIHsKLSAgICBQZXJpb2RpY1dhdmUqIHBlcmlvZGljV2F2ZSA9IDA7CisgICAgUGVyaW9k
aWNXYXZlKiBwZXJpb2RpY1dhdmUgPSBudWxscHRyOwogICAgIGZsb2F0IHNhbXBsZVJhdGUgPSB0
aGlzLT5zYW1wbGVSYXRlKCk7CiAKICAgICBzd2l0Y2ggKHR5cGUpIHsKQEAgLTI2OSw4ICsyNjks
OCBAQCB2b2lkIE9zY2lsbGF0b3JOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1Byb2Nlc3Mp
CiAgICAgYm9vbCBoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcyA9IGNhbGN1bGF0ZVNhbXBsZUFjY3Vy
YXRlUGhhc2VJbmNyZW1lbnRzKGZyYW1lc1RvUHJvY2Vzcyk7CiAKICAgICBmbG9hdCBmcmVxdWVu
Y3kgPSAwOwotICAgIGZsb2F0KiBoaWdoZXJXYXZlRGF0YSA9IDA7Ci0gICAgZmxvYXQqIGxvd2Vy
V2F2ZURhdGEgPSAwOworICAgIGZsb2F0KiBoaWdoZXJXYXZlRGF0YSA9IG51bGxwdHI7CisgICAg
ZmxvYXQqIGxvd2VyV2F2ZURhdGEgPSBudWxscHRyOwogICAgIGZsb2F0IHRhYmxlSW50ZXJwb2xh
dGlvbkZhY3RvcjsKIAogICAgIGlmICghaGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VNYW5hZ2Vy
LmNwcAppbmRleCA1YjViMGU2MDBlMTU3YjlmZmY3NWI2MGIyNmM1YjhjNmE3ZjVhNDVjLi5lNjY0
MWE0ZDNhMWRkNTQ3OTI4MDk1ZTg3ODYyOGQ5Y2U3NzY1Yjk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZU1hbmFnZXIuY3BwCkBAIC02
Niw3ICs2Niw3IEBAIERhdGFiYXNlTWFuYWdlciYgRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24o
KQogCiBEYXRhYmFzZU1hbmFnZXI6OkRhdGFiYXNlTWFuYWdlcigpCiAgICAgOiBtX3NlcnZlcihu
ZXcgRGF0YWJhc2VTZXJ2ZXIpCi0gICAgLCBtX2NsaWVudCgwKQorICAgICwgbV9jbGllbnQobnVs
bHB0cikKICAgICAsIG1fZGF0YWJhc2VJc0F2YWlsYWJsZSh0cnVlKQogI2lmICFBU1NFUlRfRElT
QUJMRUQKICAgICAsIG1fZGF0YWJhc2VDb250ZXh0UmVnaXN0ZXJlZENvdW50KDApCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3Bw
CmluZGV4IGE0NDEzYzI1NjNiMjU2MDJlZjE1YmE1MzI2MDJiMGY5MDZmODQ1Y2MuLmFhZGU3MmM3
YWI2YzViMTNiYzRkODYzYzhkMDRjMGViNGFkMzNkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJlYWQuY3BwCkBAIC00NSw3ICs0
NSw3IEBAIERhdGFiYXNlVGhyZWFkOjpEYXRhYmFzZVRocmVhZCgpCiAjZW5kaWYKICAgICAsIG1f
dHJhbnNhY3Rpb25DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxTUUxUcmFuc2FjdGlvbkNsaWVudD4o
KSkKICAgICAsIG1fdHJhbnNhY3Rpb25Db29yZGluYXRvcihzdGQ6Om1ha2VfdW5pcXVlPFNRTFRy
YW5zYWN0aW9uQ29vcmRpbmF0b3I+KCkpCi0gICAgLCBtX2NsZWFudXBTeW5jKDApCisgICAgLCBt
X2NsZWFudXBTeW5jKG51bGxwdHIpCiB7CiAgICAgbV9zZWxmUmVmID0gdGhpczsKIH0KQEAgLTIx
Myw3ICsyMTMsNyBAQCB2b2lkIERhdGFiYXNlVGhyZWFkOjpkYXRhYmFzZVRocmVhZCgpCiAgICAg
RGF0YWJhc2VUYXNrU3luY2hyb25pemVyKiBjbGVhbnVwU3luYyA9IG1fY2xlYW51cFN5bmM7CiAK
ICAgICAvLyBDbGVhciB0aGUgc2VsZiByZWZwdHIsIHBvc3NpYmx5IHJlc3VsdGluZyBpbiBkZWxl
dGlvbgotICAgIG1fc2VsZlJlZiA9IDA7CisgICAgbV9zZWxmUmVmID0gbnVsbHB0cjsKIAogICAg
IGlmIChjbGVhbnVwU3luYykgLy8gU29tZW9uZSB3YW50ZWQgdG8ga25vdyB3aGVuIHdlIHdlcmUg
ZG9uZSBjbGVhbmluZyB1cC4KICAgICAgICAgY2xlYW51cFN5bmMtPnRhc2tDb21wbGV0ZWQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
aHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUaHJl
YWQuaAppbmRleCA1ZjQ0MzZjMzNmOTQ3OWZiZDkxMzM5NTA3MmM5YTVhZWYzYzM5ZWNkLi5jMWYz
ZjA2ZDI4MWZiZjA4Yzg4YWZhZDY1NTcwZTI4Mzg5NGI1N2E1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVGhyZWFkLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRocmVhZC5oCkBAIC01Miw3ICs1
Miw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgc3RhcnQoKTsKICAgICB2b2lkIHJlcXVlc3RUZXJt
aW5hdGlvbihEYXRhYmFzZVRhc2tTeW5jaHJvbml6ZXIqIGNsZWFudXBTeW5jKTsKLSAgICBib29s
IHRlcm1pbmF0aW9uUmVxdWVzdGVkKERhdGFiYXNlVGFza1N5bmNocm9uaXplciogdGFza1N5bmNo
cm9uaXplciA9IDApIGNvbnN0OworICAgIGJvb2wgdGVybWluYXRpb25SZXF1ZXN0ZWQoRGF0YWJh
c2VUYXNrU3luY2hyb25pemVyKiA9IG51bGxwdHIpIGNvbnN0OwogCiAgICAgdm9pZCBzY2hlZHVs
ZVRhc2soc3RkOjp1bmlxdWVfcHRyPERhdGFiYXNlVGFzaz4pOwogICAgIHZvaWQgc2NoZWR1bGVJ
bW1lZGlhdGVUYXNrKHN0ZDo6dW5pcXVlX3B0cjxEYXRhYmFzZVRhc2s+KTsgLy8gVGhpcyBqdXN0
IGFkZHMgdGhlIHRhc2sgdG8gdGhlIGZyb250IG9mIHRoZSBxdWV1ZSAtIHRoZSBjYWxsZXIgbmVl
ZHMgdG8gYmUgZXh0cmVtZWx5IGNhcmVmdWwgbm90IHRvIGNyZWF0ZSBkZWFkbG9ja3Mgd2hlbiB3
YWl0aW5nIGZvciBjb21wbGV0aW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IGE3MTBkYzJhNTY3YjlhNjkz
NmYyNjMwNTI0Y2QzYmUxZTQzOGMwNTQuLmRhYThhZjk0ZWM3YjMxMWZmMjVjNDVlNTdjM2UwMzdi
N2EyNWZlZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RkOjp1bmlxdWVfcHRy
PERhdGFiYXNlVHJhY2tlcj4gRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyV2l0aERhdGFiYXNlUGF0
aChjb25zdAogICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YWJhc2VUcmFja2VyPihuZXcg
RGF0YWJhc2VUcmFja2VyKGRhdGFiYXNlUGF0aCkpOwogfQogCi1zdGF0aWMgRGF0YWJhc2VUcmFj
a2VyKiBzdGF0aWNUcmFja2VyID0gMDsKK3N0YXRpYyBEYXRhYmFzZVRyYWNrZXIqIHN0YXRpY1Ry
YWNrZXIgPSBudWxscHRyOwogCiB2b2lkIERhdGFiYXNlVHJhY2tlcjo6aW5pdGlhbGl6ZVRyYWNr
ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiB7CkBAIC04Miw3ICs4Miw3IEBAIERhdGFi
YXNlVHJhY2tlciYgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkKIH0KIAogRGF0YWJhc2VUcmFj
a2VyOjpEYXRhYmFzZVRyYWNrZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCi0gICAgOiBt
X2NsaWVudCgwKQorICAgIDogbV9jbGllbnQobnVsbHB0cikKIHsKICAgICBzZXREYXRhYmFzZURp
cmVjdG9yeVBhdGgoZGF0YWJhc2VQYXRoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTENhbGxiYWNrV3JhcHBlci5oCmluZGV4IDc3MWFlZjg1
ZGUzMTNjZTYyZGE5NmQ1NTQwYWNiOWU0NGNmZDY5Y2IuLmNhMjI4MDExZGM0ODY5MzI1ZTFlNjcz
YWM2YzQ3ZGU2MmQ0N2I5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMQ2FsbGJhY2tXcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxDYWxsYmFja1dyYXBwZXIuaApAQCAtNjQsOCArNjQsOCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNDb250ZXh0VGhyZWFkKCkpIHsKLSAgICAg
ICAgICAgICAgICBtX2NhbGxiYWNrID0gMDsKLSAgICAgICAgICAgICAgICBtX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQgPSAwOworICAgICAgICAgICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwor
ICAgICAgICAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCA9IG51bGxwdHI7CiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dFB0ciA9IG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC5yZWxlYXNlKCkubGVh
a1JlZigpOwpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBNdXRleExv
Y2tlciBsb2NrZXIobV9tdXRleCk7CiAgICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayB8fCBtX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQtPmlzQ29udGV4dFRocmVhZCgpKTsKLSAgICAgICAgbV9zY3Jp
cHRFeGVjdXRpb25Db250ZXh0ID0gMDsKKyAgICAgICAgbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
ID0gbnVsbHB0cjsKICAgICAgICAgcmV0dXJuIG1fY2FsbGJhY2sucmVsZWFzZSgpOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnRCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
U3RhdGVtZW50QmFja2VuZC5jcHAKaW5kZXggNDhmM2NiZmM3NDMxOWIxZGUxYTk4OTBjMWY1NDk2
OTgxNWEzMjdlYi4uM2Y4NzI1MDkzNTZlYmFiN2U4YTAwYWIwZWQ1Yjc2MDZkNGE0ZWQxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnRC
YWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudEJhY2tlbmQuY3BwCkBAIC0yMzUsNyArMjM1LDcgQEAgdm9pZCBTUUxTdGF0ZW1lbnRC
YWNrZW5kOjpzZXRGYWlsdXJlRHVlVG9RdW90YSgpCiB2b2lkIFNRTFN0YXRlbWVudEJhY2tlbmQ6
OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAgIGlmIChsYXN0RXhlY3V0aW9uRmFpbGVk
RHVlVG9RdW90YSgpKQotICAgICAgICBtX2Vycm9yID0gMDsKKyAgICAgICAgbV9lcnJvciA9IG51
bGxwdHI7CiB9CiAKIGJvb2wgU1FMU3RhdGVtZW50QmFja2VuZDo6bGFzdEV4ZWN1dGlvbkZhaWxl
ZER1ZVRvUXVvdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCAyOGQxZDVhM2IzYTYwMzAyOTJkNmY3
YTE1NzJjOTkzNjIzY2FmYjE4Li4zNDNlZTliYTVjMWU2ZTNiOWJiZWU4MDRlNzZkMDdiZWIzYTU0
MjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRy
YW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uLmNwcApAQCAtMTY5LDcgKzE2OSw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUg
U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKQogICAgICAg
ICBBU1NFUlQobV90cmFuc2FjdGlvbkVycm9yKTsKICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFu
ZGxlRXZlbnQobV90cmFuc2FjdGlvbkVycm9yLmdldCgpKTsKIAotICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSAwOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBudWxscHRyOwogICAg
IH0KIAogICAgIGNsZWFyQ2FsbGJhY2tXcmFwcGVycygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbkJhY2tlbmQuY3Bw
CmluZGV4IGI1YzAyZjNlODI0MmM1N2RlMWE2MGM2NmI5ODIzNjZkYjJhMDNjNWYuLmRhMjU0YjY1
NGYyMzVlNWExODJlNGQ3Zjg0YzM5YTE1NWU0ZTgwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb25CYWNrZW5kLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uQmFja2VuZC5j
cHAKQEAgLTM3Niw3ICszNzYsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVh
bnVwKCkKIHsKICAgICBpZiAoIW1fZnJvbnRlbmQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2Zy
b250ZW5kID0gMDsgLy8gQnJlYWsgdGhlIHJlZmVyZW5jZSBjeWNsZS4gU2VlIGNvbW1lbnQgYWJv
dXQgdGhlIGxpZmUtY3ljbGUgYWJvdmUuCisgICAgbV9mcm9udGVuZCA9IG51bGxwdHI7IC8vIEJy
ZWFrIHRoZSByZWZlcmVuY2UgY3ljbGUuIFNlZSBjb21tZW50IGFib3V0IHRoZSBsaWZlLWN5Y2xl
IGFib3ZlLgogCiAgICAgQVNTRVJUKGN1cnJlbnRUaHJlYWQoKSA9PSBkYXRhYmFzZSgpLT5kYXRh
YmFzZUNvbnRleHQoKS0+ZGF0YWJhc2VUaHJlYWQoKS0+Z2V0VGhyZWFkSUQoKSk7CiAKQEAgLTQy
MSw3ICs0MjEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uQmFja2VuZDo6ZG9DbGVhbnVwKCkKICAg
ICAvLyBTUUxUcmFuc2FjdGlvbkJhY2tlbmQgaXMgZ3VhcmFudGVlZCB0byBub3QgZGVzdHJ1Y3Qg
dW50aWwgdGhlIGZyb250ZW5kCiAgICAgLy8gaXMgYWxzbyBkZXN0cnVjdGluZy4KIAotICAgIG1f
d3JhcHBlciA9IDA7CisgICAgbV93cmFwcGVyID0gbnVsbHB0cjsKIH0KIAogU1FMU3RhdGVtZW50
KiBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmN1cnJlbnRTdGF0ZW1lbnQoKQpAQCAtNjY0LDcgKzY2
NCw3IEBAIFNRTFRyYW5zYWN0aW9uU3RhdGUgU1FMVHJhbnNhY3Rpb25CYWNrZW5kOjpydW5TdGF0
ZW1lbnRzKCkKIAogdm9pZCBTUUxUcmFuc2FjdGlvbkJhY2tlbmQ6OmdldE5leHRTdGF0ZW1lbnQo
KQogewotICAgIG1fY3VycmVudFN0YXRlbWVudEJhY2tlbmQgPSAwOworICAgIG1fY3VycmVudFN0
YXRlbWVudEJhY2tlbmQgPSBudWxscHRyOwogCiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fc3Rh
dGVtZW50TXV0ZXgpOwogICAgIGlmICghbV9zdGF0ZW1lbnRRdWV1ZS5pc0VtcHR5KCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9u
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxU
cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcAppbmRleCA4OWE2MmFiNzY3NzJmMjZjMjI5ZGViNzkz
MTI5MzQ4ODdjM2ZmMTYxLi44NDMzMjhjZjUyMzY2Y2RjMWI4M2U3MmJlNjUyNjBjZGE4YmNmYmRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5z
YWN0aW9uQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb25Db29yZGluYXRvci5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCB2
b2lkIFNRTFRyYW5zYWN0aW9uQ29vcmRpbmF0b3I6OnJlbGVhc2VMb2NrKFNRTFRyYW5zYWN0aW9u
QmFja2VuZCogdHJhbnNhY3Rpb24pCiAgICAgICAgIGluZm8uYWN0aXZlUmVhZFRyYW5zYWN0aW9u
cy5yZW1vdmUodHJhbnNhY3Rpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIEFTU0VSVChpbmZv
LmFjdGl2ZVdyaXRlVHJhbnNhY3Rpb24gPT0gdHJhbnNhY3Rpb24pOwotICAgICAgICBpbmZvLmFj
dGl2ZVdyaXRlVHJhbnNhY3Rpb24gPSAwOworICAgICAgICBpbmZvLmFjdGl2ZVdyaXRlVHJhbnNh
Y3Rpb24gPSBudWxscHRyOwogICAgIH0KIAogICAgIHByb2Nlc3NQZW5kaW5nVHJhbnNhY3Rpb25z
KGluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmNwcAppbmRleCA0NzQ2ODQ1NzczNzRlMDQ4MGZjYzkzMTkyMjBhMjg4YzEzMjc0NjU4Li4z
ZmY5OThhZTE4NzBkNTQ3NGU1MzU3ZTBlNzQwNjk2NTRjNTJmYmRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtNDMsNyArNDMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBjbGllbnQp
CiAgICAgOiBtX2NvbnRleHQoY29udGV4dCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAs
IG1fcGVlcigwKQorICAgICwgbV9wZWVyKG51bGxwdHIpCiAgICAgLCBtX2ZhaWxlZFdlYlNvY2tl
dENoYW5uZWxDcmVhdGlvbihmYWxzZSkKICAgICAsIG1fc3luY01ldGhvZERvbmUodHJ1ZSkKICAg
ICAsIG1fc2VuZFJlcXVlc3RSZXN1bHQoVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRG
YWlsKQpAQCAtODUsNyArODUsNyBAQCB2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcjo6ZGlkQ3JlYXRlV2ViU29ja2V0Q2hhbm5lbChXb3JrZXJUaAogCiB2b2lkIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y2xlYXJQZWVyKCkKIHsKLSAg
ICBtX3BlZXIgPSAwOworICAgIG1fcGVlciA9IG51bGxwdHI7CiB9CiAKIGJvb2wgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpmYWlsZWRXZWJTb2NrZXRDaGFubmVsQ3Jl
YXRpb24oKSBjb25zdApAQCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nIGJ1
CiAKIHZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhckNs
aWVudCgpCiB7Ci0gICAgbV9jbGllbnQgPSAwOworICAgIG1fY2xpZW50ID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5l
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cAppbmRleCAwMzE1ZmJlM2ZjZDBjYWQ2MWE4ODVmOGU2OGFlOTdkZTE3NTljMmMzLi5hODdlMjg1
YmNhZWYxMmFiOTJjMWFkNmZjZTc5MjcyYTY2NDU3MzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtNTExLDcgKzUxMSw3IEBAIHZv
aWQgV2ViU29ja2V0OjpzdG9wKCkKICAgICBib29sIHBlbmRpbmcgPSBoYXNQZW5kaW5nQWN0aXZp
dHkoKTsKICAgICBpZiAobV9jaGFubmVsKQogICAgICAgICBtX2NoYW5uZWwtPmRpc2Nvbm5lY3Qo
KTsKLSAgICBtX2NoYW5uZWwgPSAwOworICAgIG1fY2hhbm5lbCA9IG51bGxwdHI7CiAgICAgbV9z
dGF0ZSA9IENMT1NFRDsKICAgICBtX3BlbmRpbmdFdmVudHMuY2xlYXIoKTsKICAgICBBY3RpdmVE
T01PYmplY3Q6OnN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBmNmQyOWNkMDQzMTViOTBkMGU4MTNm
MzU3NjhlOWY5OTI2Njk5ZTdlLi5jN2JkNmMzZDAyYmMzMWU1MDVmOGVhN2I3YTI2NWZmOGJlZTZl
YzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMjEsOCArMjIxLDggQEAgdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaXNjb25uZWN0KCkKICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRD
bG9zZVdlYlNvY2tldChtX2RvY3VtZW50LCBtX2lkZW50aWZpZXIpOwogICAgIGlmIChtX2hhbmRz
aGFrZSkKICAgICAgICAgbV9oYW5kc2hha2UtPmNsZWFyU2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OwotICAgIG1fY2xpZW50ID0gMDsKLSAgICBtX2RvY3VtZW50ID0gMDsKKyAgICBtX2NsaWVudCA9
IG51bGxwdHI7CisgICAgbV9kb2N1bWVudCA9IG51bGxwdHI7CiAgICAgaWYgKG1faGFuZGxlKQog
ICAgICAgICBtX2hhbmRsZS0+ZGlzY29ubmVjdCgpOwogfQpAQCAtMjczLDkgKzI3Myw5IEBAIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlKiBoYW5kbGUpCiAgICAgICAgIGlmIChtX3N1c3BlbmRlZCkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgV2ViU29ja2V0Q2hhbm5lbENsaWVudCogY2xpZW50ID0gbV9jbGllbnQ7Ci0g
ICAgICAgIG1fY2xpZW50ID0gMDsKLSAgICAgICAgbV9kb2N1bWVudCA9IDA7Ci0gICAgICAgIG1f
aGFuZGxlID0gMDsKKyAgICAgICAgbV9jbGllbnQgPSBudWxscHRyOworICAgICAgICBtX2RvY3Vt
ZW50ID0gbnVsbHB0cjsKKyAgICAgICAgbV9oYW5kbGUgPSBudWxscHRyOwogICAgICAgICBpZiAo
Y2xpZW50KQogICAgICAgICAgICAgY2xpZW50LT5kaWRDbG9zZShtX3VuaGFuZGxlZEJ1ZmZlcmVk
QW1vdW50LCBtX3JlY2VpdmVkQ2xvc2luZ0hhbmRzaGFrZSA/IFdlYlNvY2tldENoYW5uZWxDbGll
bnQ6OkNsb3NpbmdIYW5kc2hha2VDb21wbGV0ZSA6IFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNs
b3NpbmdIYW5kc2hha2VJbmNvbXBsZXRlLCBtX2Nsb3NlRXZlbnRDb2RlLCBtX2Nsb3NlRXZlbnRS
ZWFzb24pOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRGcmFtZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEZyYW1lLmgKaW5kZXggYzE4OTM2MjRmMmY5MGYwYzU5NzAxZmM5NGFmNDU4ZTg3
M2YxZDNmZi4uMDhhMjZmMzc0N2RmOGJkNjViOWUzMTcxZDI5OWEyMDg4ZmExMWMwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmgK
QEAgLTYxLDcgKzYxLDcgQEAgc3RydWN0IFdlYlNvY2tldEZyYW1lIHsKICAgICBzdGF0aWMgYm9v
bCBuZWVkc0V4dGVuZGVkTGVuZ3RoRmllbGQoc2l6ZV90IHBheWxvYWRMZW5ndGgpOwogICAgIHN0
YXRpYyBQYXJzZUZyYW1lUmVzdWx0IHBhcnNlRnJhbWUoY2hhciogZGF0YSwgc2l6ZV90IGRhdGFM
ZW5ndGgsIFdlYlNvY2tldEZyYW1lJiwgY29uc3QgY2hhciomIGZyYW1lRW5kLCBTdHJpbmcmIGVy
cm9yU3RyaW5nKTsgLy8gTWF5IG1vZGlmeSBwYXJ0IG9mIGRhdGEgdG8gdW5tYXNrIHRoZSBmcmFt
ZS4KIAotICAgIFdlYlNvY2tldEZyYW1lKE9wQ29kZSA9IE9wQ29kZUludmFsaWQsIGJvb2wgZmlu
YWwgPSBmYWxzZSwgYm9vbCBjb21wcmVzcyA9IGZhbHNlLCBib29sIG1hc2tlZCA9IGZhbHNlLCBj
b25zdCBjaGFyKiBwYXlsb2FkID0gMCwgc2l6ZV90IHBheWxvYWRMZW5ndGggPSAwKTsKKyAgICBX
ZWJTb2NrZXRGcmFtZShPcENvZGUgPSBPcENvZGVJbnZhbGlkLCBib29sIGZpbmFsID0gZmFsc2Us
IGJvb2wgY29tcHJlc3MgPSBmYWxzZSwgYm9vbCBtYXNrZWQgPSBmYWxzZSwgY29uc3QgY2hhciog
cGF5bG9hZCA9IG51bGxwdHIsIHNpemVfdCBwYXlsb2FkTGVuZ3RoID0gMCk7CiAgICAgdm9pZCBt
YWtlRnJhbWVEYXRhKFZlY3RvcjxjaGFyPiYgZnJhbWVEYXRhKTsKIAogICAgIE9wQ29kZSBvcENv
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0SGFuZHNoYWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwCmluZGV4IDU1MWRkZjIyYTk3ZTMzMTI4ODk0OTg0NTkyMTBlZmE1
Njg3NTMyZTkuLjE5Y2YwMThjMWZhOWFiYmIyNzk5YWVlNTAwOTgwMWUyMjk4ZmM2YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuY3BwCkBAIC0yNzgsNyArMjc4LDcgQEAgdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6
OnJlc2V0KCkKIAogdm9pZCBXZWJTb2NrZXRIYW5kc2hha2U6OmNsZWFyU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpCiB7Ci0gICAgbV9jb250ZXh0ID0gMDsKKyAgICBtX2NvbnRleHQgPSBudWxscHRy
OwogfQogCiBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU2VydmVySGFuZHNoYWtlKGNvbnN0
IGNoYXIqIGhlYWRlciwgc2l6ZV90IGxlbikKQEAgLTQwMSw4ICs0MDEsOCBAQCBpbnQgV2ViU29j
a2V0SGFuZHNoYWtlOjpyZWFkU3RhdHVzTGluZShjb25zdCBjaGFyKiBoZWFkZXIsIHNpemVfdCBo
ZWFkZXJMZW5ndGgsCiAgICAgc3RhdHVzQ29kZSA9IC0xOwogICAgIHN0YXR1c1RleHQgPSBTdHJp
bmcoKTsKIAotICAgIGNvbnN0IGNoYXIqIHNwYWNlMSA9IDA7Ci0gICAgY29uc3QgY2hhciogc3Bh
Y2UyID0gMDsKKyAgICBjb25zdCBjaGFyKiBzcGFjZTEgPSBudWxscHRyOworICAgIGNvbnN0IGNo
YXIqIHNwYWNlMiA9IG51bGxwdHI7CiAgICAgY29uc3QgY2hhciogcDsKICAgICBzaXplX3QgY29u
c3VtZWRMZW5ndGg7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3Bw
CmluZGV4IGY3NmIzNDhhM2Q5NDFiODYyNmRmNGJiYzU0MWQwMWVkMjBkYmQ1YWEuLmJjYmRhZjk0
YzcwMTE3YzNkMTQzOWE4NDNlYTdjYjAzMjhjMmVlODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpc2Nvbm5lY3QoKQogICAgIGlmICghbV9t
YWluV2ViU29ja2V0Q2hhbm5lbCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fbWFpbldlYlNvY2tl
dENoYW5uZWwtPmRpc2Nvbm5lY3QoKTsKLSAgICBtX21haW5XZWJTb2NrZXRDaGFubmVsID0gMDsK
KyAgICBtX21haW5XZWJTb2NrZXRDaGFubmVsID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXb3JrZXJU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6c3VzcGVuZCgpCkBAIC0zMjYsNyArMzI2
LDcgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkU3Rh
cnRDbG9zaW5nSGFuZHNoYWtlKCkKIHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw6OlBlZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQs
IENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIGNsb3NpbmdIYW5kc2hha2VDb21wbGV0
aW9uLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwgPSAwOwor
ICAgIG1fbWFpbldlYlNvY2tldENoYW5uZWwgPSBudWxscHRyOwogCiAgICAgUmVmUHRyPFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gd29ya2VyQ2xpZW50V3JhcHBlciA9
IG1fd29ya2VyQ2xpZW50V3JhcHBlcjsKICAgICBTdHJpbmdDYXB0dXJlIGNhcHR1cmVkUmVhc29u
KHJlYXNvbik7CkBAIC0zNTMsNyArMzUzLDcgQEAgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw6OkJyaWRnZTo6QnJpZGdlKFBhc3NSZWZQdHI8VGhyZWFkYWJsZVdlYlNvY2tldEMKICAg
ICAsIG1fd29ya2VyR2xvYmFsU2NvcGUod29ya2VyR2xvYmFsU2NvcGUpCiAgICAgLCBtX2xvYWRl
clByb3h5KG1fd29ya2VyR2xvYmFsU2NvcGUtPnRocmVhZCgpLndvcmtlckxvYWRlclByb3h5KCkp
CiAgICAgLCBtX3Rhc2tNb2RlKHRhc2tNb2RlKQotICAgICwgbV9wZWVyKDApCisgICAgLCBtX3Bl
ZXIobnVsbHB0cikKIHsKICAgICBBU1NFUlQobV93b3JrZXJDbGllbnRXcmFwcGVyLmdldCgpKTsK
IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>