<?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>226045</bug_id>
          
          <creation_ts>2021-05-20 14:40:12 -0700</creation_ts>
          <short_desc>Use CheckedLock more in WTF</short_desc>
          <delta_ts>2021-05-20 19:44:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1762146</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 14:40:12 -0700</bug_when>
    <thetext>Use CheckedLock more in WTF to benefit from Clang Thread Safety Analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762150</commentid>
    <comment_count>1</comment_count>
      <attachid>429225</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 14:42:07 -0700</bug_when>
    <thetext>Created attachment 429225
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762156</commentid>
    <comment_count>2</comment_count>
      <attachid>429227</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 14:50:59 -0700</bug_when>
    <thetext>Created attachment 429227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762158</commentid>
    <comment_count>3</comment_count>
      <attachid>429228</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-20 14:54:34 -0700</bug_when>
    <thetext>Created attachment 429228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762273</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-20 19:43:26 -0700</bug_when>
    <thetext>Committed r277847 (237989@main): &lt;https://commits.webkit.org/237989@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 429228.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1762274</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-20 19:44:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/78290307&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429225</attachid>
            <date>2021-05-20 14:42:07 -0700</date>
            <delta_ts>2021-05-20 14:51:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226045-20210520144206.patch</filename>
            <type>text/plain</type>
            <size>23511</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVmYjU2ZWI0NGJhZGIxNWM0ODM3ZGI4
