<?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>314455</bug_id>
          
          <creation_ts>2026-05-08 18:40:45 -0700</creation_ts>
          <short_desc>[cleanup] Refactor replaced element intrinsic size and aspect ratio computation</short_desc>
          <delta_ts>2026-05-10 12:17:12 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2209241</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2026-05-08 18:40:45 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209259</commentid>
    <comment_count>1</comment_count>
      <attachid>479538</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-08 20:32:22 -0700</bug_when>
    <thetext>Created attachment 479538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209391</commentid>
    <comment_count>2</comment_count>
      <attachid>479550</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 15:54:32 -0700</bug_when>
    <thetext>Created attachment 479550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209393</commentid>
    <comment_count>3</comment_count>
      <attachid>479551</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 15:57:26 -0700</bug_when>
    <thetext>Created attachment 479551
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209406</commentid>
    <comment_count>4</comment_count>
      <attachid>479554</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 17:49:42 -0700</bug_when>
    <thetext>Created attachment 479554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209407</commentid>
    <comment_count>5</comment_count>
      <attachid>479555</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 17:50:53 -0700</bug_when>
    <thetext>Created attachment 479555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209419</commentid>
    <comment_count>6</comment_count>
      <attachid>479559</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 18:32:41 -0700</bug_when>
    <thetext>Created attachment 479559
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209420</commentid>
    <comment_count>7</comment_count>
      <attachid>479560</attachid>
    <who name="alan">zalan</who>
    <bug_when>2026-05-09 18:33:49 -0700</bug_when>
    <thetext>Created attachment 479560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209499</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2026-05-10 12:16:31 -0700</bug_when>
    <thetext>Committed 312972@main (49304f808259): &lt;https://commits.webkit.org/312972@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 479559.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2209500</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2026-05-10 12:17:12 -0700</bug_when>
    <thetext>&lt;rdar://problem/176740589&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479538</attachid>
            <date>2026-05-08 20:32:22 -0700</date>
            <delta_ts>2026-05-09 15:54:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260508203222.patch</filename>
            <type>text/plain</type>
            <size>14860</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBlZjM0ZTViNTRhZGQyNDA5YjhiNDAzYWZhODQwMjNlODU2NWJjZmExIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAyMDoyODo0MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUHJldmlvdXNseSwgYSBzaW5nbGUg
bW9ub2xpdGhpYyBmdW5jdGlvbiAoY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5k
ZXJCb3gpCmhhbmRsZWQgdGhyZWUgdGFza3MgYXQgb25jZToKMS4gZ2V0dGluZyB0aGUgaW50cmlu
c2ljIHNpemUsCjIuIGdldHRpbmcgdGhlIHByZWZlcnJlZCBhc3BlY3QgcmF0aW8sIGFuZAozLiBj
YWNoaW5nIHRoZSByZXN1bHQgdG8gbV9pbnRyaW5zaWNTaXplLiBJdCB0b29rIGEgUmVuZGVyUmVw
bGFjZWQqIHBhcmFtZXRlciB0byBvcHRpb25hbGx5IGRlbGVnYXRlIHRvIGFuIGVtYmVkZGVkIFNW
RyByb290IHJlbmRlcmVyLgoKVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhpcyBtYWRlIGl0IGltcG9z
c2libGUgdG8gYXNrIGZvciBqdXN0IHRoZSByYXRpbyB3aXRob3V0CmFsc28gY29tcHV0aW5nIHRo
ZSBzaXplIGFuZCB0cmlnZ2VyaW5nIHRoZSBjYWNoZSB1cGRhdGUuIENhbGxlcnMgbGlrZQpjb21w
dXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKSBhbmQgaW50cmluc2ljUmF0aW8oKSBvbmx5IG5lZWRl
ZCB0aGUgcmF0aW8gYnV0CmhhZCB0byBnbyB0aHJvdWdoIHRoZSB3aG9sZSBjb21iaW5lZCBmdW5j
dGlvbi4KClRoZSBmaXggbW92ZXMgZW1iZWRkZWQtY29udGVudCBoYW5kbGluZyBpbnRvIHZpcnR1
YWwgb3ZlcnJpZGVzIHdoZXJlIHRoZSBrbm93bGVkZ2UKYmVsb25nczoKLSBSZW5kZXJJbWFnZTo6
Y29tcHV0ZUludHJpbnNpY1NpemUoKSBhbmQgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBub3cgaGFu
ZGxlCiAgdGhlIFNWRy1pbWFnZSBlbWJlZGRlZCBjYXNlICh6b29tLCBEUFIsIHdyaXRpbmcgbW9k
ZSkuCi0gUmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGFuZCBwcmVmZXJyZWRB
c3BlY3RSYXRpbygpIG5vdyBoYW5kbGUKICB0aGUgaWZyYW1lL29iamVjdCBlbWJlZGRlZCBjYXNl
ICh6b29tLCB3cml0aW5nIG1vZGUpLgoKVGhpcyBlbGltaW5hdGVzIGNvbXB1dGVBc3BlY3RSYXRp
b0luZm9ybWF0aW9uRm9yUmVuZGVyQm94IGVudGlyZWx5IGFuZCByZW1vdmVzCnRoZSBSZW5kZXJS
ZXBsYWNlZCogcGFyYW1ldGVyIGZyb20gY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRC
eVRyYW5zZmVycmVkTWluTWF4U2l6ZXMuClJhdGlvIHF1ZXJpZXMgKGNvbXB1dGVJbnRyaW5zaWNB
c3BlY3RSYXRpbywgaW50cmluc2ljUmF0aW8pIGFyZSBub3cgc2ltcGxlCm9uZS1saW5lcnMgd2l0
aCBubyBzaWRlIGVmZmVjdHMuCgpObyBiZWhhdmlvciBjaGFuZ2UgKHRoZSBtX2ludHJpbnNpY1Np
emUgY2FjaGluZyBzdGlsbCBoYXBwZW5zIGR1cmluZyBsYXlvdXQKdmlhIGNvbXB1dGVJbnRyaW5z
aWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKQotLS0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgICAgfCAyMSArKysrKysKIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgfCA3NCArKysrLS0tLS0tLS0tLS0t
LS0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAgfCAgOSAr
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwICAgfCAzMSArKysr
KysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCAgICAgfCAgMiAr
CiA1IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGE1MzBmNGJkM2I1Mi4u
ZDAyNTYxYjk5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
QEAgLTk0MSw2ICs5NDEsMTYgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5b3V0KCkKIEZsb2F0U2l6
ZSBSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewogICAgIEFTU0VS
VCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBz
dmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXpl
ID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6
ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxl
KGltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpKQorICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJh
bnNwb3NlZFNpemUoKTsKKyAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisgICAgfQorCiAg
ICAgYXV0byBpbnRyaW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNT
aXplKCk7CiAKICAgICAvLyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5k
ZXJpbmcgZ2VuZXJhdGVkIGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJl
IG91dCB0aGUgcmlnaHQgaW50cmluc2ljIHNpemUgdG8gdXNlLgpAQCAtOTY2LDYgKzk3NiwxNyBA
QCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKICAg
ICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAgICBpZiAoQ2hlY2tlZFB0ciBz
dmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byByYXRpbyA9IHN2Z1Jv
b3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICAgICAgcmF0aW8gPSByYXRp
by50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCku
aXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiBy
YXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1By
ZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCku
YXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAgICAgIHJldHVybiByYXRp
bzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJh
dGlvKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
CmluZGV4IGNjZmVhYWU1NzdmMy4uZTM3NmRiYjU3MmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTQ3MCw2MSArNDcwLDI1IEBAIHN0YXRpYyBi
b29sIGlzVmlkZW9XaXRoRGVmYXVsdE9iamVjdFNpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQqIG1h
eWJlVmlkZW8pCiAgICAgcmV0dXJuIGZhbHNlOwogfSAKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyUmVwbGFjZWQq
IHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIHByZWZlcnJl
ZEFzcGVjdFJhdGlvKSBjb25zdAordm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoRmxvYXRTaXplJiBpbnRy
aW5zaWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdAogewotICAgIEZsb2F0
U2l6ZSBpbnRyaW5zaWNTaXplOwogICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVD
b250YWlubWVudCgpKSB7CiAgICAgICAgIGludHJpbnNpY1NpemUgPSBSZW5kZXJSZXBsYWNlZDo6
Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBS
ZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICB9IGVsc2UgaWYgKHN2
Z1Jvb3QpIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5z
aWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gc3ZnUm9vdC0+cHJlZmVy
cmVkQXNwZWN0UmF0aW8oKTsKLQotICAgICAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlz
UmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcHJl
ZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKSkKLSAgICAgICAgICAgIHByZWZlcnJlZEFzcGVj
dFJhdGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpbygp
LndpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5oZWlnaHQoKS52YWx1ZSk7Ci0K
LSAgICAgICAgLy8gSGFuZGxlIHpvb20gJiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzIGhlcmUsIGFz
IHRoZSBlbWJlZGRlZCBkb2N1bWVudCBkb2Vzbid0IGtub3cgYWJvdXQgdGhlbS4KLSAgICAgICAg
aW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOwotCi0gICAgICAgIGlmIChh
dXRvKiBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4oKnRoaXMpKQotICAgICAg
ICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFnZS0+aW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkp
OwotCi0gICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50cmluc2ljIHNpemUgdG8gbWF0Y2ggd2hhdCB0
aGUgY29udGVudCByZW5kZXJlciBoYXMgY29tcHV0ZWQsIHNvIHRoYXQgd2hlbiB3ZQotICAgICAg
ICAvLyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3csIHRoZSBjb3JyZWN0IGludHJpbnNpYyBzaXpl
IHdpbGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlzb24gYWdhaW5zdAotICAgICAgICAvLyBtaW4g
YW5kIG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChpc1JlbmRlcldpZGdldCgpKSB7Ci0gICAgICAg
ICAgICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQgKGUuZy4gPG9iamVjdD4gZW1iZWRkaW5n
IGFuIFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUKLSAgICAgICAgICAgIC8vIG1faW50cmlu
c2ljU2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmluc2ljIGRpbWVuc2lvbnMsIGFwcGx5aW5n
IENTUyBkZWZhdWx0IGZhbGxiYWNrCi0gICAgICAgICAgICAvLyB2YWx1ZXMgKDMwMHgxNTApIGZv
ciBkaW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZhbHVlIChlLmcuIHBlcmNlbnRhZ2Utc2l6
ZWQgb3IKLSAgICAgICAgICAgIC8vIHJlbW92ZWQgYXR0cmlidXRlcykuIFRoaXMgcHJldmVudHMg
c3RhbGUgY2FjaGVkIHNpemVzIHdoZW4gYXR0cmlidXRlcyBsaWtlIHdpZHRoL2hlaWdodAotICAg
ICAgICAgICAgLy8gYXJlIHJlbW92ZWQuIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gUmVu
ZGVySW1hZ2UgKDxpbWcgc3JjPSJzdmciPiksIHdoaWNoIG1hbmFnZXMKLSAgICAgICAgICAgIC8v
IGl0cyBvd24gaW50cmluc2ljIHNpemUgdmlhIHNldEludHJpbnNpY1NpemUoKSBkdXJpbmcgaW1h
Z2UgbG9hZC4KLSAgICAgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUgPSBpbnRyaW5zaWNTaXplOwor
ICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RS
YXRpbygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludHJpbnNpY1NpemUgPSBjb21wdXRlSW50
cmluc2ljU2l6ZSgpOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJh
dGlvKCk7CisKKyAgICAgICAgYXV0byBzaXplVG9DYWNoZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdN
b2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwor
ICAgICAgICBpZiAoZW1iZWRkZWRTVkdSb290KCkgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewogICAg
ICAgICAgICAgaWYgKCFzaXplVG9DYWNoZS53aWR0aCgpKQogICAgICAgICAgICAgICAgIHNpemVU
b0NhY2hlLnNldFdpZHRoKGNEZWZhdWx0V2lkdGgpOwogICAgICAgICAgICAgaWYgKCFzaXplVG9D
YWNoZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBzaXplVG9DYWNoZS5zZXRIZWlnaHQoY0Rl
ZmF1bHRIZWlnaHQpOwogICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShz
aXplVG9DYWNoZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlz
RW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKLSAgICAgICAgICAgIG1faW50cmlu
c2ljU2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljU2l6ZSk7Ci0KLSAgICAgICAgaWYgKCFpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIXByZWZlcnJlZEFzcGVj
dFJhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9
IHByZWZlcnJlZEFzcGVjdFJhdGlvLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgICAgICBpbnRy
aW5zaWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICB9Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IGNvbXB1dGVJbnRyaW5zaWNTaXpl
KCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gdGhpcy0+cHJlZmVycmVkQXNwZWN0
UmF0aW8oKTsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkgJiYg
IWludHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJpbnNpY1NpemUgPSBM
YXlvdXRTaXplKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50
cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsKKyAgICAgICAgfSBlbHNlIGlmICghaW50cmlu
c2ljUmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXplLmlzWmVybygpKQorICAgICAgICAg
ICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXplVG9DYWNoZSk7CiAgICAgfQotICAg
IGNvbnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7Ci19Ci0KLXZvaWQgUmVuZGVyUmVwbGFj
ZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNp
emVzKFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIEZs
b2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Ci17Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlv
SW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goc3ZnUm9vdCwgaW50cmluc2ljU2l6ZSwgaW50cmluc2lj
UmF0aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2ljIHNpemUgYWxvbmcg
ZWFjaCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRoL2hlaWdodHMg
YWxvbmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1wbGUgYSBtYXhpbXVt
IHdpZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4gdGhlIGhlaWdodCB3
ZSBjb21wdXRlIGhlcmUKQEAgLTU5NiwyMyArNTYwLDE2IEBAIExheW91dFJlY3QgUmVuZGVyUmVw
bGFjZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6
ZSkKIAogZG91YmxlIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljQXNwZWN0UmF0aW8o
KSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKLSAgICBGbG9hdFNpemUg
aW50cmluc2ljU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRl
ckJveChlbWJlZGRlZFNWR1Jvb3QoKSwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwot
ICAgIHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAgIHJldHVy
biBwcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiB9CiAKIEZsb2F0
U2l6ZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAg
IC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRTVkdSb290KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5j
ZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNl
ZC4KLSAgICBBU1NFUlQoIWVtYmVkZGVkU1ZHUm9vdCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5s
aW5lU2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGludHJpbnNpY0xvZ2ljYWxXaWR0
aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclJl
cGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUn
cyBhbiBlbWJlZGRlZFNWR1Jvb3QoKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBh
dmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VS
VCghZW1iZWRkZWRTVkdSb290KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFp
bm1lbnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxvYXRTaXplKGludHJpbnNpY0xv
Z2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkpOwogICAgIEZsb2F0U2l6ZSBw
cmVmZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNzExLDcgKzY2OCw3IEBAIExheW91dFVuaXQgUmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJl
ZmVycmVkIHNoCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVwbGFjZWQgZWxlbWVudHM6IGh0dHA6
Ly93d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNpbmxpbmUtcmVwbGFjZWQtd2lkdGgK
ICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVk
U2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRN
aW5NYXhTaXplcyhlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNS
YXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVk
TWluTWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBpZiAo
c3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAgICAgYm9vbCBjb21wdXRlZEhl
aWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTgwNyw3ICs3
NjQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2Fs
SGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAgIC8vIDEwLjYuMiBJbmxpbmUsIHJl
cGxhY2VkIGVsZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwj
aW5saW5lLXJlcGxhY2VkLWhlaWdodAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAg
ICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0Nv
bnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGVtYmVkZGVkU1ZHUm9vdCgpLCBjb25z
dHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21wdXRlSW50cmluc2ljU2l6ZXND
b25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb25zdHJhaW5lZFNpemUsIGludHJp
bnNpY1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgpLmxvZ2ljYWxXaWR0
aCgpLmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2ljV2lkdGggPSBjb25zdHJhaW5lZFNp
emUud2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUud2lkdGgoKSAmJiBzaG91bGRSZXNw
ZWN0WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNv
bnRhaW5tZW50KCk7CkBAIC0xMDYyLDEwICsxMDE5LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6
bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXplJiBvbGRTaXplKQogCiBGbG9hdFNp
emUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkgY29uc3QKIHsKLSAgICBGbG9hdFNp
emUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBj
b21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZFNWR1Jvb3Qo
KSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAgcmV0dXJuIGludHJpbnNp
Y1JhdGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogfQogCiB2b2lkIFJl
bmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQb3NpdGlvbmVkTG9naWNhbFdp
ZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1ZXMpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGNhZjc4ODlkN2Ex
MC4uNmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBsYWNlZE1pbkxvZ2lj
YWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0OwogICAgIGJvb2wgcmVwbGFjZWRNYXhMb2dp
Y2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgRmxvYXRTaXpl
IGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCBGbG9hdFNpemUgcHJl
ZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlclJlcGxh
Y2VkKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8UmVwbGFjZWRGbGFn
PiA9IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwgRWxlbWVudCYsIFJlbmRlclN0eWxl
JiYsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUsIE9wdGlvblNldDxSZXBsYWNlZEZs
YWc+ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzdHls
ZURpZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXpl
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBj
b25zdDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShjb25zdCBMYXlvdXRTaXplJiBpbnRy
aW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemU7IH0KICAgICB2aXJ0
dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVs
YXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAt
MTIxLDggKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlv
blJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBmaW5hbDsKLSAgICB2b2lk
IGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlclJlcGxhY2Vk
KiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8p
IGNvbnN0OwotICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5z
ZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29u
c3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKKyAgICB2b2lk
IGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVz
KEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBj
b25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3U2VsZWN0aW9uVGludCgpIGNvbnN0
OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdl
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBl
OGNiMGEwZTQ5Y2IuLmQ5NTgzZGU2NWJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5jcHAKQEAgLTQ5OCw0ICs0OTgsMzUgQEAgUmVuZGVyUmVwbGFjZWQqIFJlbmRl
cldpZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3ID8g
ZnJhbWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7CiB9CiAKK0Zsb2F0U2l6ZSBS
ZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKK3sKKyAgICBDaGVja2Vk
UHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAg
ICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKworICAg
IGF1dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Cisg
ICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworCisgICAgaWYgKCFp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmlu
c2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgcmV0dXJuIGludHJpbnNpY1NpemU7Cit9
CisKK0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QK
K3sKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAo
IXN2Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0
UmF0aW8oKTsKKworICAgIGF1dG8gcmF0aW8gPSBzdmdSb290LT5wcmVmZXJyZWRBc3BlY3RSYXRp
bygpOworICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0
eSgpKQorICAgICAgICByYXRpbyA9IHJhdGlvLnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICBpZiAo
c3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygp
LmlzQXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0eSgpKSkKKyAgICAgICAgcmF0aW8gPSBG
bG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRo
KCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisg
ICAgcmV0dXJuIHJhdGlvOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggMzljNDBlM2JiMDc0Li45MmYyODEzOGNh
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTkyLDYgKzky
LDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRo
cygpIGNvbnN0IGZpbmFsOwogICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBj
b25zdCBmaW5hbDsKKyAgICBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdCBm
aW5hbDsKKyAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5hbDsK
IAogICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUpIGZpbmFsOwogICAg
IHZvaWQgc2V0T3ZlcmxhcFRlc3RSZXN1bHQoYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479550</attachid>
            <date>2026-05-09 15:54:32 -0700</date>
            <delta_ts>2026-05-09 17:49:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260509155431.patch</filename>
            <type>text/plain</type>
            <size>14857</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmZTg1YjAzNTU2ZGU1NjZiODM4N2U5MTAwMmFiNGFkNTg1Nzk0MzI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAyMDoyODo0MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUHJldmlvdXNseSwgYSBzaW5nbGUg
bW9ub2xpdGhpYyBmdW5jdGlvbiAoY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5k
ZXJCb3gpCmhhbmRsZWQgdGhyZWUgdGFza3MgYXQgb25jZToKMS4gZ2V0dGluZyB0aGUgaW50cmlu
c2ljIHNpemUsCjIuIGdldHRpbmcgdGhlIHByZWZlcnJlZCBhc3BlY3QgcmF0aW8sIGFuZAozLiBj
YWNoaW5nIHRoZSByZXN1bHQgdG8gbV9pbnRyaW5zaWNTaXplLgoKSXQgdG9vayBhIFJlbmRlclJl
cGxhY2VkKiBwYXJhbWV0ZXIgdG8gb3B0aW9uYWxseSBkZWxlZ2F0ZSB0byBhbiBlbWJlZGRlZCBT
Vkcgcm9vdCByZW5kZXJlci4KClRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoaXMgbWFkZSBpdCBpbXBv
c3NpYmxlIHRvIGFzayBmb3IganVzdCB0aGUgcmF0aW8gd2l0aG91dAphbHNvIGNvbXB1dGluZyB0
aGUgc2l6ZSBhbmQgdHJpZ2dlcmluZyB0aGUgY2FjaGUgdXBkYXRlLiBDYWxsZXJzIGxpa2UKY29t
cHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgYW5kIGludHJpbnNpY1JhdGlvKCkgb25seSBuZWVk
ZWQgdGhlIHJhdGlvIGJ1dApoYWQgdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgY29tYmluZWQgZnVu
Y3Rpb24uCgpUaGUgZml4IG1vdmVzIGVtYmVkZGVkLWNvbnRlbnQgaGFuZGxpbmcgaW50byB2aXJ0
dWFsIG92ZXJyaWRlcyB3aGVyZSB0aGUgbG9naWMgYmVsb25nczoKLSBSZW5kZXJJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY1NpemUoKSBhbmQgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBub3cgaGFuZGxl
CiAgdGhlIFNWRy1pbWFnZSBlbWJlZGRlZCBjYXNlICh6b29tLCBEUFIsIHdyaXRpbmcgbW9kZSku
Ci0gUmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGFuZCBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpIG5vdyBoYW5kbGUKICB0aGUgaWZyYW1lL29iamVjdCBlbWJlZGRlZCBjYXNlICh6
b29tLCB3cml0aW5nIG1vZGUpLgoKVGhpcyBlbGltaW5hdGVzIGNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94IGVudGlyZWx5IGFuZCByZW1vdmVzCnRoZSBSZW5kZXJSZXBs
YWNlZCogcGFyYW1ldGVyIGZyb20gY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRy
YW5zZmVycmVkTWluTWF4U2l6ZXMuClJhdGlvIHF1ZXJpZXMgKGNvbXB1dGVJbnRyaW5zaWNBc3Bl
Y3RSYXRpbywgaW50cmluc2ljUmF0aW8pIGFyZSBub3cgc2ltcGxlIG9uZS1saW5lcnMgd2l0aCBu
byBzaWRlIGVmZmVjdHMuCgpObyBiZWhhdmlvciBjaGFuZ2UgKHRoZSBtX2ludHJpbnNpY1NpemUg
Y2FjaGluZyBzdGlsbCBoYXBwZW5zIGR1cmluZyBsYXlvdXQKdmlhIGNvbXB1dGVJbnRyaW5zaWNT
aXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKQotLS0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgICAgfCAyMSArKysrKysKIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgfCA3NCArKysrLS0tLS0tLS0tLS0tLS0t
LS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAgfCAgOSArKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwICAgfCAzMSArKysrKysr
KysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCAgICAgfCAgMiArCiA1
IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGE1MzBmNGJkM2I1Mi4uZDAy
NTYxYjk5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAg
LTk0MSw2ICs5NDEsMTYgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5b3V0KCkKIEZsb2F0U2l6ZSBS
ZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewogICAgIEFTU0VSVCgh
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdS
b290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXplID0g
c3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5z
Y2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGlt
YWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQorICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNw
b3NlZFNpemUoKTsKKyAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisgICAgfQorCiAgICAg
YXV0byBpbnRyaW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXpl
KCk7CiAKICAgICAvLyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJp
bmcgZ2VuZXJhdGVkIGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91
dCB0aGUgcmlnaHQgaW50cmluc2ljIHNpemUgdG8gdXNlLgpAQCAtOTY2LDYgKzk3NiwxNyBAQCBG
bG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdS
b290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byByYXRpbyA9IHN2Z1Jvb3Qt
PnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICAgICAgcmF0aW8gPSByYXRpby50
cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNS
YXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiByYXRp
by5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1ByZWNp
c2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNw
ZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAgICAgIHJldHVybiByYXRpbzsK
KyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlv
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmlu
ZGV4IGNjZmVhYWU1NzdmMy4uZTM3NmRiYjU3MmI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTQ3MCw2MSArNDcwLDI1IEBAIHN0YXRpYyBib29s
IGlzVmlkZW9XaXRoRGVmYXVsdE9iamVjdFNpemUoY29uc3QgUmVuZGVyUmVwbGFjZWQqIG1heWJl
VmlkZW8pCiAgICAgcmV0dXJuIGZhbHNlOwogfSAKIAotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyUmVwbGFjZWQqIHN2
Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIHByZWZlcnJlZEFz
cGVjdFJhdGlvKSBjb25zdAordm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1Np
emVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoRmxvYXRTaXplJiBpbnRyaW5z
aWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdAogewotICAgIEZsb2F0U2l6
ZSBpbnRyaW5zaWNTaXplOwogICAgIGlmIChzaG91bGRBcHBseVNpemVPcklubGluZVNpemVDb250
YWlubWVudCgpKSB7CiAgICAgICAgIGludHJpbnNpY1NpemUgPSBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBSZW5k
ZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICB9IGVsc2UgaWYgKHN2Z1Jv
b3QpIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5zaWNT
aXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gc3ZnUm9vdC0+cHJlZmVycmVk
QXNwZWN0UmF0aW8oKTsKLQotICAgICAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0
aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcHJlZmVy
cmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKSkKLSAgICAgICAgICAgIHByZWZlcnJlZEFzcGVjdFJh
dGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpbygpLndp
ZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5oZWlnaHQoKS52YWx1ZSk7Ci0KLSAg
ICAgICAgLy8gSGFuZGxlIHpvb20gJiB2ZXJ0aWNhbCB3cml0aW5nIG1vZGVzIGhlcmUsIGFzIHRo
ZSBlbWJlZGRlZCBkb2N1bWVudCBkb2Vzbid0IGtub3cgYWJvdXQgdGhlbS4KLSAgICAgICAgaW50
cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOwotCi0gICAgICAgIGlmIChhdXRv
KiBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFnZT4oKnRoaXMpKQotICAgICAgICAg
ICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFnZS0+aW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOwot
Ci0gICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50cmluc2ljIHNpemUgdG8gbWF0Y2ggd2hhdCB0aGUg
Y29udGVudCByZW5kZXJlciBoYXMgY29tcHV0ZWQsIHNvIHRoYXQgd2hlbiB3ZQotICAgICAgICAv
LyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3csIHRoZSBjb3JyZWN0IGludHJpbnNpYyBzaXplIHdp
bGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlzb24gYWdhaW5zdAotICAgICAgICAvLyBtaW4gYW5k
IG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChpc1JlbmRlcldpZGdldCgpKSB7Ci0gICAgICAgICAg
ICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQgKGUuZy4gPG9iamVjdD4gZW1iZWRkaW5nIGFu
IFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUKLSAgICAgICAgICAgIC8vIG1faW50cmluc2lj
U2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmluc2ljIGRpbWVuc2lvbnMsIGFwcGx5aW5nIENT
UyBkZWZhdWx0IGZhbGxiYWNrCi0gICAgICAgICAgICAvLyB2YWx1ZXMgKDMwMHgxNTApIGZvciBk
aW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZhbHVlIChlLmcuIHBlcmNlbnRhZ2Utc2l6ZWQg
b3IKLSAgICAgICAgICAgIC8vIHJlbW92ZWQgYXR0cmlidXRlcykuIFRoaXMgcHJldmVudHMgc3Rh
bGUgY2FjaGVkIHNpemVzIHdoZW4gYXR0cmlidXRlcyBsaWtlIHdpZHRoL2hlaWdodAotICAgICAg
ICAgICAgLy8gYXJlIHJlbW92ZWQuIE5vdGU6IHRoaXMgZG9lcyBub3QgYXBwbHkgdG8gUmVuZGVy
SW1hZ2UgKDxpbWcgc3JjPSJzdmciPiksIHdoaWNoIG1hbmFnZXMKLSAgICAgICAgICAgIC8vIGl0
cyBvd24gaW50cmluc2ljIHNpemUgdmlhIHNldEludHJpbnNpY1NpemUoKSBkdXJpbmcgaW1hZ2Ug
bG9hZC4KLSAgICAgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUgPSBpbnRyaW5zaWNTaXplOworICAg
ICAgICBpbnRyaW5zaWNSYXRpbyA9IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRp
bygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludHJpbnNpY1NpemUgPSBjb21wdXRlSW50cmlu
c2ljU2l6ZSgpOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJhdGlv
KCk7CisKKyAgICAgICAgYXV0byBzaXplVG9DYWNoZSA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAg
ICAgICBpZiAoZW1iZWRkZWRTVkdSb290KCkgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewogICAgICAg
ICAgICAgaWYgKCFzaXplVG9DYWNoZS53aWR0aCgpKQogICAgICAgICAgICAgICAgIHNpemVUb0Nh
Y2hlLnNldFdpZHRoKGNEZWZhdWx0V2lkdGgpOwogICAgICAgICAgICAgaWYgKCFzaXplVG9DYWNo
ZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBzaXplVG9DYWNoZS5zZXRIZWlnaHQoY0RlZmF1
bHRIZWlnaHQpOwogICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXpl
VG9DYWNoZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1w
dHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKLSAgICAgICAgICAgIG1faW50cmluc2lj
U2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljU2l6ZSk7Ci0KLSAgICAgICAgaWYgKCFpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBpZiAoIXByZWZlcnJlZEFzcGVjdFJh
dGlvLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHBy
ZWZlcnJlZEFzcGVjdFJhdGlvLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgICAgICBpbnRyaW5z
aWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICB9Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IGNvbXB1dGVJbnRyaW5zaWNTaXplKCk7
Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gdGhpcy0+cHJlZmVycmVkQXNwZWN0UmF0
aW8oKTsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkgJiYgIWlu
dHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJpbnNpY1NpemUgPSBMYXlv
dXRTaXplKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmlu
c2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsKKyAgICAgICAgfSBlbHNlIGlmICghaW50cmluc2lj
UmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXplLmlzWmVybygpKQorICAgICAgICAgICAg
bV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXplVG9DYWNoZSk7CiAgICAgfQotICAgIGNv
bnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7Ci19Ci0KLXZvaWQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVz
KFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIEZsb2F0
U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Ci17Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5m
b3JtYXRpb25Gb3JSZW5kZXJCb3goc3ZnUm9vdCwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0
aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2ljIHNpemUgYWxvbmcgZWFj
aCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRoL2hlaWdodHMgYWxv
bmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1wbGUgYSBtYXhpbXVtIHdp
ZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4gdGhlIGhlaWdodCB3ZSBj
b21wdXRlIGhlcmUKQEAgLTU5NiwyMyArNTYwLDE2IEBAIExheW91dFJlY3QgUmVuZGVyUmVwbGFj
ZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkK
IAogZG91YmxlIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKSBj
b25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKLSAgICBGbG9hdFNpemUgaW50
cmluc2ljU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJv
eChlbWJlZGRlZFNWR1Jvb3QoKSwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwotICAg
IHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAgIHJldHVybiBw
cmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiB9CiAKIEZsb2F0U2l6
ZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIC8v
IElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRTVkdSb290KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQg
ZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4K
LSAgICBBU1NFUlQoIWVtYmVkZGVkU1ZHUm9vdCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5l
U2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGludHJpbnNpY0xvZ2ljYWxXaWR0aCgp
LCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclJlcGxh
Y2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBh
biBlbWJlZGRlZFNWR1Jvb3QoKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBhdmFp
bGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VSVCgh
ZW1iZWRkZWRTVkdSb290KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1l
bnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxvYXRTaXplKGludHJpbnNpY0xvZ2lj
YWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkpOwogICAgIEZsb2F0U2l6ZSBwcmVm
ZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNzExLDcgKzY2OCw3IEBAIExheW91dFVuaXQgUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVy
cmVkIHNoCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVwbGFjZWQgZWxlbWVudHM6IGh0dHA6Ly93
d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNpbmxpbmUtcmVwbGFjZWQtd2lkdGgKICAg
ICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6
ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5N
YXhTaXplcyhlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRp
byk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWlu
TWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBpZiAoc3R5
bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAgICAgYm9vbCBjb21wdXRlZEhlaWdo
dElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTgwNyw3ICs3NjQs
NyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAgIC8vIDEwLjYuMiBJbmxpbmUsIHJlcGxh
Y2VkIGVsZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS92aXN1ZGV0Lmh0bWwjaW5s
aW5lLXJlcGxhY2VkLWhlaWdodAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBG
bG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0
cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGVtYmVkZGVkU1ZHUm9vdCgpLCBjb25zdHJh
aW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25z
dHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb25zdHJhaW5lZFNpemUsIGludHJpbnNp
Y1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgpLmxvZ2ljYWxXaWR0aCgp
LmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2ljV2lkdGggPSBjb25zdHJhaW5lZFNpemUu
d2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUud2lkdGgoKSAmJiBzaG91bGRSZXNwZWN0
WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRh
aW5tZW50KCk7CkBAIC0xMDYyLDEwICsxMDE5LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6bGF5
b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXplJiBvbGRTaXplKQogCiBGbG9hdFNpemUg
UmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkgY29uc3QKIHsKLSAgICBGbG9hdFNpemUg
aW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21w
dXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZFNWR1Jvb3QoKSwg
Y29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAgcmV0dXJuIGludHJpbnNpY1Jh
dGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogfQogCiB2b2lkIFJlbmRl
clJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQb3NpdGlvbmVkTG9naWNhbFdpZHRo
KExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1ZXMpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGNhZjc4ODlkN2ExMC4u
NmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
aApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBsYWNlZE1pbkxvZ2ljYWxI
ZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0OwogICAgIGJvb2wgcmVwbGFjZWRNYXhMb2dpY2Fs
SGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwgRmxvYXRTaXplIGNv
bXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVy
cmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFJlbmRlclJlcGxhY2Vk
KFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8UmVwbGFjZWRGbGFnPiA9
IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwgRWxlbWVudCYsIFJlbmRlclN0eWxlJiYs
IGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUsIE9wdGlvblNldDxSZXBsYWNlZEZsYWc+
ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBzdHlsZURp
ZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25z
dDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5z
aWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemU7IH0KICAgICB2aXJ0dWFs
IHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRp
dmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTIx
LDggKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBmaW5hbDsKLSAgICB2b2lkIGNv
bXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlclJlcGxhY2VkKiwg
RmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNv
bnN0OwotICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVy
cmVkTWluTWF4U2l6ZXMoUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3Ry
YWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKKyAgICB2b2lkIGNv
bXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKEZs
b2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25z
dDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3U2VsZWN0aW9uVGludCgpIGNvbnN0Owog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcAppbmRleCBlOGNi
MGEwZTQ5Y2IuLmQ5NTgzZGU2NWJkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cldpZGdldC5jcHAKQEAgLTQ5OCw0ICs0OTgsMzUgQEAgUmVuZGVyUmVwbGFjZWQqIFJlbmRlcldp
ZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJh
bWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7CiB9CiAKK0Zsb2F0U2l6ZSBSZW5k
ZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKK3sKKyAgICBDaGVja2VkUHRy
IHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAgICAg
IHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKworICAgIGF1
dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CisgICAg
aW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworCisgICAgaWYgKCFpc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmluc2lj
U2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgcmV0dXJuIGludHJpbnNpY1NpemU7Cit9CisK
K0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QKK3sK
KyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2
Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0
aW8oKTsKKworICAgIGF1dG8gcmF0aW8gPSBzdmdSb290LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygp
OworICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgp
KQorICAgICAgICByYXRpbyA9IHJhdGlvLnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICBpZiAoc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlz
QXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0eSgpKSkKKyAgICAgICAgcmF0aW8gPSBGbG9h
dFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCku
dmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAg
cmV0dXJuIHJhdGlvOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggMzljNDBlM2JiMDc0Li45MmYyODEzOGNhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKQEAgLTkyLDYgKzkyLDgg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygp
IGNvbnN0IGZpbmFsOwogICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25z
dCBmaW5hbDsKKyAgICBGbG9hdFNpemUgY29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdCBmaW5h
bDsKKyAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5hbDsKIAog
ICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUpIGZpbmFsOwogICAgIHZv
aWQgc2V0T3ZlcmxhcFRlc3RSZXN1bHQoYm9vbCkgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479551</attachid>
            <date>2026-05-09 15:57:26 -0700</date>
            <delta_ts>2026-05-09 17:17:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260509155725.patch</filename>
            <type>text/plain</type>
            <size>27936</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmMDc4OGQ3YTI2NjFlOTBiYjM2MmMzZWMyMThiNzdlOTdjMTc0MmQ2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAxNTo1NDo1NyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRVdTIChQUiB3aXRoIGRlcGVuZGVu
