<?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>237525</bug_id>
          
          <creation_ts>2022-03-07 05:38:39 -0800</creation_ts>
          <short_desc>[selection] Set correct selection range for TEXTAREA when updating default value</short_desc>
          <delta_ts>2022-05-02 12:13:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>zsun</reporter>
          <assigned_to>zsun</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mifenton</cc>
    
    <cc>ntim</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1848701</commentid>
    <comment_count>0</comment_count>
    <who name="">zsun</who>
    <bug_when>2022-03-07 05:38:39 -0800</bug_when>
    <thetext>https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#textFieldSelection:concept-textarea/input-relevant-value</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848717</commentid>
    <comment_count>1</comment_count>
      <attachid>453971</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-07 06:21:05 -0800</bug_when>
    <thetext>Created attachment 453971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848735</commentid>
    <comment_count>2</comment_count>
      <attachid>453975</attachid>
    <who name="">zsun</who>
    <bug_when>2022-03-07 06:52:18 -0800</bug_when>
    <thetext>Created attachment 453975
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850851</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-14 06:39:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/90243598&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865407</commentid>
    <comment_count>4</comment_count>
      <attachid>458582</attachid>
    <who name="">zsun</who>
    <bug_when>2022-04-29 05:32:26 -0700</bug_when>
    <thetext>Created attachment 458582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865421</commentid>
    <comment_count>5</comment_count>
      <attachid>458582</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-29 07:25:11 -0700</bug_when>
    <thetext>Comment on attachment 458582
Patch

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

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:408
&gt; +    unsigned selectionStartValue = isClamp ? computeSelectionStart() : 0;
&gt; +    unsigned selectionEndValue = isClamp ? computeSelectionEnd() : 0;

auto

&gt; Source/WebCore/html/HTMLTextFormControlElement.h:86
&gt; +    WEBCORE_EXPORT unsigned computeSelectionStart() const;
&gt; +    WEBCORE_EXPORT unsigned computeSelectionEnd() const;

This doesn&apos;t need WEBCORE_EXPORT, you&apos;re not using outside of the webcore directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865422</commentid>
    <comment_count>6</comment_count>
      <attachid>458582</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-04-29 07:28:48 -0700</bug_when>
    <thetext>Comment on attachment 458582
Patch

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

r=me with comments. (also agree with all of Tim&apos;s)

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:139
&gt; +        setNonDirtyValue(defaultValue(),  TextControlSetValueSelection::Clamp);

Too many spaces after the comma.

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:406
&gt; +    bool isClamp = selection == TextControlSetValueSelection::Clamp;

I think this indicates whether we want to clamp or not. If so, I think &quot;shouldClamp&quot; would be a better variable name.

&gt;&gt; Source/WebCore/html/HTMLTextFormControlElement.h:86
&gt;&gt; +    WEBCORE_EXPORT unsigned computeSelectionEnd() const;
&gt; 
&gt; This doesn&apos;t need WEBCORE_EXPORT, you&apos;re not using outside of the webcore directory.

True but also, why did you make them public. Seems like they could be protected?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865423</commentid>
    <comment_count>7</comment_count>
      <attachid>458582</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-04-29 07:30:41 -0700</bug_when>
    <thetext>Comment on attachment 458582
Patch

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