Yzk5MmIyODczNzNmZGZhYTIuLmIyMmM1YTNmYTNjNjEwMDVmZGVmYmNhOTZiYWNkNjcxZTFkNTNm
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBXVEYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9j
ayBtb3JlIGluIFdURiB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjphcHBlbmQpOgorICAgICAgICAoV1RGOjpDcm9zc1Ro
cmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1lc3NhZ2UpOgorICAgICAgICAoV1RGOjpDcm9z
c1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2FnZSk6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJl
YWRRdWV1ZTxEYXRhVHlwZT46OmlzS2lsbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6Q3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAqIHd0Zi9Dcm9z
c1RocmVhZFRhc2tIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFu
ZGxlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlci5oOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVy
OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiB3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAgICAg
KFdURjo6TWFsbG9jQ2FsbFRyYWNrZXI6OnJlY29yZE1hbGxvYyk6CisgICAgICAgIChXVEY6Ok1h
bGxvY0NhbGxUcmFja2VyOjpyZWNvcmRSZWFsbG9jKToKKyAgICAgICAgKFdURjo6TWFsbG9jQ2Fs
bFRyYWNrZXI6OnJlY29yZEZyZWUpOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAgIChXVEY6
Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxE
YXRhVHlwZT46OndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dCk6CisgICAgICAgIChX
VEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0YWtlQWxsTWVzc2FnZXMpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlSWdub3JpbmdLaWxsZWQpOgor
ICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZik6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkpOgorICAgICAgICAoV1RGOjpN
ZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVl
PERhdGFUeXBlPjo6a2lsbGVkIGNvbnN0KToKKyAgICAgICAgKiB3dGYvT1NMb2dQcmludFN0cmVh
bS5jcHA6CisgICAgICAgIChXVEY6Ok9TTG9nUHJpbnRTdHJlYW06OnZwcmludGYpOgorICAgICAg
ICAqIHd0Zi9PU0xvZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dl
bmVyaWMuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0
ZTo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogd3RmL1BhcmFsbGVsVmVjdG9ySXRl
cmF0b3IuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxWZWN0b3JJdGVyYXRvcjo6aXRlcmF0ZSk6
CisgICAgICAgIChXVEY6OlBhcmFsbGVsVmVjdG9ySXRlcmF0b3I6OldURl9HVUFSREVEX0JZX0xP
Q0spOgorICAgICAgICAqIHd0Zi9SZWFkV3JpdGVMb2NrLmNwcDoKKyAgICAgICAgKFdURjo6UmVh
ZFdyaXRlTG9jazo6cmVhZExvY2spOgorICAgICAgICAoV1RGOjpSZWFkV3JpdGVMb2NrOjpyZWFk
VW5sb2NrKToKKyAgICAgICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVMb2NrKToKKyAgICAg
ICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVVbmxvY2spOgorICAgICAgICAqIHd0Zi9SZWFk
V3JpdGVMb2NrLmg6CisgICAgICAgIChXVEY6OlJlYWRXcml0ZUxvY2s6OldURl9HVUFSREVEX0JZ
X0xPQ0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3aXRoIENoZWNrZWRMb2NrcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oCmluZGV4IDMxNTUyNzRiZmFjNTNlZDY0NWUwZGY4MzU4OTA0
Y2JhNzdjM2E3MGUuLmJiMWRlNjk1ZmYyYzUxZjM5N2I0NzZkZTJkYWY5OGYxODdjZTdkYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKQEAgLTI3LDcgKzI3LDggQEAKIAogI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01MiwxNiArNTMsMTYgQEAg
cHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIERlcXVl
PERhdGFUeXBlPiBtX3F1ZXVlOwotICAgIG11dGFibGUgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOwotICAgIGJvb2wgbV9raWxsZWQgeyBmYWxzZSB9OworICAgIG11dGFi
bGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIERlcXVlPERhdGFUeXBlPiBtX3F1ZXVlIFdURl9H
VUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OworICAgIGJvb2wgbV9raWxsZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgZmFsc2Ug
fTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1
ZXVlPERhdGFUeXBlPjo6YXBwZW5kKERhdGFUeXBlJiYgbWVzc2FnZSkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgQVNT
RVJUKCFtX2tpbGxlZCk7CiAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC03MCw3ICs3MSw3IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZChEYXRhVHlwZSYmIG1lc3NhZ2UpCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KIERhdGFUeXBlIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+
Ojp3YWl0Rm9yTWVzc2FnZSgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgYXV0byBmb3VuZCA9IG1fcXVldWUuZW5k
KCk7CiAgICAgd2hpbGUgKGZvdW5kID09IG1fcXVldWUuZW5kKCkpIHsKQEAgLTg5LDcgKzkwLDcg
QEAgRGF0YVR5cGUgQ3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKCkK
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogT3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhy
ZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBpZiAobV9x
dWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDAsNyArMTAxLDcgQEAg
T3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNz
YWdlKCkKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1ZXVl
PERhdGFUeXBlPjo6a2lsbCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICBtX2Nv
bmRpdGlvbi5ub3RpZnlBbGwoKTsKIH0KQEAgLTEwOCwxNCArMTA5LDE0IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmtpbGwoKQogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0tpbGxlZCgpIGNvbnN0CiB7Ci0g
ICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwogICAgIHJldHVybiBtX2tpbGxlZDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0VtcHR5KCkgY29uc3QKIHsKLSAg
ICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07
CiAgICAgcmV0dXJuIG1fcXVldWUuaXNFbXB0eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3Nz
VGhyZWFkVGFza0hhbmRsZXIuY3BwCmluZGV4IGU2OTA3NTlmMDVjYzNlOWY3YTUwODNhOWFmYzQ2
Zjg3NjRlM2M0ZDEuLjJjMDI2YzBlM2JiM2E3ODkwNDZlYmIyNjQ1N2RlZTVkNjM0NWRkNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHZvaWQgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6cG9zdFRhc2tSZXBseShDcm9zc1RocmVh
ZFRhc2smJiB0YXNrKQogewogICAgIG1fdGFza1JlcGx5UXVldWUuYXBwZW5kKFdURk1vdmUodGFz
aykpOwogCi0gICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX21haW5UaHJlYWRSZXBseUxvY2sgfTsKICAgICBpZiAobV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtODQsNyArODQs
NyBAQCB2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnRhc2tSdW5Mb29wKCkKIHZvaWQgQ3Jv
c3NUaHJlYWRUYXNrSGFuZGxlcjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5UaHJlYWQoKQogewog
ICAgIHsKLSAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2sp
OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9tYWluVGhyZWFkUmVwbHlMb2NrIH07CiAgICAg
ICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKaW5kZXggODYzYWM2ZGM1ODQ4YjhmZDY0MWE0
MzQ1OWFjOWVhYzc4MDBkZWRhYy4uYTBjOWQzNjIxYzdiZTQ4MWMyM2FjMGY5NjU1ZGQ3MDdjYzVk
YWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaApAQCAtMjUsOSAr
MjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhy
ZWFkVGFzay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTU2LDggKzU2LDggQEAgcHJpdmF0ZToKICAgICBB
dXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wIG1fdXNlQXV0b2RyYWluZWRQb29sIHsgQXV0b2RyYWlu
ZWRQb29sRm9yUnVuTG9vcDo6RG9Ob3RVc2UgfTsKIAogICAgIExvY2sgbV90YXNrVGhyZWFkQ3Jl
YXRpb25Mb2NrOwotICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOwotICAgIGJvb2wgbV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1fbWFp
blRocmVhZFJlcGx5TG9jazsKKyAgICBib29sIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9tYWluVGhyZWFkUmVwbHlMb2NrKSB7IGZhbHNlIH07CiAKICAg
ICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV90YXNrUXVldWU7CiAgICAgQ3Jv
c3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fdGFza1JlcGx5UXVldWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKaW5kZXggYWZi
Y2U4OTBmNGQ5YjdjYmI4ZTRjMzc2MDM1M2U0ZWU5NWEwODc3Mi4uMWU3NWFhOWIwZTVmMjRmZTAz
NmEzMTI1NDdiM2IzOTYxZmIyMGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0
Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCiAjaW5jbHVkZSA8bXV0ZXg+Ci0j
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT1NSYW5kb21Tb3VyY2Uu
aD4KIApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBpbmxpbmUg
dm9pZCBhZGRSYW5kb21EYXRhKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgpOwotICAg
IHZvaWQgc3RpcigpOwotICAgIHZvaWQgc3RpcklmTmVlZGVkKCk7CisgICAgdm9pZCBzdGlyKCkg
V1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICB2b2lkIHN0aXJJZk5lZWRlZCgpIFdURl9S
RVFVSVJFU19MT0NLKG1fbG9jayk7CiAgICAgaW5saW5lIHVpbnQ4X3QgZ2V0Qnl0ZSgpOwogICAg
IGlubGluZSB1aW50MzJfdCBnZXRXb3JkKCk7CiAKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CiAg
ICAgQVJDNFN0cmVhbSBtX3N0cmVhbTsKICAgICBpbnQgbV9jb3VudDsKLSAgICBMb2NrIG1fbXV0
ZXg7CiB9OwogCiBBUkM0U3RyZWFtOjpBUkM0U3RyZWFtKCkKQEAgLTEzOCw3ICsxMzgsNyBAQCB1
aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpnZXRXb3JkKCkKIAogdWludDMyX3Qg
QVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6cmFuZG9tTnVtYmVyKCkKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
IAogICAgIG1fY291bnQgLT0gNDsKICAgICBzdGlySWZOZWVkZWQoKTsKQEAgLTE0Nyw3ICsxNDcs
NyBAQCB1aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpyYW5kb21OdW1iZXIoKQog
CiB2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbVZhbHVlcyh2b2lkKiBidWZm
ZXIsIHNpemVfdCBsZW5ndGgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICB1bnNpZ25lZCBjaGFyKiBy
ZXN1bHQgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOwogICAgIHN0
aXJJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCBhZmMxNmU0MjE1YjA1M2E1MjUw
NzEyNjNjODIyZmQ0NDc5YzM5OWFhLi5jZjUyYjA1ZTQ4NzEwMjZjYzI3MGM2ODE5ZmExZWY1ZjZm
YjZlNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtMzksOCArMzksOCBAQAogCiAjaWYgRU5B
QkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTaG90Lmg+CkBAIC0z
NzYsOCArMzc2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07CiAKLSAgICBIYXNoTWFw
PHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8TWFsbG9jU2l0ZURhdGE+PiBtX2FkZHJlc3NNYWxsb2NT
aXRlRGF0YTsKLSAgICBMb2NrIG1fbXV0ZXg7CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IEhhc2hNYXA8dm9pZCosIHN0ZDo6dW5pcXVlX3B0cjxNYWxsb2NTaXRlRGF0YT4+IG1fYWRkcmVz
c01hbGxvY1NpdGVEYXRhIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKIH07CiAKIE1hbGxv
Y0NhbGxUcmFja2VyJiBNYWxsb2NDYWxsVHJhY2tlcjo6c2luZ2xldG9uKCkKQEAgLTQwOCw3ICs0
MDgsNyBAQCB2b2lkIE1hbGxvY0NhbGxUcmFja2VyOjpyZWNvcmRNYWxsb2Modm9pZCogYWRkcmVz
cywgc2l6ZV90IGFsbG9jYXRpb25TaXplKQogICAgIGNvbnN0IHNpemVfdCBzdGFja1NpemUgPSAx
MDsKICAgICBhdXRvIHNpdGVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxNYWxsb2NTaXRlRGF0YT4o
c3RhY2tTaXplLCBhbGxvY2F0aW9uU2l6ZSk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fYWRkcmVzc01hbGxvY1NpdGVEYXRhLmFkZChhZGRyZXNzLCBXVEZNb3ZlKHNpdGVE
YXRhKSk7CiAgICAgVU5VU0VEX1BBUkFNKGFkZFJlc3VsdCk7CiB9CkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6cmVjb3JkUmVhbGxvYyh2b2lkKiBvbGRBZGRyZXNz
LCB2b2lkKiBuZXdBZGRyZXNzLCBzaXplX3QKIHsKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2
b2lkUmVjb3JkaW5nOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBhdXRvIGl0ID0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZmluZChvbGRBZGRyZXNzKTsKICAgICBpZiAoaXQgPT0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZW5kKCkpIHsKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIE1hbGxvY0NhbGxU
cmFja2VyOjpyZWNvcmRGcmVlKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgQXZvaWRSZWNvcmRpbmdT
Y29wZSBhdm9pZFJlY29yZGluZzsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRl
eCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGJvb2wgcmVtb3ZlZCA9IG1f
YWRkcmVzc01hbGxvY1NpdGVEYXRhLnJlbW92ZShhZGRyZXNzKTsKICAgICBVTlVTRURfUEFSQU0o
cmVtb3ZlZCk7CiB9CkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKCkKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2b2lkUmVjb3JkaW5nOwogCiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gQnVpbGQgYSBoYXNoIG9mIHN0
YWNrIHRvIGFkZHJlc3MgdmVjdG9yCiAgICAgICAgIHN0cnVjdCBNYWxsb2NTaXRlVG90YWxzIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvTWVzc2FnZVF1ZXVlLmgKaW5kZXggZTlkNGY5Nzk0NWNjMWU2ODg1ZmFmZjQ5MDY1MjYxZmYx
ZWQyNWFlOC4uYzhmNGEzMzY5N2Y1Y2QzZTViNzViYWJiNjRkNTFkMzJjZTM0ZTQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYv
TWVzc2FnZVF1ZXVlLmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtNzgsMTAgKzc4LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBib29sIGlzRW1w
dHkoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OwotICAg
ICAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0gICAgICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0
cjxEYXRhVHlwZT4+IG1fcXVldWU7Ci0gICAgICAgIGJvb2wgbV9raWxsZWQ7CisgICAgICAgIG11
dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29u
ZGl0aW9uOworICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+PiBtX3F1ZXVl
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICAgICAgYm9vbCBtX2tpbGxlZCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERhdGFUeXBlPgpAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5
cGU+OjphcHBlbmQoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1f
bG9jayB9OwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVf
cHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBtX3F1ZXVl
LmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwogICAg
ICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYm9v
bCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6dW5pcXVl
X3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgYm9vbCB3
YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZN
b3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC0xMjAs
NyArMTIwLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZChzdGQ6
OnVuaXF1ZV9wdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAg
IG1fcXVldWUucHJlcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24u
bm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNzYWdl
UXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIFNlY29uZHMg
cmVsYXRpdmVUaW1lb3V0KSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKIAogICAgICAgICBNb25vdG9u
aWNUaW1lIGFic29sdXRlVGltZW91dCA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgcmVsYXRpdmVU
aW1lb3V0OwpAQCAtMTUxLDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAg
aWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLndhaXRVbnRpbChtX211dGV4LCBhYnNv
bHV0ZVRpbWVvdXQpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25kaXRpb24ud2FpdFVu
dGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lb3V0KTsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VS
VCghdGltZWRPdXQgfHwgYWJzb2x1dGVUaW1lb3V0ICE9IE1vbm90b25pY1RpbWU6OmluZmluaXR5
KCkpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46
OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODgsNyArMTg4LDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5l
IGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dGFrZUFsbE1lc3NhZ2VzKCkgLT4gRGVxdWU8
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPj4KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgaWYg
KG1fa2lsbGVkKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUobV9xdWV1ZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6dHJ5R2V0TWVzc2FnZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPgogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAg
ICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjA4LDcgKzIwOCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxp
bmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVk
aWNhdGUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
ICAgICBhdXRvIGZvdW5kID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHB0cik7CkBAIC0yMjUsNyArMjI1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFU
eXBlPjo6aXNFbXB0eSgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7
CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5
KCk7CkBAIC0yMzQsNyArMjM0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6
a2lsbCgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQpAQCAtMjQyLDcgKzI0Miw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCgpIGNvbnN0CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIHJldHVybiBtX2tpbGxlZDsKICAgICB9CiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uY3BwIGIvU291
cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKaW5kZXggZjRjNjQ0MjExMzZlNWFhOGI0
ZjEwMGM4NWM0YmEyY2VkNjhkOGRmYy4uZjFmMTU0NDBlNGNiMTVmNjE5ZGZkMTE2YmM2ZGJkY2Zi
MjMyZWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPE9TTG9nUHJpbnRTdHJlYW0+IE9TTG9nUHJpbnRTdHJlYW06Om9w
ZW4oY29uc3QgY2hhciogc3Vic3lzdGVtLAogCiB2b2lkIE9TTG9nUHJpbnRTdHJlYW06OnZwcmlu
dGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ0xpc3QpCiB7Ci0gICAgYXV0byBsb2Nr
ID0gaG9sZExvY2sobV9zdHJpbmdMb2NrKTsKKyAgICBMb2NrZXIgbG9jayB7IG1fc3RyaW5nTG9j
ayB9OwogICAgIHNpemVfdCBvZmZzZXQgPSBtX29mZnNldDsKICAgICBzaXplX3QgZnJlZUJ5dGVz
ID0gbV9zdHJpbmcubGVuZ3RoKCkgLSBvZmZzZXQ7CiAgICAgdmFfbGlzdCBiYWNrdXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0
Zi9PU0xvZ1ByaW50U3RyZWFtLmgKaW5kZXggNTlmODExNGVjZDJkOTdhOTFmMDRmZmFlNzAxOTdk
YmEzODdjZTIxNS4uZDBmZjU0YjMxMTQxYTVjNDllNjBiZTM2MmFhMWIxMDk1MTUxMWE4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgT1MoREFS
V0lOKQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZl
TG9ja0FkYXB0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00OSw5ICs0
OSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgb3NfbG9nX3QgbV9sb2c7CiAgICAgb3NfbG9n
X3R5cGVfdCBtX2xvZ1R5cGU7Ci0gICAgTG9jayBtX3N0cmluZ0xvY2s7CisgICAgQ2hlY2tlZExv
Y2sgbV9zdHJpbmdMb2NrOwogICAgIC8vIFdlIG5lZWQgYSBidWZmZXIgYmVjYXVzZSBvc19sb2cg
ZG9lc24ndCB3YWl0IGZvciBhIG5ldyBsaW5lIHRvIHByaW50IHRoZSBjaGFyYWN0ZXJzLgotICAg
IENTdHJpbmcgbV9zdHJpbmc7CisgICAgQ1N0cmluZyBtX3N0cmluZyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fc3RyaW5nTG9jayk7CiAgICAgc2l6ZV90IG1fb2Zmc2V0IHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIvU291cmNlL1dU
Ri93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IDdmNzA4MGM1NGMyOGRhZTY0M2MyYTg2
NjFkM2Q2MjM0YTkyZDFkOGIuLjI5NTFhZjExMjJhYjc4ZDE5ZTdmNDAwZTc0YjMyMmU2ODE4ZGU0
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMuaAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTMwLDggKzMwLDggQEAK
IAogI2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAotI2luY2x1ZGUgPHd0Zi9Db25kaXRp
b24uaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0
aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTY1LDEyICs2NSwxMiBA
QCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CisgICAgICAgIG11dGFibGUgQ2hl
Y2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fdGhyZWFkQ29uZGl0
aW9uOworCiAgICAgICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOwogICAgICAgICBib29sIG1f
cnVubmluZyB7IGZhbHNlIH07Ci0gICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1fcGFyZW50
IHsgbnVsbHB0ciB9OwotCi0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OwotICAgICAgICBD
b25kaXRpb24gbV90aHJlYWRDb25kaXRpb247CisgICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQq
IG1fcGFyZW50IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IG51bGxwdHIgfTsKIAogICAg
ICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9uIHsgbnVsbHB0ciB9OwogICAgICAg
ICB2b2lkKiBtX3BhcmFtZXRlcnMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9QYXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbFZl
Y3Rvckl0ZXJhdG9yLmgKaW5kZXggZjMyY2E3YWI0NTdiMjAwNTNlMWZhMTcwYWVlNjJkOGQ1MzA2
MzE5Yi4uZGJhMzcwNjZkYjNlZDNiM2VhY2I2ZTc2MWUxNGQ1YmI1MjRmZmMxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BhcmFsbGVsVmVjdG9ySXRlcmF0b3IuaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9G
YXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00OSw3ICs0OSw3IEBAIHB1YmxpYzoKICAg
ICAgICAgICAgIHNpemVfdCBiZWdpbjsKICAgICAgICAgICAgIHNpemVfdCBlbmQ7CiAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsKKyAgICAg
ICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAgICAgYmVn
aW4gPSBtX25leHQ7CiAgICAgICAgICAgICAgICAgaWYgKGJlZ2luID09IG1fdmVjdG9yLnNpemUo
KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjcsMTAgKzY3LDEwIEBAIHB1Ymxp
YzoKICAgICAgICAgfQogICAgIH0KIHByaXZhdGU6Ci0gICAgVmVjdG9yVHlwZSYgbV92ZWN0b3I7
Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAgc2l6ZV90IG1fc2hhcmRTaXplOwotICAgIHNpemVfdCBt
X25leHQgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIFZlY3RvclR5cGUmIG1f
dmVjdG9yIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBzaXplX3QgbV9zaGFyZFNp
emUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOworICAgIHNpemVfdCBtX25leHQgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL1JlYWRXcml0ZUxvY2suY3BwCmluZGV4IDUwNzdhNTlkYzhlYmMxZDgwZjZmYzY3MTI1ZjUx
MDc1ZGY2ZmMyZDcuLjc1Yzc3NzRhYzQwNTljMzMzZjFmYWY5YzNiZWM1M2QxNDFkN2FhODUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXVEYg
ewogCiB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRMb2NrKCkKIHsKLSAgICBhdXRvIGxvY2tlciA9
IGhvbGRMb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIHdo
aWxlIChtX2lzV3JpdGVMb2NrZWQgfHwgbV9udW1XYWl0aW5nV3JpdGVycykKICAgICAgICAgbV9j
b25kLndhaXQobV9sb2NrKTsKICAgICBtX251bVJlYWRlcnMrKzsKQEAgLTQwLDcgKzQwLDcgQEAg
dm9pZCBSZWFkV3JpdGVMb2NrOjpyZWFkTG9jaygpCiAKIHZvaWQgUmVhZFdyaXRlTG9jazo6cmVh
ZFVubG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExv
Y2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBtX251bVJlYWRlcnMtLTsKICAgICBpZiAoIW1f
bnVtUmVhZGVycykKICAgICAgICAgbV9jb25kLm5vdGlmeUFsbCgpOwpAQCAtNDgsNyArNDgsNyBA
QCB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRVbmxvY2soKQogCiB2b2lkIFJlYWRXcml0ZUxvY2s6
OndyaXRlTG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAg
IExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICB3aGlsZSAobV9pc1dyaXRlTG9ja2VkIHx8
IG1fbnVtUmVhZGVycykgewogICAgICAgICBtX251bVdhaXRpbmdXcml0ZXJzKys7CiAgICAgICAg
IG1fY29uZC53YWl0KG1fbG9jayk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVhZFdyaXRlTG9j
azo6d3JpdGVMb2NrKCkKIAogdm9pZCBSZWFkV3JpdGVMb2NrOjp3cml0ZVVubG9jaygpCiB7Ci0g
ICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2NrZXIgeyBt
X2xvY2sgfTsKICAgICBtX2lzV3JpdGVMb2NrZWQgPSBmYWxzZTsKICAgICBtX2NvbmQubm90aWZ5
QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmggYi9T
b3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmgKaW5kZXggNGJmZGQwOTBhOTFiZGE4NDFmNmYw
NWQ3ZDg4YzZiODljMzhkOWJjZS4uMmE3YjA2ODJjMzM0ZTkxMDRkYTc3YzJmY2Y5MjI2Y2VkNzMx
MDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaApAQCAtMjUsOCArMjUsOCBAQAogCiAjcHJhZ21h
IG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5o
PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNr
ZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02MSwxMSArNjEsMTEgQEAgcHVibGlj
OgogICAgIFdyaXRlTG9jayYgd3JpdGUoKTsKIAogcHJpdmF0ZToKLSAgICBMb2NrIG1fbG9jazsK
LSAgICBDb25kaXRpb24gbV9jb25kOwotICAgIGJvb2wgbV9pc1dyaXRlTG9ja2VkIHsgZmFsc2Ug
fTsKLSAgICB1bnNpZ25lZCBtX251bVJlYWRlcnMgeyAwIH07Ci0gICAgdW5zaWduZWQgbV9udW1X
YWl0aW5nV3JpdGVycyB7IDAgfTsKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CisgICAgQ2hlY2tl
ZENvbmRpdGlvbiBtX2NvbmQ7CisgICAgYm9vbCBtX2lzV3JpdGVMb2NrZWQgV1RGX0dVQVJERURf
QllfTE9DSyhtX2xvY2spIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX251bVJlYWRlcnMgV1RG
X0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbnVtV2FpdGlu
Z1dyaXRlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsKIAogY2xhc3Mg
UmVhZFdyaXRlTG9jazo6UmVhZExvY2sgOiBwdWJsaWMgUmVhZFdyaXRlTG9jayB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
Y3BwCmluZGV4IGY3Mzk0N2E1NjBiOTFmZTc0MTBmMmQwMWM2NWY2YmQ1OTNmOWEwZGUuLjgyODgz
ZDU1OGZjYTdlNjQxN2RiNmJmZjRjMzY0MGVlYTc4MjdiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCkBAIC0x
MTQsNyArMTE0LDcgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAgICAgYm9vbCBkaWRT
dXNwZW5kRnVuY3Rpb25zID0gZmFsc2U7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9ja2VyID0g
aG9sZExvY2sobV9uZXh0SXRlcmF0aW9uTG9jayk7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBt
X25leHRJdGVyYXRpb25Mb2NrIH07CiAKICAgICAgICAgLy8gSWYgdGhlIFJ1bkxvb3AgcmUtZW50
ZXJzIG9yIHJlLXNjaGVkdWxlcywgd2UncmUgZXhwZWN0ZWQgdG8gZXhlY3V0ZSBhbGwgZnVuY3Rp
b25zIGluIG9yZGVyLgogICAgICAgICB3aGlsZSAoIW1fY3VycmVudEl0ZXJhdGlvbi5pc0VtcHR5
KCkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChGdW5jdGlvbjx2
b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxzZTsKIAogICAg
IHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX25leHRJdGVyYXRpb25Mb2NrKTsK
KyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbmV4dEl0ZXJhdGlvbkxvY2sgfTsKICAgICAgICAg
bmVlZHNXYWtldXAgPSBtX25leHRJdGVyYXRpb24uaXNFbXB0eSgpOwogICAgICAgICBtX25leHRJ
dGVyYXRpb24uYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CkBAIC0xODAsNyArMTgw
LDcgQEAgdm9pZCBSdW5Mb29wOjp0aHJlYWRXaWxsRXhpdCgpCiB7CiAgICAgbV9jdXJyZW50SXRl
cmF0aW9uLmNsZWFyKCk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1f
bmV4dEl0ZXJhdGlvbkxvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9uZXh0SXRlcmF0
aW9uTG9jayB9OwogICAgICAgICBtX25leHRJdGVyYXRpb24uY2xlYXIoKTsKICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0Zi9SdW5M
b29wLmgKaW5kZXggYjg1M2ZmOTUzNjY1OTE2Mjg5ZWFmMTY1MjlhNzdhOWViNzFiOWNkYS4uYjg2
MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApAQCAtMjgs
NiArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1
ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMjE2LDggKzIx
Nyw4IEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2N1cnJlbnRJ
dGVyYXRpb247CiAKLSAgICBMb2NrIG1fbmV4dEl0ZXJhdGlvbkxvY2s7Ci0gICAgRGVxdWU8RnVu
Y3Rpb248dm9pZCgpPj4gbV9uZXh0SXRlcmF0aW9uOworICAgIENoZWNrZWRMb2NrIG1fbmV4dEl0
ZXJhdGlvbkxvY2s7CisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9uZXh0SXRlcmF0aW9u
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9uZXh0SXRlcmF0aW9uTG9jayk7CiAKICAgICBib29sIG1f
aXNGdW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faGFzU3Vz
cGVuZGVkRnVuY3Rpb25zIHsgZmFsc2UgfTsK
</data>
<flag name="commit-queue"
          id="450348"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429227</attachid>
            <date>2021-05-20 14:50:59 -0700</date>
            <delta_ts>2021-05-20 14:56:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226045-20210520145058.patch</filename>
            <type>text/plain</type>
            <size>25401</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVmYjU2ZWI0NGJhZGIxNWM0ODM3ZGI4