Y2llcykuCgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwOgooV2ViQ29y
ZTo6TG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVkKToKKFdlYkNv
cmU6OkxvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29yZTo6TG9j
YWxGcmFtZVZpZXc6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlv
IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVk
V2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29u
c3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJl
cGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5N
YXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6aGFzSW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNSYXRpbyBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5oOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocyBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJl
bmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
V2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhp
Y3MvU1ZHSW1hZ2UuY3BwOgooV2ViQ29yZTo6U1ZHSW1hZ2U6Om5hdGl2ZUltYWdlKToKKFdlYkNv
cmU6OlNWR0ltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29yZTo6U1ZHSW1hZ2U6
OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlLmg6Ci0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1l
Vmlldy5jcHAgICAgICB8IDI4ICsrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFt
ZVZpZXcuaCAgICAgICAgfCAgMyArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmNwcCAgICB8IDI3ICsrKysrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklt
YWdlLmggICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwIHwgOTMgKysrKy0tLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuaCAgIHwgMTEgKystCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyV2lkZ2V0LmNwcCAgIHwgMzcgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJXaWRnZXQuaCAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L1NWR0ltYWdlLmNwcCAgICB8ICA4ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZH
SW1hZ2UuaCAgICAgIHwgIDQgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDEwMiBpbnNlcnRpb25zKCsp
LCAxMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
bEZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcApp
bmRleCBkZWRlNmI1MDQ1YTYuLmM3YWYyNDhmMDkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2Nh
bEZyYW1lVmlldy5jcHAKQEAgLTEyMTMsMjUgKzEyMTMsMTggQEAgdm9pZCBMb2NhbEZyYW1lVmll
dzo6Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKQogICAgIGlmICghb3duZXJSZW5kZXJl
cikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hlY2tlZFB0ciBjb250ZW50Qm94ID0gZW1iZWRk
ZWRDb250ZW50Qm94KCk7Ci0gICAgaWYgKCFjb250ZW50Qm94KQorICAgIENoZWNrZWRQdHIgc3Zn
Um9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3ZnUm9vdCkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWljRG93bmNhc3Q8TGVnYWN5UmVu
ZGVyU1ZHUm9vdD4oY29udGVudEJveC5nZXQoKSkpIHsKLSAgICAgICAgaWYgKHN2Z1Jvb3QtPmV2
ZXJIYWRMYXlvdXQoKSAmJiAhc3ZnUm9vdC0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2FzdDxS
ZW5kZXJTVkdSb290Pihjb250ZW50Qm94LmdldCgpKSkgewotICAgICAgICBpZiAoc3ZnUm9vdC0+
ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91dCgpKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBpZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdS
b290LT5uZWVkc0xheW91dCgpKQorICAgICAgICByZXR1cm47CiAKICAgICBMT0coTGF5b3V0LCAi
TG9jYWxGcmFtZVZpZXcgJXAgZm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQgc2NoZWR1bGlu
ZyBsYXlvdXQgb24gcGFyZW50IExvY2FsRnJhbWVWaWV3ICVwIiwgdGhpcywgJm93bmVyUmVuZGVy
ZXItPnZpZXcoKS5mcmFtZVZpZXcoKSk7CiAKICAgICAvLyBJZiB0aGUgZW1iZWRkZWQgU1ZHIGRv
Y3VtZW50IGFwcGVhcnMgdGhlIGZpcnN0IHRpbWUsIHRoZSBvd25lclJlbmRlcmVyIGhhcyBhbHJl
YWR5IGZpbmlzaGVkCiAgICAgLy8gbGF5b3V0IHdpdGhvdXQga25vd2luZyBhYm91dCB0aGUgZXhp
c3RlbmNlIG9mIHRoZSBlbWJlZGRlZCBTVkcgZG9jdW1lbnQsIGJlY2F1c2UgUmVuZGVyUmVwbGFj
ZWQKLSAgICAvLyBlbWJlZGRlZENvbnRlbnRCb3goKSByZXR1cm5zIG51bGxwdHIsIGFzIGxvbmcg
YXMgdGhlIGVtYmVkZGVkIGRvY3VtZW50IGlzbid0IGxvYWRlZCB5ZXQuIEJlZm9yZQorICAgIC8v
IGVtYmVkZGVkU1ZHUm9vdCgpIHJldHVybnMgbnVsbHB0ciwgYXMgbG9uZyBhcyB0aGUgZW1iZWRk
ZWQgZG9jdW1lbnQgaXNuJ3QgbG9hZGVkIHlldC4gQmVmb3JlCiAgICAgLy8gYm90aGVyaW5nIHRv
IGxheSBvdXQgdGhlIFNWRyBkb2N1bWVudCwgbWFyayB0aGUgb3duZXJSZW5kZXJlciBuZWVkaW5n
IGxheW91dCBhbmQgYXNrIGl0cwogICAgIC8vIExvY2FsRnJhbWVWaWV3IGZvciBhIGxheW91dC4g
QWZ0ZXIgdGhhdCB0aGUgUmVuZGVyRW1iZWRkZWRPYmplY3QgKG93bmVyUmVuZGVyZXIpIGNhcnJp
ZXMgdGhlCiAgICAgLy8gY29ycmVjdCBzaXplLCB3aGljaCBMZWdhY3lSZW5kZXJTVkdSb290Ojpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgvSGVpZ2h0IHJlbHkgb24sIHdoZW4gbGF5aW5nCkBA
IC0xNTIwLDIyICsxNTEzLDE5IEBAIGJvb2wgTG9jYWxGcmFtZVZpZXc6OnNob3VsZERlZmVyU2Ny
b2xsVXBkYXRlQWZ0ZXJDb250ZW50U2l6ZUNoYW5nZSgpCiAgICAgcmV0dXJuIChsYXlvdXRDb250
ZXh0KCkubGF5b3V0UGhhc2UoKSA8IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0
UGhhc2U6OkluUG9zdExheW91dCkgJiYgKGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFzZSgpICE9
IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQp
OwogfQogCi1SZW5kZXJCb3gqIExvY2FsRnJhbWVWaWV3OjplbWJlZGRlZENvbnRlbnRCb3goKSBj
b25zdAorUmVuZGVyUmVwbGFjZWQqIExvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3QoKSBj
b25zdAogewogICAgIENoZWNrZWRQdHIgcmVuZGVyVmlldyA9IHRoaXMtPnJlbmRlclZpZXcoKTsK
ICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgUmVu
ZGVyT2JqZWN0KiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmlyc3RDaGlsZCgpOworICAgIGF1
dG8qIGZpcnN0Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENoaWxkKCk7CiAKLSAgICAvLyBDdXJl
bnRseSBvbmx5IGVtYmVkZGVkIFNWRyBkb2N1bWVudHMgcGFydGljaXBhdGUgaW4gdGhlIHNpemUt
bmVnb3RpYXRpb24gbG9naWMuCisgICAgLy8gQ3VycmVudGx5IG9ubHkgZW1iZWRkZWQgU1ZHIGRv
Y3VtZW50cyBwYXJ0aWNpcGF0ZSBpbiB0aGUgc2l6ZS1uZWdvdGlhdGlvbiBsb2dpYy4KICAgICBp
ZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2FzdDxMZWdhY3lSZW5kZXJTVkdSb290Pihm
aXJzdENoaWxkKSkKICAgICAgICAgcmV0dXJuIHN2Z1Jvb3Q7CiAKLSAgICBpZiAoYXV0byogc3Zn
Um9vdCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTVkdSb290PihmaXJzdENoaWxkKSkKLSAgICAg
ICAgcmV0dXJuIHN2Z1Jvb3Q7Ci0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gZHlu
YW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGZpcnN0Q2hpbGQpOwogfQogCiB2b2lkIExvY2Fs
RnJhbWVWaWV3OjphZGRFbWJlZGRlZE9iamVjdFRvVXBkYXRlKFJlbmRlckVtYmVkZGVkT2JqZWN0
JiBlbWJlZGRlZE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxG
cmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaAppbmRleCAx
YjFjNzBiY2MyNDkuLjA1OTliYTE2YjM2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Mb2NhbEZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZp
ZXcuaApAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBSZW5kZXJFbWJlZGRlZE9iamVjdDsKIGNsYXNz
IFJlbmRlckxheWVyOwogY2xhc3MgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdDsKIGNsYXNzIFJlbmRl
ck9iamVjdDsKK2NsYXNzIFJlbmRlclJlcGxhY2VkOwogY2xhc3MgUmVuZGVyU2Nyb2xsYmFyUGFy
dDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmlldzsKQEAgLTU3OCw3ICs1Nzks
NyBAQCBwdWJsaWM6CiAKICAgICBib29sIE5PREVMRVRFIHNob3VsZFN1c3BlbmRTY3JvbGxBbmlt
YXRpb25zKCkgY29uc3QgZmluYWw7CiAKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJv
eCgpIGNvbnN0OworICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdDsK
ICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRyYWNrc1JlcGFpbnRzKGJvb2wpOwog
ICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pc1RyYWNraW5n
UmVwYWludHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4
IDliMjA5OTViYjNmYi4uZDAyNTYxYjk5ODlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJbWFnZS5jcHAKQEAgLTk0MSw2ICs5NDEsMTYgQEAgdm9pZCBSZW5kZXJJbWFnZTo6bGF5
b3V0KCkKIEZsb2F0U2l6ZSBSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25z
dAogewogICAgIEFTU0VSVCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisKKyAgICBp
ZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0
byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAg
ICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOworICAgICAgICBpbnRy
aW5zaWNTaXplLnNjYWxlKGltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAgICAgICAgaWYgKCFp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGlu
dHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgcmV0dXJuIGludHJpbnNpY1Np
emU7CisgICAgfQorCiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVJbnRyaW5zaWNTaXplKCk7CiAKICAgICAvLyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0
eSBpZiB3ZSdyZSByZW5kZXJpbmcgZ2VuZXJhdGVkIGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRo
L2hlaWdodC4gRmlndXJlIG91dCB0aGUgcmlnaHQgaW50cmluc2ljIHNpemUgdG8gdXNlLgpAQCAt
OTY2LDYgKzk3NiwxNyBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJh
dGlvKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAgICBp
ZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0
byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlmICgh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHlsZSgp
LmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRv
QW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBGbG9h
dFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCku
dmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAg
ICAgIHJldHVybiByYXRpbzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnBy
ZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiB9CiAKQEAgLTk3MywxNCArOTk0LDE0IEBAIGJvb2wgUmVu
ZGVySW1hZ2U6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdAogewogICAg
IGlmIChSZW5kZXJSZXBsYWNlZDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7Cisg
ICAgcmV0dXJuIGVtYmVkZGVkU1ZHUm9vdCgpOwogfQogCi1SZW5kZXJCb3gqIFJlbmRlckltYWdl
OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFJlbmRlckltYWdl
OjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIGlmIChSZWZQdHIgY2FjaGVkSW1hZ2Ug
PSB0aGlzLT5jYWNoZWRJbWFnZSgpKSB7CiAgICAgICAgIGlmIChSZWZQdHIgaW1hZ2UgPSBkeW5h
bWljRG93bmNhc3Q8U1ZHSW1hZ2U+KGNhY2hlZEltYWdlLT5pbWFnZSgpKSkKLSAgICAgICAgICAg
IHJldHVybiBpbWFnZS0+ZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgICAgICAgICByZXR1cm4g
aW1hZ2UtPmVtYmVkZGVkU1ZHUm9vdCgpOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggMmNlNzU0OTUyYWZlLi41
ZWFmOTJhNjE3NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC04
OSw3ICs4OSw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJy
aWRlOwogCiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3Qg
ZmluYWw7Ci0gICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5hbDsK
KyAgICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAg
RmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRT
aXplIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3Jv
dW5kSXNLbm93blRvQmVPcGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1
bnNpZ25lZCBtYXhEZXB0aFRvVGVzdCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCBmMDNhMTNmN2ViMTAuLmUzNzZkYmI1
NzJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBA
IC00NzAsNjQgKzQ3MCwyNSBAQCBzdGF0aWMgYm9vbCBpc1ZpZGVvV2l0aERlZmF1bHRPYmplY3RT
aXplKGNvbnN0IFJlbmRlclJlcGxhY2VkKiBtYXliZVZpZGVvKQogICAgIHJldHVybiBmYWxzZTsK
IH0gCiAKLXZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9u
Rm9yUmVuZGVyQm94KFJlbmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNpemUmIGNvbnN0
cmFpbmVkU2l6ZSwgRmxvYXRTaXplJiBwcmVmZXJyZWRBc3BlY3RSYXRpbykgY29uc3QKK3ZvaWQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2Zl
cnJlZE1pbk1heFNpemVzKEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgRmxvYXRTaXplJiBpbnRy
aW5zaWNSYXRpbykgY29uc3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZTsKICAgICBp
ZiAoc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAgICBp
bnRyaW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0g
ICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFz
cGVjdFJhdGlvKCk7Ci0gICAgfSBlbHNlIGlmIChjb250ZW50UmVuZGVyZXIpIHsKLSAgICAgICAg
Ym9vbCBjb250ZW50SXNSZW5kZXJSZXBsYWNlZCA9IGZhbHNlOwotICAgICAgICBpZiAoYXV0byog
cmVuZGVyUmVwbGFjZWQgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGNvbnRlbnRS
ZW5kZXJlcikpIHsKLSAgICAgICAgICAgIGludHJpbnNpY1NpemUgPSByZW5kZXJSZXBsYWNlZC0+
Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlv
ID0gcmVuZGVyUmVwbGFjZWQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0gICAgICAgICAgICBj
b250ZW50SXNSZW5kZXJSZXBsYWNlZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0
eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5p
c0F1dG9BbmRSYXRpbygpICYmIHByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSkpCi0gICAg
ICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9u
KHN0eWxlKCkuYXNwZWN0UmF0aW8oKS53aWR0aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVjdFJhdGlv
KCkuaGVpZ2h0KCkudmFsdWUpOwotCi0gICAgICAgIC8vIEhhbmRsZSB6b29tICYgdmVydGljYWwg
d3JpdGluZyBtb2RlcyBoZXJlLCBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgZG9lc24ndCBrbm93
IGFib3V0IHRoZW0uCi0gICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoc3R5bGUoKS51c2VkWm9v
bSgpKTsKLQotICAgICAgICBpZiAoYXV0byogaW1hZ2UgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVy
SW1hZ2U+KCp0aGlzKSkKLSAgICAgICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoaW1hZ2UtPmlt
YWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKLQotICAgICAgICAvLyBVcGRhdGUgb3VyIGludHJpbnNp
YyBzaXplIHRvIG1hdGNoIHdoYXQgdGhlIGNvbnRlbnQgcmVuZGVyZXIgaGFzIGNvbXB1dGVkLCBz
byB0aGF0IHdoZW4gd2UKLSAgICAgICAgLy8gY29uc3RyYWluIHRoZSBzaXplIGJlbG93LCB0aGUg
Y29ycmVjdCBpbnRyaW5zaWMgc2l6ZSB3aWxsIGJlIG9idGFpbmVkIGZvciBjb21wYXJpc29uIGFn
YWluc3QKLSAgICAgICAgLy8gbWluIGFuZCBtYXggd2lkdGhzLgotICAgICAgICBpZiAoY29udGVu
dElzUmVuZGVyUmVwbGFjZWQgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewotICAgICAgICAgICAgLy8g
Rm9yIFJlbmRlcldpZGdldCBjb250ZW50IChlLmcuIDxvYmplY3Q+IGVtYmVkZGluZyBhbiBTVkcg
ZG9jdW1lbnQpLCBhbHdheXMgdXBkYXRlCi0gICAgICAgICAgICAvLyBtX2ludHJpbnNpY1NpemUg
dG8gcmVmbGVjdCBjdXJyZW50IGludHJpbnNpYyBkaW1lbnNpb25zLCBhcHBseWluZyBDU1MgZGVm
YXVsdCBmYWxsYmFjawotICAgICAgICAgICAgLy8gdmFsdWVzICgzMDB4MTUwKSBmb3IgZGltZW5z
aW9ucyB3aXRoIG5vIGludHJpbnNpYyB2YWx1ZSAoZS5nLiBwZXJjZW50YWdlLXNpemVkIG9yCi0g
ICAgICAgICAgICAvLyByZW1vdmVkIGF0dHJpYnV0ZXMpLiBUaGlzIHByZXZlbnRzIHN0YWxlIGNh
Y2hlZCBzaXplcyB3aGVuIGF0dHJpYnV0ZXMgbGlrZSB3aWR0aC9oZWlnaHQKLSAgICAgICAgICAg
IC8vIGFyZSByZW1vdmVkLiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIFJlbmRlckltYWdl
ICg8aW1nIHNyYz0ic3ZnIj4pLCB3aGljaCBtYW5hZ2VzCi0gICAgICAgICAgICAvLyBpdHMgb3du
IGludHJpbnNpYyBzaXplIHZpYSBzZXRJbnRyaW5zaWNTaXplKCkgZHVyaW5nIGltYWdlIGxvYWQu
Ci0gICAgICAgICAgICBhdXRvIHNpemVUb0NhY2hlID0gaW50cmluc2ljU2l6ZTsKKyAgICAgICAg
aW50cmluc2ljUmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsK
KyAgICB9IGVsc2UgeworICAgICAgICBpbnRyaW5zaWNTaXplID0gY29tcHV0ZUludHJpbnNpY1Np
emUoKTsKKyAgICAgICAgaW50cmluc2ljUmF0aW8gPSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwor
CisgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
aW50cmluc2ljU2l6ZSA6IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAg
aWYgKGVtYmVkZGVkU1ZHUm9vdCgpICYmIGlzUmVuZGVyV2lkZ2V0KCkpIHsKICAgICAgICAgICAg
IGlmICghc2l6ZVRvQ2FjaGUud2lkdGgoKSkKICAgICAgICAgICAgICAgICBzaXplVG9DYWNoZS5z
ZXRXaWR0aChjRGVmYXVsdFdpZHRoKTsKICAgICAgICAgICAgIGlmICghc2l6ZVRvQ2FjaGUuaGVp
Z2h0KCkpCiAgICAgICAgICAgICAgICAgc2l6ZVRvQ2FjaGUuc2V0SGVpZ2h0KGNEZWZhdWx0SGVp
Z2h0KTsKICAgICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoc2l6ZVRvQ2Fj
aGUpOwotICAgICAgICB9IGVsc2UgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkg
JiYgIWludHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJpbnNpY1NpemUg
PSBMYXlvdXRTaXplKGludHJpbnNpY1NpemUpOwotCi0gICAgICAgIGlmICghaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSkgewotICAgICAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5p
c0VtcHR5KCkpCi0gICAgICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBwcmVmZXJy
ZWRBc3BlY3RSYXRpby50cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICAgICAgaW50cmluc2ljU2l6
ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKLSAgICAgICAgfQotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIGludHJpbnNpY1NpemUgPSBjb21wdXRlSW50cmluc2ljU2l6ZSgpOwotICAg
ICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHRoaXMtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7
Ci0gICAgICAgIGlmICghcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5z
aWNTaXplLmlzWmVybygpKQotICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6
ZShpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gaW50cmluc2ljU2l6ZSA6IGludHJpbnNpY1Np
emUudHJhbnNwb3NlZFNpemUoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWludHJpbnNpY1JhdGlv
LmlzRW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKKyAgICAgICAgICAgIG1faW50
cmluc2ljU2l6ZSA9IExheW91dFNpemUoc2l6ZVRvQ2FjaGUpOwogICAgIH0KLSAgICBjb25zdHJh
aW5lZFNpemUgPSBpbnRyaW5zaWNTaXplOwotfQotCi12b2lkIFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhSZW5k
ZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBGbG9hdFNp
emUmIGludHJpbnNpY1JhdGlvKSBjb25zdAotewotICAgIGNvbXB1dGVBc3BlY3RSYXRpb0luZm9y
bWF0aW9uRm9yUmVuZGVyQm94KGNvbnRlbnRSZW5kZXJlciwgaW50cmluc2ljU2l6ZSwgaW50cmlu
c2ljUmF0aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2ljIHNpemUgYWxv
bmcgZWFjaCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRoL2hlaWdo
dHMgYWxvbmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1wbGUgYSBtYXhp
bXVtIHdpZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4gdGhlIGhlaWdo
dCB3ZSBjb21wdXRlIGhlcmUKQEAgLTU5OSwyMyArNTYwLDE2IEBAIExheW91dFJlY3QgUmVuZGVy
UmVwbGFjZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2lj
U2l6ZSkKIAogZG91YmxlIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljQXNwZWN0UmF0
aW8oKSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKLSAgICBGbG9hdFNp
emUgaW50cmluc2ljU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJl
bmRlckJveChlbWJlZGRlZENvbnRlbnRCb3goKSwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0
aW8pOwotICAgIHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAg
IHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiB9CiAK
IEZsb2F0U2l6ZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAog
ewotICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUs
IHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2
ZXIgYmUgdXNlZC4KLSAgICBBU1NFUlQoIWVtYmVkZGVkQ29udGVudEJveCgpIHx8IHNob3VsZEFw
cGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGludHJpbnNp
Y0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAogRmxvYXRT
aXplIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAg
Ly8gSWYgdGhlcmUncyBhbiBlbWJlZGRlZENvbnRlbnRCb3goKSBvZiBhIHJlbW90ZSwgcmVmZXJl
bmNlZCBkb2N1bWVudCBhdmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1
c2VkLgotICAgIEFTU0VSVCghZW1iZWRkZWRDb250ZW50Qm94KCkgfHwgc2hvdWxkQXBwbHlTaXpl
T3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxv
YXRTaXplKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkp
OwogICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNjk4LDEzICs2NTIs
OSBAQCBzdGF0aWMgaW5saW5lIExheW91dFVuaXQgTk9ERUxFVEUgcmVzb2x2ZVdpZHRoRm9yUmF0
aW8oTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaQogICAgIHJldHVybiBMYXlvdXRVbml0KGxvZ2lj
YWxIZWlnaHQgKiBhc3BlY3RSYXRpbyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBOT0RFTEVU
RSBoYXNJbnRyaW5zaWNTaXplKFJlbmRlckJveCpjb250ZW50UmVuZGVyZXIsIGJvb2wgaGFzSW50
cmluc2ljV2lkdGgsIGJvb2wgaGFzSW50cmluc2ljSGVpZ2h0ICkKK3N0YXRpYyBpbmxpbmUgYm9v
bCBOT0RFTEVURSBoYXNJbnRyaW5zaWNTaXplKGNvbnN0IFJlbmRlclJlcGxhY2VkKiBzdmdSb290
LCBib29sIGhhc0ludHJpbnNpY1dpZHRoLCBib29sIGhhc0ludHJpbnNpY0hlaWdodCkKIHsKLSAg
ICBpZiAoaGFzSW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBpZiAoaGFzSW50cmluc2ljV2lkdGggfHwgaGFzSW50cmluc2ljSGVp
Z2h0KQotICAgICAgICByZXR1cm4gY29udGVudFJlbmRlcmVyICYmIGNvbnRlbnRSZW5kZXJlci0+
aXNSZW5kZXJPckxlZ2FjeVJlbmRlclNWR1Jvb3QoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIChoYXNJbnRyaW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpIHx8ICgoaGFz
SW50cmluc2ljV2lkdGggfHwgaGFzSW50cmluc2ljSGVpZ2h0KSAmJiBzdmdSb290KTsKIH0KIAog
TGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNo
b3VsZENvbXB1dGVQcmVmZXJyZWQgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKQEAgLTcx
NSwxMiArNjY1LDEwIEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgaWYgKHN0eWxlLmxv
Z2ljYWxXaWR0aCgpLmlzSW50cmluc2ljT3JTdHJldGNoKCkpCiAgICAgICAgIHJldHVybiBjb21w
dXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxh
Y2VkTG9naWNhbFdpZHRoVXNpbmcoc3R5bGUubG9naWNhbFdpZHRoKCkpLCBzaG91bGRDb21wdXRl
UHJlZmVycmVkKTsKIAotICAgIFJlbmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRD
b250ZW50Qm94KCk7Ci0KICAgICAvLyAxMC4zLjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50czog
aHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNlZC13
aWR0aAogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3Ry
YWluZWRTaXplOwotICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2Zl
cnJlZE1pbk1heFNpemVzKGNvbnRlbnRSZW5kZXJlciwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5z
aWNSYXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVy
cmVkTWluTWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBp
ZiAoc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAgICAgYm9vbCBjb21wdXRl
ZEhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTczMCw3
ICs2NzgsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaAogICAgICAgICAvLyBGb3IgZmxleCBv
ciBncmlkIGl0ZW1zIHdoZXJlIHRoZSBsb2dpY2FsIGhlaWdodCBoYXMgYmVlbiBvdmVycmlkZW4g
dGhlbiB3ZSBzaG91bGQgdXNlIHRoYXQgc2l6ZSB0byBjb21wdXRlIHRoZSByZXBsYWNlZCB3aWR0
aCBhcyBsb25nIGFzIHRoZSBmbGV4IG9yCiAgICAgICAgIC8vIGdyaWQgaXRlbSBoYXMgYW4gaW50
cmluc2ljIHNpemUuIEl0IGlzIHBvc3NpYmxlIChpbmRlZWQsIGNvbW1vbikgZm9yIGFuIFNWRyBn
cmFwaGljIHRvIGhhdmUgYW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyBidXQgbm90IHRvIGhhdmUg
YW4gaW50cmluc2ljCiAgICAgICAgIC8vIHdpZHRoIG9yIGhlaWdodC4gVGhlcmUgYXJlIGFsc28g
ZWxlbWVudHMgd2l0aCBpbnRyaW5zaWMgc2l6ZXMgYnV0IHdpdGhvdXQgaW50cmluc2ljIHJhdGlv
IChsaWtlIGFuIGlmcmFtZSkuCi0gICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVp
Z2h0ID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dy
aWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRyaW5z
aWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJCb3hM
b2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQpKQorICAgICAgICBpZiAoYXV0byBvdmVycmlk
aW5nTG9naWNhbEhlaWdodCA9ICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJ
dGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAmJiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9v
dCgpLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJy
aWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQpKQogICAgICAgICAg
ICAgcmV0dXJuIGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0
aChjb250ZW50Qm94TG9naWNhbEhlaWdodCgqb3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpICogaW50
cmluc2ljUmF0aW8uYXNwZWN0UmF0aW9Eb3VibGUoKSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7
CiAKICAgICAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1dGVk
IHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJpbnNpYyB3
aWR0aCwgdGhlbiB0aGF0IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lk
dGgnLgpAQCAtODEzLDE5ICs3NjEsMTcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29t
cHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQKICAgICBp
ZiAoaGFzUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVw
bGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb21wdXRlUmVwbGFjZWRM
b2dpY2FsSGVpZ2h0VXNpbmcoc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkpKTsKIAotICAgIFJlbmRl
ckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0KICAgICAvLyAx
MC42LjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50czogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NT
MjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNlZC1oZWlnaHQKICAgICBGbG9hdFNpemUgaW50
cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRl
SW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb250ZW50
UmVuZGVyZXIsIGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVJ
bnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGNvbnN0cmFp
bmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgYm9vbCB3aWR0aElzQXV0byA9IHN0eWxl
KCkubG9naWNhbFdpZHRoKCkuaXNBdXRvKCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCA9
IGNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpID4gMCB8fCAoIWNvbnN0cmFpbmVkU2l6ZS53aWR0aCgp
ICYmIHNob3VsZFJlc3BlY3RaZXJvSW50cmluc2ljV2lkdGgoKSkgfHwgc2hvdWxkQXBwbHlTaXpl
T3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKTsKICAgICBib29sIGhhc0ludHJpbnNpY0hlaWdodCA9
IGNvbnN0cmFpbmVkU2l6ZS5oZWlnaHQoKSA+IDAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1l
bnQoKTsKIAogICAgIC8vIFNlZSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgZm9yIGEg
c2ltaWxhciBjaGVjayBmb3IgaGVpZ2h0cy4KLSAgICBpZiAoYXV0byBvdmVycmlkaW5nbG9naWNh
bFdpZHRoID0gKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBp
c0dyaWRJdGVtKCkpICYmIGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRy
aW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hMb2dp
Y2FsV2lkdGgoKSA6IHN0ZDo6bnVsbG9wdCkpCisgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xvZ2lj
YWxXaWR0aCA9ICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwg
aXNHcmlkSXRlbSgpKSAmJiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBoYXNJ
bnRyaW5zaWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hM
b2dpY2FsV2lkdGgoKSA6IHN0ZDo6bnVsbG9wdCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVw
bGFjZWRMb2dpY2FsSGVpZ2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb250ZW50Qm94TG9naWNh
bFdpZHRoKCpvdmVycmlkaW5nbG9naWNhbFdpZHRoKSAqIGludHJpbnNpY1JhdGlvLnRyYW5zcG9z
ZWRTaXplKCkuYXNwZWN0UmF0aW9Eb3VibGUoKSk7CiAKICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQg
J3dpZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1l
bnQgYWxzbyBoYXMgYW4gaW50cmluc2ljIGhlaWdodCwgdGhlbiB0aGF0IGludHJpbnNpYyBoZWln
aHQgaXMgdGhlIHVzZWQgdmFsdWUgb2YgJ2hlaWdodCcuCkBAIC0xMDczLDEwICsxMDE5LDcgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXpl
JiBvbGRTaXplKQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkg
Y29uc3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNv
bnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRl
ckJveChlbWJlZGRlZENvbnRlbnRCb3goKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRp
byk7Ci0gICAgcmV0dXJuIGludHJpbnNpY1JhdGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpOwogfQogCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRP
ZkZsb3dQb3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYg
Y29tcHV0ZWRWYWx1ZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5oCmluZGV4IGFiM2Y0NzEwYWE5MC4uNmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAg
ICAgYm9vbCByZXBsYWNlZE1pbkxvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0Owog
ICAgIGJvb2wgcmVwbGFjZWRNYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsK
IAorICAgIHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJv
dGVjdGVkOgogICAgIFJlbmRlclJlcGxhY2VkKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYm
LCBPcHRpb25TZXQ8UmVwbGFjZWRGbGFnPiA9IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlw
ZSwgRWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1Np
emUsIE9wdGlvblNldDxSZXBsYWNlZEZsYWc+ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJv
dGVjdGVkOgogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRT
aXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUg
cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6
ZShjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGlu
dHJpbnNpY1NpemU7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsK
ICAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIGNvbXB1dGVBc3BlY3RSYXRpb0FkanVzdGVkSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlv
dXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29u
c3Q7CiAKLSAgICB2aXJ0dWFsIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Qg
eyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9v
dCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICBBU0NJSUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuICJSZW5kZXJSZXBsYWNlZCJfczsgfQogCiAgICAgYm9vbCBj
YW5IYXZlQ2hpbGRyZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTIx
LDggKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJl
Y3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWlu
ZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBmaW5hbDsKLSAgICB2b2lkIGNv
bXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlckJveCosIEZsb2F0
U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsK
LSAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1p
bk1heFNpemVzKFJlbmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNpemUmIGNvbnN0cmFp
bmVkU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7CisgICAgdm9pZCBjb21w
dXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhGbG9h
dFNpemUmIGNvbnN0cmFpbmVkU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHJhd1NlbGVjdGlvblRpbnQoKSBjb25zdDsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggNGRhNTA4
YjZhNzNhLi5kOTU4M2RlNjViZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJXaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJX
aWRnZXQuY3BwCkBAIC00ODcsMTUgKzQ4Nyw0NiBAQCBib29sIFJlbmRlcldpZGdldDo6c2hvdWxk
SW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0CiB7CiAgICAgaWYgKFJlbmRlclJlcGxh
Y2VkOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkpCiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIHJldHVybiBlbWJlZGRlZENvbnRlbnRCb3goKTsKKyAgICByZXR1cm4gZW1iZWRk
ZWRTVkdSb290KCk7CiB9CiAKLVJlbmRlckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRl
bnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRTVkdS
b290KCkgY29uc3QKIHsKICAgICBpZiAoIWlzPFJlbmRlckVtYmVkZGVkT2JqZWN0Pih0aGlzKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgUmVmUHRyIGZyYW1lVmlldyA9IGR5bmFtaWNE
b3duY2FzdDxMb2NhbEZyYW1lVmlldz4od2lkZ2V0KCkpOwotICAgIHJldHVybiBmcmFtZVZpZXcg
PyBmcmFtZVZpZXctPmVtYmVkZGVkQ29udGVudEJveCgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4g
ZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7Cit9CisK
K0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKK3sK
KyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2
Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1Np
emUoKTsKKworICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1dGVJbnRyaW5z
aWNTaXplKCk7CisgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOwor
CisgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICBpbnRyaW5zaWNT
aXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgcmV0dXJuIGludHJp
bnNpY1NpemU7Cit9CisKK0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OnByZWZlcnJlZEFzcGVjdFJh
dGlvKCkgY29uc3QKK3sKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3Qo
KTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cHJl
ZmVycmVkQXNwZWN0UmF0aW8oKTsKKworICAgIGF1dG8gcmF0aW8gPSBzdmdSb290LT5wcmVmZXJy
ZWRBc3BlY3RSYXRpbygpOworICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAh
cmF0aW8uaXNFbXB0eSgpKQorICAgICAgICByYXRpbyA9IHJhdGlvLnRyYW5zcG9zZWRTaXplKCk7
CisKKyAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5h
c3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0eSgpKSkKKyAgICAg
ICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlv
TG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCku
dmFsdWUpOworCisgICAgcmV0dXJuIHJhdGlvOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggZTAxNzgxNjIwMGRm
Li45MmYyODEzOGNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgK
QEAgLTkxLDcgKzkxLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnQoKSBjb25zdCA9IGRl
bGV0ZTsKIAogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0
IGZpbmFsOwotICAgIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmluYWw7
CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOworICAg
IEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIEZsb2F0
U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzZXRT
ZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBzZXRPdmVybGFw
VGVzdFJlc3VsdChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCmluZGV4IDlhMGQ0ODI2YTY5MC4uODYyOWUwZWQyMTZiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKQEAgLTI3Niw4ICsyNzYsOCBAQCBSZWZQdHI8TmF0
aXZlSW1hZ2U+IFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb25zdCBGbG9hdFNpemUmIHNpemUsIGNv
bnN0IERlc3RpbmF0aQogICAgIGF1dG8gcmVuZGVyaW5nTW9kZSA9IG1fcGFnZS0+c2V0dGluZ3Mo
KS5hY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKCkgPyBSZW5kZXJpbmdNb2RlOjpBY2NlbGVyYXRl
ZCA6IFJlbmRlcmluZ01vZGU6OlVuYWNjZWxlcmF0ZWQ7CiAKICAgICBIb3N0V2luZG93KiBob3N0
V2luZG93ID0gbnVsbHB0cjsKLSAgICBpZiAoQ2hlY2tlZFB0ciBjb250ZW50UmVuZGVyZXIgPSBl
bWJlZGRlZENvbnRlbnRCb3goKSkKLSAgICAgICAgaG9zdFdpbmRvdyA9IGNvbnRlbnRSZW5kZXJl
ci0+aG9zdFdpbmRvdygpOworICAgIGlmIChDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNW
R1Jvb3QoKSkKKyAgICAgICAgaG9zdFdpbmRvdyA9IHN2Z1Jvb3QtPmhvc3RXaW5kb3coKTsKIAog
ICAgIFJlZlB0ciBpbWFnZUJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGUoc2l6ZSwgcmVuZGVy
aW5nTW9kZSwgUmVuZGVyaW5nUHVycG9zZTo6RE9NLCAxLCBjb2xvclNwYWNlLCBQaXhlbEZvcm1h
dDo6QkdSQTgsIGhvc3RXaW5kb3cpOwogICAgIGlmICghaW1hZ2VCdWZmZXIpCkBAIC0zOTIsMTIg
KzM5MiwxMiBAQCBJbWFnZURyYXdSZXN1bHQgU1ZHSW1hZ2U6OmRyYXcoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlYwogICAgIHJldHVybiBJbWFnZURyYXdS
ZXN1bHQ6OkRpZERyYXc7CiB9CiAKLVJlbmRlckJveCogU1ZHSW1hZ2U6OmVtYmVkZGVkQ29udGVu
dEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogU1ZHSW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCgp
IGNvbnN0CiB7CiAgICAgUmVmUHRyIHJvb3RFbGVtZW50ID0gdGhpcy0+cm9vdEVsZW1lbnQoKTsK
ICAgICBpZiAoIXJvb3RFbGVtZW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1
cm4gZG93bmNhc3Q8UmVuZGVyQm94Pihyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7CisgICAgcmV0
dXJuIGRvd25jYXN0PFJlbmRlclJlcGxhY2VkPihyb290RWxlbWVudC0+cmVuZGVyZXIoKSk7CiB9
CiAKIExvY2FsRnJhbWVWaWV3KiBTVkdJbWFnZTo6ZnJhbWVWaWV3KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmgKaW5kZXggZjQ1NzdkNWNmMDQyLi5mNzQzYTM3MDMy
YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBJbWFnZUJ1ZmZlcjsKIGNsYXNzIExvY2FsRnJhbWVW
aWV3OwogY2xhc3MgUGFnZTsKLWNsYXNzIFJlbmRlckJveDsKK2NsYXNzIFJlbmRlclJlcGxhY2Vk
OwogY2xhc3MgU1ZHU1ZHRWxlbWVudDsKIGNsYXNzIFNWR0ltYWdlQ2hyb21lQ2xpZW50OwogY2xh
c3MgU1ZHSW1hZ2VGb3JDb250YWluZXI7CkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCB0cnlDcmVhdGVGcm9tRGF0YShzdGQ6OnNwYW48Y29u
c3QgdWludDhfdD4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVmUHRyPFNWR0ltYWdlPiYmKT4m
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgaXNEYXRhRGVjb2RhYmxlKGNvbnN0
IFNldHRpbmdzJiwgc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+KTsKIAotICAgIFJlbmRlckJveCog
ZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVk
U1ZHUm9vdCgpIGNvbnN0OwogICAgIExvY2FsRnJhbWVWaWV3KiBOT0RFTEVURSBmcmFtZVZpZXco
KSBjb25zdDsKIAogICAgIGJvb2wgaXNTVkdJbWFnZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0K
</data>
<flag name="commit-queue"
          id="500757"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479554</attachid>
            <date>2026-05-09 17:49:42 -0700</date>
            <delta_ts>2026-05-09 18:32:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260509174941.patch</filename>
            <type>text/plain</type>
            <size>20041</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBmYzBlYmQ3ODJiODBhNGVkZGE5OGU1ZjJmODM5MTM2ZDU4MDA3YzFmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAyMDoyODo0MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUHJldmlvdXNseSwgYSBzaW5nbGUg
