<?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>235415</bug_id>
          
          <creation_ts>2022-01-20 12:14:26 -0800</creation_ts>
          <short_desc>[Payment Request] allow additional payment method specific data to be passed to `complete()`</short_desc>
          <delta_ts>2022-01-27 13:08:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>aestes</cc>
    
    <cc>akeerthi</cc>
    
    <cc>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>japhet</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>marcos</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1832526</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 12:14:26 -0800</bug_when>
    <thetext>Issue: &lt;https://github.com/w3c/payment-request/issues/981&gt;
Spec PR: &lt;https://github.com/w3c/payment-request/pull/982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832527</commentid>
    <comment_count>1</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-20 12:14:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/82970451&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834305</commentid>
    <comment_count>2</comment_count>
      <attachid>450073</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-26 15:03:18 -0800</bug_when>
    <thetext>Created attachment 450073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834313</commentid>
    <comment_count>3</comment_count>
      <attachid>450073</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-26 15:16:29 -0800</bug_when>
    <thetext>Comment on attachment 450073
Patch

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

r=me assuming we have passing tests

&gt; Source/WebCore/Modules/applepay/ApplePayPaymentAuthorizationResult.h:50
&gt; +    static const Status Success = 0;
&gt; +    static const Status Failure = 1;
&gt; +    static const Status InvalidBillingPostalAddress = 2;
&gt; +    static const Status InvalidShippingPostalAddress = 3;
&gt; +    static const Status InvalidShippingContact = 4;
&gt; +    static const Status PINRequired = 5;
&gt; +    static const Status PINIncorrect = 6;
&gt; +    static const Status PINLockout = 7;

In new code, please use constexpr for this kind of thing. Either just &quot;constexpr&quot; or &quot;static constexpr&quot; should work here and both work equally well, and neither should require also saying &quot;const&quot;.

This seems like an enumeration pattern; too bad it can’t be enum in C++.

&gt; Source/WebCore/Modules/applepay/ApplePaySession.h:74
&gt; +    static const unsigned short STATUS_SUCCESS = ApplePayPaymentAuthorizationResult::Success;
&gt; +    static const unsigned short STATUS_FAILURE = ApplePayPaymentAuthorizationResult::Failure;
&gt; +    static const unsigned short STATUS_INVALID_BILLING_POSTAL_ADDRESS = ApplePayPaymentAuthorizationResult::InvalidBillingPostalAddress;
&gt; +    static const unsigned short STATUS_INVALID_SHIPPING_POSTAL_ADDRESS = ApplePayPaymentAuthorizationResult::InvalidShippingPostalAddress;
&gt; +    static const unsigned short STATUS_INVALID_SHIPPING_CONTACT = ApplePayPaymentAuthorizationResult::InvalidShippingContact;
&gt; +    static const unsigned short STATUS_PIN_REQUIRED = ApplePayPaymentAuthorizationResult::PINRequired;
&gt; +    static const unsigned short STATUS_PIN_INCORRECT = ApplePayPaymentAuthorizationResult::PINIncorrect;
&gt; +    static const unsigned short STATUS_PIN_LOCKOUT = ApplePayPaymentAuthorizationResult::PINLockout;

Same thought about constexpr. Also could consider &quot;auto&quot; instead of &quot;unsigned short&quot;.

&gt; Source/WebCore/Modules/applepay/paymentrequest/ApplePayPaymentCompleteDetails.h:44
&gt; +    template&lt;class Encoder&gt; void encode(Encoder&amp;) const;
&gt; +    template&lt;class Decoder&gt; static std::optional&lt;ApplePayPaymentCompleteDetails&gt; decode(Decoder&amp;);

&quot;typename&quot; is preferred over &quot;class&quot; for this.

&gt; Source/WebCore/Modules/paymentrequest/PaymentResponse.h:43
&gt;  class Document;
&gt;  class PaymentRequest;
&gt; +struct PaymentCompleteDetails;
&gt;  struct PaymentValidationErrors;
&gt; +enum class PaymentComplete;

Our typical style is to use separate paragraphs for each category:

    class Document;
    class PaymentRequest;
 
    struct PaymentCompleteDetails;
    struct PaymentValidationErrors;

    enum class PaymentComplete;

&gt; Source/WebKit/Platform/cocoa/PaymentAuthorizationPresenter.mm:248
&gt; +    auto errors = toNSErrors(WTFMove(result.errors));

The WTFMove here doesn’t do anything, so I suggest omitting it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834320</commentid>
    <comment_count>4</comment_count>
      <attachid>450073</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2022-01-26 15:25:46 -0800</bug_when>
    <thetext>Comment on attachment 450073
Patch

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

&gt; Source/WebCore/Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:164
&gt; +ExceptionOr&lt;void&gt; ApplePayAMSUIPaymentHandler::complete(Document&amp;, std::optional&lt;PaymentComplete&gt;&amp;&amp;, String&amp;&amp;, Function&lt;void()&gt;&amp;&amp; completionHandler)

Should this be a `CompletionHandler` instead of `Function`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834355</commentid>
    <comment_count>5</comment_count>
      <attachid>450073</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-26 16:52:06 -0800</bug_when>
    <thetext>Comment on attachment 450073
Patch

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

&gt;&gt; Source/WebCore/Modules/applepay-ams-ui/ApplePayAMSUIPaymentHandler.cpp:164
&gt;&gt; +ExceptionOr&lt;void&gt; ApplePayAMSUIPaymentHandler::complete(Document&amp;, std::optional&lt;PaymentComplete&gt;&amp;&amp;, String&amp;&amp;, Function&lt;void()&gt;&amp;&amp; completionHandler)
&gt; 
&gt; Should this be a `CompletionHandler` instead of `Function`?

For AMS UI it&apos;s always called, but for Apple Pay it&apos;s only called if the `String&amp;&amp; serializedData` argument is able to be successfully parsed/validated, so it&apos;s not always called.

Actually, thinking about this a bit more, I think we don&apos;t need any sort of callback in the first place.  It&apos;s fine if we do the logic that&apos;s currently wrapped inside the callback after returning from this method, as it shouldn&apos;t have any effect on the state of the `PaymentResponse`.

&gt;&gt; Source/WebCore/Modules/applepay/ApplePayPaymentAuthorizationResult.h:50
&gt;&gt; +    static const Status PINLockout = 7;
&gt; 
&gt; In new code, please use constexpr for this kind of thing. Either just &quot;constexpr&quot; or &quot;static constexpr&quot; should work here and both work equally well, and neither should require also saying &quot;const&quot;.
&gt; 
&gt; This seems like an enumeration pattern; too bad it can’t be enum in C++.

