<?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>239024</bug_id>
          
          <creation_ts>2022-04-08 22:01:19 -0700</creation_ts>
          <short_desc>Fix size computation in WebCore::StorageMap</short_desc>
          <delta_ts>2022-04-11 14:00:27 -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>Website Storage</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="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1859982</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-08 22:01:19 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859983</commentid>
    <comment_count>1</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-08 22:01:39 -0700</bug_when>
    <thetext>rdar://88249235</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1859986</commentid>
    <comment_count>2</comment_count>
      <attachid>457147</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-08 22:39:23 -0700</bug_when>
    <thetext>Created attachment 457147
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860167</commentid>
    <comment_count>3</comment_count>
      <attachid>457147</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-10 16:45:38 -0700</bug_when>
    <thetext>Comment on attachment 457147
Patch

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

r=me

&gt; Source/WebCore/storage/StorageMap.cpp:167
&gt; +        for (auto&amp; pair : m_impl-&gt;map)

Why not use `for (auto&amp; [key, value] : m_impl-&gt;map) {` like you did below?

&gt; Source/WebCore/storage/StorageMap.cpp:168
&gt; +            newSize += (pair.key.sizeInBytes() + pair.value.sizeInBytes());

Might need to be written like so for overflow checks:
newSize += (pair.key.sizeInBytes();
newSize += pair.value.sizeInBytes());

Otherwise, there might be an issue if `pair.key.sizeInBytes() + pair.value.sizeInBytes()` overflows, no?

&gt; Source/WebCore/storage/StorageMap.cpp:174
&gt; +        newSize += key.sizeInBytes() + value.sizeInBytes();

Same comment as above about overflows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860338</commentid>
    <comment_count>4</comment_count>
      <attachid>457270</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-11 10:23:07 -0700</bug_when>
    <thetext>Created attachment 457270
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860339</commentid>
    <comment_count>5</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-11 10:23:56 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; Comment on attachment 457147 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=457147&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/storage/StorageMap.cpp:167
&gt; &gt; +        for (auto&amp; pair : m_impl-&gt;map)
&gt; 
&gt; Why not use `for (auto&amp; [key, value] : m_impl-&gt;map) {` like you did below?

Updated.

&gt; 
&gt; &gt; Source/WebCore/storage/StorageMap.cpp:168
&gt; &gt; +            newSize += (pair.key.sizeInBytes() + pair.value.sizeInBytes());
&gt; 
&gt; Might need to be written like so for overflow checks:
&gt; newSize += (pair.key.sizeInBytes();
&gt; newSize += pair.value.sizeInBytes());
&gt; 
&gt; Otherwise, there might be an issue if `pair.key.sizeInBytes() +
&gt; pair.value.sizeInBytes()` overflows, no?

Yes, updated.

&gt; 
&gt; &gt; Source/WebCore/storage/StorageMap.cpp:174
&gt; &gt; +        newSize += key.sizeInBytes() + value.sizeInBytes();
&gt; 
&gt; Same comment as above about overflows.

Updated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860355</commentid>
    <comment_count>6</comment_count>
      <attachid>457273</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2022-04-11 11:11:17 -0700</bug_when>
    <thetext>Created attachment 457273
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860356</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-11 11:18:09 -0700</bug_when>
    <thetext>Patch 457270 does not build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1860396</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-11 14:00:24 -0700</bug_when>
    <thetext>Committed r292721 (249507@main): &lt;https://commits.webkit.org/249507@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 457273.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457147</attachid>
            <date>2022-04-08 22:39:23 -0700</date>
            <delta_ts>2022-04-11 10:23:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239024-20220408223923.patch</filename>
            <type>text/plain</type>
            <size>10448</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWQzODdkNThhNzY0YjI1