bW9ub2xpdGhpYyBmdW5jdGlvbiAoY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5k
ZXJCb3gpCmhhbmRsZWQgdGhyZWUgdGFza3MgYXQgb25jZToKMS4gZ2V0dGluZyB0aGUgaW50cmlu
c2ljIHNpemUsCjIuIGdldHRpbmcgdGhlIHByZWZlcnJlZCBhc3BlY3QgcmF0aW8sIGFuZAozLiBj
YWNoaW5nIHRoZSByZXN1bHQgdG8gbV9pbnRyaW5zaWNTaXplLgoKSXQgdG9vayBhIFJlbmRlclJl
cGxhY2VkKiBwYXJhbWV0ZXIgdG8gb3B0aW9uYWxseSBkZWxlZ2F0ZSB0byBhbiBlbWJlZGRlZCBT
Vkcgcm9vdCByZW5kZXJlci4KClRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoaXMgbWFkZSBpdCBpbXBv
c3NpYmxlIHRvIGFzayBmb3IganVzdCB0aGUgcmF0aW8gd2l0aG91dAphbHNvIGNvbXB1dGluZyB0
aGUgc2l6ZSBhbmQgdHJpZ2dlcmluZyB0aGUgY2FjaGUgdXBkYXRlLiBDYWxsZXJzIGxpa2UKY29t
cHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgYW5kIGludHJpbnNpY1JhdGlvKCkgb25seSBuZWVk
ZWQgdGhlIHJhdGlvIGJ1dApoYWQgdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgY29tYmluZWQgZnVu
Y3Rpb24uCgpUaGUgZml4IG1vdmVzIGVtYmVkZGVkLWNvbnRlbnQgaGFuZGxpbmcgaW50byB2aXJ0
dWFsIG92ZXJyaWRlcyB3aGVyZSB0aGUgbG9naWMgYmVsb25nczoKLSBSZW5kZXJJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY1NpemUoKSBhbmQgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBub3cgaGFuZGxl
CiAgdGhlIFNWRy1pbWFnZSBlbWJlZGRlZCBjYXNlICh6b29tLCBEUFIsIHdyaXRpbmcgbW9kZSku
Ci0gUmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGFuZCBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpIG5vdyBoYW5kbGUKICB0aGUgaWZyYW1lL29iamVjdCBlbWJlZGRlZCBjYXNlICh6
b29tLCB3cml0aW5nIG1vZGUpLgoKVGhpcyBlbGltaW5hdGVzIGNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94IGVudGlyZWx5IGFuZCByZW1vdmVzCnRoZSBSZW5kZXJSZXBs
YWNlZCogcGFyYW1ldGVyIGZyb20gY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRy
YW5zZmVycmVkTWluTWF4U2l6ZXMuClJhdGlvIHF1ZXJpZXMgKGNvbXB1dGVJbnRyaW5zaWNBc3Bl
Y3RSYXRpbywgaW50cmluc2ljUmF0aW8pIGFyZSBub3cgc2ltcGxlIG9uZS1saW5lcnMgd2l0aCBu
byBzaWRlIGVmZmVjdHMuCgpObyBiZWhhdmlvciBjaGFuZ2UgKHRoZSBtX2ludHJpbnNpY1NpemUg
Y2FjaGluZyBzdGlsbCBoYXBwZW5zIGR1cmluZyBsYXlvdXQKdmlhIGNvbXB1dGVJbnRyaW5zaWNT
aXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKQoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmNvbXB1
dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwcmVmZXJyZWRB
c3BlY3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXND
b25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6aW50cmluc2ljUmF0aW8gY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94
IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6Y29tcHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyV2lkZ2V0OjpwcmVmZXJyZWRBc3BlY3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3Bl
Y3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVn
YWN5UmVuZGVyU1ZHUm9vdC5jcHA6CihXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21w
dXRlSW50cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSb290Ojpw
cmVmZXJyZWRBc3BlY3RSYXRpbyBjb25zdCk6Ci0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcCAgICAgIHwgMzMgKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwICAgfCA3NCArKysrLS0tLS0tLS0tLS0tLS0tCiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaCAgICAgfCAgOSArLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwICAgICB8IDMxICsrKysrKysrCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmggICAgICAgfCAgMiArCiAuLi4v
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwICAgfCAgOCArLQogLi4uL3N2
Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgICAgICAgIHwgIDggKy0KIDcgZmlsZXMg
Y2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgNzEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYTUzMGY0YmQzYjUyLi4xMjNmNzNkN2Yx
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtOTQwLDcg
Kzk0MCwyMSBAQCB2b2lkIFJlbmRlckltYWdlOjpsYXlvdXQoKQogCiBGbG9hdFNpemUgUmVuZGVy
SW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXNob3Vs
ZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJl
c3NlcyBpbnRyaW5zaWMgZGltZW5zaW9ucyBmcm9tIGNvbnRlbnQuIFRoZSBiYXNlCisgICAgLy8g
Y2xhc3MgcmV0dXJucyB2YWx1ZXMgZnJvbSB0aGUgY2FjaGUgLyBjb250YWluLWludHJpbnNpYy1z
aXplIHdpdGhvdXQKKyAgICAvLyBxdWVyeWluZyBpbWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNv
bXB1dGVJbnRyaW5zaWNTaXplKCk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1i
ZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+
Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHls
ZSgpLnVzZWRab29tKCkpOworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGltYWdlRGV2aWNl
UGl4ZWxSYXRpbygpKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQor
ICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUo
KTsKKyAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisgICAgfQorCiAgICAgYXV0byBpbnRy
aW5zaWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAKICAg
ICAvLyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJpbmcgZ2VuZXJh
dGVkIGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91dCB0aGUgcmln
aHQgaW50cmluc2ljIHNpemUgdG8gdXNlLgpAQCAtOTU3LDcgKzk3MSwxMSBAQCBGbG9hdFNpemUg
UmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJl
bmRlckltYWdlOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFz
aG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1
cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAg
Ly8gYXNwZWN0IHJhdGlvIGZyb20gdGhlIENTUyBhc3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3Rp
bGwgYXZhaWxhYmxlIHZpYSB0aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1
ZXJ5IGltYWdlIGRhdGEpLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQor
ICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAK
ICAgICAvLyBEb24ndCBjb21wdXRlIGFuIGludHJpbnNpYyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0
b3JpY2FsIFdlYktpdCBiZWhhdmlvciBpZiB3ZSdyZSBwYWludGluZyBhbHQgdGV4dCBhbmQvb3Ig
YSBicm9rZW4gaW1hZ2UuCiAgICAgaWYgKHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkg
ewpAQCAtOTY2LDYgKzk4NCwxNyBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFz
cGVjdFJhdGlvKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAK
KyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAg
ICAgYXV0byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAg
IGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAg
ICAgICAgICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChz
dHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCku
aXNBdXRvQW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8g
PSBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdp
ZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOwor
CisgICAgICAgIHJldHVybiByYXRpbzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFj
ZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGNjZmVhYWU1NzdmMy4uZTM3NmRiYjU3MmI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTQ3MCw2
MSArNDcwLDI1IEBAIHN0YXRpYyBib29sIGlzVmlkZW9XaXRoRGVmYXVsdE9iamVjdFNpemUoY29u
c3QgUmVuZGVyUmVwbGFjZWQqIG1heWJlVmlkZW8pCiAgICAgcmV0dXJuIGZhbHNlOwogfSAKIAot
dm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5k
ZXJCb3goUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXpl
LCBGbG9hdFNpemUmIHByZWZlcnJlZEFzcGVjdFJhdGlvKSBjb25zdAordm9pZCBSZW5kZXJSZXBs
YWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4
U2l6ZXMoRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlv
KSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwogICAgIGlmIChzaG91bGRB
cHBseVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAgICAgIGludHJpbnNpY1Np
emUgPSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgcHJl
ZmVycmVkQXNwZWN0UmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8o
KTsKLSAgICB9IGVsc2UgaWYgKHN2Z1Jvb3QpIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IHN2
Z1Jvb3QtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJh
dGlvID0gc3ZnUm9vdC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLQotICAgICAgICBpZiAoc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlz
QXV0b0FuZFJhdGlvKCkgJiYgcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKSkKLSAgICAg
ICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24o
c3R5bGUoKS5hc3BlY3RSYXRpbygpLndpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW8o
KS5oZWlnaHQoKS52YWx1ZSk7Ci0KLSAgICAgICAgLy8gSGFuZGxlIHpvb20gJiB2ZXJ0aWNhbCB3
cml0aW5nIG1vZGVzIGhlcmUsIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBkb2Vzbid0IGtub3cg
YWJvdXQgdGhlbS4KLSAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29t
KCkpOwotCi0gICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJ
bWFnZT4oKnRoaXMpKQotICAgICAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFnZS0+aW1h
Z2VEZXZpY2VQaXhlbFJhdGlvKCkpOwotCi0gICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50cmluc2lj
IHNpemUgdG8gbWF0Y2ggd2hhdCB0aGUgY29udGVudCByZW5kZXJlciBoYXMgY29tcHV0ZWQsIHNv
IHRoYXQgd2hlbiB3ZQotICAgICAgICAvLyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3csIHRoZSBj
b3JyZWN0IGludHJpbnNpYyBzaXplIHdpbGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlzb24gYWdh
aW5zdAotICAgICAgICAvLyBtaW4gYW5kIG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChpc1JlbmRl
cldpZGdldCgpKSB7Ci0gICAgICAgICAgICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQgKGUu
Zy4gPG9iamVjdD4gZW1iZWRkaW5nIGFuIFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUKLSAg
ICAgICAgICAgIC8vIG1faW50cmluc2ljU2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmluc2lj
IGRpbWVuc2lvbnMsIGFwcGx5aW5nIENTUyBkZWZhdWx0IGZhbGxiYWNrCi0gICAgICAgICAgICAv
LyB2YWx1ZXMgKDMwMHgxNTApIGZvciBkaW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZhbHVl
IChlLmcuIHBlcmNlbnRhZ2Utc2l6ZWQgb3IKLSAgICAgICAgICAgIC8vIHJlbW92ZWQgYXR0cmli
dXRlcykuIFRoaXMgcHJldmVudHMgc3RhbGUgY2FjaGVkIHNpemVzIHdoZW4gYXR0cmlidXRlcyBs
aWtlIHdpZHRoL2hlaWdodAotICAgICAgICAgICAgLy8gYXJlIHJlbW92ZWQuIE5vdGU6IHRoaXMg
ZG9lcyBub3QgYXBwbHkgdG8gUmVuZGVySW1hZ2UgKDxpbWcgc3JjPSJzdmciPiksIHdoaWNoIG1h
bmFnZXMKLSAgICAgICAgICAgIC8vIGl0cyBvd24gaW50cmluc2ljIHNpemUgdmlhIHNldEludHJp
bnNpY1NpemUoKSBkdXJpbmcgaW1hZ2UgbG9hZC4KLSAgICAgICAgICAgIGF1dG8gc2l6ZVRvQ2Fj
aGUgPSBpbnRyaW5zaWNTaXplOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IFJlbmRlclJlcGxh
Y2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludHJp
bnNpY1NpemUgPSBjb21wdXRlSW50cmluc2ljU2l6ZSgpOworICAgICAgICBpbnRyaW5zaWNSYXRp
byA9IHByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisKKyAgICAgICAgYXV0byBzaXplVG9DYWNoZSA9
IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6
ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICBpZiAoZW1iZWRkZWRTVkdSb290KCkgJiYgaXNS
ZW5kZXJXaWRnZXQoKSkgewogICAgICAgICAgICAgaWYgKCFzaXplVG9DYWNoZS53aWR0aCgpKQog
ICAgICAgICAgICAgICAgIHNpemVUb0NhY2hlLnNldFdpZHRoKGNEZWZhdWx0V2lkdGgpOwogICAg
ICAgICAgICAgaWYgKCFzaXplVG9DYWNoZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBzaXpl
VG9DYWNoZS5zZXRIZWlnaHQoY0RlZmF1bHRIZWlnaHQpOwogICAgICAgICAgICAgbV9pbnRyaW5z
aWNTaXplID0gTGF5b3V0U2l6ZShzaXplVG9DYWNoZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXBy
ZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkK
LSAgICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljU2l6ZSk7
Ci0KLSAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAg
ICBpZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBw
cmVmZXJyZWRBc3BlY3RSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJhdGlvLnRyYW5zcG9zZWRTaXpl
KCk7Ci0gICAgICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2Vk
U2l6ZSgpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9
IGNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0g
dGhpcy0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3Bl
Y3RSYXRpby5pc0VtcHR5KCkgJiYgIWludHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAg
ICBtX2ludHJpbnNpY1NpemUgPSBMYXlvdXRTaXplKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkg
PyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsKKyAgICAg
ICAgfSBlbHNlIGlmICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXpl
LmlzWmVybygpKQorICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXpl
VG9DYWNoZSk7CiAgICAgfQotICAgIGNvbnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7Ci19
Ci0KLXZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVk
QnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBGbG9hdFNp
emUmIGludHJpbnNpY1NpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Ci17Ci0g
ICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goc3ZnUm9vdCwgaW50
cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUg
aW50cmluc2ljIHNpemUgYWxvbmcgZWFjaCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBt
YXhpbXVtIHdpZHRoL2hlaWdodHMgYWxvbmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28g
Zm9yIGV4YW1wbGUgYSBtYXhpbXVtIHdpZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCBy
ZXN1bHQgaW4gdGhlIGhlaWdodCB3ZSBjb21wdXRlIGhlcmUKQEAgLTU5NiwyMyArNTYwLDE2IEBA
IExheW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5
b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkKIAogZG91YmxlIFJlbmRlclJlcGxhY2VkOjpjb21wdXRl
SW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNS
YXRpbzsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0
aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZFNWR1Jvb3QoKSwgaW50cmluc2ljU2l6
ZSwgaW50cmluc2ljUmF0aW8pOwotICAgIHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRp
b0RvdWJsZSgpOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlv
RG91YmxlKCk7CiB9CiAKIEZsb2F0U2l6ZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y1NpemUoKSBjb25zdAogewotICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRTVkdSb290KCkg
b2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0
aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAgICBBU1NFUlQoIWVtYmVkZGVkU1ZHUm9vdCgpIHx8
IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7
IGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0K
IAogRmxvYXRTaXplIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0
CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBhbiBlbWJlZGRlZFNWR1Jvb3QoKSBvZiBhIHJlbW90ZSwg
cmVmZXJlbmNlZCBkb2N1bWVudCBhdmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZl
ciBiZSB1c2VkLgotICAgIEFTU0VSVCghZW1iZWRkZWRTVkdSb290KCkgfHwgc2hvdWxkQXBwbHlT
aXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0g
RmxvYXRTaXplKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0
KCkpOwogICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNzExLDcgKzY2
OCw3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVw
bGFjZWQgZWxlbWVudHM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNp
bmxpbmUtcmVwbGFjZWQtd2lkdGgKICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAg
RmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25z
dHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3Ry
YWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29u
c3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5z
aWNSYXRpbyk7CiAKICAgICBpZiAoc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAg
ICAgICAgYm9vbCBjb21wdXRlZEhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5p
c0F1dG8oKTsKQEAgLTgwNyw3ICs3NjQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpj
b21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAg
IC8vIDEwLjYuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9U
Ui9DU1MyMS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJlcGxhY2VkLWhlaWdodAogICAgIEZsb2F0U2l6
ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAgIGNv
bXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGVt
YmVkZGVkU1ZHUm9vdCgpLCBjb25zdHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBj
b21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhj
b25zdHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8g
PSBzdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2lj
V2lkdGggPSBjb25zdHJhaW5lZFNpemUud2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUu
d2lkdGgoKSAmJiBzaG91bGRSZXNwZWN0WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFw
cGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCk7CkBAIC0xMDYyLDEwICsxMDE5LDcgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXpl
JiBvbGRTaXplKQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkg
Y29uc3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNv
bnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRl
ckJveChlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7
Ci0gICAgcmV0dXJuIGludHJpbnNpY1JhdGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RS
YXRpbygpOwogfQogCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZs
b3dQb3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29t
cHV0ZWRWYWx1ZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oCmluZGV4IGNhZjc4ODlkN2ExMC4uNmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAg
Ym9vbCByZXBsYWNlZE1pbkxvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0OwogICAg
IGJvb2wgcmVwbGFjZWRNYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKIAor
ICAgIHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7CisgICAg
dmlydHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJvdGVj
dGVkOgogICAgIFJlbmRlclJlcGxhY2VkKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBP
cHRpb25TZXQ8UmVwbGFjZWRGbGFnPiA9IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwg
RWxlbWVudCYsIFJlbmRlclN0eWxlJiYsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUs
IE9wdGlvblNldDxSZXBsYWNlZEZsYWc+ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3Qg
UmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRTaXpl
IGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUgcHJl
ZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShj
b25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJp
bnNpY1NpemU7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQpAQCAtMTIxLDggKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBj
YW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAg
ICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0
cnVlKSBmaW5hbDsKLSAgICB2b2lkIGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVu
ZGVyQm94KFJlbmRlclJlcGxhY2VkKiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0
U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwotICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY1Np
emVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVyUmVwbGFjZWQqIHN2
Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1Jh
dGlvKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlU
cmFuc2ZlcnJlZE1pbk1heFNpemVzKEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNp
emUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3
U2VsZWN0aW9uVGludCgpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyV2lkZ2V0LmNwcAppbmRleCBlOGNiMGEwZTQ5Y2IuLmQ5NTgzZGU2NWJkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTQ5OCw0ICs0OTgsMzUgQEAg
UmVuZGVyUmVwbGFjZWQqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKICAg
ICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxw
dHI7CiB9CiAKK0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkg
Y29uc3QKK3sKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKTsKKyAg
ICBpZiAoIXN2Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUoKTsKKworICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IHN2Z1Jvb3QtPmNvbXB1
dGVJbnRyaW5zaWNTaXplKCk7CisgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRa
b29tKCkpOworCisgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICBp
bnRyaW5zaWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgcmV0
dXJuIGludHJpbnNpY1NpemU7Cit9CisKK0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OnByZWZlcnJl
ZEFzcGVjdFJhdGlvKCkgY29uc3QKK3sKKyAgICBDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRl
ZFNWR1Jvb3QoKTsKKyAgICBpZiAoIXN2Z1Jvb3QpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBs
YWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKworICAgIGF1dG8gcmF0aW8gPSBzdmdSb290
LT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICByYXRpbyA9IHJhdGlvLnRyYW5zcG9z
ZWRTaXplKCk7CisKKyAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAo
c3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0b0FuZFJhdGlvKCkgJiYgcmF0aW8uaXNFbXB0eSgp
KSkKKyAgICAgICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFz
cGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2Fs
SGVpZ2h0KCkudmFsdWUpOworCisgICAgcmV0dXJuIHJhdGlvOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgKaW5kZXggMzlj
NDBlM2JiMDc0Li45MmYyODEzOGNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmgKQEAgLTkyLDYgKzkyLDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2hvdWxkSW52
YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0IGZpbmFsOwogICAgIFJlbmRlclJlcGxhY2Vk
KiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNpemUgY29tcHV0ZUlu
dHJpbnNpY1NpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0
UmF0aW8oKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxp
Z2h0U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgc2V0T3ZlcmxhcFRlc3RSZXN1bHQoYm9vbCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApp
bmRleCBkZTI5NDM2MjQyOTguLjJhZjYyNTVlOGFlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC05Niw3ICs5Niw5IEBAIGJvb2wgUmVu
ZGVyU1ZHUm9vdDo6aGFzSW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogCiBGbG9hdFNpemUg
UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIEFTU0VS
VF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNJblJlbmRlclRy
ZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpOworICAgIC8vIFNpemUg
Y29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5zaW9ucyBmcm9tIGNvbnRlbnQu
CisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKICAgICAvLyBodHRwczovL3d3
dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5odG1sI0ludHJpbnNpY1NpemluZwogICAgIEZsb2F0U2l6
ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3Zn
U1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgpIH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2
ZXJ0aWNhbCB3cml0aW5nIG1vZGUKQEAgLTEwNyw3ICsxMDksOSBAQCBGbG9hdFNpemUgUmVuZGVy
U1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNpemUgUmVuZGVy
U1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFTU0VSVCghc2hv
dWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBw
cmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICBpZiAoc2hvdWxk
QXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpw
cmVmZXJyZWRBc3BlY3RSYXRpbygpOwogCiAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5p
c1JhdGlvKCkpCiAgICAgICAgIHJldHVybiBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHls
ZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9M
b2dpY2FsSGVpZ2h0KCkudmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL2xlZ2FjeS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcAppbmRleCAzNmQzZTM4
NTlkYjYuLmJiMjdiMTAwNzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTg2LDcgKzg2
LDkgQEAgYm9vbCBMZWdhY3lSZW5kZXJTVkdSb290OjpoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygp
IGNvbnN0CiAKIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2lj
U2l6ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX0lNUExJRVModmlldygpLmZyYW1lVmlldygpLmxh
eW91dENvbnRleHQoKS5pc0luUmVuZGVyVHJlZUxheW91dCgpLCAhc2hvdWxkQXBwbHlTaXplQ29u
dGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJpbnNp
YyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2lj
U2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVtZW50KCku
aW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgpIH07CiAg
ICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKICAgICBpZiAoIWlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC05Niw3ICs5OCw5IEBAIEZsb2F0U2l6ZSBMZWdhY3lS
ZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIEZsb2F0U2l6ZSBM
ZWdhY3lSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAg
QVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRh
aW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LgorICAg
IGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVy
UmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAgICBpZiAoc3R5bGUoKS5hc3Bl
Y3RSYXRpbygpLmlzUmF0aW8oKSkKICAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZTo6bmFycm93UHJl
Y2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5h
c3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479555</attachid>
            <date>2026-05-09 17:50:53 -0700</date>
            <delta_ts>2026-05-09 18:23:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260509175052.patch</filename>
            <type>text/plain</type>
            <size>32173</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA3M2JhOTE2YjA5NTZkMTAzMDRmNDkxYmUzZDI3ZWUwMmIxMDNkYTA0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAxNzo0OTo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRVdTIChQUiB3aXRoIGRlcGVuZGVu
