<?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>253390</bug_id>
          
          <creation_ts>2023-03-04 11:53:13 -0800</creation_ts>
          <short_desc>WebKit AX APIs expose secure text that is visibly hidden through HTMLInputElement::isAutoFilledAndObscured</short_desc>
          <delta_ts>2023-03-06 23:36:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Accessibility</component>
          <version>Other</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mifenton</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1938849</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 11:53:13 -0800</bug_when>
    <thetext>AX APIs should not expose text hidden via HTMLInputElement::isAutoFilledAndObscured.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938850</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-03-04 11:53:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/106237490&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938851</commentid>
    <comment_count>2</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 11:53:25 -0800</bug_when>
    <thetext>rdar://92358745</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938853</commentid>
    <comment_count>3</comment_count>
      <attachid>465294</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 12:05:53 -0800</bug_when>
    <thetext>Created attachment 465294
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938854</commentid>
    <comment_count>4</comment_count>
      <attachid>465295</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 12:07:23 -0800</bug_when>
    <thetext>Created attachment 465295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938855</commentid>
    <comment_count>5</comment_count>
      <attachid>465296</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 12:14:27 -0800</bug_when>
    <thetext>Created attachment 465296
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1938864</commentid>
    <comment_count>6</comment_count>
      <attachid>465297</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-04 12:46:58 -0800</bug_when>
    <thetext>Created attachment 465297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939120</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2023-03-06 08:11:35 -0800</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #6)
&gt; Created attachment 465297 [details]
&gt; Patch

* LayoutTests/accessibility/password-field-value-expected.txt: Removed.
* LayoutTests/accessibility/password-field-value.html: Removed.
* LayoutTests/accessibility/secure-field-value-expected.txt: Added.
* LayoutTests/accessibility/secure-field-value.html: Added.

Can this be a `git mv` instead?

--- a/Source/WebCore/accessibility/AccessibilityNodeObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityNodeObject.cpp


-bool AccessibilityNodeObject::isPasswordField() const
+bool AccessibilityNodeObject::isSecureField() const
...
-    return downcast&lt;HTMLInputElement&gt;(*node).isPasswordField();
+    return input-&gt;isPasswordField() || input-&gt;isAutoFilledAndObscured();

Why not use the method you defined in HTMLInputElement:

+    bool isSecureField() const { return isPasswordField() || isAutoFilledAndObscured(); }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939175</commentid>
    <comment_count>8</comment_count>
      <attachid>465318</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-06 10:56:14 -0800</bug_when>
    <thetext>Created attachment 465318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939176</commentid>
    <comment_count>9</comment_count>
      <attachid>465319</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2023-03-06 10:58:11 -0800</bug_when>
    <thetext>Created attachment 465319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939359</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-06 23:36:22 -0800</bug_when>
    <thetext>Committed 261312@main (509d2d337d1c): &lt;https://commits.webkit.org/261312@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 465319.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465294</attachid>
            <date>2023-03-04 12:05:53 -0800</date>
            <delta_ts>2023-03-04 12:07:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230304120552.patch</filename>
            <type>text/plain</type>
            <size>35104</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA3MzNhYmU3MjdkN2RmZDZmZDYyMThjZTk4ZWVmNTJlOTMwYjY0NWY2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFjY2Vzc2liaWxpdHkgQVBJcyBzaG91bGQgbm90IGV4
cG9zZSBzZWN1cmUgdGV4dCBvYnNjdXJlZCBieSBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxs
ZWRBbmRPYnNjdXJlZC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjaGFuZ2luZyBgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkYCB0byBhbHNvIGNoZWNrIGZvcgpgSFRNTElu
cHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWRgLiBUaGlzIG1ldGhvZCBhbmQgYWxs
IHNpbWlsYXJseSBuYW1lZCBtZXRob2RzIGhhdmUKYmVlbiByZW5hbWVkIHRvIHVzZSAic2VjdXJl
IiBpbnN0ZWFkIG9mICJwYXNzd29yZCIgKGUuZy4gYGlzU2VjdXJlRmllbGRgIGluc3RlYWQgb2Yg
YGlzUGFzc3dvcmRGaWVsZGApCnRvIGVuY2Fwc3VsYXRlIHRoZSB3aWRlbmluZyBvZiB0aGlzIGFi
c3RyYWN0aW9uLgoKTmV3IHRlc3RjYXNlcyBhZGRlZCB0byBhY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS5odG1sIHRvIHRlc3QgdGhpcyBiZWhhdmlvci4KCiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sOiBSZW1v
dmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25UZXh0U2Vj
dXJpdHlDaGFuZ2VkKToKKFdlYkNvcmU6OmlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJl
RmllbGQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2Vy
RGF0YUZvclZpc2libGVQb3NpdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvckZpcnN0UG9zaXRpb25JblRleHRDb250cm9sKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblRleHRT
ZWN1cml0eUNoYW5nZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
U2VjdXJlRmllbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c1JlYWRPbmx5IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omluc2VydFRleHQpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWlu
ZWRCeVNlY3VyZUZpZWxkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnNlY3VyZUZpZWxkVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCBjb25zdCk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQgY29uc3QpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdl
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxk
VmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFzc3dv
cmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUZXh0RW50cnlUcmFpdHNdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVZhbHVlXSk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CihXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgooLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CiogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CihXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NlY3VyZUZp
ZWxkIGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cCAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjIgKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmggIHwgIDMgKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcCB8IDExICsrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oICAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgICAgIHwgMTAgKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCAgICAgICB8ICA4ICsrLS0KIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8ICA0ICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAg
ICAgICAgfCAxOCArKysrLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oIHwgIDIgKy0KIC4uLi9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSAgICAg
ICAgICAgICB8ICA0ICstCiAuLi4vaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9T
Lm1tICAgfCAxMCArKy0tLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAg
ICAgICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAg
ICAgICB8ICAyICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAg
ICAgfCAgMiArLQogLi4uL21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tICAgICAgICAgICAg
IHwgIDIgKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8
IDEwICsrLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAg
fCAgMyArKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICAgIHwg
IDEgKwogLi4uL3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgMTEg
LS0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwgICB8IDI3
IC0tLS0tLS0tLS0tLQogLi4uL3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgICAgICAg
ICAgIHwgMTMgKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRt
bCAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5z
ZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZh
bHVlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Nl
Y3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCBhMzU3ZTZiYzk5YjYuLmIyYmNlODA2
NTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTYx
Myw2ICs2MTMsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwg
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dENoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAi
QVhUZXh0Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6
QVhOb3RpZmljYXRpb246OkFYVGV4dFNlY3VyaXR5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8
ICJBWFRleHRTZWN1cml0eUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWEVsZW1lbnRCdXN5Q2hhbmdlZDoKICAgICAgICAg
c3RyZWFtIDw8ICJBWEVsZW1lbnRCdXN5Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYWJkODBi
NTJhNTYzLi5hMDEyNWQ3MGE4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTQ2Niw2ICsxNDY2LDEzIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6b25TZWxlY3RlZENoYW5nZWQoTm9kZSogbm9kZSkKICAgICBoYW5kbGVNZW51SXRlbVNl
bGVjdGVkKG5vZGUpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGV4dFNlY3VyaXR5Q2hh
bmdlZChIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQpCit7CisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRhdGVJc29sYXRlZFRyZWUoZ2V0KCZpbnB1
dEVsZW1lbnQpLCBBWFRleHRTZWN1cml0eUNoYW5nZWQpOworI2VuZGlmCit9CisKIHZvaWQgQVhP
YmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcG9z
dE5vdGlmaWNhdGlvbihnZXQoJmRvY3VtZW50KSwgbnVsbHB0ciwgQVhUZXh0Q2hhbmdlZCk7CkBA
IC0xNjA2LDkgKzE2MTMsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldElzU3luY2hyb25pemlu
Z1NlbGVjdGlvbihib29sIGlzU3luY2hyb25pemluZykKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQorc3RhdGljIGJvb2wgaXNTZWN1cmVGaWVsZE9y
Q29udGFpbmVkQnlTZWN1cmVGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0g
ICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmplY3Qt
PmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNTZWN1cmVGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVNlY3VyZUZpZWxk
KCkpOwogfQogI2VuZGlmCiAKQEAgLTE2NjgsNyArMTY3NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKICAgICBpZiAob2JqZWN0
KSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICBpZiAoaXNTZWN1cmVGaWVs
ZE9yQ29udGFpbmVkQnlTZWN1cmVGaWVsZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwog
I2VuZGlmCiAgICAgICAgIGlmIChhdXRvIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2Vy
dmFibGVPYmplY3QoKSkKQEAgLTE3NzIsNyArMTc3OSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKEhUTUxUZXh0Rm9y
bUNvCiBib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9i
amVjdCkpCisgICAgaWYgKCFpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKG9i
amVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKQEAgLTI1MzIs
NyArMjUzOSw3IEBAIFRleHRNYXJrZXJEYXRhIEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRh
Rm9yQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9mCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oY2hhcmFjdGVyT2Zmc2V0Lm5vZGUpCi0g
ICAgICAgICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpjaGFyYWN0ZXJPZmZzZXQubm9k
ZSkuaXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1l
bnQ+KCpjaGFyYWN0ZXJPZmZzZXQubm9kZSkuaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1
cm4geyAqdGhpcywgeyB9LCB0cnVlIH07CiAKICAgICBzZXROb2RlSW5Vc2UoY2hhcmFjdGVyT2Zm
c2V0Lm5vZGUpOwpAQCAtMjgwMSw3ICsyODA4LDcgQEAgc3RkOjpvcHRpb25hbDxUZXh0TWFya2Vy
RGF0YT4gQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oY28K
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
Km5vZGUpLmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihu
b2RlKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNTZWN1cmVGaWVsZCgp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgLy8gSWYgdGhlIHZpc2libGUg
cG9zaXRpb24gaGFzIGFuIGFuY2hvciB0eXBlIHJlZmVycmluZyB0byBhIG5vZGUgb3RoZXIgdGhh
biB0aGUgYW5jaG9yZWQgbm9kZSwgd2Ugc2hvdWxkCkBAIC0yODIxLDcgKzI4MjgsNyBAQCBzdGQ6
Om9wdGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZv
clZpc2libGVQb3NpdGlvbihjbwogLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgYXMgYSBwZXJmb3Jt
YW5jZSBvcHRpbWl6YXRpb24gdG8gYXZvaWQgYSBzeW5jaHJvbm91cyBsYXlvdXQuCiBzdGQ6Om9w
dGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvckZp
cnN0UG9zaXRpb25JblRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0
Q29udHJvbCkKIHsKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYm
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKS5pc1Bhc3N3b3JkRmllbGQo
KSkKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYmIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBhdXRvKiBjYWNoZSA9IHRleHRDb250cm9sLmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOwpAQCAtMzc0OSw2ICszNzU2LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGkKICAgICAgICAgY2FzZSBBWFJvd1NwYW5DaGFuZ2VkOgogICAgICAgICBj
YXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhUZXh0Q2hhbmdl
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWN1cml0eUNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhW
YWx1ZUNoYW5nZWQ6CiAgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggNDA1ZGU2NzcwNGU2Li41MjI4ZmRhMGUwMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNzksNiArMTc5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIG9uRm9jdXNDaGFuZ2UoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5l
d0ZvY3VzZWROb2RlKTsKICAgICB2b2lkIG9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqKTsKKyAgICB2
b2lkIG9uVGV4dFNlY3VyaXR5Q2hhbmdlZChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdm9pZCBv
blRpdGxlQ2hhbmdlKERvY3VtZW50Jik7CiAgICAgdm9pZCBvblZhbGlkaXR5Q2hhbmdlKEVsZW1l
bnQmKTsKICAgICB2b2lkIHZhbHVlQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0zNTYsNiArMzU3LDcg
QEAgcHVibGljOgogICAgICAgICBBWFJlcXVpcmVkU3RhdHVzQ2hhbmdlZCwKICAgICAgICAgQVhT
b3J0RGlyZWN0aW9uQ2hhbmdlZCwKICAgICAgICAgQVhUZXh0Q2hhbmdlZCwKKyAgICAgICAgQVhU
ZXh0U2VjdXJpdHlDaGFuZ2VkLAogICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwKICAgICAg
ICAgQVhEcmFnZ2luZ1N0YXJ0ZWQsCiAgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwKQEAgLTY2OSw2
ICs2NzEsNyBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoTm9k
ZSosIE5vZGUqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblNlbGVjdGVkQ2hhbmdlZChOb2RlKikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblRleHRTZWN1cml0eUNoYW5nZWQoSFRNTElucHV0RWxlbWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNoYW5nZShFbGVt
ZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5nZWQoRWxlbWVu
dCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3ZmE0NzJhOTgwZGIuLjZhYWMzZDI4MDEwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKQEAgLTYzOSwxNiArNjM5LDEzIEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzTmF0aXZlSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QK
K2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzU2VjdXJlRmllbGQoKSBjb25zdAogewot
ICAgIGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFpczxIVE1MSW5wdXRFbGVt
ZW50Pihub2RlKSkKKyAgICBSZWZQdHIgaW5wdXQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4obm9kZSgpKTsKKyAgICBpZiAoIWlucHV0IHx8IGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3du
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKm5vZGUpLmlzUGFzc3dvcmRGaWVsZCgpOworICAgIHJldHVybiBpbnB1dC0+aXNQ
YXNzd29yZEZpZWxkKCkgfHwgaW5wdXQtPmlzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkKCk7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKaW5kZXggOTMzZjFmNTI3Yzg1Li4zYmRlYmVlMTU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAg
LTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVNlbGVjdGFibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdDsKICAgICBib29sIGlz
TmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzUGFzc3dvcmRG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNTZWN1cmVGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTbGlk
ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGZmNDIyNTY1N2ZmMS4uNjdmNGI2NmQ3
M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTE2OTMsNyArMTY5Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiAgICAgICAgIHx8IHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlN3aXRjaAogICAgICAgICB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpUZXh0RmllbGQKICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdy
aWQKLSAgICAgICAgfHwgaXNQYXNzd29yZEZpZWxkKCk7CisgICAgICAgIHx8IGlzU2VjdXJlRmll
bGQoKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBj
b25zdApAQCAtMjMzMCw4ICsyMzMwLDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNl
cnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
YXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKCkpOwotICAgIC8vIE9ubHkg
dHJ5IHRvIGluc2VydCB0ZXh0IGlmIHRoZSBmaWVsZCBpcyBpbiBlZGl0aW5nIG1vZGUgKGV4Y2x1
ZGluZyBwYXNzd29yZCBmaWVsZHMsIHdoaWNoIHdlIGRvIHN0aWxsIHdhbnQgdG8gdHJ5IHRvIGlu
c2VydCBpbnRvKS4KLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZCgpICYmICFlbGVtZW50LnNob3Vs
ZFVzZUlucHV0TWV0aG9kKCkpCisgICAgLy8gT25seSB0cnkgdG8gaW5zZXJ0IHRleHQgaWYgdGhl
IGZpZWxkIGlzIGluIGVkaXRpbmcgbW9kZSAoZXhjbHVkaW5nIHNlY3VyZSBmaWVsZHMsIHdoaWNo
IHdlIGRvIHN0aWxsIHdhbnQgdG8gdHJ5IHRvIGluc2VydCBpbnRvKS4KKyAgICBpZiAoIWlzU2Vj
dXJlRmllbGQoKSAmJiAhZWxlbWVudC5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAvLyBVc2UgRWRpdG9yOjppbnNlcnRUZXh0IHRvIG1pbWljIHR5
cGluZyBpbnRvIHRoZSBmaWVsZC4KQEAgLTM4NjgsNyArMzg2OCw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNPdXRwdXQoKSBjb25zdAogICAgIHJldHVybiBub2RlICYmIG5vZGUtPmhh
c1RhZ05hbWUob3V0cHV0VGFnKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Ojppc0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQpAQCAtMzg3OCw3ICszODc4LDcgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCk7Ci0gICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYm
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bhc3N3b3JkRmllbGQoKTsK
KyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRN
TElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzU2VjdXJlRmllbGQoKTsKIH0KICAgICAKIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkTGlzdEl0ZW0oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCAwMzdlN2FlZGJjN2YuLjAyOTRkZjRlYmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTEyMyw4ICsxMjMs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBj
b25zdDsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRCeVNlY3VyZUZpZWxkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBpc0xpc3RCb3hPcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQpAQCAtNjA1LDcgKzYwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBk
ZXNjcmlwdGlvbkZvck1TQUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0IHsgcmV0dXJuIHJv
bGVWYWx1ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBj
b25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIHNlY3VyZUZpZWxk
VmFsdWUoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIGJvb2wgaXNWYWx1ZUF1dG9m
aWxsQXZhaWxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQXV0b0ZpbGxCdXR0b25UeXBlIHZh
bHVlQXV0b2ZpbGxCdXR0b25UeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTcyNyw3ICs3Mjcs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50
IGFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgaW50IGFj
Y2Vzc2liaWxpdHlTZWN1cmVGaWVsZExlbmd0aCgpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVG91
Y2hFdmVudExpc3RlbmVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0lucHV0VHlwZVBv
cHVwQnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgK
aW5kZXggYTgzNjM5MjRiMjIzLi44NWRjZjI5YWJjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CkBAIC04NTAsNyArODUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZTsgfQogICAgIGJv
b2wgaXNJbWFnZU1hcCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpJbWFnZU1hcDsgfQogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIHJv
bGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VjdXJl
RmllbGQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2wo
KSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFs
dWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYTsgfQogICAgIGJvb2wgaXNDaGVja2Jv
eCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVj
a0JveDsgfQpAQCAtMTM3MSw3ICsxMzcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlQYXNzd29yZEZp
ZWxkTGVuZ3RoKCkgPSAwOworICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlTZWN1cmVGaWVs
ZExlbmd0aCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudExpc3RlbmVyKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0VHlwZVBvcHVwQnV0dG9uKCkgY29u
c3QgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBjNzJiMjUyZTU2OTAuLmVk
OWU2YjI3Yzc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC03NDgsOCArNzQ4LDggQEAgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGlmIChpc1Bh
c3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAg
IGlmIChpc1NlY3VyZUZpZWxkKCkpCisgICAgICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7
CiAKICAgICBpZiAoaXNBUklBU3RhdGljVGV4dCgpKSB7CiAgICAgICAgIFN0cmluZyBzdGF0aWNU
ZXh0ID0gdGV4dCgpOwpAQCAtMTU3MCw4ICsxNTcwLDggQEAgaW50IEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmxheW91dENvdW50KCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnRleHQoKSBjb25zdAogewotICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKLSAg
ICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAgIGlmIChpc1NlY3VyZUZpZWxk
KCkpCisgICAgICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0KCk7CiB9CiAKQEAgLTE1OTYsNyArMTU5Niw3IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1RleHRDb250cm9sKCkpOwogICAgIAotICAgIGlmIChpc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
IC8vIG5lZWQgdG8gcmV0dXJuIHNvbWV0aGluZyBkaXN0aW5jdCBmcm9tIGVtcHR5IHN0cmluZwog
ICAgIAogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKQEAgLTE2MjgsNyArMTYyOCw3
IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4
dFJhbmdlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29udHJvbCgpKTsKIAotICAgIGlm
IChpc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICBy
ZXR1cm4gUGxhaW5UZXh0UmFuZ2UoKTsKIAogICAgIC8vIFVzZSB0aGUgdGV4dCBjb250cm9sIG5h
dGl2ZSByYW5nZSBpZiBpdCdzIGEgbmF0aXZlIG9iamVjdC4KQEAgLTI0NDksNyArMjQ0OSw3IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlCiAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAKLSAgICBTdHJpbmcgZWxlbWVudFRleHQgPSBpc1Bh
c3N3b3JkRmllbGQoKSA/IHBhc3N3b3JkRmllbGRWYWx1ZSgpIDogdGV4dCgpOworICAgIFN0cmlu
ZyBlbGVtZW50VGV4dCA9IGlzU2VjdXJlRmllbGQoKSA/IHNlY3VyZUZpZWxkVmFsdWUoKSA6IHRl
eHQoKTsKICAgICByZXR1cm4gZWxlbWVudFRleHQuc3Vic3RyaW5nKHJhbmdlLnN0YXJ0LCByYW5n
ZS5sZW5ndGgpOwogfQogCkBAIC0zNTI0LDkgKzM1MjQsOSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9yb2xlRm9yTVNBQTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VjdXJlRmllbGRWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlzUGFzc3dv
cmRGaWVsZCgpKTsKKyAgICBBU1NFUlQoaXNTZWN1cmVGaWVsZCgpKTsKIAogICAgIC8vIExvb2sg
Zm9yIHRoZSBSZW5kZXJUZXh0IG9iamVjdCBpbiB0aGUgUmVuZGVyT2JqZWN0IHRyZWUgZm9yIHRo
aXMgaW5wdXQgZmllbGQuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUoKS0+cmVu
ZGVyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggNjM1NzUwNTA0YTU4Li5lZTM4YjNlMTQxZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNzksNyArMTc5LDcgQEAgcHVibGljOgogICAgIFN0cmlu
ZyBkZXNjcmlwdGlvbkZvck1TQUEoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBTdHJpbmcgcGFz
c3dvcmRGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHNlY3VyZUZpZWxk
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRpdGxlRWxlbWVudFRleHQoVmVjdG9y
PEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0
eU9iamVjdElPUy5tbQppbmRleCBkMTBhMmY3Mzc5YjEuLmU4NDQ4OTBlMjYwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5
T2JqZWN0SU9TLm1tCkBAIC04Miw5ICs4Miw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFYQ29yZU9iamVjdCopCiB9CiAgICAgCiAvLyBJbiBp
UGhvbmUgb25seSBjb2RlIGZvciBub3cuIEl0J3MgZGViYXRlYWJsZSB3aGV0aGVyIHRoaXMgaXMg
ZGVzaXJlZCBvbiBhbGwgcGxhdGZvcm1zLgotaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkKK2ludCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgoKQogewotICAgIGlmICghaXNQYXNzd29yZEZp
ZWxkKCkpCisgICAgaWYgKCFpc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdD4oKnRoaXMpLnJlbmRlcmVyKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVySU9TLm1tCmluZGV4IGRlMWIxNDQxZmZkZS4uZTkyYjJiNjQ2NWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtODE0LDcgKzgxNCw3IEBAIC0g
KHVpbnQ2NF90KV9hY2Nlc3NpYmlsaXR5VGV4dEVudHJ5VHJhaXRzCiAgICAgYXV0byogYmFja2lu
Z09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c0ZvY3VzZWQoKSkKICAgICAgICAgdHJhaXRzIHw9IChbc2VsZiBfYXhIYXNUZXh0Q3Vyc29yVHJh
aXRdIHwgW3NlbGYgX2F4VGV4dE9wZXJhdGlvbnNBdmFpbGFibGVUcmFpdF0pOwotICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICB0cmFpdHMgfD0gW3NlbGYgX2F4U2VjdXJlVGV4dEZp
ZWxkVHJhaXRdOwogCiAgICAgc3dpdGNoIChiYWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSkgewpA
QCAtMTE3Niw3ICsxMTc2LDcgQEAgLSAoQk9PTClfYWNjZXNzaWJpbGl0eUlzU3Ryb25nUGFzc3dv
cmRGaWVsZAogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAg
ICAgIHJldHVybiBOTzsKICAgICAKLSAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1Bh
c3N3b3JkRmllbGQoKSkKKyAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZp
ZWxkKCkpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICByZXR1cm4gc2VsZi5heEJhY2tp
bmdPYmplY3QtPnZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlKCkgPT0gQXV0b0ZpbGxCdXR0b25UeXBl
OjpTdHJvbmdQYXNzd29yZDsKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgLSAoTlNTdHJpbmcgKilh
Y2Nlc3NpYmlsaXR5VmFsdWUKICAgICB9CiAKICAgICAvLyByZGFyOi8vODEzMTM4OCBXZWJLaXQg
c2hvdWxkIGV4cG9zZSB0aGUgc2FtZSBpbmZvIGFzIFVJS2l0IGZvciBpdHMgcGFzc3dvcmQgZmll
bGRzLgotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiAhW3NlbGYg
X2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKSB7Ci0gICAgICAgIGludCBwYXNz
d29yZExlbmd0aCA9IGJhY2tpbmdPYmplY3QtPmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVu
Z3RoKCk7CisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSAmJiAhW3NlbGYg
X2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKSB7CisgICAgICAgIGludCBzZWN1
cmVUZXh0TGVuZ3RoID0gYmFja2luZ09iamVjdC0+YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVu
Z3RoKCk7CiAgICAgICAgIE5TTXV0YWJsZVN0cmluZyogc3RyaW5nID0gW05TTXV0YWJsZVN0cmlu
ZyBzdHJpbmddOwotICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHBhc3N3b3JkTGVuZ3RoOyAr
K2spCisgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgc2VjdXJlVGV4dExlbmd0aDsgKytrKQog
ICAgICAgICAgICAgW3N0cmluZyBhcHBlbmRTdHJpbmc6QCLigKIiXTsKICAgICAgICAgcmV0dXJu
IHN0cmluZzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGY5MzM1N2U2
YTViMy4uNzY1ZmMzOGJjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTAy
LDcgKzEwMiw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMo
Y29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OklzTWVudUxpc3RQb3B1cCwgb2JqZWN0LmlzTWVudUxpc3RQb3B1cCgpKTsK
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNZW51UmVsYXRlZCwgb2JqZWN0Lmlz
TWVudVJlbGF0ZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzTXVsdGlT
ZWxlY3RhYmxlLCBvYmplY3QuaXNNdWx0aVNlbGVjdGFibGUoKSk7Ci0gICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OklzUGFzc3dvcmRGaWVsZCwgb2JqZWN0LmlzUGFzc3dvcmRGaWVsZCgp
KTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTZWN1cmVGaWVsZCwgb2JqZWN0
LmlzU2VjdXJlRmllbGQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzUHJl
c3NlZCwgb2JqZWN0LmlzUHJlc3NlZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6SXNQcm9ncmVzc0luZGljYXRvciwgb2JqZWN0LmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSk7CiAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzUmVxdWlyZWQsIG9iamVjdC5pc1JlcXVp
cmVkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDIyNTAxMDhjYjZlZC4uY2E2M2Rm
OWZhYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC0xMTksNyArMTE5LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIGlzSGVhZGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNIZWFkaW5nKTsgfQogICAgIGJvb2wgaXNM
YW5kbWFyaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFBy
b3BlcnR5TmFtZTo6SXNMYW5kbWFyayk7IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNMaW5rKTsg
fQotICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9v
bEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1Bhc3N3b3JkRmllbGQpOyB9CisgICAg
Ym9vbCBpc1NlY3VyZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0
ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1NlY3VyZUZpZWxkKTsgfQogICAgIGJvb2wgaXNBdHRh
Y2htZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpJc0F0dGFjaG1lbnQpOyB9CiAgICAgYm9vbCBpc01lbnVSZWxhdGVkKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJ
c01lbnVSZWxhdGVkKTsgfQogICAgIGJvb2wgaXNNZW51KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc01lbnUpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZFRyZWUuaAppbmRleCBmYTI2YjI3MzczNDEuLjM2MzQzNjM4ZGFlMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCkBAIC0xNjQsMTEgKzE2NCwxMSBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1l
IDogdWludDE2X3QgewogICAgIElzTWVudUxpc3RQb3B1cCwKICAgICBJc01lbnVSZWxhdGVkLAog
ICAgIElzTXVsdGlTZWxlY3RhYmxlLAotICAgIElzUGFzc3dvcmRGaWVsZCwKICAgICBJc1ByZXNz
ZWQsCiAgICAgSXNQcm9ncmVzc0luZGljYXRvciwKICAgICBJc1JlcXVpcmVkLAogICAgIElzU2Ny
b2xsYmFyLAorICAgIElzU2VjdXJlRmllbGQsCiAgICAgSXNTZWxlY3RlZCwKICAgICBJc1NlbGVj
dGVkT3B0aW9uQWN0aXZlLAogICAgIElzU2xpZGVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXgg
NWZiMDBiZDllODk0Li40MWFiMGFjOTE3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjIw
LDcgKzIyMCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJp
bmcoKSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKIHsKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGlz
U2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlY3VyZVRleHRG
aWVsZFN1YnJvbGU7CiAgICAgaWYgKGlzU2VhcmNoRmllbGQoKSkKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9sZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KaW5kZXggYTRjNTViYmQyNWYyLi5mNzNlMWRmYzFjYjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMTExLDcgKzExMTEsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBh
ZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRl
bXBBcnJheTsKICAgICB9KCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHBhc3N3b3JkRmll
bGRBdHRycyA9IFtdIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgc2VjdXJlRmllbGRBdHRy
aWJ1dGVzID0gW10gewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAg
ICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50
QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5
UmVxdWlyZWRBdHRyaWJ1dGVdOwpAQCAtMTE2Niw4ICsxMTY2LDggQEAgQUxMT1dfREVQUkVDQVRF
RF9JTVBMRU1FTlRBVElPTlNfRU5ECiAKICAgICBOU0FycmF5ICpvYmplY3RBdHRyaWJ1dGVzID0g
YXR0cmlidXRlcy5nZXQoKS5nZXQoKTsKIAotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3
b3JkRmllbGQoKSkKLSAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHBhc3N3b3JkRmllbGRBdHRy
cy5nZXQoKS5nZXQoKTsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQor
ICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gc2VjdXJlRmllbGRBdHRyaWJ1dGVzLmdldCgpLmdl
dCgpOwogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzV2ViQXJlYSgpKQogICAgICAgICBv
YmplY3RBdHRyaWJ1dGVzID0gd2ViQXJlYUF0dHJzLmdldCgpLmdldCgpOwogICAgIGVsc2UgaWYg
KGJhY2tpbmdPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKQEAgLTE2NjgsNyArMTY2OCw3IEBAIEFM
TE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChbYXR0
cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3Rl
clJhbmdlQXR0cmlidXRlXSkgewotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29y
ZEZpZWxkKCkpCisgICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCiAg
ICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAvLyBGSVhNRTogR2V0IGFjdHVhbCB2aXNp
YmxlIHJhbmdlLiA8cmRhcjovL3Byb2JsZW0vNDcxMjEwMT4KICAgICAgICAgaWYgKGJhY2tpbmdP
YmplY3QtPmlzVGV4dENvbnRyb2woKSkKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIEFMTE9XX0RFUFJF
Q0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICB3ZWJBcmVhUGFyYW1BdHRycyA9IFtb
TlNBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTp0ZW1wQXJyYXkuZ2V0KCldOwogICAgIH0KIAot
ICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gQFsgTlNBY2Nlc3NpYmls
aXR5VUlFbGVtZW50c0ZvclNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgXTsK
IAogICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1RleHRDb250cm9sKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzMTA0ZmMwYmVhMDMuLjRjMjYwZmZmZTU2
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNDAwLDYg
KzE0MDAsOSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJl
ZChib29sIGF1dG9GaWxsZWRBbmRPYnNjdXJlZCkKIAogICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0No
YW5nZUludmFsaWRhdGlvbiBzdHlsZUludmFsaWRhdGlvbigqdGhpcywgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzQXV0b2ZpbGxBbmRPYnNjdXJlZCwgYXV0b0ZpbGxlZEFuZE9ic2N1cmVkKTsKICAg
ICBtX2lzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkID0gYXV0b0ZpbGxlZEFuZE9ic2N1cmVkOworCisg
ICAgaWYgKGF1dG8qIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkK
KyAgICAgICAgY2FjaGUtPm9uVGV4dFNlY3VyaXR5Q2hhbmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlw
ZSBhdXRvRmlsbEJ1dHRvblR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CmluZGV4IGIxOTdlZjk0NzEwNy4uYmQxMjA4NTcxNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdDsKICAgICBib29sIGlzSW5wdXRUeXBl
SGlkZGVuKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdDsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCB7IHJldHVybiBpc1Bhc3N3
b3JkRmllbGQoKSB8fCBpc0F1dG9GaWxsZWRBbmRPYnNjdXJlZCgpOyB9CiAgICAgYm9vbCBpc0No
ZWNrYm94KCkgY29uc3Q7CiAgICAgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0OwogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMjQ3ZWY2NGZhNTEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0KLVRoaXMgdGVzdHMgdGhhdCB0aGUgQVggZXhw
b3NlZCB2YWx1ZSBvZiBhIHBhc3N3b3JkIGZpZWxkIGlzIHRoZSByZW5kZXJlZCB0ZXh0LgotCi1P
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xs
b3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUGFzc3dvcmQgZmllbGQ6IEFYVmFsdWU6IOKA
ouKAouKAouKAogotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmll
bGQtdmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQt
dmFsdWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdkZTViZDEzNWE2Li4w
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVs
ZC12YWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0
bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Ci0KLTxpbnB1dCB0eXBl
PSJwYXNzd29yZCIgaWQ9InBhc3MiIHZhbHVlPSJ0ZXN0Ij4KLQotPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLQotICAgIGRlc2Ny
aXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2YgYSBwYXNzd29y
ZCBmaWVsZCBpcyB0aGUgcmVuZGVyZWQgdGV4dC4iKTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIpCi0gICAgICAgIGRlYnVnKCJQYXNzd29yZCBmaWVsZDogIiArIGFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgicGFzcyIpLnN0cmlu
Z1ZhbHVlKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBkZXBlbmRz
IG9uIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLCBwbGVhc2UgdXNlIHJ1bi13ZWJraXQtdGVzdHMg
dG8gcnVuIGl0LiIpOwotICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0
PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5iYjg2YmQ0MDQ2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVlIG9mIHNl
Y3VyZSBpbnB1dHMgaXMgdGhlIHJlbmRlcmVkIChhbmQgdGhlcmVmb3JlIGNlbnNvcmVkKSB0ZXh0
LgorCitQYXNzd29yZCBmaWVsZCB2YWx1ZTogQVhWYWx1ZTog4oCi4oCi4oCi4oCiCisjYXV0b2Zp
bGwtaW5wdXQgdmFsdWUgYmVmb3JlIGJlaW5nIG9ic2N1cmVkOiBBWFZhbHVlOiBmb28KK01ha2lu
ZyAjYXV0b2ZpbGwtaW5wdXQgb2JzY3VyZWQuCisjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIg
YmVpbmcgb2JzY3VyZWQ6IEFYVmFsdWU6IOKAouKAouKAogorTWFraW5nICNhdXRvZmlsbC1pbnB1
dCB2aWV3YWJsZS4KKyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBiZWluZyBtYWRlIHZpZXdh
YmxlOiBBWFZhbHVlOiBmb28KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitU
RVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2Vj
dXJlLWZpZWxkLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
MTRkNTM4ODlmMzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3N3b3JkLWlucHV0IiB2YWx1
ZT0idGVzdCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImF1dG9maWxsLWlucHV0IiB2YWx1ZT0i
Zm9vIj4KKworPHNjcmlwdD4KK3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBl
eHBvc2VkIHZhbHVlIG9mIHNlY3VyZSBpbnB1dHMgaXMgdGhlIHJlbmRlcmVkIChhbmQgdGhlcmVm
b3JlIGNlbnNvcmVkKSB0ZXh0LlxuXG4iOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250
cm9sbGVyKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3Qg
YXV0b2ZpbGxJbnB1dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKTsKKyAgICBsZXQgbGFzdEF1dG9maWxsVmFsdWUgPSBhdXRv
ZmlsbElucHV0LnN0cmluZ1ZhbHVlOworICAgIG91dHB1dCArPSBgUGFzc3dvcmQgZmllbGQgdmFs
dWU6ICR7YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwYXNz
d29yZC1pbnB1dCIpLnN0cmluZ1ZhbHVlfVxuYDsKKyAgICBvdXRwdXQgKz0gYCNhdXRvZmlsbC1p
bnB1dCB2YWx1ZSBiZWZvcmUgYmVpbmcgb2JzY3VyZWQ6ICR7bGFzdEF1dG9maWxsVmFsdWV9XG5g
OworCisgICAgb3V0cHV0ICs9ICJNYWtpbmcgI2F1dG9maWxsLWlucHV0IG9ic2N1cmVkLlxuIjsK
KyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKSwgdHJ1ZSk7CisgICAgc2V0VGltZW91dChh
c3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiBsYXN0QXV0b2Zp
bGxWYWx1ZSAhPT0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZSk7CisgICAgICAgIGxhc3RBdXRv
ZmlsbFZhbHVlID0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZTsKKyAgICAgICAgb3V0cHV0ICs9
IGAjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgb2JzY3VyZWQ6ICR7YXV0b2ZpbGxJ
bnB1dC5zdHJpbmdWYWx1ZX1cbmA7CisKKyAgICAgICAgb3V0cHV0ICs9ICJNYWtpbmcgI2F1dG9m
aWxsLWlucHV0IHZpZXdhYmxlLlxuIjsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRBdXRv
RmlsbGVkQW5kT2JzY3VyZWQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9maWxsLWlucHV0
IiksIGZhbHNlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRBdXRvRmlsbGVkQW5kVmll
d2FibGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9maWxsLWlucHV0IiksIHRydWUpOwor
ICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IGxhc3RBdXRvZmlsbFZhbHVlICE9PSBhdXRvZmls
bElucHV0LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgb3V0cHV0ICs9IGAjYXV0b2ZpbGwtaW5wdXQg
dmFsdWUgYWZ0ZXIgYmVpbmcgbWFkZSB2aWV3YWJsZTogJHthdXRvZmlsbElucHV0LnN0cmluZ1Zh
bHVlfVxuYDsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOworICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465295</attachid>
            <date>2023-03-04 12:07:23 -0800</date>
            <delta_ts>2023-03-04 12:30:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230304120722.patch</filename>
            <type>text/plain</type>
            <size>35388</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBhNjE3MDgxZTFlNTlhODY0OGRlZjA3Zjg4MWIxM2Q1NzRjYzcwODY0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFjY2Vzc2liaWxpdHkgQVBJcyBzaG91bGQgbm90IGV4
