<?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>227189</bug_id>
          
          <creation_ts>2021-06-19 20:25:01 -0700</creation_ts>
          <short_desc>Skip shadow-root creation for input element if it is not necessary</short_desc>
          <delta_ts>2021-06-20 04:19:26 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yusuke Suzuki">ysuzuki</reporter>
          <assigned_to name="Yusuke Suzuki">ysuzuki</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>mifenton</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771138</commentid>
    <comment_count>0</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-19 20:25:01 -0700</bug_when>
    <thetext>Skip shadow-root creation for input element if it is not necessary</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771139</commentid>
    <comment_count>1</comment_count>
      <attachid>431810</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-19 20:39:44 -0700</bug_when>
    <thetext>Created attachment 431810
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771140</commentid>
    <comment_count>2</comment_count>
      <attachid>431811</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-19 20:42:57 -0700</bug_when>
    <thetext>Created attachment 431811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771146</commentid>
    <comment_count>3</comment_count>
      <attachid>431811</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2021-06-19 22:39:34 -0700</bug_when>
    <thetext>Comment on attachment 431811
Patch

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

Many nits but generally seems ok. r=me but please consider the individual comments.

&gt; Source/WebCore/html/BaseDateAndTimeInputType.cpp:309
&gt; +    ASSERT(needsShadowSubtree());

There seem to be a lot of asserts of needsShadowSubtree() all over the place and I&apos;m not sure what they are there for. needsShadowSubtree() is fixed based on input type, so there can&apos;t be an inconsistency at runtime unless someone forgot to add a type to the list of types. I could see having a compile-time assert somewhere maybe, but why have this in every implementation of createShadowSubtreeAndUpdateInnerTextElementEditability and every input type constructor?