Y2llcykuCgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwOgooV2ViQ29y
ZTo6TG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVkKToKKFdlYkNv
cmU6OkxvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29yZTo6TG9j
YWxGcmFtZVZpZXc6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlv
IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVk
V2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29u
c3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJl
cGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5N
YXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6aGFzSW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNSYXRpbyBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5oOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocyBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJl
bmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
V2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvbGVnYWN5L0xl
Z2FjeVJlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29t
cHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUm9vdDo6
cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHA6CihXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgooV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3JlOjpTVkdJbWFnZTo6
ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaDoKLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVW
aWV3LmNwcCAgICAgICAgfCAyOCArKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFt
ZVZpZXcuaCAgICAgICAgICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwICAgICAgfCAzOSArKysrKysrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmggICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAgICB8IDkzICsrKystLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAgICB8IDExICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgICAgIHwgMzcgKysrKysrKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCAgICAgICB8ICA0ICstCiAuLi4vV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwICAgfCAgOCArLQogLi4uL3N2Zy9sZWdhY3kv
TGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgICAgICAgIHwgIDggKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAgICAgICB8ICA4ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaCAgICAgICAgfCAgNCArLQogMTIgZmlsZXMgY2hhbmdlZCwgMTI0
IGluc2VydGlvbnMoKyksIDEyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxG
cmFtZVZpZXcuY3BwCmluZGV4IGRlZGU2YjUwNDVhNi4uYzdhZjI0OGYwOTIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmNwcApAQCAtMTIxMywyNSArMTIxMywxOCBAQCB2b2lk
IExvY2FsRnJhbWVWaWV3Ojpmb3JjZUxheW91dFBhcmVudFZpZXdJZk5lZWRlZCgpCiAgICAgaWYg
KCFvd25lclJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBDaGVja2VkUHRyIGNvbnRl
bnRCb3ggPSBlbWJlZGRlZENvbnRlbnRCb3goKTsKLSAgICBpZiAoIWNvbnRlbnRCb3gpCisgICAg
Q2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCk7CisgICAgaWYgKCFzdmdSb290
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3du
Y2FzdDxMZWdhY3lSZW5kZXJTVkdSb290Pihjb250ZW50Qm94LmdldCgpKSkgewotICAgICAgICBp
ZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91dCgpKQot
ICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdXRvKiBzdmdSb290ID0gZHlu
YW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGNvbnRlbnRCb3guZ2V0KCkpKSB7Ci0gICAgICAg
IGlmIChzdmdSb290LT5ldmVySGFkTGF5b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRzTGF5b3V0KCkp
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmIChzdmdSb290LT5ldmVySGFkTGF5
b3V0KCkgJiYgIXN2Z1Jvb3QtPm5lZWRzTGF5b3V0KCkpCisgICAgICAgIHJldHVybjsKIAogICAg
IExPRyhMYXlvdXQsICJMb2NhbEZyYW1lVmlldyAlcCBmb3JjZUxheW91dFBhcmVudFZpZXdJZk5l
ZWRlZCBzY2hlZHVsaW5nIGxheW91dCBvbiBwYXJlbnQgTG9jYWxGcmFtZVZpZXcgJXAiLCB0aGlz
LCAmb3duZXJSZW5kZXJlci0+dmlldygpLmZyYW1lVmlldygpKTsKIAogICAgIC8vIElmIHRoZSBl
bWJlZGRlZCBTVkcgZG9jdW1lbnQgYXBwZWFycyB0aGUgZmlyc3QgdGltZSwgdGhlIG93bmVyUmVu
ZGVyZXIgaGFzIGFscmVhZHkgZmluaXNoZWQKICAgICAvLyBsYXlvdXQgd2l0aG91dCBrbm93aW5n
IGFib3V0IHRoZSBleGlzdGVuY2Ugb2YgdGhlIGVtYmVkZGVkIFNWRyBkb2N1bWVudCwgYmVjYXVz
ZSBSZW5kZXJSZXBsYWNlZAotICAgIC8vIGVtYmVkZGVkQ29udGVudEJveCgpIHJldHVybnMgbnVs
bHB0ciwgYXMgbG9uZyBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgaXNuJ3QgbG9hZGVkIHlldC4g
QmVmb3JlCisgICAgLy8gZW1iZWRkZWRTVkdSb290KCkgcmV0dXJucyBudWxscHRyLCBhcyBsb25n
IGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBpc24ndCBsb2FkZWQgeWV0LiBCZWZvcmUKICAgICAv
LyBib3RoZXJpbmcgdG8gbGF5IG91dCB0aGUgU1ZHIGRvY3VtZW50LCBtYXJrIHRoZSBvd25lclJl
bmRlcmVyIG5lZWRpbmcgbGF5b3V0IGFuZCBhc2sgaXRzCiAgICAgLy8gTG9jYWxGcmFtZVZpZXcg
Zm9yIGEgbGF5b3V0LiBBZnRlciB0aGF0IHRoZSBSZW5kZXJFbWJlZGRlZE9iamVjdCAob3duZXJS
ZW5kZXJlcikgY2FycmllcyB0aGUKICAgICAvLyBjb3JyZWN0IHNpemUsIHdoaWNoIExlZ2FjeVJl
bmRlclNWR1Jvb3Q6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aC9IZWlnaHQgcmVseSBvbiwg
d2hlbiBsYXlpbmcKQEAgLTE1MjAsMjIgKzE1MTMsMTkgQEAgYm9vbCBMb2NhbEZyYW1lVmlldzo6
c2hvdWxkRGVmZXJTY3JvbGxVcGRhdGVBZnRlckNvbnRlbnRTaXplQ2hhbmdlKCkKICAgICByZXR1
cm4gKGxheW91dENvbnRleHQoKS5sYXlvdXRQaGFzZSgpIDwgTG9jYWxGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0KSAmJiAobGF5b3V0Q29udGV4dCgpLmxh
eW91dFBoYXNlKCkgIT0gTG9jYWxGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpMYXlvdXRQaGFzZTo6
T3V0c2lkZUxheW91dCk7CiB9CiAKLVJlbmRlckJveCogTG9jYWxGcmFtZVZpZXc6OmVtYmVkZGVk
Q29udGVudEJveCgpIGNvbnN0CitSZW5kZXJSZXBsYWNlZCogTG9jYWxGcmFtZVZpZXc6OmVtYmVk
ZGVkU1ZHUm9vdCgpIGNvbnN0CiB7CiAgICAgQ2hlY2tlZFB0ciByZW5kZXJWaWV3ID0gdGhpcy0+
cmVuZGVyVmlldygpOwogICAgIGlmICghcmVuZGVyVmlldykKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBSZW5kZXJPYmplY3QqIGZpcnN0Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENo
aWxkKCk7CisgICAgYXV0byogZmlyc3RDaGlsZCA9IHJlbmRlclZpZXctPmZpcnN0Q2hpbGQoKTsK
IAotICAgIC8vIEN1cmVudGx5IG9ubHkgZW1iZWRkZWQgU1ZHIGRvY3VtZW50cyBwYXJ0aWNpcGF0
ZSBpbiB0aGUgc2l6ZS1uZWdvdGlhdGlvbiBsb2dpYy4KKyAgICAvLyBDdXJyZW50bHkgb25seSBl
bWJlZGRlZCBTVkcgZG9jdW1lbnRzIHBhcnRpY2lwYXRlIGluIHRoZSBzaXplLW5lZ290aWF0aW9u
IGxvZ2ljLgogICAgIGlmIChhdXRvKiBzdmdSb290ID0gZHluYW1pY0Rvd25jYXN0PExlZ2FjeVJl
bmRlclNWR1Jvb3Q+KGZpcnN0Q2hpbGQpKQogICAgICAgICByZXR1cm4gc3ZnUm9vdDsKIAotICAg
IGlmIChhdXRvKiBzdmdSb290ID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGZpcnN0
Q2hpbGQpKQotICAgICAgICByZXR1cm4gc3ZnUm9vdDsKLQotICAgIHJldHVybiBudWxscHRyOwor
ICAgIHJldHVybiBkeW5hbWljRG93bmNhc3Q8UmVuZGVyU1ZHUm9vdD4oZmlyc3RDaGlsZCk7CiB9
CiAKIHZvaWQgTG9jYWxGcmFtZVZpZXc6OmFkZEVtYmVkZGVkT2JqZWN0VG9VcGRhdGUoUmVuZGVy
RW1iZWRkZWRPYmplY3QmIGVtYmVkZGVkT2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1l
Vmlldy5oCmluZGV4IDFiMWM3MGJjYzI0OS4uMDU5OWJhMTZiMzYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Mb2NhbEZyYW1lVmlldy5oCkBAIC02NSw2ICs2NSw3IEBAIGNsYXNzIFJlbmRlckVtYmVkZGVk
T2JqZWN0OwogY2xhc3MgUmVuZGVyTGF5ZXI7CiBjbGFzcyBSZW5kZXJMYXllck1vZGVsT2JqZWN0
OwogY2xhc3MgUmVuZGVyT2JqZWN0OworY2xhc3MgUmVuZGVyUmVwbGFjZWQ7CiBjbGFzcyBSZW5k
ZXJTY3JvbGxiYXJQYXJ0OwogY2xhc3MgUmVuZGVyU3R5bGU7CiBjbGFzcyBSZW5kZXJWaWV3OwpA
QCAtNTc4LDcgKzU3OSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgTk9ERUxFVEUgc2hvdWxkU3Vz
cGVuZFNjcm9sbEFuaW1hdGlvbnMoKSBjb25zdCBmaW5hbDsKIAotICAgIFJlbmRlckJveCogZW1i
ZWRkZWRDb250ZW50Qm94KCkgY29uc3Q7CisgICAgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZH
Um9vdCgpIGNvbnN0OwogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0VHJhY2tzUmVw
YWludHMoYm9vbCk7CiAgICAgYm9vbCBpc1RyYWNraW5nUmVwYWludHMoKSBjb25zdCB7IHJldHVy
biBtX2lzVHJhY2tpbmdSZXBhaW50czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJ
bWFnZS5jcHAKaW5kZXggOWIyMDk5NWJiM2ZiLi4xMjNmNzNkN2YxODcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcApAQCAtOTQwLDcgKzk0MCwyMSBAQCB2b2lkIFJl
bmRlckltYWdlOjpsYXlvdXQoKQogCiBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OmNvbXB1dGVJbnRy
aW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5t
ZW50KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGlt
ZW5zaW9ucyBmcm9tIGNvbnRlbnQuIFRoZSBiYXNlCisgICAgLy8gY2xhc3MgcmV0dXJucyB2YWx1
ZXMgZnJvbSB0aGUgY2FjaGUgLyBjb250YWluLWludHJpbnNpYy1zaXplIHdpdGhvdXQKKyAgICAv
LyBxdWVyeWluZyBpbWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVu
dCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXpl
KCk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsK
KyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1Np
emUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkpOwor
ICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGltYWdlRGV2aWNlUGl4ZWxSYXRpbygpKTsKKyAg
ICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAgICAgICAgICAgaW50cmlu
c2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgcmV0dXJu
IGludHJpbnNpY1NpemU7CisgICAgfQorCiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gUmVuZGVy
UmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAKICAgICAvLyBPdXIgaW50cmluc2lj
U2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJpbmcgZ2VuZXJhdGVkIGltYWdlcyB3aXRoIHJl
bGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91dCB0aGUgcmlnaHQgaW50cmluc2ljIHNpemUg
dG8gdXNlLgpAQCAtOTU3LDcgKzk3MSwxMSBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OmNvbXB1
dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJlbmRlckltYWdlOjpwcmVmZXJy
ZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250
YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2lj
IGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAgLy8gYXNwZWN0IHJhdGlvIGZy
b20gdGhlIENTUyBhc3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3RpbGwgYXZhaWxhYmxlIHZpYSB0
aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1ZXJ5IGltYWdlIGRhdGEpLgor
ICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVu
ZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAgICAvLyBEb24ndCBjb21w
dXRlIGFuIGludHJpbnNpYyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0b3JpY2FsIFdlYktpdCBiZWhh
dmlvciBpZiB3ZSdyZSBwYWludGluZyBhbHQgdGV4dCBhbmQvb3IgYSBicm9rZW4gaW1hZ2UuCiAg
ICAgaWYgKHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkgewpAQCAtOTY2LDYgKzk4NCwx
NyBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QK
ICAgICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAgICBpZiAoQ2hlY2tlZFB0
ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byByYXRpbyA9IHN2
Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlmICghaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAgICAgICAgcmF0aW8gPSBy
YXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlv
KCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAm
JiByYXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBGbG9hdFNpemU6Om5hcnJv
d1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxl
KCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisgICAgICAgIHJldHVybiBy
YXRpbzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVj
dFJhdGlvKCk7CiB9CiAKQEAgLTk3MywxNCArMTAwMiwxNCBAQCBib29sIFJlbmRlckltYWdlOjpz
aG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QKIHsKICAgICBpZiAoUmVuZGVy
UmVwbGFjZWQ6OnNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSkKICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgcmV0dXJuIGVtYmVkZGVkQ29udGVudEJveCgpOworICAgIHJldHVybiBl
bWJlZGRlZFNWR1Jvb3QoKTsKIH0KIAotUmVuZGVyQm94KiBSZW5kZXJJbWFnZTo6ZW1iZWRkZWRD
b250ZW50Qm94KCkgY29uc3QKK1JlbmRlclJlcGxhY2VkKiBSZW5kZXJJbWFnZTo6ZW1iZWRkZWRT
VkdSb290KCkgY29uc3QKIHsKICAgICBpZiAoUmVmUHRyIGNhY2hlZEltYWdlID0gdGhpcy0+Y2Fj
aGVkSW1hZ2UoKSkgewogICAgICAgICBpZiAoUmVmUHRyIGltYWdlID0gZHluYW1pY0Rvd25jYXN0
PFNWR0ltYWdlPihjYWNoZWRJbWFnZS0+aW1hZ2UoKSkpCi0gICAgICAgICAgICByZXR1cm4gaW1h
Z2UtPmVtYmVkZGVkQ29udGVudEJveCgpOworICAgICAgICAgICAgcmV0dXJuIGltYWdlLT5lbWJl
ZGRlZFNWR1Jvb3QoKTsKICAgICB9CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCmluZGV4IDJjZTc1NDk1MmFmZS4uNWVhZjkyYTYxNzZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuaApAQCAtODksNyArODksNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB3aWxsQmVEZXN0cm95ZWQoKSBvdmVycmlkZTsKIAogICAg
IGJvb2wgc2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpIGNvbnN0IGZpbmFsOwotICAg
IFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgZmluYWw7CisgICAgUmVuZGVy
UmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOwogICAgIEZsb2F0U2l6ZSBj
b21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFsOwogICAgIEZsb2F0U2l6ZSBwcmVmZXJy
ZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgZm9yZWdyb3VuZElzS25vd25U
b0JlT3BhcXVlSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIGxvY2FsUmVjdCwgdW5zaWduZWQgbWF4
RGVwdGhUb1Rlc3QpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggZjAzYTEzZjdlYjEwLi5lMzc2ZGJiNTcyYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtNDcwLDY0ICs0
NzAsMjUgQEAgc3RhdGljIGJvb2wgaXNWaWRlb1dpdGhEZWZhdWx0T2JqZWN0U2l6ZShjb25zdCBS
ZW5kZXJSZXBsYWNlZCogbWF5YmVWaWRlbykKICAgICByZXR1cm4gZmFsc2U7CiB9IAogCi12b2lk
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJv
eChSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUs
IEZsb2F0U2l6ZSYgcHJlZmVycmVkQXNwZWN0UmF0aW8pIGNvbnN0Cit2b2lkIFJlbmRlclJlcGxh
Y2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhT
aXplcyhGbG9hdFNpemUmIGludHJpbnNpY1NpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8p
IGNvbnN0CiB7Ci0gICAgRmxvYXRTaXplIGludHJpbnNpY1NpemU7CiAgICAgaWYgKHNob3VsZEFw
cGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpIHsKICAgICAgICAgaW50cmluc2ljU2l6
ZSA9IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwotICAgICAgICBwcmVm
ZXJyZWRBc3BlY3RSYXRpbyA9IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygp
OwotICAgIH0gZWxzZSBpZiAoY29udGVudFJlbmRlcmVyKSB7Ci0gICAgICAgIGJvb2wgY29udGVu
dElzUmVuZGVyUmVwbGFjZWQgPSBmYWxzZTsKLSAgICAgICAgaWYgKGF1dG8qIHJlbmRlclJlcGxh
Y2VkID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlclJlcGxhY2VkPihjb250ZW50UmVuZGVyZXIpKSB7
Ci0gICAgICAgICAgICBpbnRyaW5zaWNTaXplID0gcmVuZGVyUmVwbGFjZWQtPmNvbXB1dGVJbnRy
aW5zaWNTaXplKCk7Ci0gICAgICAgICAgICBwcmVmZXJyZWRBc3BlY3RSYXRpbyA9IHJlbmRlclJl
cGxhY2VkLT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOwotICAgICAgICAgICAgY29udGVudElzUmVu
ZGVyUmVwbGFjZWQgPSB0cnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmIChzdHlsZSgpLmFzcGVj
dFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0
aW8oKSAmJiBwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkpKQotICAgICAgICAgICAgcHJl
ZmVycmVkQXNwZWN0UmF0aW8gPSBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFz
cGVjdFJhdGlvKCkud2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpbygpLmhlaWdodCgp
LnZhbHVlKTsKLQotICAgICAgICAvLyBIYW5kbGUgem9vbSAmIHZlcnRpY2FsIHdyaXRpbmcgbW9k
ZXMgaGVyZSwgYXMgdGhlIGVtYmVkZGVkIGRvY3VtZW50IGRvZXNuJ3Qga25vdyBhYm91dCB0aGVt
LgotICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7Ci0KLSAg
ICAgICAgaWYgKGF1dG8qIGltYWdlID0gZHluYW1pY0Rvd25jYXN0PFJlbmRlckltYWdlPigqdGhp
cykpCi0gICAgICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGltYWdlLT5pbWFnZURldmljZVBp
eGVsUmF0aW8oKSk7Ci0KLSAgICAgICAgLy8gVXBkYXRlIG91ciBpbnRyaW5zaWMgc2l6ZSB0byBt
YXRjaCB3aGF0IHRoZSBjb250ZW50IHJlbmRlcmVyIGhhcyBjb21wdXRlZCwgc28gdGhhdCB3aGVu
IHdlCi0gICAgICAgIC8vIGNvbnN0cmFpbiB0aGUgc2l6ZSBiZWxvdywgdGhlIGNvcnJlY3QgaW50
cmluc2ljIHNpemUgd2lsbCBiZSBvYnRhaW5lZCBmb3IgY29tcGFyaXNvbiBhZ2FpbnN0Ci0gICAg
ICAgIC8vIG1pbiBhbmQgbWF4IHdpZHRocy4KLSAgICAgICAgaWYgKGNvbnRlbnRJc1JlbmRlclJl
cGxhY2VkICYmIGlzUmVuZGVyV2lkZ2V0KCkpIHsKLSAgICAgICAgICAgIC8vIEZvciBSZW5kZXJX
aWRnZXQgY29udGVudCAoZS5nLiA8b2JqZWN0PiBlbWJlZGRpbmcgYW4gU1ZHIGRvY3VtZW50KSwg
YWx3YXlzIHVwZGF0ZQotICAgICAgICAgICAgLy8gbV9pbnRyaW5zaWNTaXplIHRvIHJlZmxlY3Qg
Y3VycmVudCBpbnRyaW5zaWMgZGltZW5zaW9ucywgYXBwbHlpbmcgQ1NTIGRlZmF1bHQgZmFsbGJh
Y2sKLSAgICAgICAgICAgIC8vIHZhbHVlcyAoMzAweDE1MCkgZm9yIGRpbWVuc2lvbnMgd2l0aCBu
byBpbnRyaW5zaWMgdmFsdWUgKGUuZy4gcGVyY2VudGFnZS1zaXplZCBvcgotICAgICAgICAgICAg
Ly8gcmVtb3ZlZCBhdHRyaWJ1dGVzKS4gVGhpcyBwcmV2ZW50cyBzdGFsZSBjYWNoZWQgc2l6ZXMg
d2hlbiBhdHRyaWJ1dGVzIGxpa2Ugd2lkdGgvaGVpZ2h0Ci0gICAgICAgICAgICAvLyBhcmUgcmVt
b3ZlZC4gTm90ZTogdGhpcyBkb2VzIG5vdCBhcHBseSB0byBSZW5kZXJJbWFnZSAoPGltZyBzcmM9
InN2ZyI+KSwgd2hpY2ggbWFuYWdlcwotICAgICAgICAgICAgLy8gaXRzIG93biBpbnRyaW5zaWMg
c2l6ZSB2aWEgc2V0SW50cmluc2ljU2l6ZSgpIGR1cmluZyBpbWFnZSBsb2FkLgotICAgICAgICAg
ICAgYXV0byBzaXplVG9DYWNoZSA9IGludHJpbnNpY1NpemU7CisgICAgICAgIGludHJpbnNpY1Jh
dGlvID0gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgaW50cmluc2ljU2l6ZSA9IGNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CisgICAg
ICAgIGludHJpbnNpY1JhdGlvID0gcHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKworICAgICAgICBh
dXRvIHNpemVUb0NhY2hlID0gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGludHJpbnNpY1Np
emUgOiBpbnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7CisgICAgICAgIGlmIChlbWJlZGRl
ZFNWR1Jvb3QoKSAmJiBpc1JlbmRlcldpZGdldCgpKSB7CiAgICAgICAgICAgICBpZiAoIXNpemVU
b0NhY2hlLndpZHRoKCkpCiAgICAgICAgICAgICAgICAgc2l6ZVRvQ2FjaGUuc2V0V2lkdGgoY0Rl
ZmF1bHRXaWR0aCk7CiAgICAgICAgICAgICBpZiAoIXNpemVUb0NhY2hlLmhlaWdodCgpKQogICAg
ICAgICAgICAgICAgIHNpemVUb0NhY2hlLnNldEhlaWdodChjRGVmYXVsdEhlaWdodCk7CiAgICAg
ICAgICAgICBtX2ludHJpbnNpY1NpemUgPSBMYXlvdXRTaXplKHNpemVUb0NhY2hlKTsKLSAgICAg
ICAgfSBlbHNlIGlmICghcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5z
aWNTaXplLmlzWmVybygpKQotICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6
ZShpbnRyaW5zaWNTaXplKTsKLQotICAgICAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2Rl
KCkpIHsKLSAgICAgICAgICAgIGlmICghcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKQot
ICAgICAgICAgICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gcHJlZmVycmVkQXNwZWN0UmF0
aW8udHJhbnNwb3NlZFNpemUoKTsKLSAgICAgICAgICAgIGludHJpbnNpY1NpemUgPSBpbnRyaW5z
aWNTaXplLnRyYW5zcG9zZWRTaXplKCk7Ci0gICAgICAgIH0KLSAgICB9IGVsc2UgewotICAgICAg
ICBpbnRyaW5zaWNTaXplID0gY29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgcHJlZmVy
cmVkQXNwZWN0UmF0aW8gPSB0aGlzLT5wcmVmZXJyZWRBc3BlY3RSYXRpbygpOwotICAgICAgICBp
ZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1pl
cm8oKSkKLSAgICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoaXNIb3Jpem9u
dGFsV3JpdGluZ01vZGUoKSA/IGludHJpbnNpY1NpemUgOiBpbnRyaW5zaWNTaXplLnRyYW5zcG9z
ZWRTaXplKCkpOworICAgICAgICB9IGVsc2UgaWYgKCFpbnRyaW5zaWNSYXRpby5pc0VtcHR5KCkg
JiYgIWludHJpbnNpY1NpemUuaXNaZXJvKCkpCisgICAgICAgICAgICBtX2ludHJpbnNpY1NpemUg
PSBMYXlvdXRTaXplKHNpemVUb0NhY2hlKTsKICAgICB9Ci0gICAgY29uc3RyYWluZWRTaXplID0g
aW50cmluc2ljU2l6ZTsKLX0KLQotdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVyQm94KiBjb250
ZW50UmVuZGVyZXIsIEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5z
aWNSYXRpbykgY29uc3QKLXsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJl
bmRlckJveChjb250ZW50UmVuZGVyZXIsIGludHJpbnNpY1NpemUsIGludHJpbnNpY1JhdGlvKTsK
IAogICAgIC8vIE5vdyBjb25zdHJhaW4gdGhlIGludHJpbnNpYyBzaXplIGFsb25nIGVhY2ggYXhp
cyBhY2NvcmRpbmcgdG8gbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aC9oZWlnaHRzIGFsb25nIHRo
ZQogICAgIC8vIG9wcG9zaXRlIGF4aXMuIFNvIGZvciBleGFtcGxlIGEgbWF4aW11bSB3aWR0aCB0
aGF0IHNocmlua3Mgb3VyIHdpZHRoIHdpbGwgcmVzdWx0IGluIHRoZSBoZWlnaHQgd2UgY29tcHV0
ZSBoZXJlCkBAIC01OTksMjMgKzU2MCwxNiBAQCBMYXlvdXRSZWN0IFJlbmRlclJlcGxhY2VkOjpy
ZXBsYWNlZENvbnRlbnRSZWN0KGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUpCiAKIGRv
dWJsZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgY29uc3QK
IHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGludHJpbnNp
Y1NpemU7Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1i
ZWRkZWRDb250ZW50Qm94KCksIGludHJpbnNpY1NpemUsIGludHJpbnNpY1JhdGlvKTsKLSAgICBy
ZXR1cm4gaW50cmluc2ljUmF0aW8uYXNwZWN0UmF0aW9Eb3VibGUoKTsKKyAgICByZXR1cm4gcHJl
ZmVycmVkQXNwZWN0UmF0aW8oKS5hc3BlY3RSYXRpb0RvdWJsZSgpOwogfQogCiBGbG9hdFNpemUg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIHsKLSAgICAvLyBJ
ZiB0aGVyZSdzIGFuIGVtYmVkZGVkQ29udGVudEJveCgpIG9mIGEgcmVtb3RlLCByZWZlcmVuY2Vk
IGRvY3VtZW50IGF2YWlsYWJsZSwgdGhpcyBjb2RlLXBhdGggc2hvdWxkIG5ldmVyIGJlIHVzZWQu
Ci0gICAgQVNTRVJUKCFlbWJlZGRlZENvbnRlbnRCb3goKSB8fCBzaG91bGRBcHBseVNpemVPcklu
bGluZVNpemVDb250YWlubWVudCgpKTsKICAgICByZXR1cm4geyBpbnRyaW5zaWNMb2dpY2FsV2lk
dGgoKSwgaW50cmluc2ljTG9naWNhbEhlaWdodCgpIH07CiB9CiAKIEZsb2F0U2l6ZSBSZW5kZXJS
ZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIC8vIElmIHRoZXJl
J3MgYW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1l
bnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAgICBB
U1NFUlQoIWVtYmVkZGVkQ29udGVudEJveCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6
ZUNvbnRhaW5tZW50KCkpOwogICAgIGF1dG8gaW50cmluc2ljU2l6ZSA9IEZsb2F0U2l6ZShpbnRy
aW5zaWNMb2dpY2FsV2lkdGgoKSwgaW50cmluc2ljTG9naWNhbEhlaWdodCgpKTsKICAgICBGbG9h
dFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW87CiAKQEAgLTY5OCwxMyArNjUyLDkgQEAgc3RhdGlj
IGlubGluZSBMYXlvdXRVbml0IE5PREVMRVRFIHJlc29sdmVXaWR0aEZvclJhdGlvKExheW91dFVu
aXQgYm9yZGVyQW5kUGFkZGkKICAgICByZXR1cm4gTGF5b3V0VW5pdChsb2dpY2FsSGVpZ2h0ICog
YXNwZWN0UmF0aW8pOwogfQogCi1zdGF0aWMgaW5saW5lIGJvb2wgTk9ERUxFVEUgaGFzSW50cmlu
c2ljU2l6ZShSZW5kZXJCb3gqY29udGVudFJlbmRlcmVyLCBib29sIGhhc0ludHJpbnNpY1dpZHRo
LCBib29sIGhhc0ludHJpbnNpY0hlaWdodCApCitzdGF0aWMgaW5saW5lIGJvb2wgTk9ERUxFVEUg
aGFzSW50cmluc2ljU2l6ZShjb25zdCBSZW5kZXJSZXBsYWNlZCogc3ZnUm9vdCwgYm9vbCBoYXNJ
bnRyaW5zaWNXaWR0aCwgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQpCiB7Ci0gICAgaWYgKGhhc0lu
dHJpbnNpY1dpZHRoICYmIGhhc0ludHJpbnNpY0hlaWdodCkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgaWYgKGhhc0ludHJpbnNpY1dpZHRoIHx8IGhhc0ludHJpbnNpY0hlaWdodCkKLSAgICAg
ICAgcmV0dXJuIGNvbnRlbnRSZW5kZXJlciAmJiBjb250ZW50UmVuZGVyZXItPmlzUmVuZGVyT3JM
ZWdhY3lSZW5kZXJTVkdSb290KCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiAoaGFz
SW50cmluc2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KSB8fCAoKGhhc0ludHJpbnNpY1dp
ZHRoIHx8IGhhc0ludHJpbnNpY0hlaWdodCkgJiYgc3ZnUm9vdCk7CiB9CiAKIExheW91dFVuaXQg
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChTaG91bGRDb21wdXRl
UHJlZmVycmVkIHNob3VsZENvbXB1dGVQcmVmZXJyZWQpIGNvbnN0CkBAIC03MTUsMTIgKzY2NSwx
MCBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lk
dGgoU2hvdWxkQ29tcHV0ZVByZWZlcnJlZCBzaAogICAgIGlmIChzdHlsZS5sb2dpY2FsV2lkdGgo
KS5pc0ludHJpbnNpY09yU3RyZXRjaCgpKQogICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2Vk
TG9naWNhbFdpZHRoUmVzcGVjdGluZ01pbk1heFdpZHRoKGNvbXB1dGVSZXBsYWNlZExvZ2ljYWxX
aWR0aFVzaW5nKHN0eWxlLmxvZ2ljYWxXaWR0aCgpKSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7
CiAKLSAgICBSZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgp
OwotCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVwbGFjZWQgZWxlbWVudHM6IGh0dHA6Ly93d3cu
dzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNpbmxpbmUtcmVwbGFjZWQtd2lkdGgKICAgICBG
bG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsK
LSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhT
aXplcyhjb250ZW50UmVuZGVyZXIsIGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOwor
ICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNp
emVzKGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgaWYgKHN0eWxlLmxv
Z2ljYWxXaWR0aCgpLmlzQXV0bygpKSB7CiAgICAgICAgIGJvb2wgY29tcHV0ZWRIZWlnaHRJc0F1
dG8gPSBzdHlsZS5sb2dpY2FsSGVpZ2h0KCkuaXNBdXRvKCk7CkBAIC03MzAsNyArNjc4LDcgQEAg
TGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNo
b3VsZENvbXB1dGVQcmVmZXJyZWQgc2gKICAgICAgICAgLy8gRm9yIGZsZXggb3IgZ3JpZCBpdGVt
cyB3aGVyZSB0aGUgbG9naWNhbCBoZWlnaHQgaGFzIGJlZW4gb3ZlcnJpZGVuIHRoZW4gd2Ugc2hv
dWxkIHVzZSB0aGF0IHNpemUgdG8gY29tcHV0ZSB0aGUgcmVwbGFjZWQgd2lkdGggYXMgbG9uZyBh
cyB0aGUgZmxleCBvcgogICAgICAgICAvLyBncmlkIGl0ZW0gaGFzIGFuIGludHJpbnNpYyBzaXpl
LiBJdCBpcyBwb3NzaWJsZSAoaW5kZWVkLCBjb21tb24pIGZvciBhbiBTVkcgZ3JhcGhpYyB0byBo
YXZlIGFuIGludHJpbnNpYyBhc3BlY3QgcmF0aW8gYnV0IG5vdCB0byBoYXZlIGFuIGludHJpbnNp
YwogICAgICAgICAvLyB3aWR0aCBvciBoZWlnaHQuIFRoZXJlIGFyZSBhbHNvIGVsZW1lbnRzIHdp
dGggaW50cmluc2ljIHNpemVzIGJ1dCB3aXRob3V0IGludHJpbnNpYyByYXRpbyAobGlrZSBhbiBp
ZnJhbWUpLgotICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nTG9naWNhbEhlaWdodCA9ICghaW50
cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAm
JiBoYXNJbnRyaW5zaWNTaXplKGNvbnRlbnRSZW5kZXJlciwgaGFzSW50cmluc2ljV2lkdGgsIGhh
c0ludHJpbnNpY0hlaWdodCkgPyB0aGlzLT5vdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbEhlaWdo
dCgpIDogc3RkOjpudWxsb3B0KSkKKyAgICAgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ0xvZ2ljYWxI
ZWlnaHQgPSAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlz
R3JpZEl0ZW0oKSkgJiYgaGFzSW50cmluc2ljU2l6ZShlbWJlZGRlZFNWR1Jvb3QoKSwgaGFzSW50
cmluc2ljV2lkdGgsIGhhc0ludHJpbnNpY0hlaWdodCkgPyB0aGlzLT5vdmVycmlkaW5nQm9yZGVy
Qm94TG9naWNhbEhlaWdodCgpIDogc3RkOjpudWxsb3B0KSkKICAgICAgICAgICAgIHJldHVybiBj
b21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29udGVudEJv
eExvZ2ljYWxIZWlnaHQoKm92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0KSAqIGludHJpbnNpY1JhdGlv
LmFzcGVjdFJhdGlvRG91YmxlKCksIHNob3VsZENvbXB1dGVQcmVmZXJyZWQpOwogCiAgICAgICAg
IC8vIElmICdoZWlnaHQnIGFuZCAnd2lkdGgnIGJvdGggaGF2ZSBjb21wdXRlZCB2YWx1ZXMgb2Yg
J2F1dG8nIGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbiBpbnRyaW5zaWMgd2lkdGgsIHRoZW4g
dGhhdCBpbnRyaW5zaWMgd2lkdGggaXMgdGhlIHVzZWQgdmFsdWUgb2YgJ3dpZHRoJy4KQEAgLTgx
MywxOSArNzYxLDE3IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNl
ZExvZ2ljYWxIZWlnaHQoc3RkOjpvcHRpb25hbDxMYXlvdXRVbml0CiAgICAgaWYgKGhhc1JlcGxh
Y2VkTG9naWNhbEhlaWdodCgpKQogICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNh
bEhlaWdodFJlc3BlY3RpbmdNaW5NYXhIZWlnaHQoY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdo
dFVzaW5nKHN0eWxlKCkubG9naWNhbEhlaWdodCgpKSk7CiAKLSAgICBSZW5kZXJCb3gqIGNvbnRl
bnRSZW5kZXJlciA9IGVtYmVkZGVkQ29udGVudEJveCgpOwotCiAgICAgLy8gMTAuNi4yIElubGlu
ZSwgcmVwbGFjZWQgZWxlbWVudHM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQu
aHRtbCNpbmxpbmUtcmVwbGFjZWQtaGVpZ2h0CiAgICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlv
OwogICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNpemU7Ci0gICAgY29tcHV0ZUludHJpbnNpY1Np
emVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoY29udGVudFJlbmRlcmVyLCBj
b25zdHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21wdXRlSW50cmluc2ljU2l6
ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb25zdHJhaW5lZFNpemUsIGlu
dHJpbnNpY1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBzdHlsZSgpLmxvZ2ljYWxX
aWR0aCgpLmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2ljV2lkdGggPSBjb25zdHJhaW5l
ZFNpemUud2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUud2lkdGgoKSAmJiBzaG91bGRS
ZXNwZWN0WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6
ZUNvbnRhaW5tZW50KCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNIZWlnaHQgPSBjb25zdHJhaW5l
ZFNpemUuaGVpZ2h0KCkgPiAwIHx8IHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCk7CiAKICAg
ICAvLyBTZWUgY29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCgpIGZvciBhIHNpbWlsYXIgY2hl
Y2sgZm9yIGhlaWdodHMuCi0gICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xvZ2ljYWxXaWR0aCA9ICgh
aW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgp
KSAmJiBoYXNJbnRyaW5zaWNTaXplKGNvbnRlbnRSZW5kZXJlciwgaGFzSW50cmluc2ljV2lkdGgs
IGhhc0ludHJpbnNpY0hlaWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRoKCkg
OiBzdGQ6Om51bGxvcHQpKQorICAgIGlmIChhdXRvIG92ZXJyaWRpbmdsb2dpY2FsV2lkdGggPSAo
IWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAoaXNGbGV4SXRlbSgpIHx8IGlzR3JpZEl0ZW0o
KSkgJiYgaGFzSW50cmluc2ljU2l6ZShlbWJlZGRlZFNWR1Jvb3QoKSwgaGFzSW50cmluc2ljV2lk
dGgsIGhhc0ludHJpbnNpY0hlaWdodCkgPyBvdmVycmlkaW5nQm9yZGVyQm94TG9naWNhbFdpZHRo
KCkgOiBzdGQ6Om51bGxvcHQpKQogICAgICAgICByZXR1cm4gY29tcHV0ZVJlcGxhY2VkTG9naWNh
bEhlaWdodFJlc3BlY3RpbmdNaW5NYXhIZWlnaHQoY29udGVudEJveExvZ2ljYWxXaWR0aCgqb3Zl
cnJpZGluZ2xvZ2ljYWxXaWR0aCkgKiBpbnRyaW5zaWNSYXRpby50cmFuc3Bvc2VkU2l6ZSgpLmFz
cGVjdFJhdGlvRG91YmxlKCkpOwogCiAgICAgLy8gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90
aCBoYXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFz
IGFuIGludHJpbnNpYyBoZWlnaHQsIHRoZW4gdGhhdCBpbnRyaW5zaWMgaGVpZ2h0IGlzIHRoZSB1
c2VkIHZhbHVlIG9mICdoZWlnaHQnLgpAQCAtMTA3MywxMCArMTAxOSw3IEBAIHZvaWQgUmVuZGVy
UmVwbGFjZWQ6OmxheW91dFNoYWRvd0NvbnRlbnQoY29uc3QgTGF5b3V0U2l6ZSYgb2xkU2l6ZSkK
IAogRmxvYXRTaXplIFJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNSYXRpbygpIGNvbnN0CiB7Ci0g
ICAgRmxvYXRTaXplIGludHJpbnNpY1JhdGlvOwotICAgIEZsb2F0U2l6ZSBjb25zdHJhaW5lZFNp
emU7Ci0gICAgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goZW1iZWRk
ZWRDb250ZW50Qm94KCksIGNvbnN0cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOwotICAgIHJl
dHVybiBpbnRyaW5zaWNSYXRpbzsKKyAgICByZXR1cm4gcHJlZmVycmVkQXNwZWN0UmF0aW8oKTsK
IH0KIAogdm9pZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkT3V0T2ZGbG93UG9zaXRp
b25lZExvZ2ljYWxXaWR0aChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMmIGNvbXB1dGVkVmFs
dWVzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRl
eCBhYjNmNDcxMGFhOTAuLjZiMjY2MjQ4ZGQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclJlcGxhY2VkLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIGJvb2wgcmVw
bGFjZWRNaW5Mb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKICAgICBib29sIHJl
cGxhY2VkTWF4TG9naWNhbEhlaWdodENvbXB1dGVzQXNOb25lKCkgY29uc3Q7CiAKKyAgICB2aXJ0
dWFsIEZsb2F0U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0OworICAgIHZpcnR1YWwg
RmxvYXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3Q7CisKIHByb3RlY3RlZDoKICAg
ICBSZW5kZXJSZXBsYWNlZChUeXBlLCBFbGVtZW50JiwgUmVuZGVyU3R5bGUmJiwgT3B0aW9uU2V0
PFJlcGxhY2VkRmxhZz4gPSB7IH0pOwogICAgIFJlbmRlclJlcGxhY2VkKFR5cGUsIEVsZW1lbnQm
LCBSZW5kZXJTdHlsZSYmLCBjb25zdCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplLCBPcHRpb25T
ZXQ8UmVwbGFjZWRGbGFnPiA9IHsgfSk7CkBAIC03Nyw5ICs4MCw2IEBAIHByb3RlY3RlZDoKIAog
ICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGU6OkRpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSkgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBjb21wdXRl
SW50cmluc2ljU2l6ZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgRmxvYXRTaXplIHByZWZlcnJlZEFz
cGVjdFJhdGlvKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldEludHJpbnNpY1NpemUoY29uc3QgTGF5
b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkgeyBtX2ludHJpbnNpY1NpemUgPSBpbnRyaW5zaWNTaXpl
OyB9CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY1NpemVDaGFuZ2VkKCk7CiAgICAgdmlydHVh
bCBib29sIGhhc1JlbGF0aXZlSW50cmluc2ljTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBjb21wdXRl
QXNwZWN0UmF0aW9BZGp1c3RlZEludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWlu
TG9naWNhbFdpZHRoLCBMYXlvdXRVbml0JiBtYXhMb2dpY2FsV2lkdGgpIGNvbnN0OwogCi0gICAg
dmlydHVhbCBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdCB7
IHJldHVybiAwOyB9CiAgICAgQVNDSUlMaXRlcmFsIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiAiUmVuZGVyUmVwbGFjZWQiX3M7IH0KIAogICAgIGJvb2wgY2FuSGF2ZUNoaWxk
cmVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEyMSw4ICsxMjEsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgY2FuQmVTZWxlY3Rpb25MZWFmKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25SZWN0Rm9yUmVwYWlu
dChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGNs
aXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSkgZmluYWw7Ci0gICAgdm9pZCBjb21wdXRlQXNwZWN0
UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUmIGNvbnN0
cmFpbmVkU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7Ci0gICAgdm9pZCBj
b21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhS
ZW5kZXJCb3gqIGNvbnRlbnRSZW5kZXJlciwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZs
b2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZUludHJpbnNp
Y1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoRmxvYXRTaXplJiBjb25z
dHJhaW5lZFNpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CiAgICAgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCmluZGV4IDRkYTUwOGI2YTczYS4uZDk1
ODNkZTY1YmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lk
Z2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcApA
QCAtNDg3LDE1ICs0ODcsNDYgQEAgYm9vbCBSZW5kZXJXaWRnZXQ6OnNob3VsZEludmFsaWRhdGVQ
cmVmZXJyZWRXaWR0aHMoKSBjb25zdAogewogICAgIGlmIChSZW5kZXJSZXBsYWNlZDo6c2hvdWxk
SW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBy
ZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgcmV0dXJuIGVtYmVkZGVkU1ZHUm9vdCgp
OwogfQogCi1SZW5kZXJCb3gqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRDb250ZW50Qm94KCkgY29u
c3QKK1JlbmRlclJlcGxhY2VkKiBSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0
CiB7CiAgICAgaWYgKCFpczxSZW5kZXJFbWJlZGRlZE9iamVjdD4odGhpcykpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogICAgIFJlZlB0ciBmcmFtZVZpZXcgPSBkeW5hbWljRG93bmNhc3Q8TG9j
YWxGcmFtZVZpZXc+KHdpZGdldCgpKTsKLSAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3
LT5lbWJlZGRlZENvbnRlbnRCb3goKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIGZyYW1lVmlldyA/
IGZyYW1lVmlldy0+ZW1iZWRkZWRTVkdSb290KCkgOiBudWxscHRyOworfQorCitGbG9hdFNpemUg
UmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0Cit7CisgICAgQ2hlY2tl
ZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCk7CisgICAgaWYgKCFzdmdSb290KQorICAg
ICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CisKKyAg
ICBhdXRvIGludHJpbnNpY1NpemUgPSBzdmdSb290LT5jb21wdXRlSW50cmluc2ljU2l6ZSgpOwor
ICAgIGludHJpbnNpY1NpemUuc2NhbGUoc3R5bGUoKS51c2VkWm9vbSgpKTsKKworICAgIGlmICgh
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkKKyAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJp
bnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKworICAgIHJldHVybiBpbnRyaW5zaWNTaXplOwor
fQorCitGbG9hdFNpemUgUmVuZGVyV2lkZ2V0OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0
Cit7CisgICAgQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCk7CisgICAgaWYg
KCFzdmdSb290KQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVj
dFJhdGlvKCk7CisKKyAgICBhdXRvIHJhdGlvID0gc3ZnUm9vdC0+cHJlZmVycmVkQXNwZWN0UmF0
aW8oKTsKKyAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgJiYgIXJhdGlvLmlzRW1w
dHkoKSkKKyAgICAgICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgaWYg
KHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0UmF0aW8o
KS5pc0F1dG9BbmRSYXRpbygpICYmIHJhdGlvLmlzRW1wdHkoKSkpCisgICAgICAgIHJhdGlvID0g
RmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24oc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxXaWR0
aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbEhlaWdodCgpLnZhbHVlKTsKKwor
ICAgIHJldHVybiByYXRpbzsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCmluZGV4IGUwMTc4MTYyMDBkZi4uOTJmMjgxMzhj
YWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCkBAIC05MSw3ICs5
MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbGVtZW50KCkgY29uc3QgPSBkZWxldGU7CiAKICAg
ICBib29sIHNob3VsZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdCBmaW5hbDsKLSAg
ICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0IGZpbmFsOworICAgIFJlbmRl
clJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNpemUg
Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdCBmaW5hbDsKKyAgICBGbG9hdFNpemUgcHJlZmVy
cmVkQXNwZWN0UmF0aW8oKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0U2VsZWN0aW9uU3Rh
dGUoSGlnaGxpZ2h0U3RhdGUpIGZpbmFsOwogICAgIHZvaWQgc2V0T3ZlcmxhcFRlc3RSZXN1bHQo
Ym9vbCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdS
b290LmNwcAppbmRleCBkZTI5NDM2MjQyOTguLjJhZjYyNTVlOGFlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC05Niw3ICs5Niw5IEBA
IGJvb2wgUmVuZGVyU1ZHUm9vdDo6aGFzSW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogCiBG
bG9hdFNpemUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewot
ICAgIEFTU0VSVF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNJ
blJlbmRlclRyZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpOworICAg
IC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5zaW9ucyBmcm9t
IGNvbnRlbnQuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAg
IHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKICAgICAvLyBo
dHRwczovL3d3dy53My5vcmcvVFIvU1ZHL2Nvb3Jkcy5odG1sI0ludHJpbnNpY1NpemluZwogICAg
IEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljV2lk
dGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgpIH07CiAgICAgLy8gVHJhbnNw
b3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKQEAgLTEwNyw3ICsxMDksOSBAQCBGbG9hdFNp
emUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNp
emUgUmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFT
U0VSVCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlu
bWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICBp
ZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJl
cGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogCiAgICAgaWYgKHN0eWxlKCkuYXNwZWN0
UmF0aW8oKS5pc1JhdGlvKCkpCiAgICAgICAgIHJldHVybiBGbG9hdFNpemU6Om5hcnJvd1ByZWNp
c2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNw
ZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xlZ2FjeS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcAppbmRl
eCAzNmQzZTM4NTlkYjYuLmJiMjdiMTAwNzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKQEAg
LTg2LDcgKzg2LDkgQEAgYm9vbCBMZWdhY3lSZW5kZXJTVkdSb290OjpoYXNJbnRyaW5zaWNBc3Bl
Y3RSYXRpbygpIGNvbnN0CiAKIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRl
SW50cmluc2ljU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX0lNUExJRVModmlldygpLmZyYW1l
VmlldygpLmxheW91dENvbnRleHQoKS5pc0luUmVuZGVyVHJlZUxheW91dCgpLCAhc2hvdWxkQXBw
bHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2Vz
IGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICBpZiAoc2hvdWxkQXBwbHlT
aXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRl
SW50cmluc2ljU2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplID0geyBzdmdTVkdF
bGVtZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZHRWxlbWVudCgpLmludHJpbnNpY0hlaWdo
dCgpIH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0aWNhbCB3cml0aW5nIG1vZGUKICAgICBp
ZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBAIC05Niw3ICs5OCw5IEBAIEZsb2F0U2l6
ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIEZs
b2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0
CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBT
aXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250
ZW50LgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1
cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAgICBpZiAoc3R5
bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSkKICAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZTo6
bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwg
c3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA5YTBkNDgyNmE2OTAuLjg2MjllMGVkMjE2
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0yNzYsOCAr
Mjc2LDggQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2UoY29uc3Qg
RmxvYXRTaXplJiBzaXplLCBjb25zdCBEZXN0aW5hdGkKICAgICBhdXRvIHJlbmRlcmluZ01vZGUg
PSBtX3BhZ2UtPnNldHRpbmdzKCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpID8gUmVuZGVy
aW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVkOwogCiAg
ICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IG51bGxwdHI7Ci0gICAgaWYgKENoZWNrZWRQdHIg
Y29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCkpCi0gICAgICAgIGhvc3RXaW5k
b3cgPSBjb250ZW50UmVuZGVyZXItPmhvc3RXaW5kb3coKTsKKyAgICBpZiAoQ2hlY2tlZFB0ciBz
dmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpCisgICAgICAgIGhvc3RXaW5kb3cgPSBzdmdSb290
LT5ob3N0V2luZG93KCk7CiAKICAgICBSZWZQdHIgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6
Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2U6OkRPTSwgMSwgY29s
b3JTcGFjZSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAgICBpZiAoIWltYWdl
QnVmZmVyKQpAQCAtMzkyLDEyICszOTIsMTIgQEAgSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWMKICAg
ICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCi1SZW5kZXJCb3gqIFNWR0lt
YWdlOjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFNWR0ltYWdl
OjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIFJlZlB0ciByb290RWxlbWVudCA9IHRo
aXMtPnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJveD4ocm9vdEVsZW1lbnQtPnJl
bmRlcmVyKCkpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4ocm9vdEVsZW1l
bnQtPnJlbmRlcmVyKCkpOwogfQogCiBMb2NhbEZyYW1lVmlldyogU1ZHSW1hZ2U6OmZyYW1lVmll
dygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCmluZGV4IGY0NTc3
ZDVjZjA0Mi4uZjc0M2EzNzAzMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgSW1hZ2VCdWZmZXI7
CiBjbGFzcyBMb2NhbEZyYW1lVmlldzsKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBSZW5kZXJCb3g7Citj
bGFzcyBSZW5kZXJSZXBsYWNlZDsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBTVkdJbWFn
ZUNocm9tZUNsaWVudDsKIGNsYXNzIFNWR0ltYWdlRm9yQ29udGFpbmVyOwpAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdHJ5Q3JlYXRlRnJv
bURhdGEoc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJl
ZlB0cjxTVkdJbWFnZT4mJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGlz
RGF0YURlY29kYWJsZShjb25zdCBTZXR0aW5ncyYsIHN0ZDo6c3Bhbjxjb25zdCB1aW50OF90Pik7
CiAKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OworICAgIFJlbmRl
clJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdDsKICAgICBMb2NhbEZyYW1lVmlldyog
Tk9ERUxFVEUgZnJhbWVWaWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlzU1ZHSW1hZ2UoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479559</attachid>
            <date>2026-05-09 18:32:41 -0700</date>
            <delta_ts>2026-05-10 12:16:32 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-314455-20260509183240.patch</filename>
            <type>text/plain</type>
            <size>21131</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjZWU1ODM3ZThmOTE1ODEyZGVmNjg3MGJmMmJhMTQxNThmZmRkMWZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IEZyaSwgOCBNYXkgMjAyNiAyMDoyODo0MiAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKUHJldmlvdXNseSwgYSBzaW5nbGUg