cG9zZSBzZWN1cmUgdGV4dCBvYnNjdXJlZCBieSBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxs
ZWRBbmRPYnNjdXJlZC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjaGFuZ2luZyBgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkYCB0byBhbHNvIGNoZWNrIGZvcgpgSFRNTElu
cHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWRgLiBUaGlzIG1ldGhvZCBhbmQgYWxs
IHNpbWlsYXJseSBuYW1lZCBtZXRob2RzIGhhdmUKYmVlbiByZW5hbWVkIHRvIHVzZSAic2VjdXJl
IiBpbnN0ZWFkIG9mICJwYXNzd29yZCIgKGUuZy4gYGlzU2VjdXJlRmllbGRgIGluc3RlYWQgb2Yg
YGlzUGFzc3dvcmRGaWVsZGApCnRvIGVuY2Fwc3VsYXRlIHRoZSB3aWRlbmluZyBvZiB0aGlzIGFi
c3RyYWN0aW9uLgoKTmV3IHRlc3RjYXNlcyBhZGRlZCB0byBhY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS5odG1sIHRvIHRlc3QgdGhpcyBiZWhhdmlvci4KCiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sOiBSZW1v
dmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25UZXh0U2Vj
dXJpdHlDaGFuZ2VkKToKKFdlYkNvcmU6OmlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJl
RmllbGQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2Vy
RGF0YUZvclZpc2libGVQb3NpdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvckZpcnN0UG9zaXRpb25JblRleHRDb250cm9sKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblRleHRT
ZWN1cml0eUNoYW5nZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
U2VjdXJlRmllbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c1JlYWRPbmx5IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omluc2VydFRleHQpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWlu
ZWRCeVNlY3VyZUZpZWxkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnNlY3VyZUZpZWxkVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCBjb25zdCk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQgY29uc3QpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdl
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxk
VmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFzc3dv
cmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUZXh0RW50cnlUcmFpdHNdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVZhbHVlXSk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CihXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgooLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CiogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CihXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NlY3VyZUZp
ZWxkIGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cCAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjIgKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmggIHwgIDMgKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmNwcCB8IDExICsrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5oICAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5j
cHAgICAgIHwgMTAgKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCAgICAgICB8ICA4ICsrLS0KIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggICAg
ICAgICAgICB8ICA0ICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgICAgICAg
ICAgICAgfCAxOCArKysrLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oIHwgIDIgKy0KIC4uLi9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSAgICAg
ICAgICAgICB8ICA0ICstCiAuLi4vaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9T
Lm1tICAgfCAxMCArKy0tLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAg
ICAgICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAg
ICAgICB8ICAyICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAg
ICAgfCAgMiArLQogLi4uL21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tICAgICAgICAgICAg
IHwgIDIgKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8
IDEwICsrLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAg
fCAgMyArKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICAgIHwg
IDEgKwogLi4uL3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgMTEg
LS0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwgICB8IDI3
IC0tLS0tLS0tLS0tLQogLi4uL3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgICAgICAg
ICAgIHwgMTMgKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRt
bCAgICAgfCA0MyArKysrKysrKysrKysrKysrKysrCiAyMyBmaWxlcyBjaGFuZ2VkLCAxMjMgaW5z
ZXJ0aW9ucygrKSwgOTAgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZh
bHVlLmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Nl
Y3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCBhMzU3ZTZiYzk5YjYuLmIyYmNlODA2
NTg3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTYx
Myw2ICs2MTMsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwg
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RD
YWNoZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dENoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAi
QVhUZXh0Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6
QVhOb3RpZmljYXRpb246OkFYVGV4dFNlY3VyaXR5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8
ICJBWFRleHRTZWN1cml0eUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2Jq
ZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWEVsZW1lbnRCdXN5Q2hhbmdlZDoKICAgICAgICAg
c3RyZWFtIDw8ICJBWEVsZW1lbnRCdXN5Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYWJkODBi
NTJhNTYzLi5hMDEyNWQ3MGE4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMTQ2Niw2ICsxNDY2LDEzIEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6b25TZWxlY3RlZENoYW5nZWQoTm9kZSogbm9kZSkKICAgICBoYW5kbGVNZW51SXRlbVNl
bGVjdGVkKG5vZGUpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGV4dFNlY3VyaXR5Q2hh
bmdlZChIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQpCit7CisjaWYgRU5BQkxFKEFDQ0VT
U0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRhdGVJc29sYXRlZFRyZWUoZ2V0KCZpbnB1
dEVsZW1lbnQpLCBBWFRleHRTZWN1cml0eUNoYW5nZWQpOworI2VuZGlmCit9CisKIHZvaWQgQVhP
YmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcG9z
dE5vdGlmaWNhdGlvbihnZXQoJmRvY3VtZW50KSwgbnVsbHB0ciwgQVhUZXh0Q2hhbmdlZCk7CkBA
IC0xNjA2LDkgKzE2MTMsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldElzU3luY2hyb25pemlu
Z1NlbGVjdGlvbihib29sIGlzU3luY2hyb25pemluZykKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotc3RhdGljIGJvb2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQorc3RhdGljIGJvb2wgaXNTZWN1cmVGaWVsZE9y
Q29udGFpbmVkQnlTZWN1cmVGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0g
ICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmplY3Qt
PmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkpOworICAgIHJldHVybiBvYmplY3QgJiYgKG9i
amVjdC0+aXNTZWN1cmVGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVNlY3VyZUZpZWxk
KCkpOwogfQogI2VuZGlmCiAKQEAgLTE2NjgsNyArMTY3NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsCiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKICAgICBpZiAob2JqZWN0
KSB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICBpZiAoaXNTZWN1cmVGaWVs
ZE9yQ29udGFpbmVkQnlTZWN1cmVGaWVsZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwog
I2VuZGlmCiAgICAgICAgIGlmIChhdXRvIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2Vy
dmFibGVPYmplY3QoKSkKQEAgLTE3NzIsNyArMTc3OSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFRleHRSZXBsYWNlbWVudE5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKEhUTUxUZXh0Rm9y
bUNvCiBib29sIEFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkKLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9i
amVjdCkpCisgICAgaWYgKCFpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKG9i
amVjdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKQEAgLTI1MzIs
NyArMjUzOSw3IEBAIFRleHRNYXJrZXJEYXRhIEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRh
Rm9yQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9mCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oY2hhcmFjdGVyT2Zmc2V0Lm5vZGUpCi0g
ICAgICAgICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpjaGFyYWN0ZXJPZmZzZXQubm9k
ZSkuaXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1l
bnQ+KCpjaGFyYWN0ZXJPZmZzZXQubm9kZSkuaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1
cm4geyAqdGhpcywgeyB9LCB0cnVlIH07CiAKICAgICBzZXROb2RlSW5Vc2UoY2hhcmFjdGVyT2Zm
c2V0Lm5vZGUpOwpAQCAtMjgwMSw3ICsyODA4LDcgQEAgc3RkOjpvcHRpb25hbDxUZXh0TWFya2Vy
RGF0YT4gQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oY28K
ICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
Km5vZGUpLmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihu
b2RlKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNTZWN1cmVGaWVsZCgp
KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgLy8gSWYgdGhlIHZpc2libGUg
cG9zaXRpb24gaGFzIGFuIGFuY2hvciB0eXBlIHJlZmVycmluZyB0byBhIG5vZGUgb3RoZXIgdGhh
biB0aGUgYW5jaG9yZWQgbm9kZSwgd2Ugc2hvdWxkCkBAIC0yODIxLDcgKzI4MjgsNyBAQCBzdGQ6
Om9wdGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZv
clZpc2libGVQb3NpdGlvbihjbwogLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgYXMgYSBwZXJmb3Jt
YW5jZSBvcHRpbWl6YXRpb24gdG8gYXZvaWQgYSBzeW5jaHJvbm91cyBsYXlvdXQuCiBzdGQ6Om9w
dGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvckZp
cnN0UG9zaXRpb25JblRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0
Q29udHJvbCkKIHsKLSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYm
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKS5pc1Bhc3N3b3JkRmllbGQo
KSkKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYmIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBhdXRvKiBjYWNoZSA9IHRleHRDb250cm9sLmRv
Y3VtZW50KCkuYXhPYmplY3RDYWNoZSgpOwpAQCAtMzc0OSw2ICszNzU2LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQ
dHI8QWNjZXNzaWJpbGkKICAgICAgICAgY2FzZSBBWFJvd1NwYW5DaGFuZ2VkOgogICAgICAgICBj
YXNlIEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhUZXh0Q2hhbmdl
ZDoKKyAgICAgICAgY2FzZSBBWFRleHRTZWN1cml0eUNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhW
YWx1ZUNoYW5nZWQ6CiAgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7
CiAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKaW5kZXggNDA1ZGU2NzcwNGU2Li41MjI4ZmRhMGUwMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNzksNiArMTc5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
KTsKICAgICB2b2lkIG9uRm9jdXNDaGFuZ2UoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5l
d0ZvY3VzZWROb2RlKTsKICAgICB2b2lkIG9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqKTsKKyAgICB2
b2lkIG9uVGV4dFNlY3VyaXR5Q2hhbmdlZChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdm9pZCBv
blRpdGxlQ2hhbmdlKERvY3VtZW50Jik7CiAgICAgdm9pZCBvblZhbGlkaXR5Q2hhbmdlKEVsZW1l
bnQmKTsKICAgICB2b2lkIHZhbHVlQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0zNTYsNiArMzU3LDcg
QEAgcHVibGljOgogICAgICAgICBBWFJlcXVpcmVkU3RhdHVzQ2hhbmdlZCwKICAgICAgICAgQVhT
b3J0RGlyZWN0aW9uQ2hhbmdlZCwKICAgICAgICAgQVhUZXh0Q2hhbmdlZCwKKyAgICAgICAgQVhU
ZXh0U2VjdXJpdHlDaGFuZ2VkLAogICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwKICAgICAg
ICAgQVhEcmFnZ2luZ1N0YXJ0ZWQsCiAgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwKQEAgLTY2OSw2
ICs2NzEsNyBAQCBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoTm9k
ZSosIE5vZGUqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdl
ZChSZW5kZXJPYmplY3QqLCBSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblNlbGVjdGVkQ2hhbmdlZChOb2RlKikgeyB9CitpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblRleHRTZWN1cml0eUNoYW5nZWQoSFRNTElucHV0RWxlbWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVu
dCYpIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNoYW5nZShFbGVt
ZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5nZWQoRWxlbWVu
dCopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCA3ZmE0NzJhOTgwZGIuLjZhYWMzZDI4MDEwZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5jcHAKQEAgLTYzOSwxNiArNjM5LDEzIEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzTmF0aXZlSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QK
K2Jvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzU2VjdXJlRmllbGQoKSBjb25zdAogewot
ICAgIGF1dG8qIG5vZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFpczxIVE1MSW5wdXRFbGVt
ZW50Pihub2RlKSkKKyAgICBSZWZQdHIgaW5wdXQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4obm9kZSgpKTsKKyAgICBpZiAoIWlucHV0IHx8IGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgIGlmIChhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3du
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKm5vZGUpLmlzUGFzc3dvcmRGaWVsZCgpOworICAgIHJldHVybiBpbnB1dC0+aXNQ
YXNzd29yZEZpZWxkKCkgfHwgaW5wdXQtPmlzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkKCk7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0LmgKaW5kZXggOTMzZjFmNTI3Yzg1Li4zYmRlYmVlMTU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAg
LTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVNlbGVjdGFibGUoKSBjb25z
dCBvdmVycmlkZTsKICAgICBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdDsKICAgICBib29sIGlz
TmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzUGFzc3dvcmRG
aWVsZCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNTZWN1cmVGaWVsZCgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTbGlk
ZXIoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGZmNDIyNTY1N2ZmMS4uNjdmNGI2NmQ3
M2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKQEAgLTE2OTMsNyArMTY5Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiAgICAgICAgIHx8IHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlN3aXRjaAogICAgICAgICB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpUZXh0RmllbGQKICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdy
aWQKLSAgICAgICAgfHwgaXNQYXNzd29yZEZpZWxkKCk7CisgICAgICAgIHx8IGlzU2VjdXJlRmll
bGQoKTsKIH0KIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBj
b25zdApAQCAtMjMzMCw4ICsyMzMwLDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNl
cnRUZXh0KGNvbnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
YXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKCkpOwotICAgIC8vIE9ubHkg
dHJ5IHRvIGluc2VydCB0ZXh0IGlmIHRoZSBmaWVsZCBpcyBpbiBlZGl0aW5nIG1vZGUgKGV4Y2x1
ZGluZyBwYXNzd29yZCBmaWVsZHMsIHdoaWNoIHdlIGRvIHN0aWxsIHdhbnQgdG8gdHJ5IHRvIGlu
c2VydCBpbnRvKS4KLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZCgpICYmICFlbGVtZW50LnNob3Vs
ZFVzZUlucHV0TWV0aG9kKCkpCisgICAgLy8gT25seSB0cnkgdG8gaW5zZXJ0IHRleHQgaWYgdGhl
IGZpZWxkIGlzIGluIGVkaXRpbmcgbW9kZSAoZXhjbHVkaW5nIHNlY3VyZSBmaWVsZHMsIHdoaWNo
IHdlIGRvIHN0aWxsIHdhbnQgdG8gdHJ5IHRvIGluc2VydCBpbnRvKS4KKyAgICBpZiAoIWlzU2Vj
dXJlRmllbGQoKSAmJiAhZWxlbWVudC5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICAvLyBVc2UgRWRpdG9yOjppbnNlcnRUZXh0IHRvIG1pbWljIHR5
cGluZyBpbnRvIHRoZSBmaWVsZC4KQEAgLTM4NjgsNyArMzg2OCw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNPdXRwdXQoKSBjb25zdAogICAgIHJldHVybiBub2RlICYmIG5vZGUtPmhh
c1RhZ05hbWUob3V0cHV0VGFnKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6
aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0Ojppc0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUg
PSB0aGlzLT5ub2RlKCk7CiAgICAgaWYgKCFub2RlKQpAQCAtMzg3OCw3ICszODc4LDcgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5z
aGFkb3dIb3N0KCk7Ci0gICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYm
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bhc3N3b3JkRmllbGQoKTsK
KyAgICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRN
TElucHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzU2VjdXJlRmllbGQoKTsKIH0KICAgICAKIEFjY2Vz
c2liaWxpdHlPYmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkTGlzdEl0ZW0oKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCAwMzdlN2FlZGJjN2YuLjAyOTRkZjRlYmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTEyMyw4ICsxMjMs
OCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudEVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBj
b25zdDsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQorICAgIGJvb2wgaXNDb250YWluZWRCeVNlY3VyZUZpZWxkKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBpc0xpc3RCb3hPcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQpAQCAtNjA1LDcgKzYwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBk
ZXNjcmlwdGlvbkZvck1TQUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1
YWwgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0IHsgcmV0dXJuIHJv
bGVWYWx1ZSgpOyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBj
b25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIHNlY3VyZUZpZWxk
VmFsdWUoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIGJvb2wgaXNWYWx1ZUF1dG9m
aWxsQXZhaWxhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQXV0b0ZpbGxCdXR0b25UeXBlIHZh
bHVlQXV0b2ZpbGxCdXR0b25UeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTcyNyw3ICs3Mjcs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50
IGFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgaW50IGFj
Y2Vzc2liaWxpdHlTZWN1cmVGaWVsZExlbmd0aCgpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVG91
Y2hFdmVudExpc3RlbmVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0lucHV0VHlwZVBv
cHVwQnV0dG9uKCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgK
aW5kZXggYTgzNjM5MjRiMjIzLi44NWRjZjI5YWJjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5o
CkBAIC04NTAsNyArODUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsg
cmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZTsgfQogICAgIGJv
b2wgaXNJbWFnZU1hcCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpJbWFnZU1hcDsgfQogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIHJv
bGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzsgfQotICAgIHZpcnR1YWwgYm9v
bCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VjdXJl
RmllbGQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2wo
KSBjb25zdCA9IDA7CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFs
dWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYTsgfQogICAgIGJvb2wgaXNDaGVja2Jv
eCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVj
a0JveDsgfQpAQCAtMTM3MSw3ICsxMzcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQotICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlQYXNzd29yZEZp
ZWxkTGVuZ3RoKCkgPSAwOworICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlTZWN1cmVGaWVs
ZExlbmd0aCgpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudExpc3RlbmVyKCkg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0VHlwZVBvcHVwQnV0dG9uKCkgY29u
c3QgPSAwOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBjNzJiMjUyZTU2OTAuLmVk
OWU2YjI3Yzc2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC03NDgsOCArNzQ4LDggQEAgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGlmIChpc1Bh
c3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAg
IGlmIChpc1NlY3VyZUZpZWxkKCkpCisgICAgICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7
CiAKICAgICBpZiAoaXNBUklBU3RhdGljVGV4dCgpKSB7CiAgICAgICAgIFN0cmluZyBzdGF0aWNU
ZXh0ID0gdGV4dCgpOwpAQCAtMTU3MCw4ICsxNTcwLDggQEAgaW50IEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmxheW91dENvdW50KCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnRleHQoKSBjb25zdAogewotICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKLSAg
ICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAgIGlmIChpc1NlY3VyZUZpZWxk
KCkpCisgICAgICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7CiAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0Ojp0ZXh0KCk7CiB9CiAKQEAgLTE1OTYsNyArMTU5Niw3IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQoKSBjb25zdAogewog
ICAgIEFTU0VSVChpc1RleHRDb250cm9sKCkpOwogICAgIAotICAgIGlmIChpc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
IC8vIG5lZWQgdG8gcmV0dXJuIHNvbWV0aGluZyBkaXN0aW5jdCBmcm9tIGVtcHR5IHN0cmluZwog
ICAgIAogICAgIGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKQEAgLTE2MjgsNyArMTYyOCw3
IEBAIFBsYWluVGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4
dFJhbmdlKCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29udHJvbCgpKTsKIAotICAgIGlm
IChpc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICBy
ZXR1cm4gUGxhaW5UZXh0UmFuZ2UoKTsKIAogICAgIC8vIFVzZSB0aGUgdGV4dCBjb250cm9sIG5h
dGl2ZSByYW5nZSBpZiBpdCdzIGEgbmF0aXZlIG9iamVjdC4KQEAgLTI0NDksNyArMjQ0OSw3IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UoY29u
c3QgUGxhaW5UZXh0UmFuZ2UmIHJhbmdlCiAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAKLSAgICBTdHJpbmcgZWxlbWVudFRleHQgPSBpc1Bh
c3N3b3JkRmllbGQoKSA/IHBhc3N3b3JkRmllbGRWYWx1ZSgpIDogdGV4dCgpOworICAgIFN0cmlu
ZyBlbGVtZW50VGV4dCA9IGlzU2VjdXJlRmllbGQoKSA/IHNlY3VyZUZpZWxkVmFsdWUoKSA6IHRl
eHQoKTsKICAgICByZXR1cm4gZWxlbWVudFRleHQuc3Vic3RyaW5nKHJhbmdlLnN0YXJ0LCByYW5n
ZS5sZW5ndGgpOwogfQogCkBAIC0zNTI0LDkgKzM1MjQsOSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpyb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QKICAgICBy
ZXR1cm4gbV9yb2xlRm9yTVNBQTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OnBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6c2VjdXJlRmllbGRWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlzUGFzc3dv
cmRGaWVsZCgpKTsKKyAgICBBU1NFUlQoaXNTZWN1cmVGaWVsZCgpKTsKIAogICAgIC8vIExvb2sg
Zm9yIHRoZSBSZW5kZXJUZXh0IG9iamVjdCBpbiB0aGUgUmVuZGVyT2JqZWN0IHRyZWUgZm9yIHRo
aXMgaW5wdXQgZmllbGQuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUoKS0+cmVu
ZGVyZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKaW5kZXggNjM1NzUwNTA0YTU4Li5lZTM4YjNlMTQxZDQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oCkBAIC0xNzksNyArMTc5LDcgQEAgcHVibGljOgogICAgIFN0cmlu
ZyBkZXNjcmlwdGlvbkZvck1TQUEoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBTdHJpbmcgcGFz
c3dvcmRGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHNlY3VyZUZpZWxk
VmFsdWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRpdGxlRWxlbWVudFRleHQoVmVjdG9y
PEFjY2Vzc2liaWxpdHlUZXh0PiYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0
eU9iamVjdElPUy5tbQppbmRleCBkMTBhMmY3Mzc5YjEuLmU4NDQ4OTBlMjYwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5
T2JqZWN0SU9TLm1tCkBAIC04Miw5ICs4Miw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6
b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFYQ29yZU9iamVjdCopCiB9CiAgICAgCiAvLyBJbiBp
UGhvbmUgb25seSBjb2RlIGZvciBub3cuIEl0J3MgZGViYXRlYWJsZSB3aGV0aGVyIHRoaXMgaXMg
ZGVzaXJlZCBvbiBhbGwgcGxhdGZvcm1zLgotaW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkKK2ludCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojph
Y2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgoKQogewotICAgIGlmICghaXNQYXNzd29yZEZp
ZWxkKCkpCisgICAgaWYgKCFpc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiAwOwogICAg
IFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0ID0gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdD4oKnRoaXMpLnJlbmRlcmVyKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVySU9TLm1tCmluZGV4IGRlMWIxNDQxZmZkZS4uZTkyYjJiNjQ2NWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQpAQCAtODE0LDcgKzgxNCw3IEBAIC0g
KHVpbnQ2NF90KV9hY2Nlc3NpYmlsaXR5VGV4dEVudHJ5VHJhaXRzCiAgICAgYXV0byogYmFja2lu
Z09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2JqZWN0OwogICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c0ZvY3VzZWQoKSkKICAgICAgICAgdHJhaXRzIHw9IChbc2VsZiBfYXhIYXNUZXh0Q3Vyc29yVHJh
aXRdIHwgW3NlbGYgX2F4VGV4dE9wZXJhdGlvbnNBdmFpbGFibGVUcmFpdF0pOwotICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICB0cmFpdHMgfD0gW3NlbGYgX2F4U2VjdXJlVGV4dEZp
ZWxkVHJhaXRdOwogCiAgICAgc3dpdGNoIChiYWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSkgewpA
QCAtMTE3Niw3ICsxMTc2LDcgQEAgLSAoQk9PTClfYWNjZXNzaWJpbGl0eUlzU3Ryb25nUGFzc3dv
cmRGaWVsZAogICAgIGlmICghW3NlbGYgX3ByZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAg
ICAgIHJldHVybiBOTzsKICAgICAKLSAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1Bh
c3N3b3JkRmllbGQoKSkKKyAgICBpZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZp
ZWxkKCkpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICByZXR1cm4gc2VsZi5heEJhY2tp
bmdPYmplY3QtPnZhbHVlQXV0b2ZpbGxCdXR0b25UeXBlKCkgPT0gQXV0b0ZpbGxCdXR0b25UeXBl
OjpTdHJvbmdQYXNzd29yZDsKQEAgLTE1NjMsMTAgKzE1NjMsMTAgQEAgLSAoTlNTdHJpbmcgKilh
Y2Nlc3NpYmlsaXR5VmFsdWUKICAgICB9CiAKICAgICAvLyByZGFyOi8vODEzMTM4OCBXZWJLaXQg
c2hvdWxkIGV4cG9zZSB0aGUgc2FtZSBpbmZvIGFzIFVJS2l0IGZvciBpdHMgcGFzc3dvcmQgZmll
bGRzLgotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiAhW3NlbGYg
X2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKSB7Ci0gICAgICAgIGludCBwYXNz
d29yZExlbmd0aCA9IGJhY2tpbmdPYmplY3QtPmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVu
Z3RoKCk7CisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSAmJiAhW3NlbGYg
X2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKSB7CisgICAgICAgIGludCBzZWN1
cmVUZXh0TGVuZ3RoID0gYmFja2luZ09iamVjdC0+YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVu
Z3RoKCk7CiAgICAgICAgIE5TTXV0YWJsZVN0cmluZyogc3RyaW5nID0gW05TTXV0YWJsZVN0cmlu
ZyBzdHJpbmddOwotICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHBhc3N3b3JkTGVuZ3RoOyAr
K2spCisgICAgICAgIGZvciAoaW50IGsgPSAwOyBrIDwgc2VjdXJlVGV4dExlbmd0aDsgKytrKQog
ICAgICAgICAgICAgW3N0cmluZyBhcHBlbmRTdHJpbmc6QCLigKIiXTsKICAgICAgICAgcmV0dXJu
IHN0cmluZzsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGY5MzM1N2U2
YTViMy4uODA0ZTA1MzUyYzliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTAy
LDExICsxMDIsMTEgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGll
cyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4mIGF4T2IKICAgICBzZXRQcm9wZXJ0eShB
WFByb3BlcnR5TmFtZTo6SXNNZW51TGlzdFBvcHVwLCBvYmplY3QuaXNNZW51TGlzdFBvcHVwKCkp
OwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc01lbnVSZWxhdGVkLCBvYmplY3Qu
aXNNZW51UmVsYXRlZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNdWx0
aVNlbGVjdGFibGUsIG9iamVjdC5pc011bHRpU2VsZWN0YWJsZSgpKTsKLSAgICBzZXRQcm9wZXJ0
eShBWFByb3BlcnR5TmFtZTo6SXNQYXNzd29yZEZpZWxkLCBvYmplY3QuaXNQYXNzd29yZEZpZWxk
KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1ByZXNzZWQsIG9iamVjdC5p
c1ByZXNzZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzUHJvZ3Jlc3NJ
bmRpY2F0b3IsIG9iamVjdC5pc1Byb2dyZXNzSW5kaWNhdG9yKCkpOwogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpJc1JlcXVpcmVkLCBvYmplY3QuaXNSZXF1aXJlZCgpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTY3JvbGxiYXIsIG9iamVjdC5pc1Njcm9sbGJh
cigpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTZWN1cmVGaWVsZCwgb2Jq
ZWN0LmlzU2VjdXJlRmllbGQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Oklz
U2VsZWN0ZWQsIG9iamVjdC5pc1NlbGVjdGVkKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpJc1NsaWRlciwgb2JqZWN0LmlzU2xpZGVyKCkpOwogICAgIHNldFByb3BlcnR5KEFY
UHJvcGVydHlOYW1lOjpJc1N0eWxlRm9ybWF0R3JvdXAsIG9iamVjdC5pc1N0eWxlRm9ybWF0R3Jv
dXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggMjI1MDEwOGNiNmVkLi5jYTYzZGY5
ZmFhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0
cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2
YXRlOgogICAgIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0hlYWRpbmcpOyB9CiAgICAgYm9vbCBpc0xh
bmRtYXJrKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpJc0xhbmRtYXJrKTsgfQogICAgIGJvb2wgaXNMaW5rKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0xpbmspOyB9
Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzUGFzc3dvcmRGaWVsZCk7IH0KKyAgICBi
b29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRl
VmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzU2VjdXJlRmllbGQpOyB9CiAgICAgYm9vbCBpc0F0dGFj
aG1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OklzQXR0YWNobWVudCk7IH0KICAgICBib29sIGlzTWVudVJlbGF0ZWQoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Oklz
TWVudVJlbGF0ZWQpOyB9CiAgICAgYm9vbCBpc01lbnUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzTWVudSk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5oCmluZGV4IGZhMjZiMjczNzM0MS4uMzYzNDM2MzhkYWUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRUcmVlLmgKQEAgLTE2NCwxMSArMTY0LDExIEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUg
OiB1aW50MTZfdCB7CiAgICAgSXNNZW51TGlzdFBvcHVwLAogICAgIElzTWVudVJlbGF0ZWQsCiAg
ICAgSXNNdWx0aVNlbGVjdGFibGUsCi0gICAgSXNQYXNzd29yZEZpZWxkLAogICAgIElzUHJlc3Nl
ZCwKICAgICBJc1Byb2dyZXNzSW5kaWNhdG9yLAogICAgIElzUmVxdWlyZWQsCiAgICAgSXNTY3Jv
bGxiYXIsCisgICAgSXNTZWN1cmVGaWVsZCwKICAgICBJc1NlbGVjdGVkLAogICAgIElzU2VsZWN0
ZWRPcHRpb25BY3RpdmUsCiAgICAgSXNTbGlkZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCA1
ZmIwMGJkOWU4OTQuLjQxYWIwYWM5MTc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC0yMjAs
NyArMjIwLDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybVN0cmlu
ZygpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1T
dHJpbmcoKSBjb25zdAogewotICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoaXNT
ZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZp
ZWxkU3Vicm9sZTsKICAgICBpZiAoaXNTZWFyY2hGaWVsZCgpKQogICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJyb2xlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlck1hYy5tbQppbmRleCBhNGM1NWJiZDI1ZjIuLmY3M2UxZGZjMWNiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTExMTEsNyArMTExMSw3IEBAIEFM
TE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFk
ZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxBdHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVt
cEFycmF5OwogICAgIH0oKTsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgcGFzc3dvcmRGaWVs
ZEF0dHJzID0gW10geworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBzZWN1cmVGaWVsZEF0dHJp
YnV0ZXMgPSBbXSB7CiAgICAgICAgIGF1dG8gdGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJs
ZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRB
dHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlS
ZXF1aXJlZEF0dHJpYnV0ZV07CkBAIC0xMTY2LDggKzExNjYsOCBAQCBBTExPV19ERVBSRUNBVEVE
X0lNUExFTUVOVEFUSU9OU19FTkQKIAogICAgIE5TQXJyYXkgKm9iamVjdEF0dHJpYnV0ZXMgPSBh
dHRyaWJ1dGVzLmdldCgpLmdldCgpOwogCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFzc3dv
cmRGaWVsZCgpKQotICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gcGFzc3dvcmRGaWVsZEF0dHJz
LmdldCgpLmdldCgpOworICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCisg
ICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMuZ2V0KCkuZ2V0
KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNXZWJBcmVhKCkpCiAgICAgICAgIG9i
amVjdEF0dHJpYnV0ZXMgPSB3ZWJBcmVhQXR0cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAo
YmFja2luZ09iamVjdC0+aXNUZXh0Q29udHJvbCgpKQpAQCAtMTY2OCw3ICsxNjY4LDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRy
aWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlWaXNpYmxlQ2hhcmFjdGVy
UmFuZ2VBdHRyaWJ1dGVdKSB7Ci0gICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3Jk
RmllbGQoKSkKKyAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKICAg
ICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgIC8vIEZJWE1FOiBHZXQgYWN0dWFsIHZpc2li
bGUgcmFuZ2UuIDxyZGFyOi8vcHJvYmxlbS80NzEyMTAxPgogICAgICAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNUZXh0Q29udHJvbCgpKQpAQCAtMjQ3Nyw3ICsyNDc3LDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIHdlYkFyZWFQYXJhbUF0dHJzID0gW1tO
U0FycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5OnRlbXBBcnJheS5nZXQoKV07CiAgICAgfQogCi0g
ICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChiYWNraW5n
T2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBAWyBOU0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnRzRm9yU2VhcmNoUHJlZGljYXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBdOwog
CiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDMxMDRmYzBiZWEwMy4uNGMyNjBmZmZlNTY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTE0MDAsNiAr
MTQwMCw5IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0QXV0b0ZpbGxlZEFuZE9ic2N1cmVk
KGJvb2wgYXV0b0ZpbGxlZEFuZE9ic2N1cmVkKQogCiAgICAgU3R5bGU6OlBzZXVkb0NsYXNzQ2hh
bmdlSW52YWxpZGF0aW9uIHN0eWxlSW52YWxpZGF0aW9uKCp0aGlzLCBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2xhc3NBdXRvZmlsbEFuZE9ic2N1cmVkLCBhdXRvRmlsbGVkQW5kT2JzY3VyZWQpOwogICAg
IG1faXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQgPSBhdXRvRmlsbGVkQW5kT2JzY3VyZWQ7CisKKyAg
ICBpZiAoYXV0byogY2FjaGUgPSBkb2N1bWVudCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQor
ICAgICAgICBjYWNoZS0+b25UZXh0U2VjdXJpdHlDaGFuZ2VkKCp0aGlzKTsKIH0KIAogdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzZXRTaG93QXV0b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBl
IGF1dG9GaWxsQnV0dG9uVHlwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
aW5kZXggYjE5N2VmOTQ3MTA3Li5iZDEyMDg1NzE0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCkBAIC0xNDIsNiArMTQyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0OwogICAgIGJvb2wgaXNJbnB1dFR5cGVI
aWRkZW4oKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzUGFzc3dvcmRGaWVsZCgp
IGNvbnN0OworICAgIGJvb2wgaXNTZWN1cmVGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGlzUGFzc3dv
cmRGaWVsZCgpIHx8IGlzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkKCk7IH0KICAgICBib29sIGlzQ2hl
Y2tib3goKSBjb25zdDsKICAgICBib29sIGlzUmFuZ2VDb250cm9sKCkgY29uc3Q7CiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmls
aXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAyNDdlZjY0ZmE1MTIuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dAorKysg
L2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAKLQotVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBleHBv
c2VkIHZhbHVlIG9mIGEgcGFzc3dvcmQgZmllbGQgaXMgdGhlIHJlbmRlcmVkIHRleHQuCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QYXNzd29yZCBmaWVsZDogQVhWYWx1ZTog4oCi
4oCi4oCi4oCiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVs
ZC12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12
YWx1ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwN2RlNWJkMTM1YTYuLjAw
MDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxk
LXZhbHVlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRt
bD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IGlkPSJib2R5Ij4KLQotPGlucHV0IHR5cGU9
InBhc3N3b3JkIiBpZD0icGFzcyIgdmFsdWU9InRlc3QiPgotCi08cCBpZD0iZGVzY3JpcHRpb24i
PjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotCi08c2NyaXB0PgotCi0gICAgZGVzY3Jp
cHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUgQVggZXhwb3NlZCB2YWx1ZSBvZiBhIHBhc3N3b3Jk
IGZpZWxkIGlzIHRoZSByZW5kZXJlZCB0ZXh0LiIpOwotCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcikKLSAgICAgICAgZGVidWcoIlBhc3N3b3JkIGZpZWxkOiAiICsgYWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwYXNzIikuc3RyaW5n
VmFsdWUpOwotICAgIGVsc2UKLSAgICAgICAgdGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGRlcGVuZHMg
b24gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIsIHBsZWFzZSB1c2UgcnVuLXdlYmtpdC10ZXN0cyB0
byBydW4gaXQuIik7Ci0gICAgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+
Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkv
c2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAuLmJiODZiZDQwNDZlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEzIEBACitUaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2Ygc2Vj
dXJlIGlucHV0cyBpcyB0aGUgcmVuZGVyZWQgKGFuZCB0aGVyZWZvcmUgY2Vuc29yZWQpIHRleHQu
CisKK1Bhc3N3b3JkIGZpZWxkIHZhbHVlOiBBWFZhbHVlOiDigKLigKLigKLigKIKKyNhdXRvZmls
bC1pbnB1dCB2YWx1ZSBiZWZvcmUgYmVpbmcgb2JzY3VyZWQ6IEFYVmFsdWU6IGZvbworTWFraW5n
ICNhdXRvZmlsbC1pbnB1dCBvYnNjdXJlZC4KKyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBi
ZWluZyBvYnNjdXJlZDogQVhWYWx1ZTog4oCi4oCi4oCiCitNYWtpbmcgI2F1dG9maWxsLWlucHV0
IHZpZXdhYmxlLgorI2F1dG9maWxsLWlucHV0IHZhbHVlIGFmdGVyIGJlaW5nIG1hZGUgdmlld2Fi
bGU6IEFYVmFsdWU6IGZvbworCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1
cmUtZmllbGQtdmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZp
ZWxkLXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4x
NGQ1Mzg4OWYzN2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5
L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBIVE1M
IFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKworPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0icGFzc3dvcmQtaW5wdXQiIHZhbHVl
PSJ0ZXN0Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iYXV0b2ZpbGwtaW5wdXQiIHZhbHVlPSJm
b28iPgorCis8c2NyaXB0PgordmFyIG91dHB1dCA9ICJUaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4
cG9zZWQgdmFsdWUgb2Ygc2VjdXJlIGlucHV0cyBpcyB0aGUgcmVuZGVyZWQgKGFuZCB0aGVyZWZv
cmUgY2Vuc29yZWQpIHRleHQuXG5cbiI7CisKK2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBh
dXRvZmlsbElucHV0ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKCJhdXRvZmlsbC1pbnB1dCIpOworICAgIGxldCBsYXN0QXV0b2ZpbGxWYWx1ZSA9IGF1dG9m
aWxsSW5wdXQuc3RyaW5nVmFsdWU7CisgICAgb3V0cHV0ICs9IGBQYXNzd29yZCBmaWVsZCB2YWx1
ZTogJHthY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBhc3N3
b3JkLWlucHV0Iikuc3RyaW5nVmFsdWV9XG5gOworICAgIG91dHB1dCArPSBgI2F1dG9maWxsLWlu
cHV0IHZhbHVlIGJlZm9yZSBiZWluZyBvYnNjdXJlZDogJHtsYXN0QXV0b2ZpbGxWYWx1ZX1cbmA7
CisKKyAgICBvdXRwdXQgKz0gIk1ha2luZyAjYXV0b2ZpbGwtaW5wdXQgb2JzY3VyZWQuXG4iOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QXV0b0ZpbGxlZEFuZE9ic2N1cmVkKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhdXRvZmlsbC1pbnB1dCIpLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGFz
eW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IGxhc3RBdXRvZmls
bFZhbHVlICE9PSBhdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgbGFzdEF1dG9m
aWxsVmFsdWUgPSBhdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlOworICAgICAgICBvdXRwdXQgKz0g
YCNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBiZWluZyBvYnNjdXJlZDogJHthdXRvZmlsbElu
cHV0LnN0cmluZ1ZhbHVlfVxuYDsKKworICAgICAgICBvdXRwdXQgKz0gIk1ha2luZyAjYXV0b2Zp
bGwtaW5wdXQgdmlld2FibGUuXG4iOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEF1dG9G
aWxsZWRBbmRPYnNjdXJlZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQi
KSwgZmFsc2UpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRWaWV3
YWJsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKSwgdHJ1ZSk7Cisg
ICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4gbGFzdEF1dG9maWxsVmFsdWUgIT09IGF1dG9maWxs
SW5wdXQuc3RyaW5nVmFsdWUpOworICAgICAgICBvdXRwdXQgKz0gYCNhdXRvZmlsbC1pbnB1dCB2
YWx1ZSBhZnRlciBiZWluZyBtYWRlIHZpZXdhYmxlOiAke2F1dG9maWxsSW5wdXQuc3RyaW5nVmFs
dWV9XG5gOworCisgICAgICAgIGRlYnVnKG91dHB1dCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgp
OworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>
<flag name="commit-queue"
          id="493326"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465296</attachid>
            <date>2023-03-04 12:14:27 -0800</date>
            <delta_ts>2023-03-04 12:51:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230304121426.patch</filename>
            <type>text/plain</type>
            <size>35429</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA1ZGQyMzRiMDJlOTFiNzU2ZGY1ZWRhODBmMTg4MWNmYzVlYmU3MDU2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFjY2Vzc2liaWxpdHkgQVBJcyBzaG91bGQgbm90IGV4