ZmM4MjA0ODVlYmQ3ZDMzMGZjYWY0OGMyMS4uMGEyM2M1Y2ZhZDc3NjBmN2JmMmM5NWQ3MjdiNmQy
M2E3ZTg2MzhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTA0LTA4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzaXplIGNvbXB1dGF0
aW9uIGluIFdlYkNvcmU6OlN0b3JhZ2VNYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTAyNAorICAgICAgICByZGFyOi8vODgyNDkyMzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB1c2UgY3VycmVu
dFNpemUgdG8gdHJhY2sgc2l6ZSBmb3IgU3RvcmFnZU1hcC4gVGhlcmUgYXJlIGEgZmV3IGlzc3Vl
cyBpbiBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoYXQgY2FuIG1ha2UKKyAgICAgICAgY3VycmVu
dFNpemUgaW5jb3JyZWN0IGFuZCBldmVuIGxlYWQgdG8gb3ZlcmZsb3cgaXNzdWVzOgorICAgICAg
ICAxLiBXaGVuIGNvbXB1dGluZyBzaXplIG9mIGtleSwgU3RvcmFnZU1hcCB1c2VzIHBhcmFtZXRl
ciBrZXkgaW5zdGVhZCBvZiBzdG9yZWQga2V5LiBUaGUgcHJvYmxlbSBpcyB0aGF0CisgICAgICAg
IHR3byBTdHJpbmdzIGNhbiBiZSBldmFsdWF0ZWQgdG8gZXF1YWwgYW5kIHRoZWlyIHNpemVJbkJ5
dGVzKCkgdmFsdWUgaXMgZGlmZmVyZW50LCB3aGVuIG9uZSBTdHJpbmcgaXMgOC1iaXQgYW5kIAor
ICAgICAgICB0aGUgb3RoZXIgaXMgMTYtYml0LiBJdCBtZWFucyByZW1vdmVJdGVtIG1heSBkZWNy
ZWFzZSBjdXJyZW50U2l6ZSBieSB3cm9uZyBudW1iZXIgKGUuZyBzZXRJdGVtKCkgd2l0aCBhbiA4
LWJpdCAKKyAgICAgICAga2V5LCBjb252ZXJ0aW5nIHRoZSBrZXkgdG8gMTYtYml0LCByZW1vdmVJ
dGVtKCkgd2l0aCB0aGUga2V5KS4gVG8gZml4IHRoaXMsIFN0b3JhZ2VNYXAgbm93IHVzZXMgc3Rv
cmVkIGtleSBmb3IgCisgICAgICAgIGNvbXB1dGF0aW9uLgorICAgICAgICAyLiBXaGVuIG1hcC50
YWtlKGtleSkgb3IgbWFwLmdldChrZXkpIHJldHVybnMgbnVsbCBzdHJpbmcsIFN0b3JhZ2VNYXAg
dGFrZXMgaXQgYXMgdGhlIGtleSBkb2VzIG5vdCBleGlzdCBhbmQgCisgICAgICAgIHdpbGwgbm90
IHVwZGF0ZSBjdXJyZW50U2l6ZSwgYnV0IHVzZXIgb2YgV2ViQ29yZTo6U3RvcmFnZU1hcCBtYXkg
c3RvcmUgbnVsbCBzdHJpbmcgYXMgdmFsdWUuIFRvIGZpeCB0aGlzLAorICAgICAgICBTdG9yYWdl
TWFwIG5vdyBjaGVjayBpZiBrZXkgZXhpc3RzIHdpdGggZmluZCgpIGZ1bmN0aW9uLgorICAgICAg
ICAzLiBTdG9yYWdlTWFwIG9ubHkgdXNlcyBDaGVja2VkVWludDMyIGluIHNldEl0ZW0oKSwgYnV0
IHJlbW92ZUl0ZW0oKSBhbmQgaW1wb3J0SXRlbSgpIG1heSBoYXZlIG92ZXJmbG93IGFzCisgICAg
ICAgIG1lbnRpb25lZCBhYm92ZSwgYW5kIHRoZXkgbWF5IG5vdCBiZSBjYXVnaHQgdW50aWwgc2V0
SXRlbSgpIGlzIGNhbGxlZC4gVG8gZml4IHRoaXMsIFN0b3JhZ2VNYXAgbm93IHVzZXMKKyAgICAg
ICAgQ2hlY2tlZFVpbnQzMiBpbiBhbGwgcGxhY2VzIHRoYXQgdXBkYXRlIGN1cnJlbnRTaXplLgor
CisgICAgICAgIE5ldyB0ZXN0OiBXS1dlYlZpZXcuTG9jYWxTdG9yYWdlTm9TaXplT3ZlcmZsb3cK
KworICAgICAgICAqIHN0b3JhZ2UvU3RvcmFnZU1hcC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dG9yYWdlTWFwOjpzZXRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYXA6OnJlbW92
ZUl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6aW1wb3J0SXRlbXMpOgorCiAy
MDIyLTA0LTA4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU2lt
cGxpZnkgLyBPcHRpbWl6ZSB0aGUgd2hpdGVzcGFjZSBjYWNoZSBpbXBsZW1lbnRhdGlvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKaW5kZXggMmI1ODM1ZGM0NmJmNmVmOTY1M2Fm
ZmRmMDRjZmUxYjNmMTNjNWY1ZC4uZDJkYTYwZDY3N2QzMWUwYzFlYTNhMWMzYWMyMGZhOWM0NTM5
ODU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTWFwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCkBAIC04OCwzMCArODgs
MjkgQEAgU3RyaW5nIFN0b3JhZ2VNYXA6OmdldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0
CiB2b2lkIFN0b3JhZ2VNYXA6OnNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUsIFN0cmluZyYgb2xkVmFsdWUsIGJvb2wmIHF1b3RhRXhjZXB0aW9uKQogewogICAg
IEFTU0VSVCghdmFsdWUuaXNOdWxsKCkpOwotICAgIHF1b3RhRXhjZXB0aW9uID0gZmFsc2U7Ci0K
LSAgICAvLyBJbXBsZW1lbnQgY29weS1vbi13cml0ZSBzZW1hbnRpY3MuCi0gICAgaWYgKG1faW1w
bC0+cmVmQ291bnQoKSA+IDEpCi0gICAgICAgIG1faW1wbCA9IG1faW1wbC0+Y29weSgpOwotCi0g
ICAgb2xkVmFsdWUgPSBtX2ltcGwtPm1hcC5nZXQoa2V5KTsKIAotICAgIC8vIFF1b3RhIHRyYWNr
aW5nLiBUaGlzIGlzIGRvbmUgaW4gYSBjb3VwbGUgb2Ygc3RlcHMgdG8ga2VlcCB0aGUgb3ZlcmZs
b3cgdHJhY2tpbmcgc2ltcGxlLgorICAgIHF1b3RhRXhjZXB0aW9uID0gZmFsc2U7CiAgICAgQ2hl
Y2tlZFVpbnQzMiBuZXdTaXplID0gbV9pbXBsLT5jdXJyZW50U2l6ZTsKLSAgICBuZXdTaXplIC09
IG9sZFZhbHVlLnNpemVJbkJ5dGVzKCk7Ci0gICAgbmV3U2l6ZSArPSB2YWx1ZS5zaXplSW5CeXRl
cygpOwotICAgIGlmIChvbGRWYWx1ZS5pc051bGwoKSkKKyAgICBhdXRvIGl0ZXIgPSBtX2ltcGwt
Pm1hcC5maW5kKGtleSk7CisgICAgaWYgKGl0ZXIgIT0gbV9pbXBsLT5tYXAuZW5kKCkpIHsKKyAg
ICAgICAgb2xkVmFsdWUgPSBpdGVyLT52YWx1ZTsKKyAgICAgICAgbmV3U2l6ZSAtPSBvbGRWYWx1
ZS5zaXplSW5CeXRlcygpOworICAgIH0gZWxzZSB7CisgICAgICAgIG9sZFZhbHVlID0gbnVsbFN0
cmluZygpOwogICAgICAgICBuZXdTaXplICs9IGtleS5zaXplSW5CeXRlcygpOworICAgIH0KKyAg
ICBuZXdTaXplICs9IHZhbHVlLnNpemVJbkJ5dGVzKCk7CiAgICAgaWYgKG1fcXVvdGFTaXplICE9
IG5vUXVvdGEgJiYgKG5ld1NpemUuaGFzT3ZlcmZsb3dlZCgpIHx8IG5ld1NpemUgPiBtX3F1b3Rh
U2l6ZSkpIHsKICAgICAgICAgcXVvdGFFeGNlcHRpb24gPSB0cnVlOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIG1faW1wbC0+Y3VycmVudFNpemUgPSBuZXdTaXplOwogCi0gICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz46OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBtX2ltcGwtPm1hcC5hZGQo
a2V5LCB2YWx1ZSk7Ci0gICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgYWRk
UmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IHZhbHVlOworICAgIC8vIEltcGxlbWVudCBjb3B5LW9u
LXdyaXRlIHNlbWFudGljcy4KKyAgICBpZiAobV9pbXBsLT5yZWZDb3VudCgpID4gMSkKKyAgICAg
ICAgbV9pbXBsID0gbV9pbXBsLT5jb3B5KCk7CiAKKyAgICBtX2ltcGwtPm1hcC5zZXQoa2V5LCB2
YWx1ZSk7CisgICAgbV9pbXBsLT5jdXJyZW50U2l6ZSA9IG5ld1NpemU7CiAgICAgaW52YWxpZGF0
ZUl0ZXJhdG9yKCk7CiB9CiAKQEAgLTEyNywxOSArMTI2LDIxIEBAIHZvaWQgU3RvcmFnZU1hcDo6
c2V0SXRlbUlnbm9yaW5nUXVvdGEoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFs
dWUpCiAKIHZvaWQgU3RvcmFnZU1hcDo6cmVtb3ZlSXRlbShjb25zdCBTdHJpbmcmIGtleSwgU3Ry
aW5nJiBvbGRWYWx1ZSkKIHsKKyAgICBvbGRWYWx1ZSA9IG51bGxTdHJpbmcoKTsKKyAgICBDaGVj
a2VkVWludDMyIG5ld1NpemUgPSBtX2ltcGwtPmN1cnJlbnRTaXplOworICAgIGF1dG8gaXRlciA9
IG1faW1wbC0+bWFwLmZpbmQoa2V5KTsKKyAgICBpZiAoaXRlciA9PSBtX2ltcGwtPm1hcC5lbmQo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIG9sZFZhbHVlID0gaXRlci0+dmFsdWU7CisgICAgbmV3
U2l6ZSA9IG5ld1NpemUgLSBpdGVyLT5rZXkuc2l6ZUluQnl0ZXMoKSAtIG9sZFZhbHVlLnNpemVJ
bkJ5dGVzKCk7CisgICAgCiAgICAgLy8gSW1wbGVtZW50IGNvcHktb24td3JpdGUgc2VtYW50aWNz
LgogICAgIGlmIChtX2ltcGwtPnJlZkNvdW50KCkgPiAxKQogICAgICAgICBtX2ltcGwgPSBtX2lt
cGwtPmNvcHkoKTsKIAotICAgIG9sZFZhbHVlID0gbV9pbXBsLT5tYXAudGFrZShrZXkpOwotICAg
IGlmIChvbGRWYWx1ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuOwotCisgICAgbV9pbXBsLT5t
YXAucmVtb3ZlKGl0ZXIpOworICAgIG1faW1wbC0+Y3VycmVudFNpemUgPSBuZXdTaXplOwogICAg
IGludmFsaWRhdGVJdGVyYXRvcigpOwotICAgIEFTU0VSVChtX2ltcGwtPmN1cnJlbnRTaXplIC0g
a2V5LnNpemVJbkJ5dGVzKCkgPD0gbV9pbXBsLT5jdXJyZW50U2l6ZSk7Ci0gICAgbV9pbXBsLT5j
dXJyZW50U2l6ZSAtPSBrZXkuc2l6ZUluQnl0ZXMoKTsKLSAgICBBU1NFUlQobV9pbXBsLT5jdXJy
ZW50U2l6ZSAtIG9sZFZhbHVlLnNpemVJbkJ5dGVzKCkgPD0gbV9pbXBsLT5jdXJyZW50U2l6ZSk7
Ci0gICAgbV9pbXBsLT5jdXJyZW50U2l6ZSAtPSBvbGRWYWx1ZS5zaXplSW5CeXRlcygpOwogfQog
CiB2b2lkIFN0b3JhZ2VNYXA6OmNsZWFyKCkKQEAgLTE2MCwyNiArMTYxLDIxIEBAIGJvb2wgU3Rv
cmFnZU1hcDo6Y29udGFpbnMoY29uc3QgU3RyaW5nJiBrZXkpIGNvbnN0CiAKIHZvaWQgU3RvcmFn
ZU1hcDo6aW1wb3J0SXRlbXMoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mJiBpdGVtcykKIHsKKyAg
ICBDaGVja2VkVWludDMyIG5ld1NpemUgPSBtX2ltcGwtPmN1cnJlbnRTaXplOwogICAgIGlmICht
X2ltcGwtPm1hcC5pc0VtcHR5KCkpIHsKLSAgICAgICAgLy8gRmFzdCBwYXRoLgogICAgICAgICBt
X2ltcGwtPm1hcCA9IFdURk1vdmUoaXRlbXMpOwotICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBt
X2ltcGwtPm1hcCkgewotICAgICAgICAgICAgQVNTRVJUKG1faW1wbC0+Y3VycmVudFNpemUgKyBw
YWlyLmtleS5zaXplSW5CeXRlcygpICsgcGFpci52YWx1ZS5zaXplSW5CeXRlcygpID49IG1faW1w
bC0+Y3VycmVudFNpemUpOwotICAgICAgICAgICAgbV9pbXBsLT5jdXJyZW50U2l6ZSArPSAocGFp
ci5rZXkuc2l6ZUluQnl0ZXMoKSArIHBhaXIudmFsdWUuc2l6ZUluQnl0ZXMoKSk7Ci0gICAgICAg
IH0KKyAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9pbXBsLT5tYXApCisgICAgICAgICAgICBu
ZXdTaXplICs9IChwYWlyLmtleS5zaXplSW5CeXRlcygpICsgcGFpci52YWx1ZS5zaXplSW5CeXRl
cygpKTsKKyAgICAgICAgbV9pbXBsLT5jdXJyZW50U2l6ZSA9IG5ld1NpemU7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBpdGVtcykgewotICAgICAgICBh
dXRvJiBrZXkgPSBpdGVtLmtleTsKLSAgICAgICAgYXV0byYgdmFsdWUgPSBpdGVtLnZhbHVlOwot
Ci0gICAgICAgIEFTU0VSVChtX2ltcGwtPmN1cnJlbnRTaXplICsga2V5LnNpemVJbkJ5dGVzKCkg
KyB2YWx1ZS5zaXplSW5CeXRlcygpID49IG1faW1wbC0+Y3VycmVudFNpemUpOwotICAgICAgICBt
X2ltcGwtPmN1cnJlbnRTaXplICs9IChrZXkuc2l6ZUluQnl0ZXMoKSArIHZhbHVlLnNpemVJbkJ5
dGVzKCkpOwotCisgICAgZm9yIChhdXRvJiBba2V5LCB2YWx1ZV0gOiBpdGVtcykgeworICAgICAg
ICBuZXdTaXplICs9IGtleS5zaXplSW5CeXRlcygpICsgdmFsdWUuc2l6ZUluQnl0ZXMoKTsKICAg
ICAgICAgYXV0byByZXN1bHQgPSBtX2ltcGwtPm1hcC5hZGQoV1RGTW92ZShrZXkpLCBXVEZNb3Zl
KHZhbHVlKSk7Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQuaXNOZXdFbnRy
eSk7IC8vIFRydWUgaWYgdGhlIGtleSBkaWRuJ3QgZXhpc3QgcHJldmlvdXNseS4KKyAgICAgICAg
QVNTRVJUX1VOVVNFRChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsKICAgICB9CisgICAgbV9p
bXBsLT5jdXJyZW50U2l6ZSA9IG5ld1NpemU7CiB9CiAKIFJlZjxTdG9yYWdlTWFwOjpJbXBsPiBT
dG9yYWdlTWFwOjpJbXBsOjpjb3B5KCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBjNzIxMzMxNWZiN2JiN2E1ZDg2NGNhODI5YjkzM2Ix
MDU3NzM1Y2NjLi42YWE4YTE0ZmQwZDhkODAyOTIwOGI2ZWE0OWRjZTQxMTdiMmM1YmVjIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMjItMDQtMDggIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgRml4IHNpemUgY29tcHV0YXRpb24gaW4gV2ViQ29yZTo6U3RvcmFnZU1hcAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5MDI0CisgICAgICAg
IHJkYXI6Ly84ODI0OTIzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQ
ZXJzaXN0ZW5jZS5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTA0LTA4ICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWVyZ2UtUXVldWVdIENyZWF0
ZSBzZXBlcmF0ZSBxdWV1ZSBmb3IgdW5zYWZlIHZlcnNpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNp
c3RlbmNlLm1tCmluZGV4IDA5M2ZjZjhhMjg0MGFiOWY0NzRhMzM3MTZmYmE2MWRkM2E4ZWNmNzIu
LjAyNTI0MzAyZmJkZmNhODNkYWUyYWE0ZWVhZmQzODlhYWFjM2I2MTkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVu
Y2UubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VQZXJzaXN0ZW5jZS5tbQpAQCAtNDU0LDYgKzQ1NCw2MiBAQCBURVNUKFdLV2ViVmlldywg
TG9jYWxTdG9yYWdlR3JvdXApCiAgICAgcnVuVGVzdChmYWxzZSk7CiB9CiAKK1RFU1QoV0tXZWJW
aWV3LCBMb2NhbFN0b3JhZ2VOb1NpemVPdmVyZmxvdykKK3sKKyAgICByZWFkeVRvQ29udGludWUg
PSBmYWxzZTsKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1v
dmVEYXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1v
ZGlmaWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsK
KyAgICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisKKyAgICBOU1N0cmluZyAqaHRtbFN0
cmluZyA9IEAiPHNjcmlwdD4gXAorICAgICAgICBjb25zdCBrZXkgPSAnXHUwMEZGXHUwMEZGJzsg
XAorICAgICAgICBmdW5jdGlvbiBvblN0b3JhZ2UoKSB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhh
bmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdzdG9yYWdlJyk7IH0gXAorICAgICAgICBm
dW5jdGlvbiBzZXRJdGVtKCkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksICd2YWx1ZScpOyB9
IFwKKyAgICAgICAgZnVuY3Rpb24gcmVtb3ZlSXRlbSgpIHsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0
ZW0obG9jYWxTdG9yYWdlLmtleSgwKSk7IH0gXAorICAgICAgICBmdW5jdGlvbiBnZXRJdGVtKCkg
eyByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSA/IGxvY2FsU3RvcmFnZS5nZXRJdGVt
KGtleSkgOiAnW251bGxdJzsgfSBcCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdz
dG9yYWdlJywgb25TdG9yYWdlKTtcCisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdldEl0ZW0oKSk7IFwKKyAgICAgICAgPC9zY3Jp
cHQ+IjsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbTG9jYWxTdG9yYWdlTWVzc2FnZUhh
bmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlv
biB1c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIu
Z2V0KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2
MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxv
YWRIVE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0
dHA6Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJbbnVsbF0iLCBbbGFzdFNj
cmlwdE1lc3NhZ2UgYm9keV0pOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwor
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2V0SXRlbSgpIiBjb21wbGV0aW9u
SGFuZGxlcjpeKE5TTnVtYmVyICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVz
c2FnZSA9IGZhbHNlOworICAgIAorICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFkb3B0TlMoW1tX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkg
Y29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29uZFdlYlZpZXcg
bG9hZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAi
aHR0cDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
KworICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInJlbW92ZUl0ZW0oKSIg
Y29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3RvcmFnZSIsIFts
YXN0U2NyaXB0TWVzc2FnZSBib2R5XSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFs
c2U7CisKKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZXRJdGVtKCki
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZy
ZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInN0b3JhZ2UiLCBb
bGFzdFNjcmlwdE1lc3NhZ2UgYm9keV0pOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZh
bHNlOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0SXRlbSgpIiBjb21w
bGV0aW9uSGFuZGxlcjpeKE5TU3RyaW5nKiByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAg
ICAgIEVYUEVDVF9XS19TVFJFUSgidmFsdWUiLCBbcmVzdWx0IFVURjhTdHJpbmddKTsKKyAgICAg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cit9CisKICNpZiBQTEFURk9S
TShJT1NfRkFNSUxZKQogCiBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRGlyZWN0b3J5RXhj
bHVkZWRGcm9tQmFja3VwKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457270</attachid>
            <date>2022-04-11 10:23:07 -0700</date>
            <delta_ts>2022-04-11 11:18:09 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239024-20220411102306.patch</filename>
            <type>text/plain</type>
            <size>10616</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmNzQxY2Q1YjRhM2E0