bW9ub2xpdGhpYyBmdW5jdGlvbiAoY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5k
ZXJCb3gpCmhhbmRsZWQgdGhyZWUgdGFza3MgYXQgb25jZToKMS4gZ2V0dGluZyB0aGUgaW50cmlu
c2ljIHNpemUsCjIuIGdldHRpbmcgdGhlIHByZWZlcnJlZCBhc3BlY3QgcmF0aW8sIGFuZAozLiBj
YWNoaW5nIHRoZSByZXN1bHQgdG8gbV9pbnRyaW5zaWNTaXplLgoKSXQgdG9vayBhIFJlbmRlclJl
cGxhY2VkKiBwYXJhbWV0ZXIgdG8gb3B0aW9uYWxseSBkZWxlZ2F0ZSB0byBhbiBlbWJlZGRlZCBT
Vkcgcm9vdCByZW5kZXJlci4KClRoZSBwcm9ibGVtIHdhcyB0aGF0IHRoaXMgbWFkZSBpdCBpbXBv
c3NpYmxlIHRvIGFzayBmb3IganVzdCB0aGUgcmF0aW8gd2l0aG91dAphbHNvIGNvbXB1dGluZyB0
aGUgc2l6ZSBhbmQgdHJpZ2dlcmluZyB0aGUgY2FjaGUgdXBkYXRlLiBDYWxsZXJzIGxpa2UKY29t
cHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvKCkgYW5kIGludHJpbnNpY1JhdGlvKCkgb25seSBuZWVk
ZWQgdGhlIHJhdGlvIGJ1dApoYWQgdG8gZ28gdGhyb3VnaCB0aGUgd2hvbGUgY29tYmluZWQgZnVu
Y3Rpb24uCgpUaGUgZml4IG1vdmVzIGVtYmVkZGVkLWNvbnRlbnQgaGFuZGxpbmcgaW50byB2aXJ0
dWFsIG92ZXJyaWRlcyB3aGVyZSB0aGUgbG9naWMgYmVsb25nczoKLSBSZW5kZXJJbWFnZTo6Y29t
cHV0ZUludHJpbnNpY1NpemUoKSBhbmQgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBub3cgaGFuZGxl
CiAgdGhlIFNWRy1pbWFnZSBlbWJlZGRlZCBjYXNlICh6b29tLCBEUFIsIHdyaXRpbmcgbW9kZSku
Ci0gUmVuZGVyV2lkZ2V0Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGFuZCBwcmVmZXJyZWRBc3Bl
Y3RSYXRpbygpIG5vdyBoYW5kbGUKICB0aGUgaWZyYW1lL29iamVjdCBlbWJlZGRlZCBjYXNlICh6
b29tLCB3cml0aW5nIG1vZGUpLgoKVGhpcyBlbGltaW5hdGVzIGNvbXB1dGVBc3BlY3RSYXRpb0lu
Zm9ybWF0aW9uRm9yUmVuZGVyQm94IGVudGlyZWx5IGFuZCByZW1vdmVzCnRoZSBSZW5kZXJSZXBs
YWNlZCogcGFyYW1ldGVyIGZyb20gY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRy
YW5zZmVycmVkTWluTWF4U2l6ZXMuClJhdGlvIHF1ZXJpZXMgKGNvbXB1dGVJbnRyaW5zaWNBc3Bl
Y3RSYXRpbywgaW50cmluc2ljUmF0aW8pIGFyZSBub3cgc2ltcGxlIG9uZS1saW5lcnMgd2l0aCBu
byBzaWRlIGVmZmVjdHMuCgpObyBiZWhhdmlvciBjaGFuZ2UgKHRoZSBtX2ludHJpbnNpY1NpemUg
Y2FjaGluZyBzdGlsbCBoYXBwZW5zIGR1cmluZyBsYXlvdXQKdmlhIGNvbXB1dGVJbnRyaW5zaWNT
aXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKQoKKiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmNvbXB1
dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpwcmVmZXJyZWRB
c3BlY3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxh
Y2VkLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXND
b25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5k
ZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6
OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aCBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbEhlaWdodCBjb25zdCk6CihX
ZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6aW50cmluc2ljUmF0aW8gY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94
IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6Y29tcHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6
UmVuZGVyV2lkZ2V0OjpwcmVmZXJyZWRBc3BlY3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3Bl
Y3RSYXRpbyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVn
YWN5UmVuZGVyU1ZHUm9vdC5jcHA6CihXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21w
dXRlSW50cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpMZWdhY3lSZW5kZXJTVkdSb290Ojpw
cmVmZXJyZWRBc3BlY3RSYXRpbyBjb25zdCk6Ci0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcCAgICAgIHwgMzIgKysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgICB8IDc0ICsrKystLS0tLS0tLS0tLS0tLS0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAgICB8ICA5ICstLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgICAgIHwgNDIgKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCAgICAgICB8ICAyICsKIC4u
Li9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgICB8IDExICsrLQogLi4u
L3N2Zy9sZWdhY3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgICAgICAgIHwgMTEgKystCiA3IGZp
bGVzIGNoYW5nZWQsIDExMCBpbnNlcnRpb25zKCspLCA3MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAppbmRleCBhNTMwZjRiZDNiNTIuLmI5Mjky
MDVlODE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC05
NDAsNyArOTQwLDIwIEBAIHZvaWQgUmVuZGVySW1hZ2U6OmxheW91dCgpCiAKIEZsb2F0U2l6ZSBS
ZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIEFTU0VSVCgh
c2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBz
dXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICAvLyBUaGUg
YmFzZSBjbGFzcyByZXR1cm5zIHZhbHVlcyBmcm9tIHRoZSBjYWNoZSAvIGNvbnRhaW4taW50cmlu
c2ljLXNpemUgd2l0aG91dCBxdWVyeWluZyBpbWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRBcHBs
eVNpemVDb250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1
dGVJbnRyaW5zaWNTaXplKCk7CisKKyAgICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRk
ZWRTVkdSb290KCkpIHsKKyAgICAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29t
cHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgp
LnVzZWRab29tKCkpOworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKGltYWdlRGV2aWNlUGl4
ZWxSYXRpbygpKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKQorICAg
ICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsK
KyAgICAgICAgcmV0dXJuIGludHJpbnNpY1NpemU7CisgICAgfQorCiAgICAgYXV0byBpbnRyaW5z
aWNTaXplID0gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAKICAgICAv
LyBPdXIgaW50cmluc2ljU2l6ZSBpcyBlbXB0eSBpZiB3ZSdyZSByZW5kZXJpbmcgZ2VuZXJhdGVk
IGltYWdlcyB3aXRoIHJlbGF0aXZlIHdpZHRoL2hlaWdodC4gRmlndXJlIG91dCB0aGUgcmlnaHQg
aW50cmluc2ljIHNpemUgdG8gdXNlLgpAQCAtOTU3LDcgKzk3MCwxMSBAQCBGbG9hdFNpemUgUmVu
ZGVySW1hZ2U6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKIAogRmxvYXRTaXplIFJlbmRl
ckltYWdlOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91
bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHBy
ZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAgLy8g
YXNwZWN0IHJhdGlvIGZyb20gdGhlIENTUyBhc3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3RpbGwg
YXZhaWxhYmxlIHZpYSB0aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1ZXJ5
IGltYWdlIGRhdGEpLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAg
ICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAg
ICAvLyBEb24ndCBjb21wdXRlIGFuIGludHJpbnNpYyByYXRpbyB0byBwcmVzZXJ2ZSBoaXN0b3Jp
Y2FsIFdlYktpdCBiZWhhdmlvciBpZiB3ZSdyZSBwYWludGluZyBhbHQgdGV4dCBhbmQvb3IgYSBi
cm9rZW4gaW1hZ2UuCiAgICAgaWYgKHNob3VsZERpc3BsYXlCcm9rZW5JbWFnZUljb24oKSkgewpA
QCAtOTY2LDYgKzk4MywxNyBAQCBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVj
dFJhdGlvKCkgY29uc3QKICAgICAgICAgcmV0dXJuIHsgMS4wLCAxLjAgfTsKICAgICB9CiAKKyAg
ICBpZiAoQ2hlY2tlZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpIHsKKyAgICAgICAg
YXV0byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgICAgIGlm
ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiAhcmF0aW8uaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmF0aW8gPSByYXRpby50cmFuc3Bvc2VkU2l6ZSgpOworCisgICAgICAgIGlmIChzdHls
ZSgpLmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNB
dXRvQW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAgICAgICAgICAgcmF0aW8gPSBG
bG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRo
KCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOworCisg
ICAgICAgIHJldHVybiByYXRpbzsKKyAgICB9CisKICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6
OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IGNjZmVhYWU1NzdmMy4uZTM3NmRiYjU3MmI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTQ3MCw2MSAr
NDcwLDI1IEBAIHN0YXRpYyBib29sIGlzVmlkZW9XaXRoRGVmYXVsdE9iamVjdFNpemUoY29uc3Qg
UmVuZGVyUmVwbGFjZWQqIG1heWJlVmlkZW8pCiAgICAgcmV0dXJuIGZhbHNlOwogfSAKIAotdm9p
ZCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3goUmVuZGVyUmVwbGFjZWQqIHN2Z1Jvb3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBG
bG9hdFNpemUmIHByZWZlcnJlZEFzcGVjdFJhdGlvKSBjb25zdAordm9pZCBSZW5kZXJSZXBsYWNl
ZDo6Y29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6
ZXMoRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBj
b25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNTaXplOwogICAgIGlmIChzaG91bGRBcHBs
eVNpemVPcklubGluZVNpemVDb250YWlubWVudCgpKSB7CiAgICAgICAgIGludHJpbnNpY1NpemUg
PSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKLSAgICAgICAgcHJlZmVy
cmVkQXNwZWN0UmF0aW8gPSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsK
LSAgICB9IGVsc2UgaWYgKHN2Z1Jvb3QpIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IHN2Z1Jv
b3QtPmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlv
ID0gc3ZnUm9vdC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLQotICAgICAgICBpZiAoc3R5bGUo
KS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSB8fCAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzQXV0
b0FuZFJhdGlvKCkgJiYgcHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpKSkKLSAgICAgICAg
ICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gRmxvYXRTaXplOjpuYXJyb3dQcmVjaXNpb24oc3R5
bGUoKS5hc3BlY3RSYXRpbygpLndpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5o
ZWlnaHQoKS52YWx1ZSk7Ci0KLSAgICAgICAgLy8gSGFuZGxlIHpvb20gJiB2ZXJ0aWNhbCB3cml0
aW5nIG1vZGVzIGhlcmUsIGFzIHRoZSBlbWJlZGRlZCBkb2N1bWVudCBkb2Vzbid0IGtub3cgYWJv
dXQgdGhlbS4KLSAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShzdHlsZSgpLnVzZWRab29tKCkp
OwotCi0gICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJJbWFn
ZT4oKnRoaXMpKQotICAgICAgICAgICAgaW50cmluc2ljU2l6ZS5zY2FsZShpbWFnZS0+aW1hZ2VE
ZXZpY2VQaXhlbFJhdGlvKCkpOwotCi0gICAgICAgIC8vIFVwZGF0ZSBvdXIgaW50cmluc2ljIHNp
emUgdG8gbWF0Y2ggd2hhdCB0aGUgY29udGVudCByZW5kZXJlciBoYXMgY29tcHV0ZWQsIHNvIHRo
YXQgd2hlbiB3ZQotICAgICAgICAvLyBjb25zdHJhaW4gdGhlIHNpemUgYmVsb3csIHRoZSBjb3Jy
ZWN0IGludHJpbnNpYyBzaXplIHdpbGwgYmUgb2J0YWluZWQgZm9yIGNvbXBhcmlzb24gYWdhaW5z
dAotICAgICAgICAvLyBtaW4gYW5kIG1heCB3aWR0aHMuCi0gICAgICAgIGlmIChpc1JlbmRlcldp
ZGdldCgpKSB7Ci0gICAgICAgICAgICAvLyBGb3IgUmVuZGVyV2lkZ2V0IGNvbnRlbnQgKGUuZy4g
PG9iamVjdD4gZW1iZWRkaW5nIGFuIFNWRyBkb2N1bWVudCksIGFsd2F5cyB1cGRhdGUKLSAgICAg
ICAgICAgIC8vIG1faW50cmluc2ljU2l6ZSB0byByZWZsZWN0IGN1cnJlbnQgaW50cmluc2ljIGRp
bWVuc2lvbnMsIGFwcGx5aW5nIENTUyBkZWZhdWx0IGZhbGxiYWNrCi0gICAgICAgICAgICAvLyB2
YWx1ZXMgKDMwMHgxNTApIGZvciBkaW1lbnNpb25zIHdpdGggbm8gaW50cmluc2ljIHZhbHVlIChl
LmcuIHBlcmNlbnRhZ2Utc2l6ZWQgb3IKLSAgICAgICAgICAgIC8vIHJlbW92ZWQgYXR0cmlidXRl
cykuIFRoaXMgcHJldmVudHMgc3RhbGUgY2FjaGVkIHNpemVzIHdoZW4gYXR0cmlidXRlcyBsaWtl
IHdpZHRoL2hlaWdodAotICAgICAgICAgICAgLy8gYXJlIHJlbW92ZWQuIE5vdGU6IHRoaXMgZG9l
cyBub3QgYXBwbHkgdG8gUmVuZGVySW1hZ2UgKDxpbWcgc3JjPSJzdmciPiksIHdoaWNoIG1hbmFn
ZXMKLSAgICAgICAgICAgIC8vIGl0cyBvd24gaW50cmluc2ljIHNpemUgdmlhIHNldEludHJpbnNp
Y1NpemUoKSBkdXJpbmcgaW1hZ2UgbG9hZC4KLSAgICAgICAgICAgIGF1dG8gc2l6ZVRvQ2FjaGUg
PSBpbnRyaW5zaWNTaXplOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9IFJlbmRlclJlcGxhY2Vk
OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOworICAgIH0gZWxzZSB7CisgICAgICAgIGludHJpbnNp
Y1NpemUgPSBjb21wdXRlSW50cmluc2ljU2l6ZSgpOworICAgICAgICBpbnRyaW5zaWNSYXRpbyA9
IHByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisKKyAgICAgICAgYXV0byBzaXplVG9DYWNoZSA9IGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBpbnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50
cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICBpZiAoZW1iZWRkZWRTVkdSb290KCkgJiYgaXNSZW5k
ZXJXaWRnZXQoKSkgewogICAgICAgICAgICAgaWYgKCFzaXplVG9DYWNoZS53aWR0aCgpKQogICAg
ICAgICAgICAgICAgIHNpemVUb0NhY2hlLnNldFdpZHRoKGNEZWZhdWx0V2lkdGgpOwogICAgICAg
ICAgICAgaWYgKCFzaXplVG9DYWNoZS5oZWlnaHQoKSkKICAgICAgICAgICAgICAgICBzaXplVG9D
YWNoZS5zZXRIZWlnaHQoY0RlZmF1bHRIZWlnaHQpOwogICAgICAgICAgICAgbV9pbnRyaW5zaWNT
aXplID0gTGF5b3V0U2l6ZShzaXplVG9DYWNoZSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoIXByZWZl
cnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSAmJiAhaW50cmluc2ljU2l6ZS5pc1plcm8oKSkKLSAg
ICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoaW50cmluc2ljU2l6ZSk7Ci0K
LSAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSB7Ci0gICAgICAgICAgICBp
ZiAoIXByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBwcmVm
ZXJyZWRBc3BlY3RSYXRpbyA9IHByZWZlcnJlZEFzcGVjdFJhdGlvLnRyYW5zcG9zZWRTaXplKCk7
Ci0gICAgICAgICAgICBpbnRyaW5zaWNTaXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6
ZSgpOwotICAgICAgICB9Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaW50cmluc2ljU2l6ZSA9IGNv
bXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gdGhp
cy0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKLSAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RS
YXRpby5pc0VtcHR5KCkgJiYgIWludHJpbnNpY1NpemUuaXNaZXJvKCkpCi0gICAgICAgICAgICBt
X2ludHJpbnNpY1NpemUgPSBMYXlvdXRTaXplKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBp
bnRyaW5zaWNTaXplIDogaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpKTsKKyAgICAgICAg
fSBlbHNlIGlmICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXplLmlz
WmVybygpKQorICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShzaXplVG9D
YWNoZSk7CiAgICAgfQotICAgIGNvbnN0cmFpbmVkU2l6ZSA9IGludHJpbnNpY1NpemU7Ci19Ci0K
LXZvaWQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlU
cmFuc2ZlcnJlZE1pbk1heFNpemVzKFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBGbG9hdFNpemUm
IGludHJpbnNpY1NpemUsIEZsb2F0U2l6ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0Ci17Ci0gICAg
Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goc3ZnUm9vdCwgaW50cmlu
c2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAgICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50
cmluc2ljIHNpemUgYWxvbmcgZWFjaCBheGlzIGFjY29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhp
bXVtIHdpZHRoL2hlaWdodHMgYWxvbmcgdGhlCiAgICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9y
IGV4YW1wbGUgYSBtYXhpbXVtIHdpZHRoIHRoYXQgc2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1
bHQgaW4gdGhlIGhlaWdodCB3ZSBjb21wdXRlIGhlcmUKQEAgLTU5NiwyMyArNTYwLDE2IEBAIExh
eW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OnJlcGxhY2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0
U2l6ZSYgaW50cmluc2ljU2l6ZSkKIAogZG91YmxlIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50
cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRp
bzsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9J
bmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZFNWR1Jvb3QoKSwgaW50cmluc2ljU2l6ZSwg
aW50cmluc2ljUmF0aW8pOwotICAgIHJldHVybiBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0Rv
dWJsZSgpOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91
YmxlKCk7CiB9CiAKIEZsb2F0U2l6ZSBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1Np
emUoKSBjb25zdAogewotICAgIC8vIElmIHRoZXJlJ3MgYW4gZW1iZWRkZWRTVkdSb290KCkgb2Yg
YSByZW1vdGUsIHJlZmVyZW5jZWQgZG9jdW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBz
aG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAgICBBU1NFUlQoIWVtYmVkZGVkU1ZHUm9vdCgpIHx8IHNo
b3VsZEFwcGx5U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGlu
dHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAog
RmxvYXRTaXplIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7
Ci0gICAgLy8gSWYgdGhlcmUncyBhbiBlbWJlZGRlZFNWR1Jvb3QoKSBvZiBhIHJlbW90ZSwgcmVm
ZXJlbmNlZCBkb2N1bWVudCBhdmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBi
ZSB1c2VkLgotICAgIEFTU0VSVCghZW1iZWRkZWRTVkdSb290KCkgfHwgc2hvdWxkQXBwbHlTaXpl
T3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxv
YXRTaXplKGludHJpbnNpY0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkp
OwogICAgIEZsb2F0U2l6ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNzExLDcgKzY2OCw3
IEBAIExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0
aChTaG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgLy8gMTAuMy4yIElubGluZSwgcmVwbGFj
ZWQgZWxlbWVudHM6IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3Zpc3VkZXQuaHRtbCNpbmxp
bmUtcmVwbGFjZWQtd2lkdGgKICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAgICAgRmxv
YXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJh
aW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWlu
ZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAgY29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3Ry
YWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNS
YXRpbyk7CiAKICAgICBpZiAoc3R5bGUubG9naWNhbFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAg
ICAgYm9vbCBjb21wdXRlZEhlaWdodElzQXV0byA9IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1
dG8oKTsKQEAgLTgwNyw3ICs3NjQsNyBAQCBMYXlvdXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21w
dXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KHN0ZDo6b3B0aW9uYWw8TGF5b3V0VW5pdAogICAgIC8v
IDEwLjYuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9D
U1MyMS92aXN1ZGV0Lmh0bWwjaW5saW5lLXJlcGxhY2VkLWhlaWdodAogICAgIEZsb2F0U2l6ZSBp
bnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAgIGNvbXB1
dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGVtYmVk
ZGVkU1ZHUm9vdCgpLCBjb25zdHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKKyAgICBjb21w
dXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb25z
dHJhaW5lZFNpemUsIGludHJpbnNpY1JhdGlvKTsKIAogICAgIGJvb2wgd2lkdGhJc0F1dG8gPSBz
dHlsZSgpLmxvZ2ljYWxXaWR0aCgpLmlzQXV0bygpOwogICAgIGJvb2wgaGFzSW50cmluc2ljV2lk
dGggPSBjb25zdHJhaW5lZFNpemUud2lkdGgoKSA+IDAgfHwgKCFjb25zdHJhaW5lZFNpemUud2lk
dGgoKSAmJiBzaG91bGRSZXNwZWN0WmVyb0ludHJpbnNpY1dpZHRoKCkpIHx8IHNob3VsZEFwcGx5
U2l6ZU9ySW5saW5lU2l6ZUNvbnRhaW5tZW50KCk7CkBAIC0xMDYyLDEwICsxMDE5LDcgQEAgdm9p
ZCBSZW5kZXJSZXBsYWNlZDo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXplJiBv
bGRTaXplKQogCiBGbG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkgY29u
c3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNvbnN0
cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJv
eChlbWJlZGRlZFNWR1Jvb3QoKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7Ci0g
ICAgcmV0dXJuIGludHJpbnNpY1JhdGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRp
bygpOwogfQogCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQ
b3NpdGlvbmVkTG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0
ZWRWYWx1ZXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5o
CmluZGV4IGNhZjc4ODlkN2ExMC4uNmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgYm9v
bCByZXBsYWNlZE1pbkxvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0OwogICAgIGJv
b2wgcmVwbGFjZWRNYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKIAorICAg
IHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7CisgICAgdmly
dHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJvdGVjdGVk
OgogICAgIFJlbmRlclJlcGxhY2VkKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRp
b25TZXQ8UmVwbGFjZWRGbGFnPiA9IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwgRWxl
bWVudCYsIFJlbmRlclN0eWxlJiYsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUsIE9w
dGlvblNldDxSZXBsYWNlZEZsYWc+ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJvdGVjdGVk
OgogCiAgICAgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRTaXplIGNv
bXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVy
cmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShjb25z
dCBMYXlvdXRTaXplJiBpbnRyaW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJpbnNp
Y1NpemU7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAgICB2
aXJ0dWFsIGJvb2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQpAQCAtMTIxLDggKzEyMSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBjYW5C
ZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAKICAgICBM
YXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRvVmlzaWJsZUNvbnRlbnQgPSB0cnVl
KSBmaW5hbDsKLSAgICB2b2lkIGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVy
Qm94KFJlbmRlclJlcGxhY2VkKiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIEZsb2F0U2l6
ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwotICAgIHZvaWQgY29tcHV0ZUludHJpbnNpY1NpemVz
Q29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMoUmVuZGVyUmVwbGFjZWQqIHN2Z1Jv
b3QsIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlv
KSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFu
c2ZlcnJlZE1pbk1heFNpemVzKEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBGbG9hdFNpemUm
IGludHJpbnNpY1JhdGlvKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3U2Vs
ZWN0aW9uVGludCgpIGNvbnN0OwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
V2lkZ2V0LmNwcAppbmRleCBlOGNiMGEwZTQ5Y2IuLmRmNjc0N2QzYmY4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKQEAgLTQ5OCw0ICs0OTgsNDYgQEAgUmVu
ZGVyUmVwbGFjZWQqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKICAgICBy
ZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7
CiB9CiAKK0Zsb2F0U2l6ZSBSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29u
c3QKK3sKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVu
c2lvbnMgZnJvbSBjb250ZW50LgorICAgIC8vIFRoZSBiYXNlIGNsYXNzIHJldHVybnMgdmFsdWVz
IGZyb20gdGhlIGNhY2hlIC8gY29udGFpbi1pbnRyaW5zaWMtc2l6ZSB3aXRob3V0IHF1ZXJ5aW5n
IGltYWdlIGRhdGEuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAg
ICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKworICAg
IENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3ZnUm9v
dCkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgp
OworCisgICAgYXV0byBpbnRyaW5zaWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1Np
emUoKTsKKyAgICBpbnRyaW5zaWNTaXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7CisKKyAg
ICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgIGludHJpbnNpY1NpemUg
PSBpbnRyaW5zaWNTaXplLnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICByZXR1cm4gaW50cmluc2lj
U2l6ZTsKK30KKworRmxvYXRTaXplIFJlbmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8o
KSBjb25zdAoreworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMg
ZGltZW5zaW9ucyBmcm9tIGNvbnRlbnQsIGJ1dCB0aGUKKyAgICAvLyBhc3BlY3QgcmF0aW8gZnJv
bSB0aGUgQ1NTIGFzcGVjdC1yYXRpbyBwcm9wZXJ0eSBpcyBzdGlsbCBhdmFpbGFibGUgdmlhIHRo
ZQorICAgIC8vIGJhc2UgY2xhc3MgKHdoaWNoIGRvZXNuJ3QgcXVlcnkgaW1hZ2UgZGF0YSkuCisg
ICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5k
ZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKworICAgIENoZWNrZWRQdHIgc3Zn
Um9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3ZnUm9vdCkKKyAgICAgICAgcmV0
dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOworCisgICAgYXV0byBy
YXRpbyA9IHN2Z1Jvb3QtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CisgICAgaWYgKCFpc0hvcml6
b250YWxXcml0aW5nTW9kZSgpICYmICFyYXRpby5pc0VtcHR5KCkpCisgICAgICAgIHJhdGlvID0g
cmF0aW8udHJhbnNwb3NlZFNpemUoKTsKKworICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCku
aXNSYXRpbygpIHx8IChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiBy
YXRpby5pc0VtcHR5KCkpKQorICAgICAgICByYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJlY2lz
aW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3Bl
Y3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7CisKKyAgICByZXR1cm4gcmF0aW87Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJXaWRnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRn
ZXQuaAppbmRleCAzOWM0MGUzYmIwNzQuLjkyZjI4MTM4Y2FhZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJXaWRnZXQuaApAQCAtOTIsNiArOTIsOCBAQCBwcml2YXRlOgogCiAgICAg
Ym9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QgZmluYWw7CiAgICAg
UmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IGZpbmFsOworICAgIEZsb2F0
U2l6ZSBjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0IGZpbmFsOworICAgIEZsb2F0U2l6ZSBw
cmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzZXRTZWxlY3Rp
b25TdGF0ZShIaWdobGlnaHRTdGF0ZSkgZmluYWw7CiAgICAgdm9pZCBzZXRPdmVybGFwVGVzdFJl
c3VsdChib29sKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwCmluZGV4IGRlMjk0MzYyNDI5OC4uNWFkMDc4MGFiOGYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTk2LDcgKzk2
LDEwIEBAIGJvb2wgUmVuZGVyU1ZHUm9vdDo6aGFzSW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25z
dAogCiBGbG9hdFNpemUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25z
dAogewotICAgIEFTU0VSVF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0
KCkuaXNJblJlbmRlclRyZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkp
OworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5zaW9u
cyBmcm9tIGNvbnRlbnQuCisgICAgLy8gVGhlIGJhc2UgY2xhc3MgcmV0dXJucyB2YWx1ZXMgZnJv
bSB0aGUgY2FjaGUgLyBjb250YWluLWludHJpbnNpYy1zaXplIHdpdGhvdXQgcXVlcnlpbmcgaW1h
Z2UgZGF0YS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAg
cmV0dXJuIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwogICAgIC8vIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi9TVkcvY29vcmRzLmh0bWwjSW50cmluc2ljU2l6aW5nCiAgICAg
RmxvYXRTaXplIGludHJpbnNpY1NpemUgPSB7IHN2Z1NWR0VsZW1lbnQoKS5pbnRyaW5zaWNXaWR0
aCgpLCBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljSGVpZ2h0KCkgfTsKICAgICAvLyBUcmFuc3Bv
c2UgZm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZQpAQCAtMTA3LDcgKzExMCwxMSBAQCBGbG9hdFNp
emUgUmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNp
emUgUmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFT
U0VSVCghc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlu
bWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudCwgYnV0IHRo
ZQorICAgIC8vIGFzcGVjdCByYXRpbyBmcm9tIHRoZSBDU1MgYXNwZWN0LXJhdGlvIHByb3BlcnR5
IGlzIHN0aWxsIGF2YWlsYWJsZSB2aWEgdGhlCisgICAgLy8gYmFzZSBjbGFzcyAod2hpY2ggZG9l
c24ndCBxdWVyeSBpbWFnZSBkYXRhKS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1l
bnQoKSkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRp
bygpOwogCiAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkpCiAgICAgICAg
IHJldHVybiBGbG9hdFNpemU6Om5hcnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9n
aWNhbFdpZHRoKCkudmFsdWUsIHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFs
dWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVn
YWN5UmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xlZ2Fj
eS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcAppbmRleCAzNmQzZTM4NTlkYjYuLjA4N2E0ZDJiNTRh
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdhY3kvTGVnYWN5
UmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9sZWdh
Y3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTg2LDcgKzg2LDEwIEBAIGJvb2wgTGVnYWN5
UmVuZGVyU1ZHUm9vdDo6aGFzSW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogCiBGbG9hdFNp
emUgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewot
ICAgIEFTU0VSVF9JTVBMSUVTKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNJ
blJlbmRlclRyZWVMYXlvdXQoKSwgIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpOworICAg
IC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5zaW9ucyBmcm9t
IGNvbnRlbnQuCisgICAgLy8gVGhlIGJhc2UgY2xhc3MgcmV0dXJucyB2YWx1ZXMgZnJvbSB0aGUg
Y2FjaGUgLyBjb250YWluLWludHJpbnNpYy1zaXplIHdpdGhvdXQgcXVlcnlpbmcgaW1hZ2UgZGF0
YS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJu
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOwogICAgIEZsb2F0U2l6ZSBp
bnRyaW5zaWNTaXplID0geyBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljV2lkdGgoKSwgc3ZnU1ZH
RWxlbWVudCgpLmludHJpbnNpY0hlaWdodCgpIH07CiAgICAgLy8gVHJhbnNwb3NlIGZvciB2ZXJ0
aWNhbCB3cml0aW5nIG1vZGUKICAgICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCkBA
IC05Niw3ICs5OSwxMSBAQCBGbG9hdFNpemUgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNpemUgTGVnYWN5UmVuZGVyU1ZHUm9vdDo6cHJl
ZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogewotICAgIEFTU0VSVCghc2hvdWxkQXBwbHlTaXpl
Q29udGFpbm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJp
bnNpYyBkaW1lbnNpb25zIGZyb20gY29udGVudCwgYnV0IHRoZQorICAgIC8vIGFzcGVjdCByYXRp
byBmcm9tIHRoZSBDU1MgYXNwZWN0LXJhdGlvIHByb3BlcnR5IGlzIHN0aWxsIGF2YWlsYWJsZSB2
aWEgdGhlCisgICAgLy8gYmFzZSBjbGFzcyAod2hpY2ggZG9lc24ndCBxdWVyeSBpbWFnZSBkYXRh
KS4KKyAgICBpZiAoc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSkKKyAgICAgICAgcmV0dXJu
IFJlbmRlclJlcGxhY2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogCiAgICAgaWYgKHN0eWxl
KCkuYXNwZWN0UmF0aW8oKS5pc1JhdGlvKCkpCiAgICAgICAgIHJldHVybiBGbG9hdFNpemU6Om5h
cnJvd1ByZWNpc2lvbihzdHlsZSgpLmFzcGVjdFJhdGlvTG9naWNhbFdpZHRoKCkudmFsdWUsIHN0
eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsSGVpZ2h0KCkudmFsdWUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>479560</attachid>
            <date>2026-05-09 18:33:49 -0700</date>
            <delta_ts>2026-05-10 12:14:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-314455-20260509183348.patch</filename>
            <type>text/plain</type>
            <size>33262</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkZWUxOGIyMTY5NWYzNWIwOTE4Nzc4MzY5ZTEwNjlkM2FlZGM3ZTdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFNhdCwgOSBNYXkgMjAyNiAxODozMzowMSAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtjbGVhbnVw
XSBSZWZhY3RvciByZXBsYWNlZCBlbGVtZW50IGludHJpbnNpYyBzaXplIGFuZCBhc3BlY3QKIHJh
dGlvIGNvbXB1dGF0aW9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
MTQ0NTUKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRVdTIChQUiB3aXRoIGRlcGVuZGVu
Y2llcykuCgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuY3BwOgooV2ViQ29y
ZTo6TG9jYWxGcmFtZVZpZXc6OmZvcmNlTGF5b3V0UGFyZW50Vmlld0lmTmVlZGVkKToKKFdlYkNv
cmU6OkxvY2FsRnJhbWVWaWV3OjplbWJlZGRlZFNWR1Jvb3QgY29uc3QpOgooV2ViQ29yZTo6TG9j
YWxGcmFtZVZpZXc6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJJbWFnZS5jcHA6CihXZWJDb3JlOjpSZW5kZXJJbWFnZTo6Y29tcHV0ZUludHJpbnNp
Y1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OnByZWZlcnJlZEFzcGVjdFJhdGlv
IGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjpzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVk
V2lkdGhzIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlckltYWdlOjplbWJlZGRlZFNWR1Jvb3QgY29u
c3QpOgooV2ViQ29yZTo6UmVuZGVySW1hZ2U6OmVtYmVkZGVkQ29udGVudEJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmg6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcDoKKFdlYkNvcmU6OlJlbmRlclJl
cGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5N
YXhTaXplcyBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNp
Y0FzcGVjdFJhdGlvIGNvbnN0KToKKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50
cmluc2ljU2l6ZSBjb25zdCk6CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6aGFzSW50cmluc2ljU2l6ZSk6CihXZWJDb3JlOjpS
ZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoIGNvbnN0KToKKFdlYkNv
cmU6OlJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjppbnRyaW5zaWNSYXRpbyBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5oOgooV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJSZXBsYWNlZDo6ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyV2lkZ2V0LmNwcDoKKFdlYkNv
cmU6OlJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocyBjb25zdCk6
CihXZWJDb3JlOjpSZW5kZXJXaWRnZXQ6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3Jl
OjpSZW5kZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplIGNvbnN0KToKKFdlYkNvcmU6OlJl
bmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgooV2ViQ29yZTo6UmVuZGVy
V2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3ggY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaDoKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cHJlZmVycmVkQXNw
ZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvbGVnYWN5L0xl
Z2FjeVJlbmRlclNWR1Jvb3QuY3BwOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUm9vdDo6Y29t
cHV0ZUludHJpbnNpY1NpemUgY29uc3QpOgooV2ViQ29yZTo6TGVnYWN5UmVuZGVyU1ZHUm9vdDo6
cHJlZmVycmVkQXNwZWN0UmF0aW8gY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZS5jcHA6CihXZWJDb3JlOjpTVkdJbWFnZTo6bmF0aXZlSW1hZ2UpOgooV2ViQ29y
ZTo6U1ZHSW1hZ2U6OmVtYmVkZGVkU1ZHUm9vdCBjb25zdCk6CihXZWJDb3JlOjpTVkdJbWFnZTo6
ZW1iZWRkZWRDb250ZW50Qm94IGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvU1ZHSW1hZ2UuaDoKLS0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0xvY2FsRnJhbWVW
aWV3LmNwcCAgICAgICAgfCAyOCArKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxGcmFt
ZVZpZXcuaCAgICAgICAgICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW1hZ2UuY3BwICAgICAgfCAzOCArKysrKysrLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckltYWdlLmggICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZXBsYWNlZC5jcHAgICB8IDkzICsrKystLS0tLS0tLS0tLS0tLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oICAgICB8IDExICstLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAgICAgIHwgNDggKysrKysrKysrLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5oICAgICAgIHwgIDQgKy0KIC4uLi9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgICB8IDExICsrLQogLi4uL3N2Zy9sZWdh
Y3kvTGVnYWN5UmVuZGVyU1ZHUm9vdC5jcHAgICAgICAgIHwgMTEgKystCiBTb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwICAgICAgfCAgOCArLQogU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmggICAgICAgIHwgIDQgKy0KIDEyIGZpbGVzIGNoYW5nZWQs
IDE0MCBpbnNlcnRpb25zKCspLCAxMjEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2FsRnJhbWVWaWV3LmNwcAppbmRleCBkZWRlNmI1MDQ1YTYuLmM3YWYyNDhmMDkyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5jcHAKQEAgLTEyMTMsMjUgKzEyMTMsMTggQEAg
dm9pZCBMb2NhbEZyYW1lVmlldzo6Zm9yY2VMYXlvdXRQYXJlbnRWaWV3SWZOZWVkZWQoKQogICAg
IGlmICghb3duZXJSZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ2hlY2tlZFB0ciBj
b250ZW50Qm94ID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0gICAgaWYgKCFjb250ZW50Qm94KQor
ICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3Zn
Um9vdCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKGF1dG8qIHN2Z1Jvb3QgPSBkeW5hbWlj
RG93bmNhc3Q8TGVnYWN5UmVuZGVyU1ZHUm9vdD4oY29udGVudEJveC5nZXQoKSkpIHsKLSAgICAg
ICAgaWYgKHN2Z1Jvb3QtPmV2ZXJIYWRMYXlvdXQoKSAmJiAhc3ZnUm9vdC0+bmVlZHNMYXlvdXQo
KSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byogc3ZnUm9vdCA9
IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTVkdSb290Pihjb250ZW50Qm94LmdldCgpKSkgewotICAg
ICAgICBpZiAoc3ZnUm9vdC0+ZXZlckhhZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91
dCgpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoc3ZnUm9vdC0+ZXZlckhh
ZExheW91dCgpICYmICFzdmdSb290LT5uZWVkc0xheW91dCgpKQorICAgICAgICByZXR1cm47CiAK
ICAgICBMT0coTGF5b3V0LCAiTG9jYWxGcmFtZVZpZXcgJXAgZm9yY2VMYXlvdXRQYXJlbnRWaWV3
SWZOZWVkZWQgc2NoZWR1bGluZyBsYXlvdXQgb24gcGFyZW50IExvY2FsRnJhbWVWaWV3ICVwIiwg
dGhpcywgJm93bmVyUmVuZGVyZXItPnZpZXcoKS5mcmFtZVZpZXcoKSk7CiAKICAgICAvLyBJZiB0
aGUgZW1iZWRkZWQgU1ZHIGRvY3VtZW50IGFwcGVhcnMgdGhlIGZpcnN0IHRpbWUsIHRoZSBvd25l
clJlbmRlcmVyIGhhcyBhbHJlYWR5IGZpbmlzaGVkCiAgICAgLy8gbGF5b3V0IHdpdGhvdXQga25v
d2luZyBhYm91dCB0aGUgZXhpc3RlbmNlIG9mIHRoZSBlbWJlZGRlZCBTVkcgZG9jdW1lbnQsIGJl
Y2F1c2UgUmVuZGVyUmVwbGFjZWQKLSAgICAvLyBlbWJlZGRlZENvbnRlbnRCb3goKSByZXR1cm5z
IG51bGxwdHIsIGFzIGxvbmcgYXMgdGhlIGVtYmVkZGVkIGRvY3VtZW50IGlzbid0IGxvYWRlZCB5
ZXQuIEJlZm9yZQorICAgIC8vIGVtYmVkZGVkU1ZHUm9vdCgpIHJldHVybnMgbnVsbHB0ciwgYXMg
bG9uZyBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgaXNuJ3QgbG9hZGVkIHlldC4gQmVmb3JlCiAg
ICAgLy8gYm90aGVyaW5nIHRvIGxheSBvdXQgdGhlIFNWRyBkb2N1bWVudCwgbWFyayB0aGUgb3du
ZXJSZW5kZXJlciBuZWVkaW5nIGxheW91dCBhbmQgYXNrIGl0cwogICAgIC8vIExvY2FsRnJhbWVW
aWV3IGZvciBhIGxheW91dC4gQWZ0ZXIgdGhhdCB0aGUgUmVuZGVyRW1iZWRkZWRPYmplY3QgKG93
bmVyUmVuZGVyZXIpIGNhcnJpZXMgdGhlCiAgICAgLy8gY29ycmVjdCBzaXplLCB3aGljaCBMZWdh
Y3lSZW5kZXJTVkdSb290Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgvSGVpZ2h0IHJlbHkg
b24sIHdoZW4gbGF5aW5nCkBAIC0xNTIwLDIyICsxNTEzLDE5IEBAIGJvb2wgTG9jYWxGcmFtZVZp
ZXc6OnNob3VsZERlZmVyU2Nyb2xsVXBkYXRlQWZ0ZXJDb250ZW50U2l6ZUNoYW5nZSgpCiAgICAg
cmV0dXJuIChsYXlvdXRDb250ZXh0KCkubGF5b3V0UGhhc2UoKSA8IExvY2FsRnJhbWVWaWV3TGF5
b3V0Q29udGV4dDo6TGF5b3V0UGhhc2U6OkluUG9zdExheW91dCkgJiYgKGxheW91dENvbnRleHQo
KS5sYXlvdXRQaGFzZSgpICE9IExvY2FsRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6TGF5b3V0UGhh
c2U6Ok91dHNpZGVMYXlvdXQpOwogfQogCi1SZW5kZXJCb3gqIExvY2FsRnJhbWVWaWV3OjplbWJl
ZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIExvY2FsRnJhbWVWaWV3Ojpl
bWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIENoZWNrZWRQdHIgcmVuZGVyVmlldyA9IHRo
aXMtPnJlbmRlclZpZXcoKTsKICAgICBpZiAoIXJlbmRlclZpZXcpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCi0gICAgUmVuZGVyT2JqZWN0KiBmaXJzdENoaWxkID0gcmVuZGVyVmlldy0+Zmly
c3RDaGlsZCgpOworICAgIGF1dG8qIGZpcnN0Q2hpbGQgPSByZW5kZXJWaWV3LT5maXJzdENoaWxk
KCk7CiAKLSAgICAvLyBDdXJlbnRseSBvbmx5IGVtYmVkZGVkIFNWRyBkb2N1bWVudHMgcGFydGlj
aXBhdGUgaW4gdGhlIHNpemUtbmVnb3RpYXRpb24gbG9naWMuCisgICAgLy8gQ3VycmVudGx5IG9u
bHkgZW1iZWRkZWQgU1ZHIGRvY3VtZW50cyBwYXJ0aWNpcGF0ZSBpbiB0aGUgc2l6ZS1uZWdvdGlh
dGlvbiBsb2dpYy4KICAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2FzdDxMZWdh
Y3lSZW5kZXJTVkdSb290PihmaXJzdENoaWxkKSkKICAgICAgICAgcmV0dXJuIHN2Z1Jvb3Q7CiAK
LSAgICBpZiAoYXV0byogc3ZnUm9vdCA9IGR5bmFtaWNEb3duY2FzdDxSZW5kZXJTVkdSb290Pihm
aXJzdENoaWxkKSkKLSAgICAgICAgcmV0dXJuIHN2Z1Jvb3Q7Ci0KLSAgICByZXR1cm4gbnVsbHB0
cjsKKyAgICByZXR1cm4gZHluYW1pY0Rvd25jYXN0PFJlbmRlclNWR1Jvb3Q+KGZpcnN0Q2hpbGQp
OwogfQogCiB2b2lkIExvY2FsRnJhbWVWaWV3OjphZGRFbWJlZGRlZE9iamVjdFRvVXBkYXRlKFJl
bmRlckVtYmVkZGVkT2JqZWN0JiBlbWJlZGRlZE9iamVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTG9jYWxGcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYWxG
cmFtZVZpZXcuaAppbmRleCAxYjFjNzBiY2MyNDkuLjA1OTliYTE2YjM2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhbEZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvTG9jYWxGcmFtZVZpZXcuaApAQCAtNjUsNiArNjUsNyBAQCBjbGFzcyBSZW5kZXJFbWJl
ZGRlZE9iamVjdDsKIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdDsKIGNsYXNzIFJlbmRlck9iamVjdDsKK2NsYXNzIFJlbmRlclJlcGxhY2VkOwogY2xhc3Mg
UmVuZGVyU2Nyb2xsYmFyUGFydDsKIGNsYXNzIFJlbmRlclN0eWxlOwogY2xhc3MgUmVuZGVyVmll
dzsKQEAgLTU3OCw3ICs1NzksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIE5PREVMRVRFIHNob3Vs
ZFN1c3BlbmRTY3JvbGxBbmltYXRpb25zKCkgY29uc3QgZmluYWw7CiAKLSAgICBSZW5kZXJCb3gq
IGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OworICAgIFJlbmRlclJlcGxhY2VkKiBlbWJlZGRl
ZFNWR1Jvb3QoKSBjb25zdDsKICAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFRyYWNr
c1JlcGFpbnRzKGJvb2wpOwogICAgIGJvb2wgaXNUcmFja2luZ1JlcGFpbnRzKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc1RyYWNraW5nUmVwYWludHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySW1hZ2UuY3BwCmluZGV4IDliMjA5OTViYjNmYi4uYjkyOTIwNWU4MTYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKQEAgLTk0MCw3ICs5NDAsMjAgQEAgdm9p
ZCBSZW5kZXJJbWFnZTo6bGF5b3V0KCkKIAogRmxvYXRTaXplIFJlbmRlckltYWdlOjpjb21wdXRl
SW50cmluc2ljU2l6ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250
YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2lj
IGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LgorICAgIC8vIFRoZSBiYXNlIGNsYXNzIHJldHVybnMg
dmFsdWVzIGZyb20gdGhlIGNhY2hlIC8gY29udGFpbi1pbnRyaW5zaWMtc2l6ZSB3aXRob3V0IHF1
ZXJ5aW5nIGltYWdlIGRhdGEuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkp
CisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsK
KworICAgIGlmIChDaGVja2VkUHRyIHN2Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKSkgeworICAg
ICAgICBhdXRvIGludHJpbnNpY1NpemUgPSBzdmdSb290LT5jb21wdXRlSW50cmluc2ljU2l6ZSgp
OworICAgICAgICBpbnRyaW5zaWNTaXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7CisgICAg
ICAgIGludHJpbnNpY1NpemUuc2NhbGUoaW1hZ2VEZXZpY2VQaXhlbFJhdGlvKCkpOworICAgICAg
ICBpZiAoIWlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBpbnRyaW5zaWNT
aXplID0gaW50cmluc2ljU2l6ZS50cmFuc3Bvc2VkU2l6ZSgpOworICAgICAgICByZXR1cm4gaW50
cmluc2ljU2l6ZTsKKyAgICB9CisKICAgICBhdXRvIGludHJpbnNpY1NpemUgPSBSZW5kZXJSZXBs
YWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKIAogICAgIC8vIE91ciBpbnRyaW5zaWNTaXpl
IGlzIGVtcHR5IGlmIHdlJ3JlIHJlbmRlcmluZyBnZW5lcmF0ZWQgaW1hZ2VzIHdpdGggcmVsYXRp
dmUgd2lkdGgvaGVpZ2h0LiBGaWd1cmUgb3V0IHRoZSByaWdodCBpbnRyaW5zaWMgc2l6ZSB0byB1
c2UuCkBAIC05NTcsNyArOTcwLDExIEBAIEZsb2F0U2l6ZSBSZW5kZXJJbWFnZTo6Y29tcHV0ZUlu
dHJpbnNpY1NpemUoKSBjb25zdAogCiBGbG9hdFNpemUgUmVuZGVySW1hZ2U6OnByZWZlcnJlZEFz
cGVjdFJhdGlvKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoIXNob3VsZEFwcGx5U2l6ZUNvbnRhaW5t
ZW50KCkpOworICAgIC8vIFNpemUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGlt
ZW5zaW9ucyBmcm9tIGNvbnRlbnQsIGJ1dCB0aGUKKyAgICAvLyBhc3BlY3QgcmF0aW8gZnJvbSB0
aGUgQ1NTIGFzcGVjdC1yYXRpbyBwcm9wZXJ0eSBpcyBzdGlsbCBhdmFpbGFibGUgdmlhIHRoZQor
ICAgIC8vIGJhc2UgY2xhc3MgKHdoaWNoIGRvZXNuJ3QgcXVlcnkgaW1hZ2UgZGF0YSkuCisgICAg
aWYgKHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJS
ZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKIAogICAgIC8vIERvbid0IGNvbXB1dGUg
YW4gaW50cmluc2ljIHJhdGlvIHRvIHByZXNlcnZlIGhpc3RvcmljYWwgV2ViS2l0IGJlaGF2aW9y
IGlmIHdlJ3JlIHBhaW50aW5nIGFsdCB0ZXh0IGFuZC9vciBhIGJyb2tlbiBpbWFnZS4KICAgICBp
ZiAoc2hvdWxkRGlzcGxheUJyb2tlbkltYWdlSWNvbigpKSB7CkBAIC05NjYsNiArOTgzLDE3IEBA
IEZsb2F0U2l6ZSBSZW5kZXJJbWFnZTo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAogICAg
ICAgICByZXR1cm4geyAxLjAsIDEuMCB9OwogICAgIH0KIAorICAgIGlmIChDaGVja2VkUHRyIHN2
Z1Jvb3QgPSBlbWJlZGRlZFNWR1Jvb3QoKSkgeworICAgICAgICBhdXRvIHJhdGlvID0gc3ZnUm9v
dC0+cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKyAgICAgICAgaWYgKCFpc0hvcml6b250YWxXcml0
aW5nTW9kZSgpICYmICFyYXRpby5pc0VtcHR5KCkpCisgICAgICAgICAgICByYXRpbyA9IHJhdGlv
LnRyYW5zcG9zZWRTaXplKCk7CisKKyAgICAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5p
c1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc0F1dG9BbmRSYXRpbygpICYmIHJh
dGlvLmlzRW1wdHkoKSkpCisgICAgICAgICAgICByYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJl
Y2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5h
c3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7CisKKyAgICAgICAgcmV0dXJuIHJhdGlv
OworICAgIH0KKwogICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0
aW8oKTsKIH0KIApAQCAtOTczLDE0ICsxMDAxLDE0IEBAIGJvb2wgUmVuZGVySW1hZ2U6OnNob3Vs
ZEludmFsaWRhdGVQcmVmZXJyZWRXaWR0aHMoKSBjb25zdAogewogICAgIGlmIChSZW5kZXJSZXBs
YWNlZDo6c2hvdWxkSW52YWxpZGF0ZVByZWZlcnJlZFdpZHRocygpKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICByZXR1cm4gZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgcmV0dXJuIGVtYmVk
ZGVkU1ZHUm9vdCgpOwogfQogCi1SZW5kZXJCb3gqIFJlbmRlckltYWdlOjplbWJlZGRlZENvbnRl
bnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFJlbmRlckltYWdlOjplbWJlZGRlZFNWR1Jv
b3QoKSBjb25zdAogewogICAgIGlmIChSZWZQdHIgY2FjaGVkSW1hZ2UgPSB0aGlzLT5jYWNoZWRJ
bWFnZSgpKSB7CiAgICAgICAgIGlmIChSZWZQdHIgaW1hZ2UgPSBkeW5hbWljRG93bmNhc3Q8U1ZH
SW1hZ2U+KGNhY2hlZEltYWdlLT5pbWFnZSgpKSkKLSAgICAgICAgICAgIHJldHVybiBpbWFnZS0+
ZW1iZWRkZWRDb250ZW50Qm94KCk7CisgICAgICAgICAgICByZXR1cm4gaW1hZ2UtPmVtYmVkZGVk
U1ZHUm9vdCgpOwogICAgIH0KICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckltYWdlLmgKaW5kZXggMmNlNzU0OTUyYWZlLi41ZWFmOTJhNjE3NmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5oCkBAIC04OSw3ICs4OSw3IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29uc3QgZmluYWw7Ci0gICAgUmVu
ZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5hbDsKKyAgICBSZW5kZXJSZXBs
YWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIGNvbXB1
dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7CiAgICAgRmxvYXRTaXplIHByZWZlcnJlZEFz
cGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBmb3JlZ3JvdW5kSXNLbm93blRvQmVP
cGFxdWVJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYgbG9jYWxSZWN0LCB1bnNpZ25lZCBtYXhEZXB0
aFRvVGVzdCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmNwcAppbmRleCBmMDNhMTNmN2ViMTAuLmUzNzZkYmI1NzJiNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC00NzAsNjQgKzQ3MCwy
NSBAQCBzdGF0aWMgYm9vbCBpc1ZpZGVvV2l0aERlZmF1bHRPYmplY3RTaXplKGNvbnN0IFJlbmRl
clJlcGxhY2VkKiBtYXliZVZpZGVvKQogICAgIHJldHVybiBmYWxzZTsKIH0gCiAKLXZvaWQgUmVu
ZGVyUmVwbGFjZWQ6OmNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJl
bmRlckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNpemUmIGNvbnN0cmFpbmVkU2l6ZSwgRmxv
YXRTaXplJiBwcmVmZXJyZWRBc3BlY3RSYXRpbykgY29uc3QKK3ZvaWQgUmVuZGVyUmVwbGFjZWQ6
OmNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVz
KEZsb2F0U2l6ZSYgaW50cmluc2ljU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29u
c3QKIHsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZTsKICAgICBpZiAoc2hvdWxkQXBwbHlT
aXplT3JJbmxpbmVTaXplQ29udGFpbm1lbnQoKSkgewogICAgICAgICBpbnRyaW5zaWNTaXplID0g
UmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7Ci0gICAgICAgIHByZWZlcnJl
ZEFzcGVjdFJhdGlvID0gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0g
ICAgfSBlbHNlIGlmIChjb250ZW50UmVuZGVyZXIpIHsKLSAgICAgICAgYm9vbCBjb250ZW50SXNS
ZW5kZXJSZXBsYWNlZCA9IGZhbHNlOwotICAgICAgICBpZiAoYXV0byogcmVuZGVyUmVwbGFjZWQg
PSBkeW5hbWljRG93bmNhc3Q8UmVuZGVyUmVwbGFjZWQ+KGNvbnRlbnRSZW5kZXJlcikpIHsKLSAg
ICAgICAgICAgIGludHJpbnNpY1NpemUgPSByZW5kZXJSZXBsYWNlZC0+Y29tcHV0ZUludHJpbnNp
Y1NpemUoKTsKLSAgICAgICAgICAgIHByZWZlcnJlZEFzcGVjdFJhdGlvID0gcmVuZGVyUmVwbGFj
ZWQtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0gICAgICAgICAgICBjb250ZW50SXNSZW5kZXJS
ZXBsYWNlZCA9IHRydWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHN0eWxlKCkuYXNwZWN0UmF0
aW8oKS5pc1JhdGlvKCkgfHwgKHN0eWxlKCkuYXNwZWN0UmF0aW8oKS5pc0F1dG9BbmRSYXRpbygp
ICYmIHByZWZlcnJlZEFzcGVjdFJhdGlvLmlzRW1wdHkoKSkpCi0gICAgICAgICAgICBwcmVmZXJy
ZWRBc3BlY3RSYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0
UmF0aW8oKS53aWR0aCgpLnZhbHVlLCBzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaGVpZ2h0KCkudmFs
dWUpOwotCi0gICAgICAgIC8vIEhhbmRsZSB6b29tICYgdmVydGljYWwgd3JpdGluZyBtb2RlcyBo
ZXJlLCBhcyB0aGUgZW1iZWRkZWQgZG9jdW1lbnQgZG9lc24ndCBrbm93IGFib3V0IHRoZW0uCi0g
ICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoc3R5bGUoKS51c2VkWm9vbSgpKTsKLQotICAgICAg
ICBpZiAoYXV0byogaW1hZ2UgPSBkeW5hbWljRG93bmNhc3Q8UmVuZGVySW1hZ2U+KCp0aGlzKSkK
LSAgICAgICAgICAgIGludHJpbnNpY1NpemUuc2NhbGUoaW1hZ2UtPmltYWdlRGV2aWNlUGl4ZWxS
YXRpbygpKTsKLQotICAgICAgICAvLyBVcGRhdGUgb3VyIGludHJpbnNpYyBzaXplIHRvIG1hdGNo
IHdoYXQgdGhlIGNvbnRlbnQgcmVuZGVyZXIgaGFzIGNvbXB1dGVkLCBzbyB0aGF0IHdoZW4gd2UK
LSAgICAgICAgLy8gY29uc3RyYWluIHRoZSBzaXplIGJlbG93LCB0aGUgY29ycmVjdCBpbnRyaW5z
aWMgc2l6ZSB3aWxsIGJlIG9idGFpbmVkIGZvciBjb21wYXJpc29uIGFnYWluc3QKLSAgICAgICAg
Ly8gbWluIGFuZCBtYXggd2lkdGhzLgotICAgICAgICBpZiAoY29udGVudElzUmVuZGVyUmVwbGFj
ZWQgJiYgaXNSZW5kZXJXaWRnZXQoKSkgewotICAgICAgICAgICAgLy8gRm9yIFJlbmRlcldpZGdl
dCBjb250ZW50IChlLmcuIDxvYmplY3Q+IGVtYmVkZGluZyBhbiBTVkcgZG9jdW1lbnQpLCBhbHdh
eXMgdXBkYXRlCi0gICAgICAgICAgICAvLyBtX2ludHJpbnNpY1NpemUgdG8gcmVmbGVjdCBjdXJy
ZW50IGludHJpbnNpYyBkaW1lbnNpb25zLCBhcHBseWluZyBDU1MgZGVmYXVsdCBmYWxsYmFjawot
ICAgICAgICAgICAgLy8gdmFsdWVzICgzMDB4MTUwKSBmb3IgZGltZW5zaW9ucyB3aXRoIG5vIGlu
dHJpbnNpYyB2YWx1ZSAoZS5nLiBwZXJjZW50YWdlLXNpemVkIG9yCi0gICAgICAgICAgICAvLyBy
ZW1vdmVkIGF0dHJpYnV0ZXMpLiBUaGlzIHByZXZlbnRzIHN0YWxlIGNhY2hlZCBzaXplcyB3aGVu
IGF0dHJpYnV0ZXMgbGlrZSB3aWR0aC9oZWlnaHQKLSAgICAgICAgICAgIC8vIGFyZSByZW1vdmVk
LiBOb3RlOiB0aGlzIGRvZXMgbm90IGFwcGx5IHRvIFJlbmRlckltYWdlICg8aW1nIHNyYz0ic3Zn
Ij4pLCB3aGljaCBtYW5hZ2VzCi0gICAgICAgICAgICAvLyBpdHMgb3duIGludHJpbnNpYyBzaXpl
IHZpYSBzZXRJbnRyaW5zaWNTaXplKCkgZHVyaW5nIGltYWdlIGxvYWQuCi0gICAgICAgICAgICBh
dXRvIHNpemVUb0NhY2hlID0gaW50cmluc2ljU2l6ZTsKKyAgICAgICAgaW50cmluc2ljUmF0aW8g
PSBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpbnRyaW5zaWNTaXplID0gY29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICAgICAg
aW50cmluc2ljUmF0aW8gPSBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOworCisgICAgICAgIGF1dG8g
c2l6ZVRvQ2FjaGUgPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gaW50cmluc2ljU2l6ZSA6
IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgaWYgKGVtYmVkZGVkU1ZH
Um9vdCgpICYmIGlzUmVuZGVyV2lkZ2V0KCkpIHsKICAgICAgICAgICAgIGlmICghc2l6ZVRvQ2Fj
aGUud2lkdGgoKSkKICAgICAgICAgICAgICAgICBzaXplVG9DYWNoZS5zZXRXaWR0aChjRGVmYXVs
dFdpZHRoKTsKICAgICAgICAgICAgIGlmICghc2l6ZVRvQ2FjaGUuaGVpZ2h0KCkpCiAgICAgICAg
ICAgICAgICAgc2l6ZVRvQ2FjaGUuc2V0SGVpZ2h0KGNEZWZhdWx0SGVpZ2h0KTsKICAgICAgICAg
ICAgIG1faW50cmluc2ljU2l6ZSA9IExheW91dFNpemUoc2l6ZVRvQ2FjaGUpOwotICAgICAgICB9
IGVsc2UgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkgJiYgIWludHJpbnNpY1Np
emUuaXNaZXJvKCkpCi0gICAgICAgICAgICBtX2ludHJpbnNpY1NpemUgPSBMYXlvdXRTaXplKGlu
dHJpbnNpY1NpemUpOwotCi0gICAgICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkg
ewotICAgICAgICAgICAgaWYgKCFwcmVmZXJyZWRBc3BlY3RSYXRpby5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgcHJlZmVycmVkQXNwZWN0UmF0aW8gPSBwcmVmZXJyZWRBc3BlY3RSYXRpby50
cmFuc3Bvc2VkU2l6ZSgpOwotICAgICAgICAgICAgaW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1Np
emUudHJhbnNwb3NlZFNpemUoKTsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlu
dHJpbnNpY1NpemUgPSBjb21wdXRlSW50cmluc2ljU2l6ZSgpOwotICAgICAgICBwcmVmZXJyZWRB
c3BlY3RSYXRpbyA9IHRoaXMtPnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7Ci0gICAgICAgIGlmICgh
cHJlZmVycmVkQXNwZWN0UmF0aW8uaXNFbXB0eSgpICYmICFpbnRyaW5zaWNTaXplLmlzWmVybygp
KQotICAgICAgICAgICAgbV9pbnRyaW5zaWNTaXplID0gTGF5b3V0U2l6ZShpc0hvcml6b250YWxX
cml0aW5nTW9kZSgpID8gaW50cmluc2ljU2l6ZSA6IGludHJpbnNpY1NpemUudHJhbnNwb3NlZFNp
emUoKSk7CisgICAgICAgIH0gZWxzZSBpZiAoIWludHJpbnNpY1JhdGlvLmlzRW1wdHkoKSAmJiAh
aW50cmluc2ljU2l6ZS5pc1plcm8oKSkKKyAgICAgICAgICAgIG1faW50cmluc2ljU2l6ZSA9IExh
eW91dFNpemUoc2l6ZVRvQ2FjaGUpOwogICAgIH0KLSAgICBjb25zdHJhaW5lZFNpemUgPSBpbnRy
aW5zaWNTaXplOwotfQotCi12b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6
ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhSZW5kZXJCb3gqIGNvbnRlbnRS
ZW5kZXJlciwgRmxvYXRTaXplJiBpbnRyaW5zaWNTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1Jh
dGlvKSBjb25zdAotewotICAgIGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9uRm9yUmVuZGVy
Qm94KGNvbnRlbnRSZW5kZXJlciwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwogCiAg
ICAgLy8gTm93IGNvbnN0cmFpbiB0aGUgaW50cmluc2ljIHNpemUgYWxvbmcgZWFjaCBheGlzIGFj
Y29yZGluZyB0byBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRoL2hlaWdodHMgYWxvbmcgdGhlCiAg
ICAgLy8gb3Bwb3NpdGUgYXhpcy4gU28gZm9yIGV4YW1wbGUgYSBtYXhpbXVtIHdpZHRoIHRoYXQg
c2hyaW5rcyBvdXIgd2lkdGggd2lsbCByZXN1bHQgaW4gdGhlIGhlaWdodCB3ZSBjb21wdXRlIGhl
cmUKQEAgLTU5OSwyMyArNTYwLDE2IEBAIExheW91dFJlY3QgUmVuZGVyUmVwbGFjZWQ6OnJlcGxh
Y2VkQ29udGVudFJlY3QoY29uc3QgTGF5b3V0U2l6ZSYgaW50cmluc2ljU2l6ZSkKIAogZG91Ymxl
IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljQXNwZWN0UmF0aW8oKSBjb25zdAogewot
ICAgIEZsb2F0U2l6ZSBpbnRyaW5zaWNSYXRpbzsKLSAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6
ZTsKLSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRl
ZENvbnRlbnRCb3goKSwgaW50cmluc2ljU2l6ZSwgaW50cmluc2ljUmF0aW8pOwotICAgIHJldHVy
biBpbnRyaW5zaWNSYXRpby5hc3BlY3RSYXRpb0RvdWJsZSgpOworICAgIHJldHVybiBwcmVmZXJy
ZWRBc3BlY3RSYXRpbygpLmFzcGVjdFJhdGlvRG91YmxlKCk7CiB9CiAKIEZsb2F0U2l6ZSBSZW5k
ZXJSZXBsYWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKSBjb25zdAogewotICAgIC8vIElmIHRo
ZXJlJ3MgYW4gZW1iZWRkZWRDb250ZW50Qm94KCkgb2YgYSByZW1vdGUsIHJlZmVyZW5jZWQgZG9j
dW1lbnQgYXZhaWxhYmxlLCB0aGlzIGNvZGUtcGF0aCBzaG91bGQgbmV2ZXIgYmUgdXNlZC4KLSAg
ICBBU1NFUlQoIWVtYmVkZGVkQ29udGVudEJveCgpIHx8IHNob3VsZEFwcGx5U2l6ZU9ySW5saW5l
U2l6ZUNvbnRhaW5tZW50KCkpOwogICAgIHJldHVybiB7IGludHJpbnNpY0xvZ2ljYWxXaWR0aCgp
LCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkgfTsKIH0KIAogRmxvYXRTaXplIFJlbmRlclJlcGxh
Y2VkOjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhlcmUncyBh
biBlbWJlZGRlZENvbnRlbnRCb3goKSBvZiBhIHJlbW90ZSwgcmVmZXJlbmNlZCBkb2N1bWVudCBh
dmFpbGFibGUsIHRoaXMgY29kZS1wYXRoIHNob3VsZCBuZXZlciBiZSB1c2VkLgotICAgIEFTU0VS
VCghZW1iZWRkZWRDb250ZW50Qm94KCkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29u
dGFpbm1lbnQoKSk7CiAgICAgYXV0byBpbnRyaW5zaWNTaXplID0gRmxvYXRTaXplKGludHJpbnNp
Y0xvZ2ljYWxXaWR0aCgpLCBpbnRyaW5zaWNMb2dpY2FsSGVpZ2h0KCkpOwogICAgIEZsb2F0U2l6
ZSBwcmVmZXJyZWRBc3BlY3RSYXRpbzsKIApAQCAtNjk4LDEzICs2NTIsOSBAQCBzdGF0aWMgaW5s
aW5lIExheW91dFVuaXQgTk9ERUxFVEUgcmVzb2x2ZVdpZHRoRm9yUmF0aW8oTGF5b3V0VW5pdCBi
b3JkZXJBbmRQYWRkaQogICAgIHJldHVybiBMYXlvdXRVbml0KGxvZ2ljYWxIZWlnaHQgKiBhc3Bl
Y3RSYXRpbyk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBOT0RFTEVURSBoYXNJbnRyaW5zaWNT
aXplKFJlbmRlckJveCpjb250ZW50UmVuZGVyZXIsIGJvb2wgaGFzSW50cmluc2ljV2lkdGgsIGJv
b2wgaGFzSW50cmluc2ljSGVpZ2h0ICkKK3N0YXRpYyBpbmxpbmUgYm9vbCBOT0RFTEVURSBoYXNJ
bnRyaW5zaWNTaXplKGNvbnN0IFJlbmRlclJlcGxhY2VkKiBzdmdSb290LCBib29sIGhhc0ludHJp
bnNpY1dpZHRoLCBib29sIGhhc0ludHJpbnNpY0hlaWdodCkKIHsKLSAgICBpZiAoaGFzSW50cmlu
c2ljV2lkdGggJiYgaGFzSW50cmluc2ljSGVpZ2h0KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBpZiAoaGFzSW50cmluc2ljV2lkdGggfHwgaGFzSW50cmluc2ljSGVpZ2h0KQotICAgICAgICBy
ZXR1cm4gY29udGVudFJlbmRlcmVyICYmIGNvbnRlbnRSZW5kZXJlci0+aXNSZW5kZXJPckxlZ2Fj
eVJlbmRlclNWR1Jvb3QoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIChoYXNJbnRy
aW5zaWNXaWR0aCAmJiBoYXNJbnRyaW5zaWNIZWlnaHQpIHx8ICgoaGFzSW50cmluc2ljV2lkdGgg
fHwgaGFzSW50cmluc2ljSGVpZ2h0KSAmJiBzdmdSb290KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5k
ZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRoKFNob3VsZENvbXB1dGVQcmVm
ZXJyZWQgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCkgY29uc3QKQEAgLTcxNSwxMiArNjY1LDEwIEBA
IExheW91dFVuaXQgUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVSZXBsYWNlZExvZ2ljYWxXaWR0aChT
aG91bGRDb21wdXRlUHJlZmVycmVkIHNoCiAgICAgaWYgKHN0eWxlLmxvZ2ljYWxXaWR0aCgpLmlz
SW50cmluc2ljT3JTdHJldGNoKCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dp
Y2FsV2lkdGhSZXNwZWN0aW5nTWluTWF4V2lkdGgoY29tcHV0ZVJlcGxhY2VkTG9naWNhbFdpZHRo
VXNpbmcoc3R5bGUubG9naWNhbFdpZHRoKCkpLCBzaG91bGRDb21wdXRlUHJlZmVycmVkKTsKIAot
ICAgIFJlbmRlckJveCogY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0K
ICAgICAvLyAxMC4zLjIgSW5saW5lLCByZXBsYWNlZCBlbGVtZW50czogaHR0cDovL3d3dy53My5v
cmcvVFIvQ1NTMjEvdmlzdWRldC5odG1sI2lubGluZS1yZXBsYWNlZC13aWR0aAogICAgIEZsb2F0
U2l6ZSBpbnRyaW5zaWNSYXRpbzsKICAgICBGbG9hdFNpemUgY29uc3RyYWluZWRTaXplOwotICAg
IGNvbXB1dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVz
KGNvbnRlbnRSZW5kZXJlciwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CisgICAg
Y29tcHV0ZUludHJpbnNpY1NpemVzQ29uc3RyYWluZWRCeVRyYW5zZmVycmVkTWluTWF4U2l6ZXMo
Y29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7CiAKICAgICBpZiAoc3R5bGUubG9naWNh
bFdpZHRoKCkuaXNBdXRvKCkpIHsKICAgICAgICAgYm9vbCBjb21wdXRlZEhlaWdodElzQXV0byA9
IHN0eWxlLmxvZ2ljYWxIZWlnaHQoKS5pc0F1dG8oKTsKQEAgLTczMCw3ICs2NzgsNyBAQCBMYXlv
dXRVbml0IFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRMb2dpY2FsV2lkdGgoU2hvdWxk
Q29tcHV0ZVByZWZlcnJlZCBzaAogICAgICAgICAvLyBGb3IgZmxleCBvciBncmlkIGl0ZW1zIHdo
ZXJlIHRoZSBsb2dpY2FsIGhlaWdodCBoYXMgYmVlbiBvdmVycmlkZW4gdGhlbiB3ZSBzaG91bGQg
dXNlIHRoYXQgc2l6ZSB0byBjb21wdXRlIHRoZSByZXBsYWNlZCB3aWR0aCBhcyBsb25nIGFzIHRo
ZSBmbGV4IG9yCiAgICAgICAgIC8vIGdyaWQgaXRlbSBoYXMgYW4gaW50cmluc2ljIHNpemUuIEl0
IGlzIHBvc3NpYmxlIChpbmRlZWQsIGNvbW1vbikgZm9yIGFuIFNWRyBncmFwaGljIHRvIGhhdmUg
YW4gaW50cmluc2ljIGFzcGVjdCByYXRpbyBidXQgbm90IHRvIGhhdmUgYW4gaW50cmluc2ljCiAg
ICAgICAgIC8vIHdpZHRoIG9yIGhlaWdodC4gVGhlcmUgYXJlIGFsc28gZWxlbWVudHMgd2l0aCBp
bnRyaW5zaWMgc2l6ZXMgYnV0IHdpdGhvdXQgaW50cmluc2ljIHJhdGlvIChsaWtlIGFuIGlmcmFt
ZSkuCi0gICAgICAgIGlmIChhdXRvIG92ZXJyaWRpbmdMb2dpY2FsSGVpZ2h0ID0gKCFpbnRyaW5z
aWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYmIGhh
c0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFzSW50
cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsSGVpZ2h0KCkg
OiBzdGQ6Om51bGxvcHQpKQorICAgICAgICBpZiAoYXV0byBvdmVycmlkaW5nTG9naWNhbEhlaWdo
dCA9ICghaW50cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlk
SXRlbSgpKSAmJiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBoYXNJbnRyaW5z
aWNXaWR0aCwgaGFzSW50cmluc2ljSGVpZ2h0KSA/IHRoaXMtPm92ZXJyaWRpbmdCb3JkZXJCb3hM
b2dpY2FsSGVpZ2h0KCkgOiBzdGQ6Om51bGxvcHQpKQogICAgICAgICAgICAgcmV0dXJuIGNvbXB1
dGVSZXBsYWNlZExvZ2ljYWxXaWR0aFJlc3BlY3RpbmdNaW5NYXhXaWR0aChjb250ZW50Qm94TG9n
aWNhbEhlaWdodCgqb3ZlcnJpZGluZ0xvZ2ljYWxIZWlnaHQpICogaW50cmluc2ljUmF0aW8uYXNw
ZWN0UmF0aW9Eb3VibGUoKSwgc2hvdWxkQ29tcHV0ZVByZWZlcnJlZCk7CiAKICAgICAgICAgLy8g
SWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1dGVkIHZhbHVlcyBvZiAnYXV0
bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJpbnNpYyB3aWR0aCwgdGhlbiB0aGF0
IGludHJpbnNpYyB3aWR0aCBpcyB0aGUgdXNlZCB2YWx1ZSBvZiAnd2lkdGgnLgpAQCAtODEzLDE5
ICs3NjEsMTcgQEAgTGF5b3V0VW5pdCBSZW5kZXJSZXBsYWNlZDo6Y29tcHV0ZVJlcGxhY2VkTG9n
aWNhbEhlaWdodChzdGQ6Om9wdGlvbmFsPExheW91dFVuaXQKICAgICBpZiAoaGFzUmVwbGFjZWRM
b2dpY2FsSGVpZ2h0KCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNp
bmcoc3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCkpKTsKIAotICAgIFJlbmRlckJveCogY29udGVudFJl
bmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCk7Ci0KICAgICAvLyAxMC42LjIgSW5saW5lLCBy
ZXBsYWNlZCBlbGVtZW50czogaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvdmlzdWRldC5odG1s
I2lubGluZS1yZXBsYWNlZC1oZWlnaHQKICAgICBGbG9hdFNpemUgaW50cmluc2ljUmF0aW87CiAg
ICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsKLSAgICBjb21wdXRlSW50cmluc2ljU2l6ZXND
b25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhjb250ZW50UmVuZGVyZXIsIGNvbnN0
cmFpbmVkU2l6ZSwgaW50cmluc2ljUmF0aW8pOworICAgIGNvbXB1dGVJbnRyaW5zaWNTaXplc0Nv
bnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKGNvbnN0cmFpbmVkU2l6ZSwgaW50cmlu
c2ljUmF0aW8pOwogCiAgICAgYm9vbCB3aWR0aElzQXV0byA9IHN0eWxlKCkubG9naWNhbFdpZHRo
KCkuaXNBdXRvKCk7CiAgICAgYm9vbCBoYXNJbnRyaW5zaWNXaWR0aCA9IGNvbnN0cmFpbmVkU2l6
ZS53aWR0aCgpID4gMCB8fCAoIWNvbnN0cmFpbmVkU2l6ZS53aWR0aCgpICYmIHNob3VsZFJlc3Bl
Y3RaZXJvSW50cmluc2ljV2lkdGgoKSkgfHwgc2hvdWxkQXBwbHlTaXplT3JJbmxpbmVTaXplQ29u
dGFpbm1lbnQoKTsKICAgICBib29sIGhhc0ludHJpbnNpY0hlaWdodCA9IGNvbnN0cmFpbmVkU2l6
ZS5oZWlnaHQoKSA+IDAgfHwgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKTsKIAogICAgIC8v
IFNlZSBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0KCkgZm9yIGEgc2ltaWxhciBjaGVjayBm
b3IgaGVpZ2h0cy4KLSAgICBpZiAoYXV0byBvdmVycmlkaW5nbG9naWNhbFdpZHRoID0gKCFpbnRy
aW5zaWNSYXRpby5pc0VtcHR5KCkgJiYgKGlzRmxleEl0ZW0oKSB8fCBpc0dyaWRJdGVtKCkpICYm
IGhhc0ludHJpbnNpY1NpemUoY29udGVudFJlbmRlcmVyLCBoYXNJbnRyaW5zaWNXaWR0aCwgaGFz
SW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsV2lkdGgoKSA6IHN0
ZDo6bnVsbG9wdCkpCisgICAgaWYgKGF1dG8gb3ZlcnJpZGluZ2xvZ2ljYWxXaWR0aCA9ICghaW50
cmluc2ljUmF0aW8uaXNFbXB0eSgpICYmIChpc0ZsZXhJdGVtKCkgfHwgaXNHcmlkSXRlbSgpKSAm
JiBoYXNJbnRyaW5zaWNTaXplKGVtYmVkZGVkU1ZHUm9vdCgpLCBoYXNJbnRyaW5zaWNXaWR0aCwg
aGFzSW50cmluc2ljSGVpZ2h0KSA/IG92ZXJyaWRpbmdCb3JkZXJCb3hMb2dpY2FsV2lkdGgoKSA6
IHN0ZDo6bnVsbG9wdCkpCiAgICAgICAgIHJldHVybiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVp
Z2h0UmVzcGVjdGluZ01pbk1heEhlaWdodChjb250ZW50Qm94TG9naWNhbFdpZHRoKCpvdmVycmlk
aW5nbG9naWNhbFdpZHRoKSAqIGludHJpbnNpY1JhdGlvLnRyYW5zcG9zZWRTaXplKCkuYXNwZWN0
UmF0aW9Eb3VibGUoKSk7CiAKICAgICAvLyBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhh
dmUgY29tcHV0ZWQgdmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgYWxzbyBoYXMgYW4g
aW50cmluc2ljIGhlaWdodCwgdGhlbiB0aGF0IGludHJpbnNpYyBoZWlnaHQgaXMgdGhlIHVzZWQg
dmFsdWUgb2YgJ2hlaWdodCcuCkBAIC0xMDczLDEwICsxMDE5LDcgQEAgdm9pZCBSZW5kZXJSZXBs
YWNlZDo6bGF5b3V0U2hhZG93Q29udGVudChjb25zdCBMYXlvdXRTaXplJiBvbGRTaXplKQogCiBG
bG9hdFNpemUgUmVuZGVyUmVwbGFjZWQ6OmludHJpbnNpY1JhdGlvKCkgY29uc3QKIHsKLSAgICBG
bG9hdFNpemUgaW50cmluc2ljUmF0aW87Ci0gICAgRmxvYXRTaXplIGNvbnN0cmFpbmVkU2l6ZTsK
LSAgICBjb21wdXRlQXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChlbWJlZGRlZENv
bnRlbnRCb3goKSwgY29uc3RyYWluZWRTaXplLCBpbnRyaW5zaWNSYXRpbyk7Ci0gICAgcmV0dXJu
IGludHJpbnNpY1JhdGlvOworICAgIHJldHVybiBwcmVmZXJyZWRBc3BlY3RSYXRpbygpOwogfQog
CiB2b2lkIFJlbmRlclJlcGxhY2VkOjpjb21wdXRlUmVwbGFjZWRPdXRPZkZsb3dQb3NpdGlvbmVk
TG9naWNhbFdpZHRoKExvZ2ljYWxFeHRlbnRDb21wdXRlZFZhbHVlcyYgY29tcHV0ZWRWYWx1ZXMp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4IGFi
M2Y0NzEwYWE5MC4uNmIyNjYyNDhkZDFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaApAQCAtNjEsNiArNjEsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCByZXBsYWNl
ZE1pbkxvZ2ljYWxIZWlnaHRDb21wdXRlc0FzTm9uZSgpIGNvbnN0OwogICAgIGJvb2wgcmVwbGFj
ZWRNYXhMb2dpY2FsSGVpZ2h0Q29tcHV0ZXNBc05vbmUoKSBjb25zdDsKIAorICAgIHZpcnR1YWwg
RmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3Q7CisgICAgdmlydHVhbCBGbG9h
dFNpemUgcHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdDsKKwogcHJvdGVjdGVkOgogICAgIFJl
bmRlclJlcGxhY2VkKFR5cGUsIEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmLCBPcHRpb25TZXQ8UmVw
bGFjZWRGbGFnPiA9IHsgfSk7CiAgICAgUmVuZGVyUmVwbGFjZWQoVHlwZSwgRWxlbWVudCYsIFJl
bmRlclN0eWxlJiYsIGNvbnN0IExheW91dFNpemUmIGludHJpbnNpY1NpemUsIE9wdGlvblNldDxS
ZXBsYWNlZEZsYWc+ID0geyB9KTsKQEAgLTc3LDkgKzgwLDYgQEAgcHJvdGVjdGVkOgogCiAgICAg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZTo6RGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUq
IG9sZFN0eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwgRmxvYXRTaXplIGNvbXB1dGVJbnRy
aW5zaWNTaXplKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBGbG9hdFNpemUgcHJlZmVycmVkQXNwZWN0
UmF0aW8oKSBjb25zdDsKLQogICAgIHZvaWQgc2V0SW50cmluc2ljU2l6ZShjb25zdCBMYXlvdXRT
aXplJiBpbnRyaW5zaWNTaXplKSB7IG1faW50cmluc2ljU2l6ZSA9IGludHJpbnNpY1NpemU7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgaW50cmluc2ljU2l6ZUNoYW5nZWQoKTsKICAgICB2aXJ0dWFsIGJv
b2wgaGFzUmVsYXRpdmVJbnRyaW5zaWNMb2dpY2FsV2lkdGgoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQpAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGNvbXB1dGVBc3Bl
Y3RSYXRpb0FkanVzdGVkSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dp
Y2FsV2lkdGgsIExheW91dFVuaXQmIG1heExvZ2ljYWxXaWR0aCkgY29uc3Q7CiAKLSAgICB2aXJ0
dWFsIFJlbmRlckJveCogZW1iZWRkZWRDb250ZW50Qm94KCkgY29uc3QgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgUmVuZGVyUmVwbGFjZWQqIGVtYmVkZGVkU1ZHUm9vdCgpIGNvbnN0IHsgcmV0
dXJuIDA7IH0KICAgICBBU0NJSUxpdGVyYWwgcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJSZW5kZXJSZXBsYWNlZCJfczsgfQogCiAgICAgYm9vbCBjYW5IYXZlQ2hpbGRyZW4o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpAQCAtMTIxLDggKzEyMSw3IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBjYW5CZVNlbGVjdGlvbkxlYWYoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBMYXlvdXRSZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KGNv
bnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgY2xpcFRv
VmlzaWJsZUNvbnRlbnQgPSB0cnVlKSBmaW5hbDsKLSAgICB2b2lkIGNvbXB1dGVBc3BlY3RSYXRp
b0luZm9ybWF0aW9uRm9yUmVuZGVyQm94KFJlbmRlckJveCosIEZsb2F0U2l6ZSYgY29uc3RyYWlu
ZWRTaXplLCBGbG9hdFNpemUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKLSAgICB2b2lkIGNvbXB1
dGVJbnRyaW5zaWNTaXplc0NvbnN0cmFpbmVkQnlUcmFuc2ZlcnJlZE1pbk1heFNpemVzKFJlbmRl
ckJveCogY29udGVudFJlbmRlcmVyLCBGbG9hdFNpemUmIGNvbnN0cmFpbmVkU2l6ZSwgRmxvYXRT
aXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlSW50cmluc2ljU2l6
ZXNDb25zdHJhaW5lZEJ5VHJhbnNmZXJyZWRNaW5NYXhTaXplcyhGbG9hdFNpemUmIGNvbnN0cmFp
bmVkU2l6ZSwgRmxvYXRTaXplJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRHJhd1NlbGVjdGlvblRpbnQoKSBjb25zdDsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcldpZGdldC5jcHAKaW5kZXggNGRhNTA4YjZhNzNhLi5kZjY3NDdk
M2JmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuY3BwCkBAIC00
ODcsMTUgKzQ4Nyw1NyBAQCBib29sIFJlbmRlcldpZGdldDo6c2hvdWxkSW52YWxpZGF0ZVByZWZl
cnJlZFdpZHRocygpIGNvbnN0CiB7CiAgICAgaWYgKFJlbmRlclJlcGxhY2VkOjpzaG91bGRJbnZh
bGlkYXRlUHJlZmVycmVkV2lkdGhzKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBlbWJlZGRlZENvbnRlbnRCb3goKTsKKyAgICByZXR1cm4gZW1iZWRkZWRTVkdSb290KCk7CiB9
CiAKLVJlbmRlckJveCogUmVuZGVyV2lkZ2V0OjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAor
UmVuZGVyUmVwbGFjZWQqIFJlbmRlcldpZGdldDo6ZW1iZWRkZWRTVkdSb290KCkgY29uc3QKIHsK
ICAgICBpZiAoIWlzPFJlbmRlckVtYmVkZGVkT2JqZWN0Pih0aGlzKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgUmVmUHRyIGZyYW1lVmlldyA9IGR5bmFtaWNEb3duY2FzdDxMb2NhbEZy
YW1lVmlldz4od2lkZ2V0KCkpOwotICAgIHJldHVybiBmcmFtZVZpZXcgPyBmcmFtZVZpZXctPmVt
YmVkZGVkQ29udGVudEJveCgpIDogbnVsbHB0cjsKKyAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJh
bWVWaWV3LT5lbWJlZGRlZFNWR1Jvb3QoKSA6IG51bGxwdHI7Cit9CisKK0Zsb2F0U2l6ZSBSZW5k
ZXJXaWRnZXQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QKK3sKKyAgICAvLyBTaXplIGNv
bnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50Lgor
ICAgIC8vIFRoZSBiYXNlIGNsYXNzIHJldHVybnMgdmFsdWVzIGZyb20gdGhlIGNhY2hlIC8gY29u
dGFpbi1pbnRyaW5zaWMtc2l6ZSB3aXRob3V0IHF1ZXJ5aW5nIGltYWdlIGRhdGEuCisgICAgaWYg
KHNob3VsZEFwcGx5U2l6ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBs
YWNlZDo6Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKworICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9
IGVtYmVkZGVkU1ZHUm9vdCgpOworICAgIGlmICghc3ZnUm9vdCkKKyAgICAgICAgcmV0dXJuIFJl
bmRlclJlcGxhY2VkOjpjb21wdXRlSW50cmluc2ljU2l6ZSgpOworCisgICAgYXV0byBpbnRyaW5z
aWNTaXplID0gc3ZnUm9vdC0+Y29tcHV0ZUludHJpbnNpY1NpemUoKTsKKyAgICBpbnRyaW5zaWNT
aXplLnNjYWxlKHN0eWxlKCkudXNlZFpvb20oKSk7CisKKyAgICBpZiAoIWlzSG9yaXpvbnRhbFdy
aXRpbmdNb2RlKCkpCisgICAgICAgIGludHJpbnNpY1NpemUgPSBpbnRyaW5zaWNTaXplLnRyYW5z
cG9zZWRTaXplKCk7CisKKyAgICByZXR1cm4gaW50cmluc2ljU2l6ZTsKK30KKworRmxvYXRTaXpl
IFJlbmRlcldpZGdldDo6cHJlZmVycmVkQXNwZWN0UmF0aW8oKSBjb25zdAoreworICAgIC8vIFNp
emUgY29udGFpbm1lbnQgc3VwcHJlc3NlcyBpbnRyaW5zaWMgZGltZW5zaW9ucyBmcm9tIGNvbnRl
bnQsIGJ1dCB0aGUKKyAgICAvLyBhc3BlY3QgcmF0aW8gZnJvbSB0aGUgQ1NTIGFzcGVjdC1yYXRp
byBwcm9wZXJ0eSBpcyBzdGlsbCBhdmFpbGFibGUgdmlhIHRoZQorICAgIC8vIGJhc2UgY2xhc3Mg
KHdoaWNoIGRvZXNuJ3QgcXVlcnkgaW1hZ2UgZGF0YSkuCisgICAgaWYgKHNob3VsZEFwcGx5U2l6
ZUNvbnRhaW5tZW50KCkpCisgICAgICAgIHJldHVybiBSZW5kZXJSZXBsYWNlZDo6cHJlZmVycmVk
QXNwZWN0UmF0aW8oKTsKKworICAgIENoZWNrZWRQdHIgc3ZnUm9vdCA9IGVtYmVkZGVkU1ZHUm9v
dCgpOworICAgIGlmICghc3ZnUm9vdCkKKyAgICAgICAgcmV0dXJuIFJlbmRlclJlcGxhY2VkOjpw
cmVmZXJyZWRBc3BlY3RSYXRpbygpOworCisgICAgYXV0byByYXRpbyA9IHN2Z1Jvb3QtPnByZWZl
cnJlZEFzcGVjdFJhdGlvKCk7CisgICAgaWYgKCFpc0hvcml6b250YWxXcml0aW5nTW9kZSgpICYm
ICFyYXRpby5pc0VtcHR5KCkpCisgICAgICAgIHJhdGlvID0gcmF0aW8udHJhbnNwb3NlZFNpemUo
KTsKKworICAgIGlmIChzdHlsZSgpLmFzcGVjdFJhdGlvKCkuaXNSYXRpbygpIHx8IChzdHlsZSgp
LmFzcGVjdFJhdGlvKCkuaXNBdXRvQW5kUmF0aW8oKSAmJiByYXRpby5pc0VtcHR5KCkpKQorICAg
ICAgICByYXRpbyA9IEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0
aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQo
KS52YWx1ZSk7CisKKyAgICByZXR1cm4gcmF0aW87CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQuaAppbmRleCBlMDE3ODE2MjAw
ZGYuLjkyZjI4MTM4Y2FhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJXaWRnZXQu
aApAQCAtOTEsNyArOTEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZWxlbWVudCgpIGNvbnN0ID0g
ZGVsZXRlOwogCiAgICAgYm9vbCBzaG91bGRJbnZhbGlkYXRlUHJlZmVycmVkV2lkdGhzKCkgY29u
c3QgZmluYWw7Ci0gICAgUmVuZGVyQm94KiBlbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdCBmaW5h
bDsKKyAgICBSZW5kZXJSZXBsYWNlZCogZW1iZWRkZWRTVkdSb290KCkgY29uc3QgZmluYWw7Cisg
ICAgRmxvYXRTaXplIGNvbXB1dGVJbnRyaW5zaWNTaXplKCkgY29uc3QgZmluYWw7CisgICAgRmxv
YXRTaXplIHByZWZlcnJlZEFzcGVjdFJhdGlvKCkgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNl
dFNlbGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRlKSBmaW5hbDsKICAgICB2b2lkIHNldE92ZXJs
YXBUZXN0UmVzdWx0KGJvb2wpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAKaW5kZXggZGUyOTQzNjI0Mjk4Li41YWQwNzgwYWI4ZjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAt
OTYsNyArOTYsMTAgQEAgYm9vbCBSZW5kZXJTVkdSb290OjpoYXNJbnRyaW5zaWNBc3BlY3RSYXRp
bygpIGNvbnN0CiAKIEZsb2F0U2l6ZSBSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6
ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUX0lNUExJRVModmlldygpLmZyYW1lVmlldygpLmxheW91
dENvbnRleHQoKS5pc0luUmVuZGVyVHJlZUxheW91dCgpLCAhc2hvdWxkQXBwbHlTaXplQ29udGFp
bm1lbnQoKSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBk
aW1lbnNpb25zIGZyb20gY29udGVudC4KKyAgICAvLyBUaGUgYmFzZSBjbGFzcyByZXR1cm5zIHZh
bHVlcyBmcm9tIHRoZSBjYWNoZSAvIGNvbnRhaW4taW50cmluc2ljLXNpemUgd2l0aG91dCBxdWVy
eWluZyBpbWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQor
ICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAg
ICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL1NWRy9jb29yZHMuaHRtbCNJbnRyaW5zaWNTaXpp
bmcKICAgICBGbG9hdFNpemUgaW50cmluc2ljU2l6ZSA9IHsgc3ZnU1ZHRWxlbWVudCgpLmludHJp
bnNpY1dpZHRoKCksIHN2Z1NWR0VsZW1lbnQoKS5pbnRyaW5zaWNIZWlnaHQoKSB9OwogICAgIC8v
IFRyYW5zcG9zZSBmb3IgdmVydGljYWwgd3JpdGluZyBtb2RlCkBAIC0xMDcsNyArMTEwLDExIEBA
IEZsb2F0U2l6ZSBSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiAK
IEZsb2F0U2l6ZSBSZW5kZXJTVkdSb290OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKCFzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXpl
IGNvbnRhaW5tZW50IHN1cHByZXNzZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50
LCBidXQgdGhlCisgICAgLy8gYXNwZWN0IHJhdGlvIGZyb20gdGhlIENTUyBhc3BlY3QtcmF0aW8g
cHJvcGVydHkgaXMgc3RpbGwgYXZhaWxhYmxlIHZpYSB0aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3
aGljaCBkb2Vzbid0IHF1ZXJ5IGltYWdlIGRhdGEpLgorICAgIGlmIChzaG91bGRBcHBseVNpemVD
b250YWlubWVudCgpKQorICAgICAgICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFz
cGVjdFJhdGlvKCk7CiAKICAgICBpZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSkK
ICAgICAgICAgcmV0dXJuIEZsb2F0U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0
UmF0aW9Mb2dpY2FsV2lkdGgoKS52YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWln
aHQoKS52YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xl
Z2FjeS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvbGVnYWN5L0xlZ2FjeVJlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDM2ZDNlMzg1OWRiNi4uMDg3
YTRkMmI1NGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL2xlZ2Fj
eS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL2xlZ2FjeS9MZWdhY3lSZW5kZXJTVkdSb290LmNwcApAQCAtODYsNyArODYsMTAgQEAgYm9v
bCBMZWdhY3lSZW5kZXJTVkdSb290OjpoYXNJbnRyaW5zaWNBc3BlY3RSYXRpbygpIGNvbnN0CiAK
IEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpjb21wdXRlSW50cmluc2ljU2l6ZSgpIGNv
bnN0CiB7Ci0gICAgQVNTRVJUX0lNUExJRVModmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRl
eHQoKS5pc0luUmVuZGVyVHJlZUxheW91dCgpLCAhc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQo
KSk7CisgICAgLy8gU2l6ZSBjb250YWlubWVudCBzdXBwcmVzc2VzIGludHJpbnNpYyBkaW1lbnNp
b25zIGZyb20gY29udGVudC4KKyAgICAvLyBUaGUgYmFzZSBjbGFzcyByZXR1cm5zIHZhbHVlcyBm
cm9tIHRoZSBjYWNoZSAvIGNvbnRhaW4taW50cmluc2ljLXNpemUgd2l0aG91dCBxdWVyeWluZyBp
bWFnZSBkYXRhLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OmNvbXB1dGVJbnRyaW5zaWNTaXplKCk7CiAgICAgRmxv
YXRTaXplIGludHJpbnNpY1NpemUgPSB7IHN2Z1NWR0VsZW1lbnQoKS5pbnRyaW5zaWNXaWR0aCgp
LCBzdmdTVkdFbGVtZW50KCkuaW50cmluc2ljSGVpZ2h0KCkgfTsKICAgICAvLyBUcmFuc3Bvc2Ug
Zm9yIHZlcnRpY2FsIHdyaXRpbmcgbW9kZQogICAgIGlmICghaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUoKSkKQEAgLTk2LDcgKzk5LDExIEBAIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdSb290Ojpj
b21wdXRlSW50cmluc2ljU2l6ZSgpIGNvbnN0CiAKIEZsb2F0U2l6ZSBMZWdhY3lSZW5kZXJTVkdS
b290OjpwcmVmZXJyZWRBc3BlY3RSYXRpbygpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKCFzaG91bGRB
cHBseVNpemVDb250YWlubWVudCgpKTsKKyAgICAvLyBTaXplIGNvbnRhaW5tZW50IHN1cHByZXNz
ZXMgaW50cmluc2ljIGRpbWVuc2lvbnMgZnJvbSBjb250ZW50LCBidXQgdGhlCisgICAgLy8gYXNw
ZWN0IHJhdGlvIGZyb20gdGhlIENTUyBhc3BlY3QtcmF0aW8gcHJvcGVydHkgaXMgc3RpbGwgYXZh
aWxhYmxlIHZpYSB0aGUKKyAgICAvLyBiYXNlIGNsYXNzICh3aGljaCBkb2Vzbid0IHF1ZXJ5IGlt
YWdlIGRhdGEpLgorICAgIGlmIChzaG91bGRBcHBseVNpemVDb250YWlubWVudCgpKQorICAgICAg
ICByZXR1cm4gUmVuZGVyUmVwbGFjZWQ6OnByZWZlcnJlZEFzcGVjdFJhdGlvKCk7CiAKICAgICBp
ZiAoc3R5bGUoKS5hc3BlY3RSYXRpbygpLmlzUmF0aW8oKSkKICAgICAgICAgcmV0dXJuIEZsb2F0
U2l6ZTo6bmFycm93UHJlY2lzaW9uKHN0eWxlKCkuYXNwZWN0UmF0aW9Mb2dpY2FsV2lkdGgoKS52
YWx1ZSwgc3R5bGUoKS5hc3BlY3RSYXRpb0xvZ2ljYWxIZWlnaHQoKS52YWx1ZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAppbmRleCA5YTBkNDgyNmE2OTAuLjg2Mjll
MGVkMjE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCkBAIC0y
NzYsOCArMjc2LDggQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBTVkdJbWFnZTo6bmF0aXZlSW1hZ2Uo
Y29uc3QgRmxvYXRTaXplJiBzaXplLCBjb25zdCBEZXN0aW5hdGkKICAgICBhdXRvIHJlbmRlcmlu
Z01vZGUgPSBtX3BhZ2UtPnNldHRpbmdzKCkuYWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZCgpID8g
UmVuZGVyaW5nTW9kZTo6QWNjZWxlcmF0ZWQgOiBSZW5kZXJpbmdNb2RlOjpVbmFjY2VsZXJhdGVk
OwogCiAgICAgSG9zdFdpbmRvdyogaG9zdFdpbmRvdyA9IG51bGxwdHI7Ci0gICAgaWYgKENoZWNr
ZWRQdHIgY29udGVudFJlbmRlcmVyID0gZW1iZWRkZWRDb250ZW50Qm94KCkpCi0gICAgICAgIGhv
c3RXaW5kb3cgPSBjb250ZW50UmVuZGVyZXItPmhvc3RXaW5kb3coKTsKKyAgICBpZiAoQ2hlY2tl
ZFB0ciBzdmdSb290ID0gZW1iZWRkZWRTVkdSb290KCkpCisgICAgICAgIGhvc3RXaW5kb3cgPSBz
dmdSb290LT5ob3N0V2luZG93KCk7CiAKICAgICBSZWZQdHIgaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1
ZmZlcjo6Y3JlYXRlKHNpemUsIHJlbmRlcmluZ01vZGUsIFJlbmRlcmluZ1B1cnBvc2U6OkRPTSwg
MSwgY29sb3JTcGFjZSwgUGl4ZWxGb3JtYXQ6OkJHUkE4LCBob3N0V2luZG93KTsKICAgICBpZiAo
IWltYWdlQnVmZmVyKQpAQCAtMzkyLDEyICszOTIsMTIgQEAgSW1hZ2VEcmF3UmVzdWx0IFNWR0lt
YWdlOjpkcmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RS
ZWMKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCi1SZW5kZXJCb3gq
IFNWR0ltYWdlOjplbWJlZGRlZENvbnRlbnRCb3goKSBjb25zdAorUmVuZGVyUmVwbGFjZWQqIFNW
R0ltYWdlOjplbWJlZGRlZFNWR1Jvb3QoKSBjb25zdAogewogICAgIFJlZlB0ciByb290RWxlbWVu
dCA9IHRoaXMtPnJvb3RFbGVtZW50KCk7CiAgICAgaWYgKCFyb290RWxlbWVudCkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGRvd25jYXN0PFJlbmRlckJveD4ocm9vdEVsZW1l
bnQtPnJlbmRlcmVyKCkpOworICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJSZXBsYWNlZD4ocm9v
dEVsZW1lbnQtPnJlbmRlcmVyKCkpOwogfQogCiBMb2NhbEZyYW1lVmlldyogU1ZHSW1hZ2U6OmZy
YW1lVmlldygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCmluZGV4
IGY0NTc3ZDVjZjA0Mi4uZjc0M2EzNzAzMmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3Mv
U1ZHSW1hZ2UuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBFbGVtZW50OwogY2xhc3MgSW1hZ2VC
dWZmZXI7CiBjbGFzcyBMb2NhbEZyYW1lVmlldzsKIGNsYXNzIFBhZ2U7Ci1jbGFzcyBSZW5kZXJC
b3g7CitjbGFzcyBSZW5kZXJSZXBsYWNlZDsKIGNsYXNzIFNWR1NWR0VsZW1lbnQ7CiBjbGFzcyBT
VkdJbWFnZUNocm9tZUNsaWVudDsKIGNsYXNzIFNWR0ltYWdlRm9yQ29udGFpbmVyOwpAQCAtNDgs
NyArNDgsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgdHJ5Q3Jl
YXRlRnJvbURhdGEoc3RkOjpzcGFuPGNvbnN0IHVpbnQ4X3Q+LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFJlZlB0cjxTVkdJbWFnZT4mJik+JiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBi
b29sIGlzRGF0YURlY29kYWJsZShjb25zdCBTZXR0aW5ncyYsIHN0ZDo6c3Bhbjxjb25zdCB1aW50
OF90Pik7CiAKLSAgICBSZW5kZXJCb3gqIGVtYmVkZGVkQ29udGVudEJveCgpIGNvbnN0OworICAg
IFJlbmRlclJlcGxhY2VkKiBlbWJlZGRlZFNWR1Jvb3QoKSBjb25zdDsKICAgICBMb2NhbEZyYW1l
VmlldyogTk9ERUxFVEUgZnJhbWVWaWV3KCkgY29uc3Q7CiAKICAgICBib29sIGlzU1ZHSW1hZ2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>