Yzk5MmIyODczNzNmZGZhYTIuLmIyMmM1YTNmYTNjNjEwMDVmZGVmYmNhOTZiYWNkNjcxZTFkNTNm
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBXVEYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9j
ayBtb3JlIGluIFdURiB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjphcHBlbmQpOgorICAgICAgICAoV1RGOjpDcm9zc1Ro
cmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1lc3NhZ2UpOgorICAgICAgICAoV1RGOjpDcm9z
c1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2FnZSk6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJl
YWRRdWV1ZTxEYXRhVHlwZT46OmlzS2lsbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6Q3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAqIHd0Zi9Dcm9z
c1RocmVhZFRhc2tIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFu
ZGxlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlci5oOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVy
OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiB3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAgICAg
KFdURjo6TWFsbG9jQ2FsbFRyYWNrZXI6OnJlY29yZE1hbGxvYyk6CisgICAgICAgIChXVEY6Ok1h
bGxvY0NhbGxUcmFja2VyOjpyZWNvcmRSZWFsbG9jKToKKyAgICAgICAgKFdURjo6TWFsbG9jQ2Fs
bFRyYWNrZXI6OnJlY29yZEZyZWUpOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAgIChXVEY6
Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxE
YXRhVHlwZT46OndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dCk6CisgICAgICAgIChX
VEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0YWtlQWxsTWVzc2FnZXMpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlSWdub3JpbmdLaWxsZWQpOgor
ICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZik6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkpOgorICAgICAgICAoV1RGOjpN
ZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVl
PERhdGFUeXBlPjo6a2lsbGVkIGNvbnN0KToKKyAgICAgICAgKiB3dGYvT1NMb2dQcmludFN0cmVh
bS5jcHA6CisgICAgICAgIChXVEY6Ok9TTG9nUHJpbnRTdHJlYW06OnZwcmludGYpOgorICAgICAg
ICAqIHd0Zi9PU0xvZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dl
bmVyaWMuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0
ZTo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogd3RmL1BhcmFsbGVsVmVjdG9ySXRl
cmF0b3IuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxWZWN0b3JJdGVyYXRvcjo6aXRlcmF0ZSk6
CisgICAgICAgIChXVEY6OlBhcmFsbGVsVmVjdG9ySXRlcmF0b3I6OldURl9HVUFSREVEX0JZX0xP
Q0spOgorICAgICAgICAqIHd0Zi9SZWFkV3JpdGVMb2NrLmNwcDoKKyAgICAgICAgKFdURjo6UmVh
ZFdyaXRlTG9jazo6cmVhZExvY2spOgorICAgICAgICAoV1RGOjpSZWFkV3JpdGVMb2NrOjpyZWFk
VW5sb2NrKToKKyAgICAgICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVMb2NrKToKKyAgICAg
ICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVVbmxvY2spOgorICAgICAgICAqIHd0Zi9SZWFk
V3JpdGVMb2NrLmg6CisgICAgICAgIChXVEY6OlJlYWRXcml0ZUxvY2s6OldURl9HVUFSREVEX0JZ
X0xPQ0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3aXRoIENoZWNrZWRMb2NrcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oCmluZGV4IDMxNTUyNzRiZmFjNTNlZDY0NWUwZGY4MzU4OTA0
Y2JhNzdjM2E3MGUuLmJiMWRlNjk1ZmYyYzUxZjM5N2I0NzZkZTJkYWY5OGYxODdjZTdkYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKQEAgLTI3LDcgKzI3LDggQEAKIAogI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01MiwxNiArNTMsMTYgQEAg
cHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIERlcXVl
PERhdGFUeXBlPiBtX3F1ZXVlOwotICAgIG11dGFibGUgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOwotICAgIGJvb2wgbV9raWxsZWQgeyBmYWxzZSB9OworICAgIG11dGFi
bGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIERlcXVlPERhdGFUeXBlPiBtX3F1ZXVlIFdURl9H
VUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OworICAgIGJvb2wgbV9raWxsZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgZmFsc2Ug
fTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1
ZXVlPERhdGFUeXBlPjo6YXBwZW5kKERhdGFUeXBlJiYgbWVzc2FnZSkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgQVNT
RVJUKCFtX2tpbGxlZCk7CiAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC03MCw3ICs3MSw3IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZChEYXRhVHlwZSYmIG1lc3NhZ2UpCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KIERhdGFUeXBlIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+
Ojp3YWl0Rm9yTWVzc2FnZSgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgYXV0byBmb3VuZCA9IG1fcXVldWUuZW5k
KCk7CiAgICAgd2hpbGUgKGZvdW5kID09IG1fcXVldWUuZW5kKCkpIHsKQEAgLTg5LDcgKzkwLDcg
QEAgRGF0YVR5cGUgQ3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKCkK
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogT3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhy
ZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBpZiAobV9x
dWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDAsNyArMTAxLDcgQEAg
T3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNz
YWdlKCkKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1ZXVl
PERhdGFUeXBlPjo6a2lsbCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICBtX2Nv
bmRpdGlvbi5ub3RpZnlBbGwoKTsKIH0KQEAgLTEwOCwxNCArMTA5LDE0IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmtpbGwoKQogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0tpbGxlZCgpIGNvbnN0CiB7Ci0g
ICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwogICAgIHJldHVybiBtX2tpbGxlZDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0VtcHR5KCkgY29uc3QKIHsKLSAg
ICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07
CiAgICAgcmV0dXJuIG1fcXVldWUuaXNFbXB0eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3Nz
VGhyZWFkVGFza0hhbmRsZXIuY3BwCmluZGV4IGU2OTA3NTlmMDVjYzNlOWY3YTUwODNhOWFmYzQ2
Zjg3NjRlM2M0ZDEuLjJjMDI2YzBlM2JiM2E3ODkwNDZlYmIyNjQ1N2RlZTVkNjM0NWRkNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHZvaWQgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6cG9zdFRhc2tSZXBseShDcm9zc1RocmVh
ZFRhc2smJiB0YXNrKQogewogICAgIG1fdGFza1JlcGx5UXVldWUuYXBwZW5kKFdURk1vdmUodGFz
aykpOwogCi0gICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX21haW5UaHJlYWRSZXBseUxvY2sgfTsKICAgICBpZiAobV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtODQsNyArODQs
NyBAQCB2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnRhc2tSdW5Mb29wKCkKIHZvaWQgQ3Jv
c3NUaHJlYWRUYXNrSGFuZGxlcjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5UaHJlYWQoKQogewog
ICAgIHsKLSAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2sp
OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9tYWluVGhyZWFkUmVwbHlMb2NrIH07CiAgICAg
ICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKaW5kZXggODYzYWM2ZGM1ODQ4YjhmZDY0MWE0
MzQ1OWFjOWVhYzc4MDBkZWRhYy4uYTBjOWQzNjIxYzdiZTQ4MWMyM2FjMGY5NjU1ZGQ3MDdjYzVk
YWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaApAQCAtMjUsOSAr
MjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhy
ZWFkVGFzay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTU2LDggKzU2LDggQEAgcHJpdmF0ZToKICAgICBB
dXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wIG1fdXNlQXV0b2RyYWluZWRQb29sIHsgQXV0b2RyYWlu
ZWRQb29sRm9yUnVuTG9vcDo6RG9Ob3RVc2UgfTsKIAogICAgIExvY2sgbV90YXNrVGhyZWFkQ3Jl
YXRpb25Mb2NrOwotICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOwotICAgIGJvb2wgbV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1fbWFp
blRocmVhZFJlcGx5TG9jazsKKyAgICBib29sIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9tYWluVGhyZWFkUmVwbHlMb2NrKSB7IGZhbHNlIH07CiAKICAg
ICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV90YXNrUXVldWU7CiAgICAgQ3Jv
c3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fdGFza1JlcGx5UXVldWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKaW5kZXggYWZi
Y2U4OTBmNGQ5YjdjYmI4ZTRjMzc2MDM1M2U0ZWU5NWEwODc3Mi4uMWU3NWFhOWIwZTVmMjRmZTAz
NmEzMTI1NDdiM2IzOTYxZmIyMGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0
Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCiAjaW5jbHVkZSA8bXV0ZXg+Ci0j
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT1NSYW5kb21Tb3VyY2Uu
aD4KIApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBpbmxpbmUg
dm9pZCBhZGRSYW5kb21EYXRhKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgpOwotICAg
IHZvaWQgc3RpcigpOwotICAgIHZvaWQgc3RpcklmTmVlZGVkKCk7CisgICAgdm9pZCBzdGlyKCkg
V1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICB2b2lkIHN0aXJJZk5lZWRlZCgpIFdURl9S
RVFVSVJFU19MT0NLKG1fbG9jayk7CiAgICAgaW5saW5lIHVpbnQ4X3QgZ2V0Qnl0ZSgpOwogICAg
IGlubGluZSB1aW50MzJfdCBnZXRXb3JkKCk7CiAKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CiAg
ICAgQVJDNFN0cmVhbSBtX3N0cmVhbTsKICAgICBpbnQgbV9jb3VudDsKLSAgICBMb2NrIG1fbXV0
ZXg7CiB9OwogCiBBUkM0U3RyZWFtOjpBUkM0U3RyZWFtKCkKQEAgLTEzOCw3ICsxMzgsNyBAQCB1
aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpnZXRXb3JkKCkKIAogdWludDMyX3Qg
QVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6cmFuZG9tTnVtYmVyKCkKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
IAogICAgIG1fY291bnQgLT0gNDsKICAgICBzdGlySWZOZWVkZWQoKTsKQEAgLTE0Nyw3ICsxNDcs
NyBAQCB1aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpyYW5kb21OdW1iZXIoKQog
CiB2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbVZhbHVlcyh2b2lkKiBidWZm
ZXIsIHNpemVfdCBsZW5ndGgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICB1bnNpZ25lZCBjaGFyKiBy
ZXN1bHQgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOwogICAgIHN0
aXJJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCBhZmMxNmU0MjE1YjA1M2E1MjUw
NzEyNjNjODIyZmQ0NDc5YzM5OWFhLi5jZjUyYjA1ZTQ4NzEwMjZjYzI3MGM2ODE5ZmExZWY1ZjZm
YjZlNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtMzksOCArMzksOCBAQAogCiAjaWYgRU5B
QkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTaG90Lmg+CkBAIC0z
NzYsOCArMzc2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07CiAKLSAgICBIYXNoTWFw
PHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8TWFsbG9jU2l0ZURhdGE+PiBtX2FkZHJlc3NNYWxsb2NT
aXRlRGF0YTsKLSAgICBMb2NrIG1fbXV0ZXg7CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IEhhc2hNYXA8dm9pZCosIHN0ZDo6dW5pcXVlX3B0cjxNYWxsb2NTaXRlRGF0YT4+IG1fYWRkcmVz
c01hbGxvY1NpdGVEYXRhIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKIH07CiAKIE1hbGxv
Y0NhbGxUcmFja2VyJiBNYWxsb2NDYWxsVHJhY2tlcjo6c2luZ2xldG9uKCkKQEAgLTQwOCw3ICs0
MDgsNyBAQCB2b2lkIE1hbGxvY0NhbGxUcmFja2VyOjpyZWNvcmRNYWxsb2Modm9pZCogYWRkcmVz
cywgc2l6ZV90IGFsbG9jYXRpb25TaXplKQogICAgIGNvbnN0IHNpemVfdCBzdGFja1NpemUgPSAx
MDsKICAgICBhdXRvIHNpdGVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxNYWxsb2NTaXRlRGF0YT4o
c3RhY2tTaXplLCBhbGxvY2F0aW9uU2l6ZSk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fYWRkcmVzc01hbGxvY1NpdGVEYXRhLmFkZChhZGRyZXNzLCBXVEZNb3ZlKHNpdGVE
YXRhKSk7CiAgICAgVU5VU0VEX1BBUkFNKGFkZFJlc3VsdCk7CiB9CkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6cmVjb3JkUmVhbGxvYyh2b2lkKiBvbGRBZGRyZXNz
LCB2b2lkKiBuZXdBZGRyZXNzLCBzaXplX3QKIHsKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2
b2lkUmVjb3JkaW5nOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBhdXRvIGl0ID0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZmluZChvbGRBZGRyZXNzKTsKICAgICBpZiAoaXQgPT0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZW5kKCkpIHsKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIE1hbGxvY0NhbGxU
cmFja2VyOjpyZWNvcmRGcmVlKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgQXZvaWRSZWNvcmRpbmdT
Y29wZSBhdm9pZFJlY29yZGluZzsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRl
eCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGJvb2wgcmVtb3ZlZCA9IG1f
YWRkcmVzc01hbGxvY1NpdGVEYXRhLnJlbW92ZShhZGRyZXNzKTsKICAgICBVTlVTRURfUEFSQU0o
cmVtb3ZlZCk7CiB9CkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKCkKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2b2lkUmVjb3JkaW5nOwogCiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gQnVpbGQgYSBoYXNoIG9mIHN0
YWNrIHRvIGFkZHJlc3MgdmVjdG9yCiAgICAgICAgIHN0cnVjdCBNYWxsb2NTaXRlVG90YWxzIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvTWVzc2FnZVF1ZXVlLmgKaW5kZXggZTlkNGY5Nzk0NWNjMWU2ODg1ZmFmZjQ5MDY1MjYxZmYx
ZWQyNWFlOC4uYzhmNGEzMzY5N2Y1Y2QzZTViNzViYWJiNjRkNTFkMzJjZTM0ZTQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYv
TWVzc2FnZVF1ZXVlLmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtNzgsMTAgKzc4LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBib29sIGlzRW1w
dHkoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OwotICAg
ICAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0gICAgICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0
cjxEYXRhVHlwZT4+IG1fcXVldWU7Ci0gICAgICAgIGJvb2wgbV9raWxsZWQ7CisgICAgICAgIG11
dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29u
ZGl0aW9uOworICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+PiBtX3F1ZXVl
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICAgICAgYm9vbCBtX2tpbGxlZCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERhdGFUeXBlPgpAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5
cGU+OjphcHBlbmQoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1f
bG9jayB9OwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVf
cHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBtX3F1ZXVl
LmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwogICAg
ICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYm9v
bCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6dW5pcXVl
X3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgYm9vbCB3
YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZN
b3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC0xMjAs
NyArMTIwLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZChzdGQ6
OnVuaXF1ZV9wdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAg
IG1fcXVldWUucHJlcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24u
bm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNzYWdl
UXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIFNlY29uZHMg
cmVsYXRpdmVUaW1lb3V0KSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKIAogICAgICAgICBNb25vdG9u
aWNUaW1lIGFic29sdXRlVGltZW91dCA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgcmVsYXRpdmVU
aW1lb3V0OwpAQCAtMTUxLDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAg
aWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLndhaXRVbnRpbChtX211dGV4LCBhYnNv
bHV0ZVRpbWVvdXQpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25kaXRpb24ud2FpdFVu
dGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lb3V0KTsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VS
VCghdGltZWRPdXQgfHwgYWJzb2x1dGVUaW1lb3V0ICE9IE1vbm90b25pY1RpbWU6OmluZmluaXR5
KCkpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46
OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODgsNyArMTg4LDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5l
IGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dGFrZUFsbE1lc3NhZ2VzKCkgLT4gRGVxdWU8
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPj4KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgaWYg
KG1fa2lsbGVkKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUobV9xdWV1ZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6dHJ5R2V0TWVzc2FnZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPgogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAg
ICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjA4LDcgKzIwOCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxp
bmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVk
aWNhdGUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
ICAgICBhdXRvIGZvdW5kID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHB0cik7CkBAIC0yMjUsNyArMjI1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFU
eXBlPjo6aXNFbXB0eSgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7
CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5
KCk7CkBAIC0yMzQsNyArMjM0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6
a2lsbCgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQpAQCAtMjQyLDcgKzI0Miw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCgpIGNvbnN0CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIHJldHVybiBtX2tpbGxlZDsKICAgICB9CiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uY3BwIGIvU291
cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKaW5kZXggZjRjNjQ0MjExMzZlNWFhOGI0
ZjEwMGM4NWM0YmEyY2VkNjhkOGRmYy4uZjFmMTU0NDBlNGNiMTVmNjE5ZGZkMTE2YmM2ZGJkY2Zi
MjMyZWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPE9TTG9nUHJpbnRTdHJlYW0+IE9TTG9nUHJpbnRTdHJlYW06Om9w
ZW4oY29uc3QgY2hhciogc3Vic3lzdGVtLAogCiB2b2lkIE9TTG9nUHJpbnRTdHJlYW06OnZwcmlu
dGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ0xpc3QpCiB7Ci0gICAgYXV0byBsb2Nr
ID0gaG9sZExvY2sobV9zdHJpbmdMb2NrKTsKKyAgICBMb2NrZXIgbG9jayB7IG1fc3RyaW5nTG9j
ayB9OwogICAgIHNpemVfdCBvZmZzZXQgPSBtX29mZnNldDsKICAgICBzaXplX3QgZnJlZUJ5dGVz
ID0gbV9zdHJpbmcubGVuZ3RoKCkgLSBvZmZzZXQ7CiAgICAgdmFfbGlzdCBiYWNrdXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0
Zi9PU0xvZ1ByaW50U3RyZWFtLmgKaW5kZXggNTlmODExNGVjZDJkOTdhOTFmMDRmZmFlNzAxOTdk
YmEzODdjZTIxNS4uZDBmZjU0YjMxMTQxYTVjNDllNjBiZTM2MmFhMWIxMDk1MTUxMWE4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgT1MoREFS
V0lOKQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZl
TG9ja0FkYXB0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00OSw5ICs0
OSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgb3NfbG9nX3QgbV9sb2c7CiAgICAgb3NfbG9n
X3R5cGVfdCBtX2xvZ1R5cGU7Ci0gICAgTG9jayBtX3N0cmluZ0xvY2s7CisgICAgQ2hlY2tlZExv
Y2sgbV9zdHJpbmdMb2NrOwogICAgIC8vIFdlIG5lZWQgYSBidWZmZXIgYmVjYXVzZSBvc19sb2cg
ZG9lc24ndCB3YWl0IGZvciBhIG5ldyBsaW5lIHRvIHByaW50IHRoZSBjaGFyYWN0ZXJzLgotICAg
IENTdHJpbmcgbV9zdHJpbmc7CisgICAgQ1N0cmluZyBtX3N0cmluZyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fc3RyaW5nTG9jayk7CiAgICAgc2l6ZV90IG1fb2Zmc2V0IHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA5YmMyMjQ2NmUwMDdiYjQ2ZDU1
ZGFjNTZhM2M1N2FjMjMwNjIxM2JkLi5mNDViZTI0MWVkZTU3YTUzMGQ4MDk1ZTI4NTBkNzg5NTdk
NGYwZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtODMsMTkg
KzgzLDE5IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0
ZXJzKQogCiBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tG
b3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogewotICAgIGJvb2wgbG9ja2VkID0gbV9t
dXRleC50cnlMb2NrKCk7CisgICAgYm9vbCBsb2NrZWQgPSBtX2xvY2sudHJ5TG9jaygpOwogCiAg
ICAgaWYgKCFsb2NrZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX3BhcmVu
dCkgewotICAgICAgICBtX211dGV4LnVubG9jaygpOworICAgICAgICBtX2xvY2sudW5sb2NrKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoIW1fdGhyZWFkKSB7CiAg
ICAgICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIlBhcmFsbGVsIHdvcmtlciIsIFt0aGlz
XSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgICAgICBM
b2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKIAogICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAg
ICAgICAgICAgICAgICBpZiAobV9ydW5uaW5nKSB7CkBAIC0xMDUsMTkgKzEwNSwxOSBAQCBib29s
IFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tGb3IoUGFyYWxsZWxF
bnZpcm9ubWVudCogcGFyZW50KQogICAgICAgICAgICAgICAgICAgICBtX3RocmVhZENvbmRpdGlv
bi5ub3RpZnlPbmUoKTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBtX3Ro
cmVhZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOworICAgICAgICAgICAgICAgIG1fdGhyZWFkQ29u
ZGl0aW9uLndhaXQobV9sb2NrKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfSk7CiAgICAgfQog
ICAgIG1fcGFyZW50ID0gcGFyZW50OwogCi0gICAgbV9tdXRleC51bmxvY2soKTsKKyAgICBtX2xv
Y2sudW5sb2NrKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9u
bWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhlY3V0ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlv
biwgdm9pZCogcGFyYW1ldGVycykKIHsKLSAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7Cisg
ICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CiAKICAgICBtX3RocmVhZEZ1bmN0aW9uID0gdGhy
ZWFkRnVuY3Rpb247CiAgICAgbV9wYXJhbWV0ZXJzID0gcGFyYW1ldGVyczsKQEAgLTEyNywxMCAr
MTI3LDEwIEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6ZXhlY3V0
ZShUaHJlYWRGdW5jdGlvbiB0aHJlYWRGdW5jdGlvbiwKIAogdm9pZCBQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjp3YWl0Rm9yRmluaXNoKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobV9tdXRleCk7CisgICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CiAKICAgICB3aGlsZSAo
bV9ydW5uaW5nKQotICAgICAgICBtX3RocmVhZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOworICAg
ICAgICBtX3RocmVhZENvbmRpdGlvbi53YWl0KG1fbG9jayk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIv
U291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IDdmNzA4MGM1NGMyOGRh
ZTY0M2MyYTg2NjFkM2Q2MjM0YTkyZDFkOGIuLjI5NTFhZjExMjJhYjc4ZDE5ZTdmNDAwZTc0YjMy
MmU2ODE4ZGU0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVy
aWMuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTMwLDgg
KzMwLDggQEAKIAogI2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAotI2luY2x1ZGUgPHd0
Zi9Db25kaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVj
a2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTY1LDEy
ICs2NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CisgICAgICAgIG11
dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fdGhy
ZWFkQ29uZGl0aW9uOworCiAgICAgICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOwogICAgICAg
ICBib29sIG1fcnVubmluZyB7IGZhbHNlIH07Ci0gICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQq
IG1fcGFyZW50IHsgbnVsbHB0ciB9OwotCi0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4Owot
ICAgICAgICBDb25kaXRpb24gbV90aHJlYWRDb25kaXRpb247CisgICAgICAgIFBhcmFsbGVsRW52
aXJvbm1lbnQqIG1fcGFyZW50IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IG51bGxwdHIg
fTsKIAogICAgICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9uIHsgbnVsbHB0ciB9
OwogICAgICAgICB2b2lkKiBtX3BhcmFtZXRlcnMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9QYXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9Q
YXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmgKaW5kZXggZjMyY2E3YWI0NTdiMjAwNTNlMWZhMTcwYWVl
NjJkOGQ1MzA2MzE5Yi4uZGJhMzcwNjZkYjNlZDNiM2VhY2I2ZTc2MWUxNGQ1YmI1MjRmZmMxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsVmVjdG9ySXRlcmF0b3IuaApAQCAtMjUsOCArMjUsOCBA
QAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00OSw3ICs0OSw3IEBAIHB1
YmxpYzoKICAgICAgICAgICAgIHNpemVfdCBiZWdpbjsKICAgICAgICAgICAgIHNpemVfdCBlbmQ7
CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2Nr
KTsKKyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAg
ICAgICAgYmVnaW4gPSBtX25leHQ7CiAgICAgICAgICAgICAgICAgaWYgKGJlZ2luID09IG1fdmVj
dG9yLnNpemUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjcsMTAgKzY3LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIHByaXZhdGU6Ci0gICAgVmVjdG9yVHlwZSYg
bV92ZWN0b3I7Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAgc2l6ZV90IG1fc2hhcmRTaXplOwotICAg
IHNpemVfdCBtX25leHQgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIFZlY3Rv
clR5cGUmIG1fdmVjdG9yIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBzaXplX3Qg
bV9zaGFyZFNpemUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOworICAgIHNpemVfdCBtX25l
eHQgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCmluZGV4IDUwNzdhNTlkYzhlYmMxZDgwZjZm
YzY3MTI1ZjUxMDc1ZGY2ZmMyZDcuLjc1Yzc3NzRhYzQwNTljMzMzZjFmYWY5YzNiZWM1M2QxNDFk
N2FhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVz
cGFjZSBXVEYgewogCiB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRMb2NrKCkKIHsKLSAgICBhdXRv
IGxvY2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwogICAgIHdoaWxlIChtX2lzV3JpdGVMb2NrZWQgfHwgbV9udW1XYWl0aW5nV3JpdGVycykKICAg
ICAgICAgbV9jb25kLndhaXQobV9sb2NrKTsKICAgICBtX251bVJlYWRlcnMrKzsKQEAgLTQwLDcg
KzQwLDcgQEAgdm9pZCBSZWFkV3JpdGVMb2NrOjpyZWFkTG9jaygpCiAKIHZvaWQgUmVhZFdyaXRl
TG9jazo6cmVhZFVubG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2sp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBtX251bVJlYWRlcnMtLTsKICAg
ICBpZiAoIW1fbnVtUmVhZGVycykKICAgICAgICAgbV9jb25kLm5vdGlmeUFsbCgpOwpAQCAtNDgs
NyArNDgsNyBAQCB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRVbmxvY2soKQogCiB2b2lkIFJlYWRX
cml0ZUxvY2s6OndyaXRlTG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xv
Y2spOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICB3aGlsZSAobV9pc1dyaXRl
TG9ja2VkIHx8IG1fbnVtUmVhZGVycykgewogICAgICAgICBtX251bVdhaXRpbmdXcml0ZXJzKys7
CiAgICAgICAgIG1fY29uZC53YWl0KG1fbG9jayk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVh
ZFdyaXRlTG9jazo6d3JpdGVMb2NrKCkKIAogdm9pZCBSZWFkV3JpdGVMb2NrOjp3cml0ZVVubG9j
aygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tlciBs
b2NrZXIgeyBtX2xvY2sgfTsKICAgICBtX2lzV3JpdGVMb2NrZWQgPSBmYWxzZTsKICAgICBtX2Nv
bmQubm90aWZ5QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVM
b2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmgKaW5kZXggNGJmZGQwOTBhOTFi
ZGE4NDFmNmYwNWQ3ZDg4YzZiODljMzhkOWJjZS4uMmE3YjA2ODJjMzM0ZTkxMDRkYTc3YzJmY2Y5
MjI2Y2VkNzMxMDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaApAQCAtMjUsOCArMjUsOCBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KLSNpbmNsdWRlIDx3
dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8
d3RmL0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02MSwxMSArNjEsMTEg
QEAgcHVibGljOgogICAgIFdyaXRlTG9jayYgd3JpdGUoKTsKIAogcHJpdmF0ZToKLSAgICBMb2Nr
IG1fbG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kOwotICAgIGJvb2wgbV9pc1dyaXRlTG9ja2Vk
IHsgZmFsc2UgfTsKLSAgICB1bnNpZ25lZCBtX251bVJlYWRlcnMgeyAwIH07Ci0gICAgdW5zaWdu
ZWQgbV9udW1XYWl0aW5nV3JpdGVycyB7IDAgfTsKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7Cisg
ICAgQ2hlY2tlZENvbmRpdGlvbiBtX2NvbmQ7CisgICAgYm9vbCBtX2lzV3JpdGVMb2NrZWQgV1RG
X0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX251bVJl
YWRlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OworICAgIHVuc2lnbmVkIG1f
bnVtV2FpdGluZ1dyaXRlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsK
IAogY2xhc3MgUmVhZFdyaXRlTG9jazo6UmVhZExvY2sgOiBwdWJsaWMgUmVhZFdyaXRlTG9jayB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3Rm
L1J1bkxvb3AuY3BwCmluZGV4IGY3Mzk0N2E1NjBiOTFmZTc0MTBmMmQwMWM2NWY2YmQ1OTNmOWEw
ZGUuLjgyODgzZDU1OGZjYTdlNjQxN2RiNmJmZjRjMzY0MGVlYTc4MjdiMTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
Y3BwCkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAgICAg
Ym9vbCBkaWRTdXNwZW5kRnVuY3Rpb25zID0gZmFsc2U7CiAKICAgICB7Ci0gICAgICAgIGF1dG8g
bG9ja2VyID0gaG9sZExvY2sobV9uZXh0SXRlcmF0aW9uTG9jayk7CisgICAgICAgIExvY2tlciBs
b2NrZXIgeyBtX25leHRJdGVyYXRpb25Mb2NrIH07CiAKICAgICAgICAgLy8gSWYgdGhlIFJ1bkxv
b3AgcmUtZW50ZXJzIG9yIHJlLXNjaGVkdWxlcywgd2UncmUgZXhwZWN0ZWQgdG8gZXhlY3V0ZSBh
bGwgZnVuY3Rpb25zIGluIG9yZGVyLgogICAgICAgICB3aGlsZSAoIW1fY3VycmVudEl0ZXJhdGlv
bi5pc0VtcHR5KCkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChG
dW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxz
ZTsKIAogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX25leHRJdGVyYXRp
b25Mb2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbmV4dEl0ZXJhdGlvbkxvY2sgfTsK
ICAgICAgICAgbmVlZHNXYWtldXAgPSBtX25leHRJdGVyYXRpb24uaXNFbXB0eSgpOwogICAgICAg
ICBtX25leHRJdGVyYXRpb24uYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CkBAIC0x
ODAsNyArMTgwLDcgQEAgdm9pZCBSdW5Mb29wOjp0aHJlYWRXaWxsRXhpdCgpCiB7CiAgICAgbV9j
dXJyZW50SXRlcmF0aW9uLmNsZWFyKCk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fbmV4dEl0ZXJhdGlvbkxvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9u
ZXh0SXRlcmF0aW9uTG9jayB9OwogICAgICAgICBtX25leHRJdGVyYXRpb24uY2xlYXIoKTsKICAg
ICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RG
L3d0Zi9SdW5Mb29wLmgKaW5kZXggYjg1M2ZmOTUzNjY1OTE2Mjg5ZWFmMTY1MjlhNzdhOWViNzFi
OWNkYS4uYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aApAQCAtMjgsNiArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFs
PgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24u
aD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAt
MjE2LDggKzIxNyw4IEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBt
X2N1cnJlbnRJdGVyYXRpb247CiAKLSAgICBMb2NrIG1fbmV4dEl0ZXJhdGlvbkxvY2s7Ci0gICAg
RGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9uZXh0SXRlcmF0aW9uOworICAgIENoZWNrZWRMb2Nr
IG1fbmV4dEl0ZXJhdGlvbkxvY2s7CisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9uZXh0
SXRlcmF0aW9uIFdURl9HVUFSREVEX0JZX0xPQ0sobV9uZXh0SXRlcmF0aW9uTG9jayk7CiAKICAg
ICBib29sIG1faXNGdW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29s
IG1faGFzU3VzcGVuZGVkRnVuY3Rpb25zIHsgZmFsc2UgfTsK
</data>
<flag name="commit-queue"
          id="450350"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429228</attachid>
            <date>2021-05-20 14:54:34 -0700</date>
            <delta_ts>2021-05-20 19:43:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226045-20210520145433.patch</filename>
            <type>text/plain</type>
            <size>25398</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3ODA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGVmYjU2ZWI0NGJhZGIxNWM0ODM3ZGI4