cG9zZSBzZWN1cmUgdGV4dCBvYnNjdXJlZCBieSBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxs
ZWRBbmRPYnNjdXJlZC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjaGFuZ2luZyBgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkYCB0byBhbHNvIGNoZWNrIGZvcgpgSFRNTElu
cHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWRgLiBUaGlzIG1ldGhvZCBhbmQgYWxs
IHNpbWlsYXJseSBuYW1lZCBtZXRob2RzIGhhdmUKYmVlbiByZW5hbWVkIHRvIHVzZSAic2VjdXJl
IiBpbnN0ZWFkIG9mICJwYXNzd29yZCIgKGUuZy4gYGlzU2VjdXJlRmllbGRgIGluc3RlYWQgb2Yg
YGlzUGFzc3dvcmRGaWVsZGApCnRvIGVuY2Fwc3VsYXRlIHRoZSB3aWRlbmluZyBvZiB0aGlzIGFi
c3RyYWN0aW9uLgoKTmV3IHRlc3RjYXNlcyBhZGRlZCB0byBhY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS5odG1sIHRvIHRlc3QgdGhpcyBiZWhhdmlvci4KCiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sOiBSZW1v
dmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25UZXh0U2Vj
dXJpdHlDaGFuZ2VkKToKKFdlYkNvcmU6OmlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJl
RmllbGQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2Vy
RGF0YUZvclZpc2libGVQb3NpdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvckZpcnN0UG9zaXRpb25JblRleHRDb250cm9sKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblRleHRT
ZWN1cml0eUNoYW5nZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
U2VjdXJlRmllbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c1JlYWRPbmx5IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omluc2VydFRleHQpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWlu
ZWRCeVNlY3VyZUZpZWxkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnNlY3VyZUZpZWxkVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCBjb25zdCk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQgY29uc3QpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdl
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxk
VmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFzc3dv
cmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUZXh0RW50cnlUcmFpdHNdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVZhbHVlXSk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CihXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgooLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CiogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CihXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NlY3VyZUZp
ZWxkIGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cCAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjQgKysrKysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oICB8ICAzICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAgfCAxMSArKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuaCAgIHwgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICAgICB8IDEwICsrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggICAgICAgfCAgOCArKy0tCiAuLi4vQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oICAg
ICAgICAgICAgfCAgNCArLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgICAg
ICAgICAgIHwgMTggKysrKy0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCB8ICAyICstCiAuLi4vaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0gICAg
ICAgICAgICAgfCAgNCArLQogLi4uL2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklP
Uy5tbSAgIHwgMTAgKystLS0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAg
ICAgICAgICB8ICAyICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCAgICAg
ICAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAg
ICAgIHwgIDIgKy0KIC4uLi9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSAgICAgICAgICAg
ICB8ICAyICstCiAuLi4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAg
fCAxMCArKy0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAg
IHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oICAgICAgICB8
ICAxICsKIC4uLi9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgICAgICAgICB8IDEx
IC0tLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sICAgfCAy
NyAtLS0tLS0tLS0tLS0KIC4uLi9zZWN1cmUtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0ICAgICAg
ICAgICB8IDEzICsrKysrKwogLi4uL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLmh0
bWwgICAgIHwgNDMgKysrKysrKysrKysrKysrKysrKwogMjMgZmlsZXMgY2hhbmdlZCwgMTI1IGlu
c2VydGlvbnMoKyksIDkwIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CiBkZWxl
dGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12
YWx1ZS5odG1sCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9z
ZWN1cmUtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbAoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggYTM1N2U2YmM5OWI2Li5iMmJjZTgw
NjU4NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC02
MTMsNiArNjEzLDkgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0s
IEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uIG5vdGlmaWMKICAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWFRleHRDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwg
IkFYVGV4dENoYW5nZWQiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uOjpBWFRleHRTZWN1cml0eUNoYW5nZWQ6CisgICAgICAgIHN0cmVhbSA8
PCAiQVhUZXh0U2VjdXJpdHlDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhFbGVtZW50QnVzeUNoYW5nZWQ6CiAgICAgICAg
IHN0cmVhbSA8PCAiQVhFbGVtZW50QnVzeUNoYW5nZWQiOwogICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGFiZDgw
YjUyYTU2My4uZGJkMTQ3NzE1Zjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTE0NjYsNiArMTQ2NiwxNSBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAgICAgaGFuZGxlTWVudUl0ZW1T
ZWxlY3RlZChub2RlKTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpvblRleHRTZWN1cml0eUNo
YW5nZWQoSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50KQoreworI2lmIEVOQUJMRShBQ0NF
U1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCisgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKGdldCgmaW5w
dXRFbGVtZW50KSwgQVhUZXh0U2VjdXJpdHlDaGFuZ2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGlucHV0RWxlbWVudCk7CisjZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpvblRp
dGxlQ2hhbmdlKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdl
dCgmZG9jdW1lbnQpLCBudWxscHRyLCBBWFRleHRDaGFuZ2VkKTsKQEAgLTE2MDYsOSArMTYxNSw5
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2V0SXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uKGJvb2wg
aXNTeW5jaHJvbml6aW5nKQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgYm9vbCBp
c1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2Jq
ZWN0KiBvYmplY3QpCitzdGF0aWMgYm9vbCBpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3Vy
ZUZpZWxkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gb2JqZWN0
ICYmIChvYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBh
c3N3b3JkRmllbGQoKSk7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1NlY3VyZUZp
ZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQoKSk7CiB9CiAjZW5kaWYK
IApAQCAtMTY2OCw3ICsxNjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKICNpZiBQTEFU
Rk9STShDT0NPQSkgfHwgVVNFKEFUU1BJKQogICAgIGlmIChvYmplY3QpIHsKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKG9iamVjdCkpCisgICAgICAgIGlmIChpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNl
Y3VyZUZpZWxkKG9iamVjdCkpCiAgICAgICAgICAgICByZXR1cm47CiAjZW5kaWYKICAgICAgICAg
aWYgKGF1dG8gb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpKQpA
QCAtMTc3Miw3ICsxNzgxLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2Vt
ZW50Tm90aWZpY2F0aW9uRm9yVGV4dENvbnRyb2woSFRNTFRleHRGb3JtQ28KIGJvb2wgQVhPYmpl
Y3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJp
bGl0eU9iamVjdCogb2JqZWN0KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmICghaXNQ
YXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICBpZiAo
IWlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJlRmllbGQob2JqZWN0KSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVj
dCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpOwpAQCAtMjUzMiw3ICsyNTQxLDcgQEAgVGV4
dE1hcmtlckRhdGEgQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JDaGFyYWN0ZXJPZmZz
ZXQoY29uc3QgQ2hhcmFjdGVyT2YKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50PihjaGFyYWN0ZXJPZmZzZXQubm9kZSkKLSAgICAgICAgJiYgZG93bmNh
c3Q8SFRNTElucHV0RWxlbWVudD4oKmNoYXJhY3Rlck9mZnNldC5ub2RlKS5pc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICAgICAgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmNoYXJhY3Rlck9m
ZnNldC5ub2RlKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiB7ICp0aGlzLCB7IH0s
IHRydWUgfTsKIAogICAgIHNldE5vZGVJblVzZShjaGFyYWN0ZXJPZmZzZXQubm9kZSk7CkBAIC0y
ODAxLDcgKzI4MTAsNyBAQCBzdGQ6Om9wdGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENh
Y2hlOjp0ZXh0TWFya2VyRGF0YUZvclZpc2libGVQb3NpdGlvbihjbwogICAgIGlmICghbm9kZSkK
ICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmIChpczxIVE1MSW5wdXRFbGVt
ZW50Pihub2RlKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNQYXNzd29y
ZEZpZWxkKCkpCisgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICAvLyBJZiB0aGUgdmlzaWJsZSBwb3NpdGlvbiBoYXMgYW4g
YW5jaG9yIHR5cGUgcmVmZXJyaW5nIHRvIGEgbm9kZSBvdGhlciB0aGFuIHRoZSBhbmNob3JlZCBu
b2RlLCB3ZSBzaG91bGQKQEAgLTI4MjEsNyArMjgzMCw3IEBAIHN0ZDo6b3B0aW9uYWw8VGV4dE1h
cmtlckRhdGE+IEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yVmlzaWJsZVBvc2l0aW9u
KGNvCiAvLyBUaGlzIGZ1bmN0aW9uIGV4aXN0cyBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlv
biB0byBhdm9pZCBhIHN5bmNocm9ub3VzIGxheW91dC4KIHN0ZDo6b3B0aW9uYWw8VGV4dE1hcmtl
ckRhdGE+IEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yRmlyc3RQb3NpdGlvbkluVGV4
dENvbnRyb2woSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sKQogewotICAg
IGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pih0ZXh0Q29udHJvbCkgJiYgZG93bmNhc3Q8SFRNTElu
cHV0RWxlbWVudD4odGV4dENvbnRyb2wpLmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChpczxI
VE1MSW5wdXRFbGVtZW50Pih0ZXh0Q29udHJvbCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVu
dD4odGV4dENvbnRyb2wpLmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKIAogICAgIGF1dG8qIGNhY2hlID0gdGV4dENvbnRyb2wuZG9jdW1lbnQoKS5heE9iamVj
dENhY2hlKCk7CkBAIC0zNzQ5LDYgKzM3NTgsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQog
ICAgICAgICBjYXNlIEFYUm93U3BhbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFRleHRDaGFuZ2VkOgorICAgICAgICBjYXNl
IEFYVGV4dFNlY3VyaXR5Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDoKICAg
ICAgICAgICAgIHVwZGF0ZU5vZGUobm90aWZpY2F0aW9uLmZpcnN0KTsKICAgICAgICAgICAgIGJy
ZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRl
eCA0MDVkZTY3NzA0ZTYuLjUyMjhmZGEwZTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKQEAgLTE3OSw2ICsxNzksNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgb25G
b2N1c0NoYW5nZShOb2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwog
ICAgIHZvaWQgb25TZWxlY3RlZENoYW5nZWQoTm9kZSopOworICAgIHZvaWQgb25UZXh0U2VjdXJp
dHlDaGFuZ2VkKEhUTUxJbnB1dEVsZW1lbnQmKTsKICAgICB2b2lkIG9uVGl0bGVDaGFuZ2UoRG9j
dW1lbnQmKTsKICAgICB2b2lkIG9uVmFsaWRpdHlDaGFuZ2UoRWxlbWVudCYpOwogICAgIHZvaWQg
dmFsdWVDaGFuZ2VkKEVsZW1lbnQqKTsKQEAgLTM1Niw2ICszNTcsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIEFYUmVxdWlyZWRTdGF0dXNDaGFuZ2VkLAogICAgICAgICBBWFNvcnREaXJlY3Rpb25DaGFu
Z2VkLAogICAgICAgICBBWFRleHRDaGFuZ2VkLAorICAgICAgICBBWFRleHRTZWN1cml0eUNoYW5n
ZWQsCiAgICAgICAgIEFYRWxlbWVudEJ1c3lDaGFuZ2VkLAogICAgICAgICBBWERyYWdnaW5nU3Rh
cnRlZCwKICAgICAgICAgQVhEcmFnZ2luZ0VuZGVkLApAQCAtNjY5LDYgKzY3MSw3IEBAIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9kZSopIHsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCos
IFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5D
aGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6Om9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2Fj
aGU6Om9uVGV4dFNlY3VyaXR5Q2hhbmdlZChIVE1MSW5wdXRFbGVtZW50JikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblRpdGxlQ2hhbmdlKERvY3VtZW50JikgeyB9CiBpbmxpbmUg
dm9pZCBBWE9iamVjdENhY2hlOjpvblZhbGlkaXR5Q2hhbmdlKEVsZW1lbnQmKSB7IH0KIGlubGlu
ZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnZhbHVlQ2hhbmdlZChFbGVtZW50KikgeyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3QuY3BwCmluZGV4IDdmYTQ3MmE5ODBkYi4uNmFhYzNkMjgwMTBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNw
cApAQCAtNjM5LDE2ICs2MzksMTMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNO
YXRpdmVJbWFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNTZWN1cmVGaWVsZCgpIGNvbnN0CiB7Ci0gICAgYXV0byogbm9kZSA9
IHRoaXMtPm5vZGUoKTsKLSAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKQorICAg
IFJlZlB0ciBpbnB1dCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlKCkp
OworICAgIGlmICghaW5wdXQgfHwgYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGFyaWFSb2xl
QXR0cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSku
aXNQYXNzd29yZEZpZWxkKCk7CisgICAgcmV0dXJuIGlucHV0LT5pc1Bhc3N3b3JkRmllbGQoKSB8
fCBpbnB1dC0+aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQoKTsKIH0KIAogYm9vbCBBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6aXNJbnB1dEltYWdlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAppbmRleCA5MzNm
MWY1MjdjODUuLjNiZGViZWUxNTdiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaApAQCAtNjksNyArNjksNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc011bHRpU2VsZWN0YWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGJvb2wgaXNOYXRpdmVJbWFnZSgpIGNvbnN0OwogICAgIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJv
bCgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgYm9vbCBpc1NlY3VyZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc1Byb2dyZXNzSW5kaWNhdG9yKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1NlYXJj
aEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1NsaWRlcigpIGNvbnN0IG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAKaW5kZXggZmY0MjI1NjU3ZmYxLi42N2Y0YjY2ZDczYjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApA
QCAtMTY5Myw3ICsxNjkzLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1Jl
YWRPbmx5KCkgY29uc3QKICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dp
dGNoCiAgICAgICAgIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRGaWVsZAogICAg
ICAgICB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZAotICAgICAgICB8fCBp
c1Bhc3N3b3JkRmllbGQoKTsKKyAgICAgICAgfHwgaXNTZWN1cmVGaWVsZCgpOwogfQogCiBTdHJp
bmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSgpIGNvbnN0CkBAIC0yMzMwLDgg
KzIzMzAsOCBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6Omluc2VydFRleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvJiBlbGVtZW50ID0g
ZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUoKSk7Ci0gICAgLy8gT25seSB0cnkgdG8gaW5zZXJ0IHRl
eHQgaWYgdGhlIGZpZWxkIGlzIGluIGVkaXRpbmcgbW9kZSAoZXhjbHVkaW5nIHBhc3N3b3JkIGZp
ZWxkcywgd2hpY2ggd2UgZG8gc3RpbGwgd2FudCB0byB0cnkgdG8gaW5zZXJ0IGludG8pLgotICAg
IGlmICghaXNQYXNzd29yZEZpZWxkKCkgJiYgIWVsZW1lbnQuc2hvdWxkVXNlSW5wdXRNZXRob2Qo
KSkKKyAgICAvLyBPbmx5IHRyeSB0byBpbnNlcnQgdGV4dCBpZiB0aGUgZmllbGQgaXMgaW4gZWRp
dGluZyBtb2RlIChleGNsdWRpbmcgc2VjdXJlIGZpZWxkcywgd2hpY2ggd2UgZG8gc3RpbGwgd2Fu
dCB0byB0cnkgdG8gaW5zZXJ0IGludG8pLgorICAgIGlmICghaXNTZWN1cmVGaWVsZCgpICYmICFl
bGVtZW50LnNob3VsZFVzZUlucHV0TWV0aG9kKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIC8vIFVzZSBFZGl0b3I6Omluc2VydFRleHQgdG8gbWltaWMgdHlwaW5nIGludG8gdGhlIGZp
ZWxkLgpAQCAtMzg2OCw3ICszODY4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc091
dHB1dCgpIGNvbnN0CiAgICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShvdXRwdXRU
YWcpOwogfQogICAgIAotYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVk
QnlTZWN1cmVGaWVsZCgpIGNvbnN0CiB7CiAgICAgTm9kZSogbm9kZSA9IHRoaXMtPm5vZGUoKTsK
ICAgICBpZiAoIW5vZGUpCkBAIC0zODc4LDcgKzM4NzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgRWxlbWVudCogZWxlbWVudCA9IG5vZGUtPnNoYWRvd0hvc3QoKTsKLSAg
ICByZXR1cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElu
cHV0RWxlbWVudD4oKmVsZW1lbnQpLmlzUGFzc3dvcmRGaWVsZCgpOworICAgIHJldHVybiBpczxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCkuaXNTZWN1cmVGaWVsZCgpOwogfQogICAgIAogQWNjZXNzaWJpbGl0eU9iamVjdCog
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VsZWN0ZWRMaXN0SXRlbSgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDAzN2U3YWVk
YmM3Zi4uMDI5NGRmNGViZTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTIzLDggKzEyMyw4IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgYm9vbCBpc0hlYWRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsg
fQogICAgIGJvb2wgaXNMaW5rKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9
Ci0gICAgYm9vbCBpc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIGJvb2wg
aXNTZWN1cmVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9v
bCBpc0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQoKSBjb25zdDsKICAgICBib29sIGlzTmF0aXZlVGV4
dENvbnRyb2woKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwg
Ym9vbCBpc1NlYXJjaEZpZWxkKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlz
TGlzdEJveE9wdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC02MDUs
NyArNjA1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgU3RyaW5nIGRlc2NyaXB0aW9uRm9yTVNB
QSgpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9CiAgICAgdmlydHVhbCBBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCk7IH0KIAot
ICAgIHZpcnR1YWwgU3RyaW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIFN0
cmluZygpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgc2VjdXJlRmllbGRWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIFN0cmluZygpOyB9CiAgICAgYm9vbCBpc1ZhbHVlQXV0b2ZpbGxBdmFpbGFibGUoKSBj
b25zdCBvdmVycmlkZTsKICAgICBBdXRvRmlsbEJ1dHRvblR5cGUgdmFsdWVBdXRvZmlsbEJ1dHRv
blR5cGUoKSBjb25zdCBvdmVycmlkZTsKIApAQCAtNzI3LDcgKzcyNyw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBpbnQgYWNjZXNzaWJpbGl0eVBh
c3N3b3JkRmllbGRMZW5ndGgoKSBvdmVycmlkZTsKKyAgICBpbnQgYWNjZXNzaWJpbGl0eVNlY3Vy
ZUZpZWxkTGVuZ3RoKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNUb3VjaEV2ZW50TGlzdGVuZXIo
KSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzSW5wdXRUeXBlUG9wdXBCdXR0b24oKSBjb25z
dCBvdmVycmlkZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCBhODM2MzkyNGIy
MjMuLjg1ZGNmMjlhYmNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTg1MCw3ICs4NTAs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0ltYWdlKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVl
KCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOyB9CiAgICAgYm9vbCBpc0ltYWdlTWFwKCkg
Y29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFw
OyB9CiAgICAgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OlZpZGVvOyB9Ci0gICAgdmlydHVhbCBib29sIGlzUGFzc3dvcmRGaWVs
ZCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTZWN1cmVGaWVsZCgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0ID0gMDsKICAg
ICBib29sIGlzV2ViQXJlYSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpXZWJBcmVhOyB9CiAgICAgYm9vbCBpc0NoZWNrYm94KCkgY29uc3QgeyByZXR1
cm4gcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrQm94OyB9CkBAIC0xMzcx
LDcgKzEzNzEsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgdmlydHVhbCBpbnQgYWNjZXNzaWJpbGl0eVBhc3N3b3JkRmllbGRMZW5ndGgoKSA9IDA7
CisgICAgdmlydHVhbCBpbnQgYWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKCkgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBoYXNUb3VjaEV2ZW50TGlzdGVuZXIoKSBjb25zdCA9IDA7CiAgICAg
dmlydHVhbCBib29sIGlzSW5wdXRUeXBlUG9wdXBCdXR0b24oKSBjb25zdCA9IDA7CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGM3MmIyNTJlNTY5MC4uZWQ5ZTZiMjdjNzY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKQEAgLTc0OCw4ICs3NDgsOCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUoKSBjb25zdAogICAgIGlmICghbV9yZW5kZXJlcikK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQot
ICAgICAgICByZXR1cm4gcGFzc3dvcmRGaWVsZFZhbHVlKCk7CisgICAgaWYgKGlzU2VjdXJlRmll
bGQoKSkKKyAgICAgICAgcmV0dXJuIHNlY3VyZUZpZWxkVmFsdWUoKTsKIAogICAgIGlmIChpc0FS
SUFTdGF0aWNUZXh0KCkpIHsKICAgICAgICAgU3RyaW5nIHN0YXRpY1RleHQgPSB0ZXh0KCk7CkBA
IC0xNTcwLDggKzE1NzAsOCBAQCBpbnQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGF5b3V0
Q291bnQoKSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCgp
IGNvbnN0CiB7Ci0gICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQotICAgICAgICByZXR1cm4gcGFz
c3dvcmRGaWVsZFZhbHVlKCk7CisgICAgaWYgKGlzU2VjdXJlRmllbGQoKSkKKyAgICAgICAgcmV0
dXJuIHNlY3VyZUZpZWxkVmFsdWUoKTsKICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OnRleHQoKTsKIH0KIApAQCAtMTU5Niw3ICsxNTk2LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dCgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4
dENvbnRyb2woKSk7CiAgICAgCi0gICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChp
c1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsgLy8gbmVlZCB0byByZXR1
cm4gc29tZXRoaW5nIGRpc3RpbmN0IGZyb20gZW1wdHkgc3RyaW5nCiAgICAgCiAgICAgaWYgKGlz
TmF0aXZlVGV4dENvbnRyb2woKSkgewpAQCAtMTYyOCw3ICsxNjI4LDcgQEAgUGxhaW5UZXh0UmFu
Z2UgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdAog
ewogICAgIEFTU0VSVChpc1RleHRDb250cm9sKCkpOwogCi0gICAgaWYgKGlzUGFzc3dvcmRGaWVs
ZCgpKQorICAgIGlmIChpc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBQbGFpblRleHRS
YW5nZSgpOwogCiAgICAgLy8gVXNlIHRoZSB0ZXh0IGNvbnRyb2wgbmF0aXZlIHJhbmdlIGlmIGl0
J3MgYSBuYXRpdmUgb2JqZWN0LgpAQCAtMjQ0OSw3ICsyNDQ5LDcgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhTdHJpbmdGb3JSYW5nZShjb25zdCBQbGFpblRleHRSYW5n
ZSYgcmFuZ2UKICAgICBpZiAoIWlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOwogICAgIAotICAgIFN0cmluZyBlbGVtZW50VGV4dCA9IGlzUGFzc3dvcmRGaWVsZCgpID8g
cGFzc3dvcmRGaWVsZFZhbHVlKCkgOiB0ZXh0KCk7CisgICAgU3RyaW5nIGVsZW1lbnRUZXh0ID0g
aXNTZWN1cmVGaWVsZCgpID8gc2VjdXJlRmllbGRWYWx1ZSgpIDogdGV4dCgpOwogICAgIHJldHVy
biBlbGVtZW50VGV4dC5zdWJzdHJpbmcocmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCk7CiB9CiAK
QEAgLTM1MjQsOSArMzUyNCw5IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OnJvbGVWYWx1ZUZvck1TQUEoKSBjb25zdAogICAgIHJldHVybiBtX3JvbGVGb3JN
U0FBOwogfQogCi1TdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFzc3dvcmRGaWVs
ZFZhbHVlKCkgY29uc3QKK1N0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWN1cmVG
aWVsZFZhbHVlKCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaXNQYXNzd29yZEZpZWxkKCkpOworICAg
IEFTU0VSVChpc1NlY3VyZUZpZWxkKCkpOwogCiAgICAgLy8gTG9vayBmb3IgdGhlIFJlbmRlclRl
eHQgb2JqZWN0IGluIHRoZSBSZW5kZXJPYmplY3QgdHJlZSBmb3IgdGhpcyBpbnB1dCBmaWVsZC4K
ICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZSgpLT5yZW5kZXJlcigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3QuaAppbmRleCA2MzU3NTA1MDRhNTguLmVlMzhiM2UxNDFkNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmgKQEAgLTE3OSw3ICsxNzksNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGRlc2NyaXB0aW9uRm9y
TVNBQSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZUZv
ck1TQUEoKSBjb25zdCBvdmVycmlkZTsKIAotICAgIFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUo
KSBjb25zdCBvdmVycmlkZTsKKyAgICBTdHJpbmcgc2VjdXJlRmllbGRWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZvaWQgdGl0bGVFbGVtZW50VGV4dChWZWN0b3I8QWNjZXNzaWJpbGl0eVRl
eHQ+JikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCmlu
ZGV4IGQxMGEyZjczNzliMS4uZTg0NDg5MGUyNjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KQEAg
LTgyLDkgKzgyLDkgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvdmVycmlkZUF0dGFjaG1l
bnRQYXJlbnQoQVhDb3JlT2JqZWN0KikKIH0KICAgICAKIC8vIEluIGlQaG9uZSBvbmx5IGNvZGUg
Zm9yIG5vdy4gSXQncyBkZWJhdGVhYmxlIHdoZXRoZXIgdGhpcyBpcyBkZXNpcmVkIG9uIGFsbCBw
bGF0Zm9ybXMuCi1pbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBhc3N3b3Jk
RmllbGRMZW5ndGgoKQoraW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlTZWN1
cmVGaWVsZExlbmd0aCgpCiB7Ci0gICAgaWYgKCFpc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAo
IWlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJPYmplY3QgPSBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PigqdGhpcyku
cmVuZGVyZXIoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0K
aW5kZXggZGUxYjE0NDFmZmRlLi5lOTJiMmI2NDY1ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVySU9TLm1tCkBAIC04MTQsNyArODE0LDcgQEAgLSAodWludDY0X3QpX2FjY2Vz
c2liaWxpdHlUZXh0RW50cnlUcmFpdHMKICAgICBhdXRvKiBiYWNraW5nT2JqZWN0ID0gc2VsZi5h
eEJhY2tpbmdPYmplY3Q7CiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzRm9jdXNlZCgpKQogICAg
ICAgICB0cmFpdHMgfD0gKFtzZWxmIF9heEhhc1RleHRDdXJzb3JUcmFpdF0gfCBbc2VsZiBfYXhU
ZXh0T3BlcmF0aW9uc0F2YWlsYWJsZVRyYWl0XSk7Ci0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlz
UGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkp
CiAgICAgICAgIHRyYWl0cyB8PSBbc2VsZiBfYXhTZWN1cmVUZXh0RmllbGRUcmFpdF07CiAKICAg
ICBzd2l0Y2ggKGJhY2tpbmdPYmplY3QtPnJvbGVWYWx1ZSgpKSB7CkBAIC0xMTc2LDcgKzExNzYs
NyBAQCAtIChCT09MKV9hY2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkCiAgICAgaWYg
KCFbc2VsZiBfcHJlcGFyZUFjY2Vzc2liaWxpdHlDYWxsXSkKICAgICAgICAgcmV0dXJuIE5POwog
ICAgIAotICAgIGlmICghc2VsZi5heEJhY2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQor
ICAgIGlmICghc2VsZi5heEJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAg
cmV0dXJuIE5POwogICAgIAogICAgIHJldHVybiBzZWxmLmF4QmFja2luZ09iamVjdC0+dmFsdWVB
dXRvZmlsbEJ1dHRvblR5cGUoKSA9PSBBdXRvRmlsbEJ1dHRvblR5cGU6OlN0cm9uZ1Bhc3N3b3Jk
OwpAQCAtMTU2MywxMCArMTU2MywxMCBAQCAtIChOU1N0cmluZyAqKWFjY2Vzc2liaWxpdHlWYWx1
ZQogICAgIH0KIAogICAgIC8vIHJkYXI6Ly84MTMxMzg4IFdlYktpdCBzaG91bGQgZXhwb3NlIHRo
ZSBzYW1lIGluZm8gYXMgVUlLaXQgZm9yIGl0cyBwYXNzd29yZCBmaWVsZHMuCi0gICAgaWYgKGJh
Y2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpICYmICFbc2VsZiBfYWNjZXNzaWJpbGl0eUlz
U3Ryb25nUGFzc3dvcmRGaWVsZF0pIHsKLSAgICAgICAgaW50IHBhc3N3b3JkTGVuZ3RoID0gYmFj
a2luZ09iamVjdC0+YWNjZXNzaWJpbGl0eVBhc3N3b3JkRmllbGRMZW5ndGgoKTsKKyAgICBpZiAo
YmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpICYmICFbc2VsZiBfYWNjZXNzaWJpbGl0eUlz
U3Ryb25nUGFzc3dvcmRGaWVsZF0pIHsKKyAgICAgICAgaW50IHNlY3VyZVRleHRMZW5ndGggPSBi
YWNraW5nT2JqZWN0LT5hY2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgoKTsKICAgICAgICAg
TlNNdXRhYmxlU3RyaW5nKiBzdHJpbmcgPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ107Ci0gICAg
ICAgIGZvciAoaW50IGsgPSAwOyBrIDwgcGFzc3dvcmRMZW5ndGg7ICsraykKKyAgICAgICAgZm9y
IChpbnQgayA9IDA7IGsgPCBzZWN1cmVUZXh0TGVuZ3RoOyArK2spCiAgICAgICAgICAgICBbc3Ry
aW5nIGFwcGVuZFN0cmluZzpAIuKAoiJdOwogICAgICAgICByZXR1cm4gc3RyaW5nOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggZjkzMzU3ZTZhNWIzLi44MDRlMDUzNTJj
OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
aXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0xMDIsMTEgKzEwMiwxMSBAQCB2
b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKGNvbnN0IFJlZjxBY2Nl
c3NpYmlsaXR5T2JqZWN0PiYgYXhPYgogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJ
c01lbnVMaXN0UG9wdXAsIG9iamVjdC5pc01lbnVMaXN0UG9wdXAoKSk7CiAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OklzTWVudVJlbGF0ZWQsIG9iamVjdC5pc01lbnVSZWxhdGVkKCkp
OwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc011bHRpU2VsZWN0YWJsZSwgb2Jq
ZWN0LmlzTXVsdGlTZWxlY3RhYmxlKCkpOwotICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpJc1Bhc3N3b3JkRmllbGQsIG9iamVjdC5pc1Bhc3N3b3JkRmllbGQoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzUHJlc3NlZCwgb2JqZWN0LmlzUHJlc3NlZCgpKTsKICAg
ICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNQcm9ncmVzc0luZGljYXRvciwgb2JqZWN0
LmlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OklzUmVxdWlyZWQsIG9iamVjdC5pc1JlcXVpcmVkKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpJc1Njcm9sbGJhciwgb2JqZWN0LmlzU2Nyb2xsYmFyKCkpOworICAgIHNldFBy
b3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1NlY3VyZUZpZWxkLCBvYmplY3QuaXNTZWN1cmVGaWVs
ZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTZWxlY3RlZCwgb2JqZWN0
LmlzU2VsZWN0ZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzU2xpZGVy
LCBvYmplY3QuaXNTbGlkZXIoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Oklz
U3R5bGVGb3JtYXRHcm91cCwgb2JqZWN0LmlzU3R5bGVGb3JtYXRHcm91cCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRP
YmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuaAppbmRleCAyMjUwMTA4Y2I2ZWQuLmNhNjNkZjlmYWE0YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuaApAQCAtMTE5LDcgKzExOSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBp
c0hlYWRpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OklzSGVhZGluZyk7IH0KICAgICBib29sIGlzTGFuZG1hcmsoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzTGFu
ZG1hcmspOyB9CiAgICAgYm9vbCBpc0xpbmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29s
QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzTGluayk7IH0KLSAgICBib29sIGlzUGFz
c3dvcmRGaWVsZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShB
WFByb3BlcnR5TmFtZTo6SXNQYXNzd29yZEZpZWxkKTsgfQorICAgIGJvb2wgaXNTZWN1cmVGaWVs
ZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5
TmFtZTo6SXNTZWN1cmVGaWVsZCk7IH0KICAgICBib29sIGlzQXR0YWNobWVudCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBdHRh
Y2htZW50KTsgfQogICAgIGJvb2wgaXNNZW51UmVsYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNNZW51UmVsYXRlZCk7IH0K
ICAgICBib29sIGlzTWVudSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZTo6SXNNZW51KTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKaW5kZXgg
ZmEyNmIyNzM3MzQxLi4zNjM0MzYzOGRhZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApAQCAtMTY0
LDExICsxNjQsMTEgQEAgZW51bSBjbGFzcyBBWFByb3BlcnR5TmFtZSA6IHVpbnQxNl90IHsKICAg
ICBJc01lbnVMaXN0UG9wdXAsCiAgICAgSXNNZW51UmVsYXRlZCwKICAgICBJc011bHRpU2VsZWN0
YWJsZSwKLSAgICBJc1Bhc3N3b3JkRmllbGQsCiAgICAgSXNQcmVzc2VkLAogICAgIElzUHJvZ3Jl
c3NJbmRpY2F0b3IsCiAgICAgSXNSZXF1aXJlZCwKICAgICBJc1Njcm9sbGJhciwKKyAgICBJc1Nl
Y3VyZUZpZWxkLAogICAgIElzU2VsZWN0ZWQsCiAgICAgSXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSwK
ICAgICBJc1NsaWRlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IDVmYjAwYmQ5ZTg5NC4uNDFh
YjBhYzkxNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9B
Y2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KQEAgLTIyMCw3ICsyMjAsNyBAQCBTdHJp
bmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKIAogU3Ry
aW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiB7
Ci0gICAgaWYgKGlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChpc1NlY3VyZUZpZWxkKCkpCiAg
ICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTZWN1cmVUZXh0RmllbGRTdWJyb2xlOwogICAg
IGlmIChpc1NlYXJjaEZpZWxkKCkpCiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTZWFy
Y2hGaWVsZFN1YnJvbGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCmlu
ZGV4IGE0YzU1YmJkMjVmMi4uZjczZTFkZmMxY2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2Jq
ZWN0V3JhcHBlck1hYy5tbQpAQCAtMTExMSw3ICsxMTExLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9J
TVBMRU1FTlRBVElPTlNfRU5ECiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNz
aWJpbGl0eVVSTEF0dHJpYnV0ZV07CiAgICAgICAgIHJldHVybiB0ZW1wQXJyYXk7CiAgICAgfSgp
OwotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZCBwYXNzd29yZEZpZWxkQXR0cnMgPSBbXSB7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHNlY3VyZUZpZWxkQXR0cmlidXRlcyA9IFtdIHsKICAg
ICAgICAgYXV0byB0ZW1wQXJyYXkgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6YXR0cmlidXRlcy5nZXQoKS5nZXQoKV0pOwogICAgICAgICBbdGVtcEFycmF5
IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlUaXRsZVVJRWxlbWVudEF0dHJpYnV0ZV07CiAgICAg
ICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVJlcXVpcmVkQXR0cmlidXRl
XTsKQEAgLTExNjYsOCArMTE2Niw4IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05T
X0VORAogCiAgICAgTlNBcnJheSAqb2JqZWN0QXR0cmlidXRlcyA9IGF0dHJpYnV0ZXMuZ2V0KCku
Z2V0KCk7CiAKLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCi0gICAg
ICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBwYXNzd29yZEZpZWxkQXR0cnMuZ2V0KCkuZ2V0KCk7Cisg
ICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKKyAgICAgICAgb2JqZWN0QXR0
cmlidXRlcyA9IHNlY3VyZUZpZWxkQXR0cmlidXRlcy5nZXQoKS5nZXQoKTsKICAgICBlbHNlIGlm
IChiYWNraW5nT2JqZWN0LT5pc1dlYkFyZWEoKSkKICAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9
IHdlYkFyZWFBdHRycy5nZXQoKS5nZXQoKTsKICAgICBlbHNlIGlmIChiYWNraW5nT2JqZWN0LT5p
c1RleHRDb250cm9sKCkpCkBAIC0xNjY4LDcgKzE2NjgsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lN
UExFTUVOVEFUSU9OU19FTkQKICAgICB9CiAKICAgICBpZiAoW2F0dHJpYnV0ZU5hbWUgaXNFcXVh
bFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVZpc2libGVDaGFyYWN0ZXJSYW5nZUF0dHJpYnV0ZV0p
IHsKLSAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgICAg
ICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICAgICAgLy8gRklYTUU6IEdldCBhY3R1YWwgdmlzaWJsZSByYW5nZS4gPHJkYXI6
Ly9wcm9ibGVtLzQ3MTIxMDE+CiAgICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1RleHRDb250
cm9sKCkpCkBAIC0yNDc3LDcgKzI0NzcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFU
SU9OU19FTkQKICAgICAgICAgd2ViQXJlYVBhcmFtQXR0cnMgPSBbW05TQXJyYXkgYWxsb2NdIGlu
aXRXaXRoQXJyYXk6dGVtcEFycmF5LmdldCgpXTsKICAgICB9CiAKLSAgICBpZiAoYmFja2luZ09i
amVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJl
RmllbGQoKSkKICAgICAgICAgcmV0dXJuIEBbIE5TQWNjZXNzaWJpbGl0eVVJRWxlbWVudHNGb3JT
ZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVkQXR0cmlidXRlIF07CiAKICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNUZXh0Q29udHJvbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggMzEwNGZjMGJlYTAzLi40YzI2MGZmZmU1NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTQwMCw2ICsxNDAwLDkgQEAgdm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpzZXRBdXRvRmlsbGVkQW5kT2JzY3VyZWQoYm9vbCBhdXRvRmlsbGVk
QW5kT2JzY3VyZWQpCiAKICAgICBTdHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24g
c3R5bGVJbnZhbGlkYXRpb24oKnRoaXMsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0F1dG9maWxs
QW5kT2JzY3VyZWQsIGF1dG9GaWxsZWRBbmRPYnNjdXJlZCk7CiAgICAgbV9pc0F1dG9GaWxsZWRB
bmRPYnNjdXJlZCA9IGF1dG9GaWxsZWRBbmRPYnNjdXJlZDsKKworICAgIGlmIChhdXRvKiBjYWNo
ZSA9IGRvY3VtZW50KCkuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCisgICAgICAgIGNhY2hlLT5v
blRleHRTZWN1cml0eUNoYW5nZWQoKnRoaXMpOwogfQogCiB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OnNldFNob3dBdXRvRmlsbEJ1dHRvbihBdXRvRmlsbEJ1dHRvblR5cGUgYXV0b0ZpbGxCdXR0b25U
eXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBiMTk3ZWY5NDcx
MDcuLmJkMTIwODU3MTQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgK
QEAgLTE0Miw2ICsxNDIsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1Nl
YXJjaEZpZWxkKCkgY29uc3Q7CiAgICAgYm9vbCBpc0lucHV0VHlwZUhpZGRlbigpIGNvbnN0Owog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgYm9v
bCBpc1NlY3VyZUZpZWxkKCkgY29uc3QgeyByZXR1cm4gaXNQYXNzd29yZEZpZWxkKCkgfHwgaXNB
dXRvRmlsbGVkQW5kT2JzY3VyZWQoKTsgfQogICAgIGJvb2wgaXNDaGVja2JveCgpIGNvbnN0Owog
ICAgIGJvb2wgaXNSYW5nZUNvbnRyb2woKSBjb25zdDsKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmll
bGQtdmFsdWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29y
ZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDI0N2VmNjRmYTUxMi4uMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
MTEgKzAsMCBAQAotCi1UaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2YgYSBw
YXNzd29yZCBmaWVsZCBpcyB0aGUgcmVuZGVyZWQgdGV4dC4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBhc3N3b3JkIGZpZWxkOiBBWFZhbHVlOiDigKLigKLigKLigKIKLVBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwgYi9M
YXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA3ZGU1YmQxMzVhNi4uMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHkgaWQ9ImJvZHkiPgotCi08aW5wdXQgdHlwZT0icGFzc3dvcmQiIGlkPSJw
YXNzIiB2YWx1ZT0idGVzdCI+Ci0KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Ci0KLTxzY3JpcHQ+Ci0KLSAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVlIG9mIGEgcGFzc3dvcmQgZmllbGQgaXMgdGhlIHJl
bmRlcmVkIHRleHQuIik7Ci0KLSAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVy
KQotICAgICAgICBkZWJ1ZygiUGFzc3dvcmQgZmllbGQ6ICIgKyBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBhc3MiKS5zdHJpbmdWYWx1ZSk7Ci0gICAgZWxz
ZQotICAgICAgICB0ZXN0RmFpbGVkKCJUaGlzIHRlc3QgZGVwZW5kcyBvbiBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlciwgcGxlYXNlIHVzZSBydW4td2Via2l0LXRlc3RzIHRvIHJ1biBpdC4iKTsKLSAg
ICBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwotCi08L3NjcmlwdD4KLQotPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFs
dWUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uYmI4NmJkNDA0NmVhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9zZWN1cmUtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMgQEAKK1Ro
aXMgdGVzdHMgdGhhdCB0aGUgQVggZXhwb3NlZCB2YWx1ZSBvZiBzZWN1cmUgaW5wdXRzIGlzIHRo
ZSByZW5kZXJlZCAoYW5kIHRoZXJlZm9yZSBjZW5zb3JlZCkgdGV4dC4KKworUGFzc3dvcmQgZmll
bGQgdmFsdWU6IEFYVmFsdWU6IOKAouKAouKAouKAogorI2F1dG9maWxsLWlucHV0IHZhbHVlIGJl
Zm9yZSBiZWluZyBvYnNjdXJlZDogQVhWYWx1ZTogZm9vCitNYWtpbmcgI2F1dG9maWxsLWlucHV0
IG9ic2N1cmVkLgorI2F1dG9maWxsLWlucHV0IHZhbHVlIGFmdGVyIGJlaW5nIG9ic2N1cmVkOiBB
WFZhbHVlOiDigKLigKLigKIKK01ha2luZyAjYXV0b2ZpbGwtaW5wdXQgdmlld2FibGUuCisjYXV0
b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgbWFkZSB2aWV3YWJsZTogQVhWYWx1ZTogZm9v
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5o
dG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjE0ZDUzODg5ZjM3ZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZh
bHVlLmh0bWwKQEAgLTAsMCArMSw0MyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRG
Ly9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8aW5wdXQg
dHlwZT0icGFzc3dvcmQiIGlkPSJwYXNzd29yZC1pbnB1dCIgdmFsdWU9InRlc3QiPgorPGlucHV0
IHR5cGU9InRleHQiIGlkPSJhdXRvZmlsbC1pbnB1dCIgdmFsdWU9ImZvbyI+CisKKzxzY3JpcHQ+
Cit2YXIgb3V0cHV0ID0gIlRoaXMgdGVzdHMgdGhhdCB0aGUgQVggZXhwb3NlZCB2YWx1ZSBvZiBz
ZWN1cmUgaW5wdXRzIGlzIHRoZSByZW5kZXJlZCAoYW5kIHRoZXJlZm9yZSBjZW5zb3JlZCkgdGV4
dC5cblxuIjsKKworaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnN0IGF1dG9maWxsSW5wdXQgPSBh
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImF1dG9maWxsLWlu
cHV0Iik7CisgICAgbGV0IGxhc3RBdXRvZmlsbFZhbHVlID0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdW
YWx1ZTsKKyAgICBvdXRwdXQgKz0gYFBhc3N3b3JkIGZpZWxkIHZhbHVlOiAke2FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgicGFzc3dvcmQtaW5wdXQiKS5zdHJp
bmdWYWx1ZX1cbmA7CisgICAgb3V0cHV0ICs9IGAjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYmVmb3Jl
IGJlaW5nIG9ic2N1cmVkOiAke2xhc3RBdXRvZmlsbFZhbHVlfVxuYDsKKworICAgIG91dHB1dCAr
PSAiTWFraW5nICNhdXRvZmlsbC1pbnB1dCBvYnNjdXJlZC5cbiI7CisgICAgd2luZG93LmludGVy
bmFscy5zZXRBdXRvRmlsbGVkQW5kT2JzY3VyZWQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1
dG9maWxsLWlucHV0IiksIHRydWUpOworICAgIHNldFRpbWVvdXQoYXN5bmMgZnVuY3Rpb24oKSB7
CisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4gbGFzdEF1dG9maWxsVmFsdWUgIT09IGF1dG9m
aWxsSW5wdXQuc3RyaW5nVmFsdWUpOworICAgICAgICBsYXN0QXV0b2ZpbGxWYWx1ZSA9IGF1dG9m
aWxsSW5wdXQuc3RyaW5nVmFsdWU7CisgICAgICAgIG91dHB1dCArPSBgI2F1dG9maWxsLWlucHV0
IHZhbHVlIGFmdGVyIGJlaW5nIG9ic2N1cmVkOiAke2F1dG9maWxsSW5wdXQuc3RyaW5nVmFsdWV9
XG5gOworCisgICAgICAgIG91dHB1dCArPSAiTWFraW5nICNhdXRvZmlsbC1pbnB1dCB2aWV3YWJs
ZS5cbiI7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QXV0b0ZpbGxlZEFuZE9ic2N1cmVk
KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvZmlsbC1pbnB1dCIpLCBmYWxzZSk7CisgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QXV0b0ZpbGxlZEFuZFZpZXdhYmxlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJhdXRvZmlsbC1pbnB1dCIpLCB0cnVlKTsKKyAgICAgICAgYXdhaXQgd2Fp
dEZvcigoKSA9PiBsYXN0QXV0b2ZpbGxWYWx1ZSAhPT0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1
ZSk7CisgICAgICAgIG91dHB1dCArPSBgI2F1dG9maWxsLWlucHV0IHZhbHVlIGFmdGVyIGJlaW5n
IG1hZGUgdmlld2FibGU6ICR7YXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZX1cbmA7CisKKyAgICAg
ICAgZGVidWcob3V0cHV0KTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSwgMCk7Cit9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KKwo=
</data>
<flag name="commit-queue"
          id="493327"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465297</attachid>
            <date>2023-03-04 12:46:58 -0800</date>
            <delta_ts>2023-03-06 10:56:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230304124657.patch</filename>
            <type>text/plain</type>
            <size>37858</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSBlMTQ0ZDQ5OTJmOWZjNWIzNzhhYzYyM2VhMzhhMWYxM2YzMGZhMGIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCkFjY2Vzc2liaWxpdHkgQVBJcyBzaG91bGQgbm90IGV4
