<?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>226178</bug_id>
          
          <creation_ts>2021-05-24 08:59:44 -0700</creation_ts>
          <short_desc>Add support for better &quot;try-lock&quot; pattern for Locker&lt;Lock&gt;</short_desc>
          <delta_ts>2021-05-31 09:00:20 -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>ASSIGNED</bug_status>
          <resolution></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>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1763151</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 08:59:44 -0700</bug_when>
    <thetext>Add support for better &quot;try-lock&quot; pattern for Locker&lt;Lock&gt;. Maybe:
```
Locker locker { DeferLock, m_lock };
if (!locker.tryLock())
    return;

// Do something.
```

I think it would be nicer than the current:
```
if (!m_lock.tryLock())
    return;

Locker locker { AdoptLock, m_lock };
// Do something.
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763155</commentid>
    <comment_count>1</comment_count>
      <attachid>429536</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 09:13:23 -0700</bug_when>
    <thetext>Created attachment 429536
WIP Patch

Very minimal patch for now as EWS didn&apos;t like it last time I tried this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763157</commentid>
    <comment_count>2</comment_count>
      <attachid>429537</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 09:19:23 -0700</bug_when>
    <thetext>Created attachment 429537
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763162</commentid>
    <comment_count>3</comment_count>
      <attachid>429540</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 09:33:31 -0700</bug_when>
    <thetext>Created attachment 429540
WIP Patch (more complete)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763165</commentid>
    <comment_count>4</comment_count>
      <attachid>429542</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 09:39:53 -0700</bug_when>
    <thetext>Created attachment 429542
WIP Patch (more complete)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763168</commentid>
    <comment_count>5</comment_count>
      <attachid>429542</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 09:59:35 -0700</bug_when>
    <thetext>Comment on attachment 429542
WIP Patch (more complete)

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

&gt; Source/WebCore/Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:88
&gt; +    Locker locker { DeferLock, m_dataSourceLock };

./Modules/speech/SpeechRecognitionCaptureSourceImpl.cpp:109:5: error: writing variable &apos;m_dataSource&apos; requires holding mutex &apos;m_dataSourceLock&apos; exclusively [-Werror,-Wthread-safety-analysis]

EWS gets this error. I don&apos;t see what I am doing wrong here and this works fine locally :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763169</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-24 10:04:23 -0700</bug_when>
    <thetext>Add https://bugs.webkit.org/attachment.cgi?id=429537&amp;action=prettypatch was building fine so the pattern seems to be working, at least in some cases..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765423</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-31 09:00:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78689398&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429536</attachid>
            <date>2021-05-24 09:13:23 -0700</date>
            <delta_ts>2021-05-24 09:32:21 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>better_tryLock_WIP.patch</filename>
            <type>text/plain</type>
            <size>2573</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAppbmRleCAyOGM4ODNmNTAzZDguLjJlMjM5ZmU2YTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMTg0LDIxICsxODQs
MzUgQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfU0NPUEVEX0xPQ0sgTG9ja2VyPExvY2s+IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMb2NrZXIoTG9jayYgbG9jaykgV1RGX0FDUVVJUkVTX0xPQ0so
bG9jaykKICAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICAgICAgLCBtX2lzTG9ja2VkKHRydWUp
CiAgICAgewogICAgICAgICBtX2xvY2subG9jaygpOwogICAgIH0KICAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQogICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgICAgICAsIG1faXNMb2NrZWQodHJ1ZSkKKyAgICB7CisgICAgfQorICAg
IExvY2tlcihEZWZlckxvY2tUYWcsIExvY2smIGxvY2spIFdURl9FWENMVURFU19MT0NLKGxvY2sp
CisgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZChmYWxzZSkKICAg
ICB7CiAgICAgfQogICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCiAgICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgICAgIGlmIChtX2lzTG9ja2VkKQorICAgICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOwogICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FV
SVJFU19MT0NLX0lGKHRydWUpIHsKKyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQgPSBtX2xvY2su
dHJ5TG9jaygpOworICAgIH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRl
bGV0ZTsKICAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0
ZTsKIHByaXZhdGU6CiAgICAgTG9jayYgbV9sb2NrOworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZh
bHNlIH07CiB9OwogCiBMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2VyLmgKaW5kZXgg
N2VjYmY0OTg2ZWQ5Li4wNmUxZWRjMTUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xv
Y2tlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC01Nyw2ICs1Nyw4IEBAIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKIHVzaW5nIEFkb3B0
TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OwogY29uc3RleHByIEFkb3B0TG9ja1RhZyBBZG9w
dExvY2s7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsKK2NvbnN0ZXhw
ciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogY2xhc3Mg
TG9ja2VyIDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKQEAgLTE2NCw2ICsxNjYsNyBAQCBwcml2
YXRlOgogCiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwogdXNpbmcgV1RGOjpBZG9wdExvY2s7
Cit1c2luZyBXVEY6OkRlZmVyTG9jazsKIHVzaW5nIFdURjo6TG9ja2VyOwogdXNpbmcgV1RGOjpO
b0xvY2tpbmdOZWNlc3NhcnlUYWc7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vzc2FyeTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmNwcAppbmRleCBkYzZmMDJkN2FhNDguLmZiNGM0NGY3ZGZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcApAQCAtMTAzLDEyICsxMDMsMTIgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5v
ZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB9CiAKICAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2so
KSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBt
dXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5
IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9w
cm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFidWZmZXIoKSkgewogICAgICAgICBvdXRwdXRCdXMu
emVybygpOwo=
</data>
<flag name="commit-queue"
          id="450749"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429537</attachid>
            <date>2021-05-24 09:19:23 -0700</date>
            <delta_ts>2021-05-24 09:33:31 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>better_tryLock_WIP.patch</filename>
            <type>text/plain</type>
            <size>2753</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAppbmRleCAyOGM4ODNmNTAzZDguLmE2ZDMyNzY4ZGZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMTg0LDI1ICsxODQs
NDAgQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfU0NPUEVEX0xPQ0sgTG9ja2VyPExvY2s+IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMb2NrZXIoTG9jayYgbG9jaykgV1RGX0FDUVVJUkVTX0xPQ0so
bG9jaykKICAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICAgICAgLCBtX2lzTG9ja2VkKHRydWUp
CiAgICAgewogICAgICAgICBtX2xvY2subG9jaygpOwogICAgIH0KICAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQogICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgICAgICAsIG1faXNMb2NrZWQodHJ1ZSkKKyAgICB7CisgICAgfQorICAg
IExvY2tlcihEZWZlckxvY2tUYWcsIExvY2smIGxvY2spIFdURl9FWENMVURFU19MT0NLKGxvY2sp
CisgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZChmYWxzZSkKICAg
ICB7CiAgICAgfQogICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCiAgICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgICAgIGlmIChtX2lzTG9ja2VkKQorICAgICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOwogICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FV
SVJFU19MT0NLX0lGKHRydWUpIHsKKyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQgPSBtX2xvY2su
dHJ5TG9jaygpOworICAgIH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRl
bGV0ZTsKICAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0
ZTsKIHByaXZhdGU6CiAgICAgTG9jayYgbV9sb2NrOworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZh
bHNlIH07CiB9OwogCiBMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKIExvY2tlcihBZG9w
dExvY2tUYWcsIExvY2smKSAtPiBMb2NrZXI8TG9jaz47CitMb2NrZXIoRGVmZXJMb2NrVGFnLCBM
b2NrJikgLT4gTG9ja2VyPExvY2s+OwogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+
OwogdXNpbmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2Vy
LmgKaW5kZXggN2VjYmY0OTg2ZWQ5Li4wNmUxZWRjMTUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKIHVz
aW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OwogY29uc3RleHByIEFkb3B0TG9j
a1RhZyBBZG9wdExvY2s7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsK
K2NvbnN0ZXhwciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgTG9ja2VyIDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKQEAgLTE2NCw2ICsxNjYs
NyBAQCBwcml2YXRlOgogCiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwogdXNpbmcgV1RGOjpB
ZG9wdExvY2s7Cit1c2luZyBXVEY6OkRlZmVyTG9jazsKIHVzaW5nIFdURjo6TG9ja2VyOwogdXNp
bmcgV1RGOjpOb0xvY2tpbmdOZWNlc3NhcnlUYWc7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vz
c2FyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCBkYzZmMDJkN2FhNDguLmZiNGM0NGY3ZGZjNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9C
dWZmZXJTb3VyY2VOb2RlLmNwcApAQCAtMTAzLDEyICsxMDMsMTIgQEAgdm9pZCBBdWRpb0J1ZmZl
clNvdXJjZU5vZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB9CiAKICAg
ICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNl
IHRyeUxvY2soKSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFp
bGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2Vy
ZSBhbHJlYWR5IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56
ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0
TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFidWZmZXIoKSkgewogICAgICAgICBv
dXRwdXRCdXMuemVybygpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429540</attachid>
            <date>2021-05-24 09:33:31 -0700</date>
            <delta_ts>2021-05-24 09:39:53 -0700</delta_ts>
            <desc>WIP Patch (more complete)</desc>
            <filename>better_tryLock_WIP2.patch</filename>
            <type>text/plain</type>
            <size>22864</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAppbmRleCAyOGM4ODNmNTAzZDguLmE2ZDMyNzY4ZGZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMTg0LDI1ICsxODQs
NDAgQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfU0NPUEVEX0xPQ0sgTG9ja2VyPExvY2s+IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMb2NrZXIoTG9jayYgbG9jaykgV1RGX0FDUVVJUkVTX0xPQ0so
bG9jaykKICAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICAgICAgLCBtX2lzTG9ja2VkKHRydWUp
CiAgICAgewogICAgICAgICBtX2xvY2subG9jaygpOwogICAgIH0KICAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQogICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgICAgICAsIG1faXNMb2NrZWQodHJ1ZSkKKyAgICB7CisgICAgfQorICAg
IExvY2tlcihEZWZlckxvY2tUYWcsIExvY2smIGxvY2spIFdURl9FWENMVURFU19MT0NLKGxvY2sp
CisgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZChmYWxzZSkKICAg
ICB7CiAgICAgfQogICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCiAgICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgICAgIGlmIChtX2lzTG9ja2VkKQorICAgICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOwogICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FV
SVJFU19MT0NLX0lGKHRydWUpIHsKKyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQgPSBtX2xvY2su
dHJ5TG9jaygpOworICAgIH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRl
bGV0ZTsKICAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0
ZTsKIHByaXZhdGU6CiAgICAgTG9jayYgbV9sb2NrOworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZh
bHNlIH07CiB9OwogCiBMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKIExvY2tlcihBZG9w
dExvY2tUYWcsIExvY2smKSAtPiBMb2NrZXI8TG9jaz47CitMb2NrZXIoRGVmZXJMb2NrVGFnLCBM
b2NrJikgLT4gTG9ja2VyPExvY2s+OwogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+
OwogdXNpbmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2Vy
LmgKaW5kZXggN2VjYmY0OTg2ZWQ5Li4wNmUxZWRjMTUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKIHVz
aW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OwogY29uc3RleHByIEFkb3B0TG9j
a1RhZyBBZG9wdExvY2s7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsK
K2NvbnN0ZXhwciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgTG9ja2VyIDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKQEAgLTE2NCw2ICsxNjYs
NyBAQCBwcml2YXRlOgogCiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwogdXNpbmcgV1RGOjpB
ZG9wdExvY2s7Cit1c2luZyBXVEY6OkRlZmVyTG9jazsKIHVzaW5nIFdURjo6TG9ja2VyOwogdXNp
bmcgV1RGOjpOb0xvY2tpbmdOZWNlc3NhcnlUYWc7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vz
c2FyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggOWMzZTZm
OTAzNmQzLi5mNDI0MjM5ZjQzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCkBAIC04NSwxMSArODUsMTAgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICghbV9kYXRhU291cmNlTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9kYXRhU291cmNlTG9j
ayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9kYXRhU291cmNlTG9jayB9OwotCiAg
ICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoYXVkaW9E
ZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7CiAgICAgaWYgKGRh
dGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmNwcAppbmRleCBkYzZmMDJkN2FhNDguLmZiNGM0NGY3ZGZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcApAQCAtMTAzLDEyICsxMDMsMTIgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5v
ZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB9CiAKICAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2so
KSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBt
dXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5
IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9w
cm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFidWZmZXIoKSkgewogICAgICAgICBvdXRwdXRCdXMu
emVybygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDdhMDRhNWFmYjQ5Mi4uN2NkZjZmZjhiMDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCkBAIC0zMjcsMTAgKzMyNywxMCBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6
cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCiBPcHRpb25h
bDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZs
b2F0IG1heFZhbHVlKQogewogICAgIHsKLSAgICAgICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9j
aygpKQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsK
KyAgICAgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9ldmVudHNMb2Nr
IH07Ci0gICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1
cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKKyAgICAgICAgaWYgKG1fZXZlbnRz
LnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1sw
XS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAt
MzQ3LDExICszNDcsMTEgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFs
dWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXgKIGZsb2F0IEF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90
IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhW
YWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1w
bGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0
aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgotICAgIGlmICghbV9ldmVudHNM
b2NrLnRyeUxvY2soKSkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRz
TG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBzdGQ6OmZpbGxf
bih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX2V2
ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IHZhbHVlID0gdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwo
c3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1bHRWYWx1ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVl
cywgc2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogCkBAIC05ODYsOSArOTg2LDkgQEAgYm9vbCBB
dWRpb1BhcmFtVGltZWxpbmU6OmlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50
LCBjb25zdCBQYXJhbUV2ZW4KIAogYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhz
aXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X2V2ZW50c0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
ZXZlbnRzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9ldmVudHNMb2NrIH07CiAK
ICAgICAvLyBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSBy
YW5nZS4KICAgICBhdXRvIGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IGFmYjFhNWFiMjUzYy4uZWVlMDQyYzRmYjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKQEAgLTE5NiwxMSArMTk2LDEyIEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICAgICAgb3V0cHV0KGkpLT5i
dXMoKS0+emVybygpOwogICAgIH07CiAKLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygp
KSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICB6ZXJvT3V0cHV0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNz
TG9jayB9OworCiAgICAgaWYgKCFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0g
bV93b3JrbGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2Ug
YXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgog
ICAgICAgICB6ZXJvT3V0cHV0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCBjMmU1NjBlZGE2NzUuLjFiYzlmMmVjZjZlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
Y3BwCkBAIC05MiwxMiArOTIsMTIgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKG91dHB1dEJ1cyk7CiAKICAgICAvLyBTeW5j
aHJvbml6ZSB3aXRoIHBvc3NpYmxlIGR5bmFtaWMgY2hhbmdlcyB0byB0aGUgaW1wdWxzZSByZXNw
b25zZS4KLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgewogICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBi
ZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSByZXNwb25zZS4KICAgICAg
ICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFpc0luaXRp
YWxpemVkKCkgfHwgIW1fcmV2ZXJiLmdldCgpKQogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggNWRmMTZiZGFiNWNiLi4wMTkzYjEyYzMw
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xNDIsMTIgKzE0MiwxMyBAQCB2
b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZy
YW1lcykKICAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJl
YWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBs
b2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8v
IGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAg
IGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CiAg
ICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisKICAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNo
YW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKSB7CiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IDlhN2EzZjM5OTIzZC4uZmZh
NDY3OTZiOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcApAQCAtMzUwLDEyICszNTAsMTIgQEAgdm9pZCBPc2NpbGxhdG9yTm9k
ZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNl
IHRyeUxvY2soKSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFp
bGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAg
ICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgLy8gV2UgbXVz
dCBhY2Nlc3MgbV9wZXJpb2RpY1dhdmUgb25seSBpbnNpZGUgdGhlIGxvY2suCiAgICAgaWYgKCFt
X3BlcmlvZGljV2F2ZS5nZXQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5jcHAKaW5kZXggM2NiOTdiYWY5N2ZhLi45NDFjYjY2MTQ1YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAtMTMw
LDEyICsxMzAsMTIgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiAgICAgfQogCiAgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0
aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KLSAgICBpZiAoIW1fcHJvY2Vz
c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9j
ZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBUb28g
YmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5n
aW5nIHRoZSBwYW5uZXIuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9j
ayB9OwogCiAgICAgaWYgKChoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIHx8IGxpc3RlbmVyKCku
aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSkgJiYgKHNob3VsZFVzZUFSYXRlKCkgfHwgbGlzdGVu
ZXIoKS5zaG91bGRVc2VBUmF0ZSgpKSkgewogICAgICAgICBwcm9jZXNzU2FtcGxlQWNjdXJhdGVW
YWx1ZXMoZGVzdGluYXRpb24sIHNvdXJjZSwgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CmluZGV4IGVkMjQxYmNkMTcyOC4uNzJiZWFkZjRkNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTE1
OCwxMyArMTU4LDEzIEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlckluZGV4ID0gdGhpcy0+YnVmZmVy
SW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZmZXJDb3VudCk7CiAKLSAgICBp
ZiAoIW1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdLnRyeUxvY2soKSkgeworICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcg
dGhlIHByZXZpb3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8v
IHZlcnkgYnVzeS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91
cnNlbGYgaGVyZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9idWZmZXJMb2Nrc1tidWZm
ZXJJbmRleF0gfTsKICAgICAKICAgICBBdWRpb0J1ZmZlciogaW5wdXRCdWZmZXIgPSBtX2lucHV0
QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZl
ciA9IG1fb3V0cHV0QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRl
eCA3MjdjOTAwNDhhZTYuLjM4ZDc3ZGI1NWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCkBAIC04NCwxMiAr
ODQsMTIgQEAgdm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0
cnlMb2NrKCkgaW5zdGVhZC4KLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICgh
bG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxl
ZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgogICAgICAg
ICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIC8vIEZvciBlYWNo
IGNoYW5uZWwgb2Ygb3VyIGlucHV0LCBwcm9jZXNzIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIFdh
dmVTaGFwZXJEU1BLZXJuZWwgaW50byB0aGUgb3V0cHV0IGNoYW5uZWwuCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fa2VybmVscy5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCA1ZTdmM2VjOTcyMTIu
LmJiY2I4NjhhZjEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvRGVzdGluYXRpb24uaApAQCAtOTUsMTQgKzk1LDE0IEBAIGlubGluZSB2b2lkIEF1ZGlvRGVz
dGluYXRpb246OmNsZWFyQ2FsbGJhY2soKQogCiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
OjpjYWxsUmVuZGVyQ2FsbGJhY2soQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3Rp
bmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24m
IG91dHB1dFBvc2l0aW9uKQogewotICAgIGlmIChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsK
LSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9jYWxsYmFja0xvY2sgfTsKLSAg
ICAgICAgaWYgKG1fY2FsbGJhY2spIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihz
b3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9u
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fY2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7
CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKworICAgIGlmIChtX2NhbGxiYWNrKQorICAg
ICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVz
VG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3Bw
CmluZGV4IDYzNWE4Zjc3YjMxNC4uZTQ5Zjk3MTEzYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw5ICsyMDIsOSBA
QCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJj
ZUNoYW5uZWwsIEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGlt
ZSwgc2luY2Ugd2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2Un
cmUgY2FsbGVkIHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5
IDNtcykuICBUaGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhl
IGZ1dHVyZSBhbmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkg
aGVyZS4uLgotICAgIGlmICghbV9iYWNrZ3JvdW5kVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwotICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2ssIG1fYmFja2dyb3VuZFRocmVhZExvY2sgfTsKIAogICAgIG1fbW9yZUlu
cHV0QnVmZmVyZWQgPSB0cnVlOwogICAgIG1fYmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlh
YmxlLm5vdGlmeU9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggMzBjNzc2NjBk
N2Y1Li41NTc2N2MxOTczNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMjE5LDEw
ICsyMTksMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoZG91Ymxl
IHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW4KICAgICB9CiAKICAgICAvLyBXaGVu
IHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29y
a2xldFRocmVhZC4KLSAgICBpZiAoIW1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9j
aygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiAt
MTsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKICAgICAgICAg
cmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxheWluZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgZWxz
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXgg
YWU2MDJkYTJlMjA0Li4yMmYxMDkyZDc3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHAKQEAgLTE2MCwxMCArMTYwLDEwIEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lcjo6Y29uZmlndXJlQXVkaW9CaW4oR3N0RWxlbWVudCogYXVkaW9C
aW4sIEdzdEVsCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEdTVF9UUkFD
RSgiRmV0Y2hpbmcgYnVmZmVycyBmcm9tIGFkYXB0ZXJzIik7Ci0gICAgaWYgKCFtX2FkYXB0ZXJM
b2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2FkYXB0ZXJM
b2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX2FkYXB0ZXJMb2NrIH07CiAgICAgZm9yIChh
dXRvJiBpdCA6IG1fYWRhcHRlcnMpCiAgICAgICAgIGNvcHlHU3RyZWFtZXJCdWZmZXJzVG9BdWRp
b0NoYW5uZWwoaXQudmFsdWUuZ2V0KCksIGJ1cywgaXQua2V5IC0gMSwgZnJhbWVzVG9Qcm9jZXNz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmlu
ZGV4IDBmZWE5MjVjNGYzMS4uZWVlYTg2YWU1ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQwOCwxMSArNDA4LDEwIEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0aW9uKFdlYktpdFdlYkF1ZGlvU3JjKiBz
cmMpCiAgICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGlm
ICghcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07
CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9
OwotCiAgICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAg
ICAgIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1l
bnQ+KEdTVF9FTEVNRU5UX0NBU1Qoc3JjKSksIFdURk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7
CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMubW0KaW5kZXggOTgzOWIzNzBhNzEzLi40N2M4MzkxNjg0YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTEwMiwxMSArMTAy
LDExIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRp
b0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIW1fdGFwU3RvcmFnZS0+bG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgRGVmZXJMb2NrLCBtX3RhcFN0b3JhZ2UtPmxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50
cnlMb2NrKCkpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV90YXBTdG9yYWdlLT5sb2NrIH07CiAK
ICAgICBpZiAoIW1fcmluZ0J1ZmZlcikgewogICAgICAgICBidXMtPnplcm8oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQppbmRleCAxNzMwNTJhNzNiNTEuLjgxZTc1NzNlZDQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDkgKzI1NCw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1w
bGUmIHNhbXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKKyAg
ICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBMb2NrZXIgbG9j
a2VyIHsgQWRvcHRMb2NrLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKIAogICAg
IGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFpbCgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmNwcAppbmRleCBlM2ExMjg5MTFlZDYuLmU2ZjJlNmUyZGY5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0x
NDEsMTAgKzE0MSwxMCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
cmV0cmlldmVGb3JtYXREZXNjcmlwdGlvbihDb21wbGV0aW9uSGFuZAogCiB2b2lkIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5
KCkKIHsKLSAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrLnRyeUxvY2soKSkKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKICAg
ICBpZiAoIW1faGFzUGVuZGluZ1JlbmRlclNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4
IDk0YTU5MmI2MzI2Ni4uMGY2ZmRmMzQyN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCkBAIC0yMDcsNyArMjA3LDggQEAgdm9pZCBX
b3JrZXJPcldvcmtsZXRUaHJlYWQ6OnN0b3AoRnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxs
YmFjaykKICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCBtX3dvcmtlckdsb2JhbFNjb3BlIGlzbid0IGNoYW5nZWQgYnkKICAgICAvLyBXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZCgpIHdoaWxlIHdlJ3JlIGFjY2Vzc2luZyBpdC4gTm90ZSBhbHNvIHRo
YXQgc3RvcCgpIGNhbgogICAgIC8vIGJlIGNhbGxlZCBiZWZvcmUgbV93b3JrZXJHbG9iYWxTY29w
ZSBpcyBmdWxseSBjcmVhdGVkLgotICAgIGlmICghbV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNj
b3BlTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Ro
cmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9j
aygpKSB7CiAgICAgICAgIC8vIFRoZSB0aHJlYWQgaXMgc3RpbGwgc3RhcnRpbmcsIHNwaW4gdGhl
IHJ1bmxvb3AgYW5kIHRyeSBhZ2FpbiB0byBhdm9pZCBkZWFkbG9ja3MgaWYgdGhlIHdvcmtlciB0
aHJlYWQKICAgICAgICAgLy8gbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWFpbiB0aHJlYWQg
ZHVyaW5nIHN0YXJ0dXAuCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHN0b3BwZWRD
YWxsYmFjayA9IFdURk1vdmUoc3RvcHBlZENhbGxiYWNrKV0oKSBtdXRhYmxlIHsKQEAgLTIxNSw3
ICsyMTYsNiBAQCB2b2lkIFdvcmtlck9yV29ya2xldFRocmVhZDo6c3RvcChGdW5jdGlvbjx2b2lk
KCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3RocmVhZENyZWF0aW9uQW5kR2xv
YmFsU2NvcGVMb2NrIH07CiAKICAgICAvLyBJZiB0aGUgdGhyZWFkIGlzIHN1c3BlbmRlZCwgcmVz
dW1lIGl0IG5vdyBzbyB0aGF0IHdlIGNhbiBkaXNwYXRjaCB0aGUgY2xlYW51cCB0YXNrcyBiZWxv
dy4KICAgICBpZiAobV9pc1N1c3BlbmRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IDI4ZTljNjk4MmFj
NS4uNDhhMzY2MTY5YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTMyNCwxMSArMzI0LDEwIEBAIHZv
aWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmll
ciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRlY29kZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxs
YmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIGRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrTG9jayB9OwotCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwogCkBAIC00OTIsMTEgKzQ5MSwxMCBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
SVBDOjpEYQogICAgIGlmICghZW5jb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFl
bmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9jaywgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07
Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1
cm47CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3Bw
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvTG9jay5jcHAKaW5kZXggYzkzNGIyYmI4
OGUwLi5jNGVhNDVhNmVlM2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0xvY2suY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0xvY2suY3Bw
CkBAIC0yMDIsNiArMjAyLDEzIEBAIHB1YmxpYzoKICAgICAgICAgTG9ja2VyIGhvbGRMb2NrIHsg
QWRvcHRMb2NrLCBtX290aGVyTG9jayB9OwogICAgICAgICBtX290aGVyVmFsdWUgPSB2YWx1ZTsK
ICAgICB9CisgICAgdm9pZCBtYXliZVNldE90aGVyVmFsdWVEZWZlcnJlZChpbnQgdmFsdWUpCisg
ICAgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX290aGVyTG9jayB9Owor
ICAgICAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIG1fb3RoZXJWYWx1ZSA9IHZhbHVlOworICAgIH0KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGNh
biBiZSB1c2VkIHRvIG1hbnVhbGx5IGNoZWNrIHRoYXQgY29tcGlsZSBmYWlscy4KICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNob3VsZEZhaWxDb21waWxlKFQgdCkKICAgICB7CkBAIC0y
MjEsNiArMjI4LDcgQEAgVEVTVChXVEZfTG9jaywgQmFzaWMpCiAgICAgTXlWYWx1ZSB2OwogICAg
IHYuc2V0VmFsdWUoNyk7CiAgICAgdi5tYXliZVNldE90aGVyVmFsdWUoMzQpOworICAgIHYubWF5
YmVTZXRPdGhlclZhbHVlRGVmZXJyZWQoMzUpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429542</attachid>
            <date>2021-05-24 09:39:53 -0700</date>
            <delta_ts>2021-05-24 10:09:20 -0700</delta_ts>
            <desc>WIP Patch (more complete)</desc>
            <filename>better_tryLock_WIP2.patch</filename>
            <type>text/plain</type>
            <size>22008</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAppbmRleCAyOGM4ODNmNTAzZDguLmE2ZDMyNzY4ZGZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMTg0LDI1ICsxODQs
NDAgQEAgY2xhc3MgV1RGX0NBUEFCSUxJVFlfU0NPUEVEX0xPQ0sgTG9ja2VyPExvY2s+IHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMb2NrZXIoTG9jayYgbG9jaykgV1RGX0FDUVVJUkVTX0xPQ0so
bG9jaykKICAgICAgICAgOiBtX2xvY2sobG9jaykKKyAgICAgICAgLCBtX2lzTG9ja2VkKHRydWUp
CiAgICAgewogICAgICAgICBtX2xvY2subG9jaygpOwogICAgIH0KICAgICBMb2NrZXIoQWRvcHRM
b2NrVGFnLCBMb2NrJiBsb2NrKSBXVEZfUkVRVUlSRVNfTE9DSyhsb2NrKQogICAgICAgICA6IG1f
bG9jayhsb2NrKQorICAgICAgICAsIG1faXNMb2NrZWQodHJ1ZSkKKyAgICB7CisgICAgfQorICAg
IExvY2tlcihEZWZlckxvY2tUYWcsIExvY2smIGxvY2spIFdURl9FWENMVURFU19MT0NLKGxvY2sp
CisgICAgICAgIDogbV9sb2NrKGxvY2spCisgICAgICAgICwgbV9pc0xvY2tlZChmYWxzZSkKICAg
ICB7CiAgICAgfQogICAgIH5Mb2NrZXIoKSBXVEZfUkVMRUFTRVNfTE9DSygpCiAgICAgewotICAg
ICAgICBtX2xvY2sudW5sb2NrKCk7CisgICAgICAgIGlmIChtX2lzTG9ja2VkKQorICAgICAgICAg
ICAgbV9sb2NrLnVubG9jaygpOwogICAgIH0KKworICAgIGJvb2wgdHJ5TG9jaygpIFdURl9BQ1FV
SVJFU19MT0NLX0lGKHRydWUpIHsKKyAgICAgICAgcmV0dXJuIG1faXNMb2NrZWQgPSBtX2xvY2su
dHJ5TG9jaygpOworICAgIH0KKwogICAgIExvY2tlcihjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRl
bGV0ZTsKICAgICBMb2NrZXImIG9wZXJhdG9yPShjb25zdCBMb2NrZXI8TG9jaz4mKSA9IGRlbGV0
ZTsKIHByaXZhdGU6CiAgICAgTG9jayYgbV9sb2NrOworICAgIGJvb2wgbV9pc0xvY2tlZCB7IGZh
bHNlIH07CiB9OwogCiBMb2NrZXIoTG9jayYpIC0+IExvY2tlcjxMb2NrPjsKIExvY2tlcihBZG9w
dExvY2tUYWcsIExvY2smKSAtPiBMb2NrZXI8TG9jaz47CitMb2NrZXIoRGVmZXJMb2NrVGFnLCBM
b2NrJikgLT4gTG9ja2VyPExvY2s+OwogCiB1c2luZyBMb2NrSG9sZGVyID0gTG9ja2VyPExvY2s+
OwogdXNpbmcgVW5jaGVja2VkTG9ja0hvbGRlciA9IExvY2tlcjxVbmNoZWNrZWRMb2NrPjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oIGIvU291cmNlL1dURi93dGYvTG9ja2Vy
LmgKaW5kZXggN2VjYmY0OTg2ZWQ5Li4wNmUxZWRjMTUyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0xvY2tlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCkBAIC01Nyw2ICs1
Nyw4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIERyb3BMb2NrRm9yU2NvcGU7CiAKIHVz
aW5nIEFkb3B0TG9ja1RhZyA9IHN0ZDo6YWRvcHRfbG9ja190OwogY29uc3RleHByIEFkb3B0TG9j
a1RhZyBBZG9wdExvY2s7Cit1c2luZyBEZWZlckxvY2tUYWcgPSBzdGQ6OmRlZmVyX2xvY2tfdDsK
K2NvbnN0ZXhwciBEZWZlckxvY2tUYWcgRGVmZXJMb2NrOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgogY2xhc3MgTG9ja2VyIDogcHVibGljIEFic3RyYWN0TG9ja2VyIHsKQEAgLTE2NCw2ICsxNjYs
NyBAQCBwcml2YXRlOgogCiB1c2luZyBXVEY6OkFic3RyYWN0TG9ja2VyOwogdXNpbmcgV1RGOjpB
ZG9wdExvY2s7Cit1c2luZyBXVEY6OkRlZmVyTG9jazsKIHVzaW5nIFdURjo6TG9ja2VyOwogdXNp
bmcgV1RGOjpOb0xvY2tpbmdOZWNlc3NhcnlUYWc7CiB1c2luZyBXVEY6Ok5vTG9ja2luZ05lY2Vz
c2FyeTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
cGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKaW5kZXggOWMzZTZm
OTAzNmQzLi5mNDI0MjM5ZjQzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGwuY3BwCkBAIC04NSwxMSArODUsMTAgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVT
b3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKIHsKICAg
ICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAotICAgIGlmICghbV9kYXRhU291cmNlTG9jay50
cnlMb2NrKCkpCisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9kYXRhU291cmNlTG9j
ayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9kYXRhU291cmNlTG9jayB9OwotCiAg
ICAgYXV0byBkYXRhU291cmNlID0gQXVkaW9TYW1wbGVEYXRhU291cmNlOjpjcmVhdGUoYXVkaW9E
ZXNjcmlwdGlvbi5zYW1wbGVSYXRlKCkgKiAxLCBtX3NvdXJjZS5nZXQoKSk7CiAgICAgaWYgKGRh
dGFTb3VyY2UtPnNldElucHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNh
bGxPbk1haW5UaHJlYWQoW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIodGhpcyldIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmNwcAppbmRleCBkYzZmMDJkN2FhNDguLmZiNGM0NGY3ZGZjNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmNwcApAQCAtMTAzLDEyICsxMDMsMTIgQEAgdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5v
ZGU6OnByb2Nlc3Moc2l6ZV90IGZyYW1lc1RvUHJvY2VzcykKICAgICB9CiAKICAgICAvLyBUaGUg
YXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNlIHRyeUxvY2so
KSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2Nr
ZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIu
dHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFpbGVkLiBXZSBt
dXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgYnVmZmVycyBhbmQgd2VyZSBhbHJlYWR5
IG91dHB1dHRpbmcgc2lsZW5jZSBhbnl3YXkuCiAgICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9w
cm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFidWZmZXIoKSkgewogICAgICAgICBvdXRwdXRCdXMu
emVybygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwCmluZGV4IDdhMDRhNWFmYjQ5Mi4uN2NkZjZmZjhiMDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCkBAIC0zMjcsMTAgKzMyNywxMCBAQCB2b2lkIEF1ZGlvUGFyYW1UaW1lbGluZTo6
cmVtb3ZlQ2FuY2VsbGVkRXZlbnRzKHNpemVfdCBmaXJzdEV2ZW50VG9SZW1vdmUpCiBPcHRpb25h
bDxmbG9hdD4gQXVkaW9QYXJhbVRpbWVsaW5lOjp2YWx1ZUZvckNvbnRleHRUaW1lKEJhc2VBdWRp
b0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IGRlZmF1bHRWYWx1ZSwgZmxvYXQgbWluVmFsdWUsIGZs
b2F0IG1heFZhbHVlKQogewogICAgIHsKLSAgICAgICAgaWYgKCFtX2V2ZW50c0xvY2sudHJ5TG9j
aygpKQorICAgICAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2V2ZW50c0xvY2sgfTsK
KyAgICAgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9ldmVudHNMb2Nr
IH07Ci0gICAgICAgIGlmICghbV9ldmVudHMuc2l6ZSgpIHx8IFNlY29uZHMgeyBjb250ZXh0LmN1
cnJlbnRUaW1lKCkgfSA8IG1fZXZlbnRzWzBdLnRpbWUoKSkKKyAgICAgICAgaWYgKG1fZXZlbnRz
LnNpemUoKSB8fCBTZWNvbmRzIHsgY29udGV4dC5jdXJyZW50VGltZSgpIH0gPCBtX2V2ZW50c1sw
XS50aW1lKCkpCiAgICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwogICAgIH0KIApAQCAt
MzQ3LDExICszNDcsMTEgQEAgT3B0aW9uYWw8ZmxvYXQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6dmFs
dWVGb3JDb250ZXh0VGltZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXgKIGZsb2F0IEF1ZGlvUGFy
YW1UaW1lbGluZTo6dmFsdWVzRm9yRnJhbWVSYW5nZShzaXplX3Qgc3RhcnRGcmFtZSwgc2l6ZV90
IGVuZEZyYW1lLCBmbG9hdCBkZWZhdWx0VmFsdWUsIGZsb2F0IG1pblZhbHVlLCBmbG9hdCBtYXhW
YWx1ZSwgZmxvYXQqIHZhbHVlcywgdW5zaWduZWQgbnVtYmVyT2ZWYWx1ZXMsIGRvdWJsZSBzYW1w
bGVSYXRlLCBkb3VibGUgY29udHJvbFJhdGUpCiB7CiAgICAgLy8gV2UgY2FuJ3QgY29udGVuZCB0
aGUgbG9jayBpbiB0aGUgcmVhbHRpbWUgYXVkaW8gdGhyZWFkLgotICAgIGlmICghbV9ldmVudHNM
b2NrLnRyeUxvY2soKSkgeworICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZXZlbnRz
TG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICBzdGQ6OmZpbGxf
bih2YWx1ZXMsIG51bWJlck9mVmFsdWVzLCBkZWZhdWx0VmFsdWUpOwogICAgICAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX2V2
ZW50c0xvY2sgfTsKIAogICAgIGZsb2F0IHZhbHVlID0gdmFsdWVzRm9yRnJhbWVSYW5nZUltcGwo
c3RhcnRGcmFtZSwgZW5kRnJhbWUsIGRlZmF1bHRWYWx1ZSwgdmFsdWVzLCBudW1iZXJPZlZhbHVl
cywgc2FtcGxlUmF0ZSwgY29udHJvbFJhdGUpOwogCkBAIC05ODYsOSArOTg2LDkgQEAgYm9vbCBB
dWRpb1BhcmFtVGltZWxpbmU6OmlzRXZlbnRDdXJyZW50KGNvbnN0IFBhcmFtRXZlbnQmIGV2ZW50
LCBjb25zdCBQYXJhbUV2ZW4KIAogYm9vbCBBdWRpb1BhcmFtVGltZWxpbmU6Omhhc1ZhbHVlcyhz
aXplX3Qgc3RhcnRGcmFtZSwgZG91YmxlIHNhbXBsZVJhdGUpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X2V2ZW50c0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1f
ZXZlbnRzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9ldmVudHNMb2NrIH07CiAK
ICAgICAvLyBSZXR1cm4gZmFsc2UgaWYgdGhlcmUgYXJlIG5vIGV2ZW50cyBpbiB0aGUgdGltZSBy
YW5nZS4KICAgICBhdXRvIGVuZEZyYW1lID0gc3RhcnRGcmFtZSArIEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Xb3JrbGV0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvV29ya2xldE5vZGUuY3BwCmluZGV4IGFmYjFhNWFiMjUzYy4uZWVlMDQyYzRmYjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvV29ya2xl
dE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Xb3Jr
bGV0Tm9kZS5jcHAKQEAgLTE5NiwxMSArMTk2LDEyIEBAIHZvaWQgQXVkaW9Xb3JrbGV0Tm9kZTo6
cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICAgICAgb3V0cHV0KGkpLT5i
dXMoKS0+emVybygpOwogICAgIH07CiAKLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygp
KSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICB6ZXJvT3V0cHV0KCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNz
TG9jayB9OworCiAgICAgaWYgKCFtX3Byb2Nlc3NvciB8fCAmVGhyZWFkOjpjdXJyZW50KCkgIT0g
bV93b3JrbGV0VGhyZWFkKSB7CiAgICAgICAgIC8vIFdlJ3JlIG5vdCByZWFkeSB5ZXQgb3Igd2Ug
YXJlIGdldHRpbmcgZGVzdHJveWVkLiBJbiB0aGlzIGNhc2UsIHdlIG91dHB1dCBzaWxlbmNlLgog
ICAgICAgICB6ZXJvT3V0cHV0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9Db252b2x2ZXJOb2RlLmNwcAppbmRleCBjMmU1NjBlZGE2NzUuLjFiYzlmMmVjZjZlNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Db252b2x2ZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0NvbnZvbHZlck5vZGUu
Y3BwCkBAIC05MiwxMiArOTIsMTIgQEAgdm9pZCBDb252b2x2ZXJOb2RlOjpwcm9jZXNzKHNpemVf
dCBmcmFtZXNUb1Byb2Nlc3MpCiAgICAgQVNTRVJUKG91dHB1dEJ1cyk7CiAKICAgICAvLyBTeW5j
aHJvbml6ZSB3aXRoIHBvc3NpYmxlIGR5bmFtaWMgY2hhbmdlcyB0byB0aGUgaW1wdWxzZSByZXNw
b25zZS4KLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2VyIGxv
Y2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxv
Y2soKSkgewogICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBi
ZSBpbiB0aGUgbWlkZGxlIG9mIHNldHRpbmcgYSBuZXcgaW1wdWxzZSByZXNwb25zZS4KICAgICAg
ICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgaWYgKCFpc0luaXRp
YWxpemVkKCkgfHwgIW1fcmV2ZXJiLmdldCgpKQogICAgICAgICBvdXRwdXRCdXMtPnplcm8oKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJlYW1B
dWRpb1NvdXJjZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9NZWRp
YVN0cmVhbUF1ZGlvU291cmNlTm9kZS5jcHAKaW5kZXggNWRmMTZiZGFiNWNiLi4wMTkzYjEyYzMw
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vTWVkaWFTdHJl
YW1BdWRpb1NvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vTWVkaWFTdHJlYW1BdWRpb1NvdXJjZU5vZGUuY3BwCkBAIC0xNDIsMTIgKzE0MiwxMyBAQCB2
b2lkIE1lZGlhU3RyZWFtQXVkaW9Tb3VyY2VOb2RlOjpwcm9jZXNzKHNpemVfdCBudW1iZXJPZkZy
YW1lcykKICAgICAvLyBVc2UgdHJ5TG9jaygpIHRvIGF2b2lkIGNvbnRlbnRpb24gaW4gdGhlIHJl
YWwtdGltZSBhdWRpbyB0aHJlYWQuCiAgICAgLy8gSWYgd2UgZmFpbCB0byBhY3F1aXJlIHRoZSBs
b2NrIHRoZW4gdGhlIE1lZGlhU3RyZWFtIG11c3QgYmUgaW4gdGhlIG1pZGRsZSBvZgogICAgIC8v
IGEgZm9ybWF0IGNoYW5nZSwgc28gd2Ugb3V0cHV0IHNpbGVuY2UgaW4gdGhpcyBjYXNlLgotICAg
IGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVm
ZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7CiAg
ICAgICAgIC8vIFdlIGZhaWxlZCB0byBhY3F1aXJlIHRoZSBsb2NrLgogICAgICAgICBvdXRwdXRC
dXMtPnplcm8oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBMb2NrZXIgbG9ja2VyIHsg
QWRvcHRMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisKICAgICBpZiAobV9zb3VyY2VOdW1iZXJPZkNo
YW5uZWxzICE9IG91dHB1dEJ1cy0+bnVtYmVyT2ZDaGFubmVscygpKSB7CiAgICAgICAgIG91dHB1
dEJ1cy0+emVybygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuY3BwCmluZGV4IDlhN2EzZjM5OTIzZC4uZmZh
NDY3OTZiOGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09z
Y2lsbGF0b3JOb2RlLmNwcApAQCAtMzUwLDEyICszNTAsMTIgQEAgdm9pZCBPc2NpbGxhdG9yTm9k
ZTo6cHJvY2VzcyhzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogICAgICAgICByZXR1cm47CiAKICAg
ICAvLyBUaGUgYXVkaW8gdGhyZWFkIGNhbid0IGJsb2NrIG9uIHRoaXMgbG9jaywgc28gd2UgdXNl
IHRyeUxvY2soKSBpbnN0ZWFkLgotICAgIGlmICghbV9wcm9jZXNzTG9jay50cnlMb2NrKCkpIHsK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Byb2Nlc3NMb2NrIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFRvbyBiYWQgLSB0cnlMb2NrKCkgZmFp
bGVkLiBXZSBtdXN0IGJlIGluIHRoZSBtaWRkbGUgb2YgY2hhbmdpbmcgd2F2ZS10YWJsZXMuCiAg
ICAgICAgIG91dHB1dEJ1cy56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9jayB9OwogCiAgICAgLy8gV2UgbXVz
dCBhY2Nlc3MgbV9wZXJpb2RpY1dhdmUgb25seSBpbnNpZGUgdGhlIGxvY2suCiAgICAgaWYgKCFt
X3BlcmlvZGljV2F2ZS5nZXQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5jcHAKaW5kZXggM2NiOTdiYWY5N2ZhLi45NDFjYjY2MTQ1YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAtMTMw
LDEyICsxMzAsMTIgQEAgdm9pZCBQYW5uZXJOb2RlOjpwcm9jZXNzKHNpemVfdCBmcmFtZXNUb1By
b2Nlc3MpCiAgICAgfQogCiAgICAgLy8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0
aGlzIGxvY2ssIHNvIHdlIHVzZSB0cnlMb2NrKCkgaW5zdGVhZC4KLSAgICBpZiAoIW1fcHJvY2Vz
c0xvY2sudHJ5TG9jaygpKSB7CisgICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9j
ZXNzTG9jayB9OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBUb28g
YmFkIC0gdHJ5TG9jaygpIGZhaWxlZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGNoYW5n
aW5nIHRoZSBwYW5uZXIuCiAgICAgICAgIGRlc3RpbmF0aW9uLT56ZXJvKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wcm9jZXNzTG9j
ayB9OwogCiAgICAgaWYgKChoYXNTYW1wbGVBY2N1cmF0ZVZhbHVlcygpIHx8IGxpc3RlbmVyKCku
aGFzU2FtcGxlQWNjdXJhdGVWYWx1ZXMoKSkgJiYgKHNob3VsZFVzZUFSYXRlKCkgfHwgbGlzdGVu
ZXIoKS5zaG91bGRVc2VBUmF0ZSgpKSkgewogICAgICAgICBwcm9jZXNzU2FtcGxlQWNjdXJhdGVW
YWx1ZXMoZGVzdGluYXRpb24sIHNvdXJjZSwgZnJhbWVzVG9Qcm9jZXNzKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3Bw
CmluZGV4IGVkMjQxYmNkMTcyOC4uNzJiZWFkZjRkNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vU2NyaXB0UHJvY2Vzc29yTm9kZS5jcHAKQEAgLTE1
OCwxMyArMTU4LDEzIEBAIHZvaWQgU2NyaXB0UHJvY2Vzc29yTm9kZTo6cHJvY2VzcyhzaXplX3Qg
ZnJhbWVzVG9Qcm9jZXNzKQogICAgIHVuc2lnbmVkIGJ1ZmZlckluZGV4ID0gdGhpcy0+YnVmZmVy
SW5kZXgoKTsKICAgICBBU1NFUlQoYnVmZmVySW5kZXggPCBidWZmZXJDb3VudCk7CiAKLSAgICBp
ZiAoIW1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdLnRyeUxvY2soKSkgeworICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIG1fYnVmZmVyTG9ja3NbYnVmZmVySW5kZXhdIH07CisgICAgaWYg
KCFsb2NrZXIudHJ5TG9jaygpKSB7CiAgICAgICAgIC8vIFdlJ3JlIGxhdGUgaW4gaGFuZGxpbmcg
dGhlIHByZXZpb3VzIHJlcXVlc3QuIFRoZSBtYWluIHRocmVhZCBtdXN0IGJlCiAgICAgICAgIC8v
IHZlcnkgYnVzeS4gVGhlIGJlc3Qgd2UgY2FuIGRvIGlzIGNsZWFyIG91dCB0aGUgYnVmZmVyIG91
cnNlbGYgaGVyZS4KICAgICAgICAgb3V0cHV0QnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9idWZmZXJMb2Nrc1tidWZm
ZXJJbmRleF0gfTsKICAgICAKICAgICBBdWRpb0J1ZmZlciogaW5wdXRCdWZmZXIgPSBtX2lucHV0
QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CiAgICAgQXVkaW9CdWZmZXIqIG91dHB1dEJ1ZmZl
ciA9IG1fb3V0cHV0QnVmZmVyc1tidWZmZXJJbmRleF0uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAppbmRl
eCA3MjdjOTAwNDhhZTYuLjM4ZDc3ZGI1NWI2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJQcm9jZXNzb3IuY3BwCkBAIC04NCwxMiAr
ODQsMTIgQEAgdm9pZCBXYXZlU2hhcGVyUHJvY2Vzc29yOjpwcm9jZXNzKGNvbnN0IEF1ZGlvQnVz
KiBzb3VyY2UsIEF1ZGlvQnVzKiBkZXN0aW5hdGlvbiwKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gVGhlIGF1ZGlvIHRocmVhZCBjYW4ndCBibG9jayBvbiB0aGlzIGxvY2ssIHNvIHdlIHVzZSB0
cnlMb2NrKCkgaW5zdGVhZC4KLSAgICBpZiAoIW1fcHJvY2Vzc0xvY2sudHJ5TG9jaygpKSB7Cisg
ICAgTG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9wcm9jZXNzTG9jayB9OworICAgIGlmICgh
bG9ja2VyLnRyeUxvY2soKSkgewogICAgICAgICAvLyBUb28gYmFkIC0gdHJ5TG9jaygpIGZhaWxl
ZC4gV2UgbXVzdCBiZSBpbiB0aGUgbWlkZGxlIG9mIGEgc2V0Q3VydmUoKSBjYWxsLgogICAgICAg
ICBkZXN0aW5hdGlvbi0+emVybygpOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIExvY2tl
ciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fcHJvY2Vzc0xvY2sgfTsKIAogICAgIC8vIEZvciBlYWNo
IGNoYW5uZWwgb2Ygb3VyIGlucHV0LCBwcm9jZXNzIHVzaW5nIHRoZSBjb3JyZXNwb25kaW5nIFdh
dmVTaGFwZXJEU1BLZXJuZWwgaW50byB0aGUgb3V0cHV0IGNoYW5uZWwuCiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IG1fa2VybmVscy5zaXplKCk7ICsraSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL0F1ZGlvRGVzdGluYXRpb24uaAppbmRleCA1ZTdmM2VjOTcyMTIu
LmJiY2I4NjhhZjEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
QXVkaW9EZXN0aW5hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL0F1
ZGlvRGVzdGluYXRpb24uaApAQCAtOTUsMTQgKzk1LDE0IEBAIGlubGluZSB2b2lkIEF1ZGlvRGVz
dGluYXRpb246OmNsZWFyQ2FsbGJhY2soKQogCiBpbmxpbmUgdm9pZCBBdWRpb0Rlc3RpbmF0aW9u
OjpjYWxsUmVuZGVyQ2FsbGJhY2soQXVkaW9CdXMqIHNvdXJjZUJ1cywgQXVkaW9CdXMqIGRlc3Rp
bmF0aW9uQnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzLCBjb25zdCBBdWRpb0lPUG9zaXRpb24m
IG91dHB1dFBvc2l0aW9uKQogewotICAgIGlmIChtX2NhbGxiYWNrTG9jay50cnlMb2NrKCkpIHsK
LSAgICAgICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9jYWxsYmFja0xvY2sgfTsKLSAg
ICAgICAgaWYgKG1fY2FsbGJhY2spIHsKLSAgICAgICAgICAgIG1fY2FsbGJhY2stPnJlbmRlcihz
b3VyY2VCdXMsIGRlc3RpbmF0aW9uQnVzLCBmcmFtZXNUb1Byb2Nlc3MsIG91dHB1dFBvc2l0aW9u
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQorICAgIExvY2tlciBsb2NrZXIgeyBE
ZWZlckxvY2ssIG1fY2FsbGJhY2tMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKSB7
CisgICAgICAgIGRlc3RpbmF0aW9uQnVzLT56ZXJvKCk7CisgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgZGVzdGluYXRpb25CdXMtPnplcm8oKTsKKworICAgIGlmIChtX2NhbGxiYWNrKQorICAg
ICAgICBtX2NhbGxiYWNrLT5yZW5kZXIoc291cmNlQnVzLCBkZXN0aW5hdGlvbkJ1cywgZnJhbWVz
VG9Qcm9jZXNzLCBvdXRwdXRQb3NpdGlvbik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3Bw
CmluZGV4IDYzNWE4Zjc3YjMxNC4uZTQ5Zjk3MTEzYmJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9SZXZlcmJDb252b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1JldmVyYkNvbnZvbHZlci5jcHAKQEAgLTIwMiw5ICsyMDIsOSBA
QCB2b2lkIFJldmVyYkNvbnZvbHZlcjo6cHJvY2Vzcyhjb25zdCBBdWRpb0NoYW5uZWwqIHNvdXJj
ZUNoYW5uZWwsIEF1ZGlvQ2hhbm5lbCogZAogICAgIC8vIHNpZ25hbCBmcm9tIHRpbWUgdG8gdGlt
ZSwgc2luY2Ugd2UnbGwgZ2V0IHRvIGl0IHRoZSBuZXh0IHRpbWUgd2UncmUgY2FsbGVkLiAgV2Un
cmUgY2FsbGVkIHJlcGVhdGVkbHkKICAgICAvLyBhbmQgZnJlcXVlbnRseSAoYXJvdW5kIGV2ZXJ5
IDNtcykuICBUaGUgYmFja2dyb3VuZCB0aHJlYWQgaXMgcHJvY2Vzc2luZyB3ZWxsIGludG8gdGhl
IGZ1dHVyZSBhbmQgaGFzIGEgY29uc2lkZXJhYmxlIGFtb3VudCBvZiAKICAgICAvLyBsZWV3YXkg
aGVyZS4uLgotICAgIGlmICghbV9iYWNrZ3JvdW5kVGhyZWFkTG9jay50cnlMb2NrKCkpCisgICAg
TG9ja2VyIGxvY2tlciB7IERlZmVyTG9jaywgbV9iYWNrZ3JvdW5kVGhyZWFkTG9jayB9OworICAg
IGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwotICAgIExvY2tlciBsb2Nr
ZXIgeyBBZG9wdExvY2ssIG1fYmFja2dyb3VuZFRocmVhZExvY2sgfTsKIAogICAgIG1fbW9yZUlu
cHV0QnVmZmVyZWQgPSB0cnVlOwogICAgIG1fYmFja2dyb3VuZFRocmVhZENvbmRpdGlvblZhcmlh
YmxlLm5vdGlmeU9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2F1ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKaW5kZXggMzBjNzc2NjBk
N2Y1Li41NTc2N2MxOTczNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1
ZGlvL2NvY29hL0F1ZGlvRGVzdGluYXRpb25Db2NvYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvQXVkaW9EZXN0aW5hdGlvbkNvY29hLmNwcApAQCAtMjE5LDEw
ICsyMTksMTAgQEAgT1NTdGF0dXMgQXVkaW9EZXN0aW5hdGlvbkNvY29hOjpyZW5kZXIoZG91Ymxl
IHNhbXBsZVRpbWUsIHVpbnQ2NF90IGhvc3RUaW1lLCBVSW4KICAgICB9CiAKICAgICAvLyBXaGVu
IHRoZXJlIGlzIGEgQXVkaW9Xb3JrbGV0LCB3ZSBkbyByZW5kZXJpbmcgb24gdGhlIEF1ZGlvV29y
a2xldFRocmVhZC4KLSAgICBpZiAoIW1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9j
aygpKQorICAgIExvY2tlciBsb2NrZXIgeyBEZWZlckxvY2ssIG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZExvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybiAt
MTsKIAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIG1fZGlzcGF0Y2hUb1JlbmRlclRo
cmVhZExvY2sgfTsKICAgICBpZiAoIW1fZGlzcGF0Y2hUb1JlbmRlclRocmVhZCkKICAgICAgICAg
cmVuZGVyT25SZW5kZXJpbmdUaGVhZElmUGxheWluZyhmcmFtZXNUb1JlbmRlcik7CiAgICAgZWxz
ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIv
QXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQcm92aWRlckdTdHJlYW1lci5jcHAKaW5kZXgg
YWU2MDJkYTJlMjA0Li4yMmYxMDkyZDc3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9BdWRpb1NvdXJjZVByb3ZpZGVyR1N0cmVhbWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvQXVkaW9Tb3VyY2VQ
cm92aWRlckdTdHJlYW1lci5jcHAKQEAgLTE2MCwxMCArMTYwLDEwIEBAIHZvaWQgQXVkaW9Tb3Vy
Y2VQcm92aWRlckdTdHJlYW1lcjo6Y29uZmlndXJlQXVkaW9CaW4oR3N0RWxlbWVudCogYXVkaW9C
aW4sIEdzdEVsCiB2b2lkIEF1ZGlvU291cmNlUHJvdmlkZXJHU3RyZWFtZXI6OnByb3ZpZGVJbnB1
dChBdWRpb0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jZXNzKQogewogICAgIEdTVF9UUkFD
RSgiRmV0Y2hpbmcgYnVmZmVycyBmcm9tIGFkYXB0ZXJzIik7Ci0gICAgaWYgKCFtX2FkYXB0ZXJM
b2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX2FkYXB0ZXJM
b2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX2FkYXB0ZXJMb2NrIH07CiAgICAgZm9yIChh
dXRvJiBpdCA6IG1fYWRhcHRlcnMpCiAgICAgICAgIGNvcHlHU3RyZWFtZXJCdWZmZXJzVG9BdWRp
b0NoYW5uZWwoaXQudmFsdWUuZ2V0KCksIGJ1cywgaXQua2V5IC0gMSwgZnJhbWVzVG9Qcm9jZXNz
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1l
ci9XZWJLaXRXZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIuY3BwCmlu
ZGV4IDBmZWE5MjVjNGYzMS4uZWVlYTg2YWU1ZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nc3RyZWFtZXIvV2ViS2l0V2ViQXVkaW9Tb3VyY2VHU3RyZWFtZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dzdHJlYW1lci9XZWJLaXRX
ZWJBdWRpb1NvdXJjZUdTdHJlYW1lci5jcHAKQEAgLTQwOCwxMSArNDA4LDEwIEBAIHN0YXRpYyB2
b2lkIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVySXRlcmF0aW9uKFdlYktpdFdlYkF1ZGlvU3JjKiBz
cmMpCiAgICAgICAgIHByaXYtPmRpc3BhdGNoRG9uZSA9IGZhbHNlOwogICAgIH0KIAotICAgIGlm
ICghcHJpdi0+ZGlzcGF0Y2hUb1JlbmRlclRocmVhZExvY2sudHJ5TG9jaygpKQorICAgIExvY2tl
ciBsb2NrZXIgeyBEZWZlckxvY2ssIHByaXYtPmRpc3BhdGNoVG9SZW5kZXJUaHJlYWRMb2NrIH07
CisgICAgaWYgKCFsb2NrZXIudHJ5TG9jaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBMb2Nr
ZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkTG9jayB9
OwotCiAgICAgaWYgKCFwcml2LT5kaXNwYXRjaFRvUmVuZGVyVGhyZWFkRnVuY3Rpb24pCiAgICAg
ICAgIHdlYktpdFdlYkF1ZGlvU3JjUmVuZGVyQW5kUHVzaEZyYW1lcyhHUmVmUHRyPEdzdEVsZW1l
bnQ+KEdTVF9FTEVNRU5UX0NBU1Qoc3JjKSksIFdURk1vdmUoKmNoYW5uZWxCdWZmZXJMaXN0KSk7
CiAgICAgZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFW
Rk9iakMubW0KaW5kZXggOTgzOWIzNzBhNzEzLi40N2M4MzkxNjg0YTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakMubW0KQEAgLTEwMiwxMSArMTAy
LDExIEBAIHZvaWQgQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM6OnByb3ZpZGVJbnB1dChBdWRp
b0J1cyogYnVzLCBzaXplX3QgZnJhbWVzVG9Qcm9jCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAoIW1fdGFwU3RvcmFnZS0+bG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9j
a2VyIHsgRGVmZXJMb2NrLCBtX3RhcFN0b3JhZ2UtPmxvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50
cnlMb2NrKCkpIHsKICAgICAgICAgYnVzLT56ZXJvKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0gICAgTG9ja2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV90YXBTdG9yYWdlLT5sb2NrIH07CiAK
ICAgICBpZiAoIW1fcmluZ0J1ZmZlcikgewogICAgICAgICBidXMtPnplcm8oKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlh
U3RyZWFtQVZGT2JqQy5tbQppbmRleCAxNzMwNTJhNzNiNTEuLjgxZTc1NzNlZDQyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU3RyZWFtQVZGT2JqQy5tbQpAQCAtMjU0LDkgKzI1NCw5IEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlTWVkaWFTdHJlYW1BVkZPYmpDOjplbnF1ZXVlVmlkZW9TYW1wbGUoTWVkaWFTYW1w
bGUmIHNhbXBsCiAgICAgaWYgKCFtX3Zpc2libGUpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
ICghbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXJMb2NrLnRyeUxvY2soKSkKKyAgICBMb2NrZXIg
bG9ja2VyIHsgRGVmZXJMb2NrLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKKyAg
ICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBMb2NrZXIgbG9j
a2VyIHsgQWRvcHRMb2NrLCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllckxvY2sgfTsKIAogICAg
IGlmICghbV9jYW5FbnF1ZXVlRGlzcGxheUxheWVyIHx8ICFtX3NhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllciB8fCBtX3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllci0+ZGlkRmFpbCgpKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9j
b2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVy
ZXJVbml0LmNwcAppbmRleCBlM2ExMjg5MTFlZDYuLmU2ZjJlNmUyZGY5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vY29jb2EvQXVkaW9NZWRpYVN0cmVh
bVRyYWNrUmVuZGVyZXJVbml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9jb2NvYS9BdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlclVuaXQuY3BwCkBAIC0x
NDEsMTAgKzE0MSwxMCBAQCB2b2lkIEF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6
cmV0cmlldmVGb3JtYXREZXNjcmlwdGlvbihDb21wbGV0aW9uSGFuZAogCiB2b2lkIEF1ZGlvTWVk
aWFTdHJlYW1UcmFja1JlbmRlcmVyVW5pdDo6dXBkYXRlUmVuZGVyU291cmNlc0lmTmVjZXNzYXJ5
KCkKIHsKLSAgICBpZiAoIW1fcGVuZGluZ1JlbmRlclNvdXJjZXNMb2NrLnRyeUxvY2soKSkKKyAg
ICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3BlbmRpbmdSZW5kZXJTb3VyY2VzTG9jayB9
OworICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9j
a2VyIGxvY2tlciB7IEFkb3B0TG9jaywgbV9wZW5kaW5nUmVuZGVyU291cmNlc0xvY2sgfTsKICAg
ICBpZiAoIW1faGFzUGVuZGluZ1JlbmRlclNvdXJjZXMpCiAgICAgICAgIHJldHVybjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCmluZGV4
IDk0YTU5MmI2MzI2Ni4uMGY2ZmRmMzQyN2E1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlck9yV29ya2xldFRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJPcldvcmtsZXRUaHJlYWQuY3BwCkBAIC0yMDcsNyArMjA3LDggQEAgdm9pZCBX
b3JrZXJPcldvcmtsZXRUaHJlYWQ6OnN0b3AoRnVuY3Rpb248dm9pZCgpPiYmIHN0b3BwZWRDYWxs
YmFjaykKICAgICAvLyBNdXRleCBwcm90ZWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBlbnN1cmUgdGhh
dCBtX3dvcmtlckdsb2JhbFNjb3BlIGlzbid0IGNoYW5nZWQgYnkKICAgICAvLyBXb3JrZXJUaHJl
YWQ6OndvcmtlclRocmVhZCgpIHdoaWxlIHdlJ3JlIGFjY2Vzc2luZyBpdC4gTm90ZSBhbHNvIHRo
YXQgc3RvcCgpIGNhbgogICAgIC8vIGJlIGNhbGxlZCBiZWZvcmUgbV93b3JrZXJHbG9iYWxTY29w
ZSBpcyBmdWxseSBjcmVhdGVkLgotICAgIGlmICghbV90aHJlYWRDcmVhdGlvbkFuZEdsb2JhbFNj
b3BlTG9jay50cnlMb2NrKCkpIHsKKyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBtX3Ro
cmVhZENyZWF0aW9uQW5kR2xvYmFsU2NvcGVMb2NrIH07CisgICAgaWYgKCFsb2NrZXIudHJ5TG9j
aygpKSB7CiAgICAgICAgIC8vIFRoZSB0aHJlYWQgaXMgc3RpbGwgc3RhcnRpbmcsIHNwaW4gdGhl
IHJ1bmxvb3AgYW5kIHRyeSBhZ2FpbiB0byBhdm9pZCBkZWFkbG9ja3MgaWYgdGhlIHdvcmtlciB0
aHJlYWQKICAgICAgICAgLy8gbmVlZHMgdG8gaW50ZXJhY3Qgd2l0aCB0aGUgbWFpbiB0aHJlYWQg
ZHVyaW5nIHN0YXJ0dXAuCiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMsIHN0b3BwZWRD
YWxsYmFjayA9IFdURk1vdmUoc3RvcHBlZENhbGxiYWNrKV0oKSBtdXRhYmxlIHsKQEAgLTIxNSw3
ICsyMTYsNiBAQCB2b2lkIFdvcmtlck9yV29ya2xldFRocmVhZDo6c3RvcChGdW5jdGlvbjx2b2lk
KCk+JiYgc3RvcHBlZENhbGxiYWNrKQogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KLSAgICBMb2NrZXIgbG9ja2VyIHsgQWRvcHRMb2NrLCBtX3RocmVhZENyZWF0aW9uQW5kR2xv
YmFsU2NvcGVMb2NrIH07CiAKICAgICAvLyBJZiB0aGUgdGhyZWFkIGlzIHN1c3BlbmRlZCwgcmVz
dW1lIGl0IG5vdyBzbyB0aGF0IHdlIGNhbiBkaXNwYXRjaCB0aGUgY2xlYW51cCB0YXNrcyBiZWxv
dy4KICAgICBpZiAobV9pc1N1c3BlbmRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCmluZGV4IDI4ZTljNjk4MmFj
NS4uNDhhMzY2MTY5YjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL0xpYldlYlJUQ0NvZGVjcy5jcHAKQEAgLTMyNCwxMSArMzI0LDEwIEBAIHZv
aWQgTGliV2ViUlRDQ29kZWNzOjpjb21wbGV0ZWREZWNvZGluZyhSVENEZWNvZGVySWRlbnRpZmll
ciBkZWNvZGVySWRlbnRpZmllciwKICAgICBpZiAoIWRlY29kZXIpCiAgICAgICAgIHJldHVybjsK
IAotICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlZEltYWdlQ2FsbGJhY2tMb2NrLnRyeUxvY2soKSkK
KyAgICBMb2NrZXIgbG9ja2VyIHsgRGVmZXJMb2NrLCBkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxs
YmFja0xvY2sgfTsKKyAgICBpZiAoIWxvY2tlci50cnlMb2NrKCkpCiAgICAgICAgIHJldHVybjsK
IAotICAgIExvY2tlciBsb2NrZXIgeyBBZG9wdExvY2ssIGRlY29kZXItPmRlY29kZWRJbWFnZUNh
bGxiYWNrTG9jayB9OwotCiAgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVkSW1hZ2VDYWxsYmFjaykK
ICAgICAgICAgcmV0dXJuOwogCkBAIC00OTIsMTEgKzQ5MSwxMCBAQCB2b2lkIExpYldlYlJUQ0Nv
ZGVjczo6Y29tcGxldGVkRW5jb2RpbmcoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlbnRpZmllciwg
SVBDOjpEYQogICAgIGlmICghZW5jb2RlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFl
bmNvZGVyLT5lbmNvZGVkSW1hZ2VDYWxsYmFja0xvY2sudHJ5TG9jaygpKQorICAgIExvY2tlciBs
b2NrZXIgeyBEZWZlckxvY2ssIGVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrTG9jayB9Owor
ICAgIGlmICghbG9ja2VyLnRyeUxvY2soKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTG9ja2Vy
IGxvY2tlciB7IEFkb3B0TG9jaywgZW5jb2Rlci0+ZW5jb2RlZEltYWdlQ2FsbGJhY2tMb2NrIH07
Ci0KICAgICBpZiAoIWVuY29kZXItPmVuY29kZWRJbWFnZUNhbGxiYWNrKQogICAgICAgICByZXR1
cm47CiAK
</data>
<flag name="commit-queue"
          id="450759"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>