Yzk5MmIyODczNzNmZGZhYTIuLmIyMmM1YTNmYTNjNjEwMDVmZGVmYmNhOTZiYWNkNjcxZTFkNTNm
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNTkgQEAKKzIwMjEtMDUtMjAgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgQ2hlY2tlZExvY2sgbW9yZSBpbiBXVEYKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjA0NQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBDaGVja2VkTG9j
ayBtb3JlIGluIFdURiB0byBiZW5lZml0IGZyb20gQ2xhbmcgVGhyZWFkIFNhZmV0eSBBbmFseXNp
cy4KKworICAgICAgICAqIHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjphcHBlbmQpOgorICAgICAgICAoV1RGOjpDcm9zc1Ro
cmVhZFF1ZXVlPERhdGFUeXBlPjo6d2FpdEZvck1lc3NhZ2UpOgorICAgICAgICAoV1RGOjpDcm9z
c1RocmVhZFF1ZXVlPERhdGFUeXBlPjo6dHJ5R2V0TWVzc2FnZSk6CisgICAgICAgIChXVEY6OkNy
b3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJl
YWRRdWV1ZTxEYXRhVHlwZT46OmlzS2lsbGVkIGNvbnN0KToKKyAgICAgICAgKFdURjo6Q3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkgY29uc3QpOgorICAgICAgICAqIHd0Zi9Dcm9z
c1RocmVhZFRhc2tIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdURjo6Q3Jvc3NUaHJlYWRUYXNrSGFu
ZGxlcjo6cG9zdFRhc2tSZXBseSk6CisgICAgICAgIChXVEY6OkNyb3NzVGhyZWFkVGFza0hhbmRs
ZXI6OmhhbmRsZVRhc2tSZXBsaWVzT25NYWluVGhyZWFkKToKKyAgICAgICAgKiB3dGYvQ3Jvc3NU
aHJlYWRUYXNrSGFuZGxlci5oOgorICAgICAgICAoV1RGOjpDcm9zc1RocmVhZFRhc2tIYW5kbGVy
OjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAgICAgKiB3dGYvQ3J5cHRvZ3JhcGhpY2FsbHlS
YW5kb21OdW1iZXIuY3BwOgorICAgICAgICAqIHd0Zi9GYXN0TWFsbG9jLmNwcDoKKyAgICAgICAg
KFdURjo6TWFsbG9jQ2FsbFRyYWNrZXI6OnJlY29yZE1hbGxvYyk6CisgICAgICAgIChXVEY6Ok1h
bGxvY0NhbGxUcmFja2VyOjpyZWNvcmRSZWFsbG9jKToKKyAgICAgICAgKFdURjo6TWFsbG9jQ2Fs
bFRyYWNrZXI6OnJlY29yZEZyZWUpOgorICAgICAgICAoV1RGOjpNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKToKKyAgICAgICAgKiB3dGYvTWVzc2FnZVF1ZXVlLmg6CisgICAgICAgIChXVEY6
Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VR
dWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwpOgorICAgICAgICAoV1RGOjpNZXNzYWdlUXVl
dWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KToKKyAgICAgICAgKFdURjo6TWVzc2Fn
ZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZCk6CisgICAgICAgIChXVEY6Ok1lc3NhZ2VRdWV1ZTxE
YXRhVHlwZT46OndhaXRGb3JNZXNzYWdlRmlsdGVyZWRXaXRoVGltZW91dCk6CisgICAgICAgIChX
VEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OnRyeUdldE1lc3NhZ2UpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0YWtlQWxsTWVzc2FnZXMpOgorICAgICAgICAoV1RG
OjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlSWdub3JpbmdLaWxsZWQpOgor
ICAgICAgICAoV1RGOjpNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZik6CisgICAgICAg
IChXVEY6Ok1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmlzRW1wdHkpOgorICAgICAgICAoV1RGOjpN
ZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpraWxsKToKKyAgICAgICAgKFdURjo6TWVzc2FnZVF1ZXVl
PERhdGFUeXBlPjo6a2lsbGVkIGNvbnN0KToKKyAgICAgICAgKiB3dGYvT1NMb2dQcmludFN0cmVh
bS5jcHA6CisgICAgICAgIChXVEY6Ok9TTG9nUHJpbnRTdHJlYW06OnZwcmludGYpOgorICAgICAg
ICAqIHd0Zi9PU0xvZ1ByaW50U3RyZWFtLmg6CisgICAgICAgICogd3RmL1BhcmFsbGVsSm9ic0dl
bmVyaWMuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0
ZTo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAgICAgICogd3RmL1BhcmFsbGVsVmVjdG9ySXRl
cmF0b3IuaDoKKyAgICAgICAgKFdURjo6UGFyYWxsZWxWZWN0b3JJdGVyYXRvcjo6aXRlcmF0ZSk6
CisgICAgICAgIChXVEY6OlBhcmFsbGVsVmVjdG9ySXRlcmF0b3I6OldURl9HVUFSREVEX0JZX0xP
Q0spOgorICAgICAgICAqIHd0Zi9SZWFkV3JpdGVMb2NrLmNwcDoKKyAgICAgICAgKFdURjo6UmVh
ZFdyaXRlTG9jazo6cmVhZExvY2spOgorICAgICAgICAoV1RGOjpSZWFkV3JpdGVMb2NrOjpyZWFk
VW5sb2NrKToKKyAgICAgICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVMb2NrKToKKyAgICAg
ICAgKFdURjo6UmVhZFdyaXRlTG9jazo6d3JpdGVVbmxvY2spOgorICAgICAgICAqIHd0Zi9SZWFk
V3JpdGVMb2NrLmg6CisgICAgICAgIChXVEY6OlJlYWRXcml0ZUxvY2s6OldURl9HVUFSREVEX0JZ
X0xPQ0spOgorCiAyMDIxLTA1LTIwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVwbGFjZSBtb3JlIHN0YXRpYyBMb2NrcyB3aXRoIENoZWNrZWRMb2NrcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvQ3Jvc3NUaHJlYWRRdWV1ZS5oCmluZGV4IDMxNTUyNzRiZmFjNTNlZDY0NWUwZGY4MzU4OTA0
Y2JhNzdjM2E3MGUuLmJiMWRlNjk1ZmYyYzUxZjM5N2I0NzZkZTJkYWY5OGYxODdjZTdkYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkUXVldWUuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFF1ZXVlLmgKQEAgLTI3LDcgKzI3LDggQEAKIAogI2luY2x1ZGUg
PGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25k
aXRpb24uaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogI2luY2x1ZGUgPHd0Zi9M
b2NrLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CkBAIC01MiwxNiArNTMsMTYgQEAg
cHVibGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIERlcXVl
PERhdGFUeXBlPiBtX3F1ZXVlOwotICAgIG11dGFibGUgTG9jayBtX2xvY2s7Ci0gICAgQ29uZGl0
aW9uIG1fY29uZGl0aW9uOwotICAgIGJvb2wgbV9raWxsZWQgeyBmYWxzZSB9OworICAgIG11dGFi
bGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIERlcXVlPERhdGFUeXBlPiBtX3F1ZXVlIFdURl9H
VUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29uZGl0aW9u
OworICAgIGJvb2wgbV9raWxsZWQgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgZmFsc2Ug
fTsKIH07CiAKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1
ZXVlPERhdGFUeXBlPjo6YXBwZW5kKERhdGFUeXBlJiYgbWVzc2FnZSkKIHsKLSAgICBMb2NrSG9s
ZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgQVNT
RVJUKCFtX2tpbGxlZCk7CiAgICAgbV9xdWV1ZS5hcHBlbmQoV1RGTW92ZShtZXNzYWdlKSk7CiAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC03MCw3ICs3MSw3IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZChEYXRhVHlwZSYmIG1lc3NhZ2UpCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KIERhdGFUeXBlIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+
Ojp3YWl0Rm9yTWVzc2FnZSgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogCiAgICAgYXV0byBmb3VuZCA9IG1fcXVldWUuZW5k
KCk7CiAgICAgd2hpbGUgKGZvdW5kID09IG1fcXVldWUuZW5kKCkpIHsKQEAgLTg5LDcgKzkwLDcg
QEAgRGF0YVR5cGUgQ3Jvc3NUaHJlYWRRdWV1ZTxEYXRhVHlwZT46OndhaXRGb3JNZXNzYWdlKCkK
IHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogT3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhy
ZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNzYWdlKCkKIHsKLSAgICBMb2NrSG9sZGVyIGxv
Y2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBpZiAobV9x
dWV1ZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC0xMDAsNyArMTAxLDcgQEAg
T3B0aW9uYWw8RGF0YVR5cGU+IENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojp0cnlHZXRNZXNz
YWdlKCkKIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogdm9pZCBDcm9zc1RocmVhZFF1ZXVl
PERhdGFUeXBlPjo6a2lsbCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAg
TG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICBtX2Nv
bmRpdGlvbi5ub3RpZnlBbGwoKTsKIH0KQEAgLTEwOCwxNCArMTA5LDE0IEBAIHZvaWQgQ3Jvc3NU
aHJlYWRRdWV1ZTxEYXRhVHlwZT46OmtpbGwoKQogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0tpbGxlZCgpIGNvbnN0CiB7Ci0g
ICAgTG9ja0hvbGRlciBsb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9
OwogICAgIHJldHVybiBtX2tpbGxlZDsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+
CiBib29sIENyb3NzVGhyZWFkUXVldWU8RGF0YVR5cGU+Ojppc0VtcHR5KCkgY29uc3QKIHsKLSAg
ICBMb2NrSG9sZGVyIGxvY2sobV9sb2NrKTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07
CiAgICAgcmV0dXJuIG1fcXVldWUuaXNFbXB0eSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0Nyb3Nz
VGhyZWFkVGFza0hhbmRsZXIuY3BwCmluZGV4IGU2OTA3NTlmMDVjYzNlOWY3YTUwODNhOWFmYzQ2
Zjg3NjRlM2M0ZDEuLjJjMDI2YzBlM2JiM2E3ODkwNDZlYmIyNjQ1N2RlZTVkNjM0NWRkNTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuY3BwCkBAIC01Nyw3ICs1Nyw3
IEBAIHZvaWQgQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlcjo6cG9zdFRhc2tSZXBseShDcm9zc1RocmVh
ZFRhc2smJiB0YXNrKQogewogICAgIG1fdGFza1JlcGx5UXVldWUuYXBwZW5kKFdURk1vdmUodGFz
aykpOwogCi0gICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX21haW5UaHJlYWRSZXBseUxvY2sgfTsKICAgICBpZiAobV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQpCiAgICAgICAgIHJldHVybjsKIApAQCAtODQsNyArODQs
NyBAQCB2b2lkIENyb3NzVGhyZWFkVGFza0hhbmRsZXI6OnRhc2tSdW5Mb29wKCkKIHZvaWQgQ3Jv
c3NUaHJlYWRUYXNrSGFuZGxlcjo6aGFuZGxlVGFza1JlcGxpZXNPbk1haW5UaHJlYWQoKQogewog
ICAgIHsKLSAgICAgICAgTG9ja2VyPExvY2s+IGxvY2tlcihtX21haW5UaHJlYWRSZXBseUxvY2sp
OworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9tYWluVGhyZWFkUmVwbHlMb2NrIH07CiAgICAg
ICAgIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkID0gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmggYi9Tb3VyY2UvV1RG
L3d0Zi9Dcm9zc1RocmVhZFRhc2tIYW5kbGVyLmgKaW5kZXggODYzYWM2ZGM1ODQ4YjhmZDY0MWE0
MzQ1OWFjOWVhYzc4MDBkZWRhYy4uYTBjOWQzNjIxYzdiZTQ4MWMyM2FjMGY5NjU1ZGQ3MDdjYzVk
YWM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3Jvc3NUaHJlYWRUYXNrSGFuZGxlci5o
CisrKyBiL1NvdXJjZS9XVEYvd3RmL0Nyb3NzVGhyZWFkVGFza0hhbmRsZXIuaApAQCAtMjUsOSAr
MjUsOSBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgog
I2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFF1ZXVlLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhy
ZWFkVGFzay5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTU2LDggKzU2LDggQEAgcHJpdmF0ZToKICAgICBB
dXRvZHJhaW5lZFBvb2xGb3JSdW5Mb29wIG1fdXNlQXV0b2RyYWluZWRQb29sIHsgQXV0b2RyYWlu
ZWRQb29sRm9yUnVuTG9vcDo6RG9Ob3RVc2UgfTsKIAogICAgIExvY2sgbV90YXNrVGhyZWFkQ3Jl
YXRpb25Mb2NrOwotICAgIExvY2sgbV9tYWluVGhyZWFkUmVwbHlMb2NrOwotICAgIGJvb2wgbV9t
YWluVGhyZWFkUmVwbHlTY2hlZHVsZWQgeyBmYWxzZSB9OworICAgIENoZWNrZWRMb2NrIG1fbWFp
blRocmVhZFJlcGx5TG9jazsKKyAgICBib29sIG1fbWFpblRocmVhZFJlcGx5U2NoZWR1bGVkIFdU
Rl9HVUFSREVEX0JZX0xPQ0sobV9tYWluVGhyZWFkUmVwbHlMb2NrKSB7IGZhbHNlIH07CiAKICAg
ICBDcm9zc1RocmVhZFF1ZXVlPENyb3NzVGhyZWFkVGFzaz4gbV90YXNrUXVldWU7CiAgICAgQ3Jv
c3NUaHJlYWRRdWV1ZTxDcm9zc1RocmVhZFRhc2s+IG1fdGFza1JlcGx5UXVldWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAgYi9T
b3VyY2UvV1RGL3d0Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5jcHAKaW5kZXggYWZi
Y2U4OTBmNGQ5YjdjYmI4ZTRjMzc2MDM1M2U0ZWU5NWEwODc3Mi4uMWU3NWFhOWIwZTVmMjRmZTAz
NmEzMTI1NDdiM2IzOTYxZmIyMGMxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ3J5cHRv
Z3JhcGhpY2FsbHlSYW5kb21OdW1iZXIuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NyeXB0b2dy
YXBoaWNhbGx5UmFuZG9tTnVtYmVyLmNwcApAQCAtMzEsNyArMzEsNyBAQAogI2luY2x1ZGUgPHd0
Zi9DcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlci5oPgogCiAjaW5jbHVkZSA8bXV0ZXg+Ci0j
aW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2suaD4KICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvT1NSYW5kb21Tb3VyY2Uu
aD4KIApAQCAtNTksMTQgKzU5LDE0IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBpbmxpbmUg
dm9pZCBhZGRSYW5kb21EYXRhKHVuc2lnbmVkIGNoYXIgKmRhdGEsIGludCBsZW5ndGgpOwotICAg
IHZvaWQgc3RpcigpOwotICAgIHZvaWQgc3RpcklmTmVlZGVkKCk7CisgICAgdm9pZCBzdGlyKCkg
V1RGX1JFUVVJUkVTX0xPQ0sobV9sb2NrKTsKKyAgICB2b2lkIHN0aXJJZk5lZWRlZCgpIFdURl9S
RVFVSVJFU19MT0NLKG1fbG9jayk7CiAgICAgaW5saW5lIHVpbnQ4X3QgZ2V0Qnl0ZSgpOwogICAg
IGlubGluZSB1aW50MzJfdCBnZXRXb3JkKCk7CiAKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CiAg
ICAgQVJDNFN0cmVhbSBtX3N0cmVhbTsKICAgICBpbnQgbV9jb3VudDsKLSAgICBMb2NrIG1fbXV0
ZXg7CiB9OwogCiBBUkM0U3RyZWFtOjpBUkM0U3RyZWFtKCkKQEAgLTEzOCw3ICsxMzgsNyBAQCB1
aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpnZXRXb3JkKCkKIAogdWludDMyX3Qg
QVJDNFJhbmRvbU51bWJlckdlbmVyYXRvcjo6cmFuZG9tTnVtYmVyKCkKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsK
IAogICAgIG1fY291bnQgLT0gNDsKICAgICBzdGlySWZOZWVkZWQoKTsKQEAgLTE0Nyw3ICsxNDcs
NyBAQCB1aW50MzJfdCBBUkM0UmFuZG9tTnVtYmVyR2VuZXJhdG9yOjpyYW5kb21OdW1iZXIoKQog
CiB2b2lkIEFSQzRSYW5kb21OdW1iZXJHZW5lcmF0b3I6OnJhbmRvbVZhbHVlcyh2b2lkKiBidWZm
ZXIsIHNpemVfdCBsZW5ndGgpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4
KTsKKyAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICB1bnNpZ25lZCBjaGFyKiBy
ZXN1bHQgPSByZWludGVycHJldF9jYXN0PHVuc2lnbmVkIGNoYXIqPihidWZmZXIpOwogICAgIHN0
aXJJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmFzdE1hbGxvYy5jcHAg
Yi9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAppbmRleCBhZmMxNmU0MjE1YjA1M2E1MjUw
NzEyNjNjODIyZmQ0NDc5YzM5OWFhLi5jZjUyYjA1ZTQ4NzEwMjZjYzI3MGM2ODE5ZmExZWY1ZjZm
YjZlNmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GYXN0TWFsbG9jLmNwcApAQCAtMzksOCArMzksOCBAQAogCiAjaWYgRU5B
QkxFKE1BTExPQ19IRUFQX0JSRUFLRE9XTikKICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3RhY2tTaG90Lmg+CkBAIC0z
NzYsOCArMzc2LDggQEAgcHJpdmF0ZToKICAgICAgICAgfQogICAgIH07CiAKLSAgICBIYXNoTWFw
PHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8TWFsbG9jU2l0ZURhdGE+PiBtX2FkZHJlc3NNYWxsb2NT
aXRlRGF0YTsKLSAgICBMb2NrIG1fbXV0ZXg7CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAg
IEhhc2hNYXA8dm9pZCosIHN0ZDo6dW5pcXVlX3B0cjxNYWxsb2NTaXRlRGF0YT4+IG1fYWRkcmVz
c01hbGxvY1NpdGVEYXRhIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKIH07CiAKIE1hbGxv
Y0NhbGxUcmFja2VyJiBNYWxsb2NDYWxsVHJhY2tlcjo6c2luZ2xldG9uKCkKQEAgLTQwOCw3ICs0
MDgsNyBAQCB2b2lkIE1hbGxvY0NhbGxUcmFja2VyOjpyZWNvcmRNYWxsb2Modm9pZCogYWRkcmVz
cywgc2l6ZV90IGFsbG9jYXRpb25TaXplKQogICAgIGNvbnN0IHNpemVfdCBzdGFja1NpemUgPSAx
MDsKICAgICBhdXRvIHNpdGVEYXRhID0gc3RkOjptYWtlX3VuaXF1ZTxNYWxsb2NTaXRlRGF0YT4o
c3RhY2tTaXplLCBhbGxvY2F0aW9uU2l6ZSk7CiAKLSAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1fYWRkcmVzc01hbGxvY1NpdGVEYXRhLmFkZChhZGRyZXNzLCBXVEZNb3ZlKHNpdGVE
YXRhKSk7CiAgICAgVU5VU0VEX1BBUkFNKGFkZFJlc3VsdCk7CiB9CkBAIC00MTcsNyArNDE3LDcg
QEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6cmVjb3JkUmVhbGxvYyh2b2lkKiBvbGRBZGRyZXNz
LCB2b2lkKiBuZXdBZGRyZXNzLCBzaXplX3QKIHsKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2
b2lkUmVjb3JkaW5nOwogCi0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICBhdXRvIGl0ID0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZmluZChvbGRBZGRyZXNzKTsKICAgICBpZiAoaXQgPT0gbV9hZGRyZXNzTWFs
bG9jU2l0ZURhdGEuZW5kKCkpIHsKQEAgLTQzOCw3ICs0MzgsNyBAQCB2b2lkIE1hbGxvY0NhbGxU
cmFja2VyOjpyZWNvcmRGcmVlKHZvaWQqIGFkZHJlc3MpCiB7CiAgICAgQXZvaWRSZWNvcmRpbmdT
Y29wZSBhdm9pZFJlY29yZGluZzsKIAotICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2sobV9tdXRl
eCk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9OwogICAgIGJvb2wgcmVtb3ZlZCA9IG1f
YWRkcmVzc01hbGxvY1NpdGVEYXRhLnJlbW92ZShhZGRyZXNzKTsKICAgICBVTlVTRURfUEFSQU0o
cmVtb3ZlZCk7CiB9CkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBNYWxsb2NDYWxsVHJhY2tlcjo6
ZHVtcFN0YXRzKCkKICAgICBBdm9pZFJlY29yZGluZ1Njb3BlIGF2b2lkUmVjb3JkaW5nOwogCiAg
ICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRMb2NrKG1fbXV0ZXgpOworICAgICAgICBM
b2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAKICAgICAgICAgLy8gQnVpbGQgYSBoYXNoIG9mIHN0
YWNrIHRvIGFkZHJlc3MgdmVjdG9yCiAgICAgICAgIHN0cnVjdCBNYWxsb2NTaXRlVG90YWxzIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL01lc3NhZ2VRdWV1ZS5oIGIvU291cmNlL1dURi93
dGYvTWVzc2FnZVF1ZXVlLmgKaW5kZXggZTlkNGY5Nzk0NWNjMWU2ODg1ZmFmZjQ5MDY1MjYxZmYx
ZWQyNWFlOC4uYzhmNGEzMzY5N2Y1Y2QzZTViNzViYWJiNjRkNTFkMzJjZTM0ZTQwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi93dGYvTWVzc2FnZVF1ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYv
TWVzc2FnZVF1ZXVlLmgKQEAgLTMxLDkgKzMxLDkgQEAKIAogI2luY2x1ZGUgPGxpbWl0cz4KICNp
bmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNp
bmNsdWRlIDx3dGYvQ2hlY2tlZENvbmRpdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9j
ay5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5j
bHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
IApAQCAtNzgsMTAgKzc4LDEwIEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICBib29sIGlzRW1w
dHkoKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OwotICAg
ICAgICBDb25kaXRpb24gbV9jb25kaXRpb247Ci0gICAgICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0
cjxEYXRhVHlwZT4+IG1fcXVldWU7Ci0gICAgICAgIGJvb2wgbV9raWxsZWQ7CisgICAgICAgIG11
dGFibGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fY29u
ZGl0aW9uOworICAgICAgICBEZXF1ZTxzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+PiBtX3F1ZXVl
IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICAgICAgYm9vbCBtX2tpbGxlZCBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fbG9jayk7CiAgICAgfTsKIAogICAgIHRlbXBsYXRlPHR5cGVuYW1l
IERhdGFUeXBlPgpAQCAtOTIsNyArOTIsNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5
cGU+OjphcHBlbmQoc3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAg
ICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1f
bG9jayB9OwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSB2b2lkIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmFwcGVuZEFuZEtpbGwoc3RkOjp1bmlxdWVf
cHRyPERhdGFUeXBlPiBtZXNzYWdlKQogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1f
bXV0ZXgpOworICAgICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBtX3F1ZXVl
LmFwcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9raWxsZWQgPSB0cnVlOwogICAg
ICAgICBtX2NvbmRpdGlvbi5ub3RpZnlBbGwoKTsKQEAgLTExMCw3ICsxMTAsNyBAQCBuYW1lc3Bh
Y2UgV1RGIHsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBEYXRhVHlwZT4KICAgICBpbmxpbmUgYm9v
bCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjphcHBlbmRBbmRDaGVja0VtcHR5KHN0ZDo6dW5pcXVl
X3B0cjxEYXRhVHlwZT4gbWVzc2FnZSkKICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9jayht
X211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgYm9vbCB3
YXNFbXB0eSA9IG1fcXVldWUuaXNFbXB0eSgpOwogICAgICAgICBtX3F1ZXVlLmFwcGVuZChXVEZN
b3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24ubm90aWZ5T25lKCk7CkBAIC0xMjAs
NyArMTIwLDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5
cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6cHJlcGVuZChzdGQ6
OnVuaXF1ZV9wdHI8RGF0YVR5cGU+IG1lc3NhZ2UpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVy
IGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAg
IG1fcXVldWUucHJlcGVuZChXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgbV9jb25kaXRpb24u
bm90aWZ5T25lKCk7CiAgICAgfQpAQCAtMTM4LDcgKzEzOCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxpbmUgYXV0byBNZXNzYWdl
UXVldWU8RGF0YVR5cGU+Ojp3YWl0Rm9yTWVzc2FnZUZpbHRlcmVkV2l0aFRpbWVvdXQoTWVzc2Fn
ZVF1ZXVlV2FpdFJlc3VsdCYgcmVzdWx0LCBQcmVkaWNhdGUmJiBwcmVkaWNhdGUsIFNlY29uZHMg
cmVsYXRpdmVUaW1lb3V0KSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGJvb2wgdGltZWRPdXQgPSBmYWxzZTsKIAogICAgICAgICBNb25vdG9u
aWNUaW1lIGFic29sdXRlVGltZW91dCA9IE1vbm90b25pY1RpbWU6Om5vdygpICsgcmVsYXRpdmVU
aW1lb3V0OwpAQCAtMTUxLDcgKzE1MSw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAgICAg
aWYgKGZvdW5kICE9IG1fcXVldWUuZW5kKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAg
ICAgICAgICAgIHRpbWVkT3V0ID0gIW1fY29uZGl0aW9uLndhaXRVbnRpbChtX211dGV4LCBhYnNv
bHV0ZVRpbWVvdXQpOworICAgICAgICAgICAgdGltZWRPdXQgPSAhbV9jb25kaXRpb24ud2FpdFVu
dGlsKG1fbG9jaywgYWJzb2x1dGVUaW1lb3V0KTsKICAgICAgICAgfQogCiAgICAgICAgIEFTU0VS
VCghdGltZWRPdXQgfHwgYWJzb2x1dGVUaW1lb3V0ICE9IE1vbm90b25pY1RpbWU6OmluZmluaXR5
KCkpOwpAQCAtMTc2LDcgKzE3Niw3IEBAIG5hbWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGluZSBhdXRvIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46
OnRyeUdldE1lc3NhZ2UoKSAtPiBzdGQ6OnVuaXF1ZV9wdHI8RGF0YVR5cGU+CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkKICAgICAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5KCkpCkBAIC0xODgsNyArMTg4LDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5l
IGF1dG8gTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6dGFrZUFsbE1lc3NhZ2VzKCkgLT4gRGVxdWU8
c3RkOjp1bmlxdWVfcHRyPERhdGFUeXBlPj4KICAgICB7Ci0gICAgICAgIExvY2tIb2xkZXIgbG9j
ayhtX211dGV4KTsKKyAgICAgICAgTG9ja2VyIGxvY2sgeyBtX2xvY2sgfTsKICAgICAgICAgaWYg
KG1fa2lsbGVkKQogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgcmV0dXJuIFdURk1v
dmUobV9xdWV1ZSk7CkBAIC0xOTcsNyArMTk3LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGF1dG8gTWVzc2FnZVF1ZXVlPERh
dGFUeXBlPjo6dHJ5R2V0TWVzc2FnZUlnbm9yaW5nS2lsbGVkKCkgLT4gc3RkOjp1bmlxdWVfcHRy
PERhdGFUeXBlPgogICAgIHsKLSAgICAgICAgTG9ja0hvbGRlciBsb2NrKG1fbXV0ZXgpOworICAg
ICAgICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogICAgICAgICBpZiAobV9xdWV1ZS5pc0VtcHR5
KCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMjA4LDcgKzIwOCw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFByZWRpY2F0ZT4KICAgICBpbmxp
bmUgdm9pZCBNZXNzYWdlUXVldWU8RGF0YVR5cGU+OjpyZW1vdmVJZihQcmVkaWNhdGUmJiBwcmVk
aWNhdGUpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAg
ICAgICBhdXRvIGZvdW5kID0gbV9xdWV1ZS5maW5kSWYoWyZwcmVkaWNhdGVdKGNvbnN0IHN0ZDo6
dW5pcXVlX3B0cjxEYXRhVHlwZT4mIHB0cikgLT4gYm9vbCB7CiAgICAgICAgICAgICAgICAgQVNT
RVJUKHB0cik7CkBAIC0yMjUsNyArMjI1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxh
dGU8dHlwZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIGJvb2wgTWVzc2FnZVF1ZXVlPERhdGFU
eXBlPjo6aXNFbXB0eSgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7
CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIGlmIChtX2tpbGxlZCkK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICByZXR1cm4gbV9xdWV1ZS5pc0VtcHR5
KCk7CkBAIC0yMzQsNyArMjM0LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgRGF0YVR5cGU+CiAgICAgaW5saW5lIHZvaWQgTWVzc2FnZVF1ZXVlPERhdGFUeXBlPjo6
a2lsbCgpCiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAg
IExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAgICAgICAgIG1fa2lsbGVkID0gdHJ1ZTsKICAgICAg
ICAgbV9jb25kaXRpb24ubm90aWZ5QWxsKCk7CiAgICAgfQpAQCAtMjQyLDcgKzI0Miw3IEBAIG5h
bWVzcGFjZSBXVEYgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERhdGFUeXBlPgogICAgIGlubGlu
ZSBib29sIE1lc3NhZ2VRdWV1ZTxEYXRhVHlwZT46OmtpbGxlZCgpIGNvbnN0CiAgICAgewotICAg
ICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgIExvY2tlciBsb2NrIHsgbV9s
b2NrIH07CiAgICAgICAgIHJldHVybiBtX2tpbGxlZDsKICAgICB9CiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uY3BwIGIvU291
cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKaW5kZXggZjRjNjQ0MjExMzZlNWFhOGI0
ZjEwMGM4NWM0YmEyY2VkNjhkOGRmYy4uZjFmMTU0NDBlNGNiMTVmNjE5ZGZkMTE2YmM2ZGJkY2Zi
MjMyZWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5jcHAKQEAgLTQ4LDcgKzQ4LDcg
QEAgc3RkOjp1bmlxdWVfcHRyPE9TTG9nUHJpbnRTdHJlYW0+IE9TTG9nUHJpbnRTdHJlYW06Om9w
ZW4oY29uc3QgY2hhciogc3Vic3lzdGVtLAogCiB2b2lkIE9TTG9nUHJpbnRTdHJlYW06OnZwcmlu
dGYoY29uc3QgY2hhciogZm9ybWF0LCB2YV9saXN0IGFyZ0xpc3QpCiB7Ci0gICAgYXV0byBsb2Nr
ID0gaG9sZExvY2sobV9zdHJpbmdMb2NrKTsKKyAgICBMb2NrZXIgbG9jayB7IG1fc3RyaW5nTG9j
ayB9OwogICAgIHNpemVfdCBvZmZzZXQgPSBtX29mZnNldDsKICAgICBzaXplX3QgZnJlZUJ5dGVz
ID0gbV9zdHJpbmcubGVuZ3RoKCkgLSBvZmZzZXQ7CiAgICAgdmFfbGlzdCBiYWNrdXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9PU0xvZ1ByaW50U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0
Zi9PU0xvZ1ByaW50U3RyZWFtLmgKaW5kZXggNTlmODExNGVjZDJkOTdhOTFmMDRmZmFlNzAxOTdk
YmEzODdjZTIxNS4uZDBmZjU0YjMxMTQxYTVjNDllNjBiZTM2MmFhMWIxMDk1MTUxMWE4ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvT1NMb2dQcmludFN0cmVhbS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL09TTG9nUHJpbnRTdHJlYW0uaApAQCAtMjcsNyArMjcsNyBAQAogCiAjaWYgT1MoREFS
V0lOKQogCi0jaW5jbHVkZSA8d3RmL0xvY2suaD4KKyNpbmNsdWRlIDx3dGYvQ2hlY2tlZExvY2su
aD4KICNpbmNsdWRlIDx3dGYvUHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvUmVjdXJzaXZl
TG9ja0FkYXB0ZXIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00OSw5ICs0
OSw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgb3NfbG9nX3QgbV9sb2c7CiAgICAgb3NfbG9n
X3R5cGVfdCBtX2xvZ1R5cGU7Ci0gICAgTG9jayBtX3N0cmluZ0xvY2s7CisgICAgQ2hlY2tlZExv
Y2sgbV9zdHJpbmdMb2NrOwogICAgIC8vIFdlIG5lZWQgYSBidWZmZXIgYmVjYXVzZSBvc19sb2cg
ZG9lc24ndCB3YWl0IGZvciBhIG5ldyBsaW5lIHRvIHByaW50IHRoZSBjaGFyYWN0ZXJzLgotICAg
IENTdHJpbmcgbV9zdHJpbmc7CisgICAgQ1N0cmluZyBtX3N0cmluZyBXVEZfR1VBUkRFRF9CWV9M
T0NLKG1fc3RyaW5nTG9jayk7CiAgICAgc2l6ZV90IG1fb2Zmc2V0IHsgMCB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcAppbmRleCA5YmMyMjQ2NmUwMDdiYjQ2ZDU1
ZGFjNTZhM2M1N2FjMjMwNjIxM2JkLi5mNjQyNjAyOTQ2YmE1ODkzMjc3OGVmYTY5YjMyNjc1ZDkz
Zjc2M2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmNwcApAQCAtODMsMTkg
KzgzLDE5IEBAIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVudDo6ZXhlY3V0ZSh2b2lkKiBwYXJhbWV0
ZXJzKQogCiBib29sIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OnRyeUxvY2tG
b3IoUGFyYWxsZWxFbnZpcm9ubWVudCogcGFyZW50KQogewotICAgIGJvb2wgbG9ja2VkID0gbV9t
dXRleC50cnlMb2NrKCk7CisgICAgYm9vbCBsb2NrZWQgPSBtX2xvY2sudHJ5TG9jaygpOwogCiAg
ICAgaWYgKCFsb2NrZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChtX3BhcmVu
dCkgewotICAgICAgICBtX211dGV4LnVubG9jaygpOworICAgICAgICBtX2xvY2sudW5sb2NrKCk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKICAgICBpZiAoIW1fdGhyZWFkKSB7CiAg
ICAgICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVhdGUoIlBhcmFsbGVsIHdvcmtlciIsIFt0aGlz
XSB7Ci0gICAgICAgICAgICBMb2NrSG9sZGVyIGxvY2sobV9tdXRleCk7CisgICAgICAgICAgICBM
b2NrZXIgbG9jayB7IG1fbG9jayB9OwogCiAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewogICAg
ICAgICAgICAgICAgIGlmIChtX3J1bm5pbmcpIHsKQEAgLTEwNSwxOSArMTA1LDE5IEBAIGJvb2wg
UGFyYWxsZWxFbnZpcm9ubWVudDo6VGhyZWFkUHJpdmF0ZTo6dHJ5TG9ja0ZvcihQYXJhbGxlbEVu
dmlyb25tZW50KiBwYXJlbnQpCiAgICAgICAgICAgICAgICAgICAgIG1fdGhyZWFkQ29uZGl0aW9u
Lm5vdGlmeU9uZSgpOwogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIG1fdGhy
ZWFkQ29uZGl0aW9uLndhaXQobV9tdXRleCk7CisgICAgICAgICAgICAgICAgbV90aHJlYWRDb25k
aXRpb24ud2FpdChtX2xvY2spOwogICAgICAgICAgICAgfQogICAgICAgICB9KTsKICAgICB9CiAg
ICAgbV9wYXJlbnQgPSBwYXJlbnQ7CiAKLSAgICBtX211dGV4LnVubG9jaygpOworICAgIG1fbG9j
ay51bmxvY2soKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBQYXJhbGxlbEVudmlyb25t
ZW50OjpUaHJlYWRQcml2YXRlOjpleGVjdXRlKFRocmVhZEZ1bmN0aW9uIHRocmVhZEZ1bmN0aW9u
LCB2b2lkKiBwYXJhbWV0ZXJzKQogewotICAgIExvY2tIb2xkZXIgbG9jayhtX211dGV4KTsKKyAg
ICBMb2NrZXIgbG9jayB7IG1fbG9jayB9OwogCiAgICAgbV90aHJlYWRGdW5jdGlvbiA9IHRocmVh
ZEZ1bmN0aW9uOwogICAgIG1fcGFyYW1ldGVycyA9IHBhcmFtZXRlcnM7CkBAIC0xMjcsMTAgKzEy
NywxMCBAQCB2b2lkIFBhcmFsbGVsRW52aXJvbm1lbnQ6OlRocmVhZFByaXZhdGU6OmV4ZWN1dGUo
VGhyZWFkRnVuY3Rpb24gdGhyZWFkRnVuY3Rpb24sCiAKIHZvaWQgUGFyYWxsZWxFbnZpcm9ubWVu
dDo6VGhyZWFkUHJpdmF0ZTo6d2FpdEZvckZpbmlzaCgpCiB7Ci0gICAgTG9ja0hvbGRlciBsb2Nr
KG1fbXV0ZXgpOworICAgIExvY2tlciBsb2NrIHsgbV9sb2NrIH07CiAKICAgICB3aGlsZSAobV9y
dW5uaW5nKQotICAgICAgICBtX3RocmVhZENvbmRpdGlvbi53YWl0KG1fbXV0ZXgpOworICAgICAg
ICBtX3RocmVhZENvbmRpdGlvbi53YWl0KG1fbG9jayk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oIGIvU291
cmNlL1dURi93dGYvUGFyYWxsZWxKb2JzR2VuZXJpYy5oCmluZGV4IDdmNzA4MGM1NGMyOGRhZTY0
M2MyYTg2NjFkM2Q2MjM0YTkyZDFkOGIuLjI5NTFhZjExMjJhYjc4ZDE5ZTdmNDAwZTc0YjMyMmU2
ODE4ZGU0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BhcmFsbGVsSm9ic0dlbmVyaWMu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QYXJhbGxlbEpvYnNHZW5lcmljLmgKQEAgLTMwLDggKzMw
LDggQEAKIAogI2lmIEVOQUJMRShUSFJFQURJTkdfR0VORVJJQykKIAotI2luY2x1ZGUgPHd0Zi9D
b25kaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2Vk
Q29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3RmL0NoZWNrZWRMb2NrLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAKQEAgLTY1LDEyICs2
NSwxMiBAQCBwdWJsaWM6CiAgICAgICAgIH0KIAogICAgIHByaXZhdGU6CisgICAgICAgIG11dGFi
bGUgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgICAgICBDaGVja2VkQ29uZGl0aW9uIG1fdGhyZWFk
Q29uZGl0aW9uOworCiAgICAgICAgIFJlZlB0cjxUaHJlYWQ+IG1fdGhyZWFkOwogICAgICAgICBi
b29sIG1fcnVubmluZyB7IGZhbHNlIH07Ci0gICAgICAgIFBhcmFsbGVsRW52aXJvbm1lbnQqIG1f
cGFyZW50IHsgbnVsbHB0ciB9OwotCi0gICAgICAgIG11dGFibGUgTG9jayBtX211dGV4OwotICAg
ICAgICBDb25kaXRpb24gbV90aHJlYWRDb25kaXRpb247CisgICAgICAgIFBhcmFsbGVsRW52aXJv
bm1lbnQqIG1fcGFyZW50IFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKSB7IG51bGxwdHIgfTsK
IAogICAgICAgICBUaHJlYWRGdW5jdGlvbiBtX3RocmVhZEZ1bmN0aW9uIHsgbnVsbHB0ciB9Owog
ICAgICAgICB2b2lkKiBtX3BhcmFtZXRlcnMgeyBudWxscHRyIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9QYXJhbGxlbFZlY3Rvckl0ZXJhdG9yLmggYi9Tb3VyY2UvV1RGL3d0Zi9QYXJh
bGxlbFZlY3Rvckl0ZXJhdG9yLmgKaW5kZXggZjMyY2E3YWI0NTdiMjAwNTNlMWZhMTcwYWVlNjJk
OGQ1MzA2MzE5Yi4uZGJhMzcwNjZkYjNlZDNiM2VhY2I2ZTc2MWUxNGQ1YmI1MjRmZmMxNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGFyYWxsZWxWZWN0b3JJdGVyYXRvci5oCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BhcmFsbGVsVmVjdG9ySXRlcmF0b3IuaApAQCAtMjUsOCArMjUsOCBAQAog
CiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUg
PHd0Zi9GYXN0TWFsbG9jLmg+Ci0jaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYv
Tm9uY29weWFibGUuaD4KIAogbmFtZXNwYWNlIFdURiB7CkBAIC00OSw3ICs0OSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgICAgIHNpemVfdCBiZWdpbjsKICAgICAgICAgICAgIHNpemVfdCBlbmQ7CiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9sb2NrKTsK
KyAgICAgICAgICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CiAgICAgICAgICAgICAg
ICAgYmVnaW4gPSBtX25leHQ7CiAgICAgICAgICAgICAgICAgaWYgKGJlZ2luID09IG1fdmVjdG9y
LnNpemUoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtNjcsMTAgKzY3LDEwIEBA
IHB1YmxpYzoKICAgICAgICAgfQogICAgIH0KIHByaXZhdGU6Ci0gICAgVmVjdG9yVHlwZSYgbV92
ZWN0b3I7Ci0gICAgTG9jayBtX2xvY2s7Ci0gICAgc2l6ZV90IG1fc2hhcmRTaXplOwotICAgIHNp
emVfdCBtX25leHQgeyAwIH07CisgICAgQ2hlY2tlZExvY2sgbV9sb2NrOworICAgIFZlY3RvclR5
cGUmIG1fdmVjdG9yIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAgICBzaXplX3QgbV9z
aGFyZFNpemUgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spOworICAgIHNpemVfdCBtX25leHQg
V1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmNwcCBiL1NvdXJj
ZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCmluZGV4IDUwNzdhNTlkYzhlYmMxZDgwZjZmYzY3
MTI1ZjUxMDc1ZGY2ZmMyZDcuLjc1Yzc3NzRhYzQwNTljMzMzZjFmYWY5YzNiZWM1M2QxNDFkN2Fh
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suY3BwCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFj
ZSBXVEYgewogCiB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRMb2NrKCkKIHsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fbG9jayk7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fbG9jayB9Owog
ICAgIHdoaWxlIChtX2lzV3JpdGVMb2NrZWQgfHwgbV9udW1XYWl0aW5nV3JpdGVycykKICAgICAg
ICAgbV9jb25kLndhaXQobV9sb2NrKTsKICAgICBtX251bVJlYWRlcnMrKzsKQEAgLTQwLDcgKzQw
LDcgQEAgdm9pZCBSZWFkV3JpdGVMb2NrOjpyZWFkTG9jaygpCiAKIHZvaWQgUmVhZFdyaXRlTG9j
azo6cmVhZFVubG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOwor
ICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICBtX251bVJlYWRlcnMtLTsKICAgICBp
ZiAoIW1fbnVtUmVhZGVycykKICAgICAgICAgbV9jb25kLm5vdGlmeUFsbCgpOwpAQCAtNDgsNyAr
NDgsNyBAQCB2b2lkIFJlYWRXcml0ZUxvY2s6OnJlYWRVbmxvY2soKQogCiB2b2lkIFJlYWRXcml0
ZUxvY2s6OndyaXRlTG9jaygpCiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2sp
OworICAgIExvY2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKICAgICB3aGlsZSAobV9pc1dyaXRlTG9j
a2VkIHx8IG1fbnVtUmVhZGVycykgewogICAgICAgICBtX251bVdhaXRpbmdXcml0ZXJzKys7CiAg
ICAgICAgIG1fY29uZC53YWl0KG1fbG9jayk7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVhZFdy
aXRlTG9jazo6d3JpdGVMb2NrKCkKIAogdm9pZCBSZWFkV3JpdGVMb2NrOjp3cml0ZVVubG9jaygp
CiB7Ci0gICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX2xvY2spOworICAgIExvY2tlciBsb2Nr
ZXIgeyBtX2xvY2sgfTsKICAgICBtX2lzV3JpdGVMb2NrZWQgPSBmYWxzZTsKICAgICBtX2NvbmQu
bm90aWZ5QWxsKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2Nr
LmggYi9Tb3VyY2UvV1RGL3d0Zi9SZWFkV3JpdGVMb2NrLmgKaW5kZXggNGJmZGQwOTBhOTFiZGE4
NDFmNmYwNWQ3ZDg4YzZiODljMzhkOWJjZS4uMmE3YjA2ODJjMzM0ZTkxMDRkYTc3YzJmY2Y5MjI2
Y2VkNzMxMDFkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUmVhZFdyaXRlTG9jay5oCisr
KyBiL1NvdXJjZS9XVEYvd3RmL1JlYWRXcml0ZUxvY2suaApAQCAtMjUsOCArMjUsOCBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KLSNpbmNsdWRlIDx3dGYv
TG9jay5oPgorI2luY2x1ZGUgPHd0Zi9DaGVja2VkQ29uZGl0aW9uLmg+CisjaW5jbHVkZSA8d3Rm
L0NoZWNrZWRMb2NrLmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC02MSwxMSArNjEsMTEgQEAg
cHVibGljOgogICAgIFdyaXRlTG9jayYgd3JpdGUoKTsKIAogcHJpdmF0ZToKLSAgICBMb2NrIG1f
bG9jazsKLSAgICBDb25kaXRpb24gbV9jb25kOwotICAgIGJvb2wgbV9pc1dyaXRlTG9ja2VkIHsg
ZmFsc2UgfTsKLSAgICB1bnNpZ25lZCBtX251bVJlYWRlcnMgeyAwIH07Ci0gICAgdW5zaWduZWQg
bV9udW1XYWl0aW5nV3JpdGVycyB7IDAgfTsKKyAgICBDaGVja2VkTG9jayBtX2xvY2s7CisgICAg
Q2hlY2tlZENvbmRpdGlvbiBtX2NvbmQ7CisgICAgYm9vbCBtX2lzV3JpdGVMb2NrZWQgV1RGX0dV
QVJERURfQllfTE9DSyhtX2xvY2spIHsgZmFsc2UgfTsKKyAgICB1bnNpZ25lZCBtX251bVJlYWRl
cnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OworICAgIHVuc2lnbmVkIG1fbnVt
V2FpdGluZ1dyaXRlcnMgV1RGX0dVQVJERURfQllfTE9DSyhtX2xvY2spIHsgMCB9OwogfTsKIAog
Y2xhc3MgUmVhZFdyaXRlTG9jazo6UmVhZExvY2sgOiBwdWJsaWMgUmVhZFdyaXRlTG9jayB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1J1
bkxvb3AuY3BwCmluZGV4IGY3Mzk0N2E1NjBiOTFmZTc0MTBmMmQwMWM2NWY2YmQ1OTNmOWEwZGUu
LjgyODgzZDU1OGZjYTdlNjQxN2RiNmJmZjRjMzY0MGVlYTc4MjdiMTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuY3Bw
CkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBSdW5Mb29wOjpwZXJmb3JtV29yaygpCiAgICAgYm9v
bCBkaWRTdXNwZW5kRnVuY3Rpb25zID0gZmFsc2U7CiAKICAgICB7Ci0gICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9uZXh0SXRlcmF0aW9uTG9jayk7CisgICAgICAgIExvY2tlciBsb2Nr
ZXIgeyBtX25leHRJdGVyYXRpb25Mb2NrIH07CiAKICAgICAgICAgLy8gSWYgdGhlIFJ1bkxvb3Ag
cmUtZW50ZXJzIG9yIHJlLXNjaGVkdWxlcywgd2UncmUgZXhwZWN0ZWQgdG8gZXhlY3V0ZSBhbGwg
ZnVuY3Rpb25zIGluIG9yZGVyLgogICAgICAgICB3aGlsZSAoIW1fY3VycmVudEl0ZXJhdGlvbi5p
c0VtcHR5KCkpCkBAIC0xNDYsNyArMTQ2LDcgQEAgdm9pZCBSdW5Mb29wOjpkaXNwYXRjaChGdW5j
dGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIGJvb2wgbmVlZHNXYWtldXAgPSBmYWxzZTsK
IAogICAgIHsKLSAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX25leHRJdGVyYXRpb25M
b2NrKTsKKyAgICAgICAgTG9ja2VyIGxvY2tlciB7IG1fbmV4dEl0ZXJhdGlvbkxvY2sgfTsKICAg
ICAgICAgbmVlZHNXYWtldXAgPSBtX25leHRJdGVyYXRpb24uaXNFbXB0eSgpOwogICAgICAgICBt
X25leHRJdGVyYXRpb24uYXBwZW5kKFdURk1vdmUoZnVuY3Rpb24pKTsKICAgICB9CkBAIC0xODAs
NyArMTgwLDcgQEAgdm9pZCBSdW5Mb29wOjp0aHJlYWRXaWxsRXhpdCgpCiB7CiAgICAgbV9jdXJy
ZW50SXRlcmF0aW9uLmNsZWFyKCk7CiAgICAgewotICAgICAgICBhdXRvIGxvY2tlciA9IGhvbGRM
b2NrKG1fbmV4dEl0ZXJhdGlvbkxvY2spOworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9uZXh0
SXRlcmF0aW9uTG9jayB9OwogICAgICAgICBtX25leHRJdGVyYXRpb24uY2xlYXIoKTsKICAgICB9
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmggYi9Tb3VyY2UvV1RGL3d0
Zi9SdW5Mb29wLmgKaW5kZXggYjg1M2ZmOTUzNjY1OTE2Mjg5ZWFmMTY1MjlhNzdhOWViNzFiOWNk
YS4uYjg2MmZiYzMzNTg0YWI1ZGJjZjQ4MWJmMThmMmE0M2JlMmM3MjRkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaApA
QCAtMjgsNiArMjgsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlvbmFsPgor
I2luY2x1ZGUgPHd0Zi9DaGVja2VkTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgpAQCAtMjE2
LDggKzIxNyw4IEBAIHByaXZhdGU6CiAKICAgICBEZXF1ZTxGdW5jdGlvbjx2b2lkKCk+PiBtX2N1
cnJlbnRJdGVyYXRpb247CiAKLSAgICBMb2NrIG1fbmV4dEl0ZXJhdGlvbkxvY2s7Ci0gICAgRGVx
dWU8RnVuY3Rpb248dm9pZCgpPj4gbV9uZXh0SXRlcmF0aW9uOworICAgIENoZWNrZWRMb2NrIG1f
bmV4dEl0ZXJhdGlvbkxvY2s7CisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV9uZXh0SXRl
cmF0aW9uIFdURl9HVUFSREVEX0JZX0xPQ0sobV9uZXh0SXRlcmF0aW9uTG9jayk7CiAKICAgICBi
b29sIG1faXNGdW5jdGlvbkRpc3BhdGNoU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1f
aGFzU3VzcGVuZGVkRnVuY3Rpb25zIHsgZmFsc2UgfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>