&gt; Source/WebCore/html/HTMLInputElement.cpp:87
&gt; -class ListAttributeTargetObserver : IdTargetObserver {
&gt; +class ListAttributeTargetObserver final : public IdTargetObserver {

This seems unrelated to the rest of the change and isn&apos;t documented in the ChangeLog.

&gt; Source/WebCore/html/HTMLInputElement.cpp:138
&gt; +        ASSERT(m_inputType-&gt;needsShadowSubtree());

Extra weird to assert here considering we would have asserted in the constructor (and nothing seems to depend on this condition).

&gt; Source/WebCore/html/HTMLInputElement.cpp:164
&gt; +void HTMLInputElement::createShadowSubtree()

Why this rename? Other elements have didAddUserAgentShadowRoot and not createShadowSubtree. didAddUserAgentShadowRoot is called automatically from addShadowRoot, so with this method at the original name, the explicit calls to createShadowSubtree should be mostly not necessary (except in cases where it&apos;s known there is already a shadow root; is the goal here to simplicy that logic?

&gt; Source/WebCore/html/HTMLInputElement.cpp:586
&gt; -    m_inputType-&gt;createShadowSubtreeAndUpdateInnerTextElementEditability(m_parsingInProgress ? ChildChange::Source::Parser : ChildChange::Source::API, isInnerTextElementEditable());
&gt; +    if (m_inputType-&gt;needsShadowSubtree()) {
&gt; +        ensureUserAgentShadowRoot();
&gt; +        createShadowSubtree();
&gt; +    }

I guess if tests pass it must be ok, but the old function name suggest there&apos;s a need to do something related to inner text element editability, but I don&apos;t think the new code will do that.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1279
&gt; +    // Some input types only need shadow roots to hide any children that may
&gt; +    // have been appended by script. For such types, shadow roots are lazily
&gt; +    // created when children are added for the first time.
&gt; +    ensureUserAgentShadowRoot();

I&apos;m not sure it&apos;s necessary to have a shadow root to hide children and it might not be the most efficient way to do so. form controls managed to hide their children before there was such a thing as shadow DOM. I wonder how we did it before. I guess its of if it actually works.

&gt; Source/WebCore/html/HTMLInputElement.h:139
&gt; -    RenderStyle createInnerTextStyle(const RenderStyle&amp;) override;
&gt; +    RenderStyle createInnerTextStyle(const RenderStyle&amp;) final;

Seems unrelated to the change and isn&apos;t documented in ChangeLog.

&gt; Source/WebCore/html/HTMLInputElement.h:272
&gt; -    bool willRespondToMouseClickEvents() override;
&gt; +    bool willRespondToMouseClickEvents() final;

Seems unrelated to the change and isn&apos;t documented in ChangeLog.

&gt; Source/WebCore/html/HTMLInputElement.h:351
&gt; -    void defaultEventHandler(Event&amp;) override;
&gt; +    void defaultEventHandler(Event&amp;) final;

Seems unrelated to the change and isn&apos;t documented in ChangeLog.

&gt; LayoutTests/fast/forms/checkbox-child-hidden-expected.html:5
&gt; +&lt;input type=&quot;checkbox&quot; id=&quot;cb&quot; /&gt;

The / at the end of the &lt;input&gt; element is unnecessary and is invalid in HTML. (It would have been both necessary and valid in XHTML).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771147</commentid>
    <comment_count>4</comment_count>
      <attachid>431811</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 00:01:51 -0700</bug_when>
    <thetext>Comment on attachment 431811
Patch

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

Thanks! And based on HTMLTextFormControlElement::childShouldCreateRenderer, I&apos;ve added another test which uses pseudo-element.

&gt;&gt; Source/WebCore/html/BaseDateAndTimeInputType.cpp:309
&gt;&gt; +    ASSERT(needsShadowSubtree());
&gt; 
&gt; There seem to be a lot of asserts of needsShadowSubtree() all over the place and I&apos;m not sure what they are there for. needsShadowSubtree() is fixed based on input type, so there can&apos;t be an inconsistency at runtime unless someone forgot to add a type to the list of types. I could see having a compile-time assert somewhere maybe, but why have this in every implementation of createShadowSubtreeAndUpdateInnerTextElementEditability and every input type constructor?

I think this assertion is good to make needsShadowSubtree() implementation in sync with the actual implementation. We mechanically have this assertion for each createShadowSubtreeAndUpdateInnerTextElementEditability, so that any new InputType will follow this style, and do not forget to modify needsShadowSubtree.

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:87
&gt;&gt; +class ListAttributeTargetObserver final : public IdTargetObserver {
&gt; 
&gt; This seems unrelated to the rest of the change and isn&apos;t documented in the ChangeLog.

Added documentation in ChangeLog.

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:138
&gt;&gt; +        ASSERT(m_inputType-&gt;needsShadowSubtree());
&gt; 
&gt; Extra weird to assert here considering we would have asserted in the constructor (and nothing seems to depend on this condition).

This is corresponding to `HTMLInputElement::create`&apos;s `if (!shouldCreateShadowRootLazily)` path, and we ensure that the default InputType requires shadow-subtree.

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:164
&gt;&gt; +void HTMLInputElement::createShadowSubtree()
&gt; 
&gt; Why this rename? Other elements have didAddUserAgentShadowRoot and not createShadowSubtree. didAddUserAgentShadowRoot is called automatically from addShadowRoot, so with this method at the original name, the explicit calls to createShadowSubtree should be mostly not necessary (except in cases where it&apos;s known there is already a shadow root; is the goal here to simplicy that logic?

Yes, I would like to simplify the logic instead of using the callback since we know when we should create shadow subtree for this element.
Since HTMLInputElement&apos;s InputType can be changed (e.g. from &quot;button&quot; =&gt; &quot;checkbox&quot;), then there is a case like,

Non-ShadowRoot-Type =&gt; ShadowRoot-Type
ShadowRoot-Type =&gt; ShadowRoot-Type
ShadowRoot-Type =&gt; Non-ShadowRoot-Type
Non-ShadowRoot-Type =&gt; Non-ShadowRoot-Type

and this callback is called only when we first create a shadow-root. So, we were explicitly calling `m_inputType-&gt;createShadowSubtreeAndUpdateInnerTextElementEditability(m_parsingInProgress ? ChildChange::Source::Parser : ChildChange::Source::API, isInnerTextElementEditable());` in updateType function.
But this is unnecessarily complicated. By removing didAddUserAgentShadowRoot, each site calls ensureUserAgentShadowRoot / createUserAgentShadowRoot / createShadowSubtree and the logic looks much simpler.

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:586
&gt;&gt; +    }
&gt; 
&gt; I guess if tests pass it must be ok, but the old function name suggest there&apos;s a need to do something related to inner text element editability, but I don&apos;t think the new code will do that.

Renamed it to createShadowSubtreeAndUpdateInnerTextElementEditability

&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1279
&gt;&gt; +    ensureUserAgentShadowRoot();
&gt; 
&gt; I&apos;m not sure it&apos;s necessary to have a shadow root to hide children and it might not be the most efficient way to do so. form controls managed to hide their children before there was such a thing as shadow DOM. I wonder how we did it before. I guess its of if it actually works.

Yup. Found that we do not need to have this. HTMLTextFormControlElement::childShouldCreateRenderer handles things well: children only get renderers when it is under shadow-root.
Removed this overriding entirely.

&gt;&gt; Source/WebCore/html/HTMLInputElement.h:139
&gt;&gt; +    RenderStyle createInnerTextStyle(const RenderStyle&amp;) final;
&gt; 
&gt; Seems unrelated to the change and isn&apos;t documented in ChangeLog.

Added documentation in ChangeLog.

&gt;&gt; Source/WebCore/html/HTMLInputElement.h:272
&gt;&gt; +    bool willRespondToMouseClickEvents() final;
&gt; 
&gt; Seems unrelated to the change and isn&apos;t documented in ChangeLog.

Added documentation in ChangeLog.

&gt;&gt; Source/WebCore/html/HTMLInputElement.h:351
&gt;&gt; +    void defaultEventHandler(Event&amp;) final;
&gt; 
&gt; Seems unrelated to the change and isn&apos;t documented in ChangeLog.

Added documentation in ChangeLog.

&gt;&gt; LayoutTests/fast/forms/checkbox-child-hidden-expected.html:5
&gt;&gt; +&lt;input type=&quot;checkbox&quot; id=&quot;cb&quot; /&gt;
&gt; 
&gt; The / at the end of the &lt;input&gt; element is unnecessary and is invalid in HTML. (It would have been both necessary and valid in XHTML).

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771148</commentid>
    <comment_count>5</comment_count>
      <attachid>431811</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 00:04:44 -0700</bug_when>
    <thetext>Comment on attachment 431811
Patch

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

&gt;&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:138
&gt;&gt;&gt; +        ASSERT(m_inputType-&gt;needsShadowSubtree());
&gt;&gt; 
&gt;&gt; Extra weird to assert here considering we would have asserted in the constructor (and nothing seems to depend on this condition).
&gt; 
&gt; This is corresponding to `HTMLInputElement::create`&apos;s `if (!shouldCreateShadowRootLazily)` path, and we ensure that the default InputType requires shadow-subtree.

But since we already did ASSERT in HTMLInputElement::create, this is redundant. Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771150</commentid>
    <comment_count>6</comment_count>
      <attachid>431814</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 00:21:24 -0700</bug_when>
    <thetext>Created attachment 431814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771153</commentid>
    <comment_count>7</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 00:38:39 -0700</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #6)
&gt; Created attachment 431814 [details]
&gt; Patch

This is collecting render-tree-dump for each platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771158</commentid>
    <comment_count>8</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 03:19:16 -0700</bug_when>
    <thetext>rdar://79473176</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771159</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2021-06-20 03:53:59 -0700</bug_when>
    <thetext>Committed r279054 (238974@main): &lt;https://commits.webkit.org/238974@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431810</attachid>
            <date>2021-06-19 20:39:44 -0700</date>
            <delta_ts>2021-06-19 20:42:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227189-20210619203943.patch</filename>
            <type>text/plain</type>
            <size>21518</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg0OTViOGJmNmVhODk1
Zjk3MTA0NDQ4MGYxY2VkNzVkYzhjYzVmOC4uYTJlOTdjYTNjOGU0OTY5MmQ4YTU2ODY1NWQ0ZjRk
NjZmMjgwODQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIxLTA2LTE5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBzaGFkb3ctcm9v
dCBjcmVhdGlvbiBmb3IgaW5wdXQgZWxlbWVudCBpZiBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxODkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zv
cm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sCisKKyAgICAgICAgQ2hlcnJ5LXBpY2sgQ2hy
b21pdW0gb3B0aW1pemF0aW9uc1sxLDJdIGZvciBpbnB1dCBlbGVtZW50IGFuZCBleHRlbmQgdGhl
IGNvdmVyYWdlIGZvciBtb3JlIHR5cGVzLgorCisgICAgICAgIFNvbWUgb2YgaW5wdXQgZWxlbWVu
dCAoZS5nLiBjaGVja2JveCkgZG8gbm90IG5lZWQgdG8gY3JlYXRlIGEgc2hhZG93LXJvb3Qgc2lu
Y2UgdGhleSBkbyBub3QgaGF2ZSBzaGFkb3ctc3VidHJlZS4KKyAgICAgICAgVGhpcyBwYXRjaCBv
cHRpbWl6ZXMgaW5wdXQgZWxlbWVudCBjcmVhdGlvbiBieSBza2lwcGluZyBjcmVhdGlvbiBvZiBz
aGFkb3ctcm9vdCBmb3IgdGhlc2UgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgWzFdOiBodHRwczov
L2Nocm9taXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvNzczMTgw
CisgICAgICAgIFsyXTogaHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9j
L2Nocm9taXVtL3NyYy8rLzgyNjQyNgorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCk6CisgICAg
ICAgIChXZWJDb3JlOjpFbGVtZW50OjpjcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KToKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3Jl
YXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6Cisg
ICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xv
cklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRF
ZGl0YWJpbGl0eSk6CisgICAgICAgICogaHRtbC9GaWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5l
clRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpIVE1MSW5wdXRFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUpOiBJdCBpcyBwb3Nz
aWJsZSB0aGF0IHNoYWRvdyByb290IGlzIGFscmVhZHkgY3JlYXRlZCBmb3IgdGhlIHByZXZpb3Vz
IElucHV0VHlwZS4gU28gd2Ugc2hvdWxkIHVzZSBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290Lgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aW5pdGlhbGl6ZUlucHV0VHlwZSk6
IFNpbmNlIHRoaXMgaXMgY2FsbGVkIGF0IGluaXRpYWxpemF0aW9uIHRpbWUsIHdlIGNhbiB1c2Ug
Y3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCBpbnN0ZWFkIG9mIGVuc3VyZVVzZXJBZ2VudFNoYWRv
d1Jvb3QuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjaGlsZHJlbkNoYW5n
ZWQpOiBFdmVuIHRob3VnaCBzaGFkb3cgcm9vdCBpcyB1bm5lY2Vzc2FyeSBmb3IgY2hlY2tib3gs
IHdlIG5lZWQgaXQgb25seSB3aGVuIGEgY2hpbGQgbm9kZSBpcyBhcHBlbmRlZCB0byBoaWRlIHRo
ZW0uIFdlIGNyZWF0ZSBzaGFkb3cgcm9vdCB3aGVuIGNoaWxkIG5vZGUgaXMgYXBwZW5kZWQuIFRo
aXMgc2hvdWxkIGJlIHN1cGVyIHJhcmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVt
ZW50OjpkaWRBZGRVc2VyQWdlbnRTaGFkb3dSb290KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1s
L0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpuZWVkc1NoYWRvd1N1YnRyZWUgY29uc3QpOiBTaW5jZSB0
aGlzIGlzIGluIHRoZSBjcml0aWNhbCBwYXRoLCB3ZSBuZWVkIHRoaXMgc3VwZXIgb3B0aW1pemVk
IGltcGxlbWVudGF0aW9uLiBCdXR0b24sIGNoZWNrYm94LCBoaWRkZW4sIGltYWdlLCByYWRpbywg
cmVzZXQsIGFuZCBzdWJtaXQgZG8gbm90IHJlcXVpcmUgc2hhZG93IHJvb3QuCisgICAgICAgICog
aHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlw
ZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0
eSk6CisgICAgICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2VhcmNoSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0
RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL1RleHRGaWVsZElucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorCiAyMDIxLTA2LTE5
ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQ1NTIHNlcmlh
bGl6YXRpb24gaXNzdWVzIGFmZmVjdGluZyBjc3MtY291bnRlci1zdHlsZXMgdGVzdHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCBlYzEzMzgwMTcxOTkzOTI2MmYyMDFhNzEzNTg2ZjI0OWQ1Y2I1
ZjIxLi44NWE3MDk4YjY5Y2Y1ZWZkNGI2MGMwOTUwMmY2ZDc4NTMxZjE2ODg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0yNDYyLDYgKzI0NjIsMTIgQEAgU2hhZG93Um9vdCYgRWxlbWVudDo6
ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpCiB7CiAgICAgaWYgKGF1dG8gc2hhZG93ID0gdXNl
ckFnZW50U2hhZG93Um9vdCgpKQogICAgICAgICByZXR1cm4gKnNoYWRvdzsKKyAgICByZXR1cm4g
Y3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpOworfQorCitTaGFkb3dSb290JiBFbGVtZW50Ojpj
cmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCkKK3sKKyAgICBBU1NFUlQoIXVzZXJBZ2VudFNoYWRv
d1Jvb3QoKSk7CiAgICAgYXV0byBuZXdTaGFkb3cgPSBTaGFkb3dSb290OjpjcmVhdGUoZG9jdW1l
bnQoKSwgU2hhZG93Um9vdE1vZGU6OlVzZXJBZ2VudCk7CiAgICAgU2hhZG93Um9vdCYgc2hhZG93
ID0gbmV3U2hhZG93OwogICAgIGFkZFNoYWRvd1Jvb3QoV1RGTW92ZShuZXdTaGFkb3cpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oCmluZGV4IDVkNmY3MGYwYzA4ZjQ0NDA1OTZhNDIyMzczYjhiYjlkZDBhMmU0
MTkuLjM3ODcwZmMzZDBiMTY0YWY0YTcyMGMyMjQxMzA2M2UxMjU0ZTkzYTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaApAQCAtMzA2LDYgKzMwNiw3IEBAIGNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFp
bmVyTm9kZSB7CiAKICAgICBSZWZQdHI8U2hhZG93Um9vdD4gdXNlckFnZW50U2hhZG93Um9vdCgp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFNoYWRvd1Jvb3QmIGVuc3VyZVVzZXJBZ2VudFNo
YWRvd1Jvb3QoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTaGFkb3dSb290JiBjcmVhdGVVc2VyQWdl
bnRTaGFkb3dSb290KCk7CiAKICAgICB2b2lkIHNldElzRGVmaW5lZEN1c3RvbUVsZW1lbnQoSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlJik7CiAgICAgdm9pZCBzZXRJc0ZhaWxlZEN1c3RvbUVsZW1l
bnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
LmNwcAppbmRleCAwYWE4M2I5MzdmZGJkMjljZTVhYTc4OTg3NmUxOTIwYWRiZTVmZGFkLi4yMTQ4
ZjlmYjA2ZjZiYWE0NWMwYzgzZWI2ZTc4ZjZmYmEzZTU1MTE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMDYsNiArMzA2LDcg
QEAgdm9pZCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmKQogCiB2b2lkIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpD
aGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKKyAgICBBU1NFUlQobmVlZHNTaGFk
b3dTdWJ0cmVlKCkpOwogICAgIEFTU0VSVChlbGVtZW50KCkpOwogCiAgICAgYXV0byYgZWxlbWVu
dCA9ICp0aGlzLT5lbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUuaAppbmRleCBmMTA4YjUyYTBiZjFkOWI5ZDJjOWRjNmY5NDhkZmVhNGE2
OTFjNzY0Li4zNjRjZDNmOTZiMDQzNjZhMjM4ZWY2YTgzYmM4MWQwOTc5MDk3YTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTYwLDcg
KzYwLDEyIEBAIGNsYXNzIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSA6IHB1YmxpYyBJbnB1dFR5
cGUsIHByaXZhdGUgRGF0ZVRpbWVDaG9vc2VyQ2xpZW50CiAgICAgICAgIEhhc01lcmlkaWVtID0g
MSA8PCA3LAogICAgIH07CiAKLSAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoVHlwZSB0eXBl
LCBIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IElucHV0VHlwZSh0eXBlLCBlbGVtZW50KSB7
IH0KKyAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoVHlwZSB0eXBlLCBIVE1MSW5wdXRFbGVt
ZW50JiBlbGVtZW50KQorICAgICAgICA6IElucHV0VHlwZSh0eXBlLCBlbGVtZW50KQorICAgIHsK
KyAgICAgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKKyAgICB9CisKICAgICB+QmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlKCk7CiAKICAgICBEZWNpbWFsIHBhcnNlVG9OdW1iZXIoY29u
c3QgU3RyaW5nJiwgY29uc3QgRGVjaW1hbCYpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCBlYTgxYmIxOWQxNDRhNTA2MGEwNzM4MDhkOGQ5
ZmI2OGZmODYwOGMwLi43ZjY5ZDkyNzk4NDU0YzFhYmU3ZmJkZjNiYmRiYzMyNDllMjYzYmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTM2LDYgKzEzNiw3IEBA
IENvbG9yIENvbG9ySW5wdXRUeXBlOjp2YWx1ZUFzQ29sb3IoKSBjb25zdAogCiB2b2lkIENvbG9y
SW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVk
aXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29s
KQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5oCmluZGV4IDNjYTRjOWY0NWVmMDhiMjFmN2JiMmFjNTMxMzcz
Nzk2ZDdiYmRmZjAuLjcxNDk3ODNhZmUwMzVmYzIyMDlkY2NiYzY4OWE4Y2M5NTAyODM2NTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgKQEAgLTQyLDcgKzQyLDEyIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9ySW5wdXRUeXBlIGZpbmFsIDogcHVibGljIEJhc2VD
bGlja2FibGVXaXRoS2V5SW5wdXRUeXBlLCBwcml2YXRlIENvbG9yQ2hvb3NlckNsaWVudCB7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUgRG93bmNhc3RlZFR5cGU+IGZyaWVuZCBib29sIGlzSW52YWxp
ZElucHV0VHlwZShjb25zdCBJbnB1dFR5cGUmLCBjb25zdCBTdHJpbmcmKTsKIHB1YmxpYzoKLSAg
ICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KSA6IEJh
c2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKFR5cGU6OkNvbG9yLCBlbGVtZW50KSB7IH0KKyAg
ICBleHBsaWNpdCBDb2xvcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQorICAg
ICAgICA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKFR5cGU6OkNvbG9yLCBlbGVtZW50
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKKyAgICB9CisK
ICAgICB2aXJ0dWFsIH5Db2xvcklucHV0VHlwZSgpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKaW5kZXggYmI4Y2E4NzNlMzRiMzY3ZTkxYjQ5MjdiNzhiN2Nl
MzhlZjY0MTI5My4uNTBmYzNjOTUwZjUzZWNhMzM1NWM5ZmE4YmM0NWE3M2EyNzliMmEwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCkBAIC0xMDksNiArMTA5LDcgQEAgRmls
ZUlucHV0VHlwZTo6RmlsZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50JiBlbGVtZW50KQogICAg
IDogQmFzZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoVHlwZTo6RmlsZSwgZWxlbWVudCkKICAg
ICAsIG1fZmlsZUxpc3QoRmlsZUxpc3Q6OmNyZWF0ZSgpKQogeworICAgIEFTU0VSVChuZWVkc1No
YWRvd1N1YnRyZWUoKSk7CiB9CiAKIEZpbGVJbnB1dFR5cGU6On5GaWxlSW5wdXRUeXBlKCkKQEAg
LTI3NSw2ICsyNzYsNyBAQCB2b2lkIEZpbGVJbnB1dFR5cGU6OnNldFZhbHVlKGNvbnN0IFN0cmlu
ZyYsIGJvb2wsIFRleHRGaWVsZEV2ZW50QmVoYXZpb3IpCiAKIHZvaWQgRmlsZUlucHV0VHlwZTo6
Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShD
b250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKKyAgICBB
U1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOwogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAg
IEFTU0VSVChlbGVtZW50KCktPnNoYWRvd1Jvb3QoKSk7CiAgICAgZWxlbWVudCgpLT51c2VyQWdl
bnRTaGFkb3dSb290KCktPmFwcGVuZENoaWxkKHNvdXJjZSwgZWxlbWVudCgpLT5tdWx0aXBsZSgp
ID8gVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlRm9yTXVsdGlwbGUoZWxlbWVudCgpLT5kb2N1
bWVudCgpKTogVXBsb2FkQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGVsZW1lbnQoKS0+ZG9jdW1lbnQo
KSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggMGRmMTlk
ZWMwMDI3YjNjNGVmY2UxZTk1ZWU0YjRiZTA4ZTNhYmJkNi4uZDQxODc4OGFlZWJkMjdiNmFiZjE3
MDUyYWFiOThhMjM4YjBkNDc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCkBAIC0yLDEwICsyLDEwIEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9s
bCAoa25vbGxAa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAo
a29pdmlzdG9Aa2RlLm9yZykKICAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11
ZWxsZXJAa2RlLm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIwIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqICAgICAgICAgICAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1
cnlha292IChhcEBueXBvcC5jb20pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgU2FtdWVsIFdlaW5p
ZyAoc2FtQHdlYmtpdC5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMC0yMDIxIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKQEAgLTg0LDcgKzg0LDcgQEAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBM
KEhUTUxJbnB1dEVsZW1lbnQpOwogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIAogI2lmIEVO
QUJMRShEQVRBTElTVF9FTEVNRU5UKQotY2xhc3MgTGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVy
IDogSWRUYXJnZXRPYnNlcnZlciB7CitjbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIg
ZmluYWwgOiBwdWJsaWMgSWRUYXJnZXRPYnNlcnZlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CiAgICAgTGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyKGNvbnN0IEF0
b21TdHJpbmcmIGlkLCBIVE1MSW5wdXRFbGVtZW50Kik7CkBAIC0xMzMsOCArMTMzLDEwIEBAIEhU
TUxJbnB1dEVsZW1lbnQ6OkhUTUxJbnB1dEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQmIGRvY3VtCiB7CiAgICAgLy8gbV9pbnB1dFR5cGUgaXMgbGF6aWx5IGNy
ZWF0ZWQgd2hlbiBjb25zdHJ1Y3RlZCBieSB0aGUgcGFyc2VyIHRvIGF2b2lkIGNvbnN0cnVjdGlu
ZyB1bm5lY2Vzc2FyaWx5IGEgdGV4dCBpbnB1dFR5cGUgYW5kCiAgICAgLy8gaXRzIHNoYWRvdyBz
dWJ0cmVlLCBqdXN0IHRvIGRlc3Ryb3kgdGhlbSB3aGVuIHRoZSB8dHlwZXwgYXR0cmlidXRlIGdl
dHMgc2V0IGJ5IHRoZSBwYXJzZXIgdG8gc29tZXRoaW5nIGVsc2UgdGhhbiAndGV4dCcuCi0gICAg
aWYgKCFjcmVhdGVkQnlQYXJzZXIpCisgICAgaWYgKCFjcmVhdGVkQnlQYXJzZXIpIHsKICAgICAg
ICAgbV9pbnB1dFR5cGUgPSBJbnB1dFR5cGU6OmNyZWF0ZVRleHQoKnRoaXMpOworICAgICAgICBB
U1NFUlQobV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93U3VidHJlZSgpKTsKKyAgICB9CiAKICAgICBB
U1NFUlQoaGFzVGFnTmFtZShpbnB1dFRhZykpOwogICAgIHNldEhhc0N1c3RvbVN0eWxlUmVzb2x2
ZUNhbGxiYWNrcygpOwpAQCAtMTQ0LDggKzE0NiwxMSBAQCBSZWY8SFRNTElucHV0RWxlbWVudD4g
SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERv
YwogewogICAgIGJvb2wgc2hvdWxkQ3JlYXRlU2hhZG93Um9vdExhemlseSA9IGNyZWF0ZWRCeVBh
cnNlcjsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gaW5wdXRFbGVtZW50ID0gYWRvcHRSZWYo
Km5ldyBIVE1MSW5wdXRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCBmb3JtLCBjcmVhdGVkQnlQ
YXJzZXIpKTsKLSAgICBpZiAoIXNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXppbHkpCi0gICAgICAg
IGlucHV0RWxlbWVudC0+ZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgpOworICAgIGlmICghc2hv
dWxkQ3JlYXRlU2hhZG93Um9vdExhemlseSkgeworICAgICAgICBBU1NFUlQoaW5wdXRFbGVtZW50
LT5tX2lucHV0VHlwZS0+bmVlZHNTaGFkb3dTdWJ0cmVlKCkpOworICAgICAgICBpbnB1dEVsZW1l
bnQtPmNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgaW5wdXRFbGVtZW50LT5j
cmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgfQogICAgIHJldHVybiBpbnB1dEVsZW1lbnQ7CiB9
CiAKQEAgLTE1Niw3ICsxNjEsNyBAQCBIVE1MSW1hZ2VMb2FkZXImIEhUTUxJbnB1dEVsZW1lbnQ6
OmVuc3VyZUltYWdlTG9hZGVyKCkKICAgICByZXR1cm4gKm1faW1hZ2VMb2FkZXI7CiB9CiAKLXZv
aWQgSFRNTElucHV0RWxlbWVudDo6ZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290
JikKK3ZvaWQgSFRNTElucHV0RWxlbWVudDo6Y3JlYXRlU2hhZG93U3VidHJlZSgpCiB7CiAgICAg
UmVmPElucHV0VHlwZT4gcHJvdGVjdGVkSW5wdXRUeXBlKCptX2lucHV0VHlwZSk7CiAgICAgcHJv
dGVjdGVkSW5wdXRUeXBlLT5jcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmlsaXR5KG1fcGFyc2luZ0luUHJvZ3Jlc3MgPyBDaGlsZENoYW5nZTo6U291cmNl
OjpQYXJzZXIgOiBDaGlsZENoYW5nZTo6U291cmNlOjpBUEksIGlzSW5uZXJUZXh0RWxlbWVudEVk
aXRhYmxlKCkpOwpAQCAtNTc1LDcgKzU4MCwxMCBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OnVw
ZGF0ZVR5cGUoKQogICAgIG1faW5wdXRUeXBlLT5kZXRhY2hGcm9tRWxlbWVudCgpOwogCiAgICAg
bV9pbnB1dFR5cGUgPSBXVEZNb3ZlKG5ld1R5cGUpOwotICAgIG1faW5wdXRUeXBlLT5jcmVhdGVT
aGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KG1fcGFyc2lu
Z0luUHJvZ3Jlc3MgPyBDaGlsZENoYW5nZTo6U291cmNlOjpQYXJzZXIgOiBDaGlsZENoYW5nZTo6
U291cmNlOjpBUEksIGlzSW5uZXJUZXh0RWxlbWVudEVkaXRhYmxlKCkpOworICAgIGlmIChtX2lu
cHV0VHlwZS0+bmVlZHNTaGFkb3dTdWJ0cmVlKCkpIHsKKyAgICAgICAgZW5zdXJlVXNlckFnZW50
U2hhZG93Um9vdCgpOworICAgICAgICBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgfQogCiAg
ICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKIApAQCAtNzI4LDE0ICs3MzYsMTkg
QEAgaW5saW5lIHZvaWQgSFRNTElucHV0RWxlbWVudDo6aW5pdGlhbGl6ZUlucHV0VHlwZSgpCiAg
ICAgY29uc3QgQXRvbVN0cmluZyYgdHlwZSA9IGF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24odHlwZUF0dHIpOwogICAgIGlmICh0eXBlLmlzTnVsbCgpKSB7CiAgICAgICAgIG1faW5wdXRU
eXBlID0gSW5wdXRUeXBlOjpjcmVhdGVUZXh0KCp0aGlzKTsKLSAgICAgICAgZW5zdXJlVXNlckFn
ZW50U2hhZG93Um9vdCgpOworICAgICAgICBBU1NFUlQobV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93
U3VidHJlZSgpKTsKKyAgICAgICAgY3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpOworICAgICAg
ICBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CiAgICAgICAgIHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZh
bGlkaXR5KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBtX2hhc1R5cGUgPSB0cnVl
OwogICAgIG1faW5wdXRUeXBlID0gSW5wdXRUeXBlOjpjcmVhdGUoKnRoaXMsIHR5cGUpOwotICAg
IGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAobV9pbnB1dFR5cGUtPm5lZWRz
U2hhZG93U3VidHJlZSgpKSB7CisgICAgICAgIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsK
KyAgICAgICAgY3JlYXRlU2hhZG93U3VidHJlZSgpOworICAgIH0KICAgICB1cGRhdGVXaWxsVmFs
aWRhdGVBbmRWYWxpZGl0eSgpOwogICAgIHJlZ2lzdGVyRm9yU3VzcGVuc2lvbkNhbGxiYWNrSWZO
ZWVkZWQoKTsKICAgICBydW5Qb3N0VHlwZVVwZGF0ZVRhc2tzKCk7CkBAIC0xMjU4LDYgKzEyNzEs
MTUgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBl
dmVudCkKICAgICAgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhh
bmRsZXIoZXZlbnQpOwogfQogCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdl
ZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQoreworICAgIC8vIFNvbWUgaW5wdXQgdHlwZXMg
b25seSBuZWVkIHNoYWRvdyByb290cyB0byBoaWRlIGFueSBjaGlsZHJlbiB0aGF0IG1heQorICAg
IC8vIGhhdmUgYmVlbiBhcHBlbmRlZCBieSBzY3JpcHQuIEZvciBzdWNoIHR5cGVzLCBzaGFkb3cg
cm9vdHMgYXJlIGxhemlseQorICAgIC8vIGNyZWF0ZWQgd2hlbiBjaGlsZHJlbiBhcmUgYWRkZWQg
Zm9yIHRoZSBmaXJzdCB0aW1lLgorICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAg
ICBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZSk7Cit9
CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6d2lsbFJlc3BvbmRUb01vdXNlQ2xpY2tFdmVudHMo
KQogewogICAgIGlmICghaXNEaXNhYmxlZEZvcm1Db250cm9sKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDUxZjk3NzBhOWMxYmJhZTkxYTQ1NmZkZWRmYzk1Mzc1
ZGY4NDg0ZWQuLjY3NTgzZGY4YzRlNWJlMmU5YWI4NjJiMjQ3YmM2M2Y0ZjRlNDljNDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0xMzYsNyArMTM2LDcgQEAgY2xh
c3MgSFRNTElucHV0RWxlbWVudCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7
CiAgICAgSFRNTEVsZW1lbnQqIGNvbnRhaW5lckVsZW1lbnQoKSBjb25zdDsKICAgICAKICAgICBS
ZWZQdHI8VGV4dENvbnRyb2xJbm5lclRleHRFbGVtZW50PiBpbm5lclRleHRFbGVtZW50KCkgY29u
c3QgZmluYWw7Ci0gICAgUmVuZGVyU3R5bGUgY3JlYXRlSW5uZXJUZXh0U3R5bGUoY29uc3QgUmVu
ZGVyU3R5bGUmKSBvdmVycmlkZTsKKyAgICBSZW5kZXJTdHlsZSBjcmVhdGVJbm5lclRleHRTdHls
ZShjb25zdCBSZW5kZXJTdHlsZSYpIGZpbmFsOwogCiAgICAgSFRNTEVsZW1lbnQqIGlubmVyQmxv
Y2tFbGVtZW50KCkgY29uc3Q7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyU3BpbkJ1dHRvbkVsZW1l
bnQoKSBjb25zdDsKQEAgLTI2OSw3ICsyNjksNyBAQCBjbGFzcyBIVE1MSW5wdXRFbGVtZW50IDog
cHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKICAgICB2b2lkIGFkZFNlYXJjaFJl
c3VsdCgpOwogICAgIHZvaWQgb25TZWFyY2goKTsKIAotICAgIGJvb2wgd2lsbFJlc3BvbmRUb01v
dXNlQ2xpY2tFdmVudHMoKSBvdmVycmlkZTsKKyAgICBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNs
aWNrRXZlbnRzKCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKICAgICBX
RUJDT1JFX0VYUE9SVCBSZWZQdHI8SFRNTEVsZW1lbnQ+IGxpc3QoKSBjb25zdDsKQEAgLTM0OCwx
MyArMzQ4LDEzIEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQgOiBwdWJsaWMgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQgewogcHJvdGVjdGVkOgogICAgIEhUTUxJbnB1dEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIERvY3VtZW50JiwgSFRNTEZvcm1FbGVtZW50KiwgYm9vbCBjcmVhdGVk
QnlQYXJzZXIpOwogCi0gICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JikgZmluYWw7CisKKyAgICB2
b2lkIGNoaWxkcmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYpIGZpbmFsOwogCiBwcml2YXRl
OgogICAgIGVudW0gQXV0b0NvbXBsZXRlU2V0dGluZyB7IFVuaW5pdGlhbGl6ZWQsIE9uLCBPZmYg
fTsKIAotICAgIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93Um9vdChTaGFkb3dSb290JikgZmlu
YWw7Ci0KICAgICB2b2lkIHdpbGxDaGFuZ2VGb3JtKCkgZmluYWw7CiAgICAgdm9pZCBkaWRDaGFu
Z2VGb3JtKCkgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5jZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJ
bnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwpAQCAtMzYy
LDYgKzM2Miw4IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQgOiBwdWJsaWMgSFRNTFRleHRGb3Jt
Q29udHJvbEVsZW1lbnQgewogICAgIHZvaWQgcmVtb3ZlZEZyb21BbmNlc3RvcihSZW1vdmFsVHlw
ZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQgZGlkTW92ZVRvTmV3RG9jdW1lbnQo
RG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3RG9jdW1lbnQpIGZpbmFsOwogCisg
ICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisKICAgICBpbnQgZGVmYXVsdFRhYkluZGV4
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGJiODJjZDgwODFjZTAwNWY3NGExYjRj
YzExMmMxOWNlY2QxNGIwNjEuLmFkNzBjYzhiNTAyMmQ1MTQzYmYwNGU5N2I5NzM3ZWQwNzdhOGE5
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDIxIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTE0NCw2ICsxNDQsMTYgQEAgY2xhc3MgSW5w
dXRUeXBlIDogcHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgICAgIFR5cGU6OlJl
c2V0LAogICAgIH07CiAKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxUeXBlPiBub25T
aGFkb3dSb290VHlwZXMgPSB7CisgICAgICAgIFR5cGU6OkJ1dHRvbiwKKyAgICAgICAgVHlwZTo6
Q2hlY2tib3gsCisgICAgICAgIFR5cGU6OkhpZGRlbiwKKyAgICAgICAgVHlwZTo6SW1hZ2UsCisg
ICAgICAgIFR5cGU6OlJhZGlvLAorICAgICAgICBUeXBlOjpSZXNldCwKKyAgICAgICAgVHlwZTo6
U3VibWl0LAorICAgIH07CisKICAgICBzdGF0aWMgUmVmPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmLCBjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgc3RhdGljIFJlZjxJbnB1dFR5
cGU+IGNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfklucHV0VHlw
ZSgpOwpAQCAtMTk1LDYgKzIwNSw3IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPElucHV0VHlwZT4gewogICAgIGJvb2wgaXNJbnRlcmFjdGl2ZUNvbnRlbnQoKSBjb25zdDsK
ICAgICBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdDsKICAgICBib29sIGlzRW51bWVyYXRhYmxl
KCkgY29uc3Q7CisgICAgYm9vbCBuZWVkc1NoYWRvd1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiAh
bm9uU2hhZG93Um9vdFR5cGVzLmNvbnRhaW5zKG1fdHlwZSk7IH0KIAogICAgIC8vIEZvcm0gdmFs
dWUgZnVuY3Rpb25zLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4
IDQ3NmUzMzY1NDgwOWQxYWZjYjc0ZDQ3ZjAyOGZiZDk5MGZmNGE1YTcuLjkzZDExZDY0ZWUwMmNk
ODgyZGRmYjFkODY0ODI0MTZiZDg4MmIyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCkBAIC04Miw2ICs4Miw3IEBAIHN0YXRpYyBEZWNpbWFsIGVuc3VyZU1heGltdW0o
Y29uc3QgRGVjaW1hbCYgcHJvcG9zZWRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbWluaW11CiBSYW5n
ZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAg
ICA6IElucHV0VHlwZShUeXBlOjpSYW5nZSwgZWxlbWVudCkKIHsKKyAgICBBU1NFUlQobmVlZHNT
aGFkb3dTdWJ0cmVlKCkpOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBSYW5nZUlucHV0VHlwZTo6
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKQEAgLTI0NCw2ICsyNDUsNyBAQCBhdXRvIFJhbmdlSW5w
dXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIC0+IFNob3Vs
ZENhbGxCYXNlRQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5k
VXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hh
bmdlOjpTb3VyY2Ugc291cmNlLCBib29sKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRy
ZWUoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+dXNl
ckFnZW50U2hhZG93Um9vdCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwCmluZGV4IDdlNTcyYzVhZWQ5OTdmZTgwMDI2MDA4MmM5YWY0MmVhMDg2YjNkYjQuLmI1NWEw
ZjU3OWFmMGQ2ZjU5M2RjYjI5ZWRmM2I5MWJhNzBjOGJhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgU2VhcmNoSW5wdXRUeXBlOjpT
ZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VUZXh0
SW5wdXRUeXBlKFR5cGU6OlNlYXJjaCwgZWxlbWVudCkKICAgICAsIG1fc2VhcmNoRXZlbnRUaW1l
cigqdGhpcywgJlNlYXJjaElucHV0VHlwZTo6c2VhcmNoRXZlbnRUaW1lckZpcmVkKQogeworICAg
IEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiB9CiAKIHZvaWQgU2VhcmNoSW5wdXRUeXBl
OjphZGRTZWFyY2hSZXN1bHQoKQpAQCAtMTA0LDYgKzEwNSw3IEBAIGJvb2wgU2VhcmNoSW5wdXRU
eXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAKIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRh
aW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29sIGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAg
QVNTRVJUKCFtX3Jlc3VsdHNCdXR0b24pOwogICAgIEFTU0VSVCghbV9jYW5jZWxCdXR0b24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggNzBkNWYw
YmNiZjk5MzU0NDRlMDMxNTMzZTNhNmQxNTI0Y2ExZDI3NS4uYjg1ZmZiMjZhMjU4OGQzYWYxY2I0
OWFiMjUzNzllM2U4ZGY0NWIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcApAQCAtNzUsNiArNzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
VGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUoVHlwZSB0eXBlLCBIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQpCiB7Cisg
ICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKIH0KIAogVGV4dEZpZWxkSW5wdXRUeXBl
Ojp+VGV4dEZpZWxkSW5wdXRUeXBlKCkKQEAgLTMxNiw2ICszMTcsNyBAQCBib29sIFRleHRGaWVs
ZElucHV0VHlwZTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCkgY29uc3QKIAogdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3Vy
Y2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7CisgICAgQVNTRVJUKG5lZWRz
U2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxl
bWVudCgpLT5zaGFkb3dSb290KCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWU2MzcyMjUyN2Y4YjE2MDYzMTEwNDA5
NWZmOWU4NTQ0Mjc1MGI5YS4uYTcxMGIzYjA0MTM3MjMwNDNiMTM1MWNmZGM0ZWQ5YTA2NmNiZjBl
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTE5ICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBzaGFkb3ctcm9vdCBjcmVhdGlvbiBmb3Ig
aW5wdXQgZWxlbWVudCBpZiBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQt
aGlkZGVuLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvY2hlY2ti
b3gtY2hpbGQtaGlkZGVuLmh0bWw6IEFkZGVkLgorCiAyMDIxLTA2LTE5ICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggQ1NTIHNlcmlhbGl6YXRpb24gaXNzdWVz
IGFmZmVjdGluZyBjc3MtY291bnRlci1zdHlsZXMgdGVzdHMKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlkZGVuLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi1leHBlY3RlZC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjAyOGIxNTM2NGNmN2M1MmNmZWJjNjNmYjA2NjAwZmU0NDY0ZDgwYmUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRl
bi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0tIENv
cHlyaWdodCAoQykgMjAyMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzwh
LS0gQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+
Cis8bGFiZWw+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYiIgLz4KK0NoZWNrYm94Cis8
L2xhYmVsPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja2JveC1jaGls
ZC1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlk
ZGVuLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmFkNjY0YzYzNWRjNzkzZDQxNTA4ZGM2NTM1ZWMxYTE5NjE2
NWQzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gt
Y2hpbGQtaGlkZGVuLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0t
IENvcHlyaWdodCAoQykgMjAyMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4K
KzwhLS0gQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
LS0+Cis8bGFiZWw+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYiIgLz4KK0NoZWNrYm94
Cis8L2xhYmVsPgorPHNjcmlwdD4KKyAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImNiIik7CisgIGNoZWNrYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKCJDaGVja2JveCIpKTsKKzwvc2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431811</attachid>
            <date>2021-06-19 20:42:57 -0700</date>
            <delta_ts>2021-06-19 22:39:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227189-20210619204256.patch</filename>
            <type>text/plain</type>
            <size>21948</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg0OTViOGJmNmVhODk1
Zjk3MTA0NDQ4MGYxY2VkNzVkYzhjYzVmOC4uYWU0OTgxYmNjMTI1ZmFlYTRhYTU1MDkzODY3MmEy
YWI1ZDYxMzA3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDIxLTA2LTE5ICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBzaGFkb3ctcm9v
dCBjcmVhdGlvbiBmb3IgaW5wdXQgZWxlbWVudCBpZiBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxODkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L2Zv
cm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sCisKKyAgICAgICAgQ2hlcnJ5LXBpY2sgQ2hy
b21pdW0gb3B0aW1pemF0aW9uc1sxLDJdIGZvciBpbnB1dCBlbGVtZW50IGFuZCBleHRlbmQgdGhl
IGNvdmVyYWdlIGZvciBtb3JlIHR5cGVzLgorCisgICAgICAgIFNvbWUgb2YgaW5wdXQgZWxlbWVu
dCAoZS5nLiBjaGVja2JveCkgZG8gbm90IG5lZWQgdG8gY3JlYXRlIGEgc2hhZG93LXJvb3Qgc2lu
Y2UgdGhleSBkbyBub3QgaGF2ZSBzaGFkb3ctc3VidHJlZS4KKyAgICAgICAgVGhpcyBwYXRjaCBv
cHRpbWl6ZXMgaW5wdXQgZWxlbWVudCBjcmVhdGlvbiBieSBza2lwcGluZyBjcmVhdGlvbiBvZiBz
aGFkb3ctcm9vdCBmb3IgdGhlc2UgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgT24gTTEgTUJQLCB0
aGlzIHBhdGNoIGltcHJvdmVzIFNwZWVkb21ldGVyMiBieSAwLjglLgorCisgICAgICAgIFsxXTog
aHR0cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8r
Lzc3MzE4MAorICAgICAgICBbMl06IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJj
ZS5jb20vYy9jaHJvbWl1bS9zcmMvKy84MjY0MjYKKworICAgICAgICAqIGRvbS9FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3Qp
OgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Y3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCk6
CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHkpOgorICAgICAgICAqIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmg6CisgICAgICAg
IChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OkJhc2VEYXRlQW5kVGltZUlucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4
dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAgICogaHRtbC9Db2xvcklucHV0VHlwZS5oOgor
ICAgICAgICAqIGh0bWwvRmlsZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
SW5wdXRUeXBlOjpGaWxlSW5wdXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5
cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxp
dHkpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpIVE1MSW5wdXRFbGVtZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpjcmVhdGVTaGFkb3dTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJ
bnB1dEVsZW1lbnQ6OnVwZGF0ZVR5cGUpOiBJdCBpcyBwb3NzaWJsZSB0aGF0IHNoYWRvdyByb290
IGlzIGFscmVhZHkgY3JlYXRlZCBmb3IgdGhlIHByZXZpb3VzIElucHV0VHlwZS4gU28gd2Ugc2hv
dWxkIHVzZSBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290LgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6aW5pdGlhbGl6ZUlucHV0VHlwZSk6IFNpbmNlIHRoaXMgaXMgY2FsbGVk
IGF0IGluaXRpYWxpemF0aW9uIHRpbWUsIHdlIGNhbiB1c2UgY3JlYXRlVXNlckFnZW50U2hhZG93
Um9vdCBpbnN0ZWFkIG9mIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QuCisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQpOiBFdmVuIHRob3VnaCBzaGFk
b3cgcm9vdCBpcyB1bm5lY2Vzc2FyeSBmb3IgY2hlY2tib3gsIHdlIG5lZWQgaXQgb25seSB3aGVu
IGEgY2hpbGQgbm9kZSBpcyBhcHBlbmRlZCB0byBoaWRlIHRoZW0uIFdlIGNyZWF0ZSBzaGFkb3cg
cm9vdCB3aGVuIGNoaWxkIG5vZGUgaXMgYXBwZW5kZWQuIFRoaXMgc2hvdWxkIGJlIHN1cGVyIHJh
cmUuCisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpkaWRBZGRVc2VyQWdlbnRT
aGFkb3dSb290KTogRGVsZXRlZC4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoK
KyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBl
OjpuZWVkc1NoYWRvd1N1YnRyZWUgY29uc3QpOiBTaW5jZSB0aGlzIGlzIGluIHRoZSBjcml0aWNh
bCBwYXRoLCB3ZSBuZWVkIHRoaXMgc3VwZXIgb3B0aW1pemVkIGltcGxlbWVudGF0aW9uLiBCdXR0
b24sIGNoZWNrYm94LCBoaWRkZW4sIGltYWdlLCByYWRpbywgcmVzZXQsIGFuZCBzdWJtaXQgZG8g
bm90IHJlcXVpcmUgc2hhZG93IHJvb3QuCisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRV
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0bWwvU2VhcmNo
SW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6U2VhcmNo
SW5wdXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hh
ZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisgICAgICAg
ICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6VGV4
dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmlsaXR5KToKKwogMjAyMS0wNi0xOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgRml4IENTUyBzZXJpYWxpemF0aW9uIGlzc3VlcyBhZmZlY3Rpbmcg
Y3NzLWNvdW50ZXItc3R5bGVzIHRlc3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggZWMxMzM4
MDE3MTk5MzkyNjJmMjAxYTcxMzU4NmYyNDlkNWNiNWYyMS4uODVhNzA5OGI2OWNmNWVmZDRiNjBj
MDk1MDJmNmQ3ODUzMWYxNjg4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjQ2Miw2ICsy
NDYyLDEyIEBAIFNoYWRvd1Jvb3QmIEVsZW1lbnQ6OmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KQogewogICAgIGlmIChhdXRvIHNoYWRvdyA9IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSkKICAgICAg
ICAgcmV0dXJuICpzaGFkb3c7CisgICAgcmV0dXJuIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3Qo
KTsKK30KKworU2hhZG93Um9vdCYgRWxlbWVudDo6Y3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgp
Cit7CisgICAgQVNTRVJUKCF1c2VyQWdlbnRTaGFkb3dSb290KCkpOwogICAgIGF1dG8gbmV3U2hh
ZG93ID0gU2hhZG93Um9vdDo6Y3JlYXRlKGRvY3VtZW50KCksIFNoYWRvd1Jvb3RNb2RlOjpVc2Vy
QWdlbnQpOwogICAgIFNoYWRvd1Jvb3QmIHNoYWRvdyA9IG5ld1NoYWRvdzsKICAgICBhZGRTaGFk
b3dSb290KFdURk1vdmUobmV3U2hhZG93KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAppbmRleCA1ZDZmNzBm
MGMwOGY0NDQwNTk2YTQyMjM3M2I4YmI5ZGQwYTJlNDE5Li4zNzg3MGZjM2QwYjE2NGFmNGE3MjBj
MjI0MTMwNjNlMTI1NGU5M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTMwNiw2ICszMDYsNyBA
QCBjbGFzcyBFbGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUgewogCiAgICAgUmVmUHRyPFNo
YWRvd1Jvb3Q+IHVzZXJBZ2VudFNoYWRvd1Jvb3QoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBTaGFkb3dSb290JiBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgU2hhZG93Um9vdCYgY3JlYXRlVXNlckFnZW50U2hhZG93Um9vdCgpOwogCiAgICAgdm9p
ZCBzZXRJc0RlZmluZWRDdXN0b21FbGVtZW50KEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYpOwog
ICAgIHZvaWQgc2V0SXNGYWlsZWRDdXN0b21FbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMGFhODNiOTM3ZmRiZDI5
Y2U1YWE3ODk4NzZlMTkyMGFkYmU1ZmRhZC4uMjE0OGY5ZmIwNmY2YmFhNDVjMGM4M2ViNmU3OGY2
ZmJhM2U1NTExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmNwcApAQCAtMzA2LDYgKzMwNiw3IEBAIHZvaWQgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50KEV2ZW50JikKIAogdm9pZCBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVt
ZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2Us
IGJvb2wpCiB7CisgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQo
ZWxlbWVudCgpKTsKIAogICAgIGF1dG8mIGVsZW1lbnQgPSAqdGhpcy0+ZWxlbWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKaW5kZXggZjEw
OGI1MmEwYmYxZDliOWQyYzlkYzZmOTQ4ZGZlYTRhNjkxYzc2NC4uMzY0Y2QzZjk2YjA0MzY2YTIz
OGVmNmE4M2JjODFkMDk3OTA5N2E0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9C
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5oCkBAIC02MCw3ICs2MCwxMiBAQCBjbGFzcyBCYXNlRGF0ZUFu
ZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgSW5wdXRUeXBlLCBwcml2YXRlIERhdGVUaW1lQ2hvb3Nl
ckNsaWVudAogICAgICAgICBIYXNNZXJpZGllbSA9IDEgPDwgNywKICAgICB9OwogCi0gICAgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0RWxlbWVudCYgZWxlbWVu
dCkgOiBJbnB1dFR5cGUodHlwZSwgZWxlbWVudCkgeyB9CisgICAgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKKyAgICAgICAgOiBJ
bnB1dFR5cGUodHlwZSwgZWxlbWVudCkKKyAgICB7CisgICAgICAgIEFTU0VSVChuZWVkc1NoYWRv
d1N1YnRyZWUoKSk7CisgICAgfQorCiAgICAgfkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSgpOwog
CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IERlY2ltYWwm
KSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5k
ZXggZWE4MWJiMTlkMTQ0YTUwNjBhMDczODA4ZDhkOWZiNjhmZjg2MDhjMC4uN2Y2OWQ5Mjc5ODQ1
NGMxYWJlN2ZiZGYzYmJkYmMzMjQ5ZTI2M2JhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklu
cHV0VHlwZS5jcHAKQEAgLTEzNiw2ICsxMzYsNyBAQCBDb2xvciBDb2xvcklucHV0VHlwZTo6dmFs
dWVBc0NvbG9yKCkgY29uc3QKIAogdm9pZCBDb2xvcklucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3Vi
dHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpD
aGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkKIHsKKyAgICBBU1NFUlQobmVlZHNTaGFk
b3dTdWJ0cmVlKCkpOwogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIEFTU0VSVChlbGVtZW50
KCktPnNoYWRvd1Jvb3QoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRl
eCAzY2E0YzlmNDVlZjA4YjIxZjdiYjJhYzUzMTM3Mzc5NmQ3YmJkZmYwLi43MTQ5NzgzYWZlMDM1
ZmMyMjA5ZGNjYmM2ODlhOGNjOTUwMjgzNjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5oCkBAIC00Miw3ICs0MiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb2xv
cklucHV0VHlwZSBmaW5hbCA6IHB1YmxpYyBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlwZSwg
cHJpdmF0ZSBDb2xvckNob29zZXJDbGllbnQgewogICAgIHRlbXBsYXRlPHR5cGVuYW1lIERvd25j
YXN0ZWRUeXBlPiBmcmllbmQgYm9vbCBpc0ludmFsaWRJbnB1dFR5cGUoY29uc3QgSW5wdXRUeXBl
JiwgY29uc3QgU3RyaW5nJik7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgQ29sb3JJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0aEtleUlucHV0VHlw
ZShUeXBlOjpDb2xvciwgZWxlbWVudCkgeyB9CisgICAgZXhwbGljaXQgQ29sb3JJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKKyAgICAgICAgOiBCYXNlQ2xpY2thYmxlV2l0aEtl
eUlucHV0VHlwZShUeXBlOjpDb2xvciwgZWxlbWVudCkKKyAgICB7CisgICAgICAgIEFTU0VSVChu
ZWVkc1NoYWRvd1N1YnRyZWUoKSk7CisgICAgfQorCiAgICAgdmlydHVhbCB+Q29sb3JJbnB1dFR5
cGUoKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCmluZGV4
IGJiOGNhODczZTM0YjM2N2U5MWI0OTI3Yjc4YjdjZTM4ZWY2NDEyOTMuLjUwZmMzYzk1MGY1M2Vj
YTMzNTVjOWZhOGJjNDVhNzNhMjc5YjJhMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRmlsZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRU
eXBlLmNwcApAQCAtMTA5LDYgKzEwOSw3IEBAIEZpbGVJbnB1dFR5cGU6OkZpbGVJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5w
dXRUeXBlKFR5cGU6OkZpbGUsIGVsZW1lbnQpCiAgICAgLCBtX2ZpbGVMaXN0KEZpbGVMaXN0Ojpj
cmVhdGUoKSkKIHsKKyAgICBBU1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOwogfQogCiBGaWxl
SW5wdXRUeXBlOjp+RmlsZUlucHV0VHlwZSgpCkBAIC0yNzUsNiArMjc2LDcgQEAgdm9pZCBGaWxl
SW5wdXRUeXBlOjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sLCBUZXh0RmllbGRFdmVudEJl
aGF2aW9yKQogCiB2b2lkIEZpbGVJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRh
dGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6
OlNvdXJjZSBzb3VyY2UsIGJvb2wpCiB7CisgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgp
KTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dS
b290KCkpOwogICAgIGVsZW1lbnQoKS0+dXNlckFnZW50U2hhZG93Um9vdCgpLT5hcHBlbmRDaGls
ZChzb3VyY2UsIGVsZW1lbnQoKS0+bXVsdGlwbGUoKSA/IFVwbG9hZEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZUZvck11bHRpcGxlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSk6IFVwbG9hZEJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShlbGVtZW50KCktPmRvY3VtZW50KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDBkZjE5ZGVjMDAyN2IzYzRlZmNlMWU5NWVlNGI0YmUw
OGUzYWJiZDYuLmQ0MTg3ODhhZWViZDI3YjZhYmYxNzA1MmFhYjk4YTIzOGIwZDQ3NTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMiwxMCArMiwxMCBAQAog
ICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCiAgKiAgICAg
ICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDQtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAg
ICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29tKQogICog
Q29weXJpZ2h0IChDKSAyMDA3IFNhbXVlbCBXZWluaWcgKHNhbUB3ZWJraXQub3JnKQotICogQ29w
eXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTAtMjAyMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSAyMDA4IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ft
c3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCkBAIC04NCw3ICs4NCw3
IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChIVE1MSW5wdXRFbGVtZW50KTsKIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiBFTkFCTEUoREFUQUxJU1RfRUxFTUVOVCkKLWNs
YXNzIExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciA6IElkVGFyZ2V0T2JzZXJ2ZXIgeworY2xh
c3MgTGlzdEF0dHJpYnV0ZVRhcmdldE9ic2VydmVyIGZpbmFsIDogcHVibGljIElkVGFyZ2V0T2Jz
ZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIExpc3RB
dHRyaWJ1dGVUYXJnZXRPYnNlcnZlcihjb25zdCBBdG9tU3RyaW5nJiBpZCwgSFRNTElucHV0RWxl
bWVudCopOwpAQCAtMTMzLDggKzEzMywxMCBAQCBIVE1MSW5wdXRFbGVtZW50OjpIVE1MSW5wdXRF
bGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50JiBkb2N1bQogewog
ICAgIC8vIG1faW5wdXRUeXBlIGlzIGxhemlseSBjcmVhdGVkIHdoZW4gY29uc3RydWN0ZWQgYnkg
dGhlIHBhcnNlciB0byBhdm9pZCBjb25zdHJ1Y3RpbmcgdW5uZWNlc3NhcmlseSBhIHRleHQgaW5w
dXRUeXBlIGFuZAogICAgIC8vIGl0cyBzaGFkb3cgc3VidHJlZSwganVzdCB0byBkZXN0cm95IHRo
ZW0gd2hlbiB0aGUgfHR5cGV8IGF0dHJpYnV0ZSBnZXRzIHNldCBieSB0aGUgcGFyc2VyIHRvIHNv
bWV0aGluZyBlbHNlIHRoYW4gJ3RleHQnLgotICAgIGlmICghY3JlYXRlZEJ5UGFyc2VyKQorICAg
IGlmICghY3JlYXRlZEJ5UGFyc2VyKSB7CiAgICAgICAgIG1faW5wdXRUeXBlID0gSW5wdXRUeXBl
OjpjcmVhdGVUZXh0KCp0aGlzKTsKKyAgICAgICAgQVNTRVJUKG1faW5wdXRUeXBlLT5uZWVkc1No
YWRvd1N1YnRyZWUoKSk7CisgICAgfQogCiAgICAgQVNTRVJUKGhhc1RhZ05hbWUoaW5wdXRUYWcp
KTsKICAgICBzZXRIYXNDdXN0b21TdHlsZVJlc29sdmVDYWxsYmFja3MoKTsKQEAgLTE0NCw4ICsx
NDYsMTEgQEAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2MKIHsKICAgICBib29sIHNob3VsZENyZWF0
ZVNoYWRvd1Jvb3RMYXppbHkgPSBjcmVhdGVkQnlQYXJzZXI7CiAgICAgUmVmPEhUTUxJbnB1dEVs
ZW1lbnQ+IGlucHV0RWxlbWVudCA9IGFkb3B0UmVmKCpuZXcgSFRNTElucHV0RWxlbWVudCh0YWdO
YW1lLCBkb2N1bWVudCwgZm9ybSwgY3JlYXRlZEJ5UGFyc2VyKSk7Ci0gICAgaWYgKCFzaG91bGRD
cmVhdGVTaGFkb3dSb290TGF6aWx5KQotICAgICAgICBpbnB1dEVsZW1lbnQtPmVuc3VyZVVzZXJB
Z2VudFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIXNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXppbHkp
IHsKKyAgICAgICAgQVNTRVJUKGlucHV0RWxlbWVudC0+bV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93
U3VidHJlZSgpKTsKKyAgICAgICAgaW5wdXRFbGVtZW50LT5jcmVhdGVVc2VyQWdlbnRTaGFkb3dS
b290KCk7CisgICAgICAgIGlucHV0RWxlbWVudC0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOworICAg
IH0KICAgICByZXR1cm4gaW5wdXRFbGVtZW50OwogfQogCkBAIC0xNTYsNyArMTYxLDcgQEAgSFRN
TEltYWdlTG9hZGVyJiBIVE1MSW5wdXRFbGVtZW50OjplbnN1cmVJbWFnZUxvYWRlcigpCiAgICAg
cmV0dXJuICptX2ltYWdlTG9hZGVyOwogfQogCi12b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRpZEFk
ZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYpCit2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6
OmNyZWF0ZVNoYWRvd1N1YnRyZWUoKQogewogICAgIFJlZjxJbnB1dFR5cGU+IHByb3RlY3RlZElu
cHV0VHlwZSgqbV9pbnB1dFR5cGUpOwogICAgIHByb3RlY3RlZElucHV0VHlwZS0+Y3JlYXRlU2hh
ZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJ
blByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNv
dXJjZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsKQEAgLTU3NSw3ICs1ODAs
MTAgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKICAgICBtX2lucHV0VHlw
ZS0+ZGV0YWNoRnJvbUVsZW1lbnQoKTsKIAogICAgIG1faW5wdXRUeXBlID0gV1RGTW92ZShuZXdU
eXBlKTsKLSAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVy
VGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6
OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJLCBpc0lubmVyVGV4dEVs
ZW1lbnRFZGl0YWJsZSgpKTsKKyAgICBpZiAobV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93U3VidHJl
ZSgpKSB7CisgICAgICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgY3Jl
YXRlU2hhZG93U3VidHJlZSgpOworICAgIH0KIAogICAgIHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZh
bGlkaXR5KCk7CiAKQEAgLTcyOCwxNCArNzM2LDE5IEBAIGlubGluZSB2b2lkIEhUTUxJbnB1dEVs
ZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUoKQogICAgIGNvbnN0IEF0b21TdHJpbmcmIHR5cGUg
PSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHR5cGVBdHRyKTsKICAgICBpZiAodHlw
ZS5pc051bGwoKSkgewogICAgICAgICBtX2lucHV0VHlwZSA9IElucHV0VHlwZTo6Y3JlYXRlVGV4
dCgqdGhpcyk7Ci0gICAgICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAg
QVNTRVJUKG1faW5wdXRUeXBlLT5uZWVkc1NoYWRvd1N1YnRyZWUoKSk7CisgICAgICAgIGNyZWF0
ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgY3JlYXRlU2hhZG93U3VidHJlZSgpOwog
ICAgICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBtX2lucHV0VHlwZSA9IElucHV0
VHlwZTo6Y3JlYXRlKCp0aGlzLCB0eXBlKTsKLSAgICBlbnN1cmVVc2VyQWdlbnRTaGFkb3dSb290
KCk7CisgICAgaWYgKG1faW5wdXRUeXBlLT5uZWVkc1NoYWRvd1N1YnRyZWUoKSkgeworICAgICAg
ICBjcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCk7CisgICAgICAgIGNyZWF0ZVNoYWRvd1N1YnRy
ZWUoKTsKKyAgICB9CiAgICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKICAgICBy
ZWdpc3RlckZvclN1c3BlbnNpb25DYWxsYmFja0lmTmVlZGVkKCk7CiAgICAgcnVuUG9zdFR5cGVV
cGRhdGVUYXNrcygpOwpAQCAtMTI1OCw2ICsxMjcxLDE1IEBAIHZvaWQgSFRNTElucHV0RWxlbWVu
dDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKIH0KIAordm9pZCBI
VE1MSW5wdXRFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5n
ZSkKK3sKKyAgICAvLyBTb21lIGlucHV0IHR5cGVzIG9ubHkgbmVlZCBzaGFkb3cgcm9vdHMgdG8g
aGlkZSBhbnkgY2hpbGRyZW4gdGhhdCBtYXkKKyAgICAvLyBoYXZlIGJlZW4gYXBwZW5kZWQgYnkg
c2NyaXB0LiBGb3Igc3VjaCB0eXBlcywgc2hhZG93IHJvb3RzIGFyZSBsYXppbHkKKyAgICAvLyBj
cmVhdGVkIHdoZW4gY2hpbGRyZW4gYXJlIGFkZGVkIGZvciB0aGUgZmlyc3QgdGltZS4KKyAgICBl
bnN1cmVVc2VyQWdlbnRTaGFkb3dSb290KCk7CisgICAgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1l
bnQ6OmNoaWxkcmVuQ2hhbmdlZChjaGFuZ2UpOworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6
OndpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkKIHsKICAgICBpZiAoIWlzRGlzYWJsZWRG
b3JtQ29udHJvbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA1
MWY5NzcwYTljMWJiYWU5MWE0NTZmZGVkZmM5NTM3NWRmODQ4NGVkLi42NzU4M2RmOGM0ZTViZTJl
OWFiODYyYjI0N2JjNjNmNGY0ZTQ5YzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaApAQCAtMTM2LDcgKzEzNiw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQgOiBwdWJs
aWMgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgewogICAgIEhUTUxFbGVtZW50KiBjb250YWlu
ZXJFbGVtZW50KCkgY29uc3Q7CiAgICAgCiAgICAgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0
RWxlbWVudD4gaW5uZXJUZXh0RWxlbWVudCgpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlclN0eWxl
IGNyZWF0ZUlubmVyVGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAg
UmVuZGVyU3R5bGUgY3JlYXRlSW5uZXJUZXh0U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5h
bDsKIAogICAgIEhUTUxFbGVtZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0OwogICAgIEhU
TUxFbGVtZW50KiBpbm5lclNwaW5CdXR0b25FbGVtZW50KCkgY29uc3Q7CkBAIC0yNjksNyArMjY5
LDcgQEAgY2xhc3MgSFRNTElucHV0RWxlbWVudCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9s
RWxlbWVudCB7CiAgICAgdm9pZCBhZGRTZWFyY2hSZXN1bHQoKTsKICAgICB2b2lkIG9uU2VhcmNo
KCk7CiAKLSAgICBib29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7
CisgICAgYm9vbCB3aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwogCiAjaWYg
RU5BQkxFKERBVEFMSVNUX0VMRU1FTlQpCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEhUTUxF
bGVtZW50PiBsaXN0KCkgY29uc3Q7CkBAIC0zNDgsMTMgKzM0OCwxMyBAQCBjbGFzcyBIVE1MSW5w
dXRFbGVtZW50IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKIHByb3RlY3Rl
ZDoKICAgICBIVE1MSW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYs
IEhUTUxGb3JtRWxlbWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAotICAgIHZvaWQgZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCYpIGZpbmFsOworCisgICAgdm9pZCBjaGlsZHJlbkNoYW5nZWQoY29uc3Qg
Q2hpbGRDaGFuZ2UmKSBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBlbnVtIEF1dG9Db21wbGV0ZVNl
dHRpbmcgeyBVbmluaXRpYWxpemVkLCBPbiwgT2ZmIH07CiAKLSAgICB2b2lkIGRpZEFkZFVzZXJB
Z2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYpIGZpbmFsOwotCiAgICAgdm9pZCB3aWxsQ2hhbmdl
Rm9ybSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2hhbmdlRm9ybSgpIGZpbmFsOwogICAgIEluc2Vy
dGVkSW50b0FuY2VzdG9yUmVzdWx0IGluc2VydGVkSW50b0FuY2VzdG9yKEluc2VydGlvblR5cGUs
IENvbnRhaW5lck5vZGUmKSBmaW5hbDsKQEAgLTM2Miw2ICszNjIsOCBAQCBjbGFzcyBIVE1MSW5w
dXRFbGVtZW50IDogcHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKICAgICB2b2lk
IHJlbW92ZWRGcm9tQW5jZXN0b3IoUmVtb3ZhbFR5cGUsIENvbnRhaW5lck5vZGUmKSBmaW5hbDsK
ICAgICB2b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9j
dW1lbnQmIG5ld0RvY3VtZW50KSBmaW5hbDsKIAorICAgIHZvaWQgY3JlYXRlU2hhZG93U3VidHJl
ZSgpOworCiAgICAgaW50IGRlZmF1bHRUYWJJbmRleCgpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wg
aGFzQ3VzdG9tRm9jdXNMb2dpYygpIGNvbnN0IGZpbmFsOwogICAgIGJvb2wgaXNLZXlib2FyZEZv
Y3VzYWJsZShLZXlib2FyZEV2ZW50KikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUu
aAppbmRleCBiYjgyY2Q4MDgxY2UwMDVmNzRhMWI0Y2MxMTJjMTljZWNkMTRiMDYxLi5hZDcwY2M4
YjUwMjJkNTE0M2JmMDRlOTdiOTczN2VkMDc3YThhOWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmgKQEAgLTEsNiArMSw2IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAtMjAyMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMjEg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEyIFNh
bXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CkBAIC0xNDQsNiArMTQ0LDE2IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3VudGVk
PElucHV0VHlwZT4gewogICAgICAgICBUeXBlOjpSZXNldCwKICAgICB9OwogCisgICAgc3RhdGlj
IGNvbnN0ZXhwciBPcHRpb25TZXQ8VHlwZT4gbm9uU2hhZG93Um9vdFR5cGVzID0geworICAgICAg
ICBUeXBlOjpCdXR0b24sCisgICAgICAgIFR5cGU6OkNoZWNrYm94LAorICAgICAgICBUeXBlOjpI
aWRkZW4sCisgICAgICAgIFR5cGU6OkltYWdlLAorICAgICAgICBUeXBlOjpSYWRpbywKKyAgICAg
ICAgVHlwZTo6UmVzZXQsCisgICAgICAgIFR5cGU6OlN1Ym1pdCwKKyAgICB9OworCiAgICAgc3Rh
dGljIFJlZjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50JiwgY29uc3QgQXRvbVN0
cmluZyYpOwogICAgIHN0YXRpYyBSZWY8SW5wdXRUeXBlPiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVs
ZW1lbnQmKTsKICAgICB2aXJ0dWFsIH5JbnB1dFR5cGUoKTsKQEAgLTE5NSw2ICsyMDUsNyBAQCBj
bGFzcyBJbnB1dFR5cGUgOiBwdWJsaWMgUmVmQ291bnRlZDxJbnB1dFR5cGU+IHsKICAgICBib29s
IGlzSW50ZXJhY3RpdmVDb250ZW50KCkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0TGFiZWxzKCkg
Y29uc3Q7CiAgICAgYm9vbCBpc0VudW1lcmF0YWJsZSgpIGNvbnN0OworICAgIGJvb2wgbmVlZHNT
aGFkb3dTdWJ0cmVlKCkgY29uc3QgeyByZXR1cm4gIW5vblNoYWRvd1Jvb3RUeXBlcy5jb250YWlu
cyhtX3R5cGUpOyB9CiAKICAgICAvLyBGb3JtIHZhbHVlIGZ1bmN0aW9ucy4KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCA0NzZlMzM2NTQ4MDlkMWFmY2I3NGQ0N2Yw
MjhmYmQ5OTBmZjRhNWE3Li45M2QxMWQ2NGVlMDJjZDg4MmRkZmIxZDg2NDgyNDE2YmQ4ODJiMjYx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtODIsNiArODIsNyBA
QCBzdGF0aWMgRGVjaW1hbCBlbnN1cmVNYXhpbXVtKGNvbnN0IERlY2ltYWwmIHByb3Bvc2VkVmFs
dWUsIGNvbnN0IERlY2ltYWwmIG1pbmltdQogUmFuZ2VJbnB1dFR5cGU6OlJhbmdlSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBJbnB1dFR5cGUoVHlwZTo6UmFuZ2Us
IGVsZW1lbnQpCiB7CisgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKIH0KIAogY29u
c3QgQXRvbVN0cmluZyYgUmFuZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CkBA
IC0yNDQsNiArMjQ1LDcgQEAgYXV0byBSYW5nZUlucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50
KEtleWJvYXJkRXZlbnQmIGV2ZW50KSAtPiBTaG91bGRDYWxsQmFzZUUKIAogdm9pZCBSYW5nZUlu
cHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0
YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291cmNlIHNvdXJjZSwgYm9vbCkK
IHsKKyAgICBBU1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOwogICAgIEFTU0VSVChlbGVtZW50
KCkpOwogICAgIEFTU0VSVChlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jvb3QoKSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAppbmRleCA3ZTU3MmM1YWVkOTk3ZmU4
MDAyNjAwODJjOWFmNDJlYTA4NmIzZGI0Li5iNTVhMGY1NzlhZjBkNmY1OTNkY2IyOWVkZjNiOTFi
YTcwYzhiYTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCkBAIC00
OCw2ICs0OCw3IEBAIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBCYXNlVGV4dElucHV0VHlwZShUeXBlOjpTZWFyY2gsIGVs
ZW1lbnQpCiAgICAgLCBtX3NlYXJjaEV2ZW50VGltZXIoKnRoaXMsICZTZWFyY2hJbnB1dFR5cGU6
OnNlYXJjaEV2ZW50VGltZXJGaXJlZCkKIHsKKyAgICBBU1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVl
KCkpOwogfQogCiB2b2lkIFNlYXJjaElucHV0VHlwZTo6YWRkU2VhcmNoUmVzdWx0KCkKQEAgLTEw
NCw2ICsxMDUsNyBAQCBib29sIFNlYXJjaElucHV0VHlwZTo6bmVlZHNDb250YWluZXIoKSBjb25z
dAogCiB2b2lkIFNlYXJjaElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlu
bmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShDb250YWluZXJOb2RlOjpDaGlsZENoYW5nZTo6U291
cmNlIHNvdXJjZSwgYm9vbCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSkKIHsKKyAgICBBU1NF
UlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOwogICAgIEFTU0VSVCghbV9yZXN1bHRzQnV0dG9uKTsK
ICAgICBBU1NFUlQoIW1fY2FuY2VsQnV0dG9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCmluZGV4IDcwZDVmMGJjYmY5OTM1NDQ0ZTAzMTUzM2UzYTZkMTUy
NGNhMWQyNzUuLmI4NWZmYjI2YTI1ODhkM2FmMWNiNDlhYjI1Mzc5ZTNlOGRmNDViMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKQEAgLTc1LDYgKzc1LDcg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIFRleHRGaWVsZElucHV0VHlwZTo6VGV4dEZp
ZWxkSW5wdXRUeXBlKFR5cGUgdHlwZSwgSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6
IElucHV0VHlwZSh0eXBlLCBlbGVtZW50KQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRy
ZWUoKSk7CiB9CiAKIFRleHRGaWVsZElucHV0VHlwZTo6flRleHRGaWVsZElucHV0VHlwZSgpCkBA
IC0zMTYsNiArMzE3LDcgQEAgYm9vbCBUZXh0RmllbGRJbnB1dFR5cGU6OnNob3VsZEhhdmVDYXBz
TG9ja0luZGljYXRvcigpIGNvbnN0CiAKIHZvaWQgVGV4dEZpZWxkSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5l
ck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29sIGlzSW5uZXJUZXh0RWxlbWVu
dEVkaXRhYmxlKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDVlNjM3MjI1MjdmOGIxNjA2MzExMDQwOTVmZjllODU0NDI3NTBiOWEuLmE3MTBiM2Iw
NDEzNzIzMDQzYjEzNTFjZmRjNGVkOWEwNjZjYmYwZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAor
MjAyMS0wNi0xOSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgorCisgICAgICAg
IFNraXAgc2hhZG93LXJvb3QgY3JlYXRpb24gZm9yIGlucHV0IGVsZW1lbnQgaWYgaXQgaXMgbm90
IG5lY2Vzc2FyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI3MTg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sOiBBZGRl
ZC4KKwogMjAyMS0wNi0xOSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgRml4IENTUyBzZXJpYWxpemF0aW9uIGlzc3VlcyBhZmZlY3RpbmcgY3NzLWNvdW50ZXItc3R5
bGVzIHRlc3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWNo
aWxkLWhpZGRlbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja2Jv
eC1jaGlsZC1oaWRkZW4tZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjhiMTUzNjRjZjdjNTJj
ZmViYzYzZmIwNjYwMGZlNDQ2NGQ4MGJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9jaGVja2JveC1jaGlsZC1oaWRkZW4tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsx
LDcgQEAKKzwhZG9jdHlwZSBodG1sPgorPCEtLSBDb3B5cmlnaHQgKEMpIDIwMjEgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8IS0tIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPGxhYmVsPgorPGlucHV0IHR5cGU9ImNo
ZWNrYm94IiBpZD0iY2IiIC8+CitDaGVja2JveAorPC9sYWJlbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlkZGVuLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZDY2
NGM2MzVkYzc5M2Q0MTUwOGRjNjUzNWVjMWExOTYxNjVkMzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sCkBAIC0wLDAg
KzEsMTEgQEAKKzwhZG9jdHlwZSBodG1sPgorPCEtLSBDb3B5cmlnaHQgKEMpIDIwMjEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8IS0tIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPGxhYmVsPgorPGlucHV0IHR5cGU9
ImNoZWNrYm94IiBpZD0iY2IiIC8+CitDaGVja2JveAorPC9sYWJlbD4KKzxzY3JpcHQ+CisgIHZh
ciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYiIpOworICBjaGVja2JveC5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiQ2hlY2tib3giKSk7Cis8L3Njcmlw
dD4K
</data>
<flag name="review"
          id="453685"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431814</attachid>
            <date>2021-06-20 00:21:24 -0700</date>
            <delta_ts>2021-06-20 04:19:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227189-20210620002123.patch</filename>
            <type>text/plain</type>
            <size>23277</size>
            <attacher name="Yusuke Suzuki">ysuzuki</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTg0OTViOGJmNmVhODk1
Zjk3MTA0NDQ4MGYxY2VkNzVkYzhjYzVmOC4uNWNlNDI3YmY5MTYxZDRkYzlkYjNkYzE1ODliNDli
ZjZmZjJiMDg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDIxLTA2LTIwICBZdXN1
a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBzaGFkb3ctcm9v
dCBjcmVhdGlvbiBmb3IgaW5wdXQgZWxlbWVudCBpZiBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxODkKKworICAg
ICAgICBSZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KKworICAgICAgICBUZXN0OiBmYXN0
L2Zvcm1zL2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sCisKKyAgICAgICAgQ2hlcnJ5LXBpY2sg
Q2hyb21pdW0gb3B0aW1pemF0aW9uc1sxLDJdIGZvciBpbnB1dCBlbGVtZW50IGFuZCBleHRlbmQg
dGhlIGNvdmVyYWdlIGZvciBtb3JlIHR5cGVzLgorCisgICAgICAgIFNvbWUgb2YgaW5wdXQgZWxl
bWVudCAoZS5nLiBjaGVja2JveCkgZG8gbm90IG5lZWQgdG8gY3JlYXRlIGEgc2hhZG93LXJvb3Qg
c2luY2UgdGhleSBkbyBub3QgaGF2ZSBzaGFkb3ctc3VidHJlZS4KKyAgICAgICAgVGhpcyBwYXRj
aCBvcHRpbWl6ZXMgaW5wdXQgZWxlbWVudCBjcmVhdGlvbiBieSBza2lwcGluZyBjcmVhdGlvbiBv
ZiBzaGFkb3ctcm9vdCBmb3IgdGhlc2UgaW5wdXQgdHlwZXMuCisKKyAgICAgICAgU2luY2UgSFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIgY3JlYXRl
cyByZW5kZXJlciBvbmx5IGZvciBjaGlsZHJlbiB1bmRlciBzaGFkb3ctcm9vdCwKKyAgICAgICAg
d2UgZG8gbm90IG5lZWQgdG8gY29uc2lkZXIgYWJvdXQgdGhlIGNhc2UgYXBwZW5kaW5nIGFuIGVs
ZW1lbnQgdG8gY2hlY2tib3ggZXRjLiBUaGV5IHdpbGwgbm90IGdldCByZW5kZXJlcnMuCisKKyAg
ICAgICAgV2UgYWxzbyByZXBsYWNlIEhUTUxJbnB1dEVsZW1lbnQgcmVsYXRlZCBjbGFzcycgb3Zl
cnJpZGUgd2l0aCBmaW5hbCBpZiB0aGV5IGFyZSBmaW5hbCB0byBtYWtlIGNsYXNzLWhpZXJhcmNo
eSBtb3JlIGV4cGxpY2l0CisgICAgICAgIGFuZCBub3QgdG8gbWlzcyB0aGUgY2hhbmdlIHRoYXQg
bmVlZHMgdG8gYmUgZG9uZSBpbiB0aGUgZGVyaXZlZCBjbGFzc2VzLgorCisgICAgICAgIE9uIE0x
IE1CUCwgdGhpcyBwYXRjaCBpbXByb3ZlcyBTcGVlZG9tZXRlcjIgYnkgMC44JS4KKworICAgICAg
ICBbMV06IGh0dHBzOi8vY2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1
bS9zcmMvKy83NzMxODAKKyAgICAgICAgWzJdOiBodHRwczovL2Nocm9taXVtLXJldmlldy5nb29n
bGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvODI2NDI2IChidXQgdGhpcyBpcyBub3QgbmVj
ZXNzYXJ5IGluIFdlYktpdCBzaW5jZSBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDo6Y2hpbGRT
aG91bGRDcmVhdGVSZW5kZXJlciBkb2VzIHRoZSByaWdodCB0aGluZyBlbGVnYW50bHkpCisKKyAg
ICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjplbnN1
cmVVc2VyQWdlbnRTaGFkb3dSb290KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmNyZWF0
ZVVzZXJBZ2VudFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5u
ZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1
YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAqIGh0
bWwvQ29sb3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0ZpbGVJbnB1dFR5cGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RmlsZUlucHV0VHlwZTo6RmlsZUlucHV0VHlwZSk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5u
ZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRV
cGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkpOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TElucHV0RWxlbWVudDo6dXBkYXRlVHlwZSk6IEl0IGlzIHBvc3NpYmxlIHRoYXQgc2hhZG93IHJv
b3QgaXMgYWxyZWFkeSBjcmVhdGVkIGZvciB0aGUgcHJldmlvdXMgSW5wdXRUeXBlLgorICAgICAg
ICBTbyB3ZSBzaG91bGQgdXNlIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojppbml0aWFsaXplSW5wdXRUeXBlKTogU2luY2UgdGhp
cyBpcyBjYWxsZWQgYXQgaW5pdGlhbGl6YXRpb24gdGltZSwgd2UgY2FuIHVzZSBjcmVhdGVVc2Vy
QWdlbnRTaGFkb3dSb290CisgICAgICAgIGluc3RlYWQgb2YgZW5zdXJlVXNlckFnZW50U2hhZG93
Um9vdC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2Vu
dFNoYWRvd1Jvb3QpOiBEZWxldGVkLiBDbGVhbiB1cCB0aGUgbG9naWMgaW5zdGVhZCBvZiByZWx5
aW5nIG9uIHRoaXMgY2FsbGJhY2suCisgICAgICAgIFNpbmNlIEhUTUxJbnB1dEVsZW1lbnQgY2Fu
IHJlcGxhY2UgSW5wdXRUeXBlLCB3aGlsZSB3ZSBuZWVkIHRvIGNyZWF0ZSBzaGFkb3ctc3VidHJl
ZSB3aGVuIElucHV0VHlwZSBpcyByZXBsYWNlZCwKKyAgICAgICAgdGhpcyBjYWxsYmFjayBjb3Vs
ZCBub3QgYmUgY2FsbGVkIHNpbmNlIHNoYWRvdy1yb290IGlzIGFscmVhZHkgY3JlYXRlZCBmb3Ig
dGhlIHByZXZpb3VzIElucHV0VHlwZS4gTm90IHJlbHlpbmcgb24gdGhpcworICAgICAgICBjYWxs
YmFjayBtYWtlcyB0aGUgbG9naWMgbXVjaCBzaW1wbGVyOiBleHBsaWNpdGx5IGNyZWF0ZSBzaGFk
b3ctcm9vdCBhbmQgc2hhZG93LXN1YnRyZWUuCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
cHV0VHlwZTo6bmVlZHNTaGFkb3dTdWJ0cmVlIGNvbnN0KTogU2luY2UgdGhpcyBpcyBpbiB0aGUg
Y3JpdGljYWwgcGF0aCwgd2UgbmVlZCB0aGlzIHN1cGVyIG9wdGltaXplZCBpbXBsZW1lbnRhdGlv
bi4KKyAgICAgICAgQnV0dG9uLCBjaGVja2JveCwgaGlkZGVuLCBpbWFnZSwgcmFkaW8sIHJlc2V0
LCBhbmQgc3VibWl0IGRvIG5vdCByZXF1aXJlIHNoYWRvdyByb290LgorICAgICAgICAqIGh0bWwv
UmFuZ2VJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OlJh
bmdlSW5wdXRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpjcmVhdGVT
aGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KToKKyAgICAg
ICAgKiBodG1sL1NlYXJjaElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJ
bnB1dFR5cGU6OlNlYXJjaElucHV0VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hJbnB1
dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFi
aWxpdHkpOgorICAgICAgICAqIGh0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6VGV4dEZpZWxkSW5wdXRUeXBlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRleHRGaWVsZElucHV0VHlwZTo6Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVw
ZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSk6CisKIDIwMjEtMDYtMTkgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBDU1Mgc2VyaWFsaXphdGlvbiBp
c3N1ZXMgYWZmZWN0aW5nIGNzcy1jb3VudGVyLXN0eWxlcyB0ZXN0cwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCmluZGV4IGVjMTMzODAxNzE5OTM5MjYyZjIwMWE3MTM1ODZmMjQ5ZDVjYjVmMjEuLjg1YTcw
OThiNjljZjVlZmQ0YjYwYzA5NTAyZjZkNzg1MzFmMTY4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKQEAgLTI0NjIsNiArMjQ2MiwxMiBAQCBTaGFkb3dSb290JiBFbGVtZW50OjplbnN1cmVVc2Vy
QWdlbnRTaGFkb3dSb290KCkKIHsKICAgICBpZiAoYXV0byBzaGFkb3cgPSB1c2VyQWdlbnRTaGFk
b3dSb290KCkpCiAgICAgICAgIHJldHVybiAqc2hhZG93OworICAgIHJldHVybiBjcmVhdGVVc2Vy
QWdlbnRTaGFkb3dSb290KCk7Cit9CisKK1NoYWRvd1Jvb3QmIEVsZW1lbnQ6OmNyZWF0ZVVzZXJB
Z2VudFNoYWRvd1Jvb3QoKQoreworICAgIEFTU0VSVCghdXNlckFnZW50U2hhZG93Um9vdCgpKTsK
ICAgICBhdXRvIG5ld1NoYWRvdyA9IFNoYWRvd1Jvb3Q6OmNyZWF0ZShkb2N1bWVudCgpLCBTaGFk
b3dSb290TW9kZTo6VXNlckFnZW50KTsKICAgICBTaGFkb3dSb290JiBzaGFkb3cgPSBuZXdTaGFk
b3c7CiAgICAgYWRkU2hhZG93Um9vdChXVEZNb3ZlKG5ld1NoYWRvdykpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmgKaW5kZXggNWQ2ZjcwZjBjMDhmNDQ0MDU5NmE0MjIzNzNiOGJiOWRkMGEyZTQxOS4uMzc4NzBm
YzNkMGIxNjRhZjRhNzIwYzIyNDEzMDYzZTEyNTRlOTNhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCkBA
IC0zMDYsNiArMzA2LDcgQEAgY2xhc3MgRWxlbWVudCA6IHB1YmxpYyBDb250YWluZXJOb2RlIHsK
IAogICAgIFJlZlB0cjxTaGFkb3dSb290PiB1c2VyQWdlbnRTaGFkb3dSb290KCkgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgU2hhZG93Um9vdCYgZW5zdXJlVXNlckFnZW50U2hhZG93Um9vdCgp
OworICAgIFdFQkNPUkVfRVhQT1JUIFNoYWRvd1Jvb3QmIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jv
b3QoKTsKIAogICAgIHZvaWQgc2V0SXNEZWZpbmVkQ3VzdG9tRWxlbWVudChKU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UmKTsKICAgICB2b2lkIHNldElzRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwCmluZGV4
IDBhYTgzYjkzN2ZkYmQyOWNlNWFhNzg5ODc2ZTE5MjBhZGJlNWZkYWQuLjIxNDhmOWZiMDZmNmJh
YTQ1YzBjODNlYjZlNzhmNmZiYTNlNTUxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKQEAgLTMwNiw2ICszMDYsNyBAQCB2b2lkIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYpCiAK
IHZvaWQgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBk
YXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hhbmdl
OjpTb3VyY2Ugc291cmNlLCBib29sKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUo
KSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAKICAgICBhdXRvJiBlbGVtZW50ID0gKnRoaXMt
PmVsZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0
VHlwZS5oCmluZGV4IGYxMDhiNTJhMGJmMWQ5YjlkMmM5ZGM2Zjk0OGRmZWE0YTY5MWM3NjQuLjM2
NGNkM2Y5NmIwNDM2NmEyMzhlZjZhODNiYzgxZDA5NzkwOTdhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaApAQCAtNjAsNyArNjAsMTIgQEAg
Y2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIElucHV0VHlwZSwgcHJpdmF0
ZSBEYXRlVGltZUNob29zZXJDbGllbnQKICAgICAgICAgSGFzTWVyaWRpZW0gPSAxIDw8IDcsCiAg
ICAgfTsKIAotICAgIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShUeXBlIHR5cGUsIEhUTUxJbnB1
dEVsZW1lbnQmIGVsZW1lbnQpIDogSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQpIHsgfQorICAgIEJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZShUeXBlIHR5cGUsIEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1l
bnQpCisgICAgICAgIDogSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQpCisgICAgeworICAgICAgICBB
U1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOworICAgIH0KKwogICAgIH5CYXNlRGF0ZUFuZFRp
bWVJbnB1dFR5cGUoKTsKIAogICAgIERlY2ltYWwgcGFyc2VUb051bWJlcihjb25zdCBTdHJpbmcm
LCBjb25zdCBEZWNpbWFsJikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCmluZGV4IGVhODFiYjE5ZDE0NGE1MDYwYTA3MzgwOGQ4ZDlmYjY4ZmY4NjA4
YzAuLjdmNjlkOTI3OTg0NTRjMWFiZTdmYmRmM2JiZGJjMzI0OWUyNjNiYWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xMzYsNiArMTM2LDcgQEAgQ29sb3IgQ29s
b3JJbnB1dFR5cGU6OnZhbHVlQXNDb2xvcigpIGNvbnN0CiAKIHZvaWQgQ29sb3JJbnB1dFR5cGU6
OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHko
Q29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3VyY2UsIGJvb2wpCiB7CisgICAg
QVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAg
ICBBU1NFUlQoZWxlbWVudCgpLT5zaGFkb3dSb290KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmgKaW5kZXggM2NhNGM5ZjQ1ZWYwOGIyMWY3YmIyYWM1MzEzNzM3OTZkN2JiZGZm
MC4uNzE0OTc4M2FmZTAzNWZjMjIwOWRjY2JjNjg5YThjYzk1MDI4MzY1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuaApAQCAtNDIsNyArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ29sb3JJbnB1dFR5cGUgZmluYWwgOiBwdWJsaWMgQmFzZUNsaWNrYWJsZVdp
dGhLZXlJbnB1dFR5cGUsIHByaXZhdGUgQ29sb3JDaG9vc2VyQ2xpZW50IHsKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBEb3duY2FzdGVkVHlwZT4gZnJpZW5kIGJvb2wgaXNJbnZhbGlkSW5wdXRUeXBl
KGNvbnN0IElucHV0VHlwZSYsIGNvbnN0IFN0cmluZyYpOwogcHVibGljOgotICAgIGV4cGxpY2l0
IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpIDogQmFzZUNsaWNrYWJs
ZVdpdGhLZXlJbnB1dFR5cGUoVHlwZTo6Q29sb3IsIGVsZW1lbnQpIHsgfQorICAgIGV4cGxpY2l0
IENvbG9ySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCisgICAgICAgIDogQmFz
ZUNsaWNrYWJsZVdpdGhLZXlJbnB1dFR5cGUoVHlwZTo6Q29sb3IsIGVsZW1lbnQpCisgICAgewor
ICAgICAgICBBU1NFUlQobmVlZHNTaGFkb3dTdWJ0cmVlKCkpOworICAgIH0KKwogICAgIHZpcnR1
YWwgfkNvbG9ySW5wdXRUeXBlKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5w
dXRUeXBlLmNwcAppbmRleCBiYjhjYTg3M2UzNGIzNjdlOTFiNDkyN2I3OGI3Y2UzOGVmNjQxMjkz
Li41MGZjM2M5NTBmNTNlY2EzMzU1YzlmYThiYzQ1YTczYTI3OWIyYTA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTEwOSw2ICsxMDksNyBAQCBGaWxlSW5wdXRUeXBl
OjpGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgOiBCYXNlQ2xp
Y2thYmxlV2l0aEtleUlucHV0VHlwZShUeXBlOjpGaWxlLCBlbGVtZW50KQogICAgICwgbV9maWxl
TGlzdChGaWxlTGlzdDo6Y3JlYXRlKCkpCiB7CisgICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJl
ZSgpKTsKIH0KIAogRmlsZUlucHV0VHlwZTo6fkZpbGVJbnB1dFR5cGUoKQpAQCAtMjc1LDYgKzI3
Niw3IEBAIHZvaWQgRmlsZUlucHV0VHlwZTo6c2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCwg
VGV4dEZpZWxkRXZlbnRCZWhhdmlvcikKIAogdm9pZCBGaWxlSW5wdXRUeXBlOjpjcmVhdGVTaGFk
b3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5v
ZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29sKQogeworICAgIEFTU0VSVChuZWVk
c1NoYWRvd1N1YnRyZWUoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKS0+c2hhZG93Um9vdCgpKTsKICAgICBlbGVtZW50KCktPnVzZXJBZ2VudFNoYWRvd1Jv
b3QoKS0+YXBwZW5kQ2hpbGQoc291cmNlLCBlbGVtZW50KCktPm11bHRpcGxlKCkgPyBVcGxvYWRC
dXR0b25FbGVtZW50OjpjcmVhdGVGb3JNdWx0aXBsZShlbGVtZW50KCktPmRvY3VtZW50KCkpOiBV
cGxvYWRCdXR0b25FbGVtZW50OjpjcmVhdGUoZWxlbWVudCgpLT5kb2N1bWVudCgpKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwZGYxOWRlYzAwMjdiM2M0
ZWZjZTFlOTVlZTRiNGJlMDhlM2FiYmQ2Li40M2NjNWRjNTg0MDhhNTczZjAwMjkyY2ZjZTk0Nzhh
YjEwMTg5MDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAg
LTIsMTAgKzIsMTAgQEAKICAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBr
ZGUub3JnKQogICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0Br
ZGUub3JnKQogICogICAgICAgICAgIChDKSAyMDAxIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUu
b3JnKQotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogICAgICAgICAgIChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFw
QG55cG9wLmNvbSkKICAqIENvcHlyaWdodCAoQykgMjAwNyBTYW11ZWwgV2VpbmlnIChzYW1Ad2Vi
a2l0Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwLTIwMjEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOCBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICogQ29weXJp
Z2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgpAQCAtODQsNyArODQsNyBAQCBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoSFRNTElucHV0
RWxlbWVudCk7CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiAjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCi1jbGFzcyBMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIgOiBJZFRhcmdl
dE9ic2VydmVyIHsKK2NsYXNzIExpc3RBdHRyaWJ1dGVUYXJnZXRPYnNlcnZlciBmaW5hbCA6IHB1
YmxpYyBJZFRhcmdldE9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBMaXN0QXR0cmlidXRlVGFyZ2V0T2JzZXJ2ZXIoY29uc3QgQXRvbVN0cmluZyYg
aWQsIEhUTUxJbnB1dEVsZW1lbnQqKTsKQEAgLTE0NCw4ICsxNDQsMTEgQEAgUmVmPEhUTUxJbnB1
dEVsZW1lbnQ+IEhUTUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2MKIHsKICAgICBib29sIHNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXppbHkgPSBj
cmVhdGVkQnlQYXJzZXI7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGlucHV0RWxlbWVudCA9
IGFkb3B0UmVmKCpuZXcgSFRNTElucHV0RWxlbWVudCh0YWdOYW1lLCBkb2N1bWVudCwgZm9ybSwg
Y3JlYXRlZEJ5UGFyc2VyKSk7Ci0gICAgaWYgKCFzaG91bGRDcmVhdGVTaGFkb3dSb290TGF6aWx5
KQotICAgICAgICBpbnB1dEVsZW1lbnQtPmVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAg
ICBpZiAoIXNob3VsZENyZWF0ZVNoYWRvd1Jvb3RMYXppbHkpIHsKKyAgICAgICAgQVNTRVJUKGlu
cHV0RWxlbWVudC0+bV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93U3VidHJlZSgpKTsKKyAgICAgICAg
aW5wdXRFbGVtZW50LT5jcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCk7CisgICAgICAgIGlucHV0
RWxlbWVudC0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0
YWJpbGl0eSgpOworICAgIH0KICAgICByZXR1cm4gaW5wdXRFbGVtZW50OwogfQogCkBAIC0xNTYs
NyArMTU5LDcgQEAgSFRNTEltYWdlTG9hZGVyJiBIVE1MSW5wdXRFbGVtZW50OjplbnN1cmVJbWFn
ZUxvYWRlcigpCiAgICAgcmV0dXJuICptX2ltYWdlTG9hZGVyOwogfQogCi12b2lkIEhUTUxJbnB1
dEVsZW1lbnQ6OmRpZEFkZFVzZXJBZ2VudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYpCit2b2lkIEhU
TUxJbnB1dEVsZW1lbnQ6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVt
ZW50RWRpdGFiaWxpdHkoKQogewogICAgIFJlZjxJbnB1dFR5cGU+IHByb3RlY3RlZElucHV0VHlw
ZSgqbV9pbnB1dFR5cGUpOwogICAgIHByb3RlY3RlZElucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3Vi
dHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblByb2dy
ZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6
QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRFZGl0YWJsZSgpKTsKQEAgLTU3NSw3ICs1NzgsMTAgQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50Ojp1cGRhdGVUeXBlKCkKICAgICBtX2lucHV0VHlwZS0+ZGV0
YWNoRnJvbUVsZW1lbnQoKTsKIAogICAgIG1faW5wdXRUeXBlID0gV1RGTW92ZShuZXdUeXBlKTsK
LSAgICBtX2lucHV0VHlwZS0+Y3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVs
ZW1lbnRFZGl0YWJpbGl0eShtX3BhcnNpbmdJblByb2dyZXNzID8gQ2hpbGRDaGFuZ2U6OlNvdXJj
ZTo6UGFyc2VyIDogQ2hpbGRDaGFuZ2U6OlNvdXJjZTo6QVBJLCBpc0lubmVyVGV4dEVsZW1lbnRF
ZGl0YWJsZSgpKTsKKyAgICBpZiAobV9pbnB1dFR5cGUtPm5lZWRzU2hhZG93U3VidHJlZSgpKSB7
CisgICAgICAgIGVuc3VyZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgY3JlYXRlU2hh
ZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJpbGl0eSgpOworICAgIH0K
IAogICAgIHVwZGF0ZVdpbGxWYWxpZGF0ZUFuZFZhbGlkaXR5KCk7CiAKQEAgLTcyOCwxNCArNzM0
LDE5IEBAIGlubGluZSB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmluaXRpYWxpemVJbnB1dFR5cGUo
KQogICAgIGNvbnN0IEF0b21TdHJpbmcmIHR5cGUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKHR5cGVBdHRyKTsKICAgICBpZiAodHlwZS5pc051bGwoKSkgewogICAgICAgICBtX2lu
cHV0VHlwZSA9IElucHV0VHlwZTo6Y3JlYXRlVGV4dCgqdGhpcyk7Ci0gICAgICAgIGVuc3VyZVVz
ZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAgICAgICAgQVNTRVJUKG1faW5wdXRUeXBlLT5uZWVkc1No
YWRvd1N1YnRyZWUoKSk7CisgICAgICAgIGNyZWF0ZVVzZXJBZ2VudFNoYWRvd1Jvb3QoKTsKKyAg
ICAgICAgY3JlYXRlU2hhZG93U3VidHJlZUFuZFVwZGF0ZUlubmVyVGV4dEVsZW1lbnRFZGl0YWJp
bGl0eSgpOwogICAgICAgICB1cGRhdGVXaWxsVmFsaWRhdGVBbmRWYWxpZGl0eSgpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgbV9oYXNUeXBlID0gdHJ1ZTsKICAgICBtX2lucHV0VHlw
ZSA9IElucHV0VHlwZTo6Y3JlYXRlKCp0aGlzLCB0eXBlKTsKLSAgICBlbnN1cmVVc2VyQWdlbnRT
aGFkb3dSb290KCk7CisgICAgaWYgKG1faW5wdXRUeXBlLT5uZWVkc1NoYWRvd1N1YnRyZWUoKSkg
eworICAgICAgICBjcmVhdGVVc2VyQWdlbnRTaGFkb3dSb290KCk7CisgICAgICAgIGNyZWF0ZVNo
YWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRFbGVtZW50RWRpdGFiaWxpdHkoKTsKKyAgICB9
CiAgICAgdXBkYXRlV2lsbFZhbGlkYXRlQW5kVmFsaWRpdHkoKTsKICAgICByZWdpc3RlckZvclN1
c3BlbnNpb25DYWxsYmFja0lmTmVlZGVkKCk7CiAgICAgcnVuUG9zdFR5cGVVcGRhdGVUYXNrcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRleCA1MWY5NzcwYTljMWJi
YWU5MWE0NTZmZGVkZmM5NTM3NWRmODQ4NGVkLi5mNDBlYjY1M2YzNTIzYTgyZmE4NjA4N2I0NWI1
YzA5ZDdiMmE4YWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAt
MTM2LDcgKzEzNiw3IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQgOiBwdWJsaWMgSFRNTFRleHRG
b3JtQ29udHJvbEVsZW1lbnQgewogICAgIEhUTUxFbGVtZW50KiBjb250YWluZXJFbGVtZW50KCkg
Y29uc3Q7CiAgICAgCiAgICAgUmVmUHRyPFRleHRDb250cm9sSW5uZXJUZXh0RWxlbWVudD4gaW5u
ZXJUZXh0RWxlbWVudCgpIGNvbnN0IGZpbmFsOwotICAgIFJlbmRlclN0eWxlIGNyZWF0ZUlubmVy
VGV4dFN0eWxlKGNvbnN0IFJlbmRlclN0eWxlJikgb3ZlcnJpZGU7CisgICAgUmVuZGVyU3R5bGUg
Y3JlYXRlSW5uZXJUZXh0U3R5bGUoY29uc3QgUmVuZGVyU3R5bGUmKSBmaW5hbDsKIAogICAgIEhU
TUxFbGVtZW50KiBpbm5lckJsb2NrRWxlbWVudCgpIGNvbnN0OwogICAgIEhUTUxFbGVtZW50KiBp
bm5lclNwaW5CdXR0b25FbGVtZW50KCkgY29uc3Q7CkBAIC0yNjksNyArMjY5LDcgQEAgY2xhc3Mg
SFRNTElucHV0RWxlbWVudCA6IHB1YmxpYyBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudCB7CiAg
ICAgdm9pZCBhZGRTZWFyY2hSZXN1bHQoKTsKICAgICB2b2lkIG9uU2VhcmNoKCk7CiAKLSAgICBi
b29sIHdpbGxSZXNwb25kVG9Nb3VzZUNsaWNrRXZlbnRzKCkgb3ZlcnJpZGU7CisgICAgYm9vbCB3
aWxsUmVzcG9uZFRvTW91c2VDbGlja0V2ZW50cygpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBVEFM
SVNUX0VMRU1FTlQpCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEhUTUxFbGVtZW50PiBsaXN0
KCkgY29uc3Q7CkBAIC0zNDgsMTMgKzM0OCwxMSBAQCBjbGFzcyBIVE1MSW5wdXRFbGVtZW50IDog
cHVibGljIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50IHsKIHByb3RlY3RlZDoKICAgICBIVE1M
SW5wdXRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCYsIEhUTUxGb3JtRWxl
bWVudCosIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAotICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCYpIGZpbmFsOwogCiBwcml2YXRlOgogICAgIGVudW0gQXV0b0NvbXBsZXRlU2V0dGluZyB7IFVu
aW5pdGlhbGl6ZWQsIE9uLCBPZmYgfTsKIAotICAgIHZvaWQgZGlkQWRkVXNlckFnZW50U2hhZG93
Um9vdChTaGFkb3dSb290JikgZmluYWw7Ci0KICAgICB2b2lkIHdpbGxDaGFuZ2VGb3JtKCkgZmlu
YWw7CiAgICAgdm9pZCBkaWRDaGFuZ2VGb3JtKCkgZmluYWw7CiAgICAgSW5zZXJ0ZWRJbnRvQW5j
ZXN0b3JSZXN1bHQgaW5zZXJ0ZWRJbnRvQW5jZXN0b3IoSW5zZXJ0aW9uVHlwZSwgQ29udGFpbmVy
Tm9kZSYpIGZpbmFsOwpAQCAtMzYyLDYgKzM2MCw4IEBAIGNsYXNzIEhUTUxJbnB1dEVsZW1lbnQg
OiBwdWJsaWMgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQgewogICAgIHZvaWQgcmVtb3ZlZEZy
b21BbmNlc3RvcihSZW1vdmFsVHlwZSwgQ29udGFpbmVyTm9kZSYpIGZpbmFsOwogICAgIHZvaWQg
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQmIG9sZERvY3VtZW50LCBEb2N1bWVudCYgbmV3
RG9jdW1lbnQpIGZpbmFsOwogCisgICAgdm9pZCBjcmVhdGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRl
SW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KCk7CisKICAgICBpbnQgZGVmYXVsdFRhYkluZGV4
KCkgY29uc3QgZmluYWw7CiAgICAgYm9vbCBoYXNDdXN0b21Gb2N1c0xvZ2ljKCkgY29uc3QgZmlu
YWw7CiAgICAgYm9vbCBpc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQqKSBjb25zdCBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGJiODJjZDgwODFjZTAwNWY3NGExYjRj
YzExMmMxOWNlY2QxNGIwNjEuLmFkNzBjYzhiNTAyMmQ1MTQzYmYwNGU5N2I5NzM3ZWQwNzdhOGE5
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMSw2ICsxLDYgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHly
aWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMC0yMDIxIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTE0NCw2ICsxNDQsMTYgQEAgY2xhc3MgSW5w
dXRUeXBlIDogcHVibGljIFJlZkNvdW50ZWQ8SW5wdXRUeXBlPiB7CiAgICAgICAgIFR5cGU6OlJl
c2V0LAogICAgIH07CiAKKyAgICBzdGF0aWMgY29uc3RleHByIE9wdGlvblNldDxUeXBlPiBub25T
aGFkb3dSb290VHlwZXMgPSB7CisgICAgICAgIFR5cGU6OkJ1dHRvbiwKKyAgICAgICAgVHlwZTo6
Q2hlY2tib3gsCisgICAgICAgIFR5cGU6OkhpZGRlbiwKKyAgICAgICAgVHlwZTo6SW1hZ2UsCisg
ICAgICAgIFR5cGU6OlJhZGlvLAorICAgICAgICBUeXBlOjpSZXNldCwKKyAgICAgICAgVHlwZTo6
U3VibWl0LAorICAgIH07CisKICAgICBzdGF0aWMgUmVmPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQmLCBjb25zdCBBdG9tU3RyaW5nJik7CiAgICAgc3RhdGljIFJlZjxJbnB1dFR5
cGU+IGNyZWF0ZVRleHQoSFRNTElucHV0RWxlbWVudCYpOwogICAgIHZpcnR1YWwgfklucHV0VHlw
ZSgpOwpAQCAtMTk1LDYgKzIwNSw3IEBAIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBSZWZDb3Vu
dGVkPElucHV0VHlwZT4gewogICAgIGJvb2wgaXNJbnRlcmFjdGl2ZUNvbnRlbnQoKSBjb25zdDsK
ICAgICBib29sIHN1cHBvcnRMYWJlbHMoKSBjb25zdDsKICAgICBib29sIGlzRW51bWVyYXRhYmxl
KCkgY29uc3Q7CisgICAgYm9vbCBuZWVkc1NoYWRvd1N1YnRyZWUoKSBjb25zdCB7IHJldHVybiAh
bm9uU2hhZG93Um9vdFR5cGVzLmNvbnRhaW5zKG1fdHlwZSk7IH0KIAogICAgIC8vIEZvcm0gdmFs
dWUgZnVuY3Rpb25zLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4
IDQ3NmUzMzY1NDgwOWQxYWZjYjc0ZDQ3ZjAyOGZiZDk5MGZmNGE1YTcuLjkzZDExZDY0ZWUwMmNk
ODgyZGRmYjFkODY0ODI0MTZiZDg4MmIyNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCkBAIC04Miw2ICs4Miw3IEBAIHN0YXRpYyBEZWNpbWFsIGVuc3VyZU1heGltdW0o
Y29uc3QgRGVjaW1hbCYgcHJvcG9zZWRWYWx1ZSwgY29uc3QgRGVjaW1hbCYgbWluaW11CiBSYW5n
ZUlucHV0VHlwZTo6UmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAg
ICA6IElucHV0VHlwZShUeXBlOjpSYW5nZSwgZWxlbWVudCkKIHsKKyAgICBBU1NFUlQobmVlZHNT
aGFkb3dTdWJ0cmVlKCkpOwogfQogCiBjb25zdCBBdG9tU3RyaW5nJiBSYW5nZUlucHV0VHlwZTo6
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKQEAgLTI0NCw2ICsyNDUsNyBAQCBhdXRvIFJhbmdlSW5w
dXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIC0+IFNob3Vs
ZENhbGxCYXNlRQogCiB2b2lkIFJhbmdlSW5wdXRUeXBlOjpjcmVhdGVTaGFkb3dTdWJ0cmVlQW5k
VXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRhaW5lck5vZGU6OkNoaWxkQ2hh
bmdlOjpTb3VyY2Ugc291cmNlLCBib29sKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRy
ZWUoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgQVNTRVJUKGVsZW1lbnQoKS0+dXNl
ckFnZW50U2hhZG93Um9vdCgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9T
ZWFyY2hJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUu
Y3BwCmluZGV4IDdlNTcyYzVhZWQ5OTdmZTgwMDI2MDA4MmM5YWY0MmVhMDg2YjNkYjQuLmI1NWEw
ZjU3OWFmMGQ2ZjU5M2RjYjI5ZWRmM2I5MWJhNzBjOGJhMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1NlYXJjaElucHV0VHlwZS5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgU2VhcmNoSW5wdXRUeXBlOjpT
ZWFyY2hJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCYgZWxlbWVudCkKICAgICA6IEJhc2VUZXh0
SW5wdXRUeXBlKFR5cGU6OlNlYXJjaCwgZWxlbWVudCkKICAgICAsIG1fc2VhcmNoRXZlbnRUaW1l
cigqdGhpcywgJlNlYXJjaElucHV0VHlwZTo6c2VhcmNoRXZlbnRUaW1lckZpcmVkKQogeworICAg
IEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiB9CiAKIHZvaWQgU2VhcmNoSW5wdXRUeXBl
OjphZGRTZWFyY2hSZXN1bHQoKQpAQCAtMTA0LDYgKzEwNSw3IEBAIGJvb2wgU2VhcmNoSW5wdXRU
eXBlOjpuZWVkc0NvbnRhaW5lcigpIGNvbnN0CiAKIHZvaWQgU2VhcmNoSW5wdXRUeXBlOjpjcmVh
dGVTaGFkb3dTdWJ0cmVlQW5kVXBkYXRlSW5uZXJUZXh0RWxlbWVudEVkaXRhYmlsaXR5KENvbnRh
aW5lck5vZGU6OkNoaWxkQ2hhbmdlOjpTb3VyY2Ugc291cmNlLCBib29sIGlzSW5uZXJUZXh0RWxl
bWVudEVkaXRhYmxlKQogeworICAgIEFTU0VSVChuZWVkc1NoYWRvd1N1YnRyZWUoKSk7CiAgICAg
QVNTRVJUKCFtX3Jlc3VsdHNCdXR0b24pOwogICAgIEFTU0VSVCghbV9jYW5jZWxCdXR0b24pOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggNzBkNWYw
YmNiZjk5MzU0NDRlMDMxNTMzZTNhNmQxNTI0Y2ExZDI3NS4uYjg1ZmZiMjZhMjU4OGQzYWYxY2I0
OWFiMjUzNzllM2U4ZGY0NWIxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5w
dXRUeXBlLmNwcApAQCAtNzUsNiArNzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwog
VGV4dEZpZWxkSW5wdXRUeXBlOjpUZXh0RmllbGRJbnB1dFR5cGUoVHlwZSB0eXBlLCBIVE1MSW5w
dXRFbGVtZW50JiBlbGVtZW50KQogICAgIDogSW5wdXRUeXBlKHR5cGUsIGVsZW1lbnQpCiB7Cisg
ICAgQVNTRVJUKG5lZWRzU2hhZG93U3VidHJlZSgpKTsKIH0KIAogVGV4dEZpZWxkSW5wdXRUeXBl
Ojp+VGV4dEZpZWxkSW5wdXRUeXBlKCkKQEAgLTMxNiw2ICszMTcsNyBAQCBib29sIFRleHRGaWVs
ZElucHV0VHlwZTo6c2hvdWxkSGF2ZUNhcHNMb2NrSW5kaWNhdG9yKCkgY29uc3QKIAogdm9pZCBU
ZXh0RmllbGRJbnB1dFR5cGU6OmNyZWF0ZVNoYWRvd1N1YnRyZWVBbmRVcGRhdGVJbm5lclRleHRF
bGVtZW50RWRpdGFiaWxpdHkoQ29udGFpbmVyTm9kZTo6Q2hpbGRDaGFuZ2U6OlNvdXJjZSBzb3Vy
Y2UsIGJvb2wgaXNJbm5lclRleHRFbGVtZW50RWRpdGFibGUpCiB7CisgICAgQVNTRVJUKG5lZWRz
U2hhZG93U3VidHJlZSgpKTsKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBBU1NFUlQoZWxl
bWVudCgpLT5zaGFkb3dSb290KCkpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNWU2MzcyMjUyN2Y4YjE2MDYzMTEwNDA5
NWZmOWU4NTQ0Mjc1MGI5YS4uMjZmN2FhMTU2YzIzYzE0ZmNhYzQ4YzliNTlkZTg1N2ZiZGI2YjU2
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTA2LTIwICBZdXN1a2UgU3V6dWtpICA8eXN1
enVraUBhcHBsZS5jb20+CisKKyAgICAgICAgU2tpcCBzaGFkb3ctcm9vdCBjcmVhdGlvbiBmb3Ig
aW5wdXQgZWxlbWVudCBpZiBpdCBpcyBub3QgbmVjZXNzYXJ5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcxODkKKworICAgICAgICBSZXZpZXdlZCBi
eSBNYWNpZWogU3RhY2hvd2lhay4KKworICAgICAgICAqIGZhc3QvZm9ybXMvY2hlY2tib3gtYW5k
LXBzZXVkby1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvY2hlY2ti
b3gtYW5kLXBzZXVkby5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2NoZWNrYm94
LWNoaWxkLWhpZGRlbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1z
L2NoZWNrYm94LWNoaWxkLWhpZGRlbi5odG1sOiBBZGRlZC4KKwogMjAyMS0wNi0xOSAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IENTUyBzZXJpYWxpemF0aW9u
IGlzc3VlcyBhZmZlY3RpbmcgY3NzLWNvdW50ZXItc3R5bGVzIHRlc3RzCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94LWFuZC1wc2V1ZG8tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja2JveC1hbmQtcHNldWRvLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wN2ExNzdhOGIwNzVhYWZlNjNhOWYzMjE3ZWQ3Mjc3YTIxZjI3YjZhCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja2JveC1hbmQtcHNldWRv
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNp
emUgODAweDM1CisgIFJlbmRlckJsb2NrIHtIVE1MfSBhdCAoMCwwKSBzaXplIDgwMHgzNQorICAg
IFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDE5CisgICAgICBSZW5kZXJJbmxp
bmUge0xBQkVMfSBhdCAoMCwwKSBzaXplIDE2eDE4CisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgICBSZW5kZXJCbG9jayB7SU5QVVR9IGF0ICgyLDQp
IHNpemUgMTJ4MTIKKyAgICAgICAgICBSZW5kZXJCbG9jayAoZ2VuZXJhdGVkKSBhdCAoMCwwKSBz
aXplIDEyeDEzCisgICAgICAgICAgICBSZW5kZXJUZXh0IGF0ICgwLDApIHNpemUgNDF4MTMKKyAg
ICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDE6ICJWSVNJQkxFIgorICAgICAg
ICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94
LWFuZC1wc2V1ZG8uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtYW5kLXBz
ZXVkby5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg4Njc1MDMxM2MyNzYxZmM3OTQ4ZDFiNWZjMWFkMzQ2MTQ0
Y2IwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2NoZWNrYm94
LWFuZC1wc2V1ZG8uaHRtbApAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHls
ZT4KK2lucHV0OmJlZm9yZSB7CisgIGRpc3BsYXk6IGJsb2NrOworICBjb250ZW50OiAiVklTSUJM
RSI7Cit9Cis8L3N0eWxlPgorCis8bGFiZWw+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJj
YiI+Cis8L2xhYmVsPgorPHNjcmlwdD4KKyAgdmFyIGNoZWNrYm94ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImNiIik7CisgIGNoZWNrYm94LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKCJDaGVja2JveCIpKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9jaGVja2JveC1jaGlsZC1oaWRkZW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlkZGVuLWV4cGVjdGVkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOTZjMzdlODdjZjliMTRmYmM3OTllODMwMmQxODkzNGUyNTg5YzVjNQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlkZGVuLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw3IEBACis8IWRvY3R5cGUgaHRtbD4KKzwhLS0gQ29weXJp
Z2h0IChDKSAyMDIxIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIC0tPgorPCEtLSBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzxs
YWJlbD4KKzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNiIj4KK0NoZWNrYm94Cis8L2xhYmVs
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9jaGVja2JveC1jaGlsZC1oaWRk
ZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQtaGlkZGVuLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjJiZWQyMjFkYjA1NWVhY2M3Y2QwMjJhNzUzY2I4NTg1OGU3ZjkzMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvY2hlY2tib3gtY2hpbGQt
aGlkZGVuLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8IS0tIENvcHly
aWdodCAoQykgMjAyMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAtLT4KKzwhLS0g
Q29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gLS0+Cis8
bGFiZWw+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYiI+CitDaGVja2JveAorPC9sYWJl
bD4KKzxzY3JpcHQ+CisgIHZhciBjaGVja2JveCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
YiIpOworICBjaGVja2JveC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiQ2hl
Y2tib3giKSk7Cis8L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="453690"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>