cG9zZSBzZWN1cmUgdGV4dCBvYnNjdXJlZCBieSBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxs
ZWRBbmRPYnNjdXJlZC4KClRoaXMgcGF0Y2ggZml4ZXMgdGhpcyBieSBjaGFuZ2luZyBgQWNjZXNz
aWJpbGl0eU9iamVjdDo6aXNQYXNzd29yZEZpZWxkYCB0byBhbHNvIGNoZWNrIGZvcgpgSFRNTElu
cHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWRgLiBUaGlzIG1ldGhvZCBhbmQgYWxs
IHNpbWlsYXJseSBuYW1lZCBtZXRob2RzIGhhdmUKYmVlbiByZW5hbWVkIHRvIHVzZSAic2VjdXJl
IiBpbnN0ZWFkIG9mICJwYXNzd29yZCIgKGUuZy4gYGlzU2VjdXJlRmllbGRgIGluc3RlYWQgb2Yg
YGlzUGFzc3dvcmRGaWVsZGApCnRvIGVuY2Fwc3VsYXRlIHRoZSB3aWRlbmluZyBvZiB0aGlzIGFi
c3RyYWN0aW9uLgoKTmV3IHRlc3RjYXNlcyBhZGRlZCB0byBhY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS5odG1sIHRvIHRlc3QgdGhpcyBiZWhhdmlvci4KCiogTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCiog
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sOiBSZW1v
dmVkLgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVj
dGVkLnR4dDogQWRkZWQuCiogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUuaHRtbDogQWRkZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dl
ci5jcHA6CihXZWJDb3JlOjpvcGVyYXRvcjw8KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25UZXh0U2Vj
dXJpdHlDaGFuZ2VkKToKKFdlYkNvcmU6OmlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJl
RmllbGQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNo
YW5nZU5vdGlmaWNhdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0
YUZvckNoYXJhY3Rlck9mZnNldCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFya2Vy
RGF0YUZvclZpc2libGVQb3NpdGlvbik6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvckZpcnN0UG9zaXRpb25JblRleHRDb250cm9sKToKKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSk6CihXZWJDb3JlOjppc1Bhc3N3b3JkRmllbGRPckNv
bnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpvblRleHRT
ZWN1cml0eUNoYW5nZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
U2VjdXJlRmllbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6Omlz
UGFzc3dvcmRGaWVsZCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdXBwb3J0c1JlYWRPbmx5IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6Omluc2VydFRleHQpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWlu
ZWRCeVNlY3VyZUZpZWxkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Omlz
Q29udGFpbmVkQnlQYXNzd29yZEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnNlY3VyZUZpZWxkVmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6cGFzc3dvcmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3Bw
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c3RyaW5nVmFsdWUgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dGV4dCBjb25zdCk6CihXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQgY29uc3QpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0UmFuZ2UgY29uc3Qp
OgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdl
IGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxk
VmFsdWUgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cGFzc3dv
cmRGaWVsZFZhbHVlIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKTogRGVs
ZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlcklPUy5tbToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgX2Fj
Y2Vzc2liaWxpdHlUZXh0RW50cnlUcmFpdHNdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXIgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGRdKToKKC1bV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVZhbHVlXSk6CiogU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHA6CihXZWJD
b3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyk6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oOgoqIFNv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmg6
CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJNYWMubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
IEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORF0pOgooLVtXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CiogU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CihXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppc1NlY3VyZUZp
ZWxkIGNvbnN0KToKLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNw
cCAgICAgfCAgMyArKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cCAgIHwgMjQgKysrKysrKystLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oICB8ICAzICsrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAgfCAxMSArKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVP
YmplY3QuaCAgIHwgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwICAgICB8IDEwICsrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggICAgICAgfCAgOCArKy0tCiAuLi4vQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oICAg
ICAgICAgICAgfCAgNCArLQogLi4uL0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwICAgICAg
ICAgICAgIHwgMTggKysrKy0tLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3QuaCB8ICAyICstCiAuLi4vYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNw
cCAgICAgICAgfCAgNCArLQogLi4uL2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0QXRzcGku
Y3BwICAgIHwgIDIgKy0KIC4uLi9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSAgICAgICAg
ICAgICB8ICA0ICstCiAuLi4vaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1t
ICAgfCAxMCArKy0tLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCAgICAg
ICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oICAgICAgICAg
ICB8ICAyICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggICAgICAgICAgICAg
fCAgMiArLQogLi4uL21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tICAgICAgICAgICAgIHwg
IDIgKy0KIC4uLi9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gICB8IDEw
ICsrLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwICAgICAgfCAg
MyArKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggICAgICAgIHwgIDEg
KwogLi4uL3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCAgICAgICAgIHwgMTEgLS0t
LS0KIC4uLi9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwgICB8IDI3IC0t
LS0tLS0tLS0tLQogLi4uL3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgICAgICAgICAg
IHwgMTMgKysrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbCAg
ICAgfCA0MyArKysrKysrKysrKysrKysrKysrCiAyNSBmaWxlcyBjaGFuZ2VkLCAxMjggaW5zZXJ0
aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGRlbGV0ZSBt
b2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVl
Lmh0bWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3Vy
ZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCBhMzU3ZTZiYzk5YjYuLmIyYmNlODA2NTg3
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTYxMyw2
ICs2MTMsOSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24gbm90aWZpYwogICAgIGNhc2UgQVhPYmplY3RDYWNo
ZTo6QVhOb3RpZmljYXRpb246OkFYVGV4dENoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAiQVhU
ZXh0Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgQVhPYmplY3RDYWNoZTo6QVhO
b3RpZmljYXRpb246OkFYVGV4dFNlY3VyaXR5Q2hhbmdlZDoKKyAgICAgICAgc3RyZWFtIDw8ICJB
WFRleHRTZWN1cml0eUNoYW5nZWQiOworICAgICAgICBicmVhazsKICAgICBjYXNlIEFYT2JqZWN0
Q2FjaGU6OkFYTm90aWZpY2F0aW9uOjpBWEVsZW1lbnRCdXN5Q2hhbmdlZDoKICAgICAgICAgc3Ry
ZWFtIDw8ICJBWEVsZW1lbnRCdXN5Q2hhbmdlZCI7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggYWJkODBiNTJh
NTYzLi5kYmQxNDc3MTVmODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcApAQCAtMTQ2Niw2ICsxNDY2LDE1IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6b25TZWxlY3RlZENoYW5nZWQoTm9kZSogbm9kZSkKICAgICBoYW5kbGVNZW51SXRlbVNlbGVj
dGVkKG5vZGUpOwogfQogCit2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGV4dFNlY3VyaXR5Q2hhbmdl
ZChIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQpCit7CisjaWYgRU5BQkxFKEFDQ0VTU0lC
SUxJVFlfSVNPTEFURURfVFJFRSkKKyAgICB1cGRhdGVJc29sYXRlZFRyZWUoZ2V0KCZpbnB1dEVs
ZW1lbnQpLCBBWFRleHRTZWN1cml0eUNoYW5nZWQpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0o
aW5wdXRFbGVtZW50KTsKKyNlbmRpZgorfQorCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGl0bGVD
aGFuZ2UoRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIHBvc3ROb3RpZmljYXRpb24oZ2V0KCZk
b2N1bWVudCksIG51bGxwdHIsIEFYVGV4dENoYW5nZWQpOwpAQCAtMTYwNiw5ICsxNjE1LDkgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpzZXRJc1N5bmNocm9uaXppbmdTZWxlY3Rpb24oYm9vbCBpc1N5
bmNocm9uaXppbmcpCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXN0YXRpYyBib29sIGlzUGFz
c3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCkKK3N0YXRpYyBib29sIGlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJlRmll
bGQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogewotICAgIHJldHVybiBvYmplY3QgJiYg
KG9iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkgfHwgb2JqZWN0LT5pc0NvbnRhaW5lZEJ5UGFzc3dv
cmRGaWVsZCgpKTsKKyAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3QtPmlzU2VjdXJlRmllbGQo
KSB8fCBvYmplY3QtPmlzQ29udGFpbmVkQnlTZWN1cmVGaWVsZCgpKTsKIH0KICNlbmRpZgogCkBA
IC0xNjY4LDcgKzE2NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LAogI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBVU0UoQVRTUEkpCiAgICAgaWYgKG9iamVjdCkgewogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgICAgICBpZiAoaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmll
bGQob2JqZWN0KSkKKyAgICAgICAgaWYgKGlzU2VjdXJlRmllbGRPckNvbnRhaW5lZEJ5U2VjdXJl
RmllbGQob2JqZWN0KSkKICAgICAgICAgICAgIHJldHVybjsKICNlbmRpZgogICAgICAgICBpZiAo
YXV0byBvYnNlcnZhYmxlT2JqZWN0ID0gb2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCkpCkBAIC0x
NzcyLDcgKzE3ODEsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0UmVwbGFjZW1lbnRO
b3RpZmljYXRpb25Gb3JUZXh0Q29udHJvbChIVE1MVGV4dEZvcm1DbwogYm9vbCBBWE9iamVjdENh
Y2hlOjplbnF1ZXVlUGFzc3dvcmRWYWx1ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBvYmplY3QpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaWYgKCFpc1Bhc3N3
b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChvYmplY3QpKQorICAgIGlmICghaXNT
ZWN1cmVGaWVsZE9yQ29udGFpbmVkQnlTZWN1cmVGaWVsZChvYmplY3QpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYnNlcnZhYmxlT2JqZWN0ID0g
b2JqZWN0LT5vYnNlcnZhYmxlT2JqZWN0KCk7CkBAIC0yNTMyLDcgKzI1NDEsNyBAQCBUZXh0TWFy
a2VyRGF0YSBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvckNoYXJhY3Rlck9mZnNldChj
b25zdCBDaGFyYWN0ZXJPZgogICAgICAgICByZXR1cm4geyB9OwogCiAgICAgaWYgKGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KGNoYXJhY3Rlck9mZnNldC5ub2RlKQotICAgICAgICAmJiBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PigqY2hhcmFjdGVyT2Zmc2V0Lm5vZGUpLmlzUGFzc3dvcmRGaWVsZCgp
KQorICAgICAgICAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqY2hhcmFjdGVyT2Zmc2V0
Lm5vZGUpLmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIHsgKnRoaXMsIHsgfSwgdHJ1
ZSB9OwogCiAgICAgc2V0Tm9kZUluVXNlKGNoYXJhY3Rlck9mZnNldC5ub2RlKTsKQEAgLTI4MDEs
NyArMjgxMCw3IEBAIHN0ZDo6b3B0aW9uYWw8VGV4dE1hcmtlckRhdGE+IEFYT2JqZWN0Q2FjaGU6
OnRleHRNYXJrZXJEYXRhRm9yVmlzaWJsZVBvc2l0aW9uKGNvCiAgICAgaWYgKCFub2RlKQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KG5vZGUpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKS5pc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRN
TElucHV0RWxlbWVudD4oKm5vZGUpLmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIAogICAgIC8vIElmIHRoZSB2aXNpYmxlIHBvc2l0aW9uIGhhcyBhbiBhbmNo
b3IgdHlwZSByZWZlcnJpbmcgdG8gYSBub2RlIG90aGVyIHRoYW4gdGhlIGFuY2hvcmVkIG5vZGUs
IHdlIHNob3VsZApAQCAtMjgyMSw3ICsyODMwLDcgQEAgc3RkOjpvcHRpb25hbDxUZXh0TWFya2Vy
RGF0YT4gQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oY28K
IC8vIFRoaXMgZnVuY3Rpb24gZXhpc3RzIGFzIGEgcGVyZm9ybWFuY2Ugb3B0aW1pemF0aW9uIHRv
IGF2b2lkIGEgc3luY2hyb25vdXMgbGF5b3V0Lgogc3RkOjpvcHRpb25hbDxUZXh0TWFya2VyRGF0
YT4gQVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JGaXJzdFBvc2l0aW9uSW5UZXh0Q29u
dHJvbChIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCYgdGV4dENvbnRyb2wpCiB7Ci0gICAgaWYg
KGlzPEhUTUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50Pih0ZXh0Q29udHJvbCkuaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pih0
ZXh0Q29udHJvbCkuaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCiAgICAgYXV0byogY2FjaGUgPSB0ZXh0Q29udHJvbC5kb2N1bWVudCgpLmF4T2JqZWN0Q2Fj
aGUoKTsKQEAgLTM3NDksNiArMzc1OCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNv
bGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFjY2Vzc2liaWxpCiAgICAg
ICAgIGNhc2UgQVhSb3dTcGFuQ2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFYVGV4dENoYW5nZWQ6CisgICAgICAgIGNhc2UgQVhU
ZXh0U2VjdXJpdHlDaGFuZ2VkOgogICAgICAgICBjYXNlIEFYVmFsdWVDaGFuZ2VkOgogICAgICAg
ICAgICAgdXBkYXRlTm9kZShub3RpZmljYXRpb24uZmlyc3QpOwogICAgICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDQw
NWRlNjc3MDRlNi4uNTIyOGZkYTBlMDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTc5LDYgKzE3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0Kik7CiAgICAgdm9pZCBvbkZvY3Vz
Q2hhbmdlKE5vZGUqIG9sZEZvY3VzZWROb2RlLCBOb2RlKiBuZXdGb2N1c2VkTm9kZSk7CiAgICAg
dm9pZCBvblNlbGVjdGVkQ2hhbmdlZChOb2RlKik7CisgICAgdm9pZCBvblRleHRTZWN1cml0eUNo
YW5nZWQoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZvaWQgb25UaXRsZUNoYW5nZShEb2N1bWVu
dCYpOwogICAgIHZvaWQgb25WYWxpZGl0eUNoYW5nZShFbGVtZW50Jik7CiAgICAgdm9pZCB2YWx1
ZUNoYW5nZWQoRWxlbWVudCopOwpAQCAtMzU2LDYgKzM1Nyw3IEBAIHB1YmxpYzoKICAgICAgICAg
QVhSZXF1aXJlZFN0YXR1c0NoYW5nZWQsCiAgICAgICAgIEFYU29ydERpcmVjdGlvbkNoYW5nZWQs
CiAgICAgICAgIEFYVGV4dENoYW5nZWQsCisgICAgICAgIEFYVGV4dFNlY3VyaXR5Q2hhbmdlZCwK
ICAgICAgICAgQVhFbGVtZW50QnVzeUNoYW5nZWQsCiAgICAgICAgIEFYRHJhZ2dpbmdTdGFydGVk
LAogICAgICAgICBBWERyYWdnaW5nRW5kZWQsCkBAIC02NjksNiArNjcxLDcgQEAgaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKE5vZGUqLCBOb2RlKikgeyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoUmVuZGVyT2JqZWN0KiwgUmVu
ZGVyT2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
b25TZWxlY3RlZENoYW5nZWQoTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6
b25UZXh0U2VjdXJpdHlDaGFuZ2VkKEhUTUxJbnB1dEVsZW1lbnQmKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om9uVGl0bGVDaGFuZ2UoRG9jdW1lbnQmKSB7IH0KIGlubGluZSB2b2lk
IEFYT2JqZWN0Q2FjaGU6Om9uVmFsaWRpdHlDaGFuZ2UoRWxlbWVudCYpIHsgfQogaW5saW5lIHZv
aWQgQVhPYmplY3RDYWNoZTo6dmFsdWVDaGFuZ2VkKEVsZW1lbnQqKSB7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKaW5kZXggN2ZhNDcyYTk4MGRiLi42YWFjM2QyODAxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBA
IC02MzksMTYgKzYzOSwxMyBAQCBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc05hdGl2
ZUltYWdlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0Citib29sIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojppc1NlY3VyZUZpZWxkKCkgY29uc3QKIHsKLSAgICBhdXRvKiBub2RlID0gdGhp
cy0+bm9kZSgpOwotICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4obm9kZSkpCisgICAgUmVm
UHRyIGlucHV0ID0gZHluYW1pY0Rvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUoKSk7Cisg
ICAgaWYgKCFpbnB1dCB8fCBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xl
OjpVbmtub3duKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoYXJpYVJvbGVBdHRy
aWJ1dGUoKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bikKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgcmV0dXJuIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpub2RlKS5pc1Bh
c3N3b3JkRmllbGQoKTsKKyAgICByZXR1cm4gaW5wdXQtPmlzUGFzc3dvcmRGaWVsZCgpIHx8IGlu
cHV0LT5pc0F1dG9GaWxsZWRBbmRPYnNjdXJlZCgpOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCmluZGV4IDkzM2YxZjUy
N2M4NS4uM2JkZWJlZTE1N2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5oCkBAIC02OSw3ICs2OSw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzTXVsdGlTZWxlY3RhYmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9v
bCBpc05hdGl2ZUltYWdlKCkgY29uc3Q7CiAgICAgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkg
Y29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlz
UHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzU2VhcmNoRmll
bGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29sIGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmNwcAppbmRleCBmZjQyMjU2NTdmZjEuLjY3ZjRiNjZkNzNiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0x
NjkzLDcgKzE2OTMsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9u
bHkoKSBjb25zdAogICAgICAgICB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2gK
ICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEZpZWxkCiAgICAgICAg
IHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWVHcmlkCi0gICAgICAgIHx8IGlzUGFz
c3dvcmRGaWVsZCgpOworICAgICAgICB8fCBpc1NlY3VyZUZpZWxkKCk7CiB9CiAKIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWFkT25seVZhbHVlKCkgY29uc3QKQEAgLTIzMzAsOCArMjMz
MCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcm
IHRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGF1dG8mIGVsZW1lbnQgPSBkb3du
Y2FzdDxFbGVtZW50Pigqbm9kZSgpKTsKLSAgICAvLyBPbmx5IHRyeSB0byBpbnNlcnQgdGV4dCBp
ZiB0aGUgZmllbGQgaXMgaW4gZWRpdGluZyBtb2RlIChleGNsdWRpbmcgcGFzc3dvcmQgZmllbGRz
LCB3aGljaCB3ZSBkbyBzdGlsbCB3YW50IHRvIHRyeSB0byBpbnNlcnQgaW50bykuCi0gICAgaWYg
KCFpc1Bhc3N3b3JkRmllbGQoKSAmJiAhZWxlbWVudC5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKQor
ICAgIC8vIE9ubHkgdHJ5IHRvIGluc2VydCB0ZXh0IGlmIHRoZSBmaWVsZCBpcyBpbiBlZGl0aW5n
IG1vZGUgKGV4Y2x1ZGluZyBzZWN1cmUgZmllbGRzLCB3aGljaCB3ZSBkbyBzdGlsbCB3YW50IHRv
IHRyeSB0byBpbnNlcnQgaW50bykuCisgICAgaWYgKCFpc1NlY3VyZUZpZWxkKCkgJiYgIWVsZW1l
bnQuc2hvdWxkVXNlSW5wdXRNZXRob2QoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
Ly8gVXNlIEVkaXRvcjo6aW5zZXJ0VGV4dCB0byBtaW1pYyB0eXBpbmcgaW50byB0aGUgZmllbGQu
CkBAIC0zODY4LDcgKzM4NjgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzT3V0cHV0
KCkgY29uc3QKICAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKG91dHB1dFRhZyk7
CiB9CiAgICAgCi1ib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29y
ZEZpZWxkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVNl
Y3VyZUZpZWxkKCkgY29uc3QKIHsKICAgICBOb2RlKiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAg
IGlmICghbm9kZSkKQEAgLTM4NzgsNyArMzg3OCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBFbGVtZW50KiBlbGVtZW50ID0gbm9kZS0+c2hhZG93SG9zdCgpOwotICAgIHJl
dHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRF
bGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZpZWxkKCk7CisgICAgcmV0dXJuIGlzPEhUTUxJ
bnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVt
ZW50KS5pc1NlY3VyZUZpZWxkKCk7CiB9CiAgICAgCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZExpc3RJdGVtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKaW5kZXggMDM3ZTdhZWRiYzdm
Li4wMjk0ZGY0ZWJlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0xMjMsOCArMTIzLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBpc0F0dGFjaG1lbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGlzSGVhZGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgYm9vbCBpc0xpbmsoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQotICAgIGJv
b2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3Q7CisgICAgYm9vbCBpc1Nl
Y3VyZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlz
Q29udGFpbmVkQnlTZWN1cmVGaWVsZCgpIGNvbnN0OwogICAgIGJvb2wgaXNOYXRpdmVUZXh0Q29u
dHJvbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNMaXN0
Qm94T3B0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTYwNSw3ICs2
MDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgZGVzY3JpcHRpb25Gb3JNU0FBKCkg
Y29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xl
IHJvbGVWYWx1ZUZvck1TQUEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKTsgfQogCi0gICAg
dmlydHVhbCBTdHJpbmcgcGFzc3dvcmRGaWVsZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5n
KCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBzZWN1cmVGaWVsZFZhbHVlKCkgY29uc3QgeyByZXR1
cm4gU3RyaW5nKCk7IH0KICAgICBib29sIGlzVmFsdWVBdXRvZmlsbEF2YWlsYWJsZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEF1dG9GaWxsQnV0dG9uVHlwZSB2YWx1ZUF1dG9maWxsQnV0dG9uVHlw
ZSgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC03MjcsNyArNzI3LDcgQEAgcHVibGljOgogI2VuZGlm
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQotICAgIGludCBhY2Nlc3NpYmlsaXR5UGFzc3dv
cmRGaWVsZExlbmd0aCgpIG92ZXJyaWRlOworICAgIGludCBhY2Nlc3NpYmlsaXR5U2VjdXJlRmll
bGRMZW5ndGgoKSBvdmVycmlkZTsKICAgICBib29sIGhhc1RvdWNoRXZlbnRMaXN0ZW5lcigpIGNv
bnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNJbnB1dFR5cGVQb3B1cEJ1dHRvbigpIGNvbnN0IG92
ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IGE4MzYzOTI0YjIyMy4u
ODVkY2YyOWFiY2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtODUwLDcgKzg1MCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzSW1hZ2UoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7IH0KICAgICBib29sIGlzSW1hZ2VNYXAoKSBjb25z
dCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2VNYXA7IH0K
ICAgICBib29sIGlzVmlkZW8oKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VmlkZW87IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBpc1NlY3VyZUZpZWxkKCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3QgPSAwOwogICAgIGJv
b2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4gcm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OldlYkFyZWE7IH0KICAgICBib29sIGlzQ2hlY2tib3goKSBjb25zdCB7IHJldHVybiBy
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g7IH0KQEAgLTEzNzEsNyAr
MTM3MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICB2aXJ0dWFsIGludCBhY2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpID0gMDsKKyAg
ICB2aXJ0dWFsIGludCBhY2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgoKSA9IDA7CiAgICAg
dmlydHVhbCBib29sIGhhc1RvdWNoRXZlbnRMaXN0ZW5lcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgaXNJbnB1dFR5cGVQb3B1cEJ1dHRvbigpIGNvbnN0ID0gMDsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKaW5kZXggYzcyYjI1MmU1NjkwLi5lZDllNmIyN2M3NjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcApAQCAtNzQ4LDggKzc0OCw4IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKCFtX3JlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCi0gICAg
ICAgIHJldHVybiBwYXNzd29yZEZpZWxkVmFsdWUoKTsKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgp
KQorICAgICAgICByZXR1cm4gc2VjdXJlRmllbGRWYWx1ZSgpOwogCiAgICAgaWYgKGlzQVJJQVN0
YXRpY1RleHQoKSkgewogICAgICAgICBTdHJpbmcgc3RhdGljVGV4dCA9IHRleHQoKTsKQEAgLTE1
NzAsOCArMTU3MCw4IEBAIGludCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsYXlvdXRDb3Vu
dCgpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0KCkgY29u
c3QKIHsKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCi0gICAgICAgIHJldHVybiBwYXNzd29y
ZEZpZWxkVmFsdWUoKTsKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQorICAgICAgICByZXR1cm4g
c2VjdXJlRmllbGRWYWx1ZSgpOwogICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
dGV4dCgpOwogfQogCkBAIC0xNTk2LDcgKzE1OTYsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29u
dHJvbCgpKTsKICAgICAKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGlzU2Vj
dXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOyAvLyBuZWVkIHRvIHJldHVybiBz
b21ldGhpbmcgZGlzdGluY3QgZnJvbSBlbXB0eSBzdHJpbmcKICAgICAKICAgICBpZiAoaXNOYXRp
dmVUZXh0Q29udHJvbCgpKSB7CkBAIC0xNjI4LDcgKzE2MjgsNyBAQCBQbGFpblRleHRSYW5nZSBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5nZSgpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGlzVGV4dENvbnRyb2woKSk7CiAKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkp
CisgICAgaWYgKGlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIFBsYWluVGV4dFJhbmdl
KCk7CiAKICAgICAvLyBVc2UgdGhlIHRleHQgY29udHJvbCBuYXRpdmUgcmFuZ2UgaWYgaXQncyBh
IG5hdGl2ZSBvYmplY3QuCkBAIC0yNDQ5LDcgKzI0NDksNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJhbmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiBy
YW5nZQogICAgIGlmICghaXNUZXh0Q29udHJvbCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgCi0gICAgU3RyaW5nIGVsZW1lbnRUZXh0ID0gaXNQYXNzd29yZEZpZWxkKCkgPyBwYXNz
d29yZEZpZWxkVmFsdWUoKSA6IHRleHQoKTsKKyAgICBTdHJpbmcgZWxlbWVudFRleHQgPSBpc1Nl
Y3VyZUZpZWxkKCkgPyBzZWN1cmVGaWVsZFZhbHVlKCkgOiB0ZXh0KCk7CiAgICAgcmV0dXJuIGVs
ZW1lbnRUZXh0LnN1YnN0cmluZyhyYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoKTsKIH0KIApAQCAt
MzUyNCw5ICszNTI0LDkgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdDo6cm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcm9sZUZvck1TQUE7
CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpwYXNzd29yZEZpZWxkVmFs
dWUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxk
VmFsdWUoKSBjb25zdAogewotICAgIEFTU0VSVChpc1Bhc3N3b3JkRmllbGQoKSk7CisgICAgQVNT
RVJUKGlzU2VjdXJlRmllbGQoKSk7CiAKICAgICAvLyBMb29rIGZvciB0aGUgUmVuZGVyVGV4dCBv
YmplY3QgaW4gdGhlIFJlbmRlck9iamVjdCB0cmVlIGZvciB0aGlzIGlucHV0IGZpZWxkLgogICAg
IFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlKCktPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oCmluZGV4IDYzNTc1MDUwNGE1OC4uZWUzOGIzZTE0MWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApA
QCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZGVzY3JpcHRpb25Gb3JNU0FB
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNB
QSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgU3RyaW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNv
bnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBzZWN1cmVGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgdm9pZCB0aXRsZUVsZW1lbnRUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4m
KSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGku
Y3BwCmluZGV4IDY1ODdiZWY4YjZiNS4uMWYwNWViZmUxNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0QXRzcGkuY3BwCkBAIC0xMjAwLDcgKzEyMDAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaTo6bG9hZEV2ZW50KGNvbnN0IGNoYXIqIGV2ZW50KQogCiBzdGQ6Om9wdGlvbmFsPEF0
c3BpOjpSb2xlPiBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmVmZmVjdGl2ZVJvbGUoKSBjb25z
dAogewotICAgIGlmIChtX2NvcmVPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmICht
X2NvcmVPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIEF0c3BpOjpSb2xl
OjpQYXNzd29yZFRleHQ7CiAKICAgICBhdXRvKiBsaXZlT2JqZWN0ID0gZHluYW1pY0Rvd25jYXN0
PEFjY2Vzc2liaWxpdHlPYmplY3Q+KG1fY29yZU9iamVjdCk7CkBAIC0xNDIzLDcgKzE0MjMsNyBA
QCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzTwogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9i
amVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0OwogCiAgICAgLy8gRW50cmllcyBhbmQgcGFzc3dv
cmQgZmllbGRzIGhhdmUgZXh0cmFuZW91cyBjaGlsZHJlbiB3aGljaCB3ZSB3YW50IHRvIGlnbm9y
ZS4KLSAgICBpZiAocGFyZW50LT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBwYXJlbnQtPmlzVGV4dENv
bnRyb2woKSkKKyAgICBpZiAocGFyZW50LT5pc1NlY3VyZUZpZWxkKCkgfHwgcGFyZW50LT5pc1Rl
eHRDb250cm9sKCkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
OjpJZ25vcmVPYmplY3Q7CiAKICAgICAvLyBXZSBleHBvc2UgdGhlIHNsaWRlciBhcyBhIHdob2xl
IGJ1dCBub3QgaXRzIHZhbHVlIGluZGljYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0
QXRzcGkuY3BwCmluZGV4IDQ0Njk5ZjY2OWEzNC4uNmQ4OWFiZTY4ZGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0
QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNz
aWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKQEAgLTM2NCw3ICszNjQsNyBAQCB2b2lkIEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaTo6dGV4dEluc2VydGVkKGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRU
ZXh0LCBjb25zdCBWaQogICAgIGF1dG8gdXRmMTZUZXh0ID0gdGV4dCgpOwogICAgIGF1dG8gdXRm
OFRleHQgPSB1dGYxNlRleHQudXRmOCgpOwogICAgIGF1dG8gdXRmMTZPZmZzZXQgPSBhZGp1c3RP
dXRwdXRPZmZzZXQobV9jb3JlT2JqZWN0LT5pbmRleEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlv
biksIG1faGFzTGlzdE1hcmtlckF0U3RhcnQpOwotICAgIFN0cmluZyBtYXNrZWRUZXh0ID0gbV9j
b3JlT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSA/IHV0ZjE2VGV4dC5zdWJzdHJpbmcodXRmMTZP
ZmZzZXQgLSBpbnNlcnRlZFRleHQubGVuZ3RoKCksIGluc2VydGVkVGV4dC5sZW5ndGgoKSkgOiBT
dHJpbmcoKTsKKyAgICBTdHJpbmcgbWFza2VkVGV4dCA9IG1fY29yZU9iamVjdC0+aXNTZWN1cmVG
aWVsZCgpID8gdXRmMTZUZXh0LnN1YnN0cmluZyh1dGYxNk9mZnNldCAtIGluc2VydGVkVGV4dC5s
ZW5ndGgoKSwgaW5zZXJ0ZWRUZXh0Lmxlbmd0aCgpKSA6IFN0cmluZygpOwogICAgIGF1dG8gbWFw
cGluZyA9IG9mZnNldE1hcHBpbmcodXRmMTZUZXh0KTsKICAgICBhdXRvIG9mZnNldCA9IFVURjE2
T2Zmc2V0VG9VVEY4KG1hcHBpbmcsIHV0ZjE2T2Zmc2V0KTsKICAgICBhdXRvIHV0ZjhJbnNlcnRl
ZFRleHQgPSBtYXNrZWRUZXh0LmlzTnVsbCgpID8gaW5zZXJ0ZWRUZXh0LnV0ZjgoKSA6IG1hc2tl
ZFRleHQudXRmOCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KaW5kZXggZDEwYTJmNzM3OWIxLi5lODQ0
ODkwZTI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0Fj
Y2Vzc2liaWxpdHlPYmplY3RJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQpAQCAtODIsOSArODIsOSBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0YWNobWVudFBhcmVudChBWENvcmVPYmplY3Qq
KQogfQogICAgIAogLy8gSW4gaVBob25lIG9ubHkgY29kZSBmb3Igbm93LiBJdCdzIGRlYmF0ZWFi
bGUgd2hldGhlciB0aGlzIGlzIGRlc2lyZWQgb24gYWxsIHBsYXRmb3Jtcy4KLWludCBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpCitpbnQgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKCkKIHsKLSAg
ICBpZiAoIWlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmICghaXNTZWN1cmVGaWVsZCgpKQogICAg
ICAgICByZXR1cm4gMDsKICAgICBSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCA9IGRvd25jYXN0
PEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+KCp0aGlzKS5yZW5kZXJlcigpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0
eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9X
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQppbmRleCBkZTFiMTQ0MWZmZGUuLmU5
MmIyYjY0NjVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3Mv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAg
LTgxNCw3ICs4MTQsNyBAQCAtICh1aW50NjRfdClfYWNjZXNzaWJpbGl0eVRleHRFbnRyeVRyYWl0
cwogICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBzZWxmLmF4QmFja2luZ09iamVjdDsKICAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNGb2N1c2VkKCkpCiAgICAgICAgIHRyYWl0cyB8PSAoW3NlbGYg
X2F4SGFzVGV4dEN1cnNvclRyYWl0XSB8IFtzZWxmIF9heFRleHRPcGVyYXRpb25zQXZhaWxhYmxl
VHJhaXRdKTsKLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAg
aWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgdHJhaXRzIHw9IFtz
ZWxmIF9heFNlY3VyZVRleHRGaWVsZFRyYWl0XTsKIAogICAgIHN3aXRjaCAoYmFja2luZ09iamVj
dC0+cm9sZVZhbHVlKCkpIHsKQEAgLTExNzYsNyArMTE3Niw3IEBAIC0gKEJPT0wpX2FjY2Vzc2li
aWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGQKICAgICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNz
aWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCi0gICAgaWYgKCFzZWxmLmF4
QmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKCFzZWxmLmF4QmFja2lu
Z09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCiAgICAg
cmV0dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0LT52YWx1ZUF1dG9maWxsQnV0dG9uVHlwZSgpID09
IEF1dG9GaWxsQnV0dG9uVHlwZTo6U3Ryb25nUGFzc3dvcmQ7CkBAIC0xNTYzLDEwICsxNTYzLDEw
IEBAIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0eVZhbHVlCiAgICAgfQogCiAgICAgLy8gcmRh
cjovLzgxMzEzODggV2ViS2l0IHNob3VsZCBleHBvc2UgdGhlIHNhbWUgaW5mbyBhcyBVSUtpdCBm
b3IgaXRzIHBhc3N3b3JkIGZpZWxkcy4KLSAgICBpZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29y
ZEZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSkg
ewotICAgICAgICBpbnQgcGFzc3dvcmRMZW5ndGggPSBiYWNraW5nT2JqZWN0LT5hY2Nlc3NpYmls
aXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpOworICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3Vy
ZUZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSkg
eworICAgICAgICBpbnQgc2VjdXJlVGV4dExlbmd0aCA9IGJhY2tpbmdPYmplY3QtPmFjY2Vzc2li
aWxpdHlTZWN1cmVGaWVsZExlbmd0aCgpOwogICAgICAgICBOU011dGFibGVTdHJpbmcqIHN0cmlu
ZyA9IFtOU011dGFibGVTdHJpbmcgc3RyaW5nXTsKLSAgICAgICAgZm9yIChpbnQgayA9IDA7IGsg
PCBwYXNzd29yZExlbmd0aDsgKytrKQorICAgICAgICBmb3IgKGludCBrID0gMDsgayA8IHNlY3Vy
ZVRleHRMZW5ndGg7ICsraykKICAgICAgICAgICAgIFtzdHJpbmcgYXBwZW5kU3RyaW5nOkAi4oCi
Il07CiAgICAgICAgIHJldHVybiBzdHJpbmc7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcAppbmRleCBmOTMzNTdlNmE1YjMuLjgwNGUwNTM1MmM5YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHAKQEAgLTEwMiwxMSArMTAyLDExIEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6
aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9i
CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzTWVudUxpc3RQb3B1cCwgb2JqZWN0
LmlzTWVudUxpc3RQb3B1cCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNN
ZW51UmVsYXRlZCwgb2JqZWN0LmlzTWVudVJlbGF0ZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OklzTXVsdGlTZWxlY3RhYmxlLCBvYmplY3QuaXNNdWx0aVNlbGVjdGFibGUo
KSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzUGFzc3dvcmRGaWVsZCwgb2Jq
ZWN0LmlzUGFzc3dvcmRGaWVsZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
SXNQcmVzc2VkLCBvYmplY3QuaXNQcmVzc2VkKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpJc1Byb2dyZXNzSW5kaWNhdG9yLCBvYmplY3QuaXNQcm9ncmVzc0luZGljYXRvcigp
KTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNSZXF1aXJlZCwgb2JqZWN0Lmlz
UmVxdWlyZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzU2Nyb2xsYmFy
LCBvYmplY3QuaXNTY3JvbGxiYXIoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OklzU2VjdXJlRmllbGQsIG9iamVjdC5pc1NlY3VyZUZpZWxkKCkpOwogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkLCBvYmplY3QuaXNTZWxlY3RlZCgpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTbGlkZXIsIG9iamVjdC5pc1NsaWRlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNTdHlsZUZvcm1hdEdyb3VwLCBvYmpl
Y3QuaXNTdHlsZUZvcm1hdEdyb3VwKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDIy
NTAxMDhjYjZlZC4uY2E2M2RmOWZhYTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC0x
MTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzSGVhZGluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNIZWFkaW5n
KTsgfQogICAgIGJvb2wgaXNMYW5kbWFyaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNMYW5kbWFyayk7IH0KICAgICBib29sIGlz
TGluaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3Bl
cnR5TmFtZTo6SXNMaW5rKTsgfQotICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1Bhc3N3
b3JkRmllbGQpOyB9CisgICAgYm9vbCBpc1NlY3VyZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc1NlY3VyZUZpZWxkKTsg
fQogICAgIGJvb2wgaXNBdHRhY2htZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0
dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0F0dGFjaG1lbnQpOyB9CiAgICAgYm9vbCBp
c01lbnVSZWxhdGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVl
KEFYUHJvcGVydHlOYW1lOjpJc01lbnVSZWxhdGVkKTsgfQogICAgIGJvb2wgaXNNZW51KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJ
c01lbnUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAppbmRleCBmYTI2YjI3MzczNDEuLjM2MzQzNjM4
ZGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBAIC0xNjQsMTEgKzE2NCwxMSBAQCBlbnVtIGNs
YXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3QgewogICAgIElzTWVudUxpc3RQb3B1cCwKICAg
ICBJc01lbnVSZWxhdGVkLAogICAgIElzTXVsdGlTZWxlY3RhYmxlLAotICAgIElzUGFzc3dvcmRG
aWVsZCwKICAgICBJc1ByZXNzZWQsCiAgICAgSXNQcm9ncmVzc0luZGljYXRvciwKICAgICBJc1Jl
cXVpcmVkLAogICAgIElzU2Nyb2xsYmFyLAorICAgIElzU2VjdXJlRmllbGQsCiAgICAgSXNTZWxl
Y3RlZCwKICAgICBJc1NlbGVjdGVkT3B0aW9uQWN0aXZlLAogICAgIElzU2xpZGVyLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVj
dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlP
YmplY3RNYWMubW0KaW5kZXggNWZiMDBiZDllODk0Li40MWFiMGFjOTE3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9i
amVjdE1hYy5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogCiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVj
dDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKIHsKLSAgICBpZiAoaXNQYXNzd29yZEZp
ZWxkKCkpCisgICAgaWYgKGlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNz
aWJpbGl0eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7CiAgICAgaWYgKGlzU2VhcmNoRmllbGQoKSkK
ICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlYXJjaEZpZWxkU3Vicm9sZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2Vi
QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggYTRjNTViYmQyNWYyLi5mNzNl
MWRmYzFjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0x
MTExLDcgKzExMTEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAg
ICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsK
ICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAgICB9KCk7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkIHBhc3N3b3JkRmllbGRBdHRycyA9IFtdIHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQgc2VjdXJlRmllbGRBdHRyaWJ1dGVzID0gW10gewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVz
LmdldCgpLmdldCgpXSk7CiAgICAgICAgIFt0ZW1wQXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJp
bGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmpl
Y3Q6TlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRBdHRyaWJ1dGVdOwpAQCAtMTE2Niw4ICsxMTY2LDgg
QEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAKICAgICBOU0FycmF5ICpv
YmplY3RBdHRyaWJ1dGVzID0gYXR0cmlidXRlcy5nZXQoKS5nZXQoKTsKIAotICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKLSAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9
IHBhc3N3b3JkRmllbGRBdHRycy5nZXQoKS5nZXQoKTsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+
aXNTZWN1cmVGaWVsZCgpKQorICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gc2VjdXJlRmllbGRB
dHRyaWJ1dGVzLmdldCgpLmdldCgpOwogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzV2Vi
QXJlYSgpKQogICAgICAgICBvYmplY3RBdHRyaWJ1dGVzID0gd2ViQXJlYUF0dHJzLmdldCgpLmdl
dCgpOwogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKQEAgLTE2
NjgsNyArMTY2OCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAg
IH0KIAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmls
aXR5VmlzaWJsZUNoYXJhY3RlclJhbmdlQXR0cmlidXRlXSkgewotICAgICAgICBpZiAoYmFja2lu
Z09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5p
c1NlY3VyZUZpZWxkKCkpCiAgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICAvLyBGSVhN
RTogR2V0IGFjdHVhbCB2aXNpYmxlIHJhbmdlLiA8cmRhcjovL3Byb2JsZW0vNDcxMjEwMT4KICAg
ICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzVGV4dENvbnRyb2woKSkKQEAgLTI0NzcsNyArMjQ3
Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgICAgICB3ZWJB
cmVhUGFyYW1BdHRycyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhBcnJheTp0ZW1wQXJyYXku
Z2V0KCldOwogICAgIH0KIAotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQo
KSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1
cm4gQFsgTlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50c0ZvclNlYXJjaFByZWRpY2F0ZVBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGUgXTsKIAogICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1RleHRDb250cm9s
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAzMTA0ZmMw
YmVhMDMuLjRjMjYwZmZmZTU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0xNDAwLDYgKzE0MDAsOSBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEF1
dG9GaWxsZWRBbmRPYnNjdXJlZChib29sIGF1dG9GaWxsZWRBbmRPYnNjdXJlZCkKIAogICAgIFN0
eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbiBzdHlsZUludmFsaWRhdGlvbigqdGhp
cywgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQXV0b2ZpbGxBbmRPYnNjdXJlZCwgYXV0b0ZpbGxl
ZEFuZE9ic2N1cmVkKTsKICAgICBtX2lzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkID0gYXV0b0ZpbGxl
ZEFuZE9ic2N1cmVkOworCisgICAgaWYgKGF1dG8qIGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGlu
Z0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgY2FjaGUtPm9uVGV4dFNlY3VyaXR5Q2hhbmdlZCgq
dGhpcyk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0U2hvd0F1dG9GaWxsQnV0dG9u
KEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1dHRvblR5cGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IGIxOTdlZjk0NzEwNy4uYmQxMjA4NTcxNDc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdDsKICAg
ICBib29sIGlzSW5wdXRUeXBlSGlkZGVuKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25z
dCB7IHJldHVybiBpc1Bhc3N3b3JkRmllbGQoKSB8fCBpc0F1dG9GaWxsZWRBbmRPYnNjdXJlZCgp
OyB9CiAgICAgYm9vbCBpc0NoZWNrYm94KCkgY29uc3Q7CiAgICAgYm9vbCBpc1JhbmdlQ29udHJv
bCgpIGNvbnN0OwogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjQ3ZWY2NGZhNTEyLi4wMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1
ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi0KLVRoaXMgdGVz
dHMgdGhhdCB0aGUgQVggZXhwb3NlZCB2YWx1ZSBvZiBhIHBhc3N3b3JkIGZpZWxkIGlzIHRoZSBy
ZW5kZXJlZCB0ZXh0LgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUGFzc3dvcmQg
ZmllbGQ6IEFYVmFsdWU6IOKAouKAouKAouKAogotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDdkZTViZDEzNWE2Li4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9k
eSI+Ci0KLTxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3MiIHZhbHVlPSJ0ZXN0Ij4KLQot
PHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNj
cmlwdD4KLQotICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQg
dmFsdWUgb2YgYSBwYXNzd29yZCBmaWVsZCBpcyB0aGUgcmVuZGVyZWQgdGV4dC4iKTsKLQotICAg
IGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpCi0gICAgICAgIGRlYnVnKCJQYXNz
d29yZCBmaWVsZDogIiArIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgicGFzcyIpLnN0cmluZ1ZhbHVlKTsKLSAgICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQo
IlRoaXMgdGVzdCBkZXBlbmRzIG9uIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLCBwbGVhc2UgdXNl
IHJ1bi13ZWJraXQtdGVzdHMgdG8gcnVuIGl0LiIpOwotICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9
IHRydWU7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYjg2YmQ0MDQ2ZWEKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1
ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBl
eHBvc2VkIHZhbHVlIG9mIHNlY3VyZSBpbnB1dHMgaXMgdGhlIHJlbmRlcmVkIChhbmQgdGhlcmVm
b3JlIGNlbnNvcmVkKSB0ZXh0LgorCitQYXNzd29yZCBmaWVsZCB2YWx1ZTogQVhWYWx1ZTog4oCi
4oCi4oCi4oCiCisjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYmVmb3JlIGJlaW5nIG9ic2N1cmVkOiBB
WFZhbHVlOiBmb28KK01ha2luZyAjYXV0b2ZpbGwtaW5wdXQgb2JzY3VyZWQuCisjYXV0b2ZpbGwt
aW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgb2JzY3VyZWQ6IEFYVmFsdWU6IOKAouKAouKAogorTWFr
aW5nICNhdXRvZmlsbC1pbnB1dCB2aWV3YWJsZS4KKyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRl
ciBiZWluZyBtYWRlIHZpZXdhYmxlOiBBWFZhbHVlOiBmb28KKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMC4uMTRkNTM4ODlmMzdkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbApAQCAtMCwwICsxLDQz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBl
ci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxpbnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBh
c3N3b3JkLWlucHV0IiB2YWx1ZT0idGVzdCI+Cis8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImF1dG9m
aWxsLWlucHV0IiB2YWx1ZT0iZm9vIj4KKworPHNjcmlwdD4KK3ZhciBvdXRwdXQgPSAiVGhpcyB0
ZXN0cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVlIG9mIHNlY3VyZSBpbnB1dHMgaXMgdGhlIHJl
bmRlcmVkIChhbmQgdGhlcmVmb3JlIGNlbnNvcmVkKSB0ZXh0LlxuXG4iOworCitpZiAod2luZG93
LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgY29uc3QgYXV0b2ZpbGxJbnB1dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKTsKKyAgICBsZXQgbGFzdEF1
dG9maWxsVmFsdWUgPSBhdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlOworICAgIG91dHB1dCArPSBg
UGFzc3dvcmQgZmllbGQgdmFsdWU6ICR7YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJs
ZUVsZW1lbnRCeUlkKCJwYXNzd29yZC1pbnB1dCIpLnN0cmluZ1ZhbHVlfVxuYDsKKyAgICBvdXRw
dXQgKz0gYCNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBiZWZvcmUgYmVpbmcgb2JzY3VyZWQ6ICR7bGFz
dEF1dG9maWxsVmFsdWV9XG5gOworCisgICAgb3V0cHV0ICs9ICJNYWtpbmcgI2F1dG9maWxsLWlu
cHV0IG9ic2N1cmVkLlxuIjsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRP
YnNjdXJlZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKSwgdHJ1ZSk7
CisgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlvbigpIHsKKyAgICAgICAgYXdhaXQgd2FpdEZv
cigoKSA9PiBsYXN0QXV0b2ZpbGxWYWx1ZSAhPT0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZSk7
CisgICAgICAgIGxhc3RBdXRvZmlsbFZhbHVlID0gYXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZTsK
KyAgICAgICAgb3V0cHV0ICs9IGAjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgb2Jz
Y3VyZWQ6ICR7YXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZX1cbmA7CisKKyAgICAgICAgb3V0cHV0
ICs9ICJNYWtpbmcgI2F1dG9maWxsLWlucHV0IHZpZXdhYmxlLlxuIjsKKyAgICAgICAgd2luZG93
LmludGVybmFscy5zZXRBdXRvRmlsbGVkQW5kT2JzY3VyZWQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImF1dG9maWxsLWlucHV0IiksIGZhbHNlKTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRBdXRvRmlsbGVkQW5kVmlld2FibGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9maWxs
LWlucHV0IiksIHRydWUpOworICAgICAgICBhd2FpdCB3YWl0Rm9yKCgpID0+IGxhc3RBdXRvZmls
bFZhbHVlICE9PSBhdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlKTsKKyAgICAgICAgb3V0cHV0ICs9
IGAjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgbWFkZSB2aWV3YWJsZTogJHthdXRv
ZmlsbElucHV0LnN0cmluZ1ZhbHVlfVxuYDsKKworICAgICAgICBkZWJ1ZyhvdXRwdXQpOworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465318</attachid>
            <date>2023-03-06 10:56:14 -0800</date>
            <delta_ts>2023-03-06 10:58:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230306105613.patch</filename>
            <type>text/plain</type>
            <size>37828</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA4NTZiODY0YTFiM2UwZjhkMjNkOWMyNGI1ZGY0YTJkNjM3OWNlYjNmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBDaHJpcyBGbGVpemFjaCBhbmQgQW5kcmVzIEdvbnphbGV6LgoKQWNjZXNzaWJpbGl0