MGU1Y2RmNjgyZWJhMzFlYWJkNGJjYzIyMi4uNzIyYmEyOGY0MzUyNGI4NzQ2MzczNjVmMjNhOGEx
MGU0YmE0ZTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTA0LTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzaXplIGNvbXB1dGF0
aW9uIGluIFdlYkNvcmU6OlN0b3JhZ2VNYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTAyNAorICAgICAgICByZGFyOi8vODgyNDkyMzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBXZSB1c2UgY3VycmVudFNp
emUgdG8gdHJhY2sgc2l6ZSBmb3IgU3RvcmFnZU1hcC4gVGhlcmUgYXJlIGEgZmV3IGlzc3VlcyBp
biBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoYXQgY2FuIG1ha2UKKyAgICAgICAgY3VycmVudFNp
emUgaW5jb3JyZWN0IGFuZCBtYXkgbGVhZCB0byBvdmVyZmxvdzoKKyAgICAgICAgMS4gV2hlbiBj
b21wdXRpbmcgc2l6ZSBvZiBrZXksIFN0b3JhZ2VNYXAgdXNlcyBwYXJhbWV0ZXIga2V5IGluc3Rl
YWQgb2Ygc3RvcmVkIGtleS4gVGhlIHByb2JsZW0gaXMgdGhhdAorICAgICAgICB0d28gU3RyaW5n
cyBjYW4gYmUgZXZhbHVhdGVkIHRvIGVxdWFsIHdoaWxlIHRoZWlyIHNpemVJbkJ5dGVzKCkgdmFs
dWUgaXMgZGlmZmVyZW50LCB3aGVuIG9uZSBTdHJpbmcgaXMgOC1iaXQgYW5kIAorICAgICAgICB0
aGUgb3RoZXIgaXMgMTYtYml0LiBUaGF0IG1lYW5zIHJlbW92ZUl0ZW0oKSBtYXkgZGVjcmVhc2Ug
Y3VycmVudFNpemUgYnkgd3JvbmcgbnVtYmVyIChlLmcgc2V0SXRlbSgpIHdpdGggYW4gCisgICAg
ICAgIDgtYml0IGtleSwgY29udmVydGluZyB0aGUga2V5IHRvIDE2LWJpdCwgcmVtb3ZlSXRlbSgp
IHdpdGggdGhlIGtleSkuIFRvIGZpeCB0aGlzLCBTdG9yYWdlTWFwIG5vdyBhbHdheXMgdXNlcyAK
KyAgICAgICAgc3RvcmVkIGtleSBmb3IgY29tcHV0YXRpb24uCisgICAgICAgIDIuIFdoZW4gbWFw
LnRha2Uoa2V5KSBvciBtYXAuZ2V0KGtleSkgcmV0dXJucyBudWxsIHN0cmluZywgU3RvcmFnZU1h
cCB0YWtlcyBpdCBhcyB0aGUga2V5IGRvZXMgbm90IGV4aXN0IGFuZCAKKyAgICAgICAgd2lsbCBu
b3QgY29ycmVjdGx5IHVwZGF0ZSBjdXJyZW50U2l6ZSwgYnV0IHVzZXIgb2YgV2ViQ29yZTo6U3Rv
cmFnZU1hcCBtYXkgc3RvcmUgbnVsbCBzdHJpbmcgYXMgdmFsdWUuIFRvIGZpeCAKKyAgICAgICAg
dGhpcywgU3RvcmFnZU1hcCBub3cgY2hlY2sgaWYga2V5IGV4aXN0cyB3aXRoIGZpbmQoKSBmdW5j
dGlvbi4KKyAgICAgICAgMy4gU3RvcmFnZU1hcCBvbmx5IHVzZXMgQ2hlY2tlZFVpbnQzMiBpbiBz
ZXRJdGVtKCksIGJ1dCByZW1vdmVJdGVtKCkgYW5kIGltcG9ydEl0ZW0oKSBtYXkgY2F1c2Ugb3Zl
cmZsb3cgaW4gCisgICAgICAgIGN1cnJlbnRTaXplIGFzIG1lbnRpb25lZCBhYm92ZSwgYW5kIHRo
ZSBlcnJvciB3aWxsIG5vdCBiZSBjYXVnaHQgdW50aWwgc2V0SXRlbSgpIGlzIGNhbGxlZC4gVG8g
Zml4IHRoaXMsIAorICAgICAgICBTdG9yYWdlTWFwIG5vdyB1c2VzIENoZWNrZWRVaW50MzIgaW4g
YWxsIHBsYWNlcyB0aGF0IHVwZGF0ZSBjdXJyZW50U2l6ZS4KKworICAgICAgICBOZXcgdGVzdDog
V0tXZWJWaWV3LkxvY2FsU3RvcmFnZU5vU2l6ZU92ZXJmbG93CisKKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6c2V0SXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VNYXA6OmltcG9ydEl0ZW1zKToKKwogMjAyMi0wNC0xMSAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gQWN0
aXZhdGUgU1ZHIHRyYW5zZm9ybSBzdXBwb3J0IHRocm91Z2ggbGF5ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTWFwLmNwcAppbmRleCAyYjU4MzVkYzQ2YmY2ZWY5NjUzYWZmZGYwNGNmZTFi
M2YxM2M1ZjVkLi5mNzY2OTFjMGRkOTVlZGQ5YzIwOWY0N2Q2ZmE0YTVjMDliNDRmNDhhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKQEAgLTg4LDMwICs4OCwyOSBAQCBTdHJp
bmcgU3RvcmFnZU1hcDo6Z2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKIHZvaWQgU3Rv
cmFnZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
U3RyaW5nJiBvbGRWYWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKCF2
YWx1ZS5pc051bGwoKSk7Ci0gICAgcXVvdGFFeGNlcHRpb24gPSBmYWxzZTsKIAotICAgIC8vIElt
cGxlbWVudCBjb3B5LW9uLXdyaXRlIHNlbWFudGljcy4KLSAgICBpZiAobV9pbXBsLT5yZWZDb3Vu
dCgpID4gMSkKLSAgICAgICAgbV9pbXBsID0gbV9pbXBsLT5jb3B5KCk7Ci0KLSAgICBvbGRWYWx1
ZSA9IG1faW1wbC0+bWFwLmdldChrZXkpOwotCi0gICAgLy8gUXVvdGEgdHJhY2tpbmcuIFRoaXMg
aXMgZG9uZSBpbiBhIGNvdXBsZSBvZiBzdGVwcyB0byBrZWVwIHRoZSBvdmVyZmxvdyB0cmFja2lu
ZyBzaW1wbGUuCisgICAgcXVvdGFFeGNlcHRpb24gPSBmYWxzZTsKICAgICBDaGVja2VkVWludDMy
IG5ld1NpemUgPSBtX2ltcGwtPmN1cnJlbnRTaXplOwotICAgIG5ld1NpemUgLT0gb2xkVmFsdWUu
c2l6ZUluQnl0ZXMoKTsKLSAgICBuZXdTaXplICs9IHZhbHVlLnNpemVJbkJ5dGVzKCk7Ci0gICAg
aWYgKG9sZFZhbHVlLmlzTnVsbCgpKQorICAgIGF1dG8gaXRlciA9IG1faW1wbC0+bWFwLmZpbmQo
a2V5KTsKKyAgICBpZiAoaXRlciAhPSBtX2ltcGwtPm1hcC5lbmQoKSkgeworICAgICAgICBvbGRW
YWx1ZSA9IGl0ZXItPnZhbHVlOworICAgICAgICBuZXdTaXplIC09IG9sZFZhbHVlLnNpemVJbkJ5
dGVzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb2xkVmFsdWUgPSBudWxsU3RyaW5nKCk7CiAg
ICAgICAgIG5ld1NpemUgKz0ga2V5LnNpemVJbkJ5dGVzKCk7CisgICAgfQorICAgIG5ld1NpemUg
Kz0gdmFsdWUuc2l6ZUluQnl0ZXMoKTsKICAgICBpZiAobV9xdW90YVNpemUgIT0gbm9RdW90YSAm
JiAobmV3U2l6ZS5oYXNPdmVyZmxvd2VkKCkgfHwgbmV3U2l6ZSA+IG1fcXVvdGFTaXplKSkgewog
ICAgICAgICBxdW90YUV4Y2VwdGlvbiA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgbV9pbXBsLT5jdXJyZW50U2l6ZSA9IG5ld1NpemU7CiAKLSAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPjo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1faW1wbC0+bWFwLmFkZChrZXksIHZhbHVl
KTsKLSAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gdmFsdWU7CisgICAgLy8gSW1wbGVtZW50IGNvcHktb24td3JpdGUgc2Vt
YW50aWNzLgorICAgIGlmIChtX2ltcGwtPnJlZkNvdW50KCkgPiAxKQorICAgICAgICBtX2ltcGwg
PSBtX2ltcGwtPmNvcHkoKTsKIAorICAgIG1faW1wbC0+bWFwLnNldChrZXksIHZhbHVlKTsKKyAg
ICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKICAgICBpbnZhbGlkYXRlSXRlcmF0b3Io
KTsKIH0KIApAQCAtMTI3LDE5ICsxMjYsMjEgQEAgdm9pZCBTdG9yYWdlTWFwOjpzZXRJdGVtSWdu
b3JpbmdRdW90YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogdm9p
ZCBTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcmIG9sZFZh
bHVlKQogeworICAgIG9sZFZhbHVlID0gbnVsbFN0cmluZygpOworICAgIENoZWNrZWRVaW50MzIg
bmV3U2l6ZSA9IG1faW1wbC0+Y3VycmVudFNpemU7CisgICAgYXV0byBpdGVyID0gbV9pbXBsLT5t
YXAuZmluZChrZXkpOworICAgIGlmIChpdGVyID09IG1faW1wbC0+bWFwLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgb2xkVmFsdWUgPSBpdGVyLT52YWx1ZTsKKyAgICBuZXdTaXplID0gbmV3
U2l6ZSAtIGl0ZXItPmtleS5zaXplSW5CeXRlcygpIC0gb2xkVmFsdWUuc2l6ZUluQnl0ZXMoKTsK
KwogICAgIC8vIEltcGxlbWVudCBjb3B5LW9uLXdyaXRlIHNlbWFudGljcy4KICAgICBpZiAobV9p
bXBsLT5yZWZDb3VudCgpID4gMSkKICAgICAgICAgbV9pbXBsID0gbV9pbXBsLT5jb3B5KCk7CiAK
LSAgICBvbGRWYWx1ZSA9IG1faW1wbC0+bWFwLnRha2Uoa2V5KTsKLSAgICBpZiAob2xkVmFsdWUu
aXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQorICAgIG1faW1wbC0+bWFwLnJlbW92ZShpdGVy
KTsKKyAgICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKICAgICBpbnZhbGlkYXRlSXRl
cmF0b3IoKTsKLSAgICBBU1NFUlQobV9pbXBsLT5jdXJyZW50U2l6ZSAtIGtleS5zaXplSW5CeXRl
cygpIDw9IG1faW1wbC0+Y3VycmVudFNpemUpOwotICAgIG1faW1wbC0+Y3VycmVudFNpemUgLT0g
a2V5LnNpemVJbkJ5dGVzKCk7Ci0gICAgQVNTRVJUKG1faW1wbC0+Y3VycmVudFNpemUgLSBvbGRW
YWx1ZS5zaXplSW5CeXRlcygpIDw9IG1faW1wbC0+Y3VycmVudFNpemUpOwotICAgIG1faW1wbC0+
Y3VycmVudFNpemUgLT0gb2xkVmFsdWUuc2l6ZUluQnl0ZXMoKTsKIH0KIAogdm9pZCBTdG9yYWdl
TWFwOjpjbGVhcigpCkBAIC0xNjAsMjYgKzE2MSwyNCBAQCBib29sIFN0b3JhZ2VNYXA6OmNvbnRh
aW5zKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAogCiB2b2lkIFN0b3JhZ2VNYXA6OmltcG9ydEl0
ZW1zKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgaXRlbXMpCiB7CisgICAgQ2hlY2tlZFVpbnQz
MiBuZXdTaXplID0gbV9pbXBsLT5jdXJyZW50U2l6ZTsKICAgICBpZiAobV9pbXBsLT5tYXAuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIC8vIEZhc3QgcGF0aC4KICAgICAgICAgbV9pbXBsLT5tYXAgPSBX
VEZNb3ZlKGl0ZW1zKTsKLSAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9pbXBsLT5tYXApIHsK
LSAgICAgICAgICAgIEFTU0VSVChtX2ltcGwtPmN1cnJlbnRTaXplICsgcGFpci5rZXkuc2l6ZUlu
Qnl0ZXMoKSArIHBhaXIudmFsdWUuc2l6ZUluQnl0ZXMoKSA+PSBtX2ltcGwtPmN1cnJlbnRTaXpl
KTsKLSAgICAgICAgICAgIG1faW1wbC0+Y3VycmVudFNpemUgKz0gKHBhaXIua2V5LnNpemVJbkJ5
dGVzKCkgKyBwYWlyLnZhbHVlLnNpemVJbkJ5dGVzKCkpOworICAgICAgICBmb3IgKGF1dG8mIFtr
ZXksIHZhbHVlXSA6IG1faW1wbC0+bWFwKSB7CisgICAgICAgICAgICBuZXdTaXplICs9IGtleS5z
aXplSW5CeXRlcygpOworICAgICAgICAgICAgbmV3U2l6ZSArPSB2YWx1ZS5zaXplSW5CeXRlcygp
KTsKICAgICAgICAgfQorICAgICAgICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGZvciAoYXV0byYgaXRlbSA6IGl0ZW1zKSB7Ci0g
ICAgICAgIGF1dG8mIGtleSA9IGl0ZW0ua2V5OwotICAgICAgICBhdXRvJiB2YWx1ZSA9IGl0ZW0u
dmFsdWU7Ci0KLSAgICAgICAgQVNTRVJUKG1faW1wbC0+Y3VycmVudFNpemUgKyBrZXkuc2l6ZUlu
Qnl0ZXMoKSArIHZhbHVlLnNpemVJbkJ5dGVzKCkgPj0gbV9pbXBsLT5jdXJyZW50U2l6ZSk7Ci0g
ICAgICAgIG1faW1wbC0+Y3VycmVudFNpemUgKz0gKGtleS5zaXplSW5CeXRlcygpICsgdmFsdWUu
c2l6ZUluQnl0ZXMoKSk7Ci0KKyAgICBmb3IgKGF1dG8mIFtrZXksIHZhbHVlXSA6IGl0ZW1zKSB7
CisgICAgICAgIG5ld1NpemUgKz0ga2V5LnNpemVJbkJ5dGVzKCk7CisgICAgICAgIG5ld1NpemUg
Kz0gdmFsdWUuc2l6ZUluQnl0ZXMoKSk7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9pbXBsLT5t
YXAuYWRkKFdURk1vdmUoa2V5KSwgV1RGTW92ZSh2YWx1ZSkpOwotICAgICAgICBBU1NFUlRfVU5V
U0VEKHJlc3VsdCwgcmVzdWx0LmlzTmV3RW50cnkpOyAvLyBUcnVlIGlmIHRoZSBrZXkgZGlkbid0
IGV4aXN0IHByZXZpb3VzbHkuCisgICAgICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0LCByZXN1bHQu
aXNOZXdFbnRyeSk7CiAgICAgfQorICAgIG1faW1wbC0+Y3VycmVudFNpemUgPSBuZXdTaXplOwog
fQogCiBSZWY8U3RvcmFnZU1hcDo6SW1wbD4gU3RvcmFnZU1hcDo6SW1wbDo6Y29weSgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzVi
ZGM5MmUyNzI4YzQ1NGFhZTM3NmU2MzE1ZTYwNWYyZWRhMWMwOS4uNDg4MzAwYzk2YTk2MzBhZWNh
YWRlNTgzOWMyMTg1OGRhNTVjMmFmZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTA0LTExICBTaWh1aSBMaXUg
IDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzaXplIGNvbXB1dGF0aW9uIGlu
IFdlYkNvcmU6OlN0b3JhZ2VNYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIzOTAyNAorICAgICAgICByZGFyOi8vODgyNDkyMzUKKworICAgICAgICBS
ZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW06CisgICAgICAgIChURVNUKToK
KwogMjAyMi0wNC0xMSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5jb20+CiAK
ICAgICAgICAgVGVzdFJ1bm5lcuKAmXMgY2FsbHMgdG8gW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyIGFjY2Vzc2liaWxpdHlBcnJheUF0dHJpYnV0ZUNvdW50Ol0gbmVlZCB0byBiZSBkaXNw
YXRjaCB0byB0aGUgQVggc2Vjb25kYXJ5IHRocmVhZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2UubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3Rl
bmNlLm1tCmluZGV4IDA5M2ZjZjhhMjg0MGFiOWY0NzRhMzM3MTZmYmE2MWRkM2E4ZWNmNzIuLjAy
NTI0MzAyZmJkZmNhODNkYWUyYWE0ZWVhZmQzODlhYWFjM2I2MTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlUGVyc2lzdGVuY2Uu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3Jh
Z2VQZXJzaXN0ZW5jZS5tbQpAQCAtNDU0LDYgKzQ1NCw2MiBAQCBURVNUKFdLV2ViVmlldywgTG9j
YWxTdG9yYWdlR3JvdXApCiAgICAgcnVuVGVzdChmYWxzZSk7CiB9CiAKK1RFU1QoV0tXZWJWaWV3
LCBMb2NhbFN0b3JhZ2VOb1NpemVPdmVyZmxvdykKK3sKKyAgICByZWFkeVRvQ29udGludWUgPSBm
YWxzZTsKKyAgICBbW1dLV2Vic2l0ZURhdGFTdG9yZSBkZWZhdWx0RGF0YVN0b3JlXSByZW1vdmVE
YXRhT2ZUeXBlczpbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbFdlYnNpdGVEYXRhVHlwZXNdIG1vZGlm
aWVkU2luY2U6W05TRGF0ZSBkaXN0YW50UGFzdF0gY29tcGxldGlvbkhhbmRsZXI6XigpIHsKKyAg
ICAgICAgcmVhZHlUb0NvbnRpbnVlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlYWR5VG9Db250aW51ZSk7CisKKyAgICBOU1N0cmluZyAqaHRtbFN0cmlu
ZyA9IEAiPHNjcmlwdD4gXAorICAgICAgICBjb25zdCBrZXkgPSAnXHUwMEZGXHUwMEZGJzsgXAor
ICAgICAgICBmdW5jdGlvbiBvblN0b3JhZ2UoKSB7IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKCdzdG9yYWdlJyk7IH0gXAorICAgICAgICBmdW5j
dGlvbiBzZXRJdGVtKCkgeyBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksICd2YWx1ZScpOyB9IFwK
KyAgICAgICAgZnVuY3Rpb24gcmVtb3ZlSXRlbSgpIHsgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0o
bG9jYWxTdG9yYWdlLmtleSgwKSk7IH0gXAorICAgICAgICBmdW5jdGlvbiBnZXRJdGVtKCkgeyBy
ZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oa2V5KSA/IGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtl
eSkgOiAnW251bGxdJzsgfSBcCisgICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdzdG9y
YWdlJywgb25TdG9yYWdlKTtcCisgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGdldEl0ZW0oKSk7IFwKKyAgICAgICAgPC9zY3JpcHQ+
IjsKKyAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5TKFtbTG9jYWxTdG9yYWdlTWVzc2FnZUhhbmRs
ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0
KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CisKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFt3ZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6
Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJbbnVsbF0iLCBbbGFzdFNjcmlw
dE1lc3NhZ2UgYm9keV0pOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworCisg
ICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2V0SXRlbSgpIiBjb21wbGV0aW9uSGFu
ZGxlcjpeKE5TTnVtYmVyICpyZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAgIHJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2Fn
ZSA9IGZhbHNlOworICAgIAorICAgIGF1dG8gc2Vjb25kV2ViVmlldyA9IGFkb3B0TlMoW1tXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgW3NlY29uZFdlYlZpZXcgbG9h
ZEhUTUxTdHJpbmc6aHRtbFN0cmluZyBiYXNlVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0
cDovL3dlYmtpdC5vcmciXV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInZhbHVlIiwgW2xhc3RTY3Jp
cHRNZXNzYWdlIGJvZHldKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKwor
ICAgIFtzZWNvbmRXZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInJlbW92ZUl0ZW0oKSIgY29t
cGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkU2NyaXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAic3RvcmFnZSIsIFtsYXN0
U2NyaXB0TWVzc2FnZSBib2R5XSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7
CisKKyAgICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJzZXRJdGVtKCkiIGNv
bXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInN0b3JhZ2UiLCBbbGFz
dFNjcmlwdE1lc3NhZ2UgYm9keV0pOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNl
OworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0SXRlbSgpIiBjb21wbGV0
aW9uSGFuZGxlcjpeKE5TU3RyaW5nKiByZXN1bHQsIE5TRXJyb3IgKmVycm9yKSB7CisgICAgICAg
IEVYUEVDVF9XS19TVFJFUSgidmFsdWUiLCBbcmVzdWx0IFVURjhTdHJpbmddKTsKKyAgICAgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJnJlY2VpdmVkU2NyaXB0TWVzc2FnZSk7Cit9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogCiBURVNUKFdLV2ViVmlldywgTG9jYWxTdG9yYWdlRGlyZWN0b3J5RXhjbHVk
ZWRGcm9tQmFja3VwKQo=
</data>
<flag name="commit-queue"
          id="485827"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>457273</attachid>
            <date>2022-04-11 11:11:17 -0700</date>
            <delta_ts>2022-04-11 14:00:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-239024-20220411111116.patch</filename>
            <type>text/plain</type>
            <size>10614</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmNzQxY2Q1YjRhM2E0