&gt; Source/WebCore/html/HTMLTextAreaElement.cpp:426
&gt;      if (document().focusedElement() == this) {
&gt;          unsigned endOfString = m_value.length();
&gt;          setSelectionRange(endOfString, endOfString);
&gt; -    }  else if (selection == TextControlSetValueSelection::SetSelectionToEnd) {
&gt; +    } else if (selection == TextControlSetValueSelection::SetSelectionToEnd) {
&gt;          // We don&apos;t change text selection here but need to update caret to
&gt;          // the end of the text value except for initialize.
&gt;          unsigned endOfString = m_value.length();
&gt;          cacheSelection(endOfString, endOfString, SelectionHasNoDirection);
&gt; +    } else if (isClamp) {
&gt; +        unsigned endOfString = m_value.length();

Since all 3 branches use `endOfString`, can we factor it out of the if/elses?

Also `unsigned` -&gt; `auto`</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865780</commentid>
    <comment_count>8</comment_count>
      <attachid>458666</attachid>
    <who name="">zsun</who>
    <bug_when>2022-05-02 00:59:13 -0700</bug_when>
    <thetext>Created attachment 458666
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865896</commentid>
    <comment_count>9</comment_count>
      <attachid>458666</attachid>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2022-05-02 11:34:02 -0700</bug_when>
    <thetext>Comment on attachment 458666
Patch

I assume this is ready to cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865908</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-02 12:13:17 -0700</bug_when>
    <thetext>Committed r293673 (250175@main): &lt;https://commits.webkit.org/250175@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458666.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453971</attachid>
            <date>2022-03-07 06:21:05 -0800</date>
            <delta_ts>2022-03-07 06:52:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237525-20220307142103.patch</filename>
            <type>text/plain</type>
            <size>40284</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI2NDJlMWFiZjhiYmZk
NDUzYTNmZTk2ODIzNjM4NjY5NDVmMGFjNy4uN2RkNDQ4ZTQxYmZiYTM2MjE1MTVhMDdiM2Y2NDI0
N2FlZTIzYTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIyLTAzLTA3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gU2V0IGNvcnJl
Y3Qgc2VsZWN0aW9uIHJhbmdlIGZvciBURVhUQVJFQSB3aGVuIHVwZGF0aW5nIGRlZmF1bHQgdmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBU
RVhUQVJFQSwgc2luY2UgZGVmYXVsdFZhbHVlIHNldHRlciBkb2Vzbid0IGhhdmUgYW55IGV4cGxp
Y2l0IHNlbGVjdGlvbiBiZWhhdmlvciBbMV0sIHdlIGZvbGxvdworICAgICAgICB0aGUgZGVmYXVs
dCBzZWxlY3Rpb24gc3RlcHMgc3RhdGVkIGluIFsyXS4gQmFzaWNhbGx5LCB3aGVudmVyIHRoZSAi
cmVsZXZhbnQgdmFsdWUiIChmb3IgaW5wdXQgZWxlbWVudAorICAgICAgICBpdCByZWZlcnMgdG8g
dGhlIGVsZW1lbnQgdmFsdWUgd2hpbGUgZm9yIHRleHRhcmVhIGVsZW1lbnQgaXQgcmVmZXJzIHRv
IHRoZSBlbGVtZW50J3MgQVBJIHZhbHVlKSBjaGFuZ2VzLAorICAgICAgICBpZiB0aGUgZWxlbWVu
dCBoYXMgYSBzZWxlY3Rpb24sIHdlIHNob3VsZCBrZWVwIFNlbGVjdGlvblN0YXJ0L1NlbGVjdGlv
bkVuZCBhbmQgY2xhbXBpbmcgdGhlbSB0byB0aGUKKyAgICAgICAgInJlbGV2YW50IHZhbHVlIi4K
KyAgICAgICAgCisgICAgICAgIFsxXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9mb3JtLWVsZW1lbnRzLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQ6ZG9tLXRleHRhcmVh
LWRlZmF1bHR2YWx1ZS0yCisgICAgICAgIFsyXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0RmllbGRTZWxl
Y3Rpb246Y29uY2VwdC10ZXh0YXJlYS9pbnB1dC1yZWxldmFudC12YWx1ZQorICAgICAgICAKKyAg
ICAgICAgVGhpcyBDTCByZWZlcnMgYW5kIGltcG9ydHMgY2hhbmdlcyBpbiBjaHJvbWl1bSBDTHMg
YXQgLQorICAgICAgICBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv
Y2hyb21pdW0vc3JjLysvMTU3NTMxNyBhbmQKKyAgICAgICAgaHR0cHM6Ly9jb2RlcmV2aWV3LmNo
cm9taXVtLm9yZy8yNzM1NjMzMDA2CisKKyAgICAgICAgV2UgaGF2ZSBpbnRyb2R1Y2VkIGEgdW5p
ZmllZCBzZXRWYWx1ZSgpIEFQSSBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGZvciBIVE1MVGV4
dEFyZWFFbGVtZW50IGFuZCBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICBXZSB3aWxsIGFsc28g
bmVlZCB0aGlzIEFQSSBpbiBmb2xsb3dpbmctdXAgcGF0Y2hlcy4KKworICAgICAgICAqIGh0bWwv
QmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5w
dXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6ZGlkQ2hhbmdlVmFsdWVGcm9tQ29udHJvbCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldE5vbkRpcnR5VmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFsdWVDb21tb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXNGcm9tRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklu
cHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6
OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuaDoKKwogMjAyMi0wMy0wMSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0lGQ11bSW50ZWdyYXRpb25dIElubGluZUl0ZXJhdG9yOjpCb3g6OnJlY3QoKSByZXR1
cm5zIHRoZSB1bmZsaXBwZWQgdmlzdWFsIHJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDRlNzM5NTM4MTJkNDA4NGM4NWRiZTEwNWM3YTkzNTY5
NWY3MGNjZmUuLjg4MjEwYzMzOWY1NTU5NmQ2MTIxZjUwNjUyODUwZDQ2MDBkYzE4MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtNjIsNyArNjIs
NyBAQCBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0
cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4
dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmFsdWVBdHRy
LCBzYW5pdGl6ZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlw
ZS5oCmluZGV4IGU0MTQ2MzQxYjA0ZjQxOThjYjA3MDZiOWE2NTJkNjY5MTZjMDJkYzIuLjRmOGU4
YTFhZTNmM2Y0NjE4NjlmNjZjMWU2ZjJiN2E5YjFjMzY5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBhcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVj
dGlvbikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCAwNjVjZWMwZTY1
YmM3Mjc0M2EyZmQyMWY4NmMzYzU4OGRhZWExMTNmLi44YTU0Y2EwNTM1NGE5MzAyNzU5YWI3NWJh
M2ExNzU1ZjdiOWY0NTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1
dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKK3ZvaWQg
QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRW
YWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNl
bGVjdGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBlbGVtZW50KCktPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCmluZGV4IGI0
OWE3N2E0MTU5MjUxYjE4NTAxNDllMTAwN2NkZjQwMDZjMDlhMjQuLjZiZjVkNTFmYWIyYTZkYjk4
MzBjMjNlNmZiMWIyOGVkYTA1N2NlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBh
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAgIFN0cmlu
ZyBmYWxsYmFja1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNl
cGFyYXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBU
ZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcAppbmRleCBjZjdjYzMxZjM0MmY3YjVhNzQ3NDc1ZTRjY2ExODliZDEzYTc0MTNl
Li4zNzU1MjgxZDE4MmUzYWFiZTE4Yzc5ZDlkMzUxMzY5YWM3MzU0ZTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0yNzcsOSAr
Mjc3LDkgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZEhhdmVNaWxsaXNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJgogICAgICAgICB8fCAhc3RlcFJhbmdlLnN0
ZXAoKS5yZW1haW5kZXIobXNlY1BlclNlY29uZCkuaXNaZXJvKCk7CiB9CiAKLXZvaWQgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQordm9pZCBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIFRl
eHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewotICAgIElucHV0VHlwZTo6
c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CisgICAgSW5wdXRU
eXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yLCBzZWxlY3Rp
b24pOwogICAgIGlmICh2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVl
KCk7CiB9CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmRpZEJsdXJGcm9tQ29udHJvbCgpCiB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
Q2hhbmdlVmFsdWVGcm9tQ29udHJvbCgpCiB7CiAgICAgU3RyaW5nIHZhbHVlID0gc2FuaXRpemVW
YWx1ZShtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCkpOwotICAgIElucHV0VHlwZTo6c2V0
VmFsdWUodmFsdWUsIHZhbHVlICE9IGVsZW1lbnQoKS0+dmFsdWUoKSwgRGlzcGF0Y2hJbnB1dEFu
ZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZSAhPSBl
bGVtZW50KCktPnZhbHVlKCksIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCwgRG9Ob3RTZXQp
OwogCiAgICAgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIGlmICgh
c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYjY4NWY4ZTE5ZmZi
NDg4NTVmNGUyZmU4MmUzYjEyMWJlNDkzYTczZC4uNmJmNmQ2YjkwM2I0YWQ3NjU5NmJiYWNjZTU0
ZDE3ZDM3YTMxZThjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJbnB1dFR5
cGUgZnVuY3Rpb25zOgogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKICAg
ICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNl
dFZhbHVlU2VsZWN0aW9uKSBmaW5hbDsKICAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1l
KSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBmMTE5ZTgyYjM3N2Rk
YjQxZmNkOWU4YjkzYWE3ZmNlZmEwZjVkYzBkLi4xNzBmYmM1MTQwMTZhNDQxNDg4NDA5NjA1Yzk4
ZDcyNGU1YjU2ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAt
MTUzLDkgKzE1Myw5IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9CiAKLXZvaWQgQ29sb3JJbnB1dFR5cGU6OnNl
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRC
ZWhhdmlvciBldmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNlbGVj
dGlvbikKIHsKLSAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2
ZW50QmVoYXZpb3IpOworICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdl
ZCwgZXZlbnRCZWhhdmlvciwgc2VsZWN0aW9uKTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMTE2
ZGFiMTE3Yjk3NTliMjM2MTczNzBlZDQ4Mzc5YThjNzdhMzM3OS4uYzhmZWE2YTMyNjIwNjRhODJk
NDVmM2RlMWUwMGJiMzVjYzI1YjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
aApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkg
Y29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7Ci0gICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1
ZVNlbGVjdGlvbikgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQm
KSBmaW5hbDsKICAgICB2b2lkIGRldGFjaCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZWE3ZGZhY2Y2MmI3ODI1NTlkNjVlM2JmYjZiM2QwY2NkZmUyNTIx
Yy4uYjY1Yjg3MGVhNzA1NDUwYjNjNmU5M2Q2YzMyYmJmYmY5ZTcwYzQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgYm9vbCBGaWxlSW5w
dXRUeXBlOjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVl
KGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9s
U2V0VmFsdWVTZWxlY3Rpb24pCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjbGVhciB0aGUg
ZmlsZSBsaXN0LCBvciByZXBsYWNlIGl0IHdpdGggYSBuZXcgZW1wdHkgb25lIGhlcmU/IFRoaXMg
aXMgb2JzZXJ2YWJsZSBmcm9tIEphdmFTY3JpcHQgdGhyb3VnaCBjdXN0b20gcHJvcGVydGllcy4K
ICAgICBtX2ZpbGVMaXN0LT5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApp
bmRleCA5MTU3YjE3OTAyOTIwMGYzYzQzMDg4Y2I2YTRjNmJlNTVlMDAwMjNhLi5lZTEwODQ5Nzgz
ZmFmZWQyYWE5Yzc4YjYwMDZiYmRlZGVlNjU0NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBkaXNwbGF5U3Ry
aW5nKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBm
aW5hbDsKICAgICBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIGZpbmFsOyAvLyBD
aGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmli
dXRlLgotICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRD
b250cm9sU2V0VmFsdWVTZWxlY3Rpb24pIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXNXaXRoSW1hZ2VUcmFuc2NvZGluZyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggYmNkNmM4YTBlYjcwOTkyMjY5NTRhYmQ3ZDllMGQ1NGJlYjU3ZGVlYS4u
MjJlNmRmNjNmM2RhOGQwODI5MTFhZmQxZTE1N2YzMjRiY2E3MGY2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDY0LDcgKzEwNjQsNyBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
IHNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKIH0KIAotRXhjZXB0aW9uT3I8
dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQorRXhjZXB0aW9uT3I8dm9pZD4gSFRN
TElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNl
bGVjdGlvbikKIHsKICAgICBpZiAoaXNGaWxlVXBsb2FkKCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CkBAIC0xMDc5
LDcgKzEwNzksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBUZXh0RmllbGRFdmVudAogCiAgICAgc2V0TGFzdENoYW5n
ZVdhc05vdFVzZXJFZGl0KCk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cihmYWxzZSk7Ci0gICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1
ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZShzYW5p
dGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yLCBzZWxlY3Rpb24pOwogCiAg
ICAgYm9vbCB3YXNNb2RpZmllZFByb2dyYW1tYXRpY2FsbHkgPSBldmVudEJlaGF2aW9yID09IERp
c3BhdGNoTm9FdmVudDsKICAgICBpZiAod2FzTW9kaWZpZWRQcm9ncmFtbWF0aWNhbGx5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBjYzUwZmVlMzNjOThkMWY4OTJh
NDdlNGMwNTE0MTI5M2ZmMTMxYWEwLi44NTA0ZmI2MjY5NmM3ZjAxZTE4OWIyZDczMTlmNzgwMGM1
OWM4NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTcxLDcg
KzE3MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFR5cGUoY29uc3Qg
QXRvbVN0cmluZyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
ZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCwgVGV4dENvbnRyb2xT
ZXRWYWx1ZVNlbGVjdGlvbiA9IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvblRvRW5kKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZhbHVlRm9yVXNl
cihjb25zdCBTdHJpbmcmKTsKICAgICAvLyBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBzdHJpbmcg
d291bGQgYmUgYSB2YWxpZCB2YWx1ZS4KICAgICAvLyBXZSBzaG91bGQgbm90IGNhbGwgdGhpcyBm
b3IgdHlwZXMgd2l0aCBubyBzdHJpbmcgdmFsdWUgc3VjaCBhcyBDSEVDS0JPWCBhbmQgUkFESU8u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBhYTUy
ZjAwZGI1ZGMwNmRkMzA0ODE2ZTEzMzE1NWE3MzlhNGExMjNiLi45NWNiY2VhNWNkNmM5YmM1YTkw
ZDkyMTdlYjA4NTY1YzZkYTc0MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmICht
X2lzRGlydHkpCiAgICAgICAgIHNldElubmVyVGV4dFZhbHVlKHZhbHVlKCkpOwogICAgIGVsc2UK
LSAgICAgICAgc2V0Tm9uRGlydHlWYWx1ZShkZWZhdWx0VmFsdWUoKSk7CisgICAgICAgIHNldE5v
bkRpcnR5VmFsdWUoZGVmYXVsdFZhbHVlKCksICBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9u
OjpDbGFtcCk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApAQCAt
MjQxLDcgKzI0MSw3IEBAIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6YXBwZW5kRm9ybURhdGEo
RE9NRm9ybURhdGEmIGZvcm1EYXRhKQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc2V0
KCkKIHsKLSAgICBzZXROb25EaXJ0eVZhbHVlKGRlZmF1bHRWYWx1ZSgpKTsKKyAgICBzZXROb25E
aXJ0eVZhbHVlKGRlZmF1bHRWYWx1ZSgpLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25Ub0VuZCk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFzQ3Vz
dG9tRm9jdXNMb2dpYygpIGNvbnN0CkBAIC0zNzQsMjEgKzM3NCwyMiBAQCBTdHJpbmcgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3ZhbHVlOwogfQogCi12
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCitF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIFRleHRDb250
cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewotICAgIHNldFZhbHVlQ29tbW9uKHZh
bHVlKTsKKyAgICBzZXRWYWx1ZUNvbW1vbih2YWx1ZSwgZXZlbnRCZWhhdmlvciwgc2VsZWN0aW9u
KTsKICAgICBtX2lzRGlydHkgPSB0cnVlOwogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgcmV0
dXJuIHsgfTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXROb25EaXJ0eVZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldE5vbkRp
cnR5VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlv
biBzZWxlY3Rpb24pCiB7Ci0gICAgc2V0VmFsdWVDb21tb24odmFsdWUpOworICAgIHNldFZhbHVl
Q29tbW9uKHZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yOjpEaXNwYXRjaE5vRXZlbnQsIHNl
bGVjdGlvbik7CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsK
IH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZUNvbW1vbihjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZUNvbW1vbihj
b25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZp
b3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewogICAgIG1fd2Fz
TW9kaWZpZWRCeVVzZXIgPSBmYWxzZTsKICAgICAvLyBDb2RlIGVsc2V3aGVyZSBub3JtYWxpemVz
IGxpbmUgZW5kaW5ncyBhZGRlZCBieSB0aGUgdXNlciB2aWEgdGhlIGtleWJvYXJkIG9yIHBhc3Rp
bmcuCkBAIC00MDIsNiArNDAzLDExIEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFs
dWVDb21tb24oY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSkKICAgICBpZiAobm9ybWFsaXplZFZhbHVl
ID09IHZhbHVlKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIC8vIHNlbGVjdGlvblN0YXJ0IGFu
ZCBzZWxlY3Rpb25FbmQgdmFsdWVzIGNhbiBiZSBjaGFuZ2VkIGJ5IFNldElubmVyVGV4dFZhbHVl
KCkuIFdlIG5lZWQgdG8gZ2V0IHRoZW0gYmVmb3JlIFNldElubmVyVGV4dFZhbHVlKCkgdG8KKyAg
ICAvLyBjbGFtcCB0aGVtIGxhdGVyIGluIGEgY2FzZSBvZiBDbGFtcC4KKyAgICBib29sIGlzQ2xh
bXAgPSBzZWxlY3Rpb24gPT0gVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbjo6Q2xhbXA7Cisg
ICAgdW5zaWduZWQgc2VsZWN0aW9uU3RhcnRWYWx1ZSA9IGlzQ2xhbXAgPyBzZWxlY3Rpb25TdGFy
dCgpIDogMDsKKyAgICB1bnNpZ25lZCBzZWxlY3Rpb25FbmRWYWx1ZSA9IGlzQ2xhbXAgPyBzZWxl
Y3Rpb25FbmQoKSA6IDA7CiAgICAgbV92YWx1ZSA9IG5vcm1hbGl6ZWRWYWx1ZTsKICAgICBzZXRJ
bm5lclRleHRWYWx1ZShtX3ZhbHVlKTsKICAgICBzZXRMYXN0Q2hhbmdlV2FzTm90VXNlckVkaXQo
KTsKQEAgLTQwOSwxMCArNDE1LDEzIEBAIHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFs
dWVDb21tb24oY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSkKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JT
dWJ0cmVlKCk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJlcih0cnVlKTsK
IAotICAgIC8vIFNldCB0aGUgY2FyZXQgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dCB2YWx1ZS4KLSAg
ICBpZiAoZG9jdW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpID09IHRoaXMpIHsKKyAgICBpZiAoc2Vs
ZWN0aW9uID09IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNlbGVjdGlvblRvRW5k
KSB7CisgICAgICAgIC8vIFNldCB0aGUgY2FyZXQgdG8gdGhlIGVuZCBvZiB0aGUgdGV4dCB2YWx1
ZSBleGNlcHQgZm9yIGluaXRpYWxpemUuCisgICAgICAgIHVuc2lnbmVkIGVuZG9mU3RyaW5nID0g
bV92YWx1ZS5sZW5ndGgoKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2UoZW5kb2ZTdHJpbmcs
IGVuZG9mU3RyaW5nKTsKKyAgICB9IGVsc2UgaWYgKGlzQ2xhbXApIHsKICAgICAgICAgdW5zaWdu
ZWQgZW5kT2ZTdHJpbmcgPSBtX3ZhbHVlLmxlbmd0aCgpOwotICAgICAgICBzZXRTZWxlY3Rpb25S
YW5nZShlbmRPZlN0cmluZywgZW5kT2ZTdHJpbmcpOworICAgICAgICBzZXRTZWxlY3Rpb25SYW5n
ZShzdGQ6Om1pbihlbmRPZlN0cmluZywgc2VsZWN0aW9uU3RhcnRWYWx1ZSksIHN0ZDo6bWluKGVu
ZE9mU3RyaW5nLCBzZWxlY3Rpb25FbmRWYWx1ZSkpOwogICAgIH0KIAogICAgIHNldFRleHRBc09m
TGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQobm9ybWFsaXplZFZhbHVlKTsKQEAgLTU3Niw3ICs1
ODUsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0
aWVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYgcwogewogICAgIGF1dG8mIHNvdXJjZUVsZW1l
bnQgPSBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihzb3VyY2UpOwogCi0gICAgc2V0VmFs
dWVDb21tb24oc291cmNlRWxlbWVudC52YWx1ZSgpKTsKKyAgICBzZXRWYWx1ZUNvbW1vbihzb3Vy
Y2VFbGVtZW50LnZhbHVlKCksIERpc3BhdGNoTm9FdmVudCwgVGV4dENvbnRyb2xTZXRWYWx1ZVNl
bGVjdGlvbjo6U2V0U2VsZWN0aW9uVG9FbmQpOwogICAgIG1faXNEaXJ0eSA9IHNvdXJjZUVsZW1l
bnQubV9pc0RpcnR5OwogICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojpjb3B5Tm9uQXR0
cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50KHNvdXJjZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKaW5kZXggMDA3N2YwMjUzMjZkNzhmMDIxZGFjMGNiMjcx
ZDljOTY4ZmNjYmFkZS4uZjFmY2E3ODljNjcyYmQ3NzI5MzJiYWI0NTZkMzAzZmQ4M2FmYmU1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmgKQEAgLTQ0LDcgKzQ0
LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkV3JhcFRleHQoKSBjb25zdCB7IHJldHVybiBt
X3dyYXAgIT0gTm9XcmFwOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgdmFsdWUoKSBj
b25zdCBmaW5hbDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYpOworICAgIFdFQkNPUkVfRVhQT1JUIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlKGNvbnN0
IFN0cmluZyYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQsIFRleHRD
b250cm9sU2V0VmFsdWVTZWxlY3Rpb24gPSBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25Ub0VuZCkgZmluYWw7CiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIGRlZmF1
bHRWYWx1ZSgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVmYXVsdFZhbHVl
KGNvbnN0IFN0cmluZyYpOwogICAgIGludCB0ZXh0TGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gdmFs
dWUoKS5sZW5ndGgoKTsgfQpAQCAtODMsOCArODMsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgaGFu
ZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQmKSBjb25z
dDsKICAgICBzdGF0aWMgU3RyaW5nIHNhbml0aXplVXNlcklucHV0VmFsdWUoY29uc3QgU3RyaW5n
JiwgdW5zaWduZWQgbWF4TGVuZ3RoKTsKICAgICB2b2lkIHVwZGF0ZVZhbHVlKCkgY29uc3Q7Ci0g
ICAgdm9pZCBzZXROb25EaXJ0eVZhbHVlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0VmFs
dWVDb21tb24oY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBzZXROb25EaXJ0eVZhbHVlKGNvbnN0
IFN0cmluZyYsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24pOworICAgIHZvaWQgc2V0VmFs
dWVDb21tb24oY29uc3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRy
b2xTZXRWYWx1ZVNlbGVjdGlvbik7CiAKICAgICBib29sIHN1cHBvcnRzUGxhY2Vob2xkZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVy
RWxlbWVudCgpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4
dEZvcm1Db250cm9sRWxlbWVudC5oCmluZGV4IGFiM2FiNmFiYmVhZTAzODM0NDZiOTI3ODM1OTlm
YmRjZmUyYzM0MjUuLjRjMDYwMjM4MmI4YTJiYmVhMGRiYmY3YTczYzJhM2E5ZDY1MzAxMTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgK
QEAgLTM5LDYgKzM5LDcgQEAgc3RydWN0IFNpbXBsZVJhbmdlOwogZW51bSBjbGFzcyBBdXRvRmls
bEJ1dHRvblR5cGUgOiB1aW50OF90IHsgTm9uZSwgQ3JlZGVudGlhbHMsIENvbnRhY3RzLCBTdHJv
bmdQYXNzd29yZCwgQ3JlZGl0Q2FyZCB9OwogZW51bSBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rp
b24geyBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwgU2VsZWN0aW9uSGFzRm9yd2FyZERpcmVjdGlv
biwgU2VsZWN0aW9uSGFzQmFja3dhcmREaXJlY3Rpb24gfTsKIGVudW0gVGV4dEZpZWxkRXZlbnRC
ZWhhdmlvciB7IERpc3BhdGNoTm9FdmVudCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgRGlzcGF0Y2hJ
bnB1dEFuZENoYW5nZUV2ZW50IH07CitlbnVtIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24g
eyBTZXRTZWxlY3Rpb25Ub0VuZCwgQ2xhbXAsIERvTm90U2V0IH07CiAKIGNsYXNzIEhUTUxUZXh0
Rm9ybUNvbnRyb2xFbGVtZW50IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3Rh
dGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQpOwpAQCAtODgsNiArODksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZSgpIGNvbnN0ID0gMDsKIAorICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWUo
Y29uc3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCwg
VGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbiA9IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rp
b246OlNldFNlbGVjdGlvblRvRW5kKSA9IDA7CiAgICAgdmlydHVhbCBSZWZQdHI8VGV4dENvbnRy
b2xJbm5lclRleHRFbGVtZW50PiBpbm5lclRleHRFbGVtZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5uZXJUZXh0RWxlbWVu
dENyZWF0aW5nU2hhZG93U3VidHJlZUlmTmVlZGVkKCkgPSAwOwogICAgIHZpcnR1YWwgUmVuZGVy
U3R5bGUgY3JlYXRlSW5uZXJUZXh0U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKaW5kZXggMDk3ODdhN2M1MjgxZjZjNGIz
OTZhZjgxYTM4ZjBiNTYzNmZiZTMzMS4uYWY1M2RhOGUyNWE0ZDY5ODNjNjJiNmE1MWI3YTFiZThj
ZmZhZGVjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcApAQCAtODMs
NyArODMsNyBAQCBib29sIEhpZGRlbklucHV0VHlwZTo6c3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBIaWRkZW5JbnB1dFR5cGU6
OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpCit2b2lkIEhpZGRlbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5n
JiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRy
b2xTZXRWYWx1ZVNlbGVjdGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBlbGVt
ZW50KCktPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmFsdWVBdHRyLCBzYW5p
dGl6ZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0
VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAppbmRleCA5NWVk
MGMxZDdjMDA0MjlmNWExYzFkY2RlNjU3ODFmMmQzNTE3NDAzLi4zNDA3ZGJjNGI1OGZjY2U1YTUw
NzliYTZhMmNlM2M5ZGE1Y2RjNGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hp
ZGRlbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBl
LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIHJlbmRlcmVySXNOZWVkZWQo
KSBvdmVycmlkZTsKICAgICBib29sIHN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVz
KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0
cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVT
ZWxlY3Rpb24pIG92ZXJyaWRlOwogICAgIGJvb2wgYXBwZW5kRm9ybURhdGEoRE9NRm9ybURhdGEm
KSBjb25zdCBvdmVycmlkZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAppbmRleCA3
NGUwZGRlYjE4YzBiNjAyMGU4NWM5MTQyMWExNGI2MmZiN2RkOWVjLi5jMzBkMWRlMDczYmRiNTkz
M2I4YzM5MjNhNjhlM2MyNmVhZGFjYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCkBA
IC03MjEsNyArNzIxLDcgQEAgYm9vbCBJbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9t
QXR0cmlidXRlKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBJbnB1dFR5cGU6OnNldFZh
bHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIElucHV0VHlwZTo6c2V0VmFs
dWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRG
aWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVj
dGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBlbGVtZW50KCktPnNldFZhbHVl
SW50ZXJuYWwoc2FuaXRpemVkVmFsdWUsIGV2ZW50QmVoYXZpb3IpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKaW5kZXggODEyZDU4OGI2ZWQ4ZDAzODkyYzRiYjNkM2RjZjBlZjEwZjZlNjhkYy4uMTky
NGIzNzE2YjRiMzFhYzQzZWJlMWI5OTkxNTY4YzhhMzM4YjM4MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0
VHlwZS5oCkBAIC0zNDEsNyArMzQxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRTZW5kQ2hhbmdlRXZlbnRBZnRlckNoZWNrZWRDaGFuZ2VkKCk7CiAgICAgdmlydHVhbCBib29s
IGNhblNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBzdG9yZXNWYWx1
ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcik7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uKTsK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0SGVpZ2h0QW5kV2lkdGhBdHRyaWJ1dGVzKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggMzBmYmE4OTRhOWZiMWI0MjViODlhYzRm
MTM5YTY0ZmM1ZDYwMTEwMy4uNTc0M2Q0NjM3MGZjODFmNWU0N2E5MjNlZjcyNDViNmZiMTZmNmM0
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtOTQsMTIgKzk0
LDEyIEBAIGNvbnN0IEF0b21TdHJpbmcmIE51bWJlcklucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6Om51bWJlcigpOwogfQogCi12b2lk
IE51bWJlcklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvcikK
K3ZvaWQgTnVtYmVySW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZh
bHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2
aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNlbGVjdGlvbikKIHsKICAgICBBU1NF
UlQoZWxlbWVudCgpKTsKICAgICBpZiAoIXZhbHVlQ2hhbmdlZCAmJiBzYW5pdGl6ZWRWYWx1ZS5p
c0VtcHR5KCkgJiYgIWVsZW1lbnQoKS0+aW5uZXJUZXh0VmFsdWUoKS5pc0VtcHR5KCkpCiAgICAg
ICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVlKCk7Ci0gICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRW
YWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yKTsKKyAgICBU
ZXh0RmllbGRJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQs
IGV2ZW50QmVoYXZpb3IsIHNlbGVjdGlvbik7CiB9CiAKIGRvdWJsZSBOdW1iZXJJbnB1dFR5cGU6
OnZhbHVlQXNEb3VibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9O
dW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgK
aW5kZXggMmZjMGVkNjlmNDNjNjY3ZjhjNjRkNThiNmU1OTliODhlZTc2ZGRlZC4uODUzZTRkNThl
ZGE2YzkyODc0Y2ExZDA0ZjQyNWI1NTVmYjdjODBiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJl
cklucHV0VHlwZS5oCkBAIC00Miw3ICs0Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBj
b25zdCBBdG9tU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVu
dEJlaGF2aW9yKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
dmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVl
U2VsZWN0aW9uKSBmaW5hbDsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFs
OwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEb3VibGUoZG91YmxlLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRW
YWx1ZUFzRGVjaW1hbChjb25zdCBEZWNpbWFsJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgY29u
c3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGYwNmJk
NTU5YjAyNzRiMDY3NWVhNGFmNzc2N2Y4MjU1ZDc2YmIxNDYuLjliNWUxMGM5ZjE2NWMwM2IxYzk2
ZmVmOTU3ZjU0ZmIzYmI3NmYwNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCkBAIC0zNDUsOSArMzQ1LDkgQEAgdm9pZCBSYW5nZUlucHV0VHlwZTo6YXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKQogICAgIElucHV0VHlwZTo6YXR0cmlidXRl
Q2hhbmdlZChuYW1lKTsKIH0KIAotdm9pZCBSYW5nZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3Ig
ZXZlbnRCZWhhdmlvcikKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50
QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewotICAg
IElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7
CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2
aW9yLCBzZWxlY3Rpb24pOwogCiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRleCAxMGZkM2E3MmU3ZDZkMGIw
MTdlZjZiYjJiNGI5NTUwNDhjMDE1OWEzLi44NGM3YjNlZDYyMzAwZDQxZWI0MmU0YzM1N2JiYzc0
ZWE5YzUzYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHNlcmlhbGl6ZShjb25zdCBEZWNpbWFsJikgY29u
c3QgZmluYWw7CiAgICAgYm9vbCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMp
IGZpbmFsOwogICAgIHZvaWQgYXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJikg
ZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdl
ZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4
dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbikgZmluYWw7CiAgICAgU3RyaW5nIGZhbGxiYWNrVmFs
dWUoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcm
IHByb3Bvc2VkVmFsdWUpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgc2hvdWxkUmVzcGVjdExpc3RB
dHRyaWJ1dGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBl
LmNwcAppbmRleCAzNzA1NmU0NWViMWE3NWMxNGZkNDNlNjU2ZjEzMTQ5ZmE1MWYwMzA0Li4wMzQ2
ZmNiMzVkMTAwOTRiZjY4ZDkwMmUxMTdiN2ZiZjVmMTBiNDRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBUZXh0
RmllbGRJbnB1dFR5cGU6OnZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAog
ICAgIHJldHVybiAhZWxlbWVudCgpLT5pc0Rpc2FibGVkT3JSZWFkT25seSgpICYmIGVsZW1lbnQo
KS0+aXNSZXF1aXJlZCgpICYmIHZhbHVlLmlzRW1wdHkoKTsKIH0KIAotdm9pZCBUZXh0RmllbGRJ
bnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFs
dWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIFRl
eHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwg
VGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbiBzZWxlY3Rpb24pCiB7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CiAKQEAgLTEzNywxOCArMTM3LDIwIEBAIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBl
OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdl
CiAKICAgICAvLyBXZSBkb24ndCBhc2sgSW5wdXRUeXBlOjpzZXRWYWx1ZSB0byBkaXNwYXRjaCBl
dmVudHMgYmVjYXVzZQogICAgIC8vIFRleHRGaWVsZElucHV0VHlwZSBkaXNwYXRjaGVzIGV2ZW50
cyBkaWZmZXJlbnQgd2F5IGZyb20gSW5wdXRUeXBlLgotICAgIElucHV0VHlwZTo6c2V0VmFsdWUo
c2FuaXRpemVkVmFsdWUsIHZhbHVlQ2hhbmdlZCwgRGlzcGF0Y2hOb0V2ZW50KTsKKyAgICBJbnB1
dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1ZUNoYW5nZWQsIERpc3BhdGNoTm9F
dmVudCwgc2VsZWN0aW9uKTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1
cm47CiAKICAgICB1cGRhdGVJbm5lclRleHRWYWx1ZSgpOwogCi0gICAgdW5zaWduZWQgbWF4ID0g
dmlzaWJsZVZhbHVlKCkubGVuZ3RoKCk7Ci0gICAgaWYgKGlucHV0LT5mb2N1c2VkKCkpCi0gICAg
ICAgIGlucHV0LT5zZXRTZWxlY3Rpb25SYW5nZShtYXgsIG1heCk7Ci0gICAgZWxzZQotICAgICAg
ICBpbnB1dC0+Y2FjaGVTZWxlY3Rpb25JblJlc3BvbnNlVG9TZXRWYWx1ZShtYXgpOworICAgIGlm
IChzZWxlY3Rpb24gPT0gVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9u
VG9FbmQpIHsKKyAgICAgICAgdW5zaWduZWQgbWF4ID0gdmlzaWJsZVZhbHVlKCkubGVuZ3RoKCk7
CisgICAgICAgIGlmIChpbnB1dC0+Zm9jdXNlZCgpKQorICAgICAgICAgICAgaW5wdXQtPnNldFNl
bGVjdGlvblJhbmdlKG1heCwgbWF4KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgaW5wdXQt
PmNhY2hlU2VsZWN0aW9uSW5SZXNwb25zZVRvU2V0VmFsdWUobWF4KTsKKyAgICB9CiAKICAgICBz
d2l0Y2ggKGV2ZW50QmVoYXZpb3IpIHsKICAgICBjYXNlIERpc3BhdGNoQ2hhbmdlRXZlbnQ6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAppbmRleCA0ZTFiYjE1NGM1YTdi
NTYxY2I1NDRmZTJkNmZmYjg3ZjAyYWM5ZTNhLi45NWViNDYyNWVmYjk2Y2ZiZGFkNzQ0ZGMyMzRl
MDljNzQzYmExYjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgK
QEAgLTc4LDcgKzc4LDcgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgc3VwcG9ydHNSZWFkT25seSgp
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgaGFuZGxlRm9jdXNFdmVudChOb2RlKiBvbGRGb2N1c2Vk
Tm9kZSwgRm9jdXNEaXJlY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCkg
ZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdl
ZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWYWx1ZShj
b25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwg
VGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVJ
bm5lclRleHRWYWx1ZSgpIGZpbmFsOwogICAgIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0
cmluZyYpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0IGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMzg4M2E5
MDZhMDZkMThmNjVkZTg4OTdhNjM3NTYxZThiYTA5MmE0Zi4uZGUxMWMxMDQ0OTBlMTUzYjRlNjg3
YWNhYmE4OWQ3N2NiMGRjOGIyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMjItMDMtMDcgIFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKwor
ICAgICAgICBbc2VsZWN0aW9uXSBTZXQgY29ycmVjdCBzZWxlY3Rpb24gcmFuZ2UgZm9yIFRFWFRB
UkVBIHdoZW4gdXBkYXRpbmcgZGVmYXVsdCB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRoZSB0ZXN0IGV4cGVjdGF0aW9ucyBhcyBz
b21lIHN1Yi10ZXN0cyBhcmUgbm93IHBhc3NpbmcuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9kZWZhdWx0U2VsZWN0
aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1h
bnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi1zdGFydC1lbmQtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jt
cy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3Rl
eHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tdmFsdWUtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4
dGZpZWxkc2VsZWN0aW9uL3RleHRhcmVhLXNlbGVjdGlvbi13aGlsZS1wYXJzaW5nLWV4cGVjdGVk
LnR4dDoKKwogMjAyMi0wMy0wMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBbd2ViLWFuaW1hdGlvbnNdIHdlYi1hbmltYXRpb25zL2ludGVyZmFjZXMvQW5p
bWF0YWJsZS9nZXRBbmltYXRpb25zLWlmcmFtZS5odG1sIGlzIGEgdW5pcXVlIGZhaWx1cmUKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL2RlZmF1bHRTZWxlY3Rpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vZGVmYXVsdFNlbGVjdGlvbi1l
eHBlY3RlZC50eHQKaW5kZXggMzZmNTdkYjc3ODE1ZWVlNzQ3NWU5NzAyYzk5MDVmODRkNmY0YmNi
NS4uNGNhMGQzZGRmYWY5NWVkNGY3YWE3ZmU2Mjg5NzM4ZjI2NzY3MzFhMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGlj
cy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vZGVmYXVsdFNlbGVjdGlvbi1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vZGVmYXVsdFNlbGVjdGlvbi1leHBlY3Rl
ZC50eHQKQEAgLTIsNyArMiw3IEBACiAKIFBBU1MgRGVmYXVsdCBzZWxlY3Rpb25TdGFydCBhbmQg
c2VsZWN0aW9uRW5kIGZvciBbb2JqZWN0IEhUTUxUZXh0QXJlYUVsZW1lbnRdCiBQQVNTIHNlbGVj
dGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQgZG8gbm90IGNoYW5nZSB3aGVuIHNhbWUgdmFsdWUg
c2V0IGFnYWluIGZvciBbb2JqZWN0IEhUTUxUZXh0QXJlYUVsZW1lbnRdCi1GQUlMIHNlbGVjdGlv
blN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQgY2hhbmdlIHdoZW4gdmFsdWUgY2hhbmdlZCB0byB1cHBl
ciBjYXNlIGZvciBbb2JqZWN0IEhUTUxUZXh0QXJlYUVsZW1lbnRdIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIDMgYnV0IGdvdCAwCitQQVNTIHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQg
Y2hhbmdlIHdoZW4gdmFsdWUgY2hhbmdlZCB0byB1cHBlciBjYXNlIGZvciBbb2JqZWN0IEhUTUxU
ZXh0QXJlYUVsZW1lbnRdCiBQQVNTIERlZmF1bHQgc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlv
bkVuZCBmb3IgW29iamVjdCBIVE1MSW5wdXRFbGVtZW50XQogUEFTUyBzZWxlY3Rpb25TdGFydCBh
bmQgc2VsZWN0aW9uRW5kIGRvIG5vdCBjaGFuZ2Ugd2hlbiBzYW1lIHZhbHVlIHNldCBhZ2FpbiBm
b3IgW29iamVjdCBIVE1MSW5wdXRFbGVtZW50XQogUEFTUyBzZWxlY3Rpb25TdGFydCBhbmQgc2Vs
ZWN0aW9uRW5kIGNoYW5nZSB3aGVuIHZhbHVlIGNoYW5nZWQgdG8gdXBwZXIgY2FzZSBmb3IgW29i
amVjdCBIVE1MSW5wdXRFbGVtZW50XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxl
Y3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dAppbmRleCA2OGRmYzc1
M2I1YjJlMGQ5MDY4OTM2NGNkYzM1MWMzODFhZjA1YWRiLi5mMWZiNWEwMWI4NzE2YTQwMjM1MWIx
ZTQ0ZjUwZWIyMTk1M2U1ZTY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlv
bi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dApAQCAtNiwxOCArNiwx
OCBAQCBQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiBpbnB1dC1hcHBlbmRlZCBzaG91bGQgc2V0
IHNlbGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YQogUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24g
aW5wdXQtbm90LWFwcGVuZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZh
bHVlCiBQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiBpbnB1dC1hcHBlbmRlZC1wcmVmb2N1c2Vk
IHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlCiBQQVNTIEluaXRpYWwg
LnZhbHVlIHNldCBvbiBpbnB1dC1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNl
bGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQotRkFJTCBJbml0aWFsIC52YWx1ZSBzZXQgb24g
dGV4dGFyZWEtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFydCB0byBlbmQgb2YgdmFs
dWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1GQUlMIEluaXRpYWwgLnZh
bHVlIHNldCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFy
dCB0byBlbmQgb2YgdmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1G
QUlMIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZC1wcmVmb2N1c2VkIHNo
b3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4dGFyZWEt
bm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFydCB0byBlbmQg
b2YgdmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCitQQVNTIEluaXRp
YWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZCBzaG91bGQgc2V0IHNlbGVjdGlvblN0
YXJ0IHRvIGVuZCBvZiB2YWx1ZQorUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4dGFyZWEt
bm90LWFwcGVuZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlCitQ
QVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZC1wcmVmb2N1c2VkIHNo
b3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlCitQQVNTIEluaXRpYWwgLnZh
bHVlIHNldCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNl
bGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24g
aW5wdXQtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCiBQ
QVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiBpbnB1dC1ub3QtYXBwZW5kZWQgc2hvdWxkIHNldCBz
ZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCiBQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiBp
bnB1dC1hcHBlbmRlZC1wcmVmb2N1c2VkIHNob3VsZCBzZXQgc2VsZWN0aW9uRW5kIHRvIGVuZCBv
ZiB2YWx1ZQogUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24gaW5wdXQtbm90LWFwcGVuZGVkLXBy
ZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCi1GQUlMIElu
aXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZCBzaG91bGQgc2V0IHNlbGVjdGlv
bkVuZCB0byBlbmQgb2YgdmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAw
Ci1GQUlMIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQgc2hvdWxk
IHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVk
IDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4dGFyZWEtYXBwZW5k
ZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNlbGVjdGlvbkVuZCB0byBlbmQgb2YgdmFsdWUgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAwCi1GQUlMIEluaXRpYWwgLnZhbHVlIHNl
dCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNlbGVjdGlv
bkVuZCB0byBlbmQgb2YgdmFsdWUgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMTAgYnV0IGdvdCAw
CitQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZCBzaG91bGQgc2V0
IHNlbGVjdGlvbkVuZCB0byBlbmQgb2YgdmFsdWUKK1BBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9u
IHRleHRhcmVhLW5vdC1hcHBlbmRlZCBzaG91bGQgc2V0IHNlbGVjdGlvbkVuZCB0byBlbmQgb2Yg
dmFsdWUKK1BBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9uIHRleHRhcmVhLWFwcGVuZGVkLXByZWZv
Y3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCitQQVNTIEluaXRp
YWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1ub3QtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQg
c2V0IHNlbGVjdGlvbkVuZCB0byBlbmQgb2YgdmFsdWUKIFBBU1Mgb25zZWxlY3Qgc2hvdWxkIGZp
cmUgd2hlbiBzZWxlY3Rpb25TdGFydCBpcyBjaGFuZ2VkCiBOT1RSVU4gb25zZWxlY3Qgc2hvdWxk
IGZpcmUgd2hlbiBzZWxlY3Rpb25TdGFydCBpcyBjaGFuZ2VkIG9uIGlucHV0LWFwcGVuZGVkCiBO
T1RSVU4gb25zZWxlY3Qgc2hvdWxkIGZpcmUgd2hlbiBzZWxlY3Rpb25TdGFydCBpcyBjaGFuZ2Vk
IG9uIGlucHV0LW5vdC1hcHBlbmRlZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxl
Y3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3Rl
eHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4dHJhLWV4cGVjdGVkLnR4dApp
bmRleCA5NDMzOTYxMWQ5NWQyMTVkYzM5M2I1NDI0ZmI4Yjc3YjRkODc3MmJhLi5lYTMxZjUwZGVi
ZDE3ZGI1ZWU3YTI5NTA2YThhMTVlZmNhZjRhZmExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRm
aWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4dHJhLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50
aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4dHJhLWV4
cGVjdGVkLnR4dApAQCAtMSwxMiArMSwxMiBAQAogCiBQQVNTIFNldHRpbmcgZGVmYXVsdFZhbHVl
IGluIGEgdGV4dGFyZWEgc2hvdWxkIE5PVCBtb3ZlIHRoZSBjdXJzb3IgdG8gdGhlIGVuZAotRkFJ
TCBTZXR0aW5nIGRlZmF1bHRWYWx1ZSBpbiBhIHRleHRhcmVhIHdpdGggYSB2YWx1ZSBzaG91bGQg
Tk9UIG1ha2UgYW55IGRpZmZlcmVuY2UgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgNiBidXQgZ290
IDAKK1BBU1MgU2V0dGluZyBkZWZhdWx0VmFsdWUgaW4gYSB0ZXh0YXJlYSB3aXRoIGEgdmFsdWUg
c2hvdWxkIE5PVCBtYWtlIGFueSBkaWZmZXJlbmNlCiBQQVNTIFNldHRpbmcgdGV4dENvbnRlbnQg
aW4gYSB0ZXh0YXJlYSBzaG91bGQgTk9UIG1vdmUgc2VsZWN0aW9ue1N0YXJ0LEVuZH0gdG8gdGhl
IGVuZAogUEFTUyBBZGRpbmcgY2hpbGRyZW4gdG8gYSB0ZXh0YXJlYSBzaG91bGQgTk9UIG1vdmUg
c2VsZWN0aW9ue1N0YXJ0LEVuZH0gdG8gdGhlIGVuZAogUEFTUyBSZW1vdmluZyBjaGlsZHJlbiBm
cm9tIGEgdGV4dGFyZWEgc2hvdWxkIE5PVCB1cGRhdGUgc2VsZWN0aW9ue1N0YXJ0LEVuZH0KIFBB
U1MgU2V0dGluZyB0aGUgc2FtZSB2YWx1ZSAod2l0aCBkaWZmZXJlbnQgbmV3bGluZXMpIGluIGEg
dGV4dGFyZWEgc2hvdWxkIE5PVCB1cGRhdGUgc2VsZWN0aW9ue1N0YXJ0LEVuZH0KLUZBSUwgUmVt
b3ZpbmcgY2hpbGQgbm9kZXMgaW4gbm9uLWRpcnR5IHRleHRhcmVhIHNob3VsZCBtYWtlIHNlbGVj
dGlvbntTdGFydCxFbmR9IDAgYXNzZXJ0X2VxdWFsczogc2VsZWN0aW9uU3RhcnQgYWZ0ZXIgbm9k
ZSByZW1vdmFsIGV4cGVjdGVkIDAgYnV0IGdvdCAzCi1GQUlMIFNldHRpbmcgdmFsdWUgdG8gYSBz
aG9ydGVyIHN0cmluZyB0aGFuIGRlZmF1bHRWYWx1ZSBzaG91bGQgY29ycmVjdCB0aGUgY3Vyc29y
IHBvc2l0aW9uIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDIgYnV0IGdvdCAzCitGQUlMIFJlbW92
aW5nIGNoaWxkIG5vZGVzIGluIG5vbi1kaXJ0eSB0ZXh0YXJlYSBzaG91bGQgbWFrZSBzZWxlY3Rp
b257U3RhcnQsRW5kfSAwIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvblN0YXJ0IGFmdGVyIHRleHRD
b250ZW50IHNldHRlciBleHBlY3RlZCAwIGJ1dCBnb3QgMworUEFTUyBTZXR0aW5nIHZhbHVlIHRv
IGEgc2hvcnRlciBzdHJpbmcgdGhhbiBkZWZhdWx0VmFsdWUgc2hvdWxkIGNvcnJlY3QgdGhlIGN1
cnNvciBwb3NpdGlvbgogUEFTUyBTaG9ydGVuaW5nIHZhbHVlIGJ5IHR1cm5pbmcgdGhlIGlucHV0
IHR5cGUgaW50byAndXJsJyBzaG91bGQgY29ycmVjdCBzZWxlY3Rpb257U3RhcnQsRW5kfQogRkFJ
TCBTaG9ydGVuaW5nIHZhbHVlIGJ5IHR1cm5pbmcgdGhlIGlucHV0IHR5cGUgaW50byAnY29sb3In
IGFuZCBiYWNrIHRvICd0ZXh0JyBzaG91bGQgY29ycmVjdCBzZWxlY3Rpb257U3RhcnQsRW5kfSBh
c3NlcnRfZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgOQogUEFTUyBSZXNldHRpbmcgYSB2YWx1
ZSB0byBhIHNob3J0ZXIgc3RyaW5nIHRoYW4gZGVmYXVsdFZhbHVlIHNob3VsZCBjb3JyZWN0IHRo
ZSBjdXJzb3IgcG9zaXRpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3NlbGVjdGlvbi12YWx1ZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0
ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXZhbHVlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQK
aW5kZXggODQxMGE4MjliYmZhYTg4YzE5Nzk5MzE0MWYwYzIwN2YwNDUwM2NjNC4uYjE5MDc0ZWQ5
ODQ4NzUwNmRiODc4ZjcyYmNlMTQ0NDQ3YjMwNGE3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0
ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXZhbHVlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXZhbHVlLWludGVyYWN0
aW9ucy1leHBlY3RlZC50eHQKQEAgLTExLDYgKzExLDYgQEAgUEFTUyB2YWx1ZSBkaXJ0eSBmbGFn
IGJlaGF2aW9yIGFmdGVyIHNldFJhbmdlVGV4dCBvbiBmb2N1c2VkIHRoZW4gYmx1cnJlZCB0ZXh0
YXIKIFBBU1MgdmFsdWUgZGlydHkgZmxhZyBiZWhhdmlvciBhZnRlciBzZXRSYW5nZVRleHQgb24g
Zm9jdXNlZCB0aGVuIGJsdXJyZWQgaW5wdXQKIFBBU1Mgc2VsZWN0aW9uIGlzIGNvbGxhcHNlZCB0
byB0aGUgZW5kIGFmdGVyIGNoYW5naW5nIHZhbHVlcyBvbiBpbnB1dAogUEFTUyBzZWxlY3Rpb24g
aXMgbm90IGNvbGxhcHNlZCB0byB0aGUgZW5kIHdoZW4gdmFsdWUgaXMgc2V0IHRvIGl0cyBleGlz
dGluZyB2YWx1ZSBvbiBpbnB1dAotRkFJTCBzZWxlY3Rpb24gaXMgY29sbGFwc2VkIHRvIHRoZSBl
bmQgYWZ0ZXIgY2hhbmdpbmcgdmFsdWVzIG9uIHRleHRhcmVhIGFzc2VydF9lcXVhbHM6IGVsZW1l
bnQuc2VsZWN0aW9uU3RhcnQgc2hvdWxkIGJlIHZhbHVlLmxlbmd0aCBleHBlY3RlZCAzIGJ1dCBn
b3QgMAorUEFTUyBzZWxlY3Rpb24gaXMgY29sbGFwc2VkIHRvIHRoZSBlbmQgYWZ0ZXIgY2hhbmdp
bmcgdmFsdWVzIG9uIHRleHRhcmVhCiBQQVNTIHNlbGVjdGlvbiBpcyBub3QgY29sbGFwc2VkIHRv
IHRoZSBlbmQgd2hlbiB2YWx1ZSBpcyBzZXQgdG8gaXRzIGV4aXN0aW5nIHZhbHVlIG9uIHRleHRh
cmVhCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3RleHRhcmVhLXNl
bGVjdGlvbi13aGlsZS1wYXJzaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2Vs
ZWN0aW9uL3RleHRhcmVhLXNlbGVjdGlvbi13aGlsZS1wYXJzaW5nLWV4cGVjdGVkLnR4dAppbmRl
eCBlMDZkMDczMmMzZjJlMGIxMDE5YzA3MjMxMTY0YTE5NjVjZDYwNTI3Li40NzYzNTlhODQyMjhj
MTVkMmE0Yjg4MzhmYzE5NTFjYjUxNzlhNTc0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVs
ZHNlbGVjdGlvbi90ZXh0YXJlYS1zZWxlY3Rpb24td2hpbGUtcGFyc2luZy1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4dGFyZWEtc2VsZWN0aW9uLXdoaWxl
LXBhcnNpbmctZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAogCiAKLUZBSUwgVmFsdWUgc2V0
dGVyIHdoaWxlIHBhcnNpbmcgdGV4dGFyZWEgY2hpbGRyZW4gc2hvdWxkIG1vdmUgc2VsZWN0aW9u
e1N0YXJ0LEVuZH0gdG8gdGhlIGVuZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBnb3Qg
MAorUEFTUyBWYWx1ZSBzZXR0ZXIgd2hpbGUgcGFyc2luZyB0ZXh0YXJlYSBjaGlsZHJlbiBzaG91
bGQgbW92ZSBzZWxlY3Rpb257U3RhcnQsRW5kfSB0byB0aGUgZW5kCiAK
</data>
<flag name="commit-queue"
          id="481513"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453975</attachid>
            <date>2022-03-07 06:52:18 -0800</date>
            <delta_ts>2022-04-29 05:32:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237525-20220307145216.patch</filename>
            <type>text/plain</type>
            <size>40270</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI2NDJlMWFiZjhiYmZk
NDUzYTNmZTk2ODIzNjM4NjY5NDVmMGFjNy4uN2RkNDQ4ZTQxYmZiYTM2MjE1MTVhMDdiM2Y2NDI0
N2FlZTIzYTc5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDIyLTAzLTA3ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gU2V0IGNvcnJl
Y3Qgc2VsZWN0aW9uIHJhbmdlIGZvciBURVhUQVJFQSB3aGVuIHVwZGF0aW5nIGRlZmF1bHQgdmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZvciBU
RVhUQVJFQSwgc2luY2UgZGVmYXVsdFZhbHVlIHNldHRlciBkb2Vzbid0IGhhdmUgYW55IGV4cGxp
Y2l0IHNlbGVjdGlvbiBiZWhhdmlvciBbMV0sIHdlIGZvbGxvdworICAgICAgICB0aGUgZGVmYXVs
dCBzZWxlY3Rpb24gc3RlcHMgc3RhdGVkIGluIFsyXS4gQmFzaWNhbGx5LCB3aGVudmVyIHRoZSAi
cmVsZXZhbnQgdmFsdWUiIChmb3IgaW5wdXQgZWxlbWVudAorICAgICAgICBpdCByZWZlcnMgdG8g
dGhlIGVsZW1lbnQgdmFsdWUgd2hpbGUgZm9yIHRleHRhcmVhIGVsZW1lbnQgaXQgcmVmZXJzIHRv
IHRoZSBlbGVtZW50J3MgQVBJIHZhbHVlKSBjaGFuZ2VzLAorICAgICAgICBpZiB0aGUgZWxlbWVu
dCBoYXMgYSBzZWxlY3Rpb24sIHdlIHNob3VsZCBrZWVwIFNlbGVjdGlvblN0YXJ0L1NlbGVjdGlv
bkVuZCBhbmQgY2xhbXBpbmcgdGhlbSB0byB0aGUKKyAgICAgICAgInJlbGV2YW50IHZhbHVlIi4K
KyAgICAgICAgCisgICAgICAgIFsxXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRp
cGFnZS9mb3JtLWVsZW1lbnRzLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQ6ZG9tLXRleHRhcmVh
LWRlZmF1bHR2YWx1ZS0yCisgICAgICAgIFsyXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0RmllbGRTZWxl
Y3Rpb246Y29uY2VwdC10ZXh0YXJlYS9pbnB1dC1yZWxldmFudC12YWx1ZQorICAgICAgICAKKyAg
ICAgICAgVGhpcyBDTCByZWZlcnMgYW5kIGltcG9ydHMgY2hhbmdlcyBpbiBjaHJvbWl1bSBDTHMg
YXQgLQorICAgICAgICBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2Mv
Y2hyb21pdW0vc3JjLysvMTU3NTMxNyBhbmQKKyAgICAgICAgaHR0cHM6Ly9jb2RlcmV2aWV3LmNo
cm9taXVtLm9yZy8yNzM1NjMzMDA2CisKKyAgICAgICAgV2UgaGF2ZSBpbnRyb2R1Y2VkIGEgdW5p
ZmllZCBzZXRWYWx1ZSgpIEFQSSBpbiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50IGZvciBIVE1MVGV4
dEFyZWFFbGVtZW50IGFuZCBIVE1MSW5wdXRFbGVtZW50LgorICAgICAgICBXZSB3aWxsIGFsc28g
bmVlZCB0aGlzIEFQSSBpbiBmb2xsb3dpbmctdXAgcGF0Y2hlcy4KKworICAgICAgICAqIGh0bWwv
QmFzZUJ1dHRvbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlQnV0dG9uSW5w
dXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmg6
CisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1s
L0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OnNldFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZTo6ZGlkQ2hhbmdlVmFsdWVGcm9tQ29udHJvbCk6CisgICAgICAgICogaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9Db2xvcklucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRt
bC9GaWxlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlKToKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y2hpbGRy
ZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc2V0
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldE5vbkRpcnR5VmFsdWUpOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFsdWVDb21tb24pOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVBy
b3BlcnRpZXNGcm9tRWxlbWVudCk6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oOgorICAgICAg
ICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpZGRlbklu
cHV0VHlwZTo6c2V0VmFsdWUpOgorICAgICAgICAqIGh0bWwvSGlkZGVuSW5wdXRUeXBlLmg6Cisg
ICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6
OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAq
IGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5
cGU6OnNldFZhbHVlKToKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmg6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjpzZXRWYWx1ZSk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5
cGUuaDoKKwogMjAyMi0wMy0wMSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0lGQ11bSW50ZWdyYXRpb25dIElubGluZUl0ZXJhdG9yOjpCb3g6OnJlY3QoKSByZXR1
cm5zIHRoZSB1bmZsaXBwZWQgdmlzdWFsIHJlY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuY3BwCmluZGV4IDRlNzM5NTM4MTJkNDA4NGM4NWRiZTEwNWM3YTkzNTY5
NWY3MGNjZmUuLjg4MjEwYzMzOWY1NTU5NmQ2MTIxZjUwNjUyODUwZDQ2MDBkYzE4MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQnV0dG9uSW5wdXRUeXBlLmNwcApAQCAtNjIsNyArNjIs
NyBAQCBib29sIEJhc2VCdXR0b25JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0
cmlidXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgQmFzZUJ1dHRvbklucHV0VHlw
ZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxk
RXZlbnRCZWhhdmlvcikKK3ZvaWQgQmFzZUJ1dHRvbklucHV0VHlwZTo6c2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4
dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBlbGVtZW50KCktPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmFsdWVBdHRy
LCBzYW5pdGl6ZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VC
dXR0b25JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlw
ZS5oCmluZGV4IGU0MTQ2MzQxYjA0ZjQxOThjYjA3MDZiOWE2NTJkNjY5MTZjMDJkYzIuLjRmOGU4
YTFhZTNmM2Y0NjE4NjlmNjZjMWU2ZjJiN2E5YjFjMzY5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZUJ1dHRvbklucHV0VHlwZS5oCkBAIC00NCw3ICs0NCw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBhcHBlbmRGb3JtRGF0YShET01Gb3JtRGF0YSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFJl
bmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVJbnB1dFJlbmRlcmVyKFJlbmRlclN0eWxlJiYp
IG92ZXJyaWRlOwogICAgIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21BdHRyaWJ1dGUoKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVs
ZEV2ZW50QmVoYXZpb3IpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVj
dGlvbikgb3ZlcnJpZGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcAppbmRleCAwNjVjZWMwZTY1
YmM3Mjc0M2EyZmQyMWY4NmMzYzU4OGRhZWExMTNmLi44YTU0Y2EwNTM1NGE5MzAyNzU5YWI3NWJh
M2ExNzU1ZjdiOWY0NTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJs
ZUlucHV0VHlwZS5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBib29sIEJhc2VDaGVja2FibGVJbnB1
dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLXZvaWQgQmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3Ry
aW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKK3ZvaWQg
QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRW
YWx1ZSwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNl
bGVjdGlvbikKIHsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBlbGVtZW50KCktPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmFsdWVBdHRyLCBzYW5pdGl6ZWRWYWx1ZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCmluZGV4IGI0
OWE3N2E0MTU5MjUxYjE4NTAxNDllMTAwN2NkZjQwMDZjMDlhMjQuLjZiZjVkNTFmYWIyYTZkYjk4
MzBjMjNlNmZiMWIyOGVkYTA1N2NlOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
QmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZUNo
ZWNrYWJsZUlucHV0VHlwZS5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBh
Y2Nlc3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpIG92ZXJyaWRlOwogICAgIFN0cmlu
ZyBmYWxsYmFja1ZhbHVlKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBzdG9yZXNWYWx1ZVNl
cGFyYXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBU
ZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uKSBvdmVycmlkZTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcAppbmRleCBjZjdjYzMxZjM0MmY3YjVhNzQ3NDc1ZTRjY2ExODliZDEzYTc0MTNl
Li4zNzU1MjgxZDE4MmUzYWFiZTE4Yzc5ZDlkMzUxMzY5YWM3MzU0ZTgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0yNzcsOSAr
Mjc3LDkgQEAgYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNob3VsZEhhdmVNaWxsaXNl
Y29uZEZpZWxkKGNvbnN0IERhdGVDb21wb25lbnRzJgogICAgICAgICB8fCAhc3RlcFJhbmdlLnN0
ZXAoKS5yZW1haW5kZXIobXNlY1BlclNlY29uZCkuaXNaZXJvKCk7CiB9CiAKLXZvaWQgQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZh
bHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQordm9pZCBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJv
b2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIFRl
eHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewotICAgIElucHV0VHlwZTo6
c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CisgICAgSW5wdXRU
eXBlOjpzZXRWYWx1ZSh2YWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yLCBzZWxlY3Rp
b24pOwogICAgIGlmICh2YWx1ZUNoYW5nZWQpCiAgICAgICAgIHVwZGF0ZUlubmVyVGV4dFZhbHVl
KCk7CiB9CkBAIC00NzAsNyArNDcwLDcgQEAgdm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6
OmRpZEJsdXJGcm9tQ29udHJvbCgpCiB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6ZGlk
Q2hhbmdlVmFsdWVGcm9tQ29udHJvbCgpCiB7CiAgICAgU3RyaW5nIHZhbHVlID0gc2FuaXRpemVW
YWx1ZShtX2RhdGVUaW1lRWRpdEVsZW1lbnQtPnZhbHVlKCkpOwotICAgIElucHV0VHlwZTo6c2V0
VmFsdWUodmFsdWUsIHZhbHVlICE9IGVsZW1lbnQoKS0+dmFsdWUoKSwgRGlzcGF0Y2hJbnB1dEFu
ZENoYW5nZUV2ZW50KTsKKyAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZSAhPSBl
bGVtZW50KCktPnZhbHVlKCksIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCwgRG9Ob3RTZXQp
OwogCiAgICAgRGF0ZVRpbWVDaG9vc2VyUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwogICAgIGlmICgh
c2V0dXBEYXRlVGltZUNob29zZXJQYXJhbWV0ZXJzKHBhcmFtZXRlcnMpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggYjY4NWY4ZTE5ZmZi
NDg4NTVmNGUyZmU4MmUzYjEyMWJlNDkzYTczZC4uNmJmNmQ2YjkwM2I0YWQ3NjU5NmJiYWNjZTU0
ZDE3ZDM3YTMxZThjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oCkBAIC0xMDEsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICAvLyBJbnB1dFR5
cGUgZnVuY3Rpb25zOgogICAgIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCBmaW5hbDsKICAg
ICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0Rmll
bGRFdmVudEJlaGF2aW9yKSBmaW5hbDsKKyAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNl
dFZhbHVlU2VsZWN0aW9uKSBmaW5hbDsKICAgICBXYWxsVGltZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlQXNEYXRlKFdhbGxUaW1l
KSBjb25zdCBvdmVycmlkZTsKICAgICBkb3VibGUgdmFsdWVBc0RvdWJsZSgpIGNvbnN0IGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBmMTE5ZTgyYjM3N2Rk
YjQxZmNkOWU4YjkzYWE3ZmNlZmEwZjVkYzBkLi4xNzBmYmM1MTQwMTZhNDQxNDg4NDA5NjA1Yzk4
ZDcyNGU1YjU2ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAt
MTUzLDkgKzE1Myw5IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWUo
KQogICAgIHVwZGF0ZUNvbG9yU3dhdGNoKCk7CiB9CiAKLXZvaWQgQ29sb3JJbnB1dFR5cGU6OnNl
dFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRF
dmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIENvbG9ySW5wdXRUeXBlOjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRC
ZWhhdmlvciBldmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNlbGVj
dGlvbikKIHsKLSAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2
ZW50QmVoYXZpb3IpOworICAgIElucHV0VHlwZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdl
ZCwgZXZlbnRCZWhhdmlvciwgc2VsZWN0aW9uKTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKaW5kZXggMTE2
ZGFiMTE3Yjk3NTliMjM2MTczNzBlZDQ4Mzc5YThjNzdhMzM3OS4uYzhmZWE2YTMyNjIwNjRhODJk
NDVmM2RlMWUwMGJiMzVjYzI1YjRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9D
b2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
aApAQCAtNjMsNyArNjMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkg
Y29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29u
c3QgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCkgZmluYWw7Ci0gICAgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvcikgZmluYWw7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1
ZVNlbGVjdGlvbikgZmluYWw7CiAgICAgdm9pZCBhdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQm
KSBmaW5hbDsKICAgICB2b2lkIGRldGFjaCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAKaW5kZXggZWE3ZGZhY2Y2MmI3ODI1NTlkNjVlM2JmYjZiM2QwY2NkZmUyNTIx
Yy4uYjY1Yjg3MGVhNzA1NDUwYjNjNmU5M2Q2YzMyYmJmYmY5ZTcwYzQ2NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0yNTMsNyArMjUzLDcgQEAgYm9vbCBGaWxlSW5w
dXRUeXBlOjpnZXRUeXBlU3BlY2lmaWNWYWx1ZShTdHJpbmcmIHZhbHVlKQogICAgIHJldHVybiB0
cnVlOwogfQogCi12b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJv
b2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCit2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVl
KGNvbnN0IFN0cmluZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9s
U2V0VmFsdWVTZWxlY3Rpb24pCiB7CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBjbGVhciB0aGUg
ZmlsZSBsaXN0LCBvciByZXBsYWNlIGl0IHdpdGggYSBuZXcgZW1wdHkgb25lIGhlcmU/IFRoaXMg
aXMgb2JzZXJ2YWJsZSBmcm9tIEphdmFTY3JpcHQgdGhyb3VnaCBjdXN0b20gcHJvcGVydGllcy4K
ICAgICBtX2ZpbGVMaXN0LT5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuaApp
bmRleCA5MTU3YjE3OTAyOTIwMGYzYzQzMDg4Y2I2YTRjNmJlNTVlMDAwMjNhLi5lZTEwODQ5Nzgz
ZmFmZWQyYWE5Yzc4YjYwMDZiYmRlZGVlNjU0NDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0ZpbGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1
dFR5cGUuaApAQCAtNjksNyArNjksNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBkaXNwbGF5U3Ry
aW5nKCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBjYW5TZXRWYWx1ZShjb25zdCBTdHJpbmcmKSBm
aW5hbDsKICAgICBib29sIGdldFR5cGVTcGVjaWZpY1ZhbHVlKFN0cmluZyYpIGZpbmFsOyAvLyBD
aGVja2VkIGZpcnN0LCBiZWZvcmUgaW50ZXJuYWwgc3RvcmFnZSBvciB0aGUgdmFsdWUgYXR0cmli
dXRlLgotICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3Qg
U3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRD
b250cm9sU2V0VmFsdWVTZWxlY3Rpb24pIGZpbmFsOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICBib29sIHJlY2VpdmVEcm9wcGVkRmlsZXNXaXRoSW1hZ2VUcmFuc2NvZGluZyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxl
bWVudC5jcHAKaW5kZXggYmNkNmM4YTBlYjcwOTkyMjY5NTRhYmQ3ZDllMGQ1NGJlYjU3ZGVlYS4u
MjJlNmRmNjNmM2RhOGQwODI5MTFhZmQxZTE1N2YzMjRiY2E3MGY2NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMDY0LDcgKzEwNjQsNyBAQCB2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OnNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmIHZhbHVlKQogICAg
IHNldFZhbHVlKHZhbHVlLCBEaXNwYXRjaENoYW5nZUV2ZW50KTsKIH0KIAotRXhjZXB0aW9uT3I8
dm9pZD4gSFRNTElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQorRXhjZXB0aW9uT3I8dm9pZD4gSFRN
TElucHV0RWxlbWVudDo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNl
bGVjdGlvbikKIHsKICAgICBpZiAoaXNGaWxlVXBsb2FkKCkgJiYgIXZhbHVlLmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CkBAIC0xMDc5
LDcgKzEwNzksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MSW5wdXRFbGVtZW50OjpzZXRWYWx1
ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBUZXh0RmllbGRFdmVudAogCiAgICAgc2V0TGFzdENoYW5n
ZVdhc05vdFVzZXJFZGl0KCk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNSZW5kZXJl
cihmYWxzZSk7Ci0gICAgbV9pbnB1dFR5cGUtPnNldFZhbHVlKHNhbml0aXplZFZhbHVlLCB2YWx1
ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOworICAgIG1faW5wdXRUeXBlLT5zZXRWYWx1ZShzYW5p
dGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9yLCBzZWxlY3Rpb24pOwogCiAg
ICAgYm9vbCB3YXNNb2RpZmllZFByb2dyYW1tYXRpY2FsbHkgPSBldmVudEJlaGF2aW9yID09IERp
c3BhdGNoTm9FdmVudDsKICAgICBpZiAod2FzTW9kaWZpZWRQcm9ncmFtbWF0aWNhbGx5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCBjYzUwZmVlMzNjOThkMWY4OTJh
NDdlNGMwNTE0MTI5M2ZmMTMxYWEwLi44NTA0ZmI2MjY5NmM3ZjAxZTE4OWIyZDczMTlmNzgwMGM1
OWM4NTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMTcxLDcg
KzE3MSw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFR5cGUoY29uc3Qg
QXRvbVN0cmluZyYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHZhbHVlKCkgY29uc3Qg
ZmluYWw7Ci0gICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWUoY29u
c3QgU3RyaW5nJiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWUoY29uc3QgU3RyaW5n
JiwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciA9IERpc3BhdGNoTm9FdmVudCwgVGV4dENvbnRyb2xT
ZXRWYWx1ZVNlbGVjdGlvbiA9IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNlbGVj
dGlvblRvRW5kKSBmaW5hbDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZhbHVlRm9yVXNl
cihjb25zdCBTdHJpbmcmKTsKICAgICAvLyBDaGVja3MgaWYgdGhlIHNwZWNpZmllZCBzdHJpbmcg
d291bGQgYmUgYSB2YWxpZCB2YWx1ZS4KICAgICAvLyBXZSBzaG91bGQgbm90IGNhbGwgdGhpcyBm
b3IgdHlwZXMgd2l0aCBubyBzdHJpbmcgdmFsdWUgc3VjaCBhcyBDSEVDS0JPWCBhbmQgUkFESU8u
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCBhYTUy
ZjAwZGI1ZGMwNmRkMzA0ODE2ZTEzMzE1NWE3MzlhNGExMjNiLi41NzBmZjQ4ZjIyMTA5MDM2ZTRk
N2U2NTZkNGYxOTRhNTQzMDBjYzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmICht
X2lzRGlydHkpCiAgICAgICAgIHNldElubmVyVGV4dFZhbHVlKHZhbHVlKCkpOwogICAgIGVsc2UK
LSAgICAgICAgc2V0Tm9uRGlydHlWYWx1ZShkZWZhdWx0VmFsdWUoKSk7CisgICAgICAgIHNldE5v
bkRpcnR5VmFsdWUoZGVmYXVsdFZhbHVlKCksICBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9u
OjpDbGFtcCk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFzUHJlc2VudGF0aW9u
YWxIaW50c0ZvckF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApAQCAt
MjQxLDcgKzI0MSw3IEBAIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6YXBwZW5kRm9ybURhdGEo
RE9NRm9ybURhdGEmIGZvcm1EYXRhKQogCiB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc2V0
KCkKIHsKLSAgICBzZXROb25EaXJ0eVZhbHVlKGRlZmF1bHRWYWx1ZSgpKTsKKyAgICBzZXROb25E
aXJ0eVZhbHVlKGRlZmF1bHRWYWx1ZSgpLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpT
ZXRTZWxlY3Rpb25Ub0VuZCk7CiB9CiAKIGJvb2wgSFRNTFRleHRBcmVhRWxlbWVudDo6aGFzQ3Vz
dG9tRm9jdXNMb2dpYygpIGNvbnN0CkBAIC0zNzQsMjEgKzM3NCwyMiBAQCBTdHJpbmcgSFRNTFRl
eHRBcmVhRWxlbWVudDo6dmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX3ZhbHVlOwogfQogCi12
b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpCitF
eGNlcHRpb25Pcjx2b2lkPiBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJp
bmcmIHZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIFRleHRDb250
cm9sU2V0VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewotICAgIHNldFZhbHVlQ29tbW9uKHZh
bHVlKTsKKyAgICBzZXRWYWx1ZUNvbW1vbih2YWx1ZSwgZXZlbnRCZWhhdmlvciwgc2VsZWN0aW9u
KTsKICAgICBtX2lzRGlydHkgPSB0cnVlOwogICAgIHVwZGF0ZVZhbGlkaXR5KCk7CisgICAgcmV0
dXJuIHsgfTsKIH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXROb25EaXJ0eVZhbHVl
KGNvbnN0IFN0cmluZyYgdmFsdWUpCit2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldE5vbkRp
cnR5VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlv
biBzZWxlY3Rpb24pCiB7Ci0gICAgc2V0VmFsdWVDb21tb24odmFsdWUpOworICAgIHNldFZhbHVl
Q29tbW9uKHZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yOjpEaXNwYXRjaE5vRXZlbnQsIHNl
bGVjdGlvbik7CiAgICAgbV9pc0RpcnR5ID0gZmFsc2U7CiAgICAgdXBkYXRlVmFsaWRpdHkoKTsK
IH0KIAotdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZUNvbW1vbihjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlKQordm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1ZUNvbW1vbihj
b25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJv
bFNldFZhbHVlU2VsZWN0aW9uIHNlbGVjdGlvbikKIHsKICAgICBtX3dhc01vZGlmaWVkQnlVc2Vy
ID0gZmFsc2U7CiAgICAgLy8gQ29kZSBlbHNld2hlcmUgbm9ybWFsaXplcyBsaW5lIGVuZGluZ3Mg
YWRkZWQgYnkgdGhlIHVzZXIgdmlhIHRoZSBrZXlib2FyZCBvciBwYXN0aW5nLgpAQCAtNDAyLDYg
KzQwMywxMSBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlQ29tbW9uKGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUpCiAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PSB2YWx1ZSgpKQog
ICAgICAgICByZXR1cm47CiAKKyAgICAvLyBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5k
IHZhbHVlcyBjYW4gYmUgY2hhbmdlZCBieSBTZXRJbm5lclRleHRWYWx1ZSgpLiBXZSBuZWVkIHRv
IGdldCB0aGVtIGJlZm9yZSBTZXRJbm5lclRleHRWYWx1ZSgpIHRvCisgICAgLy8gY2xhbXAgdGhl
bSBsYXRlciBpbiBhIGNhc2Ugb2YgQ2xhbXAuCisgICAgYm9vbCBpc0NsYW1wID0gc2VsZWN0aW9u
ID09IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OkNsYW1wOworICAgIHVuc2lnbmVkIHNl
bGVjdGlvblN0YXJ0VmFsdWUgPSBpc0NsYW1wID8gc2VsZWN0aW9uU3RhcnQoKSA6IDA7CisgICAg
dW5zaWduZWQgc2VsZWN0aW9uRW5kVmFsdWUgPSBpc0NsYW1wID8gc2VsZWN0aW9uRW5kKCkgOiAw
OwogICAgIG1fdmFsdWUgPSBub3JtYWxpemVkVmFsdWU7CiAgICAgc2V0SW5uZXJUZXh0VmFsdWUo
bV92YWx1ZSk7CiAgICAgc2V0TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCk7CkBAIC00MDksMTAg
KzQxNSwxMyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVlQ29tbW9uKGNvbnN0
IFN0cmluZyYgbmV3VmFsdWUpCiAgICAgaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwogICAg
IHNldEZvcm1Db250cm9sVmFsdWVNYXRjaGVzUmVuZGVyZXIodHJ1ZSk7CiAKLSAgICAvLyBTZXQg
dGhlIGNhcmV0IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQgdmFsdWUuCi0gICAgaWYgKGRvY3VtZW50
KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzKSB7CisgICAgaWYgKHNlbGVjdGlvbiA9PSBUZXh0
Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25Ub0VuZCkgeworICAgICAgICAv
LyBTZXQgdGhlIGNhcmV0IHRvIHRoZSBlbmQgb2YgdGhlIHRleHQgdmFsdWUgZXhjZXB0IGZvciBp
bml0aWFsaXplLgorICAgICAgICB1bnNpZ25lZCBlbmRvZlN0cmluZyA9IG1fdmFsdWUubGVuZ3Ro
KCk7CisgICAgICAgIHNldFNlbGVjdGlvblJhbmdlKGVuZG9mU3RyaW5nLCBlbmRvZlN0cmluZyk7
CisgICAgfSBlbHNlIGlmIChpc0NsYW1wKSB7CiAgICAgICAgIHVuc2lnbmVkIGVuZE9mU3RyaW5n
ID0gbV92YWx1ZS5sZW5ndGgoKTsKLSAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2UoZW5kT2ZTdHJp
bmcsIGVuZE9mU3RyaW5nKTsKKyAgICAgICAgc2V0U2VsZWN0aW9uUmFuZ2Uoc3RkOjptaW4oZW5k
T2ZTdHJpbmcsIHNlbGVjdGlvblN0YXJ0VmFsdWUpLCBzdGQ6Om1pbihlbmRPZlN0cmluZywgc2Vs
ZWN0aW9uRW5kVmFsdWUpKTsKICAgICB9CiAKICAgICBzZXRUZXh0QXNPZkxhc3RGb3JtQ29udHJv
bENoYW5nZUV2ZW50KG5vcm1hbGl6ZWRWYWx1ZSk7CkBAIC01NzYsNyArNTg1LDcgQEAgdm9pZCBI
VE1MVGV4dEFyZWFFbGVtZW50Ojpjb3B5Tm9uQXR0cmlidXRlUHJvcGVydGllc0Zyb21FbGVtZW50
KGNvbnN0IEVsZW1lbnQmIHMKIHsKICAgICBhdXRvJiBzb3VyY2VFbGVtZW50ID0gZG93bmNhc3Q8
SFRNTFRleHRBcmVhRWxlbWVudD4oc291cmNlKTsKIAotICAgIHNldFZhbHVlQ29tbW9uKHNvdXJj
ZUVsZW1lbnQudmFsdWUoKSk7CisgICAgc2V0VmFsdWVDb21tb24oc291cmNlRWxlbWVudC52YWx1
ZSgpLCBEaXNwYXRjaE5vRXZlbnQsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNl
bGVjdGlvblRvRW5kKTsKICAgICBtX2lzRGlydHkgPSBzb3VyY2VFbGVtZW50Lm1faXNEaXJ0eTsK
ICAgICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y29weU5vbkF0dHJpYnV0ZVByb3BlcnRp
ZXNGcm9tRWxlbWVudChzb3VyY2UpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0QXJlYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCmluZGV4IDAwNzdmMDI1MzI2ZDc4ZjAyMWRhYzBjYjI3MWQ5Yzk2OGZjY2JhZGUu
LmYxZmNhNzg5YzY3MmJkNzcyOTMyYmFiNDU2ZDMwM2ZkODNhZmJlNTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCkBAIC00NCw3ICs0NCw3IEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZFdyYXBUZXh0KCkgY29uc3QgeyByZXR1cm4gbV93cmFwICE9IE5vV3Jh
cDsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgU3RyaW5nIHZhbHVlKCkgY29uc3QgZmluYWw7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBUZXh0
RmllbGRFdmVudEJlaGF2aW9yID0gRGlzcGF0Y2hOb0V2ZW50LCBUZXh0Q29udHJvbFNldFZhbHVl
U2VsZWN0aW9uID0gVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbjo6U2V0U2VsZWN0aW9uVG9F
bmQpIGZpbmFsOwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBkZWZhdWx0VmFsdWUoKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRWYWx1ZShjb25zdCBTdHJpbmcm
KTsKICAgICBpbnQgdGV4dExlbmd0aCgpIGNvbnN0IHsgcmV0dXJuIHZhbHVlKCkubGVuZ3RoKCk7
IH0KQEAgLTgzLDggKzgzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50JikgY29uc3Q7CiAgICAgc3RhdGlj
IFN0cmluZyBzYW5pdGl6ZVVzZXJJbnB1dFZhbHVlKGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkIG1h
eExlbmd0aCk7CiAgICAgdm9pZCB1cGRhdGVWYWx1ZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0Tm9u
RGlydHlWYWx1ZShjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldFZhbHVlQ29tbW9uKGNvbnN0
IFN0cmluZyYpOworICAgIHZvaWQgc2V0Tm9uRGlydHlWYWx1ZShjb25zdCBTdHJpbmcmLCBUZXh0
Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uKTsKKyAgICB2b2lkIHNldFZhbHVlQ29tbW9uKGNvbnN0
IFN0cmluZyYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxl
Y3Rpb24pOwogCiAgICAgYm9vbCBzdXBwb3J0c1BsYWNlaG9sZGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIEhUTUxFbGVtZW50KiBwbGFjZWhvbGRlckVsZW1lbnQoKSBjb25z
dCBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuaAppbmRleCBhYjNhYjZhYmJlYWUwMzgzNDQ2YjkyNzgzNTk5ZmJkY2ZlMmMzNDI1Li40
YzA2MDIzODJiOGEyYmJlYTBkYmJmN2E3M2MyYTNhOWQ2NTMwMTExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0zOSw2ICszOSw3
IEBAIHN0cnVjdCBTaW1wbGVSYW5nZTsKIGVudW0gY2xhc3MgQXV0b0ZpbGxCdXR0b25UeXBlIDog
dWludDhfdCB7IE5vbmUsIENyZWRlbnRpYWxzLCBDb250YWN0cywgU3Ryb25nUGFzc3dvcmQsIENy
ZWRpdENhcmQgfTsKIGVudW0gVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIHsgU2VsZWN0aW9u
SGFzTm9EaXJlY3Rpb24sIFNlbGVjdGlvbkhhc0ZvcndhcmREaXJlY3Rpb24sIFNlbGVjdGlvbkhh
c0JhY2t3YXJkRGlyZWN0aW9uIH07CiBlbnVtIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgeyBEaXNw
YXRjaE5vRXZlbnQsIERpc3BhdGNoQ2hhbmdlRXZlbnQsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VF
dmVudCB9OworZW51bSBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHsgU2V0U2VsZWN0aW9u
VG9FbmQsIENsYW1wLCBEb05vdFNldCB9OwogCiBjbGFzcyBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudCA6IHB1YmxpYyBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlIHsKICAgICBXVEZf
TUFLRV9JU09fQUxMT0NBVEVEKEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50KTsKQEAgLTg4LDYg
Kzg5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWUoKSBjb25zdCA9IDA7
CiAKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlKGNvbnN0IFN0cmluZyYs
IFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgPSBEaXNwYXRjaE5vRXZlbnQsIFRleHRDb250cm9sU2V0
VmFsdWVTZWxlY3Rpb24gPSBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpTZXRTZWxlY3Rp
b25Ub0VuZCkgPSAwOwogICAgIHZpcnR1YWwgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxl
bWVudD4gaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxU
ZXh0Q29udHJvbElubmVyVGV4dEVsZW1lbnQ+IGlubmVyVGV4dEVsZW1lbnRDcmVhdGluZ1NoYWRv
d1N1YnRyZWVJZk5lZWRlZCgpID0gMDsKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlIGNyZWF0ZUlu
bmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
aWRkZW5JbnB1dFR5cGUuY3BwCmluZGV4IDA5Nzg3YTdjNTI4MWY2YzRiMzk2YWY4MWEzOGYwYjU2
MzZmYmUzMzEuLmFmNTNkYThlMjVhNGQ2OTgzYzYyYjZhNTFiN2ExYmU4Y2ZmYWRlY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgYm9v
bCBIaWRkZW5JbnB1dFR5cGU6OnN0b3Jlc1ZhbHVlU2VwYXJhdGVGcm9tQXR0cmlidXRlKCkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgSGlkZGVuSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25z
dCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKQor
dm9pZCBIaWRkZW5JbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFs
dWUsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxl
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgZWxlbWVudCgpLT5zZXRBdHRy
aWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHZhbHVlQXR0ciwgc2FuaXRpemVkVmFsdWUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggOTVlZDBjMWQ3YzAwNDI5ZjVh
MWMxZGNkZTY1NzgxZjJkMzUxNzQwMy4uMzQwN2RiYzRiNThmY2NlNWE1MDc5YmE2YTJjZTNjOWRh
NWNkYzRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00OCw3ICs0
OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCByZW5kZXJlcklzTmVlZGVkKCkgb3ZlcnJpZGU7CiAg
ICAgYm9vbCBzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpIG92ZXJyaWRlOwogICAg
IGJvb2wgc2hvdWxkUmVzcGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpIG92ZXJyaWRlOwot
ICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwgVGV4dEZpZWxkRXZlbnRCZWhh
dmlvcikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBU
ZXh0RmllbGRFdmVudEJlaGF2aW9yLCBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uKSBvdmVy
cmlkZTsKICAgICBib29sIGFwcGVuZEZvcm1EYXRhKERPTUZvcm1EYXRhJikgY29uc3Qgb3ZlcnJp
ZGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggNzRlMGRkZWIxOGMwYjYw
MjBlODVjOTE0MjFhMTRiNjJmYjdkZDllYy4uYzMwZDFkZTA3M2JkYjU5MzNiOGMzOTIzYTY4ZTNj
MjZlYWRhY2E4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNzIxLDcgKzcyMSw3
IEBAIGJvb2wgSW5wdXRUeXBlOjpzdG9yZXNWYWx1ZVNlcGFyYXRlRnJvbUF0dHJpYnV0ZSgpCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJp
bmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhh
dmlvciBldmVudEJlaGF2aW9yKQordm9pZCBJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2
aW9yIGV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24pCiB7CiAgICAg
QVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgZWxlbWVudCgpLT5zZXRWYWx1ZUludGVybmFsKHNhbml0
aXplZFZhbHVlLCBldmVudEJlaGF2aW9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDgx
MmQ1ODhiNmVkOGQwMzg5MmM0YmIzZDNkY2YwZWYxMGY2ZTY4ZGMuLjE5MjRiMzcxNmI0YjMxYWM0
M2ViZTFiOTk5MTU2OGM4YTMzOGIzODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMzQx
LDcgKzM0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkU2VuZENoYW5nZUV2
ZW50QWZ0ZXJDaGVja2VkQ2hhbmdlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TZXRWYWx1ZShj
b25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgc3RvcmVzVmFsdWVTZXBhcmF0ZUZyb21B
dHRyaWJ1dGUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZl
bnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbik7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZFJlc2V0T25Eb2N1bWVudEFjdGl2YXRpb24oKTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkUmVzcGVjdExpc3RBdHRyaWJ1dGUoKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUmVz
cGVjdEhlaWdodEFuZFdpZHRoQXR0cmlidXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJ
bnB1dFR5cGUuY3BwCmluZGV4IDMwZmJhODk0YTlmYjFiNDI1Yjg5YWM0ZjEzOWE2NGZjNWQ2MDEx
MDMuLjU3NDNkNDYzNzBmYzgxZjVlNDdhOTIzZWY3MjQ1YjZmYjE2ZjZjNDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTk0LDEyICs5NCwxMiBAQCBjb25zdCBB
dG9tU3RyaW5nJiBOdW1iZXJJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAgICAg
cmV0dXJuIElucHV0VHlwZU5hbWVzOjpudW1iZXIoKTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5
cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IpCit2b2lkIE51bWJlcklu
cHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1
ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgZXZlbnRCZWhhdmlvciwgVGV4dENvbnRy
b2xTZXRWYWx1ZVNlbGVjdGlvbiBzZWxlY3Rpb24pCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7
CiAgICAgaWYgKCF2YWx1ZUNoYW5nZWQgJiYgc2FuaXRpemVkVmFsdWUuaXNFbXB0eSgpICYmICFl
bGVtZW50KCktPmlubmVyVGV4dFZhbHVlKCkuaXNFbXB0eSgpKQogICAgICAgICB1cGRhdGVJbm5l
clRleHRWYWx1ZSgpOwotICAgIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoc2FuaXRpemVk
VmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvcik7CisgICAgVGV4dEZpZWxkSW5wdXRU
eXBlOjpzZXRWYWx1ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBldmVudEJlaGF2aW9y
LCBzZWxlY3Rpb24pOwogfQogCiBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjp2YWx1ZUFzRG91Ymxl
KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IDJmYzBlZDY5
ZjQzYzY2N2Y4YzY0ZDU4YjZlNTk5Yjg4ZWU3NmRkZWQuLjg1M2U0ZDU4ZWRhNmM5Mjg3NGNhMWQw
NGY0MjViNTU1ZmI3YzgwYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVy
SW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApA
QCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgY29uc3QgQXRvbVN0cmlu
ZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBzZXRWYWx1ZShjb25z
dCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvcikgZmlu
YWw7CisgICAgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHZhbHVlQ2hhbmdlZCwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvciwgVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbikgZmlu
YWw7CiAgICAgZG91YmxlIHZhbHVlQXNEb3VibGUoKSBjb25zdCBmaW5hbDsKICAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRWYWx1ZUFzRG91YmxlKGRvdWJsZSwgVGV4dEZpZWxkRXZlbnRCZWhhdmlv
cikgY29uc3QgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0VmFsdWVBc0RlY2ltYWwo
Y29uc3QgRGVjaW1hbCYsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpIGNvbnN0IGZpbmFsOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCBmMDZiZDU1OWIwMjc0YjA2NzVl
YTRhZjc3NjdmODI1NWQ3NmJiMTQ2Li45YjVlMTBjOWYxNjVjMDNiMWM5NmZlZjk1N2Y1NGZiM2Ji
NzZmMDRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzQ1LDkg
KzM0NSw5IEBAIHZvaWQgUmFuZ2VJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSkKICAgICBJbnB1dFR5cGU6OmF0dHJpYnV0ZUNoYW5nZWQobmFtZSk7
CiB9CiAKLXZvaWQgUmFuZ2VJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUs
IGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3Ip
Cit2b2lkIFJhbmdlSW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29s
IHZhbHVlQ2hhbmdlZCwgVGV4dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yLCBUZXh0
Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHNlbGVjdGlvbikKIHsKLSAgICBJbnB1dFR5cGU6OnNl
dFZhbHVlKHZhbHVlLCB2YWx1ZUNoYW5nZWQsIGV2ZW50QmVoYXZpb3IpOworICAgIElucHV0VHlw
ZTo6c2V0VmFsdWUodmFsdWUsIHZhbHVlQ2hhbmdlZCwgZXZlbnRCZWhhdmlvciwgc2VsZWN0aW9u
KTsKIAogICAgIGlmICghdmFsdWVDaGFuZ2VkKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1JhbmdlSW5wdXRUeXBlLmgKaW5kZXggMTBmZDNhNzJlN2Q2ZDBiMDE3ZWY2YmIyYjRiOTU1
MDQ4YzAxNTlhMy4uODRjN2IzZWQ2MjMwMGQ0MWViNDJlNGMzNTdiYmM3NGVhOWM1M2I4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaApAQCAtNTcsNyArNTcsNyBAQCBwcml2YXRl
OgogICAgIFN0cmluZyBzZXJpYWxpemUoY29uc3QgRGVjaW1hbCYpIGNvbnN0IGZpbmFsOwogICAg
IGJvb2wgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNlRXZlbnRzKSBmaW5hbDsKICAgICB2
b2lkIGF0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGZpbmFsOwotICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIGZpbmFsOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9v
bCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0VmFs
dWVTZWxlY3Rpb24pIGZpbmFsOwogICAgIFN0cmluZyBmYWxsYmFja1ZhbHVlKCkgY29uc3QgZmlu
YWw7CiAgICAgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVl
KSBjb25zdCBmaW5hbDsKICAgICBib29sIHNob3VsZFJlc3BlY3RMaXN0QXR0cmlidXRlKCkgZmlu
YWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggMzcw
NTZlNDVlYjFhNzVjMTRmZDQzZTY1NmYxMzE0OWZhNTFmMDMwNC4uMDM0NmZjYjM1ZDEwMDk0YmY2
OGQ5MDJlMTE3YjdmYmY1ZjEwYjQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZXh0RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgVGV4dEZpZWxkSW5wdXRUeXBl
Ojp2YWx1ZU1pc3NpbmcoY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICByZXR1cm4gIWVs
ZW1lbnQoKS0+aXNEaXNhYmxlZE9yUmVhZE9ubHkoKSAmJiBlbGVtZW50KCktPmlzUmVxdWlyZWQo
KSAmJiB2YWx1ZS5pc0VtcHR5KCk7CiB9CiAKLXZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpzZXRW
YWx1ZShjb25zdCBTdHJpbmcmIHNhbml0aXplZFZhbHVlLCBib29sIHZhbHVlQ2hhbmdlZCwgVGV4
dEZpZWxkRXZlbnRCZWhhdmlvciBldmVudEJlaGF2aW9yKQordm9pZCBUZXh0RmllbGRJbnB1dFR5
cGU6OnNldFZhbHVlKGNvbnN0IFN0cmluZyYgc2FuaXRpemVkVmFsdWUsIGJvb2wgdmFsdWVDaGFu
Z2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yIGV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0
VmFsdWVTZWxlY3Rpb24gc2VsZWN0aW9uKQogewogICAgIEFTU0VSVChlbGVtZW50KCkpOwogCkBA
IC0xMzcsMTggKzEzNywyMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6c2V0VmFsdWUoY29u
c3QgU3RyaW5nJiBzYW5pdGl6ZWRWYWx1ZSwgYm9vbCB2YWx1ZUNoYW5nZQogCiAgICAgLy8gV2Ug
ZG9uJ3QgYXNrIElucHV0VHlwZTo6c2V0VmFsdWUgdG8gZGlzcGF0Y2ggZXZlbnRzIGJlY2F1c2UK
ICAgICAvLyBUZXh0RmllbGRJbnB1dFR5cGUgZGlzcGF0Y2hlcyBldmVudHMgZGlmZmVyZW50IHdh
eSBmcm9tIElucHV0VHlwZS4KLSAgICBJbnB1dFR5cGU6OnNldFZhbHVlKHNhbml0aXplZFZhbHVl
LCB2YWx1ZUNoYW5nZWQsIERpc3BhdGNoTm9FdmVudCk7CisgICAgSW5wdXRUeXBlOjpzZXRWYWx1
ZShzYW5pdGl6ZWRWYWx1ZSwgdmFsdWVDaGFuZ2VkLCBEaXNwYXRjaE5vRXZlbnQsIHNlbGVjdGlv
bik7CiAKICAgICBpZiAoIXZhbHVlQ2hhbmdlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBk
YXRlSW5uZXJUZXh0VmFsdWUoKTsKIAotICAgIHVuc2lnbmVkIG1heCA9IHZpc2libGVWYWx1ZSgp
Lmxlbmd0aCgpOwotICAgIGlmIChpbnB1dC0+Zm9jdXNlZCgpKQotICAgICAgICBpbnB1dC0+c2V0
U2VsZWN0aW9uUmFuZ2UobWF4LCBtYXgpOwotICAgIGVsc2UKLSAgICAgICAgaW5wdXQtPmNhY2hl
U2VsZWN0aW9uSW5SZXNwb25zZVRvU2V0VmFsdWUobWF4KTsKKyAgICBpZiAoc2VsZWN0aW9uID09
IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNlbGVjdGlvblRvRW5kKSB7CisgICAg
ICAgIHVuc2lnbmVkIG1heCA9IHZpc2libGVWYWx1ZSgpLmxlbmd0aCgpOworICAgICAgICBpZiAo
aW5wdXQtPmZvY3VzZWQoKSkKKyAgICAgICAgICAgIGlucHV0LT5zZXRTZWxlY3Rpb25SYW5nZSht
YXgsIG1heCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlucHV0LT5jYWNoZVNlbGVjdGlv
bkluUmVzcG9uc2VUb1NldFZhbHVlKG1heCk7CisgICAgfQogCiAgICAgc3dpdGNoIChldmVudEJl
aGF2aW9yKSB7CiAgICAgY2FzZSBEaXNwYXRjaENoYW5nZUV2ZW50OgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKaW5kZXggNGUxYmIxNTRjNWE3YjU2MWNiNTQ0ZmUyZDZm
ZmI4N2YwMmFjOWUzYS4uOTVlYjQ2MjVlZmI5NmNmYmRhZDc0NGRjMjM0ZTA5Yzc0M2JhMWI0OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCkBAIC03OCw3ICs3OCw3
IEBAIHByb3RlY3RlZDoKICAgICBib29sIHN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdCBmaW5hbDsK
ICAgICB2b2lkIGhhbmRsZUZvY3VzRXZlbnQoTm9kZSogb2xkRm9jdXNlZE5vZGUsIEZvY3VzRGly
ZWN0aW9uKSBmaW5hbDsKICAgICB2b2lkIGhhbmRsZUJsdXJFdmVudCgpIGZpbmFsOwotICAgIHZv
aWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2
ZW50QmVoYXZpb3IpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwg
Ym9vbCB2YWx1ZUNoYW5nZWQsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IsIFRleHRDb250cm9sU2V0
VmFsdWVTZWxlY3Rpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRlSW5uZXJUZXh0VmFsdWUo
KSBmaW5hbDsKICAgICBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCBv
dmVycmlkZTsKICAgICBib29sIHZhbHVlTWlzc2luZyhjb25zdCBTdHJpbmcmKSBjb25zdCBmaW5h
bDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDM4ODNhOTA2YTA2ZDE4ZjY1ZGU4
ODk3YTYzNzU2MWU4YmEwOTJhNGYuLmRlMTFjMTA0NDkwZTE1M2I0ZTY4N2FjYWJhODlkNzdjYjBk
YzhiMmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDIyLTAzLTA3ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVj
dGlvbl0gU2V0IGNvcnJlY3Qgc2VsZWN0aW9uIHJhbmdlIGZvciBURVhUQVJFQSB3aGVuIHVwZGF0
aW5nIGRlZmF1bHQgdmFsdWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNzUyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCBleHBlY3RhdGlvbnMgYXMgc29tZSBzdWItdGVzdHMg
YXJlIG5vdyBwYXNzaW5nLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vZGVmYXVsdFNlbGVjdGlvbi1leHBlY3RlZC50
eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3Rl
eHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2Vs
ZWN0aW9uL3NlbGVjdGlvbi1zdGFydC1lbmQtZXh0cmEtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rp
b24vc2VsZWN0aW9uLXZhbHVlLWludGVyYWN0aW9ucy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlv
bi90ZXh0YXJlYS1zZWxlY3Rpb24td2hpbGUtcGFyc2luZy1leHBlY3RlZC50eHQ6CisKIDIwMjIt
MDMtMDEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW3dl
Yi1hbmltYXRpb25zXSB3ZWItYW5pbWF0aW9ucy9pbnRlcmZhY2VzL0FuaW1hdGFibGUvZ2V0QW5p
bWF0aW9ucy1pZnJhbWUuaHRtbCBpcyBhIHVuaXF1ZSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi9kZWZhdWx0U2VsZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3Mv
Zm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL2RlZmF1bHRTZWxlY3Rpb24tZXhwZWN0ZWQudHh0Cmlu
ZGV4IDM2ZjU3ZGI3NzgxNWVlZTc0NzVlOTcwMmM5OTA1Zjg0ZDZmNGJjYjUuLjRjYTBkM2RkZmFm
OTVlZDRmN2FhN2ZlNjI4OTczOGYyNjc2NzMxYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZp
ZWxkc2VsZWN0aW9uL2RlZmF1bHRTZWxlY3Rpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGV4dGZpZWxkc2VsZWN0aW9uL2RlZmF1bHRTZWxlY3Rpb24tZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNyBAQAogCiBQQVNTIERlZmF1bHQgc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZCBm
b3IgW29iamVjdCBIVE1MVGV4dEFyZWFFbGVtZW50XQogUEFTUyBzZWxlY3Rpb25TdGFydCBhbmQg
c2VsZWN0aW9uRW5kIGRvIG5vdCBjaGFuZ2Ugd2hlbiBzYW1lIHZhbHVlIHNldCBhZ2FpbiBmb3Ig
W29iamVjdCBIVE1MVGV4dEFyZWFFbGVtZW50XQotRkFJTCBzZWxlY3Rpb25TdGFydCBhbmQgc2Vs
ZWN0aW9uRW5kIGNoYW5nZSB3aGVuIHZhbHVlIGNoYW5nZWQgdG8gdXBwZXIgY2FzZSBmb3IgW29i
amVjdCBIVE1MVGV4dEFyZWFFbGVtZW50XSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAzIGJ1dCBn
b3QgMAorUEFTUyBzZWxlY3Rpb25TdGFydCBhbmQgc2VsZWN0aW9uRW5kIGNoYW5nZSB3aGVuIHZh
bHVlIGNoYW5nZWQgdG8gdXBwZXIgY2FzZSBmb3IgW29iamVjdCBIVE1MVGV4dEFyZWFFbGVtZW50
XQogUEFTUyBEZWZhdWx0IHNlbGVjdGlvblN0YXJ0IGFuZCBzZWxlY3Rpb25FbmQgZm9yIFtvYmpl
Y3QgSFRNTElucHV0RWxlbWVudF0KIFBBU1Mgc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVu
ZCBkbyBub3QgY2hhbmdlIHdoZW4gc2FtZSB2YWx1ZSBzZXQgYWdhaW4gZm9yIFtvYmplY3QgSFRN
TElucHV0RWxlbWVudF0KIFBBU1Mgc2VsZWN0aW9uU3RhcnQgYW5kIHNlbGVjdGlvbkVuZCBjaGFu
Z2Ugd2hlbiB2YWx1ZSBjaGFuZ2VkIHRvIHVwcGVyIGNhc2UgZm9yIFtvYmplY3QgSFRNTElucHV0
RWxlbWVudF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlv
bi1zdGFydC1lbmQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2Vs
ZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQKaW5kZXggNjhkZmM3NTNiNWIyZTBkOTA2ODkz
NjRjZGMzNTFjMzgxYWYwNWFkYi4uZjFmYjVhMDFiODcxNmE0MDIzNTFiMWU0NGY1MGViMjE5NTNl
NWU2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0
YXJ0LWVuZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2Vs
ZWN0aW9uLXN0YXJ0LWVuZC1leHBlY3RlZC50eHQKQEAgLTYsMTggKzYsMTggQEAgUEFTUyBJbml0
aWFsIC52YWx1ZSBzZXQgb24gaW5wdXQtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFy
dCB0byBlbmQgb2YgdmEKIFBBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9uIGlucHV0LW5vdC1hcHBl
bmRlZCBzaG91bGQgc2V0IHNlbGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0
aWFsIC52YWx1ZSBzZXQgb24gaW5wdXQtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNl
bGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24g
aW5wdXQtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFydCB0
byBlbmQgb2YgdmFsdWUKLUZBSUwgSW5pdGlhbCAudmFsdWUgc2V0IG9uIHRleHRhcmVhLWFwcGVu
ZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlIGFzc2VydF9lcXVh
bHM6IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4
dGFyZWEtbm90LWFwcGVuZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZh
bHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFsIC52
YWx1ZSBzZXQgb24gdGV4dGFyZWEtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNlbGVj
dGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxMCBidXQg
Z290IDAKLUZBSUwgSW5pdGlhbCAudmFsdWUgc2V0IG9uIHRleHRhcmVhLW5vdC1hcHBlbmRlZC1w
cmVmb2N1c2VkIHNob3VsZCBzZXQgc2VsZWN0aW9uU3RhcnQgdG8gZW5kIG9mIHZhbHVlIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAorUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQg
b24gdGV4dGFyZWEtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFydCB0byBlbmQgb2Yg
dmFsdWUKK1BBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9uIHRleHRhcmVhLW5vdC1hcHBlbmRlZCBz
aG91bGQgc2V0IHNlbGVjdGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQorUEFTUyBJbml0aWFsIC52
YWx1ZSBzZXQgb24gdGV4dGFyZWEtYXBwZW5kZWQtcHJlZm9jdXNlZCBzaG91bGQgc2V0IHNlbGVj
dGlvblN0YXJ0IHRvIGVuZCBvZiB2YWx1ZQorUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4
dGFyZWEtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25TdGFydCB0
byBlbmQgb2YgdmFsdWUKIFBBU1MgSW5pdGlhbCAudmFsdWUgc2V0IG9uIGlucHV0LWFwcGVuZGVk
IHNob3VsZCBzZXQgc2VsZWN0aW9uRW5kIHRvIGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0aWFsIC52
YWx1ZSBzZXQgb24gaW5wdXQtbm90LWFwcGVuZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9uRW5kIHRv
IGVuZCBvZiB2YWx1ZQogUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQgb24gaW5wdXQtYXBwZW5kZWQt
cHJlZm9jdXNlZCBzaG91bGQgc2V0IHNlbGVjdGlvbkVuZCB0byBlbmQgb2YgdmFsdWUKIFBBU1Mg
SW5pdGlhbCAudmFsdWUgc2V0IG9uIGlucHV0LW5vdC1hcHBlbmRlZC1wcmVmb2N1c2VkIHNob3Vs
ZCBzZXQgc2VsZWN0aW9uRW5kIHRvIGVuZCBvZiB2YWx1ZQotRkFJTCBJbml0aWFsIC52YWx1ZSBz
ZXQgb24gdGV4dGFyZWEtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9m
IHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFs
IC52YWx1ZSBzZXQgb24gdGV4dGFyZWEtbm90LWFwcGVuZGVkIHNob3VsZCBzZXQgc2VsZWN0aW9u
RW5kIHRvIGVuZCBvZiB2YWx1ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAxMCBidXQgZ290IDAK
LUZBSUwgSW5pdGlhbCAudmFsdWUgc2V0IG9uIHRleHRhcmVhLWFwcGVuZGVkLXByZWZvY3VzZWQg
c2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIDEwIGJ1dCBnb3QgMAotRkFJTCBJbml0aWFsIC52YWx1ZSBzZXQgb24gdGV4dGFyZWEt
bm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9m
IHZhbHVlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDEwIGJ1dCBnb3QgMAorUEFTUyBJbml0aWFs
IC52YWx1ZSBzZXQgb24gdGV4dGFyZWEtYXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQg
dG8gZW5kIG9mIHZhbHVlCitQQVNTIEluaXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1ub3Qt
YXBwZW5kZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25FbmQgdG8gZW5kIG9mIHZhbHVlCitQQVNTIElu
aXRpYWwgLnZhbHVlIHNldCBvbiB0ZXh0YXJlYS1hcHBlbmRlZC1wcmVmb2N1c2VkIHNob3VsZCBz
ZXQgc2VsZWN0aW9uRW5kIHRvIGVuZCBvZiB2YWx1ZQorUEFTUyBJbml0aWFsIC52YWx1ZSBzZXQg
b24gdGV4dGFyZWEtbm90LWFwcGVuZGVkLXByZWZvY3VzZWQgc2hvdWxkIHNldCBzZWxlY3Rpb25F
bmQgdG8gZW5kIG9mIHZhbHVlCiBQQVNTIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0
aW9uU3RhcnQgaXMgY2hhbmdlZAogTk9UUlVOIG9uc2VsZWN0IHNob3VsZCBmaXJlIHdoZW4gc2Vs
ZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbiBpbnB1dC1hcHBlbmRlZAogTk9UUlVOIG9uc2VsZWN0
IHNob3VsZCBmaXJlIHdoZW4gc2VsZWN0aW9uU3RhcnQgaXMgY2hhbmdlZCBvbiBpbnB1dC1ub3Qt
YXBwZW5kZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlv
bi1zdGFydC1lbmQtZXh0cmEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rp
b24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQKaW5kZXggOTQzMzk2MTFk
OTVkMjE1ZGMzOTNiNTQyNGZiOGI3N2I0ZDg3NzJiYS4uZWEzMWY1MGRlYmQxN2RiNWVlN2EyOTUw
NmE4YTE1ZWZjYWY0YWZhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24v
c2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0
ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQKQEAg
LTEsMTIgKzEsMTIgQEAKIAogUEFTUyBTZXR0aW5nIGRlZmF1bHRWYWx1ZSBpbiBhIHRleHRhcmVh
IHNob3VsZCBOT1QgbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBlbmQKLUZBSUwgU2V0dGluZyBkZWZh
dWx0VmFsdWUgaW4gYSB0ZXh0YXJlYSB3aXRoIGEgdmFsdWUgc2hvdWxkIE5PVCBtYWtlIGFueSBk
aWZmZXJlbmNlIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDYgYnV0IGdvdCAwCitQQVNTIFNldHRp
bmcgZGVmYXVsdFZhbHVlIGluIGEgdGV4dGFyZWEgd2l0aCBhIHZhbHVlIHNob3VsZCBOT1QgbWFr
ZSBhbnkgZGlmZmVyZW5jZQogUEFTUyBTZXR0aW5nIHRleHRDb250ZW50IGluIGEgdGV4dGFyZWEg
c2hvdWxkIE5PVCBtb3ZlIHNlbGVjdGlvbntTdGFydCxFbmR9IHRvIHRoZSBlbmQKIFBBU1MgQWRk
aW5nIGNoaWxkcmVuIHRvIGEgdGV4dGFyZWEgc2hvdWxkIE5PVCBtb3ZlIHNlbGVjdGlvbntTdGFy
dCxFbmR9IHRvIHRoZSBlbmQKIFBBU1MgUmVtb3ZpbmcgY2hpbGRyZW4gZnJvbSBhIHRleHRhcmVh
IHNob3VsZCBOT1QgdXBkYXRlIHNlbGVjdGlvbntTdGFydCxFbmR9CiBQQVNTIFNldHRpbmcgdGhl
IHNhbWUgdmFsdWUgKHdpdGggZGlmZmVyZW50IG5ld2xpbmVzKSBpbiBhIHRleHRhcmVhIHNob3Vs
ZCBOT1QgdXBkYXRlIHNlbGVjdGlvbntTdGFydCxFbmR9Ci1GQUlMIFJlbW92aW5nIGNoaWxkIG5v
ZGVzIGluIG5vbi1kaXJ0eSB0ZXh0YXJlYSBzaG91bGQgbWFrZSBzZWxlY3Rpb257U3RhcnQsRW5k
fSAwIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvblN0YXJ0IGFmdGVyIG5vZGUgcmVtb3ZhbCBleHBl
Y3RlZCAwIGJ1dCBnb3QgMwotRkFJTCBTZXR0aW5nIHZhbHVlIHRvIGEgc2hvcnRlciBzdHJpbmcg
dGhhbiBkZWZhdWx0VmFsdWUgc2hvdWxkIGNvcnJlY3QgdGhlIGN1cnNvciBwb3NpdGlvbiBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAyIGJ1dCBnb3QgMworRkFJTCBSZW1vdmluZyBjaGlsZCBub2Rl
cyBpbiBub24tZGlydHkgdGV4dGFyZWEgc2hvdWxkIG1ha2Ugc2VsZWN0aW9ue1N0YXJ0LEVuZH0g
MCBhc3NlcnRfZXF1YWxzOiBzZWxlY3Rpb25TdGFydCBhZnRlciB0ZXh0Q29udGVudCBzZXR0ZXIg
ZXhwZWN0ZWQgMCBidXQgZ290IDMKK1BBU1MgU2V0dGluZyB2YWx1ZSB0byBhIHNob3J0ZXIgc3Ry
aW5nIHRoYW4gZGVmYXVsdFZhbHVlIHNob3VsZCBjb3JyZWN0IHRoZSBjdXJzb3IgcG9zaXRpb24K
IFBBU1MgU2hvcnRlbmluZyB2YWx1ZSBieSB0dXJuaW5nIHRoZSBpbnB1dCB0eXBlIGludG8gJ3Vy
bCcgc2hvdWxkIGNvcnJlY3Qgc2VsZWN0aW9ue1N0YXJ0LEVuZH0KIEZBSUwgU2hvcnRlbmluZyB2
YWx1ZSBieSB0dXJuaW5nIHRoZSBpbnB1dCB0eXBlIGludG8gJ2NvbG9yJyBhbmQgYmFjayB0byAn
dGV4dCcgc2hvdWxkIGNvcnJlY3Qgc2VsZWN0aW9ue1N0YXJ0LEVuZH0gYXNzZXJ0X2VxdWFsczog
ZXhwZWN0ZWQgMCBidXQgZ290IDkKIFBBU1MgUmVzZXR0aW5nIGEgdmFsdWUgdG8gYSBzaG9ydGVy
IHN0cmluZyB0aGFuIGRlZmF1bHRWYWx1ZSBzaG91bGQgY29ycmVjdCB0aGUgY3Vyc29yIHBvc2l0
aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tdmFs
dWUtaW50ZXJhY3Rpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3NlbGVjdGlvbi12YWx1ZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0CmluZGV4IDg0MTBhODI5
YmJmYWE4OGMxOTc5OTMxNDFmMGMyMDdmMDQ1MDNjYzQuLmIxOTA3NGVkOTg0ODc1MDZkYjg3OGY3
MmJjZTE0NDQ0N2IzMDRhNzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3NlbGVjdGlvbi12YWx1ZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGV4dGZpZWxkc2VsZWN0aW9uL3NlbGVjdGlvbi12YWx1ZS1pbnRlcmFjdGlvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0xMSw2ICsxMSw2IEBAIFBBU1MgdmFsdWUgZGlydHkgZmxhZyBiZWhhdmlvciBhZnRl
ciBzZXRSYW5nZVRleHQgb24gZm9jdXNlZCB0aGVuIGJsdXJyZWQgdGV4dGFyCiBQQVNTIHZhbHVl
IGRpcnR5IGZsYWcgYmVoYXZpb3IgYWZ0ZXIgc2V0UmFuZ2VUZXh0IG9uIGZvY3VzZWQgdGhlbiBi
bHVycmVkIGlucHV0CiBQQVNTIHNlbGVjdGlvbiBpcyBjb2xsYXBzZWQgdG8gdGhlIGVuZCBhZnRl
ciBjaGFuZ2luZyB2YWx1ZXMgb24gaW5wdXQKIFBBU1Mgc2VsZWN0aW9uIGlzIG5vdCBjb2xsYXBz
ZWQgdG8gdGhlIGVuZCB3aGVuIHZhbHVlIGlzIHNldCB0byBpdHMgZXhpc3RpbmcgdmFsdWUgb24g
aW5wdXQKLUZBSUwgc2VsZWN0aW9uIGlzIGNvbGxhcHNlZCB0byB0aGUgZW5kIGFmdGVyIGNoYW5n
aW5nIHZhbHVlcyBvbiB0ZXh0YXJlYSBhc3NlcnRfZXF1YWxzOiBlbGVtZW50LnNlbGVjdGlvblN0
YXJ0IHNob3VsZCBiZSB2YWx1ZS5sZW5ndGggZXhwZWN0ZWQgMyBidXQgZ290IDAKK1BBU1Mgc2Vs
ZWN0aW9uIGlzIGNvbGxhcHNlZCB0byB0aGUgZW5kIGFmdGVyIGNoYW5naW5nIHZhbHVlcyBvbiB0
ZXh0YXJlYQogUEFTUyBzZWxlY3Rpb24gaXMgbm90IGNvbGxhcHNlZCB0byB0aGUgZW5kIHdoZW4g
dmFsdWUgaXMgc2V0IHRvIGl0cyBleGlzdGluZyB2YWx1ZSBvbiB0ZXh0YXJlYQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2Vt
YW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0YXJlYS1zZWxlY3Rpb24td2hpbGUt
cGFyc2luZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi90ZXh0YXJl
YS1zZWxlY3Rpb24td2hpbGUtcGFyc2luZy1leHBlY3RlZC50eHQKaW5kZXggZTA2ZDA3MzJjM2Yy
ZTBiMTAxOWMwNzIzMTE2NGExOTY1Y2Q2MDUyNy4uNDc2MzU5YTg0MjI4YzE1ZDJhNGI4ODM4ZmMx
OTUxY2I1MTc5YTU3NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vdGV4
dGFyZWEtc2VsZWN0aW9uLXdoaWxlLXBhcnNpbmctZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMv
dGV4dGZpZWxkc2VsZWN0aW9uL3RleHRhcmVhLXNlbGVjdGlvbi13aGlsZS1wYXJzaW5nLWV4cGVj
dGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKIAogCi1GQUlMIFZhbHVlIHNldHRlciB3aGlsZSBwYXJz
aW5nIHRleHRhcmVhIGNoaWxkcmVuIHNob3VsZCBtb3ZlIHNlbGVjdGlvbntTdGFydCxFbmR9IHRv
IHRoZSBlbmQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMyBidXQgZ290IDAKK1BBU1MgVmFsdWUg
c2V0dGVyIHdoaWxlIHBhcnNpbmcgdGV4dGFyZWEgY2hpbGRyZW4gc2hvdWxkIG1vdmUgc2VsZWN0
aW9ue1N0YXJ0LEVuZH0gdG8gdGhlIGVuZAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458582</attachid>
            <date>2022-04-29 05:32:26 -0700</date>
            <delta_ts>2022-05-02 00:59:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237525-20220429133225.patch</filename>
            <type>text/plain</type>
            <size>7922</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZlNGE5ZjdlZjJiNjYy
MzdmYjdkNTQ0NDEyNTI5MDhlMmI3NTViYS4uYzRjMTU5Yjc0ZTU1ZjdjYmY1NGI2YWM1OTA1ZDlm
OGZhYmY3M2VkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA0LTI5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gU2V0IGNvcnJl
Y3Qgc2VsZWN0aW9uIHJhbmdlIGZvciBURVhUQVJFQSB3aGVuIHVwZGF0aW5nIGRlZmF1bHQgdmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUy
NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0
aW5nIGRlZmF1bHRWYWx1ZSBzaG91bGQga2VlcCBzZWxlY3Rpb25TdGFydC9FbmQuIFdlIG5lZWQg
Y2xhbXAgdGhlbSBpZiB0aGUgbmV3IHZhbHVlIGlzIHNob3J0ZXIgdGhhbiB0aGUKKyAgICAgICAg
c2VsZWN0aW9uU3RhcnQvRW5kLiBUaGlzIGNoYW5nZSBpcyB0byBiZSBpbiBsaW5lIHdpdGggWzFd
ICYgWzJdLgorICAgICAgICAKKyAgICAgICAgWzFdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5v
cmcvbXVsdGlwYWdlL2Zvcm0tZWxlbWVudHMuaHRtbCN0aGUtdGV4dGFyZWEtZWxlbWVudDpkb20t
dGV4dGFyZWEtZGVmYXVsdHZhbHVlLTIKKyAgICAgICAgWzJdIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm0tY29udHJvbC1pbmZyYXN0cnVjdHVyZS5odG1sI3RleHRG
aWVsZFNlbGVjdGlvbjpjb25jZXB0LXRleHRhcmVhL2lucHV0LXJlbGV2YW50LXZhbHVlCisKKyAg
ICAgICAgUGFydCBvZiB0aGlzIGNoYW5nZSBpcyBhbiBpbXBvcnQgb2YgQ2hyb21pdW0gQ0wgYXQK
KyAgICAgICAgaHR0cHM6Ly9naXRodWIuY29tL2Nocm9taXVtL2Nocm9taXVtL2NvbW1pdC9iYjI3
YTUwMGQwN2Y4YjNjNTY3ZTg0ODU3YTQwYzNjZTQyZmE0NTRhCisKKyAgICAgICAgKiBodG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxl
bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVs
ZW1lbnQ6OnNldFZhbHVlQ29tbW9uKToKKyAgICAgICAgKiBodG1sL0hUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50Lmg6CisKIDIwMjItMDQtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIEV4cG9zZSB3b3JrZXJzIGFzIHNlcnZpY2Ugd29ya2VyIGNsaWVudHMg
YW5kIGltcGxlbWVudCByZWdpc3RyYXRpb24gbWF0Y2hpbmcgZm9yIGRlZGljYXRlZCB3b3JrZXJz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAppbmRleCAyZjEw
Y2VkODQxMzFlZDdlOWRkMTg3YTM0MDFjZmRjZGVjNGJhNDNlLi5kODBlYTM5YTc3NmI5Yjc5YjA5
ZGNmYjk0NTNlODU0NmIxMWVmN2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUZXh0QXJlYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRB
cmVhRWxlbWVudC5jcHAKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogICAgIGlmICht
X2lzRGlydHkpCiAgICAgICAgIHNldElubmVyVGV4dFZhbHVlKHZhbHVlKCkpOwogICAgIGVsc2UK
LSAgICAgICAgc2V0Tm9uRGlydHlWYWx1ZShkZWZhdWx0VmFsdWUoKSwgIFRleHRDb250cm9sU2V0
VmFsdWVTZWxlY3Rpb246OkRvTm90U2V0KTsKKyAgICAgICAgc2V0Tm9uRGlydHlWYWx1ZShkZWZh
dWx0VmFsdWUoKSwgIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OkNsYW1wKTsKIH0KIAog
Ym9vbCBIVE1MVGV4dEFyZWFFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkBAIC00MDMsNiArNDAzLDEwIEBA
IHZvaWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFsdWVDb21tb24oY29uc3QgU3RyaW5nJiBu
ZXdWYWx1ZSwgVGV4dEZpZWxkRXZlbnRCCiAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PSB2YWx1
ZSgpKQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIGlzQ2xhbXAgPSBzZWxlY3Rpb24gPT0g
VGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbjo6Q2xhbXA7CisgICAgdW5zaWduZWQgc2VsZWN0
aW9uU3RhcnRWYWx1ZSA9IGlzQ2xhbXAgPyBjb21wdXRlU2VsZWN0aW9uU3RhcnQoKSA6IDA7Cisg
ICAgdW5zaWduZWQgc2VsZWN0aW9uRW5kVmFsdWUgPSBpc0NsYW1wID8gY29tcHV0ZVNlbGVjdGlv
bkVuZCgpIDogMDsKKwogICAgIG1fdmFsdWUgPSBub3JtYWxpemVkVmFsdWU7CiAgICAgc2V0SW5u
ZXJUZXh0VmFsdWUobV92YWx1ZSk7CiAgICAgc2V0TGFzdENoYW5nZVdhc05vdFVzZXJFZGl0KCk7
CkBAIC00MTMsMTEgKzQxNywxNCBAQCB2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnNldFZhbHVl
Q29tbW9uKGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIFRleHRGaWVsZEV2ZW50QgogICAgIGlmIChk
b2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gdGhpcykgewogICAgICAgICB1bnNpZ25lZCBl
bmRPZlN0cmluZyA9IG1fdmFsdWUubGVuZ3RoKCk7CiAgICAgICAgIHNldFNlbGVjdGlvblJhbmdl
KGVuZE9mU3RyaW5nLCBlbmRPZlN0cmluZyk7Ci0gICAgfSAgZWxzZSBpZiAoc2VsZWN0aW9uID09
IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OlNldFNlbGVjdGlvblRvRW5kKSB7CisgICAg
fSBlbHNlIGlmIChzZWxlY3Rpb24gPT0gVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbjo6U2V0
U2VsZWN0aW9uVG9FbmQpIHsKICAgICAgICAgLy8gV2UgZG9uJ3QgY2hhbmdlIHRleHQgc2VsZWN0
aW9uIGhlcmUgYnV0IG5lZWQgdG8gdXBkYXRlIGNhcmV0IHRvCiAgICAgICAgIC8vIHRoZSBlbmQg
b2YgdGhlIHRleHQgdmFsdWUgZXhjZXB0IGZvciBpbml0aWFsaXplLgogICAgICAgICB1bnNpZ25l
ZCBlbmRPZlN0cmluZyA9IG1fdmFsdWUubGVuZ3RoKCk7CiAgICAgICAgIGNhY2hlU2VsZWN0aW9u
KGVuZE9mU3RyaW5nLCBlbmRPZlN0cmluZywgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOworICAg
IH0gZWxzZSBpZiAoaXNDbGFtcCkgeworICAgICAgICB1bnNpZ25lZCBlbmRPZlN0cmluZyA9IG1f
dmFsdWUubGVuZ3RoKCk7CisgICAgICAgIGNhY2hlU2VsZWN0aW9uKHN0ZDo6bWluKGVuZE9mU3Ry
aW5nLCBzZWxlY3Rpb25TdGFydFZhbHVlKSwgc3RkOjptaW4oZW5kT2ZTdHJpbmcsIHNlbGVjdGlv
bkVuZFZhbHVlKSwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOwogICAgIH0KIAogICAgIHNldFRl
eHRBc09mTGFzdEZvcm1Db250cm9sQ2hhbmdlRXZlbnQobm9ybWFsaXplZFZhbHVlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAppbmRleCA4
MDMxNGQxYjE4YTc4ZmRhMGYyOGEzOWMzMmIwNDlmZTllMzIyM2QwLi45YWY1NTQyMjg2NmI5MjI0
NDg3N2MwZmY2NDQwZTA3M2Y3YzYyYzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEZvcm1Db250cm9sRWxlbWVudC5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBTaW1w
bGVSYW5nZTsKIGVudW0gY2xhc3MgQXV0b0ZpbGxCdXR0b25UeXBlIDogdWludDhfdCB7IE5vbmUs
IENyZWRlbnRpYWxzLCBDb250YWN0cywgU3Ryb25nUGFzc3dvcmQsIENyZWRpdENhcmQgfTsKIGVu
dW0gVGV4dEZpZWxkU2VsZWN0aW9uRGlyZWN0aW9uIHsgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24s
IFNlbGVjdGlvbkhhc0ZvcndhcmREaXJlY3Rpb24sIFNlbGVjdGlvbkhhc0JhY2t3YXJkRGlyZWN0
aW9uIH07CiBlbnVtIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IgeyBEaXNwYXRjaE5vRXZlbnQsIERp
c3BhdGNoQ2hhbmdlRXZlbnQsIERpc3BhdGNoSW5wdXRBbmRDaGFuZ2VFdmVudCB9OwotZW51bSBU
ZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uIHsgU2V0U2VsZWN0aW9uVG9FbmQsIERvTm90U2V0
IH07CitlbnVtIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24geyBTZXRTZWxlY3Rpb25Ub0Vu
ZCwgQ2xhbXAsIERvTm90U2V0IH07CiAKIGNsYXNzIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
IDogcHVibGljIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQpOwpAQCAtODIsNiArODIs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwg
dW5zaWduZWQgZW5kLCBjb25zdCBTdHJpbmcmIGRpcmVjdGlvbiwgY29uc3QgQVhUZXh0U3RhdGVD
aGFuZ2VJbnRlbnQmID0gQVhUZXh0U3RhdGVDaGFuZ2VJbnRlbnQoKSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzZXRTZWxlY3Rpb25SYW5nZSh1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgZW5k
LCBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gPSBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbiwg
U2VsZWN0aW9uUmV2ZWFsTW9kZSA9IFNlbGVjdGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsLCBj
b25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYgPSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgp
KTsKIAorICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25TdGFydCgp
IGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25FbmQo
KSBjb25zdDsKKwogICAgIHN0ZDo6b3B0aW9uYWw8U2ltcGxlUmFuZ2U+IHNlbGVjdGlvbigpIGNv
bnN0OwogICAgIFN0cmluZyBzZWxlY3RlZFRleHQoKSBjb25zdDsKIApAQCAtMTM5LDggKzE0Miw2
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzVGV4dEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25T
dGFydCgpIGNvbnN0OwotICAgIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdDsK
ICAgICBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24gY29tcHV0ZVNlbGVjdGlvbkRpcmVjdGlv
bigpIGNvbnN0OwogCiAgICAgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+
JiYgb2xkRm9jdXNlZEVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNTRiOTM2NDBlMjc4NGNkMzEzZGYzODllNWVkYjNm
NzZkYjE1MmVhOS4uYWU1NzE3MDZmOThlNzY4OWE5MGVhZDI1NTMxZTRlZmU1ODRmYzVlMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMjkg
IFppcmFuIFN1biAgPHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9uXSBTZXQg
Y29ycmVjdCBzZWxlY3Rpb24gcmFuZ2UgZm9yIFRFWFRBUkVBIHdoZW4gdXBkYXRpbmcgZGVmYXVs
dCB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM3NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0
aW9uL3NlbGVjdGlvbi1zdGFydC1lbmQtZXh0cmEtZXhwZWN0ZWQudHh0OgorCiAyMDIyLTA0LTE0
ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2Ugd29y
a2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGllbnRzIGFuZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9u
IG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29ya2VycwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0
ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4dHJhLWV4cGVj
dGVkLnR4dAppbmRleCA4MmQ1ZWIzNjU1NjNmYTE5YWY1YzZhYzc5NjZiMmU1YTEwMTU4OTFhLi44
YzllZjMzOWU3Y2QxNmM2NjUxM2JhOTIwYWViYTFhZTQzMDhiNWU5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zv
cm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5kLWV4dHJhLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24tc3RhcnQtZW5k
LWV4dHJhLWV4cGVjdGVkLnR4dApAQCAtNSw3ICs1LDcgQEAgUEFTUyBTZXR0aW5nIHRleHRDb250
ZW50IGluIGEgdGV4dGFyZWEgc2hvdWxkIE5PVCBtb3ZlIHNlbGVjdGlvbntTdGFydCxFbmR9IHRv
IHQKIFBBU1MgQWRkaW5nIGNoaWxkcmVuIHRvIGEgdGV4dGFyZWEgc2hvdWxkIE5PVCBtb3ZlIHNl
bGVjdGlvbntTdGFydCxFbmR9IHRvIHRoZSBlbmQKIFBBU1MgUmVtb3ZpbmcgY2hpbGRyZW4gZnJv
bSBhIHRleHRhcmVhIHNob3VsZCBOT1QgdXBkYXRlIHNlbGVjdGlvbntTdGFydCxFbmR9CiBQQVNT
IFNldHRpbmcgdGhlIHNhbWUgdmFsdWUgKHdpdGggZGlmZmVyZW50IG5ld2xpbmVzKSBpbiBhIHRl
eHRhcmVhIHNob3VsZCBOT1QgdXBkYXRlIHNlbGVjdGlvbntTdGFydCxFbmR9Ci1GQUlMIFJlbW92
aW5nIGNoaWxkIG5vZGVzIGluIG5vbi1kaXJ0eSB0ZXh0YXJlYSBzaG91bGQgbWFrZSBzZWxlY3Rp
b257U3RhcnQsRW5kfSAwIGFzc2VydF9lcXVhbHM6IHNlbGVjdGlvblN0YXJ0IGFmdGVyIG5vZGUg
cmVtb3ZhbCBleHBlY3RlZCAwIGJ1dCBnb3QgMworUEFTUyBSZW1vdmluZyBjaGlsZCBub2RlcyBp
biBub24tZGlydHkgdGV4dGFyZWEgc2hvdWxkIG1ha2Ugc2VsZWN0aW9ue1N0YXJ0LEVuZH0gMAog
UEFTUyBTZXR0aW5nIHZhbHVlIHRvIGEgc2hvcnRlciBzdHJpbmcgdGhhbiBkZWZhdWx0VmFsdWUg
c2hvdWxkIGNvcnJlY3QgdGhlIGN1cnNvciBwb3NpdGlvbgogUEFTUyBTaG9ydGVuaW5nIHZhbHVl
IGJ5IHR1cm5pbmcgdGhlIGlucHV0IHR5cGUgaW50byAndXJsJyBzaG91bGQgY29ycmVjdCBzZWxl
Y3Rpb257U3RhcnQsRW5kfQogRkFJTCBTaG9ydGVuaW5nIHZhbHVlIGJ5IHR1cm5pbmcgdGhlIGlu
cHV0IHR5cGUgaW50byAnY29sb3InIGFuZCBiYWNrIHRvICd0ZXh0JyBzaG91bGQgY29ycmVjdCBz
ZWxlY3Rpb257U3RhcnQsRW5kfSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAwIGJ1dCBnb3QgOQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458666</attachid>
            <date>2022-05-02 00:59:13 -0700</date>
            <delta_ts>2022-05-02 12:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237525-20220502085912.patch</filename>
            <type>text/plain</type>
            <size>7851</size>
            <attacher>zsun</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyODYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2ZlNGE5ZjdlZjJiNjYy
MzdmYjdkNTQ0NDEyNTI5MDhlMmI3NTViYS4uNmY5MjkwYTE4OWE1MjUwNmQ3ZmVhOWVlMzQ0ODNk
MTA0NjY1ZjJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIyLTA0LTI5ICBaaXJh
biBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CisKKyAgICAgICAgW3NlbGVjdGlvbl0gU2V0IGNvcnJl
Y3Qgc2VsZWN0aW9uIHJhbmdlIGZvciBURVhUQVJFQSB3aGVuIHVwZGF0aW5nIGRlZmF1bHQgdmFs
dWUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzUy
NQorCisgICAgICAgIFJldmlld2VkIGJ5ICBDaHJpcyBEdW1lei4KKworICAgICAgICBVcGRhdGlu
ZyBkZWZhdWx0VmFsdWUgc2hvdWxkIGtlZXAgc2VsZWN0aW9uU3RhcnQvRW5kLiBXZSBuZWVkIGNs
YW1wIHRoZW0gaWYgdGhlIG5ldyB2YWx1ZSBpcyBzaG9ydGVyIHRoYW4gdGhlCisgICAgICAgIHNl
bGVjdGlvblN0YXJ0L0VuZC4gVGhpcyBjaGFuZ2UgaXMgdG8gYmUgaW4gbGluZSB3aXRoIFsxXSAm
IFsyXS4KKyAgICAgICAgCisgICAgICAgIFsxXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS9mb3JtLWVsZW1lbnRzLmh0bWwjdGhlLXRleHRhcmVhLWVsZW1lbnQ6ZG9tLXRl
eHRhcmVhLWRlZmF1bHR2YWx1ZS0yCisgICAgICAgIFsyXSBodHRwczovL2h0bWwuc3BlYy53aGF0
d2cub3JnL211bHRpcGFnZS9mb3JtLWNvbnRyb2wtaW5mcmFzdHJ1Y3R1cmUuaHRtbCN0ZXh0Rmll
bGRTZWxlY3Rpb246Y29uY2VwdC10ZXh0YXJlYS9pbnB1dC1yZWxldmFudC12YWx1ZQorCisgICAg
ICAgIFBhcnQgb2YgdGhpcyBjaGFuZ2UgaXMgYW4gaW1wb3J0IG9mIENocm9taXVtIENMIGF0Cisg
ICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9jaHJvbWl1bS9jaHJvbWl1bS9jb21taXQvYmIyN2E1
MDBkMDdmOGIzYzU2N2U4NDg1N2E0MGMzY2U0MmZhNDU0YQorCisgICAgICAgICogaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUZXh0QXJlYUVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGV4dEFyZWFFbGVt
ZW50OjpzZXRWYWx1ZUNvbW1vbik6CisgICAgICAgICogaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oOgorCiAyMDIyLTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBFeHBvc2Ugd29ya2VycyBhcyBzZXJ2aWNlIHdvcmtlciBjbGllbnRzIGFu
ZCBpbXBsZW1lbnQgcmVnaXN0cmF0aW9uIG1hdGNoaW5nIGZvciBkZWRpY2F0ZWQgd29ya2Vycwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggMmYxMGNl
ZDg0MTMxZWQ3ZTlkZDE4N2EzNDAxY2ZkY2RlYzRiYTQzZS4uMGZjMDExNjFjMWU4YzJkNDA4YTc1
YmE5ODQ5OWY1NjFjMjBhNzM5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
VGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJl
YUVsZW1lbnQuY3BwCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50
OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKICAgICBpZiAobV9p
c0RpcnR5KQogICAgICAgICBzZXRJbm5lclRleHRWYWx1ZSh2YWx1ZSgpKTsKICAgICBlbHNlCi0g
ICAgICAgIHNldE5vbkRpcnR5VmFsdWUoZGVmYXVsdFZhbHVlKCksICBUZXh0Q29udHJvbFNldFZh
bHVlU2VsZWN0aW9uOjpEb05vdFNldCk7CisgICAgICAgIHNldE5vbkRpcnR5VmFsdWUoZGVmYXVs
dFZhbHVlKCksIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OkNsYW1wKTsKIH0KIAogYm9v
bCBIVE1MVGV4dEFyZWFFbGVtZW50OjpoYXNQcmVzZW50YXRpb25hbEhpbnRzRm9yQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CkBAIC00MDMsNiArNDAzLDEwIEBAIHZv
aWQgSFRNTFRleHRBcmVhRWxlbWVudDo6c2V0VmFsdWVDb21tb24oY29uc3QgU3RyaW5nJiBuZXdW
YWx1ZSwgVGV4dEZpZWxkRXZlbnRCCiAgICAgaWYgKG5vcm1hbGl6ZWRWYWx1ZSA9PSB2YWx1ZSgp
KQogICAgICAgICByZXR1cm47CiAKKyAgICBib29sIHNob3VsZENsYW1wID0gc2VsZWN0aW9uID09
IFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb246OkNsYW1wOworICAgIGF1dG8gc2VsZWN0aW9u
U3RhcnRWYWx1ZSA9IHNob3VsZENsYW1wID8gY29tcHV0ZVNlbGVjdGlvblN0YXJ0KCkgOiAwOwor
ICAgIGF1dG8gc2VsZWN0aW9uRW5kVmFsdWUgPSBzaG91bGRDbGFtcCA/IGNvbXB1dGVTZWxlY3Rp
b25FbmQoKSA6IDA7CisKICAgICBtX3ZhbHVlID0gbm9ybWFsaXplZFZhbHVlOwogICAgIHNldElu
bmVyVGV4dFZhbHVlKG1fdmFsdWUpOwogICAgIHNldExhc3RDaGFuZ2VXYXNOb3RVc2VyRWRpdCgp
OwpAQCAtNDEwLDE1ICs0MTQsMTUgQEAgdm9pZCBIVE1MVGV4dEFyZWFFbGVtZW50OjpzZXRWYWx1
ZUNvbW1vbihjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBUZXh0RmllbGRFdmVudEIKICAgICBpbnZh
bGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CiAgICAgc2V0Rm9ybUNvbnRyb2xWYWx1ZU1hdGNoZXNS
ZW5kZXJlcih0cnVlKTsKIAotICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0g
dGhpcykgewotICAgICAgICB1bnNpZ25lZCBlbmRPZlN0cmluZyA9IG1fdmFsdWUubGVuZ3RoKCk7
CisgICAgYXV0byBlbmRPZlN0cmluZyA9IG1fdmFsdWUubGVuZ3RoKCk7CisgICAgaWYgKGRvY3Vt
ZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlzKQogICAgICAgICBzZXRTZWxlY3Rpb25SYW5n
ZShlbmRPZlN0cmluZywgZW5kT2ZTdHJpbmcpOwotICAgIH0gIGVsc2UgaWYgKHNlbGVjdGlvbiA9
PSBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpTZXRTZWxlY3Rpb25Ub0VuZCkgeworICAg
IGVsc2UgaWYgKHNlbGVjdGlvbiA9PSBUZXh0Q29udHJvbFNldFZhbHVlU2VsZWN0aW9uOjpTZXRT
ZWxlY3Rpb25Ub0VuZCkgewogICAgICAgICAvLyBXZSBkb24ndCBjaGFuZ2UgdGV4dCBzZWxlY3Rp
b24gaGVyZSBidXQgbmVlZCB0byB1cGRhdGUgY2FyZXQgdG8KICAgICAgICAgLy8gdGhlIGVuZCBv
ZiB0aGUgdGV4dCB2YWx1ZSBleGNlcHQgZm9yIGluaXRpYWxpemUuCi0gICAgICAgIHVuc2lnbmVk
IGVuZE9mU3RyaW5nID0gbV92YWx1ZS5sZW5ndGgoKTsKICAgICAgICAgY2FjaGVTZWxlY3Rpb24o
ZW5kT2ZTdHJpbmcsIGVuZE9mU3RyaW5nLCBTZWxlY3Rpb25IYXNOb0RpcmVjdGlvbik7Ci0gICAg
fQorICAgIH0gZWxzZSBpZiAoc2hvdWxkQ2xhbXApCisgICAgICAgIGNhY2hlU2VsZWN0aW9uKHN0
ZDo6bWluKGVuZE9mU3RyaW5nLCBzZWxlY3Rpb25TdGFydFZhbHVlKSwgc3RkOjptaW4oZW5kT2ZT
dHJpbmcsIHNlbGVjdGlvbkVuZFZhbHVlKSwgU2VsZWN0aW9uSGFzTm9EaXJlY3Rpb24pOwogCiAg
ICAgc2V0VGV4dEFzT2ZMYXN0Rm9ybUNvbnRyb2xDaGFuZ2VFdmVudChub3JtYWxpemVkVmFsdWUp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5oCmluZGV4IDgwMzE0ZDFiMThhNzhmZGEwZjI4YTM5YzMyYjA0OWZlOWUzMjIzZDAuLjI0MmUw
N2NhM2IwYjU3YjljM2ZlMjM2OTlkYWE2MDA1OTM3Y2U1ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAg
c3RydWN0IFNpbXBsZVJhbmdlOwogZW51bSBjbGFzcyBBdXRvRmlsbEJ1dHRvblR5cGUgOiB1aW50
OF90IHsgTm9uZSwgQ3JlZGVudGlhbHMsIENvbnRhY3RzLCBTdHJvbmdQYXNzd29yZCwgQ3JlZGl0
Q2FyZCB9OwogZW51bSBUZXh0RmllbGRTZWxlY3Rpb25EaXJlY3Rpb24geyBTZWxlY3Rpb25IYXNO
b0RpcmVjdGlvbiwgU2VsZWN0aW9uSGFzRm9yd2FyZERpcmVjdGlvbiwgU2VsZWN0aW9uSGFzQmFj
a3dhcmREaXJlY3Rpb24gfTsKIGVudW0gVGV4dEZpZWxkRXZlbnRCZWhhdmlvciB7IERpc3BhdGNo
Tm9FdmVudCwgRGlzcGF0Y2hDaGFuZ2VFdmVudCwgRGlzcGF0Y2hJbnB1dEFuZENoYW5nZUV2ZW50
IH07Ci1lbnVtIFRleHRDb250cm9sU2V0VmFsdWVTZWxlY3Rpb24geyBTZXRTZWxlY3Rpb25Ub0Vu
ZCwgRG9Ob3RTZXQgfTsKK2VudW0gVGV4dENvbnRyb2xTZXRWYWx1ZVNlbGVjdGlvbiB7IFNldFNl
bGVjdGlvblRvRW5kLCBDbGFtcCwgRG9Ob3RTZXQgfTsKIAogY2xhc3MgSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiAg
ICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCk7CkBA
IC0xMjMsNiArMTIzLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgcmVzdG9yZUNhY2hlZFNlbGVj
dGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlLCBjb25zdCBBWFRleHRTdGF0ZUNoYW5nZUludGVudCYg
PSBBWFRleHRTdGF0ZUNoYW5nZUludGVudCgpKTsKICAgICBib29sIGhhc0NhY2hlZFNlbGVjdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1faGFzQ2FjaGVkU2VsZWN0aW9uOyB9CiAKKyAgICB1bnNpZ25l
ZCBjb21wdXRlU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBjb21wdXRlU2Vs
ZWN0aW9uRW5kKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5nZWQo
KSA9IDA7CiAKICAgICB2b2lkIHNldExhc3RDaGFuZ2VXYXNOb3RVc2VyRWRpdCgpIHsgbV9sYXN0
Q2hhbmdlV2FzVXNlckVkaXQgPSBmYWxzZTsgfQpAQCAtMTM5LDggKzE0Miw2IEBAIHByaXZhdGU6
CiAKICAgICBib29sIGlzVGV4dEZvcm1Db250cm9sRWxlbWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAotICAgIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25TdGFydCgpIGNvbnN0
OwotICAgIHVuc2lnbmVkIGNvbXB1dGVTZWxlY3Rpb25FbmQoKSBjb25zdDsKICAgICBUZXh0Rmll
bGRTZWxlY3Rpb25EaXJlY3Rpb24gY29tcHV0ZVNlbGVjdGlvbkRpcmVjdGlvbigpIGNvbnN0Owog
CiAgICAgdm9pZCBkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNl
ZEVsZW1lbnQsIGNvbnN0IEZvY3VzT3B0aW9ucyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggNTRiOTM2NDBlMjc4NGNkMzEzZGYzODllNWVkYjNmNzZkYjE1MmVhOS4u
ZmNiYzJkODVlNTk0YmY1YTQzNWZkYzQ3NjgzNDE1M2QwMWFmZGE5MCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjItMDQtMjkgIFppcmFuIFN1biAg
PHpzdW5AaWdhbGlhLmNvbT4KKworICAgICAgICBbc2VsZWN0aW9uXSBTZXQgY29ycmVjdCBzZWxl
Y3Rpb24gcmFuZ2UgZm9yIFRFWFRBUkVBIHdoZW4gdXBkYXRpbmcgZGVmYXVsdCB2YWx1ZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NTI1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgIENocmlzIER1bWV6LgorCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RleHRmaWVsZHNlbGVjdGlvbi9zZWxlY3Rpb24t
c3RhcnQtZW5kLWV4dHJhLWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wNC0xNCAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIHdvcmtlcnMgYXMgc2Vydmlj
ZSB3b3JrZXIgY2xpZW50cyBhbmQgaW1wbGVtZW50IHJlZ2lzdHJhdGlvbiBtYXRjaGluZyBmb3Ig
ZGVkaWNhdGVkIHdvcmtlcnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGV4dGZpZWxkc2VsZWN0aW9u
L3NlbGVjdGlvbi1zdGFydC1lbmQtZXh0cmEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0Zmll
bGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQKaW5kZXgg
ODJkNWViMzY1NTYzZmExOWFmNWM2YWM3OTY2YjJlNWExMDE1ODkxYS4uOGM5ZWYzMzllN2NkMTZj
NjY1MTNiYTkyMGFlYmExYWU0MzA4YjVlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90ZXh0ZmllbGRz
ZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9m
b3Jtcy90ZXh0ZmllbGRzZWxlY3Rpb24vc2VsZWN0aW9uLXN0YXJ0LWVuZC1leHRyYS1leHBlY3Rl
ZC50eHQKQEAgLTUsNyArNSw3IEBAIFBBU1MgU2V0dGluZyB0ZXh0Q29udGVudCBpbiBhIHRleHRh
cmVhIHNob3VsZCBOT1QgbW92ZSBzZWxlY3Rpb257U3RhcnQsRW5kfSB0byB0CiBQQVNTIEFkZGlu
ZyBjaGlsZHJlbiB0byBhIHRleHRhcmVhIHNob3VsZCBOT1QgbW92ZSBzZWxlY3Rpb257U3RhcnQs
RW5kfSB0byB0aGUgZW5kCiBQQVNTIFJlbW92aW5nIGNoaWxkcmVuIGZyb20gYSB0ZXh0YXJlYSBz
aG91bGQgTk9UIHVwZGF0ZSBzZWxlY3Rpb257U3RhcnQsRW5kfQogUEFTUyBTZXR0aW5nIHRoZSBz
YW1lIHZhbHVlICh3aXRoIGRpZmZlcmVudCBuZXdsaW5lcykgaW4gYSB0ZXh0YXJlYSBzaG91bGQg
Tk9UIHVwZGF0ZSBzZWxlY3Rpb257U3RhcnQsRW5kfQotRkFJTCBSZW1vdmluZyBjaGlsZCBub2Rl
cyBpbiBub24tZGlydHkgdGV4dGFyZWEgc2hvdWxkIG1ha2Ugc2VsZWN0aW9ue1N0YXJ0LEVuZH0g
MCBhc3NlcnRfZXF1YWxzOiBzZWxlY3Rpb25TdGFydCBhZnRlciBub2RlIHJlbW92YWwgZXhwZWN0
ZWQgMCBidXQgZ290IDMKK1BBU1MgUmVtb3ZpbmcgY2hpbGQgbm9kZXMgaW4gbm9uLWRpcnR5IHRl
eHRhcmVhIHNob3VsZCBtYWtlIHNlbGVjdGlvbntTdGFydCxFbmR9IDAKIFBBU1MgU2V0dGluZyB2
YWx1ZSB0byBhIHNob3J0ZXIgc3RyaW5nIHRoYW4gZGVmYXVsdFZhbHVlIHNob3VsZCBjb3JyZWN0
IHRoZSBjdXJzb3IgcG9zaXRpb24KIFBBU1MgU2hvcnRlbmluZyB2YWx1ZSBieSB0dXJuaW5nIHRo
ZSBpbnB1dCB0eXBlIGludG8gJ3VybCcgc2hvdWxkIGNvcnJlY3Qgc2VsZWN0aW9ue1N0YXJ0LEVu
ZH0KIEZBSUwgU2hvcnRlbmluZyB2YWx1ZSBieSB0dXJuaW5nIHRoZSBpbnB1dCB0eXBlIGludG8g
J2NvbG9yJyBhbmQgYmFjayB0byAndGV4dCcgc2hvdWxkIGNvcnJlY3Qgc2VsZWN0aW9ue1N0YXJ0
LEVuZH0gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgMCBidXQgZ290IDkK
</data>

          </attachment>
      

    </bug>

</bugzilla>