eSBBUElzIHNob3VsZCBub3QgZXhwb3NlIHNlY3VyZSB0ZXh0IG9ic2N1cmVkIGJ5IEhUTUxJbnB1
dEVsZW1lbnQ6OmlzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlz
IGJ5IGNoYW5naW5nIGBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGRgIHRvIGFs
c28gY2hlY2sgZm9yCmBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxsZWRBbmRPYnNjdXJlZGAu
IFRoaXMgbWV0aG9kIGFuZCBhbGwgc2ltaWxhcmx5IG5hbWVkIG1ldGhvZHMgaGF2ZQpiZWVuIHJl
bmFtZWQgdG8gdXNlICJzZWN1cmUiIGluc3RlYWQgb2YgInBhc3N3b3JkIiAoZS5nLiBgaXNTZWN1
cmVGaWVsZGAgaW5zdGVhZCBvZiBgaXNQYXNzd29yZEZpZWxkYCkKdG8gZW5jYXBzdWxhdGUgdGhl
IHdpZGVuaW5nIG9mIHRoaXMgYWJzdHJhY3Rpb24uCgpOZXcgdGVzdGNhc2VzIGFkZGVkIHRvIGFj
Y2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbCB0byB0ZXN0IHRoaXMgYmVoYXZp
b3IuCgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhw
ZWN0ZWQudHh0OgpSZW5hbWVkIHRvIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZp
ZWxkLXZhbHVlLWV4cGVjdGVkLnR4dC4KKiBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3
b3JkLWZpZWxkLXZhbHVlLmh0bWw6ClJlbmFtZWQgdG8gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbC4KKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYTG9nZ2VyLmNwcDoKKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpv
blRleHRTZWN1cml0eUNoYW5nZWQpOgooV2ViQ29yZTo6aXNTZWN1cmVGaWVsZE9yQ29udGFpbmVk
QnlTZWN1cmVGaWVsZCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29y
ZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRN
YXJrZXJEYXRhRm9yQ2hhcmFjdGVyT2Zmc2V0KToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRl
eHRNYXJrZXJEYXRhRm9yVmlzaWJsZVBvc2l0aW9uKToKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
OnRleHRNYXJrZXJEYXRhRm9yRmlyc3RQb3NpdGlvbkluVGV4dENvbnRyb2wpOgooV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToKKFdlYkNvcmU6OmlzUGFzc3dvcmRG
aWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Om9uVGV4dFNlY3VyaXR5Q2hhbmdlZCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6aXNTZWN1cmVGaWVsZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6aXNQYXNzd29yZEZpZWxkIGNvbnN0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9ubHkgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU9iamVjdDo6aW5zZXJ0VGV4dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpp
c0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oOgooV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6c2VjdXJlRmllbGRWYWx1ZSBjb25zdCk6CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpwYXNzd29yZEZpZWxkVmFsdWUgY29uc3QpOiBEZWxldGVkLgoq
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9i
amVjdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1
ZSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp0ZXh0IGNvbnN0
KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dCBjb25z
dCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHRSYW5n
ZSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5n
Rm9yUmFuZ2UgY29uc3QpOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2Vj
dXJlRmllbGRWYWx1ZSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjpwYXNzd29yZEZpZWxkVmFsdWUgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW06CihXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgpOgooV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eVBhc3N3b3JkRmllbGRMZW5n
dGgpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL1dlYkFjY2Vz
c2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tOgooLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3Jh
cHBlciBfYWNjZXNzaWJpbGl0eVRleHRFbnRyeVRyYWl0c10pOgooLVtXZWJBY2Nlc3NpYmlsaXR5
T2JqZWN0V3JhcHBlciBfYWNjZXNzaWJpbGl0eUlzU3Ryb25nUGFzc3dvcmRGaWVsZF0pOgooLVtX
ZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBhY2Nlc3NpYmlsaXR5VmFsdWVdKToKKiBTb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cDoKKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQcm9wZXJ0aWVzKToKKiBT
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5
T2JqZWN0TWFjLm1tOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRm
b3JtU3RyaW5nIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5EXSk6CigtW1dlYkFj
Y2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToK
KiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgooV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6c2V0QXV0b0ZpbGxlZEFuZE9ic2N1cmVkKToKKiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omlz
U2VjdXJlRmllbGQgY29uc3QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwICAgICB8ICAzICsrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwICAgfCAyNCArKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmggIHwgIDMgKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcCB8IDExICsrLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdC5oICAgfCAgMiArLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdC5jcHAgICAgIHwgMTAgKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlPYmplY3QuaCAgICAgICB8ICA4ICsrLS0KIC4uLi9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJm
YWNlLmggICAgICAgICAgICB8ICA0ICstCiAuLi4vQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5j
cHAgICAgICAgICAgICAgfCAxOCArKysrLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5oIHwgIDIgKy0KIC4uLi9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGkuY3BwICAgICAgICB8ICA0ICstCiAuLi4vYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRl
eHRBdHNwaS5jcHAgICAgfCAgMiArLQogLi4uL2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1t
ICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJJT1MubW0gICB8IDEwICsrLS0tCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3Qu
Y3BwICAgICAgICAgfCAgMiArLQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0Lmgg
ICAgICAgICAgIHwgIDIgKy0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaCAgICAg
ICAgICAgICB8ICAyICstCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gICAgICAg
ICAgICAgfCAgMiArLQogLi4uL21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSAgIHwgMTAgKystLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
ICAgICB8ICAzICsrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCAgICAg
ICAgfCAgMSArCiAuLi4vcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0ICAgICAgICAg
fCAxMSAtLS0tLQogLi4uL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbCAg
IHwgMjcgLS0tLS0tLS0tLS0tCiAuLi4vc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dCAg
ICAgICAgICAgfCAxMyArKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1
ZS5odG1sICAgICB8IDQzICsrKysrKysrKysrKysrKysrKysKIDI1IGZpbGVzIGNoYW5nZWQsIDEy
OCBpbnNlcnRpb25zKCspLCA5MyBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dAog
ZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmll
bGQtdmFsdWUuaHRtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2liaWxp
dHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLmh0bWwKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IGEzNTdlNmJjOTliNi4uYjJi
Y2U4MDY1ODc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9n
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApA
QCAtNjEzLDYgKzYxMyw5IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbiBub3RpZmljCiAgICAgY2FzZSBBWE9i
amVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhUZXh0Q2hhbmdlZDoKICAgICAgICAgc3RyZWFt
IDw8ICJBWFRleHRDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBBWE9iamVjdENh
Y2hlOjpBWE5vdGlmaWNhdGlvbjo6QVhUZXh0U2VjdXJpdHlDaGFuZ2VkOgorICAgICAgICBzdHJl
YW0gPDwgIkFYVGV4dFNlY3VyaXR5Q2hhbmdlZCI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb246OkFYRWxlbWVudEJ1c3lDaGFuZ2VkOgogICAg
ICAgICBzdHJlYW0gPDwgIkFYRWxlbWVudEJ1c3lDaGFuZ2VkIjsKICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCBh
YmQ4MGI1MmE1NjMuLmRiZDE0NzcxNWY4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0xNDY2LDYgKzE0NjYsMTUgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpvblNlbGVjdGVkQ2hhbmdlZChOb2RlKiBub2RlKQogICAgIGhhbmRsZU1lbnVJ
dGVtU2VsZWN0ZWQobm9kZSk7CiB9CiAKK3ZvaWQgQVhPYmplY3RDYWNoZTo6b25UZXh0U2VjdXJp
dHlDaGFuZ2VkKEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0RWxlbWVudCkKK3sKKyNpZiBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorICAgIHVwZGF0ZUlzb2xhdGVkVHJlZShnZXQo
JmlucHV0RWxlbWVudCksIEFYVGV4dFNlY3VyaXR5Q2hhbmdlZCk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTShpbnB1dEVsZW1lbnQpOworI2VuZGlmCit9CisKIHZvaWQgQVhPYmplY3RDYWNoZTo6
b25UaXRsZUNoYW5nZShEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgcG9zdE5vdGlmaWNhdGlv
bihnZXQoJmRvY3VtZW50KSwgbnVsbHB0ciwgQVhUZXh0Q2hhbmdlZCk7CkBAIC0xNjA2LDkgKzE2
MTUsOSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNldElzU3luY2hyb25pemluZ1NlbGVjdGlvbihi
b29sIGlzU3luY2hyb25pemluZykKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotc3RhdGljIGJv
b2wgaXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQoQWNjZXNzaWJpbGl0
eU9iamVjdCogb2JqZWN0KQorc3RhdGljIGJvb2wgaXNTZWN1cmVGaWVsZE9yQ29udGFpbmVkQnlT
ZWN1cmVGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgcmV0dXJuIG9i
amVjdCAmJiAob2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSB8fCBvYmplY3QtPmlzQ29udGFpbmVk
QnlQYXNzd29yZEZpZWxkKCkpOworICAgIHJldHVybiBvYmplY3QgJiYgKG9iamVjdC0+aXNTZWN1
cmVGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVNlY3VyZUZpZWxkKCkpOwogfQogI2Vu
ZGlmCiAKQEAgLTE2NjgsNyArMTY3Nyw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsCiAjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKICAgICBpZiAob2JqZWN0KSB7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgICAgIGlmIChpc1Bhc3N3b3JkRmllbGRPckNvbnRhaW5lZEJ5UGFz
c3dvcmRGaWVsZChvYmplY3QpKQorICAgICAgICBpZiAoaXNTZWN1cmVGaWVsZE9yQ29udGFpbmVk
QnlTZWN1cmVGaWVsZChvYmplY3QpKQogICAgICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAgICAg
ICAgIGlmIChhdXRvIG9ic2VydmFibGVPYmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3Qo
KSkKQEAgLTE3NzIsNyArMTc4MSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRSZXBs
YWNlbWVudE5vdGlmaWNhdGlvbkZvclRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvCiBib29sIEFY
T2JqZWN0Q2FjaGU6OmVucXVldWVQYXNzd29yZFZhbHVlQ2hhbmdlTm90aWZpY2F0aW9uKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBpZiAo
IWlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVjdCkpCisgICAg
aWYgKCFpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKG9iamVjdCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFjY2Vzc2liaWxpdHlPYmplY3QqIG9ic2VydmFibGVP
YmplY3QgPSBvYmplY3QtPm9ic2VydmFibGVPYmplY3QoKTsKQEAgLTI1MzIsNyArMjU0MSw3IEBA
IFRleHRNYXJrZXJEYXRhIEFYT2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yQ2hhcmFjdGVy
T2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9mCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4oY2hhcmFjdGVyT2Zmc2V0Lm5vZGUpCi0gICAgICAgICYmIGRv
d25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpjaGFyYWN0ZXJPZmZzZXQubm9kZSkuaXNQYXNzd29y
ZEZpZWxkKCkpCisgICAgICAgICYmIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpjaGFyYWN0
ZXJPZmZzZXQubm9kZSkuaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4geyAqdGhpcywg
eyB9LCB0cnVlIH07CiAKICAgICBzZXROb2RlSW5Vc2UoY2hhcmFjdGVyT2Zmc2V0Lm5vZGUpOwpA
QCAtMjgwMSw3ICsyODEwLDcgQEAgc3RkOjpvcHRpb25hbDxUZXh0TWFya2VyRGF0YT4gQVhPYmpl
Y3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JWaXNpYmxlUG9zaXRpb24oY28KICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKLSAgICBpZiAoaXM8SFRNTElucHV0
RWxlbWVudD4obm9kZSkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5vZGUpLmlzUGFz
c3dvcmRGaWVsZCgpKQorICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSAmJiBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgLy8gSWYgdGhlIHZpc2libGUgcG9zaXRpb24gaGFz
IGFuIGFuY2hvciB0eXBlIHJlZmVycmluZyB0byBhIG5vZGUgb3RoZXIgdGhhbiB0aGUgYW5jaG9y
ZWQgbm9kZSwgd2Ugc2hvdWxkCkBAIC0yODIxLDcgKzI4MzAsNyBAQCBzdGQ6Om9wdGlvbmFsPFRl
eHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvclZpc2libGVQb3Np
dGlvbihjbwogLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgYXMgYSBwZXJmb3JtYW5jZSBvcHRpbWl6
YXRpb24gdG8gYXZvaWQgYSBzeW5jaHJvbm91cyBsYXlvdXQuCiBzdGQ6Om9wdGlvbmFsPFRleHRN
YXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFya2VyRGF0YUZvckZpcnN0UG9zaXRpb25J
blRleHRDb250cm9sKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50JiB0ZXh0Q29udHJvbCkKIHsK
LSAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYmIGRvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KHRleHRDb250cm9sKS5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAo
aXM8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRyb2wpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KHRleHRDb250cm9sKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKICAgICBhdXRvKiBjYWNoZSA9IHRleHRDb250cm9sLmRvY3VtZW50KCkuYXhP
YmplY3RDYWNoZSgpOwpAQCAtMzc0OSw2ICszNzU4LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QWNjZXNzaWJp
bGkKICAgICAgICAgY2FzZSBBWFJvd1NwYW5DaGFuZ2VkOgogICAgICAgICBjYXNlIEFYU2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhUZXh0Q2hhbmdlZDoKKyAgICAgICAg
Y2FzZSBBWFRleHRTZWN1cml0eUNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhWYWx1ZUNoYW5nZWQ6
CiAgICAgICAgICAgICB1cGRhdGVOb2RlKG5vdGlmaWNhdGlvbi5maXJzdCk7CiAgICAgICAgICAg
ICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggNDA1ZGU2NzcwNGU2Li41MjI4ZmRhMGUwMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNzksNiArMTc5LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqKTsKICAgICB2b2lk
IG9uRm9jdXNDaGFuZ2UoTm9kZSogb2xkRm9jdXNlZE5vZGUsIE5vZGUqIG5ld0ZvY3VzZWROb2Rl
KTsKICAgICB2b2lkIG9uU2VsZWN0ZWRDaGFuZ2VkKE5vZGUqKTsKKyAgICB2b2lkIG9uVGV4dFNl
Y3VyaXR5Q2hhbmdlZChIVE1MSW5wdXRFbGVtZW50Jik7CiAgICAgdm9pZCBvblRpdGxlQ2hhbmdl
KERvY3VtZW50Jik7CiAgICAgdm9pZCBvblZhbGlkaXR5Q2hhbmdlKEVsZW1lbnQmKTsKICAgICB2
b2lkIHZhbHVlQ2hhbmdlZChFbGVtZW50Kik7CkBAIC0zNTYsNiArMzU3LDcgQEAgcHVibGljOgog
ICAgICAgICBBWFJlcXVpcmVkU3RhdHVzQ2hhbmdlZCwKICAgICAgICAgQVhTb3J0RGlyZWN0aW9u
Q2hhbmdlZCwKICAgICAgICAgQVhUZXh0Q2hhbmdlZCwKKyAgICAgICAgQVhUZXh0U2VjdXJpdHlD
aGFuZ2VkLAogICAgICAgICBBWEVsZW1lbnRCdXN5Q2hhbmdlZCwKICAgICAgICAgQVhEcmFnZ2lu
Z1N0YXJ0ZWQsCiAgICAgICAgIEFYRHJhZ2dpbmdFbmRlZCwKQEAgLTY2OSw2ICs2NzEsNyBAQCBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoTm9kZSosIE5vZGUqKSB7
IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChSZW5kZXJPYmpl
Y3QqLCBSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OmNoaWxk
cmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpvblNlbGVjdGVkQ2hhbmdlZChOb2RlKikgeyB9CitpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpvblRleHRTZWN1cml0eUNoYW5nZWQoSFRNTElucHV0RWxlbWVudCYpIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25UaXRsZUNoYW5nZShEb2N1bWVudCYpIHsgfQogaW5s
aW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6b25WYWxpZGl0eUNoYW5nZShFbGVtZW50JikgeyB9CiBp
bmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjp2YWx1ZUNoYW5nZWQoRWxlbWVudCopIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcAppbmRleCA3ZmE0NzJhOTgwZGIuLjBiN2M2NGJiZTM0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5jcHAKQEAgLTYzOSwxNiArNjM5LDEzIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmlzTmF0aXZlSW1hZ2UoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNQYXNzd29yZEZpZWxkKCkgY29uc3QKK2Jvb2wgQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3Q6OmlzU2VjdXJlRmllbGQoKSBjb25zdAogewotICAgIGF1dG8qIG5v
ZGUgPSB0aGlzLT5ub2RlKCk7Ci0gICAgaWYgKCFpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSkK
KyAgICBSZWZQdHIgaW5wdXQgPSBkeW5hbWljRG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4obm9k
ZSgpKTsKKyAgICBpZiAoIWlucHV0IHx8IGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlVua25vd24pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChhcmlh
Um9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm5v
ZGUpLmlzUGFzc3dvcmRGaWVsZCgpOworICAgIHJldHVybiBpbnB1dC0+aXNTZWN1cmVGaWVsZCgp
OwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc0lucHV0SW1hZ2UoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5oCmluZGV4IDkzM2YxZjUyN2M4NS4uM2JkZWJlZTE1N2JhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dC5oCkBAIC02OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzTXVsdGlTZWxlY3RhYmxl
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc05hdGl2ZUltYWdlKCkgY29uc3Q7CiAgICAg
Ym9vbCBpc05hdGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Bh
c3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBj
b25zdCBvdmVycmlkZTsKICAgICBib29sIGlzUHJvZ3Jlc3NJbmRpY2F0b3IoKSBjb25zdCBvdmVy
cmlkZTsKICAgICBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCBvdmVycmlkZTsKICAgICBib29s
IGlzU2xpZGVyKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCBmZjQyMjU2NTdmZjEuLjY3
ZjRiNjZkNzNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xNjkzLDcgKzE2OTMsNyBAQCBib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdAogICAgICAgICB8fCByb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2gKICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGV4dEZpZWxkCiAgICAgICAgIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OlRyZWVHcmlkCi0gICAgICAgIHx8IGlzUGFzc3dvcmRGaWVsZCgpOworICAgICAgICB8fCBpc1Nl
Y3VyZUZpZWxkKCk7CiB9CiAKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWFkT25seVZh
bHVlKCkgY29uc3QKQEAgLTIzMzAsOCArMjMzMCw4IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6aW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmIHRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSgpKTsKLSAgICAv
LyBPbmx5IHRyeSB0byBpbnNlcnQgdGV4dCBpZiB0aGUgZmllbGQgaXMgaW4gZWRpdGluZyBtb2Rl
IChleGNsdWRpbmcgcGFzc3dvcmQgZmllbGRzLCB3aGljaCB3ZSBkbyBzdGlsbCB3YW50IHRvIHRy
eSB0byBpbnNlcnQgaW50bykuCi0gICAgaWYgKCFpc1Bhc3N3b3JkRmllbGQoKSAmJiAhZWxlbWVu
dC5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKQorICAgIC8vIE9ubHkgdHJ5IHRvIGluc2VydCB0ZXh0
IGlmIHRoZSBmaWVsZCBpcyBpbiBlZGl0aW5nIG1vZGUgKGV4Y2x1ZGluZyBzZWN1cmUgZmllbGRz
LCB3aGljaCB3ZSBkbyBzdGlsbCB3YW50IHRvIHRyeSB0byBpbnNlcnQgaW50bykuCisgICAgaWYg
KCFpc1NlY3VyZUZpZWxkKCkgJiYgIWVsZW1lbnQuc2hvdWxkVXNlSW5wdXRNZXRob2QoKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gVXNlIEVkaXRvcjo6aW5zZXJ0VGV4dCB0byBt
aW1pYyB0eXBpbmcgaW50byB0aGUgZmllbGQuCkBAIC0zODY4LDcgKzM4NjgsNyBAQCBib29sIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmlzT3V0cHV0KCkgY29uc3QKICAgICByZXR1cm4gbm9kZSAmJiBu
b2RlLT5oYXNUYWdOYW1lKG91dHB1dFRhZyk7CiB9CiAgICAgCi1ib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OmlzQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKCkgY29uc3QKK2Jvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6aXNDb250YWluZWRCeVNlY3VyZUZpZWxkKCkgY29uc3QKIHsKICAgICBOb2Rl
KiBub2RlID0gdGhpcy0+bm9kZSgpOwogICAgIGlmICghbm9kZSkKQEAgLTM4NzgsNyArMzg3OCw3
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSBjb25zdAogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBFbGVtZW50KiBlbGVtZW50ID0g
bm9kZS0+c2hhZG93SG9zdCgpOwotICAgIHJldHVybiBpczxIVE1MSW5wdXRFbGVtZW50PihlbGVt
ZW50KSAmJiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCkuaXNQYXNzd29yZEZp
ZWxkKCk7CisgICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1NlY3VyZUZpZWxkKCk7CiB9CiAgICAg
CiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzZWxlY3RlZExpc3RJ
dGVtKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmgKaW5kZXggMDM3ZTdhZWRiYzdmLi4wMjk0ZGY0ZWJlMzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC0xMjMs
OCArMTIzLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0F0dGFjaG1lbnRFbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGlzSGVhZGluZygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0xpbmsoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIGlzQ29udGFpbmVkQnlQYXNzd29yZEZp
ZWxkKCkgY29uc3Q7CisgICAgYm9vbCBpc1NlY3VyZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIGlzQ29udGFpbmVkQnlTZWN1cmVGaWVsZCgpIGNvbnN0
OwogICAgIGJvb2wgaXNOYXRpdmVUZXh0Q29udHJvbCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2VhcmNoRmllbGQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaXNMaXN0Qm94T3B0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTYwNSw3ICs2MDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBT
dHJpbmcgZGVzY3JpcHRpb25Gb3JNU0FBKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAg
ICB2aXJ0dWFsIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGVWYWx1ZUZvck1TQUEoKSBjb25zdCB7IHJl
dHVybiByb2xlVmFsdWUoKTsgfQogCi0gICAgdmlydHVhbCBTdHJpbmcgcGFzc3dvcmRGaWVsZFZh
bHVlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBzZWN1
cmVGaWVsZFZhbHVlKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH0KICAgICBib29sIGlzVmFs
dWVBdXRvZmlsbEF2YWlsYWJsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEF1dG9GaWxsQnV0dG9u
VHlwZSB2YWx1ZUF1dG9maWxsQnV0dG9uVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwogCkBAIC03Mjcs
NyArNzI3LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQot
ICAgIGludCBhY2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpIG92ZXJyaWRlOworICAg
IGludCBhY2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5ndGgoKSBvdmVycmlkZTsKICAgICBib29s
IGhhc1RvdWNoRXZlbnRMaXN0ZW5lcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNJbnB1
dFR5cGVQb3B1cEJ1dHRvbigpIGNvbnN0IG92ZXJyaWRlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVy
ZmFjZS5oCmluZGV4IGE4MzYzOTI0YjIyMy4uODVkY2YyOWFiY2Y3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRl
cmZhY2UuaApAQCAtODUwLDcgKzg1MCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW1hZ2UoKSBj
b25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U7IH0K
ICAgICBib29sIGlzSW1hZ2VNYXAoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6SW1hZ2VNYXA7IH0KICAgICBib29sIGlzVmlkZW8oKSBjb25zdCB7IHJl
dHVybiByb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW87IH0KLSAgICB2aXJ0
dWFsIGJvb2wgaXNQYXNzd29yZEZpZWxkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBp
c1NlY3VyZUZpZWxkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc05hdGl2ZVRleHRD
b250cm9sKCkgY29uc3QgPSAwOwogICAgIGJvb2wgaXNXZWJBcmVhKCkgY29uc3QgeyByZXR1cm4g
cm9sZVZhbHVlKCkgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWE7IH0KICAgICBib29sIGlz
Q2hlY2tib3goKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6Q2hlY2tCb3g7IH0KQEAgLTEzNzEsNyArMTM3MSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICB2aXJ0dWFsIGludCBhY2Nlc3NpYmlsaXR5UGFz
c3dvcmRGaWVsZExlbmd0aCgpID0gMDsKKyAgICB2aXJ0dWFsIGludCBhY2Nlc3NpYmlsaXR5U2Vj
dXJlRmllbGRMZW5ndGgoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc1RvdWNoRXZlbnRMaXN0
ZW5lcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNJbnB1dFR5cGVQb3B1cEJ1dHRv
bigpIGNvbnN0ID0gMDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggYzcyYjI1MmU1
NjkwLi5lZDllNmIyN2M3NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNzQ4LDggKzc0OCw4
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzdHJpbmdWYWx1ZSgpIGNvbnN0
CiAgICAgaWYgKCFtX3JlbmRlcmVyKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBp
ZiAoaXNQYXNzd29yZEZpZWxkKCkpCi0gICAgICAgIHJldHVybiBwYXNzd29yZEZpZWxkVmFsdWUo
KTsKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQorICAgICAgICByZXR1cm4gc2VjdXJlRmllbGRW
YWx1ZSgpOwogCiAgICAgaWYgKGlzQVJJQVN0YXRpY1RleHQoKSkgewogICAgICAgICBTdHJpbmcg
c3RhdGljVGV4dCA9IHRleHQoKTsKQEAgLTE1NzAsOCArMTU3MCw4IEBAIGludCBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpsYXlvdXRDb3VudCgpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojp0ZXh0KCkgY29uc3QKIHsKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxk
KCkpCi0gICAgICAgIHJldHVybiBwYXNzd29yZEZpZWxkVmFsdWUoKTsKKyAgICBpZiAoaXNTZWN1
cmVGaWVsZCgpKQorICAgICAgICByZXR1cm4gc2VjdXJlRmllbGRWYWx1ZSgpOwogICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6dGV4dCgpOwogfQogCkBAIC0xNTk2LDcgKzE1OTYs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0KCkgY29u
c3QKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29udHJvbCgpKTsKICAgICAKLSAgICBpZiAoaXNQYXNz
d29yZEZpZWxkKCkpCisgICAgaWYgKGlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIFN0
cmluZygpOyAvLyBuZWVkIHRvIHJldHVybiBzb21ldGhpbmcgZGlzdGluY3QgZnJvbSBlbXB0eSBz
dHJpbmcKICAgICAKICAgICBpZiAoaXNOYXRpdmVUZXh0Q29udHJvbCgpKSB7CkBAIC0xNjI4LDcg
KzE2MjgsNyBAQCBQbGFpblRleHRSYW5nZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxl
Y3RlZFRleHRSYW5nZSgpIGNvbnN0CiB7CiAgICAgQVNTRVJUKGlzVGV4dENvbnRyb2woKSk7CiAK
LSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGlzU2VjdXJlRmllbGQoKSkKICAg
ICAgICAgcmV0dXJuIFBsYWluVGV4dFJhbmdlKCk7CiAKICAgICAvLyBVc2UgdGhlIHRleHQgY29u
dHJvbCBuYXRpdmUgcmFuZ2UgaWYgaXQncyBhIG5hdGl2ZSBvYmplY3QuCkBAIC0yNDQ5LDcgKzI0
NDksNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZG9BWFN0cmluZ0ZvclJh
bmdlKGNvbnN0IFBsYWluVGV4dFJhbmdlJiByYW5nZQogICAgIGlmICghaXNUZXh0Q29udHJvbCgp
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgCi0gICAgU3RyaW5nIGVsZW1lbnRUZXh0
ID0gaXNQYXNzd29yZEZpZWxkKCkgPyBwYXNzd29yZEZpZWxkVmFsdWUoKSA6IHRleHQoKTsKKyAg
ICBTdHJpbmcgZWxlbWVudFRleHQgPSBpc1NlY3VyZUZpZWxkKCkgPyBzZWN1cmVGaWVsZFZhbHVl
KCkgOiB0ZXh0KCk7CiAgICAgcmV0dXJuIGVsZW1lbnRUZXh0LnN1YnN0cmluZyhyYW5nZS5zdGFy
dCwgcmFuZ2UubGVuZ3RoKTsKIH0KIApAQCAtMzUyNCw5ICszNTI0LDkgQEAgQWNjZXNzaWJpbGl0
eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcm9sZUZvck1TQUE7CiB9CiAKLVN0cmluZyBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdAorU3RyaW5nIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNlY3VyZUZpZWxkVmFsdWUoKSBjb25zdAogewotICAgIEFTU0VSVChp
c1Bhc3N3b3JkRmllbGQoKSk7CisgICAgQVNTRVJUKGlzU2VjdXJlRmllbGQoKSk7CiAKICAgICAv
LyBMb29rIGZvciB0aGUgUmVuZGVyVGV4dCBvYmplY3QgaW4gdGhlIFJlbmRlck9iamVjdCB0cmVl
IGZvciB0aGlzIGlucHV0IGZpZWxkLgogICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2Rl
KCktPnJlbmRlcmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5oCmluZGV4IDYzNTc1MDUwNGE1OC4uZWUzOGIz
ZTE0MWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuaApAQCAtMTc5LDcgKzE3OSw3IEBAIHB1YmxpYzoKICAg
ICBTdHJpbmcgZGVzY3JpcHRpb25Gb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0IG92ZXJyaWRlOwogCi0gICAgU3Ry
aW5nIHBhc3N3b3JkRmllbGRWYWx1ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFN0cmluZyBzZWN1
cmVGaWVsZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCB0aXRsZUVsZW1lbnRUZXh0
KFZlY3RvcjxBY2Nlc3NpYmlsaXR5VGV4dD4mKSBjb25zdCBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNw
aS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCmluZGV4IDY1ODdiZWY4YjZiNS4uMWYwNWVi
ZmUxNTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0Fj
Y2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuY3BwCkBAIC0xMjAwLDcgKzEyMDAs
NyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6bG9hZEV2ZW50KGNvbnN0IGNoYXIq
IGV2ZW50KQogCiBzdGQ6Om9wdGlvbmFsPEF0c3BpOjpSb2xlPiBBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OmVmZmVjdGl2ZVJvbGUoKSBjb25zdAogewotICAgIGlmIChtX2NvcmVPYmplY3QtPmlz
UGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChtX2NvcmVPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkK
ICAgICAgICAgcmV0dXJuIEF0c3BpOjpSb2xlOjpQYXNzd29yZFRleHQ7CiAKICAgICBhdXRvKiBs
aXZlT2JqZWN0ID0gZHluYW1pY0Rvd25jYXN0PEFjY2Vzc2liaWxpdHlPYmplY3Q+KG1fY29yZU9i
amVjdCk7CkBAIC0xNDIzLDcgKzE0MjMsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9u
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzTwogICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbjo6SWdub3JlT2JqZWN0Owog
CiAgICAgLy8gRW50cmllcyBhbmQgcGFzc3dvcmQgZmllbGRzIGhhdmUgZXh0cmFuZW91cyBjaGls
ZHJlbiB3aGljaCB3ZSB3YW50IHRvIGlnbm9yZS4KLSAgICBpZiAocGFyZW50LT5pc1Bhc3N3b3Jk
RmllbGQoKSB8fCBwYXJlbnQtPmlzVGV4dENvbnRyb2woKSkKKyAgICBpZiAocGFyZW50LT5pc1Nl
Y3VyZUZpZWxkKCkgfHwgcGFyZW50LT5pc1RleHRDb250cm9sKCkpCiAgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7CiAKICAgICAvLyBXZSBl
eHBvc2UgdGhlIHNsaWRlciBhcyBhIHdob2xlIGJ1dCBub3QgaXRzIHZhbHVlIGluZGljYXRvci4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJp
bGl0eU9iamVjdFRleHRBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0QXRzcGkuY3BwCmluZGV4IDQ0Njk5ZjY2OWEzNC4u
NmQ4OWFiZTY4ZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0
c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0QXRzcGkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVjdFRleHRBdHNwaS5jcHAKQEAg
LTM2NCw3ICszNjQsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6dGV4dEluc2Vy
dGVkKGNvbnN0IFN0cmluZyYgaW5zZXJ0ZWRUZXh0LCBjb25zdCBWaQogICAgIGF1dG8gdXRmMTZU
ZXh0ID0gdGV4dCgpOwogICAgIGF1dG8gdXRmOFRleHQgPSB1dGYxNlRleHQudXRmOCgpOwogICAg
IGF1dG8gdXRmMTZPZmZzZXQgPSBhZGp1c3RPdXRwdXRPZmZzZXQobV9jb3JlT2JqZWN0LT5pbmRl
eEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlvbiksIG1faGFzTGlzdE1hcmtlckF0U3RhcnQpOwot
ICAgIFN0cmluZyBtYXNrZWRUZXh0ID0gbV9jb3JlT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSA/
IHV0ZjE2VGV4dC5zdWJzdHJpbmcodXRmMTZPZmZzZXQgLSBpbnNlcnRlZFRleHQubGVuZ3RoKCks
IGluc2VydGVkVGV4dC5sZW5ndGgoKSkgOiBTdHJpbmcoKTsKKyAgICBTdHJpbmcgbWFza2VkVGV4
dCA9IG1fY29yZU9iamVjdC0+aXNTZWN1cmVGaWVsZCgpID8gdXRmMTZUZXh0LnN1YnN0cmluZyh1
dGYxNk9mZnNldCAtIGluc2VydGVkVGV4dC5sZW5ndGgoKSwgaW5zZXJ0ZWRUZXh0Lmxlbmd0aCgp
KSA6IFN0cmluZygpOwogICAgIGF1dG8gbWFwcGluZyA9IG9mZnNldE1hcHBpbmcodXRmMTZUZXh0
KTsKICAgICBhdXRvIG9mZnNldCA9IFVURjE2T2Zmc2V0VG9VVEY4KG1hcHBpbmcsIHV0ZjE2T2Zm
c2V0KTsKICAgICBhdXRvIHV0ZjhJbnNlcnRlZFRleHQgPSBtYXNrZWRUZXh0LmlzTnVsbCgpID8g
aW5zZXJ0ZWRUZXh0LnV0ZjgoKSA6IG1hc2tlZFRleHQudXRmOCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1Mu
bW0KaW5kZXggZDEwYTJmNzM3OWIxLi5lODQ0ODkwZTI2MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5t
bQpAQCAtODIsOSArODIsOSBAQCB2b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6Om92ZXJyaWRlQXR0
YWNobWVudFBhcmVudChBWENvcmVPYmplY3QqKQogfQogICAgIAogLy8gSW4gaVBob25lIG9ubHkg
Y29kZSBmb3Igbm93LiBJdCdzIGRlYmF0ZWFibGUgd2hldGhlciB0aGlzIGlzIGRlc2lyZWQgb24g
YWxsIHBsYXRmb3Jtcy4KLWludCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFz
c3dvcmRGaWVsZExlbmd0aCgpCitpbnQgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0
eVNlY3VyZUZpZWxkTGVuZ3RoKCkKIHsKLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZCgpKQorICAg
IGlmICghaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gMDsKICAgICBSZW5kZXJPYmpl
Y3QqIHJlbmRlck9iamVjdCA9IGRvd25jYXN0PEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+KCp0
aGlzKS5yZW5kZXJlcigpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJT1MubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklP
Uy5tbQppbmRleCBkZTFiMTQ0MWZmZGUuLmU5MmIyYjY0NjVkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJJ
T1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXJJT1MubW0KQEAgLTgxNCw3ICs4MTQsNyBAQCAtICh1aW50NjRfdClf
YWNjZXNzaWJpbGl0eVRleHRFbnRyeVRyYWl0cwogICAgIGF1dG8qIGJhY2tpbmdPYmplY3QgPSBz
ZWxmLmF4QmFja2luZ09iamVjdDsKICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNGb2N1c2VkKCkp
CiAgICAgICAgIHRyYWl0cyB8PSAoW3NlbGYgX2F4SGFzVGV4dEN1cnNvclRyYWl0XSB8IFtzZWxm
IF9heFRleHRPcGVyYXRpb25zQXZhaWxhYmxlVHJhaXRdKTsKLSAgICBpZiAoYmFja2luZ09iamVj
dC0+aXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzU2VjdXJlRmll
bGQoKSkKICAgICAgICAgdHJhaXRzIHw9IFtzZWxmIF9heFNlY3VyZVRleHRGaWVsZFRyYWl0XTsK
IAogICAgIHN3aXRjaCAoYmFja2luZ09iamVjdC0+cm9sZVZhbHVlKCkpIHsKQEAgLTExNzYsNyAr
MTE3Niw3IEBAIC0gKEJPT0wpX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3b3JkRmllbGQKICAg
ICBpZiAoIVtzZWxmIF9wcmVwYXJlQWNjZXNzaWJpbGl0eUNhbGxdKQogICAgICAgICByZXR1cm4g
Tk87CiAgICAgCi0gICAgaWYgKCFzZWxmLmF4QmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxk
KCkpCisgICAgaWYgKCFzZWxmLmF4QmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAg
ICAgICByZXR1cm4gTk87CiAgICAgCiAgICAgcmV0dXJuIHNlbGYuYXhCYWNraW5nT2JqZWN0LT52
YWx1ZUF1dG9maWxsQnV0dG9uVHlwZSgpID09IEF1dG9GaWxsQnV0dG9uVHlwZTo6U3Ryb25nUGFz
c3dvcmQ7CkBAIC0xNTYzLDEwICsxNTYzLDEwIEBAIC0gKE5TU3RyaW5nICopYWNjZXNzaWJpbGl0
eVZhbHVlCiAgICAgfQogCiAgICAgLy8gcmRhcjovLzgxMzEzODggV2ViS2l0IHNob3VsZCBleHBv
c2UgdGhlIHNhbWUgaW5mbyBhcyBVSUtpdCBmb3IgaXRzIHBhc3N3b3JkIGZpZWxkcy4KLSAgICBp
ZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmls
aXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSkgewotICAgICAgICBpbnQgcGFzc3dvcmRMZW5ndGgg
PSBiYWNraW5nT2JqZWN0LT5hY2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCgpOworICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkgJiYgIVtzZWxmIF9hY2Nlc3NpYmls
aXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSkgeworICAgICAgICBpbnQgc2VjdXJlVGV4dExlbmd0
aCA9IGJhY2tpbmdPYmplY3QtPmFjY2Vzc2liaWxpdHlTZWN1cmVGaWVsZExlbmd0aCgpOwogICAg
ICAgICBOU011dGFibGVTdHJpbmcqIHN0cmluZyA9IFtOU011dGFibGVTdHJpbmcgc3RyaW5nXTsK
LSAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBwYXNzd29yZExlbmd0aDsgKytrKQorICAgICAg
ICBmb3IgKGludCBrID0gMDsgayA8IHNlY3VyZVRleHRMZW5ndGg7ICsraykKICAgICAgICAgICAg
IFtzdHJpbmcgYXBwZW5kU3RyaW5nOkAi4oCiIl07CiAgICAgICAgIHJldHVybiBzdHJpbmc7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lz
b2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBmOTMzNTdlNmE1YjMuLjgwNGUw
NTM1MmM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTEwMiwxMSArMTAyLDEx
IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMoY29uc3QgUmVm
PEFjY2Vzc2liaWxpdHlPYmplY3Q+JiBheE9iCiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5h
bWU6OklzTWVudUxpc3RQb3B1cCwgb2JqZWN0LmlzTWVudUxpc3RQb3B1cCgpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNZW51UmVsYXRlZCwgb2JqZWN0LmlzTWVudVJlbGF0
ZWQoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzTXVsdGlTZWxlY3RhYmxl
LCBvYmplY3QuaXNNdWx0aVNlbGVjdGFibGUoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OklzUGFzc3dvcmRGaWVsZCwgb2JqZWN0LmlzUGFzc3dvcmRGaWVsZCgpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNQcmVzc2VkLCBvYmplY3QuaXNQcmVzc2VkKCkp
OwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1Byb2dyZXNzSW5kaWNhdG9yLCBv
YmplY3QuaXNQcm9ncmVzc0luZGljYXRvcigpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5
TmFtZTo6SXNSZXF1aXJlZCwgb2JqZWN0LmlzUmVxdWlyZWQoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OklzU2Nyb2xsYmFyLCBvYmplY3QuaXNTY3JvbGxiYXIoKSk7CisgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzU2VjdXJlRmllbGQsIG9iamVjdC5pc1NlY3Vy
ZUZpZWxkKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1NlbGVjdGVkLCBv
YmplY3QuaXNTZWxlY3RlZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNT
bGlkZXIsIG9iamVjdC5pc1NsaWRlcigpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6SXNTdHlsZUZvcm1hdEdyb3VwLCBvYmplY3QuaXNTdHlsZUZvcm1hdEdyb3VwKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5oCmluZGV4IDIyNTAxMDhjYjZlZC4uY2E2M2RmOWZhYTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRy
ZWUvQVhJc29sYXRlZE9iamVjdC5oCkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzSGVhZGluZygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1
ZShBWFByb3BlcnR5TmFtZTo6SXNIZWFkaW5nKTsgfQogICAgIGJvb2wgaXNMYW5kbWFyaygpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6
SXNMYW5kbWFyayk7IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNMaW5rKTsgfQotICAgIGJvb2wg
aXNQYXNzd29yZEZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpJc1Bhc3N3b3JkRmllbGQpOyB9CisgICAgYm9vbCBpc1NlY3Vy
ZUZpZWxkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpJc1NlY3VyZUZpZWxkKTsgfQogICAgIGJvb2wgaXNBdHRhY2htZW50KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJ
c0F0dGFjaG1lbnQpOyB9CiAgICAgYm9vbCBpc01lbnVSZWxhdGVkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc01lbnVSZWxhdGVk
KTsgfQogICAgIGJvb2wgaXNNZW51KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJp
YnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc01lbnUpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaApp
bmRleCBmYTI2YjI3MzczNDEuLjM2MzQzNjM4ZGFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCkBA
IC0xNjQsMTEgKzE2NCwxMSBAQCBlbnVtIGNsYXNzIEFYUHJvcGVydHlOYW1lIDogdWludDE2X3Qg
ewogICAgIElzTWVudUxpc3RQb3B1cCwKICAgICBJc01lbnVSZWxhdGVkLAogICAgIElzTXVsdGlT
ZWxlY3RhYmxlLAotICAgIElzUGFzc3dvcmRGaWVsZCwKICAgICBJc1ByZXNzZWQsCiAgICAgSXNQ
cm9ncmVzc0luZGljYXRvciwKICAgICBJc1JlcXVpcmVkLAogICAgIElzU2Nyb2xsYmFyLAorICAg
IElzU2VjdXJlRmllbGQsCiAgICAgSXNTZWxlY3RlZCwKICAgICBJc1NlbGVjdGVkT3B0aW9uQWN0
aXZlLAogICAgIElzU2xpZGVyLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXggNWZiMDBiZDllODk0
Li40MWFiMGFjOTE3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjIwLDcgKzIyMCw3IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAog
CiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29u
c3QKIHsKLSAgICBpZiAoaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKGlzU2VjdXJlRmllbGQo
KSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVNlY3VyZVRleHRGaWVsZFN1YnJvbGU7
CiAgICAgaWYgKGlzU2VhcmNoRmllbGQoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0
eVNlYXJjaEZpZWxkU3Vicm9sZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMu
bW0KaW5kZXggYTRjNTViYmQyNWYyLi5mNzNlMWRmYzFjYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0xMTExLDcgKzExMTEsNyBAQCBBTExPV19ERVBSRUNB
VEVEX0lNUExFTUVOVEFUSU9OU19FTkQKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNB
Y2Nlc3NpYmlsaXR5VVJMQXR0cmlidXRlXTsKICAgICAgICAgcmV0dXJuIHRlbXBBcnJheTsKICAg
ICB9KCk7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkIHBhc3N3b3JkRmllbGRBdHRycyA9IFtd
IHsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQgc2VjdXJlRmllbGRBdHRyaWJ1dGVzID0gW10g
ewogICAgICAgICBhdXRvIHRlbXBBcnJheSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxv
Y10gaW5pdFdpdGhBcnJheTphdHRyaWJ1dGVzLmdldCgpLmdldCgpXSk7CiAgICAgICAgIFt0ZW1w
QXJyYXkgYWRkT2JqZWN0Ok5TQWNjZXNzaWJpbGl0eVRpdGxlVUlFbGVtZW50QXR0cmlidXRlXTsK
ICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6TlNBY2Nlc3NpYmlsaXR5UmVxdWlyZWRBdHRy
aWJ1dGVdOwpAQCAtMTE2Niw4ICsxMTY2LDggQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRB
VElPTlNfRU5ECiAKICAgICBOU0FycmF5ICpvYmplY3RBdHRyaWJ1dGVzID0gYXR0cmlidXRlcy5n
ZXQoKS5nZXQoKTsKIAotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkK
LSAgICAgICAgb2JqZWN0QXR0cmlidXRlcyA9IHBhc3N3b3JkRmllbGRBdHRycy5nZXQoKS5nZXQo
KTsKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQorICAgICAgICBvYmpl
Y3RBdHRyaWJ1dGVzID0gc2VjdXJlRmllbGRBdHRyaWJ1dGVzLmdldCgpLmdldCgpOwogICAgIGVs
c2UgaWYgKGJhY2tpbmdPYmplY3QtPmlzV2ViQXJlYSgpKQogICAgICAgICBvYmplY3RBdHRyaWJ1
dGVzID0gd2ViQXJlYUF0dHJzLmdldCgpLmdldCgpOwogICAgIGVsc2UgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzVGV4dENvbnRyb2woKSkKQEAgLTE2NjgsNyArMTY2OCw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfSU1QTEVNRU5UQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChbYXR0cmlidXRlTmFtZSBp
c0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5VmlzaWJsZUNoYXJhY3RlclJhbmdlQXR0cmli
dXRlXSkgewotICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkpCisg
ICAgICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gbmlsOwogICAgICAgICAvLyBGSVhNRTogR2V0IGFjdHVhbCB2aXNpYmxlIHJhbmdlLiA8
cmRhcjovL3Byb2JsZW0vNDcxMjEwMT4KICAgICAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzVGV4
dENvbnRyb2woKSkKQEAgLTI0NzcsNyArMjQ3Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVN
RU5UQVRJT05TX0VORAogICAgICAgICB3ZWJBcmVhUGFyYW1BdHRycyA9IFtbTlNBcnJheSBhbGxv
Y10gaW5pdFdpdGhBcnJheTp0ZW1wQXJyYXkuZ2V0KCldOwogICAgIH0KIAotICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNT
ZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gQFsgTlNBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
c0ZvclNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgXTsKIAogICAgIGlmIChi
YWNraW5nT2JqZWN0LT5pc1RleHRDb250cm9sKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcAppbmRleCAzMTA0ZmMwYmVhMDMuLjRjMjYwZmZmZTU2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xNDAwLDYgKzE0MDAsOSBAQCB2
b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZChib29sIGF1dG9G
aWxsZWRBbmRPYnNjdXJlZCkKIAogICAgIFN0eWxlOjpQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRh
dGlvbiBzdHlsZUludmFsaWRhdGlvbigqdGhpcywgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQXV0
b2ZpbGxBbmRPYnNjdXJlZCwgYXV0b0ZpbGxlZEFuZE9ic2N1cmVkKTsKICAgICBtX2lzQXV0b0Zp
bGxlZEFuZE9ic2N1cmVkID0gYXV0b0ZpbGxlZEFuZE9ic2N1cmVkOworCisgICAgaWYgKGF1dG8q
IGNhY2hlID0gZG9jdW1lbnQoKS5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAgICAgY2Fj
aGUtPm9uVGV4dFNlY3VyaXR5Q2hhbmdlZCgqdGhpcyk7CiB9CiAKIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0U2hvd0F1dG9GaWxsQnV0dG9uKEF1dG9GaWxsQnV0dG9uVHlwZSBhdXRvRmlsbEJ1
dHRvblR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGIxOTdl
Zjk0NzEwNy4uYmQxMjA4NTcxNDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzU2VhcmNoRmllbGQoKSBjb25zdDsKICAgICBib29sIGlzSW5wdXRUeXBlSGlkZGVuKCkgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAg
ICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCB7IHJldHVybiBpc1Bhc3N3b3JkRmllbGQoKSB8
fCBpc0F1dG9GaWxsZWRBbmRPYnNjdXJlZCgpOyB9CiAgICAgYm9vbCBpc0NoZWNrYm94KCkgY29u
c3Q7CiAgICAgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0OwogI2lmIEVOQUJMRShJTlBVVF9U
WVBFX0NPTE9SKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29y
ZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bh
c3N3b3JkLWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMjQ3ZWY2NGZhNTEyLi4wMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSwxMSArMCwwIEBACi0KLVRoaXMgdGVzdHMgdGhhdCB0aGUgQVggZXhwb3NlZCB2YWx1ZSBv
ZiBhIHBhc3N3b3JkIGZpZWxkIGlzIHRoZSByZW5kZXJlZCB0ZXh0LgotCi1PbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCi0KLQotUGFzc3dvcmQgZmllbGQ6IEFYVmFsdWU6IOKAouKAouKAouKAogot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRt
bCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDdkZTViZDEzNWE2Li4wMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1s
CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4K
LTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3Jp
cHQ+Ci08L2hlYWQ+Ci08Ym9keSBpZD0iYm9keSI+Ci0KLTxpbnB1dCB0eXBlPSJwYXNzd29yZCIg
aWQ9InBhc3MiIHZhbHVlPSJ0ZXN0Ij4KLQotPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4KLQotICAgIGRlc2NyaXB0aW9uKCJUaGlz
IHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2YgYSBwYXNzd29yZCBmaWVsZCBpcyB0
aGUgcmVuZGVyZWQgdGV4dC4iKTsKLQotICAgIGlmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpCi0gICAgICAgIGRlYnVnKCJQYXNzd29yZCBmaWVsZDogIiArIGFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgicGFzcyIpLnN0cmluZ1ZhbHVlKTsKLSAg
ICBlbHNlCi0gICAgICAgIHRlc3RGYWlsZWQoIlRoaXMgdGVzdCBkZXBlbmRzIG9uIGFjY2Vzc2li
aWxpdHlDb250cm9sbGVyLCBwbGVhc2UgdXNlIHJ1bi13ZWJraXQtdGVzdHMgdG8gcnVuIGl0LiIp
OwotICAgIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Ci0KLTwvc2NyaXB0PgotCi08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVs
ZC12YWx1ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1m
aWVsZC12YWx1ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi5iYjg2YmQ0MDQ2ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBA
QAorVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVlIG9mIHNlY3VyZSBpbnB1dHMg
aXMgdGhlIHJlbmRlcmVkIChhbmQgdGhlcmVmb3JlIGNlbnNvcmVkKSB0ZXh0LgorCitQYXNzd29y
ZCBmaWVsZCB2YWx1ZTogQVhWYWx1ZTog4oCi4oCi4oCi4oCiCisjYXV0b2ZpbGwtaW5wdXQgdmFs
dWUgYmVmb3JlIGJlaW5nIG9ic2N1cmVkOiBBWFZhbHVlOiBmb28KK01ha2luZyAjYXV0b2ZpbGwt
aW5wdXQgb2JzY3VyZWQuCisjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgb2JzY3Vy
ZWQ6IEFYVmFsdWU6IOKAouKAouKAogorTWFraW5nICNhdXRvZmlsbC1pbnB1dCB2aWV3YWJsZS4K
KyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBiZWluZyBtYWRlIHZpZXdhYmxlOiBBWFZhbHVl
OiBmb28KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZh
bHVlLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTRkNTM4ODlmMzdk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmll
bGQtdmFsdWUuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy9hY2Nlc3NpYmlsaXR5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxp
bnB1dCB0eXBlPSJwYXNzd29yZCIgaWQ9InBhc3N3b3JkLWlucHV0IiB2YWx1ZT0idGVzdCI+Cis8
aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImF1dG9maWxsLWlucHV0IiB2YWx1ZT0iZm9vIj4KKworPHNj
cmlwdD4KK3ZhciBvdXRwdXQgPSAiVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVl
IG9mIHNlY3VyZSBpbnB1dHMgaXMgdGhlIHJlbmRlcmVkIChhbmQgdGhlcmVmb3JlIGNlbnNvcmVk
KSB0ZXh0LlxuXG4iOworCitpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7Cisg
ICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29uc3QgYXV0b2ZpbGxJbnB1
dCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgiYXV0b2Zp
bGwtaW5wdXQiKTsKKyAgICBsZXQgbGFzdEF1dG9maWxsVmFsdWUgPSBhdXRvZmlsbElucHV0LnN0
cmluZ1ZhbHVlOworICAgIG91dHB1dCArPSBgUGFzc3dvcmQgZmllbGQgdmFsdWU6ICR7YWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJwYXNzd29yZC1pbnB1dCIp
LnN0cmluZ1ZhbHVlfVxuYDsKKyAgICBvdXRwdXQgKz0gYCNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBi
ZWZvcmUgYmVpbmcgb2JzY3VyZWQ6ICR7bGFzdEF1dG9maWxsVmFsdWV9XG5gOworCisgICAgb3V0
cHV0ICs9ICJNYWtpbmcgI2F1dG9maWxsLWlucHV0IG9ic2N1cmVkLlxuIjsKKyAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZChkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXV0b2ZpbGwtaW5wdXQiKSwgdHJ1ZSk7CisgICAgc2V0VGltZW91dChhc3luYyBmdW5jdGlv
bigpIHsKKyAgICAgICAgYXdhaXQgd2FpdEZvcigoKSA9PiBsYXN0QXV0b2ZpbGxWYWx1ZSAhPT0g
YXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZSk7CisgICAgICAgIGxhc3RBdXRvZmlsbFZhbHVlID0g
YXV0b2ZpbGxJbnB1dC5zdHJpbmdWYWx1ZTsKKyAgICAgICAgb3V0cHV0ICs9IGAjYXV0b2ZpbGwt
aW5wdXQgdmFsdWUgYWZ0ZXIgYmVpbmcgb2JzY3VyZWQ6ICR7YXV0b2ZpbGxJbnB1dC5zdHJpbmdW
YWx1ZX1cbmA7CisKKyAgICAgICAgb3V0cHV0ICs9ICJNYWtpbmcgI2F1dG9maWxsLWlucHV0IHZp
ZXdhYmxlLlxuIjsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRBdXRvRmlsbGVkQW5kT2Jz
Y3VyZWQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9maWxsLWlucHV0IiksIGZhbHNlKTsK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRBdXRvRmlsbGVkQW5kVmlld2FibGUoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImF1dG9maWxsLWlucHV0IiksIHRydWUpOworICAgICAgICBhd2Fp
dCB3YWl0Rm9yKCgpID0+IGxhc3RBdXRvZmlsbFZhbHVlICE9PSBhdXRvZmlsbElucHV0LnN0cmlu
Z1ZhbHVlKTsKKyAgICAgICAgb3V0cHV0ICs9IGAjYXV0b2ZpbGwtaW5wdXQgdmFsdWUgYWZ0ZXIg
YmVpbmcgbWFkZSB2aWV3YWJsZTogJHthdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlfVxuYDsKKwor
ICAgICAgICBkZWJ1ZyhvdXRwdXQpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9LCAw
KTsKK30KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465319</attachid>
            <date>2023-03-06 10:58:11 -0800</date>
            <delta_ts>2023-03-06 23:36:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-253390-20230306105811.patch</filename>
            <type>text/plain</type>
            <size>37869</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">RnJvbSA1OTcwYjdiNjUxMzlhNjAxZWQzZTA2NDlkMzdjNWNlNjVjNzIxZDIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUeWxlciBXaWxjb2NrIDx0eWxlcl93QGFwcGxlLmNvbT4KRGF0