MGU1Y2RmNjgyZWJhMzFlYWJkNGJjYzIyMi4uNzIyYmEyOGY0MzUyNGI4NzQ2MzczNjVmMjNhOGEx
MGU0YmE0ZTEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTA0LTExICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpeCBzaXplIGNvbXB1dGF0
aW9uIGluIFdlYkNvcmU6OlN0b3JhZ2VNYXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzOTAyNAorICAgICAgICByZGFyOi8vODgyNDkyMzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAgICBXZSB1c2UgY3VycmVudFNp
emUgdG8gdHJhY2sgc2l6ZSBmb3IgU3RvcmFnZU1hcC4gVGhlcmUgYXJlIGEgZmV3IGlzc3VlcyBp
biBjdXJyZW50IGltcGxlbWVudGF0aW9uIHRoYXQgY2FuIG1ha2UKKyAgICAgICAgY3VycmVudFNp
emUgaW5jb3JyZWN0IGFuZCBtYXkgbGVhZCB0byBvdmVyZmxvdzoKKyAgICAgICAgMS4gV2hlbiBj
b21wdXRpbmcgc2l6ZSBvZiBrZXksIFN0b3JhZ2VNYXAgdXNlcyBwYXJhbWV0ZXIga2V5IGluc3Rl
YWQgb2Ygc3RvcmVkIGtleS4gVGhlIHByb2JsZW0gaXMgdGhhdAorICAgICAgICB0d28gU3RyaW5n
cyBjYW4gYmUgZXZhbHVhdGVkIHRvIGVxdWFsIHdoaWxlIHRoZWlyIHNpemVJbkJ5dGVzKCkgdmFs
dWUgaXMgZGlmZmVyZW50LCB3aGVuIG9uZSBTdHJpbmcgaXMgOC1iaXQgYW5kIAorICAgICAgICB0
aGUgb3RoZXIgaXMgMTYtYml0LiBUaGF0IG1lYW5zIHJlbW92ZUl0ZW0oKSBtYXkgZGVjcmVhc2Ug
Y3VycmVudFNpemUgYnkgd3JvbmcgbnVtYmVyIChlLmcgc2V0SXRlbSgpIHdpdGggYW4gCisgICAg
ICAgIDgtYml0IGtleSwgY29udmVydGluZyB0aGUga2V5IHRvIDE2LWJpdCwgcmVtb3ZlSXRlbSgp
IHdpdGggdGhlIGtleSkuIFRvIGZpeCB0aGlzLCBTdG9yYWdlTWFwIG5vdyBhbHdheXMgdXNlcyAK
KyAgICAgICAgc3RvcmVkIGtleSBmb3IgY29tcHV0YXRpb24uCisgICAgICAgIDIuIFdoZW4gbWFw
LnRha2Uoa2V5KSBvciBtYXAuZ2V0KGtleSkgcmV0dXJucyBudWxsIHN0cmluZywgU3RvcmFnZU1h
cCB0YWtlcyBpdCBhcyB0aGUga2V5IGRvZXMgbm90IGV4aXN0IGFuZCAKKyAgICAgICAgd2lsbCBu
b3QgY29ycmVjdGx5IHVwZGF0ZSBjdXJyZW50U2l6ZSwgYnV0IHVzZXIgb2YgV2ViQ29yZTo6U3Rv
cmFnZU1hcCBtYXkgc3RvcmUgbnVsbCBzdHJpbmcgYXMgdmFsdWUuIFRvIGZpeCAKKyAgICAgICAg
dGhpcywgU3RvcmFnZU1hcCBub3cgY2hlY2sgaWYga2V5IGV4aXN0cyB3aXRoIGZpbmQoKSBmdW5j
dGlvbi4KKyAgICAgICAgMy4gU3RvcmFnZU1hcCBvbmx5IHVzZXMgQ2hlY2tlZFVpbnQzMiBpbiBz
ZXRJdGVtKCksIGJ1dCByZW1vdmVJdGVtKCkgYW5kIGltcG9ydEl0ZW0oKSBtYXkgY2F1c2Ugb3Zl
cmZsb3cgaW4gCisgICAgICAgIGN1cnJlbnRTaXplIGFzIG1lbnRpb25lZCBhYm92ZSwgYW5kIHRo
ZSBlcnJvciB3aWxsIG5vdCBiZSBjYXVnaHQgdW50aWwgc2V0SXRlbSgpIGlzIGNhbGxlZC4gVG8g
Zml4IHRoaXMsIAorICAgICAgICBTdG9yYWdlTWFwIG5vdyB1c2VzIENoZWNrZWRVaW50MzIgaW4g
YWxsIHBsYWNlcyB0aGF0IHVwZGF0ZSBjdXJyZW50U2l6ZS4KKworICAgICAgICBOZXcgdGVzdDog
V0tXZWJWaWV3LkxvY2FsU3RvcmFnZU5vU2l6ZU92ZXJmbG93CisKKyAgICAgICAgKiBzdG9yYWdl
L1N0b3JhZ2VNYXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hcDo6c2V0SXRlbSk6
CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0b3JhZ2VNYXA6OmltcG9ydEl0ZW1zKToKKwogMjAyMi0wNC0xMSAgTmlrb2xhcyBa
aW1tZXJtYW5uICA8bnppbW1lcm1hbm5AaWdhbGlhLmNvbT4KIAogICAgICAgICBbTEJTRV0gQWN0
aXZhdGUgU1ZHIHRyYW5zZm9ybSBzdXBwb3J0IHRocm91Z2ggbGF5ZXJzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Rv
cmFnZS9TdG9yYWdlTWFwLmNwcAppbmRleCAyYjU4MzVkYzQ2YmY2ZWY5NjUzYWZmZGYwNGNmZTFi
M2YxM2M1ZjVkLi5jZjk4NWFlYTg4ZmJhYzIwM2JmNDU3Njk5NTc5Y2I1MmY3MmZjZDVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VNYXAuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU1hcC5jcHAKQEAgLTg4LDMwICs4OCwyOSBAQCBTdHJp
bmcgU3RvcmFnZU1hcDo6Z2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSkgY29uc3QKIHZvaWQgU3Rv
cmFnZU1hcDo6c2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwg
U3RyaW5nJiBvbGRWYWx1ZSwgYm9vbCYgcXVvdGFFeGNlcHRpb24pCiB7CiAgICAgQVNTRVJUKCF2
YWx1ZS5pc051bGwoKSk7Ci0gICAgcXVvdGFFeGNlcHRpb24gPSBmYWxzZTsKIAotICAgIC8vIElt
cGxlbWVudCBjb3B5LW9uLXdyaXRlIHNlbWFudGljcy4KLSAgICBpZiAobV9pbXBsLT5yZWZDb3Vu
dCgpID4gMSkKLSAgICAgICAgbV9pbXBsID0gbV9pbXBsLT5jb3B5KCk7Ci0KLSAgICBvbGRWYWx1
ZSA9IG1faW1wbC0+bWFwLmdldChrZXkpOwotCi0gICAgLy8gUXVvdGEgdHJhY2tpbmcuIFRoaXMg
aXMgZG9uZSBpbiBhIGNvdXBsZSBvZiBzdGVwcyB0byBrZWVwIHRoZSBvdmVyZmxvdyB0cmFja2lu
ZyBzaW1wbGUuCisgICAgcXVvdGFFeGNlcHRpb24gPSBmYWxzZTsKICAgICBDaGVja2VkVWludDMy
IG5ld1NpemUgPSBtX2ltcGwtPmN1cnJlbnRTaXplOwotICAgIG5ld1NpemUgLT0gb2xkVmFsdWUu
c2l6ZUluQnl0ZXMoKTsKLSAgICBuZXdTaXplICs9IHZhbHVlLnNpemVJbkJ5dGVzKCk7Ci0gICAg
aWYgKG9sZFZhbHVlLmlzTnVsbCgpKQorICAgIGF1dG8gaXRlciA9IG1faW1wbC0+bWFwLmZpbmQo
a2V5KTsKKyAgICBpZiAoaXRlciAhPSBtX2ltcGwtPm1hcC5lbmQoKSkgeworICAgICAgICBvbGRW
YWx1ZSA9IGl0ZXItPnZhbHVlOworICAgICAgICBuZXdTaXplIC09IG9sZFZhbHVlLnNpemVJbkJ5
dGVzKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgb2xkVmFsdWUgPSBudWxsU3RyaW5nKCk7CiAg
ICAgICAgIG5ld1NpemUgKz0ga2V5LnNpemVJbkJ5dGVzKCk7CisgICAgfQorICAgIG5ld1NpemUg
Kz0gdmFsdWUuc2l6ZUluQnl0ZXMoKTsKICAgICBpZiAobV9xdW90YVNpemUgIT0gbm9RdW90YSAm
JiAobmV3U2l6ZS5oYXNPdmVyZmxvd2VkKCkgfHwgbmV3U2l6ZSA+IG1fcXVvdGFTaXplKSkgewog
ICAgICAgICBxdW90YUV4Y2VwdGlvbiA9IHRydWU7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0g
ICAgbV9pbXBsLT5jdXJyZW50U2l6ZSA9IG5ld1NpemU7CiAKLSAgICBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPjo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1faW1wbC0+bWFwLmFkZChrZXksIHZhbHVl
KTsKLSAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlID0gdmFsdWU7CisgICAgLy8gSW1wbGVtZW50IGNvcHktb24td3JpdGUgc2Vt
YW50aWNzLgorICAgIGlmIChtX2ltcGwtPnJlZkNvdW50KCkgPiAxKQorICAgICAgICBtX2ltcGwg
PSBtX2ltcGwtPmNvcHkoKTsKIAorICAgIG1faW1wbC0+bWFwLnNldChrZXksIHZhbHVlKTsKKyAg
ICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKICAgICBpbnZhbGlkYXRlSXRlcmF0b3Io
KTsKIH0KIApAQCAtMTI3LDE5ICsxMjYsMjEgQEAgdm9pZCBTdG9yYWdlTWFwOjpzZXRJdGVtSWdu
b3JpbmdRdW90YShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKIAogdm9p
ZCBTdG9yYWdlTWFwOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBTdHJpbmcmIG9sZFZh
bHVlKQogeworICAgIG9sZFZhbHVlID0gbnVsbFN0cmluZygpOworICAgIENoZWNrZWRVaW50MzIg
bmV3U2l6ZSA9IG1faW1wbC0+Y3VycmVudFNpemU7CisgICAgYXV0byBpdGVyID0gbV9pbXBsLT5t
YXAuZmluZChrZXkpOworICAgIGlmIChpdGVyID09IG1faW1wbC0+bWFwLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisgICAgb2xkVmFsdWUgPSBpdGVyLT52YWx1ZTsKKyAgICBuZXdTaXplID0gbmV3
U2l6ZSAtIGl0ZXItPmtleS5zaXplSW5CeXRlcygpIC0gb2xkVmFsdWUuc2l6ZUluQnl0ZXMoKTsK
KwogICAgIC8vIEltcGxlbWVudCBjb3B5LW9uLXdyaXRlIHNlbWFudGljcy4KICAgICBpZiAobV9p
bXBsLT5yZWZDb3VudCgpID4gMSkKICAgICAgICAgbV9pbXBsID0gbV9pbXBsLT5jb3B5KCk7CiAK
LSAgICBvbGRWYWx1ZSA9IG1faW1wbC0+bWFwLnRha2Uoa2V5KTsKLSAgICBpZiAob2xkVmFsdWUu
aXNOdWxsKCkpCi0gICAgICAgIHJldHVybjsKLQorICAgIG1faW1wbC0+bWFwLnJlbW92ZShpdGVy
KTsKKyAgICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKICAgICBpbnZhbGlkYXRlSXRl
cmF0b3IoKTsKLSAgICBBU1NFUlQobV9pbXBsLT5jdXJyZW50U2l6ZSAtIGtleS5zaXplSW5CeXRl
cygpIDw9IG1faW1wbC0+Y3VycmVudFNpemUpOwotICAgIG1faW1wbC0+Y3VycmVudFNpemUgLT0g
a2V5LnNpemVJbkJ5dGVzKCk7Ci0gICAgQVNTRVJUKG1faW1wbC0+Y3VycmVudFNpemUgLSBvbGRW
YWx1ZS5zaXplSW5CeXRlcygpIDw9IG1faW1wbC0+Y3VycmVudFNpemUpOwotICAgIG1faW1wbC0+
Y3VycmVudFNpemUgLT0gb2xkVmFsdWUuc2l6ZUluQnl0ZXMoKTsKIH0KIAogdm9pZCBTdG9yYWdl
TWFwOjpjbGVhcigpCkBAIC0xNjAsMjYgKzE2MSwyNCBAQCBib29sIFN0b3JhZ2VNYXA6OmNvbnRh
aW5zKGNvbnN0IFN0cmluZyYga2V5KSBjb25zdAogCiB2b2lkIFN0b3JhZ2VNYXA6OmltcG9ydEl0
ZW1zKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiYgaXRlbXMpCiB7CisgICAgQ2hlY2tlZFVpbnQz
MiBuZXdTaXplID0gbV9pbXBsLT5jdXJyZW50U2l6ZTsKICAgICBpZiAobV9pbXBsLT5tYXAuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIC8vIEZhc3QgcGF0aC4KICAgICAgICAgbV9pbXBsLT5tYXAgPSBX
VEZNb3ZlKGl0ZW1zKTsKLSAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogbV9pbXBsLT5tYXApIHsK
LSAgICAgICAgICAgIEFTU0VSVChtX2ltcGwtPmN1cnJlbnRTaXplICsgcGFpci5rZXkuc2l6ZUlu
Qnl0ZXMoKSArIHBhaXIudmFsdWUuc2l6ZUluQnl0ZXMoKSA+PSBtX2ltcGwtPmN1cnJlbnRTaXpl
KTsKLSAgICAgICAgICAgIG1faW1wbC0+Y3VycmVudFNpemUgKz0gKHBhaXIua2V5LnNpemVJbkJ5
dGVzKCkgKyBwYWlyLnZhbHVlLnNpemVJbkJ5dGVzKCkpOworICAgICAgICBmb3IgKGF1dG8mIFtr
ZXksIHZhbHVlXSA6IG1faW1wbC0+bWFwKSB7CisgICAgICAgICAgICBuZXdTaXplICs9IGtleS5z
aXplSW5CeXRlcygpOworICAgICAgICAgICAgbmV3U2l6ZSArPSB2YWx1ZS5zaXplSW5CeXRlcygp
OwogICAgICAgICB9CisgICAgICAgIG1faW1wbC0+Y3VycmVudFNpemUgPSBuZXdTaXplOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgZm9yIChhdXRvJiBpdGVtIDogaXRlbXMpIHsKLSAg
ICAgICAgYXV0byYga2V5ID0gaXRlbS5rZXk7Ci0gICAgICAgIGF1dG8mIHZhbHVlID0gaXRlbS52
YWx1ZTsKLQotICAgICAgICBBU1NFUlQobV9pbXBsLT5jdXJyZW50U2l6ZSArIGtleS5zaXplSW5C
eXRlcygpICsgdmFsdWUuc2l6ZUluQnl0ZXMoKSA+PSBtX2ltcGwtPmN1cnJlbnRTaXplKTsKLSAg
ICAgICAgbV9pbXBsLT5jdXJyZW50U2l6ZSArPSAoa2V5LnNpemVJbkJ5dGVzKCkgKyB2YWx1ZS5z
aXplSW5CeXRlcygpKTsKLQorICAgIGZvciAoYXV0byYgW2tleSwgdmFsdWVdIDogaXRlbXMpIHsK
KyAgICAgICAgbmV3U2l6ZSArPSBrZXkuc2l6ZUluQnl0ZXMoKTsKKyAgICAgICAgbmV3U2l6ZSAr
PSB2YWx1ZS5zaXplSW5CeXRlcygpOwogICAgICAgICBhdXRvIHJlc3VsdCA9IG1faW1wbC0+bWFw
LmFkZChXVEZNb3ZlKGtleSksIFdURk1vdmUodmFsdWUpKTsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RChyZXN1bHQsIHJlc3VsdC5pc05ld0VudHJ5KTsgLy8gVHJ1ZSBpZiB0aGUga2V5IGRpZG4ndCBl
eGlzdCBwcmV2aW91c2x5LgorICAgICAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0Lmlz
TmV3RW50cnkpOwogICAgIH0KKyAgICBtX2ltcGwtPmN1cnJlbnRTaXplID0gbmV3U2l6ZTsKIH0K
IAogUmVmPFN0b3JhZ2VNYXA6OkltcGw+IFN0b3JhZ2VNYXA6OkltcGw6OmNvcHkoKSBjb25zdApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc1YmRj
OTJlMjcyOGM0NTRhYWUzNzZlNjMxNWU2MDVmMmVkYTFjMDkuLjQ4ODMwMGM5NmE5NjMwYWVjYWFk
ZTU4MzljMjE4NThkYTU1YzJhZmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wNC0xMSAgU2lodWkgTGl1ICA8
c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBGaXggc2l6ZSBjb21wdXRhdGlvbiBpbiBX
ZWJDb3JlOjpTdG9yYWdlTWFwCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzkwMjQKKyAgICAgICAgcmRhcjovLzg4MjQ5MjM1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tOgorICAgICAgICAoVEVTVCk6CisK
IDIwMjItMDQtMTEgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFRlc3RSdW5uZXLigJlzIGNhbGxzIHRvIFtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBhY2Nlc3NpYmlsaXR5QXJyYXlBdHRyaWJ1dGVDb3VudDpdIG5lZWQgdG8gYmUgZGlzcGF0
Y2ggdG8gdGhlIEFYIHNlY29uZGFyeSB0aHJlYWQuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VQZXJzaXN0ZW5j
ZS5tbQppbmRleCAwOTNmY2Y4YTI4NDBhYjlmNDc0YTMzNzE2ZmJhNjFkZDNhOGVjZjcyLi4wMjUy
NDMwMmZiZGZjYTgzZGFlMmFhNGVlYWZkMzg5YWFhYzNiNjE5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZVBlcnNpc3RlbmNlLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdl
UGVyc2lzdGVuY2UubW0KQEAgLTQ1NCw2ICs0NTQsNjIgQEAgVEVTVChXS1dlYlZpZXcsIExvY2Fs
U3RvcmFnZUdyb3VwKQogICAgIHJ1blRlc3QoZmFsc2UpOwogfQogCitURVNUKFdLV2ViVmlldywg
TG9jYWxTdG9yYWdlTm9TaXplT3ZlcmZsb3cpCit7CisgICAgcmVhZHlUb0NvbnRpbnVlID0gZmFs
c2U7CisgICAgW1tXS1dlYnNpdGVEYXRhU3RvcmUgZGVmYXVsdERhdGFTdG9yZV0gcmVtb3ZlRGF0
YU9mVHlwZXM6W1dLV2Vic2l0ZURhdGFTdG9yZSBhbGxXZWJzaXRlRGF0YVR5cGVzXSBtb2RpZmll
ZFNpbmNlOltOU0RhdGUgZGlzdGFudFBhc3RdIGNvbXBsZXRpb25IYW5kbGVyOl4oKSB7CisgICAg
ICAgIHJlYWR5VG9Db250aW51ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWFkeVRvQ29udGludWUpOworCisgICAgTlNTdHJpbmcgKmh0bWxTdHJpbmcg
PSBAIjxzY3JpcHQ+IFwKKyAgICAgICAgY29uc3Qga2V5ID0gJ1x1MDBGRlx1MDBGRic7IFwKKyAg
ICAgICAgZnVuY3Rpb24gb25TdG9yYWdlKCkgeyB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZSgnc3RvcmFnZScpOyB9IFwKKyAgICAgICAgZnVuY3Rp
b24gc2V0SXRlbSgpIHsgbG9jYWxTdG9yYWdlLnNldEl0ZW0oa2V5LCAndmFsdWUnKTsgfSBcCisg
ICAgICAgIGZ1bmN0aW9uIHJlbW92ZUl0ZW0oKSB7IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGxv
Y2FsU3RvcmFnZS5rZXkoMCkpOyB9IFwKKyAgICAgICAgZnVuY3Rpb24gZ2V0SXRlbSgpIHsgcmV0
dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKGtleSkgPyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrZXkp
IDogJ1tudWxsXSc7IH0gXAorICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignc3RvcmFn
ZScsIG9uU3RvcmFnZSk7XAorICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50
ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShnZXRJdGVtKCkpOyBcCisgICAgICAgIDwvc2NyaXB0PiI7
CisgICAgYXV0byBoYW5kbGVyID0gYWRvcHROUyhbW0xvY2FsU3RvcmFnZU1lc3NhZ2VIYW5kbGVy
IGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbW2NvbmZpZ3VyYXRpb24gdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgp
IG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbd2ViVmlldyBsb2FkSFRN
TFN0cmluZzpodG1sU3RyaW5nIGJhc2VVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwOi8v
d2Via2l0Lm9yZyJdXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2Ny
aXB0TWVzc2FnZSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKEAiW251bGxdIiwgW2xhc3RTY3JpcHRN
ZXNzYWdlIGJvZHldKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsKKworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInNldEl0ZW0oKSIgY29tcGxldGlvbkhhbmRs
ZXI6XihOU051bWJlciAqcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICByZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2Ug
PSBmYWxzZTsKKyAgICAKKyAgICBhdXRvIHNlY29uZFdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtzZWNvbmRXZWJWaWV3IGxvYWRI
VE1MU3RyaW5nOmh0bWxTdHJpbmcgYmFzZVVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAImh0dHA6
Ly93ZWJraXQub3JnIl1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
Y3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJ2YWx1ZSIsIFtsYXN0U2NyaXB0
TWVzc2FnZSBib2R5XSk7CisgICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisKKyAg
ICBbc2Vjb25kV2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJyZW1vdmVJdGVtKCkiIGNvbXBs
ZXRpb25IYW5kbGVyOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNjcmlwdE1lc3NhZ2UpOworICAgIEVYUEVDVF9XS19TVFJFUShAInN0b3JhZ2UiLCBbbGFzdFNj
cmlwdE1lc3NhZ2UgYm9keV0pOworICAgIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOwor
CisgICAgW3NlY29uZFdlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAic2V0SXRlbSgpIiBjb21w
bGV0aW9uSGFuZGxlcjpuaWxdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2
ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoQCJzdG9yYWdlIiwgW2xhc3RT
Y3JpcHRNZXNzYWdlIGJvZHldKTsKKyAgICByZWNlaXZlZFNjcmlwdE1lc3NhZ2UgPSBmYWxzZTsK
KworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAImdldEl0ZW0oKSIgY29tcGxldGlv
bkhhbmRsZXI6XihOU1N0cmluZyogcmVzdWx0LCBOU0Vycm9yICplcnJvcikgeworICAgICAgICBF
WFBFQ1RfV0tfU1RSRVEoInZhbHVlIiwgW3Jlc3VsdCBVVEY4U3RyaW5nXSk7CisgICAgICAgIHJl
Y2VpdmVkU2NyaXB0TWVzc2FnZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOworfQorCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKIAogVEVTVChXS1dlYlZpZXcsIExvY2FsU3RvcmFnZURpcmVjdG9yeUV4Y2x1ZGVk
RnJvbUJhY2t1cCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>