<?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>201782</bug_id>
          
          <creation_ts>2019-09-13 16:32:01 -0700</creation_ts>
          <short_desc>Replace SVGProperty/SVGPropertyOwner by DOMLiveProperty/DOMLivePropertyObserver</short_desc>
          <delta_ts>2022-02-10 16:49:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>202479</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>pdr</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1570744</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-13 16:32:01 -0700</bug_when>
    <thetext>This will move some of the functionalities in SVGProperty to DOMLiveObject. It also replaces SVGPropertyOwner by a new class named DOMLiveObjectObserver.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570762</commentid>
    <comment_count>1</comment_count>
      <attachid>378763</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-13 17:05:12 -0700</bug_when>
    <thetext>Created attachment 378763
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570768</commentid>
    <comment_count>2</comment_count>
      <attachid>378765</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-13 17:17:46 -0700</bug_when>
    <thetext>Created attachment 378765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571628</commentid>
    <comment_count>3</comment_count>
      <attachid>378765</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2019-09-17 12:34:32 -0700</bug_when>
    <thetext>Comment on attachment 378765
Patch

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

This is an excellent patch. I wanted to point you towards the discussion of re-introducing SVGRect, SVGPoint etc. in SVG2, until I realized that you (shallawa) were involved in the discussion on https://github.com/w3c/svgwg/issues/706.

After reading the whole patch, the DOMLiveObjectObserver &lt;-&gt; DOMLiveObject relation is clear to me, and also why you are using a naked pointer to store the observer.

&gt; Source/WebCore/dom/DOMLiveObject.h:76
&gt; +    DOMLiveObjectObserver* m_observer { nullptr };

You used a naked pointer on purpose, I guess?

&gt; Source/WebCore/dom/DOMLiveObjectObserver.h:40
&gt; +    // Traverse the observers chain tillan Element observer is reached.

typo: tillan -&gt; until an

&gt; Source/WebCore/dom/Element.h:286
&gt; +    const Element* contextElement() const override { return this; }

This is too generic for my taste, and it is not clear for what the context is used.
How about naming this &quot;domLiveObjectContextElement&quot; / &quot;contextElementForDOMLiveObject&quot; ?

&gt; Source/WebCore/svg/properties/SVGAnimatedProperty.cpp:33
&gt; +DOMLiveObjectObserver* SVGAnimatedProperty::observer() const

Any special reason why observer() / contextElement() / commitChange is not inlined?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572150</commentid>
    <comment_count>4</comment_count>
      <attachid>378765</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-09-18 16:39:24 -0700</bug_when>
    <thetext>Comment on attachment 378765
Patch

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

&gt;&gt; Source/WebCore/dom/DOMLiveObject.h:76
&gt;&gt; +    DOMLiveObjectObserver* m_observer { nullptr };
&gt; 
&gt; You used a naked pointer on purpose, I guess?

No really. But because the connection between object and the observer is controlled by the observer, I thought it is okay to use a raw pointer. This pointer is not going to be nullified unless the observer does it. And I made sure all the observers do it at the right time.

But I think you are right. This should be changed to be WeakPtr since it will be safer even if the code changes such that detach() is not called and the observer got deleted. I will make that change.

&gt;&gt; Source/WebCore/dom/DOMLiveObjectObserver.h:40
&gt;&gt; +    // Traverse the observers chain tillan Element observer is reached.
&gt; 
&gt; typo: tillan -&gt; until an

Will Fix.

&gt;&gt; Source/WebCore/dom/Element.h:286
&gt;&gt; +    const Element* contextElement() const override { return this; }
&gt; 
&gt; This is too generic for my taste, and it is not clear for what the context is used.
&gt; How about naming this &quot;domLiveObjectContextElement&quot; / &quot;contextElementForDOMLiveObject&quot; ?

Will change.

&gt;&gt; Source/WebCore/svg/properties/SVGAnimatedProperty.cpp:33
&gt;&gt; +DOMLiveObjectObserver* SVGAnimatedProperty::observer() const
&gt; 
&gt; Any special reason why observer() / contextElement() / commitChange is not inlined?

The casting.

In the header file, SVGElement is just forward declared. If I make these functions inline, the compiler will complain that it does not know how to cast SVGElement* to DOMLiveObjectObserver*. The complier does not know in this context that SVGElement is DOMLiveObjectObserver. Adding SVGElement.h to SVGAnimatedProperty.h is not an option because SVGElement.h has to include SVGAnimatedProperty.h.

I will add a comment here about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575864</commentid>
    <comment_count>5</comment_count>
      <attachid>379990</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-01 20:32:54 -0700</bug_when>
    <thetext>Created attachment 379990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575886</commentid>
    <comment_count>6</comment_count>
      <attachid>379995</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-01 22:03:57 -0700</bug_when>
    <thetext>Created attachment 379995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1575976</commentid>
    <comment_count>7</comment_count>
      <attachid>380019</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-10-02 07:39:27 -0700</bug_when>
    <thetext>Created attachment 380019
Patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1576209</commentid>
    <comment_count>8</comment_count>
      <attachid>380019</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-10-02 15:18:43 -0700</bug_when>
    <thetext>Comment on attachment 380019
Patch for review

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

&gt; Source/WebCore/dom/DOMLiveProperty.h:74
&gt; +    virtual String valueAsString() const { return emptyString(); }

Given this is virtual, can this be moved out-of-line? Then you could avoid including WTFString.h

&gt; Source/WebCore/dom/DOMLivePropertyObserver.h:38
&gt; +    // The observer itself may have an observer.
&gt; +    virtual DOMLivePropertyObserver* observer() const { return nullptr; }

When does it make sense not to override observer()?

&gt; Source/WebCore/dom/DOMLivePropertyObserver.h:54
&gt; +    virtual void commitPropertyChange(DOMLiveProperty* property)

Is property ever null? Can it be made into a reference?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1662743</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2020-06-15 11:49:18 -0700</bug_when>
    <thetext>Replacing SVGRect/SVGPoint/SVGMatrix by DOM equivalents was reverted in the specs: https://github.com/w3c/svgwg/issues/706. So this bug is now invalid and the attached patch should not be considered.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378763</attachid>
            <date>2019-09-13 17:05:12 -0700</date>
            <delta_ts>2019-09-13 17:17:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201782-20190913170511.patch</filename>
            <type>text/plain</type>
            <size>50754</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTg1OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNSBAQAorMjAxOS0wOS0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBET01MaXZlT2JqZWN0IGFuZCBtYWtlIFNWR1Byb3BlcnR5IGEgc3VwZXJjbGFzcyBvZiBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBh
IHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZHUG9pbnQgYnkgRE9NUG9pbnQuIFdlIG5lZWQgdG8g
bWFrZQorICAgICAgICBET01Qb2ludCBiZSBhIGxpdmUgb2JqZWN0IGxpa2UgU1ZHUHJvcGVydHku
CisKKyAgICAgICAgLS0gQSBuZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVPYmplY3QsIGlzIGFkZGVk
LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlCisgICAgICAgICAgIHRoZSBjaGFuZ2VzIGluIHRo
aXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gU1ZHUHJvcGVydHkgaXMgbWFkZSBhIHN1cGVyCisg
ICAgICAgICAgIGNsYXNzIG9mIERPTUxpdmVPYmplY3QuIERPTVBvaW50IHdpbGwgYmUgbWFkZSBp
biBhIHN1cGVyIG9mIGl0IGFsc28gCisgICAgICAgICAgIGluIGEgZm9sbG93aW5nIHBhdGNoLgor
CisgICAgICAgIC0tIEFub3RoZXIgbmV3IGNsYXNzLCBuYW1lZCBET01MaXZlT2JqZWN0T2JzZXJ2
ZXIgYW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAgICAgICAgY2xhc3Mgb2YgRE9NTGl2ZU9iamVj
dCBvYnNlcnZlcnMuIEN1cnJlbnRseSB0aGUgZm9sbG93aW5nIGNsYXNzIGFyZQorICAgICAgICAg
ICBtYWRlIHN1cGVyIGNsYXNzZXMgb2YgRE9NTGl2ZU9iamVjdE9ic2VydmVyOgorICAgICAgICAg
ICAxLiBFbGVtZW50OiBUaGlzIG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHBy
b3BlcnRpZXMuCisgICAgICAgICAgIDIuIFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2
ZXMgdGhlIGNoYW5nZXMgaW4gaXRzIGJhc2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5
TGlzdDogVGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAg
IDQuIFNWR1RyYW5zZm9ybTogVGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJs
eWluZyBTVkdNYXRyaXguCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUxpdmVPYmpl
Y3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01MaXZlT2JqZWN0OjpvYnNlcnZlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlT2JqZWN0Ojppc0F0dGFjaGVkIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVPYmplY3Q6OmF0dGFjaCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01MaXZlT2JqZWN0OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2
ZU9iamVjdDo6Y29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2
ZU9iamVjdDo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVPYmplY3Q6
OmlzU1ZHUHJvcGVydHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZU9iamVjdDo6
RE9NTGl2ZU9iamVjdCk6CisgICAgICAgICogZG9tL0RPTUxpdmVPYmplY3RPYnNlcnZlci5oOiBB
ZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVPYmplY3RPYnNlcnZlcjo6b2JzZXJ2ZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZU9iamVjdE9ic2VydmVyOjpjb250ZXh0
RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlT2JqZWN0T2JzZXJ2ZXI6
OmNvbW1pdENoYW5nZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcv
U1ZHQW5nbGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAg
ICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNv
bW1pdENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0
eUNoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHTGVuZ3RoLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnZhbHVlRm9yQmluZGluZ3MpOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpzZXRWYWx1ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6Y29udmVydFRvU3BlY2lmaWVkVW5pdHMpOgorICAgICAgICAqIHN2
Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6Cisg
ICAgICAgICogc3ZnL1NWR01hdHJpeC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4Ojpj
cmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R051bWJlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyTGlzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0
aFNlZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNy
ZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Jl
Y3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBz
dmcvU1ZHVHJhbnNmb3JtLmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5OjpzZXRCYXNlVmFs
KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5OjpzZXRC
YXNlVmFsKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbnRleHRFbGVtZW50
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdENo
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lciBjb25z
dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21t
aXRQcm9wZXJ0eUNoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0
eTo6Y29udGV4dEVsZW1lbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHkuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzdmdD
b250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjphdHRhY2gpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHk6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eTo6U1ZHUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmlzU1ZH
UHJvcGVydHkgY29uc3QpOgorICAgICAgICAoaXNUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R1Byb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Byb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5TGlzdDo6U1ZHUHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eU93bmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6U1ZH
VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0
eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0OjpTVkdWYWx1
ZVByb3BlcnR5TGlzdCk6CisKIDIwMTktMDktMTEgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9yIEFSIFF1aWNrTG9vayB0byB0
cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBhZ2UKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMjQ1Nyw2ICsyNDU3LDcgQEAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RmlsdGVyQnVpbGRlci5jcAogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAK
IHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuY3Bw
CiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAKK3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5LmNwcAogCiB3b3JrZXJzL0Fic3RyYWN0V29ya2VyLmNwcAogd29ya2Vycy9E
ZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI0OTg1MCkKKysr
IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtMjA4NCw3ICsyMDg0LDggQEAKIAkJNzIxNDQzMzEyMjNFQzg1NDAwRjEyRkY3
IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjE0NDMzMjIyM0VDODVGMDBG
MTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMTQ0MzMzMjIzRUM4
QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNzIx
NDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0
NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJNzIxNTlENEMyMzJDMTBFNTAwMDc2OTMwIC8qIERPTUxpdmVPYmpl
Y3RPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNzIxNTlENEEyMzJCMUE5MDAwMDc2OTMwIC8qIERPTUxpdmVPYmplY3RPYnNlcnZlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyMTU5RDRE
MjMyQzE1MDAwMDA3NjkzMCAvKiBET01MaXZlT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjE1OUQ0ODIzMkIxQTVGMDAwNzY5MzAgLyogRE9N
TGl2ZU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0Yy
MzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVG
MTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWlu
TWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0
RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NTUyLDcgKzg1NTMsNiBAQAogCQk1NUVF
NTM1RDIyM0IyQTBEMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3Nvcklt
cGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0
eVBhaXJBY2Nlc3NvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUz
NUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRpb25BZGRpdGl2ZVZh
bHVlRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUYyMjNC
MkEwRjAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQW5pbWF0b3IuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRv
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVFNTM2MDIyM0IyQTIxMDBGQkE5
NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdQcm9wZXJ0eU93bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1
MzYxMjIzQjJBMjIwMEZCQTk0NCAvKiBTVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBdHRyaWJ1dGVBbmltYXRvci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzYyMjIzQjJBMjMwMEZCQTk0NCAvKiBT
VkdBbmltYXRlZFByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGVkUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUz
NjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC05NDEzLDYgKzk0MTMsOSBAQAogCQk3MUZGODUxODIyQTNGODFGMDA1RDU5NTkgLyogTmF2aWdh
dG9yTWF4VG91Y2hQb2ludHMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvck1h
eFRvdWNoUG9pbnRzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIxNDQzNDUy
MjQwQzhCQTAwRjEyRkY3IC8qIFNWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzIxNDQzNDYyMjQwQ0FEMjAwRjEyRkY3IC8qIFNWR1ZhbHVlUHJvcGVydHkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk3MjE1OUQ0ODIzMkIxQTVGMDAwNzY5MzAgLyogRE9NTGl2ZU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01MaXZlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcy
MTU5RDRBMjMyQjFBOTAwMDA3NjkzMCAvKiBET01MaXZlT2JqZWN0T2JzZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRE9NTGl2ZU9iamVjdE9ic2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTcyMTU5RDRCMjMyQzBFRDUwMDA3NjkzMCAvKiBTVkdQcm9wZXJ0eS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTVkdQcm9wZXJ0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyNEVEMzI5MUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFWFRCbGVuZE1pbk1heC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVEMzJBMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRC
bGVuZE1pbk1heC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFWFRCbGVuZE1p
bk1heC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjRFRDMyQjFBM0E3RTU0MDBG
NUYxM0MgLyogRVhUQmxlbmRNaW5NYXguaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVEJs
ZW5kTWluTWF4LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2MTIxLDEzICsx
NjEyNCwxMyBAQAogCQkJCTU1RENDNTI1MjI0MDc0OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVM
aXN0LmggKi8sCiAJCQkJNzI2NkYwMTUyMjQxQzA5ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVBy
b3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZH
UHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLywKKwkJCQk3MjE1OUQ0QjIzMkMwRUQ1
MDAwNzY5MzAgLyogU1ZHUHJvcGVydHkuY3BwICovLAogCQkJCTU1RUU1MzYzMjIzQjJBMjQwMEZC
QTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovLAogCQkJCTU1RENDNTI2MjI0MDc0RkEwMEMyNkUzMiAv
KiBTVkdQcm9wZXJ0eUFjY2Vzc29yLmggKi8sCiAJCQkJNTVEQ0M1MjcyMjQwNzUwQjAwQzI2RTMy
IC8qIFNWR1Byb3BlcnR5QWNjZXNzb3JJbXBsLmggKi8sCiAJCQkJNzI2NkYwMTYyMjQxQzBGRTAw
ODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxMzIyNDFCQ0Uy
MDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaCAqLywKIAkJCQk3MjY2RjAy
NzIyNDMxMDkyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlMaXN0LmggKi8sCi0JCQkJNTVFRTUzNjAy
MjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLywKIAkJCQk1NUJFMDI1QzIy
M0IyOUMzMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggKi8sCiAJCQkJNTVC
RTAyNTcyMjNCMjlDMDAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5UmVnaXN0cnkuaCAqLywKIAkJCQkw
ODhBMEUwMzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCAqLywKQEAgLTI3
NDkxLDYgKzI3NDk0LDggQEAKIAkJCQlBODE4NUYzNjA5NzY1NzY1MDA1ODI2RDkgLyogRE9NSW1w
bGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4MTg1RjMzMDk3NjU3NjUwMDU4MjZEOSAvKiBET01J
bXBsZW1lbnRhdGlvbi5oICovLAogCQkJCTkzRUVDMUU5MDlDMjg3NzcwMEM1MTVEMSAvKiBET01J
bXBsZW1lbnRhdGlvbi5pZGwgKi8sCisJCQkJNzIxNTlENDgyMzJCMUE1RjAwMDc2OTMwIC8qIERP
TUxpdmVPYmplY3QuaCAqLywKKwkJCQk3MjE1OUQ0QTIzMkIxQTkwMDAwNzY5MzAgLyogRE9NTGl2
ZU9iamVjdE9ic2VydmVyLmggKi8sCiAJCQkJRjRCNDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERP
TVBhc3RlQWNjZXNzLmggKi8sCiAJCQkJMEY0OTY2OTkxREI0MDhDMTAwQTI3NEJCIC8qIERPTVBv
aW50LmggKi8sCiAJCQkJMEY0OTY2OUExREI0MDhDMTAwQTI3NEJCIC8qIERPTVBvaW50LmlkbCAq
LywKQEAgLTI5MDgxLDYgKzI5MDg2LDggQEAKIAkJCQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDgg
LyogRE9NSklUSURMQ29udmVydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQy
ODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2
MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExUeXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywK
KwkJCQk3MjE1OUQ0RDIzMkMxNTAwMDAwNzY5MzAgLyogRE9NTGl2ZU9iamVjdC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNzIxNTlENEMyMzJDMTBFNTAwMDc2OTMwIC8qIERPTUxpdmVPYmplY3RPYnNl
cnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QUNFQ0ExRUNBOTU2OTAwNEJEMDEyIC8qIERP
TU1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NCQkJDQzcxRjU2MDU4MTAwNUVGQUFDIC8q
IERPTU1hdHJpeDJESW5pdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2QUNFQ0IxRUNBOTU2RDAw
NEJEMDEyIC8qIERPTU1hdHJpeEluaXQuaCBpbiBIZWFkZXJzICovLApAQCAtMzE4OTgsNyArMzE5
MDUsNiBAQAogCQkJCUIyMjI3QTk3MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyog
U1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzIxNDQzMzMyMjNFQzhCMDAw
RjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLywKLQkJCQk3MjE0NDMzNDIyM0VD
OTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4
QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1Byb3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVERTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZH
UmVjdC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZU9i
amVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlT2JqZWN0LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDgwIEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkRPTUxpdmVPYmplY3RPYnNlcnZlci5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVPYmplY3QgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkRPTUxpdmVPYmplY3QoKSA9IGRlZmF1bHQ7CisKKyAgICAvLyBNYW5hZ2luZyB0aGUgcmVs
YXRpb25zaGlwIHdpdGggdGhlIG9ic2VydmVyLgorICAgIERPTUxpdmVPYmplY3RPYnNlcnZlciog
b2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyOyB9CisgICAgYm9vbCBpc0F0dGFj
aGVkKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQorCisgICAgdm9pZCBhdHRhY2goRE9N
TGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlcikKKyAgICB7CisgICAgICAgIEFTU0VSVCghbV9v
YnNlcnZlcik7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlcjsKKyAgICB9CisKKyAgICB2
b2lkIGRldGFjaCgpCisgICAgeworICAgICAgICBtX29ic2VydmVyID0gbnVsbHB0cjsKKyAgICB9
CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVudCBv
YnNlcnZlciBpcyByZWFjaGVkLgorICAgIGNvbnN0IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAgICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gbV9vYnNlcnZlci0+Y29udGV4dEVsZW1lbnQoKTsK
KyAgICB9CisKKyAgICAvLyBDb21taXQgdGhlIGxpdmUgb2JqZWN0IGNoYW5nZXMgdmlhIHRoZSBv
YnNlcnZlcnMgY2hhaW4uCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAg
aWYgKCFtX29ic2VydmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX29ic2VydmVy
LT5jb21taXRDaGFuZ2UodGhpcyk7CisgICAgfQorCisgICAgLy8gRGVyaXZlZCBjbGFzc2VzIGNh
c3RpbmcuCisgICAgdmlydHVhbCBib29sIGlzU1ZHUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZU9iamVjdChET01MaXZlT2JqZWN0T2Jz
ZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBtX29ic2VydmVyKG9ic2VydmVy
KQorICAgIHsKKyAgICB9CisKKyAgICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG1fb2JzZXJ2ZXIg
eyBudWxscHRyIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2RvbS9ET01MaXZlT2JqZWN0T2JzZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRE9NTGl2ZU9iamVjdE9ic2VydmVyLmgJKG5vbmV4aXN0ZW50KQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVPYmplY3RPYnNlcnZlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBt
ZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVPYmplY3Q7CitjbGFzcyBFbGVt
ZW50OworCitjbGFzcyBET01MaXZlT2JqZWN0T2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkRPTUxpdmVPYmplY3RPYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAgIC8vIFRoZSBvYnNl
cnZlciBpdHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2ZXIuCisgICAgdmlydHVhbCBET01MaXZlT2Jq
ZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorCisgICAg
Ly8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFpbiB0aWxsYW4gRWxlbWVudCBvYnNlcnZlciBp
cyByZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3QgRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBj
b25zdAorICAgIHsKKyAgICAgICAgaWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpLT5jb250ZXh0RWxlbWVudCgpOwor
ICAgIH0KKworICAgIC8vIENvbW1pdCB0aGUgbGl2ZSBvYmplY3QgY2hhbmdlcyB2aWEgdGhlIG9i
c2VydmVycyBjaGFpbi4KKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q2hhbmdlKERPTUxpdmVPYmpl
Y3QqIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlmICghb2JzZXJ2ZXIoKSkKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0Q2hhbmdlKG9iamVjdCk7CisgICAg
fQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZU9iamVjdE9ic2VydmVyKCkgPSBkZWZhdWx0Owor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZp
c2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50LmgiCisjaW5jbHVkZSAiRE9NTGl2ZU9iamVjdE9ic2VydmVyLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJFbGVtZW50RGF0YS5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtNzMsNyArNzQsNyBAQCBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVT
dGF0ZSB7CiAgICAgU3BlbGxjaGVja0F0dHJpYnV0ZURlZmF1bHQKIH07CiAKLWNsYXNzIEVsZW1l
bnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7CitjbGFzcyBFbGVtZW50IDogcHVibGljIENvbnRh
aW5lck5vZGUsIHB1YmxpYyBET01MaXZlT2JqZWN0T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0lT
T19BTExPQ0FURUQoRWxlbWVudCk7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxFbGVtZW50PiBj
cmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkBAIC0yODIsNiArMjgzLDgg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVz
RnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYpIHsgfQogCisgICAgY29uc3QgRWxlbWVudCogY29u
dGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CisKICAgICB2aXJ0
dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBjcmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVy
U3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0aW9uJik7CiAgICAgdmlydHVhbCBib29sIHJl
bmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
Z2xlLmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR0FuZ2xlPiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNj
ZXNzIGFjY2VzcywgY29uc3QgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGlj
IFJlZjxTVkdBbmdsZT4gY3JlYXRlKERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUgPSB7IH0p
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShvd25lciwgYWNj
ZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZShvYnNl
cnZlciwgYWNjZXNzLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiAyNDk4NTApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU2Miwx
OCArNTYyLDIxIEBAIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFMKICAg
ICBzdmdFbGVtZW50LnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpOwogfQogCi12b2lkIFNWR0Vs
ZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkKK3ZvaWQg
U1ZHRWxlbWVudDo6Y29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3QqIG9iamVjdCkKIHsKKyAgICBB
U1NFUlQoaXM8U1ZHUHJvcGVydHk+KCpvYmplY3QpKTsKKyAgICBTVkdQcm9wZXJ0eSYgcHJvcGVy
dHkgPSBkb3duY2FzdDxTVkdQcm9wZXJ0eT4oKm9iamVjdCk7CisKICAgICAvLyBXZSB3YW50IHRv
IGRpcnR5IHRoZSB0b3AtbGV2ZWwgcHJvcGVydHkgd2hlbiBhIGRlc2NlbmRhbnQgY2hhbmdlcy4g
Rm9yIGV4YW1wbGUKICAgICAvLyBhIGNoYW5nZSBpbiBhbiBTVkdMZW5ndGggaXRlbSBpbiBTVkdM
ZW5ndGhMaXN0IHNob3VsZCBzZXQgdGhlIGRpcnR5IGZsYWcgb24KICAgICAvLyBTVkdMZW5ndGhM
aXN0IGFuZCBub3QgdGhlIFNWR0xlbmd0aC4KLSAgICBwcm9wZXJ0eS0+c2V0RGlydHkoKTsKKyAg
ICBwcm9wZXJ0eS5zZXREaXJ0eSgpOwogCiAgICAgaW52YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKTsK
LSAgICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKHByb3BlcnR5UmVnaXN0cnkoKS5wcm9wZXJ0eUF0dHJp
YnV0ZU5hbWUoKnByb3BlcnR5KSk7CisgICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChwcm9wZXJ0eVJl
Z2lzdHJ5KCkucHJvcGVydHlBdHRyaWJ1dGVOYW1lKHByb3BlcnR5KSk7CiB9CiAKLXZvaWQgU1ZH
RWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0
ZWRQcm9wZXJ0eSkKK3ZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0Q2hhbmdlKFNWR0FuaW1hdGVkUHJv
cGVydHkmIGFuaW1hdGVkUHJvcGVydHkpCiB7CiAgICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVO
YW1lID0gcHJvcGVydHlSZWdpc3RyeSgpLmFuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGVOYW1lKGFu
aW1hdGVkUHJvcGVydHkpOwogICAgIEFTU0VSVChhdHRyaWJ1dGVOYW1lICE9IG51bGxRTmFtZSgp
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcs
NyBAQCBjbGFzcyBTVkdVc2VFbGVtZW50OwogCiB2b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVy
dHkoSGFzaE1hcDxBdG9tU3RyaW5nSW1wbCosIENTU1Byb3BlcnR5SUQ+KiBwcm9wZXJ0eU5hbWVU
b0lkTWFwLCBjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSk7CiAKLWNsYXNzIFNWR0VsZW1l
bnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGljIFNW
R1Byb3BlcnR5T3duZXIgeworY2xhc3MgU1ZHRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50
LCBwdWJsaWMgU1ZHTGFuZ1NwYWNlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNWR0Vs
ZW1lbnQpOwogcHVibGljOgogICAgIGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkgY29u
c3Q7CkBAIC0xMzYsMTAgKzEzNiw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHN5bmNocm9uaXplQWxs
QXR0cmlidXRlcygpOwogICAgIHN0YXRpYyB2b2lkIHN5bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdB
dHRyaWJ1dGUoU1ZHRWxlbWVudCYpOwogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShT
VkdQcm9wZXJ0eSopIG92ZXJyaWRlOwotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZH
QW5pbWF0ZWRQcm9wZXJ0eSYpOworICAgIHZvaWQgY29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3Qq
KSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdENoYW5nZShTVkdBbmltYXRlZFByb3BlcnR5Jik7
CiAKLSAgICBjb25zdCBTVkdFbGVtZW50KiBhdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHRoaXM7IH0KICAgICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9y
eSYgcHJvcGVydHlBbmltYXRvckZhY3RvcnkoKSB7IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9y
RmFjdG9yeTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3Jl
YXRlQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2Rl
LCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSk7CiAgICAgdm9pZCBhbmltYXRv
cldpbGxCZURlbGV0ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYpOwpJbmRleDogU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xlbmd0aC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
ZW5ndGguaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0
aC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGlj
IFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVy
dHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAg
c3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2Vy
dmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1
ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChv
d25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdM
ZW5ndGgob2JzZXJ2ZXIsIGFjY2VzcywgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjxm
bG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1ZS52
YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOwor
ICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQg
eyBzdmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+
IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1Ymxp
YzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0
ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9
LCB2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5n
dGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChy
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBT
VkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAg
ICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlw
ZT4odW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0
YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDkgKzQwLDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KGxlbmd0
aE1vZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShT
VkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5n
dGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUo
RE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
LCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG93bmVyLCBhY2Nlc3MsIGxlbmd0aE1vZGUpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChvYnNlcnZlciwgYWNjZXNzLCBs
ZW5ndGhNb2RlKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVh
dGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykK
QEAgLTk4LDggKzk4LDggQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3Ro
TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBT
VkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCi0gICAgICAgIDogQmFzZShvd25lciwgYWNjZXNzKQor
ICAgIFNWR0xlbmd0aExpc3QoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJv
cGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgICAgIDog
QmFzZShvYnNlcnZlciwgYWNjZXNzKQogICAgICAgICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2Rl
KQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCShyZXZpc2lvbiAyNDk4
NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAg
LTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdN
YXRyaXgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRl
KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+
IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgob3duZXIsIGFjY2VzcywgdmFsdWUp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KG9ic2VydmVyLCBhY2Nl
c3MsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyLmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCBwdWJsaWM6CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcih2YWx1ZSkpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIs
IFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgZmxvYXQgdmFsdWUgPSAwKQorICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyPiBjcmVhdGUoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlciwgU1ZH
UHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBmbG9hdCB2YWx1ZSA9IDApCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKG9ic2VydmVyLCBhY2Nlc3MsIHZh
bHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL1NWR051bWJlckxpc3QuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUv
c3ZnL1NWR051bWJlckxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOSArNDAsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxpc3QoKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25l
ciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR051
bWJlckxpc3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9w
ZXJ0eUFjY2VzcyBhY2Nlc3MpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdOdW1iZXJMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHTnVtYmVyTGlzdChvYnNlcnZlciwgYWNjZXNzKSk7CiAgICAgfQogCiAgICAgc3RhdGlj
IFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTnVtYmVyTGlzdCYgb3RoZXIsIFNW
R1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRo
U2VnTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlz
dC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBTVkdQYXRoU2VnTGlz
dCBmaW5hbCA6IHB1YmxpYyBTVkdQCiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgot
ICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNl
Z0xpc3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0
eUFjY2VzcyBhY2Nlc3MpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQ
YXRoU2VnTGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1BhdGhTZWdMaXN0KG9ic2VydmVyLCBhY2Nlc3MpKTsKICAgICB9CiAKICAgICBzdGF0aWMg
UmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyLCBT
VkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCkBAIC0xNjAsNyArMTYwLDcgQEAgcHVibGljOgogCiBw
cml2YXRlOgogICAgIFNWR1BhdGhTZWdMaXN0KGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAgICAgICA6IEJhc2Uob3RoZXIub3duZXIoKSwg
YWNjZXNzKQorICAgICAgICA6IEJhc2Uob3RoZXIub2JzZXJ2ZXIoKSwgYWNjZXNzKQogICAgICAg
ICAsIG1fcGF0aEJ5dGVTdHJlYW0ob3RoZXIucGF0aEJ5dGVTdHJlYW0oKSkKICAgICB7CiAgICAg
fQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICAvLyBDYWxsZWQg
d2hlbiBjaGFuZ2luZyBhbiBpdGVtIGluIHRoZSBsaXN0LgotICAgIHZvaWQgY29tbWl0UHJvcGVy
dHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0
Q2hhbmdlKERPTUxpdmVPYmplY3QqIG9iamVjdCkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGl0
ZW1zV2lsbENoYW5nZSgpOwotICAgICAgICBCYXNlOjpjb21taXRQcm9wZXJ0eUNoYW5nZShwcm9w
ZXJ0eSk7CisgICAgICAgIEJhc2U6OmNvbW1pdENoYW5nZShvYmplY3QpOwogICAgIH0KIAogICAg
IHZvaWQgZW5zdXJlSXRlbXMoKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlz
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2
aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9p
bnRMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKERPTUxpdmVPYmpl
Y3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvd25lciwgYWNjZXNzKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvYnNlcnZlciwgYWNj
ZXNzKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShjb25z
dCBTVkdQb2ludExpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHJldmlzaW9uIDI0
OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAgY2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byA6IHB1YmxpYyBTVgogICAgIHVzaW5nIEJhc2U6Om1fdmFsdWU7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpbz4gY3JlYXRlKERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1
ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8ob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhvYnNlcnZlciwgYWNjZXNzLCB2YWx1ZSkp
OwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0
LmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdSZWN0KHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdS
ZWN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFj
Y2VzcywgY29uc3QgRmxvYXRSZWN0JiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR1Jl
Y3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MsIGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3Qob2JzZXJ2ZXIsIGFjY2VzcywgdmFs
dWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNz
IFNWR1N0cmluZ0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHIKICAgICB1c2luZyBCYXNlOjptX2l0
ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZH
UHJvcGVydHlPd25lciogb3duZXIpCisgICAgc3RhdGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVh
dGUoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qob3duZXIpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAogICAgIHZvaWQg
cmVzZXQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9y
bS5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3Jt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJh
bnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdUcmFuc2Zv
cm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT4sIHB1YmxpYyBE
T01MaXZlT2JqZWN0T2JzZXJ2ZXIgeworICAgIHVzaW5nIEJhc2UgPSBTVkdWYWx1ZVByb3BlcnR5
PFNWR1RyYW5zZm9ybVZhbHVlPjsKKyAgICB1c2luZyBCYXNlOjpjb21taXRDaGFuZ2U7CisKIHB1
YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR1RyYW5zZm9ybVZh
bHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUpCiAgICAgewpAQCAtMTMxLDIwICsxMzQsMTkgQEAg
cHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICB1c2luZyBCYXNlID0gU1ZHVmFsdWVQcm9w
ZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT47Ci0KICAgICBTVkdUcmFuc2Zvcm0oU1ZHVHJhbnNmb3Jt
VmFsdWU6OlNWR1RyYW5zZm9ybVR5cGUgdHlwZSwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFu
c2Zvcm0gPSB7IH0sIGZsb2F0IGFuZ2xlID0gMCwgY29uc3QgRmxvYXRQb2ludCYgcm90YXRpb25D
ZW50ZXIgPSB7IH0pCiAgICAgICAgIDogQmFzZShTVkdUcmFuc2Zvcm1WYWx1ZSh0eXBlLCBTVkdN
YXRyaXg6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlLCB0cmFuc2Zv
cm0pLCBhbmdsZSwgcm90YXRpb25DZW50ZXIpKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQcm9w
ZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXI7IH0KKyAg
ICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gQmFzZTo6b2JzZXJ2ZXIoKTsgfQorICAgIGNvbnN0IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQmFzZTo6Y29udGV4dEVsZW1lbnQoKTsgfQogCi0g
ICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJy
aWRlCisgICAgdm9pZCBjb21taXRDaGFuZ2UoRE9NTGl2ZU9iamVjdCogb2JqZWN0KSBvdmVycmlk
ZQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eSwgcHJvcGVydHkgPT0gbV92
YWx1ZS5tYXRyaXgoKS5wdHIoKSk7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAgICAg
b3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIEFTU0VSVF9VTlVT
RUQob2JqZWN0LCBvYmplY3QgPT0gbV92YWx1ZS5tYXRyaXgoKS5wdHIoKSk7CisgICAgICAgIGlm
IChvYnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0Q2hhbmdlKHRoaXMp
OwogICAgICAgICBtX3ZhbHVlLm1hdHJpeERpZENoYW5nZSgpOwogICAgIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5
ICszOCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNm
b3JtTGlzdCgpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQor
ICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKERPTUxpdmVPYmplY3RPYnNl
cnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3Qob3duZXIsIGFjY2VzcykpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KG9ic2VydmVyLCBh
Y2Nlc3MpKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0
ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0
ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAg
IGlmICghbV9iYXNlVmFsLT5zZXRWYWx1ZShiYXNlVmFsKSkKICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICAgICAgY29tbWl0UHJvcGVydHlDaGFuZ2UobnVs
bHB0cik7CisgICAgICAgIGNvbW1pdENoYW5nZShudWxscHRyKTsKICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJpbWl0aXZlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5LmgJKHJldmlzaW9uIDI0OTg1
MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZl
UHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAg
RXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChjb25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwp
CiAgICAgewogICAgICAgICBtX2Jhc2VWYWwtPnNldFZhbHVlKGJhc2VWYWwpOwotICAgICAgICBj
b21taXRQcm9wZXJ0eUNoYW5nZShudWxscHRyKTsKKyAgICAgICAgY29tbWl0Q2hhbmdlKG51bGxw
dHIpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAJKHJldmlz
aW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
UHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxNiArMzAsMjEgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1TVkdQcm9wZXJ0eU93bmVyKiBTVkdBbmltYXRlZFByb3BlcnR5Ojpv
d25lcigpIGNvbnN0CitET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6
Om9ic2VydmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0RWxlbWVudDsKIH0KIAot
dm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0
eSopCitFbGVtZW50KiBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb250ZXh0RWxlbWVudCgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29udGV4dEVsZW1lbnQ7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3QqKQogewogICAgIGlmICghbV9jb250
ZXh0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIG1fY29udGV4dEVsZW1lbnQtPmNvbW1p
dFByb3BlcnR5Q2hhbmdlKCp0aGlzKTsKKyAgICBtX2NvbnRleHRFbGVtZW50LT5jb21taXRDaGFu
Z2UoKnRoaXMpOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQ
cm9wZXJ0eU93bmVyLmgiCiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM0LDE0
ICszMywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50Owog
Ci1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0
ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVk
UHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGlj
IERPTUxpdmVPYmplY3RPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0
ZWRQcm9wZXJ0eSgpID0gZGVmYXVsdDsKICAgICAKICAgICAvLyBNYW5hZ2UgdGhlIHJlbGF0aW9u
c2hpcCB3aXRoIHRoZSBvd25lci4KICAgICBib29sIGlzQXR0YWNoZWQoKSBjb25zdCB7IHJldHVy
biBtX2NvbnRleHRFbGVtZW50OyB9CiAgICAgdm9pZCBkZXRhY2goKSB7IG1fY29udGV4dEVsZW1l
bnQgPSBudWxscHRyOyB9Ci0gICAgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRleHRFbGVtZW50OyB9CisgICAgRWxlbWVudCogY29udGV4dEVsZW1lbnQo
KSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICB2aXJ0dWFsIFN0cmluZyBiYXNlVmFsQXNTdHJp
bmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcg
YW5pbVZhbEFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQpAQCAtNjYs
OCArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KICAgICAKLSAgICBTVkdQcm9wZXJ0
eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIq
IG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21taXRDaGFuZ2UoRE9NTGl2
ZU9iamVjdCopIG92ZXJyaWRlOwogICAgIAogICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1l
bnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzQW5pbWF0aW5nIHsgZmFsc2UgfTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5
LDExICsxMjksMTEgQEAgcHJvdGVjdGVkOgogICAgIH0KIAogICAgIC8vIENhbGxlZCB3aGVuIG1f
YmFzZVZhbCBjaGFuZ2VzIG9yIGFuIGl0ZW0gaW4gbV9iYXNlVmFsIGNoYW5nZXMuCi0gICAgdm9p
ZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisg
ICAgdm9pZCBjb21taXRDaGFuZ2UoRE9NTGl2ZU9iamVjdCogb2JqZWN0KSBvdmVycmlkZQogICAg
IHsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgICptX2FuaW1WYWwgPSBtX2Jh
c2VWYWw7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdl
KHByb3BlcnR5KTsKKyAgICAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKG9i
amVjdCk7CiAgICAgfQogCiAgICAgUmVmPExpc3RUeXBlPiBtX2Jhc2VWYWw7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVl
UHJvcGVydHkuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCwx
MSArMTUwLDExIEBAIHByb3RlY3RlZDoKICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jh
c2VWYWwgY2hhbmdlcy4KLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdENoYW5nZShET01MaXZlT2JqZWN0
KiBvYmplY3QpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAg
ICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwotICAgICAgICBT
VkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAg
ICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdENoYW5nZShvYmplY3QpOwogICAgIH0KIAog
ICAgIFJlZjxQcm9wZXJ0eVR5cGU+IG1fYmFzZVZhbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisKKyNp
bmNsdWRlICJTVkdFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY29uc3QgU1ZH
RWxlbWVudCogU1ZHUHJvcGVydHk6OnN2Z0NvbnRleHRFbGVtZW50KCkgY29uc3QKK3sKKyAgICBp
ZiAoYXV0byogZWxlbWVudCA9IGNvbnRleHRFbGVtZW50KCkpIHsKKyAgICAgICAgQVNTRVJUKGlz
PFNWR0VsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PFNWR0VsZW1l
bnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfQpJbmRleDog
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCShyZXZpc2lvbiAy
NDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0yMCw1MSArMjAsMzcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNs
dWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCisjaW5jbHVkZSAiRE9NTGl2ZU9iamVjdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgU1ZHRWxlbWVudDsKKwogZW51bSBjbGFzcyBTVkdQcm9wZXJ0eUFjY2VzcyA6IHVpbnQ4X3Qg
eyBSZWFkV3JpdGUsIFJlYWRPbmx5IH07CiBlbnVtIGNsYXNzIFNWR1Byb3BlcnR5U3RhdGUgOiB1
aW50OF90IHsgQ2xlYW4sIERpcnR5IH07CiAKLWNsYXNzIFNWR1Byb3BlcnR5IDogcHVibGljIFJl
ZkNvdW50ZWQ8U1ZHUHJvcGVydHk+IHsKK2NsYXNzIFNWR1Byb3BlcnR5IDogcHVibGljIFJlZkNv
dW50ZWQ8U1ZHUHJvcGVydHk+LCBwdWJsaWMgRE9NTGl2ZU9iamVjdCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUg
cmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lkIGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIC8vIE1hbmFnaW5nIHRoZSByZWxh
dGlvbnNoaXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCisgICAgdm9pZCBhdHRhY2goRE9NTGl2ZU9iamVj
dE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQogICAgIHsKLSAg
ICAgICAgQVNTRVJUKCFtX293bmVyKTsKKyAgICAgICAgRE9NTGl2ZU9iamVjdDo6YXR0YWNoKG9i
c2VydmVyKTsKICAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xl
YW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7CiAgICAgICAgIG1fYWNjZXNzID0gYWNjZXNz
OwogICAgIH0KIAogICAgIHZvaWQgZGV0YWNoKCkKICAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBu
dWxscHRyOwogICAgICAgICBtX2FjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7
CiAgICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKKyAgICAgICAgRE9N
TGl2ZU9iamVjdDo6ZGV0YWNoKCk7CiAgICAgfQotCi0gICAgY29uc3QgU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFtX293bmVyKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBtX293bmVyLT5hdHRyaWJ1dGVD
b250ZXh0RWxlbWVudCgpOwotICAgIH0KLQotICAgIHZvaWQgY29tbWl0Q2hhbmdlKCkKLSAgICB7
Ci0gICAgICAgIGlmICghbV9vd25lcikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbV9v
d25lci0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7Ci0gICAgfQotCisgICAgCiAgICAgLy8g
RE9NIGFjY2Vzcy4KICAgICBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MoKSBjb25zdCB7IHJldHVy
biBtX2FjY2VzczsgfQogICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0IHsgcmV0dXJuIG1fYWNj
ZXNzID09IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seTsgfQpAQCAtODgsMTUgKzc0LDIxIEBA
IHB1YmxpYzoKICNpZiAhQ09NUElMRVIoTVNWQykKIHByb3RlY3RlZDoKICNlbmRpZgotICAgIFNW
R1Byb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBt
X293bmVyKG93bmVyKQorICAgIFNWR1Byb3BlcnR5KERPTUxpdmVPYmplY3RPYnNlcnZlciogb2Jz
ZXJ2ZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFj
Y2Vzczo6UmVhZFdyaXRlKQorICAgICAgICA6IERPTUxpdmVPYmplY3Qob2JzZXJ2ZXIpCiAgICAg
ICAgICwgbV9hY2Nlc3MoYWNjZXNzKQogICAgIHsKICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eU93
bmVyKiBtX293bmVyIHsgbnVsbHB0ciB9OworICAgIHZpcnR1YWwgYm9vbCBpc1NWR1Byb3BlcnR5
KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0NvbnRl
eHRFbGVtZW50KCkgY29uc3Q7CisKICAgICBTVkdQcm9wZXJ0eUFjY2VzcyBtX2FjY2VzcyB7IFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUgfTsKICAgICBTVkdQcm9wZXJ0eVN0YXRlIG1fc3Rh
dGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lOKFdlYkNvcmU6OlNWR1Byb3BlcnR5
KQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJDb3JlOjpET01MaXZlT2JqZWN0JiBv
YmplY3QpIHsgcmV0dXJuIG9iamVjdC5pc1NWR1Byb3BlcnR5KCk7IH0KK1NQRUNJQUxJWkVfVFlQ
RV9UUkFJVFNfRU5EKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5TGlzdC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyAr
MzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0
eVR5cGU+Ci1jbGFzcyBTVkdQcm9wZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVy
dHlUeXBlPj4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR1Byb3BlcnR5TGlz
dCA6IHB1YmxpYyBTVkdMaXN0PFJlZjxQcm9wZXJ0eVR5cGU+PiwgcHVibGljIERPTUxpdmVPYmpl
Y3RPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZUxpc3QgPSBTVkdMaXN0PFJlZjxQ
cm9wZXJ0eVR5cGU+PjsKICAgICB1c2luZyBCYXNlTGlzdDo6aXNFbXB0eTsKQEAgLTQyLDEzICs0
MiwxMyBAQCBwdWJsaWM6CiAjaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6CiAjZW5kaWYK
LSAgICB1c2luZyBTVkdQcm9wZXJ0eU93bmVyOjpTVkdQcm9wZXJ0eU93bmVyOworICAgIHVzaW5n
IERPTUxpdmVPYmplY3RPYnNlcnZlcjo6RE9NTGl2ZU9iamVjdE9ic2VydmVyOwogICAgIHVzaW5n
IEJhc2VMaXN0OjptX2l0ZW1zOwogICAgIHVzaW5nIEJhc2VMaXN0OjptX2FjY2VzczsKLSAgICB1
c2luZyBCYXNlTGlzdDo6bV9vd25lcjsKKyAgICB1c2luZyBCYXNlTGlzdDo6Y29tbWl0Q2hhbmdl
OwogCi0gICAgU1ZHUHJvcGVydHlMaXN0KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0
ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0
ZSkKLSAgICAgICAgOiBCYXNlTGlzdChvd25lciwgYWNjZXNzKQorICAgIFNWR1Byb3BlcnR5TGlz
dChET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlB
Y2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKKyAgICAgICAgOiBC
YXNlTGlzdChvYnNlcnZlciwgYWNjZXNzKQogICAgIHsKICAgICB9CiAKQEAgLTY0LDEyICs2NCwx
MyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBpdGVtLT5kZXRhY2goKTsKICAgICB9CiAKLSAg
ICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3du
ZXI7IH0KKyAgICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gQmFzZUxpc3Q6Om9ic2VydmVyKCk7IH0KKyAgICBjb25zdCBFbGVtZW50KiBj
b250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEJhc2VMaXN0Ojpjb250ZXh0
RWxlbWVudCgpOyB9CiAKLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
Kikgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdENoYW5nZShET01MaXZlT2JqZWN0Kikgb3ZlcnJp
ZGUKICAgICB7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAgICAgb3duZXIoKS0+Y29t
bWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIGlmIChvYnNlcnZlcigpKQorICAgICAg
ICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0Q2hhbmdlKHRoaXMpOwogICAgIH0KIAogICAgIFJlZjxQ
cm9wZXJ0eVR5cGU+IGF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCBvdmVycmlkZQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaAkocmV2
aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlPd25lci5oCShub25leGlzdGVudCkKQEAgLTEsNTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBTVkdFbGVtZW50OwotY2xhc3MgU1ZHUHJvcGVy
dHk7Ci0KLWNsYXNzIFNWR1Byb3BlcnR5T3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgflNW
R1Byb3BlcnR5T3duZXIoKSA9IGRlZmF1bHQ7Ci0KLSAgICB2aXJ0dWFsIFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIAotICAgIHZpcnR1YWwg
Y29uc3QgU1ZHRWxlbWVudCogYXR0cmlidXRlQ29udGV4dEVsZW1lbnQoKSBjb25zdAotICAgIHsK
LSAgICAgICAgaWYgKCFvd25lcigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIHJldHVybiBvd25lcigpLT5hdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpOwotICAgIH0KLSAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHBy
b3BlcnR5KQotICAgIHsKLSAgICAgICAgaWYgKCFvd25lcigpKQotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICBvd25lcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7Ci0gICAg
fQotICAgIAotcHJvdGVjdGVkOgotICAgIFNWR1Byb3BlcnR5T3duZXIoKSA9IGRlZmF1bHQ7Ci19
OwotCi19CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eU93bmVyLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMj
IC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5o
CShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdW
YWx1ZVByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDE0ICs2NCwxNCBAQCBwcm90ZWN0
ZWQ6CiAgICAgfQogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90
IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3Mg
YW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nl
c3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAg
IFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxw
dHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3Jp
dGUpCisgICAgICAgIDogU1ZHUHJvcGVydHkob2JzZXJ2ZXIsIGFjY2VzcykKICAgICB7CiAgICAg
fQogCiAgICAgLy8gQ3JlYXRlIGFuIGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBwcm9wZXJ0eS4K
LSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0
eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFByb3BlcnR5VHlwZSYgdmFsdWUpCi0gICAgICAgIDogU1ZH
UHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5KERPTUxpdmVPYmpl
Y3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgUHJv
cGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiBTVkdQcm9wZXJ0eShvYnNlcnZlciwgYWNjZXNz
KQogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAko
cmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzUsMTQgKzc1LDE0IEBAIHByb3Rl
Y3RlZDoKICAgICB1c2luZyBCYXNlOjpyZW1vdmU7CiAKICAgICAvLyBCYXNlIGFuZCBkZWZhdWx0
IGNvbnN0cnVjdG9yLiBEbyBub3QgdXNlICJ1c2luZyBCYXNlOjpCYXNlIiBiZWNhdXNlIG9mIFdp
bmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChTVkdQcm9wZXJ0
eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1By
b3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogQmFzZShvd25lciwgYWNjZXNzKQor
ICAgIFNWR1ZhbHVlUHJvcGVydHlMaXN0KERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIg
PSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6
UmVhZFdyaXRlKQorICAgICAgICA6IEJhc2Uob2JzZXJ2ZXIsIGFjY2VzcykKICAgICB7CiAgICAg
fQogCiAgICAgLy8gVXNlZCBieSBTVkdBbmltYXRlZFByb3BlcnR5TGlzdCB3aGVuIGNyZWF0aW5n
IGl0IGFuaW1WYWwgZnJvbSBiYXNlVmFsLgogICAgIFNWR1ZhbHVlUHJvcGVydHlMaXN0KGNvbnN0
IFNWR1ZhbHVlUHJvcGVydHlMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0g
U1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVy
KCksIGFjY2VzcykKKyAgICAgICAgOiBCYXNlKG90aGVyLm9ic2VydmVyKCksIGFjY2VzcykKICAg
ICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVtcy4KICAgICAgICAgZm9yIChjb25zdCBhdXRv
JiBpdGVtIDogb3RoZXIuaXRlbXMoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378765</attachid>
            <date>2019-09-13 17:17:46 -0700</date>
            <delta_ts>2019-10-01 20:32:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201782-20190913171745.patch</filename>
            <type>text/plain</type>
            <size>51522</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0OTg2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEwNiBAQAorMjAxOS0wOS0xMyAgU2FpZCBB
Ym91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEludHJvZHVj
ZSBET01MaXZlT2JqZWN0IGFuZCBtYWtlIFNWR1Byb3BlcnR5IGEgc3VwZXJjbGFzcyBvZiBpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNzgyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBh
IHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZHUG9pbnQgYnkgRE9NUG9pbnQuIFdlIG5lZWQgdG8g
bWFrZQorICAgICAgICBET01Qb2ludCBiZSBhIGxpdmUgb2JqZWN0IGxpa2UgU1ZHUHJvcGVydHku
CisKKyAgICAgICAgLS0gQSBuZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVPYmplY3QsIGlzIGFkZGVk
LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlCisgICAgICAgICAgIHRoZSBjaGFuZ2VzIGluIHRo
aXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gU1ZHUHJvcGVydHkgaXMgbWFkZSBhIHN1cGVyCisg
ICAgICAgICAgIGNsYXNzIG9mIERPTUxpdmVPYmplY3QuIERPTVBvaW50IHdpbGwgYmUgbWFkZSBp
biBhIHN1cGVyIG9mIGl0IGFsc28gCisgICAgICAgICAgIGluIGEgZm9sbG93aW5nIHBhdGNoLgor
CisgICAgICAgIC0tIEFub3RoZXIgbmV3IGNsYXNzLCBuYW1lZCBET01MaXZlT2JqZWN0T2JzZXJ2
ZXIgYW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAgICAgICAgY2xhc3Mgb2YgRE9NTGl2ZU9iamVj
dCBvYnNlcnZlcnMuIEN1cnJlbnRseSB0aGUgZm9sbG93aW5nIGNsYXNzIGFyZQorICAgICAgICAg
ICBtYWRlIHN1cGVyIGNsYXNzZXMgb2YgRE9NTGl2ZU9iamVjdE9ic2VydmVyOgorICAgICAgICAg
ICAxLiBFbGVtZW50OiBUaGlzIG9ic2VydmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHBy
b3BlcnRpZXMuCisgICAgICAgICAgIDIuIFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2
ZXMgdGhlIGNoYW5nZXMgaW4gaXRzIGJhc2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5
TGlzdDogVGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAg
IDQuIFNWR1RyYW5zZm9ybTogVGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJs
eWluZyBTVkdNYXRyaXguCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vRE9NTGl2ZU9iamVjdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkRPTUxpdmVPYmplY3Q6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxp
dmVPYmplY3Q6OmlzQXR0YWNoZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZU9i
amVjdDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVPYmplY3Q6OmRldGFjaCk6
CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlT2JqZWN0Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlT2JqZWN0Ojpjb21taXRDaGFuZ2UpOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NTGl2ZU9iamVjdDo6aXNTVkdQcm9wZXJ0eSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01MaXZlT2JqZWN0OjpET01MaXZlT2JqZWN0KToKKyAgICAgICAgKiBkb20v
RE9NTGl2ZU9iamVjdE9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2
ZU9iamVjdE9ic2VydmVyOjpvYnNlcnZlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01M
aXZlT2JqZWN0T2JzZXJ2ZXI6OmNvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUxpdmVPYmplY3RPYnNlcnZlcjo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKiBkb20v
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5nbGU6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBz
dmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGguaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6
dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OnNldFZhbHVl
Rm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjpjb252ZXJ0VG9TcGVj
aWZpZWRVbml0cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5n
dGhMaXN0OjpTVkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcvU1ZHTWF0cml4Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJl
ci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVhdGUpOgorICAgICAgICAqIHN2
Zy9TVkdOdW1iZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdOdW1iZXJMaXN0OjpjcmVh
dGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdQ
b2ludExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BvaW50TGlzdDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUmVjdC5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVjdDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
U3RyaW5nTGlzdC5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAgICAgKiBz
dmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkRGVj
b3JhdGVkUHJvcGVydHk6OnNldEJhc2VWYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1h
dGVkUHJpbWl0aXZlUHJvcGVydHk6OnNldEJhc2VWYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6b2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6Y29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
QW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0Fu
aW1hdGVkUHJvcGVydHk6Om93bmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN2Z0NvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpTVkdQcm9wZXJ0eSk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNTVkdQcm9wZXJ0eSBjb25zdCk6CisgICAgICAgIChpc1R5
cGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmlzQXR0YWNoZWQgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojpjb21taXRDaGFu
Z2UpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlMaXN0OjpTVkdQcm9wZXJ0eUxpc3QpOgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWYWx1ZVByb3BlcnR5OjpTVkdWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VmFsdWVQcm9wZXJ0eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0KToKKwogMjAxOS0wOS0xMSAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBhIHByb3Rv
dHlwZSBmb3IgQVIgUXVpY2tMb29rIHRvIHRyaWdnZXIgcHJvY2Vzc2luZyBpbiB0aGUgb3JpZ2lu
YXRpbmcgcGFnZQpJbmRleDogU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCShyZXZpc2lvbiAyNDk4NTApCisrKyBT
b3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0zNjAsNiArMzYw
LDggQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIGRvbS9ET01F
eGNlcHRpb24uaAogICAgIGRvbS9ET01IaWdoUmVzVGltZVN0YW1wLmgKICAgICBkb20vRE9NSW1w
bGVtZW50YXRpb24uaAorICAgIGRvbS9ET01MaXZlT2JqZWN0LmgKKyAgICBkb20vRE9NTGl2ZU9i
amVjdE9ic2VydmVyLmgKICAgICBkb20vRE9NUGFzdGVBY2Nlc3MuaAogICAgIGRvbS9ET01SZWN0
LmgKICAgICBkb20vRE9NUmVjdEluaXQuaApAQCAtMTM4NSw3ICsxMzg3LDYgQEAgc2V0KFdlYkNv
cmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3Qu
aAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZUxpc3QuaAogICAgIHN2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5LmgKLSAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmgK
ICAgICBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCiAKICAgICB0ZXN0aW5nL01v
Y2tHYW1lcGFkLmgKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjQ1Nyw2ICsyNDU3LDcg
QEAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyQnVpbGRlci5jcAogc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAKIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGlvbkFk
ZGl0aXZlVmFsdWVGdW5jdGlvbkltcGwuY3BwCiBzdmcvcHJvcGVydGllcy9TVkdBdHRyaWJ1dGVB
bmltYXRvci5jcHAKK3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmNwcAogCiB3b3JrZXJzL0Fi
c3RyYWN0V29ya2VyLmNwcAogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5jcHAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjA4NCw3ICsyMDg0LDggQEAK
IAkJNzIxNDQzMzEyMjNFQzg1NDAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk3MjE0NDMzMjIyM0VDODVGMDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTcyMTQ0MzMzMjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMyMjNC
MkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNWR1By
b3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNzIxNTlENEMyMzJD
MTBFNTAwMDc2OTMwIC8qIERPTUxpdmVPYmplY3RPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzIxNTlENEEyMzJCMUE5MDAwMDc2OTMwIC8q
IERPTUxpdmVPYmplY3RPYnNlcnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTcyMTU5RDREMjMyQzE1MDAwMDA3NjkzMCAvKiBET01MaXZlT2Jq
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjE1
OUQ0ODIzMkIxQTVGMDAwNzY5MzAgLyogRE9NTGl2ZU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgy
OCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRp
bmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThC
MjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBE
N0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlT
dGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBA
IC04NTUyLDcgKzg1NTMsNiBAQAogCQk1NUVFNTM1RDIyM0IyQTBEMDBGQkE5NDQgLyogU1ZHQW5p
bWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0FuaW1h
dGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdBbmltYXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUYyMjNCMkEwRjAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJv
cGVydHlQYWlyQW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwotCQk1NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eU93bmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzYxMjIzQjJBMjIwMEZCQTk0NCAvKiBTVkdBdHRy
aWJ1dGVBbmltYXRvci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdBdHRyaWJ1dGVBbmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1
RUU1MzYyMjIzQjJBMjMwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3Bl
cnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDEzLDYgKzk0MTMsOSBAQAogCQk3MUZGODUx
ODIyQTNGODFGMDA1RDU5NTkgLyogTmF2aWdhdG9yTWF4VG91Y2hQb2ludHMuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvck1heFRvdWNoUG9pbnRzLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNzIxNDQzNDUyMjQwQzhCQTAwRjEyRkY3IC8qIFNWR0FuaW1hdGVk
VmFsdWVQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzIxNDQzNDYyMjQwQ0FEMjAwRjEyRkY3
IC8qIFNWR1ZhbHVlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0eS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MjE1OUQ0ODIzMkIxQTVGMDAwNzY5MzAg
LyogRE9NTGl2ZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01MaXZlT2JqZWN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMTU5RDRBMjMyQjFBOTAwMDA3NjkzMCAvKiBET01M
aXZlT2JqZWN0T2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTGl2ZU9iamVjdE9ic2VydmVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyMTU5RDRCMjMyQzBFRDUwMDA3Njkz
MCAvKiBTVkdQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQcm9wZXJ0eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVEMzI5MUEzQTdFNTQwMEY1RjEzQyAv
KiBFWFRCbGVuZE1pbk1heC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFWFRCbGVuZE1pbk1heC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNEVE
MzJBMUEzQTdFNTQwMEY1RjEzQyAvKiBFWFRCbGVuZE1pbk1heC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFWFRCbGVuZE1pbk1heC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk3MjRFRDMyQjFBM0E3RTU0MDBGNUYxM0MgLyogRVhUQmxlbmRNaW5NYXguaWRsICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVEJsZW5kTWluTWF4LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE2MTIxLDEzICsxNjEyNCwxMyBAQAogCQkJCTU1RENDNTI1MjI0MDc0
OUUwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0LmggKi8sCiAJCQkJNzI2NkYwMTUyMjQxQzA5
ODAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2
RjAxNDIyNDFCRkIyMDA4MzM5NzUgLyogU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvckltcGwu
aCAqLywKKwkJCQk3MjE1OUQ0QjIzMkMwRUQ1MDAwNzY5MzAgLyogU1ZHUHJvcGVydHkuY3BwICov
LAogCQkJCTU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovLAogCQkJ
CTU1RENDNTI2MjI0MDc0RkEwMEMyNkUzMiAvKiBTVkdQcm9wZXJ0eUFjY2Vzc29yLmggKi8sCiAJ
CQkJNTVEQ0M1MjcyMjQwNzUwQjAwQzI2RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3JJbXBsLmgg
Ki8sCiAJCQkJNzI2NkYwMTYyMjQxQzBGRTAwODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3Iu
aCAqLywKIAkJCQk3MjY2RjAxMzIyNDFCQ0UyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRv
ckZhY3RvcnkuaCAqLywKIAkJCQk3MjY2RjAyNzIyNDMxMDkyMDA4MzM5NzUgLyogU1ZHUHJvcGVy
dHlMaXN0LmggKi8sCi0JCQkJNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5
T3duZXIuaCAqLywKIAkJCQk1NUJFMDI1QzIyM0IyOUMzMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5LmggKi8sCiAJCQkJNTVCRTAyNTcyMjNCMjlDMDAwMzJGMDhBIC8qIFNWR1By
b3BlcnR5UmVnaXN0cnkuaCAqLywKIAkJCQkwODhBMEUwMzEyNkVGMURCMDA5NzhGN0EgLyogU1ZH
UHJvcGVydHlUcmFpdHMuaCAqLywKQEAgLTI3NDkxLDYgKzI3NDk0LDggQEAKIAkJCQlBODE4NUYz
NjA5NzY1NzY1MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4MTg1
RjMzMDk3NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCTkzRUVD
MUU5MDlDMjg3NzcwMEM1MTVEMSAvKiBET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCisJCQkJNzIx
NTlENDgyMzJCMUE1RjAwMDc2OTMwIC8qIERPTUxpdmVPYmplY3QuaCAqLywKKwkJCQk3MjE1OUQ0
QTIzMkIxQTkwMDAwNzY5MzAgLyogRE9NTGl2ZU9iamVjdE9ic2VydmVyLmggKi8sCiAJCQkJRjRC
NDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzLmggKi8sCiAJCQkJMEY0OTY2
OTkxREI0MDhDMTAwQTI3NEJCIC8qIERPTVBvaW50LmggKi8sCiAJCQkJMEY0OTY2OUExREI0MDhD
MTAwQTI3NEJCIC8qIERPTVBvaW50LmlkbCAqLywKQEAgLTI5MDgxLDYgKzI5MDg2LDggQEAKIAkJ
CQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMQ29udmVydC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjE1OUQ0RDIzMkMxNTAwMDAwNzY5MzAg
LyogRE9NTGl2ZU9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzIxNTlENEMyMzJDMTBFNTAw
MDc2OTMwIC8qIERPTUxpdmVPYmplY3RPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODM2
QUNFQ0ExRUNBOTU2OTAwNEJEMDEyIC8qIERPTU1hdHJpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
N0NCQkJDQzcxRjU2MDU4MTAwNUVGQUFDIC8qIERPTU1hdHJpeDJESW5pdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJODM2QUNFQ0IxRUNBOTU2RDAwNEJEMDEyIC8qIERPTU1hdHJpeEluaXQuaCBpbiBI
ZWFkZXJzICovLApAQCAtMzE4OTgsNyArMzE5MDUsNiBAQAogCQkJCUIyMjI3QTk3MEQwMEJGMjIw
MDcxQjc4MiAvKiBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggaW4gSGVhZGVycyAqLywKIAkJCQk1
NURDQzUyODIyNDA3QjIwMDBDMjZFMzIgLyogU1ZHUHJpbWl0aXZlTGlzdC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNzIxNDQzMzMyMjNFQzhCMDAwRjEyRkY3IC8qIFNWR1Byb3BlcnR5LmggaW4gSGVh
ZGVycyAqLywKLQkJCQk3MjE0NDMzNDIyM0VDOTE2MDBGMTJGRjcgLyogU1ZHUHJvcGVydHlPd25l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg4QTBFMEMxMjZFRjFEQjAwOTc4RjdBIC8qIFNWR1By
b3BlcnR5VHJhaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyN0E5QTBEMDBCRjIyMDA3MUI3
ODIgLyogU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEVE
RTE5RjEyQTUwQjhFMDBCOTU3OTcgLyogU1ZHUmVjdC5oIGluIEhlYWRlcnMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZU9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01MaXZlT2JqZWN0LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0RPTUxpdmVPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDgwIEBACisv
KgorKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRPTUxpdmVP
YmplY3RPYnNlcnZlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVP
YmplY3QgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRPTUxpdmVPYmplY3QoKSA9IGRlZmF1bHQ7
CisKKyAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG9ic2VydmVyLgor
ICAgIERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBtX29i
c2VydmVyOyB9CisgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZl
cjsgfQorCisgICAgdm9pZCBhdHRhY2goRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlcikK
KyAgICB7CisgICAgICAgIEFTU0VSVCghbV9vYnNlcnZlcik7CisgICAgICAgIG1fb2JzZXJ2ZXIg
PSBvYnNlcnZlcjsKKyAgICB9CisKKyAgICB2b2lkIGRldGFjaCgpCisgICAgeworICAgICAgICBt
X29ic2VydmVyID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2
ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIGNvbnN0
IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9v
YnNlcnZlcikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbV9v
YnNlcnZlci0+Y29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICAvLyBDb21taXQgdGhlIGxp
dmUgb2JqZWN0IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hhaW4uCisgICAgdm9pZCBjb21t
aXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICBtX29ic2VydmVyLT5jb21taXRDaGFuZ2UodGhpcyk7CisgICAgfQor
CisgICAgLy8gRGVyaXZlZCBjbGFzc2VzIGNhc3RpbmcuCisgICAgdmlydHVhbCBib29sIGlzU1ZH
UHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorCitwcm90ZWN0ZWQ6CisgICAgRE9N
TGl2ZU9iamVjdChET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAg
ICAgICAgOiBtX29ic2VydmVyKG9ic2VydmVyKQorICAgIHsKKyAgICB9CisKKyAgICBET01MaXZl
T2JqZWN0T2JzZXJ2ZXIqIG1fb2JzZXJ2ZXIgeyBudWxscHRyIH07Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlT2JqZWN0T2Jz
ZXJ2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZU9iamVjdE9i
c2VydmVyLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVPYmpl
Y3RPYnNlcnZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNz
IERPTUxpdmVPYmplY3Q7CitjbGFzcyBFbGVtZW50OworCitjbGFzcyBET01MaXZlT2JqZWN0T2Jz
ZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1YWwgfkRPTUxpdmVPYmplY3RPYnNlcnZlcigpID0g
ZGVmYXVsdDsKKworICAgIC8vIFRoZSBvYnNlcnZlciBpdHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2
ZXIuCisgICAgdmlydHVhbCBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQorCisgICAgLy8gVHJhdmVyc2UgdGhlIG9ic2VydmVycyBjaGFp
biB0aWxsYW4gRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3Qg
RWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFvYnNl
cnZlcigpKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBvYnNl
cnZlcigpLT5jb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0aGUgbGl2
ZSBvYmplY3QgY2hhbmdlcyB2aWEgdGhlIG9ic2VydmVycyBjaGFpbi4KKyAgICB2aXJ0dWFsIHZv
aWQgY29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3QqIG9iamVjdCkKKyAgICB7CisgICAgICAgIGlm
ICghb2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgb2JzZXJ2ZXIoKS0+
Y29tbWl0Q2hhbmdlKG9iamVjdCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgRE9NTGl2ZU9i
amVjdE9ic2VydmVyKCkgPSBkZWZhdWx0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjcHJhZ21h
IG9uY2UKIAogI2luY2x1ZGUgIkFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50LmgiCisjaW5jbHVkZSAi
RE9NTGl2ZU9iamVjdE9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50RGF0YS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtNzMsNyArNzQsNyBA
QCBlbnVtIFNwZWxsY2hlY2tBdHRyaWJ1dGVTdGF0ZSB7CiAgICAgU3BlbGxjaGVja0F0dHJpYnV0
ZURlZmF1bHQKIH07CiAKLWNsYXNzIEVsZW1lbnQgOiBwdWJsaWMgQ29udGFpbmVyTm9kZSB7Citj
bGFzcyBFbGVtZW50IDogcHVibGljIENvbnRhaW5lck5vZGUsIHB1YmxpYyBET01MaXZlT2JqZWN0
T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRWxlbWVudCk7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFJlZjxFbGVtZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Jik7CkBAIC0yODIsNiArMjgzLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lk
IGNvcHlOb25BdHRyaWJ1dGVQcm9wZXJ0aWVzRnJvbUVsZW1lbnQoY29uc3QgRWxlbWVudCYpIHsg
fQogCisgICAgY29uc3QgRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0aGlzOyB9CisKICAgICB2aXJ0dWFsIFJlbmRlclB0cjxSZW5kZXJFbGVtZW50PiBj
cmVhdGVFbGVtZW50UmVuZGVyZXIoUmVuZGVyU3R5bGUmJiwgY29uc3QgUmVuZGVyVHJlZVBvc2l0
aW9uJik7CiAgICAgdmlydHVhbCBib29sIHJlbmRlcmVySXNOZWVkZWQoY29uc3QgUmVuZGVyU3R5
bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw5ICs0MSw5
IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHQW5nbGUodmFsdWUp
KTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoU1ZHUHJvcGVydHlP
d25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHQW5nbGVWYWx1
ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4gY3JlYXRlKERPTUxpdmVP
YmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3Qg
U1ZHQW5nbGVWYWx1ZSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdBbmdsZShvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdBbmdsZShvYnNlcnZlciwgYWNjZXNzLCB2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQu
Y3BwCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTU2MiwxOCArNTYyLDIxIEBAIHZvaWQgU1ZHRWxlbWVudDo6
c3luY2hyb25pemVBbGxBbmltYXRlZFMKICAgICBzdmdFbGVtZW50LnN5bmNocm9uaXplQWxsQXR0
cmlidXRlcygpOwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNW
R1Byb3BlcnR5KiBwcm9wZXJ0eSkKK3ZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0Q2hhbmdlKERPTUxp
dmVPYmplY3QqIG9iamVjdCkKIHsKKyAgICBBU1NFUlQoaXM8U1ZHUHJvcGVydHk+KCpvYmplY3Qp
KTsKKyAgICBTVkdQcm9wZXJ0eSYgcHJvcGVydHkgPSBkb3duY2FzdDxTVkdQcm9wZXJ0eT4oKm9i
amVjdCk7CisKICAgICAvLyBXZSB3YW50IHRvIGRpcnR5IHRoZSB0b3AtbGV2ZWwgcHJvcGVydHkg
d2hlbiBhIGRlc2NlbmRhbnQgY2hhbmdlcy4gRm9yIGV4YW1wbGUKICAgICAvLyBhIGNoYW5nZSBp
biBhbiBTVkdMZW5ndGggaXRlbSBpbiBTVkdMZW5ndGhMaXN0IHNob3VsZCBzZXQgdGhlIGRpcnR5
IGZsYWcgb24KICAgICAvLyBTVkdMZW5ndGhMaXN0IGFuZCBub3QgdGhlIFNWR0xlbmd0aC4KLSAg
ICBwcm9wZXJ0eS0+c2V0RGlydHkoKTsKKyAgICBwcm9wZXJ0eS5zZXREaXJ0eSgpOwogCiAgICAg
aW52YWxpZGF0ZVNWR0F0dHJpYnV0ZXMoKTsKLSAgICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKHByb3Bl
cnR5UmVnaXN0cnkoKS5wcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoKnByb3BlcnR5KSk7CisgICAgc3Zn
QXR0cmlidXRlQ2hhbmdlZChwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRyaWJ1dGVOYW1l
KHByb3BlcnR5KSk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2Uo
U1ZHQW5pbWF0ZWRQcm9wZXJ0eSYgYW5pbWF0ZWRQcm9wZXJ0eSkKK3ZvaWQgU1ZHRWxlbWVudDo6
Y29tbWl0Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHkpCiB7CiAg
ICAgUXVhbGlmaWVkTmFtZSBhdHRyaWJ1dGVOYW1lID0gcHJvcGVydHlSZWdpc3RyeSgpLmFuaW1h
dGVkUHJvcGVydHlBdHRyaWJ1dGVOYW1lKGFuaW1hdGVkUHJvcGVydHkpOwogICAgIEFTU0VSVChh
dHRyaWJ1dGVOYW1lICE9IG51bGxRTmFtZSgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQu
aAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtNDcsNyArNDcsNyBAQCBjbGFzcyBTVkdVc2VFbGVtZW50OwogCiB2
b2lkIG1hcEF0dHJpYnV0ZVRvQ1NTUHJvcGVydHkoSGFzaE1hcDxBdG9tU3RyaW5nSW1wbCosIENT
U1Byb3BlcnR5SUQ+KiBwcm9wZXJ0eU5hbWVUb0lkTWFwLCBjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSk7CiAKLWNsYXNzIFNWR0VsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCwgcHVi
bGljIFNWR0xhbmdTcGFjZSwgcHVibGljIFNWR1Byb3BlcnR5T3duZXIgeworY2xhc3MgU1ZHRWxl
bWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50LCBwdWJsaWMgU1ZHTGFuZ1NwYWNlIHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKFNWR0VsZW1lbnQpOwogcHVibGljOgogICAgIGJvb2wgaXNP
dXRlcm1vc3RTVkdTVkdFbGVtZW50KCkgY29uc3Q7CkBAIC0xMzYsMTAgKzEzNiw5IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpOwogICAgIHN0YXRpYyB2b2lk
IHN5bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoU1ZHRWxlbWVudCYpOwogCi0gICAg
dm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSopIG92ZXJyaWRlOwotICAgIHZv
aWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5pbWF0ZWRQcm9wZXJ0eSYpOworICAgIHZvaWQg
Y29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3QqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdENo
YW5nZShTVkdBbmltYXRlZFByb3BlcnR5Jik7CiAKLSAgICBjb25zdCBTVkdFbGVtZW50KiBhdHRy
aWJ1dGVDb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRoaXM7IH0KICAg
ICBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeSYgcHJvcGVydHlBbmltYXRvckZhY3RvcnkoKSB7
IHJldHVybiAqbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsgfQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxTVkdBdHRyaWJ1dGVBbmltYXRvcj4gY3JlYXRlQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNB
ZGRpdGl2ZSk7CiAgICAgdm9pZCBhbmltYXRvcldpbGxCZURlbGV0ZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAkocmV2aXNpb24gMjQ5ODUwKQorKysg
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Miw5ICs2
Miw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZh
bHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9w
ZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdMZW5n
dGhWYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShE
T01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3Ms
IGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgob2JzZXJ2ZXIsIGFjY2VzcywgdmFsdWUp
KTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBw
dWJsaWM6CiAKICAgICBFeGNlcHRpb25PcjxmbG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAg
ewotICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRl
eHQgeyBjb250ZXh0RWxlbWVudCgpIH0pOworICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZv
ckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAg
IH0KIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFs
dWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkK
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJv
ciB9OwogCi0gICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhD
b250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQo
KSB9LCB2YWx1ZSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGlmICh1bml0VHlwZSA9PSBTVkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRU
eXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
Tm90U3VwcG9ydGVkRXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29u
dmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZHTGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkg
fSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3RoVHlwZT4odW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQg
eyBzdmdDb250ZXh0RWxlbWVudCgpIH0sIHN0YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRU
eXBlKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHJldmlz
aW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDkgKzQwLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGhMaXN0KGxlbmd0aE1vZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMg
UmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJv
cGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGlj
IFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZl
ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG93bmVyLCBh
Y2Nlc3MsIGxlbmd0aE1vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVu
Z3RoTGlzdChvYnNlcnZlciwgYWNjZXNzLCBsZW5ndGhNb2RlKSk7CiAgICAgfQogCiAgICAgc3Rh
dGljIFJlZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIs
IFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKQEAgLTk4LDggKzk4LDggQEAgcHJpdmF0ZToKICAg
ICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3RoTGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCi0gICAg
ICAgIDogQmFzZShvd25lciwgYWNjZXNzKQorICAgIFNWR0xlbmd0aExpc3QoRE9NTGl2ZU9iamVj
dE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhN
b2RlIGxlbmd0aE1vZGUpCisgICAgICAgIDogQmFzZShvYnNlcnZlciwgYWNjZXNzKQogICAgICAg
ICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2RlKQogICAgIHsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hdHJpeC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWF0cml4LmgJKHdvcmtpbmcgY29weSkKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgodmFsdWUpKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0p
CisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2ZXIq
IG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IEFmZmluZVRyYW5zZm9y
bSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdN
YXRyaXgob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHTWF0cml4KG9ic2VydmVyLCBhY2Nlc3MsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgJKHJldmlzaW9uIDI0
OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaAkod29ya2luZyBjb3B5KQpA
QCAtNDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R051bWJlcih2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVh
dGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgZmxv
YXQgdmFsdWUgPSAwKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoRE9NTGl2ZU9i
amVjdE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBmbG9hdCB2
YWx1ZSA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIo
b3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TnVtYmVyKG9ic2VydmVyLCBhY2Nlc3MsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkocmV2aXNpb24g
MjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAkod29ya2luZyBj
b3B5KQpAQCAtNDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR051bWJlckxpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJM
aXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFj
Y2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0
T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCiAgICAgewotICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG93bmVyLCBhY2Nlc3MpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChvYnNlcnZlciwgYWNj
ZXNzKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29u
c3QgU1ZHTnVtYmVyTGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOSAr
MzYsOSBAQCBjbGFzcyBTVkdQYXRoU2VnTGlzdCBmaW5hbCA6IHB1YmxpYyBTVkdQCiAgICAgdXNp
bmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+
IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQorICAgIHN0YXRpYyBSZWY8U1ZHUGF0aFNlZ0xpc3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0T2Jz
ZXJ2ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCiAgICAgewotICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnTGlzdChvd25lciwgYWNjZXNzKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG9ic2VydmVyLCBhY2Nl
c3MpKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoY29u
c3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCkBAIC0x
NjAsNyArMTYwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNWR1BhdGhTZWdMaXN0KGNv
bnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAg
ICAgICA6IEJhc2Uob3RoZXIub3duZXIoKSwgYWNjZXNzKQorICAgICAgICA6IEJhc2Uob3RoZXIu
b2JzZXJ2ZXIoKSwgYWNjZXNzKQogICAgICAgICAsIG1fcGF0aEJ5dGVTdHJlYW0ob3RoZXIucGF0
aEJ5dGVTdHJlYW0oKSkKICAgICB7CiAgICAgfQpAQCAtMTcyLDEwICsxNzIsMTAgQEAgcHJpdmF0
ZToKICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBjaGFuZ2luZyBhbiBpdGVtIGluIHRoZSBs
aXN0LgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5
KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0Q2hhbmdlKERPTUxpdmVPYmplY3QqIG9iamVjdCkg
b3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGl0ZW1zV2lsbENoYW5nZSgpOwotICAgICAgICBCYXNl
Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAgICAgIEJhc2U6OmNvbW1pdENo
YW5nZShvYmplY3QpOwogICAgIH0KIAogICAgIHZvaWQgZW5zdXJlSXRlbXMoKQpJbmRleDogU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQb2ludExpc3QuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvaW50TGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw5ICs0MCw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KCkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25l
ciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1Bv
aW50TGlzdD4gY3JlYXRlKERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1BvaW50TGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1BvaW50TGlzdChvYnNlcnZlciwgYWNjZXNzKSk7CiAgICAgfQogCiAgICAgc3RhdGljIFJl
ZjxTVkdQb2ludExpc3Q+IGNyZWF0ZShjb25zdCBTVkdQb2ludExpc3QmIG90aGVyLCBTVkdQcm9w
ZXJ0eUFjY2VzcyBhY2Nlc3MpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAg
Y2xhc3MgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyA6IHB1YmxpYyBTVgogICAgIHVzaW5nIEJhc2U6
Om1fdmFsdWU7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNj
ZXNzLCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlID0geyB9KQorICAg
IHN0YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKERPTUxpdmVPYmplY3RP
YnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgU1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8ob3duZXIsIGFjY2VzcywgdmFs
dWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byhvYnNlcnZlciwgYWNjZXNzLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDkgKzM2LDkgQEAg
cHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KHZhbHVlKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciog
b3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgRmxvYXRSZWN0JiB2YWx1ZSA9
IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShET01MaXZlT2JqZWN0T2JzZXJ2
ZXIqIG9ic2VydmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IEZsb2F0UmVjdCYg
dmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0
KG93bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1JlY3Qob2JzZXJ2ZXIsIGFjY2VzcywgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCShyZXZpc2lvbiAy
NDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw5ICszNyw5IEBAIGNsYXNzIFNWR1N0cmluZ0xpc3QgZmluYWwgOiBwdWJsaWMg
U1ZHUHIKICAgICB1c2luZyBCYXNlOjptX2l0ZW1zOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIpCisgICAgc3Rh
dGljIFJlZjxTVkdTdHJpbmdMaXN0PiBjcmVhdGUoRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNl
cnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qo
b3duZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdChvYnNl
cnZlcikpOwogICAgIH0KIAogICAgIHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMx
LDEwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVi
bGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZHVHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVy
dHlPd25lciB7CitjbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxT
VkdUcmFuc2Zvcm1WYWx1ZT4sIHB1YmxpYyBET01MaXZlT2JqZWN0T2JzZXJ2ZXIgeworICAgIHVz
aW5nIEJhc2UgPSBTVkdWYWx1ZVByb3BlcnR5PFNWR1RyYW5zZm9ybVZhbHVlPjsKKyAgICB1c2lu
ZyBCYXNlOjpjb21taXRDaGFuZ2U7CisKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1RyYW5z
Zm9ybT4gY3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUpCiAg
ICAgewpAQCAtMTMxLDIwICsxMzQsMTkgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAg
ICB1c2luZyBCYXNlID0gU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT47Ci0KICAg
ICBTVkdUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtVmFsdWU6OlNWR1RyYW5zZm9ybVR5cGUgdHlwZSwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0gPSB7IH0sIGZsb2F0IGFuZ2xlID0gMCwg
Y29uc3QgRmxvYXRQb2ludCYgcm90YXRpb25DZW50ZXIgPSB7IH0pCiAgICAgICAgIDogQmFzZShT
VkdUcmFuc2Zvcm1WYWx1ZSh0eXBlLCBTVkdNYXRyaXg6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0
eUFjY2Vzczo6UmVhZFdyaXRlLCB0cmFuc2Zvcm0pLCBhbmdsZSwgcm90YXRpb25DZW50ZXIpKQog
ICAgIHsKICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fb3duZXI7IH0KKyAgICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2Vy
dmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQmFzZTo6b2JzZXJ2ZXIoKTsgfQorICAgIGNv
bnN0IEVsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQmFz
ZTo6Y29udGV4dEVsZW1lbnQoKTsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShT
VkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRDaGFuZ2UoRE9N
TGl2ZU9iamVjdCogb2JqZWN0KSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RChwcm9wZXJ0eSwgcHJvcGVydHkgPT0gbV92YWx1ZS5tYXRyaXgoKS5wdHIoKSk7Ci0gICAgICAg
IGlmIChvd25lcigpKQotICAgICAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2Uo
dGhpcyk7CisgICAgICAgIEFTU0VSVF9VTlVTRUQob2JqZWN0LCBvYmplY3QgPT0gbV92YWx1ZS5t
YXRyaXgoKS5wdHIoKSk7CisgICAgICAgIGlmIChvYnNlcnZlcigpKQorICAgICAgICAgICAgb2Jz
ZXJ2ZXIoKS0+Y29tbWl0Q2hhbmdlKHRoaXMpOwogICAgICAgICBtX3ZhbHVlLm1hdHJpeERpZENo
YW5nZSgpOwogICAgIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxp
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5o
CShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw5ICszOCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdCgpKTsKICAgICB9CiAKLSAgICBzdGF0
aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlz
dD4gY3JlYXRlKERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3BlcnR5QWNj
ZXNzIGFjY2VzcykKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5z
Zm9ybUxpc3Qob3duZXIsIGFjY2VzcykpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdUcmFuc2Zvcm1MaXN0KG9ic2VydmVyLCBhY2Nlc3MpKTsKICAgICB9CiAKICAgICBzdGF0aWMg
UmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNyZWF0ZShjb25zdCBTVkdUcmFuc2Zvcm1MaXN0JiBvdGhl
ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHku
aAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw3ICs1Niw3
IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghbV9iYXNlVmFsLT5zZXRWYWx1ZShiYXNl
VmFsKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IgfTsKLSAgICAg
ICAgY29tbWl0UHJvcGVydHlDaGFuZ2UobnVsbHB0cik7CisgICAgICAgIGNvbW1pdENoYW5nZShu
dWxscHRyKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2
ZVByb3BlcnR5LmgJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAkod29ya2luZyBjb3B5KQpAQCAt
NDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0QmFzZVZhbChj
b25zdCBQcm9wZXJ0eVR5cGUmIGJhc2VWYWwpCiAgICAgewogICAgICAgICBtX2Jhc2VWYWwtPnNl
dFZhbHVlKGJhc2VWYWwpOwotICAgICAgICBjb21taXRQcm9wZXJ0eUNoYW5nZShudWxscHRyKTsK
KyAgICAgICAgY29tbWl0Q2hhbmdlKG51bGxwdHIpOwogICAgICAgICByZXR1cm4geyB9OwogICAg
IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eS5jcHAJKHJldmlzaW9uIDI0OTg1MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zMCwxNiArMzAsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdQcm9wZXJ0eU93
bmVyKiBTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lcigpIGNvbnN0CitET01MaXZlT2JqZWN0T2Jz
ZXJ2ZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9jb250ZXh0RWxlbWVudDsKIH0KIAotdm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21t
aXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSopCitFbGVtZW50KiBTVkdBbmltYXRlZFByb3Bl
cnR5Ojpjb250ZXh0RWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dEVsZW1l
bnQ7Cit9CisKK3ZvaWQgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKERPTUxpdmVP
YmplY3QqKQogewogICAgIGlmICghbV9jb250ZXh0RWxlbWVudCkKICAgICAgICAgcmV0dXJuOwot
ICAgIG1fY29udGV4dEVsZW1lbnQtPmNvbW1pdFByb3BlcnR5Q2hhbmdlKCp0aGlzKTsKKyAgICBt
X2NvbnRleHRFbGVtZW50LT5jb21taXRDaGFuZ2UoKnRoaXMpOwogfQogCiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5o
CShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDcgKzI1LDYgQEAKIAogI3By
YWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCiAjaW5jbHVkZSA8d3Rm
L09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KQEAgLTM0LDE0ICszMywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5IDog
cHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0eT4sIHB1YmxpYyBTVkdQcm9wZXJ0
eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291bnRlZDxT
VkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIERPTUxpdmVPYmplY3RPYnNlcnZlciB7CiBwdWJs
aWM6CiAgICAgdmlydHVhbCB+U1ZHQW5pbWF0ZWRQcm9wZXJ0eSgpID0gZGVmYXVsdDsKICAgICAK
ICAgICAvLyBNYW5hZ2UgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KICAgICBib29s
IGlzQXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRFbGVtZW50OyB9CiAgICAgdm9p
ZCBkZXRhY2goKSB7IG1fY29udGV4dEVsZW1lbnQgPSBudWxscHRyOyB9Ci0gICAgU1ZHRWxlbWVu
dCogY29udGV4dEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRFbGVtZW50OyB9Cisg
ICAgRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICB2
aXJ0dWFsIFN0cmluZyBiYXNlVmFsQXNTdHJpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgYW5pbVZhbEFzU3RyaW5nKCkgY29uc3QgeyByZXR1
cm4gZW1wdHlTdHJpbmcoKTsgfQpAQCAtNjYsOCArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgewog
ICAgIH0KICAgICAKLSAgICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRl
OwotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsK
KyAgICBET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21taXRDaGFuZ2UoRE9NTGl2ZU9iamVjdCopIG92ZXJyaWRlOwogICAgIAogICAg
IFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lz
QW5pbWF0aW5nIHsgZmFsc2UgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAkocmV2aXNpb24gMjQ5ODUw
KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDExICsxMjksMTEgQEAgcHJvdGVjdGVkOgogICAg
IH0KIAogICAgIC8vIENhbGxlZCB3aGVuIG1fYmFzZVZhbCBjaGFuZ2VzIG9yIGFuIGl0ZW0gaW4g
bV9iYXNlVmFsIGNoYW5nZXMuCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9w
ZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRDaGFuZ2UoRE9NTGl2ZU9i
amVjdCogb2JqZWN0KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAg
ICAgICAgICAgICptX2FuaW1WYWwgPSBtX2Jhc2VWYWw7Ci0gICAgICAgIFNWR0FuaW1hdGVkUHJv
cGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKKyAgICAgICAgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKG9iamVjdCk7CiAgICAgfQogCiAgICAgUmVmPExpc3RU
eXBlPiBtX2Jhc2VWYWw7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFZhbHVlUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaAkocmV2aXNpb24gMjQ5ODUwKQor
KysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE1MCwxMSArMTUwLDExIEBAIHByb3RlY3RlZDoKICAgICB9
CiAKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwgY2hhbmdlcy4KLSAgICB2b2lkIGNvbW1p
dFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKKyAgICB2b2lk
IGNvbW1pdENoYW5nZShET01MaXZlT2JqZWN0KiBvYmplY3QpIG92ZXJyaWRlCiAgICAgewogICAg
ICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgbV9hbmltVmFsLT5zZXRWYWx1ZShtX2Jh
c2VWYWwtPnZhbHVlKCkpOwotICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9w
ZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAgICAgIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1p
dENoYW5nZShvYmplY3QpOwogICAgIH0KIAogICAgIFJlZjxQcm9wZXJ0eVR5cGU+IG1fYmFzZVZh
bDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5j
cHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisKKyNpbmNsdWRlICJTVkdFbGVtZW50LmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY29uc3QgU1ZHRWxlbWVudCogU1ZHUHJvcGVydHk6OnN2Z0NvbnRl
eHRFbGVtZW50KCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogZWxlbWVudCA9IGNvbnRleHRFbGVt
ZW50KCkpIHsKKyAgICAgICAgQVNTRVJUKGlzPFNWR0VsZW1lbnQ+KGVsZW1lbnQpKTsKKyAgICAg
ICAgcmV0dXJuIGRvd25jYXN0PFNWR0VsZW1lbnQ+KGVsZW1lbnQpOworICAgIH0KKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw1MSArMjAsMzcg
QEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCisjaW5j
bHVkZSAiRE9NTGl2ZU9iamVjdC5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU1ZHRWxlbWVudDsKKwogZW51bSBjbGFzcyBT
VkdQcm9wZXJ0eUFjY2VzcyA6IHVpbnQ4X3QgeyBSZWFkV3JpdGUsIFJlYWRPbmx5IH07CiBlbnVt
IGNsYXNzIFNWR1Byb3BlcnR5U3RhdGUgOiB1aW50OF90IHsgQ2xlYW4sIERpcnR5IH07CiAKLWNs
YXNzIFNWR1Byb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHUHJvcGVydHk+IHsKK2NsYXNz
IFNWR1Byb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHUHJvcGVydHk+LCBwdWJsaWMgRE9N
TGl2ZU9iamVjdCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1
bHQ7CiAKLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgot
ICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lk
IGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQorICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCisg
ICAgdm9pZCBhdHRhY2goRE9NTGl2ZU9iamVjdE9ic2VydmVyKiBvYnNlcnZlciwgU1ZHUHJvcGVy
dHlBY2Nlc3MgYWNjZXNzKQogICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293bmVyKTsKKyAgICAg
ICAgRE9NTGl2ZU9iamVjdDo6YXR0YWNoKG9ic2VydmVyKTsKICAgICAgICAgQVNTRVJUKG1fc3Rh
dGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pOwotICAgICAgICBtX293bmVyID0gb3duZXI7
CiAgICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwogICAgIH0KIAogICAgIHZvaWQgZGV0YWNoKCkK
ICAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxscHRyOwogICAgICAgICBtX2FjY2VzcyA9IFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7CiAgICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0
eVN0YXRlOjpDbGVhbjsKKyAgICAgICAgRE9NTGl2ZU9iamVjdDo6ZGV0YWNoKCk7CiAgICAgfQot
Ci0gICAgY29uc3QgU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAg
IHJldHVybiBtX293bmVyLT5hdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpOwotICAgIH0KLQotICAg
IHZvaWQgY29tbWl0Q2hhbmdlKCkKLSAgICB7Ci0gICAgICAgIGlmICghbV9vd25lcikKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgbV9vd25lci0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhp
cyk7Ci0gICAgfQotCisgICAgCiAgICAgLy8gRE9NIGFjY2Vzcy4KICAgICBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MoKSBjb25zdCB7IHJldHVybiBtX2FjY2VzczsgfQogICAgIGJvb2wgaXNSZWFk
T25seSgpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzID09IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
T25seTsgfQpAQCAtODgsMTUgKzc0LDIxIEBAIHB1YmxpYzoKICNpZiAhQ09NUElMRVIoTVNWQykK
IHByb3RlY3RlZDoKICNlbmRpZgotICAgIFNWR1Byb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nl
c3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBtX293bmVyKG93bmVyKQorICAgIFNWR1Byb3BlcnR5
KERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQorICAgICAgICA6IERP
TUxpdmVPYmplY3Qob2JzZXJ2ZXIpCiAgICAgICAgICwgbV9hY2Nlc3MoYWNjZXNzKQogICAgIHsK
ICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eU93bmVyKiBtX293bmVyIHsgbnVsbHB0ciB9OworICAg
IHZpcnR1YWwgYm9vbCBpc1NWR1Byb3BlcnR5KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAg
IGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0NvbnRleHRFbGVtZW50KCkgY29uc3Q7CisKICAgICBTVkdQ
cm9wZXJ0eUFjY2VzcyBtX2FjY2VzcyB7IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUgfTsK
ICAgICBTVkdQcm9wZXJ0eVN0YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCitTUEVDSUFMSVpFX1RZUEVfVFJBSVRT
X0JFR0lOKFdlYkNvcmU6OlNWR1Byb3BlcnR5KQorICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25z
dCBXZWJDb3JlOjpET01MaXZlT2JqZWN0JiBvYmplY3QpIHsgcmV0dXJuIG9iamVjdC5pc1NWR1By
b3BlcnR5KCk7IH0KK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oCShyZXZpc2lvbiAy
NDk4NTApCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3Qu
aAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdQcm9wZXJ0eUxpc3Qg
OiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93
bmVyIHsKK2NsYXNzIFNWR1Byb3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdMaXN0PFJlZjxQcm9wZXJ0
eVR5cGU+PiwgcHVibGljIERPTUxpdmVPYmplY3RPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdXNp
bmcgQmFzZUxpc3QgPSBTVkdMaXN0PFJlZjxQcm9wZXJ0eVR5cGU+PjsKICAgICB1c2luZyBCYXNl
TGlzdDo6aXNFbXB0eTsKQEAgLTQyLDEzICs0MiwxMyBAQCBwdWJsaWM6CiAjaWYgIUNPTVBJTEVS
KE1TVkMpCiBwcm90ZWN0ZWQ6CiAjZW5kaWYKLSAgICB1c2luZyBTVkdQcm9wZXJ0eU93bmVyOjpT
VkdQcm9wZXJ0eU93bmVyOworICAgIHVzaW5nIERPTUxpdmVPYmplY3RPYnNlcnZlcjo6RE9NTGl2
ZU9iamVjdE9ic2VydmVyOwogICAgIHVzaW5nIEJhc2VMaXN0OjptX2l0ZW1zOwogICAgIHVzaW5n
IEJhc2VMaXN0OjptX2FjY2VzczsKLSAgICB1c2luZyBCYXNlTGlzdDo6bV9vd25lcjsKKyAgICB1
c2luZyBCYXNlTGlzdDo6Y29tbWl0Q2hhbmdlOwogCi0gICAgU1ZHUHJvcGVydHlMaXN0KFNWR1By
b3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0g
U1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBCYXNlTGlzdChvd25lciwg
YWNjZXNzKQorICAgIFNWR1Byb3BlcnR5TGlzdChET01MaXZlT2JqZWN0T2JzZXJ2ZXIqIG9ic2Vy
dmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nl
c3M6OlJlYWRXcml0ZSkKKyAgICAgICAgOiBCYXNlTGlzdChvYnNlcnZlciwgYWNjZXNzKQogICAg
IHsKICAgICB9CiAKQEAgLTY0LDEyICs2NCwxMyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBp
dGVtLT5kZXRhY2goKTsKICAgICB9CiAKLSAgICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXI7IH0KKyAgICBET01MaXZlT2JqZWN0T2JzZXJ2
ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gQmFzZUxpc3Q6Om9ic2VydmVy
KCk7IH0KKyAgICBjb25zdCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIEJhc2VMaXN0Ojpjb250ZXh0RWxlbWVudCgpOyB9CiAKLSAgICB2b2lkIGNvbW1p
dFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGUKKyAgICB2b2lkIGNvbW1pdENo
YW5nZShET01MaXZlT2JqZWN0Kikgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChvd25lcigp
KQotICAgICAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAg
ICAgIGlmIChvYnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0Q2hhbmdl
KHRoaXMpOwogICAgIH0KIAogICAgIFJlZjxQcm9wZXJ0eVR5cGU+IGF0KHVuc2lnbmVkIGluZGV4
KSBjb25zdCBvdmVycmlkZQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlPd25lci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5T3duZXIuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oCShub25leGlzdGVudCkKQEAgLTEs
NTcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOC0yMDE5IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0gICAgCi1jbGFzcyBT
VkdFbGVtZW50OwotY2xhc3MgU1ZHUHJvcGVydHk7Ci0KLWNsYXNzIFNWR1Byb3BlcnR5T3duZXIg
ewotcHVibGljOgotICAgIHZpcnR1YWwgflNWR1Byb3BlcnR5T3duZXIoKSA9IGRlZmF1bHQ7Ci0K
LSAgICB2aXJ0dWFsIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbnVs
bHB0cjsgfQotICAgIAotICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogYXR0cmlidXRlQ29u
dGV4dEVsZW1lbnQoKSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKCFvd25lcigpKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBvd25lcigpLT5hdHRyaWJ1dGVD
b250ZXh0RWxlbWVudCgpOwotICAgIH0KLSAgICAKLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0UHJv
cGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KQotICAgIHsKLSAgICAgICAgaWYgKCFv
d25lcigpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBvd25lcigpLT5jb21taXRQcm9w
ZXJ0eUNoYW5nZShwcm9wZXJ0eSk7Ci0gICAgfQotICAgIAotcHJvdGVjdGVkOgotICAgIFNWR1By
b3BlcnR5T3duZXIoKSA9IGRlZmF1bHQ7Ci19OwotCi19CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBT
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmgKX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
XwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oCShyZXZpc2lvbiAyNDk4NTApCisrKyBTb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTY0LDE0ICs2NCwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiAgICAgLy8gQmFzZSBhbmQg
ZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1By
b3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVBy
b3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQ
cm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZU9iamVj
dE9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9
IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCisgICAgICAgIDogU1ZHUHJvcGVydHkob2Jz
ZXJ2ZXIsIGFjY2VzcykKICAgICB7CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGFuIGluaXRpYWxp
emVkIGFuZCBhdHRhY2hlZCBwcm9wZXJ0eS4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3Bl
cnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IFByb3BlcnR5
VHlwZSYgdmFsdWUpCi0gICAgICAgIDogU1ZHUHJvcGVydHkob3duZXIsIGFjY2VzcykKKyAgICBT
VkdWYWx1ZVByb3BlcnR5KERPTUxpdmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcywgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKKyAgICAgICAgOiBT
VkdQcm9wZXJ0eShvYnNlcnZlciwgYWNjZXNzKQogICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAg
ICAgewogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVl
UHJvcGVydHlMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAkocmV2aXNpb24gMjQ5ODUwKQorKysgU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3QuaAkod29ya2luZyBjb3B5
KQpAQCAtNzUsMTQgKzc1LDE0IEBAIHByb3RlY3RlZDoKICAgICB1c2luZyBCYXNlOjpyZW1vdmU7
CiAKICAgICAvLyBCYXNlIGFuZCBkZWZhdWx0IGNvbnN0cnVjdG9yLiBEbyBub3QgdXNlICJ1c2lu
ZyBCYXNlOjpCYXNlIiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBTVkdW
YWx1ZVByb3BlcnR5TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciA9IG51bGxwdHIsIFNWR1By
b3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAg
ICAgIDogQmFzZShvd25lciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHlMaXN0KERPTUxp
dmVPYmplY3RPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBh
Y2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQorICAgICAgICA6IEJhc2Uob2Jz
ZXJ2ZXIsIGFjY2VzcykKICAgICB7CiAgICAgfQogCiAgICAgLy8gVXNlZCBieSBTVkdBbmltYXRl
ZFByb3BlcnR5TGlzdCB3aGVuIGNyZWF0aW5nIGl0IGFuaW1WYWwgZnJvbSBiYXNlVmFsLgogICAg
IFNWR1ZhbHVlUHJvcGVydHlMaXN0KGNvbnN0IFNWR1ZhbHVlUHJvcGVydHlMaXN0JiBvdGhlciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkK
LSAgICAgICAgOiBCYXNlKG90aGVyLm93bmVyKCksIGFjY2VzcykKKyAgICAgICAgOiBCYXNlKG90
aGVyLm9ic2VydmVyKCksIGFjY2VzcykKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVt
cy4KICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379990</attachid>
            <date>2019-10-01 20:32:54 -0700</date>
            <delta_ts>2019-10-01 22:03:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201782-20191001203253.patch</filename>
            <type>text/plain</type>
            <size>106114</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uODQ1YTg1NTM2M2E2NTE0MDM2MmUxNjhhMGVkNTcz
MDBlYmRiMmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MCBAQAorMjAxOS0xMC0wMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxh
Y2UgU1ZHUHJvcGVydHkvU1ZHUHJvcGVydHlPd25lciBieSBET01MaXZlUHJvcGVydHkvRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTc4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgcmVwbGFjaW5nIFNWR1BvaW50IGJ5IERP
TVBvaW50LgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywgbmFtZWQgRE9NTGl2ZVByb3Bl
cnR5LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlIHRoZQorICAgICAgICAgICBjaGFuZ2VzIGlu
IHRoaXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gVGhpcyBpcyByZXBsYWNpbmcgU1ZHUHJvcGVy
dHkuCisgICAgICAgICAgIERPTVBvaW50IHdpbGwgYmUgbWFkZSBpbiBhIHN1cGVyIG9mIGl0IGFs
c28gaW4gYSBmb2xsb3dpbmcgcGF0Y2guCisKKyAgICAgICAgLS0gQWRkIGEgbmV3IGNsYXNzLCBu
YW1lZCBET01MaXZlUHJvcGVydHlPYnNlcnZlciBhbmQgbWFrZSBpdCB0aGUgYmFzZQorICAgICAg
ICAgICBjbGFzcyBvZiBET01MaXZlUHJvcGVydHkgb2JzZXJ2ZXJzLiBDdXJyZW50bHkgdGhlIGZv
bGxvd2luZyBjbGFzcyBhcmUKKyAgICAgICAgICAgbWFkZSBzdXBlciBjbGFzc2VzIG9mIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyOgorICAgICAgICAgICAxLiBTVkdFbGVtZW50OiBUaGlzIG9ic2Vy
dmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHByb3BlcnRpZXMuCisgICAgICAgICAgIDIu
IFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gaXRzIGJh
c2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5TGlzdDogVGhpcyBvYnNlcnZlcyB0aGUg
Y2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAgIDQuIFNWR1RyYW5zZm9ybTogVGhpcyBv
YnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJseWluZyBTVkdNYXRyaXguCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RP
TUxpdmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0
eTo6aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6
Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6YXR0
YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6c3ZnQ29udGV4dEVsZW1lbnQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eSk6CisgICAgICAgICog
ZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpwcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjppc1Byb3Bl
cnR5UmVhZE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2Jz
ZXJ2ZXI6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5
Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdM
ZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdMZW5ndGg6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0
aExpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpTVkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBz
dmcvU1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6Cisg
ICAgICAgICogc3ZnL1NWR051bWJlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpj
cmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6Cisg
ICAgICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlz
dC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAq
IHN2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdM
aXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdU
cmFuc2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZl
ciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQ
cm9wZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpv
d25lciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWRQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFs
dWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5UGFpckFjY2Vzc29ySW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaDoK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHTWVtYmVyQWNjZXNzb3I6Om1hdGNoZXMgY29uc3QpOgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFu
aW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOiBSZW1vdmVk
LgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaDoKKyAgICAg
ICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUNvbG9yQW5pbWF0
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0
ZUxlbmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JG
YWN0b3J5OjpjcmVhdGVMZW5ndGhMaXN0QW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZU51bWJlckFuaW1hdG9yKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGVTdHJpbmdBbmltYXRv
cik6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6
OlNWR1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUFuaW1h
dG9yOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVz
L1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9w
ZXJ0eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdW
YWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yOjpTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKToK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1w
bC5oOgorCisyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFNWR1Byb3BlcnR5U3RhdGUgZnJvbSBTVkdQcm9wZXJ0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDM5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
cyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZHUG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAg
ICAgU1ZHUHJvcGVydHkga2VlcHMgYSBtZW1iZXIgb2YgdHlwZSBTVkdQcm9wZXJ0eVN0YXRlIHdo
aWNoIHRlbGxzIHdoZXRoZXIKKyAgICAgICAgaXQgbmVlZHMgdG8gYmUgcmUtc2VyaWFsaXplZCB0
byBpdHMgYXR0cmlidXRlIG9yIG5vdC4gQnV0IHRoZSBkaXJ0eSBzdGF0ZQorICAgICAgICBpcyBv
bmx5IHNldCBpbiBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSgpLgorCisgICAgICAg
IFNvIGluc3RlYWQgb2YgaGF2aW5nIFNWR0VsZW1lbnQgc2VuZHMgdGhpcyBjaGFuZ2UgYmFjayB0
byB0aGUgcHJvcGVydHksCisgICAgICAgIHdlIGFyZSBnb2luZyB0byBrZWVwIGEgSGFzaFNldDxR
dWFsaWZpZWROYW1lPiBpbiBTVkdFbGVtZW50IHRvIHRlbGwgd2hpY2gKKyAgICAgICAgYXR0cmli
dXRlcyBuZWVkIHRvIGJlIHJlLXNlcmlhbGl6ZWQuIEFuZCBpbnN0ZWFkIG9mIGNhbGxpbmcgdGhl
IHZpcnR1YWwKKyAgICAgICAgbWV0aG9kIHN5bmNocm9uaXplKCkgd2hpY2ggd2FzIHJldHVybmlu
ZyBPcHRpb25hbDxTdHJpbmc+LCB3ZSBhcmUgZ29pbmcKKyAgICAgICAgdG8gY2FsbCB0aGUgdmly
dHVhbCBtZXRob2QgdmFsdWVBc1N0cmluZygpIHdoaWNoIHJldHVybnMgYSBTdHJpbmcuCisKKyAg
ICAgICAgKiBzdmcvU1ZHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50
OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpz
eW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRWxlbWVudDo6
Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6Cisg
ICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6aW5p
dGlhbFZhbHVlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRz
PFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT46OmZyb21TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlPjo6cGFyc2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFp
dHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6dG9TdHJpbmcpOiBEZWxldGVkLgorICAg
ICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVByb3BlcnR5Lmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OnNldERpcnR5KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6OnN5bmNocm9uaXpl
KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
TGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWly
QWNjZXNzb3JJbXBsLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1
ZVByb3BlcnR5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01lbWJlckFjY2Vzc29yOjp2YWx1ZUFzU3RyaW5nIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR01lbWJlckFjY2Vzc29yOjpzeW5jaHJvbml6ZSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJl
ckFjY2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHk6OmRldGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNE
aXJ0eSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6c2V0
RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OnN5bmNocm9u
aXplKTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5
Lmg6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxl
LmNvbT4KKworICAgICAgICBSZW1vdmUgU1ZHUHJvcGVydHlBY2Nlc3MgZnJvbSBTVkdQcm9wZXJ0
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyNDE1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBp
cyBhIHN0ZXAgdG93YXJkcyByZXBsYWNpbmcgU1ZHUG9pbnQgYnkgRE9NUG9pbnQuCisKKyAgICAg
ICAgQW4gU1ZHUHJvcGVydHkgaXMgcmVhZC1vbmx5IGlmIGl0IG9yIGl0cyBvd25lciBpcyB0aGUg
YW5pbVZhbCBvZiBhbgorICAgICAgICBTVkdBbmltYXRlZFByb3BlcnR5IG9yIFNWR0FuaW1hdGVk
UHJvcGVydHlMaXN0LiBJbiB0aGlzIGNhc2UgYWxsIGF0dGVtcHRzCisgICAgICAgIHRvIGNoYW5n
ZSBpdCB0aHJvdWdoIEphdmFTY3JpcHQgc2hvdWxkIHRocm93IGV4cGVjdGlvbnMuCisKKyAgICAg
ICAgU28gaW5zdGVhZCBvZiBrZWVwaW5nIGEgbWVtYmVyIG9mIFNWR1Byb3BlcnR5QWNjZXNzIGlu
IGVhY2ggU1ZHUHJvcGVydHksCisgICAgICAgIHdlIGNhbiB3YWxrIHRocm91Z2ggdGhlIFNWR1By
b3BlcnR5T3duZXIgY2hhaW4gdGlsbCB3ZSByZWFjaCBhbiBvd25lciBvZgorICAgICAgICB0eXBl
IFNWR0FuaW1hdGVkUHJvcGVydHkgb3IgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuIFRoaXMgb3du
ZXIgY29tcGFyZXMKKyAgICAgICAgdGhlIHByb3BlcnR5IHRvIGJlIG1vZGlmaWVkIHdpdGggaXRz
IGFuaW1WYWwuIEFuZCBpZiB0aGV5IGFyZSB0aGUgc2FtZSwKKyAgICAgICAgaXQgd2lsbCByZXR1
cm4gJ3RydWUnIHRocm91Z2ggaXRzIHZpcnR1YWwgbWV0aG9kIGlzUHJvcGVydHlSZWFkT25seSgp
LgorCisgICAgICAgICogc3ZnL1NWR0FuZ2xlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmds
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9T
VkdMZW5ndGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAg
ICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNWR0xlbmd0aExp
c3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR01h
dHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJlckxpc3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5oOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm0uaDoKKyAgICAg
ICAgKiBzdmcvU1ZHVHJhbnNmb3JtTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFBy
b3BlcnR5TGlzdDo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Q6OmVuc3VyZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5OjplbnN1cmVBbmltVmFsKToK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUHJvcGVydHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6
ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojpjb250ZXh0RWxlbWVudCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6aXNSZWFkT25seSBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6U1ZHUHJvcGVydHkpOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHk6OmFjY2VzcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
cm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlPd25lci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6
aXNQcm9wZXJ0eVJlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
T3duZXI6OnByb3BlcnR5Q29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHUHJvcGVydHlPd25lcjo6YXR0cmlidXRlQ29udGV4dEVsZW1lbnQgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNWR1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAq
IHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFsdWVQcm9wZXJ0eUxpc3QpOgorCisyMDE5LTEw
LTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAg
ICAgTWFrZSB0aGUgU1ZHIHByb3BlcnRpZXMgb2YgU1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQg
ZGV0YWNoZWQgcHJvcGVydGllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjAyNDExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVG8gZmFjaWxpdGF0ZSBhY2Nlc3NpbmcgdGhlIFNWR1Byb3BlcnRpZXMsIG1h
a2UgYWxsIHRoZSBwcm9wZXJ0aWVzIG9mCisgICAgICAgIFNWR1ZpZXdTcGVjIG1vZGlmaWFibGUg
YnV0IGRldGFjaGVkIHByb3BlcnRpZXMuIFRoaXMgd2lsbCBiZSBpbiBjb21wbGlhbmNlCisgICAg
ICAgIHdpdGggdGhlIHNwZWNzOiBodHRwczovL3d3dy53My5vcmcvVFIvU1ZHMTEvdHlwZXMuaHRt
bCNJbnRlcmZhY2VTVkdWaWV3U3BlYy4KKworICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpTVkdGaXRUb1ZpZXdCb3gp
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3gpOgorICAg
ICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoKKyAgICAgICAgKiBzdmcvU1ZHVmlld1NwZWMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKToKKyAgICAg
ICAgKiBzdmcvU1ZHVmlld1NwZWMuaDoKKwogMjAxOS0xMC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdCB0byBmaXggV2luZG93
cyBidWlsZCBhZnRlciByMjUwNTI3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRjOTVkOGVhYjQ3N2E3YzAwYWU1
NTQ1ZDIzYTc5ZWUuLjhiYTIwYWQxNjhjYTgyOTQzMjY5MTlhZjgzMmVlZThmM2FjNGFlYTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTIwODUsMTIgKzIwODUsMTIgQEAKIAkJNzFFRkNFREMyMDJCMzhBOTAwRDdDNDExIC8qIEFu
aW1hdGlvbkVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzFFRkNFRDcyMDJCMzg4RDAwRDdDNDExIC8qIEFuaW1hdGlvbkVmZmVjdC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMTQ0MzMxMjIz
RUM4NTQwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIxNDQz
MzIyMjNFQzg1RjAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk3
MjE0NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAv
KiBTVkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUVFNTM2MDIy
M0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2OEMwMEY1RDgyOCAv
KiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIEltYWdlUGFpbnRpbmdP
cHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVEMzMwMUEzQThCMjMw
MEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVFNTUwMURDODBEN0Yw
MEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcy
NEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRGMURD
N0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDMTIzNDQ0MDE1
MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVBy
b3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNzI4MzE1QzIyMzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVCRTIz
NDQyMjkxMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZFODEwOEY0NzNGMDBF
QTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxp
bmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMwMDdGQzBBQyAvKiBN
ZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCAqLzsgfTsKIAkJ
NzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNzBEMENFNzJEMDA3RkMw
QUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTg1NjUsMTAgKzg1NjUsOCBAQAogCQk1
NUVFNTM1RDIyM0IyQTBEMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3Nv
ckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVF
RTUzNUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRpb25BZGRpdGl2
ZVZhbHVlRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNUYy
MjNCMkEwRjAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQW5pbWF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBbmlt
YXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVFNTM2MDIyM0IyQTIxMDBG
QkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTVkdQcm9wZXJ0eU93bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1
RUU1MzYxMjIzQjJBMjIwMEZCQTk0NCAvKiBTVkdBdHRyaWJ1dGVBbmltYXRvci5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBdHRyaWJ1dGVBbmltYXRvci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzYyMjIzQjJBMjMwMEZCQTk0NCAv
KiBTVkdBbmltYXRlZFByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR0FuaW1hdGVkUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTVF
RTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTU1RUU1MzY0MjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdBdHRyaWJ1dGVBbmltYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBdHRyaWJ1dGVBbmltYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUZBN0ZGQTIxMTBFQ0Q3MDA1QUVGRTcgLyog
U1ZHWm9vbUFuZFBhblR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHWm9vbUFuZFBhblR5cGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTcxRTUzODUxNjAwMzU2NjAxIC8q
IENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC05NDQ5LDYgKzk0NDcsOCBAQAogCQk3MjdBRkVEMTFBMkVBNkEwMDAw
NDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIxQTJF
QTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMzFBMkVB
NkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhUc1JH
Qi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUJFMjM0NDIyOTEwMDA3
RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3QzcgLyogSW1h
Z2VQYWludGluZ09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VQYWludGluZ09wdGlvbnMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjExQTJFOEQyRjAwNEM1NjJB
IC8qIEpTRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBK
U0VYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2MjFBMkU4
RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTYxNjMsMTMg
KzE2MTYzLDExIEBACiAJCQkJNTVEQ0M1MjUyMjQwNzQ5RTAwQzI2RTMyIC8qIFNWR1ByaW1pdGl2
ZUxpc3QuaCAqLywKIAkJCQk3MjY2RjAxNTIyNDFDMDk4MDA4MzM5NzUgLyogU1ZHUHJpbWl0aXZl
UHJvcGVydHlBbmltYXRvci5oICovLAogCQkJCTcyNjZGMDE0MjI0MUJGQjIwMDgzMzk3NSAvKiBT
VkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oICovLAotCQkJCTU1RUU1MzYzMjIzQjJB
MjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovLAogCQkJCTU1RENDNTI2MjI0MDc0RkEwMEMy
NkUzMiAvKiBTVkdQcm9wZXJ0eUFjY2Vzc29yLmggKi8sCiAJCQkJNTVEQ0M1MjcyMjQwNzUwQjAw
QzI2RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3JJbXBsLmggKi8sCiAJCQkJNzI2NkYwMTYyMjQx
QzBGRTAwODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJCQk3MjY2RjAxMzIy
NDFCQ0UyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaCAqLywKIAkJCQk3
MjY2RjAyNzIyNDMxMDkyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlMaXN0LmggKi8sCi0JCQkJNTVF
RTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAqLywKIAkJCQk1NUJF
MDI1QzIyM0IyOUMzMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmggKi8sCiAJ
CQkJNTVCRTAyNTcyMjNCMjlDMDAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5UmVnaXN0cnkuaCAqLywK
IAkJCQkwODhBMEUwMzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCAqLywK
QEAgLTI3NTU5LDYgKzI3NTU3LDggQEAKIAkJCQlBODE4NUYzNjA5NzY1NzY1MDA1ODI2RDkgLyog
RE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4MTg1RjMzMDk3NjU3NjUwMDU4MjZEOSAv
KiBET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCTkzRUVDMUU5MDlDMjg3NzcwMEM1MTVEMSAv
KiBET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCisJCQkJNzI4MzE1QzAyMzQ0MjI5MjAwMDdEMjc3
IC8qIERPTUxpdmVQcm9wZXJ0eS5oICovLAorCQkJCTcyODMxNUJFMjM0NDIyOTEwMDA3RDI3NyAv
KiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovLAogCQkJCUY0QjQyMkMyMjIwQzAwMDAwMDlF
MUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oICovLAogCQkJCTBGNDk2Njk5MURCNDA4QzEwMEEyNzRC
QiAvKiBET01Qb2ludC5oICovLAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEyNzRCQiAvKiBET01Q
b2ludC5pZGwgKi8sCkBAIC0yOTE1Myw2ICsyOTE1Myw4IEBACiAJCQkJRTNBNzc2NjcxREM4NUQy
ODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUUzQTc3
NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZpbHRlci5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNzI4MzE1QzEyMzQ0NDAxNTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0
eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI4MzE1QzIyMzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZBQ0VDQTFFQ0E5NTY5
MDA0QkQwMTIgLyogRE9NTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0JCQkNDNzFGNTYw
NTgxMDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0LmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZB
Q0VDQjFFQ0E5NTZEMDA0QkQwMTIgLyogRE9NTWF0cml4SW5pdC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0zMTk3Niw4ICszMTk3OCw2IEBACiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAwNzFCNzgyIC8qIFNW
R1BvbHlsaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdBOTcwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJzICovLAogCQkJCTU1
RENDNTI4MjI0MDdCMjAwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0LmggaW4gSGVhZGVycyAq
LywKLQkJCQk3MjE0NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBIZWFk
ZXJzICovLAotCQkJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eU93bmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJv
cGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlBMEQwMEJGMjIwMDcxQjc4
MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4RURF
MTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9ET01MaXZlUHJvcGVydHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODg4OGQzN2Q2ZWY3YTdhMmY0NDU5
ZTgxOWVhMzVlNzY5Y2I3MTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RPTUxpdmVQcm9wZXJ0eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisqIENvcHlyaWdodCAoQykg
MjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eSA6IHB1
YmxpYyBSZWZDb3VudGVkPERPTUxpdmVQcm9wZXJ0eT4geworcHVibGljOgorICAgIHZpcnR1YWwg
fkRPTUxpdmVQcm9wZXJ0eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1hbmFnaW5nIHRoZSByZWxh
dGlvbnNoaXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCisgICAgYm9vbCBpc0F0dGFjaGVkKCkgY29uc3Qg
eyByZXR1cm4gbV9vYnNlcnZlcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNl
cnZlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKworICAgIHZvaWQgYXR0YWNoKERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKKyAgICB7CisgICAgICAgIEFTU0VSVCgh
bV9vYnNlcnZlcik7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlcjsKKyAgICB9CisKKyAg
ICB2b2lkIGRldGFjaCgpCisgICAgeworICAgICAgICBtX29ic2VydmVyID0gbnVsbHB0cjsKKyAg
ICB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVu
dCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHN2Z0NvbnRleHRF
bGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAgICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbV9vYnNlcnZlci0+cHJvcGVydHlT
VkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIGJvb2wgaXNSZWFkT25seSgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gbV9vYnNlcnZlciAmJiBtX29ic2VydmVyLT5pc1Byb3Bl
cnR5UmVhZE9ubHkoKnRoaXMpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0aGUgbGl2ZSBwcm9w
ZXJ0eSBjaGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZvaWQgY29tbWl0Q2hh
bmdlKCkKKyAgICB7CisgICAgICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9vYnNlcnZlci0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAg
fQorCisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7IH0KKworcHJvdGVjdGVkOgorICAgIERPTUxpdmVQcm9wZXJ0eShET01MaXZl
UHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6IG1fb2JzZXJ2
ZXIob2JzZXJ2ZXIpCisgICAgeworICAgIH0KKworICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVy
KiBtX29ic2VydmVyIHsgbnVsbHB0ciB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kMGE5MDdhYzE2NjAxOTdmZDJjMjU3YmRiNjk4ZWJiMzNjOTc1MjBhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKQEAgLTAs
MCArMSw2NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5OworY2xhc3MgU1ZHRWxlbWVu
dDsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKCkgPSBkZWZhdWx0OworCisgICAgLy8gVGhlIG9i
c2VydmVyIGl0c2VsZiBtYXkgaGF2ZSBhbiBvYnNlcnZlci4KKyAgICB2aXJ0dWFsIERPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKwor
ICAgIC8vIFRyYXZlcnNlIHRoZSBvYnNlcnZlcnMgY2hhaW4gdGlsbCBhbiBFbGVtZW50IG9ic2Vy
dmVyIGlzIHJlYWNoZWQuCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBwcm9wZXJ0eVNW
R0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghb2JzZXJ2ZXIoKSkK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKS0+
cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBp
c1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3QK
KyAgICB7CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpICYmIG9ic2VydmVyKCktPmlzUHJvcGVy
dHlSZWFkT25seShwcm9wZXJ0eSk7CisgICAgfQorCisgICAgLy8gQ29tbWl0IHRoZSBsaXZlIHBy
b3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hhaW4uCisgICAgdmlydHVhbCB2b2lk
IGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkpCisgICAgewor
ICAgICAgICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG9i
c2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKKyAgICB9CisKK3Byb3Rl
Y3RlZDoKKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVsdDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmdsZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKaW5kZXggOWM2MTczMmFlOTMx
Yzk4NTRlNzU2OWUxY2IyMmE2ZWQ4ZGFmNWIwMy4uMDRiMjE2ZmE3NmVlMGFjMjg3NmE2M2UwZDZi
Mzk1NGEzODY1YWVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVi
bGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZSh2YWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdBbmdsZVZhbHVlJiB2YWx1
ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5
T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBTVkdBbmdsZVZhbHVlJiB2YWx1ZSA9IHsgfSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKG93bmVyLCBhY2Nlc3Ms
IHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKG9ic2VydmVy
LCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRWxlbWVudC5jcHAKaW5kZXggMTZjM2FmYzIxNTNiNjhkYTlkODUzNjU2OTYyNjA1YzhlMTBh
NWFmNC4uMjA0YzIyYmIzNmRkYTA4NjI4MTM5MTcyMzBmZDRlOTQwMTFmNDk0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNTQxLDIwICs1NDEsMjMgQEAgdm9pZCBTVkdFbGVtZW50
OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmIG8KICAgICAgICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChuYW1lKTsKIH0KIAotdm9pZCBT
VkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
KQordm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lKQogewotICAgIC8vIElmIHRoZSB2YWx1ZSBvZiB0aGUgcHJvcGVy
dHkgaGFzIGNoYW5nZWQsIHNlcmlhbGl6ZSB0aGUgbmV3IHZhbHVlIHRvIHRoZSBhdHRyaWJ1dGUu
Ci0gICAgaWYgKGF1dG8gdmFsdWUgPSBwcm9wZXJ0eVJlZ2lzdHJ5KCkuc3luY2hyb25pemUobmFt
ZSkpCi0gICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUobmFtZSwgKnZhbHVlKTsK
KyAgICBhdXRvIGl0ID0gbV9kaXJ0eUF0dHJpYnV0ZXMuZmluZChhdHRyaWJ1dGVOYW1lKTsKKyAg
ICBpZiAoaXQgPT0gbV9kaXJ0eUF0dHJpYnV0ZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKyAg
ICAKKyAgICAvLyBJZiB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGhhcyBjaGFuZ2VkLCByZXNl
cmlhbGl6ZSB0aGUgbmV3IHZhbHVlIHRvIHRoZSBhdHRyaWJ1dGUuCisgICAgc2V0U3luY2hyb25p
emVkTGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eVJlZ2lzdHJ5KCkudmFsdWVB
c1N0cmluZyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgbV9kaXJ0eUF0dHJpYnV0ZXMucmVtb3ZlKGl0
KTsKIH0KICAgICAKIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCkK
IHsKLSAgICAvLyBTVkdQcm9wZXJ0eVJlZ2lzdHJ5OjpzeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMo
KSByZXR1cm5zIHRoZSBuZXcgdmFsdWVzIG9mCi0gICAgLy8gdGhlIHByb3BlcnRpZXMgd2hpY2gg
aGF2ZSBjaGFuZ2VkIGJ1dCBub3QgY29tbWl0dGVkIHlldC4KLSAgICBhdXRvIG1hcCA9IHByb3Bl
cnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKLSAgICBmb3IgKGNvbnN0
IGF1dG8mIGVudHJ5IDogbWFwKQotICAgICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRl
KGVudHJ5LmtleSwgZW50cnkudmFsdWUpOworICAgIC8vIFJlc2VyaWFsaXplIHRoZSB2YWx1ZXMg
b2YgdGhlIGNoYW5nZWQgcHJvcGVydGllcyB0byB0aGVpciBhdHRyaWJ1dGVzLgorICAgIGZvciAo
YXV0byYgYXR0cmlidXRlTmFtZSA6IG1fZGlydHlBdHRyaWJ1dGVzKQorICAgICAgICBzZXRTeW5j
aHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5UmVnaXN0cnkoKS52
YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUpKTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5jbGVh
cigpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdBdHRy
aWJ1dGUoU1ZHRWxlbWVudCYgc3ZnRWxlbWVudCkKQEAgLTU2MiwxNSArNTY1LDE4IEBAIHZvaWQg
U1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50
JiBzdmdFbGVtZW50KQogICAgIHN2Z0VsZW1lbnQuc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7
CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkq
IHByb3BlcnR5KQordm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZl
UHJvcGVydHkqIHByb3BlcnR5KQogeworICAgIFF1YWxpZmllZE5hbWUgYXR0cmlidXRlTmFtZSA9
IHByb3BlcnR5UmVnaXN0cnkoKS5wcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoKnByb3BlcnR5KTsKKyAg
ICBBU1NFUlQoYXR0cmlidXRlTmFtZSAhPSBudWxsUU5hbWUoKSk7CisKICAgICAvLyBXZSB3YW50
IHRvIGRpcnR5IHRoZSB0b3AtbGV2ZWwgcHJvcGVydHkgd2hlbiBhIGRlc2NlbmRhbnQgY2hhbmdl
cy4gRm9yIGV4YW1wbGUKICAgICAvLyBhIGNoYW5nZSBpbiBhbiBTVkdMZW5ndGggaXRlbSBpbiBT
VkdMZW5ndGhMaXN0IHNob3VsZCBzZXQgdGhlIGRpcnR5IGZsYWcgb24KICAgICAvLyBTVkdMZW5n
dGhMaXN0IGFuZCBub3QgdGhlIFNWR0xlbmd0aC4KLSAgICBwcm9wZXJ0eS0+c2V0RGlydHkoKTsK
KyAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFtZSk7CiAKICAgICBpbnZhbGlk
YXRlU1ZHQXR0cmlidXRlcygpOwotICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQocHJvcGVydHlSZWdp
c3RyeSgpLnByb3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkpKTsKKyAgICBzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6OmNvbW1pdFBy
b3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJvcGVydHkpCkBAIC01
ODEsNyArNTg3LDcgQEAgdm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdB
bmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5KQogICAgIC8vIEEgY2hhbmdlIGluIGEg
c3R5bGUgcHJvcGVydHksIGUuZyBTVkdSZWN0RWxlbWVudDo6eCBzaG91bGQgYmUgc2VyaWFsaXpl
ZCB0bwogICAgIC8vIHRoZSBhdHRyaWJ1dGUgaW1tZWRpYXRlbHkuIE90aGVyd2lzZSBpdCBpcyBv
a2F5IHRvIGJlIGxhenkgaW4gdGhpcyByZWdhcmQuCiAgICAgaWYgKCFwcm9wZXJ0eVJlZ2lzdHJ5
KCkuaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSkpCi0gICAg
ICAgIGFuaW1hdGVkUHJvcGVydHkuc2V0RGlydHkoKTsKKyAgICAgICAgbV9kaXJ0eUF0dHJpYnV0
ZXMuYWRkKGF0dHJpYnV0ZU5hbWUpOwogICAgIGVsc2UKICAgICAgICAgc2V0U3luY2hyb25pemVk
TGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5LmJhc2VWYWxBc1N0
cmluZygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggOGNjNmFhY2E2NTc2ODBlZThk
M2YzZjQ2Yzg3ODJhZDIyNTVjNzc0Mi4uZDkwODc2YWZmYjc0ZTYxNTMzMjNlNTM0Yzg4OTdmZDhk
ZTU2ZTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBAIGNsYXNz
IFNWR1VzZUVsZW1lbnQ7CiAKIHZvaWQgbWFwQXR0cmlidXRlVG9DU1NQcm9wZXJ0eShIYXNoTWFw
PEF0b21TdHJpbmdJbXBsKiwgQ1NTUHJvcGVydHlJRD4qIHByb3BlcnR5TmFtZVRvSWRNYXAsIGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKIAotY2xhc3MgU1ZHRWxlbWVudCA6IHB1Ymxp
YyBTdHlsZWRFbGVtZW50LCBwdWJsaWMgU1ZHTGFuZ1NwYWNlLCBwdWJsaWMgU1ZHUHJvcGVydHlP
d25lciB7CitjbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1YmxpYyBT
VkdMYW5nU3BhY2UsIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiAgICAgV1RGX01B
S0VfSVNPX0FMTE9DQVRFRChTVkdFbGVtZW50KTsKIHB1YmxpYzoKICAgICBib29sIGlzT3V0ZXJt
b3N0U1ZHU1ZHRWxlbWVudCgpIGNvbnN0OwpAQCAtMTM2LDEwICsxMzYsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgc3RhdGljIHZvaWQgc3lu
Y2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50Jik7CiAKLSAgICB2b2lk
IGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGU7CisgICAgdm9pZCBj
b21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlkZTsKICAgICB2b2lk
IGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmKTsKIAotICAgIGNvbnN0
IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gdGhpczsgfQorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHByb3BlcnR5U1ZHQ29udGV4dEVs
ZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CiAgICAgU1ZHUHJvcGVydHlB
bmltYXRvckZhY3RvcnkmIHByb3BlcnR5QW5pbWF0b3JGYWN0b3J5KCkgeyByZXR1cm4gKm1fcHJv
cGVydHlBbmltYXRvckZhY3Rvcnk7IH0KICAgICBSZWZQdHI8U1ZHQXR0cmlidXRlQW5pbWF0b3I+
IGNyZWF0ZUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBBbmltYXRpb25Nb2RlLCBDYWxj
TW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpOwogICAgIHZvaWQgYW5p
bWF0b3JXaWxsQmVEZWxldGVkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAgLTE5Niw2ICsxOTYs
NyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQcm9wZXJ0eUFuaW1hdG9yRmFj
dG9yeT4gbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsKIAogICAgIFByb3BlcnR5UmVnaXN0cnkg
bV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKKyAgICBIYXNoU2V0PFF1YWxpZmllZE5hbWU+
IG1fZGlydHlBdHRyaWJ1dGVzOwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9jbGFzc05h
bWUgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCmluZGV4IDFmNDdkMzY4ZTkwMzFmNDRhMGJlMGZkMjQz
NTBjNzJkMTQxZjY1NDkuLmE0NDBjNmMyYjMyOWE2M2UxMDk4ZjYzZGQ4MWY5OTczMDlkYzIyYTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCkBAIC0zNCw5ICszNCwxMCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR0ZpdFRvVmlld0JveDo6U1ZHRml0VG9WaWV3
Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3Mp
Ci0gICAgOiBtX3ZpZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoY29udGV4dEVsZW1lbnQs
IGFjY2VzcykpCi0gICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5pbWF0ZWRQcmVzZXJ2
ZUFzcGVjdFJhdGlvOjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFjY2VzcykpCitTVkdGaXRUb1Zp
ZXdCb3g6OlNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKKyAgICA6
IG1fdmlld0JveChTVkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShzdGF0aWNfY2FzdDx2b2lkKj4oY29u
dGV4dEVsZW1lbnQpID09IHRoaXMgPyBjb250ZXh0RWxlbWVudCA6IG51bGxwdHIpKQorICAgICwg
bV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbzo6Y3Jl
YXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhpcyA/IGNvbnRleHRF
bGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX2NvbnRleHRFbGVtZW50KGNvbnRleHRFbGVtZW50
KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxf
b25jZShvbmNlRmxhZywgW10gewpAQCAtMTA0LDI5ICsxMDUsMjkgQEAgYm9vbCBTVkdGaXRUb1Zp
ZXdCb3g6OnBhcnNlVmlld0JveChjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVDaGFyKiBlbmQsIEZs
b2F0UmVjdCYKICAgICBib29sIHZhbGlkID0gcGFyc2VOdW1iZXIoYywgZW5kLCB4KSAmJiBwYXJz
ZU51bWJlcihjLCBlbmQsIHkpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgd2lkdGgpICYmIHBhcnNl
TnVtYmVyKGMsIGVuZCwgaGVpZ2h0LCBmYWxzZSk7CiAKICAgICBpZiAodmFsaWRhdGUpIHsKLSAg
ICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV92aWV3Qm94LT5jb250ZXh0RWxlbWVudCgpLT5k
b2N1bWVudCgpOworICAgICAgICBhdXRvJiBkb2N1bWVudEV4dGVuc2lvbnMgPSBtX2NvbnRleHRF
bGVtZW50LT5kb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKTsKIAogICAgICAgICBpZiAo
IXZhbGlkKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVw
b3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7Cisg
ICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJz
aW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDaGVjayB0aGF0IHdpZHRoIGlzIHBvc2l0aXZlLgog
ICAgICAgICBpZiAod2lkdGggPCAwLjApIHsKLSAgICAgICAgICAgIGRvY3VtZW50LmFjY2Vzc1NW
R0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgVmlld0JveCB3
aWR0aCBpcyBub3QgYWxsb3dlZCIpOworICAgICAgICAgICAgZG9jdW1lbnRFeHRlbnNpb25zLnJl
cG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRoIGlzIG5vdCBhbGxv
d2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICAv
LyBDaGVjayB0aGF0IGhlaWdodCBpcyBwb3NpdGl2ZS4KICAgICAgICAgaWYgKGhlaWdodCA8IDAu
MCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9ucygpLnJlcG9ydEVy
cm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdodCBpcyBub3QgYWxsb3dlZCIp
OworICAgICAgICAgICAgZG9jdW1lbnRFeHRlbnNpb25zLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZl
IHZhbHVlIGZvciBWaWV3Qm94IGhlaWdodCBpcyBub3QgYWxsb3dlZCIpOwogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTm90aGluZyBzaG91bGQgY29t
ZSBhZnRlciB0aGUgbGFzdCwgZm91cnRoIG51bWJlci4KICAgICAgICAgc2tpcE9wdGlvbmFsU1ZH
U3BhY2VzKGMsIGVuZCk7CiAgICAgICAgIGlmIChjIDwgZW5kKSB7Ci0gICAgICAgICAgICBkb2N1
bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5n
IHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lv
bnMucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwi
Iik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggOTA3ZDY1NWNkMWIxYjliMzcyYTIwZjgxODky
MzYwNDJlMjBmMGZkMC4uNTk2ZGZkYzFkMDU2N2EwNDdmNWI4OWNhZGE1ODQwN2JjNDlmYjQxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtNTksNyArNTksNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNFbXB0eVZpZXdCb3goKSBjb25zdCB7IHJldHVybiBtX2lzVmlld0Jv
eFZhbGlkICYmIHZpZXdCb3goKS5pc0VtcHR5KCk7IH0KIAogcHJvdGVjdGVkOgotICAgIFNWR0Zp
dFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3Mg
PSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKTsKKyAgICBTVkdGaXRUb1ZpZXdCb3goU1ZH
RWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogCiAgICAgc3RhdGljIGJvb2wgaXNLbm93bkF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJldHVybiBQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9CiAKQEAgLTcxLDYg
KzcxLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBSZWY8U1ZHQW5pbWF0ZWRSZWN0PiBt
X3ZpZXdCb3g7CiAgICAgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RSYXRpbz4gbV9wcmVz
ZXJ2ZUFzcGVjdFJhdGlvOworICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQgeyBudWxs
cHRyIH07CiAgICAgYm9vbCBtX2lzVmlld0JveFZhbGlkIHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMZW5ndGguaAppbmRleCBlZDUwMDM4MmM1ZmU4MzgxZDQ3Nzk2OGI5MDkzMDBmNmJmYzRk
OTJkLi42MGE1YjU2ZTUzYmFkMGEwYmEwMTNhNDY0NjU3YmE2MWZhMThlNmMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xlbmd0aC5oCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZhbHVlKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxT
VkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGlj
IFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIs
IGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAg
fQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTg3LDcgKzg3LDcgQEAgcHVibGljOgog
CiAgICAgRXhjZXB0aW9uT3I8ZmxvYXQ+IHZhbHVlRm9yQmluZGluZ3MoKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fdmFsdWUudmFsdWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhDb250ZXh0IHsgY29u
dGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWVGb3JCaW5kaW5n
cyhTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9KTsKICAgICB9CiAKICAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQpAQCAt
OTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0VmFsdWUoU1ZHTGVuZ3RoQ29udGV4dCB7
IGNvbnRleHRFbGVtZW50KCkgfSwgdmFsdWUpOworICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFs
dWUuc2V0VmFsdWUoU1ZHTGVuZ3RoQ29udGV4dCB7IHN2Z0NvbnRleHRFbGVtZW50KCkgfSwgdmFs
dWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVibGljOgogICAgICAg
ICBpZiAodW5pdFR5cGUgPT0gU1ZHX0xFTkdUSFRZUEVfVU5LTk9XTiB8fCB1bml0VHlwZSA+IFNW
R19MRU5HVEhUWVBFX1BDKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRUb1Nw
ZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0sIHN0YXRp
Y19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
bV92YWx1ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29u
dGV4dEVsZW1lbnQoKSB9LCBzdGF0aWNfY2FzdDxTVkdMZW5ndGhUeXBlPih1bml0VHlwZSkpOwog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKaW5kZXggNWViNTcwMWM2NzQ2ODc5
MmQwNTYyYzE1YjUyMTZiNDkyYzAyMWVkOC4uMzJkNTg3NGQyOTM3MjQ2YzcwNTIxMzkxM2IxNGYw
NDU2M2ZmZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aExpc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCkBAIC00MCwxNCArNDAs
MTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0
KGxlbmd0aE1vZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNy
ZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBT
VkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhMaXN0PiBj
cmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdMZW5ndGhNb2RlIGxl
bmd0aE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhM
aXN0KG93bmVyLCBhY2Nlc3MsIGxlbmd0aE1vZGUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHTGVuZ3RoTGlzdChvYnNlcnZlciwgbGVuZ3RoTW9kZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKGNvbnN0IFNWR0xlbmd0aExpc3QmIG90
aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGhM
aXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChvdGhlcikpOwogICAgIH0KIAog
ICAgIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbGVuZ3RoTW9k
ZTsgfQpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBpZiAoYnVpbGRlci5s
ZW5ndGgoKSkKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcpOwogCi0gICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChsZW5ndGgtPnZhbHVlKCkudmFsdWVBc1N0cmluZygpKTsKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlbmd0aC0+dmFsdWVBc1N0cmluZygpKTsKICAgICAg
ICAgfQogCiAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkBAIC05OCwxNCArOTgs
MTQgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3RoTGlzdChTVkdQcm9w
ZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBTVkdMZW5ndGhNb2Rl
IGxlbmd0aE1vZGUpCi0gICAgICAgIDogQmFzZShvd25lciwgYWNjZXNzKQorICAgIFNWR0xlbmd0
aExpc3QoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdMZW5ndGhNb2RlIGxl
bmd0aE1vZGUpCisgICAgICAgIDogQmFzZShvYnNlcnZlcikKICAgICAgICAgLCBtX2xlbmd0aE1v
ZGUobGVuZ3RoTW9kZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3RoTGlzdChjb25zdCBT
VkdMZW5ndGhMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAgICAgICA6
IEJhc2Uob3RoZXIsIGFjY2VzcykKKyAgICBTVkdMZW5ndGhMaXN0KGNvbnN0IFNWR0xlbmd0aExp
c3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIpCiAgICAgICAgICwgbV9sZW5ndGhNb2Rl
KG90aGVyLmxlbmd0aE1vZGUoKSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCmlu
ZGV4IGQ4YzM3ZGNiMjZkYmU0NTE4YWM5MWZkMmUxYzc1ZTk0MmMxZDIyNzYuLmYwMDM4YzRjMDdl
MGFmYzVlN2I5ZjJiYmJkNTgwZjhhZGFkYTI3OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKQEAg
LTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdN
YXRyaXgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR01hdHJpeD4gY3JlYXRl
KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+
IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdNYXRyaXgob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTWF0cml4KG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKaW5kZXggMjNjODJlNDRlNjc3ZDhk
MzYwYzk2MTU0Yzc5NWRhYjg3NzZhMWZhNC4uNTk4YTBmNTk2MTk5MmE0Yjc5ZjcwODllNDQ4OWI2
MzU2MzIxZWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaApAQCAtNDAsOSArNDAsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcih2YWx1ZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciog
b3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgZmxvYXQgdmFsdWUgPSAwKQorICAgIHN0
YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2Vy
dmVyLCBmbG9hdCB2YWx1ZSA9IDApCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdOdW1iZXIob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTnVtYmVyKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBs
YXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVy
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaAppbmRleCA1YjVkNTdl
ODQ2ZjQzMWFhZjVjMDhkYmM5YTRjMzRhYmU4NGQ2ZDFmLi42ODFiNGRjZWY4Y2VjOTM1MTFiZTA1
OTIwNTRjZjA4MWU5MDM3NzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVt
YmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJMaXN0LmgKQEAgLTQw
LDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051
bWJlckxpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVh
dGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAg
ICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZl
ciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1i
ZXJMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
TnVtYmVyTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVy
TGlzdD4gY3JlYXRlKGNvbnN0IFNWR051bWJlckxpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVhdGUoY29uc3QgU1ZH
TnVtYmVyTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdOdW1iZXJMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHTnVtYmVyTGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIGJvb2wgcGFyc2UoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5oCmluZGV4IGQ2MmZlNGY4MzRjNDNk
ZWI3NWI0YjY4MmI1YmZjNzY0NzI4YmEzMmQuLmJjYmFmZGNlMjc4ZTViMzgxY2QyZWY5OTMzYTBh
YjM0OTQxNjU5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuaApAQCAtMjEsNyArMjEsNyBAQAog
CiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiRE9N
TGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBTVkdQYXRoU2VnVHlwZSB7CiAg
ICAgUGF0aFNlZ0N1cnZlVG9RdWFkcmF0aWNTbW9vdGhSZWwgPSAxOQogfTsKIAotY2xhc3MgU1ZH
UGF0aFNlZyA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdQYXRoU2VnIDogcHVibGlj
IERPTUxpdmVQcm9wZXJ0eSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUGF0aFNlZygpID0g
ZGVmYXVsdDsKIApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWY8U1ZH
UGF0aFNlZz4gY2xvbmUoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKLSAgICB1c2luZyBTVkdQ
cm9wZXJ0eTo6U1ZHUHJvcGVydHk7CisgICAgdXNpbmcgRE9NTGl2ZVByb3BlcnR5OjpET01MaXZl
UHJvcGVydHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnTGlzdC5oCmluZGV4IDk0ZjZmMzllNGUxZjFiNjc0NDMzY2EyNTAxNTM4MThmNGY2MmZl
NDIuLmU2NmY4YTBhN2IwYzAwZTZiNjQ0MDNhNTAzY2FmYjE1NDEyMTQxNTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnTGlzdC5oCkBAIC0zNiwxNCArMzYsMTQgQEAgY2xhc3MgU1ZHUGF0aFNl
Z0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHJvcGVydHlMaXN0PFNWR1BhdGhTZWc+IHsKICAgICB1
c2luZyBCYXNlOjpCYXNlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlz
dD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nl
c3MpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0
eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNWR1BhdGhTZWdMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVm
PFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3Jl
YXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob3RoZXIpKTsKICAgICB9CiAKICAgICBz
dGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoUmVmPFNWR1BhdGhTZWc+JiYgbmV3SXRl
bSkKQEAgLTE1OSw4ICsxNTksOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2YXRlOgotICAgIFNW
R1BhdGhTZWdMaXN0KGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKQotICAgICAgICA6IEJhc2Uob3RoZXIub3duZXIoKSwgYWNjZXNzKQorICAgIFNW
R1BhdGhTZWdMaXN0KGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlcikKKyAgICAgICAgOiBCYXNl
KG90aGVyLm9ic2VydmVyKCkpCiAgICAgICAgICwgbV9wYXRoQnl0ZVN0cmVhbShvdGhlci5wYXRo
Qnl0ZVN0cmVhbSgpKQogICAgIHsKICAgICB9CkBAIC0xNzIsNyArMTcyLDcgQEAgcHJpdmF0ZToK
ICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBjaGFuZ2luZyBhbiBpdGVtIGluIHRoZSBsaXN0
LgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBv
dmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBw
cm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGl0ZW1zV2lsbENoYW5nZSgpOwogICAg
ICAgICBCYXNlOjpjb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9pbnRMaXN0LmgKaW5kZXggOGM2YzUwYjBlM2JhY2U1MzZhZTUwZWJiMjhjMWI0NmUxNTc0OWU4
MS4uODhhMTg5MzM4NzFmZDJkNDI5MzhkNjU0OWQwMTlkMTUwYmU3YjM1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2ludExpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoKICAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3Bl
cnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvd25lciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvYnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0
YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUG9pbnRMaXN0JiBvdGhlciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBj
cmVhdGUoY29uc3QgU1ZHUG9pbnRMaXN0JiBvdGhlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvdGhlciwgYWNjZXNzKSk7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIGJvb2wg
cGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5oCmluZGV4IDI3MTdhYmViZTEwMTlhYWEwZjNhZjc2MWViMzUxZjkxN2I3
OGFkZDYuLjgzNTQ5M2U3OTRjMWU4ZjI1ZDg5NDdiMzhkZGEyNGM2MDliZjQ2YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaApAQCAtMzYsOSArMzYsOSBA
QCBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHk8
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbAogICAgIHVzaW5nIEJhc2U6Om1fdmFsdWU7CiAKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdQ
cm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdQ
cmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZH
UHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNl
cnZlciwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8o
b3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpbyhvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNl
cnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNw
ZWN0UmF0aW9WYWx1ZS5oCmluZGV4IDQxNWI4NzIzZjhkMzA4NjRjMWIzZmQ3ODhjYzNiOTg5YmFk
N2VmOWMuLjU5YzgzNzEyM2YyMWRiMjYxZmZlNzgxNjlhZDA4MmIyYTNmNmU5OGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgKQEAgLTc2
LDExICs3Niw0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJzZUludGVybmFsKGNvbnN0IFVDaGFy
KiYgY3VyclBhcmFtLCBjb25zdCBVQ2hhciogZW5kLCBib29sIHZhbGlkYXRlKTsKIH07CiAKLXRl
bXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9W
YWx1ZT4gewotICAgIHN0YXRpYyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgaW5pdGlhbFZh
bHVlKCkgeyByZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7IH0KLSAgICBzdGF0
aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBz
dHJpbmcpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShzdHJpbmcpOyB9Ci0g
ICAgc3RhdGljIE9wdGlvbmFsPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gcGFyc2UoY29u
c3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7
IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29u
c3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVybiB0eXBlLnZhbHVl
QXNTdHJpbmcoKTsgfQotfTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0
LmgKaW5kZXggOTAwMThlMTg2YjE5MmFjM2JlNmYwNTUwZGY4MTE2MjdmYmQ3ZTlmMi4uYmFlNzdi
ZmVmMDIxOTUxM2VlZjAwOTk2OWIzM2MyZmFkY2YzOTNmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdC5oCkBA
IC0zNiw5ICszNiw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UmVjdCh2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVjdD4gY3JlYXRlKFNW
R1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIGNvbnN0IEZs
b2F0UmVjdCYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdSZWN0PiBjcmVhdGUoRE9N
TGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBGbG9hdFJlY3QmIHZhbHVlID0g
eyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUmVjdChvd25lciwg
YWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0KG9i
c2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAppbmRleCAzYjM3NjVjNWQ5ZTA3NDY5MDBhMmQ3Nzk3OWZm
ZGY1OGI0M2FkZDM1Li4xMTFmMDY3ZTY5MjY2N2IwNmYyYzhkYThmYWIyNzdkMjdlYTI3Yjc1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKQEAgLTM3LDkgKzM3LDkgQEAgY2xhc3MgU1ZH
U3RyaW5nTGlzdCBmaW5hbCA6IHB1YmxpYyBTVkdQcmltaXRpdmVMaXN0PFN0cmluZz4gewogICAg
IHVzaW5nIEJhc2U6Om1faXRlbXM7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1N0cmlu
Z0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lcikKKyAgICBzdGF0aWMgUmVmPFNW
R1N0cmluZ0xpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdMaXN0KG93bmVyKSk7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qob2JzZXJ2ZXIpKTsK
ICAgICB9CiAKICAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYgc3RyaW5nKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RyYW5zZm9ybS5oCmluZGV4IDZhMjljNzJjZjNlN2YzMTNmNzA5NjU3YTQwMTI0ODFjMjIz
YjhkY2QuLjMzZGI2OGY0MjlhYTdmYTNmZWVhZGMyMjljZDE5Njg0NWU2ZmNiYTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdU
cmFuc2Zvcm1WYWx1ZT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR1RyYW5z
Zm9ybSA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5PFNWR1RyYW5zZm9ybVZhbHVlPiwgcHVibGlj
IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNWR1Ry
YW5zZm9ybT4gY3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zvcm1UeXBlIHR5cGUp
CiAgICAgewpAQCAtMTM0LDE3ICsxMzQsMTcgQEAgcHJpdmF0ZToKICAgICB1c2luZyBCYXNlID0g
U1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT47CiAKICAgICBTVkdUcmFuc2Zvcm0o
U1ZHVHJhbnNmb3JtVmFsdWU6OlNWR1RyYW5zZm9ybVR5cGUgdHlwZSwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiB0cmFuc2Zvcm0gPSB7IH0sIGZsb2F0IGFuZ2xlID0gMCwgY29uc3QgRmxvYXRQb2lu
dCYgcm90YXRpb25DZW50ZXIgPSB7IH0pCi0gICAgICAgIDogQmFzZShTVkdUcmFuc2Zvcm1WYWx1
ZSh0eXBlLCBTVkdNYXRyaXg6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdy
aXRlLCB0cmFuc2Zvcm0pLCBhbmdsZSwgcm90YXRpb25DZW50ZXIpKQorICAgICAgICA6IEJhc2Uo
U1ZHVHJhbnNmb3JtVmFsdWUodHlwZSwgU1ZHTWF0cml4OjpjcmVhdGUodGhpcywgdHJhbnNmb3Jt
KSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHUHJvcGVy
dHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyOyB9CisgICAg
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9vYnNlcnZlcjsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9w
ZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShE
T01MaXZlUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJU
X1VOVVNFRChwcm9wZXJ0eSwgcHJvcGVydHkgPT0gbV92YWx1ZS5tYXRyaXgoKS5wdHIoKSk7Ci0g
ICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlD
aGFuZ2UodGhpcyk7CisgICAgICAgIGlmIChvYnNlcnZlcigpKQorICAgICAgICAgICAgb2JzZXJ2
ZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CiAgICAgICAgIG1fdmFsdWUubWF0cml4
RGlkQ2hhbmdlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VHJhbnNmb3JtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaApp
bmRleCA1NDRkNjBiMmU2MzVjMWMyMDk5MzRlZTQzNWNmNDEyNWU2YTcxZjJiLi5lNjA0NWVkMjU2
MjMyMWU5MTQxNjRhMGZiMjA0OTc0ODcxMDVlMjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgKQEAgLTM4LDE0ICszOCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJl
ZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1By
b3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5zZm9ybUxpc3Q+IGNy
ZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvYnNlcnZlcikpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNW
R1RyYW5zZm9ybUxpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3Rh
dGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoY29uc3QgU1ZHVHJhbnNmb3JtTGlzdCYg
b3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1M
aXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJh
bnNmb3JtTGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPFJlZjxTVkdUcmFu
c2Zvcm0+PiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGNvbnN0IFJlZjxTVkdNYXRyaXg+
JiBtYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA4ZjQyMzUxNmI1YmRi
YzUyODdjZGE0NGFkZjQ5ZmM2MThkZGMzMmVjLi41M2NjMTVkYzkwZTc3Y2E5MTI0ZjZjYWZhMjhk
YTFhYzUwNTljYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAgLTMyLDkgKzMy
LDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHVmlld1NwZWM6OlNWR1ZpZXdTcGVjKFNW
R0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQotICAgIDogU1ZHRml0VG9WaWV3Qm94KCZjb250ZXh0
RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5KQorICAgIDogU1ZHRml0VG9WaWV3
Qm94KCZjb250ZXh0RWxlbWVudCkKICAgICAsIG1fY29udGV4dEVsZW1lbnQobWFrZVdlYWtQdHIo
Y29udGV4dEVsZW1lbnQpKQotICAgICwgbV90cmFuc2Zvcm0oU1ZHVHJhbnNmb3JtTGlzdDo6Y3Jl
YXRlKCZjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5KSkKIHsKICAg
ICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25j
ZUZsYWcsIFtdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKaW5kZXggMmU3ZWY5Nzg2YzFhODg2
ZmQyNWFjZmVhMDM3ZmM4NTBkNzlkZTUyMC4uNmVmYzA5Zjk4M2MyYzQzYzZhM2Q4NTViMDJkMzQy
MjIwMDM4MjFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKQEAgLTU1LDcgKzU1LDcgQEAg
cHJpdmF0ZToKIAogICAgIFdlYWtQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0RWxlbWVudDsKICAg
ICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5nOwotICAgIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBt
X3RyYW5zZm9ybTsKKyAgICBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gbV90cmFuc2Zvcm0geyBTVkdU
cmFuc2Zvcm1MaXN0OjpjcmVhdGUoKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWREZWNv
cmF0ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCmluZGV4IGNlYmFhMzYzYmY1MjdiYmIzOGU1NjdkM2UzZDQy
YmY4NDMxMDJhNzUuLjZkYTlkNDQ5ZWNjY2YxOWYwOWVjZmFhZmNhNWE1OGI5Yzc4NDFkOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkRGVjb3Jh
dGVkUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZERlY29yYXRlZFByb3BlcnR5LmgKQEAgLTk3LDE1ICs5Nyw3IEBAIHB1YmxpYzoKICAgICB9
CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAg
IHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpE
aXJ0eTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fc3Rh
dGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5
bmNocm9uaXplKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0YXRlID09IFNWR1By
b3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAg
ICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAgICAgICByZXR1cm4g
YmFzZVZhbEFzU3RyaW5nKCk7Ci0gICAgfQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAogICAgIC8vIFVzZWQg
YnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFByb3BlcnR5VHlwZT4KQEAgLTEzMyw3ICsxMjUsNiBAQCBwdWJsaWM6CiBwcm90ZWN0
ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0RlY29yYXRlZFByb3BlcnR5PERlY29yYXRpb25U
eXBlPj4gbV9iYXNlVmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEZWNvcmF0ZWRQcm9wZXJ0
eTxEZWNvcmF0aW9uVHlwZT4+IG1fYW5pbVZhbDsKLSAgICBTVkdQcm9wZXJ0eVN0YXRlIG1fc3Rh
dGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9wZXJ0eS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRpdmVQcm9w
ZXJ0eS5oCmluZGV4IGUxNGY2NzlmMzM2M2RkYzVhOGY0MWMwMzVmZGY3MzRlYmNiOTY2NjEuLmQ0
NDgwZjc0YTJlMzk2ZDE4YTkzN2RmNzg5MzBmM2Q1ZmJmYjExOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZlUHJvcGVydHkuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByaW1pdGl2ZVBy
b3BlcnR5LmgKQEAgLTg3LDkgKzg3LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIE1hbmFn
aW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgp
IG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAgYm9vbCBpc0RpcnR5KCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5KCk7IH0KLSAgICBPcHRp
b25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5z
eW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNlZCBieSBSZW5kZXJT
VkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3QgUHJvcGVydHlUeXBlJiBj
dXJyZW50VmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcAppbmRleCBlYzJmM2E0ODdmODMwZjFjNzI2ZDBm
NmJlNGM5NDIyZWM4ZjMwMWU4Li5lZGE1Yzg0YzM1ZmJjN2JkMjU0ZDFhZGUyZmIyNTgxNjY1ODNk
YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5LmNwcApAQCAtMzAsMTIgKzMwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotU1ZHUHJvcGVydHlPd25lciogU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6b3duZXIoKSBjb25z
dAorRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIFNWR0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0RWxlbWVudDsKIH0KIAotdm9pZCBTVkdB
bmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSopCit2b2lk
IFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0
eSopCiB7CiAgICAgaWYgKCFtX2NvbnRleHRFbGVtZW50KQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmgK
aW5kZXggYzZmOTMyZTZkZjY5Y2NlZmFmYzk2NWUzMmNkNTY2MjBhMWZjMzM2NC4uYTEwNDFlNjA1
MjlkYTFmZDIzMTg2MGUyNjBiNzFjY2ZiNzBjNGE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaApAQCAtMjUsNyArMjUsNyBA
QAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3duZXIuaCIKKyNpbmNs
dWRlICJET01MaXZlUHJvcGVydHlPYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNz
IFNWR0VsZW1lbnQ7CiAKLWNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBwdWJsaWMgUmVmQ291
bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIFNWR1Byb3BlcnR5T3duZXIgeworY2xh
c3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR0FuaW1hdGVkUHJv
cGVydHk+LCBwdWJsaWMgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgewogcHVibGljOgogICAgIHZp
cnR1YWwgflNWR0FuaW1hdGVkUHJvcGVydHkoKSA9IGRlZmF1bHQ7CiAgICAgCkBAIC00Nyw5ICs0
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBhbmltVmFsQXNTdHJpbmcoKSBjb25z
dCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgCiAgICAgLy8gQ29udHJvbCB0aGUgc3lu
Y2hyb25pemF0aW9uIGJldHdlZW4gdGhlIGF0dHJpYnV0ZSBhbmQgaXRzIHJlZmxlY3Rpb24gaW4g
YmFzZVZhbC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldERpcnR5KCkgeyB9Ci0gICAgdmlydHVhbCBPcHRpb25h
bDxTdHJpbmc+IHN5bmNocm9uaXplKCkgeyByZXR1cm4gV1RGOjpudWxsb3B0OyB9CisgICAgdmly
dHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KICAgICAKICAgICAvLyBDb250cm9sIHRoZSBhbmltYXRpb24gbGlmZSBjeWNsZS4KICAgICBi
b29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1hdGluZzsgfQpAQCAtNjYs
OCArNjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KICAgICAKLSAgICBTVkdQcm9wZXJ0
eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZl
ciogb2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hh
bmdlKERPTUxpdmVQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIAogICAgIFNWR0VsZW1lbnQqIG1f
Y29udGV4dEVsZW1lbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzQW5pbWF0aW5nIHsgZmFs
c2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5TGlzdC5oCmluZGV4IGY0MjU1ZDdmNmU3NWIxNGFjYTg4YTg4MGJmZjM2ZTY1
NjM4M2Y3MTYuLmFkMjFhOTgwNmM1NGFmYzA2ZWNhYTVhNzEzMjVjZGIyMzEzY2FmMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QuaApAQCAtNjgsOSArNjgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAgLy8gTWFu
YWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICB2b2lkIHNldERpcnR5
KCkgb3ZlcnJpZGUgeyBtX2Jhc2VWYWwtPnNldERpcnR5KCk7IH0KLSAgICBib29sIGlzRGlydHko
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPmlzRGlydHkoKTsgfQotICAgIE9w
dGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwt
PnN5bmNocm9uaXplKCk7IH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAgICAvLyBVc2VkIGJ5IFJlbmRl
clNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBMaXN0VHlwZSYgY3Vy
cmVudFZhbHVlKCkgY29uc3QKQEAgLTExNywxOSArMTE1LDI0IEBAIHByb3RlY3RlZDoKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxp
c3QoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykK
ICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAs
IG1fYmFzZVZhbChMaXN0VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFk
V3JpdGUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKQorICAgICAgICAs
IG1fYmFzZVZhbChMaXN0VHlwZTo6Y3JlYXRlKHRoaXMsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+
KGFyZ3VtZW50cykuLi4pKQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8TGlzdFR5cGU+JiBl
bnN1cmVBbmltVmFsKCkKICAgICB7CiAgICAgICAgIGlmICghbV9hbmltVmFsKQotICAgICAgICAg
ICAgbV9hbmltVmFsID0gTGlzdFR5cGU6OmNyZWF0ZShtX2Jhc2VWYWwsIFNWR1Byb3BlcnR5QWNj
ZXNzOjpSZWFkT25seSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBMaXN0VHlwZTo6Y3JlYXRl
KG1fYmFzZVZhbC5nZXQoKSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1WYWw7CiAgICAgfQogCisg
ICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0
eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBtX2FuaW1WYWwgPT0gJnBy
b3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3aGVuIG1fYmFzZVZhbCBjaGFuZ2VzIG9y
IGFuIGl0ZW0gaW4gbV9iYXNlVmFsIGNoYW5nZXMuCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNo
YW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9w
ZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgICptX2FuaW1WYWwgPSBtX2Jhc2VWYWw7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFBy
b3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAppbmRleCA0YTI2OWZhNWE4ZjI3
Y2QzMzU1ZTgzNDA2ZmE1Mzg1M2Q5NTI4OWM1Li4zNTBiYzA4OGViNDVhOTYwOThlYTkyNDdhMzc1
ODU4MjhlZTEzNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmgKQEAg
LTQ2LDE3ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRpYyBjb25zdCBTVkdN
ZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVybiBCYXNlOjp0ZW1w
bGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRBbmdsZU9yaWVudEFjY2Vzc29yLCBwcm9wZXJ0eTEs
IHByb3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hy
b25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAgICBTdHJpbmcgdmFs
dWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAogICAgIHsKLSAg
ICAgICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAg
IGJvb2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwotICAgICAgICBpZiAo
IShkaXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0K
ICAgICAgICAgYXV0byB0eXBlID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZhbCgpOwotCi0gICAg
ICAgIFN0cmluZyBzdHJpbmcxID0gZGlydHkxID8gKnByb3BlcnR5MShvd25lciktPnN5bmNocm9u
aXplKCkgOiBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKLSAgICAgICAgU3Ry
aW5nIHN0cmluZzIgPSBkaXJ0eTIgPyAqcHJvcGVydHkyKG93bmVyKS0+c3luY2hyb25pemUoKSA6
IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAgICBTdHJpbmcgc3Ry
aW5nMSA9IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAgICBTdHJp
bmcgc3RyaW5nMiA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwogICAgICAg
ICByZXR1cm4gdHlwZSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IHR5cGUgPT0gU1ZHTWFya2Vy
T3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSA/IHN0cmluZzIgOiBzdHJpbmcxOwogICAgIH0KIApAQCAt
ODMsMTUgKzc3LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGljIGNvbnN0IFNWR01l
bWJlckFjY2Vzc29yPE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsgcmV0dXJuIEJhc2U6OnRlbXBs
YXRlIHNpbmdsZXRvbjxTVkdBbmltYXRlZEludGVnZXJQYWlyQWNjZXNzb3IsIHByb3BlcnR5MSwg
cHJvcGVydHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJv
bml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAorICAgIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCiAgICAgewotICAg
ICAgICBib29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAg
Ym9vbCBkaXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5KCk7Ci0gICAgICAgIGlmICgh
KGRpcnR5MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLQot
ICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEob3duZXIpLT5zeW5j
aHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5nKCk7Ci0gICAgICAg
IFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lciktPnN5bmNocm9uaXpl
KCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAgU3RyaW5n
IHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAgICAgICAg
U3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKICAg
ICAgICAgcmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmluZzEgOiBzdHJpbmcxICsgIiwg
IiArIHN0cmluZzI7CiAgICAgfQogCkBAIC0xMTQsMTkgKzEwMywxNCBAQCBjbGFzcyBTVkdBbmlt
YXRlZE51bWJlclBhaXJBY2Nlc3NvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmltYXRlZFByb3BlcnR5
UGFpckFjY2VzcwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKLSAgICB0ZW1wbGF0
ZTxSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5MSwgUmVmPFNWR0Fu
aW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTIgPgorICAgIHRlbXBsYXRlPFJlZjxT
VkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkxLCBSZWY8U1ZHQW5pbWF0ZWRO
dW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5Mj4KICAgICBjb25zdGV4cHIgc3RhdGljIGNvbnN0
IFNWR01lbWJlckFjY2Vzc29yPE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsgcmV0dXJuIEJhc2U6
OnRlbXBsYXRlIHNpbmdsZXRvbjxTVkdBbmltYXRlZE51bWJlclBhaXJBY2Nlc3NvciwgcHJvcGVy
dHkxLCBwcm9wZXJ0eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5
bmNocm9uaXplKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFsCisgICAgU3RyaW5n
IHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKICAgICB7
Ci0gICAgICAgIGJvb2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNEaXJ0eSgpOwotICAg
ICAgICBib29sIGRpcnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHkoKTsKLSAgICAgICAg
aWYgKCEoZGlydHkxIHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotCi0gICAgICAgIFN0cmluZyBzdHJpbmcxID0gZGlydHkxID8gKnByb3BlcnR5MShvd25lcikt
PnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKLSAg
ICAgICAgU3RyaW5nIHN0cmluZzIgPSBkaXJ0eTIgPyAqcHJvcGVydHkyKG93bmVyKS0+c3luY2hy
b25pemUoKSA6IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAgICBT
dHJpbmcgc3RyaW5nMSA9IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAg
ICAgICBTdHJpbmcgc3RyaW5nMiA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygp
OwogICAgICAgICByZXR1cm4gc3RyaW5nMSA9PSBzdHJpbmcyID8gc3RyaW5nMSA6IHN0cmluZzEg
KyAiLCAiICsgc3RyaW5nMjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKaW5kZXggZGZkYjE3MWEw
Y2I4M2ZjNzU5NjA1OWU3NjA0YTdmZDg5MzUxZjUyNS4uN2Y5NjUyNWFiOTNiNjRjZjM3Y2NhNTJh
ZjQ3ZGZiNGU2YzAxYWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKQEAgLTg0LDkgKzg0LDcgQEAgcHVi
bGljOgogICAgIH0KIAogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUg
b3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0
eSgpOyB9Ci0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNl
VmFsLT5pc0RpcnR5KCk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3Zl
cnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZh
bHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsg
fQogCiAgICAgLy8gVXNlZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUu
CiAgICAgY29uc3QgVmFsdWVUeXBlJiBjdXJyZW50VmFsdWUoKSBjb25zdApAQCAtMTMxLDI2ICsx
MjksMjQgQEAgcHJvdGVjdGVkOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
ICAgICBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQs
IEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5
KGNvbnRleHRFbGVtZW50KQotICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNyZWF0
ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlLCBWYWx1ZVR5cGUoc3RkOjpmb3J3
YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpKQotICAgIHsKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5
KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MsIEFy
Z3VtZW50cyYmLi4uIGFyZ3VtZW50cykKLSAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNv
bnRleHRFbGVtZW50KQotICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5cGU6OmNyZWF0ZSh0
aGlzLCBhY2Nlc3MsIFZhbHVlVHlwZShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMp
Li4uKSkpCisgICAgICAgICwgbV9iYXNlVmFsKFByb3BlcnR5VHlwZTo6Y3JlYXRlKHRoaXMsIFZh
bHVlVHlwZShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKSkpCiAgICAgewog
ICAgIH0KIAogICAgIFJlZlB0cjxQcm9wZXJ0eVR5cGU+JiBlbnN1cmVBbmltVmFsKCkKICAgICB7
CiAgICAgICAgIGlmICghbV9hbmltVmFsKQotICAgICAgICAgICAgbV9hbmltVmFsID0gUHJvcGVy
dHlUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5LCBtX2Jhc2VW
YWwtPnZhbHVlKCkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gUHJvcGVydHlUeXBlOjpjcmVh
dGUodGhpcywgbV9iYXNlVmFsLT52YWx1ZSgpKTsKICAgICAgICAgcmV0dXJuIG1fYW5pbVZhbDsK
ICAgICB9CiAKKyAgICBib29sIGlzUHJvcGVydHlSZWFkT25seShjb25zdCBET01MaXZlUHJvcGVy
dHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fYW5p
bVZhbCA9PSAmcHJvcGVydHk7CisgICAgfQorCiAgICAgLy8gQ2FsbGVkIHdoZW4gbV9iYXNlVmFs
IGNoYW5nZXMuCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJv
cGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJv
cGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkK
ICAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNlVmFsLT52YWx1ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAppbmRleCBkZGNiMTcwMTkxODlhYjFl
YTRjZjY2MDMyZTk5ZjYyMjU1MjI1NDRkLi5mM2RlZTk5YTA5ZjM5MmEyNDBiNjI1ZDQ5YmNkYWVh
ZWIwYTQ5ZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdM
aXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCkBAIC0y
NSwxMyArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJET01MaXZlUHJvcGVy
dHkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlNWR1Byb3BlcnR5Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSXRlbVR5cGU+Ci1j
bGFzcyBTVkdMaXN0IDogcHVibGljIFNWR1Byb3BlcnR5IHsKK2NsYXNzIFNWR0xpc3QgOiBwdWJs
aWMgRE9NTGl2ZVByb3BlcnR5IHsKIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25z
dCB7IHJldHVybiBudW1iZXJPZkl0ZW1zKCk7IH0KIApAQCAtMTUwLDcgKzE1MCw3IEBAIHB1Ymxp
YzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB1c2luZyBTVkdQcm9wZXJ0eTo6U1ZHUHJvcGVy
dHk7CisgICAgdXNpbmcgRE9NTGl2ZVByb3BlcnR5OjpET01MaXZlUHJvcGVydHk7CiAKICAgICBF
eGNlcHRpb25Pcjxib29sPiBjYW5BbHRlckxpc3QoKSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oCmluZGV4IGY3YmJh
NmFlMGEwZWVhYmI2ZTYxODdhNTgxMDRmNzIxMjhhY2FhZmEuLmU0MDlkNGRhMWUwOTBjZDdjZTdh
NTRkMDI3MmJkNTAzYTAyZTc2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7
CitjbGFzcyBET01MaXZlUHJvcGVydHk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4K
IGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQzLDkgKzQzLDkgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0
IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
bWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBET01MaXZlUHJvcGVydHkmKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlw
ZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUm
KSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmlt
YXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgQW5pbWF0aW9uTW9kZSwgQ2Fs
Y01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5cGUmLCBTVkdBdHRyaWJ1dGVBbmlt
YXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAppbmRleCA4ZTJmNzZkY2FiNGU5MGZiMzhl
YjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZmZDg2OTdlMzA5NWUwMWNiYWE5OWU4OWQ3
MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQb2lu
dGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcsOSArNDcsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAgT3B0aW9uYWw8U3Ry
aW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBvdmVycmlkZQor
ICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IG92
ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIpLT5zeW5jaHJvbml6
ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIpLT52YWx1ZUFzU3RyaW5nKCk7CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmgKaW5kZXggMWYyMzc0ZjVk
ZjgyYTY1ZTJiYmYzMDdjZmFiZjYyOWUwMzg3YjhkNi4uZDBiMTUzMjQ2ZjMxYmI4ZDA1MTQzMWFi
YjIyZTFhMTQyODAxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaApAQCAtNDIsMTMgKzQy
LDEzIEBAIGNsYXNzIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IgOiBwdWJsaWMgU1ZHUHJv
cGVydHlBbmltYXRvcjxBbmltYXRpb25GdW5jdGlvCiAgICAgdXNpbmcgQmFzZTo6bV9mdW5jdGlv
bjsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRp
b25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0
ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwg
QW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0Fj
Y3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKGF0dHJpYnV0ZU5hbWUsIFdURk1v
dmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNB
ZGRpdGl2ZSkpOwogICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+Ci0gICAgU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYm
Li4uIGFyZ3VtZW50cykKKyAgICBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVy
dHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNlKGF0dHJpYnV0ZU5h
bWUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAgICAgICAgICwgbV9w
cm9wZXJ0eShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8VmFsdWVQcm9wZXJ0eVR5cGU+KFdURk1vdmUo
cHJvcGVydHkpKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U2NWNiMTEwZDFmYjQ2NmUy
MjllYzc5YzlkZDAxN2U4NjEyOTk2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5o
CisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIFJl
c2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRl
IGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICog
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y
IG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwot
ICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlPd25lci5oIgotI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZW51bSBjbGFzcyBT
VkdQcm9wZXJ0eUFjY2VzcyA6IHVpbnQ4X3QgeyBSZWFkV3JpdGUsIFJlYWRPbmx5IH07Ci1lbnVt
IGNsYXNzIFNWR1Byb3BlcnR5U3RhdGUgOiB1aW50OF90IHsgQ2xlYW4sIERpcnR5IH07Ci0KLWNs
YXNzIFNWR1Byb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHUHJvcGVydHk+IHsKLXB1Ymxp
YzoKLSAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eSgpID0gZGVmYXVsdDsKLQotICAgIC8vIE1hbmFn
aW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgYm9vbCBpc0F0dGFjaGVk
KCkgY29uc3QgeyByZXR1cm4gbV9vd25lcjsgfQotICAgIHZvaWQgYXR0YWNoKFNWR1Byb3BlcnR5
T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAgewotICAgICAgICBB
U1NFUlQoIW1fb3duZXIpOwotICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0
YXRlOjpDbGVhbik7Ci0gICAgICAgIG1fb3duZXIgPSBvd25lcjsKLSAgICAgICAgbV9hY2Nlc3Mg
PSBhY2Nlc3M7Ci0gICAgfQotCi0gICAgdm9pZCBkZXRhY2goKQotICAgIHsKLSAgICAgICAgbV9v
d25lciA9IG51bGxwdHI7Ci0gICAgICAgIG1fYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJl
YWRXcml0ZTsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAg
IH0KLQotICAgIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIGlmICghbV9vd25lcikKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
ICAgICByZXR1cm4gbV9vd25lci0+YXR0cmlidXRlQ29udGV4dEVsZW1lbnQoKTsKLSAgICB9Ci0K
LSAgICB2b2lkIGNvbW1pdENoYW5nZSgpCi0gICAgewotICAgICAgICBpZiAoIW1fb3duZXIpCi0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fb3duZXItPmNvbW1pdFByb3BlcnR5Q2hhbmdl
KHRoaXMpOwotICAgIH0KLQotICAgIC8vIERPTSBhY2Nlc3MuCi0gICAgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3M7IH0KLSAgICBib29sIGlzUmVhZE9u
bHkoKSBjb25zdCB7IHJldHVybiBtX2FjY2VzcyA9PSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZE9u
bHk7IH0KLQotICAgIC8vIFN5bmNocm9uaXppbmcgdGhlIFNWRyBhdHRyaWJ1dGUgYW5kIGl0cyBy
ZWZsZWN0aW9uIGhlcmUuCi0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9zdGF0
ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIHZvaWQgc2V0RGlydHkoKSB7IG1f
c3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4g
c3luY2hyb25pemUoKQotICAgIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlT
dGF0ZTo6Q2xlYW4pCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OwotICAgICAgICBt
X3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJldHVybiB2YWx1ZUFz
U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgLy8gVGhpcyBpcyB1c2VkIHdoZW4gY2FsbGluZyBzZXRB
dHRyaWJ1dGUoKS4KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUFzU3RyaW5nKCkgY29uc3QgeyBy
ZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotCi0gICAgLy8gVmlzdWFsIFN0dWRpbyBkb2Vzbid0IHNl
ZW0gdG8gc2VlIHRoZXNlIHByaXZhdGUgY29uc3RydWN0b3JzIGZyb20gc3ViY2xhc3Nlcy4KLSAg
ICAvLyBGSVhNRTogU2VlIHdoYXQgaXQgdGFrZXMgdG8gcmVtb3ZlIHRoaXMgaGFjay4KLSNpZiAh
Q09NUElMRVIoTVNWQykKLXByb3RlY3RlZDoKLSNlbmRpZgotICAgIFNWR1Byb3BlcnR5KFNWR1By
b3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0g
U1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBtX293bmVyKG93bmVyKQot
ICAgICAgICAsIG1fYWNjZXNzKGFjY2VzcykKLSAgICB7Ci0gICAgfQotCi0gICAgU1ZHUHJvcGVy
dHlPd25lciogbV9vd25lciB7IG51bGxwdHIgfTsKLSAgICBTVkdQcm9wZXJ0eUFjY2VzcyBtX2Fj
Y2VzcyB7IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUgfTsKLSAgICBTVkdQcm9wZXJ0eVN0
YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwotfTsKLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHUHJvcGVydHlBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlBY2Nlc3Nvci5oCmluZGV4IGZmOGM0Y2RlNmRkMGYzY2FmYmM4ZjI3YjI3MDI5NzBl
MzVmNDg3NjQuLjhkMTI4MTgyN2Q0ZmI5ODg5M2JmZjFmMjQ5ZTBiMzU2ODgyMjc1ZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFjY2Vzc29y
LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIEJhc2U6OnByb3BlcnR5
OwogICAgIHVzaW5nIEJhc2U6OnNpbmdsZXRvbjsKIAotICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBP
d25lclR5cGUmIG93bmVyLCBjb25zdCBTVkdQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJy
aWRlCisgICAgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYgb3duZXIsIGNvbnN0IERPTUxp
dmVQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1
cm4gdGhpcy0+cHJvcGVydHkob3duZXIpLnB0cigpID09ICZwcm9wZXJ0eTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9y
RmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmlt
YXRvckZhY3RvcnkuaAppbmRleCA2ODFlNmRjNjU0NjNmN2JlNDkwZTg2ZDI0ZjA2OGQ3MzAyNWY2
NThmLi40YjVkZWY5ZGJlYzM0ZjhhY2UwMTVkZGQxYzFiYzA2ODBiZDg5NTAwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9y
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0
b3JGYWN0b3J5LmgKQEAgLTY5LDM3ICs2OSwzNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
Ly8gVGhpcyBIYXNoTWFwIG1hcHMgYW4gYXR0cmlidXRlIG5hbWUgdG8gYSBwYWlyIG9mIHN0YXRp
YyBtZXRob2RzLiBUaGUgZmlyc3Qgb25lIGNyZWF0ZXMgYSBzaGFyZWQKLSAgICAvLyBSZWY8U1ZH
UHJvcGVydHk+IGZvciB0aGUgdmFsdWUgdHlwZSBvZiB0aGlzIGF0dHJpYnV0ZS4gVGhlIHNlY29u
ZCBjcmVhdGVzIHRoZSBhbmltYXRvciBnaXZlbiB0aGUKLSAgICAvLyBhdHRyaWJ1dGUgbmFtZSBh
bmQgdGhlIHNoYXJlZCBSZWY8U1ZHUHJvcGVydHk+LgorICAgIC8vIFJlZjxET01MaXZlUHJvcGVy
dHk+IGZvciB0aGUgdmFsdWUgdHlwZSBvZiB0aGlzIGF0dHJpYnV0ZS4gVGhlIHNlY29uZCBjcmVh
dGVzIHRoZSBhbmltYXRvciBnaXZlbiB0aGUKKyAgICAvLyBhdHRyaWJ1dGUgbmFtZSBhbmQgdGhl
IHNoYXJlZCBSZWY8RE9NTGl2ZVByb3BlcnR5Pi4KICAgICB1c2luZyBBdHRyaWJ1dGVBbmltYXRv
ckNyZWF0b3IgPSBIYXNoTWFwPAogICAgICAgICBRdWFsaWZpZWROYW1lOjpRdWFsaWZpZWROYW1l
SW1wbCosCiAgICAgICAgIHN0ZDo6cGFpcjwKLSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248UmVm
PFNWR1Byb3BlcnR5PigpPiwKLSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248UmVmPFNWR0F0dHJp
YnV0ZUFuaW1hdG9yPihjb25zdCBRdWFsaWZpZWROYW1lJiwgUmVmPFNWR1Byb3BlcnR5PiYmLCBB
bmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9vbCwgYm9vbCk+CisgICAgICAgICAgICBzdGQ6OmZ1
bmN0aW9uPFJlZjxET01MaXZlUHJvcGVydHk+KCk+LAorICAgICAgICAgICAgc3RkOjpmdW5jdGlv
bjxSZWY8U1ZHQXR0cmlidXRlQW5pbWF0b3I+KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBSZWY8RE9N
TGl2ZVByb3BlcnR5PiYmLCBBbmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9vbCwgYm9vbCk+CiAg
ICAgICAgID4KICAgICA+OwogCi0gICAgc3RhdGljIGF1dG8gY3JlYXRlQ29sb3JBbmltYXRvcihj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJv
cGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJv
b2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0
ZUNvbG9yQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERP
TUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBD
YWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCiAg
ICAgewogICAgICAgICByZXR1cm4gU1ZHQ29sb3JBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5h
bWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVs
YXRlZCwgaXNBZGRpdGl2ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGF1dG8gY3JlYXRlTGVuZ3Ro
QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3Bl
cnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNh
bGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMg
YXV0byBjcmVhdGVMZW5ndGhBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1h
dGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNB
ZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBTVkdMZW5ndGhBbmltYXRvcjo6Y3JlYXRl
KGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9k
ZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGF1dG8g
Y3JlYXRlTGVuZ3RoTGlzdEFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25N
b2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRp
dmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlTGVuZ3RoTGlzdEFuaW1hdG9yKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHks
IEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNB
Y2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNWR0xl
bmd0aExpc3RBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkp
LCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIGF1dG8gY3JlYXRlTnVtYmVyQW5pbWF0b3IoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBbmlt
YXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11
bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0byBjcmVhdGVOdW1iZXJBbmlt
YXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3Bl
cnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNh
bGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAg
ICAgIHJldHVybiBTVkdOdW1iZXJBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsICBXVEZN
b3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQsIGlz
QWRkaXRpdmUpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgYXV0byBjcmVhdGVTdHJpbmdBbmlt
YXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+
JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01v
ZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRv
IGNyZWF0ZVN0cmluZ0FuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUs
IFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9u
TW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0
aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNWR1N0cmluZ0FuaW1hdG9yOjpjcmVhdGUoYXR0
cmlidXRlTmFtZSwgV1RGTW92ZShwcm9wZXJ0eSksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBp
c0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKICAgICB9CkBAIC0xNzAsNyArMTcwLDcgQEAgcHJp
dmF0ZToKICAgICAgICAgcmV0dXJuIG1hcDsKICAgICB9CiAKLSAgICB1c2luZyBBdHRyaWJ1dGVQ
cm9wZXJ0eSA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgUmVmPFNWR1Byb3BlcnR5Pj47CisgICAg
dXNpbmcgQXR0cmlidXRlUHJvcGVydHkgPSBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFJlZjxET01M
aXZlUHJvcGVydHk+PjsKICAgICBBdHRyaWJ1dGVQcm9wZXJ0eSBtX2F0dHJpYnV0ZVByb3BlcnR5
OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlMaXN0LmgKaW5kZXggY2JiMDBhZjEwMzAyNTlmYTNjMDQxYTNmMGYyYWI3ODczYzdkZDNjZC4u
YzEzNDY0Mzg4NWYxYmVhYWZiOTdhN2I3ZjVkNGVlMGZkODIzZmMzMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmgKQEAgLTMwLDcgKzMwLDcg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUgUHJvcGVydHlUeXBl
PgotY2xhc3MgU1ZHUHJvcGVydHlMaXN0IDogcHVibGljIFNWR0xpc3Q8UmVmPFByb3BlcnR5VHlw
ZT4+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdQcm9wZXJ0eUxpc3QgOiBw
dWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1YmxpYyBET01MaXZlUHJvcGVydHlP
YnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZUxpc3QgPSBTVkdMaXN0PFJlZjxQcm9w
ZXJ0eVR5cGU+PjsKICAgICB1c2luZyBCYXNlTGlzdDo6aXNFbXB0eTsKQEAgLTQyLDEzICs0Miwx
MiBAQCBwdWJsaWM6CiAjaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6CiAjZW5kaWYKLSAg
ICB1c2luZyBTVkdQcm9wZXJ0eU93bmVyOjpTVkdQcm9wZXJ0eU93bmVyOworICAgIHVzaW5nIERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjsKICAgICB1c2lu
ZyBCYXNlTGlzdDo6bV9pdGVtczsKLSAgICB1c2luZyBCYXNlTGlzdDo6bV9hY2Nlc3M7Ci0gICAg
dXNpbmcgQmFzZUxpc3Q6Om1fb3duZXI7CisgICAgdXNpbmcgQmFzZUxpc3Q6Om1fb2JzZXJ2ZXI7
CiAKLSAgICBTVkdQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRy
LCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRl
KQotICAgICAgICA6IEJhc2VMaXN0KG93bmVyLCBhY2Nlc3MpCisgICAgU1ZHUHJvcGVydHlMaXN0
KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIpCisgICAgICAgIDog
QmFzZUxpc3Qob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIApAQCAtNjQsMTIgKzYzLDE3IEBAIHBy
b3RlY3RlZDoKICAgICAgICAgICAgIGl0ZW0tPmRldGFjaCgpOwogICAgIH0KIAotICAgIFNWR1By
b3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25lcjsgfQor
ICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZH
UHJvcGVydHkqKSBvdmVycmlkZQorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERP
TUxpdmVQcm9wZXJ0eSYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICBpZiAob3duZXIo
KSkKLSAgICAgICAgICAgIG93bmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAg
ICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigpLT5pc1Byb3BlcnR5UmVhZE9ubHko
KnRoaXMpOworICAgIH0KKworICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVBy
b3BlcnR5Kikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChvYnNlcnZlcigpKQorICAgICAg
ICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CiAgICAgfQogCiAg
ICAgUmVmPFByb3BlcnR5VHlwZT4gYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IG92ZXJyaWRlCkBA
IC04OCw3ICs5Miw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVt
LT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0
IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNjZXNzKTsKKyAgICAg
ICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICBtX2l0ZW1zLmluc2VydChpbmRleCwg
V1RGTW92ZShuZXdJdGVtKSk7CiAgICAgICAgIHJldHVybiBhdChpbmRleCk7CiAgICAgfQpAQCAt
MTA5LDcgKzExMyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIGl0ZW0gPSBXVEZNb3ZlKG5l
d0l0ZW0pOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0IG9i
amVjdC4KLSAgICAgICAgaXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNjZXNzKTsKKyAgICAgICAgaXRl
bS0+YXR0YWNoKHRoaXMpOwogICAgICAgICByZXR1cm4gYXQoaW5kZXgpOwogICAgIH0KIApAQCAt
MTMyLDcgKzEzNiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIG5ld0l0ZW0gPSBuZXdJdGVt
LT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVtIHRvIHRoZSBsaXN0
IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNjZXNzKTsKKyAgICAg
ICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICBtX2l0ZW1zLmFwcGVuZChXVEZNb3Zl
KG5ld0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0KHNpemUoKSAtIDEpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk4MThiZTlmODQwYzc2NDUzOThlNjFiNDg5MzgxODYy
YTM0NjhmMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmgKKysrIC9kZXYv
bnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4LTIwMTkgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLSAg
ICAKLWNsYXNzIFNWR0VsZW1lbnQ7Ci1jbGFzcyBTVkdQcm9wZXJ0eTsKLQotY2xhc3MgU1ZHUHJv
cGVydHlPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U1ZHUHJvcGVydHlPd25lcigpID0g
ZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgU1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9Ci0gICAgCi0gICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50KiBh
dHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBpZiAoIW93bmVy
KCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJuIG93bmVyKCkt
PmF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCk7Ci0gICAgfQotICAgIAotICAgIHZpcnR1YWwgdm9p
ZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpCi0gICAgewotICAg
ICAgICBpZiAoIW93bmVyKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG93bmVyKCkt
PmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKLSAgICB9Ci0gICAgCi1wcm90ZWN0ZWQ6
Ci0gICAgU1ZHUHJvcGVydHlPd25lcigpID0gZGVmYXVsdDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
LmgKaW5kZXggYTVmNzEzNjk3ZWEyYzRjNjAwYmE1MzdkYTI5NDFmNWRhOTllOTc4Yi4uMzE5YTUw
ODJhNTlkOWRlNWI2MWRmZjIxYjVlYjM2OGZkMjg3YWM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgKQEAg
LTE3OCw3ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
LSAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBTVkdQcm9wZXJ0
eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0
dHJpYnV0ZU5hbWUoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cmlidXRlTmFtZSA9IG51bGxRTmFt
ZSgpOwogICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3QgYXV0byYgZW50cnkp
IC0+IGJvb2wgewpAQCAtMjExLDMzICsyMTEsMjAgQEAgcHVibGljOgogICAgICAgICB9KTsKICAg
ICB9CiAKLSAgICAvLyBGaW5kcyB0aGUgcHJvcGVydHkgd2hvc2UgbmFtZSBpcyBhdHRyaWJ1dGVO
YW1lIGFuZCByZXR1cm5zIHRoZSBzeW5jaHJvbml6ZQotICAgIC8vIHN0cmluZyB0aHJvdWdoIHRo
ZSBhc3NvY2lhdGVkIFNWR01lbWJlckFjY2Vzc29yLgotICAgIE9wdGlvbmFsPFN0cmluZz4gc3lu
Y2hyb25pemUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkgY29uc3Qgb3ZlcnJp
ZGUKKyAgICAvLyBGaW5kcyB0aGUgcHJvcGVydHkgd2hvc2UgbmFtZSBpcyBhdHRyaWJ1dGVOYW1l
IGFuZCByZXR1cm5zIHRoZSB2YWx1ZUFzU3RyaW5nCisgICAgLy8gdGhyb3VnaCB0aGUgYXNzb2Np
YXRlZCBTVkdNZW1iZXJBY2Nlc3Nvci4KKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQogICAgIHsKLSAgICAg
ICAgT3B0aW9uYWw8U3RyaW5nPiB2YWx1ZTsKKyAgICAgICAgU3RyaW5nIHZhbHVlOwogICAgICAg
ICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3QgYXV0byYgZW50cnkpIC0+IGJvb2wgewog
ICAgICAgICAgICAgaWYgKCFlbnRyeS5rZXkubWF0Y2hlcyhhdHRyaWJ1dGVOYW1lKSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHZhbHVlID0gZW50cnkudmFsdWUt
PnN5bmNocm9uaXplKG1fb3duZXIpOworICAgICAgICAgICAgdmFsdWUgPSBlbnRyeS52YWx1ZS0+
dmFsdWVBc1N0cmluZyhtX293bmVyKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKLSAgICAvLyBFbnVtZXJhdGUg
cmVjdXJzaXZlbHkgdGhlIFNWR01lbWJlckFjY2Vzc29ycyBvZiB0aGUgT3duZXJUeXBlIGFuZCBh
bGwgaXRzIEJhc2VUeXBlcy4KLSAgICAvLyBDb2xsZWN0IGFsbCB0aGUgcGFpcnMgPEF0dHJpYnV0
ZU5hbWUsIFN0cmluZz4gb25seSBmb3IgdGhlIGRpcnR5IHByb3BlcnRpZXMuCi0gICAgSGFzaE1h
cDxRdWFsaWZpZWROYW1lLCBTdHJpbmc+IHN5bmNocm9uaXplQWxsQXR0cmlidXRlcygpIGNvbnN0
IG92ZXJyaWRlCi0gICAgewotICAgICAgICBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFN0cmluZz4g
bWFwOwotICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3QgYXV0byYgZW50cnkp
IC0+IGJvb2wgewotICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZW50cnkudmFsdWUtPnN5
bmNocm9uaXplKG1fb3duZXIpKQotICAgICAgICAgICAgICAgIG1hcC5hZGQoZW50cnkua2V5LCAq
c3RyaW5nKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9KTsKLSAgICAgICAg
cmV0dXJuIG1hcDsKLSAgICB9Ci0KICAgICBib29sIGlzQW5pbWF0ZWRQcm9wZXJ0eUF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQogICAg
IHsKICAgICAgICAgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGUgPSBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnku
aAppbmRleCAyNGZlNjQyMzdlMmY1ZTVlMWFmZTg1NTEwZjEzNjYyNjJkZjQzNDA0Li5kZTI4ZWI5
ZmUxNGE3ODdhNmM1NTFlNGRkMGY1ODUwMzg3ZTI5YTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCkBAIC0zNywxMCArMzcs
OSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHlSZWdpc3RyeSgpID0gZGVmYXVs
dDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hBbGxQcm9wZXJ0aWVzKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgU1ZH
UHJvcGVydHkmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRdWFsaWZpZWROYW1lIHByb3BlcnR5
QXR0cmlidXRlTmFtZShjb25zdCBET01MaXZlUHJvcGVydHkmKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBRdWFsaWZpZWROYW1lIGFuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNW
R0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBPcHRpb25hbDxTdHJp
bmc+IHN5bmNocm9uaXplKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCA9IDA7Ci0gICAgdmly
dHVhbCBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFN0cmluZz4gc3luY2hyb25pemVBbGxBdHRyaWJ1
dGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3Qg
UXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVk
UHJvcGVydHlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oCmluZGV4IGFjZTA1MDJiM2Nk
MWRiNjk0YmUyNmM2YmE3MTQ3ZTFjYmZmYjMzMzIuLmY3MGYxOGI4ZmZkZDkzOTQyN2EzNDhhNGNm
NWZhOGEyZDQ2YTlmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaApAQCAtMjUsMTIgKzI1LDEyIEBA
CiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHkuaCIKKyNpbmNsdWRlICJE
T01MaXZlUHJvcGVydHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eSA6IHB1
YmxpYyBTVkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eSA6IHB1
YmxpYyBET01MaXZlUHJvcGVydHkgewogcHVibGljOgogICAgIHVzaW5nIFZhbHVlVHlwZSA9IFBy
b3BlcnR5VHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHVmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eS5oCmluZGV4IDlmMzFlMmQwZjUzOWNjMjAyM2I2M2Y4NzA2ODZmMGVkODFkYzI5
Y2UuLjg1OTg2YzliYmYwY2FiZWNkZDYzZjY2OGMyYWIwNDc0YTdlOWMzNzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTI1LDEy
ICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAK
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR1ZhbHVlUHJvcGVydHkg
OiBwdWJsaWMgU1ZHUHJvcGVydHkgeworY2xhc3MgU1ZHVmFsdWVQcm9wZXJ0eSA6IHB1YmxpYyBE
T01MaXZlUHJvcGVydHkgewogcHVibGljOgogICAgIHVzaW5nIFZhbHVlVHlwZSA9IFByb3BlcnR5
VHlwZTsKIApAQCAtNjMsMTUgKzYzLDE1IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0g
ICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZH
UHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4K
LSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwg
U1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkK
LSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgIC8vIEJhc2UgYW5kIGRl
ZmF1bHQgY29uc3RydWN0b3IuIERvIG5vdCB1c2UgInVzaW5nIERPTUxpdmVQcm9wZXJ0eTo6RE9N
TGl2ZVByb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KKyAgICBTVkdW
YWx1ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIp
CisgICAgICAgIDogRE9NTGl2ZVByb3BlcnR5KG9ic2VydmVyKQogICAgIHsKICAgICB9CiAKICAg
ICAvLyBDcmVhdGUgYW4gaW5pdGlhbGl6ZWQgYW5kIGF0dGFjaGVkIHByb3BlcnR5LgotICAgIFNW
R1ZhbHVlUHJvcGVydHkoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcywgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0
eShvd25lciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVByb3BlcnR5T2Jz
ZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAgICAgICA6IERP
TUxpdmVQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQogICAgIHsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1
ZVByb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHlBbmltYXRvci5oCmluZGV4IGUxNmM4OTA0NTE0MmMxNmJiMTA1ZDdlYjM4NGI1
NDkxMDE3NjI2NjMuLmVlMWIzNzVkZmU5NTdhN2NhY2M5ZTRkMmY0MDRmOWNkMDI5YjE3YTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlB
bmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHlBbmltYXRvci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNWR1ZhbHVlUHJvcGVydHlB
bmltYXRvciA6IHB1YmxpYyBTVkdQcm9wZXJ0eUFuaW1hdG9yPEFuaW1hdGlvbkZ1bmN0aW9uPiB7
CiAKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZH
VmFsdWVQcm9wZXJ0eUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUs
IFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQXJndW1lbnRzJiYuLi4gYXJndW1lbnRzKQor
ICAgIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1
dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBcmd1bWVudHMmJi4uLiBh
cmd1bWVudHMpCiAgICAgICAgIDogQmFzZShhdHRyaWJ1dGVOYW1lLCBzdGQ6OmZvcndhcmQ8QXJn
dW1lbnRzPihhcmd1bWVudHMpLi4uKQogICAgICAgICAsIG1fcHJvcGVydHkoc3RhdGljX3JlZmVy
ZW5jZV9jYXN0PFByb3BlcnR5VHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpKQogICAgIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmlt
YXRvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlBbmltYXRvckltcGwuaAppbmRleCBlNjk2MjYwZThkMTA1MGYwODNkMDhmOTU4OWQ1MDY2ZDNk
MzY2YjM0Li4wNjhiNDMxNDRkNDU0Zjc3ZWMzMDI4NWRlZmFmNDczNzQxYWFkZTRiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0
b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9w
ZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNWR0xlbmd0aEFuaW1h
dG9yIGZpbmFsIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvcjxTVkdMZW5ndGgsIFNW
R0FuCiAgICAgdXNpbmcgQmFzZTo6bV9wcm9wZXJ0eTsKIAogcHVibGljOgotICAgIHN0YXRpYyBh
dXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJv
cGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUg
Y2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRp
YyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9N
TGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENh
bGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAg
ICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aEFuaW1hdG9yKGF0dHJp
YnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNB
Y2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSwgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIpKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5
TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxp
c3QuaAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1NmY3ODVhOWY3MTdjY2VlLi5jNWI3
M2EwZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0LmgKQEAgLTc1LDE0
ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6cmVtb3ZlOwogCiAgICAgLy8g
QmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgQmFzZTo6QmFz
ZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCi0gICAgU1ZHVmFsdWVQcm9wZXJ0
eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAgICAgICA6IEJhc2Uo
b3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6IEJhc2Uob2JzZXJ2ZXIpCiAg
ICAgewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3Qgd2hl
biBjcmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4KLSAgICBTVkdWYWx1ZVByb3BlcnR5
TGlzdChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3RoZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogQmFzZShv
dGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoY29uc3QgU1ZH
VmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIub2JzZXJ2ZXIo
KSkKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVtcy4KICAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IuaAppbmRl
eCBhYmFmYzUxZjlmOTNlOWQ4ODFkZjNkMDFlYWI1NWNjZWUyZmQ5OTU0Li5mMTU4YjQ2MGU1MjIy
NmNmYzU4MzNjMTU1MDRhYzcxOTY5M2FiNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oCkBA
IC0zOCw3ICszOCw3IEBAIGNsYXNzIFNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IgOiBwdWJs
aWMgU1ZHUHJvcGVydHlBbmltYXRvcjxBbmltYXRpb25GdW5jdGlvCiAKIHB1YmxpYzoKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3RB
bmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVy
dHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBTVkdWYWx1ZVBy
b3BlcnR5TGlzdEFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJl
ZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykK
ICAgICAgICAgOiBCYXNlKGF0dHJpYnV0ZU5hbWUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFy
Z3VtZW50cykuLi4pCiAgICAgICAgICwgbV9saXN0KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxMaXN0
VHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9y
SW1wbC5oCmluZGV4IDJlMmE4NTQwYWIxM2YxMGQwYTIwYjliMjliNmRlOTMxNDAzMzlhM2YuLjIx
OWIzNThhMTZjMWRhMzBjZDM5MjVjNTVmZWU5MTQzMzgxYjc0MDggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxp
c3RBbmltYXRvckltcGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTVkdMZW5ndGhMaXN0QW5p
bWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvcjxTVkdMZW5n
dAogICAgIHVzaW5nIEJhc2U6Om1fbGlzdDsKIAogcHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNy
ZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+
JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01v
ZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRv
IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVBy
b3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2Rl
IGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3RBbmltYXRvcihhdHRyaWJ1
dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNj
dW11bGF0ZWQsIGlzQWRkaXRpdmUsIFNWR0xlbmd0aE1vZGU6Ok90aGVyKSk7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGJkMDk5ODAwYTg1ZjNjM2MwMGNlMDUzZTk0ZjEzZTZmZjZhMjc4MDQuLjgyYzkxY2I4ZGNm
YzgzMzZiYzJkMjM4Y2EyZDI5M2Q3ZDgxNjE2ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
OS0xMC0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisg
ICAgICAgIE1ha2UgdGhlIFNWRyBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVjIG1vZGlmaWFibGUg
YnV0IGRldGFjaGVkIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjQxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSBhbGwgdGhlIHByb3BlcnRpZXMgb2YgU1ZHVmlld1Nw
ZWMgYXJlIG1vZGlmaWFibGUuCisKKyAgICAgICAgKiBzdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1
bHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRz
Lmh0bWw6CisKIDIwMTktMTAtMDEgIEFuZHJlcyBHb256YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN1cHBvcnQgYWNjZXNzaWJpbGl0eSBmb3IgPGZpZ3VyZT4gZWxlbWVu
dCBvbiBpT1MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRl
ZmF1bHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVm
YXVsdHMtZXhwZWN0ZWQudHh0CmluZGV4IDljMDE4MTc1ODE1Yjc0NGZkMmI2NTBkNzM3MmM0N2Y4
NWFhMTRhZjEuLjE0NTJhYjdjNDVhNGYzNWEzOTU5N2YwMzNlMGQzOTkyNTBiYmEyYzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMtZXhwZWN0
ZWQudHh0CkBAIC0yMCw1MCArMjAsNTMgQEAgUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJp
bmcgaXMgIiIKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyBpcyAiIgogUEFTUyBj
dXJyZW50Vmlldy56b29tQW5kUGFuIGlzIFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX01B
R05JRlkKIAotVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9mIHRoZXNlIHdpbGwgd29y
aywgYXMgU1ZHVmlld1NwZWMgaXMgZnVsbHkgcmVhZG9ubHkgLSBldmVuIHRoZSBhbmltYXRlZCBw
cm9wZXJ0aWVzIGl0IGluaGVyaXRzIGZyb20gcGFyZW50IGNsYXNzZXMgbGlrZSBTVkdab29tQW5k
UGFuL1NWR0ZpdFRvVmlld0JveAorVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9mIHRo
ZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKIFBBU1MgY3VycmVudFZp
ZXcuem9vbUFuZFBhbiA9IFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX0RJU0FCTEUgdGhy
ZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBu
b3QgYmUgbW9kaWZpZWQuLgogUEFTUyBjdXJyZW50Vmlldy56b29tQW5kUGFuIGlzIFNWR1ZpZXdF
bGVtZW50LlNWR19aT09NQU5EUEFOX01BR05JRlkKIAotVHJ5IGNoYW5naW5nIHZpZXdCb3ggLSB0
aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9u
Z3MgdG8gLSBpdCBleHBvc2VkIGFsbCBpdHMgcHJvcGVydGllcyBhcyByZWFkLW9ubHkKLVBBU1Mg
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCB0aHJldyBleGNlcHRpb24gTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1Q
QVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IGlzIDAKLVBBU1MgY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLnkgPSAyMCB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxv
d2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRW
aWV3LnZpZXdCb3guYmFzZVZhbC55IGlzIDAKLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNl
VmFsLndpZHRoID0gNTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9y
OiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwud2lkdGggaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwu
aGVpZ2h0ID0gMTAwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjog
VGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcudmlld0Jv
eC5iYXNlVmFsLmhlaWdodCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmcgaXMg
IjAgMCAwIDAiCitDaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZmZWN0IG9uIHRoZSBT
VkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMgYSBkZXRhY2hlZCBw
cm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCA9IDEwIGlzIDEwCitQ
QVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IGlzIDEwCitQQVNTIGN1cnJlbnRWaWV3
LnZpZXdCb3guYmFzZVZhbC55ID0gMjAgaXMgMjAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5i
YXNlVmFsLnkgaXMgMjAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoID0g
NTAgaXMgNTAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDUwCitQ
QVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAgaXMgMTAwCitQQVNT
IGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgaXMgMTAwCitQQVNTIGN1cnJlbnRW
aWV3LnZpZXdCb3hTdHJpbmcgaXMgIjEwIDIwIDUwIDEwMCIKIAotVHJ5IGNoYW5naW5nIHZpZXdC
b3hTdHJpbmcKK1RyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxs
IHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgPSAnMSAyIDMgNCcgaXMgIjEgMiAzIDQiCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgaXMgIjAgMCAwIDAiCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmcgaXMg
IjEwIDIwIDUwIDEwMCIKIAotVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8KLVBBU1Mg
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWduID0gU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiB0aHJldyBleGNl
cHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBt
b2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5h
bGlnbiBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hN
SURZTUlECi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0
T3JTbGljZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIHRo
cmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4g
bm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5i
YXNlVmFsLm1lZXRPclNsaWNlIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNM
SUNFX01FRVQKK0NoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlzIGhhcyBubyBhZmZl
Y3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBpcyBh
IGRldGFjaGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8u
YmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNU
UkFUSU9fWE1JTllNSU4gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BF
Q1RSQVRJT19YTUlOWU1JTgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJh
c2VWYWwuYWxpZ24gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RS
QVRJT19YTUlOWU1JTgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VW
YWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9T
TElDRSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElDRV9TTElDRQorUEFT
UyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgaXMg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UKIAotVHJ5IGNoYW5n
aW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcKLVBBU1MgY3VycmVudFZpZXcucHJlc2VydmVB
c3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBzbGljZScgaXMgInhNaW5ZTWluIHNsaWNlIgot
UEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIGlzICJ4TWlkWU1pZCBt
ZWV0IgotCi1UcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nCi1QQVNTIGN1cnJlbnRWaWV3LnRy
YW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyBpcyAicm90YXRlKDkwKSIKLVBBU1MgY3VycmVu
dFZpZXcudHJhbnNmb3JtU3RyaW5nIGlzICIiCitDaGFuZ2luZyBwcmVzZXJ2ZUFzcGVjdFJhdGlv
U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3Bl
cnR5CitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgPSAneE1pZFlN
aWQgbWVldCcgaXMgInhNaWRZTWlkIG1lZXQiCitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNw
ZWN0UmF0aW9TdHJpbmcgaXMgInhNaW5ZTWluIHNsaWNlIgogCi1UcnkgY2hhbmdpbmcgdmlld1Rh
cmdldAorVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywg
aXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldCA9
IHN2Z0VsZW1lbnQgaXMgc3ZnRWxlbWVudAogUEFTUyBjdXJyZW50Vmlldy52aWV3VGFyZ2V0IGlz
IG51bGwKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXRTdHJpbmcKK1RyeSBjaGFuZ2luZyB2aWV3
VGFyZ2V0U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZl
IHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcgPSAnI3Rlc3QnIGlz
ICIjdGVzdCIKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyBpcyAiIgogCi1Ucnkg
Y2hhbmdpbmcgdHJhbnNmb3JtCi1QQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5jbGVhcigpIHRo
cmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4g
bm90IGJlIG1vZGlmaWVkLi4KK0NoYW5naW5nIHRyYW5zZm9ybSAtIHRoaXMgaGFzIG5vIGFmZmVj
dCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEg
ZGV0YWNoZWQgcHJvcGVydHkKK1BBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtLmFwcGVuZEl0ZW0o
dHJhbnNmb3JtKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1RyYW5zZm9ybV0iCitQQVNTIGN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0ZW1zIGlzIDEKK1BBU1MgY3VycmVudFZpZXcu
dHJhbnNmb3JtU3RyaW5nIGlzICJtYXRyaXgoMSAwIDAgMSAwIDApIgorUEFTUyB1bmRlZmluZWQg
aXMgdW5kZWZpbmVkLgogUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0ubnVtYmVyT2ZJdGVtcyBp
cyAwCisKK1RyeSBjaGFuZ2luZyB0cmFuc2Zvcm1TdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwg
d29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKK1BBU1MgY3VycmVudFZpZXcudHJhbnNm
b3JtU3RyaW5nID0gJ3JvdGF0ZSg5MCknIGlzICJyb3RhdGUoOTApIgorUEFTUyBjdXJyZW50Vmll
dy50cmFuc2Zvcm1TdHJpbmcgaXMgIiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3
U3BlYy1kZWZhdWx0cy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdWaWV3U3BlYy1kZWZh
dWx0cy5odG1sCmluZGV4IGEwMjQyNjcxZDJjYWNjYjBiZWM1MjQ5YjBlNWNjOTNlNDYyNzYxZWIu
LjEwNjBiZGMyY2JkZGE3ODI0M2E4YWY4YzA2NTQyNWM2NmY3MjMxZmIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKQEAgLTM0LDYyICszNCw2NCBA
QCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmciLCAi
Iik7CiBzaG91bGRCZSgiY3VycmVudFZpZXcuem9vbUFuZFBhbiIsICJTVkdWaWV3RWxlbWVudC5T
VkdfWk9PTUFORFBBTl9NQUdOSUZZIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdp
bmcgem9vbUFuZFBhbiAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBhcyBTVkdWaWV3U3BlYyBp
cyBmdWxseSByZWFkb25seSAtIGV2ZW4gdGhlIGFuaW1hdGVkIHByb3BlcnRpZXMgaXQgaW5oZXJp
dHMgZnJvbSBwYXJlbnQgY2xhc3NlcyBsaWtlIFNWR1pvb21BbmRQYW4vU1ZHRml0VG9WaWV3Qm94
Iik7CitkZWJ1ZygiVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9mIHRoZXNlIHdpbGwg
d29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZFRocm93KCJjdXJyZW50
Vmlldy56b29tQW5kUGFuID0gU1ZHVmlld0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5fRElTQUJMRSIp
Owogc2hvdWxkQmUoImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4iLCAiU1ZHVmlld0VsZW1lbnQuU1ZH
X1pPT01BTkRQQU5fTUFHTklGWSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5n
IHZpZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZp
ZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBleHBvc2VkIGFsbCBpdHMgcHJvcGVydGllcyBhcyByZWFk
LW9ubHkiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCA9IDEw
Iik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLngiLCAiMCIpOwotc2hv
dWxkVGhyb3coImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55ID0gMjAiKTsKLXNob3VsZEJl
KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSIsICIwIik7Ci1zaG91bGRUaHJvdygiY3Vy
cmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoID0gNTAiKTsKLXNob3VsZEJlKCJjdXJyZW50
Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGgiLCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRW
aWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAiKTsKLXNob3VsZEJlKCJjdXJyZW50Vmll
dy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IiwgIjAiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygi
Y3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIwIDAgMCAwIik7CitkZWJ1ZygiQ2hhbmdpbmcg
dmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmll
d1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkiKTsKK3Nob3VsZEJl
KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCA9IDEwIiwgIjEwIik7CitzaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLngiLCAiMTAiKTsKK3Nob3VsZEJlKCJjdXJyZW50
Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIiwgIjIwIik7CitzaG91bGRCZSgiY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLnkiLCAiMjAiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwud2lkdGggPSA1MCIsICI1MCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZp
ZXdCb3guYmFzZVZhbC53aWR0aCIsICI1MCIpOworc2hvdWxkQmUoImN1cnJlbnRWaWV3LnZpZXdC
b3guYmFzZVZhbC5oZWlnaHQgPSAxMDAiLCAiMTAwIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIxMDAiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygi
Y3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsKIAogZGVidWcoIiIp
OwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nIik7CitkZWJ1ZygiVHJ5IGNoYW5n
aW5nIHZpZXdCb3hTdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmlt
aXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudmll
d0JveFN0cmluZyA9ICcxIDIgMyA0JyIsICIxIDIgMyA0Iik7Ci1zaG91bGRCZUVxdWFsVG9TdHJp
bmcoImN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMCAwIDAgMCIpOworc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIiwgIjEwIDIwIDUwIDEwMCIpOwog
CiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8iKTsK
LXNob3VsZFRocm93KCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxp
Z24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5Z
TUlOIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFs
LmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9f
WE1JRFlNSUQiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlv
LmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JT
TElDRV9TTElDRSIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8u
YmFzZVZhbC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JT
TElDRV9NRUVUIik7CitkZWJ1ZygiQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpbyAtIHRoaXMg
aGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0
byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkiKTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy5w
cmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIiwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0
aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKK3Nob3VsZEJlKCJjdXJyZW50
Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24iLCAiU1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIpOworc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSA9IFNWR1By
ZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIiwgIlNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcu
cHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIiwgIlNWR1ByZXNlcnZlQXNw
ZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVnKCJU
cnkgY2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyIpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nID0gJ3hNaW5ZTWlu
IHNsaWNlJyIsICJ4TWluWU1pbiBzbGljZSIpOwotc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJy
ZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIiwgInhNaWRZTWlkIG1lZXQiKTsKLQor
ZGVidWcoIkNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgLSBub25lIG9mIHRoZXNl
IHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKK3Nob3VsZEJlRXF1YWxU
b1N0cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWlkWU1p
ZCBtZWV0JyIsICJ4TWlkWU1pZCBtZWV0Iik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJl
bnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmciLCAieE1pbllNaW4gc2xpY2UiKTsKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB0cmFuc2Zvcm1TdHJpbmciKTsKLXNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nID0gJ3JvdGF0ZSg5
MCknIiwgInJvdGF0ZSg5MCkiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcu
dHJhbnNmb3JtU3RyaW5nIiwgIiIpOwotCi0KLWRlYnVnKCIiKTsKLWRlYnVnKCJUcnkgY2hhbmdp
bmcgdmlld1RhcmdldCIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0IC0gbm9uZSBv
ZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5Iik7CiBzaG91bGRC
ZSgiY3VycmVudFZpZXcudmlld1RhcmdldCA9IHN2Z0VsZW1lbnQiLCAic3ZnRWxlbWVudCIpOwog
c2hvdWxkQmVOdWxsKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0Iik7CiAKIAogZGVidWcoIiIpOwot
ZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nIik7CitkZWJ1ZygiVHJ5IGNoYW5n
aW5nIHZpZXdUYXJnZXRTdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBw
cmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcu
dmlld1RhcmdldFN0cmluZyA9ICcjdGVzdCciLCAiI3Rlc3QiKTsKIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyIsICIiKTsKIAogZGVidWcoIiIpOwot
ZGVidWcoIlRyeSBjaGFuZ2luZyB0cmFuc2Zvcm0iKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmll
dy50cmFuc2Zvcm0uY2xlYXIoKSIpOworZGVidWcoIkNoYW5naW5nIHRyYW5zZm9ybSAtIHRoaXMg
aGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0
byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkiKTsKK3ZhciB0cmFuc2Zvcm0gPSBzdmdFbGVt
ZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50
Vmlldy50cmFuc2Zvcm0uYXBwZW5kSXRlbSh0cmFuc2Zvcm0pLnRvU3RyaW5nKCkiLCAiW29iamVj
dCBTVkdUcmFuc2Zvcm1dIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudHJhbnNmb3JtLm51bWJl
ck9mSXRlbXMiLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy50cmFu
c2Zvcm1TdHJpbmciLCAibWF0cml4KDEgMCAwIDEgMCAwKSIpOworc2hvdWxkQmVVbmRlZmluZWQo
Y3VycmVudFZpZXcudHJhbnNmb3JtLmNsZWFyKCkpOwogc2hvdWxkQmUoImN1cnJlbnRWaWV3LnRy
YW5zZm9ybS5udW1iZXJPZkl0ZW1zIiwgIjAiKTsKIAorZGVidWcoIiIpOworZGVidWcoIlRyeSBj
aGFuZ2luZyB0cmFuc2Zvcm1TdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMg
YSBwcmltaXRpdmUgcHJvcGVydHkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZp
ZXcudHJhbnNmb3JtU3RyaW5nID0gJ3JvdGF0ZSg5MCknIiwgInJvdGF0ZSg5MCkiKTsKK3Nob3Vs
ZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIiwgIiIpOworCiBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379995</attachid>
            <date>2019-10-01 22:03:57 -0700</date>
            <delta_ts>2019-10-01 22:03:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201782-20191001220357.patch</filename>
            <type>text/plain</type>
            <size>106924</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDA3ZTkxNDk2NDU3NGI1
MDEyMWIwMWJjOWEzOGUxZDZjZTdlMTUyMi4uNjFiYjM4ODNhZTk0ZjQ1NDAyNDVmMmI4ZGYwNjEw
YmI0YmZlMGYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1MSBAQAorMjAxOS0xMC0wMSAgU2Fp
ZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxh
Y2UgU1ZHUHJvcGVydHkvU1ZHUHJvcGVydHlPd25lciBieSBET01MaXZlUHJvcGVydHkvRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwMTc4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgaXMgYSBzdGVwIHRvd2FyZHMgcmVwbGFjaW5nIFNWR1BvaW50IGJ5IERP
TVBvaW50LgorCisgICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywgbmFtZWQgRE9NTGl2ZVByb3Bl
cnR5LiBJdHMgam9iIGlzIHRvIGNvbW11bmljYXRlIHRoZQorICAgICAgICAgICBjaGFuZ2VzIGlu
IHRoaXMgb2JqZWN0IHRvIGl0cyBvYnNlcnZlci4gVGhpcyBpcyByZXBsYWNpbmcgU1ZHUHJvcGVy
dHkuCisgICAgICAgICAgIERPTVBvaW50IHdpbGwgYmUgbWFkZSBpbiBhIHN1cGVyIG9mIGl0IGFs
c28gaW4gYSBmb2xsb3dpbmcgcGF0Y2guCisKKyAgICAgICAgLS0gQWRkIGEgbmV3IGNsYXNzLCBu
YW1lZCBET01MaXZlUHJvcGVydHlPYnNlcnZlciBhbmQgbWFrZSBpdCB0aGUgYmFzZQorICAgICAg
ICAgICBjbGFzcyBvZiBET01MaXZlUHJvcGVydHkgb2JzZXJ2ZXJzLiBDdXJyZW50bHkgdGhlIGZv
bGxvd2luZyBjbGFzcyBhcmUKKyAgICAgICAgICAgbWFkZSBzdXBlciBjbGFzc2VzIG9mIERPTUxp
dmVQcm9wZXJ0eU9ic2VydmVyOgorICAgICAgICAgICAxLiBTVkdFbGVtZW50OiBUaGlzIG9ic2Vy
dmVzIHRoZSBjaGFuZ2VzIGluIGFsbCB0aGUgU1ZHIHByb3BlcnRpZXMuCisgICAgICAgICAgIDIu
IFNWR0FuaW1hdGVkUHJvcGVydHk6IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gaXRzIGJh
c2VWYWwuCisgICAgICAgICAgIDMuIFNWR1Byb3BlcnR5TGlzdDogVGhpcyBvYnNlcnZlcyB0aGUg
Y2hhbmdlcyBpbiB0aGUgaXRlbXMuCisgICAgICAgICAgIDQuIFNWR1RyYW5zZm9ybTogVGhpcyBv
YnNlcnZlcyB0aGUgY2hhbmdlcyBpbiB0aGUgdW5kZXJseWluZyBTVkdNYXRyaXguCisKKyAgICAg
ICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojppc0F0dGFjaGVkIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6b2JzZXJ2ZXIgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NTGl2ZVByb3BlcnR5OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2
ZVByb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojpz
dmdDb250ZXh0RWxlbWVudCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVy
dHk6OmlzUmVhZE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5
Ojpjb21taXRDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojp2YWx1
ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6RE9N
TGl2ZVByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6b2JzZXJ2
ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI6OnBy
b3BlcnR5U1ZHQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXI6OmlzUHJvcGVydHlSZWFkT25seSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01MaXZlUHJvcGVydHlPYnNlcnZlcjo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgor
ICAgICAgICAqIHN2Zy9TVkdBbmdsZS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5nbGU6OmNy
ZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UpOgorICAgICAgICAqIHN2Zy9TVkdFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVuZ3RoOjp2YWx1ZUZvckJp
bmRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6c2V0VmFsdWVGb3JCaW5kaW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdMZW5ndGg6OmNvbnZlcnRUb1NwZWNpZmllZFVuaXRz
KToKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGVuZ3RoTGlzdDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OlNW
R0xlbmd0aExpc3QpOgorICAgICAgICAqIHN2Zy9TVkdNYXRyaXguaDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR01hdHJpeDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTnVtYmVyLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdOdW1iZXI6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR051bWJl
ckxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlckxpc3Q6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWcuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoK
KyAgICAgICAgKiBzdmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2lu
dExpc3Q6OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6
CisgICAgICAgICogc3ZnL1NWR1N0cmluZ0xpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHVHJhbnNm
b3JtLmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUHJvcGVydHk6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNW
R0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0FuaW1hdGVkUHJvcGVydHk6Om93bmVyIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdBbmltYXRlZFByb3BlcnR5Ojp2YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBz
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNzb3JJbXBsLmg6CisgICAgICAg
ICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5Lmg6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR01l
bWJlckFjY2Vzc29yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNZW1iZXJBY2Nlc3Nvcjo6bWF0
Y2hlcyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFj
Y2Vzc29yLmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlB
bmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRv
cjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0
b3I6OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlBY2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
QW5pbWF0b3JGYWN0b3J5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFuaW1hdG9y
RmFjdG9yeTo6Y3JlYXRlQ29sb3JBbmltYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9w
ZXJ0eUFuaW1hdG9yRmFjdG9yeTo6Y3JlYXRlTGVuZ3RoQW5pbWF0b3IpOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxlbmd0aExpc3RBbmltYXRv
cik6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTo6Y3JlYXRl
TnVtYmVyQW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZh
Y3Rvcnk6OmNyZWF0ZVN0cmluZ0FuaW1hdG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlzdDo6U1ZH
UHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVy
Lmg6IFJlbW92ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJl
Z2lzdHJ5Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5Lmg6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6U1ZHVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICog
c3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3I6OlNWR1ZhbHVlUHJvcGVydHlBbmltYXRvcik6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdWYWx1ZVByb3BlcnR5TGlzdDo6U1ZHVmFsdWVQcm9wZXJ0eUxpc3Qp
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3I6OlNWR1Zh
bHVlUHJvcGVydHlMaXN0QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmg6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1I
YWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgU1ZHUHJv
cGVydHlTdGF0ZSBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2luZyBTVkdQ
b2ludCBieSBET01Qb2ludC4KKworICAgICAgICBTVkdQcm9wZXJ0eSBrZWVwcyBhIG1lbWJlciBv
ZiB0eXBlIFNWR1Byb3BlcnR5U3RhdGUgd2hpY2ggdGVsbHMgd2hldGhlcgorICAgICAgICBpdCBu
ZWVkcyB0byBiZSByZS1zZXJpYWxpemVkIHRvIGl0cyBhdHRyaWJ1dGUgb3Igbm90LiBCdXQgdGhl
IGRpcnR5IHN0YXRlCisgICAgICAgIGlzIG9ubHkgc2V0IGluIFNWR0VsZW1lbnQ6OmNvbW1pdFBy
b3BlcnR5Q2hhbmdlKCkuCisKKyAgICAgICAgU28gaW5zdGVhZCBvZiBoYXZpbmcgU1ZHRWxlbWVu
dCBzZW5kcyB0aGlzIGNoYW5nZSBiYWNrIHRvIHRoZSBwcm9wZXJ0eSwKKyAgICAgICAgd2UgYXJl
IGdvaW5nIHRvIGtlZXAgYSBIYXNoU2V0PFF1YWxpZmllZE5hbWU+IGluIFNWR0VsZW1lbnQgdG8g
dGVsbCB3aGljaAorICAgICAgICBhdHRyaWJ1dGVzIG5lZWQgdG8gYmUgcmUtc2VyaWFsaXplZC4g
QW5kIGluc3RlYWQgb2YgY2FsbGluZyB0aGUgdmlydHVhbAorICAgICAgICBtZXRob2Qgc3luY2hy
b25pemUoKSB3aGljaCB3YXMgcmV0dXJuaW5nIE9wdGlvbmFsPFN0cmluZz4sIHdlIGFyZSBnb2lu
ZworICAgICAgICB0byBjYWxsIHRoZSB2aXJ0dWFsIG1ldGhvZCB2YWx1ZUFzU3RyaW5nKCkgd2hp
Y2ggcmV0dXJucyBhIFN0cmluZy4KKworICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQXR0cmlidXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQXR0cmlidXRlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNoYW5nZSk6CisgICAgICAg
ICogc3ZnL1NWR0VsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGVuZ3RoLmg6CisgICAgICAg
ICogc3ZnL1NWR0xlbmd0aExpc3QuaDoKKyAgICAgICAgKiBzdmcvU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+Ojppbml0aWFsVmFsdWUpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlPjo6
ZnJvbVN0cmluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0
czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+OjpwYXJzZSk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWU+
Ojp0b1N0cmluZyk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0
ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJpbWl0aXZlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojp2
YWx1ZUFzU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVy
dHk6OmlzRGlydHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0
ZWRQcm9wZXJ0eTo6c2V0RGlydHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5p
bWF0ZWRQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDoKKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWVtYmVy
QWNjZXNzb3I6OnZhbHVlQXNTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWVt
YmVyQWNjZXNzb3I6OnN5bmNocm9uaXplIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcv
cHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHk6OmF0
dGFjaCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5Ojppc0RpcnR5IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpzZXREaXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpTVkdQcm9wZXJ0eTo6c3luY2hyb25pemUpOiBEZWxldGVkLgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaDoKKworMjAxOS0xMC0wMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBTVkdQcm9w
ZXJ0eUFjY2VzcyBmcm9tIFNWR1Byb3BlcnR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dhcmRzIHJlcGxhY2luZyBTVkdQ
b2ludCBieSBET01Qb2ludC4KKworICAgICAgICBBbiBTVkdQcm9wZXJ0eSBpcyByZWFkLW9ubHkg
aWYgaXQgb3IgaXRzIG93bmVyIGlzIHRoZSBhbmltVmFsIG9mIGFuCisgICAgICAgIFNWR0FuaW1h
dGVkUHJvcGVydHkgb3IgU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuIEluIHRoaXMgY2FzZSBhbGwg
YXR0ZW1wdHMKKyAgICAgICAgdG8gY2hhbmdlIGl0IHRocm91Z2ggSmF2YVNjcmlwdCBzaG91bGQg
dGhyb3cgZXhwZWN0aW9ucy4KKworICAgICAgICBTbyBpbnN0ZWFkIG9mIGtlZXBpbmcgYSBtZW1i
ZXIgb2YgU1ZHUHJvcGVydHlBY2Nlc3MgaW4gZWFjaCBTVkdQcm9wZXJ0eSwKKyAgICAgICAgd2Ug
Y2FuIHdhbGsgdGhyb3VnaCB0aGUgU1ZHUHJvcGVydHlPd25lciBjaGFpbiB0aWxsIHdlIHJlYWNo
IGFuIG93bmVyIG9mCisgICAgICAgIHR5cGUgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSBvciBTVkdBbmlt
YXRlZFByb3BlcnR5TGlzdC4gVGhpcyBvd25lciBjb21wYXJlcworICAgICAgICB0aGUgcHJvcGVy
dHkgdG8gYmUgbW9kaWZpZWQgd2l0aCBpdHMgYW5pbVZhbC4gQW5kIGlmIHRoZXkgYXJlIHRoZSBz
YW1lLAorICAgICAgICBpdCB3aWxsIHJldHVybiAndHJ1ZScgdGhyb3VnaCBpdHMgdmlydHVhbCBt
ZXRob2QgaXNQcm9wZXJ0eVJlYWRPbmx5KCkuCisKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aC5oOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGVuZ3RoOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdMZW5ndGhMaXN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGVuZ3RoTGlzdDo6U1ZHTGVuZ3RoTGlzdCk6CisgICAgICAgICogc3ZnL1NWR01hdHJpeC5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHTWF0cml4OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9T
VkdOdW1iZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR051bWJlcjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBzdmcvU1ZHTnVtYmVyTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyTGlz
dDo6Y3JlYXRlKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0xpc3QuaDoKKyAgICAgICAgKiBz
dmcvU1ZHUG9pbnRMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQb2ludExpc3Q6OmNyZWF0
ZSk6CisgICAgICAgICogc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1ByZXNlcnZlQXNwZWN0UmF0aW86OmNyZWF0ZSk6CisgICAgICAgICogc3ZnL1NW
R1JlY3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3Q6OmNyZWF0ZSk6CisgICAgICAgICog
c3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFuc2Zvcm1MaXN0Lmg6Cisg
ICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGVkUHJvcGVydHlMaXN0OjpTVkdBbmltYXRlZFByb3BlcnR5
TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5TGlzdDo6ZW5zdXJl
QW5pbVZhbCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3Bl
cnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVlUHJvcGVydHk6OlNWR0Fu
aW1hdGVkVmFsdWVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFZhbHVl
UHJvcGVydHk6OmVuc3VyZUFuaW1WYWwpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YXR0YWNoKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UHJvcGVydHk6OmNvbnRleHRFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1By
b3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5
OjpTVkdQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eTo6YWNjZXNzIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5TGlzdDo6U1ZHUHJvcGVydHlMaXN0KToK
KyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVyLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjppc1Byb3BlcnR5UmVhZE9ubHkgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlPd25lcjo6cHJvcGVydHlDb250ZXh0RWxlbWVudCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eU93bmVyOjphdHRyaWJ1dGVDb250
ZXh0RWxlbWVudCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eTo6U1ZH
VmFsdWVQcm9wZXJ0eSk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0
eUxpc3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHlMaXN0OjpTVkdWYWx1
ZVByb3BlcnR5TGlzdCk6CisKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRoZSBTVkcgcHJvcGVydGllcyBvZiBT
VkdWaWV3U3BlYyBtb2RpZmlhYmxlIGJ1dCBkZXRhY2hlZCBwcm9wZXJ0aWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI0MTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUbyBmYWNpbGl0YXRlIGFjY2Vz
c2luZyB0aGUgU1ZHUHJvcGVydGllcywgbWFrZSBhbGwgdGhlIHByb3BlcnRpZXMgb2YKKyAgICAg
ICAgU1ZHVmlld1NwZWMgbW9kaWZpYWJsZSBidXQgZGV0YWNoZWQgcHJvcGVydGllcy4gVGhpcyB3
aWxsIGJlIGluIGNvbXBsaWFuY2UKKyAgICAgICAgd2l0aCB0aGUgc3BlY3M6IGh0dHBzOi8vd3d3
LnczLm9yZy9UUi9TVkcxMS90eXBlcy5odG1sI0ludGVyZmFjZVNWR1ZpZXdTcGVjLgorCisgICAg
ICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRU
b1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1Zp
ZXdCb3g6OnBhcnNlVmlld0JveCk6CisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5oOgor
ICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdWaWV3
U3BlYzo6U1ZHVmlld1NwZWMpOgorICAgICAgICAqIHN2Zy9TVkdWaWV3U3BlYy5oOgorCiAyMDE5
LTEwLTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBhdHRlbXB0IHRvIGZpeCBXaW5kb3dzIGJ1aWxkIGFmdGVyIHIyNTA1MjcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQppbmRleCA1NGFmMjJkYWRlNjUzZmQzYWJhNzg2YzE1OWZlMDBkMmYwYThiZDk0Li4z
ZDdkNzc2MTk2NDJkMGM0ODg1OTViOWEwMWE2ZWQ5MWI3OTBmZWRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21h
a2UKQEAgLTM2MCw2ICszNjAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1lU3RhbXAu
aAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisgICAgZG9tL0RPTUxpdmVQcm9wZXJ0eS5o
CisgICAgZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKICAgICBkb20vRE9NUGFzdGVBY2Nl
c3MuaAogICAgIGRvbS9ET01SZWN0LmgKICAgICBkb20vRE9NUmVjdEluaXQuaApAQCAtMTM4OSw4
ICsxMzkxLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAg
c3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZl
TGlzdC5oCi0gICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAotICAgIHN2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5T3duZXIuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJh
aXRzLmgKIAogICAgIHRlc3RpbmcvTW9ja0dhbWVwYWQuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRjOTVkOGVh
YjQ3N2E3YzAwYWU1NTQ1ZDIzYTc5ZWUuLjhiYTIwYWQxNjhjYTgyOTQzMjY5MTlhZjgzMmVlZThm
M2FjNGFlYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTIwODUsMTIgKzIwODUsMTIgQEAKIAkJNzFFRkNFREMyMDJCMzhBOTAw
RDdDNDExIC8qIEFuaW1hdGlvbkVmZmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNzFFRkNFRDcyMDJCMzg4RDAwRDdDNDExIC8qIEFuaW1hdGlvbkVm
ZmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTcyMTQ0MzMxMjIzRUM4NTQwMEYxMkZGNyAvKiAobnVsbCkgaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzIxNDQzMzIyMjNFQzg1RjAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwotCQk3MjE0NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVydHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1RUU1MzYzMjIzQjJB
MjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQcm9w
ZXJ0eU93bmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyMjgzRjBFMjMwQjI2
OEMwMEY1RDgyOCAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzJDMThBM0YyMzBCMDRCNzAwNjg0N0M3IC8qIElt
YWdlUGFpbnRpbmdPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzI0RUQzMzIxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5N
YXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVE
MzMwMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJsZW5kTWluTWF4LmggKi87IH07CiAJCTcyNEVF
NTUwMURDODBEN0YwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjRFRTU0RTFEQzdGMjVCMDBBOTFGRkIgLyog
QWN0aXZpdHlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTcyNEVFNTUxMURDODBEODQwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdl
T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyNEVFNTRGMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0eVN0YXRlQ2hhbmdlT2JzZXJ2ZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk3Mjgz
MTVDMTIzNDQ0MDE1MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcg
LyogRE9NTGl2ZVByb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNzI4MzE1QzIyMzQ0NDAyMjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0
eU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjgzMTVCRTIzNDQyMjkxMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3NTUzQ0ZF
ODEwOEY0NzNGMDBFQTI4MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTUzQ0ZFNjEwOEY0NzNGMDBFQTI4
MUUgLyogVGltZWxpbmVSZWNvcmRGYWN0b3J5LmggKi87IH07CiAJCTc1NzkzRTg0MEQwQ0UwQjMw
MDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDc1NzkzRTgxMEQwQ0UwQjMwMDdGQzBBQyAvKiBNZXNzYWdlRXZlbnQu
aCAqLzsgfTsKIAkJNzU3OTNFQzkwRDBDRTcyRDAwN0ZDMEFDIC8qIEpTTWVzc2FnZUV2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3NTc5M0VDNzBE
MENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZlbnQuaCAqLzsgfTsKQEAgLTg1NjUsMTAgKzg1
NjUsOCBAQAogCQk1NUVFNTM1RDIyM0IyQTBEMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0
eVBhaXJBY2Nlc3NvckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZH
QW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTVFRTUzNUUyMjNCMkEwRTAwRkJBOTQ0IC8qIFNWR0FuaW1hdGlvbkFkZGl0aXZl
VmFsdWVGdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmlt
YXRpb25BZGRpdGl2ZVZhbHVlRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNTVFRTUzNUYyMjNCMkEwRjAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJvcGVydHlQYWlyQW5p
bWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eVBhaXJBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1NUVFNTM2
MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25lci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdQcm9wZXJ0eU93bmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTU1RUU1MzYxMjIzQjJBMjIwMEZCQTk0NCAvKiBTVkdBdHRyaWJ1dGVBbmltYXRv
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBdHRyaWJ1dGVB
bmltYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RUU1MzYyMjIzQjJB
MjMwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNWR0FuaW1hdGVkUHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU1RUU1MzY0MjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdBdHRyaWJ1dGVB
bmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBdHRyaWJ1dGVB
bmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NUZBN0ZGQTIxMTBFQ0Q3
MDA1QUVGRTcgLyogU1ZHWm9vbUFuZFBhblR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHWm9vbUFu
ZFBhblR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTcwNDQwNTcxRTUzODUx
NjAwMzU2NjAxIC8qIENyeXB0b0FsZ29yaXRobUFFU19DRkJNYWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NDQ5LDYgKzk0NDcsOCBAQAogCQk3MjdBRkVE
MTFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NzI3QUZFRDIxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MjdBRkVEMzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUJF
MjM0NDIyOTEwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk3MjgzMTVDMDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2
ZVByb3BlcnR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9w
ZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkMxOEEzRjIzMEIwNEI3MDA2
ODQ3QzcgLyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VQYWlu
dGluZ09wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJFNDE3NjExQTJF
OEQyRjAwNEM1NjJBIC8qIEpTRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0VYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MkU0MTc2MjFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEpTRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTYxNjMsMTMgKzE2MTYzLDExIEBACiAJCQkJNTVEQ0M1MjUyMjQwNzQ5RTAwQzI2RTMyIC8q
IFNWR1ByaW1pdGl2ZUxpc3QuaCAqLywKIAkJCQk3MjY2RjAxNTIyNDFDMDk4MDA4MzM5NzUgLyog
U1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oICovLAogCQkJCTcyNjZGMDE0MjI0MUJGQjIw
MDgzMzk3NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oICovLAotCQkJCTU1
RUU1MzYzMjIzQjJBMjQwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eS5oICovLAogCQkJCTU1RENDNTI2
MjI0MDc0RkEwMEMyNkUzMiAvKiBTVkdQcm9wZXJ0eUFjY2Vzc29yLmggKi8sCiAJCQkJNTVEQ0M1
MjcyMjQwNzUwQjAwQzI2RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3JJbXBsLmggKi8sCiAJCQkJ
NzI2NkYwMTYyMjQxQzBGRTAwODMzOTc1IC8qIFNWR1Byb3BlcnR5QW5pbWF0b3IuaCAqLywKIAkJ
CQk3MjY2RjAxMzIyNDFCQ0UyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnku
aCAqLywKIAkJCQk3MjY2RjAyNzIyNDMxMDkyMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlMaXN0Lmgg
Ki8sCi0JCQkJNTVFRTUzNjAyMjNCMkEyMTAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5T3duZXIuaCAq
LywKIAkJCQk1NUJFMDI1QzIyM0IyOUMzMDAzMkYwOEEgLyogU1ZHUHJvcGVydHlPd25lclJlZ2lz
dHJ5LmggKi8sCiAJCQkJNTVCRTAyNTcyMjNCMjlDMDAwMzJGMDhBIC8qIFNWR1Byb3BlcnR5UmVn
aXN0cnkuaCAqLywKIAkJCQkwODhBMEUwMzEyNkVGMURCMDA5NzhGN0EgLyogU1ZHUHJvcGVydHlU
cmFpdHMuaCAqLywKQEAgLTI3NTU5LDYgKzI3NTU3LDggQEAKIAkJCQlBODE4NUYzNjA5NzY1NzY1
MDA1ODI2RDkgLyogRE9NSW1wbGVtZW50YXRpb24uY3BwICovLAogCQkJCUE4MTg1RjMzMDk3NjU3
NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5oICovLAogCQkJCTkzRUVDMUU5MDlDMjg3
NzcwMEM1MTVEMSAvKiBET01JbXBsZW1lbnRhdGlvbi5pZGwgKi8sCisJCQkJNzI4MzE1QzAyMzQ0
MjI5MjAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eS5oICovLAorCQkJCTcyODMxNUJFMjM0NDIy
OTEwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZlci5oICovLAogCQkJCUY0QjQyMkMy
MjIwQzAwMDAwMDlFMUU3RCAvKiBET01QYXN0ZUFjY2Vzcy5oICovLAogCQkJCTBGNDk2Njk5MURC
NDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludC5oICovLAogCQkJCTBGNDk2NjlBMURCNDA4QzEwMEEy
NzRCQiAvKiBET01Qb2ludC5pZGwgKi8sCkBAIC0yOTE1Myw2ICsyOTE1Myw4IEBACiAJCQkJRTNB
Nzc2NjcxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETENvbnZlcnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUUzQTc3NjY4MURDODVEMjgwMEI2OTBEOCAvKiBET01KSVRJRExUeXBlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlFMzU4MDJCNjFEQzg0MzVEMDBBOTc3M0MgLyogRE9NSklUSURMVHlwZUZp
bHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI4MzE1QzEyMzQ0NDAxNTAwMDdEMjc3IC8qIERP
TUxpdmVQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI4MzE1QzIyMzQ0NDAyMjAwMDdE
Mjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MzZB
Q0VDQTFFQ0E5NTY5MDA0QkQwMTIgLyogRE9NTWF0cml4LmggaW4gSGVhZGVycyAqLywKIAkJCQk3
Q0JCQkNDNzFGNTYwNTgxMDA1RUZBQUMgLyogRE9NTWF0cml4MkRJbml0LmggaW4gSGVhZGVycyAq
LywKIAkJCQk4MzZBQ0VDQjFFQ0E5NTZEMDA0QkQwMTIgLyogRE9NTWF0cml4SW5pdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0zMTk3Niw4ICszMTk3OCw2IEBACiAJCQkJQjIyMjdBOTQwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR1BvbHlsaW5lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
OTcwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1RENDNTI4MjI0MDdCMjAwMEMyNkUzMiAvKiBTVkdQcmltaXRpdmVMaXN0Lmgg
aW4gSGVhZGVycyAqLywKLQkJCQk3MjE0NDMzMzIyM0VDOEIwMDBGMTJGRjcgLyogU1ZHUHJvcGVy
dHkuaCBpbiBIZWFkZXJzICovLAotCQkJCTcyMTQ0MzM0MjIzRUM5MTYwMEYxMkZGNyAvKiBTVkdQ
cm9wZXJ0eU93bmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODhBMEUwQzEyNkVGMURCMDA5NzhG
N0EgLyogU1ZHUHJvcGVydHlUcmFpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3QTlBMEQw
MEJGMjIwMDcxQjc4MiAvKiBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4RURFMTlGMTJBNTBCOEUwMEI5NTc5NyAvKiBTVkdSZWN0LmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODg4OGQzN2Q2
ZWY3YTdhMmY0NDU5ZTgxOWVhMzVlNzY5Y2I3MTEwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eS5oCkBAIC0wLDAgKzEsODUgQEAKKy8qCisqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgorKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgorKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5
T2JzZXJ2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTUxpdmVQ
cm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPERPTUxpdmVQcm9wZXJ0eT4geworcHVibGljOgor
ICAgIHZpcnR1YWwgfkRPTUxpdmVQcm9wZXJ0eSgpID0gZGVmYXVsdDsKKworICAgIC8vIE1hbmFn
aW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb2JzZXJ2ZXIuCisgICAgYm9vbCBpc0F0dGFj
aGVkKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9i
c2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KKworICAgIHZv
aWQgYXR0YWNoKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghbV9vYnNlcnZlcik7CisgICAgICAgIG1fb2JzZXJ2ZXIgPSBvYnNlcnZlcjsK
KyAgICB9CisKKyAgICB2b2lkIGRldGFjaCgpCisgICAgeworICAgICAgICBtX29ic2VydmVyID0g
bnVsbHB0cjsKKyAgICB9CisKKyAgICAvLyBUcmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRp
bGwgYW4gRWxlbWVudCBvYnNlcnZlciBpcyByZWFjaGVkLgorICAgIGNvbnN0IFNWR0VsZW1lbnQq
IHN2Z0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9vYnNlcnZl
cikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gbV9vYnNlcnZl
ci0+cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIGJvb2wgaXNSZWFk
T25seSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9vYnNlcnZlciAmJiBtX29ic2Vy
dmVyLT5pc1Byb3BlcnR5UmVhZE9ubHkoKnRoaXMpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0
aGUgbGl2ZSBwcm9wZXJ0eSBjaGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZv
aWQgY29tbWl0Q2hhbmdlKCkKKyAgICB7CisgICAgICAgIGlmICghbV9vYnNlcnZlcikKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgbV9vYnNlcnZlci0+Y29tbWl0UHJvcGVydHlDaGFuZ2Uo
dGhpcyk7CisgICAgfQorCisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0
IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKworcHJvdGVjdGVkOgorICAgIERPTUxpdmVQcm9w
ZXJ0eShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAg
ICA6IG1fb2JzZXJ2ZXIob2JzZXJ2ZXIpCisgICAgeworICAgIH0KKworICAgIERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBtX29ic2VydmVyIHsgbnVsbHB0ciB9OworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0
eU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMGE5MDdhYzE2NjAxOTdmZDJjMjU3YmRiNjk4ZWJiMzNjOTc1MjBhCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2Vy
dmVyLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworI3ByYWdtYSBv
bmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5OworY2xh
c3MgU1ZHRWxlbWVudDsKKworY2xhc3MgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKCkgPSBkZWZhdWx0OworCisg
ICAgLy8gVGhlIG9ic2VydmVyIGl0c2VsZiBtYXkgaGF2ZSBhbiBvYnNlcnZlci4KKyAgICB2aXJ0
dWFsIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KKworICAgIC8vIFRyYXZlcnNlIHRoZSBvYnNlcnZlcnMgY2hhaW4gdGlsbCBhbiBF
bGVtZW50IG9ic2VydmVyIGlzIHJlYWNoZWQuCisgICAgdmlydHVhbCBjb25zdCBTVkdFbGVtZW50
KiBwcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50KCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICgh
b2JzZXJ2ZXIoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4g
b2JzZXJ2ZXIoKS0+cHJvcGVydHlTVkdDb250ZXh0RWxlbWVudCgpOworICAgIH0KKworICAgIHZp
cnR1YWwgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9w
ZXJ0eSkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpICYmIG9ic2VydmVy
KCktPmlzUHJvcGVydHlSZWFkT25seShwcm9wZXJ0eSk7CisgICAgfQorCisgICAgLy8gQ29tbWl0
IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZlcnMgY2hhaW4uCisgICAg
dmlydHVhbCB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVy
dHkpCisgICAgeworICAgICAgICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKKyAg
ICB9CisKK3Byb3RlY3RlZDoKKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVs
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmdsZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKaW5kZXgg
OWM2MTczMmFlOTMxYzk4NTRlNzU2OWUxY2IyMmE2ZWQ4ZGFmNWIwMy4uMDRiMjE2ZmE3NmVlMGFj
Mjg3NmE2M2UwZDZiMzk1NGEzODY1YWVmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0FuZ2xlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKQEAgLTQxLDkg
KzQxLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZSh2
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdQcm9w
ZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdBbmds
ZVZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR0FuZ2xlPiBjcmVhdGUoRE9N
TGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBTVkdBbmdsZVZhbHVlJiB2YWx1
ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0FuZ2xlKG93
bmVyLCBhY2Nlc3MsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0Fu
Z2xlKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKaW5kZXggMTZjM2FmYzIxNTNiNjhkYTlkODUzNjU2
OTYyNjA1YzhlMTBhNWFmNC4uMjA0YzIyYmIzNmRkYTA4NjI4MTM5MTcyMzBmZDRlOTQwMTFmNDk0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcApAQCAtNTQxLDIwICs1NDEsMjMgQEAgdm9p
ZCBTVkdFbGVtZW50OjphdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21TdHJpbmcmIG8KICAgICAgICAgc3ZnQXR0cmlidXRlQ2hhbmdlZChuYW1lKTsK
IH0KIAotdm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lKQordm9pZCBTVkdFbGVtZW50OjpzeW5jaHJvbml6ZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKQogewotICAgIC8vIElmIHRoZSB2YWx1ZSBv
ZiB0aGUgcHJvcGVydHkgaGFzIGNoYW5nZWQsIHNlcmlhbGl6ZSB0aGUgbmV3IHZhbHVlIHRvIHRo
ZSBhdHRyaWJ1dGUuCi0gICAgaWYgKGF1dG8gdmFsdWUgPSBwcm9wZXJ0eVJlZ2lzdHJ5KCkuc3lu
Y2hyb25pemUobmFtZSkpCi0gICAgICAgIHNldFN5bmNocm9uaXplZExhenlBdHRyaWJ1dGUobmFt
ZSwgKnZhbHVlKTsKKyAgICBhdXRvIGl0ID0gbV9kaXJ0eUF0dHJpYnV0ZXMuZmluZChhdHRyaWJ1
dGVOYW1lKTsKKyAgICBpZiAoaXQgPT0gbV9kaXJ0eUF0dHJpYnV0ZXMuZW5kKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICAvLyBJZiB0aGUgdmFsdWUgb2YgdGhlIHByb3BlcnR5IGhhcyBj
aGFuZ2VkLCByZXNlcmlhbGl6ZSB0aGUgbmV3IHZhbHVlIHRvIHRoZSBhdHRyaWJ1dGUuCisgICAg
c2V0U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBwcm9wZXJ0eVJlZ2lz
dHJ5KCkudmFsdWVBc1N0cmluZyhhdHRyaWJ1dGVOYW1lKSk7CisgICAgbV9kaXJ0eUF0dHJpYnV0
ZXMucmVtb3ZlKGl0KTsKIH0KICAgICAKIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxB
dHRyaWJ1dGVzKCkKIHsKLSAgICAvLyBTVkdQcm9wZXJ0eVJlZ2lzdHJ5OjpzeW5jaHJvbml6ZUFs
bEF0dHJpYnV0ZXMoKSByZXR1cm5zIHRoZSBuZXcgdmFsdWVzIG9mCi0gICAgLy8gdGhlIHByb3Bl
cnRpZXMgd2hpY2ggaGF2ZSBjaGFuZ2VkIGJ1dCBub3QgY29tbWl0dGVkIHlldC4KLSAgICBhdXRv
IG1hcCA9IHByb3BlcnR5UmVnaXN0cnkoKS5zeW5jaHJvbml6ZUFsbEF0dHJpYnV0ZXMoKTsKLSAg
ICBmb3IgKGNvbnN0IGF1dG8mIGVudHJ5IDogbWFwKQotICAgICAgICBzZXRTeW5jaHJvbml6ZWRM
YXp5QXR0cmlidXRlKGVudHJ5LmtleSwgZW50cnkudmFsdWUpOworICAgIC8vIFJlc2VyaWFsaXpl
IHRoZSB2YWx1ZXMgb2YgdGhlIGNoYW5nZWQgcHJvcGVydGllcyB0byB0aGVpciBhdHRyaWJ1dGVz
LgorICAgIGZvciAoYXV0byYgYXR0cmlidXRlTmFtZSA6IG1fZGlydHlBdHRyaWJ1dGVzKQorICAg
ICAgICBzZXRTeW5jaHJvbml6ZWRMYXp5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUsIHByb3BlcnR5
UmVnaXN0cnkoKS52YWx1ZUFzU3RyaW5nKGF0dHJpYnV0ZU5hbWUpKTsKKyAgICBtX2RpcnR5QXR0
cmlidXRlcy5jbGVhcigpOwogfQogCiB2b2lkIFNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQW5p
bWF0ZWRTVkdBdHRyaWJ1dGUoU1ZHRWxlbWVudCYgc3ZnRWxlbWVudCkKQEAgLTU2MiwxNSArNTY1
LDE4IEBAIHZvaWQgU1ZHRWxlbWVudDo6c3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0
ZShTVkdFbGVtZW50JiBzdmdFbGVtZW50KQogICAgIHN2Z0VsZW1lbnQuc3luY2hyb25pemVBbGxB
dHRyaWJ1dGVzKCk7CiB9CiAKLXZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2Uo
U1ZHUHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0eUNo
YW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KQogeworICAgIFF1YWxpZmllZE5hbWUgYXR0
cmlidXRlTmFtZSA9IHByb3BlcnR5UmVnaXN0cnkoKS5wcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoKnBy
b3BlcnR5KTsKKyAgICBBU1NFUlQoYXR0cmlidXRlTmFtZSAhPSBudWxsUU5hbWUoKSk7CisKICAg
ICAvLyBXZSB3YW50IHRvIGRpcnR5IHRoZSB0b3AtbGV2ZWwgcHJvcGVydHkgd2hlbiBhIGRlc2Nl
bmRhbnQgY2hhbmdlcy4gRm9yIGV4YW1wbGUKICAgICAvLyBhIGNoYW5nZSBpbiBhbiBTVkdMZW5n
dGggaXRlbSBpbiBTVkdMZW5ndGhMaXN0IHNob3VsZCBzZXQgdGhlIGRpcnR5IGZsYWcgb24KICAg
ICAvLyBTVkdMZW5ndGhMaXN0IGFuZCBub3QgdGhlIFNWR0xlbmd0aC4KLSAgICBwcm9wZXJ0eS0+
c2V0RGlydHkoKTsKKyAgICBtX2RpcnR5QXR0cmlidXRlcy5hZGQoYXR0cmlidXRlTmFtZSk7CiAK
ICAgICBpbnZhbGlkYXRlU1ZHQXR0cmlidXRlcygpOwotICAgIHN2Z0F0dHJpYnV0ZUNoYW5nZWQo
cHJvcGVydHlSZWdpc3RyeSgpLnByb3BlcnR5QXR0cmlidXRlTmFtZSgqcHJvcGVydHkpKTsKKyAg
ICBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJpYnV0ZU5hbWUpOwogfQogCiB2b2lkIFNWR0VsZW1l
bnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmIGFuaW1hdGVkUHJv
cGVydHkpCkBAIC01ODEsNyArNTg3LDcgQEAgdm9pZCBTVkdFbGVtZW50Ojpjb21taXRQcm9wZXJ0
eUNoYW5nZShTVkdBbmltYXRlZFByb3BlcnR5JiBhbmltYXRlZFByb3BlcnR5KQogICAgIC8vIEEg
Y2hhbmdlIGluIGEgc3R5bGUgcHJvcGVydHksIGUuZyBTVkdSZWN0RWxlbWVudDo6eCBzaG91bGQg
YmUgc2VyaWFsaXplZCB0bwogICAgIC8vIHRoZSBhdHRyaWJ1dGUgaW1tZWRpYXRlbHkuIE90aGVy
d2lzZSBpdCBpcyBva2F5IHRvIGJlIGxhenkgaW4gdGhpcyByZWdhcmQuCiAgICAgaWYgKCFwcm9w
ZXJ0eVJlZ2lzdHJ5KCkuaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBdHRyaWJ1dGUoYXR0cmlidXRl
TmFtZSkpCi0gICAgICAgIGFuaW1hdGVkUHJvcGVydHkuc2V0RGlydHkoKTsKKyAgICAgICAgbV9k
aXJ0eUF0dHJpYnV0ZXMuYWRkKGF0dHJpYnV0ZU5hbWUpOwogICAgIGVsc2UKICAgICAgICAgc2V0
U3luY2hyb25pemVkTGF6eUF0dHJpYnV0ZShhdHRyaWJ1dGVOYW1lLCBhbmltYXRlZFByb3BlcnR5
LmJhc2VWYWxBc1N0cmluZygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmgKaW5kZXggOGNjNmFh
Y2E2NTc2ODBlZThkM2YzZjQ2Yzg3ODJhZDIyNTVjNzc0Mi4uZDkwODc2YWZmYjc0ZTYxNTMzMjNl
NTM0Yzg4OTdmZDhkZTU2ZTBkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Vs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCkBAIC00Nyw3ICs0
Nyw3IEBAIGNsYXNzIFNWR1VzZUVsZW1lbnQ7CiAKIHZvaWQgbWFwQXR0cmlidXRlVG9DU1NQcm9w
ZXJ0eShIYXNoTWFwPEF0b21TdHJpbmdJbXBsKiwgQ1NTUHJvcGVydHlJRD4qIHByb3BlcnR5TmFt
ZVRvSWRNYXAsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKTsKIAotY2xhc3MgU1ZHRWxl
bWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50LCBwdWJsaWMgU1ZHTGFuZ1NwYWNlLCBwdWJsaWMg
U1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1l
bnQsIHB1YmxpYyBTVkdMYW5nU3BhY2UsIHB1YmxpYyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChTVkdFbGVtZW50KTsKIHB1YmxpYzoKICAgICBi
b29sIGlzT3V0ZXJtb3N0U1ZHU1ZHRWxlbWVudCgpIGNvbnN0OwpAQCAtMTM2LDEwICsxMzYsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgc3luY2hyb25pemVBbGxBdHRyaWJ1dGVzKCk7CiAgICAgc3Rh
dGljIHZvaWQgc3luY2hyb25pemVBbGxBbmltYXRlZFNWR0F0dHJpYnV0ZShTVkdFbGVtZW50Jik7
CiAKLSAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5Kikgb3ZlcnJpZGU7
CisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR0FuaW1hdGVkUHJvcGVydHkmKTsK
IAotICAgIGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdGhpczsgfQorICAgIGNvbnN0IFNWR0VsZW1lbnQqIHByb3BlcnR5
U1ZHQ29udGV4dEVsZW1lbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0aGlzOyB9CiAgICAg
U1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkmIHByb3BlcnR5QW5pbWF0b3JGYWN0b3J5KCkgeyBy
ZXR1cm4gKm1fcHJvcGVydHlBbmltYXRvckZhY3Rvcnk7IH0KICAgICBSZWZQdHI8U1ZHQXR0cmli
dXRlQW5pbWF0b3I+IGNyZWF0ZUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBBbmltYXRp
b25Nb2RlLCBDYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpOwog
ICAgIHZvaWQgYW5pbWF0b3JXaWxsQmVEZWxldGVkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKQEAg
LTE5Niw2ICsxOTYsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdQcm9wZXJ0
eUFuaW1hdG9yRmFjdG9yeT4gbV9wcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeTsKIAogICAgIFByb3Bl
cnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKKyAgICBIYXNoU2V0PFF1
YWxpZmllZE5hbWU+IG1fZGlydHlBdHRyaWJ1dGVzOwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmlu
Zz4gbV9jbGFzc05hbWUgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCmluZGV4IDFmNDdkMzY4ZTkwMzFm
NDRhMGJlMGZkMjQzNTBjNzJkMTQxZjY1NDkuLmE0NDBjNmMyYjMyOWE2M2UxMDk4ZjYzZGQ4MWY5
OTczMDlkYzIyYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCkBAIC0z
NCw5ICszNCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNWR0ZpdFRvVmlld0JveDo6
U1ZHRml0VG9WaWV3Qm94KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFj
Y2VzcyBhY2Nlc3MpCi0gICAgOiBtX3ZpZXdCb3goU1ZHQW5pbWF0ZWRSZWN0OjpjcmVhdGUoY29u
dGV4dEVsZW1lbnQsIGFjY2VzcykpCi0gICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8oU1ZHQW5p
bWF0ZWRQcmVzZXJ2ZUFzcGVjdFJhdGlvOjpjcmVhdGUoY29udGV4dEVsZW1lbnQsIGFjY2Vzcykp
CitTVkdGaXRUb1ZpZXdCb3g6OlNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxl
bWVudCkKKyAgICA6IG1fdmlld0JveChTVkdBbmltYXRlZFJlY3Q6OmNyZWF0ZShzdGF0aWNfY2Fz
dDx2b2lkKj4oY29udGV4dEVsZW1lbnQpID09IHRoaXMgPyBjb250ZXh0RWxlbWVudCA6IG51bGxw
dHIpKQorICAgICwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvKFNWR0FuaW1hdGVkUHJlc2VydmVBc3Bl
Y3RSYXRpbzo6Y3JlYXRlKHN0YXRpY19jYXN0PHZvaWQqPihjb250ZXh0RWxlbWVudCkgPT0gdGhp
cyA/IGNvbnRleHRFbGVtZW50IDogbnVsbHB0cikpCisgICAgLCBtX2NvbnRleHRFbGVtZW50KGNv
bnRleHRFbGVtZW50KQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAg
ICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewpAQCAtMTA0LDI5ICsxMDUsMjkgQEAgYm9v
bCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVD
aGFyKiBlbmQsIEZsb2F0UmVjdCYKICAgICBib29sIHZhbGlkID0gcGFyc2VOdW1iZXIoYywgZW5k
LCB4KSAmJiBwYXJzZU51bWJlcihjLCBlbmQsIHkpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgd2lk
dGgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgaGVpZ2h0LCBmYWxzZSk7CiAKICAgICBpZiAodmFs
aWRhdGUpIHsKLSAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gbV92aWV3Qm94LT5jb250ZXh0
RWxlbWVudCgpLT5kb2N1bWVudCgpOworICAgICAgICBhdXRvJiBkb2N1bWVudEV4dGVuc2lvbnMg
PSBtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpLmFjY2Vzc1NWR0V4dGVuc2lvbnMoKTsKIAog
ICAgICAgICBpZiAoIXZhbGlkKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRl
bnNpb25zKCkucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3Ry
ICsgIlwiIik7CisgICAgICAgICAgICBkb2N1bWVudEV4dGVuc2lvbnMucmVwb3J0V2FybmluZygi
UHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDaGVjayB0aGF0IHdpZHRoIGlz
IHBvc2l0aXZlLgogICAgICAgICBpZiAod2lkdGggPCAwLjApIHsKLSAgICAgICAgICAgIGRvY3Vt
ZW50LmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBm
b3IgVmlld0JveCB3aWR0aCBpcyBub3QgYWxsb3dlZCIpOworICAgICAgICAgICAgZG9jdW1lbnRF
eHRlbnNpb25zLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRo
IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IAogICAgICAgICAvLyBDaGVjayB0aGF0IGhlaWdodCBpcyBwb3NpdGl2ZS4KICAgICAgICAgaWYg
KGhlaWdodCA8IDAuMCkgewotICAgICAgICAgICAgZG9jdW1lbnQuYWNjZXNzU1ZHRXh0ZW5zaW9u
cygpLnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdodCBpcyBu
b3QgYWxsb3dlZCIpOworICAgICAgICAgICAgZG9jdW1lbnRFeHRlbnNpb25zLnJlcG9ydEVycm9y
KCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IGhlaWdodCBpcyBub3QgYWxsb3dlZCIpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKICAgICAgICAgLy8gTm90aGlu
ZyBzaG91bGQgY29tZSBhZnRlciB0aGUgbGFzdCwgZm91cnRoIG51bWJlci4KICAgICAgICAgc2tp
cE9wdGlvbmFsU1ZHU3BhY2VzKGMsIGVuZCk7CiAgICAgICAgIGlmIChjIDwgZW5kKSB7Ci0gICAg
ICAgICAgICBkb2N1bWVudC5hY2Nlc3NTVkdFeHRlbnNpb25zKCkucmVwb3J0V2FybmluZygiUHJv
YmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CisgICAgICAgICAgICBkb2N1
bWVudEV4dGVuc2lvbnMucmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIi
ICsgc3RyICsgIlwiIik7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmggYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggOTA3ZDY1NWNkMWIxYjli
MzcyYTIwZjgxODkyMzYwNDJlMjBmMGZkMC4uNTk2ZGZkYzFkMDU2N2EwNDdmNWI4OWNhZGE1ODQw
N2JjNDlmYjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0Jv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtNTksNyAr
NTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFbXB0eVZpZXdCb3goKSBjb25zdCB7IHJldHVy
biBtX2lzVmlld0JveFZhbGlkICYmIHZpZXdCb3goKS5pc0VtcHR5KCk7IH0KIAogcHJvdGVjdGVk
OgotICAgIFNWR0ZpdFRvVmlld0JveChTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgU1ZHUHJv
cGVydHlBY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKTsKKyAgICBTVkdGaXRU
b1ZpZXdCb3goU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQpOwogCiAgICAgc3RhdGljIGJvb2wg
aXNLbm93bkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSB7IHJl
dHVybiBQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpOyB9
CiAKQEAgLTcxLDYgKzcxLDcgQEAgcHJvdGVjdGVkOgogcHJpdmF0ZToKICAgICBSZWY8U1ZHQW5p
bWF0ZWRSZWN0PiBtX3ZpZXdCb3g7CiAgICAgUmVmPFNWR0FuaW1hdGVkUHJlc2VydmVBc3BlY3RS
YXRpbz4gbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVs
ZW1lbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzVmlld0JveFZhbGlkIHsgZmFsc2UgfTsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGguaAppbmRleCBlZDUwMDM4MmM1ZmU4MzgxZDQ3Nzk2OGI5
MDkzMDBmNmJmYzRkOTJkLi42MGE1YjU2ZTUzYmFkMGEwYmEwMTNhNDY0NjU3YmE2MWZhMThlNmMz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZhbHVlKSk7CiAgICAgfQogCi0gICAg
c3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZH
UHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBjb25zdCBTVkdMZW5ndGhWYWx1ZSYgdmFsdWUgPSB7IH0p
CisgICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZl
ciogb2JzZXJ2ZXIsIGNvbnN0IFNWR0xlbmd0aFZhbHVlJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0g
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aChvd25lciwgYWNjZXNzLCB2YWx1
ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGgob2JzZXJ2ZXIsIHZh
bHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KQEAgLTg3LDcgKzg3LDcg
QEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8ZmxvYXQ+IHZhbHVlRm9yQmluZGluZ3MoKQog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFsdWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhD
b250ZXh0IHsgY29udGV4dEVsZW1lbnQoKSB9KTsKKyAgICAgICAgcmV0dXJuIG1fdmFsdWUudmFs
dWVGb3JCaW5kaW5ncyhTVkdMZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9KTsK
ICAgICB9CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0
IHZhbHVlKQpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpc1JlYWRPbmx5
KCkpCiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm9Nb2RpZmljYXRpb25BbGxvd2Vk
RXJyb3IgfTsKIAotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuc2V0VmFsdWUoU1ZHTGVu
Z3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgdmFsdWUpOworICAgICAgICBhdXRvIHJl
c3VsdCA9IG1fdmFsdWUuc2V0VmFsdWUoU1ZHTGVuZ3RoQ29udGV4dCB7IHN2Z0NvbnRleHRFbGVt
ZW50KCkgfSwgdmFsdWUpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgCkBAIC0xNTIsNyArMTUyLDcgQEAgcHVi
bGljOgogICAgICAgICBpZiAodW5pdFR5cGUgPT0gU1ZHX0xFTkdUSFRZUEVfVU5LTk9XTiB8fCB1
bml0VHlwZSA+IFNWR19MRU5HVEhUWVBFX1BDKQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE5vdFN1cHBvcnRlZEVycm9yIH07CiAKLSAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVl
LmNvbnZlcnRUb1NwZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVu
dCgpIH0sIHN0YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gbV92YWx1ZS5jb252ZXJ0VG9TcGVjaWZpZWRVbml0cyhTVkdMZW5ndGhDb250
ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCBzdGF0aWNfY2FzdDxTVkdMZW5ndGhUeXBlPih1
bml0VHlwZSkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xl
bmd0aExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKaW5kZXggNWVi
NTcwMWM2NzQ2ODc5MmQwNTYyYzE1YjUyMTZiNDkyYzAyMWVkOC4uMzJkNTg3NGQyOTM3MjQ2Yzcw
NTIxMzkxM2IxNGYwNDU2M2ZmZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xlbmd0aExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oCkBA
IC00MCwxNCArNDAsMTQgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdMZW5ndGhMaXN0KGxlbmd0aE1vZGUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR0xl
bmd0aExpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGljIFJlZjxTVkdM
ZW5ndGhMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdM
ZW5ndGhNb2RlIGxlbmd0aE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdMZW5ndGhMaXN0KG93bmVyLCBhY2Nlc3MsIGxlbmd0aE1vZGUpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChvYnNlcnZlciwgbGVuZ3RoTW9kZSkpOwog
ICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKGNvbnN0IFNWR0xl
bmd0aExpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJl
ZjxTVkdMZW5ndGhMaXN0PiBjcmVhdGUoY29uc3QgU1ZHTGVuZ3RoTGlzdCYgb3RoZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhMaXN0KG90aGVyLCBhY2Nl
c3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdChvdGhlcikp
OwogICAgIH0KIAogICAgIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbGVuZ3RoTW9kZTsgfQpAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBp
ZiAoYnVpbGRlci5sZW5ndGgoKSkKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZCgnICcp
OwogCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChsZW5ndGgtPnZhbHVlKCkudmFsdWVBc1N0
cmluZygpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGxlbmd0aC0+dmFsdWVBc1N0cmlu
ZygpKTsKICAgICAgICAgfQogCiAgICAgICAgIHJldHVybiBidWlsZGVyLnRvU3RyaW5nKCk7CkBA
IC05OCwxNCArOTgsMTQgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3Ro
TGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzLCBT
VkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCi0gICAgICAgIDogQmFzZShvd25lciwgYWNjZXNzKQor
ICAgIFNWR0xlbmd0aExpc3QoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdM
ZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgICAgIDogQmFzZShvYnNlcnZlcikKICAgICAgICAg
LCBtX2xlbmd0aE1vZGUobGVuZ3RoTW9kZSkKICAgICB7CiAgICAgfQogCi0gICAgU1ZHTGVuZ3Ro
TGlzdChjb25zdCBTVkdMZW5ndGhMaXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
KQotICAgICAgICA6IEJhc2Uob3RoZXIsIGFjY2VzcykKKyAgICBTVkdMZW5ndGhMaXN0KGNvbnN0
IFNWR0xlbmd0aExpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3RoZXIpCiAgICAgICAgICwg
bV9sZW5ndGhNb2RlKG90aGVyLmxlbmd0aE1vZGUoKSkKICAgICB7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hdHJpeC5oCmluZGV4IGQ4YzM3ZGNiMjZkYmU0NTE4YWM5MWZkMmUxYzc1ZTk0MmMxZDIyNzYu
LmYwMDM4YzRjMDdlMGFmYzVlN2I5ZjJiYmJkNTgwZjhhZGFkYTI3OWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXRyaXguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWF0cml4LmgKQEAgLTQyLDkgKzQyLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdNYXRyaXgodmFsdWUpKTsKICAgICB9CiAKLSAgICBzdGF0aWMgUmVmPFNWR01h
dHJpeD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBh
Y2Nlc3MsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJl
ZjxTVkdNYXRyaXg+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNv
bnN0IEFmZmluZVRyYW5zZm9ybSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdNYXRyaXgob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKaW5kZXggMjNj
ODJlNDRlNjc3ZDhkMzYwYzk2MTU0Yzc5NWRhYjg3NzZhMWZhNC4uNTk4YTBmNTk2MTk5MmE0Yjc5
ZjcwODllNDQ4OWI2MzU2MzIxZWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R051bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXIuaApAQCAtNDAsOSAr
NDAsOSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcih2
YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoU1ZHUHJv
cGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcywgZmxvYXQgdmFsdWUg
PSAwKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2Jz
ZXJ2ZXIqIG9ic2VydmVyLCBmbG9hdCB2YWx1ZSA9IDApCiAgICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0K
IAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTnVtYmVyTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaApp
bmRleCA1YjVkNTdlODQ2ZjQzMWFhZjVjMDhkYmM5YTRjMzRhYmU4NGQ2ZDFmLi42ODFiNGRjZWY4
Y2VjOTM1MTFiZTA1OTIwNTRjZjA4MWU5MDM3NzU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdOdW1iZXJM
aXN0LmgKQEAgLTQwLDE0ICs0MCwxNCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR051bWJlckxpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1i
ZXJMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1Byb3BlcnR5QWNjZXNz
IGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR051bWJlckxpc3Q+IGNyZWF0ZShET01MaXZlUHJv
cGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdOdW1iZXJMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKGNvbnN0IFNWR051bWJlckxpc3QmIG90aGVyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdOdW1iZXJMaXN0PiBjcmVh
dGUoY29uc3QgU1ZHTnVtYmVyTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIGJvb2wg
cGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQYXRoU2VnLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZy5oCmluZGV4IGQ2
MmZlNGY4MzRjNDNkZWI3NWI0YjY4MmI1YmZjNzY0NzI4YmEzMmQuLmJjYmFmZGNlMjc4ZTViMzgx
Y2QyZWY5OTMzYTBhYjM0OTQxNjU5MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdQYXRoU2VnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWcuaApAQCAtMjEs
NyArMjEsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisj
aW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ5LDcgKzQ5LDcgQEAgZW51bSBTVkdQYXRo
U2VnVHlwZSB7CiAgICAgUGF0aFNlZ0N1cnZlVG9RdWFkcmF0aWNTbW9vdGhSZWwgPSAxOQogfTsK
IAotY2xhc3MgU1ZHUGF0aFNlZyA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdQYXRo
U2VnIDogcHVibGljIERPTUxpdmVQcm9wZXJ0eSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZH
UGF0aFNlZygpID0gZGVmYXVsdDsKIApAQCAtODIsNyArODIsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCA9IDA7CiAKIHByb3RlY3RlZDoKLSAg
ICB1c2luZyBTVkdQcm9wZXJ0eTo6U1ZHUHJvcGVydHk7CisgICAgdXNpbmcgRE9NTGl2ZVByb3Bl
cnR5OjpET01MaXZlUHJvcGVydHk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCmluZGV4IDk0ZjZmMzllNGUxZjFiNjc0NDMzY2EyNTAx
NTM4MThmNGY2MmZlNDIuLmU2NmY4YTBhN2IwYzAwZTZiNjQ0MDNhNTAzY2FmYjE1NDEyMTQxNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCkBAIC0zNiwxNCArMzYsMTQgQEAgY2xh
c3MgU1ZHUGF0aFNlZ0xpc3QgZmluYWwgOiBwdWJsaWMgU1ZHUHJvcGVydHlMaXN0PFNWR1BhdGhT
ZWc+IHsKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxT
VkdQYXRoU2VnTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0
eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQYXRoU2VnTGlzdD4gY3JlYXRlKERP
TUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG93bmVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob2JzZXJ2ZXIpKTsKICAgICB9CiAKLSAg
ICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUGF0aFNlZ0xpc3Qm
IG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCisgICAgc3RhdGljIFJlZjxTVkdQYXRo
U2VnTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdMaXN0KG90aGVyLCBhY2Nlc3MpKTsK
KyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob3RoZXIpKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoUmVmPFNWR1BhdGhT
ZWc+JiYgbmV3SXRlbSkKQEAgLTE1OSw4ICsxNTksOCBAQCBwdWJsaWM6CiAgICAgfQogCiBwcml2
YXRlOgotICAgIFNWR1BhdGhTZWdMaXN0KGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlciwgU1ZH
UHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAgICAgICA6IEJhc2Uob3RoZXIub3duZXIoKSwgYWNj
ZXNzKQorICAgIFNWR1BhdGhTZWdMaXN0KGNvbnN0IFNWR1BhdGhTZWdMaXN0JiBvdGhlcikKKyAg
ICAgICAgOiBCYXNlKG90aGVyLm9ic2VydmVyKCkpCiAgICAgICAgICwgbV9wYXRoQnl0ZVN0cmVh
bShvdGhlci5wYXRoQnl0ZVN0cmVhbSgpKQogICAgIHsKICAgICB9CkBAIC0xNzIsNyArMTcyLDcg
QEAgcHJpdmF0ZToKICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBjaGFuZ2luZyBhbiBpdGVt
IGluIHRoZSBsaXN0LgotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkq
IHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2
ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIGl0ZW1zV2lsbENo
YW5nZSgpOwogICAgICAgICBCYXNlOjpjb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9pbnRMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUG9pbnRMaXN0LmgKaW5kZXggOGM2YzUwYjBlM2JhY2U1MzZhZTUwZWJiMjhj
MWI0NmUxNTc0OWU4MS4uODhhMTg5MzM4NzFmZDJkNDI5MzhkNjU0OWQwMTlkMTUwYmU3YjM1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvaW50TGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaApAQCAtNDAsMTQgKzQwLDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUG9pbnRMaXN0KCkpOwogICAgIH0KIAot
ICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciogb3du
ZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlz
dD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvd25lciwgYWNjZXNzKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvYnNlcnZlcikpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUG9pbnRMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUG9pbnRM
aXN0JiBvdGhlciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQorICAgIHN0YXRpYyBSZWY8U1ZH
UG9pbnRMaXN0PiBjcmVhdGUoY29uc3QgU1ZHUG9pbnRMaXN0JiBvdGhlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvdGhlciwgYWNjZXNzKSk7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvdGhlcikpOwogICAgIH0K
IAogICAgIGJvb2wgcGFyc2UoY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oCmluZGV4IDI3MTdhYmViZTEwMTlhYWEwZjNhZjc2
MWViMzUxZjkxN2I3OGFkZDYuLjgzNTQ5M2U3OTRjMWU4ZjI1ZDg5NDdiMzhkZGEyNGM2MDliZjQ2
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaApAQCAt
MzYsOSArMzYsOSBAQCBjbGFzcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1Zh
bHVlUHJvcGVydHk8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbAogICAgIHVzaW5nIEJhc2U6Om1f
dmFsdWU7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+
IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNz
LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0
YXRpYyBSZWY8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9i
c2VydmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1
ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW8ob3duZXIsIGFjY2VzcywgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUHJlc2VydmVBc3BlY3RSYXRpbyhvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9
CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oCmluZGV4IDQxNWI4NzIzZjhkMzA4NjRjMWIzZmQ3
ODhjYzNiOTg5YmFkN2VmOWMuLjU5YzgzNzEyM2YyMWRiMjYxZmZlNzgxNjlhZDA4MmIyYTNmNmU5
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1Zh
bHVlLmgKQEAgLTc2LDExICs3Niw0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwYXJzZUludGVybmFs
KGNvbnN0IFVDaGFyKiYgY3VyclBhcmFtLCBjb25zdCBVQ2hhciogZW5kLCBib29sIHZhbGlkYXRl
KTsKIH07CiAKLXRlbXBsYXRlPD4gc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW9WYWx1ZT4gewotICAgIHN0YXRpYyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFs
dWUgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlKCk7
IH0KLSAgICBzdGF0aWMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIGZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZShz
dHJpbmcpOyB9Ci0gICAgc3RhdGljIE9wdGlvbmFsPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1
ZT4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05P
VF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcg
dG9TdHJpbmcoY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB0eXBlKSB7IHJldHVy
biB0eXBlLnZhbHVlQXNTdHJpbmcoKTsgfQotfTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdSZWN0LmgKaW5kZXggOTAwMThlMTg2YjE5MmFjM2JlNmYwNTUwZGY4MTE2MjdmYmQ3
ZTlmMi4uYmFlNzdiZmVmMDIxOTUxM2VlZjAwOTk2OWIzM2MyZmFkY2YzOTNmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdC5oCkBAIC0zNiw5ICszNiw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHUmVjdCh2YWx1ZSkpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHUmVj
dD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nl
c3MsIGNvbnN0IEZsb2F0UmVjdCYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdSZWN0
PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBGbG9hdFJl
Y3QmIHZhbHVlID0geyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
UmVjdChvd25lciwgYWNjZXNzLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdSZWN0KG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVu
YW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAppbmRleCAzYjM3NjVjNWQ5ZTA3NDY5
MDBhMmQ3Nzk3OWZmZGY1OGI0M2FkZDM1Li4xMTFmMDY3ZTY5MjY2N2IwNmYyYzhkYThmYWIyNzdk
MjdlYTI3Yjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKQEAgLTM3LDkgKzM3LDkg
QEAgY2xhc3MgU1ZHU3RyaW5nTGlzdCBmaW5hbCA6IHB1YmxpYyBTVkdQcmltaXRpdmVMaXN0PFN0
cmluZz4gewogICAgIHVzaW5nIEJhc2U6Om1faXRlbXM7CiAKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lcikKKyAgICBz
dGF0aWMgUmVmPFNWR1N0cmluZ0xpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciog
b2JzZXJ2ZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdTdHJpbmdM
aXN0KG93bmVyKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qo
b2JzZXJ2ZXIpKTsKICAgICB9CiAKICAgICB2b2lkIHJlc2V0KGNvbnN0IFN0cmluZyYgc3RyaW5n
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RyYW5zZm9ybS5oCmluZGV4IDZhMjljNzJjZjNlN2YzMTNmNzA5NjU3
YTQwMTI0ODFjMjIzYjhkY2QuLjMzZGI2OGY0MjlhYTdmYTNmZWVhZGMyMjljZDE5Njg0NWU2ZmNi
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFuc2Zvcm0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKQEAgLTMxLDcgKzMxLDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTVkdUcmFuc2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQ
cm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2Ns
YXNzIFNWR1RyYW5zZm9ybSA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5PFNWR1RyYW5zZm9ybVZh
bHVlPiwgcHVibGljIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFNWR1RyYW5zZm9ybT4gY3JlYXRlKFNWR1RyYW5zZm9ybVZhbHVlOjpTVkdUcmFuc2Zv
cm1UeXBlIHR5cGUpCiAgICAgewpAQCAtMTM0LDE3ICsxMzQsMTcgQEAgcHJpdmF0ZToKICAgICB1
c2luZyBCYXNlID0gU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT47CiAKICAgICBT
VkdUcmFuc2Zvcm0oU1ZHVHJhbnNmb3JtVmFsdWU6OlNWR1RyYW5zZm9ybVR5cGUgdHlwZSwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiB0cmFuc2Zvcm0gPSB7IH0sIGZsb2F0IGFuZ2xlID0gMCwgY29u
c3QgRmxvYXRQb2ludCYgcm90YXRpb25DZW50ZXIgPSB7IH0pCi0gICAgICAgIDogQmFzZShTVkdU
cmFuc2Zvcm1WYWx1ZSh0eXBlLCBTVkdNYXRyaXg6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFj
Y2Vzczo6UmVhZFdyaXRlLCB0cmFuc2Zvcm0pLCBhbmdsZSwgcm90YXRpb25DZW50ZXIpKQorICAg
ICAgICA6IEJhc2UoU1ZHVHJhbnNmb3JtVmFsdWUodHlwZSwgU1ZHTWF0cml4OjpjcmVhdGUodGhp
cywgdHJhbnNmb3JtKSwgYW5nbGUsIHJvdGF0aW9uQ2VudGVyKSkKICAgICB7CiAgICAgfQogCi0g
ICAgU1ZHUHJvcGVydHlPd25lciogb3duZXIoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX293
bmVyOyB9CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gbV9vYnNlcnZlcjsgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNo
YW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9w
ZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgQVNTRVJUX1VOVVNFRChwcm9wZXJ0eSwgcHJvcGVydHkgPT0gbV92YWx1ZS5tYXRyaXgo
KS5wdHIoKSk7Ci0gICAgICAgIGlmIChvd25lcigpKQotICAgICAgICAgICAgb3duZXIoKS0+Y29t
bWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CisgICAgICAgIGlmIChvYnNlcnZlcigpKQorICAgICAg
ICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7CiAgICAgICAgIG1f
dmFsdWUubWF0cml4RGlkQ2hhbmdlKCk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RyYW5z
Zm9ybUxpc3QuaAppbmRleCA1NDRkNjBiMmU2MzVjMWMyMDk5MzRlZTQzNWNmNDEyNWU2YTcxZjJi
Li5lNjA0NWVkMjU2MjMyMWU5MTQxNjRhMGZiMjA0OTc0ODcxMDVlMjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKQEAgLTM4LDE0ICszOCwxNCBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1RyYW5zZm9ybUxpc3QoKSk7CiAgICAgfQogCi0g
ICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoU1ZHUHJvcGVydHlPd25lciog
b3duZXIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcykKKyAgICBzdGF0aWMgUmVmPFNWR1RyYW5z
Zm9ybUxpc3Q+IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIpCiAgICAg
ewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KG93bmVyLCBh
Y2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChv
YnNlcnZlcikpOwogICAgIH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3Jl
YXRlKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3QmIG90aGVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nl
c3MpCisgICAgc3RhdGljIFJlZjxTVkdUcmFuc2Zvcm1MaXN0PiBjcmVhdGUoY29uc3QgU1ZHVHJh
bnNmb3JtTGlzdCYgb3RoZXIpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdUcmFuc2Zvcm1MaXN0KG90aGVyLCBhY2Nlc3MpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgU1ZHVHJhbnNmb3JtTGlzdChvdGhlcikpOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9y
PFJlZjxTVkdUcmFuc2Zvcm0+PiBjcmVhdGVTVkdUcmFuc2Zvcm1Gcm9tTWF0cml4KGNvbnN0IFJl
ZjxTVkdNYXRyaXg+JiBtYXRyaXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Vmlld1NwZWMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA4
ZjQyMzUxNmI1YmRiYzUyODdjZGE0NGFkZjQ5ZmM2MThkZGMzMmVjLi41M2NjMTVkYzkwZTc3Y2E5
MTI0ZjZjYWZhMjhkYTFhYzUwNTljYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVmlld1NwZWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAK
QEAgLTMyLDkgKzMyLDggQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHVmlld1NwZWM6OlNW
R1ZpZXdTcGVjKFNWR0VsZW1lbnQmIGNvbnRleHRFbGVtZW50KQotICAgIDogU1ZHRml0VG9WaWV3
Qm94KCZjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5KQorICAgIDog
U1ZHRml0VG9WaWV3Qm94KCZjb250ZXh0RWxlbWVudCkKICAgICAsIG1fY29udGV4dEVsZW1lbnQo
bWFrZVdlYWtQdHIoY29udGV4dEVsZW1lbnQpKQotICAgICwgbV90cmFuc2Zvcm0oU1ZHVHJhbnNm
b3JtTGlzdDo6Y3JlYXRlKCZjb250ZXh0RWxlbWVudCwgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRP
bmx5KSkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdWaWV3U3BlYy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKaW5kZXggMmU3
ZWY5Nzg2YzFhODg2ZmQyNWFjZmVhMDM3ZmM4NTBkNzlkZTUyMC4uNmVmYzA5Zjk4M2MyYzQzYzZh
M2Q4NTViMDJkMzQyMjIwMDM4MjFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1ZpZXdTcGVjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmgKQEAgLTU1
LDcgKzU1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYWtQdHI8U1ZHRWxlbWVudD4gbV9jb250ZXh0
RWxlbWVudDsKICAgICBTdHJpbmcgbV92aWV3VGFyZ2V0U3RyaW5nOwotICAgIFJlZjxTVkdUcmFu
c2Zvcm1MaXN0PiBtX3RyYW5zZm9ybTsKKyAgICBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gbV90cmFu
c2Zvcm0geyBTVkdUcmFuc2Zvcm1MaXN0OjpjcmVhdGUoKSB9OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHQW5pbWF0ZWREZWNvcmF0ZWRQcm9wZXJ0eS5oCmluZGV4IGNlYmFhMzYzYmY1MjdiYmIz
OGU1NjdkM2UzZDQyYmY4NDMxMDJhNzUuLjZkYTlkNDQ5ZWNjY2YxOWYwOWVjZmFhZmNhNWE1OGI5
Yzc4NDFkOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkRGVjb3JhdGVkUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZERlY29yYXRlZFByb3BlcnR5LmgKQEAgLTk3LDE1ICs5Nyw3IEBAIHB1
YmxpYzoKICAgICB9CiAKICAgICAvLyBNYW5hZ2luZyB0aGUgcmVsYXRpb25zaGlwIHdpdGggdGhl
IG93bmVyLgotICAgIHZvaWQgc2V0RGlydHkoKSBvdmVycmlkZSB7IG1fc3RhdGUgPSBTVkdQcm9w
ZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBPcHRpb25h
bDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0
YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAg
ICAgICByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7Ci0gICAgfQorICAgIFN0cmluZyB2YWx1ZUFz
U3RyaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYmFzZVZhbEFzU3RyaW5nKCk7IH0KIAog
ICAgIC8vIFVzZWQgYnkgUmVuZGVyU1ZHRWxlbWVudHMgYW5kIER1bXBSZW5kZXJUcmVlLgogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KQEAgLTEzMyw3ICsxMjUsNiBAQCBwdWJs
aWM6CiBwcm90ZWN0ZWQ6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0RlY29yYXRlZFByb3BlcnR5
PERlY29yYXRpb25UeXBlPj4gbV9iYXNlVmFsOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdEZWNv
cmF0ZWRQcm9wZXJ0eTxEZWNvcmF0aW9uVHlwZT4+IG1fYW5pbVZhbDsKLSAgICBTVkdQcm9wZXJ0
eVN0YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwogfTsKIAogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcmltaXRp
dmVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cmltaXRpdmVQcm9wZXJ0eS5oCmluZGV4IGUxNGY2NzlmMzM2M2RkYzVhOGY0MWMwMzVmZGY3MzRl
YmNiOTY2NjEuLmQ0NDgwZjc0YTJlMzk2ZDE4YTkzN2RmNzg5MzBmM2Q1ZmJmYjExOGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJpbWl0aXZl
UHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByaW1pdGl2ZVByb3BlcnR5LmgKQEAgLTg3LDkgKzg3LDcgQEAgcHVibGljOgogICAgIH0KIAog
ICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9p
ZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNlVmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAgYm9v
bCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5KCk7
IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4g
bV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFsQXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNl
ZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVtcFJlbmRlclRyZWUuCiAgICAgY29uc3QgUHJv
cGVydHlUeXBlJiBjdXJyZW50VmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcAppbmRleCBlYzJmM2E0ODdm
ODMwZjFjNzI2ZDBmNmJlNGM5NDIyZWM4ZjMwMWU4Li5lZGE1Yzg0YzM1ZmJjN2JkMjU0ZDFhZGUy
ZmIyNTgxNjY1ODNkYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5LmNwcApAQCAtMzAsMTIgKzMwLDEyIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU1ZHUHJvcGVydHlPd25lciogU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
b3duZXIoKSBjb25zdAorRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIFNWR0FuaW1hdGVkUHJvcGVy
dHk6Om9ic2VydmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jb250ZXh0RWxlbWVudDsKIH0K
IAotdm9pZCBTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9w
ZXJ0eSopCit2b2lkIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKERP
TUxpdmVQcm9wZXJ0eSopCiB7CiAgICAgaWYgKCFtX2NvbnRleHRFbGVtZW50KQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmlt
YXRlZFByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRl
ZFByb3BlcnR5LmgKaW5kZXggYzZmOTMyZTZkZjY5Y2NlZmFmYzk2NWUzMmNkNTY2MjBhMWZjMzM2
NC4uYTEwNDFlNjA1MjlkYTFmZDIzMTg2MGUyNjBiNzFjY2ZiNzBjNGE5YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaApAQCAt
MjUsNyArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3du
ZXIuaCIKKyNpbmNsdWRlICJET01MaXZlUHJvcGVydHlPYnNlcnZlci5oIgogI2luY2x1ZGUgPHd0
Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAKIGNsYXNzIFNWR0VsZW1lbnQ7CiAKLWNsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkgOiBw
dWJsaWMgUmVmQ291bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIFNWR1Byb3BlcnR5
T3duZXIgeworY2xhc3MgU1ZHQW5pbWF0ZWRQcm9wZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNW
R0FuaW1hdGVkUHJvcGVydHk+LCBwdWJsaWMgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgewogcHVi
bGljOgogICAgIHZpcnR1YWwgflNWR0FuaW1hdGVkUHJvcGVydHkoKSA9IGRlZmF1bHQ7CiAgICAg
CkBAIC00Nyw5ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyBhbmltVmFsQXNT
dHJpbmcoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CiAgICAgCiAgICAgLy8gQ29u
dHJvbCB0aGUgc3luY2hyb25pemF0aW9uIGJldHdlZW4gdGhlIGF0dHJpYnV0ZSBhbmQgaXRzIHJl
ZmxlY3Rpb24gaW4gYmFzZVZhbC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldERpcnR5KCkgeyB9Ci0gICAgdmly
dHVhbCBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKCkgeyByZXR1cm4gV1RGOjpudWxsb3B0
OyB9CisgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7IH0KICAgICAKICAgICAvLyBDb250cm9sIHRoZSBhbmltYXRpb24gbGlmZSBj
eWNsZS4KICAgICBib29sIGlzQW5pbWF0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9pc0FuaW1hdGlu
ZzsgfQpAQCAtNjYsOCArNjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgewogICAgIH0KICAgICAKLSAg
ICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZvaWQgY29t
bWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZTsKKyAgICBET01MaXZlUHJv
cGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1p
dFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIAogICAgIFNW
R0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX2lzQW5p
bWF0aW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCmluZGV4IGY0MjU1ZDdmNmU3NWIxNGFjYTg4
YTg4MGJmZjM2ZTY1NjM4M2Y3MTYuLmFkMjFhOTgwNmM1NGFmYzA2ZWNhYTVhNzEzMjVjZGIyMzEz
Y2FmMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1h
dGVkUHJvcGVydHlMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
QW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaApAQCAtNjgsOSArNjgsNyBAQCBwdWJsaWM6CiAgICAgfQog
CiAgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvd25lci4KLSAgICB2
b2lkIHNldERpcnR5KCkgb3ZlcnJpZGUgeyBtX2Jhc2VWYWwtPnNldERpcnR5KCk7IH0KLSAgICBi
b29sIGlzRGlydHkoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2Jhc2VWYWwtPmlzRGlydHko
KTsgfQotICAgIE9wdGlvbmFsPFN0cmluZz4gc3luY2hyb25pemUoKSBvdmVycmlkZSB7IHJldHVy
biBtX2Jhc2VWYWwtPnN5bmNocm9uaXplKCk7IH0KKyAgICBTdHJpbmcgdmFsdWVBc1N0cmluZygp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJhc2VWYWxBc1N0cmluZygpOyB9CiAKICAgICAvLyBV
c2VkIGJ5IFJlbmRlclNWR0VsZW1lbnRzIGFuZCBEdW1wUmVuZGVyVHJlZS4KICAgICBjb25zdCBM
aXN0VHlwZSYgY3VycmVudFZhbHVlKCkgY29uc3QKQEAgLTExNywxOSArMTE1LDI0IEBAIHByb3Rl
Y3RlZDoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+CiAgICAgU1ZHQW5pbWF0
ZWRQcm9wZXJ0eUxpc3QoU1ZHRWxlbWVudCogY29udGV4dEVsZW1lbnQsIEFyZ3VtZW50cyYmLi4u
IGFyZ3VtZW50cykKICAgICAgICAgOiBTVkdBbmltYXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50
KQotICAgICAgICAsIG1fYmFzZVZhbChMaXN0VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR1Byb3BlcnR5
QWNjZXNzOjpSZWFkV3JpdGUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4p
KQorICAgICAgICAsIG1fYmFzZVZhbChMaXN0VHlwZTo6Y3JlYXRlKHRoaXMsIHN0ZDo6Zm9yd2Fy
ZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pKQogICAgIHsKICAgICB9CiAKICAgICBSZWZQdHI8
TGlzdFR5cGU+JiBlbnN1cmVBbmltVmFsKCkKICAgICB7CiAgICAgICAgIGlmICghbV9hbmltVmFs
KQotICAgICAgICAgICAgbV9hbmltVmFsID0gTGlzdFR5cGU6OmNyZWF0ZShtX2Jhc2VWYWwsIFNW
R1Byb3BlcnR5QWNjZXNzOjpSZWFkT25seSk7CisgICAgICAgICAgICBtX2FuaW1WYWwgPSBMaXN0
VHlwZTo6Y3JlYXRlKG1fYmFzZVZhbC5nZXQoKSk7CiAgICAgICAgIHJldHVybiBtX2FuaW1WYWw7
CiAgICAgfQogCisgICAgYm9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgRE9NTGl2ZVByb3Bl
cnR5JiBwcm9wZXJ0eSkgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Fu
aW1WYWwgPT0gJnByb3BlcnR5OworICAgIH0KKwogICAgIC8vIENhbGxlZCB3aGVuIG1fYmFzZVZh
bCBjaGFuZ2VzIG9yIGFuIGl0ZW0gaW4gbV9iYXNlVmFsIGNoYW5nZXMuCi0gICAgdm9pZCBjb21t
aXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9p
ZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgaWYgKG1fYW5pbVZhbCkKICAgICAgICAgICAgICptX2FuaW1WYWwg
PSBtX2Jhc2VWYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBhaXJBY2Nlc3NvckltcGwuaAppbmRleCA0
YTI2OWZhNWE4ZjI3Y2QzMzU1ZTgzNDA2ZmE1Mzg1M2Q5NTI4OWM1Li4zNTBiYzA4OGViNDVhOTYw
OThlYTkyNDdhMzc1ODU4MjhlZTEzNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlQYWlyQWNjZXNz
b3JJbXBsLmgKQEAgLTQ2LDE3ICs0NiwxMSBAQCBwdWJsaWM6CiAgICAgY29uc3RleHByIHN0YXRp
YyBjb25zdCBTVkdNZW1iZXJBY2Nlc3NvcjxPd25lclR5cGU+JiBzaW5nbGV0b24oKSB7IHJldHVy
biBCYXNlOjp0ZW1wbGF0ZSBzaW5nbGV0b248U1ZHQW5pbWF0ZWRBbmdsZU9yaWVudEFjY2Vzc29y
LCBwcm9wZXJ0eTEsIHByb3BlcnR5Mj4oKTsgfQogCiBwcml2YXRlOgotICAgIE9wdGlvbmFsPFN0
cmluZz4gc3luY2hyb25pemUoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3QgZmluYWwKKyAg
ICBTdHJpbmcgdmFsdWVBc1N0cmluZyhjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5h
bAogICAgIHsKLSAgICAgICAgYm9vbCBkaXJ0eTEgPSBwcm9wZXJ0eTEob3duZXIpLT5pc0RpcnR5
KCk7Ci0gICAgICAgIGJvb2wgZGlydHkyID0gcHJvcGVydHkyKG93bmVyKS0+aXNEaXJ0eSgpOwot
ICAgICAgICBpZiAoIShkaXJ0eTEgfHwgZGlydHkyKSkKLSAgICAgICAgICAgIHJldHVybiBXVEY6
Om51bGxvcHQ7Ci0KICAgICAgICAgYXV0byB0eXBlID0gcHJvcGVydHkyKG93bmVyKS0+YmFzZVZh
bCgpOwotCi0gICAgICAgIFN0cmluZyBzdHJpbmcxID0gZGlydHkxID8gKnByb3BlcnR5MShvd25l
ciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsK
LSAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBkaXJ0eTIgPyAqcHJvcGVydHkyKG93bmVyKS0+c3lu
Y2hyb25pemUoKSA6IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygpOworICAgICAg
ICBTdHJpbmcgc3RyaW5nMSA9IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0cmluZygpOwor
ICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmlu
ZygpOwogICAgICAgICByZXR1cm4gdHlwZSA9PSBTVkdNYXJrZXJPcmllbnRBdXRvIHx8IHR5cGUg
PT0gU1ZHTWFya2VyT3JpZW50QXV0b1N0YXJ0UmV2ZXJzZSA/IHN0cmluZzIgOiBzdHJpbmcxOwog
ICAgIH0KIApAQCAtODMsMTUgKzc3LDEwIEBAIHB1YmxpYzoKICAgICBjb25zdGV4cHIgc3RhdGlj
IGNvbnN0IFNWR01lbWJlckFjY2Vzc29yPE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsgcmV0dXJu
IEJhc2U6OnRlbXBsYXRlIHNpbmdsZXRvbjxTVkdBbmltYXRlZEludGVnZXJQYWlyQWNjZXNzb3Is
IHByb3BlcnR5MSwgcHJvcGVydHkyPigpOyB9CiAKIHByaXZhdGU6Ci0gICAgT3B0aW9uYWw8U3Ry
aW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25zdCBmaW5hbAorICAg
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFs
CiAgICAgewotICAgICAgICBib29sIGRpcnR5MSA9IHByb3BlcnR5MShvd25lciktPmlzRGlydHko
KTsKLSAgICAgICAgYm9vbCBkaXJ0eTIgPSBwcm9wZXJ0eTIob3duZXIpLT5pc0RpcnR5KCk7Ci0g
ICAgICAgIGlmICghKGRpcnR5MSB8fCBkaXJ0eTIpKQotICAgICAgICAgICAgcmV0dXJuIFdURjo6
bnVsbG9wdDsKLQotICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IGRpcnR5MSA/ICpwcm9wZXJ0eTEo
b3duZXIpLT5zeW5jaHJvbml6ZSgpIDogcHJvcGVydHkxKG93bmVyKS0+YmFzZVZhbEFzU3RyaW5n
KCk7Ci0gICAgICAgIFN0cmluZyBzdHJpbmcyID0gZGlydHkyID8gKnByb3BlcnR5Mihvd25lcikt
PnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNTdHJpbmcoKTsKKyAg
ICAgICAgU3RyaW5nIHN0cmluZzEgPSBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNTdHJpbmco
KTsKKyAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBwcm9wZXJ0eTIob3duZXIpLT5iYXNlVmFsQXNT
dHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHN0cmluZzEgPT0gc3RyaW5nMiA/IHN0cmluZzEgOiBz
dHJpbmcxICsgIiwgIiArIHN0cmluZzI7CiAgICAgfQogCkBAIC0xMTQsMTkgKzEwMywxNCBAQCBj
bGFzcyBTVkdBbmltYXRlZE51bWJlclBhaXJBY2Nlc3NvciBmaW5hbCA6IHB1YmxpYyBTVkdBbmlt
YXRlZFByb3BlcnR5UGFpckFjY2VzcwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsK
LSAgICB0ZW1wbGF0ZTxSZWY8U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5
MSwgUmVmPFNWR0FuaW1hdGVkTnVtYmVyPiBPd25lclR5cGU6Oipwcm9wZXJ0eTIgPgorICAgIHRl
bXBsYXRlPFJlZjxTVkdBbmltYXRlZE51bWJlcj4gT3duZXJUeXBlOjoqcHJvcGVydHkxLCBSZWY8
U1ZHQW5pbWF0ZWROdW1iZXI+IE93bmVyVHlwZTo6KnByb3BlcnR5Mj4KICAgICBjb25zdGV4cHIg
c3RhdGljIGNvbnN0IFNWR01lbWJlckFjY2Vzc29yPE93bmVyVHlwZT4mIHNpbmdsZXRvbigpIHsg
cmV0dXJuIEJhc2U6OnRlbXBsYXRlIHNpbmdsZXRvbjxTVkdBbmltYXRlZE51bWJlclBhaXJBY2Nl
c3NvciwgcHJvcGVydHkxLCBwcm9wZXJ0eTI+KCk7IH0KIAogcHJpdmF0ZToKLSAgICBPcHRpb25h
bDxTdHJpbmc+IHN5bmNocm9uaXplKGNvbnN0IE93bmVyVHlwZSYgb3duZXIpIGNvbnN0IGZpbmFs
CisgICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJiBvd25lcikgY29uc3Qg
ZmluYWwKICAgICB7Ci0gICAgICAgIGJvb2wgZGlydHkxID0gcHJvcGVydHkxKG93bmVyKS0+aXNE
aXJ0eSgpOwotICAgICAgICBib29sIGRpcnR5MiA9IHByb3BlcnR5Mihvd25lciktPmlzRGlydHko
KTsKLSAgICAgICAgaWYgKCEoZGlydHkxIHx8IGRpcnR5MikpCi0gICAgICAgICAgICByZXR1cm4g
V1RGOjpudWxsb3B0OwotCi0gICAgICAgIFN0cmluZyBzdHJpbmcxID0gZGlydHkxID8gKnByb3Bl
cnR5MShvd25lciktPnN5bmNocm9uaXplKCkgOiBwcm9wZXJ0eTEob3duZXIpLT5iYXNlVmFsQXNT
dHJpbmcoKTsKLSAgICAgICAgU3RyaW5nIHN0cmluZzIgPSBkaXJ0eTIgPyAqcHJvcGVydHkyKG93
bmVyKS0+c3luY2hyb25pemUoKSA6IHByb3BlcnR5Mihvd25lciktPmJhc2VWYWxBc1N0cmluZygp
OworICAgICAgICBTdHJpbmcgc3RyaW5nMSA9IHByb3BlcnR5MShvd25lciktPmJhc2VWYWxBc1N0
cmluZygpOworICAgICAgICBTdHJpbmcgc3RyaW5nMiA9IHByb3BlcnR5Mihvd25lciktPmJhc2VW
YWxBc1N0cmluZygpOwogICAgICAgICByZXR1cm4gc3RyaW5nMSA9PSBzdHJpbmcyID8gc3RyaW5n
MSA6IHN0cmluZzEgKyAiLCAiICsgc3RyaW5nMjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkVmFsdWVQcm9wZXJ0eS5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKaW5k
ZXggZGZkYjE3MWEwY2I4M2ZjNzU5NjA1OWU3NjA0YTdmZDg5MzUxZjUyNS4uN2Y5NjUyNWFiOTNi
NjRjZjM3Y2NhNTJhZjQ3ZGZiNGU2YzAxYWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmgKQEAgLTg0LDkg
Kzg0LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNo
aXAgd2l0aCB0aGUgb3duZXIuCi0gICAgdm9pZCBzZXREaXJ0eSgpIG92ZXJyaWRlIHsgbV9iYXNl
VmFsLT5zZXREaXJ0eSgpOyB9Ci0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gbV9iYXNlVmFsLT5pc0RpcnR5KCk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNo
cm9uaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4gbV9iYXNlVmFsLT5zeW5jaHJvbml6ZSgpOyB9Cisg
ICAgU3RyaW5nIHZhbHVlQXNTdHJpbmcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBiYXNlVmFs
QXNTdHJpbmcoKTsgfQogCiAgICAgLy8gVXNlZCBieSBSZW5kZXJTVkdFbGVtZW50cyBhbmQgRHVt
cFJlbmRlclRyZWUuCiAgICAgY29uc3QgVmFsdWVUeXBlJiBjdXJyZW50VmFsdWUoKSBjb25zdApA
QCAtMTMxLDI2ICsxMjksMjQgQEAgcHJvdGVjdGVkOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4u
IEFyZ3VtZW50cz4KICAgICBTVkdBbmltYXRlZFZhbHVlUHJvcGVydHkoU1ZHRWxlbWVudCogY29u
dGV4dEVsZW1lbnQsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBTVkdBbmlt
YXRlZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0
eVR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlLCBWYWx1ZVR5
cGUoc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpKQotICAgIHsKLSAgICB9
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHQW5pbWF0ZWRW
YWx1ZVByb3BlcnR5KFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50LCBTVkdQcm9wZXJ0eUFjY2Vz
cyBhY2Nlc3MsIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKLSAgICAgICAgOiBTVkdBbmltYXRl
ZFByb3BlcnR5KGNvbnRleHRFbGVtZW50KQotICAgICAgICAsIG1fYmFzZVZhbChQcm9wZXJ0eVR5
cGU6OmNyZWF0ZSh0aGlzLCBhY2Nlc3MsIFZhbHVlVHlwZShzdGQ6OmZvcndhcmQ8QXJndW1lbnRz
Pihhcmd1bWVudHMpLi4uKSkpCisgICAgICAgICwgbV9iYXNlVmFsKFByb3BlcnR5VHlwZTo6Y3Jl
YXRlKHRoaXMsIFZhbHVlVHlwZShzdGQ6OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4u
KSkpCiAgICAgewogICAgIH0KIAogICAgIFJlZlB0cjxQcm9wZXJ0eVR5cGU+JiBlbnN1cmVBbmlt
VmFsKCkKICAgICB7CiAgICAgICAgIGlmICghbV9hbmltVmFsKQotICAgICAgICAgICAgbV9hbmlt
VmFsID0gUHJvcGVydHlUeXBlOjpjcmVhdGUodGhpcywgU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRP
bmx5LCBtX2Jhc2VWYWwtPnZhbHVlKCkpOworICAgICAgICAgICAgbV9hbmltVmFsID0gUHJvcGVy
dHlUeXBlOjpjcmVhdGUodGhpcywgbV9iYXNlVmFsLT52YWx1ZSgpKTsKICAgICAgICAgcmV0dXJu
IG1fYW5pbVZhbDsKICAgICB9CiAKKyAgICBib29sIGlzUHJvcGVydHlSZWFkT25seShjb25zdCBE
T01MaXZlUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
cmV0dXJuIG1fYW5pbVZhbCA9PSAmcHJvcGVydHk7CisgICAgfQorCiAgICAgLy8gQ2FsbGVkIHdo
ZW4gbV9iYXNlVmFsIGNoYW5nZXMuCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQ
cm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5n
ZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaWYg
KG1fYW5pbVZhbCkKICAgICAgICAgICAgIG1fYW5pbVZhbC0+c2V0VmFsdWUobV9iYXNlVmFsLT52
YWx1ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xp
c3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaAppbmRleCBkZGNi
MTcwMTkxODlhYjFlYTRjZjY2MDMyZTk5ZjYyMjU1MjI1NDRkLi5mM2RlZTk5YTA5ZjM5MmEyNDBi
NjI1ZDQ5YmNkYWVhZWIwYTQ5ZGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
TGlzdC5oCkBAIC0yNSwxMyArMjUsMTMgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJE
T01MaXZlUHJvcGVydHkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgIlNW
R1Byb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
SXRlbVR5cGU+Ci1jbGFzcyBTVkdMaXN0IDogcHVibGljIFNWR1Byb3BlcnR5IHsKK2NsYXNzIFNW
R0xpc3QgOiBwdWJsaWMgRE9NTGl2ZVByb3BlcnR5IHsKIHB1YmxpYzoKICAgICB1bnNpZ25lZCBs
ZW5ndGgoKSBjb25zdCB7IHJldHVybiBudW1iZXJPZkl0ZW1zKCk7IH0KIApAQCAtMTUwLDcgKzE1
MCw3IEBAIHB1YmxpYzoKICAgICB9CiAKIHByb3RlY3RlZDoKLSAgICB1c2luZyBTVkdQcm9wZXJ0
eTo6U1ZHUHJvcGVydHk7CisgICAgdXNpbmcgRE9NTGl2ZVByb3BlcnR5OjpET01MaXZlUHJvcGVy
dHk7CiAKICAgICBFeGNlcHRpb25Pcjxib29sPiBjYW5BbHRlckxpc3QoKSBjb25zdAogICAgIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vz
c29yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5o
CmluZGV4IGY3YmJhNmFlMGEwZWVhYmI2ZTYxODdhNTgxMDRmNzIxMjhhY2FhZmEuLmU0MDlkNGRh
MWUwOTBjZDdjZTdhNTRkMDI3MmJkNTAzYTAyZTc2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFjY2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaApAQCAtMzEsNyArMzEsNyBAQAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTVkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3Mg
U1ZHUHJvcGVydHk7CitjbGFzcyBET01MaXZlUHJvcGVydHk7CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFjY2Vzc29yIHsKQEAgLTQzLDkgKzQzLDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0FuaW1hdGVkTGVuZ3RoKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVy
VHlwZSYsIGNvbnN0IFNWR1Byb3BlcnR5JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmLCBjb25zdCBET01MaXZlUHJvcGVy
dHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNv
bnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgT3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25z
dCBPd25lclR5cGUmKSBjb25zdCB7IHJldHVybiBXVEY6Om51bGxvcHQ7IH0KKyAgICB2aXJ0dWFs
IFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYpIGNvbnN0IHsgcmV0dXJuIGVt
cHR5U3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgUmVmUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9y
PiBjcmVhdGVBbmltYXRvcihPd25lclR5cGUmLCBjb25zdCBRdWFsaWZpZWROYW1lJiwgQW5pbWF0
aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wsIGJvb2wpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kQW5pbWF0ZWRJbnN0YW5jZShPd25lclR5cGUmLCBTVkdB
dHRyaWJ1dGVBbmltYXRvciYpIGNvbnN0IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUG9pbnRlck1lbWJlckFjY2Vzc29yLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAppbmRleCA4ZTJmNzZk
Y2FiNGU5MGZiMzhlYjMzOTY5ZWE2NWMwNzAyMjQ1Mzg3Li5hZjUzZDZjNTZmZDg2OTdlMzA5NWUw
MWNiYWE5OWU4OWQ3MzZkMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
cHJvcGVydGllcy9TVkdQb2ludGVyTWVtYmVyQWNjZXNzb3IuaApAQCAtNDcsOSArNDcsOSBAQCBw
dWJsaWM6CiAgICAgICAgIHByb3BlcnR5KG93bmVyKS0+ZGV0YWNoKCk7CiAgICAgfQogCi0gICAg
T3B0aW9uYWw8U3RyaW5nPiBzeW5jaHJvbml6ZShjb25zdCBPd25lclR5cGUmIG93bmVyKSBjb25z
dCBvdmVycmlkZQorICAgIFN0cmluZyB2YWx1ZUFzU3RyaW5nKGNvbnN0IE93bmVyVHlwZSYgb3du
ZXIpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIp
LT5zeW5jaHJvbml6ZSgpOworICAgICAgICByZXR1cm4gcHJvcGVydHkob3duZXIpLT52YWx1ZUFz
U3RyaW5nKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmgKaW5k
ZXggMWYyMzc0ZjVkZjgyYTY1ZTJiYmYzMDdjZmFiZjYyOWUwMzg3YjhkNi4uZDBiMTUzMjQ2ZjMx
YmI4ZDA1MTQzMWFiYjIyZTFhMTQyODAxMGEyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaApA
QCAtNDIsMTMgKzQyLDEzIEBAIGNsYXNzIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IgOiBw
dWJsaWMgU1ZHUHJvcGVydHlBbmltYXRvcjxBbmltYXRpb25GdW5jdGlvCiAgICAgdXNpbmcgQmFz
ZTo6bV9mdW5jdGlvbjsKICAgICAKIHB1YmxpYzoKLSAgICBzdGF0aWMgYXV0byBjcmVhdGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3Bl
cnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29s
IGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0byBjcmVhdGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4m
JiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9k
ZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKGF0dHJpYnV0
ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1
bXVsYXRlZCwgaXNBZGRpdGl2ZSkpOwogICAgIH0KICAgICAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvcihjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHks
IEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVy
dHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNl
KGF0dHJpYnV0ZU5hbWUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAg
ICAgICAgICwgbV9wcm9wZXJ0eShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8VmFsdWVQcm9wZXJ0eVR5
cGU+KFdURk1vdmUocHJvcGVydHkpKSkKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHkuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggY2U2NWNi
MTEwZDFmYjQ2NmUyMjllYzc5YzlkZDAxN2U4NjEyOTk2Ny4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdQcm9wZXJ0eS5oCisrKyAvZGV2L251bGwKQEAgLTEsMTAyICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHlPd25lci5oIgot
I2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
ZW51bSBjbGFzcyBTVkdQcm9wZXJ0eUFjY2VzcyA6IHVpbnQ4X3QgeyBSZWFkV3JpdGUsIFJlYWRP
bmx5IH07Ci1lbnVtIGNsYXNzIFNWR1Byb3BlcnR5U3RhdGUgOiB1aW50OF90IHsgQ2xlYW4sIERp
cnR5IH07Ci0KLWNsYXNzIFNWR1Byb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHUHJvcGVy
dHk+IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5TVkdQcm9wZXJ0eSgpID0gZGVmYXVsdDsKLQot
ICAgIC8vIE1hbmFnaW5nIHRoZSByZWxhdGlvbnNoaXAgd2l0aCB0aGUgb3duZXIuCi0gICAgYm9v
bCBpc0F0dGFjaGVkKCkgY29uc3QgeyByZXR1cm4gbV9vd25lcjsgfQotICAgIHZvaWQgYXR0YWNo
KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MpCi0gICAg
ewotICAgICAgICBBU1NFUlQoIW1fb3duZXIpOwotICAgICAgICBBU1NFUlQobV9zdGF0ZSA9PSBT
VkdQcm9wZXJ0eVN0YXRlOjpDbGVhbik7Ci0gICAgICAgIG1fb3duZXIgPSBvd25lcjsKLSAgICAg
ICAgbV9hY2Nlc3MgPSBhY2Nlc3M7Ci0gICAgfQotCi0gICAgdm9pZCBkZXRhY2goKQotICAgIHsK
LSAgICAgICAgbV9vd25lciA9IG51bGxwdHI7Ci0gICAgICAgIG1fYWNjZXNzID0gU1ZHUHJvcGVy
dHlBY2Nlc3M6OlJlYWRXcml0ZTsKLSAgICAgICAgbV9zdGF0ZSA9IFNWR1Byb3BlcnR5U3RhdGU6
OkNsZWFuOwotICAgIH0KLQotICAgIGNvbnN0IFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50KCkg
Y29uc3QKLSAgICB7Ci0gICAgICAgIGlmICghbV9vd25lcikKLSAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgICAgICByZXR1cm4gbV9vd25lci0+YXR0cmlidXRlQ29udGV4dEVsZW1lbnQo
KTsKLSAgICB9Ci0KLSAgICB2b2lkIGNvbW1pdENoYW5nZSgpCi0gICAgewotICAgICAgICBpZiAo
IW1fb3duZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fb3duZXItPmNvbW1pdFBy
b3BlcnR5Q2hhbmdlKHRoaXMpOwotICAgIH0KLQotICAgIC8vIERPTSBhY2Nlc3MuCi0gICAgU1ZH
UHJvcGVydHlBY2Nlc3MgYWNjZXNzKCkgY29uc3QgeyByZXR1cm4gbV9hY2Nlc3M7IH0KLSAgICBi
b29sIGlzUmVhZE9ubHkoKSBjb25zdCB7IHJldHVybiBtX2FjY2VzcyA9PSBTVkdQcm9wZXJ0eUFj
Y2Vzczo6UmVhZE9ubHk7IH0KLQotICAgIC8vIFN5bmNocm9uaXppbmcgdGhlIFNWRyBhdHRyaWJ1
dGUgYW5kIGl0cyByZWZsZWN0aW9uIGhlcmUuCi0gICAgYm9vbCBpc0RpcnR5KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGF0ZSA9PSBTVkdQcm9wZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIHZvaWQgc2V0
RGlydHkoKSB7IG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpEaXJ0eTsgfQotICAgIE9wdGlv
bmFsPFN0cmluZz4gc3luY2hyb25pemUoKQotICAgIHsKLSAgICAgICAgaWYgKG1fc3RhdGUgPT0g
U1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4pCi0gICAgICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0
OwotICAgICAgICBtX3N0YXRlID0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW47Ci0gICAgICAgIHJl
dHVybiB2YWx1ZUFzU3RyaW5nKCk7Ci0gICAgfQotCi0gICAgLy8gVGhpcyBpcyB1c2VkIHdoZW4g
Y2FsbGluZyBzZXRBdHRyaWJ1dGUoKS4KLSAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZUFzU3RyaW5n
KCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQotCi0gICAgLy8gVmlzdWFsIFN0dWRp
byBkb2Vzbid0IHNlZW0gdG8gc2VlIHRoZXNlIHByaXZhdGUgY29uc3RydWN0b3JzIGZyb20gc3Vi
Y2xhc3Nlcy4KLSAgICAvLyBGSVhNRTogU2VlIHdoYXQgaXQgdGFrZXMgdG8gcmVtb3ZlIHRoaXMg
aGFjay4KLSNpZiAhQ09NUElMRVIoTVNWQykKLXByb3RlY3RlZDoKLSNlbmRpZgotICAgIFNWR1By
b3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nl
c3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRXcml0ZSkKLSAgICAgICAgOiBtX293
bmVyKG93bmVyKQotICAgICAgICAsIG1fYWNjZXNzKGFjY2VzcykKLSAgICB7Ci0gICAgfQotCi0g
ICAgU1ZHUHJvcGVydHlPd25lciogbV9vd25lciB7IG51bGxwdHIgfTsKLSAgICBTVkdQcm9wZXJ0
eUFjY2VzcyBtX2FjY2VzcyB7IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUgfTsKLSAgICBT
VkdQcm9wZXJ0eVN0YXRlIG1fc3RhdGUgeyBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbiB9OwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlBY2Nlc3Nvci5oCmluZGV4IGZmOGM0Y2RlNmRkMGYzY2FmYmM4
ZjI3YjI3MDI5NzBlMzVmNDg3NjQuLjhkMTI4MTgyN2Q0ZmI5ODg5M2JmZjFmMjQ5ZTBiMzU2ODgy
Mjc1ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5QWNjZXNzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eUFjY2Vzc29yLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIEJh
c2U6OnByb3BlcnR5OwogICAgIHVzaW5nIEJhc2U6OnNpbmdsZXRvbjsKIAotICAgIGJvb2wgbWF0
Y2hlcyhjb25zdCBPd25lclR5cGUmIG93bmVyLCBjb25zdCBTVkdQcm9wZXJ0eSYgcHJvcGVydHkp
IGNvbnN0IG92ZXJyaWRlCisgICAgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYgb3duZXIs
IGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCiAgICAgewog
ICAgICAgICByZXR1cm4gdGhpcy0+cHJvcGVydHkob3duZXIpLnB0cigpID09ICZwcm9wZXJ0eTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9w
ZXJ0eUFuaW1hdG9yRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlBbmltYXRvckZhY3RvcnkuaAppbmRleCA2ODFlNmRjNjU0NjNmN2JlNDkwZTg2ZDI0
ZjA2OGQ3MzAyNWY2NThmLi40YjVkZWY5ZGJlYzM0ZjhhY2UwMTVkZGQxYzFiYzA2ODBiZDg5NTAw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFu
aW1hdG9yRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5QW5pbWF0b3JGYWN0b3J5LmgKQEAgLTY5LDM3ICs2OSwzNyBAQCBwdWJsaWM6CiAKIHBy
aXZhdGU6CiAgICAgLy8gVGhpcyBIYXNoTWFwIG1hcHMgYW4gYXR0cmlidXRlIG5hbWUgdG8gYSBw
YWlyIG9mIHN0YXRpYyBtZXRob2RzLiBUaGUgZmlyc3Qgb25lIGNyZWF0ZXMgYSBzaGFyZWQKLSAg
ICAvLyBSZWY8U1ZHUHJvcGVydHk+IGZvciB0aGUgdmFsdWUgdHlwZSBvZiB0aGlzIGF0dHJpYnV0
ZS4gVGhlIHNlY29uZCBjcmVhdGVzIHRoZSBhbmltYXRvciBnaXZlbiB0aGUKLSAgICAvLyBhdHRy
aWJ1dGUgbmFtZSBhbmQgdGhlIHNoYXJlZCBSZWY8U1ZHUHJvcGVydHk+LgorICAgIC8vIFJlZjxE
T01MaXZlUHJvcGVydHk+IGZvciB0aGUgdmFsdWUgdHlwZSBvZiB0aGlzIGF0dHJpYnV0ZS4gVGhl
IHNlY29uZCBjcmVhdGVzIHRoZSBhbmltYXRvciBnaXZlbiB0aGUKKyAgICAvLyBhdHRyaWJ1dGUg
bmFtZSBhbmQgdGhlIHNoYXJlZCBSZWY8RE9NTGl2ZVByb3BlcnR5Pi4KICAgICB1c2luZyBBdHRy
aWJ1dGVBbmltYXRvckNyZWF0b3IgPSBIYXNoTWFwPAogICAgICAgICBRdWFsaWZpZWROYW1lOjpR
dWFsaWZpZWROYW1lSW1wbCosCiAgICAgICAgIHN0ZDo6cGFpcjwKLSAgICAgICAgICAgIHN0ZDo6
ZnVuY3Rpb248UmVmPFNWR1Byb3BlcnR5PigpPiwKLSAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248
UmVmPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPihjb25zdCBRdWFsaWZpZWROYW1lJiwgUmVmPFNWR1By
b3BlcnR5PiYmLCBBbmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9vbCwgYm9vbCk+CisgICAgICAg
ICAgICBzdGQ6OmZ1bmN0aW9uPFJlZjxET01MaXZlUHJvcGVydHk+KCk+LAorICAgICAgICAgICAg
c3RkOjpmdW5jdGlvbjxSZWY8U1ZHQXR0cmlidXRlQW5pbWF0b3I+KGNvbnN0IFF1YWxpZmllZE5h
bWUmLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmLCBBbmltYXRpb25Nb2RlLCBDYWxjTW9kZSwgYm9v
bCwgYm9vbCk+CiAgICAgICAgID4KICAgICA+OwogCi0gICAgc3RhdGljIGF1dG8gY3JlYXRlQ29s
b3JBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJv
cGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUg
Y2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRp
YyBhdXRvIGNyZWF0ZUNvbG9yQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRl
TmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmlt
YXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlz
QWRkaXRpdmUpCiAgICAgewogICAgICAgICByZXR1cm4gU1ZHQ29sb3JBbmltYXRvcjo6Y3JlYXRl
KGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9k
ZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGF1dG8g
Y3JlYXRlTGVuZ3RoQW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
UmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUs
IENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkK
KyAgICBzdGF0aWMgYXV0byBjcmVhdGVMZW5ndGhBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRp
b25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0
ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBTVkdMZW5ndGhBbmlt
YXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25N
b2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSk7CiAgICAgfQogCi0gICAg
c3RhdGljIGF1dG8gY3JlYXRlTGVuZ3RoTGlzdEFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9k
ZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBi
b29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlTGVuZ3RoTGlzdEFuaW1hdG9y
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+
JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01v
ZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAg
cmV0dXJuIFNWR0xlbmd0aExpc3RBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0ZU5hbWUsIFdURk1v
dmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNB
ZGRpdGl2ZSk7CiAgICAgfQogCi0gICAgc3RhdGljIGF1dG8gY3JlYXRlTnVtYmVyQW5pbWF0b3Io
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHBy
b3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBi
b29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0aWMgYXV0byBjcmVh
dGVOdW1iZXJBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8
RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUs
IENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkK
ICAgICB7CiAgICAgICAgIHJldHVybiBTVkdOdW1iZXJBbmltYXRvcjo6Y3JlYXRlKGF0dHJpYnV0
ZU5hbWUsICBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNj
dW11bGF0ZWQsIGlzQWRkaXRpdmUpOwogICAgIH0KICAgICAKLSAgICBzdGF0aWMgYXV0byBjcmVh
dGVTdHJpbmdBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8
U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2Fs
Y01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAg
IHN0YXRpYyBhdXRvIGNyZWF0ZVN0cmluZ0FuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1v
ZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwg
Ym9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNWR1N0cmluZ0FuaW1hdG9y
OjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgV1RGTW92ZShwcm9wZXJ0eSksIGFuaW1hdGlvbk1vZGUs
IGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKICAgICB9CkBAIC0xNzAsNyAr
MTcwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgcmV0dXJuIG1hcDsKICAgICB9CiAKLSAgICB1c2lu
ZyBBdHRyaWJ1dGVQcm9wZXJ0eSA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgUmVmPFNWR1Byb3Bl
cnR5Pj47CisgICAgdXNpbmcgQXR0cmlidXRlUHJvcGVydHkgPSBIYXNoTWFwPFF1YWxpZmllZE5h
bWUsIFJlZjxET01MaXZlUHJvcGVydHk+PjsKICAgICBBdHRyaWJ1dGVQcm9wZXJ0eSBtX2F0dHJp
YnV0ZVByb3BlcnR5OwogfTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlMaXN0LmgKaW5kZXggY2JiMDBhZjEwMzAyNTlmYTNjMDQxYTNmMGYyYWI3
ODczYzdkZDNjZC4uYzEzNDY0Mzg4NWYxYmVhYWZiOTdhN2I3ZjVkNGVlMGZkODIzZmMzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0LmgKQEAg
LTMwLDcgKzMwLDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgotY2xhc3MgU1ZHUHJvcGVydHlMaXN0IDogcHVibGljIFNWR0xpc3Q8UmVm
PFByb3BlcnR5VHlwZT4+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdQcm9w
ZXJ0eUxpc3QgOiBwdWJsaWMgU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj4sIHB1YmxpYyBET01M
aXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZUxpc3QgPSBTVkdM
aXN0PFJlZjxQcm9wZXJ0eVR5cGU+PjsKICAgICB1c2luZyBCYXNlTGlzdDo6aXNFbXB0eTsKQEAg
LTQyLDEzICs0MiwxMiBAQCBwdWJsaWM6CiAjaWYgIUNPTVBJTEVSKE1TVkMpCiBwcm90ZWN0ZWQ6
CiAjZW5kaWYKLSAgICB1c2luZyBTVkdQcm9wZXJ0eU93bmVyOjpTVkdQcm9wZXJ0eU93bmVyOwor
ICAgIHVzaW5nIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpET01MaXZlUHJvcGVydHlPYnNlcnZl
cjsKICAgICB1c2luZyBCYXNlTGlzdDo6bV9pdGVtczsKLSAgICB1c2luZyBCYXNlTGlzdDo6bV9h
Y2Nlc3M7Ci0gICAgdXNpbmcgQmFzZUxpc3Q6Om1fb3duZXI7CisgICAgdXNpbmcgQmFzZUxpc3Q6
Om1fb2JzZXJ2ZXI7CiAKLSAgICBTVkdQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3du
ZXIgPSBudWxscHRyLCBTVkdQcm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vz
czo6UmVhZFdyaXRlKQotICAgICAgICA6IEJhc2VMaXN0KG93bmVyLCBhY2Nlc3MpCisgICAgU1ZH
UHJvcGVydHlMaXN0KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9IG51bGxwdHIp
CisgICAgICAgIDogQmFzZUxpc3Qob2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIApAQCAtNjQsMTIg
KzYzLDE3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIGl0ZW0tPmRldGFjaCgpOwogICAgIH0K
IAotICAgIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bV9vd25lcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVy
dHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlkZQorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRP
bmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYpIGNvbnN0IG92ZXJyaWRlCiAgICAgewotICAgICAg
ICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdl
KHRoaXMpOworICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigpLT5pc1Byb3Bl
cnR5UmVhZE9ubHkoKnRoaXMpOworICAgIH0KKworICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFu
Z2UoRE9NTGl2ZVByb3BlcnR5Kikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGlmIChvYnNlcnZl
cigpKQorICAgICAgICAgICAgb2JzZXJ2ZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UodGhpcyk7
CiAgICAgfQogCiAgICAgUmVmPFByb3BlcnR5VHlwZT4gYXQodW5zaWduZWQgaW5kZXgpIGNvbnN0
IG92ZXJyaWRlCkBAIC04OCw3ICs5Miw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIG5ld0l0
ZW0gPSBuZXdJdGVtLT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVt
IHRvIHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNj
ZXNzKTsKKyAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICBtX2l0ZW1zLmlu
c2VydChpbmRleCwgV1RGTW92ZShuZXdJdGVtKSk7CiAgICAgICAgIHJldHVybiBhdChpbmRleCk7
CiAgICAgfQpAQCAtMTA5LDcgKzExMyw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIGl0ZW0g
PSBXVEZNb3ZlKG5ld0l0ZW0pOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVtIHRv
IHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgaXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNjZXNzKTsK
KyAgICAgICAgaXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICByZXR1cm4gYXQoaW5kZXgpOwog
ICAgIH0KIApAQCAtMTMyLDcgKzEzNiw3IEBAIHByb3RlY3RlZDoKICAgICAgICAgICAgIG5ld0l0
ZW0gPSBuZXdJdGVtLT5jbG9uZSgpOwogCiAgICAgICAgIC8vIFNwZWM6IEF0dGFjaCBuZXdJdGVt
IHRvIHRoZSBsaXN0IG9iamVjdC4KLSAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMsIG1fYWNj
ZXNzKTsKKyAgICAgICAgbmV3SXRlbS0+YXR0YWNoKHRoaXMpOwogICAgICAgICBtX2l0ZW1zLmFw
cGVuZChXVEZNb3ZlKG5ld0l0ZW0pKTsKICAgICAgICAgcmV0dXJuIGF0KHNpemUoKSAtIDEpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3du
ZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk4MThiZTlmODQwYzc2NDUzOThl
NjFiNDg5MzgxODYyYTM0NjhmMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eU93bmVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDE4LTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLSAgICAKLWNsYXNzIFNWR0VsZW1lbnQ7Ci1jbGFzcyBTVkdQcm9wZXJ0eTsKLQot
Y2xhc3MgU1ZHUHJvcGVydHlPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+U1ZHUHJvcGVy
dHlPd25lcigpID0gZGVmYXVsdDsKLQotICAgIHZpcnR1YWwgU1ZHUHJvcGVydHlPd25lciogb3du
ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgCi0gICAgdmlydHVhbCBjb25zdCBT
VkdFbGVtZW50KiBhdHRyaWJ1dGVDb250ZXh0RWxlbWVudCgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBpZiAoIW93bmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0
dXJuIG93bmVyKCktPmF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCk7Ci0gICAgfQotICAgIAotICAg
IHZpcnR1YWwgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkp
Ci0gICAgewotICAgICAgICBpZiAoIW93bmVyKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIG93bmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKLSAgICB9Ci0gICAg
Ci1wcm90ZWN0ZWQ6Ci0gICAgU1ZHUHJvcGVydHlPd25lcigpID0gZGVmYXVsdDsKLX07Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3du
ZXJSZWdpc3RyeS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlP
d25lclJlZ2lzdHJ5LmgKaW5kZXggYTVmNzEzNjk3ZWEyYzRjNjAwYmE1MzdkYTI5NDFmNWRhOTll
OTc4Yi4uMzE5YTUwODJhNTlkOWRlNWI2MWRmZjIxYjVlYjM2OGZkMjg3YWM2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lclJl
Z2lzdHJ5LmgKQEAgLTE3OCw3ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKLSAgICBRdWFsaWZpZWROYW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25z
dCBTVkdQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgUXVhbGlmaWVkTmFt
ZSBwcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgRE9NTGl2ZVByb3BlcnR5JiBwcm9wZXJ0eSkg
Y29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIFF1YWxpZmllZE5hbWUgYXR0cmlidXRlTmFt
ZSA9IG51bGxRTmFtZSgpOwogICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3Qg
YXV0byYgZW50cnkpIC0+IGJvb2wgewpAQCAtMjExLDMzICsyMTEsMjAgQEAgcHVibGljOgogICAg
ICAgICB9KTsKICAgICB9CiAKLSAgICAvLyBGaW5kcyB0aGUgcHJvcGVydHkgd2hvc2UgbmFtZSBp
cyBhdHRyaWJ1dGVOYW1lIGFuZCByZXR1cm5zIHRoZSBzeW5jaHJvbml6ZQotICAgIC8vIHN0cmlu
ZyB0aHJvdWdoIHRoZSBhc3NvY2lhdGVkIFNWR01lbWJlckFjY2Vzc29yLgotICAgIE9wdGlvbmFs
PFN0cmluZz4gc3luY2hyb25pemUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSkg
Y29uc3Qgb3ZlcnJpZGUKKyAgICAvLyBGaW5kcyB0aGUgcHJvcGVydHkgd2hvc2UgbmFtZSBpcyBh
dHRyaWJ1dGVOYW1lIGFuZCByZXR1cm5zIHRoZSB2YWx1ZUFzU3RyaW5nCisgICAgLy8gdGhyb3Vn
aCB0aGUgYXNzb2NpYXRlZCBTVkdNZW1iZXJBY2Nlc3Nvci4KKyAgICBTdHJpbmcgdmFsdWVBc1N0
cmluZyhjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBvdmVycmlkZQog
ICAgIHsKLSAgICAgICAgT3B0aW9uYWw8U3RyaW5nPiB2YWx1ZTsKKyAgICAgICAgU3RyaW5nIHZh
bHVlOwogICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3QgYXV0byYgZW50cnkp
IC0+IGJvb2wgewogICAgICAgICAgICAgaWYgKCFlbnRyeS5rZXkubWF0Y2hlcyhhdHRyaWJ1dGVO
YW1lKSkKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIHZhbHVlID0g
ZW50cnkudmFsdWUtPnN5bmNocm9uaXplKG1fb3duZXIpOworICAgICAgICAgICAgdmFsdWUgPSBl
bnRyeS52YWx1ZS0+dmFsdWVBc1N0cmluZyhtX293bmVyKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiB2YWx1ZTsKICAgICB9CiAKLSAgICAv
LyBFbnVtZXJhdGUgcmVjdXJzaXZlbHkgdGhlIFNWR01lbWJlckFjY2Vzc29ycyBvZiB0aGUgT3du
ZXJUeXBlIGFuZCBhbGwgaXRzIEJhc2VUeXBlcy4KLSAgICAvLyBDb2xsZWN0IGFsbCB0aGUgcGFp
cnMgPEF0dHJpYnV0ZU5hbWUsIFN0cmluZz4gb25seSBmb3IgdGhlIGRpcnR5IHByb3BlcnRpZXMu
Ci0gICAgSGFzaE1hcDxRdWFsaWZpZWROYW1lLCBTdHJpbmc+IHN5bmNocm9uaXplQWxsQXR0cmli
dXRlcygpIGNvbnN0IG92ZXJyaWRlCi0gICAgewotICAgICAgICBIYXNoTWFwPFF1YWxpZmllZE5h
bWUsIFN0cmluZz4gbWFwOwotICAgICAgICBlbnVtZXJhdGVSZWN1cnNpdmVseShbJl0oY29uc3Qg
YXV0byYgZW50cnkpIC0+IGJvb2wgewotICAgICAgICAgICAgaWYgKGF1dG8gc3RyaW5nID0gZW50
cnkudmFsdWUtPnN5bmNocm9uaXplKG1fb3duZXIpKQotICAgICAgICAgICAgICAgIG1hcC5hZGQo
ZW50cnkua2V5LCAqc3RyaW5nKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
KTsKLSAgICAgICAgcmV0dXJuIG1hcDsKLSAgICB9Ci0KICAgICBib29sIGlzQW5pbWF0ZWRQcm9w
ZXJ0eUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lKSBjb25zdCBv
dmVycmlkZQogICAgIHsKICAgICAgICAgYm9vbCBpc0FuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGUg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5UmVnaXN0cnkuaAppbmRleCAyNGZlNjQyMzdlMmY1ZTVlMWFmZTg1NTEwZjEzNjYyNjJkZjQz
NDA0Li5kZTI4ZWI5ZmUxNGE3ODdhNmM1NTFlNGRkMGY1ODUwMzg3ZTI5YTliIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVJlZ2lzdHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlSZWdpc3RyeS5oCkBA
IC0zNywxMCArMzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+U1ZHUHJvcGVydHlSZWdpc3Ry
eSgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hBbGxQcm9wZXJ0aWVzKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0dHJpYnV0ZU5h
bWUoY29uc3QgU1ZHUHJvcGVydHkmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBRdWFsaWZpZWRO
YW1lIHByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBET01MaXZlUHJvcGVydHkmKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBRdWFsaWZpZWROYW1lIGFuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGVO
YW1lKGNvbnN0IFNWR0FuaW1hdGVkUHJvcGVydHkmKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBP
cHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXplKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdCA9
IDA7Ci0gICAgdmlydHVhbCBIYXNoTWFwPFF1YWxpZmllZE5hbWUsIFN0cmluZz4gc3luY2hyb25p
emVBbGxBdHRyaWJ1dGVzKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNT
dHJpbmcoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc0FuaW1hdGVkUHJvcGVydHlBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBbmltYXRlZFN0eWxlUHJvcGVydHlBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oCmluZGV4
IGFjZTA1MDJiM2NkMWRiNjk0YmUyNmM2YmE3MTQ3ZTFjYmZmYjMzMzIuLmY3MGYxOGI4ZmZkZDkz
OTQyN2EzNDhhNGNmNWZhOGEyZDQ2YTlmNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaApAQCAtMjUs
MTIgKzI1LDEyIEBACiAKICNwcmFnbWEgb25jZQogCi0jaW5jbHVkZSAiU1ZHUHJvcGVydHkuaCIK
KyNpbmNsdWRlICJET01MaXZlUHJvcGVydHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBQcm9wZXJ0eVR5cGU+Ci1jbGFzcyBTVkdTaGFyZWRQcmltaXRpdmVQ
cm9wZXJ0eSA6IHB1YmxpYyBTVkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdTaGFyZWRQcmltaXRpdmVQ
cm9wZXJ0eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHkgewogcHVibGljOgogICAgIHVzaW5nIFZh
bHVlVHlwZSA9IFByb3BlcnR5VHlwZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eS5oCmluZGV4IDlmMzFlMmQwZjUzOWNjMjAyM2I2M2Y4NzA2
ODZmMGVkODFkYzI5Y2UuLjg1OTg2YzliYmYwY2FiZWNkZDYzZjY2OGMyYWIwNDc0YTdlOWMzNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5
LmgKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1By
b3BlcnR5LmgiCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR1Zh
bHVlUHJvcGVydHkgOiBwdWJsaWMgU1ZHUHJvcGVydHkgeworY2xhc3MgU1ZHVmFsdWVQcm9wZXJ0
eSA6IHB1YmxpYyBET01MaXZlUHJvcGVydHkgewogcHVibGljOgogICAgIHVzaW5nIFZhbHVlVHlw
ZSA9IFByb3BlcnR5VHlwZTsKIApAQCAtNjMsMTUgKzYzLDE1IEBAIHByb3RlY3RlZDoKICAgICB7
CiAgICAgfQogCi0gICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVz
ZSAidXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5k
IEdUSyBwb3J0cy4KLSAgICBTVkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVy
ID0gbnVsbHB0ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzID0gU1ZHUHJvcGVydHlBY2Nlc3M6
OlJlYWRXcml0ZSkKLSAgICAgICAgOiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgIC8v
IEJhc2UgYW5kIGRlZmF1bHQgY29uc3RydWN0b3IuIERvIG5vdCB1c2UgInVzaW5nIERPTUxpdmVQ
cm9wZXJ0eTo6RE9NTGl2ZVByb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0
cy4KKyAgICBTVkdWYWx1ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZl
ciA9IG51bGxwdHIpCisgICAgICAgIDogRE9NTGl2ZVByb3BlcnR5KG9ic2VydmVyKQogICAgIHsK
ICAgICB9CiAKICAgICAvLyBDcmVhdGUgYW4gaW5pdGlhbGl6ZWQgYW5kIGF0dGFjaGVkIHByb3Bl
cnR5LgotICAgIFNWR1ZhbHVlUHJvcGVydHkoU1ZHUHJvcGVydHlPd25lciogb3duZXIsIFNWR1By
b3BlcnR5QWNjZXNzIGFjY2VzcywgY29uc3QgUHJvcGVydHlUeXBlJiB2YWx1ZSkKLSAgICAgICAg
OiBTVkdQcm9wZXJ0eShvd25lciwgYWNjZXNzKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2
ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQor
ICAgICAgICA6IERPTUxpdmVQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZh
bHVlKQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVy
dGllcy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oCmluZGV4IGUxNmM4OTA0NTE0MmMxNmJi
MTA1ZDdlYjM4NGI1NDkxMDE3NjI2NjMuLmVlMWIzNzVkZmU5NTdhN2NhY2M5ZTRkMmY0MDRmOWNk
MDI5YjE3YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHlBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNWR1Zh
bHVlUHJvcGVydHlBbmltYXRvciA6IHB1YmxpYyBTVkdQcm9wZXJ0eUFuaW1hdG9yPEFuaW1hdGlv
bkZ1bmN0aW9uPiB7CiAKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVu
dHM+Ci0gICAgU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQXJndW1lbnRzJiYuLi4g
YXJndW1lbnRzKQorICAgIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvcihjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBcmd1
bWVudHMmJi4uLiBhcmd1bWVudHMpCiAgICAgICAgIDogQmFzZShhdHRyaWJ1dGVOYW1lLCBzdGQ6
OmZvcndhcmQ8QXJndW1lbnRzPihhcmd1bWVudHMpLi4uKQogICAgICAgICAsIG1fcHJvcGVydHko
c3RhdGljX3JlZmVyZW5jZV9jYXN0PFByb3BlcnR5VHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpKQog
ICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVl
UHJvcGVydHlBbmltYXRvckltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaAppbmRleCBlNjk2MjYwZThkMTA1MGYwODNkMDhm
OTU4OWQ1MDY2ZDNkMzY2YjM0Li4wNjhiNDMxNDRkNDU0Zjc3ZWMzMDI4NWRlZmFmNDczNzQxYWFk
ZTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVBy
b3BlcnR5QW5pbWF0b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNW
R0xlbmd0aEFuaW1hdG9yIGZpbmFsIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvcjxT
VkdMZW5ndGgsIFNWR0FuCiAgICAgdXNpbmcgQmFzZTo6bV9wcm9wZXJ0eTsKIAogcHVibGljOgot
ICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1l
LCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9k
ZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZl
KQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVO
YW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1h
dGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNB
ZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aEFu
aW1hdG9yKGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUocHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBj
YWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSwgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIp
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdW
YWx1ZVByb3BlcnR5TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eUxpc3QuaAppbmRleCAzMDEwYzMzYTc0MDg5YmM0NGZiYjQxMGE1NmY3ODVhOWY3
MTdjY2VlLi5jNWI3M2EwZWE0Yjk2ZmIxYzRiMDQ0M2VkOTExNWEwOTQ0ZWI1MmUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0
LmgKQEAgLTc1LDE0ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6cmVtb3Zl
OwogCiAgICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNp
bmcgQmFzZTo6QmFzZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCi0gICAgU1ZH
VmFsdWVQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRyLCBTVkdQ
cm9wZXJ0eUFjY2VzcyBhY2Nlc3MgPSBTVkdQcm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlKQotICAg
ICAgICA6IEJhc2Uob3duZXIsIGFjY2VzcykKKyAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdChET01M
aXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6IEJhc2Uo
b2JzZXJ2ZXIpCiAgICAgewogICAgIH0KIAogICAgIC8vIFVzZWQgYnkgU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUxpc3Qgd2hlbiBjcmVhdGluZyBpdCBhbmltVmFsIGZyb20gYmFzZVZhbC4KLSAgICBTVkdW
YWx1ZVByb3BlcnR5TGlzdChjb25zdCBTVkdWYWx1ZVByb3BlcnR5TGlzdCYgb3RoZXIsIFNWR1By
b3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAg
ICAgIDogQmFzZShvdGhlci5vd25lcigpLCBhY2Nlc3MpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUxp
c3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQorICAgICAgICA6IEJhc2Uob3Ro
ZXIub2JzZXJ2ZXIoKSkKICAgICB7CiAgICAgICAgIC8vIENsb25lIGFsbCBpdGVtcy4KICAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBpdGVtIDogb3RoZXIuaXRlbXMoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3Iu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5p
bWF0b3IuaAppbmRleCBhYmFmYzUxZjlmOTNlOWQ4ODFkZjNkMDFlYWI1NWNjZWUyZmQ5OTU0Li5m
MTU4YjQ2MGU1MjIyNmNmYzU4MzNjMTU1MDRhYzcxOTY5M2FiNmU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RB
bmltYXRvci5oCkBAIC0zOCw3ICszOCw3IEBAIGNsYXNzIFNWR1ZhbHVlUHJvcGVydHlMaXN0QW5p
bWF0b3IgOiBwdWJsaWMgU1ZHUHJvcGVydHlBbmltYXRvcjxBbmltYXRpb25GdW5jdGlvCiAKIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3RBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBS
ZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAg
ICBTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJp
YnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4u
IGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNlKGF0dHJpYnV0ZU5hbWUsIHN0ZDo6Zm9yd2FyZDxB
cmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAgICAgICAgICwgbV9saXN0KHN0YXRpY19yZWZlcmVu
Y2VfY2FzdDxMaXN0VHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkpKQogICAgIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0
b3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5
TGlzdEFuaW1hdG9ySW1wbC5oCmluZGV4IDJlMmE4NTQwYWIxM2YxMGQwYTIwYjliMjliNmRlOTMx
NDAzMzlhM2YuLjIxOWIzNThhMTZjMWRhMzBjZDM5MjVjNTVmZWU5MTQzMzgxYjc0MDggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0
QW5pbWF0b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eUxpc3RBbmltYXRvckltcGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTVkdM
ZW5ndGhMaXN0QW5pbWF0b3IgZmluYWwgOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmlt
YXRvcjxTVkdMZW5ndAogICAgIHVzaW5nIEJhc2U6Om1fbGlzdDsKIAogcHVibGljOgotICAgIHN0
YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8
U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2Fs
Y01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAg
IHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBS
ZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1v
ZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2
ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3RBbmlt
YXRvcihhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2Fs
Y01vZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUsIFNWR0xlbmd0aE1vZGU6Ok90aGVyKSk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGJkMDk5ODAwYTg1ZjNjM2MwMGNlMDUzZTk0ZjEzZTZmZjZhMjc4MDQu
LjgyYzkxY2I4ZGNmYzgzMzZiYzJkMjM4Y2EyZDI5M2Q3ZDgxNjE2ZWUgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxOS0xMC0wMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgorCisgICAgICAgIE1ha2UgdGhlIFNWRyBwcm9wZXJ0aWVzIG9mIFNWR1ZpZXdTcGVj
IG1vZGlmaWFibGUgYnV0IGRldGFjaGVkIHByb3BlcnRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjQxMQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2Ugc3VyZSBhbGwgdGhlIHByb3BlcnRpZXMg
b2YgU1ZHVmlld1NwZWMgYXJlIG1vZGlmaWFibGUuCisKKyAgICAgICAgKiBzdmcvZG9tL1NWR1Zp
ZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBzdmcvZG9tL1NWR1ZpZXdT
cGVjLWRlZmF1bHRzLmh0bWw6CisKIDIwMTktMTAtMDEgIEFuZHJlcyBHb256YWxleiAgPGFuZHJl
c2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgYWNjZXNzaWJpbGl0eSBmb3IgPGZp
Z3VyZT4gZWxlbWVudCBvbiBpT1MuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvZG9tL1NW
R1ZpZXdTcGVjLWRlZmF1bHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZH
Vmlld1NwZWMtZGVmYXVsdHMtZXhwZWN0ZWQudHh0CmluZGV4IDljMDE4MTc1ODE1Yjc0NGZkMmI2
NTBkNzM3MmM0N2Y4NWFhMTRhZjEuLjE0NTJhYjdjNDVhNGYzNWEzOTU5N2YwMzNlMGQzOTkyNTBi
YmEyYzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVs
dHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVm
YXVsdHMtZXhwZWN0ZWQudHh0CkBAIC0yMCw1MCArMjAsNTMgQEAgUEFTUyBjdXJyZW50Vmlldy50
cmFuc2Zvcm1TdHJpbmcgaXMgIiIKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyBp
cyAiIgogUEFTUyBjdXJyZW50Vmlldy56b29tQW5kUGFuIGlzIFNWR1ZpZXdFbGVtZW50LlNWR19a
T09NQU5EUEFOX01BR05JRlkKIAotVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9mIHRo
ZXNlIHdpbGwgd29yaywgYXMgU1ZHVmlld1NwZWMgaXMgZnVsbHkgcmVhZG9ubHkgLSBldmVuIHRo
ZSBhbmltYXRlZCBwcm9wZXJ0aWVzIGl0IGluaGVyaXRzIGZyb20gcGFyZW50IGNsYXNzZXMgbGlr
ZSBTVkdab29tQW5kUGFuL1NWR0ZpdFRvVmlld0JveAorVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4g
LSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKIFBB
U1MgY3VycmVudFZpZXcuem9vbUFuZFBhbiA9IFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFO
X0RJU0FCTEUgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9uQWxsb3dlZEVycm9yOiBUaGUg
b2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgogUEFTUyBjdXJyZW50Vmlldy56b29tQW5kUGFu
IGlzIFNWR1ZpZXdFbGVtZW50LlNWR19aT09NQU5EUEFOX01BR05JRlkKIAotVHJ5IGNoYW5naW5n
IHZpZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZp
ZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBleHBvc2VkIGFsbCBpdHMgcHJvcGVydGllcyBhcyByZWFk
LW9ubHkKLVBBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnggPSAxMCB0aHJldyBleGNl
cHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBt
b2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IGlzIDAKLVBBU1Mg
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkgPSAyMCB0aHJldyBleGNlcHRpb24gTm9Nb2Rp
ZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZC4uCi1Q
QVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55IGlzIDAKLVBBU1MgY3VycmVudFZpZXcu
dmlld0JveC5iYXNlVmFsLndpZHRoID0gNTAgdGhyZXcgZXhjZXB0aW9uIE5vTW9kaWZpY2F0aW9u
QWxsb3dlZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBub3QgYmUgbW9kaWZpZWQuLgotUEFTUyBjdXJy
ZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGggaXMgMAotUEFTUyBjdXJyZW50Vmlldy52aWV3
Qm94LmJhc2VWYWwuaGVpZ2h0ID0gMTAwIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFs
bG93ZWRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVu
dFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdodCBpcyAwCi1QQVNTIGN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgaXMgIjAgMCAwIDAiCitDaGFuZ2luZyB2aWV3Qm94IC0gdGhpcyBoYXMgbm8gYWZm
ZWN0IG9uIHRoZSBTVkdTVkdFbGVtZW50IHRoZSB2aWV3U3BlYyBiZWxvbmdzIHRvIC0gaXQgaXMg
YSBkZXRhY2hlZCBwcm9wZXJ0eQorUEFTUyBjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCA9
IDEwIGlzIDEwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC54IGlzIDEwCitQQVNT
IGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55ID0gMjAgaXMgMjAKK1BBU1MgY3VycmVudFZp
ZXcudmlld0JveC5iYXNlVmFsLnkgaXMgMjAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNl
VmFsLndpZHRoID0gNTAgaXMgNTAKK1BBU1MgY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndp
ZHRoIGlzIDUwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAg
aXMgMTAwCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgaXMgMTAwCitQ
QVNTIGN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmcgaXMgIjEwIDIwIDUwIDEwMCIKIAotVHJ5IGNo
YW5naW5nIHZpZXdCb3hTdHJpbmcKK1RyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nIC0gbm9uZSBv
ZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJl
bnRWaWV3LnZpZXdCb3hTdHJpbmcgPSAnMSAyIDMgNCcgaXMgIjEgMiAzIDQiCi1QQVNTIGN1cnJl
bnRWaWV3LnZpZXdCb3hTdHJpbmcgaXMgIjAgMCAwIDAiCitQQVNTIGN1cnJlbnRWaWV3LnZpZXdC
b3hTdHJpbmcgaXMgIjEwIDIwIDUwIDEwMCIKIAotVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0
UmF0aW8KLVBBU1MgY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLmFsaWdu
ID0gU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1J
TiB0aHJldyBleGNlcHRpb24gTm9Nb2RpZmljYXRpb25BbGxvd2VkRXJyb3I6IFRoZSBvYmplY3Qg
Y2FuIG5vdCBiZSBtb2RpZmllZC4uCi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0
aW8uYmFzZVZhbC5hbGlnbiBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFT
UEVDVFJBVElPX1hNSURZTUlECi1QQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8u
YmFzZVZhbC5tZWV0T3JTbGljZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNM
SUNFX1NMSUNFIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhl
IG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KLVBBU1MgY3VycmVudFZpZXcucHJlc2VydmVB
c3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIGlzIFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8u
U1ZHX01FRVRPUlNMSUNFX01FRVQKK0NoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW8gLSB0aGlz
IGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0VsZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3Mg
dG8gLSBpdCBpcyBhIGRldGFjaGVkIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZl
QXNwZWN0UmF0aW8uYmFzZVZhbC5hbGlnbiA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BS
RVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdf
UFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFz
cGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJF
U0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTgorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVj
dFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19N
RUVUT1JTTElDRV9TTElDRSBpcyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19NRUVUT1JTTElD
RV9TTElDRQorUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVl
dE9yU2xpY2UgaXMgU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5TVkdfTUVFVE9SU0xJQ0VfU0xJQ0UK
IAotVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcKLVBBU1MgY3VycmVudFZp
ZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyA9ICd4TWluWU1pbiBzbGljZScgaXMgInhNaW5Z
TWluIHNsaWNlIgotUEFTUyBjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIGlz
ICJ4TWlkWU1pZCBtZWV0IgotCi1UcnkgY2hhbmdpbmcgdHJhbnNmb3JtU3RyaW5nCi1QQVNTIGN1
cnJlbnRWaWV3LnRyYW5zZm9ybVN0cmluZyA9ICdyb3RhdGUoOTApJyBpcyAicm90YXRlKDkwKSIK
LVBBU1MgY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIGlzICIiCitDaGFuZ2luZyBwcmVzZXJ2
ZUFzcGVjdFJhdGlvU3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJp
bWl0aXZlIHByb3BlcnR5CitQQVNTIGN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJp
bmcgPSAneE1pZFlNaWQgbWVldCcgaXMgInhNaWRZTWlkIG1lZXQiCitQQVNTIGN1cnJlbnRWaWV3
LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgaXMgInhNaW5ZTWluIHNsaWNlIgogCi1UcnkgY2hh
bmdpbmcgdmlld1RhcmdldAorVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXQgLSBub25lIG9mIHRoZXNl
IHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKIFBBU1MgY3VycmVudFZpZXcu
dmlld1RhcmdldCA9IHN2Z0VsZW1lbnQgaXMgc3ZnRWxlbWVudAogUEFTUyBjdXJyZW50Vmlldy52
aWV3VGFyZ2V0IGlzIG51bGwKIAotVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXRTdHJpbmcKK1RyeSBj
aGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nIC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlz
IGEgcHJpbWl0aXZlIHByb3BlcnR5CiBQQVNTIGN1cnJlbnRWaWV3LnZpZXdUYXJnZXRTdHJpbmcg
PSAnI3Rlc3QnIGlzICIjdGVzdCIKIFBBU1MgY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyBp
cyAiIgogCi1UcnkgY2hhbmdpbmcgdHJhbnNmb3JtCi1QQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9y
bS5jbGVhcigpIHRocmV3IGV4Y2VwdGlvbiBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvcjogVGhl
IG9iamVjdCBjYW4gbm90IGJlIG1vZGlmaWVkLi4KK0NoYW5naW5nIHRyYW5zZm9ybSAtIHRoaXMg
aGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0
byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkKK1BBU1MgY3VycmVudFZpZXcudHJhbnNmb3Jt
LmFwcGVuZEl0ZW0odHJhbnNmb3JtKS50b1N0cmluZygpIGlzICJbb2JqZWN0IFNWR1RyYW5zZm9y
bV0iCitQQVNTIGN1cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0ZW1zIGlzIDEKK1BBU1Mg
Y3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIGlzICJtYXRyaXgoMSAwIDAgMSAwIDApIgorUEFT
UyB1bmRlZmluZWQgaXMgdW5kZWZpbmVkLgogUEFTUyBjdXJyZW50Vmlldy50cmFuc2Zvcm0ubnVt
YmVyT2ZJdGVtcyBpcyAwCisKK1RyeSBjaGFuZ2luZyB0cmFuc2Zvcm1TdHJpbmcgLSBub25lIG9m
IHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkKK1BBU1MgY3VycmVu
dFZpZXcudHJhbnNmb3JtU3RyaW5nID0gJ3JvdGF0ZSg5MCknIGlzICJyb3RhdGUoOTApIgorUEFT
UyBjdXJyZW50Vmlldy50cmFuc2Zvcm1TdHJpbmcgaXMgIiIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3Zn
L2RvbS9TVkdWaWV3U3BlYy1kZWZhdWx0cy5odG1sIGIvTGF5b3V0VGVzdHMvc3ZnL2RvbS9TVkdW
aWV3U3BlYy1kZWZhdWx0cy5odG1sCmluZGV4IGEwMjQyNjcxZDJjYWNjYjBiZWM1MjQ5YjBlNWNj
OTNlNDYyNzYxZWIuLjEwNjBiZGMyY2JkZGE3ODI0M2E4YWY4YzA2NTQyNWM2NmY3MjMxZmIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N2Zy9kb20vU1ZHVmlld1NwZWMtZGVmYXVsdHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdmcvZG9tL1NWR1ZpZXdTcGVjLWRlZmF1bHRzLmh0bWwKQEAgLTM0
LDYyICszNCw2NCBAQCBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdUYXJn
ZXRTdHJpbmciLCAiIik7CiBzaG91bGRCZSgiY3VycmVudFZpZXcuem9vbUFuZFBhbiIsICJTVkdW
aWV3RWxlbWVudC5TVkdfWk9PTUFORFBBTl9NQUdOSUZZIik7CiAKIGRlYnVnKCIiKTsKLWRlYnVn
KCJUcnkgY2hhbmdpbmcgem9vbUFuZFBhbiAtIG5vbmUgb2YgdGhlc2Ugd2lsbCB3b3JrLCBhcyBT
VkdWaWV3U3BlYyBpcyBmdWxseSByZWFkb25seSAtIGV2ZW4gdGhlIGFuaW1hdGVkIHByb3BlcnRp
ZXMgaXQgaW5oZXJpdHMgZnJvbSBwYXJlbnQgY2xhc3NlcyBsaWtlIFNWR1pvb21BbmRQYW4vU1ZH
Rml0VG9WaWV3Qm94Iik7CitkZWJ1ZygiVHJ5IGNoYW5naW5nIHpvb21BbmRQYW4gLSBub25lIG9m
IHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZFRo
cm93KCJjdXJyZW50Vmlldy56b29tQW5kUGFuID0gU1ZHVmlld0VsZW1lbnQuU1ZHX1pPT01BTkRQ
QU5fRElTQUJMRSIpOwogc2hvdWxkQmUoImN1cnJlbnRWaWV3Lnpvb21BbmRQYW4iLCAiU1ZHVmll
d0VsZW1lbnQuU1ZHX1pPT01BTkRQQU5fTUFHTklGWSIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1Zygi
VHJ5IGNoYW5naW5nIHZpZXdCb3ggLSB0aGlzIGhhcyBubyBhZmZlY3Qgb24gdGhlIFNWR1NWR0Vs
ZW1lbnQgdGhlIHZpZXdTcGVjIGJlbG9uZ3MgdG8gLSBpdCBleHBvc2VkIGFsbCBpdHMgcHJvcGVy
dGllcyBhcyByZWFkLW9ubHkiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy52aWV3Qm94LmJh
c2VWYWwueCA9IDEwIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLngi
LCAiMCIpOwotc2hvdWxkVGhyb3coImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC55ID0gMjAi
KTsKLXNob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSIsICIwIik7Ci1zaG91
bGRUaHJvdygiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLndpZHRoID0gNTAiKTsKLXNob3Vs
ZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGgiLCAiMCIpOwotc2hvdWxkVGhy
b3coImN1cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAiKTsKLXNob3VsZEJl
KCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IiwgIjAiKTsKLXNob3VsZEJlRXF1
YWxUb1N0cmluZygiY3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIwIDAgMCAwIik7CitkZWJ1
ZygiQ2hhbmdpbmcgdmlld0JveCAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxl
bWVudCB0aGUgdmlld1NwZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHki
KTsKK3Nob3VsZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueCA9IDEwIiwgIjEwIik7
CitzaG91bGRCZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLngiLCAiMTAiKTsKK3Nob3Vs
ZEJlKCJjdXJyZW50Vmlldy52aWV3Qm94LmJhc2VWYWwueSA9IDIwIiwgIjIwIik7CitzaG91bGRC
ZSgiY3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLnkiLCAiMjAiKTsKK3Nob3VsZEJlKCJjdXJy
ZW50Vmlldy52aWV3Qm94LmJhc2VWYWwud2lkdGggPSA1MCIsICI1MCIpOworc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnZpZXdCb3guYmFzZVZhbC53aWR0aCIsICI1MCIpOworc2hvdWxkQmUoImN1cnJl
bnRWaWV3LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgPSAxMDAiLCAiMTAwIik7CitzaG91bGRCZSgi
Y3VycmVudFZpZXcudmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIxMDAiKTsKK3Nob3VsZEJlRXF1
YWxUb1N0cmluZygiY3VycmVudFZpZXcudmlld0JveFN0cmluZyIsICIxMCAyMCA1MCAxMDAiKTsK
IAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3Qm94U3RyaW5nIik7CitkZWJ1
ZygiVHJ5IGNoYW5naW5nIHZpZXdCb3hTdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29yaywg
aXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygiY3Vy
cmVudFZpZXcudmlld0JveFN0cmluZyA9ICcxIDIgMyA0JyIsICIxIDIgMyA0Iik7Ci1zaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImN1cnJlbnRWaWV3LnZpZXdCb3hTdHJpbmciLCAiMCAwIDAgMCIpOwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy52aWV3Qm94U3RyaW5nIiwgIjEwIDIw
IDUwIDEwMCIpOwogCiBkZWJ1ZygiIik7Ci1kZWJ1ZygiVHJ5IGNoYW5naW5nIHByZXNlcnZlQXNw
ZWN0UmF0aW8iKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlv
LmJhc2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVD
VFJBVElPX1hNSU5ZTUlOIik7Ci1zaG91bGRCZSgiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RS
YXRpby5iYXNlVmFsLmFsaWduIiwgIlNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZF
QVNQRUNUUkFUSU9fWE1JRFlNSUQiKTsKLXNob3VsZFRocm93KCJjdXJyZW50Vmlldy5wcmVzZXJ2
ZUFzcGVjdFJhdGlvLmJhc2VWYWwubWVldE9yU2xpY2UgPSBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19NRUVUT1JTTElDRV9TTElDRSIpOwotc2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZl
QXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JTbGljZSIsICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlv
LlNWR19NRUVUT1JTTElDRV9NRUVUIik7CitkZWJ1ZygiQ2hhbmdpbmcgcHJlc2VydmVBc3BlY3RS
YXRpbyAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1Nw
ZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkiKTsKK3Nob3VsZEJlKCJj
dXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24gPSBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLlNWR19QUkVTRVJWRUFTUEVDVFJBVElPX1hNSU5ZTUlOIiwgIlNWR1ByZXNl
cnZlQXNwZWN0UmF0aW8uU1ZHX1BSRVNFUlZFQVNQRUNUUkFUSU9fWE1JTllNSU4iKTsKK3Nob3Vs
ZEJlKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvLmJhc2VWYWwuYWxpZ24iLCAiU1ZH
UHJlc2VydmVBc3BlY3RSYXRpby5TVkdfUFJFU0VSVkVBU1BFQ1RSQVRJT19YTUlOWU1JTiIpOwor
c2hvdWxkQmUoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW8uYmFzZVZhbC5tZWV0T3JT
bGljZSA9IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIiwgIlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIik7CitzaG91bGRCZSgi
Y3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpby5iYXNlVmFsLm1lZXRPclNsaWNlIiwgIlNW
R1ByZXNlcnZlQXNwZWN0UmF0aW8uU1ZHX01FRVRPUlNMSUNFX1NMSUNFIik7CiAKIGRlYnVnKCIi
KTsKLWRlYnVnKCJUcnkgY2hhbmdpbmcgcHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyIpOwotc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5n
ID0gJ3hNaW5ZTWluIHNsaWNlJyIsICJ4TWluWU1pbiBzbGljZSIpOwotc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJjdXJyZW50Vmlldy5wcmVzZXJ2ZUFzcGVjdFJhdGlvU3RyaW5nIiwgInhNaWRZTWlk
IG1lZXQiKTsKLQorZGVidWcoIkNoYW5naW5nIHByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcgLSBu
b25lIG9mIHRoZXNlIHdpbGwgd29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKK3No
b3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcucHJlc2VydmVBc3BlY3RSYXRpb1N0cmlu
ZyA9ICd4TWlkWU1pZCBtZWV0JyIsICJ4TWlkWU1pZCBtZWV0Iik7CitzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImN1cnJlbnRWaWV3LnByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmciLCAieE1pbllNaW4g
c2xpY2UiKTsKIAogZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB0cmFuc2Zvcm1TdHJp
bmciKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5n
ID0gJ3JvdGF0ZSg5MCknIiwgInJvdGF0ZSg5MCkiKTsKLXNob3VsZEJlRXF1YWxUb1N0cmluZygi
Y3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nIiwgIiIpOwotCi0KLWRlYnVnKCIiKTsKLWRlYnVn
KCJUcnkgY2hhbmdpbmcgdmlld1RhcmdldCIpOworZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFy
Z2V0IC0gbm9uZSBvZiB0aGVzZSB3aWxsIHdvcmssIGl0IGlzIGEgcHJpbWl0aXZlIHByb3BlcnR5
Iik7CiBzaG91bGRCZSgiY3VycmVudFZpZXcudmlld1RhcmdldCA9IHN2Z0VsZW1lbnQiLCAic3Zn
RWxlbWVudCIpOwogc2hvdWxkQmVOdWxsKCJjdXJyZW50Vmlldy52aWV3VGFyZ2V0Iik7CiAKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB2aWV3VGFyZ2V0U3RyaW5nIik7CitkZWJ1
ZygiVHJ5IGNoYW5naW5nIHZpZXdUYXJnZXRTdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwgd29y
aywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
Y3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyA9ICcjdGVzdCciLCAiI3Rlc3QiKTsKIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudmlld1RhcmdldFN0cmluZyIsICIiKTsKIAog
ZGVidWcoIiIpOwotZGVidWcoIlRyeSBjaGFuZ2luZyB0cmFuc2Zvcm0iKTsKLXNob3VsZFRocm93
KCJjdXJyZW50Vmlldy50cmFuc2Zvcm0uY2xlYXIoKSIpOworZGVidWcoIkNoYW5naW5nIHRyYW5z
Zm9ybSAtIHRoaXMgaGFzIG5vIGFmZmVjdCBvbiB0aGUgU1ZHU1ZHRWxlbWVudCB0aGUgdmlld1Nw
ZWMgYmVsb25ncyB0byAtIGl0IGlzIGEgZGV0YWNoZWQgcHJvcGVydHkiKTsKK3ZhciB0cmFuc2Zv
cm0gPSBzdmdFbGVtZW50LmNyZWF0ZVNWR1RyYW5zZm9ybSgpOworc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJjdXJyZW50Vmlldy50cmFuc2Zvcm0uYXBwZW5kSXRlbSh0cmFuc2Zvcm0pLnRvU3RyaW5n
KCkiLCAiW29iamVjdCBTVkdUcmFuc2Zvcm1dIik7CitzaG91bGRCZSgiY3VycmVudFZpZXcudHJh
bnNmb3JtLm51bWJlck9mSXRlbXMiLCAiMSIpOworc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJjdXJy
ZW50Vmlldy50cmFuc2Zvcm1TdHJpbmciLCAibWF0cml4KDEgMCAwIDEgMCAwKSIpOworc2hvdWxk
QmVVbmRlZmluZWQoY3VycmVudFZpZXcudHJhbnNmb3JtLmNsZWFyKCkpOwogc2hvdWxkQmUoImN1
cnJlbnRWaWV3LnRyYW5zZm9ybS5udW1iZXJPZkl0ZW1zIiwgIjAiKTsKIAorZGVidWcoIiIpOwor
ZGVidWcoIlRyeSBjaGFuZ2luZyB0cmFuc2Zvcm1TdHJpbmcgLSBub25lIG9mIHRoZXNlIHdpbGwg
d29yaywgaXQgaXMgYSBwcmltaXRpdmUgcHJvcGVydHkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmlu
ZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5nID0gJ3JvdGF0ZSg5MCknIiwgInJvdGF0ZSg5
MCkiKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiY3VycmVudFZpZXcudHJhbnNmb3JtU3RyaW5n
IiwgIiIpOworCiBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogPC9zY3JpcHQ+CiA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380019</attachid>
            <date>2019-10-02 07:39:27 -0700</date>
            <delta_ts>2022-02-10 16:49:14 -0800</delta_ts>
            <desc>Patch for review</desc>
            <filename>201782.patch</filename>
            <type>text/plain</type>
            <size>61426</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MWNhM2Q3NjI1Zi4uNjFiYjM4ODNhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMTIgQEAKKzIwMTktMTAtMDEgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdh
QGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIFNWR1Byb3BlcnR5L1NWR1Byb3BlcnR5T3du
ZXIgYnkgRE9NTGl2ZVByb3BlcnR5L0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDE3ODIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGlzIGEgc3RlcCB0b3dh
cmRzIHJlcGxhY2luZyBTVkdQb2ludCBieSBET01Qb2ludC4KKworICAgICAgICAtLSBBZGQgYSBu
ZXcgY2xhc3MsIG5hbWVkIERPTUxpdmVQcm9wZXJ0eS4gSXRzIGpvYiBpcyB0byBjb21tdW5pY2F0
ZSB0aGUKKyAgICAgICAgICAgY2hhbmdlcyBpbiB0aGlzIG9iamVjdCB0byBpdHMgb2JzZXJ2ZXIu
IFRoaXMgaXMgcmVwbGFjaW5nIFNWR1Byb3BlcnR5LgorICAgICAgICAgICBET01Qb2ludCB3aWxs
IGJlIG1hZGUgaW4gYSBzdXBlciBvZiBpdCBhbHNvIGluIGEgZm9sbG93aW5nIHBhdGNoLgorCisg
ICAgICAgIC0tIEFkZCBhIG5ldyBjbGFzcywgbmFtZWQgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIg
YW5kIG1ha2UgaXQgdGhlIGJhc2UKKyAgICAgICAgICAgY2xhc3Mgb2YgRE9NTGl2ZVByb3BlcnR5
IG9ic2VydmVycy4gQ3VycmVudGx5IHRoZSBmb2xsb3dpbmcgY2xhc3MgYXJlCisgICAgICAgICAg
IG1hZGUgc3VwZXIgY2xhc3NlcyBvZiBET01MaXZlUHJvcGVydHlPYnNlcnZlcjoKKyAgICAgICAg
ICAgMS4gU1ZHRWxlbWVudDogVGhpcyBvYnNlcnZlcyB0aGUgY2hhbmdlcyBpbiBhbGwgdGhlIFNW
RyBwcm9wZXJ0aWVzLgorICAgICAgICAgICAyLiBTVkdBbmltYXRlZFByb3BlcnR5OiBUaGlzIG9i
c2VydmVzIHRoZSBjaGFuZ2VzIGluIGl0cyBiYXNlVmFsLgorICAgICAgICAgICAzLiBTVkdQcm9w
ZXJ0eUxpc3Q6IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gdGhlIGl0ZW1zLgorICAgICAg
ICAgICA0LiBTVkdUcmFuc2Zvcm06IFRoaXMgb2JzZXJ2ZXMgdGhlIGNoYW5nZXMgaW4gdGhlIHVu
ZGVybHlpbmcgU1ZHTWF0cml4LgorCisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAg
KiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL0RPTUxp
dmVQcm9wZXJ0eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6
aXNBdHRhY2hlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpET01MaXZlUHJvcGVydHk6Om9i
c2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6YXR0YWNo
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6ZGV0YWNoKToKKyAgICAgICAg
KFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6c3ZnQ29udGV4dEVsZW1lbnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5Ojppc1JlYWRPbmx5IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6Y29tbWl0Q2hhbmdlKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTUxpdmVQcm9wZXJ0eTo6dmFsdWVBc1N0cmluZyBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eSk6CisgICAgICAgICogZG9t
L0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RE9N
TGl2ZVByb3BlcnR5T2JzZXJ2ZXI6Om9ic2VydmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjpwcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50IGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTUxpdmVQcm9wZXJ0eU9ic2VydmVyOjppc1Byb3BlcnR5
UmVhZE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2
ZXI6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKToKKyAgICAgICAgKiBzdmcvU1ZHQW5nbGUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0FuZ2xlOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hh
bmdlKToKKyAgICAgICAgKiBzdmcvU1ZHRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdMZW5n
dGguaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0xlbmd0aDo6dmFsdWVGb3JCaW5kaW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdMZW5ndGg6OnNldFZhbHVlRm9yQmluZGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTGVu
Z3RoOjpjb252ZXJ0VG9TcGVjaWZpZWRVbml0cyk6CisgICAgICAgICogc3ZnL1NWR0xlbmd0aExp
c3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xlbmd0aExpc3Q6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpTVkdMZW5ndGhMaXN0OjpTVkdMZW5ndGhMaXN0KToKKyAgICAgICAgKiBzdmcv
U1ZHTWF0cml4Lmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdNYXRyaXg6OmNyZWF0ZSk6CisgICAg
ICAgICogc3ZnL1NWR051bWJlci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTnVtYmVyOjpjcmVh
dGUpOgorICAgICAgICAqIHN2Zy9TVkdOdW1iZXJMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpT
VkdOdW1iZXJMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnLmg6CisgICAg
ICAgICogc3ZnL1NWR1BhdGhTZWdMaXN0Lmg6CisgICAgICAgICogc3ZnL1NWR1BvaW50TGlzdC5o
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUG9pbnRMaXN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2
Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvOjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdSZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdSZWN0OjpjcmVhdGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHJpbmdMaXN0
Lmg6CisgICAgICAgICogc3ZnL1NWR1RyYW5zZm9ybS5oOgorICAgICAgICAqIHN2Zy9TVkdUcmFu
c2Zvcm1MaXN0Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5OjpvYnNlcnZlciBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpjb21taXRQcm9w
ZXJ0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25l
ciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eS5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6dmFsdWVB
c1N0cmluZyBjb25zdCk6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eUxpc3QuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5
UGFpckFjY2Vzc29ySW1wbC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
VmFsdWVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaDoKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHTWVtYmVyQWNjZXNzb3I6Om1hdGNoZXMgY29uc3QpOgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1BvaW50ZXJNZW1iZXJBY2Nlc3Nvci5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3I6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yOjpTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1h
dG9yKToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oOiBSZW1vdmVkLgor
ICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaDoKKyAgICAgICAg
KiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUNvbG9yQW5pbWF0b3Ip
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZUxl
bmd0aEFuaW1hdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0
b3J5OjpjcmVhdGVMZW5ndGhMaXN0QW5pbWF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJv
cGVydHlBbmltYXRvckZhY3Rvcnk6OmNyZWF0ZU51bWJlckFuaW1hdG9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OjpjcmVhdGVTdHJpbmdBbmltYXRvcik6
CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdQcm9wZXJ0eUxpc3Q6OlNWR1Byb3BlcnR5TGlzdCk6CisgICAgICAgICogc3Zn
L3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlPd25lci5oOiBSZW1vdmVkLgorICAgICAgICAqIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oOgorICAgICAgICAqIHN2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdTaGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZhbHVlUHJvcGVydHk6OlNW
R1ZhbHVlUHJvcGVydHkpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVy
dHlBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9y
OjpTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IpOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NW
R1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdWYWx1ZVByb3BlcnR5TGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmFsdWVQcm9wZXJ0
eUxpc3Q6OlNWR1ZhbHVlUHJvcGVydHlMaXN0KToKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9T
VkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdWYWx1
ZVByb3BlcnR5TGlzdEFuaW1hdG9yOjpTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yKToKKyAg
ICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5o
OgorCiAyMDE5LTEwLTAxICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIFNWR1Byb3BlcnR5U3RhdGUgZnJvbSBTVkdQcm9wZXJ0eQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggNTRhZjIyZGFkZTYuLjNkN2Q3NzYxOTY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKQEAgLTM2MCw2ICszNjAsOCBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUFERVJTCiAgICAgZG9tL0RPTUV4Y2VwdGlvbi5oCiAgICAgZG9tL0RPTUhpZ2hSZXNUaW1l
U3RhbXAuaAogICAgIGRvbS9ET01JbXBsZW1lbnRhdGlvbi5oCisgICAgZG9tL0RPTUxpdmVQcm9w
ZXJ0eS5oCisgICAgZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKICAgICBkb20vRE9NUGFz
dGVBY2Nlc3MuaAogICAgIGRvbS9ET01SZWN0LmgKICAgICBkb20vRE9NUmVjdEluaXQuaApAQCAt
MTM4OSw4ICsxMzkxLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwog
CiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCiAgICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJp
bWl0aXZlTGlzdC5oCi0gICAgc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAotICAgIHN2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXIuaAogICAgIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5VHJhaXRzLmgKIAogICAgIHRlc3RpbmcvTW9ja0dhbWVwYWQuaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExNzYxYzY3YjRj
Li44YmEyMGFkMTY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMjA4NSwxMiArMjA4NSwxMiBAQAogCQk3MUVGQ0VEQzIwMkIz
OEE5MDBEN0M0MTEgLyogQW5pbWF0aW9uRWZmZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MUVGQ0VENzIwMkIzODhEMDBEN0M0MTEgLyogQW5pbWF0
aW9uRWZmZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzIxNDQzMzEyMjNFQzg1NDAwRjEyRkY3IC8qIChudWxsKSBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk3MjE0NDMzMjIyM0VDODVGMDBGMTJGRjcgLyogKG51bGwpIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07Ci0JCTcyMTQ0MzMzMjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQcm9wZXJ0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTVFRTUzNjMy
MjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8qIFNW
R1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDU1RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzIyODNGMEUy
MzBCMjY4QzAwRjVEODI4IC8qIEltYWdlUGFpbnRpbmdPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MkMxOEEzRjIzMEIwNEI3MDA2ODQ3Qzcg
LyogSW1hZ2VQYWludGluZ09wdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3MjRFRDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVu
ZE1pbk1heC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NzI0RUQzMzAxQTNBOEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJ
NzI0RUU1NTAxREM4MEQ3RjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZG
QiAvKiBBY3Rpdml0eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVD
aGFuZ2VPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNzI0RUU1NEYxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNl
cnZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJ
CTcyODMxNUMxMjM0NDQwMTUwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyODMxNUMwMjM0NDIyOTIwMDA3
RDI3NyAvKiBET01MaXZlUHJvcGVydHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3MjgzMTVDMjIzNDQ0MDIyMDAwN0QyNzcgLyogRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDcyODMxNUJFMjM0NDIyOTEwMDA3RDI3NyAvKiBET01MaXZlUHJvcGVydHlPYnNlcnZl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTc1
NTNDRkU4MTA4RjQ3M0YwMEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1NTNDRkU2MTA4RjQ3M0Yw
MEVBMjgxRSAvKiBUaW1lbGluZVJlY29yZEZhY3RvcnkuaCAqLzsgfTsKIAkJNzU3OTNFODQwRDBD
RTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNzU3OTNFODEwRDBDRTBCMzAwN0ZDMEFDIC8qIE1lc3NhZ2VF
dmVudC5oICovOyB9OwogCQk3NTc5M0VDOTBEMENFNzJEMDA3RkMwQUMgLyogSlNNZXNzYWdlRXZl
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDc1Nzkz
RUM3MEQwQ0U3MkQwMDdGQzBBQyAvKiBKU01lc3NhZ2VFdmVudC5oICovOyB9OwpAQCAtODU2NSwx
MCArODU2NSw4IEBACiAJCTU1RUU1MzVEMjIzQjJBMEQwMEZCQTk0NCAvKiBTVkdBbmltYXRlZFBy
b3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBTVkdBbmltYXRlZFByb3BlcnR5UGFpckFjY2Vzc29ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1NUVFNTM1RTIyM0IyQTBFMDBGQkE5NDQgLyogU1ZHQW5pbWF0aW9uQWRk
aXRpdmVWYWx1ZUZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNW
R0FuaW1hdGlvbkFkZGl0aXZlVmFsdWVGdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1NUVFNTM1RjIyM0IyQTBGMDBGQkE5NDQgLyogU1ZHQW5pbWF0ZWRQcm9wZXJ0eVBh
aXJBbmltYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRl
ZFByb3BlcnR5UGFpckFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTU1
RUU1MzYwMjIzQjJBMjEwMEZCQTk0NCAvKiBTVkdQcm9wZXJ0eU93bmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR1Byb3BlcnR5T3duZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjEyMjNCMkEyMjAwRkJBOTQ0IC8qIFNWR0F0dHJpYnV0ZUFu
aW1hdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0F0dHJp
YnV0ZUFuaW1hdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjIy
MjNCMkEyMzAwRkJBOTQ0IC8qIFNWR0FuaW1hdGVkUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1NUVFNTM2MzIyM0IyQTI0MDBGQkE5NDQgLyogU1ZHUHJvcGVydHkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHUHJvcGVydHkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTVFRTUzNjQyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR0F0dHJp
YnV0ZUFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0F0dHJp
YnV0ZUFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1RkE3RkZBMjEx
MEVDRDcwMDVBRUZFNyAvKiBTVkdab29tQW5kUGFuVHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkda
b29tQW5kUGFuVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NzA0NDA1NzFF
NTM4NTE2MDAzNTY2MDEgLyogQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQk1hYy5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCTWFjLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk0NDksNiArOTQ0Nyw4IEBACiAJCTcy
N0FGRUQxMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEVYVHNSR0IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3MjdBRkVEMjFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyN0FGRUQzMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdCLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBFWFRzUkdCLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzI4
MzE1QkUyMzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyODMxNUMwMjM0NDIyOTIwMDA3RDI3NyAvKiBE
T01MaXZlUHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTGl2
ZVByb3BlcnR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyQzE4QTNGMjMwQjA0
QjcwMDY4NDdDNyAvKiBJbWFnZVBhaW50aW5nT3B0aW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbWFn
ZVBhaW50aW5nT3B0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkU0MTc2
MTFBMkU4RDJGMDA0QzU2MkEgLyogSlNFWFRzUkdCLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTRVhUc1JHQi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTcyRTQxNzYyMUEyRThEMkYwMDRDNTYyQSAvKiBKU0VYVHNSR0IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNFWFRzUkdCLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xNjE2MywxMyArMTYxNjMsMTEgQEAKIAkJCQk1NURDQzUyNTIyNDA3NDlFMDBDMjZF
MzIgLyogU1ZHUHJpbWl0aXZlTGlzdC5oICovLAogCQkJCTcyNjZGMDE1MjI0MUMwOTgwMDgzMzk3
NSAvKiBTVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmggKi8sCiAJCQkJNzI2NkYwMTQyMjQx
QkZCMjAwODMzOTc1IC8qIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3JJbXBsLmggKi8sCi0J
CQkJNTVFRTUzNjMyMjNCMkEyNDAwRkJBOTQ0IC8qIFNWR1Byb3BlcnR5LmggKi8sCiAJCQkJNTVE
Q0M1MjYyMjQwNzRGQTAwQzI2RTMyIC8qIFNWR1Byb3BlcnR5QWNjZXNzb3IuaCAqLywKIAkJCQk1
NURDQzUyNzIyNDA3NTBCMDBDMjZFMzIgLyogU1ZHUHJvcGVydHlBY2Nlc3NvckltcGwuaCAqLywK
IAkJCQk3MjY2RjAxNjIyNDFDMEZFMDA4MzM5NzUgLyogU1ZHUHJvcGVydHlBbmltYXRvci5oICov
LAogCQkJCTcyNjZGMDEzMjI0MUJDRTIwMDgzMzk3NSAvKiBTVkdQcm9wZXJ0eUFuaW1hdG9yRmFj
dG9yeS5oICovLAogCQkJCTcyNjZGMDI3MjI0MzEwOTIwMDgzMzk3NSAvKiBTVkdQcm9wZXJ0eUxp
c3QuaCAqLywKLQkJCQk1NUVFNTM2MDIyM0IyQTIxMDBGQkE5NDQgLyogU1ZHUHJvcGVydHlPd25l
ci5oICovLAogCQkJCTU1QkUwMjVDMjIzQjI5QzMwMDMyRjA4QSAvKiBTVkdQcm9wZXJ0eU93bmVy
UmVnaXN0cnkuaCAqLywKIAkJCQk1NUJFMDI1NzIyM0IyOUMwMDAzMkYwOEEgLyogU1ZHUHJvcGVy
dHlSZWdpc3RyeS5oICovLAogCQkJCTA4OEEwRTAzMTI2RUYxREIwMDk3OEY3QSAvKiBTVkdQcm9w
ZXJ0eVRyYWl0cy5oICovLApAQCAtMjc1NTksNiArMjc1NTcsOCBAQAogCQkJCUE4MTg1RjM2MDk3
NjU3NjUwMDU4MjZEOSAvKiBET01JbXBsZW1lbnRhdGlvbi5jcHAgKi8sCiAJCQkJQTgxODVGMzMw
OTc2NTc2NTAwNTgyNkQ5IC8qIERPTUltcGxlbWVudGF0aW9uLmggKi8sCiAJCQkJOTNFRUMxRTkw
OUMyODc3NzAwQzUxNUQxIC8qIERPTUltcGxlbWVudGF0aW9uLmlkbCAqLywKKwkJCQk3MjgzMTVD
MDIzNDQyMjkyMDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5LmggKi8sCisJCQkJNzI4MzE1QkUy
MzQ0MjI5MTAwMDdEMjc3IC8qIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmggKi8sCiAJCQkJRjRC
NDIyQzIyMjBDMDAwMDAwOUUxRTdEIC8qIERPTVBhc3RlQWNjZXNzLmggKi8sCiAJCQkJMEY0OTY2
OTkxREI0MDhDMTAwQTI3NEJCIC8qIERPTVBvaW50LmggKi8sCiAJCQkJMEY0OTY2OUExREI0MDhD
MTAwQTI3NEJCIC8qIERPTVBvaW50LmlkbCAqLywKQEAgLTI5MTUzLDYgKzI5MTUzLDggQEAKIAkJ
CQlFM0E3NzY2NzFEQzg1RDI4MDBCNjkwRDggLyogRE9NSklUSURMQ29udmVydC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTNBNzc2NjgxREM4NUQyODAwQjY5MEQ4IC8qIERPTUpJVElETFR5cGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUUzNTgwMkI2MURDODQzNUQwMEE5NzczQyAvKiBET01KSVRJRExU
eXBlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjgzMTVDMTIzNDQ0MDE1MDAwN0QyNzcg
LyogRE9NTGl2ZVByb3BlcnR5LmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjgzMTVDMjIzNDQ0MDIy
MDAwN0QyNzcgLyogRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzNkFDRUNBMUVDQTk1NjkwMDRCRDAxMiAvKiBET01NYXRyaXguaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDQkJCQ0M3MUY1NjA1ODEwMDVFRkFBQyAvKiBET01NYXRyaXgyREluaXQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTgzNkFDRUNCMUVDQTk1NkQwMDRCRDAxMiAvKiBET01NYXRyaXhJbml0Lmgg
aW4gSGVhZGVycyAqLywKQEAgLTMxOTc2LDggKzMxOTc4LDYgQEAKIAkJCQlCMjIyN0E5NDBEMDBC
RjIyMDA3MUI3ODIgLyogU1ZHUG9seWxpbmVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MjIyN0E5NzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNTVEQ0M1MjgyMjQwN0IyMDAwQzI2RTMyIC8qIFNWR1ByaW1pdGl2ZUxp
c3QuaCBpbiBIZWFkZXJzICovLAotCQkJCTcyMTQ0MzMzMjIzRUM4QjAwMEYxMkZGNyAvKiBTVkdQ
cm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNzIxNDQzMzQyMjNFQzkxNjAwRjEyRkY3IC8q
IFNWR1Byb3BlcnR5T3duZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4OEEwRTBDMTI2RUYxREIw
MDk3OEY3QSAvKiBTVkdQcm9wZXJ0eVRyYWl0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjdB
OUEwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMDhFREUxOUYxMkE1MEI4RTAwQjk1Nzk3IC8qIFNWR1JlY3QuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eS5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eS5oCmluZGV4IDhiMTM3ODkxNzkx
Li4zODg4OGQzN2Q2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9w
ZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZlUHJvcGVydHkuaApAQCAtMSAr
MSw4NSBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KIAorI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJET01MaXZlUHJvcGVydHlPYnNlcnZlci5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgRE9NTGl2ZVByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8RE9NTGl2ZVByb3Bl
cnR5PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RE9NTGl2ZVByb3BlcnR5KCkgPSBkZWZhdWx0
OworCisgICAgLy8gTWFuYWdpbmcgdGhlIHJlbGF0aW9uc2hpcCB3aXRoIHRoZSBvYnNlcnZlci4K
KyAgICBib29sIGlzQXR0YWNoZWQoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVyOyB9CisgICAg
RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyKCkgY29uc3QgeyByZXR1cm4gbV9vYnNl
cnZlcjsgfQorCisgICAgdm9pZCBhdHRhY2goRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2Vy
dmVyKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFtX29ic2VydmVyKTsKKyAgICAgICAgbV9vYnNl
cnZlciA9IG9ic2VydmVyOworICAgIH0KKworICAgIHZvaWQgZGV0YWNoKCkKKyAgICB7CisgICAg
ICAgIG1fb2JzZXJ2ZXIgPSBudWxscHRyOworICAgIH0KKworICAgIC8vIFRyYXZlcnNlIHRoZSBv
YnNlcnZlcnMgY2hhaW4gdGlsbCBhbiBFbGVtZW50IG9ic2VydmVyIGlzIHJlYWNoZWQuCisgICAg
Y29uc3QgU1ZHRWxlbWVudCogc3ZnQ29udGV4dEVsZW1lbnQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgaWYgKCFtX29ic2VydmVyKQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IHJldHVybiBtX29ic2VydmVyLT5wcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50KCk7CisgICAgfQor
CisgICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX29i
c2VydmVyICYmIG1fb2JzZXJ2ZXItPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7CisgICAgfQor
CisgICAgLy8gQ29tbWl0IHRoZSBsaXZlIHByb3BlcnR5IGNoYW5nZXMgdmlhIHRoZSBvYnNlcnZl
cnMgY2hhaW4uCisgICAgdm9pZCBjb21taXRDaGFuZ2UoKQorICAgIHsKKyAgICAgICAgaWYgKCFt
X29ic2VydmVyKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX29ic2VydmVyLT5jb21t
aXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFN0cmluZyB2YWx1
ZUFzU3RyaW5nKCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsgfQorCitwcm90ZWN0ZWQ6
CisgICAgRE9NTGl2ZVByb3BlcnR5KERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciA9
IG51bGxwdHIpCisgICAgICAgIDogbV9vYnNlcnZlcihvYnNlcnZlcikKKyAgICB7CisgICAgfQor
CisgICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG1fb2JzZXJ2ZXIgeyBudWxscHRyIH07Cit9
OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01MaXZl
UHJvcGVydHlPYnNlcnZlci5oCmluZGV4IDhiMTM3ODkxNzkxLi5kMGE5MDdhYzE2NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUxpdmVQcm9wZXJ0eU9ic2VydmVyLmgKQEAgLTEgKzEsNjUg
QEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyovCiAKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK2NsYXNzIERPTUxpdmVQcm9wZXJ0eTsKK2NsYXNzIFNWR0VsZW1lbnQ7CisKK2Ns
YXNzIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5ET01M
aXZlUHJvcGVydHlPYnNlcnZlcigpID0gZGVmYXVsdDsKKworICAgIC8vIFRoZSBvYnNlcnZlciBp
dHNlbGYgbWF5IGhhdmUgYW4gb2JzZXJ2ZXIuCisgICAgdmlydHVhbCBET01MaXZlUHJvcGVydHlP
YnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisKKyAgICAvLyBU
cmF2ZXJzZSB0aGUgb2JzZXJ2ZXJzIGNoYWluIHRpbGwgYW4gRWxlbWVudCBvYnNlcnZlciBpcyBy
ZWFjaGVkLgorICAgIHZpcnR1YWwgY29uc3QgU1ZHRWxlbWVudCogcHJvcGVydHlTVkdDb250ZXh0
RWxlbWVudCgpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIG9ic2VydmVyKCktPnByb3BlcnR5
U1ZHQ29udGV4dEVsZW1lbnQoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNQcm9wZXJ0
eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gb2JzZXJ2ZXIoKSAmJiBvYnNlcnZlcigpLT5pc1Byb3BlcnR5UmVhZE9u
bHkocHJvcGVydHkpOworICAgIH0KKworICAgIC8vIENvbW1pdCB0aGUgbGl2ZSBwcm9wZXJ0eSBj
aGFuZ2VzIHZpYSB0aGUgb2JzZXJ2ZXJzIGNoYWluLgorICAgIHZpcnR1YWwgdm9pZCBjb21taXRQ
cm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5KQorICAgIHsKKyAgICAgICAg
aWYgKCFvYnNlcnZlcigpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBvYnNlcnZlcigp
LT5jb21taXRQcm9wZXJ0eUNoYW5nZShwcm9wZXJ0eSk7CisgICAgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5nbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmdsZS5oCmluZGV4IGZkYTc1OWFiNTc2Li4wNGIyMTZm
YTc2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0FuZ2xlLmgKQEAgLTQxLDkgKzQxLDkgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdBbmdsZSh2YWx1ZSkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHQW5nbGU+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgY29u
c3QgU1ZHQW5nbGVWYWx1ZSYgdmFsdWUgPSB7IH0pCisgICAgc3RhdGljIFJlZjxTVkdBbmdsZT4g
Y3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29uc3QgU1ZHQW5nbGVW
YWx1ZSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
VkdBbmdsZShvd25lciwgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZH
QW5nbGUob2JzZXJ2ZXIsIHZhbHVlKSk7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
VD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAppbmRleCAxOGJkNWZiNTE4MS4uMjA0YzIyYmIz
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5jcHAKQEAgLTU2NSw3ICs1NjUsNyBAQCB2b2lk
IFNWR0VsZW1lbnQ6OnN5bmNocm9uaXplQWxsQW5pbWF0ZWRTVkdBdHRyaWJ1dGUoU1ZHRWxlbWVu
dCYgc3ZnRWxlbWVudCkKICAgICBzdmdFbGVtZW50LnN5bmNocm9uaXplQWxsQXR0cmlidXRlcygp
OwogfQogCi12b2lkIFNWR0VsZW1lbnQ6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5
KiBwcm9wZXJ0eSkKK3ZvaWQgU1ZHRWxlbWVudDo6Y29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2
ZVByb3BlcnR5KiBwcm9wZXJ0eSkKIHsKICAgICBRdWFsaWZpZWROYW1lIGF0dHJpYnV0ZU5hbWUg
PSBwcm9wZXJ0eVJlZ2lzdHJ5KCkucHJvcGVydHlBdHRyaWJ1dGVOYW1lKCpwcm9wZXJ0eSk7CiAg
ICAgQVNTRVJUKGF0dHJpYnV0ZU5hbWUgIT0gbnVsbFFOYW1lKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmgKaW5kZXggNTY1ZDk4MjliYjkuLmQ5MDg3NmFmZmI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGVt
ZW50LmgKQEAgLTQ3LDcgKzQ3LDcgQEAgY2xhc3MgU1ZHVXNlRWxlbWVudDsKIAogdm9pZCBtYXBB
dHRyaWJ1dGVUb0NTU1Byb3BlcnR5KEhhc2hNYXA8QXRvbVN0cmluZ0ltcGwqLCBDU1NQcm9wZXJ0
eUlEPiogcHJvcGVydHlOYW1lVG9JZE1hcCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
OwogCi1jbGFzcyBTVkdFbGVtZW50IDogcHVibGljIFN0eWxlZEVsZW1lbnQsIHB1YmxpYyBTVkdM
YW5nU3BhY2UsIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0VsZW1lbnQgOiBw
dWJsaWMgU3R5bGVkRWxlbWVudCwgcHVibGljIFNWR0xhbmdTcGFjZSwgcHVibGljIERPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFNWR0VsZW1lbnQp
OwogcHVibGljOgogICAgIGJvb2wgaXNPdXRlcm1vc3RTVkdTVkdFbGVtZW50KCkgY29uc3Q7CkBA
IC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jaHJvbml6ZUFsbEF0dHJp
YnV0ZXMoKTsKICAgICBzdGF0aWMgdm9pZCBzeW5jaHJvbml6ZUFsbEFuaW1hdGVkU1ZHQXR0cmli
dXRlKFNWR0VsZW1lbnQmKTsKIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJv
cGVydHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQ
cm9wZXJ0eSopIG92ZXJyaWRlOwogICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHQW5p
bWF0ZWRQcm9wZXJ0eSYpOwogCi0gICAgY29uc3QgU1ZHRWxlbWVudCogcHJvcGVydHlDb250ZXh0
RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRoaXM7IH0KKyAgICBjb25zdCBTVkdF
bGVtZW50KiBwcm9wZXJ0eVNWR0NvbnRleHRFbGVtZW50KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gdGhpczsgfQogICAgIFNWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5JiBwcm9wZXJ0eUFuaW1h
dG9yRmFjdG9yeSgpIHsgcmV0dXJuICptX3Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5OyB9CiAgICAg
UmVmUHRyPFNWR0F0dHJpYnV0ZUFuaW1hdG9yPiBjcmVhdGVBbmltYXRvcihjb25zdCBRdWFsaWZp
ZWROYW1lJiwgQW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9v
bCBpc0FkZGl0aXZlKTsKICAgICB2b2lkIGFuaW1hdG9yV2lsbEJlRGVsZXRlZChjb25zdCBRdWFs
aWZpZWROYW1lJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKaW5kZXggZDkyZmE0Mzg2NDUuLjYwYTVi
NTZlNTNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xlbmd0aC5oCkBAIC02Miw5ICs2Miw5IEBAIHB1YmxpYzoK
ICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTGVuZ3RoKHZhbHVlKSk7CiAgICAgfQog
Ci0gICAgc3RhdGljIFJlZjxTVkdMZW5ndGg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25l
ciwgY29uc3QgU1ZHTGVuZ3RoVmFsdWUmIHZhbHVlID0geyB9KQorICAgIHN0YXRpYyBSZWY8U1ZH
TGVuZ3RoPiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBT
VkdMZW5ndGhWYWx1ZSYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdMZW5ndGgob3duZXIsIHZhbHVlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR0xlbmd0aChvYnNlcnZlciwgdmFsdWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBUPgpAQCAtODcsNyArODcsNyBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25P
cjxmbG9hdD4gdmFsdWVGb3JCaW5kaW5ncygpCiAgICAgewotICAgICAgICByZXR1cm4gbV92YWx1
ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRleHQgeyBjb250ZXh0RWxlbWVudCgpIH0p
OworICAgICAgICByZXR1cm4gbV92YWx1ZS52YWx1ZUZvckJpbmRpbmdzKFNWR0xlbmd0aENvbnRl
eHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0pOwogICAgIH0KIAogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFZhbHVlRm9yQmluZGluZ3MoZmxvYXQgdmFsdWUpCkBAIC05NSw3ICs5NSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGlzUmVhZE9ubHkoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb01vZGlmaWNhdGlvbkFsbG93ZWRFcnJvciB9OwogCi0gICAgICAgIGF1dG8gcmVz
dWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdMZW5ndGhDb250ZXh0IHsgY29udGV4dEVsZW1lbnQo
KSB9LCB2YWx1ZSk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV92YWx1ZS5zZXRWYWx1ZShTVkdM
ZW5ndGhDb250ZXh0IHsgc3ZnQ29udGV4dEVsZW1lbnQoKSB9LCB2YWx1ZSk7CiAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAg
ICAgICAKQEAgLTE1Miw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAgIGlmICh1bml0VHlwZSA9
PSBTVkdfTEVOR1RIVFlQRV9VTktOT1dOIHx8IHVuaXRUeXBlID4gU1ZHX0xFTkdUSFRZUEVfUEMp
CiAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IgfTsKIAot
ICAgICAgICBhdXRvIHJlc3VsdCA9IG1fdmFsdWUuY29udmVydFRvU3BlY2lmaWVkVW5pdHMoU1ZH
TGVuZ3RoQ29udGV4dCB7IGNvbnRleHRFbGVtZW50KCkgfSwgc3RhdGljX2Nhc3Q8U1ZHTGVuZ3Ro
VHlwZT4odW5pdFR5cGUpKTsKKyAgICAgICAgYXV0byByZXN1bHQgPSBtX3ZhbHVlLmNvbnZlcnRU
b1NwZWNpZmllZFVuaXRzKFNWR0xlbmd0aENvbnRleHQgeyBzdmdDb250ZXh0RWxlbWVudCgpIH0s
IHN0YXRpY19jYXN0PFNWR0xlbmd0aFR5cGU+KHVuaXRUeXBlKSk7CiAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGVuZ3RoTGlzdC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xlbmd0aExpc3QuaAppbmRleCAxN2VkMzhjZTdiMS4uMzJkNTg3NGQyOTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMZW5ndGhMaXN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xlbmd0aExpc3QuaApAQCAtNDAsOSArNDAsOSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR0xlbmd0aExpc3QobGVuZ3RoTW9kZSkpOwogICAg
IH0KIAotICAgIHN0YXRpYyBSZWY8U1ZHTGVuZ3RoTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3du
ZXIqIG93bmVyLCBTVkdMZW5ndGhNb2RlIGxlbmd0aE1vZGUpCisgICAgc3RhdGljIFJlZjxTVkdM
ZW5ndGhMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBTVkdM
ZW5ndGhNb2RlIGxlbmd0aE1vZGUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBTVkdMZW5ndGhMaXN0KG93bmVyLCBsZW5ndGhNb2RlKSk7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNWR0xlbmd0aExpc3Qob2JzZXJ2ZXIsIGxlbmd0aE1vZGUpKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgUmVmPFNWR0xlbmd0aExpc3Q+IGNyZWF0ZShjb25zdCBTVkdMZW5ndGhMaXN0
JiBvdGhlcikKQEAgLTk4LDggKzk4LDggQEAgcHJpdmF0ZToKICAgICB7CiAgICAgfQogCi0gICAg
U1ZHTGVuZ3RoTGlzdChTVkdQcm9wZXJ0eU93bmVyKiBvd25lciwgU1ZHTGVuZ3RoTW9kZSBsZW5n
dGhNb2RlKQotICAgICAgICA6IEJhc2Uob3duZXIpCisgICAgU1ZHTGVuZ3RoTGlzdChET01MaXZl
UHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIFNWR0xlbmd0aE1vZGUgbGVuZ3RoTW9kZSkKKyAg
ICAgICAgOiBCYXNlKG9ic2VydmVyKQogICAgICAgICAsIG1fbGVuZ3RoTW9kZShsZW5ndGhNb2Rl
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKaW5kZXggZDkwMTVjZGU1M2IuLmYw
MDM4YzRjMDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWF0cml4LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hdHJpeC5oCkBAIC00Miw5ICs0Miw5IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTWF0cml4KHZhbHVlKSk7CiAgICAg
fQogCi0gICAgc3RhdGljIFJlZjxTVkdNYXRyaXg+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVm
PFNWR01hdHJpeD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlciwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiB2YWx1ZSA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNWR01hdHJpeChvd25lciwgdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHTWF0cml4KG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVt
YmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgKaW5kZXggOTk4NmJmZGYzNjcu
LjU5OGEwZjU5NjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlci5oCkBAIC00MCw5ICs0MCw5IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyKHZhbHVlKSk7CiAg
ICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdOdW1iZXI+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciwgZmxvYXQgdmFsdWUgPSAwKQorICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyPiBjcmVh
dGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBmbG9hdCB2YWx1ZSA9IDApCiAg
ICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXIob3duZXIsIHZhbHVl
KSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlcihvYnNlcnZlciwgdmFs
dWUpKTsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR051bWJlckxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdO
dW1iZXJMaXN0LmgKaW5kZXggNTUzOTRhY2Y4OGEuLjY4MWI0ZGNlZjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTnVtYmVyTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdOdW1iZXJMaXN0LmgKQEAgLTQwLDkgKzQwLDkgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBTVkdOdW1iZXJMaXN0KCkpOwogICAgIH0KIAotICAgIHN0YXRpYyBS
ZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKQorICAgIHN0
YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBv
YnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR051bWJlckxp
c3Qob3duZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHTnVtYmVyTGlzdChv
YnNlcnZlcikpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8U1ZHTnVtYmVyTGlzdD4gY3JlYXRl
KGNvbnN0IFNWR051bWJlckxpc3QmIG90aGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWcuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgKaW5kZXgg
ZDYyZmU0ZjgzNGMuLmJjYmFmZGNlMjc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aFNlZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnLmgKQEAgLTIx
LDcgKzIxLDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgor
I2luY2x1ZGUgIkRPTUxpdmVQcm9wZXJ0eS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00OSw3ICs0OSw3IEBAIGVudW0gU1ZHUGF0
aFNlZ1R5cGUgewogICAgIFBhdGhTZWdDdXJ2ZVRvUXVhZHJhdGljU21vb3RoUmVsID0gMTkKIH07
CiAKLWNsYXNzIFNWR1BhdGhTZWcgOiBwdWJsaWMgU1ZHUHJvcGVydHkgeworY2xhc3MgU1ZHUGF0
aFNlZyA6IHB1YmxpYyBET01MaXZlUHJvcGVydHkgewogcHVibGljOgogICAgIHZpcnR1YWwgflNW
R1BhdGhTZWcoKSA9IGRlZmF1bHQ7CiAKQEAgLTgyLDcgKzgyLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgPSAwOwogCiBwcm90ZWN0ZWQ6Ci0g
ICAgdXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5OworICAgIHVzaW5nIERPTUxpdmVQcm9w
ZXJ0eTo6RE9NTGl2ZVByb3BlcnR5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdMaXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHUGF0aFNlZ0xpc3QuaAppbmRleCBlNGI4MmFjZjIwOS4uZTY2ZjhhMGE3YjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnTGlzdC5oCkBAIC0zNiw5ICszNiw5IEBAIGNsYXNz
IFNWR1BhdGhTZWdMaXN0IGZpbmFsIDogcHVibGljIFNWR1Byb3BlcnR5TGlzdDxTVkdQYXRoU2Vn
PiB7CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZH
UGF0aFNlZ0xpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lcikKKyAgICBzdGF0aWMg
UmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUoRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIqIG9ic2Vy
dmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3Qo
b3duZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0xpc3Qob2Jz
ZXJ2ZXIpKTsKICAgICB9CiAKICAgICBzdGF0aWMgUmVmPFNWR1BhdGhTZWdMaXN0PiBjcmVhdGUo
Y29uc3QgU1ZHUGF0aFNlZ0xpc3QmIG90aGVyKQpAQCAtMTYwLDcgKzE2MCw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBTVkdQYXRoU2VnTGlzdChjb25zdCBTVkdQYXRoU2VnTGlzdCYgb3Ro
ZXIpCi0gICAgICAgIDogQmFzZShvdGhlci5vd25lcigpKQorICAgICAgICA6IEJhc2Uob3RoZXIu
b2JzZXJ2ZXIoKSkKICAgICAgICAgLCBtX3BhdGhCeXRlU3RyZWFtKG90aGVyLnBhdGhCeXRlU3Ry
ZWFtKCkpCiAgICAgewogICAgIH0KQEAgLTE3Miw3ICsxNzIsNyBAQCBwcml2YXRlOgogICAgIH0K
IAogICAgIC8vIENhbGxlZCB3aGVuIGNoYW5naW5nIGFuIGl0ZW0gaW4gdGhlIGxpc3QuCi0gICAg
dm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQcm9wZXJ0eSogcHJvcGVydHkpIG92ZXJyaWRl
CisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZlUHJvcGVydHkqIHByb3BlcnR5
KSBvdmVycmlkZQogICAgIHsKICAgICAgICAgaXRlbXNXaWxsQ2hhbmdlKCk7CiAgICAgICAgIEJh
c2U6OmNvbW1pdFByb3BlcnR5Q2hhbmdlKHByb3BlcnR5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2ludExp
c3QuaAppbmRleCBlYjA0MzczNDYyNC4uODhhMTg5MzM4NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdQb2ludExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9p
bnRMaXN0LmgKQEAgLTQwLDkgKzQwLDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBTVkdQb2ludExpc3QoKSk7CiAgICAgfQogCi0gICAgc3RhdGljIFJlZjxTVkdQb2lu
dExpc3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25lcikKKyAgICBzdGF0aWMgUmVmPFNW
R1BvaW50TGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BvaW50TGlzdChvd25lcikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQb2ludExpc3Qob2JzZXJ2ZXIpKTsKICAg
ICB9CiAKICAgICBzdGF0aWMgUmVmPFNWR1BvaW50TGlzdD4gY3JlYXRlKGNvbnN0IFNWR1BvaW50
TGlzdCYgb3RoZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUHJlc2VydmVB
c3BlY3RSYXRpby5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8u
aAppbmRleCA1NTQyZmE5MjFkYS4uODM1NDkzZTc5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1ByZXNlcnZlQXNwZWN0UmF0aW8uaApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZHUHJlc2VydmVBc3Bl
Y3RSYXRpb1ZhbAogICAgIHVzaW5nIEJhc2U6Om1fdmFsdWU7CiAKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBv
d25lciwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiB2YWx1ZSA9IHsgfSkKKyAg
ICBzdGF0aWMgUmVmPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+IGNyZWF0ZShET01MaXZlUHJvcGVy
dHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYg
dmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvKG93bmVyLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvKG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAog
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmVjdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaAppbmRleCA4NDIxMjlmZjE2
Ni4uYmFlNzdiZmVmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3QuaApAQCAtMzYsOSArMzYsOSBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1JlY3QodmFsdWUpKTsKICAgICB9
CiAKLSAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+IGNyZWF0ZShTVkdQcm9wZXJ0eU93bmVyKiBvd25l
ciwgY29uc3QgRmxvYXRSZWN0JiB2YWx1ZSA9IHsgfSkKKyAgICBzdGF0aWMgUmVmPFNWR1JlY3Q+
IGNyZWF0ZShET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIsIGNvbnN0IEZsb2F0UmVj
dCYgdmFsdWUgPSB7IH0pCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdS
ZWN0KG93bmVyLCB2YWx1ZSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdSZWN0
KG9ic2VydmVyLCB2YWx1ZSkpOwogICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RyaW5nTGlzdC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaAppbmRleCAzYjM3NjVjNWQ5ZS4uMTExZjA2N2U2OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHJpbmdMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1N0cmluZ0xpc3QuaApAQCAtMzcsOSArMzcsOSBAQCBjbGFzcyBT
VkdTdHJpbmdMaXN0IGZpbmFsIDogcHVibGljIFNWR1ByaW1pdGl2ZUxpc3Q8U3RyaW5nPiB7CiAg
ICAgdXNpbmcgQmFzZTo6bV9pdGVtczsKIAogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U1ZHU3Ry
aW5nTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKQorICAgIHN0YXRpYyBSZWY8
U1ZHU3RyaW5nTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1N0cmluZ0xpc3Qob3duZXIp
KTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHU3RyaW5nTGlzdChvYnNlcnZlcikp
OwogICAgIH0KIAogICAgIHZvaWQgcmVzZXQoY29uc3QgU3RyaW5nJiBzdHJpbmcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVHJhbnNmb3JtLmgKaW5kZXggNmZmYmJlMzUwN2IuLjMzZGI2OGY0MjlhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RyYW5zZm9ybS5oCkBAIC0zMSw3ICszMSw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU1ZHVHJhbnNmb3JtIDogcHVibGljIFNWR1ZhbHVlUHJvcGVydHk8U1ZH
VHJhbnNmb3JtVmFsdWU+LCBwdWJsaWMgU1ZHUHJvcGVydHlPd25lciB7CitjbGFzcyBTVkdUcmFu
c2Zvcm0gOiBwdWJsaWMgU1ZHVmFsdWVQcm9wZXJ0eTxTVkdUcmFuc2Zvcm1WYWx1ZT4sIHB1Ymxp
YyBET01MaXZlUHJvcGVydHlPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTVkdU
cmFuc2Zvcm0+IGNyZWF0ZShTVkdUcmFuc2Zvcm1WYWx1ZTo6U1ZHVHJhbnNmb3JtVHlwZSB0eXBl
KQogICAgIHsKQEAgLTEzOCwxMyArMTM4LDEzIEBAIHByaXZhdGU6CiAgICAgewogICAgIH0KIAot
ICAgIFNWR1Byb3BlcnR5T3duZXIqIG93bmVyKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9v
d25lcjsgfQorICAgIERPTUxpdmVQcm9wZXJ0eU9ic2VydmVyKiBvYnNlcnZlcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1fb2JzZXJ2ZXI7IH0KIAotICAgIHZvaWQgY29tbWl0UHJvcGVydHlD
aGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZvaWQgY29tbWl0UHJv
cGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUKICAgICB7CiAg
ICAgICAgIEFTU0VSVF9VTlVTRUQocHJvcGVydHksIHByb3BlcnR5ID09IG1fdmFsdWUubWF0cml4
KCkucHRyKCkpOwotICAgICAgICBpZiAob3duZXIoKSkKLSAgICAgICAgICAgIG93bmVyKCktPmNv
bW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOworICAgICAgICBpZiAob2JzZXJ2ZXIoKSkKKyAgICAg
ICAgICAgIG9ic2VydmVyKCktPmNvbW1pdFByb3BlcnR5Q2hhbmdlKHRoaXMpOwogICAgICAgICBt
X3ZhbHVlLm1hdHJpeERpZENoYW5nZSgpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RyYW5zZm9ybUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUcmFu
c2Zvcm1MaXN0LmgKaW5kZXggOTY3MTNmOGJjNGEuLmU2MDQ1ZWQyNTYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVHJhbnNmb3JtTGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdUcmFuc2Zvcm1MaXN0LmgKQEAgLTM4LDkgKzM4LDkgQEAgcHVibGljOgogICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdUcmFuc2Zvcm1MaXN0KCkpOwogICAgIH0KIAotICAg
IHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKFNWR1Byb3BlcnR5T3duZXIqIG93
bmVyKQorICAgIHN0YXRpYyBSZWY8U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKERPTUxpdmVQcm9w
ZXJ0eU9ic2VydmVyKiBvYnNlcnZlcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IFNWR1RyYW5zZm9ybUxpc3Qob3duZXIpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU1ZHVHJhbnNmb3JtTGlzdChvYnNlcnZlcikpOwogICAgIH0KIAogICAgIHN0YXRpYyBSZWY8
U1ZHVHJhbnNmb3JtTGlzdD4gY3JlYXRlKGNvbnN0IFNWR1RyYW5zZm9ybUxpc3QmIG90aGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9w
ZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3Bl
cnR5LmNwcAppbmRleCBlYzJmM2E0ODdmOC4uZWRhNWM4NGMzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuY3BwCkBAIC0z
MCwxMiArMzAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1TVkdQcm9wZXJ0eU93bmVy
KiBTVkdBbmltYXRlZFByb3BlcnR5Ojpvd25lcigpIGNvbnN0CitET01MaXZlUHJvcGVydHlPYnNl
cnZlciogU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6b2JzZXJ2ZXIoKSBjb25zdAogewogICAgIHJldHVy
biBtX2NvbnRleHRFbGVtZW50OwogfQogCi12b2lkIFNWR0FuaW1hdGVkUHJvcGVydHk6OmNvbW1p
dFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KikKK3ZvaWQgU1ZHQW5pbWF0ZWRQcm9wZXJ0eTo6
Y29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KikKIHsKICAgICBpZiAoIW1fY29u
dGV4dEVsZW1lbnQpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHkuaAppbmRleCAyYTJhNGI3NjI4My4uYTEw
NDFlNjA1MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkUHJvcGVydHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5LmgKQEAgLTI1LDcgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNp
bmNsdWRlICJTVkdQcm9wZXJ0eU93bmVyLmgiCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5T2Jz
ZXJ2ZXIuaCIKICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtMzQsNyArMzQsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBTVkdFbGVtZW50OwogCi1jbGFzcyBT
VkdBbmltYXRlZFByb3BlcnR5IDogcHVibGljIFJlZkNvdW50ZWQ8U1ZHQW5pbWF0ZWRQcm9wZXJ0
eT4sIHB1YmxpYyBTVkdQcm9wZXJ0eU93bmVyIHsKK2NsYXNzIFNWR0FuaW1hdGVkUHJvcGVydHkg
OiBwdWJsaWMgUmVmQ291bnRlZDxTVkdBbmltYXRlZFByb3BlcnR5PiwgcHVibGljIERPTUxpdmVQ
cm9wZXJ0eU9ic2VydmVyIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TVkdBbmltYXRlZFByb3Bl
cnR5KCkgPSBkZWZhdWx0OwogICAgIApAQCAtNjQsOCArNjQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
ewogICAgIH0KICAgICAKLSAgICBTVkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJy
aWRlOwotICAgIHZvaWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqKSBvdmVycmlk
ZTsKKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSopIG92ZXJy
aWRlOwogICAgIAogICAgIFNWR0VsZW1lbnQqIG1fY29udGV4dEVsZW1lbnQgeyBudWxscHRyIH07
CiAgICAgYm9vbCBtX2lzQW5pbWF0aW5nIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVkUHJvcGVydHlMaXN0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCmluZGV4IDVh
OGY5MTU5MDJlLi5hZDIxYTk4MDZjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0eUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdBbmltYXRlZFByb3BlcnR5TGlzdC5oCkBAIC0xMjYsMTMgKzEyNiwx
MyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHJldHVybiBtX2FuaW1WYWw7CiAgICAgfQogCi0gICAg
Ym9vbCBpc1Byb3BlcnR5UmVhZE9ubHkoY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25z
dCBvdmVycmlkZQorICAgIGJvb2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9w
ZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbV9h
bmltVmFsID09ICZwcm9wZXJ0eTsKICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VW
YWwgY2hhbmdlcyBvciBhbiBpdGVtIGluIG1fYmFzZVZhbCBjaGFuZ2VzLgotICAgIHZvaWQgY29t
bWl0UHJvcGVydHlDaGFuZ2UoU1ZHUHJvcGVydHkqIHByb3BlcnR5KSBvdmVycmlkZQorICAgIHZv
aWQgY29tbWl0UHJvcGVydHlDaGFuZ2UoRE9NTGl2ZVByb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJp
ZGUKICAgICB7CiAgICAgICAgIGlmIChtX2FuaW1WYWwpCiAgICAgICAgICAgICAqbV9hbmltVmFs
ID0gbV9iYXNlVmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMv
U1ZHQW5pbWF0ZWRWYWx1ZVByb3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdBbmltYXRlZFZhbHVlUHJvcGVydHkuaAppbmRleCBiODJlMTQ2YWIwMi4uN2Y5NjUyNWFi
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0FuaW1hdGVk
VmFsdWVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0Fu
aW1hdGVkVmFsdWVQcm9wZXJ0eS5oCkBAIC0xNDAsMTMgKzE0MCwxMyBAQCBwcm90ZWN0ZWQ6CiAg
ICAgICAgIHJldHVybiBtX2FuaW1WYWw7CiAgICAgfQogCi0gICAgYm9vbCBpc1Byb3BlcnR5UmVh
ZE9ubHkoY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQorICAgIGJv
b2wgaXNQcm9wZXJ0eVJlYWRPbmx5KGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJvcGVydHkpIGNv
bnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gbV9hbmltVmFsID09ICZwcm9wZXJ0
eTsKICAgICB9CiAKICAgICAvLyBDYWxsZWQgd2hlbiBtX2Jhc2VWYWwgY2hhbmdlcy4KLSAgICB2
b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBwcm9wZXJ0eSkgb3ZlcnJpZGUK
KyAgICB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKERPTUxpdmVQcm9wZXJ0eSogcHJvcGVydHkp
IG92ZXJyaWRlCiAgICAgewogICAgICAgICBpZiAobV9hbmltVmFsKQogICAgICAgICAgICAgbV9h
bmltVmFsLT5zZXRWYWx1ZShtX2Jhc2VWYWwtPnZhbHVlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHTGlzdC5oCmluZGV4IGRkY2IxNzAxOTE4Li5mM2RlZTk5YTA5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTGlzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR0xpc3QuaApAQCAtMjUsMTMgKzI1LDEzIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAjaW5jbHVkZSAi
RXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlICJTVkdQcm9wZXJ0eS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEl0ZW1UeXBlPgotY2xhc3MgU1ZHTGlzdCA6IHB1
YmxpYyBTVkdQcm9wZXJ0eSB7CitjbGFzcyBTVkdMaXN0IDogcHVibGljIERPTUxpdmVQcm9wZXJ0
eSB7CiBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbnVtYmVy
T2ZJdGVtcygpOyB9CiAKQEAgLTE1MCw3ICsxNTAsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90
ZWN0ZWQ6Ci0gICAgdXNpbmcgU1ZHUHJvcGVydHk6OlNWR1Byb3BlcnR5OworICAgIHVzaW5nIERP
TUxpdmVQcm9wZXJ0eTo6RE9NTGl2ZVByb3BlcnR5OwogCiAgICAgRXhjZXB0aW9uT3I8Ym9vbD4g
Y2FuQWx0ZXJMaXN0KCkgY29uc3QKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdNZW1iZXJBY2Nlc3Nvci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHTWVtYmVyQWNjZXNzb3IuaAppbmRleCA5NDNmMTI4MDljMC4uZTQwOWQ0ZGEx
ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR01lbWJlckFj
Y2Vzc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHTWVtYmVyQWNj
ZXNzb3IuaApAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBT
VkdBbmltYXRlZFByb3BlcnR5OwotY2xhc3MgU1ZHUHJvcGVydHk7CitjbGFzcyBET01MaXZlUHJv
cGVydHk7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIE93bmVyVHlwZT4KIGNsYXNzIFNWR01lbWJlckFj
Y2Vzc29yIHsKQEAgLTQzLDcgKzQzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Fu
aW1hdGVkUHJvcGVydHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9v
bCBpc0FuaW1hdGVkTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1
YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR1Byb3BlcnR5JikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25l
clR5cGUmLCBjb25zdCBET01MaXZlUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYsIGNvbnN0IFNWR0FuaW1h
dGVkUHJvcGVydHkmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgU3RyaW5n
IHZhbHVlQXNTdHJpbmcoY29uc3QgT3duZXJUeXBlJikgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJp
bmcoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmgKaW5kZXggMWYyMzc0ZjVkZjguLmQwYjE1
MzI0NmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcmlt
aXRpdmVQcm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvci5oCkBAIC00MiwxMyArNDIsMTMgQEAgY2xh
c3MgU1ZHUHJpbWl0aXZlUHJvcGVydHlBbmltYXRvciA6IHB1YmxpYyBTVkdQcm9wZXJ0eUFuaW1h
dG9yPEFuaW1hdGlvbkZ1bmN0aW8KICAgICB1c2luZyBCYXNlOjptX2Z1bmN0aW9uOwogICAgIAog
cHVibGljOgotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5p
bWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBp
c0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25N
b2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQs
IGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IoYXR0cmlidXRlTmFtZSwgV1RGTW92ZShwcm9wZXJ0
eSksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKSk7
CiAgICAgfQogICAgIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4KLSAgICBT
VkdQcmltaXRpdmVQcm9wZXJ0eUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0
ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQXJndW1lbnRzJiYuLi4gYXJndW1l
bnRzKQorICAgIFNWR1ByaW1pdGl2ZVByb3BlcnR5QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQXJndW1l
bnRzJiYuLi4gYXJndW1lbnRzKQogICAgICAgICA6IEJhc2UoYXR0cmlidXRlTmFtZSwgc3RkOjpm
b3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikKICAgICAgICAgLCBtX3Byb3BlcnR5KHN0
YXRpY19yZWZlcmVuY2VfY2FzdDxWYWx1ZVByb3BlcnR5VHlwZT4oV1RGTW92ZShwcm9wZXJ0eSkp
KQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjZTY1Y2IxMTBkMS4uMDAwMDAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHkuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDEwMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBN
b3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChD
KSAyMDE4LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3duZXIuaCIKLSNpbmNsdWRlIDx3dGYvT3B0aW9uYWwu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVudW0gY2xhc3MgU1ZHUHJvcGVydHlB
Y2Nlc3MgOiB1aW50OF90IHsgUmVhZFdyaXRlLCBSZWFkT25seSB9OwotZW51bSBjbGFzcyBTVkdQ
cm9wZXJ0eVN0YXRlIDogdWludDhfdCB7IENsZWFuLCBEaXJ0eSB9OwotCi1jbGFzcyBTVkdQcm9w
ZXJ0eSA6IHB1YmxpYyBSZWZDb3VudGVkPFNWR1Byb3BlcnR5PiB7Ci1wdWJsaWM6Ci0gICAgdmly
dHVhbCB+U1ZHUHJvcGVydHkoKSA9IGRlZmF1bHQ7Ci0KLSAgICAvLyBNYW5hZ2luZyB0aGUgcmVs
YXRpb25zaGlwIHdpdGggdGhlIG93bmVyLgotICAgIGJvb2wgaXNBdHRhY2hlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fb3duZXI7IH0KLSAgICB2b2lkIGF0dGFjaChTVkdQcm9wZXJ0eU93bmVyKiBvd25l
ciwgU1ZHUHJvcGVydHlBY2Nlc3MgYWNjZXNzKQotICAgIHsKLSAgICAgICAgQVNTRVJUKCFtX293
bmVyKTsKLSAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4p
OwotICAgICAgICBtX293bmVyID0gb3duZXI7Ci0gICAgICAgIG1fYWNjZXNzID0gYWNjZXNzOwot
ICAgIH0KLQotICAgIHZvaWQgZGV0YWNoKCkKLSAgICB7Ci0gICAgICAgIG1fb3duZXIgPSBudWxs
cHRyOwotICAgICAgICBtX2FjY2VzcyA9IFNWR1Byb3BlcnR5QWNjZXNzOjpSZWFkV3JpdGU7Ci0g
ICAgICAgIG1fc3RhdGUgPSBTVkdQcm9wZXJ0eVN0YXRlOjpDbGVhbjsKLSAgICB9Ci0KLSAgICBj
b25zdCBTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCgpIGNvbnN0Ci0gICAgewotICAgICAgICBp
ZiAoIW1fb3duZXIpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmV0dXJu
IG1fb3duZXItPmF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCk7Ci0gICAgfQotCi0gICAgdm9pZCBj
b21taXRDaGFuZ2UoKQotICAgIHsKLSAgICAgICAgaWYgKCFtX293bmVyKQotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBtX293bmVyLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKLSAg
ICB9Ci0KLSAgICAvLyBET00gYWNjZXNzLgotICAgIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2Vzcygp
IGNvbnN0IHsgcmV0dXJuIG1fYWNjZXNzOyB9Ci0gICAgYm9vbCBpc1JlYWRPbmx5KCkgY29uc3Qg
eyByZXR1cm4gbV9hY2Nlc3MgPT0gU1ZHUHJvcGVydHlBY2Nlc3M6OlJlYWRPbmx5OyB9Ci0KLSAg
ICAvLyBTeW5jaHJvbml6aW5nIHRoZSBTVkcgYXR0cmlidXRlIGFuZCBpdHMgcmVmbGVjdGlvbiBo
ZXJlLgotICAgIGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGUgPT0gU1ZHUHJv
cGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICB2b2lkIHNldERpcnR5KCkgeyBtX3N0YXRlID0gU1ZH
UHJvcGVydHlTdGF0ZTo6RGlydHk7IH0KLSAgICBPcHRpb25hbDxTdHJpbmc+IHN5bmNocm9uaXpl
KCkKLSAgICB7Ci0gICAgICAgIGlmIChtX3N0YXRlID09IFNWR1Byb3BlcnR5U3RhdGU6OkNsZWFu
KQotICAgICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKLSAgICAgICAgbV9zdGF0ZSA9IFNW
R1Byb3BlcnR5U3RhdGU6OkNsZWFuOwotICAgICAgICByZXR1cm4gdmFsdWVBc1N0cmluZygpOwot
ICAgIH0KLQotICAgIC8vIFRoaXMgaXMgdXNlZCB3aGVuIGNhbGxpbmcgc2V0QXR0cmlidXRlKCku
Ci0gICAgdmlydHVhbCBTdHJpbmcgdmFsdWVBc1N0cmluZygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7IH0KLQotICAgIC8vIFZpc3VhbCBTdHVkaW8gZG9lc24ndCBzZWVtIHRvIHNlZSB0
aGVzZSBwcml2YXRlIGNvbnN0cnVjdG9ycyBmcm9tIHN1YmNsYXNzZXMuCi0gICAgLy8gRklYTUU6
IFNlZSB3aGF0IGl0IHRha2VzIHRvIHJlbW92ZSB0aGlzIGhhY2suCi0jaWYgIUNPTVBJTEVSKE1T
VkMpCi1wcm90ZWN0ZWQ6Ci0jZW5kaWYKLSAgICBTVkdQcm9wZXJ0eShTVkdQcm9wZXJ0eU93bmVy
KiBvd25lciA9IG51bGxwdHIsIFNWR1Byb3BlcnR5QWNjZXNzIGFjY2VzcyA9IFNWR1Byb3BlcnR5
QWNjZXNzOjpSZWFkV3JpdGUpCi0gICAgICAgIDogbV9vd25lcihvd25lcikKLSAgICAgICAgLCBt
X2FjY2VzcyhhY2Nlc3MpCi0gICAgewotICAgIH0KLQotICAgIFNWR1Byb3BlcnR5T3duZXIqIG1f
b3duZXIgeyBudWxscHRyIH07Ci0gICAgU1ZHUHJvcGVydHlBY2Nlc3MgbV9hY2Nlc3MgeyBTVkdQ
cm9wZXJ0eUFjY2Vzczo6UmVhZFdyaXRlIH07Ci0gICAgU1ZHUHJvcGVydHlTdGF0ZSBtX3N0YXRl
IHsgU1ZHUHJvcGVydHlTdGF0ZTo6Q2xlYW4gfTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
QWNjZXNzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNj
ZXNzb3IuaAppbmRleCBmZjhjNGNkZTZkZC4uOGQxMjgxODI3ZDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QWNjZXNzb3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFjY2Vzc29yLmgKQEAgLTQwLDcg
KzQwLDcgQEAgcHJvdGVjdGVkOgogICAgIHVzaW5nIEJhc2U6OnByb3BlcnR5OwogICAgIHVzaW5n
IEJhc2U6OnNpbmdsZXRvbjsKIAotICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBPd25lclR5cGUmIG93
bmVyLCBjb25zdCBTVkdQcm9wZXJ0eSYgcHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCisgICAgYm9v
bCBtYXRjaGVzKGNvbnN0IE93bmVyVHlwZSYgb3duZXIsIGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYg
cHJvcGVydHkpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy0+cHJv
cGVydHkob3duZXIpLnB0cigpID09ICZwcm9wZXJ0eTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUFuaW1hdG9yRmFjdG9yeS5oIGIv
U291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3Rvcnku
aAppbmRleCA2ODFlNmRjNjU0Ni4uNGI1ZGVmOWRiZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5QW5pbWF0b3JGYWN0b3J5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlBbmltYXRvckZhY3RvcnkuaApA
QCAtNjksMzcgKzY5LDM3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICAvLyBUaGlzIEhhc2hN
YXAgbWFwcyBhbiBhdHRyaWJ1dGUgbmFtZSB0byBhIHBhaXIgb2Ygc3RhdGljIG1ldGhvZHMuIFRo
ZSBmaXJzdCBvbmUgY3JlYXRlcyBhIHNoYXJlZAotICAgIC8vIFJlZjxTVkdQcm9wZXJ0eT4gZm9y
IHRoZSB2YWx1ZSB0eXBlIG9mIHRoaXMgYXR0cmlidXRlLiBUaGUgc2Vjb25kIGNyZWF0ZXMgdGhl
IGFuaW1hdG9yIGdpdmVuIHRoZQotICAgIC8vIGF0dHJpYnV0ZSBuYW1lIGFuZCB0aGUgc2hhcmVk
IFJlZjxTVkdQcm9wZXJ0eT4uCisgICAgLy8gUmVmPERPTUxpdmVQcm9wZXJ0eT4gZm9yIHRoZSB2
YWx1ZSB0eXBlIG9mIHRoaXMgYXR0cmlidXRlLiBUaGUgc2Vjb25kIGNyZWF0ZXMgdGhlIGFuaW1h
dG9yIGdpdmVuIHRoZQorICAgIC8vIGF0dHJpYnV0ZSBuYW1lIGFuZCB0aGUgc2hhcmVkIFJlZjxE
T01MaXZlUHJvcGVydHk+LgogICAgIHVzaW5nIEF0dHJpYnV0ZUFuaW1hdG9yQ3JlYXRvciA9IEhh
c2hNYXA8CiAgICAgICAgIFF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWVJbXBsKiwKICAgICAg
ICAgc3RkOjpwYWlyPAotICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxSZWY8U1ZHUHJvcGVydHk+
KCk+LAotICAgICAgICAgICAgc3RkOjpmdW5jdGlvbjxSZWY8U1ZHQXR0cmlidXRlQW5pbWF0b3I+
KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBSZWY8U1ZHUHJvcGVydHk+JiYsIEFuaW1hdGlvbk1vZGUs
IENhbGNNb2RlLCBib29sLCBib29sKT4KKyAgICAgICAgICAgIHN0ZDo6ZnVuY3Rpb248UmVmPERP
TUxpdmVQcm9wZXJ0eT4oKT4sCisgICAgICAgICAgICBzdGQ6OmZ1bmN0aW9uPFJlZjxTVkdBdHRy
aWJ1dGVBbmltYXRvcj4oY29uc3QgUXVhbGlmaWVkTmFtZSYsIFJlZjxET01MaXZlUHJvcGVydHk+
JiYsIEFuaW1hdGlvbk1vZGUsIENhbGNNb2RlLCBib29sLCBib29sKT4KICAgICAgICAgPgogICAg
ID47CiAKLSAgICBzdGF0aWMgYXV0byBjcmVhdGVDb2xvckFuaW1hdG9yKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0
aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxh
dGVkLCBib29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlQ29sb3JBbmltYXRv
cihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8RE9NTGl2ZVByb3BlcnR5
PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2RlIGNhbGNN
b2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKICAgICB7CiAgICAgICAg
IHJldHVybiBTVkdDb2xvckFuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgV1RGTW92ZShw
cm9wZXJ0eSksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0
aXZlKTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXV0byBjcmVhdGVMZW5ndGhBbmltYXRvcihjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVy
dHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wg
aXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZUxl
bmd0aEFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01M
aXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2Fs
Y01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAg
IHsKICAgICAgICAgcmV0dXJuIFNWR0xlbmd0aEFuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFt
ZSwgV1RGTW92ZShwcm9wZXJ0eSksIGFuaW1hdGlvbk1vZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxh
dGVkLCBpc0FkZGl0aXZlKTsKICAgICB9CiAKLSAgICBzdGF0aWMgYXV0byBjcmVhdGVMZW5ndGhM
aXN0QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPFNWR1By
b3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENhbGNNb2Rl
IGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAgICBzdGF0
aWMgYXV0byBjcmVhdGVMZW5ndGhMaXN0QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9k
ZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBi
b29sIGlzQWRkaXRpdmUpCiAgICAgewogICAgICAgICByZXR1cm4gU1ZHTGVuZ3RoTGlzdEFuaW1h
dG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgV1RGTW92ZShwcm9wZXJ0eSksIGFuaW1hdGlvbk1v
ZGUsIGNhbGNNb2RlLCBpc0FjY3VtdWxhdGVkLCBpc0FkZGl0aXZlKTsKICAgICB9CiAKLSAgICBz
dGF0aWMgYXV0byBjcmVhdGVOdW1iZXJBbmltYXRvcihjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
aWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHksIEFuaW1hdGlvbk1vZGUgYW5p
bWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wgaXNBY2N1bXVsYXRlZCwgYm9vbCBp
c0FkZGl0aXZlKQorICAgIHN0YXRpYyBhdXRvIGNyZWF0ZU51bWJlckFuaW1hdG9yKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVy
dHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wg
aXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIFNW
R051bWJlckFuaW1hdG9yOjpjcmVhdGUoYXR0cmlidXRlTmFtZSwgIFdURk1vdmUocHJvcGVydHkp
LCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRpdGl2ZSk7CiAg
ICAgfQogICAgIAotICAgIHN0YXRpYyBhdXRvIGNyZWF0ZVN0cmluZ0FuaW1hdG9yKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwg
QW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0Fj
Y3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlU3RyaW5n
QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVmPERPTUxpdmVQ
cm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9k
ZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCiAgICAgewog
ICAgICAgICByZXR1cm4gU1ZHU3RyaW5nQW5pbWF0b3I6OmNyZWF0ZShhdHRyaWJ1dGVOYW1lLCBX
VEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01vZGUsIGlzQWNjdW11bGF0ZWQs
IGlzQWRkaXRpdmUpOwogICAgIH0KQEAgLTE3MCw3ICsxNzAsNyBAQCBwcml2YXRlOgogICAgICAg
ICByZXR1cm4gbWFwOwogICAgIH0KIAotICAgIHVzaW5nIEF0dHJpYnV0ZVByb3BlcnR5ID0gSGFz
aE1hcDxRdWFsaWZpZWROYW1lLCBSZWY8U1ZHUHJvcGVydHk+PjsKKyAgICB1c2luZyBBdHRyaWJ1
dGVQcm9wZXJ0eSA9IEhhc2hNYXA8UXVhbGlmaWVkTmFtZSwgUmVmPERPTUxpdmVQcm9wZXJ0eT4+
OwogICAgIEF0dHJpYnV0ZVByb3BlcnR5IG1fYXR0cmlidXRlUHJvcGVydHk7CiB9OwogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlMaXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eUxpc3QuaAppbmRl
eCAyMDBjNmJiYjg0Mi4uYzEzNDY0Mzg4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9w
cm9wZXJ0aWVzL1NWR1Byb3BlcnR5TGlzdC5oCkBAIC0zMCw3ICszMCw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR1By
b3BlcnR5TGlzdCA6IHB1YmxpYyBTVkdMaXN0PFJlZjxQcm9wZXJ0eVR5cGU+PiwgcHVibGljIFNW
R1Byb3BlcnR5T3duZXIgeworY2xhc3MgU1ZHUHJvcGVydHlMaXN0IDogcHVibGljIFNWR0xpc3Q8
UmVmPFByb3BlcnR5VHlwZT4+LCBwdWJsaWMgRE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXIgewogcHVi
bGljOgogICAgIHVzaW5nIEJhc2VMaXN0ID0gU1ZHTGlzdDxSZWY8UHJvcGVydHlUeXBlPj47CiAg
ICAgdXNpbmcgQmFzZUxpc3Q6OmlzRW1wdHk7CkBAIC00MiwxMiArNDIsMTIgQEAgcHVibGljOgog
I2lmICFDT01QSUxFUihNU1ZDKQogcHJvdGVjdGVkOgogI2VuZGlmCi0gICAgdXNpbmcgU1ZHUHJv
cGVydHlPd25lcjo6U1ZHUHJvcGVydHlPd25lcjsKKyAgICB1c2luZyBET01MaXZlUHJvcGVydHlP
YnNlcnZlcjo6RE9NTGl2ZVByb3BlcnR5T2JzZXJ2ZXI7CiAgICAgdXNpbmcgQmFzZUxpc3Q6Om1f
aXRlbXM7Ci0gICAgdXNpbmcgQmFzZUxpc3Q6Om1fb3duZXI7CisgICAgdXNpbmcgQmFzZUxpc3Q6
Om1fb2JzZXJ2ZXI7CiAKLSAgICBTVkdQcm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3du
ZXIgPSBudWxscHRyKQotICAgICAgICA6IEJhc2VMaXN0KG93bmVyKQorICAgIFNWR1Byb3BlcnR5
TGlzdChET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAg
ICA6IEJhc2VMaXN0KG9ic2VydmVyKQogICAgIHsKICAgICB9CiAKQEAgLTYzLDE3ICs2MywxNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgICAgICAgICBpdGVtLT5kZXRhY2goKTsKICAgICB9CiAKLSAgICBT
VkdQcm9wZXJ0eU93bmVyKiBvd25lcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXI7
IH0KKyAgICBET01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX29ic2VydmVyOyB9CiAKLSAgICBib29sIGlzUHJvcGVydHlSZWFkT25seShj
b25zdCBTVkdQcm9wZXJ0eSYpIGNvbnN0IG92ZXJyaWRlCisgICAgYm9vbCBpc1Byb3BlcnR5UmVh
ZE9ubHkoY29uc3QgRE9NTGl2ZVByb3BlcnR5JikgY29uc3Qgb3ZlcnJpZGUKICAgICB7Ci0gICAg
ICAgIHJldHVybiBvd25lcigpICYmIG93bmVyKCktPmlzUHJvcGVydHlSZWFkT25seSgqdGhpcyk7
CisgICAgICAgIHJldHVybiBvYnNlcnZlcigpICYmIG9ic2VydmVyKCktPmlzUHJvcGVydHlSZWFk
T25seSgqdGhpcyk7CiAgICAgfQogCi0gICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShTVkdQ
cm9wZXJ0eSopIG92ZXJyaWRlCisgICAgdm9pZCBjb21taXRQcm9wZXJ0eUNoYW5nZShET01MaXZl
UHJvcGVydHkqKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgaWYgKG93bmVyKCkpCi0gICAgICAg
ICAgICBvd25lcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0aGlzKTsKKyAgICAgICAgaWYgKG9i
c2VydmVyKCkpCisgICAgICAgICAgICBvYnNlcnZlcigpLT5jb21taXRQcm9wZXJ0eUNoYW5nZSh0
aGlzKTsKICAgICB9CiAKICAgICBSZWY8UHJvcGVydHlUeXBlPiBhdCh1bnNpZ25lZCBpbmRleCkg
Y29uc3Qgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVz
L1NWR1Byb3BlcnR5T3duZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5T3duZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzk4MThiZTlmODQu
LjAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3Bl
cnR5T3duZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTgtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotICAgIAotY2xhc3MgU1ZHRWxlbWVudDsKLWNsYXNzIFNWR1Byb3Bl
cnR5OwotCi1jbGFzcyBTVkdQcm9wZXJ0eU93bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIH5T
VkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0OwotCi0gICAgdmlydHVhbCBTVkdQcm9wZXJ0eU93
bmVyKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KLSAgICAKLSAgICB2aXJ0dWFs
IGNvbnN0IFNWR0VsZW1lbnQqIGF0dHJpYnV0ZUNvbnRleHRFbGVtZW50KCkgY29uc3QKLSAgICB7
Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
ICAgICByZXR1cm4gb3duZXIoKS0+YXR0cmlidXRlQ29udGV4dEVsZW1lbnQoKTsKLSAgICB9Ci0g
ICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbW1pdFByb3BlcnR5Q2hhbmdlKFNWR1Byb3BlcnR5KiBw
cm9wZXJ0eSkKLSAgICB7Ci0gICAgICAgIGlmICghb3duZXIoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgb3duZXIoKS0+Y29tbWl0UHJvcGVydHlDaGFuZ2UocHJvcGVydHkpOwotICAg
IH0KLSAgICAKLXByb3RlY3RlZDoKLSAgICBTVkdQcm9wZXJ0eU93bmVyKCkgPSBkZWZhdWx0Owot
fTsKLQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlPd25lclJlZ2lzdHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eU93bmVyUmVnaXN0cnkuaAppbmRleCBlNTRmM2I3ZjU4YS4uMzE5YTUwODJhNTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5T3duZXJS
ZWdpc3RyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
T3duZXJSZWdpc3RyeS5oCkBAIC0xNzgsNyArMTc4LDcgQEAgcHVibGljOgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogCi0gICAgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0dHJpYnV0ZU5h
bWUoY29uc3QgU1ZHUHJvcGVydHkmIHByb3BlcnR5KSBjb25zdCBvdmVycmlkZQorICAgIFF1YWxp
ZmllZE5hbWUgcHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IERPTUxpdmVQcm9wZXJ0eSYgcHJv
cGVydHkpIGNvbnN0IG92ZXJyaWRlCiAgICAgewogICAgICAgICBRdWFsaWZpZWROYW1lIGF0dHJp
YnV0ZU5hbWUgPSBudWxsUU5hbWUoKTsKICAgICAgICAgZW51bWVyYXRlUmVjdXJzaXZlbHkoWyZd
KGNvbnN0IGF1dG8mIGVudHJ5KSAtPiBib29sIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5UmVnaXN0cnkuaAppbmRleCBlOTZhMTU4ZWMyMi4uZGUy
OGViOWZlMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1By
b3BlcnR5UmVnaXN0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVJlZ2lzdHJ5LmgKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
flNWR1Byb3BlcnR5UmVnaXN0cnkoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGV0
YWNoQWxsUHJvcGVydGllcygpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFF1YWxpZmllZE5hbWUg
cHJvcGVydHlBdHRyaWJ1dGVOYW1lKGNvbnN0IFNWR1Byb3BlcnR5JikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgUXVhbGlmaWVkTmFtZSBwcm9wZXJ0eUF0dHJpYnV0ZU5hbWUoY29uc3QgRE9NTGl2
ZVByb3BlcnR5JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUXVhbGlmaWVkTmFtZSBhbmltYXRl
ZFByb3BlcnR5QXR0cmlidXRlTmFtZShjb25zdCBTVkdBbmltYXRlZFByb3BlcnR5JikgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlQXNTdHJpbmcoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmgKaW5kZXggYWNlMDUwMmIzY2QuLmY3
MGYxOGI4ZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdT
aGFyZWRQcmltaXRpdmVQcm9wZXJ0eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1NoYXJlZFByaW1pdGl2ZVByb3BlcnR5LmgKQEAgLTI1LDEyICsyNSwxMiBAQAogCiAj
cHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisjaW5jbHVkZSAiRE9NTGl2
ZVByb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
UHJvcGVydHlUeXBlPgotY2xhc3MgU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgOiBwdWJsaWMg
U1ZHUHJvcGVydHkgeworY2xhc3MgU1ZHU2hhcmVkUHJpbWl0aXZlUHJvcGVydHkgOiBwdWJsaWMg
RE9NTGl2ZVByb3BlcnR5IHsKIHB1YmxpYzoKICAgICB1c2luZyBWYWx1ZVR5cGUgPSBQcm9wZXJ0
eVR5cGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHkuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHkuaAppbmRleCAxOGViZmFjODI0YS4uODU5ODZjOWJiZjAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHkuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5LmgKQEAgLTI1LDEyICsyNSwx
MiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlNWR1Byb3BlcnR5LmgiCisjaW5jbHVk
ZSAiRE9NTGl2ZVByb3BlcnR5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHRlbXBs
YXRlPHR5cGVuYW1lIFByb3BlcnR5VHlwZT4KLWNsYXNzIFNWR1ZhbHVlUHJvcGVydHkgOiBwdWJs
aWMgU1ZHUHJvcGVydHkgeworY2xhc3MgU1ZHVmFsdWVQcm9wZXJ0eSA6IHB1YmxpYyBET01MaXZl
UHJvcGVydHkgewogcHVibGljOgogICAgIHVzaW5nIFZhbHVlVHlwZSA9IFByb3BlcnR5VHlwZTsK
IApAQCAtNjMsMTUgKzYzLDE1IEBAIHByb3RlY3RlZDoKICAgICB7CiAgICAgfQogCi0gICAgLy8g
QmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgU1ZHUHJvcGVy
dHk6OlNWR1Byb3BlcnR5IiBiZWNhdXNlIG9mIFdpbmRvd3MgYW5kIEdUSyBwb3J0cy4KLSAgICBT
VkdWYWx1ZVByb3BlcnR5KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyID0gbnVsbHB0cikKLSAgICAg
ICAgOiBTVkdQcm9wZXJ0eShvd25lcikKKyAgICAvLyBCYXNlIGFuZCBkZWZhdWx0IGNvbnN0cnVj
dG9yLiBEbyBub3QgdXNlICJ1c2luZyBET01MaXZlUHJvcGVydHk6OkRPTUxpdmVQcm9wZXJ0eSIg
YmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCisgICAgU1ZHVmFsdWVQcm9wZXJ0eShE
T01MaXZlUHJvcGVydHlPYnNlcnZlciogb2JzZXJ2ZXIgPSBudWxscHRyKQorICAgICAgICA6IERP
TUxpdmVQcm9wZXJ0eShvYnNlcnZlcikKICAgICB7CiAgICAgfQogCiAgICAgLy8gQ3JlYXRlIGFu
IGluaXRpYWxpemVkIGFuZCBhdHRhY2hlZCBwcm9wZXJ0eS4KLSAgICBTVkdWYWx1ZVByb3BlcnR5
KFNWR1Byb3BlcnR5T3duZXIqIG93bmVyLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQotICAg
ICAgICA6IFNWR1Byb3BlcnR5KG93bmVyKQorICAgIFNWR1ZhbHVlUHJvcGVydHkoRE9NTGl2ZVBy
b3BlcnR5T2JzZXJ2ZXIqIG9ic2VydmVyLCBjb25zdCBQcm9wZXJ0eVR5cGUmIHZhbHVlKQorICAg
ICAgICA6IERPTUxpdmVQcm9wZXJ0eShvYnNlcnZlcikKICAgICAgICAgLCBtX3ZhbHVlKHZhbHVl
KQogICAgIHsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oCmluZGV4IGUxNmM4OTA0NTE0Li5lZTFiMzc1
ZGZlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eUFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
VmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmgKQEAgLTM4LDcgKzM4LDcgQEAgY2xhc3MgU1ZHVmFsdWVQ
cm9wZXJ0eUFuaW1hdG9yIDogcHVibGljIFNWR1Byb3BlcnR5QW5pbWF0b3I8QW5pbWF0aW9uRnVu
Y3Rpb24+IHsKIAogcHVibGljOgogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3VtZW50cz4K
LSAgICBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmli
dXRlTmFtZSwgUmVmPFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBcmd1bWVudHMmJi4uLiBhcmd1
bWVudHMpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVydHksIEFyZ3VtZW50
cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNlKGF0dHJpYnV0ZU5hbWUsIHN0ZDo6Zm9y
d2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAgICAgICAgICwgbV9wcm9wZXJ0eShzdGF0
aWNfcmVmZXJlbmNlX2Nhc3Q8UHJvcGVydHlUeXBlPihXVEZNb3ZlKHByb3BlcnR5KSkpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9w
ZXJ0eUFuaW1hdG9ySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFs
dWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oCmluZGV4IGU2OTYyNjBlOGQxLi4wNjhiNDMxNDRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0
eUFuaW1hdG9ySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Zh
bHVlUHJvcGVydHlBbmltYXRvckltcGwuaApAQCAtMzcsNyArMzcsNyBAQCBjbGFzcyBTVkdMZW5n
dGhBbmltYXRvciBmaW5hbCA6IHB1YmxpYyBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3I8U1ZHTGVu
Z3RoLCBTVkdBbgogICAgIHVzaW5nIEJhc2U6Om1fcHJvcGVydHk7CiAKIHB1YmxpYzoKLSAgICBz
dGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgUmVm
PFNWR1Byb3BlcnR5PiYmIHByb3BlcnR5LCBBbmltYXRpb25Nb2RlIGFuaW1hdGlvbk1vZGUsIENh
bGNNb2RlIGNhbGNNb2RlLCBib29sIGlzQWNjdW11bGF0ZWQsIGJvb2wgaXNBZGRpdGl2ZSkKKyAg
ICBzdGF0aWMgYXV0byBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwg
UmVmPERPTUxpdmVQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5pbWF0aW9uTW9kZSBhbmltYXRpb25N
b2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3VtdWxhdGVkLCBib29sIGlzQWRkaXRp
dmUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdMZW5ndGhBbmltYXRv
cihhdHRyaWJ1dGVOYW1lLCBXVEZNb3ZlKHByb3BlcnR5KSwgYW5pbWF0aW9uTW9kZSwgY2FsY01v
ZGUsIGlzQWNjdW11bGF0ZWQsIGlzQWRkaXRpdmUsIFNWR0xlbmd0aE1vZGU6Ok90aGVyKSk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJv
cGVydHlMaXN0LmgKaW5kZXggMTlkMjNhZmU3MGEuLmM1YjczYTBlYTRiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0LmgKQEAg
LTc1LDE0ICs3NSwxNCBAQCBwcm90ZWN0ZWQ6CiAgICAgdXNpbmcgQmFzZTo6cmVtb3ZlOwogCiAg
ICAgLy8gQmFzZSBhbmQgZGVmYXVsdCBjb25zdHJ1Y3Rvci4gRG8gbm90IHVzZSAidXNpbmcgQmFz
ZTo6QmFzZSIgYmVjYXVzZSBvZiBXaW5kb3dzIGFuZCBHVEsgcG9ydHMuCi0gICAgU1ZHVmFsdWVQ
cm9wZXJ0eUxpc3QoU1ZHUHJvcGVydHlPd25lciogb3duZXIgPSBudWxscHRyKQotICAgICAgICA6
IEJhc2Uob3duZXIpCisgICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QoRE9NTGl2ZVByb3BlcnR5T2Jz
ZXJ2ZXIqIG9ic2VydmVyID0gbnVsbHB0cikKKyAgICAgICAgOiBCYXNlKG9ic2VydmVyKQogICAg
IHsKICAgICB9CiAKICAgICAvLyBVc2VkIGJ5IFNWR0FuaW1hdGVkUHJvcGVydHlMaXN0IHdoZW4g
Y3JlYXRpbmcgaXQgYW5pbVZhbCBmcm9tIGJhc2VWYWwuCiAgICAgU1ZHVmFsdWVQcm9wZXJ0eUxp
c3QoY29uc3QgU1ZHVmFsdWVQcm9wZXJ0eUxpc3QmIG90aGVyKQotICAgICAgICA6IEJhc2Uob3Ro
ZXIub3duZXIoKSkKKyAgICAgICAgOiBCYXNlKG90aGVyLm9ic2VydmVyKCkpCiAgICAgewogICAg
ICAgICAvLyBDbG9uZSBhbGwgaXRlbXMuCiAgICAgICAgIGZvciAoY29uc3QgYXV0byYgaXRlbSA6
IG90aGVyLml0ZW1zKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmgKaW5kZXggYWJhZmM1MWY5Zjku
LmYxNThiNDYwZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9T
VkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvci5oCkBAIC0zOCw3ICszOCw3IEBA
IGNsYXNzIFNWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3IgOiBwdWJsaWMgU1ZHUHJvcGVydHlB
bmltYXRvcjxBbmltYXRpb25GdW5jdGlvCiAKIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZS4uLiBBcmd1bWVudHM+Ci0gICAgU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvcihjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBSZWY8U1ZHUHJvcGVydHk+JiYgcHJvcGVydHks
IEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKKyAgICBTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1h
dG9yKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVy
dHk+JiYgcHJvcGVydHksIEFyZ3VtZW50cyYmLi4uIGFyZ3VtZW50cykKICAgICAgICAgOiBCYXNl
KGF0dHJpYnV0ZU5hbWUsIHN0ZDo6Zm9yd2FyZDxBcmd1bWVudHM+KGFyZ3VtZW50cykuLi4pCiAg
ICAgICAgICwgbV9saXN0KHN0YXRpY19yZWZlcmVuY2VfY2FzdDxMaXN0VHlwZT4oV1RGTW92ZShw
cm9wZXJ0eSkpKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1ZhbHVlUHJvcGVydHlMaXN0QW5pbWF0b3JJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oCmluZGV4IDJl
MmE4NTQwYWIxLi4yMTliMzU4YTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRvckltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5o
CkBAIC0zNyw3ICszNyw3IEBAIGNsYXNzIFNWR0xlbmd0aExpc3RBbmltYXRvciBmaW5hbCA6IHB1
YmxpYyBTVkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9yPFNWR0xlbmd0CiAgICAgdXNpbmcgQmFz
ZTo6bV9saXN0OwogCiBwdWJsaWM6Ci0gICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxTVkdQcm9wZXJ0eT4mJiBwcm9wZXJ0eSwgQW5p
bWF0aW9uTW9kZSBhbmltYXRpb25Nb2RlLCBDYWxjTW9kZSBjYWxjTW9kZSwgYm9vbCBpc0FjY3Vt
dWxhdGVkLCBib29sIGlzQWRkaXRpdmUpCisgICAgc3RhdGljIGF1dG8gY3JlYXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIFJlZjxET01MaXZlUHJvcGVydHk+JiYgcHJvcGVy
dHksIEFuaW1hdGlvbk1vZGUgYW5pbWF0aW9uTW9kZSwgQ2FsY01vZGUgY2FsY01vZGUsIGJvb2wg
aXNBY2N1bXVsYXRlZCwgYm9vbCBpc0FkZGl0aXZlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgU1ZHTGVuZ3RoTGlzdEFuaW1hdG9yKGF0dHJpYnV0ZU5hbWUsIFdURk1vdmUo
cHJvcGVydHkpLCBhbmltYXRpb25Nb2RlLCBjYWxjTW9kZSwgaXNBY2N1bXVsYXRlZCwgaXNBZGRp
dGl2ZSwgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIpKTsKICAgICB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>