Yeah sadly because this maps to IDL `unsigned short` it can&apos;t be an `enum class` :(

... unless there&apos;s some way I&apos;m missing? =D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834396</commentid>
    <comment_count>6</comment_count>
      <attachid>450097</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-01-26 20:26:15 -0800</bug_when>
    <thetext>Created attachment 450097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834670</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-27 13:08:11 -0800</bug_when>
    <thetext>Committed r288698 (246496@main): &lt;https://commits.webkit.org/246496@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 450097.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450073</attachid>
            <date>2022-01-26 15:03:18 -0800</date>
            <delta_ts>2022-01-26 20:26:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235415-20220126160314.patch</filename>
            <type>text/plain</type>
            <size>103352</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhNmQ2MWY2YjE0ZTZmMmVhNWVlN2NmMmQ5YjFhOGM4NDAyMzVhYjliLi41
MDQ4Mzc2ODU4ZmY5YzcwOTQzMzFkM2YwMTk5ZTFlZDA5ODkwMDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjItMDEtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFsbG93IGFkZGl0aW9uYWwgcGF5bWVudCBt
ZXRob2Qgc3BlY2lmaWMgZGF0YSB0byBiZSBwYXNzZWQgdG8gYGNvbXBsZXRlKClgCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgyOTcwNDUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIGZvciBkZXZlbG9wZXJzL21lcmNoYW50cyB0
byBnaXZlIGFkZGl0aW9uYWwgZGV0YWlscyB0byBBcHBsZSBQYXkgb24gY29tcGxldGlvbi4KKwor
ICAgICAgICBJc3N1ZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L2lz
c3Vlcy85ODE+CisgICAgICAgIFNwZWMgUFI6IDxodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1l
bnQtcmVxdWVzdC9wdWxsLzk4Mj4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5odHRwcy5odG1sCisKKyAgICAg
ICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaDogQWRk
ZWQuCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGVEZXRh
aWxzLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVzcG9uc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNw
b25zZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9u
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlc3BvbnNlOjpjb21wbGV0ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oOgorICAgICAg
ICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OmNvbXBsZXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3Bh
eW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmg6CisgICAgICAgIEFkZCBuZXcgYGRpY3Rpb25h
cnkgUGF5bWVudENvbXBsZXRlRGV0YWlsc2AgdGhhdCdzIGFsbG93ZWQgYXMgYW4gb3B0aW9uYWwg
c2Vjb25kIGFyZ3VtZW50IHRvCisgICAgICAgIGBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLmNv
bXBsZXRlYC4gSWYgcHJvdmlkZWQsIEpTT04gc3RyaW5naWZ5IGl0IGFuZCBwYXNzIHRoZSBzZXJp
YWxpemVkCisgICAgICAgIHN0cmluZyBkYXRhIGFsb25nIHRvIHRoZSByZWxldmFudCBgUGF5bWVu
dEhhbmRsZXJgIGZvciBKU09OIChyZSlwYXJzaW5nIGlmIHRoZSBhc3NvY2lhdGVkCisgICAgICAg
IHBheW1lbnQgbWV0aG9kIHJlcXVpcmVzIGl0LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBh
eS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjptZXJnZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21w
bGV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRDb21wbGV0ZURldGFpbHMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsczo6ZW5jb2Rl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWls
czo6ZGVjb2RlKToKKyAgICAgICAgQ29udmVydCB0aGUgSlNPTiAocmUpcGFyc2VkIG9iamVjdCBp
bnRvIGEgYEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsc2AsIG1lcmdpbmcgaXQgaW50bwor
ICAgICAgICB0aGUgYEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRgIHBhc3NlZCB0
byB0aGUgYFBheW1lbnRDb29yZGluYXRvcmAgKHNlZSBiZWxvdykuCisKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ6OmlzRmluYWxTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBh
eVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg6Cisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQpOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmg6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y29t
cGxldGVQYXltZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGlu
YXRvci5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50
U2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JD
bGllbnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiB0
ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQ
YXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29y
ZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisgICAgICAgIFJlcGxhY2UgYFBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0YCB3aXRoIGBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0YCBzbyB0aGF0IGRhdGEKKyAgICAgICAgZG9lc24ndCBuZWVkIHRvIGJlIG1vdmVkIGJl
dHdlZW4gaWRlbnRpY2FsbHkgc2hhcGVkIHN0cnVjdHMgZm9yIHNlbmRpbmcgdG8gdGhlIFVJUHJv
Y2Vzcy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNp
b25Db2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9uOjpjdXJyZW50
KToKKyAgICAgICAgSW5jcmVtZW50IHRoZSBjdXJyZW50IHZlcnNpb24uCisKKyAgICAgICAgKiBN
b2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpj
b21wbGV0ZSk6CisgICAgICAgIEFNUyBVSSBkb2VzIG5vdCBhbGxvdy9yZXF1aXJlIGFueSBkYXRh
IHRvIGJlIHByb3ZpZGVkIG9uIGNvbXBsZXRpb24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1h
Yy5jbWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2Eu
dHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAy
Mi0wMS0yNSAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEZpeCBub24tdW5pZmllZCBidWlsZCBieSBhZGRpbmcgbWlzc2luZyBoZWFkZXJzIHRv
IEpTS2V5ZnJhbWVFZmZlY3RDdXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDlkZDg1Njc3ZThkMWY0Zjkw
Nzc3MmNkYmI4YzVhZDYxNGY1NThmZDUuLjVlOTNkNzYwNmE5ODdjNWI4NWE0YmNjODUwM2FkZWEw
YWZjNDk4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjItMDEtMjYgIERldmluIFJv
dXNzbyAgPGRyb3Vzc29AYXBwbGUuY29tPgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFs
bG93IGFkZGl0aW9uYWwgcGF5bWVudCBtZXRob2Qgc3BlY2lmaWMgZGF0YSB0byBiZSBwYXNzZWQg
dG8gYGNvbXBsZXRlKClgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzU0MTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgyOTcwNDUxPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWxsb3dzIGZv
ciBkZXZlbG9wZXJzL21lcmNoYW50cyB0byBnaXZlIGFkZGl0aW9uYWwgZGV0YWlscyB0byBBcHBs
ZSBQYXkgb24gY29tcGxldGlvbi4KKworICAgICAgICBJc3N1ZTogPGh0dHBzOi8vZ2l0aHViLmNv
bS93M2MvcGF5bWVudC1yZXF1ZXN0L2lzc3Vlcy85ODE+CisgICAgICAgIFNwZWMgUFI6IDxodHRw
czovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQtcmVxdWVzdC9wdWxsLzk4Mj4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAoaGVhZGVyc19m
b3JfdHlwZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAg
ICAgICAqIFNoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAgICAg
ICAgKElQQzo6QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD46OmVuY29kZSk6IERlbGV0ZWQuCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+OjpkZWNvZGUpOiBEZWxldGVkLgorICAgICAg
ICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHku
aDoKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Y29tcGxl
dGVQYXltZW50U2Vzc2lvbik6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBh
eW1lbnRDb29yZGluYXRvclByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1l
bnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24pOgorICAg
ICAgICAqIFNoYXJlZC9BcHBsZVBheS9pb3MvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlJT1Mu
bW06CisgICAgICAgICogUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXIuaDoKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlci5tbToKKyAgICAgICAgKFdlYktpdDo6dG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVz
KToKKyAgICAgICAgKFdlYktpdDo6UGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBs
ZXRlUGF5bWVudFNlc3Npb24pOgorICAgICAgICBSZXBsYWNlIGBQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdGAgd2l0aCBgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdGAgc28gdGhh
dCBkYXRhCisgICAgICAgIGRvZXNuJ3QgbmVlZCB0byBiZSBtb3ZlZCBiZXR3ZWVuIGlkZW50aWNh
bGx5IHNoYXBlZCBzdHJ1Y3RzIGZvciBzZW5kaW5nIHRvIHRoZSBVSVByb2Nlc3MuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUuaDoKKyAg
ICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW06
CisgICAgICAgIEFkZCBzb21lIFdLQSBob29rcy4KKwogMjAyMi0wMS0yNSAgTWljaGFlbCBTYWJv
ZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBJbnN0YWxsIGJ1aWxkIGZhaWx1cmUg
d2hlbiB1c2luZyBTWVNURU1fQ09OVEVOVF9QQVRICmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cK
aW5kZXggODRiNzgzZjAyZjgwMmY1OGM5N2Q3ZDI5NTM1YjM2ZWY0OTBjNmJlYy4uY2Y1MjBlNTg5
MmM4NDQ0MTZmNWIyNWUyNWM2ZmM5MWEzZDAwNWE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTI2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3Nv
QGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhbGxvdyBhZGRpdGlvbmFs
IHBheW1lbnQgbWV0aG9kIHNwZWNpZmljIGRhdGEgdG8gYmUgcGFzc2VkIHRvIGBjb21wbGV0ZSgp
YAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1NDE1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mjk3MDQ1MT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRD
b29yZGluYXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRD
b29yZGluYXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVu
dDo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisKIDIwMjItMDEtMTkgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBbGxvdyBleHBlcmltZW50
YWwgZmVhdHVyZSBuYW1lcyB0byBiZSBoaWRkZW4gaW4gV2ViS2l0QWRkaXRpb25zCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CmluZGV4IGVhM2I5ZmNkNmE3ODhjMDdiZTYyZDZiNzZlZjMzYjg4YmJlNGE0Y2Eu
LjBiYmY3MzE5ZGU2MzA4OGFjODJiNWM4YzM1MjBkNGE0MmNlMWYyODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CkBAIC00ODQsNiArNDg0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExfRklMRVMK
ICAgICBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheWVyRXJyb3JGaWVsZHMuaWRsCiAgICAgTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50QWRkcmVzcy5pZGwKICAgICBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZS5pZGwKKyAgICBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50Q3VycmVuY3lBbW91bnQuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50RGV0YWlsc0Jhc2UuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50RGV0
YWlsc0luaXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1p
bnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAppbmRleCAyYWExNjZmZDg2MTEzMWYzNTJhMDJkMTc0NTEzYzgzMDdmZGM1OWM2Li5m
OGIzNmI4MTFkNzFhOWQyMWM4NzBjMTEzNGJhYzQ4MTE4NjBhMGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTIxOCw2ICsyMTgsNyBA
QCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RT
ZWxlY3RlZEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBh
eS9BcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwKKyQoUFJPSkVD
VF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29t
cGxldGVEZXRhaWxzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50
cmVxdWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FzeW5j
LWNsaXBib2FyZC9DbGlwYm9hcmQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FzeW5jLWNs
aXBib2FyZC9DbGlwYm9hcmRJdGVtLmlkbApAQCAtNTUxLDYgKzU1Miw3IEBAICQoUFJPSkVDVF9E
SVIpL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQuaWRsCiAk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheWVyRXJyb3JGaWVsZHMuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRBZGRyZXNzLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGUu
aWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0
ZURldGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1l
bnRDdXJyZW5jeUFtb3VudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcGF5bWVudHJlcXVl
c3QvUGF5bWVudERldGFpbHNCYXNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50RGV0YWlsc0luaXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGQwNDMwNjFkYjQ2YWExOTQ1YTRlY2Fh
N2U4OTQ1Mzc4MTQ4ZDBjODkuLmNlMTQ1OGJhNzc5MmRlYjg0ZDZkZGFkOGM1MjcwYjZhZWEzYTAz
ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2Zp
bGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVs
aXN0CkBAIC0xMjQsNiArMTI0LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWwKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50QXV0aG9y
aXplZEV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3Jl
L0pTQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmNwcAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBs
ZVBheVBheW1lbnRDb250YWN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRDb250YWN0LmgKICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50TWV0aG9kLmNwcApA
QCAtMTc5Myw2ICsxNzk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNQYXltZW50QWRkcmVzcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTUGF5bWVudEFkZHJlc3MuaAogJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYXltZW50Q29tcGxldGUuY3BwCiAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BheW1lbnRDb21wbGV0ZS5o
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BheW1lbnRD
b21wbGV0ZURldGFpbHMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU1BheW1lbnRDb21wbGV0ZURldGFpbHMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIp
L0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYXltZW50Q3VycmVuY3lBbW91bnQuY3BwCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BheW1lbnRDdXJyZW5j
eUFtb3VudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U1BheW1lbnREZXRhaWxzQmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2
ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IDVhYThlZDUyZDhmNmMwYzg2NmMxODA2ZTFlNzcwYThkNzZiNzNkYjguLjk2M2ZjNTZjMTcxY2U5
NDNjYTA0ZDhjNzhmYjA1MzFlYjk5OTM0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZQpAQCAtMjM5LDYgKzIzOSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZl
bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3Qv
QXBwbGVQYXlNb2RpZmllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlSZXF1ZXN0
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFN
U1VJUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hc3luYy1jbGlwYm9hcmQv
Q2xpcGJvYXJkLmlkbCBcCkBAIC00NzEsNiArNDcyLDcgQEAgSlNfQklORElOR19JRExTIDo9IFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5ZXJFcnJvckZpZWxkcy5p
ZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50QWRkcmVz
cy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29t
cGxldGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dENvbXBsZXRlRGV0YWlscy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50Q3VycmVuY3lBbW91bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzSW5pdC5pZGwgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggYTVlYTUyNWU5ZWVmMDk0NWM1ZWVjZmIxZmM1ZTY2NDM3ODVjMDY5My4uYzEx
OGIwMTMxNThiYzA3ZDdiMjk5OWM3OTc0ZjZlMzJjYWNhNjRhYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC0xMzMsNyArMTMzLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5o
CiAgICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50LmgKLSAgICBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRD
b250YWN0LmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5oCiAgICAg
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1l
bnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0Fw
cGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKaW5kZXggZmQyMDA1ZjY2ZjZlZmYxMTY1NDQ0
MmVkYzlhNWQ2N2IzYjgxOTRlYS4uY2UzY2U5ZjgwOGUxNDE0ODY0ZTkyYzkyMGI1ZGM2ODJlZjhi
YzM3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkv
QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0x
NjEsOSArMTYxLDExIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXltZW50SGFu
ZGxlcjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6CiAgICAgcmV0dXJuIHsgfTsK
IH0KIAotdm9pZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbXBsZXRlKHN0ZDo6b3B0
aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyOjpjb21wbGV0ZShEb2N1bWVudCYsIHN0ZDo6b3B0aW9uYWw8UGF5bWVu
dENvbXBsZXRlPiYmLCBTdHJpbmcmJiwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogeworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgaGlkZSgpOworICAgIHJldHVy
biB7IH07CiB9CiAKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
cjo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMmJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmgKaW5kZXggOTQwZjA0NGIxOTJmYzgyNzNlNDRmNjMyM2ZmMDFlYjg3
ZTAxODBjZC4uM2EzM2QyM2ZjOWNjNGJlNzdkZDBmOGMyNzgwYWM0YTZhZDkyNGYzYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1h
bXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmgKQEAgLTc1LDcgKzc1LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
ZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJy
b3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBw
YXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFu
dFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwotICAgIHZvaWQgY29t
cGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpIGZpbmFsOworICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGNvbXBsZXRlKERvY3VtZW50Jiwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29t
cGxldGU+JiYsIFN0cmluZyYmIHNlcmlhbGl6ZWREYXRhLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1l
bnRWYWxpZGF0aW9uRXJyb3JzJiYpIGZpbmFsOwogCiAgICAgUGF5bWVudFJlcXVlc3Q6Ok1ldGhv
ZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU1NjQwNDdlYmY0YmU2Y2E3MjdhMjE5OTU2ZDUyYWFk
YjFjMmZlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5jcHAKQEAgLTAsMCArMSw1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgiCisKKyNpZiBFTkFCTEUoQVBQTEVfUEFZKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdDo6aXNGaW5hbFN0YXRlKCkgY29uc3QKK3sKKyAgICBzd2l0Y2ggKHN0YXR1cykgeworICAg
IGNhc2UgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6U3VjY2VzczoKKyAgICBj
YXNlIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OkZhaWx1cmU6CisgICAgICAg
IHJldHVybiBlcnJvcnMuaXNFbXB0eSgpOworCisgICAgY2FzZSBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0OjpQSU5SZXF1aXJlZDoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQ6OlBJTkluY29ycmVjdDoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQ6OlBJTkxvY2tvdXQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRp
ZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQuaAppbmRleCAwM2QxN2Q4MThkNTNkZWRiNzE4YmQ1ODcxYjdkNmE2OTZjY2NjNTJjLi5iMGM3
N2RjNDBkYTZhYWEzMzYzZmI2NjU0ZGM2MjMyNGM2MDBhZTM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQuaApAQCAtMjgsMTYgKzI4LDc2IEBACiAjaWYgRU5BQkxFKEFQ
UExFX1BBWSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIKKyNpbmNsdWRlIDxvcHRpb25h
bD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCisj
aWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxXZWJLaXRBZGRpdGlvbnMvQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9ucy5oPgorI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQgewotICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1czsKKyAgICB1c2luZyBTdGF0dXMgPSB1
bnNpZ25lZCBzaG9ydDsKKyAgICBzdGF0aWMgY29uc3QgU3RhdHVzIFN1Y2Nlc3MgPSAwOworICAg
IHN0YXRpYyBjb25zdCBTdGF0dXMgRmFpbHVyZSA9IDE7CisgICAgc3RhdGljIGNvbnN0IFN0YXR1
cyBJbnZhbGlkQmlsbGluZ1Bvc3RhbEFkZHJlc3MgPSAyOworICAgIHN0YXRpYyBjb25zdCBTdGF0
dXMgSW52YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVzcyA9IDM7CisgICAgc3RhdGljIGNvbnN0IFN0
YXR1cyBJbnZhbGlkU2hpcHBpbmdDb250YWN0ID0gNDsKKyAgICBzdGF0aWMgY29uc3QgU3RhdHVz
IFBJTlJlcXVpcmVkID0gNTsKKyAgICBzdGF0aWMgY29uc3QgU3RhdHVzIFBJTkluY29ycmVjdCA9
IDY7CisgICAgc3RhdGljIGNvbnN0IFN0YXR1cyBQSU5Mb2Nrb3V0ID0gNzsKKworICAgIFN0YXR1
cyBzdGF0dXM7IC8vIHJlcXVpcmVkCiAgICAgVmVjdG9yPFJlZlB0cjxBcHBsZVBheUVycm9yPj4g
ZXJyb3JzOworCisjaWYgZGVmaW5lZChBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
QWRkaXRpb25zX21lbWJlcnMpCisgICAgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dEFkZGl0aW9uc19tZW1iZXJzCisjZW5kaWYKKworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNG
aW5hbFN0YXRlKCkgY29uc3Q7CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVu
Y29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gZGVjb2Rl
KERlY29kZXImKTsKIH07CiAKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEFwcGxlUGF5
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dAoreworICAgIGVuY29kZXIgPDwgc3RhdHVzOworICAgIGVuY29kZXIgPDwgZXJyb3JzOworI2lm
IGRlZmluZWQoQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9uc19lbmNv
ZGUpCisgICAgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9uc19lbmNv
ZGUKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBBcHBsZVBheVBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RF
KG5hbWUsIHR5cGUpIFwKKyAgICBzdGQ6Om9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNv
ZGVyID4+IG5hbWU7IFwKKyAgICBpZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsgXAorCisgICAgREVDT0RFKHN0YXR1cywgU3RhdHVzKQorICAgIERFQ09ERShlcnJvcnMs
IFZlY3RvcjxSZWZQdHI8QXBwbGVQYXlFcnJvcj4+KQorI2lmIGRlZmluZWQoQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9uc19kZWNvZGVfbWVtYmVycykKKyAgICBBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0QWRkaXRpb25zX2RlY29kZV9tZW1iZXJzCisj
ZW5kaWYKKworI3VuZGVmIERFQ09ERQorCisgICAgcmV0dXJuIHsgeworICAgICAgICBXVEZNb3Zl
KCpzdGF0dXMpLAorICAgICAgICBXVEZNb3ZlKCplcnJvcnMpLAorI2lmIGRlZmluZWQoQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9uc19kZWNvZGVfcmV0dXJuKQorICAg
IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRBZGRpdGlvbnNfZGVjb2RlX3JldHVy
bgorI2VuZGlmCisgICAgfSB9OworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCmluZGV4IDBmNTNlZjVi
M2VmMWM5ZDI1YWNiMGI4NmVjYTIzMDE0MzFmM2M4YTYuLjIwZjkyYmEyNTNiZTg0OTk3ODdjZDIx
ZTBkMjVlYjA4ZGFiZTdkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTU1LDcgKzU1LDYgQEAKICNpbmNsdWRlICJM
aW5rSWNvblR5cGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNvbnNvbGVD
bGllbnQuaCIKLSNpbmNsdWRlICJQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIgogI2luY2x1
ZGUgIlBheW1lbnRDb250YWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCiAj
aW5jbHVkZSAiUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oIgpAQCAtMTk0LDUzICsxOTMsNDAgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0
QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGQKICAgICByZXR1cm4gV1RGTW92ZShyZXN1bHQpOwogfQog
Ci1zdGF0aWMgRXhjZXB0aW9uT3I8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IGNvbnZlcnRB
bmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVzdWx0KQor
c3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IGNv
bnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVz
dWx0KQogewotICAgIFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IGNvbnZlcnRlZFJlc3VsdDsK
LQogICAgIHN3aXRjaCAocmVzdWx0LnN0YXR1cykgewotICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9u
OjpTVEFUVVNfU1VDQ0VTUzoKLSAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzOjpTdWNjZXNzOworICAgIGNhc2UgQXBwbGVQYXlQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdDo6U3VjY2VzczoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQ6OkZhaWx1cmU6CisgICAgY2FzZSBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0OjpQSU5SZXF1aXJlZDoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQ6OlBJTkluY29ycmVjdDoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQ6OlBJTkxvY2tvdXQ6CiAgICAgICAgIGJyZWFrOwogCi0gICAg
Y2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19GQUlMVVJFOgotICAgICAgICBjb252ZXJ0ZWRS
ZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7CisgICAg
Y2FzZSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpJbnZhbGlkQmlsbGluZ1Bv
c3RhbEFkZHJlc3M6CisgICAgICAgIHJlc3VsdC5zdGF0dXMgPSBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0OjpGYWlsdXJlOworICAgICAgICByZXN1bHQuZXJyb3JzLmluc2VydCgw
LCBBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250YWN0
SW52YWxpZCwgc3RkOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKICAgICAgICAgYnJlYWs7CiAK
LSAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0lOVkFMSURfQklMTElOR19QT1NUQUxf
QUREUkVTUzoKLSAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFw
cGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OkJpbGxpbmdDb250
YWN0SW52YWxpZCwgc3RkOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKKyAgICBjYXNlIEFwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OkludmFsaWRTaGlwcGluZ1Bvc3RhbEFkZHJl
c3M6CisgICAgICAgIHJlc3VsdC5zdGF0dXMgPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0OjpGYWlsdXJlOworICAgICAgICByZXN1bHQuZXJyb3JzLmluc2VydCgwLCBBcHBsZVBh
eUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQs
IEFwcGxlUGF5RXJyb3JDb250YWN0RmllbGQ6OlBvc3RhbEFkZHJlc3MsIG51bGxTdHJpbmcoKSkp
OwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5W
QUxJRF9TSElQUElOR19QT1NUQUxfQUREUkVTUzoKLSAgICAgICAgY29udmVydGVkUmVzdWx0LnN0
YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpGYWlsdXJlOwotICAgICAgICBjb252
ZXJ0ZWRSZXN1bHQuZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlF
cnJvckNvZGU6OlNoaXBwaW5nQ29udGFjdEludmFsaWQsIEFwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQ6OlBvc3RhbEFkZHJlc3MsIG51bGxTdHJpbmcoKSkpOwotICAgICAgICBicmVhazsKLQotICAg
IGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9TSElQUElOR19DT05UQUNUOgot
ICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0
dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZCwgc3RkOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBj
YXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJTl9SRVFVSVJFRDoKLSAgICAgICAgY29udmVy
dGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5SZXF1aXJl
ZDsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEFwcGxlUGF5U2Vzc2lvbjo6U1RBVFVTX1BJ
Tl9JTkNPUlJFQ1Q6Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1czo6UElOSW5jb3JyZWN0OwotICAgICAgICBicmVhazsKLQotICAgIGNh
c2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0xPQ0tPVVQ6Ci0gICAgICAgIGNvbnZlcnRl
ZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElOTG9ja291dDsK
KyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OkludmFsaWRTaGlw
cGluZ0NvbnRhY3Q6CisgICAgICAgIHJlc3VsdC5zdGF0dXMgPSBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0OjpGYWlsdXJlOworICAgICAgICByZXN1bHQuZXJyb3JzLmluc2VydCgw
LCBBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlNoaXBwaW5nQ29udGFj
dEludmFsaWQsIHN0ZDo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAgICAgICAgIGJyZWFrOwog
CiAgICAgZGVmYXVsdDoKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciB9OwogICAgIH0KIAotICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kVmVjdG9y
KFdURk1vdmUocmVzdWx0LmVycm9ycykpOworI2lmIGRlZmluZWQoQXBwbGVQYXlTZXNzaW9uQWRk
aXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZV9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0KQorICAgIEFwcGxlUGF5U2Vzc2lvbkFkZGl0aW9uc19jb252ZXJ0QW5kVmFsaWRhdGVfQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdAorI2VuZGlmCiAKLSAgICByZXR1cm4gV1RG
TW92ZShjb252ZXJ0ZWRSZXN1bHQpOworICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAK
IHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+IGNvbnZlcnRB
bmRWYWxpZGF0ZShBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUmJiB1cGRhdGUpCkBAIC01Njcs
NyArNTUzLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVBh
eW1lbnQoQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblIKICAgICAgICAgcmV0dXJuIGNvbnZl
cnRlZFJlc3VsdE9yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGF1dG8mJiBj
b252ZXJ0ZWRSZXN1bHQgPSBjb252ZXJ0ZWRSZXN1bHRPckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJu
VmFsdWUoKTsKLSAgICBib29sIGlzRmluYWxTdGF0ZSA9IGlzRmluYWxTdGF0ZVJlc3VsdChjb252
ZXJ0ZWRSZXN1bHQpOworICAgIGJvb2wgaXNGaW5hbFN0YXRlID0gY29udmVydGVkUmVzdWx0Lmlz
RmluYWxTdGF0ZSgpOwogCiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVQYXltZW50
U2Vzc2lvbihXVEZNb3ZlKGNvbnZlcnRlZFJlc3VsdCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaAppbmRleCBmZTVhZmNmNWFhNDA3
YTY0YTMwMWM0NjcxMDhkYzI4ZDUyMzkzNzNkLi42ZTU2ZDc4YmQ0N2RhMGFiZGVhN2ZlNDkyMDY2
YWE0ZmYxMzQzM2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZ
KQogCiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCisjaW5jbHVkZSAiQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudFJlcXVl
c3QuaCIKICNpbmNsdWRlICJFdmVudFRhcmdldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgi
CkBAIC00OSwxMiArNTAsMTAgQEAgY2xhc3MgUGF5bWVudDsKIGNsYXNzIFBheW1lbnRDb250YWN0
OwogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yOwogY2xhc3MgUGF5bWVudE1ldGhvZDsKLWVudW0g
Y2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM7CiBzdHJ1Y3QgQXBwbGVQYXlDb3Vwb25D
b2RlVXBkYXRlOwogc3RydWN0IEFwcGxlUGF5TGluZUl0ZW07CiBzdHJ1Y3QgQXBwbGVQYXlQYXlt
ZW50UmVxdWVzdDsKIHN0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOwotc3RydWN0IEFwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7CiBzdHJ1Y3QgQXBwbGVQYXlQYXltZW50TWV0
aG9kVXBkYXRlOwogc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOwogc3RydWN0
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGU7CkBAIC02NSwxNCArNjQsMTQgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gY3JlYXRlKERv
Y3VtZW50JiwgdW5zaWduZWQgdmVyc2lvbiwgQXBwbGVQYXlQYXltZW50UmVxdWVzdCYmKTsKICAg
ICB2aXJ0dWFsIH5BcHBsZVBheVNlc3Npb24oKTsKIAotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBzaG9ydCBTVEFUVVNfU1VDQ0VTUyA9IDA7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNo
b3J0IFNUQVRVU19GQUlMVVJFID0gMTsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQg
U1RBVFVTX0lOVkFMSURfQklMTElOR19QT1NUQUxfQUREUkVTUyA9IDI7Ci0gICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHNob3J0IFNUQVRVU19JTlZBTElEX1NISVBQSU5HX1BPU1RBTF9BRERSRVNT
ID0gMzsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX0lOVkFMSURfU0hJ
UFBJTkdfQ09OVEFDVCA9IDQ7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNUQVRV
U19QSU5fUkVRVUlSRUQgPSA1OwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVEFU
VVNfUElOX0lOQ09SUkVDVCA9IDY7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNU
QVRVU19QSU5fTE9DS09VVCA9IDc7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNU
QVRVU19TVUNDRVNTID0gQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6U3VjY2Vz
czsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX0ZBSUxVUkUgPSBBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpGYWlsdXJlOworICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNfSU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNTID0g
QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6SW52YWxpZEJpbGxpbmdQb3N0YWxB
ZGRyZXNzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNfSU5WQUxJRF9T
SElQUElOR19QT1NUQUxfQUREUkVTUyA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQ6OkludmFsaWRTaGlwcGluZ1Bvc3RhbEFkZHJlc3M7CisgICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHNob3J0IFNUQVRVU19JTlZBTElEX1NISVBQSU5HX0NPTlRBQ1QgPSBBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0OjpJbnZhbGlkU2hpcHBpbmdDb250YWN0OworICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNfUElOX1JFUVVJUkVEID0gQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdDo6UElOUmVxdWlyZWQ7CisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIHNob3J0IFNUQVRVU19QSU5fSU5DT1JSRUNUID0gQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdDo6UElOSW5jb3JyZWN0OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBz
aG9ydCBTVEFUVVNfUElOX0xPQ0tPVVQgPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0OjpQSU5Mb2Nrb3V0OwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPGJvb2w+IHN1cHBvcnRz
VmVyc2lvbihEb2N1bWVudCYsIHVuc2lnbmVkIHZlcnNpb24pOwogICAgIHN0YXRpYyBFeGNlcHRp
b25Pcjxib29sPiBjYW5NYWtlUGF5bWVudHMoRG9jdW1lbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXlt
ZW50UmVxdWVzdC5jcHAKaW5kZXggYjdmNzA0Nzg4MWE4MzhhMTgyYTEzMThmOTk3YjkyM2NmN2U0
MzY0OC4uMzllYTJiNGMzYTI0ZTNmZDVjNjExMmI2MDE2MDdiZTUxODExODAwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb25QYXltZW50UmVxdWVzdC5jcHAKQEAgLTI4LDcgKzI4LDYgQEAKIAogI2lmIEVOQUJM
RShBUFBMRV9QQVkpCiAKLSNpbmNsdWRlICJQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIgog
I2luY2x1ZGUgPHd0Zi9Tb2Z0TGlua2luZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0z
NywyMyArMzYsNiBAQCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6QXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QoKSA9IGRlZmF1bHQ7CiAKIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRS
ZXF1ZXN0Ojp+QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QoKSA9IGRlZmF1bHQ7CiAKLWJv
b2wgaXNGaW5hbFN0YXRlUmVzdWx0KGNvbnN0IHN0ZDo6b3B0aW9uYWw8UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ+JiByZXN1bHQpCi17Ci0gICAgaWYgKCFyZXN1bHQpCi0gICAgICAgIHJldHVy
biB0cnVlOwotCi0gICAgc3dpdGNoIChyZXN1bHQtPnN0YXR1cykgewotICAgIGNhc2UgUGF5bWVu
dEF1dGhvcml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M6Ci0gICAgY2FzZSBQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czo6RmFpbHVyZToKLSAgICAgICAgcmV0dXJuIHJlc3VsdC0+ZXJyb3JzLmlzRW1w
dHkoKTsKLQotICAgIGNhc2UgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVk
OgotICAgIGNhc2UgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkluY29ycmVjdDoKLSAg
ICBjYXNlIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OgotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50
UmVxdWVzdC5oCmluZGV4IGY5ZTFiMWU1N2I1YzkzYmQzOTY1N2Q5NmQ2ZGFjZjA0ODk2MzZiYzku
LjNjZDI3OGMxZGFhOTRlODYyMmJiYjg0NTZiOGZlMzM2ZTMxZDc0MWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0LmgKQEAgLTQ0LDggKzQ0LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1lbnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOwotCiBjbGFzcyBBcHBs
ZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QoKTsKQEAgLTE4NywxMyArMTg1LDYgQEAgcHJp
dmF0ZToKICNlbmRpZgogfTsKIAotc3RydWN0IFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0IHsK
LSAgICBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXM7Ci0gICAgVmVjdG9yPFJlZlB0
cjxBcHBsZVBheUVycm9yPj4gZXJyb3JzOwotfTsKLQotV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0Zp
bmFsU3RhdGVSZXN1bHQoY29uc3Qgc3RkOjpvcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdD4mKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWUwNmQ0
NDEzYmQzYzg0NzBkZWUxOTdmYjAwNzQ0ZjhlOTBmZDhiYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFCTEUoQVBQTEVfUEFZKQot
Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1lbnVt
IGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHsKLSAgICBTdWNjZXNzLAotICAgIEZh
aWx1cmUsCi0gICAgUElOUmVxdWlyZWQsCi0gICAgUElOSW5jb3JyZWN0LAotICAgIFBJTkxvY2tv
dXQsCi19OwotCi19Ci0KLW5hbWVzcGFjZSBXVEYgewotdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cz4gewotICAgIHVzaW5nIHZh
bHVlcyA9IEVudW1WYWx1ZXM8Ci0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9u
U3RhdHVzLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3Vj
Y2VzcywKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1
cmUsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5SZXF1
aXJlZCwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTklu
Y29ycmVjdCwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJ
TkxvY2tvdXQKLSAgICA+OwotfTsKLX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKaW5kZXggYjAxMmI1
ODBkZDU5MjY5YTcxYjVkZWNlMTc2YzAwYmQ1NTZiZjMwZS4uZTk5NWEyYjFlNDU2Y2Q5ZmQzOWQy
NDgwOTc1MGY2MGJhNzFmYzNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcApAQCAtMzgsNyArMzgsNiBAQAogI2lu
Y2x1ZGUgIkxpbmtJY29uQ29sbGVjdG9yLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIgogI2lu
Y2x1ZGUgIlBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIgogI2luY2x1ZGUgIlBheW1lbnRTZXNz
aW9uLmgiCiAjaW5jbHVkZSAiVXNlckNvbnRlbnRQcm92aWRlci5oIgpAQCAtMTY0LDExICsxNjMs
MTEgQEAgdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlQ291cG9uQ29kZUNoYW5nZShz
dGQ6Om9wdGlvbmFsPEFwcGxlUGF5Q291cG9uQ28KIAogI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9Q
QVlfQ09VUE9OX0NPREUpCiAKLXZvaWQgUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1l
bnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYgcmVz
dWx0KQordm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKICAgICBBU1NFUlQo
bV9hY3RpdmVTZXNzaW9uKTsKIAotICAgIGJvb2wgaXNGaW5hbFN0YXRlID0gaXNGaW5hbFN0YXRl
UmVzdWx0KHJlc3VsdCk7CisgICAgYm9vbCBpc0ZpbmFsU3RhdGUgPSByZXN1bHQuaXNGaW5hbFN0
YXRlKCk7CiAgICAgUEFZTUVOVF9DT09SRElOQVRPUl9SRUxFQVNFX0xPRygiY29tcGxldGVQYXlt
ZW50U2Vzc2lvbigpIChpc0ZpbmFsU3RhdGU6ICVkKSIsIGlzRmluYWxTdGF0ZSk7CiAgICAgbV9j
bGllbnQuY29tcGxldGVQYXltZW50U2Vzc2lvbihXVEZNb3ZlKHJlc3VsdCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaApp
bmRleCAyNjdiNTg2ZWUwNTBlZjJhYTcwODRmM2JiMDJhZTlkNzJkZDk4ZjgzLi4zODJlZmI2Mzlm
OWNkMzk3NzRiYTBlOWI0NzM4OWY3MDE1MTlkZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKQEAgLTQzLDE1ICs0Mywx
NCBAQCBjbGFzcyBQYXltZW50TWVyY2hhbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudE1ldGhvZDsK
IGNsYXNzIFBheW1lbnRTZXNzaW9uOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKLWVudW0g
Y2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM7CiBzdHJ1Y3QgQXBwbGVQYXlDb3Vwb25D
b2RlVXBkYXRlOworc3RydWN0IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ7CiBz
dHJ1Y3QgQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlOwogc3RydWN0IEFwcGxlUGF5U2V0dXBD
b25maWd1cmF0aW9uOwogc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlOwogc3Ry
dWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7CiBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhv
ZFVwZGF0ZTsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwotc3RydWN0IFBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0OwogCiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3IgOiBwdWJsaWMgQ2FuTWFr
ZVdlYWtQdHI8UGF5bWVudENvb3JkaW5hdG9yPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CkBAIC03Niw3ICs3NSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBP
Tl9DT0RFKQogICAgIHZvaWQgY29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8
QXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlPiYmKTsKICNlbmRpZgotICAgIHZvaWQgY29tcGxldGVQ
YXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYm
KTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdCYmKTsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKTsKICAgICB2
b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvckNsaWVudC5oCmluZGV4IDA2
OGQ5ZTJhYTZjMTcxMmE5NzUwODA5Y2I2MzNkYjI2ZGYzYjBiZGEuLmZjYTRjNTYzODY5NDdjNzc2
NTA5ODA0YTk1NDkzNjViZDQxNTdlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApAQCAtMzgsMTEg
KzM4LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5
bWVudE1lcmNoYW50U2Vzc2lvbjsKIHN0cnVjdCBBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGU7Citz
dHJ1Y3QgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsKIHN0cnVjdCBBcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTZXR1cENvbmZpZ3VyYXRpb247
CiBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlT
aGlwcGluZ01ldGhvZFVwZGF0ZTsKLXN0cnVjdCBQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsK
IAogY2xhc3MgUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKIHB1YmxpYzoKQEAgLTYxLDcgKzYx
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpCiAgICAgdmly
dHVhbCB2b2lkIGNvbXBsZXRlQ291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5
Q291cG9uQ29kZVVwZGF0ZT4mJikgPSAwOwogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGNvbXBs
ZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4mJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKEFwcGxl
UGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBh
Ym9ydFBheW1lbnRTZXNzaW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxQYXltZW50
U2Vzc2lvbigpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcGF5bWVudENvb3JkaW5hdG9yRGVzdHJv
eWVkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9j
b2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCmluZGV4IGNkYTAzODk3Yjc4
MzFmOTc2MGU4YWJiNmI0ZGNmNzNlNTlkN2I0ODcuLjY4MjkwODUxNTE4YWIyYjJmZDE1YWRmZTQw
OTY3NTljZmYwNmFlZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0KQEAgLTM1LDcg
KzM1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogdW5zaWduZWQgUGF5bWVudEFQSVZlcnNpb246
OmN1cnJlbnQoKQogewogICAgIHN0YXRpYyB1bnNpZ25lZCBjdXJyZW50ID0gW10gewotI2lmIEVO
QUJMRShBUFBMRV9QQVlfUEFZTUVOVF9ERVRBSUxTX0RBVEEpIHx8IEVOQUJMRShBUFBMRV9QQVlf
QU1TX1VJKQorI2lmIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9DT01QTEVURV9ERVRBSUxTX0RB
VEEpCisgICAgICAgIHJldHVybiAxNDsKKyNlbGlmIEVOQUJMRShBUFBMRV9QQVlfUEFZTUVOVF9E
RVRBSUxTX0RBVEEpIHx8IEVOQUJMRShBUFBMRV9QQVlfQU1TX1VJKQogICAgICAgICByZXR1cm4g
MTM7CiAjZWxpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKSB8fCBFTkFCTEUoQVBQTEVf
UEFZX1NISVBQSU5HX0NPTlRBQ1RfRURJVElOR19NT0RFKSB8fCBFTkFCTEUoQVBQTEVfUEFZX1JF
Q1VSUklOR19MSU5FX0lURU0pIHx8IEVOQUJMRShBUFBMRV9QQVlfREVGRVJSRURfTElORV9JVEVN
KSB8fCBFTkFCTEUoQVBQTEVfUEFZX1NISVBQSU5HX01FVEhPRF9EQVRFX0NPTVBPTkVOVFNfUkFO
R0UpCiAgICAgICAgIHJldHVybiAxMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxz
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcwNzRmNTYxMjQyZTIyYTM4
ZGMyMTc3MDYzZTEzYTNjY2JmZDYxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRl
RGV0YWlscy5oCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShBUFBMRV9QQVkpICYmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCisKKyNpbmNs
dWRlIDxvcHRpb25hbD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8
V2ViS2l0QWRkaXRpb25zL0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsc0FkZGl0aW9ucy5o
PgorI2VuZGlmCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEFwcGxlUGF5UGF5bWVu
dENvbXBsZXRlRGV0YWlscyB7CisjaWYgZGVmaW5lZChBcHBsZVBheVBheW1lbnRDb21wbGV0ZURl
dGFpbHNBZGRpdGlvbnNfbWVtYmVycykKKyAgICBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHNBZGRpdGlvbnNfbWVtYmVycworI2VuZGlmCisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rl
cj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzPiBk
ZWNvZGUoRGVjb2RlciYpOworfTsKKwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBw
bGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKK3sKKyAgICBVTlVTRURfUEFSQU0oZW5jb2Rlcik7CisjaWYgZGVmaW5lZChBcHBsZVBheVBh
eW1lbnRDb21wbGV0ZURldGFpbHNBZGRpdGlvbnNfZW5jb2RlKQorICAgIEFwcGxlUGF5UGF5bWVu
dENvbXBsZXRlRGV0YWlsc0FkZGl0aW9uc19lbmNvZGUKKyNlbmRpZgorfQorCit0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHM+IEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsczo6ZGVjb2RlKERlY29kZXImIGRlY29k
ZXIpCit7CisjZGVmaW5lIERFQ09ERShuYW1lLCB0eXBlKSBcCisgICAgc3RkOjpvcHRpb25hbDx0
eXBlPiBuYW1lOyBcCisgICAgZGVjb2RlciA+PiBuYW1lOyBcCisgICAgaWYgKCFuYW1lKSBcCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7IFwKKworICAgIFVOVVNFRF9QQVJBTShkZWNvZGVy
KTsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsc0FkZGl0aW9uc19k
ZWNvZGVfbWVtYmVycykKKyAgICBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHNBZGRpdGlv
bnNfZGVjb2RlX21lbWJlcnMKKyNlbmRpZgorCisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4g
eyB7CisjaWYgZGVmaW5lZChBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHNBZGRpdGlvbnNf
ZGVjb2RlX3JldHVybikKKyAgICAgICAgQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzQWRk
aXRpb25zX2RlY29kZV9yZXR1cm4KKyNlbmRpZgorICAgIH0gfTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1F
TlRfUkVRVUVTVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50
Q29tcGxldGVEZXRhaWxzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZTU1ZjRmYTRhNTU4ZjFjYzdkMmNmNzEw
NGFmNjdmYzA4OTAyNjIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMu
aWRsCkBAIC0wLDAgKzEsMjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9QVBQ
TEVfUEFZJlBBWU1FTlRfUkVRVUVTVAorXSBkaWN0aW9uYXJ5IEFwcGxlUGF5UGF5bWVudENvbXBs
ZXRlRGV0YWlscyB7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKaW5kZXggYThiNjBlZTQ3OTIyMTViZDI3NjY4YWJlMWZkNzQ3ZjRlNDk2NzYwZC4u
ZDU1ZmU4OWYxNmEzZmViMjQ5YWIzY2MxOTAzYzllZWNjYTM3MTY0NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCkBAIC00MCw2ICs0MCw4IEBACiAj
aW5jbHVkZSAiQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJBcHBsZVBh
eU1vZGlmaWVyLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50LmgiCisjaW5jbHVkZSAiQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIgorI2luY2x1ZGUgIkFwcGxlUGF5UGF5
bWVudENvbXBsZXRlRGV0YWlscy5oIgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVudE1ldGhvZFVw
ZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaCIKQEAgLTU5LDcgKzYxLDcgQEAK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGF5ZXJFcnJvckZpZWxkcy5oIgogI2luY2x1
ZGUgIlBheW1lbnQuaCIKLSNpbmNsdWRlICJQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIgor
I2luY2x1ZGUgIlBheW1lbnRDb21wbGV0ZS5oIgogI2luY2x1ZGUgIlBheW1lbnRDb250YWN0Lmgi
CiAjaW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudERldGFp
bHNNb2RpZmllci5oIgpAQCAtNjg1LDI3ICs2ODcsNDggQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBw
bGVQYXlQYXltZW50SGFuZGxlcjo6cGF5bWVudE1ldGhvZFVwZGF0ZWQoVmVjdG9yPFJlZlB0cjxB
cHAKICAgICByZXR1cm4geyB9OwogfQogCi12b2lkIEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNv
bXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmIHJlc3VsdCkKLXsKLSAgICBp
ZiAoIXJlc3VsdCkgewotICAgICAgICBBU1NFUlQoaXNGaW5hbFN0YXRlUmVzdWx0KHN0ZDo6bnVs
bG9wdCkpOwotICAgICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBheW1lbnRTZXNz
aW9uKHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisjaWYgIVVTRShBUFBM
RV9JTlRFUk5BTF9TREspCitzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlQYXltZW50Q29tcGxl
dGVEZXRhaWxzPiBjb252ZXJ0QW5kVmFsaWRhdGUoQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRh
aWxzJiYgZGV0YWlscykgeyByZXR1cm4gV1RGTW92ZShkZXRhaWxzKTsgfQorc3RhdGljIHZvaWQg
bWVyZ2UoQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYsIEFwcGxlUGF5UGF5bWVu
dENvbXBsZXRlRGV0YWlscyYmKSB7IH0KKyNlbmRpZgogCi0gICAgUGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQgYXV0aG9yaXphdGlvblJlc3VsdDsKLSAgICBzd2l0Y2ggKCpyZXN1bHQpIHsKK0V4
Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OmNvbXBsZXRlKERvY3VtZW50
JiBkb2N1bWVudCwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYgcmVzdWx0LCBTdHJp
bmcmJiBzZXJpYWxpemVkRGF0YSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQoreworICAgIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgYXV0aG9yaXphdGlv
blJlc3VsdDsKKworICAgIHN3aXRjaCAocmVzdWx0LnZhbHVlX29yKFBheW1lbnRDb21wbGV0ZTo6
U3VjY2VzcykpIHsKICAgICBjYXNlIFBheW1lbnRDb21wbGV0ZTo6RmFpbDoKICAgICBjYXNlIFBh
eW1lbnRDb21wbGV0ZTo6VW5rbm93bjoKLSAgICAgICAgYXV0aG9yaXphdGlvblJlc3VsdC5zdGF0
dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKKyAgICAgICAgYXV0aG9y
aXphdGlvblJlc3VsdC5zdGF0dXMgPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
OjpGYWlsdXJlOwogICAgICAgICBicmVhazsKKwogICAgIGNhc2UgUGF5bWVudENvbXBsZXRlOjpT
dWNjZXNzOgotICAgICAgICBhdXRob3JpemF0aW9uUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzOjpTdWNjZXNzOworICAgICAgICBhdXRob3JpemF0aW9uUmVzdWx0LnN0
YXR1cyA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OlN1Y2Nlc3M7CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KIAotICAgIEFTU0VSVChpc0ZpbmFsU3RhdGVSZXN1bHQoYXV0aG9y
aXphdGlvblJlc3VsdCkpOworICAgIGlmICghc2VyaWFsaXplZERhdGEuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZG9jdW1lbnQudm0o
KSk7CisKKyAgICAgICAgYXV0byBwYXJzZWREYXRhID0gSlNPTlBhcnNlKGRvY3VtZW50Lmdsb2Jh
bE9iamVjdCgpLCBXVEZNb3ZlKHNlcmlhbGl6ZWREYXRhKSk7CisgICAgICAgIGlmICh0aHJvd1Nj
b3BlLmV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5n
RXhjZXB0aW9uRXJyb3IgfTsKKworICAgICAgICBhdXRvIGRldGFpbHMgPSBjb252ZXJ0RGljdGlv
bmFyeTxBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHM+KCpkb2N1bWVudC5nbG9iYWxPYmpl
Y3QoKSwgV1RGTW92ZShwYXJzZWREYXRhKSk7CisgICAgICAgIGlmICh0aHJvd1Njb3BlLmV4Y2Vw
dGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9u
RXJyb3IgfTsKKworICAgICAgICBhdXRvIGNvbnZlcnRlZERldGFpbHMgPSBjb252ZXJ0QW5kVmFs
aWRhdGUoV1RGTW92ZShkZXRhaWxzKSk7CisgICAgICAgIGlmIChjb252ZXJ0ZWREZXRhaWxzLmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRlZERldGFpbHMucmVsZWFz
ZUV4Y2VwdGlvbigpOworICAgICAgICBtZXJnZShhdXRob3JpemF0aW9uUmVzdWx0LCBjb252ZXJ0
ZWREZXRhaWxzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpKTsKKyAgICB9CisKKyAgICBjb21wbGV0aW9u
SGFuZGxlcigpOworCisgICAgQVNTRVJUKGF1dGhvcml6YXRpb25SZXN1bHQuaXNGaW5hbFN0YXRl
KCkpOwogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV1RG
TW92ZShhdXRob3JpemF0aW9uUmVzdWx0KSk7CisgICAgcmV0dXJuIHsgfTsKIH0KIAogRXhjZXB0
aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlkYXRp
b25FcnJvcnMmJiB2YWxpZGF0aW9uRXJyb3JzKQpAQCAtNzIzLDggKzc0Niw4IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEFwcGxlUGF5UGF5bWVudEhhbmRsZXI6OnJldHJ5KFBheW1lbnRWYWxpZGF0aW9u
RXJyb3JzJiYgdmFsaWRhCiAgICAgaWYgKGVycm9ycy5pc0VtcHR5KCkpCiAgICAgICAgIGVycm9y
cy5hcHBlbmQoQXBwbGVQYXlFcnJvcjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpVbmtub3du
LCBzdGQ6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwogCi0gICAgUGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQgYXV0aG9yaXphdGlvblJlc3VsdCB7IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVz
OjpGYWlsdXJlLCBXVEZNb3ZlKGVycm9ycykgfTsKLSAgICBBU1NFUlQoIWlzRmluYWxTdGF0ZVJl
c3VsdChhdXRob3JpemF0aW9uUmVzdWx0KSk7CisgICAgQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdCBhdXRob3JpemF0aW9uUmVzdWx0IHsgQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdDo6RmFpbHVyZSwgV1RGTW92ZShlcnJvcnMpIH07CisgICAgQVNTRVJUKCFhdXRo
b3JpemF0aW9uUmVzdWx0LmlzRmluYWxTdGF0ZSgpKTsKICAgICBwYXltZW50Q29vcmRpbmF0b3Io
KS5jb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdURk1vdmUoYXV0aG9yaXphdGlvblJlc3VsdCkpOwog
ICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5oCmluZGV4IDkxNzFkYmU1ZTNlMDA3N2U2YjMxMTBiNjQ0N2ZjMjk5YjAyYzc4OGUuLjc5
OWJhZmYxMDU0NTI5ZTExZWU3MTYyNjgzMjE2MGY0ZWE4YzVlMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50
SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oCkBAIC03OCw3ICs3OCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjYW5NYWtlUGF5bWVudChEb2N1bWVudCYsIEZ1bmN0aW9uPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGRldGFp
bHNVcGRhdGVkKFBheW1lbnRSZXF1ZXN0OjpVcGRhdGVSZWFzb24sIFN0cmluZyYmIGVycm9yLCBB
ZGRyZXNzRXJyb3JzJiYsIFBheWVyRXJyb3JGaWVsZHMmJiwgSlNDOjpKU09iamVjdCogcGF5bWVu
dE1ldGhvZEVycm9ycykgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gbWVyY2hhbnRWYWxp
ZGF0aW9uQ29tcGxldGVkKEpTQzo6SlNWYWx1ZSYmKSBmaW5hbDsKLSAgICB2b2lkIGNvbXBsZXRl
KHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKSBmaW5hbDsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBjb21wbGV0ZShEb2N1bWVudCYsIHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRl
PiYmLCBTdHJpbmcmJiBzZXJpYWxpemVkRGF0YSwgRnVuY3Rpb248dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiByZXRyeShQYXltZW50VmFs
aWRhdGlvbkVycm9ycyYmKSBmaW5hbDsKIAogICAgIC8vIFBheW1lbnRTZXNzaW9uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0
ZURldGFpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVu
dENvbXBsZXRlRGV0YWlscy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0NDk3ZjhhZjVkYTZmZjIxMjBmNDE3MDEx
NjBlMmNlN2VlMDQ0OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaApAQCAtMCwwICsxLDQxIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNU
KQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3QuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJvbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgUGF5
bWVudENvbXBsZXRlRGV0YWlscyB7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gZGF0
YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShQQVlN
RU5UX1JFUVVFU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YjEwNTY2ZjM0ZTFjYmM2MDVlNzZjMmZkNjlkMmVjOGM1ZmQ3YzliCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGVE
ZXRhaWxzLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENvbmRpdGlv
bmFsPVBBWU1FTlRfUkVRVUVTVAorXSBkaWN0aW9uYXJ5IFBheW1lbnRDb21wbGV0ZURldGFpbHMg
eworICAgIG9iamVjdD8gZGF0YTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmgKaW5kZXggZjlkYTI0YjUxYWQxYWRj
Y2ZiMDA3NTkxMjVkNmY3MzBkYmFmOTdlYy4uOGE2OTUyNGJkODFlNjA2OTFmNGY5YTljNDdhNGMy
NGQyZTZkOTMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgPSAwOwogICAgIHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9p
ZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYg
ZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0
KiBwYXltZW50TWV0aG9kRXJyb3JzKSA9IDA7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVlJiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpID0g
MDsKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlKERvY3VtZW50Jiwgc3Rk
OjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYsIFN0cmluZyYmIHNlcmlhbGl6ZWREYXRhLCBG
dW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpID0gMDsKICAgICB2aXJ0dWFsIEV4
Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYpID0gMDsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5
bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9Q
YXltZW50UmVxdWVzdC5jcHAKaW5kZXggZmRiMmRjYTBmNDZkYWIxODdjZDgxZTI5MTA5OWI0Y2Nj
NDZiYmE1MS4uMmIzNjY0MDA0Zjg5ZjVhNmQxYjkyMmU5ZjYzMjNhYjA5OGJkMmY0YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5jcHAKQEAgLTc3MiwxMyArNzcyLDE2IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnJl
amVjdChFeGNlcHRpb24mJiBleGNlcHRpb24pCiAgICAgYWJvcnRXaXRoRXhjZXB0aW9uKFdURk1v
dmUoZXhjZXB0aW9uKSk7CiB9CiAKLUV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0Ojpj
b21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJiByZXN1bHQpCitFeGNlcHRp
b25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6Y29tcGxldGUoRG9jdW1lbnQmIGRvY3VtZW50LCBz
dGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJiByZXN1bHQsIFN0cmluZyYmIHNlcmlhbGl6
ZWREYXRhLCBGdW5jdGlvbjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNT
RVJUKG1fc3RhdGUgPT0gU3RhdGU6OkNsb3NlZCk7CiAgICAgaWYgKCFtX2FjdGl2ZVBheW1lbnRI
YW5kbGVyKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgQWJvcnRFcnJvciB9OwogCi0gICAg
YWN0aXZlUGF5bWVudEhhbmRsZXIoKS0+Y29tcGxldGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICBh
dXRvIGV4Y2VwdGlvbiA9IGFjdGl2ZVBheW1lbnRIYW5kbGVyKCktPmNvbXBsZXRlKGRvY3VtZW50
LCBXVEZNb3ZlKHJlc3VsdCksIFdURk1vdmUoc2VyaWFsaXplZERhdGEpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgaWYgKGV4Y2VwdGlvbi5oYXNFeGNlcHRpb24oKSkKKyAgICAg
ICAgcmV0dXJuIGV4Y2VwdGlvbi5yZWxlYXNlRXhjZXB0aW9uKCk7CisKICAgICBtX2FjdGl2ZVBh
eW1lbnRIYW5kbGVyID0gc3RkOjpudWxsb3B0OwogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmgKaW5kZXggZWJiZDU0MjZhNTc4YjdiNzU3OTIzYzAzNmQ5YjE0ZTE3ZDU0NjdiYS4uMmYyM2Qx
MWNlNzIzNWNjZWE4MGFmMjJhMjE0ODRhMDAzNmNlMjgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuaApAQCAtMzYs
NiArMzYsNyBAQAogI2luY2x1ZGUgIlBheW1lbnRPcHRpb25zLmgiCiAjaW5jbHVkZSAiUGF5bWVu
dFJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8dmFyaWFudD4KKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24u
aD4KICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTk5LDcg
KzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFjY2VwdChjb25zdCBTdHJpbmcmIG1ldGhvZE5h
bWUsIFBheW1lbnRSZXNwb25zZTo6RGV0YWlsc0Z1bmN0aW9uJiYpOwogICAgIHZvaWQgYWNjZXB0
KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3BvbnNlOjpEZXRhaWxzRnVuY3Rp
b24mJiwgUmVmPFBheW1lbnRBZGRyZXNzPiYmIHNoaXBwaW5nQWRkcmVzcywgY29uc3QgU3RyaW5n
JiBwYXllck5hbWUsIGNvbnN0IFN0cmluZyYgcGF5ZXJFbWFpbCwgY29uc3QgU3RyaW5nJiBwYXll
clBob25lKTsKICAgICB2b2lkIHJlamVjdChFeGNlcHRpb24mJik7Ci0gICAgRXhjZXB0aW9uT3I8
dm9pZD4gY29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpOworICAgIEV4
Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlKERvY3VtZW50Jiwgc3RkOjpvcHRpb25hbDxQYXltZW50
Q29tcGxldGU+JiYsIFN0cmluZyYmIHNlcmlhbGl6ZWREYXRhLCBGdW5jdGlvbjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRW
YWxpZGF0aW9uRXJyb3JzJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNw
cAppbmRleCAyMWNkYzIxNTVlZTFhODczYmQyZmQzM2RlMDQxNTJmMjAzZDQ4ZmM3Li5mYjE4ZWI2
MTVjYjNlN2FlNTg2YmNhMDZhYTdmNDJlMWMyYzJmODJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuY3BwCkBA
IC0yOCw5ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKIAorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBheW1lbnRDb21wbGV0ZS5oIgorI2lu
Y2x1ZGUgIlBheW1lbnRDb21wbGV0ZURldGFpbHMuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVz
dC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT05PYmplY3QuaD4KKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9UaHJvd1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGlu
ZXMuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC02Myw3ICs2OCw3IEBAIHZvaWQg
UGF5bWVudFJlc3BvbnNlOjpzZXREZXRhaWxzRnVuY3Rpb24oRGV0YWlsc0Z1bmN0aW9uJiYgZGV0
YWlsc0Z1bmN0aW9uKQogICAgIG1fY2FjaGVkRGV0YWlscyA9IHsgfTsKIH0KIAotdm9pZCBQYXlt
ZW50UmVzcG9uc2U6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmIHJl
c3VsdCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgUGF5bWVudFJl
c3BvbnNlOjpjb21wbGV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIHN0ZDo6b3B0aW9uYWw8UGF5bWVu
dENvbXBsZXRlPiYmIHJlc3VsdCwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGVEZXRhaWxz
PiYmIGRldGFpbHMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAg
aWYgKG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwZWQgfHwgIW1fcmVxdWVzdCkgewogICAgICAgICBw
cm9taXNlLnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwpAQCAtNzUsMTIgKzgwLDI1
IEBAIHZvaWQgUGF5bWVudFJlc3BvbnNlOjpjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRD
b21wbGV0ZT4mJiByZXN1bHQsIERPTVByb21pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBBU1NFUlQoaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwotICAgIEFTU0VSVChtX3N0YXRlID09IFN0
YXRlOjpDcmVhdGVkKTsKLSAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7Ci0gICAgbV9z
dGF0ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgU3RyaW5nIHNlcmlhbGl6ZWREYXRhOworICAg
IGlmIChkZXRhaWxzKSB7CisgICAgICAgIGlmIChhdXRvIGRhdGEgPSBkZXRhaWxzLT5kYXRhKSB7
CisgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3Vt
ZW50Lmdsb2JhbE9iamVjdCgpLT52bSgpKTsKIAotICAgIHByb21pc2Uuc2V0dGxlKG1fcmVxdWVz
dC0+Y29tcGxldGUoV1RGTW92ZShyZXN1bHQpKSk7CisgICAgICAgICAgICBzZXJpYWxpemVkRGF0
YSA9IEpTT05TdHJpbmdpZnkoZG9jdW1lbnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEuZ2V0KCksIDAp
OworICAgICAgICAgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0p
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIHByb21pc2Uuc2V0dGxlKG1fcmVxdWVzdC0+Y29tcGxldGUoZG9jdW1lbnQsIFdU
Rk1vdmUocmVzdWx0KSwgV1RGTW92ZShzZXJpYWxpemVkRGF0YSksIFsmXSAoKSB7CisgICAgICAg
IEFTU0VSVChoYXNQZW5kaW5nQWN0aXZpdHkoKSk7CisgICAgICAgIEFTU0VSVChtX3N0YXRlID09
IFN0YXRlOjpDcmVhdGVkKTsKKyAgICAgICAgbV9wZW5kaW5nQWN0aXZpdHkgPSBudWxscHRyOwor
ICAgICAgICBtX3N0YXRlID0gU3RhdGU6OkNvbXBsZXRlZDsKKyAgICB9KSk7CiB9CiAKIHZvaWQg
UGF5bWVudFJlc3BvbnNlOjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmIGVycm9ycywg
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCmluZGV4IDRk
N2JhN2Y2ZDcwNmY4ZjEyZTgwNzlkNTRkYmRhNjAzNTVkNjMzZTEuLmY2MmEwNjY0MDg2NWRmYzY2
N2YyN2I0NDRmNjM0NWY1Mzc1YzVkZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaApAQCAtMzIsMTQgKzMyLDE1
IEBACiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU1ZhbHVlSW5XcmFwcGVk
T2JqZWN0LmgiCiAjaW5jbHVkZSAiUGF5bWVudEFkZHJlc3MuaCIKLSNpbmNsdWRlICJQYXltZW50
Q29tcGxldGUuaCIKICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgUGF5bWVudFJlcXVlc3Q7CitzdHJ1Y3QgUGF5
bWVudENvbXBsZXRlRGV0YWlsczsKIHN0cnVjdCBQYXltZW50VmFsaWRhdGlvbkVycm9yczsKK2Vu
dW0gY2xhc3MgUGF5bWVudENvbXBsZXRlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKQEAgLTgzLDcgKzg0LDcgQEAgcHVibGljOgogICAg
IGNvbnN0IFN0cmluZyYgcGF5ZXJQaG9uZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGF5ZXJQaG9uZTsg
fQogICAgIHZvaWQgc2V0UGF5ZXJQaG9uZShjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpIHsgbV9w
YXllclBob25lID0gcGF5ZXJQaG9uZTsgfQogCi0gICAgdm9pZCBjb21wbGV0ZShzdGQ6Om9wdGlv
bmFsPFBheW1lbnRDb21wbGV0ZT4mJiwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworICAg
IHZvaWQgY29tcGxldGUoRG9jdW1lbnQmLCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4m
Jiwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGVEZXRhaWxzPiYmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCByZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYm
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAgICAgdm9pZCBhYm9ydFdpdGhFeGNlcHRp
b24oRXhjZXB0aW9uJiYpOwogICAgIGJvb2wgaGFzUmV0cnlQcm9taXNlKCkgY29uc3QgeyByZXR1
cm4gISFtX3JldHJ5UHJvbWlzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaWRsCmluZGV4IDRmOTA1YmI2Zjg3
YTg2MTlmZGZiN2M4ODRlYjU1MGYxMWViZTFlMjUuLjYxOTMzNzYzNDI3YmFmY2ZmZjA1ZjI3YWRh
ZjdjYTNiNGE0NDQyOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5pZGwKQEAgLTQyLDcgKzQyLDcgQEAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nPyBwYXllckVtYWlsOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmc/IHBheWVyUGhvbmU7CiAKLSAgICBbTmV3T2JqZWN0XSBQcm9t
aXNlPHVuZGVmaW5lZD4gY29tcGxldGUob3B0aW9uYWwgUGF5bWVudENvbXBsZXRlIHJlc3VsdCA9
ICJ1bmtub3duIik7CisgICAgW0NhbGxXaXRoPURvY3VtZW50LCBOZXdPYmplY3RdIFByb21pc2U8
dW5kZWZpbmVkPiBjb21wbGV0ZShvcHRpb25hbCBQYXltZW50Q29tcGxldGUgcmVzdWx0ID0gInVu
a25vd24iLCBvcHRpb25hbCBQYXltZW50Q29tcGxldGVEZXRhaWxzIGRldGFpbHMpOwogICAgIFtO
ZXdPYmplY3RdIFByb21pc2U8dW5kZWZpbmVkPiByZXRyeShvcHRpb25hbCBQYXltZW50VmFsaWRh
dGlvbkVycm9ycyBlcnJvckZpZWxkcyk7CiAKICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
cGF5ZXJkZXRhaWxjaGFuZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybU1h
Yy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCmluZGV4IGJkZGRjMzhm
YzZjZWMzMmNkYTgxMzQxMzQ4ZjFmYjk3ZDdhOGEwZDcuLjk4YjAzNTc5MWE2ZWJiMGQ5ZjE1NzFh
NTdhNDJlY2Q1ZjE1NWNmYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFj
LmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlCkBAIC03OTYsNiAr
Nzk2LDcgQEAgbGlzdChBUFBFTkQgV2ViQ29yZV9JRExfRklMRVMKICAgICBNb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmlkbAogCiAgICAgTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheU1vZGlmaWVyLmlkbAorICAgIE1vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbAog
ICAgIE1vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlSZXF1ZXN0LmlkbAog
CiAgICAgTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVJlcXVlc3QuaWRsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CmluZGV4IDc3NmIxOTYwNTU4YWU0Njg4MzlhZWM4Y2UxYTk0ZjQ0YWI5NDY2MDgu
LmQ0NjVmMTcwMGQyOThmNjkzNWM1YWE5OWE5ZThiNjBhODdhYTU3NjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CkBAIC0zNTQ0LDYgKzM1NDQsNyBAQCBKU1BhdGgyRC5jcHAKIEpTUGF5ZXJFcnJvckZpZWxkcy5j
cHAKIEpTUGF5bWVudEFkZHJlc3MuY3BwCiBKU1BheW1lbnRDb21wbGV0ZS5jcHAKK0pTUGF5bWVu
dENvbXBsZXRlRGV0YWlscy5jcHAKIEpTUGF5bWVudEN1cnJlbmN5QW1vdW50LmNwcAogSlNQYXlt
ZW50RGV0YWlsc0Jhc2UuY3BwCiBKU1BheW1lbnREZXRhaWxzSW5pdC5jcHAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IDNhZDY3MWI4MjIxZmU2OWRlMjE3YWFhMzI1ZWU3YmMxOGYzYjU1NmEu
LjQxZGU3OWM1Yzc4ZmJjNjQxOTE1MzQyNjdhZWVkNDI3ZGFlYTk5MTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNl
c0NvY29hLnR4dApAQCAtNDQsNiArNDQsNyBAQCBKU0FwcGxlUGF5TW9kaWZpZXIuY3BwCiBKU0Fw
cGxlUGF5UGF5bWVudC5jcHAKIEpTQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5j
cHAKIEpTQXBwbGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmNwcAorSlNBcHBsZVBheVBheW1l
bnRDb21wbGV0ZURldGFpbHMuY3BwCiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3QuY3BwCiBKU0Fw
cGxlUGF5UGF5bWVudE1ldGhvZC5jcHAKIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRF
dmVudC5jcHAKQEAgLTc0LDYgKzc1LDcgQEAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvdXBv
bkNvZGVDaGFuZ2VkRXZlbnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q2FuY2VsRXZl
bnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAogTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKK01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5jcHAKIE1vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmNwcAogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50LmNwcAogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVJlcXVlc3RCYXNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGE1OGViY2VjZGJlNTY2MzMzODQ0YzdkOTU5ODYy
NmI0MGQwYTJhYTcuLjVkNWQ5Y2UyZmQ0NGM4ZTA1ODFmN2JkYzg3OWUzMjc3MjJmMWY4M2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTU5Nyw3ICs1OTcsNiBAQAogCQkxQUU3OUQ0MzE4OERCNjFGMDAyMjM5QzIgLyogVXNlckNv
bnRlbnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxQUU3OUQ0MTE4OERCNjFGMDAyMjM5QzIgLyogVXNlckNvbnRlbnRDb250cm9sbGVy
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFF
ODJGOTAwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTgyRjhFMENBQUZBOUQwMDIyMzdBRSAvKiBK
U0RhdGFiYXNlLmggKi87IH07CiAJCTFBRTgyRkVEMENBQjA3RUUwMDIyMzdBRSAvKiBKU1NRTFJl
c3VsdFNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFFODJGRUIwQ0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggKi87IH07Ci0JCTFB
RTk2QTg4MUQxQTBDRUIwMEI4Njc2OCAvKiBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFOTZBODYxRDFB
MENFQjAwQjg2NzY4IC8qIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFFOTZBODkxRDFBMENFQjAw
Qjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTk2QTg3MUQxQTBDRUIwMEI4Njc2OCAvKiBQYXlt
ZW50TWVyY2hhbnRTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMUFFOTZBOEIxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXplZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQUU5NkE3QjFEMUEwQTgwMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRB
dXRob3JpemVkRXZlbnQuaCAqLzsgfTsKIAkJMUFFOTZBOEQxRDFBMERERDAwQjg2NzY4IC8qIEpT
QXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFOTZBN0QxRDFBMEE4MDAwQjg2NzY4IC8qIEpT
QXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oICovOyB9OwpAQCAtMzA5NSw2ICsz
MDk0LDEwIEBACiAJCTk1Njg0RDgzMjY1MzU3RjgwMDAyNjkzOCAvKiBBcHBsZVBheUNvdXBvbkNv
ZGVEZXRhaWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5NTY4NEQ4MTI2NTM1N0Y3MDAwMjY5MzggLyogQXBwbGVQYXlDb3Vwb25Db2RlRGV0YWlscy5o
ICovOyB9OwogCQk5NTk2QjkzMzI1REVFRUEwMDBFRDJDRkEgLyogQXBwbGVQYXlDb3Vwb25Db2Rl
VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
NTk2QjkzMDI1REVFRTlGMDBFRDJDRkEgLyogQXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTU5NkI5Mzgy
NURFRUYwMzAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2QjkzNjI1REVF
RjAyMDBFRDJDRkEgLyogSlNBcHBsZVBheUNvdXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCAqLzsgfTsK
KwkJOTU5Q0VEMTAyNzlDQjY4NjAwMTdBOEZGIC8qIFBheW1lbnRDb21wbGV0ZURldGFpbHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OUNFRDBEMjc5
Q0I2ODUwMDE3QThGRiAvKiBQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi87IH07CisJCTk1OUNF
RDE0Mjc5Q0I2QjYwMDE3QThGRiAvKiBKU1BheW1lbnRDb21wbGV0ZURldGFpbHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OUNFRDEyMjc5Q0I2QjUw
MDE3QThGRiAvKiBKU1BheW1lbnRDb21wbGV0ZURldGFpbHMuaCAqLzsgfTsKKwkJOTU5Q0VEMUMy
NzlDQjgyRjAwMTdBOEZGIC8qIEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5Q0VEMTkyNzlDQjgy
RTAwMTdBOEZGIC8qIEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oICovOyB9OworCQk5
NTlDRUQyMTI3OUNCODhCMDAxN0E4RkYgLyogSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OUNF
RDFGMjc5Q0I4OEIwMDE3QThGRiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5o
ICovOyB9OwogCQk5NUExRTJFOTI1Q0M3NUE5MDAyNjhDOEUgLyogTWVkaWFDb250cm9sc0NvbnRl
eHRNZW51SXRlbS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8qIE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0
ZW0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
NUFBNTcxMDI1RUVFRDMyMDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTVBQTU3MEUyNUVF
RUQzMTAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCAqLzsgfTsKIAkJOTVC
QTRGQUQyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1QkE0RkFCMjZEOTgxQUEw
MDJBMEU2MiAvKiBQbGF0Zm9ybVZpZXdDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTMzMDIsNyArMzMwNSw3IEBACiAJCUExMjcw
NUMzMTY1NkJENjUwMEMyRTI3QyAvKiBHcmlkUG9zaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExMjcwNUMyMTY1NkJENjUwMEMyRTI3QyAvKiBH
cmlkUG9zaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlBMTJBMTA1MDE2NjQ0NEZEMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEyQTEwNEUxNjY0NDRE
QzAwOEZBMzExIC8qIEdyaWRUcmFja1NpemUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlFRTIwMzVGQzlCMDAxMjIzNkIgLyogQXBwbGVQ
YXlFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlBMTJDNTlGMDIwMzVGQ0FCMDAx
MjIzNkIgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDgxRTcxRDhERjAwOEY1
RDM0IC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgfTsKKwkJQTEy
QzU5RjAyMDM1RkNBQjAwMTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZE
RkQ4MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEy
QzU5RjEyMDM1RkNCRjAwMTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREExRTcx
RDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMkM1OUYyMjAzNUZDRDYw
MDEyMjM2QiAvKiBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREMxRTcxRDhERjAwOEY1RDM0
IC8qIEFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTEyQzU5RjMyMDM1RkNFMjAwMTIyMzZCIC8q
IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREZERkRFMUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKQEAgLTY5OTEsNiArNjk5NCw3IEBACiAJCTFBREE0QTFCMUQyMkYyQzAw
MDVBOUExNSAvKiBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQYXltZW50TWVyY2hhbnRTZXNzaW9uQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBREZERkQ2MUU3MUQ4REYwMDhGNUQzNCAv
KiBBcHBsZVBheUVycm9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFwcGxl
UGF5RXJyb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFERkRGRDcxRTcxRDhE
RjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFw
cGxlUGF5RXJyb3IuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQURGREZEODFF
NzFEOERGMDA4RjVEMzMgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0
IC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQURGREZEOTFFNzFEOERGMDA4RjVEMzQgLyog
QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTFBREZERkRBMUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVBh
eW1lbnRNZXRob2RVcGRhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC03MDg0LDcgKzcwODgsNiBAQAogCQkxQUU5NkE4MjFEMUEwQTgwMDBCODY3NjggLyogSlNBcHBs
ZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFOTZBODMxRDFBMEE4MDAwQjg2NzY4
IC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2VsZWN0ZWRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUU5NkE4NDFEMUEwQTgwMDBCODY3
NjggLyogSlNBcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0FwcGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMUFFOTZBODYxRDFBMENFQjAwQjg2NzY4
IC8qIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTFBRTk2QTg3MUQxQTBDRUIwMEI4Njc2OCAvKiBQYXltZW50TWVyY2hhbnRT
ZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBheW1lbnRNZXJjaGFu
dFNlc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFRjRFNjYxNzBFMTYw
MzAwQUIyNzk5IC8qIENhY2hlZEZvbnRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FjaGVkRm9udENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQUVGNEU2ODE3MEUxNzQ4MDBBQjI3OTkgLyogQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU1ZHRG9jdW1lbnRDbGllbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzMDA5LDYgKzEzMDEyLDE0IEBACiAJ
CTk1OTZCOTMyMjVERUVFOUYwMEVEMkNGQSAvKiBBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGUuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1OTZCOTM1MjVERUVGMDAwMEVEMkNGQSAvKiBK
U0FwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU0FwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTk1OTZCOTM2MjVERUVGMDIwMEVEMkNGQSAvKiBKU0FwcGxlUGF5Q291
cG9uQ29kZUNoYW5nZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0FwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NTlDRUQwRDI3OUNCNjg1MDAxN0E4RkYgLyogUGF5bWVudENvbXBsZXRlRGV0YWls
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQYXltZW50Q29tcGxldGVEZXRh
aWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OUNFRDBGMjc5Q0I2ODUwMDE3
QThGRiAvKiBQYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJOTU5Q0VEMTIyNzlDQjZCNTAwMTdBOEZGIC8qIEpTUGF5bWVudENvbXBsZXRlRGV0YWlscy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1BheW1lbnRDb21wbGV0ZURldGFp
bHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTU5Q0VEMTMyNzlDQjZCNTAwMTdB
OEZGIC8qIEpTUGF5bWVudENvbXBsZXRlRGV0YWlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1BheW1lbnRDb21wbGV0ZURldGFpbHMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5NTlDRUQxOTI3OUNCODJFMDAxN0E4RkYgLyogQXBwbGVQYXlQ
YXltZW50Q29tcGxldGVEZXRhaWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NTlDRUQxQjI3OUNCODJFMDAxN0E4RkYgLyogQXBwbGVQYXlQYXltZW50Q29tcGxl
dGVEZXRhaWxzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheVBheW1lbnRDb21w
bGV0ZURldGFpbHMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTlDRUQxRTI3
OUNCODhBMDAxN0E4RkYgLyogSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gSlNBcHBsZVBheVBheW1lbnRDb21w
bGV0ZURldGFpbHMuY3BwOyBwYXRoID0gLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vSlNBcHBsZVBh
eVBheW1lbnRDb21wbGV0ZURldGFpbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5NTlDRUQxRjI3OUNCODhCMDAxN0E4RkYgLyogSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURl
dGFpbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSlNBcHBsZVBheVBheW1l
bnRDb21wbGV0ZURldGFpbHMuaDsgcGF0aCA9IC4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL0pTQXBw
bGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk1QTFFMkU3MjVDQzc1QTgwMDI2OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJ
dGVtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhQ29udHJvbHNDb250
ZXh0TWVudUl0ZW0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBQTU3MEQyNUVF
RUQzMDAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk1QUE1NzBFMjVFRUVEMzEwMDRFOTI4MyAv
KiBJbnNwZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE5NTg0LDYgKzE5NTk1LDcgQEAKIAkJCQlBMURGNUE4NTFGN0VCREYyMDA1OEE0
NzcgLyogQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuaWRsICovLAogCQkJCTdDNjUyMkZFMUUw
MEQwMzQwMDY3N0YyMiAvKiBBcHBsZVBheVBheW1lbnQuaCAqLywKIAkJCQk3QzY1MjJGRjFFMDBE
MDM0MDA2NzdGMjIgLyogQXBwbGVQYXlQYXltZW50LmlkbCAqLywKKwkJCQkxQURGREZEODFFNzFE
OERGMDA4RjVEMzMgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5jcHAgKi8s
CiAJCQkJMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQuaCAqLywKIAkJCQkxQURGREZEOTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5pZGwgKi8sCiAJCQkJMUE4QTY0M0QxRDE5RkNG
QjAwRDBFMDBGIC8qIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAgKi8sCkBAIC0x
OTY0OSw3ICsxOTY2MSw2IEBACiAJCQkJMUE4QTY0NTAxRDE5RkNGQjAwRDBFMDBGIC8qIEFwcGxl
UGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmlkbCAqLywKIAkJCQkxQThBNjQzNzFEMTlGQzUzMDBE
MEUwMEYgLyogUGF5bWVudC5oICovLAogCQkJCUExNjlCMDQyMjQ4RjAzN0IwMEVFOEI3QiAvKiBQ
YXltZW50QVBJVmVyc2lvbi5oICovLAotCQkJCTFBRTk2QTg2MUQxQTBDRUIwMEI4Njc2OCAvKiBQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oICovLAogCQkJCTFBOEE2NDM4MUQxOUZDNTMwMEQw
RTAwRiAvKiBQYXltZW50Q29udGFjdC5oICovLAogCQkJCTFBNThFODZCMUQxOUU0MkQwMEMwRUE3
MyAvKiBQYXltZW50Q29vcmRpbmF0b3IuY3BwICovLAogCQkJCTFBNThFODZDMUQxOUU0MkQwMEMw
RUE3MyAvKiBQYXltZW50Q29vcmRpbmF0b3IuaCAqLywKQEAgLTE5ODE3LDYgKzE5ODI4LDggQEAK
IAkJCQkxQURGREZFNDFFNzFEQ0EwMDA4RjVEMzQgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0LmggKi8sCiAJCQkJMUFFOTZBN0ExRDFBMEE4MDAwQjg2NzY4IC8qIEpTQXBw
bGVQYXlQYXltZW50QXV0aG9yaXplZEV2ZW50LmNwcCAqLywKIAkJCQkxQUU5NkE3QjFEMUEwQTgw
MDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCAqLywKKwkJCQk5
NTlDRUQxRTI3OUNCODhBMDAxN0E4RkYgLyogSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHMuY3BwICovLAorCQkJCTk1OUNFRDFGMjc5Q0I4OEIwMDE3QThGRiAvKiBKU0FwcGxlUGF5UGF5
bWVudENvbXBsZXRlRGV0YWlscy5oICovLAogCQkJCTdDNjUyMzBCMUUwMERCQjQwMDY3N0YyMiAv
KiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3QuY3BwICovLAogCQkJCTdDNjUyMzBDMUUwMERCQjQw
MDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3QuaCAqLywKIAkJCQk3QzY1MjMwRDFF
MDBEQkI0MDA2NzdGMjIgLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2QuY3BwICovLApAQCAtMjY0
NzcsNiArMjY0OTAsOCBAQAogCQkJCUExQ0M1NjY1MUY0NjE0NjgwMEE0NTU1QiAvKiBKU1BheW1l
bnRBZGRyZXNzLmggKi8sCiAJCQkJQTFDQzU2NjAxRjQ2MTQ2MjAwQTQ1NTVCIC8qIEpTUGF5bWVu
dENvbXBsZXRlLmNwcCAqLywKIAkJCQlBMUNDNTY0RTFGNDYxNDUyMDBBNDU1NUIgLyogSlNQYXlt
ZW50Q29tcGxldGUuaCAqLywKKwkJCQk5NTlDRUQxMzI3OUNCNkI1MDAxN0E4RkYgLyogSlNQYXlt
ZW50Q29tcGxldGVEZXRhaWxzLmNwcCAqLywKKwkJCQk5NTlDRUQxMjI3OUNCNkI1MDAxN0E4RkYg
LyogSlNQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi8sCiAJCQkJQTFDQzU2NUQxRjQ2MTQ2MDAw
QTQ1NTVCIC8qIEpTUGF5bWVudEN1cnJlbmN5QW1vdW50LmNwcCAqLywKIAkJCQlBMUNDNTY2MzFG
NDYxNDY2MDBBNDU1NUIgLyogSlNQYXltZW50Q3VycmVuY3lBbW91bnQuaCAqLywKIAkJCQlBMUND
NTY1NjFGNDYxNDU5MDBBNDU1NUIgLyogSlNQYXltZW50RGV0YWlsc0Jhc2UuY3BwICovLApAQCAt
MjY1MTgsNiArMjY1MzMsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTFGNkNGRkMxRkUwOTYy
MTAwMTgwNzhDIC8qIEFwcGxlUGF5TW9kaWZpZXIuaCAqLywKIAkJCQlBMUY2Q0ZGRTFGRTA5NjIx
MDAxODA3OEMgLyogQXBwbGVQYXlNb2RpZmllci5pZGwgKi8sCisJCQkJOTU5Q0VEMTkyNzlDQjgy
RTAwMTdBOEZGIC8qIEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oICovLAorCQkJCTk1
OUNFRDFCMjc5Q0I4MkUwMDE3QThGRiAvKiBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMu
aWRsICovLAogCQkJCUExREY1QUExMUY3RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRI
YW5kbGVyLmNwcCAqLywKIAkJCQlBMURGNUFBMDFGN0VFMTEzMDA1OEE0NzcgLyogQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5oICovLAogCQkJCUExREY1QTdDMUY3RUJEMEIwMDU4QTQ3NyAvKiBBcHBs
ZVBheVJlcXVlc3QuaCAqLywKQEAgLTI2NTQxLDYgKzI2NTU4LDggQEAKIAkJCQlBMUY3NkI0MjFG
NDRDRjdGMDAxNEMzMTggLyogUGF5bWVudEFkZHJlc3MuaWRsICovLAogCQkJCUExRjc2QjU4MUY0
NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50Q29tcGxldGUuaCAqLywKIAkJCQlBMUY3NkI1QTFGNDRE
M0IyMDAxNEMzMTggLyogUGF5bWVudENvbXBsZXRlLmlkbCAqLywKKwkJCQk5NTlDRUQwRDI3OUNC
Njg1MDAxN0E4RkYgLyogUGF5bWVudENvbXBsZXRlRGV0YWlscy5oICovLAorCQkJCTk1OUNFRDBG
Mjc5Q0I2ODUwMDE3QThGRiAvKiBQYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbCAqLywKIAkJCQlB
MUY3NkIzNDFGNDRDNjBGMDAxNEMzMTggLyogUGF5bWVudEN1cnJlbmN5QW1vdW50LmggKi8sCiAJ
CQkJQTFGNzZCMzYxRjQ0QzYwRjAwMTRDMzE4IC8qIFBheW1lbnRDdXJyZW5jeUFtb3VudC5pZGwg
Ki8sCiAJCQkJQTFGNzZCMUMxRjQ0QzNGRTAwMTRDMzE4IC8qIFBheW1lbnREZXRhaWxzQmFzZS5o
ICovLApAQCAtMzMzODEsNiArMzM0MDAsNyBAQAogCQkJCTdDNjUyMzAxMUUwMEQwMzQwMDY3N0Yy
MiAvKiBBcHBsZVBheVBheW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUYwMjAzNUZD
QUIwMDEyMjM2QiAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxQThBNjQ1MjFEMTlGQ0ZCMDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50
QXV0aG9yaXplZEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTlDRUQxQzI3OUNCODJGMDAx
N0E4RkYgLyogQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmggaW4gSGVhZGVycyAqLywK
IAkJCQk3QzY1MjJGQjFFMDBDOTA5MDA2NzdGMjIgLyogQXBwbGVQYXlQYXltZW50Q29udGFjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFERjVBQTIxRjdFRTExMzAwNThBNDc3IC8qIEFwcGxlUGF5
UGF5bWVudEhhbmRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMkVGMUUwMEE0QzcwMDY3
N0YyMiAvKiBBcHBsZVBheVBheW1lbnRNZXRob2QuaCBpbiBIZWFkZXJzICovLApAQCAtMzUwODAs
NiArMzUxMDAsNyBAQAogCQkJCTdDNjUyMzE0MUUwMERCQjQwMDY3N0YyMiAvKiBKU0FwcGxlUGF5
UGF5bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTEyQzU5RkIyMDM2MEIwMDAwMTIyMzZCIC8q
IEpTQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMUFFOTZBOEIxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlQYXltZW50QXV0aG9yaXpl
ZEV2ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTlDRUQyMTI3OUNCODhCMDAxN0E4RkYgLyog
SlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
NjUyMzE2MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbnRhY3QuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdDNjUyMzE4MUUwMERCQjUwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5
bWVudE1ldGhvZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFOTZBOEQxRDFBMERERDAwQjg2NzY4
IC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kU2VsZWN0ZWRFdmVudC5oIGluIEhlYWRlcnMgKi8s
CkBAIC0zNTU0Nyw2ICszNTU2OCw3IEBACiAJCQkJQTE2NzdFMTcyMTNFMDNGMTAwQTA4QzM0IC8q
IEpTUGF5ZXJFcnJvckZpZWxkcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFDQzU2NjcxRjQ2MTQ3
QTAwQTQ1NTVCIC8qIEpTUGF5bWVudEFkZHJlc3MuaCBpbiBIZWFkZXJzICovLAogCQkJCUExQ0M1
NjY5MUY0NjE0ODAwMEE0NTU1QiAvKiBKU1BheW1lbnRDb21wbGV0ZS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTU5Q0VEMTQyNzlDQjZCNjAwMTdBOEZGIC8qIEpTUGF5bWVudENvbXBsZXRlRGV0YWls
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFDQzU2NkIxRjQ2MTQ4NTAwQTQ1NTVCIC8qIEpTUGF5
bWVudEN1cnJlbmN5QW1vdW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUNDNTY2RDFGNDYxNDhB
MDBBNDU1NUIgLyogSlNQYXltZW50RGV0YWlsc0Jhc2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUEx
Q0M1NjZGMUY0NjE0OEUwMEE0NTU1QiAvKiBKU1BheW1lbnREZXRhaWxzSW5pdC5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNjQzOSw4ICszNjQ2MSw4IEBACiAJCQkJMUE4QTY0M0ExRDE5RkM1MzAwRDBF
MDBGIC8qIFBheW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRjc2QjQzMUY0NENGN0YwMDE0
QzMxOCAvKiBQYXltZW50QWRkcmVzcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE2OUIwNDMyNDhG
MDM3QjAwRUU4QjdCIC8qIFBheW1lbnRBUElWZXJzaW9uLmggaW4gSGVhZGVycyAqLywKLQkJCQkx
QUU5NkE4ODFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaCBp
biBIZWFkZXJzICovLAogCQkJCUExRjc2QjVCMUY0NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50Q29t
cGxldGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1OUNFRDEwMjc5Q0I2ODYwMDE3QThGRiAvKiBQ
YXltZW50Q29tcGxldGVEZXRhaWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThBNjQzQjFEMTlG
QzUzMDBEMEUwMEYgLyogUGF5bWVudENvbnRhY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNThF
ODZFMUQxOUU0MkQwMEMwRUE3MyAvKiBQYXltZW50Q29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNThFODY2MUQxOUQ0RjAwMEMwRUE3MyAvKiBQYXltZW50Q29vcmRpbmF0b3JDbGll
bnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApp
bmRleCBkMjNjOTZiNmM1MjgwM2ZlYzJlNDU3YjdlYzdkYmM5ZWIzNzk5NWUwLi4xOTNjYzdmNmNh
MWFmYTdhYTM0NTY2NTEwOTVmNWZkY2RiYzNjNTE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmNwcApAQCAtNDI2LDcgKzQyNiw3IEBAIGNsYXNzIEVtcHR5UGF5bWVudENvb3Jk
aW5hdG9yQ2xpZW50IGZpbmFsIDogcHVibGljIFBheW1lbnRDb29yZGluYXRvckNsaWVudCB7CiAj
aWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkKICAgICB2b2lkIGNvbXBsZXRlQ291cG9u
Q29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZT4mJikgZmlu
YWwgeyB9CiAjZW5kaWYKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRp
b25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgZmluYWwgeyB9CisgICAgdm9pZCBj
b21wbGV0ZVBheW1lbnRTZXNzaW9uKEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQm
JikgZmluYWwgeyB9CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQog
ICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgcGF5bWVu
dENvb3JkaW5hdG9yRGVzdHJveWVkKCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcAppbmRleCA0MGU1OTNkZDI5MWFkNTBl
NWYzMjAxZDUyMDZkMDM3ZTJhODIyNjc2Li43ZjliOTQ1OGEyYjI0Yjg2ZDk2MjBiNGM1OGJiZjJi
NjcxZmJjYzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRD
b29yZGluYXRvci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQog
CiAjaW5jbHVkZSAiQXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlLmgiCisjaW5jbHVkZSAiQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIgogI2luY2x1ZGUgIkFwcGxlUGF5UGF5bWVu
dE1ldGhvZFVwZGF0ZS5oIgogI2luY2x1ZGUgIkFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RFZGl0aW5nTW9kZS5oIgpAQCAt
MjQ4LDEwICsyNDksMTAgQEAgdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjYW5jZWxQYXlt
ZW50KCkKICAgICB9KTsKIH0KIAotdm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0
ZVBheW1lbnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiYgcmVzdWx0KQordm9pZCBNb2NrUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRT
ZXNzaW9uKEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7Ci0g
ICAgYXV0byBpc0ZpbmFsU3RhdGUgPSBpc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKLSAgICBt
X2Vycm9ycyA9IGNvbnZlcnQoV1RGTW92ZShyZXN1bHQtPmVycm9ycykpOworICAgIGF1dG8gaXNG
aW5hbFN0YXRlID0gcmVzdWx0LmlzRmluYWxTdGF0ZSgpOworICAgIG1fZXJyb3JzID0gY29udmVy
dChXVEZNb3ZlKHJlc3VsdC5lcnJvcnMpKTsKIAogICAgIGlmICghaXNGaW5hbFN0YXRlKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXlt
ZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29y
ZGluYXRvci5oCmluZGV4IGFhMDhlMTZhMTIxMmUxZWE2YjUzOWE5N2Q0MTIyNGFiNDg5ZTBkMWEu
LjU0YjNmMjVjMDY0ZjRhMjJmOGEyN2VkMmMyMzQ4NzBjZjExOWY1ZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oCkBAIC0xMDcsNyArMTA3
LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQogICAgIHZv
aWQgY29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlDb3Vwb25D
b2RlVXBkYXRlPiYmKSBmaW5hbDsKICNlbmRpZgotICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vz
c2lvbihzdGQ6Om9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKSBmaW5hbDsK
KyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdCYmKSBmaW5hbDsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKSBmaW5h
bDsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRTZXNzaW9uKCkgZmluYWw7CiAgICAgdm9pZCBwYXlt
ZW50Q29vcmRpbmF0b3JEZXN0cm95ZWQoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaApp
bmRleCAwNzJlMWRiODc3MWYwOTFiYzUwNDc4Y2M2NTk2NzU0M2UzMTg1NzZiLi4zNzYyY2ZkNGQ5
NWVkMWJmM2IzN2Q5MzA3OWIwNTc5Mzc0Mjk4ZjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5o
CkBAIC00Myw2ICs0Myw3IEBAIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CiBjbGFzcyBQ
YXltZW50TWV0aG9kOwogY2xhc3MgUGF5bWVudFNlc3Npb25FcnJvcjsKIHN0cnVjdCBBcHBsZVBh
eUNvdXBvbkNvZGVVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdDsKIHN0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsK
QEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50VmFs
aWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNzaW9uJik7CiAgICAgdm9p
ZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU+JiYpOwotICAgIHZvaWQgY29tcGxldGVQYXltZW50
U2Vzc2lvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0PiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihXZWJDb3JlOjpBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYpOwogICAgIHZvaWQgY29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBcHBsZVBheVNoaXBw
aW5nQ29udGFjdFVwZGF0ZT4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0
ZT4mJik7CiAjaWYgSEFWRShQQVNTS0lUX0NPVVBPTl9DT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbSBi
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50
ZXIubW0KaW5kZXggYjI0NTU3OTgwZWRlMGNmZTNkZTQxMWM2ZDVjMTk2NjQwMTlkNmI2NS4uOTgw
YTY4OTZjYTQ0MjEwZjEyYTg2MDgyMTUxNzU5YmQxZDFmYmMyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3JpemF0aW9uUHJl
c2VudGVyLm1tCkBAIC0zNSwxMCArMzUsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlF
cnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yQ29kZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9BcHBsZVBheUVycm9yQ29udGFjdEZpZWxkLmg+CisjaW1wb3J0IDxXZWJDb3JlL0Fw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXBw
bGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hp
cHBpbmdDb250YWN0VXBkYXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdN
ZXRob2RVcGRhdGUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0
dXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oPgogI2ltcG9y
dCA8V2ViQ29yZS9QYXltZW50U3VtbWFyeUl0ZW1zLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvVmVj
dG9yQ29jb2EuaD4KQEAgLTY2LDE5ICs2NiwyNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIC8vIEZJ
WE1FOiBSYXRoZXIgdGhhbiBoYXZpbmcgdGhlc2UgZnJlZSBmdW5jdGlvbnMgc2NhdHRlcmVkIGFi
b3V0LCBBcHBsZSBQYXkgZGF0YSB0eXBlcyBzaG91bGQga25vdwogLy8gaG93IHRvIGNvbnZlcnQg
dGhlbXNlbHZlcyB0byBhbmQgZnJvbSB0aGVpciBwbGF0Zm9ybSByZXByZXNlbnRhdGlvbnMuCiAK
LXN0YXRpYyBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHRvUEtQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1cyhXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyBzdGF0dXMpCitz
dGF0aWMgUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyB0b1BLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXMoV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6U3Rh
dHVzIHN0YXR1cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewotICAgIGNhc2UgV2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M6CisgICAgY2FzZSBXZWJDb3JlOjpB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpTdWNjZXNzOgogICAgICAgICByZXR1
cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1N1Y2Nlc3M7Ci0gICAgY2FzZSBXZWJDb3Jl
OjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZToKKworICAgIGNhc2UgV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6RmFpbHVyZToKICAgICAgICAg
cmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOwotICAgIGNhc2UgV2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVkOgorCisgICAgY2Fz
ZSBXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpQSU5SZXF1aXJl
ZDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5SZXF1aXJl
ZDsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5JbmNv
cnJlY3Q6CisKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ6OlBJTkluY29ycmVjdDoKICAgICAgICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXNQSU5JbmNvcnJlY3Q7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXph
dGlvblN0YXR1czo6UElOTG9ja291dDoKKworICAgIGNhc2UgV2ViQ29yZTo6QXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdDo6UElOTG9ja291dDoKICAgICAgICAgcmV0dXJuIFBLUGF5
bWVudEF1dGhvcml6YXRpb25TdGF0dXNQSU5Mb2Nrb3V0OworCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzRmFpbHVyZTsKICAgICB9CiB9CiAKQEAgLTIzMSwxMSArMjM5LDE4IEBAIHZv
aWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNl
bGVjdGlvbihzdGQ6Om9wdGlvbmFsCiAgICAgW3BsYXRmb3JtRGVsZWdhdGUoKSBjb21wbGV0ZVBh
eW1lbnRNZXRob2RTZWxlY3Rpb246cGF5bWVudE1ldGhvZFVwZGF0ZS5nZXQoKV07CiB9CiAKLXZv
aWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24o
Y29uc3Qgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4m
IHJlc3VsdCkKK3ZvaWQgUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXI6OmNvbXBsZXRlUGF5
bWVudFNlc3Npb24oV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYm
IHJlc3VsdCkKIHsKICAgICBBU1NFUlQocGxhdGZvcm1EZWxlZ2F0ZSgpKTsKLSAgICBhdXRvIHN0
YXR1cyA9IHJlc3VsdCA/IHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhyZXN1bHQtPnN0
YXR1cykgOiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzU3VjY2VzczsKLSAgICBSZXRhaW5Q
dHI8TlNBcnJheT4gZXJyb3JzID0gcmVzdWx0ID8gdG9OU0Vycm9ycyhyZXN1bHQtPmVycm9ycykg
OiBAWyBdOworICAgIEFTU0VSVChyZXN1bHQuaXNGaW5hbFN0YXRlKCkpOworCisgICAgYXV0byBz
dGF0dXMgPSB0b1BLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMocmVzdWx0LnN0YXR1cyk7Cisg
ICAgYXV0byBlcnJvcnMgPSB0b05TRXJyb3JzKFdURk1vdmUocmVzdWx0LmVycm9ycykpOworCisj
aWYgZGVmaW5lZChQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlckFkZGl0aW9uc19jb21wbGV0
ZVBheW1lbnRTZXNzaW9uKQorICAgIFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVyQWRkaXRp
b25zX2NvbXBsZXRlUGF5bWVudFNlc3Npb24KKyNlbmRpZgorCiAgICAgW3BsYXRmb3JtRGVsZWdh
dGUoKSBjb21wbGV0ZVBheW1lbnRTZXNzaW9uOnN0YXR1cyBlcnJvcnM6ZXJyb3JzLmdldCgpXTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRB
dXRob3JpemF0aW9uRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQ
YXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLmgKaW5kZXggYWE5YzgxMTA0OGJhOThkNjk0MzBl
YzM3NDhjMWUxMjRiZTZmZGIwMi4uZjBhZDExMmNjMDg3MGQwMTg1MWIxMzY3YjZkMmQ5NDYzN2I2
MzAxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRB
dXRob3JpemF0aW9uRGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29h
L1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5oCkBAIC02Niw2ICs2NiwxMCBAQCB1c2lu
ZyBEaWRDaGFuZ2VDb3Vwb25Db2RlQ29tcGxldGlvbiA9IEJsb2NrUHRyPHZvaWQoUEtQYXltZW50
UmVxdWVzdENvdXBvbkNvZGVVcAogI2VuZGlmCiAtICh2b2lkKWludmFsaWRhdGU7CiAKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktpdEFkZGl0aW9ucy9XS1BheW1l
bnRBdXRob3JpemF0aW9uRGVsZWdhdGVBZGRpdGlvbnNBZnRlci5oPgorI2VuZGlmCisKIEBlbmQK
IAogLy8gSGVscGVyIG1ldGhvZHMgY2FsbGVkIGJ5IFdLUGF5bWVudEF1dGhvcml6YXRpb25TZXNz
aW9uJ3Mgc3ViY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2Nv
YS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQppbmRleCBmYzE0Mjg1
Y2NlNDM2MjA2OTNhNGUxZjlmYjQ2MzI1NGRmOTU1YTAwLi5lOTRhOTQ5OWVhMzAyZmIzNzYxYTg1
YWNlOGRkODY3Nzk4NDkwNDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2Nv
Y29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbQpAQCAtMTU5
LDYgKzE1OSwxMCBAQCAtICh2b2lkKWludmFsaWRhdGUKICAgICAgICAgW3NlbGYgY29tcGxldGVQ
YXltZW50U2Vzc2lvbjpQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzRmFpbHVyZSBlcnJvcnM6
QFsgXV07CiB9CiAKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQorI2luY2x1ZGUgPFdlYktp
dEFkZGl0aW9ucy9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGVBZGRpdGlvbnNBZnRlci5t
bT4KKyNlbmRpZgorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1BheW1lbnRBdXRob3JpemF0
aW9uRGVsZWdhdGUgKFByb3RlY3RlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0
cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3Nh
Z2VzLnB5CmluZGV4IGNhMzdhY2JkNWM1YWEyODAyM2E5M2Q4ZDQxOGNjMDJkOTI1Yjk5NDUuLjk0
NmQwZjI0YjQxYTc0N2E1YTFmMTliZTE2ZTEzOTE0YjEyYmIyZDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtODA4LDcgKzgwOCw2IEBAIGRlZiBoZWFkZXJz
X2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6UGFzdGVib2FyZEltYWdlJzogWyc8
V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJvYXJkVVJM
JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQYXN0ZWJv
YXJkV2ViQ29udGVudCc6IFsnPFdlYkNvcmUvUGFzdGVib2FyZC5oPiddLAotICAgICAgICAnV2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQnOiBbJzxXZWJDb3JlL0FwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQaXhlbEZvcm1hdCc6
IFsnPFdlYkNvcmUvSW1hZ2VCdWZmZXJCYWNrZW5kLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpQ
bGF0Zm9ybVRleHRUcmFja0RhdGEnOiBbJzxXZWJDb3JlL1BsYXRmb3JtVGV4dFRyYWNrLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpQbGF5YmFja1Nlc3Npb25Nb2RlbDo6UGxheWJhY2tTdGF0ZSc6
IFsnPFdlYkNvcmUvUGxheWJhY2tTZXNzaW9uTW9kZWwuaD4nXSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
LmNwcAppbmRleCAxNDM5OWFlZjczYjQ4NGM2YmM5ZGYxOGE1MGZlNDc0MjFhZDhkYjMyLi4wNGE2
OTY4MTc4YTZmNzU5NGMyODBlZjczMTgxOThjYjYzMmI5MjMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHkuY3BwCkBAIC0zNCwxMCArMzQsMTAgQEAKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9BcHBsZVBheUNvdXBvbkNvZGVVcGRhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0FwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQ
YXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hp
cHBpbmdNZXRob2RVcGRhdGUuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzLmg+CiAKICNkZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0Vf
Q0hFQ0tfQkFTRShhc3NlcnRpb24sIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkpCiAKQEAgLTE4
NCwxNyArMTg0LDE3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRl
Q291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6CiAKICNlbmRpZiAvLyBFTkFC
TEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Ojpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiByZXN1bHQpCit2b2lkIFdlYlBheW1lbnRDb29y
ZGluYXRvclByb3h5Ojpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7CiAgICAgLy8gSXQncyBwb3NzaWJs
ZSB0aGF0IHRoZSBwYXltZW50IGhhcyBiZWVuIGNhbmNlbGVkIGFscmVhZHkuCiAgICAgaWYgKCFj
YW5Db21wbGV0ZVBheW1lbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBpc0ZpbmFs
U3RhdGVSZXN1bHQgPSBXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQocmVzdWx0KTsKKyAgICBi
b29sIGlzRmluYWxTdGF0ZSA9IHJlc3VsdC5pc0ZpbmFsU3RhdGUoKTsKIAotICAgIHBsYXRmb3Jt
Q29tcGxldGVQYXltZW50U2Vzc2lvbihyZXN1bHQpOworICAgIHBsYXRmb3JtQ29tcGxldGVQYXlt
ZW50U2Vzc2lvbihXVEZNb3ZlKHJlc3VsdCkpOwogCi0gICAgaWYgKCFpc0ZpbmFsU3RhdGVSZXN1
bHQpIHsKKyAgICBpZiAoIWlzRmluYWxTdGF0ZSkgewogICAgICAgICBtX3N0YXRlID0gU3RhdGU6
OkFjdGl2ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4
IGMzYmNmMTQyNjgwNDgwMWNhZDVhZDc2MzgzNDFkNWNhM2JjZTQ3ZWEuLjQyYTBjZjMwMTdkZjNj
MTBkYTMxY2NmYmYyNzk5YmZhZGFkYTk3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkuaApAQCAtNDcs
NyArNDcsNiBAQCBjbGFzcyBDb25uZWN0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1l
bnVtIGNsYXNzIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOwogY2xhc3MgUGF5bWVudDsKIGNs
YXNzIFBheW1lbnRDb250YWN0OwogY2xhc3MgUGF5bWVudE1lcmNoYW50U2Vzc2lvbjsKQEAgLTEz
OSw3ICsxMzgsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUp
CiAgICAgdm9pZCBjb21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGU+JiYpOwogI2VuZGlmCi0gICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNv
cmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJik7CiAgICAgdm9pZCBhYm9y
dFBheW1lbnRTZXNzaW9uKCk7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpOwogCkBA
IC0xNjcsNyArMTY2LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9D
T0RFKQogICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGU+JiYpOwogI2VuZGlmCi0gICAg
dm9pZCBwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKKyAgICB2b2lkIHBsYXRmb3Jt
Q29tcGxldGVQYXltZW50U2Vzc2lvbihXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0JiYpOwogICAgIHZvaWQgcGxhdGZvcm1IaWRlUGF5bWVudFVJKCk7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgUmV0YWluUHRyPFBLUGF5bWVudFJlcXVlc3Q+IHBsYXRmb3JtUGF5
bWVudFJlcXVlc3QoY29uc3QgVVJMJiBvcmlnaW5hdGluZ1VSTCwgY29uc3QgVmVjdG9yPFVSTD4m
IGxpbmtJY29uVVJMcywgY29uc3QgV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVl
c3QmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjRkMTNl
MTRkOTdjNWFlZTk2YmI1ZDMzMDZkNTc5Y2Y1ZDgwZTlhNC4uZmRlMmNiZjFjMzdmOWQ1MmYzYmZm
MmUzN2I2MmZhZTU5NzM1MmY4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBw
bGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTM4LDcgKzM4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkgTm90UmVmQ291bnRlZCB7CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkK
ICAgICBDb21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBcHBs
ZVBheUNvdXBvbkNvZGVVcGRhdGU+IHVwZGF0ZSkKICNlbmRpZgotICAgIENvbXBsZXRlUGF5bWVu
dFNlc3Npb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4gcmVzdWx0KQorICAgIENvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RydWN0IFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgcmVzdWx0KQogICAgIEFib3J0UGF5bWVu
dFNlc3Npb24oKQogICAgIENhbmNlbFBheW1lbnRTZXNzaW9uKCkKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJv
eHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1l
bnRDb29yZGluYXRvclByb3h5Q29jb2EubW0KaW5kZXggY2ExZjIzN2M4OWE4YWM3MGMyMDg5Yzhj
ZDY2ZDk0MWVkOTZiOGFlMS4uOWRhOWZlM2U5OGUwYmRjMTY2ZTBkOTUyYjFiMzYzN2I4MjQ0NWZj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvY29jb2EvV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9B
cHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCkBAIC00MSw3
ICs0MSw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBpbmdNZXRob2QuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50
SGVhZGVycy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9v
cC5oPgpAQCAtMzQ4LDkgKzM0Nyw5IEBAIFJldGFpblB0cjxQS1BheW1lbnRSZXF1ZXN0PiBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1QYXltZW50UmVxdWVzdChjCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZv
cm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiByZXN1bHQpCit2b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oV2ViQ29yZTo6QXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKLSAgICBtX2F1dGhvcml6
YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KTsKKyAgICBtX2F1
dGhvcml6YXRpb25QcmVzZW50ZXItPmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV1RGTW92ZShyZXN1
bHQpKTsKIH0KIAogdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6cGxhdGZvcm1Db21w
bGV0ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBXZWJDb3JlOjpQYXltZW50TWVyY2hhbnRTZXNz
aW9uJiBwYXltZW50TWVyY2hhbnRTZXNzaW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvQXBwbGVQYXkvaW9zL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5SU9TLm1tIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvaW9zL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
SU9TLm1tCmluZGV4IDA0ODQ5ZjczZDZiMzkzMzY5NTVlMGYxNzYzN2UwMTQxM2NkMTZkMjQuLmNm
MTU5OGE1YjEzNzA1MDM2NTRkZGJlOTdjMWVjMTMxMjFhNjYwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2lvcy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUlP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9pb3MvV2ViUGF5bWVudENv
b3JkaW5hdG9yUHJveHlJT1MubW0KQEAgLTMyLDcgKzMyLDYgQEAKICNpbXBvcnQgIlBheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBv
cnQgPFVJS2l0L1VJVmlld0NvbnRyb2xsZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXMuaD4KICNpbXBvcnQgPHBhbC9jb2NvYS9QYXNzS2l0U29mdExpbmsu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IDAwM2JkNjcyMGVi
ODM5OTQwYWE5MzhjZWY3NjQ5NTRiZGMwMjZjMzguLmRmMzgzMGQxNzIyODQxMDJmZTFlYTEzMDU1
OTZlMTdhYmVlODNiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC01OCw3ICs1OCw2IEBACiAKICNp
ZiBFTkFCTEUoQVBQTEVfUEFZKQogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgotI2ltcG9ydCA8
V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogI2ltcG9ydCA8cGFsL2NvY29h
L1Bhc3NLaXRTb2Z0TGluay5oPgogI2VuZGlmCiAKQEAgLTEyNiwyNyArMTI1LDYgQEAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50PiBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnQ+
OjpkZWNvZGUoRGVjb2RlciYKICAgICByZXR1cm4gV2ViQ29yZTo6UGF5bWVudCB7IFdURk1vdmUo
KnBheW1lbnQpIH07CiB9CiAKLXZvaWQgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0
aG9yaXphdGlvblJlc3VsdD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3Jl
OjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYgcmVzdWx0KQotewotICAgIGVuY29kZXIgPDwg
cmVzdWx0LnN0YXR1czsKLSAgICBlbmNvZGVyIDw8IHJlc3VsdC5lcnJvcnM7Ci19Ci0KLXN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzPiBzdGF0dXM7Ci0gICAgZGVjb2RlciA+PiBzdGF0dXM7Ci0gICAgaWYgKCFzdGF0
dXMpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPFZl
Y3RvcjxSZWZQdHI8V2ViQ29yZTo6QXBwbGVQYXlFcnJvcj4+PiBlcnJvcnM7Ci0gICAgZGVjb2Rl
ciA+PiBlcnJvcnM7Ci0gICAgaWYgKCFlcnJvcnMpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0KLSAgICByZXR1cm4ge3sgV1RGTW92ZSgqc3RhdHVzKSwgV1RGTW92ZSgqZXJyb3JzKSB9
fTsKLX0KLQogdm9pZCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRDb250YWN0Pjo6ZW5j
b2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRDb250YWN0JiBwYXlt
ZW50Q29udGFjdCkKIHsKICAgICBlbmNvZGVyIDw8IHBheW1lbnRDb250YWN0LnBrQ29udGFjdCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCA2
ZmU4MTVkNGFiOWMwMDVlNTQyNTBmN2M4Zjc1ZDFkYjEwNDQ5MTU5Li42MTVkZTA2OWFhNDliZjA1
Y2E5MThmYmRkMzI4ZTAyYTkzYmZiZjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNjQ1LDExICs2NDUsNiBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnQ+IHsKICAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50PiBkZWNvZGUoRGVjb2RlciYpOwogfTsKIAotdGVtcGxhdGU8
PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dD4gewotICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gZGVjb2RlKERlY29kZXImKTsKLX07Ci0K
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudENvbnRhY3Q+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBheW1l
bnRDb250YWN0Jik7CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UGF5bWVudENv
bnRhY3Q+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCmluZGV4IDQ2MTZk
MTJhMjk2MjBmOTBkMGI0Y2M2Y2NmZDUwZjI4OTFlYjZjZWYuLjFjNzAyNjUwYjc5Y2NiZmFlMDFk
ZjdmYzkwMTAwYjVmNzZkYTcwMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3BwCkBAIC0zNyw2ICsz
Nyw3IEBACiAjaW5jbHVkZSAiV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5Q291cG9u
Q29kZVVwZGF0ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBk
YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgpAQCAt
MTM3LDkgKzEzOCw5IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZUNvdXBv
bkNvZGVDaGFuZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpBcHBsCiAKICNlbmRpZiAvLyBFTkFC
TEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQogCi12b2lkIFdlYlBheW1lbnRDb29yZGluYXRvcjo6
Y29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0PiYmIHJlc3VsdCkKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjpj
b21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQmJiByZXN1bHQpCiB7Ci0gICAgc2VuZChNZXNzYWdlczo6V2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudFNlc3Npb24ocmVzdWx0KSk7CisgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OkNvbXBsZXRlUGF5bWVudFNlc3Np
b24oV1RGTW92ZShyZXN1bHQpKSk7CiB9CiAKIHZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yOjph
Ym9ydFBheW1lbnRTZXNzaW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaAppbmRleCAxMTUxYTgwZjA0MDg0
OTE5NWMxYzZmNzcxNzViZjUzZDJiYmRiOTUzLi5hNzZhM2FjNjNmOGE0YTU5NDU2YzgxYzk0NDlk
YjQ4NzFlZWEyNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQ
YXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oCkBAIC03MSw3ICs3MSw3IEBAIHByaXZh
dGU6CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkKICAgICB2b2lkIGNvbXBsZXRl
Q291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5Q291cG9uQ29k
ZVVwZGF0ZT4mJikgb3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNl
c3Npb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4m
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJikgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRT
ZXNzaW9uKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5o
CmluZGV4IDI2MDQzOGRhMmY0NjliZDE1NWMyNmFjZTVhYTg4NzMxY2Q4YzU3ZGQuLjgyMzQ0NmRl
ZGQzNWRlOGVkNzQyNmFmMzZjZjJmN2U3NmY3YTJlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRD
b29yZGluYXRvckNsaWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KEFQUExFX1BBWV9DT1VQT05fQ09ERSkKICAgICB2b2lkIGNvbXBsZXRlQ291cG9uQ29kZUNoYW5n
ZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZT4mJikgb3Zl
cnJpZGU7CiAjZW5kaWYKLSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQmJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNz
aW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjYW5jZWxQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRl
OwogICAgIHZvaWQgcGF5bWVudENvb3JkaW5hdG9yRGVzdHJveWVkKCkgb3ZlcnJpZGU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50
Q29vcmRpbmF0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0KaW5kZXggZGM3NmU2YWRkNjIxNWIx
ZGFmYjg3NWRhMzFhZWFlMDMzOTNkNTU4MS4uZGQwYTcxOGI3MmY3MTM5ZDNhZmZjZTY5NWE2NjMy
N2UwNDJjNmI0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQpA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxl
dGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkKIAotdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0b3JD
bGllbnQ6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJikKK3ZvaWQgV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xp
ZW50Ojpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQmJikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGVmZTY1ZDExYmY1OTI2NzgyNDk1MGE1
MzllMTE1MjNiNDcwYzQ2ZWIuLmQ0YTk4ZGI2NWNmMWRhYzhhMmUyNzVkYmQyNTA5N2VmNGFjODFh
MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMi0wMS0yNiAgRGV2aW4gUm91c3NvICA8ZHJv
dXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW1BheW1lbnQgUmVxdWVzdF0gYWxsb3cgYWRkaXRp
b25hbCBwYXltZW50IG1ldGhvZCBzcGVjaWZpYyBkYXRhIHRvIGJlIHBhc3NlZCB0byBgY29tcGxl
dGUoKWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NTQxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODI5NzA0NTE+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5odHRwcy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRl
RGV0YWlscy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDIyLTAxLTI1ICBGdWppaSBI
aXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5DYWlyb10g
VW5yZXZpZXdlZCB0ZXN0IGdhcmRlbmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY0OWE4MzNiM2ExN2YyNzVkZjU3MGQ2ZDQ0MGNhZGU3ODE5ZjJiYzIKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVu
dENvbXBsZXRlRGV0YWlscy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK1BB
U1MgU2hvdWxkIGVycm9yIGlmIG5vdCBKU09OIHNlcmlhbGl6YWJsZQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBs
ZXRlRGV0YWlscy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yOTcxMmQ3ZjdhZGQxMDQyNzMyNjdkOTNhMzAyNzU0NTJjZWIyZTFiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRDb21wbGV0ZURldGFpbHMuaHR0cHMuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBmb3IgcHJvdmlkaW5n
IGBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHNgLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy9wYXltZW50LXJlcXVlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPGJvZHk+Cis8c2NyaXB0Pgorc2V0
dXAoeyBleHBsaWNpdF9kb25lOiB0cnVlLCBleHBsaWNpdF90aW1lb3V0OiB0cnVlIH0pOworCitm
dW5jdGlvbiB0ZXN0SW52YWxpZFBheW1lbnRDb21wbGV0ZURhdGEoZGVzY3JpcHRpb24sIHtkYXRh
LCBleHBlY3RlZEVycm9yU3Vic3RyaW5nfSkgeworICAgIHVzZXJfYWN0aXZhdGlvbl90ZXN0KGFz
eW5jICh0ZXN0KSA9PiB7CisgICAgICAgIGxldCByZXF1ZXN0ID0gbmV3IFBheW1lbnRSZXF1ZXN0
KFt2YWxpZFBheW1lbnRNZXRob2QoKV0sIHZhbGlkUGF5bWVudERldGFpbHMoKSk7CisgICAgICAg
IHJlcXVlc3QuYWRkRXZlbnRMaXN0ZW5lcigibWVyY2hhbnR2YWxpZGF0aW9uIiwgKGV2ZW50KSA9
PiB7CisgICAgICAgICAgICBldmVudC5jb21wbGV0ZSh7IH0pOworICAgICAgICB9KTsKKyAgICAg
ICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVyKCJzaGlwcGluZ2FkZHJlc3NjaGFuZ2UiLCAoZXZl
bnQpID0+IHsKKyAgICAgICAgICAgIGV2ZW50LnVwZGF0ZVdpdGgoeyB9KTsKKyAgICAgICAgICAg
IGludGVybmFscy5tb2NrUGF5bWVudENvb3JkaW5hdG9yLmFjY2VwdFBheW1lbnQoKTsKKyAgICAg
ICAgfSk7CisKKyAgICAgICAgbGV0IHJlc3BvbnNlID0gYXdhaXQgcmVxdWVzdC5zaG93KCk7CisK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGF3YWl0IHJlc3BvbnNlLmNvbXBsZXRlKCJzdWNj
ZXNzIiwge2RhdGF9KTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGZhbHNlLCBgc2hvdWxkIGVy
cm9yIGFib3V0ICcke2V4cGVjdGVkRXJyb3JTdWJzdHJpbmd9J2ApOworICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICBhc3NlcnRfdHJ1ZShlLm1lc3NhZ2UuaW5jbHVkZXMoZXhwZWN0
ZWRFcnJvclN1YnN0cmluZyksIGBzaG91bGQgZXJyb3IgYWJvdXQgJyR7ZXhwZWN0ZWRFcnJvclN1
YnN0cmluZ30nYCk7CisgICAgICAgIH0KKworICAgICAgICB0cnkgeworICAgICAgICAgICAgYXdh
aXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVl
KHRydWUsICJzaG91bGQgYmUgYWJsZSB0byByZWNvdmVyIGZyb20gZXJyb3IiKTsKKyAgICAgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICAgICAgYXNzZXJ0X3RydWUoZmFsc2UsIGBzaG91bGQgYmUg
YWJsZSB0byByZWNvdmVyIGZyb20gZXJyb3IsIGJ1dCBleGNlcHRpb24gd2FzIHRocm93biAnJHtl
Lm1lc3NhZ2V9J2ApOworICAgICAgICB9CisgICAgfSwgZGVzY3JpcHRpb24pOworfQorCit0ZXN0
SW52YWxpZFBheW1lbnRDb21wbGV0ZURhdGEoIlNob3VsZCBlcnJvciBpZiBub3QgSlNPTiBzZXJp
YWxpemFibGUiLCB7CisgICAgZGF0YTogd2luZG93LAorICAgIGV4cGVjdGVkRXJyb3JTdWJzdHJp
bmc6ICJKU09OLnN0cmluZ2lmeSBjYW5ub3Qgc2VyaWFsaXplIiwKK30pOworCitkb25lKCk7Cis8
L3NjcmlwdD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450097</attachid>
            <date>2022-01-26 20:26:15 -0800</date>
            <delta_ts>2022-01-27 13:08:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235415-20220126212614.patch</filename>
            <type>text/plain</type>
            <size>103042</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhZTMyYTcxMjJjYThmYTU1Y2Y1YjJiZjM5YjBlMGU3YmZkY2RkYWMyLi45
MWU5NzJlODVlY2NhN2M2YjkwNzkyOGRkY2MyODYzY2E1NGQyYzNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsODggQEAKKzIwMjItMDEtMjYgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFtQYXltZW50IFJlcXVlc3RdIGFsbG93IGFkZGl0aW9uYWwgcGF5bWVudCBt
ZXRob2Qgc3BlY2lmaWMgZGF0YSB0byBiZSBwYXNzZWQgdG8gYGNvbXBsZXRlKClgCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MTUKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzgyOTcwNDUxPgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgorCisgICAgICAgIFRoaXMgYWxsb3dzIGZvciBkZXZlbG9wZXJzL21lcmNoYW50cyB0byBn
aXZlIGFkZGl0aW9uYWwgZGV0YWlscyB0byBBcHBsZSBQYXkgb24gY29tcGxldGlvbi4KKworICAg
ICAgICBJc3N1ZTogPGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L2lzc3Vl
cy85ODE+CisgICAgICAgIFNwZWMgUFI6IDxodHRwczovL2dpdGh1Yi5jb20vdzNjL3BheW1lbnQt
cmVxdWVzdC9wdWxsLzk4Mj4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3BheW1lbnRyZXF1
ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5odHRwcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGVEZXRhaWxz
LmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVz
cG9uc2UuaDoKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25z
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlc3BvbnNlOjpjb21wbGV0ZSk6CisgICAg
ICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oOgorICAgICAgICAq
IE1vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGF5bWVudFJlcXVlc3Q6OmNvbXBsZXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVyLmg6CisgICAgICAgIEFkZCBuZXcgYGRpY3Rpb25hcnkg
UGF5bWVudENvbXBsZXRlRGV0YWlsc2AgdGhhdCdzIGFsbG93ZWQgYXMgYW4gb3B0aW9uYWwgc2Vj
b25kIGFyZ3VtZW50IHRvCisgICAgICAgIGBQYXltZW50UmVzcG9uc2UucHJvdG90eXBlLmNvbXBs
ZXRlYC4gSWYgcHJvdmlkZWQsIEpTT04gc3RyaW5naWZ5IGl0IGFuZCBwYXNzIHRoZSBzZXJpYWxp
emVkCisgICAgICAgIHN0cmluZyBkYXRhIGFsb25nIHRvIHRoZSByZWxldmFudCBgUGF5bWVudEhh
bmRsZXJgIGZvciBKU09OIChyZSlwYXJzaW5nIGlmIHRoZSBhc3NvY2lhdGVkCisgICAgICAgIHBh
eW1lbnQgbWV0aG9kIHJlcXVpcmVzIGl0LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmg6CisgICAgICAgICogTW9kdWxl
cy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpt
ZXJnZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpjb21wbGV0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeSk6Cisg
ICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRD
b21wbGV0ZURldGFpbHMuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3Bh
eW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oOiBBZGRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsczo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsczo6
ZGVjb2RlKToKKyAgICAgICAgQ29udmVydCB0aGUgSlNPTiAocmUpcGFyc2VkIG9iamVjdCBpbnRv
IGEgYEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsc2AsIG1lcmdpbmcgaXQgaW50bworICAg
ICAgICB0aGUgYEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRgIHBhc3NlZCB0byB0
aGUgYFBheW1lbnRDb29yZGluYXRvcmAgKHNlZSBiZWxvdykuCisKKyAgICAgICAgKiBNb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ6OmlzRmluYWxTdGF0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6ZGVjb2RlKToKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0Lmg6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjppc0ZpbmFsU3RhdGVSZXN1bHQpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmg6CisgICAgICAgICogTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVy
dEFuZFZhbGlkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxl
dGVQYXltZW50KToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRv
ci5oOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vz
c2lvbik6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGll
bnQuaDoKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNwcDoKKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3IuaDoKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tQYXlt
ZW50Q29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1BheW1lbnRDb29yZGlu
YXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisgICAgICAgIFJlcGxhY2UgYFBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0YCB3aXRoIGBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0YCBzbyB0aGF0IGRhdGEKKyAgICAgICAgZG9lc24ndCBuZWVkIHRvIGJlIG1vdmVkIGJldHdl
ZW4gaWRlbnRpY2FsbHkgc2hhcGVkIHN0cnVjdHMgZm9yIHNlbmRpbmcgdG8gdGhlIFVJUHJvY2Vz
cy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRBUElWZXJzaW9uOjpjdXJyZW50KToK
KyAgICAgICAgSW5jcmVtZW50IHRoZSBjdXJyZW50IHZlcnNpb24uCisKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjb21w
bGV0ZSk6CisgICAgICAgIEFNUyBVSSBkb2VzIG5vdCBhbGxvdy9yZXF1aXJlIGFueSBkYXRhIHRv
IGJlIHByb3ZpZGVkIG9uIGNvbXBsZXRpb24uCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERl
cml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2Vz
Lm1ha2U6CisgICAgICAgICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBQbGF0Zm9ybU1hYy5j
bWFrZToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0w
MS0yNiAgQWxleGV5IFNodmF5a2EgIDxhc2h2YXlrYUBhcHBsZS5jb20+CiAKICAgICAgICAgSlNF
dmVudExpc3RlbmVyOjpyZXBsYWNlSlNGdW5jdGlvbkZvckF0dHJpYnV0ZUxpc3RlbmVyKCkgc2hv
dWxkIG5vdCByZXBsYWNlIG1fd3JhcHBlciB1bmNvbmRpdGlvbmFsbHkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZjlh
ZGY0MzU0ODNmMTRjOGYwZjkxMmFlOTAxMmFkYmFkYTZiNzBiZC4uZWNiNGI4ZWRkNTEwZDUyMTA4
OTg5MWYxYTljODFkZTcwMDFjYTNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAyMi0w
MS0yNiAgRGV2aW4gUm91c3NvICA8ZHJvdXNzb0BhcHBsZS5jb20+CisKKyAgICAgICAgW1BheW1l
bnQgUmVxdWVzdF0gYWxsb3cgYWRkaXRpb25hbCBwYXltZW50IG1ldGhvZCBzcGVjaWZpYyBkYXRh
IHRvIGJlIHBhc3NlZCB0byBgY29tcGxldGUoKWAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTQxNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODI5
NzA0NTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhp
cyBhbGxvd3MgZm9yIGRldmVsb3BlcnMvbWVyY2hhbnRzIHRvIGdpdmUgYWRkaXRpb25hbCBkZXRh
aWxzIHRvIEFwcGxlIFBheSBvbiBjb21wbGV0aW9uLgorCisgICAgICAgIElzc3VlOiA8aHR0cHM6
Ly9naXRodWIuY29tL3czYy9wYXltZW50LXJlcXVlc3QvaXNzdWVzLzk4MT4KKyAgICAgICAgU3Bl
YyBQUjogPGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvcGF5bWVudC1yZXF1ZXN0L3B1bGwvOTgyPgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50
U2Vzc2lvbik6CisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAg
IChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29h
Lm1tOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0Pjo6ZW5jb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD46OmRlY29kZSk6IERlbGV0
ZWQuCisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5oOgorICAgICAgICAqIFNoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5Ojpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKToKKyAgICAgICAgKiBTaGFyZWQvQXBwbGVQYXkv
Y29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vz
c2lvbik6CisgICAgICAgICogU2hhcmVkL0FwcGxlUGF5L2lvcy9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eUlPUy5tbToKKyAgICAgICAgKiBQbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlci5oOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1BheW1lbnRBdXRob3Jp
emF0aW9uUHJlc2VudGVyLm1tOgorICAgICAgICAoV2ViS2l0Ojp0b1BLUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMpOgorICAgICAgICAoV2ViS2l0OjpQYXltZW50QXV0aG9yaXphdGlvblByZXNl
bnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisgICAgICAgIFJlcGxhY2UgYFBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0YCB3aXRoIGBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0YCBzbyB0aGF0IGRhdGEKKyAgICAgICAgZG9lc24ndCBuZWVkIHRvIGJlIG1vdmVkIGJldHdl
ZW4gaWRlbnRpY2FsbHkgc2hhcGVkIHN0cnVjdHMgZm9yIHNlbmRpbmcgdG8gdGhlIFVJUHJvY2Vz
cy4KKworICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxl
Z2F0ZS5oOgorICAgICAgICAqIFBsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25E
ZWxlZ2F0ZS5tbToKKyAgICAgICAgQWRkIHNvbWUgV0tBIGhvb2tzLgorCiAyMDIyLTAxLTI2ICBB
bGV4YW5kZXIgTWlraGF5bGVua28gIDxhbGV4bUBnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUSzNd
IFBpbmNoIHpvb21pbmcgZnJvbSBhIGxpbmsgYWN0aXZhdGVzIGl0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9D
aGFuZ2VMb2cKaW5kZXggODRiNzgzZjAyZjgwMmY1OGM5N2Q3ZDI5NTM1YjM2ZWY0OTBjNmJlYy4u
YTE5MjQxYjAwNDc2Mjg2ODc5NDY5ZTcwOWM3MmEwNTU3N2MyMTk3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIyLTAxLTI2ICBEZXZpbiBSb3Vzc28g
IDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1ZXN0XSBhbGxvdyBh
ZGRpdGlvbmFsIHBheW1lbnQgbWV0aG9kIHNwZWNpZmljIGRhdGEgdG8gYmUgcGFzc2VkIHRvIGBj
b21wbGV0ZSgpYAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM1NDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mjk3MDQ1MT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBh
eW1lbnRDb29yZGluYXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYlBh
eW1lbnRDb29yZGluYXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYlBheW1lbnRDb29yZGluYXRv
ckNsaWVudDo6Y29tcGxldGVQYXltZW50U2Vzc2lvbik6CisKIDIwMjItMDEtMTkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBbGxvdyBleHBl
cmltZW50YWwgZmVhdHVyZSBuYW1lcyB0byBiZSBoaWRkZW4gaW4gV2ViS2l0QWRkaXRpb25zCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CmluZGV4IGVhM2I5ZmNkNmE3ODhjMDdiZTYyZDZiNzZlZjMzYjg4YmJl
NGE0Y2EuLjBiYmY3MzE5ZGU2MzA4OGFjODJiNWM4YzM1MjBkNGE0MmNlMWYyODEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC00ODQsNiArNDg0LDcgQEAgc2V0KFdlYkNvcmVfTk9OX1NWR19JRExf
RklMRVMKICAgICBNb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheWVyRXJyb3JGaWVsZHMuaWRsCiAg
ICAgTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50QWRkcmVzcy5pZGwKICAgICBNb2R1bGVz
L3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZS5pZGwKKyAgICBNb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVx
dWVzdC9QYXltZW50Q3VycmVuY3lBbW91bnQuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVxdWVz
dC9QYXltZW50RGV0YWlsc0Jhc2UuaWRsCiAgICAgTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50RGV0YWlsc0luaXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5w
dXQueGNmaWxlbGlzdAppbmRleCAyYWExNjZmZDg2MTEzMWYzNTJhMDJkMTc0NTEzYzgzMDdmZGM1
OWM2Li5mOGIzNmI4MTFkNzFhOWQyMWM4NzBjMTEzNGJhYzQ4MTE4NjBhMGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTIxOCw2ICsy
MTgsNyBAQCAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdN
ZXRob2RTZWxlY3RlZEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVZhbGlkYXRlTWVyY2hhbnRFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIp
L01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwKKyQo
UFJPSkVDVF9ESVIpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXlt
ZW50Q29tcGxldGVEZXRhaWxzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9hcHBsZXBheS9w
YXltZW50cmVxdWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L2FzeW5jLWNsaXBib2FyZC9DbGlwYm9hcmQuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL2Fz
eW5jLWNsaXBib2FyZC9DbGlwYm9hcmRJdGVtLmlkbApAQCAtNTUxLDYgKzU1Miw3IEBAICQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheWVyRXJyb3JGaWVs
ZHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRBZGRy
ZXNzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29t
cGxldGUuaWRsCiskKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRD
b21wbGV0ZURldGFpbHMuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0
L1BheW1lbnRDdXJyZW5jeUFtb3VudC5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvcGF5bWVu
dHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50RGV0YWlsc0luaXQuaWRsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0CmluZGV4IGQwNDMwNjFkYjQ2YWExOTQ1
YTRlY2FhN2U4OTQ1Mzc4MTQ4ZDBjODkuLmNlMTQ1OGJhNzc5MmRlYjg0ZDZkZGFkOGM1MjcwYjZh
ZWEzYTAzZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1
dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54
Y2ZpbGVsaXN0CkBAIC0xMjQsNiArMTI0LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWwKICQo
QlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5jcHAKICQoQlVJ
TFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50
QXV0aG9yaXplZEV2ZW50LmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmNwcAorJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRDb21wbGV0
ZURldGFpbHMuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBcHBsZVBheVBheW1lbnRDb250YWN0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBcHBsZVBheVBheW1lbnRDb250YWN0LmgKICQoQlVJTFRfUFJP
RFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlQYXltZW50TWV0aG9k
LmNwcApAQCAtMTc5Myw2ICsxNzk1LDggQEAgJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNQYXltZW50QWRkcmVzcy5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTUGF5bWVudEFkZHJlc3MuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYXltZW50Q29tcGxldGUuY3BwCiAk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BheW1lbnRDb21w
bGV0ZS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1Bh
eW1lbnRDb21wbGV0ZURldGFpbHMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNv
dXJjZXMvV2ViQ29yZS9KU1BheW1lbnRDb21wbGV0ZURldGFpbHMuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYXltZW50Q3VycmVuY3lBbW91bnQuY3Bw
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU1BheW1lbnRD
dXJyZW5jeUFtb3VudC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU1BheW1lbnREZXRhaWxzQmFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDVhYThlZDUyZDhmNmMwYzg2NmMxODA2ZTFlNzcwYThkNzZiNzNkYjguLjk2M2ZjNTZj
MTcxY2U5NDNjYTA0ZDhjNzhmYjA1MzFlYjk5OTM0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMjM5LDYgKzIzOSw3IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNo
YW50RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJl
cXVlc3QvQXBwbGVQYXlNb2RpZmllci5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hcHBs
ZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlS
ZXF1ZXN0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUmVxdWVzdC5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9hc3luYy1jbGlw
Ym9hcmQvQ2xpcGJvYXJkLmlkbCBcCkBAIC00NzEsNiArNDcyLDcgQEAgSlNfQklORElOR19JRExT
IDo9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5ZXJFcnJvckZp
ZWxkcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
QWRkcmVzcy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXlt
ZW50Q29tcGxldGUuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudENvbXBsZXRlRGV0YWlscy5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy9wYXlt
ZW50cmVxdWVzdC9QYXltZW50Q3VycmVuY3lBbW91bnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudERldGFpbHNCYXNlLmlkbCBcCiAgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnREZXRhaWxzSW5pdC5pZGwgXApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hl
YWRlcnMuY21ha2UKaW5kZXggMzA0Zjk3YTM4NGIxNjdkNzdhN2Q5MWQ5OTgzMWRlMWRiOWRhZGM1
OS4uNjNkNTczMTQzNzU1MGI0ZWNkYTU3NzE0OTQ1MGRhNjk0ZGE4MDZiZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCkBAIC0xMzMsNyArMTMzLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBREVSUwogCiAgICAgTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdC5oCiAgICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50LmgKLSAgICBNb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRDb250YWN0LmgKICAgICBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5o
CiAgICAgTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNV
SVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1z
LXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKaW5kZXggZmQyMDA1ZjY2ZjZlZmYx
MTY1NDQ0MmVkYzlhNWQ2N2IzYjgxOTRlYS4uZjRkYWY4ZDE4YWVjNDk5Nzc1ZDVjMDNjMDhlYWEw
NDMyNDExNDNmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1h
bXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3Bw
CkBAIC0xNjEsOSArMTYxLDEwIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5QU1TVUlQYXlt
ZW50SGFuZGxlcjo6bWVyY2hhbnRWYWxpZGF0aW9uQ29tcGxldGVkKEpTQzo6CiAgICAgcmV0dXJu
IHsgfTsKIH0KIAotdm9pZCBBcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXI6OmNvbXBsZXRlKHN0
ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyOjpjb21wbGV0ZShEb2N1bWVudCYsIHN0ZDo6b3B0aW9uYWw8
UGF5bWVudENvbXBsZXRlPiYmLCBTdHJpbmcmJikKIHsKICAgICBoaWRlKCk7CisgICAgcmV0dXJu
IHsgfTsKIH0KIAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
OjpyZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXIuaAppbmRleCA5NDBmMDQ0YjE5MmZjODI3M2U0NGY2MzIzZmYwMWViODdl
MDE4MGNkLi42OGFjZmMzM2I2ODUyYmZlYmY2M2M5Y2UxOGQxMTE4NDRkNTNlYWY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJ
UGF5bWVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuaApAQCAtNzUsNyArNzUsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgY2FuTWFrZVBheW1lbnQoRG9jdW1lbnQmLCBGdW5jdGlvbjx2b2lkKGJv
b2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBk
ZXRhaWxzVXBkYXRlZChQYXltZW50UmVxdWVzdDo6VXBkYXRlUmVhc29uLCBTdHJpbmcmJiBlcnJv
ciwgQWRkcmVzc0Vycm9ycyYmLCBQYXllckVycm9yRmllbGRzJiYsIEpTQzo6SlNPYmplY3QqIHBh
eW1lbnRNZXRob2RFcnJvcnMpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IG1lcmNoYW50
VmFsaWRhdGlvbkNvbXBsZXRlZChKU0M6OkpTVmFsdWUmJikgZmluYWw7Ci0gICAgdm9pZCBjb21w
bGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJikgZmluYWw7CisgICAgRXhjZXB0
aW9uT3I8dm9pZD4gY29tcGxldGUoRG9jdW1lbnQmLCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21w
bGV0ZT4mJiwgU3RyaW5nJiYgc2VyaWFsaXplZERhdGEpIGZpbmFsOwogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYpIGZpbmFsOwogCiAgICAgUGF5
bWVudFJlcXVlc3Q6Ok1ldGhvZElkZW50aWZpZXIgbV9pZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU1NjQwNDdlYmY0YmU2
Y2E3MjdhMjE5OTU2ZDUyYWFkYjFjMmZlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5j
cHAKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgiCisKKyNpZiBFTkFC
TEUoQVBQTEVfUEFZKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdDo6aXNGaW5hbFN0YXRlKCkgY29uc3QKK3sKKyAgICBzd2l0
Y2ggKHN0YXR1cykgeworICAgIGNhc2UgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dDo6U3VjY2VzczoKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6
OkZhaWx1cmU6CisgICAgICAgIHJldHVybiBlcnJvcnMuaXNFbXB0eSgpOworCisgICAgY2FzZSBB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpQSU5SZXF1aXJlZDoKKyAgICBjYXNl
IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OlBJTkluY29ycmVjdDoKKyAgICBj
YXNlIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OlBJTkxvY2tvdXQ6CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQuaAppbmRleCAwM2QxN2Q4MThkNTNkZWRiNzE4YmQ1ODcxYjdk
NmE2OTZjY2NjNTJjLi5lYTlkMTk2ZDU5NmIwZjQ0YTAyMDY2NmExZWEwY2RjNzM3MDFlMzkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaApAQCAtMjgsMTYgKzI4LDc2
IEBACiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKIAogI2luY2x1ZGUgIkFwcGxlUGF5RXJyb3IuaCIK
KyNpbmNsdWRlIDxvcHRpb25hbD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRlIDxX
ZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9u
cy5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEFwcGxlUGF5UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQgewotICAgIHVuc2lnbmVkIHNob3J0IHN0YXR1czsKKyAg
ICB1c2luZyBTdGF0dXMgPSB1bnNpZ25lZCBzaG9ydDsKKyAgICBzdGF0aWMgY29uc3RleHByIFN0
YXR1cyBTdWNjZXNzID0gMDsKKyAgICBzdGF0aWMgY29uc3RleHByIFN0YXR1cyBGYWlsdXJlID0g
MTsKKyAgICBzdGF0aWMgY29uc3RleHByIFN0YXR1cyBJbnZhbGlkQmlsbGluZ1Bvc3RhbEFkZHJl
c3MgPSAyOworICAgIHN0YXRpYyBjb25zdGV4cHIgU3RhdHVzIEludmFsaWRTaGlwcGluZ1Bvc3Rh
bEFkZHJlc3MgPSAzOworICAgIHN0YXRpYyBjb25zdGV4cHIgU3RhdHVzIEludmFsaWRTaGlwcGlu
Z0NvbnRhY3QgPSA0OworICAgIHN0YXRpYyBjb25zdGV4cHIgU3RhdHVzIFBJTlJlcXVpcmVkID0g
NTsKKyAgICBzdGF0aWMgY29uc3RleHByIFN0YXR1cyBQSU5JbmNvcnJlY3QgPSA2OworICAgIHN0
YXRpYyBjb25zdGV4cHIgU3RhdHVzIFBJTkxvY2tvdXQgPSA3OworCisgICAgU3RhdHVzIHN0YXR1
czsgLy8gcmVxdWlyZWQKICAgICBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7
CisKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHRBZGRpdGlv
bnNfbWVtYmVycykKKyAgICBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0QWRkaXRp
b25zX21lbWJlcnMKKyNlbmRpZgorCisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpc0ZpbmFsU3Rh
dGUoKSBjb25zdDsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVu
Y29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpv
cHRpb25hbDxBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBkZWNvZGUoRGVjb2Rl
ciYpOwogfTsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgQXBwbGVQYXlQYXltZW50
QXV0aG9yaXphdGlvblJlc3VsdDo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Cit7Cisg
ICAgZW5jb2RlciA8PCBzdGF0dXM7CisgICAgZW5jb2RlciA8PCBlcnJvcnM7CisjaWYgZGVmaW5l
ZChBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0QWRkaXRpb25zX2VuY29kZSkKKyAg
ICBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0QWRkaXRpb25zX2VuY29kZQorI2Vu
ZGlmCit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworI2RlZmluZSBERUNPREUobmFtZSwg
dHlwZSkgXAorICAgIHN0ZDo6b3B0aW9uYWw8dHlwZT4gbmFtZTsgXAorICAgIGRlY29kZXIgPj4g
bmFtZTsgXAorICAgIGlmICghbmFtZSkgXAorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OyBc
CisKKyAgICBERUNPREUoc3RhdHVzLCBTdGF0dXMpCisgICAgREVDT0RFKGVycm9ycywgVmVjdG9y
PFJlZlB0cjxBcHBsZVBheUVycm9yPj4pCisjaWYgZGVmaW5lZChBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0QWRkaXRpb25zX2RlY29kZV9tZW1iZXJzKQorICAgIEFwcGxlUGF5UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHRBZGRpdGlvbnNfZGVjb2RlX21lbWJlcnMKKyNlbmRpZgor
CisjdW5kZWYgREVDT0RFCisKKyAgICByZXR1cm4geyB7CisgICAgICAgIFdURk1vdmUoKnN0YXR1
cyksCisgICAgICAgIFdURk1vdmUoKmVycm9ycyksCisjaWYgZGVmaW5lZChBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0QWRkaXRpb25zX2RlY29kZV9yZXR1cm4pCisgICAgQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdEFkZGl0aW9uc19kZWNvZGVfcmV0dXJuCisjZW5k
aWYKKyAgICB9IH07Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKaW5kZXggMGY1M2VmNWIzZWYxYzlk
MjVhY2IwYjg2ZWNhMjMwMTQzMWYzYzhhNi4uMjBmOTJiYTI1M2JlODQ5OTc4N2NkMjFlMGQyNWVi
MDhkYWJlN2Q5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmNwcApAQCAtNTUsNyArNTUsNiBAQAogI2luY2x1ZGUgIkxpbmtJY29u
VHlwZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ29uc29sZUNsaWVudC5o
IgotI2luY2x1ZGUgIlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgiCiAjaW5jbHVkZSAiUGF5
bWVudENvbnRhY3QuaCIKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRl
ICJQYXltZW50TWVyY2hhbnRTZXNzaW9uLmgiCkBAIC0xOTQsNTMgKzE5Myw0MCBAQCBzdGF0aWMg
RXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxp
ZGF0ZShEb2N1bWVudCYgZAogICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRp
YyBFeGNlcHRpb25PcjxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFuZFZhbGlk
YXRlKEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCitzdGF0aWMg
RXhjZXB0aW9uT3I8QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4gY29udmVydEFu
ZFZhbGlkYXRlKEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJiByZXN1bHQpCiB7
Ci0gICAgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQgY29udmVydGVkUmVzdWx0OwotCiAgICAg
c3dpdGNoIChyZXN1bHQuc3RhdHVzKSB7Ci0gICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRV
U19TVUNDRVNTOgotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhv
cml6YXRpb25TdGF0dXM6OlN1Y2Nlc3M7CisgICAgY2FzZSBBcHBsZVBheVBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0OjpTdWNjZXNzOgorICAgIGNhc2UgQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdDo6RmFpbHVyZToKKyAgICBjYXNlIEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ6OlBJTlJlcXVpcmVkOgorICAgIGNhc2UgQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdDo6UElOSW5jb3JyZWN0OgorICAgIGNhc2UgQXBwbGVQYXlQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdDo6UElOTG9ja291dDoKICAgICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEFw
cGxlUGF5U2Vzc2lvbjo6U1RBVFVTX0ZBSUxVUkU6Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5z
dGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFpbHVyZTsKKyAgICBjYXNlIEFw
cGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OkludmFsaWRCaWxsaW5nUG9zdGFsQWRk
cmVzczoKKyAgICAgICAgcmVzdWx0LnN0YXR1cyA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ6OkZhaWx1cmU7CisgICAgICAgIHJlc3VsdC5lcnJvcnMuaW5zZXJ0KDAsIEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6QmlsbGluZ0NvbnRhY3RJbnZhbGlk
LCBzdGQ6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwogICAgICAgICBicmVhazsKIAotICAgIGNh
c2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfSU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNT
OgotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJlc3VsdC5lcnJvcnMuYXBwZW5kKEFw
cGxlUGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6QmlsbGluZ0NvbnRhY3RJbnZh
bGlkLCBzdGQ6Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOworICAgIGNhc2UgQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdDo6SW52YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVzczoKKyAg
ICAgICAgcmVzdWx0LnN0YXR1cyA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6
OkZhaWx1cmU7CisgICAgICAgIHJlc3VsdC5lcnJvcnMuaW5zZXJ0KDAsIEFwcGxlUGF5RXJyb3I6
OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgQXBwbGVQ
YXlFcnJvckNvbnRhY3RGaWVsZDo6UG9zdGFsQWRkcmVzcywgbnVsbFN0cmluZygpKSk7CiAgICAg
ICAgIGJyZWFrOwogCi0gICAgY2FzZSBBcHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX1NI
SVBQSU5HX1BPU1RBTF9BRERSRVNTOgotICAgICAgICBjb252ZXJ0ZWRSZXN1bHQuc3RhdHVzID0g
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OkZhaWx1cmU7Ci0gICAgICAgIGNvbnZlcnRlZFJl
c3VsdC5lcnJvcnMuYXBwZW5kKEFwcGxlUGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29k
ZTo6U2hpcHBpbmdDb250YWN0SW52YWxpZCwgQXBwbGVQYXlFcnJvckNvbnRhY3RGaWVsZDo6UG9z
dGFsQWRkcmVzcywgbnVsbFN0cmluZygpKSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBB
cHBsZVBheVNlc3Npb246OlNUQVRVU19JTlZBTElEX1NISVBQSU5HX0NPTlRBQ1Q6Ci0gICAgICAg
IGNvbnZlcnRlZFJlc3VsdC5zdGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFp
bHVyZTsKLSAgICAgICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmQoQXBwbGVQYXlFcnJv
cjo6Y3JlYXRlKEFwcGxlUGF5RXJyb3JDb2RlOjpTaGlwcGluZ0NvbnRhY3RJbnZhbGlkLCBzdGQ6
Om51bGxvcHQsIG51bGxTdHJpbmcoKSkpOwotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgQXBw
bGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX1JFUVVJUkVEOgotICAgICAgICBjb252ZXJ0ZWRSZXN1
bHQuc3RhdHVzID0gUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJlcXVpcmVkOwotICAg
ICAgICBicmVhazsKLQotICAgIGNhc2UgQXBwbGVQYXlTZXNzaW9uOjpTVEFUVVNfUElOX0lOQ09S
UkVDVDoKLSAgICAgICAgY29udmVydGVkUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzOjpQSU5JbmNvcnJlY3Q7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBBcHBs
ZVBheVNlc3Npb246OlNUQVRVU19QSU5fTE9DS09VVDoKLSAgICAgICAgY29udmVydGVkUmVzdWx0
LnN0YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OworICAgIGNh
c2UgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6SW52YWxpZFNoaXBwaW5nQ29u
dGFjdDoKKyAgICAgICAgcmVzdWx0LnN0YXR1cyA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRp
b25SZXN1bHQ6OkZhaWx1cmU7CisgICAgICAgIHJlc3VsdC5lcnJvcnMuaW5zZXJ0KDAsIEFwcGxl
UGF5RXJyb3I6OmNyZWF0ZShBcHBsZVBheUVycm9yQ29kZTo6U2hpcHBpbmdDb250YWN0SW52YWxp
ZCwgc3RkOjpudWxsb3B0LCBudWxsU3RyaW5nKCkpKTsKICAgICAgICAgYnJlYWs7CiAKICAgICBk
ZWZhdWx0OgogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07
CiAgICAgfQogCi0gICAgY29udmVydGVkUmVzdWx0LmVycm9ycy5hcHBlbmRWZWN0b3IoV1RGTW92
ZShyZXN1bHQuZXJyb3JzKSk7CisjaWYgZGVmaW5lZChBcHBsZVBheVNlc3Npb25BZGRpdGlvbnNf
Y29udmVydEFuZFZhbGlkYXRlX0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQpCisg
ICAgQXBwbGVQYXlTZXNzaW9uQWRkaXRpb25zX2NvbnZlcnRBbmRWYWxpZGF0ZV9BcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0CisjZW5kaWYKIAotICAgIHJldHVybiBXVEZNb3ZlKGNv
bnZlcnRlZFJlc3VsdCk7CisgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0KTsKIH0KIAogc3RhdGlj
IEV4Y2VwdGlvbk9yPEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4gY29udmVydEFuZFZhbGlk
YXRlKEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZSYmIHVwZGF0ZSkKQEAgLTU2Nyw3ICs1NTMs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlUGF5bWVudChB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUgogICAgICAgICByZXR1cm4gY29udmVydGVkUmVz
dWx0T3JFeGNlcHRpb24ucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgYXV0byYmIGNvbnZlcnRl
ZFJlc3VsdCA9IGNvbnZlcnRlZFJlc3VsdE9yRXhjZXB0aW9uLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwotICAgIGJvb2wgaXNGaW5hbFN0YXRlID0gaXNGaW5hbFN0YXRlUmVzdWx0KGNvbnZlcnRlZFJl
c3VsdCk7CisgICAgYm9vbCBpc0ZpbmFsU3RhdGUgPSBjb252ZXJ0ZWRSZXN1bHQuaXNGaW5hbFN0
YXRlKCk7CiAKICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBheW1lbnRTZXNzaW9u
KFdURk1vdmUoY29udmVydGVkUmVzdWx0KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oCmluZGV4IGZlNWFmY2Y1YWE0MDdhNjRhMzAx
YzQ2NzEwOGRjMjhkNTIzOTM3M2QuLmVkZjQ2ZGU0NDM2MWFmN2JlNWQ3MzlmMmU4YTBkNjM2OWY3
MjYxN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0LmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50UmVxdWVzdC5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKQEAgLTQ5
LDEyICs1MCwxMCBAQCBjbGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFz
cyBQYXltZW50Q29vcmRpbmF0b3I7CiBjbGFzcyBQYXltZW50TWV0aG9kOwotZW51bSBjbGFzcyBQ
YXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKIHN0cnVjdCBBcHBsZVBheUNvdXBvbkNvZGVVcGRh
dGU7CiBzdHJ1Y3QgQXBwbGVQYXlMaW5lSXRlbTsKIHN0cnVjdCBBcHBsZVBheVBheW1lbnRSZXF1
ZXN0Owogc3RydWN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2Q7Ci1zdHJ1Y3QgQXBwbGVQYXlQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdDsKIHN0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRh
dGU7CiBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQ
YXlTaGlwcGluZ01ldGhvZFVwZGF0ZTsKQEAgLTY1LDE0ICs2NCwxNCBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxBcHBsZVBheVNlc3Npb24+PiBjcmVhdGUoRG9jdW1lbnQm
LCB1bnNpZ25lZCB2ZXJzaW9uLCBBcHBsZVBheVBheW1lbnRSZXF1ZXN0JiYpOwogICAgIHZpcnR1
YWwgfkFwcGxlUGF5U2Vzc2lvbigpOwogCi0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0
IFNUQVRVU19TVUNDRVNTID0gMDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RB
VFVTX0ZBSUxVUkUgPSAxOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNf
SU5WQUxJRF9CSUxMSU5HX1BPU1RBTF9BRERSRVNTID0gMjsKLSAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgc2hvcnQgU1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfUE9TVEFMX0FERFJFU1MgPSAzOwot
ICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNfSU5WQUxJRF9TSElQUElOR19D
T05UQUNUID0gNDsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX1BJTl9S
RVFVSVJFRCA9IDU7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNUQVRVU19QSU5f
SU5DT1JSRUNUID0gNjsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX1BJ
Tl9MT0NLT1VUID0gNzsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gU1RBVFVTX1NVQ0NFU1Mg
PSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpTdWNjZXNzOworICAgIHN0YXRp
YyBjb25zdGV4cHIgYXV0byBTVEFUVVNfRkFJTFVSRSA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6
YXRpb25SZXN1bHQ6OkZhaWx1cmU7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIFNUQVRVU19J
TlZBTElEX0JJTExJTkdfUE9TVEFMX0FERFJFU1MgPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0OjpJbnZhbGlkQmlsbGluZ1Bvc3RhbEFkZHJlc3M7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBhdXRvIFNUQVRVU19JTlZBTElEX1NISVBQSU5HX1BPU1RBTF9BRERSRVNTID0gQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6SW52YWxpZFNoaXBwaW5nUG9zdGFsQWRkcmVz
czsKKyAgICBzdGF0aWMgY29uc3RleHByIGF1dG8gU1RBVFVTX0lOVkFMSURfU0hJUFBJTkdfQ09O
VEFDVCA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ6OkludmFsaWRTaGlwcGlu
Z0NvbnRhY3Q7CisgICAgc3RhdGljIGNvbnN0ZXhwciBhdXRvIFNUQVRVU19QSU5fUkVRVUlSRUQg
PSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpQSU5SZXF1aXJlZDsKKyAgICBz
dGF0aWMgY29uc3RleHByIGF1dG8gU1RBVFVTX1BJTl9JTkNPUlJFQ1QgPSBBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0OjpQSU5JbmNvcnJlY3Q7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBhdXRvIFNUQVRVU19QSU5fTE9DS09VVCA9IEFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25S
ZXN1bHQ6OlBJTkxvY2tvdXQ7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8Ym9vbD4gc3VwcG9y
dHNWZXJzaW9uKERvY3VtZW50JiwgdW5zaWduZWQgdmVyc2lvbik7CiAgICAgc3RhdGljIEV4Y2Vw
dGlvbk9yPGJvb2w+IGNhbk1ha2VQYXltZW50cyhEb2N1bWVudCYpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVz
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0LmNwcAppbmRleCBiN2Y3MDQ3ODgxYTgzOGExODJhMTMxOGY5OTdiOTIzY2Y3
ZTQzNjQ4Li4zOWVhMmI0YzNhMjRlM2ZkNWM2MTEyYjYwMTYwN2JlNTE4MTE4MDBjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0LmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaWYgRU5B
QkxFKEFQUExFX1BBWSkKIAotI2luY2x1ZGUgIlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgi
CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTM3LDIzICszNiw2IEBAIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCgpID0gZGVmYXVsdDsKIAogQXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6On5BcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCgpID0gZGVmYXVsdDsKIAot
Ym9vbCBpc0ZpbmFsU3RhdGVSZXN1bHQoY29uc3Qgc3RkOjpvcHRpb25hbDxQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdD4mIHJlc3VsdCkKLXsKLSAgICBpZiAoIXJlc3VsdCkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICBzd2l0Y2ggKHJlc3VsdC0+c3RhdHVzKSB7Ci0gICAgY2FzZSBQYXlt
ZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3VjY2VzczoKLSAgICBjYXNlIFBheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzOjpGYWlsdXJlOgotICAgICAgICByZXR1cm4gcmVzdWx0LT5lcnJvcnMuaXNF
bXB0eSgpOwotCi0gICAgY2FzZSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElOUmVxdWly
ZWQ6Ci0gICAgY2FzZSBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElOSW5jb3JyZWN0Ogot
ICAgIGNhc2UgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTkxvY2tvdXQ6Ci0gICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICB9Ci19Ci0KIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvblBheW1l
bnRSZXF1ZXN0LmgKaW5kZXggZjllMWIxZTU3YjVjOTNiZDM5NjU3ZDk2ZDZkYWNmMDQ4OTYzNmJj
OS4uM2NkMjc4YzFkYWE5NGU4NjIyYmJiODQ1NmI4ZmUzMzZlMzFkNzQxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNz
aW9uUGF5bWVudFJlcXVlc3QuaApAQCAtNDQsOCArNDQsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWVudW0gY2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM7Ci0KIGNsYXNzIEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0IHsKIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdCgpOwpAQCAtMTg3LDEzICsxODUsNiBAQCBw
cml2YXRlOgogI2VuZGlmCiB9OwogCi1zdHJ1Y3QgUGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQg
ewotICAgIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzIHN0YXR1czsKLSAgICBWZWN0b3I8UmVm
UHRyPEFwcGxlUGF5RXJyb3I+PiBlcnJvcnM7Ci19OwotCi1XRUJDT1JFX0VYUE9SVCBib29sIGlz
RmluYWxTdGF0ZVJlc3VsdChjb25zdCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0PiYpOwotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50QXV0aG9y
aXphdGlvblN0YXR1cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50
QXV0aG9yaXphdGlvblN0YXR1cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZTA2
ZDQ0MTNiZDNjODQ3MGRlZTE5N2ZiMDA3NDRmOGU5MGZkOGJhLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAot
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0g
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2lmIEVOQUJMRShBUFBMRV9QQVkp
Ci0KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWVu
dW0gY2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMgewotICAgIFN1Y2Nlc3MsCi0gICAg
RmFpbHVyZSwKLSAgICBQSU5SZXF1aXJlZCwKLSAgICBQSU5JbmNvcnJlY3QsCi0gICAgUElOTG9j
a291dCwKLX07Ci0KLX0KLQotbmFtZXNwYWNlIFdURiB7Ci10ZW1wbGF0ZTw+IHN0cnVjdCBFbnVt
VHJhaXRzPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzPiB7Ci0gICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRp
b25TdGF0dXMsCi0gICAgICAgIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpT
dWNjZXNzLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6RmFp
bHVyZSwKLSAgICAgICAgV2ViQ29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM6OlBJTlJl
cXVpcmVkLAotICAgICAgICBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6UElO
SW5jb3JyZWN0LAotICAgICAgICBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6
UElOTG9ja291dAotICAgID47Ci19OwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmNwcAppbmRleCBiMDEy
YjU4MGRkNTkyNjlhNzFiNWRlY2UxNzZjMDBiZDU1NmJmMzBlLi5lOTk1YTJiMWU0NTZjZDlmZDM5
ZDI0ODA5NzUwZjYwYmE3MWZjM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuY3BwCkBAIC0zOCw3ICszOCw2IEBACiAj
aW5jbHVkZSAiTGlua0ljb25Db2xsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5j
bHVkZSAiUGFnZS5oIgotI2luY2x1ZGUgIlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmgiCiAj
aW5jbHVkZSAiUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiUGF5bWVudFNl
c3Npb24uaCIKICNpbmNsdWRlICJVc2VyQ29udGVudFByb3ZpZGVyLmgiCkBAIC0xNjQsMTEgKzE2
MywxMSBAQCB2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVDb3Vwb25Db2RlQ2hhbmdl
KHN0ZDo6b3B0aW9uYWw8QXBwbGVQYXlDb3Vwb25DbwogCiAjZW5kaWYgLy8gRU5BQkxFKEFQUExF
X1BBWV9DT1VQT05fQ09ERSkKIAotdm9pZCBQYXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5
bWVudFNlc3Npb24oc3RkOjpvcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJiBy
ZXN1bHQpCit2b2lkIFBheW1lbnRDb29yZGluYXRvcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIEFTU0VS
VChtX2FjdGl2ZVNlc3Npb24pOwogCi0gICAgYm9vbCBpc0ZpbmFsU3RhdGUgPSBpc0ZpbmFsU3Rh
dGVSZXN1bHQocmVzdWx0KTsKKyAgICBib29sIGlzRmluYWxTdGF0ZSA9IHJlc3VsdC5pc0ZpbmFs
U3RhdGUoKTsKICAgICBQQVlNRU5UX0NPT1JESU5BVE9SX1JFTEVBU0VfTE9HKCJjb21wbGV0ZVBh
eW1lbnRTZXNzaW9uKCkgKGlzRmluYWxTdGF0ZTogJWQpIiwgaXNGaW5hbFN0YXRlKTsKICAgICBt
X2NsaWVudC5jb21wbGV0ZVBheW1lbnRTZXNzaW9uKFdURk1vdmUocmVzdWx0KSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvci5o
CmluZGV4IDI2N2I1ODZlZTA1MGVmMmFhNzA4NGYzYmIwMmFlOWQ3MmRkOThmODMuLjM4MmVmYjYz
OWY5Y2QzOTc3NGJhMGU5YjQ3Mzg5ZjcwMTUxOWRmMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3IuaApAQCAtNDMsMTUgKzQz
LDE0IEBAIGNsYXNzIFBheW1lbnRNZXJjaGFudFNlc3Npb247CiBjbGFzcyBQYXltZW50TWV0aG9k
OwogY2xhc3MgUGF5bWVudFNlc3Npb247CiBjbGFzcyBQYXltZW50U2Vzc2lvbkVycm9yOwotZW51
bSBjbGFzcyBQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czsKIHN0cnVjdCBBcHBsZVBheUNvdXBv
bkNvZGVVcGRhdGU7CitzdHJ1Y3QgQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDsK
IHN0cnVjdCBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGU7CiBzdHJ1Y3QgQXBwbGVQYXlTZXR1
cENvbmZpZ3VyYXRpb247CiBzdHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGU7CiBz
dHJ1Y3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZDsKIHN0cnVjdCBBcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7Ci1zdHJ1Y3QgUGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ7CiAKIGNsYXNzIFBheW1lbnRDb29yZGluYXRvciA6IHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxQYXltZW50Q29vcmRpbmF0b3I+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKQEAgLTc2LDcgKzc1LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShBUFBMRV9QQVlfQ09V
UE9OX0NPREUpCiAgICAgdm9pZCBjb21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3RkOjpvcHRpb25h
bDxBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGU+JiYpOwogI2VuZGlmCi0gICAgdm9pZCBjb21wbGV0
ZVBheW1lbnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+
JiYpOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lvbihBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0JiYpOwogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpOwogICAg
IHZvaWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKaW5kZXgg
MDY4ZDllMmFhNmMxNzEyYTk3NTA4MDljYjYzM2RiMjZkZjNiMGJkYS4uZmNhNGM1NjM4Njk0N2M3
NzY1MDk4MDRhOTU0OTM2NWJkNDE1N2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50Q29vcmRpbmF0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRDb29yZGluYXRvckNsaWVudC5oCkBAIC0zOCwx
MSArMzgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBQ
YXltZW50TWVyY2hhbnRTZXNzaW9uOwogc3RydWN0IEFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZTsK
K3N0cnVjdCBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Owogc3RydWN0IEFwcGxl
UGF5UGF5bWVudE1ldGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNldHVwQ29uZmlndXJhdGlv
bjsKIHN0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBh
eVNoaXBwaW5nTWV0aG9kVXBkYXRlOwotc3RydWN0IFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
OwogCiBjbGFzcyBQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgewogcHVibGljOgpAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKEFQUExFX1BBWV9DT1VQT05fQ09ERSkKICAgICB2
aXJ0dWFsIHZvaWQgY29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8QXBwbGVQ
YXlDb3Vwb25Db2RlVXBkYXRlPiYmKSA9IDA7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgY29t
cGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0PiYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGFib3J0UGF5bWVudFNlc3Npb24oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFBheW1l
bnRTZXNzaW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBwYXltZW50Q29vcmRpbmF0b3JEZXN0
cm95ZWQoKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L2NvY29hL1BheW1lbnRBUElWZXJzaW9uQ29jb2EubW0KaW5kZXggY2RhMDM4OTdi
NzgzMWY5NzYwZThhYmI2YjRkY2Y3M2U1OWQ3YjQ4Ny4uNjgyOTA4NTE1MThhYjJiMmZkMTVhZGZl
NDA5Njc1OWNmZjA2YWVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9jb2NvYS9QYXltZW50QVBJVmVyc2lvbkNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvY29jb2EvUGF5bWVudEFQSVZlcnNpb25Db2NvYS5tbQpAQCAtMzUs
NyArMzUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1bnNpZ25lZCBQYXltZW50QVBJVmVyc2lv
bjo6Y3VycmVudCgpCiB7CiAgICAgc3RhdGljIHVuc2lnbmVkIGN1cnJlbnQgPSBbXSB7Ci0jaWYg
RU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0RFVEFJTFNfREFUQSkgfHwgRU5BQkxFKEFQUExFX1BB
WV9BTVNfVUkpCisjaWYgRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5UX0NPTVBMRVRFX0RFVEFJTFNf
REFUQSkKKyAgICAgICAgcmV0dXJuIDE0OworI2VsaWYgRU5BQkxFKEFQUExFX1BBWV9QQVlNRU5U
X0RFVEFJTFNfREFUQSkgfHwgRU5BQkxFKEFQUExFX1BBWV9BTVNfVUkpCiAgICAgICAgIHJldHVy
biAxMzsKICNlbGlmIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpIHx8IEVOQUJMRShBUFBM
RV9QQVlfU0hJUFBJTkdfQ09OVEFDVF9FRElUSU5HX01PREUpIHx8IEVOQUJMRShBUFBMRV9QQVlf
UkVDVVJSSU5HX0xJTkVfSVRFTSkgfHwgRU5BQkxFKEFQUExFX1BBWV9ERUZFUlJFRF9MSU5FX0lU
RU0pIHx8IEVOQUJMRShBUFBMRV9QQVlfU0hJUFBJTkdfTUVUSE9EX0RBVEVfQ09NUE9ORU5UU19S
QU5HRSkKICAgICAgICAgcmV0dXJuIDEyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBw
bGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjE3ZWM1YWQ2Yjk3NTYx
ZWE4YjE3YjJlZTJjZWRlMjY3NjRkODdlNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxl
dGVEZXRhaWxzLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKEFQUExFX1BBWSkgJiYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKKworI2lu
Y2x1ZGUgPG9wdGlvbmFsPgorCisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbmNsdWRl
IDxXZWJLaXRBZGRpdGlvbnMvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzQWRkaXRpb25z
Lmg+CisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgQXBwbGVQYXlQYXlt
ZW50Q29tcGxldGVEZXRhaWxzIHsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudENvbXBsZXRl
RGV0YWlsc0FkZGl0aW9uc19tZW1iZXJzKQorICAgIEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0
YWlsc0FkZGl0aW9uc19tZW1iZXJzCisjZW5kaWYKKworICAgIHRlbXBsYXRlPHR5cGVuYW1lIEVu
Y29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxBcHBsZVBheVBheW1lbnRDb21wbGV0ZURl
dGFpbHM+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTx0eXBlbmFtZSBFbmNvZGVy
Pgordm9pZCBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHM6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAoreworICAgIFVOVVNFRF9QQVJBTShlbmNvZGVyKTsKKyNpZiBkZWZpbmVk
KEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlsc0FkZGl0aW9uc19lbmNvZGUpCisgICAgQXBw
bGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzQWRkaXRpb25zX2VuY29kZQorI2VuZGlmCit9CisK
K3RlbXBsYXRlPHR5cGVuYW1lIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPEFwcGxlUGF5UGF5bWVu
dENvbXBsZXRlRGV0YWlscz4gQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyNkZWZpbmUgREVDT0RFKG5hbWUsIHR5cGUpIFwKKyAgICBz
dGQ6Om9wdGlvbmFsPHR5cGU+IG5hbWU7IFwKKyAgICBkZWNvZGVyID4+IG5hbWU7IFwKKyAgICBp
ZiAoIW5hbWUpIFwKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsgXAorCisgICAgVU5VU0VE
X1BBUkFNKGRlY29kZXIpOworI2lmIGRlZmluZWQoQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRh
aWxzQWRkaXRpb25zX2RlY29kZV9tZW1iZXJzKQorICAgIEFwcGxlUGF5UGF5bWVudENvbXBsZXRl
RGV0YWlsc0FkZGl0aW9uc19kZWNvZGVfbWVtYmVycworI2VuZGlmCisKKyN1bmRlZiBERUNPREUK
KworICAgIHJldHVybiB7IHsKKyNpZiBkZWZpbmVkKEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0
YWlsc0FkZGl0aW9uc19kZWNvZGVfcmV0dXJuKQorICAgICAgICBBcHBsZVBheVBheW1lbnRDb21w
bGV0ZURldGFpbHNBZGRpdGlvbnNfZGVjb2RlX3JldHVybgorI2VuZGlmCisgICAgfSB9OworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZKSAm
JiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFp
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9B
cHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZlNTVmNGZhNGE1
NThmMWNjN2QyY2Y3MTA0YWY2N2ZjMDg5MDI2MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENv
bXBsZXRlRGV0YWlscy5pZGwKQEAgLTAsMCArMSwyOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBD
b25kaXRpb25hbD1BUFBMRV9QQVkmUEFZTUVOVF9SRVFVRVNUCitdIGRpY3Rpb25hcnkgQXBwbGVQ
YXlQYXltZW50Q29tcGxldGVEZXRhaWxzIHsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBhOGI2MGVlNDc5MjIxNWJkMjc2NjhhYmUxZmQ3
NDdmNGU0OTY3NjBkLi45MGZiOGZjNjNhYTYxYzg3ODQ4Mjg1MGE5Y2YwOGEzNWE4ODFkN2NmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTQw
LDYgKzQwLDggQEAKICNpbmNsdWRlICJBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5oIgogI2lu
Y2x1ZGUgIkFwcGxlUGF5TW9kaWZpZXIuaCIKICNpbmNsdWRlICJBcHBsZVBheVBheW1lbnQuaCIK
KyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmgiCisjaW5jbHVk
ZSAiQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlQ
YXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJl
cXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oIgpAQCAt
NTksNyArNjEsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXllckVycm9yRmll
bGRzLmgiCiAjaW5jbHVkZSAiUGF5bWVudC5oIgotI2luY2x1ZGUgIlBheW1lbnRBdXRob3JpemF0
aW9uU3RhdHVzLmgiCisjaW5jbHVkZSAiUGF5bWVudENvbXBsZXRlLmgiCiAjaW5jbHVkZSAiUGF5
bWVudENvbnRhY3QuaCIKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRl
ICJQYXltZW50RGV0YWlsc01vZGlmaWVyLmgiCkBAIC02ODUsMjcgKzY4Nyw0NiBAQCBFeGNlcHRp
b25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpwYXltZW50TWV0aG9kVXBkYXRlZChW
ZWN0b3I8UmVmUHRyPEFwcAogICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQgQXBwbGVQYXlQYXlt
ZW50SGFuZGxlcjo6Y29tcGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYgcmVz
dWx0KQotewotICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIEFTU0VSVChpc0ZpbmFsU3RhdGVS
ZXN1bHQoc3RkOjpudWxsb3B0KSk7Ci0gICAgICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBs
ZXRlUGF5bWVudFNlc3Npb24oc3RkOjpudWxsb3B0KTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKK3N0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBh
eVBheW1lbnRDb21wbGV0ZURldGFpbHM+IGNvbnZlcnRBbmRWYWxpZGF0ZShBcHBsZVBheVBheW1l
bnRDb21wbGV0ZURldGFpbHMmJiBkZXRhaWxzKSB7IHJldHVybiBXVEZNb3ZlKGRldGFpbHMpOyB9
CitzdGF0aWMgdm9pZCBtZXJnZShBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Jiwg
QXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzJiYpIHsgfQorI2VuZGlmCiAKLSAgICBQYXlt
ZW50QXV0aG9yaXphdGlvblJlc3VsdCBhdXRob3JpemF0aW9uUmVzdWx0OwotICAgIHN3aXRjaCAo
KnJlc3VsdCkgeworRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6Y29t
cGxldGUoRG9jdW1lbnQmIGRvY3VtZW50LCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4m
JiByZXN1bHQsIFN0cmluZyYmIHNlcmlhbGl6ZWREYXRhKQoreworICAgIEFwcGxlUGF5UGF5bWVu
dEF1dGhvcml6YXRpb25SZXN1bHQgYXV0aG9yaXphdGlvblJlc3VsdDsKKworICAgIHN3aXRjaCAo
cmVzdWx0LnZhbHVlX29yKFBheW1lbnRDb21wbGV0ZTo6U3VjY2VzcykpIHsKICAgICBjYXNlIFBh
eW1lbnRDb21wbGV0ZTo6RmFpbDoKICAgICBjYXNlIFBheW1lbnRDb21wbGV0ZTo6VW5rbm93bjoK
LSAgICAgICAgYXV0aG9yaXphdGlvblJlc3VsdC5zdGF0dXMgPSBQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1czo6RmFpbHVyZTsKKyAgICAgICAgYXV0aG9yaXphdGlvblJlc3VsdC5zdGF0dXMgPSBB
cHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpGYWlsdXJlOwogICAgICAgICBicmVh
azsKKwogICAgIGNhc2UgUGF5bWVudENvbXBsZXRlOjpTdWNjZXNzOgotICAgICAgICBhdXRob3Jp
emF0aW9uUmVzdWx0LnN0YXR1cyA9IFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpTdWNjZXNz
OworICAgICAgICBhdXRob3JpemF0aW9uUmVzdWx0LnN0YXR1cyA9IEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQ6OlN1Y2Nlc3M7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAg
IEFTU0VSVChpc0ZpbmFsU3RhdGVSZXN1bHQoYXV0aG9yaXphdGlvblJlc3VsdCkpOworICAgIGlm
ICghc2VyaWFsaXplZERhdGEuaXNFbXB0eSgpKSB7CisgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoZG9jdW1lbnQudm0oKSk7CisKKyAgICAgICAgYXV0byBwYXJz
ZWREYXRhID0gSlNPTlBhcnNlKGRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKHNlcmlh
bGl6ZWREYXRhKSk7CisgICAgICAgIGlmICh0aHJvd1Njb3BlLmV4Y2VwdGlvbigpKQorICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKworICAg
ICAgICBhdXRvIGRldGFpbHMgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheVBheW1lbnRDb21w
bGV0ZURldGFpbHM+KCpkb2N1bWVudC5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShwYXJzZWREYXRh
KSk7CisgICAgICAgIGlmICh0aHJvd1Njb3BlLmV4Y2VwdGlvbigpKQorICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEV4aXN0aW5nRXhjZXB0aW9uRXJyb3IgfTsKKworICAgICAgICBhdXRv
IGNvbnZlcnRlZERldGFpbHMgPSBjb252ZXJ0QW5kVmFsaWRhdGUoV1RGTW92ZShkZXRhaWxzKSk7
CisgICAgICAgIGlmIChjb252ZXJ0ZWREZXRhaWxzLmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAg
ICAgcmV0dXJuIGNvbnZlcnRlZERldGFpbHMucmVsZWFzZUV4Y2VwdGlvbigpOworICAgICAgICBt
ZXJnZShhdXRob3JpemF0aW9uUmVzdWx0LCBjb252ZXJ0ZWREZXRhaWxzLnJlbGVhc2VSZXR1cm5W
YWx1ZSgpKTsKKyAgICB9CisKKyAgICBBU1NFUlQoYXV0aG9yaXphdGlvblJlc3VsdC5pc0ZpbmFs
U3RhdGUoKSk7CiAgICAgcGF5bWVudENvb3JkaW5hdG9yKCkuY29tcGxldGVQYXltZW50U2Vzc2lv
bihXVEZNb3ZlKGF1dGhvcml6YXRpb25SZXN1bHQpKTsKKyAgICByZXR1cm4geyB9OwogfQogCiBF
eGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVBheW1lbnRIYW5kbGVyOjpyZXRyeShQYXltZW50VmFs
aWRhdGlvbkVycm9ycyYmIHZhbGlkYXRpb25FcnJvcnMpCkBAIC03MjMsOCArNzQ0LDggQEAgRXhj
ZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlQYXltZW50SGFuZGxlcjo6cmV0cnkoUGF5bWVudFZhbGlk
YXRpb25FcnJvcnMmJiB2YWxpZGEKICAgICBpZiAoZXJyb3JzLmlzRW1wdHkoKSkKICAgICAgICAg
ZXJyb3JzLmFwcGVuZChBcHBsZVBheUVycm9yOjpjcmVhdGUoQXBwbGVQYXlFcnJvckNvZGU6OlVu
a25vd24sIHN0ZDo6bnVsbG9wdCwgbnVsbFN0cmluZygpKSk7CiAKLSAgICBQYXltZW50QXV0aG9y
aXphdGlvblJlc3VsdCBhdXRob3JpemF0aW9uUmVzdWx0IHsgUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXM6OkZhaWx1cmUsIFdURk1vdmUoZXJyb3JzKSB9OwotICAgIEFTU0VSVCghaXNGaW5hbFN0
YXRlUmVzdWx0KGF1dGhvcml6YXRpb25SZXN1bHQpKTsKKyAgICBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0IGF1dGhvcml6YXRpb25SZXN1bHQgeyBBcHBsZVBheVBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0OjpGYWlsdXJlLCBXVEZNb3ZlKGVycm9ycykgfTsKKyAgICBBU1NFUlQo
IWF1dGhvcml6YXRpb25SZXN1bHQuaXNGaW5hbFN0YXRlKCkpOwogICAgIHBheW1lbnRDb29yZGlu
YXRvcigpLmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV1RGTW92ZShhdXRob3JpemF0aW9uUmVzdWx0
KSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRIYW5kbGVyLmgKaW5kZXggOTE3MWRiZTVlM2UwMDc3ZTZiMzExMGI2NDQ3ZmMyOTliMDJjNzg4
ZS4uNmVlZGQ5OWIyYjk4YWZhYTEyZDM5YmQ1ZGY4MGI0ZmMwNTNkMzE3NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBh
eW1lbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmgKQEAgLTc4LDcgKzc4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhbk1ha2VQYXltZW50KERvY3VtZW50JiwgRnVuY3Rpb248dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWw7CiAgICAgRXhjZXB0aW9uT3I8dm9pZD4g
ZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJy
b3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJvckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBw
YXltZW50TWV0aG9kRXJyb3JzKSBmaW5hbDsKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFu
dFZhbGlkYXRpb25Db21wbGV0ZWQoSlNDOjpKU1ZhbHVlJiYpIGZpbmFsOwotICAgIHZvaWQgY29t
cGxldGUoc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYpIGZpbmFsOworICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGNvbXBsZXRlKERvY3VtZW50Jiwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29t
cGxldGU+JiYsIFN0cmluZyYmIHNlcmlhbGl6ZWREYXRhKSBmaW5hbDsKICAgICBFeGNlcHRpb25P
cjx2b2lkPiByZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKSBmaW5hbDsKIAogICAgIC8v
IFBheW1lbnRTZXNzaW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudENvbXBsZXRlRGV0YWlscy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0
NDk3ZjhhZjVkYTZmZjIxMjBmNDE3MDExNjBlMmNlN2VlMDQ0OTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURl
dGFpbHMuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUKQorCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNP
YmplY3QuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmcuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgUGF5bWVudENvbXBsZXRlRGV0YWlscyB7CisgICAgSlNDOjpT
dHJvbmc8SlNDOjpKU09iamVjdD4gZGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShQQVlNRU5UX1JFUVVFU1QpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRDb21wbGV0ZURldGFpbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50Q29tcGxldGVE
ZXRhaWxzLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYjEwNTY2ZjM0ZTFjYmM2MDVlNzZjMmZkNjlkMmVjOGM1
ZmQ3YzliCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50
cmVxdWVzdC9QYXltZW50Q29tcGxldGVEZXRhaWxzLmlkbApAQCAtMCwwICsxLDMwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVBBWU1FTlRfUkVRVUVTVAorXSBkaWN0aW9uYXJ5
IFBheW1lbnRDb21wbGV0ZURldGFpbHMgeworICAgIG9iamVjdD8gZGF0YTsKK307CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRIYW5kbGVy
LmgKaW5kZXggZjlkYTI0YjUxYWQxYWRjY2ZiMDA3NTkxMjVkNmY3MzBkYmFmOTdlYy4uODg4N2My
ODcyNmFlNmJhNWQ2ODI5ZTAwNDk1ODM4ZjdkNTgyYTQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50SGFuZGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudEhhbmRsZXIuaApAQCAtNTcs
NyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNhbk1ha2VQYXltZW50KERvY3Vt
ZW50JiwgRnVuY3Rpb248dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgPSAwOwogICAg
IHZpcnR1YWwgRXhjZXB0aW9uT3I8dm9pZD4gZGV0YWlsc1VwZGF0ZWQoUGF5bWVudFJlcXVlc3Q6
OlVwZGF0ZVJlYXNvbiwgU3RyaW5nJiYgZXJyb3IsIEFkZHJlc3NFcnJvcnMmJiwgUGF5ZXJFcnJv
ckZpZWxkcyYmLCBKU0M6OkpTT2JqZWN0KiBwYXltZW50TWV0aG9kRXJyb3JzKSA9IDA7CiAgICAg
dmlydHVhbCBFeGNlcHRpb25Pcjx2b2lkPiBtZXJjaGFudFZhbGlkYXRpb25Db21wbGV0ZWQoSlND
OjpKU1ZhbHVlJiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcGxldGUoc3RkOjpvcHRpb25h
bDxQYXltZW50Q29tcGxldGU+JiYpID0gMDsKKyAgICB2aXJ0dWFsIEV4Y2VwdGlvbk9yPHZvaWQ+
IGNvbXBsZXRlKERvY3VtZW50Jiwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYsIFN0
cmluZyYmIHNlcmlhbGl6ZWREYXRhKSA9IDA7CiAgICAgdmlydHVhbCBFeGNlcHRpb25Pcjx2b2lk
PiByZXRyeShQYXltZW50VmFsaWRhdGlvbkVycm9ycyYmKSA9IDA7CiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3Qu
Y3BwCmluZGV4IGZkYjJkY2EwZjQ2ZGFiMTg3Y2Q4MWUyOTEwOTliNGNjYzQ2YmJhNTEuLjlhMWY2
ZGYwNjkwZDA5ZDllMDRkOWE4YWY2NDA0Zjg3ZDQ2ZDE2NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBA
IC03NzIsMTMgKzc3MiwxNiBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpyZWplY3QoRXhjZXB0aW9u
JiYgZXhjZXB0aW9uKQogICAgIGFib3J0V2l0aEV4Y2VwdGlvbihXVEZNb3ZlKGV4Y2VwdGlvbikp
OwogfQogCi1FeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdDo6Y29tcGxldGUoc3RkOjpv
cHRpb25hbDxQYXltZW50Q29tcGxldGU+JiYgcmVzdWx0KQorRXhjZXB0aW9uT3I8dm9pZD4gUGF5
bWVudFJlcXVlc3Q6OmNvbXBsZXRlKERvY3VtZW50JiBkb2N1bWVudCwgc3RkOjpvcHRpb25hbDxQ
YXltZW50Q29tcGxldGU+JiYgcmVzdWx0LCBTdHJpbmcmJiBzZXJpYWxpemVkRGF0YSkKIHsKICAg
ICBBU1NFUlQobV9zdGF0ZSA9PSBTdGF0ZTo6Q2xvc2VkKTsKICAgICBpZiAoIW1fYWN0aXZlUGF5
bWVudEhhbmRsZXIpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBBYm9ydEVycm9yIH07CiAK
LSAgICBhY3RpdmVQYXltZW50SGFuZGxlcigpLT5jb21wbGV0ZShXVEZNb3ZlKHJlc3VsdCkpOwor
ICAgIGF1dG8gZXhjZXB0aW9uID0gYWN0aXZlUGF5bWVudEhhbmRsZXIoKS0+Y29tcGxldGUoZG9j
dW1lbnQsIFdURk1vdmUocmVzdWx0KSwgV1RGTW92ZShzZXJpYWxpemVkRGF0YSkpOworICAgIGlm
IChleGNlcHRpb24uaGFzRXhjZXB0aW9uKCkpCisgICAgICAgIHJldHVybiBleGNlcHRpb24ucmVs
ZWFzZUV4Y2VwdGlvbigpOworCiAgICAgbV9hY3RpdmVQYXltZW50SGFuZGxlciA9IHN0ZDo6bnVs
bG9wdDsKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5oCmluZGV4IGViYmQ1NDI2YTU3OGI3
Yjc1NzkyM2MwMzZkOWIxNGUxN2Q1NDY3YmEuLjY3ZDIwODUwYTQzNGY2ODEwNWMwYjMzNzg1ZDk3
M2NkMDhkZGUwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJl
cXVlc3QvUGF5bWVudFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1l
bnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmgKQEAgLTk5LDcgKzk5LDcgQEAgcHVibGljOgogICAg
IHZvaWQgYWNjZXB0KGNvbnN0IFN0cmluZyYgbWV0aG9kTmFtZSwgUGF5bWVudFJlc3BvbnNlOjpE
ZXRhaWxzRnVuY3Rpb24mJik7CiAgICAgdm9pZCBhY2NlcHQoY29uc3QgU3RyaW5nJiBtZXRob2RO
YW1lLCBQYXltZW50UmVzcG9uc2U6OkRldGFpbHNGdW5jdGlvbiYmLCBSZWY8UGF5bWVudEFkZHJl
c3M+JiYgc2hpcHBpbmdBZGRyZXNzLCBjb25zdCBTdHJpbmcmIHBheWVyTmFtZSwgY29uc3QgU3Ry
aW5nJiBwYXllckVtYWlsLCBjb25zdCBTdHJpbmcmIHBheWVyUGhvbmUpOwogICAgIHZvaWQgcmVq
ZWN0KEV4Y2VwdGlvbiYmKTsKLSAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZShzdGQ6Om9w
dGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29tcGxl
dGUoRG9jdW1lbnQmLCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0ZT4mJiwgU3RyaW5nJiYg
c2VyaWFsaXplZERhdGEpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHJldHJ5KFBheW1lbnRWYWxp
ZGF0aW9uRXJyb3JzJiYpOwogICAgIHZvaWQgY2FuY2VsKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmNwcApp
bmRleCAyMWNkYzIxNTVlZTFhODczYmQyZmQzM2RlMDQxNTJmMjAzZDQ4ZmM3Li40OTFiNzdiOGJi
YTRkY2RkYTFlYWQ3OTM5ZmJjNDg5ZTIxYmQyMWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuY3BwCkBAIC0y
OCw5ICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVCkKIAorI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBheW1lbnRDb21wbGV0ZS5oIgorI2luY2x1
ZGUgIlBheW1lbnRDb21wbGV0ZURldGFpbHMuaCIKICNpbmNsdWRlICJQYXltZW50UmVxdWVzdC5o
IgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTT05PYmplY3QuaD4KKyNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9UaHJvd1Njb3BlLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC02Myw3ICs2OCw3IEBAIHZvaWQgUGF5
bWVudFJlc3BvbnNlOjpzZXREZXRhaWxzRnVuY3Rpb24oRGV0YWlsc0Z1bmN0aW9uJiYgZGV0YWls
c0Z1bmN0aW9uKQogICAgIG1fY2FjaGVkRGV0YWlscyA9IHsgfTsKIH0KIAotdm9pZCBQYXltZW50
UmVzcG9uc2U6OmNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmIHJlc3Vs
dCwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3ZvaWQgUGF5bWVudFJlc3Bv
bnNlOjpjb21wbGV0ZShEb2N1bWVudCYgZG9jdW1lbnQsIHN0ZDo6b3B0aW9uYWw8UGF5bWVudENv
bXBsZXRlPiYmIHJlc3VsdCwgc3RkOjpvcHRpb25hbDxQYXltZW50Q29tcGxldGVEZXRhaWxzPiYm
IGRldGFpbHMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYg
KG1fc3RhdGUgPT0gU3RhdGU6OlN0b3BwZWQgfHwgIW1fcmVxdWVzdCkgewogICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBBYm9ydEVycm9yIH0pOwpAQCAtNzUsMTIgKzgwLDI3IEBA
IHZvaWQgUGF5bWVudFJlc3BvbnNlOjpjb21wbGV0ZShzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21w
bGV0ZT4mJiByZXN1bHQsIERPTVByb21pCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBB
U1NFUlQoaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwotICAgIEFTU0VSVChtX3N0YXRlID09IFN0YXRl
OjpDcmVhdGVkKTsKLSAgICBtX3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7Ci0gICAgbV9zdGF0
ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CisgICAgU3RyaW5nIHNlcmlhbGl6ZWREYXRhOworICAgIGlm
IChkZXRhaWxzKSB7CisgICAgICAgIGlmIChhdXRvIGRhdGEgPSBkZXRhaWxzLT5kYXRhKSB7Cisg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50
Lmdsb2JhbE9iamVjdCgpLT52bSgpKTsKIAotICAgIHByb21pc2Uuc2V0dGxlKG1fcmVxdWVzdC0+
Y29tcGxldGUoV1RGTW92ZShyZXN1bHQpKSk7CisgICAgICAgICAgICBzZXJpYWxpemVkRGF0YSA9
IEpTT05TdHJpbmdpZnkoZG9jdW1lbnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEuZ2V0KCksIDApOwor
ICAgICAgICAgICAgaWYgKHRocm93U2NvcGUuZXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgICAg
ICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBFeGlzdGluZ0V4Y2VwdGlvbkVycm9yIH0pOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0K
KworICAgIGF1dG8gZXhjZXB0aW9uID0gbV9yZXF1ZXN0LT5jb21wbGV0ZShkb2N1bWVudCwgV1RG
TW92ZShyZXN1bHQpLCBXVEZNb3ZlKHNlcmlhbGl6ZWREYXRhKSk7CisgICAgaWYgKCFleGNlcHRp
b24uaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgQVNTRVJUKGhhc1BlbmRpbmdBY3Rpdml0eSgp
KTsKKyAgICAgICAgQVNTRVJUKG1fc3RhdGUgPT0gU3RhdGU6OkNyZWF0ZWQpOworICAgICAgICBt
X3BlbmRpbmdBY3Rpdml0eSA9IG51bGxwdHI7CisgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q29t
cGxldGVkOworICAgIH0KKyAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKGV4Y2VwdGlvbikpOwog
fQogCiB2b2lkIFBheW1lbnRSZXNwb25zZTo6cmV0cnkoUGF5bWVudFZhbGlkYXRpb25FcnJvcnMm
JiBlcnJvcnMsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2Uu
aAppbmRleCA0ZDdiYTdmNmQ3MDZmOGYxMmU4MDc5ZDU0ZGJkYTYwMzU1ZDYzM2UxLi4wZTYwN2E0
MTEwOWVlZGI3OTgzOGNlOWIxNTdlYjhhZWIyN2QyMWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25zZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNlLmgKQEAgLTMy
LDE1ICszMiwxOCBAQAogI2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNWYWx1
ZUluV3JhcHBlZE9iamVjdC5oIgogI2luY2x1ZGUgIlBheW1lbnRBZGRyZXNzLmgiCi0jaW5jbHVk
ZSAiUGF5bWVudENvbXBsZXRlLmgiCiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIFBheW1lbnRSZXF1ZXN0Owor
CitzdHJ1Y3QgUGF5bWVudENvbXBsZXRlRGV0YWlsczsKIHN0cnVjdCBQYXltZW50VmFsaWRhdGlv
bkVycm9yczsKIAorZW51bSBjbGFzcyBQYXltZW50Q29tcGxldGU7CisKIHRlbXBsYXRlPHR5cGVu
YW1lIElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAogY2xhc3MgUGF5bWVudFJl
c3BvbnNlIGZpbmFsIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHB1YmxpYyBSZWZDb3VudGVkPFBheW1lbnRSZXNwb25zZT4gewpAQCAt
ODMsNyArODYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBwYXllclBob25lKCkgY29u
c3QgeyByZXR1cm4gbV9wYXllclBob25lOyB9CiAgICAgdm9pZCBzZXRQYXllclBob25lKGNvbnN0
IFN0cmluZyYgcGF5ZXJQaG9uZSkgeyBtX3BheWVyUGhvbmUgPSBwYXllclBob25lOyB9CiAKLSAg
ICB2b2lkIGNvbXBsZXRlKHN0ZDo6b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmLCBET01Qcm9t
aXNlRGVmZXJyZWQ8dm9pZD4mJik7CisgICAgdm9pZCBjb21wbGV0ZShEb2N1bWVudCYsIHN0ZDo6
b3B0aW9uYWw8UGF5bWVudENvbXBsZXRlPiYmLCBzdGQ6Om9wdGlvbmFsPFBheW1lbnRDb21wbGV0
ZURldGFpbHM+JiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKICAgICB2b2lkIHJldHJ5
KFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzJiYsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
ICAgICB2b2lkIGFib3J0V2l0aEV4Y2VwdGlvbihFeGNlcHRpb24mJik7CiAgICAgYm9vbCBoYXNS
ZXRyeVByb21pc2UoKSBjb25zdCB7IHJldHVybiAhIW1fcmV0cnlQcm9taXNlOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNwb25z
ZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXNw
b25zZS5pZGwKaW5kZXggNGY5MDViYjZmODdhODYxOWZkZmI3Yzg4NGViNTUwZjExZWJlMWUyNS4u
NjE5MzM3NjM0MjdiYWZjZmZmMDVmMjdhZGFmN2NhM2I0YTQ0NDI5ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVzcG9uc2UuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlc3BvbnNl
LmlkbApAQCAtNDIsNyArNDIsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmc/
IHBheWVyRW1haWw7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZz8gcGF5ZXJQaG9u
ZTsKIAotICAgIFtOZXdPYmplY3RdIFByb21pc2U8dW5kZWZpbmVkPiBjb21wbGV0ZShvcHRpb25h
bCBQYXltZW50Q29tcGxldGUgcmVzdWx0ID0gInVua25vd24iKTsKKyAgICBbQ2FsbFdpdGg9RG9j
dW1lbnQsIE5ld09iamVjdF0gUHJvbWlzZTx1bmRlZmluZWQ+IGNvbXBsZXRlKG9wdGlvbmFsIFBh
eW1lbnRDb21wbGV0ZSByZXN1bHQgPSAidW5rbm93biIsIG9wdGlvbmFsIFBheW1lbnRDb21wbGV0
ZURldGFpbHMgZGV0YWlscyk7CiAgICAgW05ld09iamVjdF0gUHJvbWlzZTx1bmRlZmluZWQ+IHJl
dHJ5KG9wdGlvbmFsIFBheW1lbnRWYWxpZGF0aW9uRXJyb3JzIGVycm9yRmllbGRzKTsKIAogICAg
IGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb25wYXllcmRldGFpbGNoYW5nZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtTWFjLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvUGxhdGZv
cm1NYWMuY21ha2UKaW5kZXggYmRkZGMzOGZjNmNlYzMyY2RhODEzNDEzNDhmMWZiOTdkN2E4YTBk
Ny4uOThiMDM1NzkxYTZlYmIwZDlmMTU3MWE1N2E0MmVjZDVmMTU1Y2ZiOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1NYWMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvUGxh
dGZvcm1NYWMuY21ha2UKQEAgLTc5Niw2ICs3OTYsNyBAQCBsaXN0KEFQUEVORCBXZWJDb3JlX0lE
TF9GSUxFUwogICAgIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZl
bnQuaWRsCiAKICAgICBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5TW9k
aWZpZXIuaWRsCisgICAgTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBh
eW1lbnRDb21wbGV0ZURldGFpbHMuaWRsCiAgICAgTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVJlcXVlc3QuaWRsCiAKICAgICBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9B
cHBsZVBheUFNU1VJUmVxdWVzdC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNjVhYjBmOWZjMmExNWY1
ZmQzOGY2ZTBiMWIzYzIwNzllNTMxNzY2Ni4uMjc4MDEzYzkwYjNlYTJjOWJiODc4NWQwMWUyYzY5
N2IzMmI3MGQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTM1NDUsNiArMzU0NSw3IEBAIEpTUGF0aDJE
LmNwcAogSlNQYXllckVycm9yRmllbGRzLmNwcAogSlNQYXltZW50QWRkcmVzcy5jcHAKIEpTUGF5
bWVudENvbXBsZXRlLmNwcAorSlNQYXltZW50Q29tcGxldGVEZXRhaWxzLmNwcAogSlNQYXltZW50
Q3VycmVuY3lBbW91bnQuY3BwCiBKU1BheW1lbnREZXRhaWxzQmFzZS5jcHAKIEpTUGF5bWVudERl
dGFpbHNJbml0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKaW5kZXggZGQ0MDRjZjMzMjA3OWZi
ODJhNjQyMTM2OTY5NTI2NTdiODQzNjllYy4uNDEwYzZmNGFkNWIyMTU5MDQ1ZDE1MmM2NjFiNTBm
MTUzNDY4NDY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlc0NvY29hLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29jb2EudHh0CkBAIC00NCw2ICs0NCw3IEBAIEpT
QXBwbGVQYXlNb2RpZmllci5jcHAKIEpTQXBwbGVQYXlQYXltZW50LmNwcAogSlNBcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0LmNwcAogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVk
RXZlbnQuY3BwCitKU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5jcHAKIEpTQXBwbGVQ
YXlQYXltZW50Q29udGFjdC5jcHAKIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kLmNwcAogSlNBcHBs
ZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50LmNwcApAQCAtNzQsNiArNzUsNyBAQCBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q291cG9uQ29kZUNoYW5nZWRFdmVudC5jcHAKIE1vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlDYW5jZWxFdmVudC5jcHAKIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlDb250YWN0RmllbGQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcAorTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0LmNwcAogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZl
bnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZl
bnQuY3BwCiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMjM0
YWJhMzA0YzViNmJhNTdjNjc0OThjZDMxOWM4MDlhNDdjNzNmMy4uNDczZDk5YjM3OWRlODNhNzA4
ODliZmUzNWNkODFjOTk0YTk1MjIyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk5LDcgKzU5OSw2IEBACiAJCTFBRTc5RDQz
MTg4REI2MUYwMDIyMzlDMiAvKiBVc2VyQ29udGVudENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTc5RDQxMTg4REI2MUYwMDIyMzlD
MiAvKiBVc2VyQ29udGVudENvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUU4MkY5MDBDQUFGQTlEMDAyMjM3QUUgLyogSlNEYXRh
YmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFF
ODJGOEUwQ0FBRkE5RDAwMjIzN0FFIC8qIEpTRGF0YWJhc2UuaCAqLzsgfTsKIAkJMUFFODJGRUQw
Q0FCMDdFRTAwMjIzN0FFIC8qIEpTU1FMUmVzdWx0U2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU4MkZFQjBDQUIwN0VFMDAyMjM3QUUgLyogSlNT
UUxSZXN1bHRTZXQuaCAqLzsgfTsKLQkJMUFFOTZBODgxRDFBMENFQjAwQjg2NzY4IC8qIFBheW1l
bnRBdXRob3JpemF0aW9uU3RhdHVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQUU5NkE4NjFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudEF1dGhvcml6
YXRpb25TdGF0dXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQkxQUU5NkE4OTFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudE1lcmNoYW50U2Vzc2lv
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFFOTZB
ODcxRDFBMENFQjAwQjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQUU5NkE4QjFEMUEwRERE
MDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRTk2QTdCMUQxQTBBODAwMEI4
Njc2OCAvKiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6ZWRFdmVudC5oICovOyB9OwogCQkxQUU5
NkE4RDFEMUEwREREMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUU5
NkE3RDFEMUEwQTgwMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2
ZW50LmggKi87IH07CkBAIC0zMDk3LDYgKzMwOTYsMTAgQEAKIAkJOTU2ODREODMyNjUzNTdGODAw
MDI2OTM4IC8qIEFwcGxlUGF5Q291cG9uQ29kZURldGFpbHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1Njg0RDgxMjY1MzU3RjcwMDAyNjkzOCAvKiBB
cHBsZVBheUNvdXBvbkNvZGVEZXRhaWxzLmggKi87IH07CiAJCTk1OTZCOTMzMjVERUVFQTAwMEVE
MkNGQSAvKiBBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTZCOTMwMjVERUVFOUYwMEVEMkNGQSAvKiBBcHBs
ZVBheUNvdXBvbkNvZGVVcGRhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk5NTk2QjkzODI1REVFRjAzMDBFRDJDRkEgLyogSlNBcHBsZVBheUNv
dXBvbkNvZGVDaGFuZ2VkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1OTZCOTM2MjVERUVGMDIwMEVEMkNGQSAvKiBKU0FwcGxlUGF5Q291cG9u
Q29kZUNoYW5nZWRFdmVudC5oICovOyB9OworCQk5NTlDRUQxMDI3OUNCNjg2MDAxN0E4RkYgLyog
UGF5bWVudENvbXBsZXRlRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTU5Q0VEMEQyNzlDQjY4NTAwMTdBOEZGIC8qIFBheW1lbnRDb21wbGV0
ZURldGFpbHMuaCAqLzsgfTsKKwkJOTU5Q0VEMTQyNzlDQjZCNjAwMTdBOEZGIC8qIEpTUGF5bWVu
dENvbXBsZXRlRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTU5Q0VEMTIyNzlDQjZCNTAwMTdBOEZGIC8qIEpTUGF5bWVudENvbXBsZXRlRGV0
YWlscy5oICovOyB9OworCQk5NTlDRUQxQzI3OUNCODJGMDAxN0E4RkYgLyogQXBwbGVQYXlQYXlt
ZW50Q29tcGxldGVEZXRhaWxzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5NTlDRUQxOTI3OUNCODJFMDAxN0E4RkYgLyogQXBwbGVQYXlQYXltZW50Q29t
cGxldGVEZXRhaWxzLmggKi87IH07CisJCTk1OUNFRDIxMjc5Q0I4OEIwMDE3QThGRiAvKiBKU0Fw
cGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5Q0VEMUYyNzlDQjg4QjAwMTdBOEZGIC8qIEpTQXBwbGVQ
YXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi87IH07CiAJCTk1QTFFMkU5MjVDQzc1QTkwMDI2
OEM4RSAvKiBNZWRpYUNvbnRyb2xzQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NUExRTJFNzI1Q0M3NUE4MDAyNjhDOEUgLyog
TWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk1QUE1NzEwMjVFRUVEMzIwMDRFOTI4MyAvKiBJbnNw
ZWN0b3JDYW52YXNDYWxsVHJhY2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NUFBNTcwRTI1RUVFRDMxMDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFz
Q2FsbFRyYWNlci5oICovOyB9OwogCQk5NUJBNEZBRDI2RDk4MUFBMDAyQTBFNjIgLyogUGxhdGZv
cm1WaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTVCQTRGQUIyNkQ5ODFBQTAwMkEwRTYyIC8qIFBsYXRmb3JtVmlld0NvbnRyb2xs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAt
MzMwNCw3ICszMzA3LDcgQEAKIAkJQTEyNzA1QzMxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3Np
dGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTEy
NzA1QzIxNjU2QkQ2NTAwQzJFMjdDIC8qIEdyaWRQb3NpdGlvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMkExMDUwMTY2NDQ0RkQwMDhGQTMx
MSAvKiBHcmlkVHJhY2tTaXplLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMTJBMTA0RTE2NjQ0NERDMDA4RkEzMTEgLyogR3JpZFRyYWNrU2l6ZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUExMkM1OUVF
MjAzNUZDOUIwMDEyMjM2QiAvKiBBcHBsZVBheUVycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURGREZENjFFNzFEOERGMDA4RjVEMzQgLyogQXBw
bGVQYXlFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07Ci0JCUExMkM1OUYwMjAzNUZDQUIwMDEyMjM2QiAvKiBBcHBsZVBheVBheW1lbnRBdXRob3Jp
emF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQURGREZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdC5oICovOyB9OworCQlBMTJDNTlGMDIwMzVGQ0FCMDAxMjIzNkIgLyogQXBwbGVQ
YXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGRDgxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQlBMTJDNTlGMTIwMzVGQ0JGMDAxMjIzNkIgLyogQXBwbGVQ
YXlQYXltZW50TWV0aG9kVXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxQURGREZEQTFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50
TWV0aG9kVXBkYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJQTEyQzU5RjIyMDM1RkNENjAwMTIyMzZCIC8qIEFwcGxlUGF5U2hpcHBpbmdDb250
YWN0VXBkYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQURGREZEQzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRh
dGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlB
MTJDNTlGMzIwMzVGQ0UyMDAxMjIzNkIgLyogQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFERkRGREUx
RTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNjk5Nyw2ICs3MDAw
LDcgQEAKIAkJMUFEQTRBMUIxRDIyRjJDMDAwNUE5QTE1IC8qIFBheW1lbnRNZXJjaGFudFNlc3Np
b25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBheW1l
bnRNZXJjaGFudFNlc3Npb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUFERkRGRDYxRTcxRDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5RXJyb3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlFcnJvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQURGREZENzFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlFcnJvci5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQYXlFcnJvci5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTFBREZERkQ4MUU3MUQ4REYwMDhGNUQzMyAvKiBBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxlUGF5UGF5
bWVudEF1dGhvcml6YXRpb25SZXN1bHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQURGREZEODFFNzFEOERGMDA4RjVEMzQgLyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlv
blJlc3VsdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFB
REZERkQ5MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVz
dWx0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0
aW9uUmVzdWx0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFERkRGREExRTcx
RDhERjAwOEY1RDM0IC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBBcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTcwOTAsNyArNzA5NCw2IEBACiAJCTFBRTk2QTgy
MUQxQTBBODAwMEI4Njc2OCAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkxQUU5NkE4MzFEMUEwQTgwMDBCODY3NjggLyogSlNBcHBsZVBheVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0ZWRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0FwcGxlUGF5
U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTFBRTk2QTg0MUQxQTBBODAwMEI4Njc2OCAvKiBKU0FwcGxlUGF5VmFsaWRhdGVNZXJjaGFu
dEV2ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQ
YXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkxQUU5NkE4NjFEMUEwQ0VCMDBCODY3NjggLyogUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUFFOTZBODcxRDFBMENFQjAw
Qjg2NzY4IC8qIFBheW1lbnRNZXJjaGFudFNlc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUGF5bWVudE1lcmNoYW50U2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQUVGNEU2NjE3MEUxNjAzMDBBQjI3OTkgLyogQ2FjaGVkRm9udENsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRGb250Q2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBRUY0RTY4MTcwRTE3NDgwMEFCMjc5OSAvKiBD
YWNoZWRTVkdEb2N1bWVudENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDYWNoZWRTVkdEb2N1bWVudENsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTMwMTcsNiArMTMwMjAsMTQgQEAKIAkJOTU5NkI5MzIyNURFRUU5RjAwRUQyQ0ZBIC8qIEFw
cGxlUGF5Q291cG9uQ29kZVVwZGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXBwbGVQ
YXlDb3Vwb25Db2RlVXBkYXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU5
NkI5MzUyNURFRUYwMDAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXBwbGVQYXlDb3Vwb25Db2Rl
VXBkYXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU5NkI5MzYyNURFRUYw
MjAwRUQyQ0ZBIC8qIEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTQXBwbGVQYXlDb3Vwb25Db2RlQ2hhbmdlZEV2ZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OUNFRDBEMjc5Q0I2ODUwMDE3QThG
RiAvKiBQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFBheW1lbnRDb21wbGV0ZURldGFpbHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTU5Q0VEMEYyNzlDQjY4NTAwMTdBOEZGIC8qIFBheW1lbnRDb21wbGV0ZURldGFpbHMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NTlDRUQxMjI3OUNCNkI1MDAxN0E4RkYgLyog
SlNQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTUGF5bWVudENvbXBsZXRlRGV0YWlscy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk5NTlDRUQxMzI3OUNCNkI1MDAxN0E4RkYgLyogSlNQYXltZW50Q29tcGxldGVEZXRhaWxz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTUGF5bWVudENvbXBs
ZXRlRGV0YWlscy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OUNFRDE5Mjc5
Q0I4MkUwMDE3QThGRiAvKiBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OUNFRDFCMjc5Q0I4MkUwMDE3QThG
RiAvKiBBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IEFwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTk1OUNFRDFFMjc5Q0I4OEEwMDE3QThGRiAvKiBKU0FwcGxlUGF5UGF5
bWVudENvbXBsZXRlRGV0YWlscy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBKU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5jcHA7IHBhdGggPSAuLi8uLi8u
Li8uLi8uLi8uLi8uLi8uLi9KU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk1OUNFRDFGMjc5Q0I4OEIwMDE3QThGRiAvKiBK
U0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBKU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5oOyBwYXRoID0gLi4v
Li4vLi4vLi4vLi4vLi4vLi4vLi4vSlNBcHBsZVBheVBheW1lbnRDb21wbGV0ZURldGFpbHMuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTVBMUUyRTcyNUNDNzVBODAwMjY4QzhFIC8q
IE1lZGlhQ29udHJvbHNDb250ZXh0TWVudUl0ZW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTWVkaWFDb250cm9sc0NvbnRleHRNZW51SXRlbS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NUFBNTcwRDI1RUVFRDMwMDA0RTkyODMgLyogSW5zcGVjdG9yQ2FudmFz
Q2FsbFRyYWNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnNw
ZWN0b3JDYW52YXNDYWxsVHJhY2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTVBQTU3MEUyNUVFRUQzMTAwNEU5MjgzIC8qIEluc3BlY3RvckNhbnZhc0NhbGxUcmFjZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zcGVjdG9yQ2FudmFzQ2FsbFRyYWNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk1OTYsNiArMTk2MDcsNyBAQAog
CQkJCUExREY1QTg1MUY3RUJERjIwMDU4QTQ3NyAvKiBBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0
eS5pZGwgKi8sCiAJCQkJN0M2NTIyRkUxRTAwRDAzNDAwNjc3RjIyIC8qIEFwcGxlUGF5UGF5bWVu
dC5oICovLAogCQkJCTdDNjUyMkZGMUUwMEQwMzQwMDY3N0YyMiAvKiBBcHBsZVBheVBheW1lbnQu
aWRsICovLAorCQkJCTFBREZERkQ4MUU3MUQ4REYwMDhGNUQzMyAvKiBBcHBsZVBheVBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0LmNwcCAqLywKIAkJCQkxQURGREZEODFFNzFEOERGMDA4RjVEMzQg
LyogQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oICovLAogCQkJCTFBREZERkQ5
MUU3MUQ4REYwMDhGNUQzNCAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmlk
bCAqLywKIAkJCQkxQThBNjQzRDFEMTlGQ0ZCMDBEMEUwMEYgLyogQXBwbGVQYXlQYXltZW50QXV0
aG9yaXplZEV2ZW50LmNwcCAqLywKQEAgLTE5NjYxLDcgKzE5NjczLDYgQEAKIAkJCQkxQThBNjQ1
MDFEMTlGQ0ZCMDBEMEUwMEYgLyogQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQuaWRsICov
LAogCQkJCTFBOEE2NDM3MUQxOUZDNTMwMEQwRTAwRiAvKiBQYXltZW50LmggKi8sCiAJCQkJQTE2
OUIwNDIyNDhGMDM3QjAwRUU4QjdCIC8qIFBheW1lbnRBUElWZXJzaW9uLmggKi8sCi0JCQkJMUFF
OTZBODYxRDFBMENFQjAwQjg2NzY4IC8qIFBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmggKi8s
CiAJCQkJMUE4QTY0MzgxRDE5RkM1MzAwRDBFMDBGIC8qIFBheW1lbnRDb250YWN0LmggKi8sCiAJ
CQkJMUE1OEU4NkIxRDE5RTQyRDAwQzBFQTczIC8qIFBheW1lbnRDb29yZGluYXRvci5jcHAgKi8s
CiAJCQkJMUE1OEU4NkMxRDE5RTQyRDAwQzBFQTczIC8qIFBheW1lbnRDb29yZGluYXRvci5oICov
LApAQCAtMTk4MjksNiArMTk4NDAsOCBAQAogCQkJCTFBREZERkU0MUU3MURDQTAwMDhGNUQzNCAv
KiBKU0FwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQuaCAqLywKIAkJCQkxQUU5NkE3
QTFEMUEwQTgwMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuY3Bw
ICovLAogCQkJCTFBRTk2QTdCMUQxQTBBODAwMEI4Njc2OCAvKiBKU0FwcGxlUGF5UGF5bWVudEF1
dGhvcml6ZWRFdmVudC5oICovLAorCQkJCTk1OUNFRDFFMjc5Q0I4OEEwMDE3QThGRiAvKiBKU0Fw
cGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5jcHAgKi8sCisJCQkJOTU5Q0VEMUYyNzlDQjg4
QjAwMTdBOEZGIC8qIEpTQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmggKi8sCiAJCQkJ
N0M2NTIzMEIxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50Q29udGFjdC5jcHAg
Ki8sCiAJCQkJN0M2NTIzMEMxRTAwREJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50Q29u
dGFjdC5oICovLAogCQkJCTdDNjUyMzBEMUUwMERCQjQwMDY3N0YyMiAvKiBKU0FwcGxlUGF5UGF5
bWVudE1ldGhvZC5jcHAgKi8sCkBAIC0yNjQ4OSw2ICsyNjUwMiw4IEBACiAJCQkJQTFDQzU2NjUx
RjQ2MTQ2ODAwQTQ1NTVCIC8qIEpTUGF5bWVudEFkZHJlc3MuaCAqLywKIAkJCQlBMUNDNTY2MDFG
NDYxNDYyMDBBNDU1NUIgLyogSlNQYXltZW50Q29tcGxldGUuY3BwICovLAogCQkJCUExQ0M1NjRF
MUY0NjE0NTIwMEE0NTU1QiAvKiBKU1BheW1lbnRDb21wbGV0ZS5oICovLAorCQkJCTk1OUNFRDEz
Mjc5Q0I2QjUwMDE3QThGRiAvKiBKU1BheW1lbnRDb21wbGV0ZURldGFpbHMuY3BwICovLAorCQkJ
CTk1OUNFRDEyMjc5Q0I2QjUwMDE3QThGRiAvKiBKU1BheW1lbnRDb21wbGV0ZURldGFpbHMuaCAq
LywKIAkJCQlBMUNDNTY1RDFGNDYxNDYwMDBBNDU1NUIgLyogSlNQYXltZW50Q3VycmVuY3lBbW91
bnQuY3BwICovLAogCQkJCUExQ0M1NjYzMUY0NjE0NjYwMEE0NTU1QiAvKiBKU1BheW1lbnRDdXJy
ZW5jeUFtb3VudC5oICovLAogCQkJCUExQ0M1NjU2MUY0NjE0NTkwMEE0NTU1QiAvKiBKU1BheW1l
bnREZXRhaWxzQmFzZS5jcHAgKi8sCkBAIC0yNjUzMCw2ICsyNjU0NSw4IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQlBMUY2Q0ZGQzFGRTA5NjIxMDAxODA3OEMgLyogQXBwbGVQYXlNb2RpZmllci5o
ICovLAogCQkJCUExRjZDRkZFMUZFMDk2MjEwMDE4MDc4QyAvKiBBcHBsZVBheU1vZGlmaWVyLmlk
bCAqLywKKwkJCQk5NTlDRUQxOTI3OUNCODJFMDAxN0E4RkYgLyogQXBwbGVQYXlQYXltZW50Q29t
cGxldGVEZXRhaWxzLmggKi8sCisJCQkJOTU5Q0VEMUIyNzlDQjgyRTAwMTdBOEZGIC8qIEFwcGxl
UGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5pZGwgKi8sCiAJCQkJQTFERjVBQTExRjdFRTExMzAw
NThBNDc3IC8qIEFwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwICovLAogCQkJCUExREY1QUEwMUY3
RUUxMTMwMDU4QTQ3NyAvKiBBcHBsZVBheVBheW1lbnRIYW5kbGVyLmggKi8sCiAJCQkJQTFERjVB
N0MxRjdFQkQwQjAwNThBNDc3IC8qIEFwcGxlUGF5UmVxdWVzdC5oICovLApAQCAtMjY1NTMsNiAr
MjY1NzAsOCBAQAogCQkJCUExRjc2QjQyMUY0NENGN0YwMDE0QzMxOCAvKiBQYXltZW50QWRkcmVz
cy5pZGwgKi8sCiAJCQkJQTFGNzZCNTgxRjQ0RDNCMjAwMTRDMzE4IC8qIFBheW1lbnRDb21wbGV0
ZS5oICovLAogCQkJCUExRjc2QjVBMUY0NEQzQjIwMDE0QzMxOCAvKiBQYXltZW50Q29tcGxldGUu
aWRsICovLAorCQkJCTk1OUNFRDBEMjc5Q0I2ODUwMDE3QThGRiAvKiBQYXltZW50Q29tcGxldGVE
ZXRhaWxzLmggKi8sCisJCQkJOTU5Q0VEMEYyNzlDQjY4NTAwMTdBOEZGIC8qIFBheW1lbnRDb21w
bGV0ZURldGFpbHMuaWRsICovLAogCQkJCUExRjc2QjM0MUY0NEM2MEYwMDE0QzMxOCAvKiBQYXlt
ZW50Q3VycmVuY3lBbW91bnQuaCAqLywKIAkJCQlBMUY3NkIzNjFGNDRDNjBGMDAxNEMzMTggLyog
UGF5bWVudEN1cnJlbmN5QW1vdW50LmlkbCAqLywKIAkJCQlBMUY3NkIxQzFGNDRDM0ZFMDAxNEMz
MTggLyogUGF5bWVudERldGFpbHNCYXNlLmggKi8sCkBAIC0zMzM5NSw2ICszMzQxNCw3IEBACiAJ
CQkJN0M2NTIzMDExRTAwRDAzNDAwNjc3RjIyIC8qIEFwcGxlUGF5UGF5bWVudC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTEyQzU5RjAyMDM1RkNBQjAwMTIyMzZCIC8qIEFwcGxlUGF5UGF5bWVudEF1
dGhvcml6YXRpb25SZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEE2NDUyMUQxOUZDRkIw
MEQwRTAwRiAvKiBBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCBpbiBIZWFkZXJzICov
LAorCQkJCTk1OUNFRDFDMjc5Q0I4MkYwMDE3QThGRiAvKiBBcHBsZVBheVBheW1lbnRDb21wbGV0
ZURldGFpbHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDNjUyMkZCMUUwMEM5MDkwMDY3N0YyMiAv
KiBBcHBsZVBheVBheW1lbnRDb250YWN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMURGNUFBMjFG
N0VFMTEzMDA1OEE0NzcgLyogQXBwbGVQYXlQYXltZW50SGFuZGxlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJN0M2NTIyRUYxRTAwQTRDNzAwNjc3RjIyIC8qIEFwcGxlUGF5UGF5bWVudE1ldGhvZC5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zNTA5NSw2ICszNTExNSw3IEBACiAJCQkJN0M2NTIzMTQxRTAw
REJCNDAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
MTJDNTlGQjIwMzYwQjAwMDAxMjIzNkIgLyogSlNBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUU5NkE4QjFEMUEwREREMDBCODY3NjggLyog
SlNBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCTk1
OUNFRDIxMjc5Q0I4OEIwMDE3QThGRiAvKiBKU0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWls
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTIzMTYxRTAwREJCNTAwNjc3RjIyIC8qIEpTQXBw
bGVQYXlQYXltZW50Q29udGFjdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M2NTIzMTgxRTAwREJC
NTAwNjc3RjIyIC8qIEpTQXBwbGVQYXlQYXltZW50TWV0aG9kLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxQUU5NkE4RDFEMUEwREREMDBCODY3NjggLyogSlNBcHBsZVBheVBheW1lbnRNZXRob2RTZWxl
Y3RlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTM1NTYyLDYgKzM1NTgzLDcgQEAKIAkJCQlB
MTY3N0UxNzIxM0UwM0YxMDBBMDhDMzQgLyogSlNQYXllckVycm9yRmllbGRzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMUNDNTY2NzFGNDYxNDdBMDBBNDU1NUIgLyogSlNQYXltZW50QWRkcmVzcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFDQzU2NjkxRjQ2MTQ4MDAwQTQ1NTVCIC8qIEpTUGF5bWVu
dENvbXBsZXRlLmggaW4gSGVhZGVycyAqLywKKwkJCQk5NTlDRUQxNDI3OUNCNkI2MDAxN0E4RkYg
LyogSlNQYXltZW50Q29tcGxldGVEZXRhaWxzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMUNDNTY2
QjFGNDYxNDg1MDBBNDU1NUIgLyogSlNQYXltZW50Q3VycmVuY3lBbW91bnQuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUExQ0M1NjZEMUY0NjE0OEEwMEE0NTU1QiAvKiBKU1BheW1lbnREZXRhaWxzQmFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFDQzU2NkYxRjQ2MTQ4RTAwQTQ1NTVCIC8qIEpTUGF5
bWVudERldGFpbHNJbml0LmggaW4gSGVhZGVycyAqLywKQEAgLTM2NDU0LDggKzM2NDc2LDggQEAK
IAkJCQkxQThBNjQzQTFEMTlGQzUzMDBEMEUwMEYgLyogUGF5bWVudC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTFGNzZCNDMxRjQ0Q0Y3RjAwMTRDMzE4IC8qIFBheW1lbnRBZGRyZXNzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBMTY5QjA0MzI0OEYwMzdCMDBFRThCN0IgLyogUGF5bWVudEFQSVZlcnNp
b24uaCBpbiBIZWFkZXJzICovLAotCQkJCTFBRTk2QTg4MUQxQTBDRUIwMEI4Njc2OCAvKiBQYXlt
ZW50QXV0aG9yaXphdGlvblN0YXR1cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTFGNzZCNUIxRjQ0
RDNCMjAwMTRDMzE4IC8qIFBheW1lbnRDb21wbGV0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTU5
Q0VEMTAyNzlDQjY4NjAwMTdBOEZGIC8qIFBheW1lbnRDb21wbGV0ZURldGFpbHMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBOEE2NDNCMUQxOUZDNTMwMEQwRTAwRiAvKiBQYXltZW50Q29udGFjdC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1OEU4NkUxRDE5RTQyRDAwQzBFQTczIC8qIFBheW1lbnRD
b29yZGluYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1OEU4NjYxRDE5RDRGMDAwQzBFQTcz
IC8qIFBheW1lbnRDb29yZGluYXRvckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGQyM2M5NmI2YzUyODAzZmVjMmU0NTdiN2Vj
N2RiYzllYjM3OTk1ZTAuLjE5M2NjN2Y2Y2ExYWZhN2FhMzQ1NjY1MTA5NWY1ZmRjZGJjM2M1MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC00MjYsNyArNDI2LDcg
QEAgY2xhc3MgRW1wdHlQYXltZW50Q29vcmRpbmF0b3JDbGllbnQgZmluYWwgOiBwdWJsaWMgUGF5
bWVudENvb3JkaW5hdG9yQ2xpZW50IHsKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RF
KQogICAgIHZvaWQgY29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8QXBwbGVQ
YXlDb3Vwb25Db2RlVXBkYXRlPiYmKSBmaW5hbCB7IH0KICNlbmRpZgotICAgIHZvaWQgY29tcGxl
dGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiYmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBwbGVQYXlQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmKSBmaW5hbCB7IH0KICAgICB2b2lkIGNhbmNlbFBh
eW1lbnRTZXNzaW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBhYm9ydFBheW1lbnRTZXNzaW9uKCkg
ZmluYWwgeyB9CiAgICAgdm9pZCBwYXltZW50Q29vcmRpbmF0b3JEZXN0cm95ZWQoKSBmaW5hbCB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGlu
YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYXltZW50Q29vcmRpbmF0b3Iu
Y3BwCmluZGV4IDQwZTU5M2RkMjkxYWQ1MGU1ZjMyMDFkNTIwNmQwMzdlMmE4MjI2NzYuLjdmOWI5
NDU4YTJiMjRiODZkOTYyMGI0YzU4YmJmMmI2NzFmYmNjOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmNwcApAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAKICNpbmNsdWRlICJBcHBsZVBheUNvdXBvbkNvZGVV
cGRhdGUuaCIKKyNpbmNsdWRlICJBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmgi
CiAjaW5jbHVkZSAiQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmgiCiAjaW5jbHVkZSAiQXBw
bGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRlICJBcHBsZVBheVNoaXBwaW5n
Q29udGFjdEVkaXRpbmdNb2RlLmgiCkBAIC0yNDgsMTAgKzI0OSwxMCBAQCB2b2lkIE1vY2tQYXlt
ZW50Q29vcmRpbmF0b3I6OmNhbmNlbFBheW1lbnQoKQogICAgIH0pOwogfQogCi12b2lkIE1vY2tQ
YXltZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oc3RkOjpvcHRpb25hbDxQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mJiByZXN1bHQpCit2b2lkIE1vY2tQYXltZW50Q29v
cmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oQXBwbGVQYXlQYXltZW50QXV0aG9yaXph
dGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKLSAgICBhdXRvIGlzRmluYWxTdGF0ZSA9IGlzRmluYWxT
dGF0ZVJlc3VsdChyZXN1bHQpOwotICAgIG1fZXJyb3JzID0gY29udmVydChXVEZNb3ZlKHJlc3Vs
dC0+ZXJyb3JzKSk7CisgICAgYXV0byBpc0ZpbmFsU3RhdGUgPSByZXN1bHQuaXNGaW5hbFN0YXRl
KCk7CisgICAgbV9lcnJvcnMgPSBjb252ZXJ0KFdURk1vdmUocmVzdWx0LmVycm9ycykpOwogCiAg
ICAgaWYgKCFpc0ZpbmFsU3RhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BheW1lbnRDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9Nb2NrUGF5bWVudENvb3JkaW5hdG9yLmgKaW5kZXggYWEwOGUxNmExMjEyZTFl
YTZiNTM5YTk3ZDQxMjI0YWI0ODllMGQxYS4uNTRiM2YyNWMwNjRmNGEyMmY4YTI3ZWQyYzIzNDg3
MGNmMTE5ZjVkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVu
dENvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGF5bWVudENv
b3JkaW5hdG9yLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShBUFBM
RV9QQVlfQ09VUE9OX0NPREUpCiAgICAgdm9pZCBjb21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3Rk
OjpvcHRpb25hbDxBcHBsZVBheUNvdXBvbkNvZGVVcGRhdGU+JiYpIGZpbmFsOwogI2VuZGlmCi0g
ICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ+JiYpIGZpbmFsOworICAgIHZvaWQgY29tcGxldGVQYXltZW50U2Vzc2lv
bihBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYpIGZpbmFsOwogICAgIHZvaWQg
YWJvcnRQYXltZW50U2Vzc2lvbigpIGZpbmFsOwogICAgIHZvaWQgY2FuY2VsUGF5bWVudFNlc3Np
b24oKSBmaW5hbDsKICAgICB2b2lkIHBheW1lbnRDb29yZGluYXRvckRlc3Ryb3llZCgpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50QXV0aG9y
aXphdGlvblByZXNlbnRlci5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9QYXltZW50
QXV0aG9yaXphdGlvblByZXNlbnRlci5oCmluZGV4IDA3MmUxZGI4NzcxZjA5MWJjNTA0NzhjYzY1
OTY3NTQzZTMxODU3NmIuLjM3NjJjZmQ0ZDk1ZWQxYmYzYjM3ZDkzMDc5YjA1NzkzNzQyOThmMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvUGF5bWVudEF1dGhvcml6
YXRpb25QcmVzZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1l
bnRBdXRob3JpemF0aW9uUHJlc2VudGVyLmgKQEAgLTQzLDYgKzQzLDcgQEAgY2xhc3MgUGF5bWVu
dE1lcmNoYW50U2Vzc2lvbjsKIGNsYXNzIFBheW1lbnRNZXRob2Q7CiBjbGFzcyBQYXltZW50U2Vz
c2lvbkVycm9yOwogc3RydWN0IEFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZTsKK3N0cnVjdCBBcHBs
ZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Owogc3RydWN0IEFwcGxlUGF5UGF5bWVudE1l
dGhvZFVwZGF0ZTsKIHN0cnVjdCBBcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZTsKIHN0cnVj
dCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kOwpAQCAtNzUsNyArNzYsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBheW1lbnRN
ZXJjaGFudFNlc3Npb24mKTsKICAgICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlv
bihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudE1ldGhvZFVwZGF0ZT4mJik7
Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnRTZXNzaW9uKGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+Jik7CisgICAgdm9pZCBjb21wbGV0ZVBh
eW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQm
Jik7CiAgICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbihzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5U2hpcHBpbmdDb250YWN0VXBkYXRlPiYmKTsKICAgICB2b2lk
IGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpB
cHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlPiYmKTsKICNpZiBIQVZFKFBBU1NLSVRfQ09VUE9O
X0NPREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyLm1tIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9jb2NvYS9Q
YXltZW50QXV0aG9yaXphdGlvblByZXNlbnRlci5tbQppbmRleCBiMjQ1NTc5ODBlZGUwY2ZlM2Rl
NDExYzZkNWMxOTY2NDAxOWQ2YjY1Li5iMjAwMTYwMDk4ZGFhYmEzOTdjNTBlNDZlYjdmMDhmYzEy
Y2YwNjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2NvY29hL1BheW1lbnRB
dXRob3JpemF0aW9uUHJlc2VudGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29j
b2EvUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIubW0KQEAgLTM1LDEwICszNSwxMCBAQAog
I2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheUVycm9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxl
UGF5RXJyb3JDb2RlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxlUGF5RXJyb3JDb250YWN0Rmll
bGQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3Vs
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVBheW1lbnRNZXRob2RVcGRhdGUuaD4KICNp
bXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RVcGRhdGUuaD4KICNpbXBvcnQg
PFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogI2ltcG9ydCA8V2ViQ29yZS9QYXltZW50
TWVyY2hhbnRTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRTdW1tYXJ5SXRlbXMu
aD4KICNpbXBvcnQgPHd0Zi9jb2NvYS9WZWN0b3JDb2NvYS5oPgpAQCAtNjYsMTkgKzY2LDI3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogLy8gRklYTUU6IFJhdGhlciB0aGFuIGhhdmluZyB0aGVzZSBm
cmVlIGZ1bmN0aW9ucyBzY2F0dGVyZWQgYWJvdXQsIEFwcGxlIFBheSBkYXRhIHR5cGVzIHNob3Vs
ZCBrbm93CiAvLyBob3cgdG8gY29udmVydCB0aGVtc2VsdmVzIHRvIGFuZCBmcm9tIHRoZWlyIHBs
YXRmb3JtIHJlcHJlc2VudGF0aW9ucy4KIAotc3RhdGljIFBLUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXMgdG9QS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzKFdlYkNvcmU6OlBheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzIHN0YXR1cykKK3N0YXRpYyBQS1BheW1lbnRBdXRob3JpemF0aW9uU3Rh
dHVzIHRvUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhXZWJDb3JlOjpBcHBsZVBheVBheW1l
bnRBdXRob3JpemF0aW9uUmVzdWx0OjpTdGF0dXMgc3RhdHVzKQogewogICAgIHN3aXRjaCAoc3Rh
dHVzKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1czo6U3Vj
Y2VzczoKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhvcml6YXRpb25SZXN1
bHQ6OlN1Y2Nlc3M6CiAgICAgICAgIHJldHVybiBQS1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVz
U3VjY2VzczsKLSAgICBjYXNlIFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpG
YWlsdXJlOgorCisgICAgY2FzZSBXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9u
UmVzdWx0OjpGYWlsdXJlOgogICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1c0ZhaWx1cmU7Ci0gICAgY2FzZSBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblN0YXR1
czo6UElOUmVxdWlyZWQ6CisKKyAgICBjYXNlIFdlYkNvcmU6OkFwcGxlUGF5UGF5bWVudEF1dGhv
cml6YXRpb25SZXN1bHQ6OlBJTlJlcXVpcmVkOgogICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0
aG9yaXphdGlvblN0YXR1c1BJTlJlcXVpcmVkOwotICAgIGNhc2UgV2ViQ29yZTo6UGF5bWVudEF1
dGhvcml6YXRpb25TdGF0dXM6OlBJTkluY29ycmVjdDoKKworICAgIGNhc2UgV2ViQ29yZTo6QXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdDo6UElOSW5jb3JyZWN0OgogICAgICAgICBy
ZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTkluY29ycmVjdDsKLSAgICBjYXNl
IFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzOjpQSU5Mb2Nrb3V0OgorCisgICAg
Y2FzZSBXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0OjpQSU5Mb2Nr
b3V0OgogICAgICAgICByZXR1cm4gUEtQYXltZW50QXV0aG9yaXphdGlvblN0YXR1c1BJTkxvY2tv
dXQ7CisKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAg
ICAgcmV0dXJuIFBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXNGYWlsdXJlOwogICAgIH0KIH0K
IApAQCAtMjMxLDExICsyMzksMTggQEAgdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
cjo6Y29tcGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKHN0ZDo6b3B0aW9uYWwKICAgICBbcGxh
dGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbjpwYXltZW50TWV0
aG9kVXBkYXRlLmdldCgpXTsKIH0KIAotdm9pZCBQYXltZW50QXV0aG9yaXphdGlvblByZXNlbnRl
cjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihjb25zdCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYgcmVzdWx0KQordm9pZCBQYXltZW50QXV0aG9yaXph
dGlvblByZXNlbnRlcjo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihXZWJDb3JlOjpBcHBsZVBheVBh
eW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVzdWx0KQogewogICAgIEFTU0VSVChwbGF0Zm9y
bURlbGVnYXRlKCkpOwotICAgIGF1dG8gc3RhdHVzID0gcmVzdWx0ID8gdG9QS1BheW1lbnRBdXRo
b3JpemF0aW9uU3RhdHVzKHJlc3VsdC0+c3RhdHVzKSA6IFBLUGF5bWVudEF1dGhvcml6YXRpb25T
dGF0dXNTdWNjZXNzOwotICAgIFJldGFpblB0cjxOU0FycmF5PiBlcnJvcnMgPSByZXN1bHQgPyB0
b05TRXJyb3JzKHJlc3VsdC0+ZXJyb3JzKSA6IEBbIF07CisgICAgQVNTRVJUKHJlc3VsdC5pc0Zp
bmFsU3RhdGUoKSk7CisKKyAgICBhdXRvIHN0YXR1cyA9IHRvUEtQYXltZW50QXV0aG9yaXphdGlv
blN0YXR1cyhyZXN1bHQuc3RhdHVzKTsKKyAgICBhdXRvIGVycm9ycyA9IHRvTlNFcnJvcnMocmVz
dWx0LmVycm9ycyk7CisKKyNpZiBkZWZpbmVkKFBheW1lbnRBdXRob3JpemF0aW9uUHJlc2VudGVy
QWRkaXRpb25zX2NvbXBsZXRlUGF5bWVudFNlc3Npb24pCisgICAgUGF5bWVudEF1dGhvcml6YXRp
b25QcmVzZW50ZXJBZGRpdGlvbnNfY29tcGxldGVQYXltZW50U2Vzc2lvbgorI2VuZGlmCisKICAg
ICBbcGxhdGZvcm1EZWxlZ2F0ZSgpIGNvbXBsZXRlUGF5bWVudFNlc3Npb246c3RhdHVzIGVycm9y
czplcnJvcnMuZ2V0KCldOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9jb2NvYS9XS1BheW1lbnRBdXRob3JpemF0aW9uRGVsZWdhdGUuaAppbmRleCBhYTlj
ODExMDQ4YmE5OGQ2OTQzMGVjMzc0OGMxZTEyNGJlNmZkYjAyLi5mMGFkMTEyY2MwODcwZDAxODUx
YjEzNjdiNmQyZDk0NjM3YjYzMDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLmgKQEAgLTY2
LDYgKzY2LDEwIEBAIHVzaW5nIERpZENoYW5nZUNvdXBvbkNvZGVDb21wbGV0aW9uID0gQmxvY2tQ
dHI8dm9pZChQS1BheW1lbnRSZXF1ZXN0Q291cG9uQ29kZVVwCiAjZW5kaWYKIC0gKHZvaWQpaW52
YWxpZGF0ZTsKIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW5jbHVkZSA8V2ViS2l0
QWRkaXRpb25zL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZUFkZGl0aW9uc0FmdGVyLmg+
CisjZW5kaWYKKwogQGVuZAogCiAvLyBIZWxwZXIgbWV0aG9kcyBjYWxsZWQgYnkgV0tQYXltZW50
QXV0aG9yaXphdGlvblNlc3Npb24ncyBzdWJjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL2NvY29hL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRl
Lm1tCmluZGV4IGZjMTQyODVjY2U0MzYyMDY5M2E0ZTFmOWZiNDYzMjU0ZGY5NTVhMDAuLmU5NGE5
NDk5ZWEzMDJmYjM3NjFhODVhY2U4ZGQ4Njc3OTg0OTA0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRlbGVnYXRlLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vY29jb2EvV0tQYXltZW50QXV0aG9yaXphdGlvbkRl
bGVnYXRlLm1tCkBAIC0xNTksNiArMTU5LDEwIEBAIC0gKHZvaWQpaW52YWxpZGF0ZQogICAgICAg
ICBbc2VsZiBjb21wbGV0ZVBheW1lbnRTZXNzaW9uOlBLUGF5bWVudEF1dGhvcml6YXRpb25TdGF0
dXNGYWlsdXJlIGVycm9yczpAWyBdXTsKIH0KIAorI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CisjaW5jbHVkZSA8V2ViS2l0QWRkaXRpb25zL1dLUGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0
ZUFkZGl0aW9uc0FmdGVyLm1tPgorI2VuZGlmCisKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdL
UGF5bWVudEF1dGhvcml6YXRpb25EZWxlZ2F0ZSAoUHJvdGVjdGVkKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKaW5kZXggY2EzN2FjYmQ1YzVhYTI4MDIzYTkzZDhkNDE4
Y2MwMmQ5MjViOTk0NS4uOTQ2ZDBmMjRiNDFhNzQ3YTVhMWYxOWJlMTZlMTM5MTRiMTJiYjJkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC04MDgsNyArODA4
LDYgQEAgZGVmIGhlYWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpQYXN0
ZWJvYXJkSW1hZ2UnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlBhc3RlYm9hcmRVUkwnOiBbJzxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JzogWyc8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
J10sCi0gICAgICAgICdXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCc6IFsnPFdl
YkNvcmUvQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3QuaD4nXSwKICAgICAgICAgJ1dlYkNv
cmU6OlBpeGVsRm9ybWF0JzogWyc8V2ViQ29yZS9JbWFnZUJ1ZmZlckJhY2tlbmQuaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OlBsYXRmb3JtVGV4dFRyYWNrRGF0YSc6IFsnPFdlYkNvcmUvUGxhdGZv
cm1UZXh0VHJhY2suaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlBsYXliYWNrU2Vzc2lvbk1vZGVs
OjpQbGF5YmFja1N0YXRlJzogWyc8V2ViQ29yZS9QbGF5YmFja1Nlc3Npb25Nb2RlbC5oPiddLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3Jk
aW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDE0Mzk5YWVmNzNiNDg0YzZiYzlkZjE4YTUwZmU0
NzQyMWFkOGRiMzIuLjA0YTY5NjgxNzhhNmY3NTk0YzI4MGVmNzMxODE5OGNiNjMyYjkyMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTM0LDEwICszNCwxMCBAQAogI2luY2x1ZGUgIldl
YlBheW1lbnRDb29yZGluYXRvclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQXBwbGVQYXlQYXltZW50TWV0aG9kVXBkYXRlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nQ29udGFjdFVwZGF0ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvQXBwbGVQYXlTaGlwcGluZ01ldGhvZFVwZGF0ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUv
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXMuaD4KIAogI2RlZmluZSBNRVNTQUdFX0NIRUNLKGFz
c2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbWVzc2FnZVNlbmRlckNvbm5l
Y3Rpb24oKSkKIApAQCAtMTg0LDE3ICsxODQsMTcgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eTo6Y29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZToK
IAogI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpCiAKLXZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKK3Zv
aWQgV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV2Vi
Q29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKICAg
ICAvLyBJdCdzIHBvc3NpYmxlIHRoYXQgdGhlIHBheW1lbnQgaGFzIGJlZW4gY2FuY2VsZWQgYWxy
ZWFkeS4KICAgICBpZiAoIWNhbkNvbXBsZXRlUGF5bWVudCgpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBib29sIGlzRmluYWxTdGF0ZVJlc3VsdCA9IFdlYkNvcmU6OmlzRmluYWxTdGF0ZVJlc3Vs
dChyZXN1bHQpOworICAgIGJvb2wgaXNGaW5hbFN0YXRlID0gcmVzdWx0LmlzRmluYWxTdGF0ZSgp
OwogCi0gICAgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKHJlc3VsdCk7CisgICAgcGxh
dGZvcm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKFdURk1vdmUocmVzdWx0KSk7CiAKLSAgICBpZiAo
IWlzRmluYWxTdGF0ZVJlc3VsdCkgeworICAgIGlmICghaXNGaW5hbFN0YXRlKSB7CiAgICAgICAg
IG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5LmgKaW5kZXggYzNiY2YxNDI2ODA0ODAxY2FkNWFkNzYzODM0MWQ1Y2EzYmNlNDdl
YS4uNDJhMGNmMzAxN2RmM2MxMGRhMzFjY2ZiZjI3OTliZmFkYWRhOTczNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0
b3JQcm94eS5oCkBAIC00Nyw3ICs0Nyw2IEBAIGNsYXNzIENvbm5lY3Rpb247CiB9CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKLWVudW0gY2xhc3MgUGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM7CiBj
bGFzcyBQYXltZW50OwogY2xhc3MgUGF5bWVudENvbnRhY3Q7CiBjbGFzcyBQYXltZW50TWVyY2hh
bnRTZXNzaW9uOwpAQCAtMTM5LDcgKzEzOCw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKEFQUExF
X1BBWV9DT1VQT05fQ09ERSkKICAgICB2b2lkIGNvbXBsZXRlQ291cG9uQ29kZUNoYW5nZShzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZT4mJik7CiAjZW5kaWYK
LSAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mKTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5
bWVudFNlc3Npb24oV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYm
KTsKICAgICB2b2lkIGFib3J0UGF5bWVudFNlc3Npb24oKTsKICAgICB2b2lkIGNhbmNlbFBheW1l
bnRTZXNzaW9uKCk7CiAKQEAgLTE2Nyw3ICsxNjYsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShB
UFBMRV9QQVlfQ09VUE9OX0NPREUpCiAgICAgdm9pZCBwbGF0Zm9ybUNvbXBsZXRlQ291cG9uQ29k
ZUNoYW5nZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZT4m
Jik7CiAjZW5kaWYKLSAgICB2b2lkIHBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lvbihjb25z
dCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYpOwor
ICAgIHZvaWQgcGxhdGZvcm1Db21wbGV0ZVBheW1lbnRTZXNzaW9uKFdlYkNvcmU6OkFwcGxlUGF5
UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQmJik7CiAgICAgdm9pZCBwbGF0Zm9ybUhpZGVQYXlt
ZW50VUkoKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8UEtQYXltZW50UmVx
dWVzdD4gcGxhdGZvcm1QYXltZW50UmVxdWVzdChjb25zdCBVUkwmIG9yaWdpbmF0aW5nVVJMLCBj
b25zdCBWZWN0b3I8VVJMPiYgbGlua0ljb25VUkxzLCBjb25zdCBXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb25QYXltZW50UmVxdWVzdCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQv
QXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgppbmRleCAyNGQxM2UxNGQ5N2M1YWVlOTZiYjVkMzMwNmQ1NzljZjVkODBlOWE0Li5mZGUy
Y2JmMWMzN2Y5ZDUyZjNiZmYyZTM3YjYyZmFlNTk3MzUyZjhkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRp
bmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzgsNyArMzgsNyBAQCBtZXNzYWdlcyAtPiBXZWJQ
YXltZW50Q29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVkIHsKICNpZiBFTkFCTEUoQVBQTEVf
UEFZX0NPVVBPTl9DT0RFKQogICAgIENvbXBsZXRlQ291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkFwcGxlUGF5Q291cG9uQ29kZVVwZGF0ZT4gdXBkYXRlKQogI2VuZGlmCi0g
ICAgQ29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0PiByZXN1bHQpCisgICAgQ29tcGxldGVQYXltZW50U2Vzc2lvbihz
dHJ1Y3QgV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCByZXN1bHQp
CiAgICAgQWJvcnRQYXltZW50U2Vzc2lvbigpCiAgICAgQ2FuY2VsUGF5bWVudFNlc3Npb24oKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9jb2NvYS9XZWJQYXlt
ZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQ
YXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHlDb2NvYS5tbQppbmRleCBjYTFmMjM3
Yzg5YThhYzcwYzIwODljOGNkNjZkOTQxZWQ5NmI4YWUxLi45ZGE5ZmUzZTk4ZTBiZGMxNjZlMGQ5
NTJiMWIzNjM3YjgyNDQ1ZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBs
ZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5L2NvY29hL1dlYlBheW1lbnRDb29yZGluYXRvclByb3h5
Q29jb2EubW0KQEAgLTQxLDcgKzQxLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlTaGlw
cGluZ0NvbnRhY3RVcGRhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQXBwbGVQYXlTaGlwcGluZ01l
dGhvZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0aG9kVXBkYXRlLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1BheW1lbnRIZWFkZXJzLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KICNp
bXBvcnQgPHd0Zi9SdW5Mb29wLmg+CkBAIC0zNDgsOSArMzQ3LDkgQEAgUmV0YWluUHRyPFBLUGF5
bWVudFJlcXVlc3Q+IFdlYlBheW1lbnRDb29yZGluYXRvclByb3h5OjpwbGF0Zm9ybVBheW1lbnRS
ZXF1ZXN0KGMKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIFdlYlBheW1lbnRDb29yZGlu
YXRvclByb3h5OjpwbGF0Zm9ybUNvbXBsZXRlUGF5bWVudFNlc3Npb24oY29uc3Qgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD4mIHJlc3VsdCkKK3ZvaWQg
V2ViUGF5bWVudENvb3JkaW5hdG9yUHJveHk6OnBsYXRmb3JtQ29tcGxldGVQYXltZW50U2Vzc2lv
bihXZWJDb3JlOjpBcHBsZVBheVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiYgcmVzdWx0KQog
ewotICAgIG1fYXV0aG9yaXphdGlvblByZXNlbnRlci0+Y29tcGxldGVQYXltZW50U2Vzc2lvbihy
ZXN1bHQpOworICAgIG1fYXV0aG9yaXphdGlvblByZXNlbnRlci0+Y29tcGxldGVQYXltZW50U2Vz
c2lvbihXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiB2b2lkIFdlYlBheW1lbnRDb29yZGluYXRvclBy
b3h5OjpwbGF0Zm9ybUNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKGNvbnN0IFdlYkNvcmU6OlBh
eW1lbnRNZXJjaGFudFNlc3Npb24mIHBheW1lbnRNZXJjaGFudFNlc3Npb24pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9pb3MvV2ViUGF5bWVudENvb3JkaW5hdG9y
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9BcHBsZVBheS9pb3MvV2ViUGF5bWVu
dENvb3JkaW5hdG9yUHJveHlJT1MubW0KaW5kZXggMDQ4NDlmNzNkNmIzOTMzNjk1NWUwZjE3NjM3
ZTAxNDEzY2QxNmQyNC4uY2YxNTk4YTViMTM3MDUwMzY1NGRkYmU5N2MxZWMxMzEyMWE2NjAzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvQXBwbGVQYXkvaW9zL1dlYlBheW1lbnRD
b29yZGluYXRvclByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0FwcGxlUGF5
L2lvcy9XZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eUlPUy5tbQpAQCAtMzIsNyArMzIsNiBAQAog
I2ltcG9ydCAiUGF5bWVudEF1dGhvcml6YXRpb25QcmVzZW50ZXIuaCIKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Q29udHJvbGxlci5oPgotI2ltcG9ydCA8
V2ViQ29yZS9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cy5oPgogI2ltcG9ydCA8cGFsL2NvY29h
L1Bhc3NLaXRTb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0K
aW5kZXggMDAzYmQ2NzIwZWI4Mzk5NDBhYTkzOGNlZjc2NDk1NGJkYzAyNmMzOC4uZGYzODMwZDE3
MjI4NDEwMmZlMWVhMTMwNTU5NmUxN2FiZWU4M2IwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0KQEAgLTU4
LDcgKzU4LDYgQEAKIAogI2lmIEVOQUJMRShBUFBMRV9QQVkpCiAjaW1wb3J0ICJEYXRhUmVmZXJl
bmNlLmgiCi0jaW1wb3J0IDxXZWJDb3JlL1BheW1lbnRBdXRob3JpemF0aW9uU3RhdHVzLmg+CiAj
aW1wb3J0IDxwYWwvY29jb2EvUGFzc0tpdFNvZnRMaW5rLmg+CiAjZW5kaWYKIApAQCAtMTI2LDI3
ICsxMjUsNiBAQCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnQ+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6UGF5bWVudD46OmRlY29kZShEZWNvZGVyJgogICAgIHJldHVybiBXZWJDb3JlOjpQ
YXltZW50IHsgV1RGTW92ZSgqcGF5bWVudCkgfTsKIH0KIAotdm9pZCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0JiByZXN1bHQpCi17
Ci0gICAgZW5jb2RlciA8PCByZXN1bHQuc3RhdHVzOwotICAgIGVuY29kZXIgPDwgcmVzdWx0LmVy
cm9yczsKLX0KLQotc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJl
c3VsdD4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdD46
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
UGF5bWVudEF1dGhvcml6YXRpb25TdGF0dXM+IHN0YXR1czsKLSAgICBkZWNvZGVyID4+IHN0YXR1
czsKLSAgICBpZiAoIXN0YXR1cykKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAg
IHN0ZDo6b3B0aW9uYWw8VmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpBcHBsZVBheUVycm9yPj4+IGVy
cm9yczsKLSAgICBkZWNvZGVyID4+IGVycm9yczsKLSAgICBpZiAoIWVycm9ycykKLSAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHJldHVybiB7eyBXVEZNb3ZlKCpzdGF0dXMpLCBX
VEZNb3ZlKCplcnJvcnMpIH19OwotfQotCiB2b2lkIEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5
bWVudENvbnRhY3Q+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgV2ViQ29yZTo6UGF5
bWVudENvbnRhY3QmIHBheW1lbnRDb250YWN0KQogewogICAgIGVuY29kZXIgPDwgcGF5bWVudENv
bnRhY3QucGtDb250YWN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDZmZTgxNWQ0YWI5YzAwNWU1NDI1MGY3YzhmNzVkMWRiMTA0NDkxNTku
LjYxNWRlMDY5YWE0OWJmMDVjYTkxOGZiZGQzMjhlMDJhOTNiZmJmOWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC02NDUsMTEgKzY0NSw2IEBA
IHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGF5bWVudD4gewogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnQ+IGRlY29kZShEZWNvZGVyJik7
CiB9OwogCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlBheW1lbnRB
dXRob3JpemF0aW9uUmVzdWx0PiB7Ci0gICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBj
b25zdCBXZWJDb3JlOjpQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYpOwotICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiBkZWNvZGUo
RGVjb2RlciYpOwotfTsKLQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpQYXltZW50Q29udGFjdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29u
c3QgV2ViQ29yZTo6UGF5bWVudENvbnRhY3QmKTsKICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQYXltZW50Q29udGFjdD4gZGVjb2RlKERlY29kZXImKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5jcHAKaW5kZXggNDYxNmQxMmEyOTYyMGY5MGQwYjRjYzZjY2ZkNTBmMjg5MWViNmNlZi4uMWM3
MDI2NTBiNzljY2JmYWUwMWRmN2ZjOTAxMDBiNWY3NmRhNzAwOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRv
ci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJXZWJQYXltZW50Q29vcmRpbmF0b3JQ
cm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvQXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBh
eVBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBh
eVBheW1lbnRNZXRob2RVcGRhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0FwcGxlUGF5U2hpcHBp
bmdDb250YWN0VXBkYXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsZVBheVNoaXBwaW5nTWV0
aG9kVXBkYXRlLmg+CkBAIC0xMzcsOSArMTM4LDkgQEAgdm9pZCBXZWJQYXltZW50Q29vcmRpbmF0
b3I6OmNvbXBsZXRlQ291cG9uQ29kZUNoYW5nZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkFwcGwK
IAogI2VuZGlmIC8vIEVOQUJMRShBUFBMRV9QQVlfQ09VUE9OX0NPREUpCiAKLXZvaWQgV2ViUGF5
bWVudENvb3JkaW5hdG9yOjpjb21wbGV0ZVBheW1lbnRTZXNzaW9uKHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6UGF5bWVudEF1dGhvcml6YXRpb25SZXN1bHQ+JiYgcmVzdWx0KQordm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3I6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV2ViQ29yZTo6QXBwbGVQYXlQ
YXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmIHJlc3VsdCkKIHsKLSAgICBzZW5kKE1lc3NhZ2Vz
OjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29tcGxldGVQYXltZW50U2Vzc2lvbihyZXN1
bHQpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYXltZW50Q29vcmRpbmF0b3JQcm94eTo6Q29t
cGxldGVQYXltZW50U2Vzc2lvbihXVEZNb3ZlKHJlc3VsdCkpKTsKIH0KIAogdm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3I6OmFib3J0UGF5bWVudFNlc3Npb24oKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0FwcGxlUGF5L1dlYlBheW1lbnRDb29yZGluYXRvci5oCmlu
ZGV4IDExNTFhODBmMDQwODQ5MTk1YzFjNmY3NzE3NWJmNTNkMmJiZGI5NTMuLmE3NmEzYWM2M2Y4
YTRhNTk0NTZjODFjOTQ0OWRiNDg3MWVlYTI0ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9BcHBsZVBheS9XZWJQYXltZW50Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvQXBwbGVQYXkvV2ViUGF5bWVudENvb3JkaW5hdG9yLmgKQEAgLTcx
LDcgKzcxLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQog
ICAgIHZvaWQgY29tcGxldGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
QXBwbGVQYXlDb3Vwb25Db2RlVXBkYXRlPiYmKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZvaWQg
Y29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRo
b3JpemF0aW9uUmVzdWx0PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNl
c3Npb24oV2ViQ29yZTo6QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgYWJvcnRQYXltZW50U2Vzc2lvbigpIG92ZXJyaWRlOwogICAgIHZv
aWQgY2FuY2VsUGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENv
b3JkaW5hdG9yQ2xpZW50LmgKaW5kZXggMjYwNDM4ZGEyZjQ2OWJkMTU1YzI2YWNlNWFhODg3MzFj
ZDhjNTdkZC4uODIzNDQ2ZGVkZDM1ZGU4ZWQ3NDI2YWYzNmNmMmY3ZTc2ZjdhMmVkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENv
b3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGF5bWVudENvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHJp
dmF0ZToKICNpZiBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQogICAgIHZvaWQgY29tcGxl
dGVDb3Vwb25Db2RlQ2hhbmdlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6QXBwbGVQYXlDb3Vwb25D
b2RlVXBkYXRlPiYmKSBvdmVycmlkZTsKICNlbmRpZgotICAgIHZvaWQgY29tcGxldGVQYXltZW50
U2Vzc2lvbihzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0
PiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXBsZXRlUGF5bWVudFNlc3Npb24oV2ViQ29yZTo6
QXBwbGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmKSBvdmVycmlkZTsKICAgICB2b2lk
IGFib3J0UGF5bWVudFNlc3Npb24oKSBvdmVycmlkZTsKICAgICB2b2lkIGNhbmNlbFBheW1lbnRT
ZXNzaW9uKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBwYXltZW50Q29vcmRpbmF0b3JEZXN0cm95ZWQo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBheW1lbnRDb29yZGluYXRvckNsaWVudC5tbQppbmRl
eCBkYzc2ZTZhZGQ2MjE1YjFkYWZiODc1ZGEzMWFlYWUwMzM5M2Q1NTgxLi5kZDBhNzE4YjcyZjcx
MzlkM2FmZmNlNjk1YTY2MzI3ZTA0MmM2YjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQYXltZW50Q29vcmRpbmF0b3JDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGF5bWVudENvb3Jk
aW5hdG9yQ2xpZW50Lm1tCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgV2ViUGF5bWVudENvb3JkaW5h
dG9yQ2xpZW50Ojpjb21wbGV0ZUNvdXBvbkNvZGVDaGFuZ2Uoc3RkOjpvcHRpb25hbDxXZWJDb3Jl
CiAKICNlbmRpZiAvLyBFTkFCTEUoQVBQTEVfUEFZX0NPVVBPTl9DT0RFKQogCi12b2lkIFdlYlBh
eW1lbnRDb29yZGluYXRvckNsaWVudDo6Y29tcGxldGVQYXltZW50U2Vzc2lvbihzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlBheW1lbnRBdXRob3JpemF0aW9uUmVzdWx0PiYmKQordm9pZCBXZWJQYXlt
ZW50Q29vcmRpbmF0b3JDbGllbnQ6OmNvbXBsZXRlUGF5bWVudFNlc3Npb24oV2ViQ29yZTo6QXBw
bGVQYXlQYXltZW50QXV0aG9yaXphdGlvblJlc3VsdCYmKQogewogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNGRjYjJj
NTk0OTlkODZiZmVkN2I1MDJjZTBmMDU3NTAzYjlmOWUxZS4uNDc5YTZkYzdlOTM2ODRiODJjZDhj
NDI1MjY3ZTk1NzI4OWZkNDI3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIyLTAxLTI2ICBE
ZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KKworICAgICAgICBbUGF5bWVudCBSZXF1
ZXN0XSBhbGxvdyBhZGRpdGlvbmFsIHBheW1lbnQgbWV0aG9kIHNwZWNpZmljIGRhdGEgdG8gYmUg
cGFzc2VkIHRvIGBjb21wbGV0ZSgpYAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM1NDE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84Mjk3MDQ1MT4K
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmh0dHBzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50Q29tcGxldGVEZXRhaWxzLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjIt
MDEtMjYgIEFsZXhleSBTaHZheWthICA8YXNodmF5a2FAYXBwbGUuY29tPgogCiAgICAgICAgIGds
b2JhbFRoaXMucXVldWVNaWNyb3Rhc2soKSBzaG91bGQgcmVwb3J0IHRocm93biBleGNlcHRpb25z
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxl
UGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWls
cy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5YTgzM2IzYTE3ZjI3NWRmNTcwZDZk
NDQwY2FkZTc4MTlmMmJjMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBTaG91bGQgZXJyb3IgaWYgbm90IEpT
T04gc2VyaWFsaXphYmxlCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50Q29tcGxldGVEZXRhaWxzLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBs
ZXRlRGV0YWlscy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5NzEyZDdmN2FkZDEwNDI3MzI2N2Q5
M2EzMDI3NTQ1MmNlYjJlMWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudENvbXBsZXRlRGV0YWlscy5odHRwcy5o
dG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRm
LTgiPgorPHRpdGxlPlRlc3RzIGZvciBwcm92aWRpbmcgYEFwcGxlUGF5UGF5bWVudENvbXBsZXRl
RGV0YWlsc2AuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3BheW1lbnQtcmVxdWVz
dC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+
PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CitzZXR1cCh7IGV4cGxpY2l0X2RvbmU6IHRydWUs
IGV4cGxpY2l0X3RpbWVvdXQ6IHRydWUgfSk7CisKK2Z1bmN0aW9uIHRlc3RJbnZhbGlkUGF5bWVu
dENvbXBsZXRlRGF0YShkZXNjcmlwdGlvbiwge2RhdGEsIGV4cGVjdGVkRXJyb3JTdWJzdHJpbmd9
KSB7CisgICAgdXNlcl9hY3RpdmF0aW9uX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAgICAg
bGV0IHJlcXVlc3QgPSBuZXcgUGF5bWVudFJlcXVlc3QoW3ZhbGlkUGF5bWVudE1ldGhvZCgpXSwg
dmFsaWRQYXltZW50RGV0YWlscygpKTsKKyAgICAgICAgcmVxdWVzdC5hZGRFdmVudExpc3RlbmVy
KCJtZXJjaGFudHZhbGlkYXRpb24iLCAoZXZlbnQpID0+IHsKKyAgICAgICAgICAgIGV2ZW50LmNv
bXBsZXRlKHsgfSk7CisgICAgICAgIH0pOworICAgICAgICByZXF1ZXN0LmFkZEV2ZW50TGlzdGVu
ZXIoInNoaXBwaW5nYWRkcmVzc2NoYW5nZSIsIChldmVudCkgPT4geworICAgICAgICAgICAgZXZl
bnQudXBkYXRlV2l0aCh7IH0pOworICAgICAgICAgICAgaW50ZXJuYWxzLm1vY2tQYXltZW50Q29v
cmRpbmF0b3IuYWNjZXB0UGF5bWVudCgpOworICAgICAgICB9KTsKKworICAgICAgICBsZXQgcmVz
cG9uc2UgPSBhd2FpdCByZXF1ZXN0LnNob3coKTsKKworICAgICAgICB0cnkgeworICAgICAgICAg
ICAgYXdhaXQgcmVzcG9uc2UuY29tcGxldGUoInN1Y2Nlc3MiLCB7ZGF0YX0pOworICAgICAgICAg
ICAgYXNzZXJ0X3RydWUoZmFsc2UsIGBzaG91bGQgZXJyb3IgYWJvdXQgJyR7ZXhwZWN0ZWRFcnJv
clN1YnN0cmluZ30nYCk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGUubWVzc2FnZS5pbmNsdWRlcyhleHBlY3RlZEVycm9yU3Vic3RyaW5nKSwgYHNob3Vs
ZCBlcnJvciBhYm91dCAnJHtleHBlY3RlZEVycm9yU3Vic3RyaW5nfSdgKTsKKyAgICAgICAgfQor
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBhd2FpdCByZXNwb25zZS5jb21wbGV0ZSgic3Vj
Y2VzcyIpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUodHJ1ZSwgInNob3VsZCBiZSBhYmxlIHRv
IHJlY292ZXIgZnJvbSBlcnJvciIpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAg
ICBhc3NlcnRfdHJ1ZShmYWxzZSwgYHNob3VsZCBiZSBhYmxlIHRvIHJlY292ZXIgZnJvbSBlcnJv
ciwgYnV0IGV4Y2VwdGlvbiB3YXMgdGhyb3duICcke2UubWVzc2FnZX0nYCk7CisgICAgICAgIH0K
KyAgICB9LCBkZXNjcmlwdGlvbik7Cit9CisKK3Rlc3RJbnZhbGlkUGF5bWVudENvbXBsZXRlRGF0
YSgiU2hvdWxkIGVycm9yIGlmIG5vdCBKU09OIHNlcmlhbGl6YWJsZSIsIHsKKyAgICBkYXRhOiB3
aW5kb3csCisgICAgZXhwZWN0ZWRFcnJvclN1YnN0cmluZzogIkpTT04uc3RyaW5naWZ5IGNhbm5v
dCBzZXJpYWxpemUiLAorfSk7CisKK2RvbmUoKTsKKzwvc2NyaXB0PgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>