ZTogU2F0LCA0IE1hciAyMDIzIDExOjU0OjA4IC0wODAwClN1YmplY3Q6IFtQQVRDSF0gV2ViS2l0
IEFYIEFQSXMgZXhwb3NlIHNlY3VyZSB0ZXh0IHRoYXQgaXMgdmlzaWJseSBoaWRkZW4KIHRocm91
Z2ggSFRNTElucHV0RWxlbWVudDo6aXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQKIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNTMzOTAgcmRhcjovLzkyMzU4NzQ1CgpSZXZp
ZXdlZCBieSBDaHJpcyBGbGVpemFjaCBhbmQgQW5kcmVzIEdvbnphbGV6LgoKQWNjZXNzaWJpbGl0
eSBBUElzIHNob3VsZCBub3QgZXhwb3NlIHNlY3VyZSB0ZXh0IG9ic2N1cmVkIGJ5IEhUTUxJbnB1
dEVsZW1lbnQ6OmlzQXV0b0ZpbGxlZEFuZE9ic2N1cmVkLgoKVGhpcyBwYXRjaCBmaXhlcyB0aGlz
IGJ5IGNoYW5naW5nIGBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc1Bhc3N3b3JkRmllbGRgIHRvIGFs
c28gY2hlY2sgZm9yCmBIVE1MSW5wdXRFbGVtZW50Ojppc0F1dG9GaWxsZWRBbmRPYnNjdXJlZGAu
IFRoaXMgbWV0aG9kIGFuZCBhbGwgc2ltaWxhcmx5IG5hbWVkIG1ldGhvZHMgaGF2ZQpiZWVuIHJl
bmFtZWQgdG8gdXNlICJzZWN1cmUiIGluc3RlYWQgb2YgInBhc3N3b3JkIiAoZS5nLiBgaXNTZWN1
cmVGaWVsZGAgaW5zdGVhZCBvZiBgaXNQYXNzd29yZEZpZWxkYCkKdG8gZW5jYXBzdWxhdGUgdGhl
IHdpZGVuaW5nIG9mIHRoaXMgYWJzdHJhY3Rpb24uCgpOZXcgdGVzdGNhc2VzIGFkZGVkIHRvIGFj
Y2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUuaHRtbCAobm93IHJlbmFtZWQgdG8gc2Vj
dXJlLWZpZWxkLXZhbHVlLmh0bWwpCnRvIHRlc3QgdGhpcyBiZWhhdmlvci4KCiogTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQ6ClJlbmFt
ZWQgdG8gTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUtZXhwZWN0
ZWQudHh0LgoqIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUu
aHRtbDoKUmVuYW1lZCB0byBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12
YWx1ZS5odG1sLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgoo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmNwcDoKKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om9uVGV4dFNlY3VyaXR5Q2hh
bmdlZCk6CihXZWJDb3JlOjppc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKToK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24p
OgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5xdWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3Rp
ZmljYXRpb24pOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JDaGFy
YWN0ZXJPZmZzZXQpOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JW
aXNpYmxlUG9zaXRpb24pOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFG
b3JGaXJzdFBvc2l0aW9uSW5UZXh0Q29udHJvbCk6CihXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUpOgooV2ViQ29yZTo6aXNQYXNzd29yZEZpZWxkT3JDb250YWluZWRC
eVBhc3N3b3JkRmllbGQpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5oOgooV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6b25UZXh0U2VjdXJpdHlD
aGFuZ2VkKToKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1NlY3VyZUZp
ZWxkIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojppc1Bhc3N3b3Jk
RmllbGQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlPYmplY3QuY3BwOgooV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vw
cG9ydHNSZWFkT25seSBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNl
cnRUZXh0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQ29udGFpbmVkQnlTZWN1
cmVGaWVsZCBjb25zdCk6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5l
ZEJ5UGFzc3dvcmRGaWVsZCBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0Lmg6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzZWN1cmVGaWVsZFZhbHVlIGNvbnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OnBhc3N3b3JkRmllbGRWYWx1ZSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CiogU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlIGNvbnN0KToKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnRleHQgY29uc3QpOgooV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2VsZWN0ZWRUZXh0IGNvbnN0KToKKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlIGNvbnN0KToKKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRvQVhTdHJpbmdGb3JSYW5nZSBjb25zdCk6
CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWN1cmVGaWVsZFZhbHVlIGNv
bnN0KToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhc3N3b3JkRmllbGRW
YWx1ZSBjb25zdCk6IERlbGV0ZWQuCiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0Lmg6CiogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
b3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbToKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmFjY2Vzc2liaWxpdHlTZWN1cmVGaWVsZExlbmd0aCk6CihXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGFzc3dvcmRGaWVsZExlbmd0aCk6IERlbGV0ZWQuCiog
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pb3MvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdy
YXBwZXJJT1MubW06CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIF9hY2Nlc3NpYmls
aXR5VGV4dEVudHJ5VHJhaXRzXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIF9h
Y2Nlc3NpYmlsaXR5SXNTdHJvbmdQYXNzd29yZEZpZWxkXSk6CigtW1dlYkFjY2Vzc2liaWxpdHlP
YmplY3RXcmFwcGVyIGFjY2Vzc2liaWxpdHlWYWx1ZV0pOgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgooV2ViQ29yZTo6QVhJ
c29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVByb3BlcnRpZXMpOgoqIFNvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKiBTb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oOgoqIFNvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW06CihX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tOgooLVtXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlciBBTExPV19E
RVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkRdKToKKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgoqIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CihXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRBdXRvRmlsbGVkQW5kT2JzY3VyZWQpOgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5oOgooV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aXNTZWN1cmVGaWVsZCBjb25z
dCk6Ci0tLQogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgICAgIHwg
IDMgKysKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgICB8IDI0
ICsrKysrKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aCAgfCAgMyArKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IHwgMTEgKystLS0KIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Lmgg
ICB8ICAyICstCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCAgICAg
fCAxMCArKy0tLQogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oICAgICAg
IHwgIDggKystLQogLi4uL0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaCAgICAgICAgICAg
IHwgIDQgKy0KIC4uLi9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCAgICAgICAgICAgICB8
IDE4ICsrKystLS0tCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
LmggfCAgMiArLQogLi4uL2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAgICAgICAg
IHwgIDQgKy0KIC4uLi9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcCAgICB8
ICAyICstCiAuLi4vaW9zL0FjY2Vzc2liaWxpdHlPYmplY3RJT1MubW0gICAgICAgICAgICAgfCAg
NCArLQogLi4uL2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbSAgIHwgMTAg
KystLS0KIC4uLi9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgICAgICAgICB8ICAy
ICstCiAuLi4vaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaCAgICAgICAgICAgfCAgMiAr
LQogLi4uL2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oICAgICAgICAgICAgIHwgIDIgKy0K
IC4uLi9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSAgICAgICAgICAgICB8ICAyICstCiAu
Li4vbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tICAgfCAxMCArKy0tLQog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCAgICAgIHwgIDMgKysKIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oICAgICAgICB8ICAxICsKIC4uLi9w
YXNzd29yZC1maWVsZC12YWx1ZS1leHBlY3RlZC50eHQgICAgICAgICB8IDExIC0tLS0tCiAuLi4v
YWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sICAgfCAyNyAtLS0tLS0tLS0t
LS0KIC4uLi9zZWN1cmUtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0ICAgICAgICAgICB8IDEzICsr
KysrKwogLi4uL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLmh0bWwgICAgIHwgNDMg
KysrKysrKysrKysrKysrKysrKwogMjUgZmlsZXMgY2hhbmdlZCwgMTI4IGluc2VydGlvbnMoKyks
IDkzIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3RzL2FjY2Vzc2li
aWxpdHkvcGFzc3dvcmQtZmllbGQtdmFsdWUtZXhwZWN0ZWQudHh0CiBkZWxldGUgbW9kZSAxMDA2
NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sCiBj
cmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQt
dmFsdWUtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbAoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWExvZ2dlci5jcHAKaW5kZXggYTM1N2U2YmM5OWI2Li5iMmJjZTgwNjU4NzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC02MTMsNiArNjEzLDkg
QEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFYT2JqZWN0Q2Fj
aGU6OkFYTm90aWZpY2F0aW9uIG5vdGlmaWMKICAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90
aWZpY2F0aW9uOjpBWFRleHRDaGFuZ2VkOgogICAgICAgICBzdHJlYW0gPDwgIkFYVGV4dENoYW5n
ZWQiOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uOjpBWFRleHRTZWN1cml0eUNoYW5nZWQ6CisgICAgICAgIHN0cmVhbSA8PCAiQVhUZXh0U2Vj
dXJpdHlDaGFuZ2VkIjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBWE9iamVjdENhY2hlOjpB
WE5vdGlmaWNhdGlvbjo6QVhFbGVtZW50QnVzeUNoYW5nZWQ6CiAgICAgICAgIHN0cmVhbSA8PCAi
QVhFbGVtZW50QnVzeUNoYW5nZWQiOwogICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IGFiZDgwYjUyYTU2My4uZGJk
MTQ3NzE1Zjg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKQEAgLTE0NjYsNiArMTQ2NiwxNSBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uU2Vs
ZWN0ZWRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAgICAgaGFuZGxlTWVudUl0ZW1TZWxlY3RlZChub2Rl
KTsKIH0KIAordm9pZCBBWE9iamVjdENhY2hlOjpvblRleHRTZWN1cml0eUNoYW5nZWQoSFRNTElu
cHV0RWxlbWVudCYgaW5wdXRFbGVtZW50KQoreworI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lT
T0xBVEVEX1RSRUUpCisgICAgdXBkYXRlSXNvbGF0ZWRUcmVlKGdldCgmaW5wdXRFbGVtZW50KSwg
QVhUZXh0U2VjdXJpdHlDaGFuZ2VkKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGlucHV0RWxl
bWVudCk7CisjZW5kaWYKK30KKwogdm9pZCBBWE9iamVjdENhY2hlOjpvblRpdGxlQ2hhbmdlKERv
Y3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldCgmZG9jdW1lbnQp
LCBudWxscHRyLCBBWFRleHRDaGFuZ2VkKTsKQEAgLTE2MDYsOSArMTYxNSw5IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6c2V0SXNTeW5jaHJvbml6aW5nU2VsZWN0aW9uKGJvb2wgaXNTeW5jaHJvbml6
aW5nKQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1zdGF0aWMgYm9vbCBpc1Bhc3N3b3JkRmll
bGRPckNvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qp
CitzdGF0aWMgYm9vbCBpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKLSAgICByZXR1cm4gb2JqZWN0ICYmIChvYmplY3Qt
PmlzUGFzc3dvcmRGaWVsZCgpIHx8IG9iamVjdC0+aXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQo
KSk7CisgICAgcmV0dXJuIG9iamVjdCAmJiAob2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkgfHwgb2Jq
ZWN0LT5pc0NvbnRhaW5lZEJ5U2VjdXJlRmllbGQoKSk7CiB9CiAjZW5kaWYKIApAQCAtMTY2OCw3
ICsxNjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKICNpZiBQTEFURk9STShDT0NPQSkg
fHwgVVNFKEFUU1BJKQogICAgIGlmIChvYmplY3QpIHsKICNpZiBQTEFURk9STShDT0NPQSkKLSAg
ICAgICAgaWYgKGlzUGFzc3dvcmRGaWVsZE9yQ29udGFpbmVkQnlQYXNzd29yZEZpZWxkKG9iamVj
dCkpCisgICAgICAgIGlmIChpc1NlY3VyZUZpZWxkT3JDb250YWluZWRCeVNlY3VyZUZpZWxkKG9i
amVjdCkpCiAgICAgICAgICAgICByZXR1cm47CiAjZW5kaWYKICAgICAgICAgaWYgKGF1dG8gb2Jz
ZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+b2JzZXJ2YWJsZU9iamVjdCgpKQpAQCAtMTc3Miw3ICsx
NzgxLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFJlcGxhY2VtZW50Tm90aWZpY2F0
aW9uRm9yVGV4dENvbnRyb2woSFRNTFRleHRGb3JtQ28KIGJvb2wgQVhPYmplY3RDYWNoZTo6ZW5x
dWV1ZVBhc3N3b3JkVmFsdWVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCog
b2JqZWN0KQogewogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGlmICghaXNQYXNzd29yZEZpZWxk
T3JDb250YWluZWRCeVBhc3N3b3JkRmllbGQob2JqZWN0KSkKKyAgICBpZiAoIWlzU2VjdXJlRmll
bGRPckNvbnRhaW5lZEJ5U2VjdXJlRmllbGQob2JqZWN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgQWNjZXNzaWJpbGl0eU9iamVjdCogb2JzZXJ2YWJsZU9iamVjdCA9IG9iamVjdC0+
b2JzZXJ2YWJsZU9iamVjdCgpOwpAQCAtMjUzMiw3ICsyNTQxLDcgQEAgVGV4dE1hcmtlckRhdGEg
QVhPYmplY3RDYWNoZTo6dGV4dE1hcmtlckRhdGFGb3JDaGFyYWN0ZXJPZmZzZXQoY29uc3QgQ2hh
cmFjdGVyT2YKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGlmIChpczxIVE1MSW5wdXRFbGVt
ZW50PihjaGFyYWN0ZXJPZmZzZXQubm9kZSkKLSAgICAgICAgJiYgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKmNoYXJhY3Rlck9mZnNldC5ub2RlKS5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAg
ICAgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmNoYXJhY3Rlck9mZnNldC5ub2RlKS5p
c1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiB7ICp0aGlzLCB7IH0sIHRydWUgfTsKIAog
ICAgIHNldE5vZGVJblVzZShjaGFyYWN0ZXJPZmZzZXQubm9kZSk7CkBAIC0yODAxLDcgKzI4MTAs
NyBAQCBzdGQ6Om9wdGlvbmFsPFRleHRNYXJrZXJEYXRhPiBBWE9iamVjdENhY2hlOjp0ZXh0TWFy
a2VyRGF0YUZvclZpc2libGVQb3NpdGlvbihjbwogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIAotICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pihub2RlKSAm
JiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNQYXNzd29yZEZpZWxkKCkpCisg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpICYmIGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KCpub2RlKS5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKICAgICAvLyBJZiB0aGUgdmlzaWJsZSBwb3NpdGlvbiBoYXMgYW4gYW5jaG9yIHR5cGUg
cmVmZXJyaW5nIHRvIGEgbm9kZSBvdGhlciB0aGFuIHRoZSBhbmNob3JlZCBub2RlLCB3ZSBzaG91
bGQKQEAgLTI4MjEsNyArMjgzMCw3IEBAIHN0ZDo6b3B0aW9uYWw8VGV4dE1hcmtlckRhdGE+IEFY
T2JqZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yVmlzaWJsZVBvc2l0aW9uKGNvCiAvLyBUaGlz
IGZ1bmN0aW9uIGV4aXN0cyBhcyBhIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiB0byBhdm9pZCBh
IHN5bmNocm9ub3VzIGxheW91dC4KIHN0ZDo6b3B0aW9uYWw8VGV4dE1hcmtlckRhdGE+IEFYT2Jq
ZWN0Q2FjaGU6OnRleHRNYXJrZXJEYXRhRm9yRmlyc3RQb3NpdGlvbkluVGV4dENvbnRyb2woSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQmIHRleHRDb250cm9sKQogewotICAgIGlmIChpczxIVE1M
SW5wdXRFbGVtZW50Pih0ZXh0Q29udHJvbCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4o
dGV4dENvbnRyb2wpLmlzUGFzc3dvcmRGaWVsZCgpKQorICAgIGlmIChpczxIVE1MSW5wdXRFbGVt
ZW50Pih0ZXh0Q29udHJvbCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4odGV4dENvbnRy
b2wpLmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAg
IGF1dG8qIGNhY2hlID0gdGV4dENvbnRyb2wuZG9jdW1lbnQoKS5heE9iamVjdENhY2hlKCk7CkBA
IC0zNzQ5LDYgKzM3NTgsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJl
ZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBY2Nlc3NpYmlsaQogICAgICAgICBjYXNl
IEFYUm93U3BhbkNoYW5nZWQ6CiAgICAgICAgIGNhc2UgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZDoKICAgICAgICAgY2FzZSBBWFRleHRDaGFuZ2VkOgorICAgICAgICBjYXNlIEFYVGV4dFNlY3Vy
aXR5Q2hhbmdlZDoKICAgICAgICAgY2FzZSBBWFZhbHVlQ2hhbmdlZDoKICAgICAgICAgICAgIHVw
ZGF0ZU5vZGUobm90aWZpY2F0aW9uLmZpcnN0KTsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAppbmRleCA0MDVkZTY3NzA0
ZTYuLjUyMjhmZGEwZTAxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmgKQEAgLTE3OSw2ICsxNzksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGlsZHJl
bkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCopOwogICAgIHZvaWQgb25Gb2N1c0NoYW5nZShO
b2RlKiBvbGRGb2N1c2VkTm9kZSwgTm9kZSogbmV3Rm9jdXNlZE5vZGUpOwogICAgIHZvaWQgb25T
ZWxlY3RlZENoYW5nZWQoTm9kZSopOworICAgIHZvaWQgb25UZXh0U2VjdXJpdHlDaGFuZ2VkKEhU
TUxJbnB1dEVsZW1lbnQmKTsKICAgICB2b2lkIG9uVGl0bGVDaGFuZ2UoRG9jdW1lbnQmKTsKICAg
ICB2b2lkIG9uVmFsaWRpdHlDaGFuZ2UoRWxlbWVudCYpOwogICAgIHZvaWQgdmFsdWVDaGFuZ2Vk
KEVsZW1lbnQqKTsKQEAgLTM1Niw2ICszNTcsNyBAQCBwdWJsaWM6CiAgICAgICAgIEFYUmVxdWly
ZWRTdGF0dXNDaGFuZ2VkLAogICAgICAgICBBWFNvcnREaXJlY3Rpb25DaGFuZ2VkLAogICAgICAg
ICBBWFRleHRDaGFuZ2VkLAorICAgICAgICBBWFRleHRTZWN1cml0eUNoYW5nZWQsCiAgICAgICAg
IEFYRWxlbWVudEJ1c3lDaGFuZ2VkLAogICAgICAgICBBWERyYWdnaW5nU3RhcnRlZCwKICAgICAg
ICAgQVhEcmFnZ2luZ0VuZGVkLApAQCAtNjY5LDYgKzY3MSw3IEBAIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChOb2RlKiwgTm9kZSopIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKFJlbmRlck9iamVjdCosIFJlbmRlck9iamVj
dCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vz
c2liaWxpdHlPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uU2VsZWN0
ZWRDaGFuZ2VkKE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6Om9uVGV4dFNl
Y3VyaXR5Q2hhbmdlZChIVE1MSW5wdXRFbGVtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpvblRpdGxlQ2hhbmdlKERvY3VtZW50JikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpvblZhbGlkaXR5Q2hhbmdlKEVsZW1lbnQmKSB7IH0KIGlubGluZSB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnZhbHVlQ2hhbmdlZChFbGVtZW50KikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4
IDdmYTQ3MmE5ODBkYi4uMGI3YzY0YmJlMzQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtNjM5LDE2
ICs2MzksMTMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6aXNOYXRpdmVJbWFnZSgp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlOb2RlT2Jq
ZWN0Ojppc1Bhc3N3b3JkRmllbGQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6aXNTZWN1cmVGaWVsZCgpIGNvbnN0CiB7Ci0gICAgYXV0byogbm9kZSA9IHRoaXMtPm5vZGUo
KTsKLSAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KG5vZGUpKQorICAgIFJlZlB0ciBpbnB1
dCA9IGR5bmFtaWNEb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihub2RlKCkpOworICAgIGlmICgh
aW5wdXQgfHwgYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93
bikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIHJldHVybiBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqbm9kZSkuaXNQYXNzd29yZEZp
ZWxkKCk7CisgICAgcmV0dXJuIGlucHV0LT5pc1NlY3VyZUZpZWxkKCk7CiB9CiAKIGJvb2wgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmlzSW5wdXRJbWFnZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKaW5k
ZXggOTMzZjFmNTI3Yzg1Li4zYmRlYmVlMTU3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmgKQEAgLTY5LDcgKzY5
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdCBvdmVycmlk
ZTsKICAgICBib29sIGlzTmF0aXZlSW1hZ2UoKSBjb25zdDsKICAgICBib29sIGlzTmF0aXZlVGV4
dENvbnRyb2woKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNv
bnN0IG92ZXJyaWRlOworICAgIGJvb2wgaXNTZWN1cmVGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIGJvb2wgaXNQcm9ncmVzc0luZGljYXRvcigpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wg
aXNTZWFyY2hGaWVsZCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNTbGlkZXIoKSBjb25z
dCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCmluZGV4IGZmNDIyNTY1N2ZmMS4uNjdmNGI2NmQ3M2IxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dC5jcHAKQEAgLTE2OTMsNyArMTY5Myw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vw
cG9ydHNSZWFkT25seSgpIGNvbnN0CiAgICAgICAgIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OlN3aXRjaAogICAgICAgICB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0Rmll
bGQKICAgICAgICAgfHwgcm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQKLSAgICAg
ICAgfHwgaXNQYXNzd29yZEZpZWxkKCk7CisgICAgICAgIHx8IGlzU2VjdXJlRmllbGQoKTsKIH0K
IAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBjb25zdApAQCAt
MjMzMCw4ICsyMzMwLDggQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjppbnNlcnRUZXh0KGNv
bnN0IFN0cmluZyYgdGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYXV0byYgZWxl
bWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKCkpOwotICAgIC8vIE9ubHkgdHJ5IHRvIGlu
c2VydCB0ZXh0IGlmIHRoZSBmaWVsZCBpcyBpbiBlZGl0aW5nIG1vZGUgKGV4Y2x1ZGluZyBwYXNz
d29yZCBmaWVsZHMsIHdoaWNoIHdlIGRvIHN0aWxsIHdhbnQgdG8gdHJ5IHRvIGluc2VydCBpbnRv
KS4KLSAgICBpZiAoIWlzUGFzc3dvcmRGaWVsZCgpICYmICFlbGVtZW50LnNob3VsZFVzZUlucHV0
TWV0aG9kKCkpCisgICAgLy8gT25seSB0cnkgdG8gaW5zZXJ0IHRleHQgaWYgdGhlIGZpZWxkIGlz
IGluIGVkaXRpbmcgbW9kZSAoZXhjbHVkaW5nIHNlY3VyZSBmaWVsZHMsIHdoaWNoIHdlIGRvIHN0
aWxsIHdhbnQgdG8gdHJ5IHRvIGluc2VydCBpbnRvKS4KKyAgICBpZiAoIWlzU2VjdXJlRmllbGQo
KSAmJiAhZWxlbWVudC5zaG91bGRVc2VJbnB1dE1ldGhvZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAvLyBVc2UgRWRpdG9yOjppbnNlcnRUZXh0IHRvIG1pbWljIHR5cGluZyBpbnRv
IHRoZSBmaWVsZC4KQEAgLTM4NjgsNyArMzg2OCw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6aXNPdXRwdXQoKSBjb25zdAogICAgIHJldHVybiBub2RlICYmIG5vZGUtPmhhc1RhZ05hbWUo
b3V0cHV0VGFnKTsKIH0KICAgICAKLWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6aXNDb250YWlu
ZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdAorYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0Nv
bnRhaW5lZEJ5U2VjdXJlRmllbGQoKSBjb25zdAogewogICAgIE5vZGUqIG5vZGUgPSB0aGlzLT5u
b2RlKCk7CiAgICAgaWYgKCFub2RlKQpAQCAtMzg3OCw3ICszODc4LDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojppc0NvbnRhaW5lZEJ5UGFzc3dvcmRGaWVsZCgpIGNvbnN0CiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBub2RlLT5zaGFkb3dIb3N0
KCk7Ci0gICAgcmV0dXJuIGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpICYmIGRvd25jYXN0
PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KS5pc1Bhc3N3b3JkRmllbGQoKTsKKyAgICByZXR1
cm4gaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpLmlzU2VjdXJlRmllbGQoKTsKIH0KICAgICAKIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNlbGVjdGVkTGlzdEl0ZW0oKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAppbmRleCAw
MzdlN2FlZGJjN2YuLjAyOTRkZjRlYmUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmgKQEAgLTEyMyw4ICsxMjMsOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGlzTGluaygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBm
YWxzZTsgfQotICAgIGJvb2wgaXNDb250YWluZWRCeVBhc3N3b3JkRmllbGQoKSBjb25zdDsKKyAg
ICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIGJvb2wgaXNDb250YWluZWRCeVNlY3VyZUZpZWxkKCkgY29uc3Q7CiAgICAgYm9vbCBpc05h
dGl2ZVRleHRDb250cm9sKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNTZWFyY2hGaWVsZCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ym9vbCBpc0xpc3RCb3hPcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQpA
QCAtNjA1LDcgKzYwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBkZXNjcmlwdGlv
bkZvck1TQUEoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgQWNjZXNz
aWJpbGl0eVJvbGUgcm9sZVZhbHVlRm9yTVNBQSgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
OyB9CiAKLSAgICB2aXJ0dWFsIFN0cmluZyBwYXNzd29yZEZpZWxkVmFsdWUoKSBjb25zdCB7IHJl
dHVybiBTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIHNlY3VyZUZpZWxkVmFsdWUoKSBj
b25zdCB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIGJvb2wgaXNWYWx1ZUF1dG9maWxsQXZhaWxh
YmxlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgQXV0b0ZpbGxCdXR0b25UeXBlIHZhbHVlQXV0b2Zp
bGxCdXR0b25UeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKQEAgLTcyNyw3ICs3MjcsNyBAQCBwdWJs
aWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgaW50IGFjY2Vzc2li
aWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCkgb3ZlcnJpZGU7CisgICAgaW50IGFjY2Vzc2liaWxp
dHlTZWN1cmVGaWVsZExlbmd0aCgpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzVG91Y2hFdmVudExp
c3RlbmVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0lucHV0VHlwZVBvcHVwQnV0dG9u
KCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggYTgz
NjM5MjRiMjIzLi44NWRjZjI5YWJjZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC04NTAs
NyArODUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNJbWFnZSgpIGNvbnN0IHsgcmV0dXJuIHJv
bGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZTsgfQogICAgIGJvb2wgaXNJbWFn
ZU1hcCgpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJ
bWFnZU1hcDsgfQogICAgIGJvb2wgaXNWaWRlbygpIGNvbnN0IHsgcmV0dXJuIHJvbGVWYWx1ZSgp
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Bhc3N3
b3JkRmllbGQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGlzU2VjdXJlRmllbGQoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzTmF0aXZlVGV4dENvbnRyb2woKSBjb25zdCA9
IDA7CiAgICAgYm9vbCBpc1dlYkFyZWEoKSBjb25zdCB7IHJldHVybiByb2xlVmFsdWUoKSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYTsgfQogICAgIGJvb2wgaXNDaGVja2JveCgpIGNvbnN0
IHsgcmV0dXJuIHJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDsgfQpA
QCAtMTM3MSw3ICsxMzcxLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQotICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3Ro
KCkgPSAwOworICAgIHZpcnR1YWwgaW50IGFjY2Vzc2liaWxpdHlTZWN1cmVGaWVsZExlbmd0aCgp
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVG91Y2hFdmVudExpc3RlbmVyKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBpc0lucHV0VHlwZVBvcHVwQnV0dG9uKCkgY29uc3QgPSAwOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCBjNzJiMjUyZTU2OTAuLmVkOWU2YjI3Yzc2
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC03NDgsOCArNzQ4LDggQEAgU3RyaW5nIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkgY29uc3QKICAgICBpZiAoIW1fcmVu
ZGVyZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIGlmIChpc1Bhc3N3b3JkRmll
bGQoKSkKLSAgICAgICAgcmV0dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAgIGlmIChpc1Nl
Y3VyZUZpZWxkKCkpCisgICAgICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7CiAKICAgICBp
ZiAoaXNBUklBU3RhdGljVGV4dCgpKSB7CiAgICAgICAgIFN0cmluZyBzdGF0aWNUZXh0ID0gdGV4
dCgpOwpAQCAtMTU3MCw4ICsxNTcwLDggQEAgaW50IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmxheW91dENvdW50KCkgY29uc3QKIAogU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OnRleHQoKSBjb25zdAogewotICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKLSAgICAgICAgcmV0
dXJuIHBhc3N3b3JkRmllbGRWYWx1ZSgpOworICAgIGlmIChpc1NlY3VyZUZpZWxkKCkpCisgICAg
ICAgIHJldHVybiBzZWN1cmVGaWVsZFZhbHVlKCk7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0Ojp0ZXh0KCk7CiB9CiAKQEAgLTE1OTYsNyArMTU5Niw3IEBAIFN0cmluZyBBY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzZWxlY3RlZFRleHQoKSBjb25zdAogewogICAgIEFTU0VS
VChpc1RleHRDb250cm9sKCkpOwogICAgIAotICAgIGlmIChpc1Bhc3N3b3JkRmllbGQoKSkKKyAg
ICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7IC8vIG5lZWQg
dG8gcmV0dXJuIHNvbWV0aGluZyBkaXN0aW5jdCBmcm9tIGVtcHR5IHN0cmluZwogICAgIAogICAg
IGlmIChpc05hdGl2ZVRleHRDb250cm9sKCkpIHsKQEAgLTE2MjgsNyArMTYyOCw3IEBAIFBsYWlu
VGV4dFJhbmdlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnNlbGVjdGVkVGV4dFJhbmdlKCkg
Y29uc3QKIHsKICAgICBBU1NFUlQoaXNUZXh0Q29udHJvbCgpKTsKIAotICAgIGlmIChpc1Bhc3N3
b3JkRmllbGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4gUGxh
aW5UZXh0UmFuZ2UoKTsKIAogICAgIC8vIFVzZSB0aGUgdGV4dCBjb250cm9sIG5hdGl2ZSByYW5n
ZSBpZiBpdCdzIGEgbmF0aXZlIG9iamVjdC4KQEAgLTI0NDksNyArMjQ0OSw3IEBAIFN0cmluZyBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojpkb0FYU3RyaW5nRm9yUmFuZ2UoY29uc3QgUGxhaW5U
ZXh0UmFuZ2UmIHJhbmdlCiAgICAgaWYgKCFpc1RleHRDb250cm9sKCkpCiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICAKLSAgICBTdHJpbmcgZWxlbWVudFRleHQgPSBpc1Bhc3N3b3JkRmll
bGQoKSA/IHBhc3N3b3JkRmllbGRWYWx1ZSgpIDogdGV4dCgpOworICAgIFN0cmluZyBlbGVtZW50
VGV4dCA9IGlzU2VjdXJlRmllbGQoKSA/IHNlY3VyZUZpZWxkVmFsdWUoKSA6IHRleHQoKTsKICAg
ICByZXR1cm4gZWxlbWVudFRleHQuc3Vic3RyaW5nKHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgp
OwogfQogCkBAIC0zNTI0LDkgKzM1MjQsOSBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0Ojpyb2xlVmFsdWVGb3JNU0FBKCkgY29uc3QKICAgICByZXR1cm4gbV9y
b2xlRm9yTVNBQTsKIH0KIAotU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnBhc3N3
b3JkRmllbGRWYWx1ZSgpIGNvbnN0CitTdHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
c2VjdXJlRmllbGRWYWx1ZSgpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGlzUGFzc3dvcmRGaWVsZCgp
KTsKKyAgICBBU1NFUlQoaXNTZWN1cmVGaWVsZCgpKTsKIAogICAgIC8vIExvb2sgZm9yIHRoZSBS
ZW5kZXJUZXh0IG9iamVjdCBpbiB0aGUgUmVuZGVyT2JqZWN0IHRyZWUgZm9yIHRoaXMgaW5wdXQg
ZmllbGQuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUoKS0+cmVuZGVyZXIoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0LmgKaW5kZXggNjM1NzUwNTA0YTU4Li5lZTM4YjNlMTQxZDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5oCkBAIC0xNzksNyArMTc5LDcgQEAgcHVibGljOgogICAgIFN0cmluZyBkZXNjcmlw
dGlvbkZvck1TQUEoKSBjb25zdCBvdmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
VmFsdWVGb3JNU0FBKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICBTdHJpbmcgcGFzc3dvcmRGaWVs
ZFZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgU3RyaW5nIHNlY3VyZUZpZWxkVmFsdWUoKSBj
b25zdCBvdmVycmlkZTsKICAgICB2b2lkIHRpdGxlRWxlbWVudFRleHQoVmVjdG9yPEFjY2Vzc2li
aWxpdHlUZXh0PiYpIGNvbnN0IG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlP
YmplY3RBdHNwaS5jcHAKaW5kZXggNjU4N2JlZjhiNmI1Li4xZjA1ZWJmZTE1M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAgLTEyMDAsNyArMTIwMCw3IEBAIHZvaWQgQWNjZXNz
aWJpbGl0eU9iamVjdEF0c3BpOjpsb2FkRXZlbnQoY29uc3QgY2hhciogZXZlbnQpCiAKIHN0ZDo6
b3B0aW9uYWw8QXRzcGk6OlJvbGU+IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6ZWZmZWN0aXZl
Um9sZSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fY29yZU9iamVjdC0+aXNQYXNzd29yZEZpZWxkKCkp
CisgICAgaWYgKG1fY29yZU9iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1cm4g
QXRzcGk6OlJvbGU6OlBhc3N3b3JkVGV4dDsKIAogICAgIGF1dG8qIGxpdmVPYmplY3QgPSBkeW5h
bWljRG93bmNhc3Q8QWNjZXNzaWJpbGl0eU9iamVjdD4obV9jb3JlT2JqZWN0KTsKQEAgLTE0MjMs
NyArMTQyMyw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3RJbmNsdXNpb24gQWNjZXNzaWJpbGl0eU9i
amVjdDo6YWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uOjpJZ25vcmVPYmplY3Q7CiAKICAgICAvLyBFbnRyaWVz
IGFuZCBwYXNzd29yZCBmaWVsZHMgaGF2ZSBleHRyYW5lb3VzIGNoaWxkcmVuIHdoaWNoIHdlIHdh
bnQgdG8gaWdub3JlLgotICAgIGlmIChwYXJlbnQtPmlzUGFzc3dvcmRGaWVsZCgpIHx8IHBhcmVu
dC0+aXNUZXh0Q29udHJvbCgpKQorICAgIGlmIChwYXJlbnQtPmlzU2VjdXJlRmllbGQoKSB8fCBw
YXJlbnQtPmlzVGV4dENvbnRyb2woKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlPYmpl
Y3RJbmNsdXNpb246Oklnbm9yZU9iamVjdDsKIAogICAgIC8vIFdlIGV4cG9zZSB0aGUgc2xpZGVy
IGFzIGEgd2hvbGUgYnV0IG5vdCBpdHMgdmFsdWUgaW5kaWNhdG9yLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0
c3BpLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eU9iamVjdFRleHRBdHNwaS5jcHAKaW5kZXggNDQ2OTlmNjY5YTM0Li42ZDg5YWJlNjhkZjAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0
eU9iamVjdFRleHRBdHNwaS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9h
dHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcApAQCAtMzY0LDcgKzM2NCw3IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjp0ZXh0SW5zZXJ0ZWQoY29uc3QgU3RyaW5n
JiBpbnNlcnRlZFRleHQsIGNvbnN0IFZpCiAgICAgYXV0byB1dGYxNlRleHQgPSB0ZXh0KCk7CiAg
ICAgYXV0byB1dGY4VGV4dCA9IHV0ZjE2VGV4dC51dGY4KCk7CiAgICAgYXV0byB1dGYxNk9mZnNl
dCA9IGFkanVzdE91dHB1dE9mZnNldChtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uKHBvc2l0aW9uKSwgbV9oYXNMaXN0TWFya2VyQXRTdGFydCk7Ci0gICAgU3RyaW5nIG1hc2tl
ZFRleHQgPSBtX2NvcmVPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpID8gdXRmMTZUZXh0LnN1YnN0
cmluZyh1dGYxNk9mZnNldCAtIGluc2VydGVkVGV4dC5sZW5ndGgoKSwgaW5zZXJ0ZWRUZXh0Lmxl
bmd0aCgpKSA6IFN0cmluZygpOworICAgIFN0cmluZyBtYXNrZWRUZXh0ID0gbV9jb3JlT2JqZWN0
LT5pc1NlY3VyZUZpZWxkKCkgPyB1dGYxNlRleHQuc3Vic3RyaW5nKHV0ZjE2T2Zmc2V0IC0gaW5z
ZXJ0ZWRUZXh0Lmxlbmd0aCgpLCBpbnNlcnRlZFRleHQubGVuZ3RoKCkpIDogU3RyaW5nKCk7CiAg
ICAgYXV0byBtYXBwaW5nID0gb2Zmc2V0TWFwcGluZyh1dGYxNlRleHQpOwogICAgIGF1dG8gb2Zm
c2V0ID0gVVRGMTZPZmZzZXRUb1VURjgobWFwcGluZywgdXRmMTZPZmZzZXQpOwogICAgIGF1dG8g
dXRmOEluc2VydGVkVGV4dCA9IG1hc2tlZFRleHQuaXNOdWxsKCkgPyBpbnNlcnRlZFRleHQudXRm
OCgpIDogbWFza2VkVGV4dC51dGY4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQppbmRleCBkMTBhMmY3
Mzc5YjEuLmU4NDQ4OTBlMjYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pb3MvQWNjZXNzaWJpbGl0eU9iamVjdElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lvcy9BY2Nlc3NpYmlsaXR5T2JqZWN0SU9TLm1tCkBAIC04Miw5ICs4Miw5
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6b3ZlcnJpZGVBdHRhY2htZW50UGFyZW50KEFY
Q29yZU9iamVjdCopCiB9CiAgICAgCiAvLyBJbiBpUGhvbmUgb25seSBjb2RlIGZvciBub3cuIEl0
J3MgZGViYXRlYWJsZSB3aGV0aGVyIHRoaXMgaXMgZGVzaXJlZCBvbiBhbGwgcGxhdGZvcm1zLgot
aW50IEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3Ro
KCkKK2ludCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5U2VjdXJlRmllbGRMZW5n
dGgoKQogewotICAgIGlmICghaXNQYXNzd29yZEZpZWxkKCkpCisgICAgaWYgKCFpc1NlY3VyZUZp
ZWxkKCkpCiAgICAgICAgIHJldHVybiAwOwogICAgIFJlbmRlck9iamVjdCogcmVuZGVyT2JqZWN0
ID0gZG93bmNhc3Q8QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdD4oKnRoaXMpLnJlbmRlcmVyKCk7
CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaW9zL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVySU9TLm1tCmluZGV4IGRlMWIx
NDQxZmZkZS4uZTkyYjJiNjQ2NWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lvcy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBl
cklPUy5tbQpAQCAtODE0LDcgKzgxNCw3IEBAIC0gKHVpbnQ2NF90KV9hY2Nlc3NpYmlsaXR5VGV4
dEVudHJ5VHJhaXRzCiAgICAgYXV0byogYmFja2luZ09iamVjdCA9IHNlbGYuYXhCYWNraW5nT2Jq
ZWN0OwogICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc0ZvY3VzZWQoKSkKICAgICAgICAgdHJhaXRz
IHw9IChbc2VsZiBfYXhIYXNUZXh0Q3Vyc29yVHJhaXRdIHwgW3NlbGYgX2F4VGV4dE9wZXJhdGlv
bnNBdmFpbGFibGVUcmFpdF0pOwotICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmll
bGQoKSkKKyAgICBpZiAoYmFja2luZ09iamVjdC0+aXNTZWN1cmVGaWVsZCgpKQogICAgICAgICB0
cmFpdHMgfD0gW3NlbGYgX2F4U2VjdXJlVGV4dEZpZWxkVHJhaXRdOwogCiAgICAgc3dpdGNoIChi
YWNraW5nT2JqZWN0LT5yb2xlVmFsdWUoKSkgewpAQCAtMTE3Niw3ICsxMTc2LDcgQEAgLSAoQk9P
TClfYWNjZXNzaWJpbGl0eUlzU3Ryb25nUGFzc3dvcmRGaWVsZAogICAgIGlmICghW3NlbGYgX3By
ZXBhcmVBY2Nlc3NpYmlsaXR5Q2FsbF0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSAgICBp
ZiAoIXNlbGYuYXhCYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoIXNl
bGYuYXhCYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCiAgICAgICAgIHJldHVybiBOTzsK
ICAgICAKICAgICByZXR1cm4gc2VsZi5heEJhY2tpbmdPYmplY3QtPnZhbHVlQXV0b2ZpbGxCdXR0
b25UeXBlKCkgPT0gQXV0b0ZpbGxCdXR0b25UeXBlOjpTdHJvbmdQYXNzd29yZDsKQEAgLTE1NjMs
MTAgKzE1NjMsMTAgQEAgLSAoTlNTdHJpbmcgKilhY2Nlc3NpYmlsaXR5VmFsdWUKICAgICB9CiAK
ICAgICAvLyByZGFyOi8vODEzMTM4OCBXZWJLaXQgc2hvdWxkIGV4cG9zZSB0aGUgc2FtZSBpbmZv
IGFzIFVJS2l0IGZvciBpdHMgcGFzc3dvcmQgZmllbGRzLgotICAgIGlmIChiYWNraW5nT2JqZWN0
LT5pc1Bhc3N3b3JkRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3
b3JkRmllbGRdKSB7Ci0gICAgICAgIGludCBwYXNzd29yZExlbmd0aCA9IGJhY2tpbmdPYmplY3Qt
PmFjY2Vzc2liaWxpdHlQYXNzd29yZEZpZWxkTGVuZ3RoKCk7CisgICAgaWYgKGJhY2tpbmdPYmpl
Y3QtPmlzU2VjdXJlRmllbGQoKSAmJiAhW3NlbGYgX2FjY2Vzc2liaWxpdHlJc1N0cm9uZ1Bhc3N3
b3JkRmllbGRdKSB7CisgICAgICAgIGludCBzZWN1cmVUZXh0TGVuZ3RoID0gYmFja2luZ09iamVj
dC0+YWNjZXNzaWJpbGl0eVNlY3VyZUZpZWxkTGVuZ3RoKCk7CiAgICAgICAgIE5TTXV0YWJsZVN0
cmluZyogc3RyaW5nID0gW05TTXV0YWJsZVN0cmluZyBzdHJpbmddOwotICAgICAgICBmb3IgKGlu
dCBrID0gMDsgayA8IHBhc3N3b3JkTGVuZ3RoOyArK2spCisgICAgICAgIGZvciAoaW50IGsgPSAw
OyBrIDwgc2VjdXJlVGV4dExlbmd0aDsgKytrKQogICAgICAgICAgICAgW3N0cmluZyBhcHBlbmRT
dHJpbmc6QCLigKIiXTsKICAgICAgICAgcmV0dXJuIHN0cmluZzsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNv
bGF0ZWRPYmplY3QuY3BwCmluZGV4IGY5MzM1N2U2YTViMy4uODA0ZTA1MzUyYzliIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMTAyLDExICsxMDIsMTEgQEAgdm9pZCBBWElzb2xh
dGVkT2JqZWN0Ojppbml0aWFsaXplUHJvcGVydGllcyhjb25zdCBSZWY8QWNjZXNzaWJpbGl0eU9i
amVjdD4mIGF4T2IKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNZW51TGlzdFBv
cHVwLCBvYmplY3QuaXNNZW51TGlzdFBvcHVwKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpJc01lbnVSZWxhdGVkLCBvYmplY3QuaXNNZW51UmVsYXRlZCgpKTsKICAgICBzZXRQ
cm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNNdWx0aVNlbGVjdGFibGUsIG9iamVjdC5pc011bHRp
U2VsZWN0YWJsZSgpKTsKLSAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNQYXNzd29y
ZEZpZWxkLCBvYmplY3QuaXNQYXNzd29yZEZpZWxkKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpJc1ByZXNzZWQsIG9iamVjdC5pc1ByZXNzZWQoKSk7CiAgICAgc2V0UHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OklzUHJvZ3Jlc3NJbmRpY2F0b3IsIG9iamVjdC5pc1Byb2dyZXNz
SW5kaWNhdG9yKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1JlcXVpcmVk
LCBvYmplY3QuaXNSZXF1aXJlZCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
SXNTY3JvbGxiYXIsIG9iamVjdC5pc1Njcm9sbGJhcigpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6SXNTZWN1cmVGaWVsZCwgb2JqZWN0LmlzU2VjdXJlRmllbGQoKSk7CiAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzU2VsZWN0ZWQsIG9iamVjdC5pc1NlbGVjdGVk
KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1NsaWRlciwgb2JqZWN0Lmlz
U2xpZGVyKCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpJc1N0eWxlRm9ybWF0
R3JvdXAsIG9iamVjdC5pc1N0eWxlRm9ybWF0R3JvdXAoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKaW5kZXggMjI1MDEwOGNiNmVkLi5jYTYzZGY5ZmFhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2Jq
ZWN0LmgKQEAgLTExOSw3ICsxMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNIZWFkaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpJc0hlYWRpbmcpOyB9CiAgICAgYm9vbCBpc0xhbmRtYXJrKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0xhbmRtYXJrKTsgfQog
ICAgIGJvb2wgaXNMaW5rKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZh
bHVlKEFYUHJvcGVydHlOYW1lOjpJc0xpbmspOyB9Ci0gICAgYm9vbCBpc1Bhc3N3b3JkRmllbGQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5h
bWU6OklzUGFzc3dvcmRGaWVsZCk7IH0KKyAgICBib29sIGlzU2VjdXJlRmllbGQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzU2Vj
dXJlRmllbGQpOyB9CiAgICAgYm9vbCBpc0F0dGFjaG1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzQXR0YWNobWVudCk7IH0K
ICAgICBib29sIGlzTWVudVJlbGF0ZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0
cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OklzTWVudVJlbGF0ZWQpOyB9CiAgICAgYm9vbCBp
c01lbnUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9w
ZXJ0eU5hbWU6OklzTWVudSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCmluZGV4IGZhMjZiMjczNzM0
MS4uMzYzNDM2MzhkYWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmgKQEAgLTE2NCwxMSArMTY0LDEx
IEBAIGVudW0gY2xhc3MgQVhQcm9wZXJ0eU5hbWUgOiB1aW50MTZfdCB7CiAgICAgSXNNZW51TGlz
dFBvcHVwLAogICAgIElzTWVudVJlbGF0ZWQsCiAgICAgSXNNdWx0aVNlbGVjdGFibGUsCi0gICAg
SXNQYXNzd29yZEZpZWxkLAogICAgIElzUHJlc3NlZCwKICAgICBJc1Byb2dyZXNzSW5kaWNhdG9y
LAogICAgIElzUmVxdWlyZWQsCiAgICAgSXNTY3JvbGxiYXIsCisgICAgSXNTZWN1cmVGaWVsZCwK
ICAgICBJc1NlbGVjdGVkLAogICAgIElzU2VsZWN0ZWRPcHRpb25BY3RpdmUsCiAgICAgSXNTbGlk
ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3Np
YmlsaXR5T2JqZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNj
ZXNzaWJpbGl0eU9iamVjdE1hYy5tbQppbmRleCA1ZmIwMGJkOWU4OTQuLjQxYWIwYWM5MTc0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC0yMjAsNyArMjIwLDcgQEAgU3RyaW5nIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAKIFN0cmluZyBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogewotICAgIGlmIChp
c1Bhc3N3b3JkRmllbGQoKSkKKyAgICBpZiAoaXNTZWN1cmVGaWVsZCgpKQogICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5U2VjdXJlVGV4dEZpZWxkU3Vicm9sZTsKICAgICBpZiAoaXNTZWFy
Y2hGaWVsZCgpKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRTdWJy
b2xlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNj
ZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbQppbmRleCBhNGM1NWJi
ZDI1ZjIuLmY3M2UxZGZjMWNiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJN
YWMubW0KQEAgLTExMTEsNyArMTExMSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJ
T05TX0VORAogICAgICAgICBbdGVtcEFycmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlVUkxB
dHRyaWJ1dGVdOwogICAgICAgICByZXR1cm4gdGVtcEFycmF5OwogICAgIH0oKTsKLSAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQgcGFzc3dvcmRGaWVsZEF0dHJzID0gW10geworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZCBzZWN1cmVGaWVsZEF0dHJpYnV0ZXMgPSBbXSB7CiAgICAgICAgIGF1dG8g
dGVtcEFycmF5ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5
OmF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCldKTsKICAgICAgICAgW3RlbXBBcnJheSBhZGRPYmplY3Q6
TlNBY2Nlc3NpYmlsaXR5VGl0bGVVSUVsZW1lbnRBdHRyaWJ1dGVdOwogICAgICAgICBbdGVtcEFy
cmF5IGFkZE9iamVjdDpOU0FjY2Vzc2liaWxpdHlSZXF1aXJlZEF0dHJpYnV0ZV07CkBAIC0xMTY2
LDggKzExNjYsOCBAQCBBTExPV19ERVBSRUNBVEVEX0lNUExFTUVOVEFUSU9OU19FTkQKIAogICAg
IE5TQXJyYXkgKm9iamVjdEF0dHJpYnV0ZXMgPSBhdHRyaWJ1dGVzLmdldCgpLmdldCgpOwogCi0g
ICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFzc3dvcmRGaWVsZCgpKQotICAgICAgICBvYmplY3RB
dHRyaWJ1dGVzID0gcGFzc3dvcmRGaWVsZEF0dHJzLmdldCgpLmdldCgpOworICAgIGlmIChiYWNr
aW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCisgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSBz
ZWN1cmVGaWVsZEF0dHJpYnV0ZXMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09i
amVjdC0+aXNXZWJBcmVhKCkpCiAgICAgICAgIG9iamVjdEF0dHJpYnV0ZXMgPSB3ZWJBcmVhQXR0
cnMuZ2V0KCkuZ2V0KCk7CiAgICAgZWxzZSBpZiAoYmFja2luZ09iamVjdC0+aXNUZXh0Q29udHJv
bCgpKQpAQCAtMTY2OCw3ICsxNjY4LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElP
TlNfRU5ECiAgICAgfQogCiAgICAgaWYgKFthdHRyaWJ1dGVOYW1lIGlzRXF1YWxUb1N0cmluZzpO
U0FjY2Vzc2liaWxpdHlWaXNpYmxlQ2hhcmFjdGVyUmFuZ2VBdHRyaWJ1dGVdKSB7Ci0gICAgICAg
IGlmIChiYWNraW5nT2JqZWN0LT5pc1Bhc3N3b3JkRmllbGQoKSkKKyAgICAgICAgaWYgKGJhY2tp
bmdPYmplY3QtPmlzU2VjdXJlRmllbGQoKSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
ICAgIC8vIEZJWE1FOiBHZXQgYWN0dWFsIHZpc2libGUgcmFuZ2UuIDxyZGFyOi8vcHJvYmxlbS80
NzEyMTAxPgogICAgICAgICBpZiAoYmFja2luZ09iamVjdC0+aXNUZXh0Q29udHJvbCgpKQpAQCAt
MjQ3Nyw3ICsyNDc3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAg
ICAgICAgIHdlYkFyZWFQYXJhbUF0dHJzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aEFycmF5
OnRlbXBBcnJheS5nZXQoKV07CiAgICAgfQogCi0gICAgaWYgKGJhY2tpbmdPYmplY3QtPmlzUGFz
c3dvcmRGaWVsZCgpKQorICAgIGlmIChiYWNraW5nT2JqZWN0LT5pc1NlY3VyZUZpZWxkKCkpCiAg
ICAgICAgIHJldHVybiBAWyBOU0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRzRm9yU2VhcmNoUHJlZGlj
YXRlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBdOwogCiAgICAgaWYgKGJhY2tpbmdPYmplY3QtPmlz
VGV4dENvbnRyb2woKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmlu
ZGV4IDMxMDRmYzBiZWEwMy4uNGMyNjBmZmZlNTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5jcHAKQEAgLTE0MDAsNiArMTQwMCw5IEBAIHZvaWQgSFRNTElucHV0RWxl
bWVudDo6c2V0QXV0b0ZpbGxlZEFuZE9ic2N1cmVkKGJvb2wgYXV0b0ZpbGxlZEFuZE9ic2N1cmVk
KQogCiAgICAgU3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uIHN0eWxlSW52YWxp
ZGF0aW9uKCp0aGlzLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBdXRvZmlsbEFuZE9ic2N1cmVk
LCBhdXRvRmlsbGVkQW5kT2JzY3VyZWQpOwogICAgIG1faXNBdXRvRmlsbGVkQW5kT2JzY3VyZWQg
PSBhdXRvRmlsbGVkQW5kT2JzY3VyZWQ7CisKKyAgICBpZiAoYXV0byogY2FjaGUgPSBkb2N1bWVu
dCgpLmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICBjYWNoZS0+b25UZXh0U2VjdXJp
dHlDaGFuZ2VkKCp0aGlzKTsKIH0KIAogdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzZXRTaG93QXV0
b0ZpbGxCdXR0b24oQXV0b0ZpbGxCdXR0b25UeXBlIGF1dG9GaWxsQnV0dG9uVHlwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKaW5kZXggYjE5N2VmOTQ3MTA3Li5iZDEyMDg1
NzE0NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xNDIsNiAr
MTQyLDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTZWFyY2hGaWVsZCgp
IGNvbnN0OwogICAgIGJvb2wgaXNJbnB1dFR5cGVIaWRkZW4oKSBjb25zdDsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGlzUGFzc3dvcmRGaWVsZCgpIGNvbnN0OworICAgIGJvb2wgaXNTZWN1cmVG
aWVsZCgpIGNvbnN0IHsgcmV0dXJuIGlzUGFzc3dvcmRGaWVsZCgpIHx8IGlzQXV0b0ZpbGxlZEFu
ZE9ic2N1cmVkKCk7IH0KICAgICBib29sIGlzQ2hlY2tib3goKSBjb25zdDsKICAgICBib29sIGlz
UmFuZ2VDb250cm9sKCkgY29uc3Q7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvcGFzc3dvcmQtZmllbGQtdmFs
dWUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyNDdlZjY0ZmE1
MTIuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3Jk
LWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDExICswLDAgQEAK
LQotVGhpcyB0ZXN0cyB0aGF0IHRoZSBBWCBleHBvc2VkIHZhbHVlIG9mIGEgcGFzc3dvcmQgZmll
bGQgaXMgdGhlIHJlbmRlcmVkIHRleHQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQot
Ci1QYXNzd29yZCBmaWVsZDogQVhWYWx1ZTog4oCi4oCi4oCi4oCiCi1QQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sIGIvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9wYXNzd29yZC1maWVsZC12YWx1ZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwN2RlNWJkMTM1YTYuLjAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L3Bhc3N3b3JkLWZpZWxkLXZhbHVlLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSwyNyArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxi
b2R5IGlkPSJib2R5Ij4KLQotPGlucHV0IHR5cGU9InBhc3N3b3JkIiBpZD0icGFzcyIgdmFsdWU9
InRlc3QiPgotCi08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgotCi08c2NyaXB0PgotCi0gICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCB0aGUg
QVggZXhwb3NlZCB2YWx1ZSBvZiBhIHBhc3N3b3JkIGZpZWxkIGlzIHRoZSByZW5kZXJlZCB0ZXh0
LiIpOwotCi0gICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikKLSAgICAgICAg
ZGVidWcoIlBhc3N3b3JkIGZpZWxkOiAiICsgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNz
aWJsZUVsZW1lbnRCeUlkKCJwYXNzIikuc3RyaW5nVmFsdWUpOwotICAgIGVsc2UKLSAgICAgICAg
dGVzdEZhaWxlZCgiVGhpcyB0ZXN0IGRlcGVuZHMgb24gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIs
IHBsZWFzZSB1c2UgcnVuLXdlYmtpdC10ZXN0cyB0byBydW4gaXQuIik7Ci0gICAgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKLQotPC9zY3JpcHQ+Ci0KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJiODZiZDQw
NDZlYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJl
LWZpZWxkLXZhbHVlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3RzIHRo
YXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2Ygc2VjdXJlIGlucHV0cyBpcyB0aGUgcmVuZGVyZWQg
KGFuZCB0aGVyZWZvcmUgY2Vuc29yZWQpIHRleHQuCisKK1Bhc3N3b3JkIGZpZWxkIHZhbHVlOiBB
WFZhbHVlOiDigKLigKLigKLigKIKKyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBiZWZvcmUgYmVpbmcg
b2JzY3VyZWQ6IEFYVmFsdWU6IGZvbworTWFraW5nICNhdXRvZmlsbC1pbnB1dCBvYnNjdXJlZC4K
KyNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBiZWluZyBvYnNjdXJlZDogQVhWYWx1ZTog4oCi
4oCi4oCiCitNYWtpbmcgI2F1dG9maWxsLWlucHV0IHZpZXdhYmxlLgorI2F1dG9maWxsLWlucHV0
IHZhbHVlIGFmdGVyIGJlaW5nIG1hZGUgdmlld2FibGU6IEFYVmFsdWU6IGZvbworCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9zZWN1cmUtZmllbGQtdmFsdWUuaHRtbCBiL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvc2VjdXJlLWZpZWxkLXZhbHVlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xNGQ1Mzg4OWYzN2QKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3NlY3VyZS1maWVsZC12YWx1ZS5odG1sCkBA
IC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwv
L0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2li
aWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKworPGlucHV0IHR5cGU9InBhc3N3
b3JkIiBpZD0icGFzc3dvcmQtaW5wdXQiIHZhbHVlPSJ0ZXN0Ij4KKzxpbnB1dCB0eXBlPSJ0ZXh0
IiBpZD0iYXV0b2ZpbGwtaW5wdXQiIHZhbHVlPSJmb28iPgorCis8c2NyaXB0PgordmFyIG91dHB1
dCA9ICJUaGlzIHRlc3RzIHRoYXQgdGhlIEFYIGV4cG9zZWQgdmFsdWUgb2Ygc2VjdXJlIGlucHV0
cyBpcyB0aGUgcmVuZGVyZWQgKGFuZCB0aGVyZWZvcmUgY2Vuc29yZWQpIHRleHQuXG5cbiI7CisK
K2lmICh3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpIHsKKyAgICB3aW5kb3cuanNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICBjb25zdCBhdXRvZmlsbElucHV0ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJhdXRvZmlsbC1pbnB1dCIpOworICAg
IGxldCBsYXN0QXV0b2ZpbGxWYWx1ZSA9IGF1dG9maWxsSW5wdXQuc3RyaW5nVmFsdWU7CisgICAg
b3V0cHV0ICs9IGBQYXNzd29yZCBmaWVsZCB2YWx1ZTogJHthY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInBhc3N3b3JkLWlucHV0Iikuc3RyaW5nVmFsdWV9XG5g
OworICAgIG91dHB1dCArPSBgI2F1dG9maWxsLWlucHV0IHZhbHVlIGJlZm9yZSBiZWluZyBvYnNj
dXJlZDogJHtsYXN0QXV0b2ZpbGxWYWx1ZX1cbmA7CisKKyAgICBvdXRwdXQgKz0gIk1ha2luZyAj
YXV0b2ZpbGwtaW5wdXQgb2JzY3VyZWQuXG4iOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0QXV0
b0ZpbGxlZEFuZE9ic2N1cmVkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvZmlsbC1pbnB1
dCIpLCB0cnVlKTsKKyAgICBzZXRUaW1lb3V0KGFzeW5jIGZ1bmN0aW9uKCkgeworICAgICAgICBh
d2FpdCB3YWl0Rm9yKCgpID0+IGxhc3RBdXRvZmlsbFZhbHVlICE9PSBhdXRvZmlsbElucHV0LnN0
cmluZ1ZhbHVlKTsKKyAgICAgICAgbGFzdEF1dG9maWxsVmFsdWUgPSBhdXRvZmlsbElucHV0LnN0
cmluZ1ZhbHVlOworICAgICAgICBvdXRwdXQgKz0gYCNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRl
ciBiZWluZyBvYnNjdXJlZDogJHthdXRvZmlsbElucHV0LnN0cmluZ1ZhbHVlfVxuYDsKKworICAg
ICAgICBvdXRwdXQgKz0gIk1ha2luZyAjYXV0b2ZpbGwtaW5wdXQgdmlld2FibGUuXG4iOworICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRPYnNjdXJlZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiYXV0b2ZpbGwtaW5wdXQiKSwgZmFsc2UpOworICAgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldEF1dG9GaWxsZWRBbmRWaWV3YWJsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYXV0b2ZpbGwtaW5wdXQiKSwgdHJ1ZSk7CisgICAgICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4g
bGFzdEF1dG9maWxsVmFsdWUgIT09IGF1dG9maWxsSW5wdXQuc3RyaW5nVmFsdWUpOworICAgICAg
ICBvdXRwdXQgKz0gYCNhdXRvZmlsbC1pbnB1dCB2YWx1ZSBhZnRlciBiZWluZyBtYWRlIHZpZXdh
YmxlOiAke2F1dG9maWxsSW5wdXQuc3RyaW5nVmFsdWV9XG5gOworCisgICAgICAgIGRlYnVnKG91
dHB1dCk7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>