<?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>225251</bug_id>
          
          <creation_ts>2021-04-30 14:08:51 -0700</creation_ts>
          <short_desc>Use SortedArrayMap in a few more places</short_desc>
          <delta_ts>2021-05-02 11:05:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1755800</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-30 14:08:51 -0700</bug_when>
    <thetext>Use SortedArrayMap in a few more places</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755846</commentid>
    <comment_count>1</comment_count>
      <attachid>427463</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-30 15:49:44 -0700</bug_when>
    <thetext>Created attachment 427463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755852</commentid>
    <comment_count>2</comment_count>
      <attachid>427465</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-30 16:00:53 -0700</bug_when>
    <thetext>Created attachment 427465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755866</commentid>
    <comment_count>3</comment_count>
      <attachid>427465</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-04-30 16:40:41 -0700</bug_when>
    <thetext>Comment on attachment 427465
Patch

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

&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:2
&gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.

Did you mean to change this date or add a &quot;-2021&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755868</commentid>
    <comment_count>4</comment_count>
      <attachid>427465</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-30 16:46:38 -0700</bug_when>
    <thetext>Comment on attachment 427465
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/MIMETypeCache.cpp:2
&gt;&gt; + * Copyright (C) 2021 Apple Inc. All rights reserved.
&gt; 
&gt; Did you mean to change this date or add a &quot;-2021&quot;?

Oops, will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755870</commentid>
    <comment_count>5</comment_count>
      <attachid>427469</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-30 16:53:30 -0700</bug_when>
    <thetext>Created attachment 427469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755966</commentid>
    <comment_count>6</comment_count>
      <attachid>427469</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-01 10:20:27 -0700</bug_when>
    <thetext>Comment on attachment 427469
Patch

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

&gt; Source/WebCore/dom/ScriptElement.cpp:112
&gt; +    static constexpr ComparableLettersLiteral languageArray[] = {

This is not new to this change, but I think it is a little harder to understand that this will be a case-folded comparison (at least, I think that is what ComparableLettersLiteral does) as opposed to HashSet&lt;String, ASCIICaseInsensitiveHash&gt; which really sold it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755973</commentid>
    <comment_count>7</comment_count>
      <attachid>427469</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-01 10:33:31 -0700</bug_when>
    <thetext>Comment on attachment 427469
Patch

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

&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:64
&gt; +    static constexpr SortedArraySet gameControllerCompatibleGamepadsSet { gameControllerCompatibleGamepadsArray };

I think maybe a switch statement would work just as well here.

uint32_t fullProductID = (((uint32_t)vendorID) &lt;&lt; 16) | productID;
switch (fullProductID) {
    case StratusXL1:
    case StratusXL3:
    case Nimbus1:
    case XboxOne1:
    case XboxOne2:
    case XboxOne3:
    case Dualshock4_1:
    case Dualshock4_2:
    case GamesirM2:
    case HoripadUltimate:
    case StratusXL2:
    case StratusXL4:
    case Nimbus2:
        return true;

    default:
        return false;
}

And it would allow the compiler to be clever if it can find any math tricks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755981</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-01 12:09:59 -0700</bug_when>
    <thetext>Yes, I will go with the switch statement.

And I agree that ComparableLattersLiteral is not a clear enough name and would like to rename it. Sam, help me choose a new name and I’ll just do a global replace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1755982</commentid>
    <comment_count>9</comment_count>
      <attachid>427469</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-01 12:14:06 -0700</bug_when>
    <thetext>Comment on attachment 427469
Patch

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

&gt;&gt; Source/WebCore/dom/ScriptElement.cpp:112
&gt;&gt; +    static constexpr ComparableLettersLiteral languageArray[] = {
&gt; 
&gt; This is not new to this change, but I think it is a little harder to understand that this will be a case-folded comparison (at least, I think that is what ComparableLettersLiteral does) as opposed to HashSet&lt;String, ASCIICaseInsensitiveHash&gt; which really sold it.

Let me write this again, because I think this is important:

I suggest we solve this problem by renaming ComparableLettersLiteral. It’s only used in a few places, so it should be an easy quick rename once we choose a better name.

&gt;&gt; Source/WebCore/platform/gamepad/cocoa/GameControllerGamepadProvider.mm:64
&gt;&gt; +    static constexpr SortedArraySet gameControllerCompatibleGamepadsSet { gameControllerCompatibleGamepadsArray };
&gt; 
&gt; I think maybe a switch statement would work just as well here.
&gt; 
&gt; uint32_t fullProductID = (((uint32_t)vendorID) &lt;&lt; 16) | productID;
&gt; switch (fullProductID) {
&gt;     case StratusXL1:
&gt;     case StratusXL3:
&gt;     case Nimbus1:
&gt;     case XboxOne1:
&gt;     case XboxOne2:
&gt;     case XboxOne3:
&gt;     case Dualshock4_1:
&gt;     case Dualshock4_2:
&gt;     case GamesirM2:
&gt;     case HoripadUltimate:
&gt;     case StratusXL2:
&gt;     case StratusXL4:
&gt;     case Nimbus2:
&gt;         return true;
&gt; 
&gt;     default:
&gt;         return false;
&gt; }
&gt; 
&gt; And it would allow the compiler to be clever if it can find any math tricks.

I will do that here. Once nice thing about that is that I can also sort these alphabetically again instead of having to sort them numerically.

The irony is that the work to detect the &quot;parse&quot; member and work properly without it was driven by this use case. I wonder if I should rip that out or keep it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756013</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-01 20:09:43 -0700</bug_when>
    <thetext>Committed r276880 (237226@main): &lt;https://commits.webkit.org/237226@main&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756015</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-01 20:10:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77425601&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756052</commentid>
    <comment_count>12</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2021-05-02 09:23:20 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #8)
&gt; And I agree that ComparableLattersLiteral is not a clear enough name and
&gt; would like to rename it. Sam, help me choose a new name and I’ll just do a
&gt; global replace.

So the three types we have here are currently:

ComparableASCIILiteral
 - Input can be:
     Any ASCII character
 - Matches agains: 
     Any ASCII character. No case folding is performed.

ComparableCaseFoldingASCIILiteral
 - Input can be:
     Any ASCII character that is not an ASCII uppercase character
 - Matches agains: 
     Any ASCII character. Case folding is performed.

ComparableLettersLiteral
 - Input can be:
     Any ASCII character that is not an ASCII Uppercase or a control character with the 0x20 bit set.
 - Matches agains: 
     Any ASCII character. Case folding is performed.


(I think this is right so far).

The real trick here is what to call this input character set that only allow ASCII characters without the 0x20 bit set. In one place you call it NoUppercaseLettersOptimized. While that isn&apos;t perfectly descriptive, I think it might be the right direction to start looking.

So maybe, something like ComparableCaseFoldingASCIILiteralUsingOptimizedSubset? Gosh, that&apos;s not great is it :(.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756064</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-02 11:05:37 -0700</bug_when>
    <thetext>Let me repeat your proposal back to you along with some tweaks and commentary.

The comparable strings themselves must be ASCII, but matching works against any character, so the &quot;matches against&quot; lines should not say &quot;ASCII&quot;.

Another member of this family, currently in a .cpp file, but can be moved to the header, is PackedASCIILowerCodes. It’s the same as ComparableCaseFoldingASCIILiteral except that it packs the characters into an integer for comparison, and so has a limit based on the number of bytes in the integer. The cases it is currently used for could all be using the optimized subset, by the way.

To get rid of the &quot;using&quot;, I rearranged word order. Not sure I got it best. Tried to think which made the best logical sense.

So here is a set of possible names:

    ComparableASCIILiteral
    ComparableCaseFoldingASCIILiteral
    ComparableOptimizedCaseFoldingASCIISubsetLiteral
    ComparablePackedCaseFoldingASCIILiteral&lt;StorageType&gt;

Corresponding equality comparison functions have these names:

    equalIgnoringASCIICase
    equalLettersIgnoringASCIICase

Not really sure that ComparableOptimizedCaseFoldingASCIISubsetLiteral and equalLettersIgnoringASCIICase are truly needed. Is this tiny bit of optimization (saving a branch per character, basically) worth possible confusion? Maybe instead of using a differently named identifier the right thing to do is to find a way to have the optimization be automatically done based on scanning the characters at compile time? Could be challenging to get that information &quot;where it&apos;s needed&quot; without any runtime cost.

Could also put the word &quot;Packed&quot; before the word &quot;Comparable&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427463</attachid>
            <date>2021-04-30 15:49:44 -0700</date>
            <delta_ts>2021-04-30 16:00:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225251-20210430154943.patch</filename>
            <type>text/plain</type>
            <size>59537</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmNDUxNmYyMzQ3OWE0NzNiZTQxMGJh
OTk3ZjYxYWIzMmQwMGE1NjcuLjBmNmEyZjg0NDZkMzUyOTIxYWFiOGQ1MzllMjllNTlhMDdkNjZm
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDQtMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1hcCBpbiBhIGZldyBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvU29ydGVkQXJyYXlNYXAuaDogQWRkZWQgc3VwcG9ydCBmb3IgdHlwZXMgdGhhdCBkb24ndCBo
YXZlIGEgcGFyc2UgbWVtYmVyIGZ1bmN0aW9uLgorCisgICAgICAgICogd3RmL2NvY29hL01haW5U
aHJlYWRDb2NvYS5tbTogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiB3dGYv
dGV4dC9BdG9tU3RyaW5nSW1wbC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21T
dHJpbmdUYWJsZS5jcHA6IERpdHRvLgorCiAyMDIxLTA0LTMwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBTb3J0ZWRBcnJheU1hcCBieSB1c2luZyBs
aW5lYXIgc2VhcmNoIGZvciBzbWFsbCBhcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMTE4NDBlNDNiYjNl
YzQyYmQ0MjA0YmFlMjlmMGNhNmE0OTQzYjk0Li5kZjM5MWEwOTA3YTNiOWQwNzVkNTljMjNjOGFj
ZmZiOGE3MGQ5YTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1h
cCBpbiBhIGZldyBtb3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oOiBSZW1vdmVkIHVu
bmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDogRGl0dG8uCisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkFjdGlvbnMuaDogRGl0dG8uCisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0YS5oOiBE
aXR0by4KKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDogRGl0dG8uCisKKyAgICAg
ICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xlZ2FjeVN1
cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZSk6IFVzZSBTb3J0ZWRBcnJheVNldC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVDbGFzc2ljU2NyaXB0KTogRml4ZWQgdHlw
by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQp
OiBEaXR0by4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdC5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBsb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDogRGl0dG8uCisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmg6IERpdHRvLgorICAgICAgICAqIHBhZ2UvaW9zL0RP
TVRpbWVySG9sZGluZ1RhbmsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVOb2RlLmg6IEFkZGVkIGZvcndhcmQgZGVjbGFyYXRpb24KKyAgICAgICAg
dGhhdCB1c2VkIHRvIGJlIGluaGVyaXRlZCBmcm9tIGFub3RoZXIgZmlsZSB3aGVyZSBpdCdzIG5v
dCBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJH
YW1lcGFkUHJvdmlkZXI6OndpbGxIYW5kbGVWZW5kb3JBbmRQcm9kdWN0KToKKyAgICAgICAgVXNl
IFNvcnRlZEFycmF5U2V0LgorCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2Ft
ZXBhZEVsZW1lbnQuaDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSEVWQ1V0aWxpdGllcy5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmg6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNh
Y2hlOjppc1N0YXRpY0NvbnRhaW5lclR5cGUpOiBSZW5hbWVkOyB0aGlzIHJlcGxhY2VzCisgICAg
ICAgIHRoZSBvbGQgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QgZnVuY3Rpb24gYW5kIGp1c3QgcmV0
dXJucyBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUu
aDogUmVwbGFjZWQgdGhlIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0CisgICAgICAgIGZ1Y250aW9u
IHdpdGggYW4gaXNTdGF0aWNDb250YWluZXJUeXBlIGZ1bmN0aW9uLiBBbHNvIG1hZGUgaXQsIGFu
ZCBvbmUKKyAgICAgICAgb3RoZXIgZnVuY3Rpb24sIHByaXZhdGUuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOiBV
cGRhdGVkCisgICAgICAgIGZvciB0aGUgY2hhbmdlIHRvIE1JTUVUeXBlQ2FjaGUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc1N0YXRp
Y0NvbnRhaW5lclR5cGUpOiBVc2UgU29ydGVkQXJyYXlTZXQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5oOgorICAgICAgICBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFn
ZS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjpV
VElGcm9tVW5rbm93bk1JTUVUeXBlKTogVXNlIFNvcnRlZEFycmF5TWFwLiBBbHNvIGFkZGVkIGEg
Y29tbWVudAorICAgICAgICBhYm91dCB0aGUgbWlzdGFrZSBJIHNwb3R0ZWQgaW4gdGhlIGV4aXN0
aW5nIGNvZGUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6c2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bik6IFVzZSBhIHJhbmdl
LWJhc2VkIGZvciBsb29wLgorCisgICAgICAgICogcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgICogc3RvcmFn
ZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaDogRGl0dG8uCisgICAgICAgICogc3RvcmFnZS9T
dG9yYWdlUXVvdGFNYW5hZ2VyLmg6IERpdHRvLgorICAgICAgICAqIHN0eWxlL1N0eWxlVXBkYXRl
Lmg6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDogRGl0dG8uCisKKyAg
ICAgICAgKiBzdmcvU1ZHVGVzdHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGVzdHM6Omlz
VmFsaWQgY29uc3QpOiBVc2UgU29ydGVkQXJyYXlTZXQuCisgICAgICAgIChXZWJDb3JlOjpTVkdU
ZXN0czo6aGFzRmVhdHVyZUZvckxlZ2FjeUJpbmRpbmdzKTogRGl0dG8uCisKIDIwMjEtMDQtMzAg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04g
KGlPUyAxNC41KTogUFdBJ3MgLyBIb21lIFNjcmVlbiBBcHBzIHdpdGggU2VydmljZSBXb3JrZXJz
IGludGVybWl0dGVubHkgZmFpbCB0byBvcGVuIG9mZmxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOThiM2UxNWEx
YTQ2MjE1NmI5MmYxZDA3NjNiNjcyM2EwMjM3ODg4OC4uMzgzYWZlYzM4ZDFjYmMyNDc3YzJkODM2
ZTI4MDU2ODBlMTQyN2M0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0wNC0zMCAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgVXNlIFNvcnRlZEFycmF5
TWFwIGluIGEgZmV3IG1vcmUgcGxhY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjUyNTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcDogUmVtb3Zl
ZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkTWFwLmg6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9TaGFyZWRTdHJpbmdIYXNo
U3RvcmUuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJh
dGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFSZWNvcmQubW06IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5z
cGVjdG9yLm1tOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0
ZWRJbnB1dERpc3BhdGNoZXIuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1Bs
dWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbTogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VHcm91cC5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5o
OiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuaDogRGl0dG8uCisKIDIwMjEtMDQtMzAgIFBlciBBcm5lIFZvbGxhbiAg
PHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIHByZWZlcnMtcmVkdWNlZC1tb3Rpb24gaXMg
bm90IHJlYWN0aXZlIG9uIGlPUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvU29ydGVkQXJy
YXlNYXAuaCBiL1NvdXJjZS9XVEYvd3RmL1NvcnRlZEFycmF5TWFwLmgKaW5kZXggYmM5ZTRjZWQ2
ZWM3Y2QxODY3Y2MxOWFhOTQ1NjE0MDBlZTk1ZGY3Yy4uNzdiZDkyN2ZjZWI1ZGIxMTlhYzMzMWVl
NmNhMTA4YzA4MDliYTNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvU29ydGVkQXJyYXlN
YXAuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Tb3J0ZWRBcnJheU1hcC5oCkBAIC0xMzYsOSArMTM2
LDE4IEBAIHRlbXBsYXRlPHR5cGVuYW1lIEFycmF5VHlwZT4gY29uc3RleHByIFNvcnRlZEFycmF5
TWFwPEFycmF5VHlwZT46OlNvcnRlZEFycmF5TWFwCiAgICAgfSkpOwogfQogCit0ZW1wbGF0ZTx0
eXBlbmFtZSwgdHlwZW5hbWUgPSB2b2lkPiBjb25zdGV4cHIgYm9vbCBIYXNQYXJzZU1lbWJlciA9
IGZhbHNlOwordGVtcGxhdGU8dHlwZW5hbWUgVD4gY29uc3RleHByIGJvb2wgSGFzUGFyc2VNZW1i
ZXI8VCwgc3RkOjp2b2lkX3Q8ZGVjbHR5cGUoc3RkOjpkZWNsdmFsPFQ+KCkucGFyc2UpPj4gPSB0
cnVlOworCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBcnJheVR5cGU+IHRlbXBsYXRlPHR5cGVuYW1lIEtl
eUFyZ3VtZW50PiBpbmxpbmUgYXV0byBTb3J0ZWRBcnJheU1hcDxBcnJheVR5cGU+Ojp0cnlHZXQo
Y29uc3QgS2V5QXJndW1lbnQmIGtleSkgY29uc3QgLT4gY29uc3QgVmFsdWVUeXBlKgogewotICAg
IGF1dG8gcGFyc2VkS2V5ID0gRWxlbWVudFR5cGU6OmZpcnN0X3R5cGU6OnBhcnNlKGtleSk7Cisg
ICAgdXNpbmcgS2V5VHlwZSA9IHR5cGVuYW1lIEVsZW1lbnRUeXBlOjpmaXJzdF90eXBlOworICAg
IGF1dG8gcGFyc2VkS2V5ID0gWyZrZXldIHsKKyAgICAgICAgaWYgY29uc3RleHByIChIYXNQYXJz
ZU1lbWJlcjxLZXlUeXBlPikKKyAgICAgICAgICAgIHJldHVybiBLZXlUeXBlOjpwYXJzZShrZXkp
OworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFrZU9wdGlvbmFsKGtleSk7Cisg
ICAgfSgpOwogICAgIGlmICghcGFyc2VkS2V5KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAg
ICBkZWNsdHlwZShzdGQ6OmJlZ2luKG1fYXJyYXkpKSBpdGVyYXRvcjsKQEAgLTE3Miw4ICsxODEs
MTUgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQXJyYXlUeXBlPiBjb25zdGV4cHIgU29ydGVkQXJyYXlT
ZXQ8QXJyYXlUeXBlPjo6U29ydGVkQXJyYXlTZXQKIAogdGVtcGxhdGU8dHlwZW5hbWUgQXJyYXlU
eXBlPiB0ZW1wbGF0ZTx0eXBlbmFtZSBLZXlBcmd1bWVudD4gaW5saW5lIGJvb2wgU29ydGVkQXJy
YXlTZXQ8QXJyYXlUeXBlPjo6Y29udGFpbnMoY29uc3QgS2V5QXJndW1lbnQmIGtleSkgY29uc3QK
IHsKLSAgICB1c2luZyBFbGVtZW50VHlwZSA9IHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX2V4dGVudF90
PEFycmF5VHlwZT47Ci0gICAgYXV0byBwYXJzZWRLZXkgPSBFbGVtZW50VHlwZTo6cGFyc2Uoa2V5
KTsKKyAgICB1c2luZyBLZXlUeXBlID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfZXh0ZW50X3Q8QXJy
YXlUeXBlPjsKKyAgICBhdXRvIHBhcnNlZEtleSA9IFsma2V5XSB7CisgICAgICAgIGlmIGNvbnN0
ZXhwciAoSGFzUGFyc2VNZW1iZXI8S2V5VHlwZT4pCisgICAgICAgICAgICByZXR1cm4gS2V5VHlw
ZTo6cGFyc2Uoa2V5KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmV0dXJuIG1ha2VPcHRp
b25hbChrZXkpOworICAgIH0oKTsKKyAgICBpZiAoIXBhcnNlZEtleSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgaWYgKHN0ZDo6c2l6ZShtX2FycmF5KSA8IGJpbmFyeVNlYXJjaFRocmVz
aG9sZCkKICAgICAgICAgcmV0dXJuIHN0ZDo6ZmluZChzdGQ6OmJlZ2luKG1fYXJyYXkpLCBzdGQ6
OmVuZChtX2FycmF5KSwgKnBhcnNlZEtleSkgIT0gc3RkOjplbmQobV9hcnJheSk7CiAgICAgYXV0
byBpdGVyYXRvciA9IHN0ZDo6bG93ZXJfYm91bmQoc3RkOjpiZWdpbihtX2FycmF5KSwgc3RkOjpl
bmQobV9hcnJheSksICpwYXJzZWRLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvY29j
b2EvTWFpblRocmVhZENvY29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTWFpblRocmVhZENv
Y29hLm1tCmluZGV4IDM3MjQ2ZDJhMDM1ZTY4YjRiZjNhNGM3NmU3ZGIwM2U3NTlhM2M4YzcuLmZk
NjM3ZjdmNDcyMDE2MGY4MzA5ZDU4ZjZiMDk1Y2YzMjMxZmVlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL2NvY29hL01haW5UaHJlYWRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0Zi9j
b2NvYS9NYWluVGhyZWFkQ29jb2EubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgPHN0ZGlv
Lmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRyLmg+
Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2lt
cG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwuY3BwIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTE4YjNjYmQ4ODAwMmQzOWRmY2Iy
ZWMxNzQzYTk3NWQ0ZWY0Y2RiNC4uYTAyOGU0MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNiM2Qx
YzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKQEAgLTI0LDcgKzI0
LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
SW1wbC5oPgogCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ1RhYmxlLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9B
dG9tU3RyaW5nVGFibGUuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nVGFibGUu
Y3BwCmluZGV4IDg2ZWQyNWYyOGVjMDg2NjhlZjVlNGE1NmEyNDk3NWQyMDFmYThlNDEuLmRkMjJk
NDJjZGRlNDJjZTY4MDM0OGM4MzQyYzI2ZTFmYTg2OWMxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvQXRvbVN0cmluZ1RhYmxlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L0F0b21TdHJpbmdUYWJsZS5jcHAKQEAgLTIzLDggKzIzLDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nVGFibGUuaD4KIAotI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCiBBdG9tU3RyaW5nVGFibGU6On5BdG9t
U3RyaW5nVGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0
ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RN
LmgKaW5kZXggYTI2MTcyNmI3Zjg4NmY2ZGQ5MDA0ZmY0ZDgyNDYyOTdkOGUzNWYyOC4uMjIzMmJm
Mzk2MGQyY2MxNzg4ZjJlMzJmMzcyNjc2NDliZjBkMDRlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAi
TWVkaWFLZXlzUmVzdHJpY3Rpb25zLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5j
bHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5oCmluZGV4IDNjNzhmYjE2NjdhMGY2NDkyY2IzZTM5OGFhMTIwZjUwZmYx
OTk3MzcuLmJjNzIzMGM4MGNmYjY0NmFmZWM4ZGU1OTBjMzAzNTQ2NzBmNGM3ZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgK
QEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFz
aFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCmluZGV4
IDVlZmFjMTViOGMyMGJmYTc0ODM1MGMwNzUyMDA2YWEwMjJjYWY1YjAuLjgxYTJlNTIxNDc1NWM2
OThlYmY5MTgyNDExNzk2ZWJkNTQxZDg1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaApAQCAtMjcs
MTggKzI3LDIwIEBACiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCi0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IENvbnRl
bnRSdWxlTGlzdFJlc3VsdHM7CiBjbGFzcyBQYWdlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owog
CitzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKKwogbmFtZXNwYWNlIENvbnRlbnRFeHRl
bnNpb25zIHsKIAogc3RydWN0IEFjdGlvbjsKKwogdXNpbmcgU2VyaWFsaXplZEFjdGlvbkJ5dGUg
PSB1aW50OF90OwogCiBlbnVtIGNsYXNzIEFjdGlvblR5cGUgOiB1aW50OF90IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYXJpYWJsZURhdGEuaAppbmRleCAzOTZlMDY5YjljNDY1MmM4ZTg3ZjdjYWQ4Mjk5
MDM5ZWMwY2VkMTZkLi5mYzE3MGFmMTFiZjU3Nzg4NjRlOGEyZTg3ZGM0NTY3MDMxOGYyNWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5oCkBAIC0zMiw3ICszMiw2IEBACiAjaW5j
bHVkZSAiQ1NTUGFyc2VyVG9rZW4uaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdlLmgi
CiAjaW5jbHVkZSAiQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmgiCi0jaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5NYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA3YWQ4
ZmY4Y2UyNjIxYWE2NzU2N2QwNDkwNGIxMDY0ZTc1ODQ3YWE1Li43MmRhMzQ4NjA1NjJiMzY2NzRj
NTUyYjY1YThiMjZkMGI2ZDE1ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRnVs
bHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFn
ZXIuaApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNp
bmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
RWxlbWVudC5jcHAKaW5kZXggYTU2Yzg4Mzk4YTExNTRhYjE3MDYwMWZhY2Q0N2FkNjEyN2YwYzg2
OS4uN2Q0ZTkxODU5MzI3MzQxNzU4NWFiZGNmODRlYWNhNzBiYTA1Y2Q1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNTMsMTAgKzUzLDkgQEAKICNpbmNsdWRlICJTY3Jp
cHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUg
IlRleHROb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFjaW5n
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTAsMjEgKzEw
OSwyMiBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmhhbmRsZUFzeW5jQXR0cmlidXRlKCkKIAogc3Rh
dGljIGJvb2wgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3RyaW5n
JiBsYW5ndWFnZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBsYW5ndWFnZXMgPSBtYWtlTmV2
ZXJEZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewot
ICAgICAgICAiamF2YXNjcmlwdCJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjAiX3MsCi0gICAg
ICAgICJqYXZhc2NyaXB0MS4xIl9zLAotICAgICAgICAiamF2YXNjcmlwdDEuMiJfcywKLSAgICAg
ICAgImphdmFzY3JpcHQxLjMiX3MsCi0gICAgICAgICJqYXZhc2NyaXB0MS40Il9zLAotICAgICAg
ICAiamF2YXNjcmlwdDEuNSJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjYiX3MsCi0gICAgICAg
ICJqYXZhc2NyaXB0MS43Il9zLAotICAgICAgICAibGl2ZXNjcmlwdCJfcywKLSAgICAgICAgImVj
bWFzY3JpcHQiX3MsCi0gICAgICAgICJqc2NyaXB0Il9zLAotICAgIH0pOwotICAgIHJldHVybiBs
YW5ndWFnZXMuZ2V0KCkuY29udGFpbnMobGFuZ3VhZ2UpOworICAgIHN0YXRpYyBjb25zdGV4cHIg
Q29tcGFyYWJsZUxldHRlcnNMaXRlcmFsIGxhbmd1YWdlQXJyYXlbXSA9IHsKKyAgICAgICAgImVj
bWFzY3JpcHQiLAorICAgICAgICAiamF2YXNjcmlwdCIsCisgICAgICAgICJqYXZhc2NyaXB0MS4w
IiwKKyAgICAgICAgImphdmFzY3JpcHQxLjEiLAorICAgICAgICAiamF2YXNjcmlwdDEuMiIsCisg
ICAgICAgICJqYXZhc2NyaXB0MS4zIiwKKyAgICAgICAgImphdmFzY3JpcHQxLjQiLAorICAgICAg
ICAiamF2YXNjcmlwdDEuNSIsCisgICAgICAgICJqYXZhc2NyaXB0MS42IiwKKyAgICAgICAgImph
dmFzY3JpcHQxLjciLAorICAgICAgICAianNjcmlwdCIsCisgICAgICAgICJsaXZlc2NyaXB0IiwK
KyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlTZXQgbGFuZ3VhZ2VTZXQg
eyBsYW5ndWFnZUFycmF5IH07CisgICAgcmV0dXJuIGxhbmd1YWdlU2V0LmNvbnRhaW5zKGxhbmd1
YWdlKTsKIH0KIAogdm9pZCBTY3JpcHRFbGVtZW50OjpkaXNwYXRjaEVycm9yRXZlbnQoKQpAQCAt
Mzk4LDcgKzM5OCw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZUNsYXNzaWNTY3JpcHQo
Y29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKICAgICBpZiAoIWZyYW1lKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRl
ciBpZ25vcmVEZXNjdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIobV9pc0V4dGVybmFsU2Ny
aXB0ID8gJmRvY3VtZW50IDogbnVsbHB0cik7CisgICAgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNv
dW50SW5jcmVtZW50ZXIgaWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIobV9p
c0V4dGVybmFsU2NyaXB0ID8gJmRvY3VtZW50IDogbnVsbHB0cik7CiAgICAgQ3VycmVudFNjcmlw
dEluY3JlbWVudGVyIGN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlcihkb2N1bWVudCwgKnRoaXMpOwog
CiAgICAgV1RGQmVnaW5TaWducG9zdCh0aGlzLCAiRXhlY3V0ZSBTY3JpcHQgRWxlbWVudCIsICJl
eGVjdXRpbmcgY2xhc3NpYyBzY3JpcHQgZnJvbSBVUkw6ICV7cHVibGljfXMgYXN5bmM6ICVkIGRl
ZmVyOiAlZCIsIG1faXNFeHRlcm5hbFNjcmlwdCA/IHNvdXJjZUNvZGUudXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSA6ICJpbmxpbmUiLCBoYXNBc3luY0F0dHJpYnV0ZSgpLCBoYXNEZWZlckF0
dHJpYnV0ZSgpKTsKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4ZWN1
dGVNb2R1bGVTY3JpcHQoTG9hZGFibGVNb2R1bGVTY3JpcHQmIGxvYWRhYmxlTW9kdWxlU2NyaQog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIElnbm9yZURlc3RydWN0aXZl
V3JpdGVDb3VudEluY3JlbWVudGVyIGlnbm9yZURlc2N0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1l
bnRlcigmZG9jdW1lbnQpOworICAgIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVu
dGVyIGlnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyKCZkb2N1bWVudCk7CiAg
ICAgQ3VycmVudFNjcmlwdEluY3JlbWVudGVyIGN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlcihkb2N1
bWVudCwgKnRoaXMpOwogCiAgICAgV1RGQmVnaW5TaWducG9zdCh0aGlzLCAiRXhlY3V0ZSBTY3Jp
cHQgRWxlbWVudCIsICJleGVjdXRpbmcgbW9kdWxlIHNjcmlwdCIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5j
cHAKaW5kZXggYjdmZjBlMTA0YTU1MDY5MTZjY2ZhOWQyMzBjOGIyYmJiMzYzZGYzYS4uNWU5NzU1
YmVmMDdhNTEyNmNhMDdlN2E4MjdiN2IwMDZkNGVkNTI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3Bw
CkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggMjkyZDJjMjk0MGRh
NmE0MTBlYzY4ZmI2NjVlM2U5ZDcwZGY3MWI0YS4uNjc4MzEwMzVkOWQzZGQ4NjgwNzgwMmU4OTQ1
NWU5YTA3NzZjMzZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50
cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtODEsOCArODEsNiBAQAogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3JpcHRD
YWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8d3Rm
L0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDUz
ZGY4YzliMThiOTdmYzkwNjMzNjhhMWVlMTA0MTExY2U5YjI5NTguLmYyNjRmMWRkNzEyM2Q2OTJj
NjU3ZjFlY2UxNDk5NGM0MTk2MzM0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC01MCw3ICs1MCw2
IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAppbmRleCAyNGJiMzYyZjRl
OTk2YWRkYWZhZDBmMThjM2YzYTljMjNhYTcyM2RhLi5mOTJhOThmN2UwMjQyOTk1NGM3NjQ2YTRm
YmMwZDNmNDM4ZTM3Y2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250
ZW50UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlk
ZXIuaApAQCAtMjYsOSArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5jdGlv
bmFsPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CkBA
IC00MywyMSArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9NV3JhcHBlcldv
cmxkOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBQYWdlOwotY2xhc3MgUmVzb3VyY2VS
ZXF1ZXN0OworY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJNZXNzYWdlSGFu
ZGxlckRlc2NyaXB0b3I7CiBjbGFzcyBVc2VyU2NyaXB0OwogY2xhc3MgVXNlclN0eWxlU2hlZXQ7
CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotbmFtZXNwYWNlIENvbnRlbnRFeHRl
bnNpb25zIHsKLWNsYXNzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDsKLWVudW0gY2xhc3MgUmVz
b3VyY2VUeXBlIDogdWludDE2X3Q7Ci1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKLX0KLSNlbmRp
ZgotCi1jbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwotCiBjbGFzcyBVc2VyQ29udGVudFByb3Zp
ZGVySW52YWxpZGF0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFVzZXJDb250ZW50
UHJvdmlkZXJJbnZhbGlkYXRpb25DbGllbnQ+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5Vc2Vy
Q29udGVudFByb3ZpZGVySW52YWxpZGF0aW9uQ2xpZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvaW9zL0RPTVRpbWVySG9sZGluZ1RhbmsuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9pb3MvRE9NVGltZXJIb2xkaW5nVGFuay5jcHAKaW5kZXggMzg4M2MzYjA5Njk2YjA3MmI1
MmY1NjcyNjU1NGNjNWI0ZjEyZDc5Yy4uZDFmZGM5YzE1MWE0MzMwOTg3YzM0YjAyNzg0Y2VkNzdk
YWJlOGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRE9NVGltZXJIb2xk
aW5nVGFuay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRE9NVGltZXJIb2xkaW5n
VGFuay5jcHAKQEAgLTI4LDggKzI4LDYgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAK
LSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNpZiBQ
TEFURk9STShJT1NfU0lNVUxBVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjgxMTg2ZTk1NDRlNWViZTk4YTZk
NjQ5OWM0YTFhNDBkNDMzY2RjOS4uNTkwOTg0ZjM1NjdjM2M4ZDEyOTAwN2RjNTE3YmY2NWJlYTA5
NjQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdDb29yZGluYXRvci5oCkBAIC0zMywxNSArMzMsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdD
b29yZGluYXRvclR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAKLSNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5j
bHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgVGV4dFN0cmVhbTsKIH0KQEAg
LTYwLDEwICs1NSw2IEBAIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7
CiBjbGFzcyBWaWV3cG9ydENvbnN0cmFpbnRzOwogCi0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElO
RykKLWNsYXNzIFNjcm9sbGluZ1RyZWU7Ci0jZW5kaWYKLQogdXNpbmcgRnJhbWVzUGVyU2Vjb25k
ID0gdW5zaWduZWQ7CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAppbmRl
eCBjNmIwMzJmZWI4Y2M5NzM5YWU3NWI1NTQ5NjhiODk1ZDkxYTY0ZDM4Li44ZGQzZWZjODkwMWM3
ZDIwNThkZTE4MDAzN2IzNTY4NzBjMmM3YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU7CitjbGFzcyBT
Y3JvbGxpbmdUcmVlOwogY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTsKIGNs
YXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVy
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxl
ckdhbWVwYWRQcm92aWRlci5tbQppbmRleCBhMjIxMzNjYTU5M2VkNjMyNDc0YTQ3MmRjNGJmMjFm
N2JmMWIwOTFmLi5kYjAzZDQ3MDRkNzM0ZWZjMjk4N2UyMGU0Mjg5YzRmMjc5YTVhZGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVw
YWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KQEAgLTM1LDYgKzM1LDcg
QEAKICNpbXBvcnQgPEdhbWVDb250cm9sbGVyL0dhbWVDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxw
YWwvc3BpL21hYy9JT0tpdFNQSU1hYy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogI2ltcG9ydCAiR2FtZUNvbnRyb2xs
ZXJTb2Z0TGluay5oIgogCkBAIC00NSwyNyArNDYsMjQgQEAgYm9vbCBHYW1lQ29udHJvbGxlckdh
bWVwYWRQcm92aWRlcjo6d2lsbEhhbmRsZVZlbmRvckFuZFByb2R1Y3QodWludDE2X3QgdmVuZG9y
SUQKIHsKICAgICAvLyBDaGVjayB0aGUgdmVuZG9yL3Byb2R1Y3QgSURzIGFnYWlucyBhIGhhcmQg
Y29kZWQgbGlzdCBvZiBjb250cm9sbGVycyB3ZSBleHBlY3QgdG8gd29yayB3ZWxsIHdpdGgKICAg
ICAvLyBHYW1lQ29udHJvbGxlci5mcmFtZXdvcmsgb24gMTAuMTUuCi0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8dWludDMyX3Q+PiBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1l
cGFkczsKLQotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVH
YW1lcGFkcy0+YWRkKE5pbWJ1czEpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVH
YW1lcGFkcy0+YWRkKE5pbWJ1czIpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVH
YW1lcGFkcy0+YWRkKFN0cmF0dXNYTDEpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGli
bGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDIpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBh
dGlibGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDMpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNv
bXBhdGlibGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDQpOwotICAgICAgICBnYW1lQ29udHJvbGxl
ckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKEhvcmlwYWRVbHRpbWF0ZSk7Ci0gICAgICAgIGdhbWVD
b250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoR2FtZXNpck0yKTsKLSAgICAgICAgZ2Ft
ZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmFkZChYYm94T25lMSk7Ci0gICAgICAgIGdh
bWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoWGJveE9uZTIpOwotICAgICAgICBn
YW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKFhib3hPbmUzKTsKLSAgICAgICAg
Z2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmFkZChEdWFsc2hvY2s0XzEpOwotICAg
ICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKER1YWxzaG9jazRfMik7
Ci0gICAgfSk7Ci0KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGdhbWVDb250cm9sbGVy
Q29tcGF0aWJsZUdhbWVwYWRzQXJyYXlbXSA9IHsKKyAgICAgICAgU3RyYXR1c1hMMSwKKyAgICAg
ICAgU3RyYXR1c1hMMywKKyAgICAgICAgTmltYnVzMSwKKyAgICAgICAgWGJveE9uZTEsCisgICAg
ICAgIFhib3hPbmUyLAorICAgICAgICBYYm94T25lMywKKyAgICAgICAgRHVhbHNob2NrNF8xLAor
ICAgICAgICBEdWFsc2hvY2s0XzIsCisgICAgICAgIEdhbWVzaXJNMiwKKyAgICAgICAgSG9yaXBh
ZFVsdGltYXRlLAorICAgICAgICBTdHJhdHVzWEwyLAorICAgICAgICBTdHJhdHVzWEw0LAorICAg
ICAgICBOaW1idXMyLAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJheVNl
dCBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkc1NldCB7IGdhbWVDb250cm9sbGVyQ29t
cGF0aWJsZUdhbWVwYWRzQXJyYXkgfTsKICAgICB1aW50MzJfdCBmdWxsUHJvZHVjdElEID0gKCgo
dWludDMyX3QpdmVuZG9ySUQpIDw8IDE2KSB8IHByb2R1Y3RJRDsKLSAgICByZXR1cm4gZ2FtZUNv
bnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmNvbnRhaW5zKGZ1bGxQcm9kdWN0SUQpOworICAg
IHJldHVybiBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkc1NldC5jb250YWlucyhmdWxs
UHJvZHVjdElEKTsKIH0KICNlbmRpZiAvLyAhSEFWRShHQ0NPTlRST0xMRVJfSElEX0RFVklDRV9D
SEVDSykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMv
SElER2FtZXBhZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvbWFj
L0hJREdhbWVwYWRFbGVtZW50LmgKaW5kZXggZDc2NzNhNWM0ZjkxNzJmMjEzYjUzZDRjNmIyODcx
ZDFkNzMwNzE5OS4uZDBlOTI4ZTQ2YTNkN2M5MWE2MWQyOWZmOWMzNjdhMzQwN2Y0NjFiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1l
cGFkRWxlbWVudC5oCkBAIC0yOSw5ICsyOSw2IEBACiAKICNpbmNsdWRlICJISURFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiU2hhcmVkR2FtZXBhZFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggNWRkMmY5OTlkZGM4NDc3
ZTE0Y2RhNjI0ZjA5Y2U2NzI2MTlhMzJhNy4uN2I4N2FjOGNlYzU2ODE5YzQxZjU1ZDM5OGUwYzdi
Yzk5ZTIyMDcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTIxLDIwICsyMSw2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogCi0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYgT1Mo
REFSV0lOKSAmJiBVU0UoQ0cpCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVkZSA8
Q29yZUdyYXBoaWNzL0NHRm9udC5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShXSU4pICYmIFVT
RShDT1JFX1RFWFQpCi0jaW5jbHVkZSA8cGFsL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaD4KLSNl
bmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0
Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSEVWQ1V0aWxpdGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcAppbmRleCAzMzgyYjMx
ZWZkMDI3Yzk0YWJjNDI3MWZlMjQ0MTRiZjIzM2Y0YjhiLi44NTcxM2Y0YmE1MjFkZTVkNWI2OTFm
Njk5M2QzY2JmOWVjM2M1ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAuaD4K
LSNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJzaW9u
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJl
Y3RIYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0SGFzaC5o
CmluZGV4IDg3Y2I2OTJhMjhlYjM5NzQ4ODI4NzYzMjlhOWNmZTgwODc4YTZkYzguLjQzMWE3Mzk4
Y2FhMDQwN2MxZDllOTFiOWU0NTk0MDk3M2Y4YTk1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhhc2guaApAQCAtMjMsMTMgKzIzLDExIEBACiAgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KICAKLSNpZm5kZWYgSW50UmVjdEhh
c2hfaAotI2RlZmluZSBJbnRSZWN0SGFzaF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIklu
dFBvaW50SGFzaC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXplSGFz
aC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC01
Myw1ICs1MSwzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6SW50UmVj
dD4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpJbnRSCiB9OwogCiB9Ci0KLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNw
cAppbmRleCBkNGM0NzhiNGZjM2YwZDk5NWY3YjI2OGFhMjE5ZDRhYmIwMmFkZGNjLi4zMjBlYTg3
ZTU4MzQyYjdiZWM4OTYzMGFkNmFmMGUzNmM2NzExYjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsMTAgKzQ4LDcgQEAgYm9vbCBN
SU1FVHlwZUNhY2hlOjpzdXBwb3J0c0NvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJiBjb250YWlu
ZXJUeXBlKQogICAgIGlmIChpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKHN0YXRpY0NvbnRhaW5lclR5cGVM
aXN0KCkuY29udGFpbnMoY29udGFpbmVyVHlwZSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgcmV0dXJuIHN1cHBvcnRlZFR5cGVzKCkuY29udGFpbnMoY29udGFpbmVyVHlwZSk7CisgICAg
cmV0dXJuIGlzU3RhdGljQ29udGFpbmVyVHlwZShjb250YWluZXJUeXBlKSB8fCBzdXBwb3J0ZWRU
eXBlcygpLmNvbnRhaW5zKGNvbnRhaW5lclR5cGUpOwogfQogCiBNZWRpYVBsYXllckVudW1zOjpT
dXBwb3J0c1R5cGUgTUlNRVR5cGVDYWNoZTo6Y2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKQpAQCAtMTA2LDEwICsxMDMsOSBAQCB2b2lkIE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBv
cnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBuZXdUeXBlcykKICAgICAgICAgbV9zdXBw
b3J0ZWRUeXBlcy0+YWRkKHR5cGUpOwogfQogCi1jb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPiYgTUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxp
c3QoKQorYm9vbCBNSU1FVHlwZUNhY2hlOjppc1N0YXRpY0NvbnRhaW5lclR5cGUoU3RyaW5nVmll
dykKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB7IH0pOwotICAgIHJldHVy
biBjYWNoZTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgTUlNRVR5cGVDYWNoZTo6aXNV
bnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikKQEAgLTE0NCwxMSArMTQwLDEw
IEBAIGJvb2wgTUlNRVR5cGVDYWNoZTo6c2hvdWxkT3ZlcnJpZGVFeHRlbmRlZFR5cGUoY29uc3Qg
Q29udGVudFR5cGUmIHR5cGUpCiAgICAgLy8gaXQgaXMgbm90IFJGQyAzMDAzIGNvbXBsaWFudC4K
ICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZSh0eXBlLmNvbnRhaW5lclR5cGUoKSwgImF1
ZGlvL21wZWciKSkgewogICAgICAgICBhdXRvIGNvZGVjcyA9IHR5cGUuY29kZWNzKCk7Ci0gICAg
ICAgIHJldHVybiAoY29kZWNzLnNpemUoKSA9PSAxICYmIGNvZGVjc1swXSA9PSAibXAzIik7Cisg
ICAgICAgIHJldHVybiBjb2RlY3Muc2l6ZSgpID09IDEgJiYgY29kZWNzWzBdID09ICJtcDMiOwog
ICAgIH0KIAogICAgIHJldHVybiBmYWxzZTsKIH0KIAogfQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKaW5kZXggNmIxNjZiNDIwOWYzNTNm
N2MyOTUxYTk5MzVmMzQ5ZjJhZTMyYmFlNy4uYzVhNzc3ZmQ3ZDYwN2JlYzI5MmIzOGE2YmRjZjQ2
MjRiNDBmYjUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TUlNRVR5cGVDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01J
TUVUeXBlQ2FjaGUuaApAQCAtNDMsOCArNDMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+TUlN
RVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgYm9vbCBpc0F2YWlsYWJsZSgp
IGNvbnN0OwotICAgIHZpcnR1YWwgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4mIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCk7Ci0gICAgdmlydHVhbCBib29s
IGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwg
TWVkaWFQbGF5ZXJFbnVtczo6U3VwcG9ydHNUeXBlIGNhbkRlY29kZVR5cGUoY29uc3QgU3RyaW5n
Jik7CiAgICAgdmlydHVhbCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNo
PiYgc3VwcG9ydGVkVHlwZXMoKTsKIApAQCAtNTUsNiArNTMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAg
dm9pZCBhZGRTdXBwb3J0ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCiBwcml2YXRl
OgorICAgIHZpcnR1YWwgYm9vbCBpc1N0YXRpY0NvbnRhaW5lclR5cGUoU3RyaW5nVmlldyk7Cisg
ICAgdmlydHVhbCBib29sIGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYp
OwogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSGFzaD4mKTsKICAgICB2aXJ0dWFsIGJvb2wgY2FuRGVjb2RlRXh0ZW5k
ZWRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5oCmluZGV4IDkzMTc5ZjI4ZDQwYzc1Y2Q4NDI3Y2IxNDZhODIw
MzQyYjJiOGM1YTUuLjAwNTI3NWE1YWY1MTMzYzA2N2IzZmU0YjljNTIyZmUwOWZlOGM2ZWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaApAQCAtNDEs
OCArNDEsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDYWNoZU1JTUVUeXBlc0NhbGxiYWNrKENh
Y2hlTUlNRVR5cGVzQ2FsbGJhY2smJiBjYWxsYmFjaykgeyBtX2NhY2hlVHlwZUNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayk7IH0KIAogICAgIGJvb2wgaXNBdmFpbGFibGUoKSBjb25zdCBmaW5h
bDsKLSAgICBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYg
c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKSBmaW5hbDsKLSAgICBib29sIGlzVW5zdXBwb3J0ZWRD
b250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgdm9pZCBhZGRTdXBwb3J0
ZWRUeXBlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpOwogCkBAIC01MCw2ICs0OCw4IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIE5ldmVyRGVzdHJveWVkPEFWQXNzZXRNSU1FVHlwZUNhY2hlPjsKICAg
ICBBVkFzc2V0TUlNRVR5cGVDYWNoZSgpID0gZGVmYXVsdDsKIAorICAgIGJvb2wgaXNTdGF0aWND
b250YWluZXJUeXBlKFN0cmluZ1ZpZXcpIGZpbmFsOworICAgIGJvb2wgaXNVbnN1cHBvcnRlZENv
bnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAgICAgYm9vbCBjYW5EZWNvZGVFeHRl
bmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKSBmaW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVD
YWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpIGZpbmFsOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCmluZGV4
IDIyMjM3ZWU4OWY3N2YzNGIyY2UxMTMxOTkxNGYxODg2NmE3MGVkOWYuLjdlYmU1MTI1YWY2NTAy
MmVhMjhiZmMyNTVjNjY0MzlmNDE3MTUyMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNi0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsOCBAQAogCiAjaW1wb3J0ICJD
b250ZW50VHlwZS5oIgogI2ltcG9ydCAiU291cmNlQnVmZmVyUGFyc2VyV2ViTS5oIgorI2ltcG9y
dCA8d3RmL1NvcnRlZEFycmF5TWFwLmg+CisKICNpbXBvcnQgPHBhbC9jZi9Db3JlTWVkaWFTb2Z0
TGluay5oPgogI2ltcG9ydCA8cGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKQEAg
LTkyLDQyICs5NCw0MyBAQCBib29sIEFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVk
Q29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmIHR5cGUpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1jb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgQVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OnN0YXRpY0NvbnRhaW5lclR5cGVMaXN0KCkKK2Jvb2wgQVZBc3NldE1J
TUVUeXBlQ2FjaGU6OmlzU3RhdGljQ29udGFpbmVyVHlwZShTdHJpbmdWaWV3IHR5cGUpCiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGF1dG8gY2FjaGUgPSBtYWtlTmV2ZXJEZXN0cm95ZWQoSGFzaFNldDxT
dHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gewotICAgICAgICAiYXBwbGljYXRpb24v
dm5kLmFwcGxlLm1wZWd1cmwiX3MsCi0gICAgICAgICJhcHBsaWNhdGlvbi94LW1wZWd1cmwiX3Ms
Ci0gICAgICAgICJhdWRpby8zZ3BwIl9zLAotICAgICAgICAiYXVkaW8vYWFjIl9zLAotICAgICAg
ICAiYXVkaW8vYWFjcCJfcywKLSAgICAgICAgImF1ZGlvL2FpZmYiX3MsCi0gICAgICAgICJhdWRp
by9iYXNpYyJfcywKLSAgICAgICAgImF1ZGlvL21wMyJfcywKLSAgICAgICAgImF1ZGlvL21wNCJf
cywKLSAgICAgICAgImF1ZGlvL21wZWciX3MsCi0gICAgICAgICJhdWRpby9tcGVnMyJfcywKLSAg
ICAgICAgImF1ZGlvL21wZWd1cmwiX3MsCi0gICAgICAgICJhdWRpby9tcGciX3MsCi0gICAgICAg
ICJhdWRpby92bmQud2F2ZSJfcywKLSAgICAgICAgImF1ZGlvL3dhdiJfcywKLSAgICAgICAgImF1
ZGlvL3dhdmUiX3MsCi0gICAgICAgICJhdWRpby94LWFhYyJfcywKLSAgICAgICAgImF1ZGlvL3gt
YWlmZiJfcywKLSAgICAgICAgImF1ZGlvL3gtbTRhIl9zLAotICAgICAgICAiYXVkaW8veC1tcGVn
dXJsIl9zLAotICAgICAgICAiYXVkaW8veC13YXYiX3MsCi0gICAgICAgICJ2aWRlby8zZ3BwIl9z
LAotICAgICAgICAidmlkZW8vM2dwcDIiX3MsCi0gICAgICAgICJ2aWRlby9tcDQiX3MsCi0gICAg
ICAgICJ2aWRlby9tcGVnIl9zLAotICAgICAgICAidmlkZW8vbXBlZzIiX3MsCi0gICAgICAgICJ2
aWRlby9tcGciX3MsCi0gICAgICAgICJ2aWRlby9xdWlja3RpbWUiX3MsCi0gICAgICAgICJ2aWRl
by94LW00diJfcywKLSAgICAgICAgInZpZGVvL3gtbXBlZyJfcywKLSAgICAgICAgInZpZGVvL3gt
bXBnIl9zLAotICAgIH0pOwotICAgIHJldHVybiBjYWNoZTsKKyAgICBzdGF0aWMgY29uc3RleHBy
IENvbXBhcmFibGVMZXR0ZXJzTGl0ZXJhbCBzdGF0aWNDb250YWluZXJUeXBlc0FycmF5W10gPSB7
CisgICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCIsCisgICAgICAgICJhcHBs
aWNhdGlvbi94LW1wZWd1cmwiLAorICAgICAgICAiYXVkaW8vM2dwcCIsCisgICAgICAgICJhdWRp
by9hYWMiLAorICAgICAgICAiYXVkaW8vYWFjcCIsCisgICAgICAgICJhdWRpby9haWZmIiwKKyAg
ICAgICAgImF1ZGlvL2Jhc2ljIiwKKyAgICAgICAgImF1ZGlvL21wMyIsCisgICAgICAgICJhdWRp
by9tcDQiLAorICAgICAgICAiYXVkaW8vbXBlZyIsCisgICAgICAgICJhdWRpby9tcGVnMyIsCisg
ICAgICAgICJhdWRpby9tcGVndXJsIiwKKyAgICAgICAgImF1ZGlvL21wZyIsCisgICAgICAgICJh
dWRpby92bmQud2F2ZSIsCisgICAgICAgICJhdWRpby93YXYiLAorICAgICAgICAiYXVkaW8vd2F2
ZSIsCisgICAgICAgICJhdWRpby94LWFhYyIsCisgICAgICAgICJhdWRpby94LWFpZmYiLAorICAg
ICAgICAiYXVkaW8veC1tNGEiLAorICAgICAgICAiYXVkaW8veC1tcGVndXJsIiwKKyAgICAgICAg
ImF1ZGlvL3gtd2F2IiwKKyAgICAgICAgInZpZGVvLzNncHAiLAorICAgICAgICAidmlkZW8vM2dw
cDIiLAorICAgICAgICAidmlkZW8vbXA0IiwKKyAgICAgICAgInZpZGVvL21wZWciLAorICAgICAg
ICAidmlkZW8vbXBlZzIiLAorICAgICAgICAidmlkZW8vbXBnIiwKKyAgICAgICAgInZpZGVvL3F1
aWNrdGltZSIsCisgICAgICAgICJ2aWRlby94LW00diIsCisgICAgICAgICJ2aWRlby94LW1wZWci
LAorICAgICAgICAidmlkZW8veC1tcGciLAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBT
b3J0ZWRBcnJheVNldCBzdGF0aWNDb250YWluZXJUeXBlc1NldCB7IHN0YXRpY0NvbnRhaW5lclR5
cGVzQXJyYXkgfTsKKyAgICByZXR1cm4gc3RhdGljQ29udGFpbmVyVHlwZXNTZXQuY29udGFpbnMo
dHlwZSk7CiB9CiAKIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmFkZFN1cHBvcnRlZFR5cGVz
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKQEAgLTE0Myw3ICsxNDYsNyBAQCB2b2lkIEFW
QXNzZXRNSU1FVHlwZUNhY2hlOjppbml0aWFsaXplQ2FjaGUoSGFzaFNldDxTdHJpbmcsIEFTQ0lJ
Q2FzZUluc2Vuc2l0aXZlSAogICAgIGlmICghaXNBdmFpbGFibGUoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZm9yIChOU1N0cmluZyogdHlwZSBpbiBbUEFMOjpnZXRBVlVSTEFzc2V0Q2xhc3Mo
KSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCisgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBbUEFM
OjpnZXRBVlVSTEFzc2V0Q2xhc3MoKSBhdWRpb3Zpc3VhbE1JTUVUeXBlc10pCiAgICAgICAgIGNh
Y2hlLmFkZCh0eXBlKTsKIAogI2lmIEVOQUJMRShXRUJNX0ZPUk1BVF9SRUFERVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMuaAppbmRleCA2MTQ2NWExNTY3Y2MwNjg1NTI3MGEzN2JiNzM2MDkzZDkyZjM0
YTNjLi5mOWFiMDI2MmUzNmQ5YzkxYTUwMmM2YjVmYjY5NDhmZjA1ZTkzZDUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJl
YW1pbmdBVkZPYmpDLmgKQEAgLTMwLDkgKzMwLDcgQEAKICNpbmNsdWRlICJDRE1JbnN0YW5jZS5o
IgogI2luY2x1ZGUgIkNETUluc3RhbmNlU2Vzc2lvbi5oIgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlv
bi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5o
PgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBPQkpDX0NMQVNTIEFWQ29udGVu
dEtleVJlcG9ydEdyb3VwOwogT0JKQ19DTEFTUyBBVkNvbnRlbnRLZXlSZXF1ZXN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZpbHRlckVm
ZmVjdFJlbmRlcmVyQ29yZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UuaAppbmRleCA4YmM1MGQ1
ZTc5ZGQ2NmY3NThjZTE0M2M1YzhmOWE3ZDU5ZGEwNjhmLi42YzhmYzVkNDYzNDI1OTJmZGVmZjMy
MjlkNDhkYTJhOWM2MDFhOWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVu
ZGVyZXJDb3JlSW1hZ2UuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIFVTRShDT1JFX0lNQUdFKQog
CiAjaW1wb3J0ICJGaWx0ZXJFZmZlY3RSZW5kZXJlci5oIgotI2ltcG9ydCA8d3RmL0hhc2hNYXAu
aD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAogT0JKQ19DTEFTUyBDSUltYWdlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKaW5k
ZXggM2U2MWNhZDM3ZDE4ZjFkNWFkZGQxMDBlNDkxOGJjYThlMmQ1MGM5NS4uNzc2ZjU4Zjk5MTQz
ODA2ZjI5OWRjN2Y1MmY0MTYyMzczZTQ5ZTRiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFp
bnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCkBAIC0yOCwxMCArMjgsNiBAQAog
CiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmdIYXNoLmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogYm9vbCBSZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHM6OnN1cHBvcnRzQ29uc3RyYWludChNZWRpYUNvbnN0
cmFpbnRUeXBlIGNvbnN0cmFpbnQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNz
aW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaAppbmRleCAyNjE2MDgwNGY3YzVhN2ZmYzZkNjE1MzRh
MTNlODUzYmU1YTU4ODY2Li42OWY4NGJmN2U1ZWVjN2Y3OWQ3OGRjMDAzYTJkZGNjYmE3YTZjNGQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZB
dWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2Vy
LmgKQEAgLTI5LDggKzI5LDYgQEAKIAogI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgi
CiAjaW5jbHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZURldmljZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCmluZGV4IGYwYjIxYTRhYjUxYWE1
ZTUxYTg0YzcwNTg3NmMwYWNkNDkwY2MyNzMuLjZhYWMxNTQ1NmM5MGE2YWJkOTFhNDMyZTg3ZDhj
Y2ZjMjk5YTI0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdl
ci5oCkBAIC0zMSw4ICszMSw2IEBACiAjaW5jbHVkZSAiQ2FwdHVyZURldmljZU1hbmFnZXIuaCIK
ICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVB
dWRpby5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA1YjgyMmYyOTE0ZWMzZDA4Y2Y5
YjhmY2MzNzE5OWE3OGRmODdlZGYxLi40YjU1NWQ0YzdjZTMzYTA1M2QyNDM3YzM2ZGVjOTkxZjE2
ZDI4NTRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTMzLDEwICszMyw2
IEBACiAjaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZUZhY3RvcnkuaCIKICNpbmNsdWRlIDxB
dWRpb1Rvb2xib3gvQXVkaW9Ub29sYm94Lmg+CiAjaW5jbHVkZSA8Q29yZUF1ZGlvL0NvcmVBdWRp
b1R5cGVzLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvTG9jay5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiB0eXBlZGVmIHN0cnVjdCBPcGFxdWVD
TUNsb2NrKiBDTUNsb2NrUmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKaW5kZXggZDdkZDYzZmVhYmZi
MDNjMDE5MmYyNDlmODY4YTM0MTAwM2NhNDVmNi4uY2NkNmFjNTYyMjMxZmY4YzI5OGZkNmM0NTM0
MTYwOTllMWQxOGQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAj
aW5jbHVkZSA8c3lzL3R5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNs
dWRlIDx3dGYvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAjaW5jbHVk
ZSA8d3RmL1NjaGVkdWxlUGFpci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCmluZGV4IDcwYjQzOTNjNjM2MzcxOTZmOThjMDYz
MmZhYjYxMTVkNzhhODFiY2MuLmY0MDlhYTg5ZTZiMjM0NTQ4OTFlOGYwODIwNTFmODcyMzhmN2Vi
YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0
aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElV
dGlsaXRpZXMubW0KQEAgLTI4LDggKzI4LDggQEAKIAogI2ltcG9ydCA8d3RmL0xvY2suaD4KICNp
bXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4K
ICNpbXBvcnQgPHd0Zi9UaW55TFJVQ2FjaGUuaD4KLSNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oSU9T
X0ZBTUlMWSkKQEAgLTg1LDI0ICs4NSwxNiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAotc3RhdGljIENGU3RyaW5nUmVm
IFVUSUZyb21Vbmtub3duTUlNRVR5cGUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSkKK3N0YXRpYyBD
RlN0cmluZ1JlZiBVVElGcm9tVW5rbm93bk1JTUVUeXBlKFN0cmluZ1ZpZXcgbWltZVR5cGUpCiB7
Ci0gICAgc3RhdGljIGNvbnN0IGF1dG8gbWFwID0gbWFrZU5ldmVyRGVzdHJveWVkKFtdIHsKLSAg
ICAgICAgSGFzaE1hcDxTdHJpbmcsIENGU3RyaW5nUmVmLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhh
c2g+IG1hcDsKLSAgICAgICAgYXV0byBwaXhhck1JTUVUeXBlID0gQ0ZTVFIoImNvbS5waXhhci51
bml2ZXJzYWwtc2NlbmUtZGVzY3JpcHRpb24tbW9iaWxlIik7Ci0gICAgICAgIG1hcC5hZGQoIm1v
ZGVsL3ZuZC51c2R6K3ppcCJfcywgcGl4YXJNSU1FVHlwZSk7Ci0gICAgICAgIG1hcC5hZGQoIm1v
ZGVsL3VzZCJfcywgcGl4YXJNSU1FVHlwZSk7Ci0gICAgICAgIG1hcC5hZGQoIm1vZGVsL3ZuZC5w
aXhhci51c2QiX3MsIHBpeGFyTUlNRVR5cGUpOwotICAgICAgICBtYXAuYWRkKCJtb2RlbC92bmQu
dXNkeit6aXAiX3MsIENGU1RSKCJjb20uYXBwbGUucmVhbGl0eSIpKTsKLSAgICAgICAgcmV0dXJu
IG1hcDsKLSAgICB9KCkpOwotCi0gICAgc3RhdGljIGNvbnN0IENGU3RyaW5nUmVmIGVtcHR5Q0ZT
dHJpbmcgPSBDRlNUUigiIik7Ci0gICAgYXV0byBtYXBFbnRyeSA9IG1hcC5nZXQoKS5maW5kKG1p
bWVUeXBlKTsKLSAgICBpZiAobWFwRW50cnkgPT0gbWFwLmdldCgpLmVuZCgpKQotICAgICAgICBy
ZXR1cm4gZW1wdHlDRlN0cmluZzsKLQotICAgIHJldHVybiBtYXBFbnRyeS0+dmFsdWU7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBzdGQ6OnBhaXI8Q29tcGFyYWJsZUxldHRlcnNMaXRlcmFsLCBOU1N0
cmluZyAqPiB0eXBlc0FycmF5W10gPSB7CisgICAgICAgIHsgIm1vZGVsL3VzZCIsIEAiY29tLnBp
eGFyLnVuaXZlcnNhbC1zY2VuZS1kZXNjcmlwdGlvbi1tb2JpbGUiIH0sCisgICAgICAgIHsgIm1v
ZGVsL3ZuZC5waXhhci51c2QiLCBAImNvbS5waXhhci51bml2ZXJzYWwtc2NlbmUtZGVzY3JpcHRp
b24tbW9iaWxlIiB9LAorICAgICAgICB7ICJtb2RlbC92bmQudXNkeit6aXAiLCBAImNvbS5waXhh
ci51bml2ZXJzYWwtc2NlbmUtZGVzY3JpcHRpb24tbW9iaWxlIiB9LAorICAgICAgICAvLyBGSVhN
RTogRWFybGllciB2ZXJzaW9uIG9mIHRoaXMgY29kZSB0cmllZCwgdW5zdWNjZXNmdWxseSwgdG8g
dXNlIHRoZSBVVEkgImNvbS5hcHBsZS5yZWFsaXR5IiBmb3IgIm1vZGVsL3ZuZC51c2R6K3ppcCIu
IFNob3VsZCB3ZSBkbyB0aGF0PworICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRB
cnJheU1hcCB0eXBlc01hcCB7IHR5cGVzQXJyYXkgfTsKKyAgICByZXR1cm4gKF9fYnJpZGdlIENG
U3RyaW5nUmVmKXR5cGVzTWFwLmdldChtaW1lVHlwZSwgQCIiKTsKIH0KIAogc3RydWN0IFVUSUZy
b21NSU1FVHlwZUNhY2hlUG9saWN5IDogVGlueUxSVUNhY2hlUG9saWN5PFN0cmluZywgUmV0YWlu
UHRyPENGU3RyaW5nUmVmPj4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NvbXBsZXhMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4
TGluZUxheW91dC5jcHAKaW5kZXggOGYwNTE3YzNlODc4N2Y5NjMyNzBmYjhiOTc3NzMzOTJkMGE5
ZGFiOC4uZDA3YzI4ZDMxMDcxMTcyOTA3NzhiODJmNWQyYTQ0MWIwYTRmNTViOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCkBAIC01MjAsMTEg
KzUyMCw4IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRMb2dpY2FsV2lkdGhGb3JUZXh0UnVuKFJv
b3RJbmxpbmVCb3gqIGxpbmVCb3gsIEJpZGlSdW4qIHJ1CiAgICAgICAgICAgICAgICAgbWVhc3Vy
ZWRXaWR0aCArPSB3b3JkTWVhc3VyZW1lbnQud2lkdGg7CiAgICAgICAgICAgICBhdEZpcnN0V29y
ZE1lYXN1cmVtZW50ID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghd29yZE1lYXN1cmVtZW50
LmZhbGxiYWNrRm9udHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgSGFzaFNldDxjb25z
dCBGb250Kj46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0Zv
bnRzLmVuZCgpOwotICAgICAgICAgICAgICAgIGZvciAoSGFzaFNldDxjb25zdCBGb250Kj46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gd29yZE1lYXN1cmVtZW50LmZhbGxiYWNrRm9udHMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KQotICAgICAgICAgICAgICAgICAgICBmYWxsYmFja0ZvbnRzLmFkZCgq
aXQpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgZm9yIChhdXRvJiBmb250IDogd29yZE1l
YXN1cmVtZW50LmZhbGxiYWNrRm9udHMpCisgICAgICAgICAgICAgICAgZmFsbGJhY2tGb250cy5h
ZGQoZm9udCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1lYXN1cmVkV2lkdGggJiYgbGFzdEVu
ZE9mZnNldCAhPSBydW4tPm1fc3RvcCkgewogICAgICAgICAgICAgLy8gSWYgd2UgZG9uJ3QgaGF2
ZSBlbm91Z2ggY2FjaGVkIGRhdGEsIHdlJ2xsIG1lYXN1cmUgdGhlIHJ1biBhZ2Fpbi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRl
ci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVy
LmgKaW5kZXggMzk2MTUzN2JiZjY5ZDRhMTI3ZGIxODMxNjVlMTA4OGM1YTY1NWQ2Mi4uYjdmMGFk
ZWIxNzVhZTg1MjcwYjQ4ZTIyZDJlMTM1N2I2Y2M0NjIyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVVcGRhdGVyLmgKQEAgLTMwLDcg
KzMwLDYgQEAKICNpbmNsdWRlICJTdHlsZUNoYW5nZS5oIgogI2luY2x1ZGUgIlN0eWxlVHJlZVJl
c29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVVcGRhdGUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgKaW5k
ZXggZGVkNjMwZmMwNjFmYmFmOTMxOGY0NWEwMTk0YjU5ODFlNjFhZDI3Zi4uNDRkZGU0NWM4NjIz
N2YzNjVmODZlZTRlYjAxYWE0OWZjM2IzZmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oCkBAIC0yNiw5ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luSGFzaC5oIgotI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVzcGFjZSBQQUwgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaAppbmRleCA5YWYx
ZDZlOGVlMTY1MzljODQ1MGExZTFhYjRjNTA3ZDJiMjk0ZTYxLi5jZTkzNDIxMjRmZTYxNmVmZmZl
NmNhMTFlMTVkM2NlMWM5ZWUxOTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdl
L1N0b3JhZ2VRdW90YU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3Jh
Z2VRdW90YU1hbmFnZXIuaApAQCAtMjcsOCArMjcsNiBAQAogCiAjaW5jbHVkZSA8d3RmL0NvbXBs
ZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dvcmtRdWV1ZS5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRh
dGUuaAppbmRleCA4OTA5YjJiYzE5OWU0NWVlYjBhMGU5ZGJhNzkxODQ3MjFkZjk4OTQwLi45OWNl
MTNmNjE3YjBlZjVhMDFkZTEzNGU4NDQxMWJlZWM5MzlmYmRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVXBkYXRlLmgKQEAgLTI4LDcgKzI4LDYgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVk
ZSAiU3R5bGVDaGFuZ2UuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAppbmRleCBhNTQyMWRmY2Fj
ODQ0ZjNiNTFlNDQ2YzVkMjEwMDA3YzVkZmI0ZGJjLi5hZTg4Y2IwNWVhYWU5NGExMzhlZTg0ZjZh
YmZiMWE0Y2FhMzgwNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9W
aWV3Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCkBAIC0y
Nyw3ICsyNyw2IEBACiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAiU1ZHUHJvcGVydHlPd25lclJlZ2lzdHJ5LmgiCi0j
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1Rlc3RzLmNwcAppbmRleCBiNmIwOTkyZDg5MWQwYzM1NmNiYWExMDljNjVmMDY3MDgzMzM0
NDM2Li5mMDRiNGZhZjNlNzgwNWI1YTMyY2RjOWM3YzIwNzYwZjk2NmY5NzUwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXN0cy5jcHAKQEAgLTEsNyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICog
Q29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodCByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0IHJl
c2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAi
U1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdTdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSA8d3RmL0xh
bmd1YWdlLmg+Ci0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3Rm
L1NvcnRlZEFycmF5TWFwLmg+CiAKICNpZiBFTkFCTEUoTUFUSE1MKQogI2luY2x1ZGUgIk1hdGhN
TE5hbWVzLmgiCkBAIC0zNiw3NSArMzYsNTcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11
c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7Ci0KLXN0YXRpYyBjb25zdCBIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3VwcG9ydGVkU1ZHRmVhdHVyZXMoKQotewotI2Rl
ZmluZSBQUkVGSVhfVzNDICJvcmcudzNjLiIKLSNkZWZpbmUgUFJFRklYX1NWRzExICJodHRwOi8v
d3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlIyIKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4+IGZlYXR1cmVzID0gW10g
ewotICAgICAgICBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGZlYXR1cmVzMTBbXSA9IHsKLSAg
ICAgICAgICAgIFBSRUZJWF9XM0MgImRvbSJfcywKLSAgICAgICAgICAgIFBSRUZJWF9XM0MgImRv
bS5zdmciX3MsCi0gICAgICAgICAgICBQUkVGSVhfVzNDICJkb20uc3ZnLnN0YXRpYyJfcywKLSAg
ICAgICAgICAgIFBSRUZJWF9XM0MgInN2ZyJfcywKLSAgICAgICAgICAgIFBSRUZJWF9XM0MgInN2
Zy5zdGF0aWMiX3MsCi0gICAgICAgIH07Ci0gICAgICAgIHN0YXRpYyBjb25zdCBBU0NJSUxpdGVy
YWwgZmVhdHVyZXMxMVtdID0gewotICAgICAgICAgICAgUFJFRklYX1NWRzExICJhbmltYXRpb24i
X3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2VncmFwaGljc2F0dHJpYnV0ZSJfcywK
LSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYmFzaWNjbGlwIl9zLAotICAgICAgICAgICAgUFJF
RklYX1NWRzExICJiYXNpY2ZpbHRlciJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYmFz
aWNwYWludGF0dHJpYnV0ZSJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYmFzaWNzdHJ1
Y3R1cmUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljdGV4dCJfcywKLSAgICAg
ICAgICAgIFBSRUZJWF9TVkcxMSAiY2xpcCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAi
Y29uZGl0aW9uYWxwcm9jZXNzaW5nIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJjb250
YWluZXJhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImNvcmVhdHRyaWJ1
dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImN1cnNvciJfcywKLSAgICAgICAgICAg
IFBSRUZJWF9TVkcxMSAiZG9jdW1lbnRldmVudHNhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgImV4dGVuc2liaWxpdHkiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEg
ImV4dGVybmFscmVzb3VyY2VzcmVxdWlyZWQiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEg
ImZpbHRlciJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiZ3JhZGllbnQiX3MsCi0gICAg
ICAgICAgICBQUkVGSVhfU1ZHMTEgImdyYXBoaWNhbGV2ZW50c2F0dHJpYnV0ZSJfcywKLSAgICAg
ICAgICAgIFBSRUZJWF9TVkcxMSAiZ3JhcGhpY3NhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgImh5cGVybGlua2luZyJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAi
aW1hZ2UiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgIm1hcmtlciJfcywKLSAgICAgICAg
ICAgIFBSRUZJWF9TVkcxMSAibWFzayJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAib3Bh
Y2l0eWF0dHJpYnV0ZSJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAicGFpbnRhdHRyaWJ1
dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInBhdHRlcm4iX3MsCi0gICAgICAgICAg
ICBQUkVGSVhfU1ZHMTEgInNjcmlwdCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAic2hh
cGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN0cnVjdHVyZSJfcywKLSAgICAgICAg
ICAgIFBSRUZJWF9TVkcxMSAic3R5bGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN2
Zy1hbmltYXRpb24iX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN2Z2RvbS1hbmltYXRp
b24iX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInRleHQiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgInZpZXciX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInZpZXdwb3J0
YXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJ4bGlua2F0dHJpYnV0ZSJf
cywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYmFzaWNmb250Il9zLAotICAgICAgICAgICAg
UFJFRklYX1NWRzExICJmb250Il9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdmciX3Ms
Ci0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN2Zy1zdGF0aWMiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgInN2Z2RvbSJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAic3ZnZG9t
LXN0YXRpYyJfcywKLSAgICAgICAgfTsKLSAgICAgICAgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4gc2V0OwotICAgICAgICBmb3IgKGF1dG8mIGZlYXR1cmUgOiBmZWF0
dXJlczEwKQotICAgICAgICAgICAgc2V0LmFkZChmZWF0dXJlKTsKLSAgICAgICAgZm9yIChhdXRv
JiBmZWF0dXJlIDogZmVhdHVyZXMxMSkKLSAgICAgICAgICAgIHNldC5hZGQoZmVhdHVyZSk7Ci0g
ICAgICAgIHJldHVybiBzZXQ7Ci0gICAgfSgpOwotI3VuZGVmIFBSRUZJWF9XM0MKLSN1bmRlZiBQ
UkVGSVhfU1ZHMTEKLSAgICByZXR1cm4gZmVhdHVyZXM7Ci19Citjb25zdGV4cHIgQ29tcGFyYWJs
ZUxldHRlcnNMaXRlcmFsIHN1cHBvcnRlZFNWR0ZlYXR1cmVBcnJheVtdID0geworICAgICJodHRw
Oi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2FuaW1hdGlvbiIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjYmFzZWdyYXBoaWNzYXR0cmlidXRlIiwKKyAgICAi
aHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNpY2NsaXAiLAorICAgICJodHRw
Oi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2Jhc2ljZmlsdGVyIiwKKyAgICAiaHR0cDov
L3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNpY2ZvbnQiLAorICAgICJodHRwOi8vd3d3
LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2Jhc2ljcGFpbnRhdHRyaWJ1dGUiLAorICAgICJodHRw
Oi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2Jhc2ljc3RydWN0dXJlIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNpY3RleHQiLAorICAgICJodHRwOi8v
d3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2NsaXAiLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI2NvbmRpdGlvbmFscHJvY2Vzc2luZyIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjY29udGFpbmVyYXR0cmlidXRlIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNjb3JlYXR0cmlidXRlIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNjdXJzb3IiLAorICAgICJodHRwOi8vd3d3
LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2RvY3VtZW50ZXZlbnRzYXR0cmlidXRlIiwKKyAgICAi
aHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNleHRlbnNpYmlsaXR5IiwKKyAgICAi
aHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNleHRlcm5hbHJlc291cmNlc3JlcXVp
cmVkIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNmaWx0ZXIiLAor
ICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2ZvbnQiLAorICAgICJodHRw
Oi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2dyYWRpZW50IiwKKyAgICAiaHR0cDovL3d3
dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNncmFwaGljYWxldmVudHNhdHRyaWJ1dGUiLAorICAg
ICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2dyYXBoaWNzYXR0cmlidXRlIiwK
KyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNoeXBlcmxpbmtpbmciLAor
ICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2ltYWdlIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNtYXJrZXIiLAorICAgICJodHRwOi8vd3d3
LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI21hc2siLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90
ci9zdmcxMS9mZWF0dXJlI29wYWNpdHlhdHRyaWJ1dGUiLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI3BhaW50YXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5v
cmcvdHIvc3ZnMTEvZmVhdHVyZSNwYXR0ZXJuIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIv
c3ZnMTEvZmVhdHVyZSNzY3JpcHQiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9m
ZWF0dXJlI3NoYXBlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNz
dHJ1Y3R1cmUiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N0eWxl
IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdmciLAorICAgICJo
dHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N2Zy1hbmltYXRpb24iLAorICAgICJo
dHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N2Zy1zdGF0aWMiLAorICAgICJodHRw
Oi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N2Z2RvbSIsCisgICAgImh0dHA6Ly93d3cu
dzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc3ZnZG9tLWFuaW1hdGlvbiIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc3ZnZG9tLXN0YXRpYyIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjdGV4dCIsCisgICAgImh0dHA6Ly93d3cudzMub3Jn
L3RyL3N2ZzExL2ZlYXR1cmUjdmlldyIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzEx
L2ZlYXR1cmUjdmlld3BvcnRhdHRyaWJ1dGUiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9z
dmcxMS9mZWF0dXJlI3hsaW5rYXR0cmlidXRlIiwKKyAgICAib3JnLnczYy5kb20iLAorICAgICJv
cmcudzNjLmRvbS5zdmciLAorICAgICJvcmcudzNjLmRvbS5zdmcuc3RhdGljIiwKKyAgICAib3Jn
LnczYy5zdmciLAorICAgICJvcmcudzNjLnN2Zy5zdGF0aWMiLAorfTsKKworY29uc3RleHByIFNv
cnRlZEFycmF5U2V0IHN1cHBvcnRlZFNWR0ZlYXR1cmVTZXQgeyBzdXBwb3J0ZWRTVkdGZWF0dXJl
QXJyYXkgfTsKIAogU1ZHVGVzdHM6OlNWR1Rlc3RzKFNWR0VsZW1lbnQqIGNvbnRleHRFbGVtZW50
KQogICAgIDogbV9jb250ZXh0RWxlbWVudCgqY29udGV4dEVsZW1lbnQpCkBAIC0xMzMsNyArMTE1
LDcgQEAgYm9vbCBTVkdUZXN0czo6aGFzRXh0ZW5zaW9uKGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9u
KQogYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvJiBmZWF0
dXJlIDogbV9yZXF1aXJlZEZlYXR1cmVzLT5pdGVtcygpKSB7Ci0gICAgICAgIGlmIChmZWF0dXJl
LmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZXMoKS5jb250YWlucyhmZWF0dXJlKSkK
KyAgICAgICAgaWYgKGZlYXR1cmUuaXNFbXB0eSgpIHx8ICFzdXBwb3J0ZWRTVkdGZWF0dXJlU2V0
LmNvbnRhaW5zKGZlYXR1cmUpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICBmb3IgKGF1dG8mIGxhbmd1YWdlIDogbV9zeXN0ZW1MYW5ndWFnZS0+aXRlbXMoKSkgewpAQCAt
MTQ5LDExICsxMzEsMTEgQEAgYm9vbCBTVkdUZXN0czo6aXNWYWxpZCgpIGNvbnN0CiAKIHZvaWQg
U1ZHVGVzdHM6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5h
bWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKQogewotICAgIGlmIChhdHRyaWJ1dGVOYW1lID09
IHJlcXVpcmVkRmVhdHVyZXNBdHRyKQorICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IFNWR05hbWVz
OjpyZXF1aXJlZEZlYXR1cmVzQXR0cikKICAgICAgICAgbV9yZXF1aXJlZEZlYXR1cmVzLT5yZXNl
dCh2YWx1ZSk7Ci0gICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gcmVxdWlyZWRFeHRlbnNpb25zQXR0
cikKKyAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBTVkdOYW1lczo6cmVxdWlyZWRFeHRlbnNpb25z
QXR0cikKICAgICAgICAgbV9yZXF1aXJlZEV4dGVuc2lvbnMtPnJlc2V0KHZhbHVlKTsKLSAgICBp
ZiAoYXR0cmlidXRlTmFtZSA9PSBzeXN0ZW1MYW5ndWFnZUF0dHIpCisgICAgaWYgKGF0dHJpYnV0
ZU5hbWUgPT0gU1ZHTmFtZXM6OnN5c3RlbUxhbmd1YWdlQXR0cikKICAgICAgICAgbV9zeXN0ZW1M
YW5ndWFnZS0+cmVzZXQodmFsdWUpOwogfQogCkBAIC0xNjksOSArMTUxLDkgQEAgdm9pZCBTVkdU
ZXN0czo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
IAogdm9pZCBTVkdUZXN0czo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhNZW1vcnlDb21wYWN0TG9v
a3VwT25seVJvYmluSG9vZEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4mIHN1cHBvcnRlZEF0dHJpYnV0
ZXMpCiB7Ci0gICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQocmVxdWlyZWRGZWF0dXJlc0F0dHIp
OwotICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpOwot
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKHN5c3RlbUxhbmd1YWdlQXR0cik7CisgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJlcXVpcmVkRmVhdHVyZXNBdHRyKTsKKyAg
ICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmVxdWlyZWRFeHRlbnNpb25zQXR0
cik7CisgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN5c3RlbUxhbmd1YWdl
QXR0cik7CiB9CiAKIGJvb2wgU1ZHVGVzdHM6Omhhc0ZlYXR1cmVGb3JMZWdhY3lCaW5kaW5ncyhj
b25zdCBTdHJpbmcmIGZlYXR1cmUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbikKQEAgLTE5MCw3ICsx
NzIsNyBAQCBib29sIFNWR1Rlc3RzOjpoYXNGZWF0dXJlRm9yTGVnYWN5QmluZGluZ3MoY29uc3Qg
U3RyaW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmCiAKICAgICAvLyBJZiB0aGUgdmVyc2lvbiBu
dW1iZXIgbWF0Y2hlcyB0aGUgc3R5bGUgb2YgdGhlIGZlYXR1cmUgbmFtZSwgdGhlbiB1c2UgdGhl
IHNldCB0byBzZWUgaWYgdGhlIGZlYXR1cmUgaXMgc3VwcG9ydGVkLgogICAgIGlmICh2ZXJzaW9u
LmlzRW1wdHkoKSB8fCAoaGFzU1ZHMTBGZWF0dXJlUHJlZml4ICYmIHZlcnNpb24gPT0gIjEuMCIp
IHx8IChoYXNTVkcxMUZlYXR1cmVQcmVmaXggJiYgdmVyc2lvbiA9PSAiMS4xIikpCi0gICAgICAg
IHJldHVybiBzdXBwb3J0ZWRTVkdGZWF0dXJlcygpLmNvbnRhaW5zKGZlYXR1cmUpOworICAgICAg
ICByZXR1cm4gc3VwcG9ydGVkU1ZHRmVhdHVyZVNldC5jb250YWlucyhmZWF0dXJlKTsKIAogICAg
IHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvTmV0d29ya0xvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3Jr
TG9hZC5jcHAKaW5kZXggYzgyN2Q3YzVkZjIxNDQ2MGY2Mjg2MzA5ZGE4Y2UzOWM1YWRkMzdiYS4u
M2U3MzExMTcxYTk0MGI0NDkzZWQ0NmExZmVkMDZiNjZmYzBiNjFkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZC5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNp
bmNsdWRlICJXZWJFcnJvcnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0jaW5jbHVkZSA8d3RmL0xpc3RI
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1NlY29uZHMuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtSZXNvdXJjZUxvYWRNYXAuaAppbmRleCBmYmY1OWUyMjUwMmNmOGI1Y2E3MjY3N2RhOWVh
ZmFjMGVjNjc2OGJmLi4wZWYyNzhjMzQwNWNkZGU2YTgzZmJmMGFiNzJmZmM0N2MxNGQzMTE3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJj
ZUxvYWRNYXAuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCiAj
aWYgRU5BQkxFKFRBS0VfVU5CT1VOREVEX05FVFdPUktJTkdfQVNTRVJUSU9OKQogI2luY2x1ZGUg
IlByb2Nlc3NBc3NlcnRpb24uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1No
YXJlZFN0cmluZ0hhc2hTdG9yZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5n
SGFzaFN0b3JlLmgKaW5kZXggOGVmZjllODNjMWFmZjc5NGNmMmEwYjMzMjNhODExMDljZDc3MDk0
ZC4uYWRjZThhM2Y2YzY3MmMzN2MyMGEzOWI2YzFlYjBhMTk4YjVhN2VjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvU2hhcmVkU3RyaW5nSGFzaFN0b3JlLmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlICJTaGFyZWRTdHJpbmdIYXNoVGFi
bGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZFN0cmluZ0hhc2guaD4KLSNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25m
aWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3Vy
YXRpb24uaAppbmRleCA5ZTgzOWY0NDU3MGU2YThmOGUxNWI4NTRlZmEyZjU1MmQ3OTIzMTM1Li41
NjkyZDYyOTE2Y2M1M2JjNmVkMjM5ZDk2MjVhZmNmNzA2OTIxZjY4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMzAsNyAr
MzAsNiBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVJlY29yZC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNp
dGVEYXRhUmVjb3JkLm1tCmluZGV4IDZhMzZmOThkYzQxNTk5ZTAyZTU2NTRlNTUwM2VmMTQ4YjFj
NTVkMDIuLmM4MjYxNmY3OTBjNmZjNjkwYTZjYmQ2OTdhMGU4ZWNkYTUyMjdmYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhUmVjb3Jk
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRh
UmVjb3JkLm1tCkBAIC0yOSw3ICsyOSw2IEBACiAjaW1wb3J0ICJfV0tXZWJzaXRlRGF0YVNpemVJ
bnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbkRhdGEuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZU9iakNFeHRyYXMuaD4KLSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+
CiAKIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVGZXRjaENhY2hlID0gQCJXS1dl
YnNpdGVEYXRhVHlwZUZldGNoQ2FjaGUiOwogTlNTdHJpbmcgKiBjb25zdCBXS1dlYnNpdGVEYXRh
VHlwZURpc2tDYWNoZSA9IEAiV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUiOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0KaW5kZXggYzFl
NmZhNzQ3MDYzNzJlNjlmNDI4N2Y2NTk3MGNlZDBiYzhiZTcwNC4uYTM1M2NlODEzYmFjODlhNzBj
NzA5MTNjNTYwNzg0MTkwM2JlYWNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCkBAIC0zNyw4ICszNyw2IEBACiAjaW1wb3J0ICJf
V0tJbnNwZWN0b3JQcml2YXRlRm9yVGVzdGluZy5oIgogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0
UmVnaXN0cnkuaCIKICNpbXBvcnQgPFdlYkNvcmUvRnJhbWVJZGVudGlmaWVyLmg+Ci0jaW1wb3J0
IDx3dGYvSGFzaE1hcC5oPgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNpbXBvcnQgPHd0Zi9S
ZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0
Y2hlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1
dERpc3BhdGNoZXIuaAppbmRleCA1ZmUzMmFiYjI5YTJkYThhNjI2ZjRmYTlhYzM0MTg2ZmI3YzZl
NmU3Li42OTgyMjIyZTZiOWZhMjVkYWJhMzQ0NzcwNmQxMGViZDlmNDgzYTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0
Y2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVk
SW5wdXREaXNwYXRjaGVyLmgKQEAgLTMxLDEwICszMSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9J
bnRQb2ludC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50U2l6ZS5oPgogI2luY2x1ZGUgPHd0Zi9D
b21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Ci0jaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2luY2x1ZGUgPHd0
Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCmlu
ZGV4IDk1MTlmNWIzZDdlZTc4NWQ3MTY0OTQ5YTIwZDQzYmQwODU0Y2VhNDAuLjJhNGJjOGZmMTJl
ZmJlZDk4MzI2YzBjNjA2YTQ0MmYxNzlhN2YyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKQEAgLTQ5
LDEwICs0OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1RleHRFbmNvZGluZy5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVk
ZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KLSNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJX
ZWJJbnNwZWN0b3JVSVByb3h5Q2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KaW5kZXggZTZkN2Qw
YTVmM2I4OGE5YzEzNjRkZjdjNzUxNjlkZjliODk2OThmMy4uMjliNDU5NWFiNDg2NjA5ZGNjMDYw
NzcxZjJlMDI1ZDMwOGVmMzZmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQpAQCAtMzMsNyArMzMsNiBA
QAogI2ltcG9ydCAiU2FuZGJveFV0aWxpdGllcy5oIgogI2ltcG9ydCA8V2ViQ29yZS9QbHVnaW5C
bG9ja2xpc3QuaD4KICNpbXBvcnQgPHB3ZC5oPgotI2ltcG9ydCA8d3RmL0hhc2hTZXQuaD4KICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaAppbmRleCA3MzcwY2Q3Y2RkMWE4MTk0
Yjg2NDBjNTJmNjI5NGQ1YTBkNDA2Y2Y3Li42MTE5OTg3YjhhOGNjYTQ4NTViMjYwYmM0MTU3Y2U2
ODQ2NDJjODBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlR3Jv
dXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlR3JvdXAuaApAQCAtMjks
OCArMjksNiBAQAogI2luY2x1ZGUgIldlYlBhZ2VHcm91cERhdGEuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJTdHlsZVNoZWV0VHlwZXMuaD4K
LSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXgg
NzhiMWYxZTdjYzExMGEwNzVmNWFlZjg4NWY3YTlmMTA2MDQ4MmEwNy4uMjUxMjRiMmZhNzc3ZWMw
ZGIxMGY2ZTFiMTNlZTRiMjBhYThmNWQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTI5LDEwICsyOSw3IEBACiAjaW5jbHVkZSAiU2FuZGJv
eEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgot
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrSGFzaFNldC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcmVmZXJlbmNlcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuaAppbmRleCBlZGJmYjlhZTZiM2Y5ZDFhZmFlM2M2MDliODM1N2VmZGMzZGM4NmZhLi45Mzc0
M2NiMDBkNDMwYmMzYTgzODU5NzBmNWI1YTBlMGNlMTgyZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByZWZlcmVuY2VzLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJBUElP
YmplY3QuaCIKICNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgiCiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRp
b25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2Vv
bG9jYXRpb25NYW5hZ2VyLmgKaW5kZXggNGI1NDMwMjlkNmVjMGI5ZDk1OTQ1MzhlYjBhMjc1YTJm
NDc1Yzc3OC4uNDQ4MzU5NjM1ODc4MjE5N2NjYmE1OTI4ZWZlNjI1MTUyNmMxODUxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJH
ZW9sb2NhdGlvbk1hbmFnZXIuaApAQCAtMjksOCArMjksNiBAQAogI2luY2x1ZGUgIldlYkdlb2xv
Y2F0aW9uUG9zaXRpb24uaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzU3VwcGxlbWVudC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrSGFzaFNldC5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaAppbmRleCAxNzQ1Njk4M2Zh
MjMyZDNjMmNhZTFmOTgxOTYxOWFiMGE4ZDFkOWI2Li5hNjA3ZjIzOGQ3NWFiNjZhZTM0ZjllM2Ux
MTFiNjc4YmI3ODlkNTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZExpc3RDb3VudHMuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0JhY2tGb3J3YXJkQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlSWRlbnRpZmllci5o
PgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVj
dCBCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427465</attachid>
            <date>2021-04-30 16:00:53 -0700</date>
            <delta_ts>2021-04-30 16:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225251-20210430160052.patch</filename>
            <type>text/plain</type>
            <size>59472</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmNDUxNmYyMzQ3OWE0NzNiZTQxMGJh
OTk3ZjYxYWIzMmQwMGE1NjcuLjBmNmEyZjg0NDZkMzUyOTIxYWFiOGQ1MzllMjllNTlhMDdkNjZm
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDQtMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1hcCBpbiBhIGZldyBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvU29ydGVkQXJyYXlNYXAuaDogQWRkZWQgc3VwcG9ydCBmb3IgdHlwZXMgdGhhdCBkb24ndCBo
YXZlIGEgcGFyc2UgbWVtYmVyIGZ1bmN0aW9uLgorCisgICAgICAgICogd3RmL2NvY29hL01haW5U
aHJlYWRDb2NvYS5tbTogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiB3dGYv
dGV4dC9BdG9tU3RyaW5nSW1wbC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21T
dHJpbmdUYWJsZS5jcHA6IERpdHRvLgorCiAyMDIxLTA0LTMwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBTb3J0ZWRBcnJheU1hcCBieSB1c2luZyBs
aW5lYXIgc2VhcmNoIGZvciBzbWFsbCBhcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjMTE4NDBlNDNiYjNl
YzQyYmQ0MjA0YmFlMjlmMGNhNmE0OTQzYjk0Li4yZDRiZTMyYzMyYWFlNmVkOTkzZjYwNmNiNWU3
MTY3NjBhMDQ2NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1h
cCBpbiBhIGZldyBtb3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oOiBSZW1vdmVkIHVu
bmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDogRGl0dG8uCisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkFjdGlvbnMuaDogRGl0dG8uCisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0YS5oOiBE
aXR0by4KKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDogRGl0dG8uCisKKyAgICAg
ICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xlZ2FjeVN1
cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZSk6IFVzZSBTb3J0ZWRBcnJheVNldC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVDbGFzc2ljU2NyaXB0KTogRml4ZWQgdHlw
by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQp
OiBEaXR0by4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdC5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBsb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDogRGl0dG8uCisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmg6IERpdHRvLgorICAgICAgICAqIHBhZ2UvaW9zL0RP
TVRpbWVySG9sZGluZ1RhbmsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVOb2RlLmg6IEFkZGVkIGZvcndhcmQgZGVjbGFyYXRpb24KKyAgICAgICAg
dGhhdCB1c2VkIHRvIGJlIGluaGVyaXRlZCBmcm9tIGFub3RoZXIgZmlsZSB3aGVyZSBpdCdzIG5v
dCBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJH
YW1lcGFkUHJvdmlkZXI6OndpbGxIYW5kbGVWZW5kb3JBbmRQcm9kdWN0KToKKyAgICAgICAgVXNl
IFNvcnRlZEFycmF5U2V0LgorCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2Ft
ZXBhZEVsZW1lbnQuaDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSEVWQ1V0aWxpdGllcy5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmg6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNh
Y2hlOjppc1N0YXRpY0NvbnRhaW5lclR5cGUpOiBSZW5hbWVkOyB0aGlzIHJlcGxhY2VzCisgICAg
ICAgIHRoZSBvbGQgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QgZnVuY3Rpb24gYW5kIGp1c3QgcmV0
dXJucyBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUu
aDogUmVwbGFjZWQgdGhlIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0CisgICAgICAgIGZ1Y250aW9u
IHdpdGggYW4gaXNTdGF0aWNDb250YWluZXJUeXBlIGZ1bmN0aW9uLiBBbHNvIG1hZGUgaXQsIGFu
ZCBvbmUKKyAgICAgICAgb3RoZXIgZnVuY3Rpb24sIHByaXZhdGUuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOiBV
cGRhdGVkCisgICAgICAgIGZvciB0aGUgY2hhbmdlIHRvIE1JTUVUeXBlQ2FjaGUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc1N0YXRp
Y0NvbnRhaW5lclR5cGUpOiBVc2UgU29ydGVkQXJyYXlTZXQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5oOgorICAgICAgICBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFn
ZS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjpV
VElGcm9tVW5rbm93bk1JTUVUeXBlKTogVXNlIFNvcnRlZEFycmF5TWFwLiBBbHNvIGZpeGVkIGEg
cmVncmVzc2lvbgorICAgICAgICBmcm9tIHIyNzE1MzMgd2hlcmUgd2UgYWNjaWRlbnRhbGx5IGRl
bGV0ZWQgdGhlIE1JTUUgdHlwZSBtb2RlbC92bmQucmVhbGl0eS4KKworICAgICAgICAqIHJlbmRl
cmluZy9Db21wbGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2dpY2Fs
V2lkdGhGb3JUZXh0UnVuKTogVXNlIGEgcmFuZ2UtYmFzZWQgZm9yIGxvb3AuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaDogUmVtb3ZlZCB1bm5lZWRl
ZCBpbmNsdWRlcy4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5o
OiBEaXR0by4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaDogRGl0dG8u
CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NW
R0ZpdFRvVmlld0JveC5oOiBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6IFVzZSBTb3J0ZWRBcnJh
eVNldC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpoYXNGZWF0dXJlRm9yTGVnYWN5Qmlu
ZGluZ3MpOiBEaXR0by4KKwogMjAyMS0wNC0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAoaU9TIDE0LjUpOiBQV0EncyAvIEhvbWUgU2Ny
ZWVuIEFwcHMgd2l0aCBTZXJ2aWNlIFdvcmtlcnMgaW50ZXJtaXR0ZW5seSBmYWlsIHRvIG9wZW4g
b2ZmbGluZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCA5OGIzZTE1YTFhNDYyMTU2YjkyZjFkMDc2M2I2NzIzYTAyMzc4
ODg4Li4zODNhZmVjMzhkMWNiYzI0NzdjMmQ4MzZlMjgwNTY4MGUxNDI3YzQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDIxLTA0LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBVc2UgU29ydGVkQXJyYXlNYXAgaW4gYSBmZXcgbW9yZSBwbGFjZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTI1MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya0xvYWQuY3BwOiBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRNYXAuaDogRGl0dG8uCisgICAg
ICAgICogU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hTdG9yZS5oOiBEaXR0by4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmg6IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbTogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW06IERpdHRvLgorICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oOiBEaXR0by4K
KyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFj
Lm1tOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmg6IERpdHRvLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaDogRGl0dG8uCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmg6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmg6IERpdHRvLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oOiBEaXR0by4KKwog
MjAyMS0wNC0zMCAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgcHJlZmVycy1yZWR1Y2VkLW1vdGlvbiBpcyBub3QgcmVhY3RpdmUgb24gaU9TCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV1RGL3d0Zi9Tb3J0ZWRBcnJheU1hcC5oIGIvU291cmNlL1dURi93dGYvU29y
dGVkQXJyYXlNYXAuaAppbmRleCBiYzllNGNlZDZlYzdjZDE4NjdjYzE5YWE5NDU2MTQwMGVlOTVk
ZjdjLi43N2JkOTI3ZmNlYjVkYjExOWFjMzMxZWU2Y2ExMDhjMDgwOWJhM2Q1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL3d0Zi9Tb3J0ZWRBcnJheU1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1Nv
cnRlZEFycmF5TWFwLmgKQEAgLTEzNiw5ICsxMzYsMTggQEAgdGVtcGxhdGU8dHlwZW5hbWUgQXJy
YXlUeXBlPiBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXA8QXJyYXlUeXBlPjo6U29ydGVkQXJyYXlN
YXAKICAgICB9KSk7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGNv
bnN0ZXhwciBib29sIEhhc1BhcnNlTWVtYmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBjb25zdGV4cHIgYm9vbCBIYXNQYXJzZU1lbWJlcjxULCBzdGQ6OnZvaWRfdDxkZWNsdHlwZShz
dGQ6OmRlY2x2YWw8VD4oKS5wYXJzZSk+PiA9IHRydWU7CisKIHRlbXBsYXRlPHR5cGVuYW1lIEFy
cmF5VHlwZT4gdGVtcGxhdGU8dHlwZW5hbWUgS2V5QXJndW1lbnQ+IGlubGluZSBhdXRvIFNvcnRl
ZEFycmF5TWFwPEFycmF5VHlwZT46OnRyeUdldChjb25zdCBLZXlBcmd1bWVudCYga2V5KSBjb25z
dCAtPiBjb25zdCBWYWx1ZVR5cGUqCiB7Ci0gICAgYXV0byBwYXJzZWRLZXkgPSBFbGVtZW50VHlw
ZTo6Zmlyc3RfdHlwZTo6cGFyc2Uoa2V5KTsKKyAgICB1c2luZyBLZXlUeXBlID0gdHlwZW5hbWUg
RWxlbWVudFR5cGU6OmZpcnN0X3R5cGU7CisgICAgYXV0byBwYXJzZWRLZXkgPSBbJmtleV0gewor
ICAgICAgICBpZiBjb25zdGV4cHIgKEhhc1BhcnNlTWVtYmVyPEtleVR5cGU+KQorICAgICAgICAg
ICAgcmV0dXJuIEtleVR5cGU6OnBhcnNlKGtleSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHJldHVybiBtYWtlT3B0aW9uYWwoa2V5KTsKKyAgICB9KCk7CiAgICAgaWYgKCFwYXJzZWRLZXkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGRlY2x0eXBlKHN0ZDo6YmVnaW4obV9hcnJh
eSkpIGl0ZXJhdG9yOwpAQCAtMTcyLDggKzE4MSwxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBcnJh
eVR5cGU+IGNvbnN0ZXhwciBTb3J0ZWRBcnJheVNldDxBcnJheVR5cGU+OjpTb3J0ZWRBcnJheVNl
dAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBcnJheVR5cGU+IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFy
Z3VtZW50PiBpbmxpbmUgYm9vbCBTb3J0ZWRBcnJheVNldDxBcnJheVR5cGU+Ojpjb250YWlucyhj
b25zdCBLZXlBcmd1bWVudCYga2V5KSBjb25zdAogewotICAgIHVzaW5nIEVsZW1lbnRUeXBlID0g
dHlwZW5hbWUgc3RkOjpyZW1vdmVfZXh0ZW50X3Q8QXJyYXlUeXBlPjsKLSAgICBhdXRvIHBhcnNl
ZEtleSA9IEVsZW1lbnRUeXBlOjpwYXJzZShrZXkpOworICAgIHVzaW5nIEtleVR5cGUgPSB0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9leHRlbnRfdDxBcnJheVR5cGU+OworICAgIGF1dG8gcGFyc2VkS2V5
ID0gWyZrZXldIHsKKyAgICAgICAgaWYgY29uc3RleHByIChIYXNQYXJzZU1lbWJlcjxLZXlUeXBl
PikKKyAgICAgICAgICAgIHJldHVybiBLZXlUeXBlOjpwYXJzZShrZXkpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICByZXR1cm4gbWFrZU9wdGlvbmFsKGtleSk7CisgICAgfSgpOworICAgIGlm
ICghcGFyc2VkS2V5KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICBpZiAoc3RkOjpzaXpl
KG1fYXJyYXkpIDwgYmluYXJ5U2VhcmNoVGhyZXNob2xkKQogICAgICAgICByZXR1cm4gc3RkOjpm
aW5kKHN0ZDo6YmVnaW4obV9hcnJheSksIHN0ZDo6ZW5kKG1fYXJyYXkpLCAqcGFyc2VkS2V5KSAh
PSBzdGQ6OmVuZChtX2FycmF5KTsKICAgICBhdXRvIGl0ZXJhdG9yID0gc3RkOjpsb3dlcl9ib3Vu
ZChzdGQ6OmJlZ2luKG1fYXJyYXkpLCBzdGQ6OmVuZChtX2FycmF5KSwgKnBhcnNlZEtleSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9jb2NvYS9NYWluVGhyZWFkQ29jb2EubW0gYi9Tb3Vy
Y2UvV1RGL3d0Zi9jb2NvYS9NYWluVGhyZWFkQ29jb2EubW0KaW5kZXggMzcyNDZkMmEwMzVlNjhi
NGJmM2E0Yzc2ZTdkYjAzZTc1OWEzYzhjNy4uZmQ2MzdmN2Y0NzIwMTYwZjgzMDlkNThmNmIwOTVj
ZjMyMzFmZWUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvY29jb2EvTWFpblRocmVhZENv
Y29hLm1tCisrKyBiL1NvdXJjZS9XVEYvd3RmL2NvY29hL01haW5UaHJlYWRDb2NvYS5tbQpAQCAt
MzUsNyArMzUsNiBAQAogI2ltcG9ydCA8c3RkaW8uaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25z
Lmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KLSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgogI2ltcG9y
dCA8d3RmL1NjaGVkdWxlUGFpci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9B
dG9tU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmNw
cAppbmRleCBhMThiM2NiZDg4MDAyZDM5ZGZjYjJlYzE3NDNhOTc1ZDRlZjRjZGI0Li5hMDI4ZTQy
YTM0NjQxOTZmZGE4NzQzZjcxMjdkOGI3M2IzZDFjMjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RG
L3d0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0
b21TdHJpbmdJbXBsLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21TdHJpbmdJbXBsLmg+CiAKLSNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9tU3RyaW5nVGFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdUYWJsZS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L0F0b21TdHJpbmdUYWJsZS5jcHAKaW5kZXggODZlZDI1ZjI4ZWMwODY2OGVm
NWU0YTU2YTI0OTc1ZDIwMWZhOGU0MS4uZGQyMmQ0MmNkZGU0MmNlNjgwMzQ4YzgzNDJjMjZlMWZh
ODY5YzFiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nVGFibGUu
Y3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ1RhYmxlLmNwcApAQCAtMjMs
OCArMjMsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21T
dHJpbmdUYWJsZS5oPgogCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLQogbmFtZXNwYWNlIFdU
RiB7CiAKIEF0b21TdHJpbmdUYWJsZTo6fkF0b21TdHJpbmdUYWJsZSgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAppbmRleCBhMjYxNzI2YjdmODg2ZjZkZDkw
MDRmZjRkODI0NjI5N2Q4ZTM1ZjI4Li4yMjMyYmYzOTYwZDJjYzE3ODhmMmUzMmYzNzI2NzY0OWJm
MGQwNGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlh
L0NETS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvQ0RNLmgK
QEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRlICJNZWRpYUtleXNSZXN0cmljdGlvbnMuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggM2M3OGZi
MTY2N2EwZjY0OTJjYjNlMzk4YWExMjBmNTBmZjE5OTczNy4uYmM3MjMwYzgwY2ZiNjQ2YWZlYzhk
ZTU5MGMzMDM1NDY3MGY0YzdlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUg
PHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkFjdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0Nv
bnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKaW5kZXggNWVmYWMxNWI4YzIwYmZhNzQ4MzUwYzA3NTIw
MDZhYTAyMmNhZjViMC4uODFhMmU1MjE0NzU1YzY5OGViZjkxODI0MTE3OTZlYmQ1NDFkODUwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkFjdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250
ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCkBAIC0yNywxOCArMjcsMjAgQEAKIAogI2lmIEVOQUJMRShD
T05URU5UX0VYVEVOU0lPTlMpCiAKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKIGNsYXNzIFBh
Z2U7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAKK3N0cnVjdCBDb250ZW50UnVsZUxpc3RSZXN1
bHRzOworCiBuYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewogCiBzdHJ1Y3QgQWN0aW9uOwor
CiB1c2luZyBTZXJpYWxpemVkQWN0aW9uQnl0ZSA9IHVpbnQ4X3Q7CiAKIGVudW0gY2xhc3MgQWN0
aW9uVHlwZSA6IHVpbnQ4X3QgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Zh
cmlhYmxlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5oCmluZGV4
IDM5NmUwNjliOWM0NjUyYzhlODdmN2NhZDgyOTkwMzllYzBjZWQxNmQuLmZjMTcwYWYxMWJmNTc3
ODg2NGU4YTJlODdkYzQ1NjcwMzE4ZjI1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NWYXJpYWJsZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVE
YXRhLmgKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlbi5oIgogI2lu
Y2x1ZGUgIkNTU1BhcnNlclRva2VuUmFuZ2UuaCIKICNpbmNsdWRlICJDU1NSZWdpc3RlcmVkQ3Vz
dG9tUHJvcGVydHkuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9G
dWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDdhZDhmZjhjZTI2MjFhYTY3NTY3ZDA0OTA0YjEwNjRl
NzU4NDdhYTUuLjcyZGEzNDg2MDU2MmIzNjY3NGM1NTJiNjVhOGIyNmQwYjZkMTU4NjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0zMSw5ICszMSw2IEBACiAjaW5j
bHVkZSAiR2VuZXJpY1Rhc2tRdWV1ZS5oIgogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNs
dWRlIDx3dGYvRGVxdWUuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3Rm
L1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcAppbmRleCBhNTZjODgzOThh
MTE1NGFiMTcwNjAxZmFjZDQ3YWQ2MTI3ZjBjODY5Li43ZDRlOTE4NTkzMjczNDE3NTg1YWJkY2Y4
NGVhY2E3MGJhMDVjZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCkBAIC01
MywxMCArNTMsOSBAQAogI2luY2x1ZGUgIlNjcmlwdGFibGVEb2N1bWVudFBhcnNlci5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiVGV4dE5vZGVUcmF2ZXJzYWwuaCIKKyNpbmNs
dWRlIDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1N5c3RlbVRyYWNpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdCdWlsZGVyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTExMCwyMSArMTA5LDIyIEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6
aGFuZGxlQXN5bmNBdHRyaWJ1dGUoKQogCiBzdGF0aWMgYm9vbCBpc0xlZ2FjeVN1cHBvcnRlZEph
dmFTY3JpcHRMYW5ndWFnZShjb25zdCBTdHJpbmcmIGxhbmd1YWdlKQogewotICAgIHN0YXRpYyBj
b25zdCBhdXRvIGxhbmd1YWdlcyA9IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywg
QVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB7Ci0gICAgICAgICJqYXZhc2NyaXB0Il9zLAotICAg
ICAgICAiamF2YXNjcmlwdDEuMCJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjEiX3MsCi0gICAg
ICAgICJqYXZhc2NyaXB0MS4yIl9zLAotICAgICAgICAiamF2YXNjcmlwdDEuMyJfcywKLSAgICAg
ICAgImphdmFzY3JpcHQxLjQiX3MsCi0gICAgICAgICJqYXZhc2NyaXB0MS41Il9zLAotICAgICAg
ICAiamF2YXNjcmlwdDEuNiJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjciX3MsCi0gICAgICAg
ICJsaXZlc2NyaXB0Il9zLAotICAgICAgICAiZWNtYXNjcmlwdCJfcywKLSAgICAgICAgImpzY3Jp
cHQiX3MsCi0gICAgfSk7Ci0gICAgcmV0dXJuIGxhbmd1YWdlcy5nZXQoKS5jb250YWlucyhsYW5n
dWFnZSk7CisgICAgc3RhdGljIGNvbnN0ZXhwciBDb21wYXJhYmxlTGV0dGVyc0xpdGVyYWwgbGFu
Z3VhZ2VBcnJheVtdID0geworICAgICAgICAiZWNtYXNjcmlwdCIsCisgICAgICAgICJqYXZhc2Ny
aXB0IiwKKyAgICAgICAgImphdmFzY3JpcHQxLjAiLAorICAgICAgICAiamF2YXNjcmlwdDEuMSIs
CisgICAgICAgICJqYXZhc2NyaXB0MS4yIiwKKyAgICAgICAgImphdmFzY3JpcHQxLjMiLAorICAg
ICAgICAiamF2YXNjcmlwdDEuNCIsCisgICAgICAgICJqYXZhc2NyaXB0MS41IiwKKyAgICAgICAg
ImphdmFzY3JpcHQxLjYiLAorICAgICAgICAiamF2YXNjcmlwdDEuNyIsCisgICAgICAgICJqc2Ny
aXB0IiwKKyAgICAgICAgImxpdmVzY3JpcHQiLAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBTb3J0ZWRBcnJheVNldCBsYW5ndWFnZVNldCB7IGxhbmd1YWdlQXJyYXkgfTsKKyAgICByZXR1
cm4gbGFuZ3VhZ2VTZXQuY29udGFpbnMobGFuZ3VhZ2UpOwogfQogCiB2b2lkIFNjcmlwdEVsZW1l
bnQ6OmRpc3BhdGNoRXJyb3JFdmVudCgpCkBAIC0zOTgsNyArMzk4LDcgQEAgdm9pZCBTY3JpcHRF
bGVtZW50OjpleGVjdXRlQ2xhc3NpY1NjcmlwdChjb25zdCBTY3JpcHRTb3VyY2VDb2RlJiBzb3Vy
Y2VDb2RlKQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIElnbm9yZURl
c3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIGlnbm9yZURlc2N0cnVjdGl2ZVdyaXRlQ291
bnRJbmNyZW1lbnRlcihtX2lzRXh0ZXJuYWxTY3JpcHQgPyAmZG9jdW1lbnQgOiBudWxscHRyKTsK
KyAgICBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlciBpZ25vcmVEZXN0cnVj
dGl2ZVdyaXRlQ291bnRJbmNyZW1lbnRlcihtX2lzRXh0ZXJuYWxTY3JpcHQgPyAmZG9jdW1lbnQg
OiBudWxscHRyKTsKICAgICBDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIgY3VycmVudFNjcmlwdElu
Y3JlbWVudGVyKGRvY3VtZW50LCAqdGhpcyk7CiAKICAgICBXVEZCZWdpblNpZ25wb3N0KHRoaXMs
ICJFeGVjdXRlIFNjcmlwdCBFbGVtZW50IiwgImV4ZWN1dGluZyBjbGFzc2ljIHNjcmlwdCBmcm9t
IFVSTDogJXtwdWJsaWN9cyBhc3luYzogJWQgZGVmZXI6ICVkIiwgbV9pc0V4dGVybmFsU2NyaXB0
ID8gc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpIDogImlubGluZSIsIGhh
c0FzeW5jQXR0cmlidXRlKCksIGhhc0RlZmVyQXR0cmlidXRlKCkpOwpAQCAtNDE3LDcgKzQxNyw3
IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZU1vZHVsZVNjcmlwdChMb2FkYWJsZU1vZHVs
ZVNjcmlwdCYgbG9hZGFibGVNb2R1bGVTY3JpCiAgICAgaWYgKCFmcmFtZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgSWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIgaWdub3Jl
RGVzY3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyKCZkb2N1bWVudCk7CisgICAgSWdub3Jl
RGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIgaWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNv
dW50SW5jcmVtZW50ZXIoJmRvY3VtZW50KTsKICAgICBDdXJyZW50U2NyaXB0SW5jcmVtZW50ZXIg
Y3VycmVudFNjcmlwdEluY3JlbWVudGVyKGRvY3VtZW50LCAqdGhpcyk7CiAKICAgICBXVEZCZWdp
blNpZ25wb3N0KHRoaXMsICJFeGVjdXRlIFNjcmlwdCBFbGVtZW50IiwgImV4ZWN1dGluZyBtb2R1
bGUgc2NyaXB0Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQXVkaXRSZXNvdXJjZXNPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcAppbmRleCBiN2ZmMGUxMDRhNTUwNjkxNmNj
ZmE5ZDIzMGM4YjJiYmIzNjNkZjNhLi41ZTk3NTViZWYwN2E1MTI2Y2EwN2U3YTgyN2I3YjAwNmQ0
ZWQ1Mjc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXVk
aXRSZXNvdXJjZXNPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JBdWRpdFJlc291cmNlc09iamVjdC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRl
ICJDYWNoZWRTVkdEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
SW5zcGVjdG9yUGFnZUFnZW50LmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0Fn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29y
a0FnZW50LmNwcAppbmRleCAyOTJkMmMyOTQwZGE2YTQxMGVjNjhmYjY2NWUzZTlkNzBkZjcxYjRh
Li42NzgzMTAzNWQ5ZDNkZDg2ODA3ODAyZTg5NDU1ZTlhMDc3NmMzNmVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdl
bnQuY3BwCkBAIC04MSw4ICs4MSw2IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSW5s
aW5lcy5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFjay5oPgogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTG9jay5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggNTNkZjhjOWIxOGI5N2ZjOTA2MzM2OGExZWUxMDQx
MTFjZTliMjk1OC4uZjI2NGYxZGQ3MTIzZDY5MmM2NTdmMWVjZTE0OTk0YzQxOTYzMzQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKQEAgLTUwLDcgKzUwLDYgQEAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdp
bi5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5k
bGVyLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRl
bnRQcm92aWRlci5oCmluZGV4IDI0YmIzNjJmNGU5OTZhZGRhZmFkMGYxOGMzZjNhOWMyM2FhNzIz
ZGEuLmY5MmE5OGY3ZTAyNDI5OTU0Yzc2NDZhNGZiYzBkM2Y0MzhlMzdjZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRQcm92aWRlci5oCkBAIC0yNiw5ICsyNiw3IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtIYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KQEAgLTQzLDIxICs0MSwxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7CiBjbGFzcyBEb2N1bWVudExvYWRlcjsK
IGNsYXNzIFBhZ2U7Ci1jbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBVc2VyQ29udGVudFBy
b3ZpZGVyOwogY2xhc3MgVXNlck1lc3NhZ2VIYW5kbGVyRGVzY3JpcHRvcjsKIGNsYXNzIFVzZXJT
Y3JpcHQ7CiBjbGFzcyBVc2VyU3R5bGVTaGVldDsKIAotI2lmIEVOQUJMRShDT05URU5UX0VYVEVO
U0lPTlMpCi1uYW1lc3BhY2UgQ29udGVudEV4dGVuc2lvbnMgewotY2xhc3MgQ29udGVudEV4dGVu
c2lvbnNCYWNrZW5kOwotZW51bSBjbGFzcyBSZXNvdXJjZVR5cGUgOiB1aW50MTZfdDsKLXN0cnVj
dCBSZXNvdXJjZUxvYWRJbmZvOwotfQotI2VuZGlmCi0KLWNsYXNzIFVzZXJDb250ZW50UHJvdmlk
ZXI7Ci0KIGNsYXNzIFVzZXJDb250ZW50UHJvdmlkZXJJbnZhbGlkYXRpb25DbGllbnQgOiBwdWJs
aWMgQ2FuTWFrZVdlYWtQdHI8VXNlckNvbnRlbnRQcm92aWRlckludmFsaWRhdGlvbkNsaWVudD4g
ewogcHVibGljOgogICAgIHZpcnR1YWwgflVzZXJDb250ZW50UHJvdmlkZXJJbnZhbGlkYXRpb25D
bGllbnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRE9NVGltZXJIb2xk
aW5nVGFuay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9ET01UaW1lckhvbGRpbmdUYW5r
LmNwcAppbmRleCAzODgzYzNiMDk2OTZiMDcyYjUyZjU2NzI2NTU0Y2M1YjRmMTJkNzljLi5kMWZk
YzljMTUxYTQzMzA5ODdjMzRiMDI3ODRjZWQ3N2RhYmU4YmI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2lvcy9ET01UaW1lckhvbGRpbmdUYW5rLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2lvcy9ET01UaW1lckhvbGRpbmdUYW5rLmNwcApAQCAtMjgsOCArMjgsNiBAQAog
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0K
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIFBMQVRGT1JNKElPU19TSU1VTEFUT1IpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAppbmRleCAyODExODZlOTU0NGU1ZWJlOThhNmQ2NDk5YzRhMWE0MGQ0MzNjZGM5Li41OTA5ODRm
MzU2N2MzYzhkMTI5MDA3ZGM1MTdiZjY1YmVhMDk2NDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMzLDE1ICsz
MywxMCBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yVHlwZXMuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KIAotI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0j
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50
ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdU
RiB7CiBjbGFzcyBUZXh0U3RyZWFtOwogfQpAQCAtNjAsMTAgKzU1LDYgQEAgY2xhc3MgUmVuZGVy
TGF5ZXI7CiBjbGFzcyBTY3JvbGxhYmxlQXJlYTsKIGNsYXNzIFZpZXdwb3J0Q29uc3RyYWludHM7
CiAKLSNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotY2xhc3MgU2Nyb2xsaW5nVHJlZTsKLSNl
bmRpZgotCiB1c2luZyBGcmFtZXNQZXJTZWNvbmQgPSB1bnNpZ25lZDsKIHVzaW5nIFBsYXRmb3Jt
RGlzcGxheUlEID0gdWludDMyX3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IGM2YjAzMmZlYjhjYzk3MzlhZTc1YjU1NDk2
OGI4OTVkOTFhNjRkMzguLjhkZDNlZmM4OTAxYzdkMjA1OGRlMTgwMDM3YjM1Njg3MGMyYzdhZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5v
ZGUuaApAQCAtMzcsNiArMzcsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTY3Jv
bGxpbmdTdGF0ZUZpeGVkTm9kZTsKK2NsYXNzIFNjcm9sbGluZ1RyZWU7CiBjbGFzcyBTY3JvbGxp
bmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOwogY2xhc3MgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQvY29jb2Ev
R2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCmluZGV4IGEy
MjEzM2NhNTkzZWQ2MzI0NzRhNDcyZGM0YmYyMWY3YmYxYjA5MWYuLmRiMDNkNDcwNGQ3MzRlZmMy
OTg3ZTIwZTQyODljNGYyNzlhNWFkZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dhbWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJvbGxlckdhbWVw
YWRQcm92aWRlci5tbQpAQCAtMzUsNiArMzUsNyBAQAogI2ltcG9ydCA8R2FtZUNvbnRyb2xsZXIv
R2FtZUNvbnRyb2xsZXIuaD4KICNpbXBvcnQgPHBhbC9zcGkvbWFjL0lPS2l0U1BJTWFjLmg+CiAj
aW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbXBvcnQgPHd0Zi9Tb3J0ZWRBcnJheU1h
cC5oPgogCiAjaW1wb3J0ICJHYW1lQ29udHJvbGxlclNvZnRMaW5rLmgiCiAKQEAgLTQ1LDI3ICs0
NiwyNCBAQCBib29sIEdhbWVDb250cm9sbGVyR2FtZXBhZFByb3ZpZGVyOjp3aWxsSGFuZGxlVmVu
ZG9yQW5kUHJvZHVjdCh1aW50MTZfdCB2ZW5kb3JJRAogewogICAgIC8vIENoZWNrIHRoZSB2ZW5k
b3IvcHJvZHVjdCBJRHMgYWdhaW5zIGEgaGFyZCBjb2RlZCBsaXN0IG9mIGNvbnRyb2xsZXJzIHdl
IGV4cGVjdCB0byB3b3JrIHdlbGwgd2l0aAogICAgIC8vIEdhbWVDb250cm9sbGVyLmZyYW1ld29y
ayBvbiAxMC4xNS4KLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDx1aW50MzJfdD4+
IGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzOwotCi0gICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIG9uY2VGbGFnOwotICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAg
ICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoTmltYnVzMSk7Ci0gICAg
ICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoTmltYnVzMik7Ci0gICAg
ICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoU3RyYXR1c1hMMSk7Ci0g
ICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoU3RyYXR1c1hMMik7
Ci0gICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoU3RyYXR1c1hM
Myk7Ci0gICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoU3RyYXR1
c1hMNCk7Ci0gICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoSG9y
aXBhZFVsdGltYXRlKTsKLSAgICAgICAgZ2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMt
PmFkZChHYW1lc2lyTTIpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFk
cy0+YWRkKFhib3hPbmUxKTsKLSAgICAgICAgZ2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBh
ZHMtPmFkZChYYm94T25lMik7Ci0gICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVw
YWRzLT5hZGQoWGJveE9uZTMpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1l
cGFkcy0+YWRkKER1YWxzaG9jazRfMSk7Ci0gICAgICAgIGdhbWVDb250cm9sbGVyQ29tcGF0aWJs
ZUdhbWVwYWRzLT5hZGQoRHVhbHNob2NrNF8yKTsKLSAgICB9KTsKLQorICAgIHN0YXRpYyBjb25z
dGV4cHIgdWludDMyX3QgZ2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHNBcnJheVtdID0g
eworICAgICAgICBTdHJhdHVzWEwxLAorICAgICAgICBTdHJhdHVzWEwzLAorICAgICAgICBOaW1i
dXMxLAorICAgICAgICBYYm94T25lMSwKKyAgICAgICAgWGJveE9uZTIsCisgICAgICAgIFhib3hP
bmUzLAorICAgICAgICBEdWFsc2hvY2s0XzEsCisgICAgICAgIER1YWxzaG9jazRfMiwKKyAgICAg
ICAgR2FtZXNpck0yLAorICAgICAgICBIb3JpcGFkVWx0aW1hdGUsCisgICAgICAgIFN0cmF0dXNY
TDIsCisgICAgICAgIFN0cmF0dXNYTDQsCisgICAgICAgIE5pbWJ1czIsCisgICAgfTsKKyAgICBz
dGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5U2V0IGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdh
bWVwYWRzU2V0IHsgZ2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHNBcnJheSB9OwogICAg
IHVpbnQzMl90IGZ1bGxQcm9kdWN0SUQgPSAoKCh1aW50MzJfdCl2ZW5kb3JJRCkgPDwgMTYpIHwg
cHJvZHVjdElEOwotICAgIHJldHVybiBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkcy0+
Y29udGFpbnMoZnVsbFByb2R1Y3RJRCk7CisgICAgcmV0dXJuIGdhbWVDb250cm9sbGVyQ29tcGF0
aWJsZUdhbWVwYWRzU2V0LmNvbnRhaW5zKGZ1bGxQcm9kdWN0SUQpOwogfQogI2VuZGlmIC8vICFI
QVZFKEdDQ09OVFJPTExFUl9ISURfREVWSUNFX0NIRUNLKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBhZEVsZW1lbnQuaAppbmRleCBk
NzY3M2E1YzRmOTE3MmYyMTNiNTNkNGM2YjI4NzFkMWQ3MzA3MTk5Li5kMGU5MjhlNDZhM2Q3Yzkx
YTYxZDI5ZmY5YzM2N2EzNDA3ZjQ2MWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9nYW1lcGFkL21hYy9ISURHYW1lcGFkRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dhbWVwYWQvbWFjL0hJREdhbWVwYWRFbGVtZW50LmgKQEAgLTI5LDkgKzI5LDYg
QEAKIAogI2luY2x1ZGUgIkhJREVsZW1lbnQuaCIKICNpbmNsdWRlICJTaGFyZWRHYW1lcGFkVmFs
dWUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1E
YXRhLmNwcAppbmRleCA1ZGQyZjk5OWRkYzg0NzdlMTRjZGE2MjRmMDljZTY3MjYxOWEzMmE3Li43
Yjg3YWM4Y2VjNTY4MTljNDFmNTVkMzk4ZTBjN2JjOTllMjIwNzFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAt
MjEsMjAgKzIxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+Ci0KLSNpZiBPUyhEQVJXSU4pICYmIFVTRShDRykKLSNpbmNsdWRl
ICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlIDxDb3JlR3JhcGhpY3MvQ0dGb250Lmg+Ci0jZW5k
aWYKLQotI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENPUkVfVEVYVCkKLSNpbmNsdWRlIDxwYWwv
c3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShXVEY6Okhhc2hUYWJsZURlbGV0
ZWRWYWx1ZVR5cGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9IRVZDVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0hF
VkNVdGlsaXRpZXMuY3BwCmluZGV4IDMzODJiMzFlZmQwMjdjOTRhYmM0MjcxZmUyNDQxNGJmMjMz
ZjRiOGIuLjg1NzEzZjRiYTUyMWRlNWQ1YjY5MWY2OTkzZDNjYmY5ZWMzYzU4MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0hFVkNVdGlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0hFVkNVdGlsaXRpZXMuY3BwCkBA
IC0yOCw3ICsyOCw2IEBACiAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNs
dWRlIDx3dGYvUm9iaW5Ib29kSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Sb2Jpbkhvb2RIYXNo
U2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ1RvSW50ZWdlckNvbnZlcnNpb24uaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhhc2guaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmgKaW5kZXggODdjYjY5MmEyOGViMzk3NDg4Mjg3
NjMyOWE5Y2ZlODA4NzhhNmRjOC4uNDMxYTczOThjYWEwNDA3YzFkOWU5MWI5ZTQ1OTQwOTczZjhh
OTVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dEhhc2guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0SGFz
aC5oCkBAIC0yMywxMyArMjMsMTEgQEAKICAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KICAqLwogIAotI2lmbmRlZiBJbnRSZWN0SGFzaF9oCi0jZGVmaW5lIEludFJlY3RIYXNoX2gK
KyNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiSW50UG9pbnRIYXNoLmgiCiAjaW5jbHVkZSAiSW50
UmVjdC5oIgogI2luY2x1ZGUgIkludFNpemVIYXNoLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTUzLDUgKzUxLDMgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgSGFzaFRyYWl0czxXZWJDb3JlOjpJbnRSZWN0PiA6IEdlbmVyaWNIYXNoVHJhaXRzPFdlYkNv
cmU6OkludFIKIH07CiAKIH0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuY3BwCmluZGV4IGQ0YzQ3OGI0ZmMzZjBkOTk1Zjdi
MjY4YWEyMTlkNGFiYjAyYWRkY2MuLjMyMGVhODdlNTgzNDJiN2JlYzg5NjMwYWQ2YWYwZTM2YzY3
MTFiNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVU
eXBlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVU
eXBlQ2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC00OCwxMCArNDgsNyBAQCBib29sIE1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29udGFp
bmVyVHlwZShjb25zdCBTdHJpbmcmIGNvbnRhaW5lclR5cGUpCiAgICAgaWYgKGlzVW5zdXBwb3J0
ZWRDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAoc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBl
KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gc3VwcG9ydGVkVHlwZXMoKS5j
b250YWlucyhjb250YWluZXJUeXBlKTsKKyAgICByZXR1cm4gaXNTdGF0aWNDb250YWluZXJUeXBl
KGNvbnRhaW5lclR5cGUpIHx8IHN1cHBvcnRlZFR5cGVzKCkuY29udGFpbnMoY29udGFpbmVyVHlw
ZSk7CiB9CiAKIE1lZGlhUGxheWVyRW51bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpj
YW5EZWNvZGVUeXBlKGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCkBAIC0xMDYsMTAgKzEwMyw5IEBA
IHZvaWQgTUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIG5ld1R5cGVzKQogICAgICAgICBtX3N1cHBvcnRlZFR5cGVzLT5hZGQodHlwZSk7CiB9CiAK
LWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlw
ZUNhY2hlOjpzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpCitib29sIE1JTUVUeXBlQ2FjaGU6Omlz
U3RhdGljQ29udGFpbmVyVHlwZShTdHJpbmdWaWV3KQogewotICAgIHN0YXRpYyBjb25zdCBhdXRv
IGNhY2hlID0gbWFrZU5ldmVyRGVzdHJveWVkKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+IHsgfSk7Ci0gICAgcmV0dXJuIGNhY2hlOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBNSU1FVHlwZUNhY2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25z
dCBTdHJpbmcmKQpAQCAtMTQ0LDExICsxNDAsMTAgQEAgYm9vbCBNSU1FVHlwZUNhY2hlOjpzaG91
bGRPdmVycmlkZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKICAgICAvLyBp
dCBpcyBub3QgUkZDIDMwMDMgY29tcGxpYW50LgogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKHR5cGUuY29udGFpbmVyVHlwZSgpLCAiYXVkaW8vbXBlZyIpKSB7CiAgICAgICAgIGF1dG8g
Y29kZWNzID0gdHlwZS5jb2RlY3MoKTsKLSAgICAgICAgcmV0dXJuIChjb2RlY3Muc2l6ZSgpID09
IDEgJiYgY29kZWNzWzBdID09ICJtcDMiKTsKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5zaXplKCkg
PT0gMSAmJiBjb2RlY3NbMF0gPT0gIm1wMyI7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCiB9Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01J
TUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBl
Q2FjaGUuaAppbmRleCA2YjE2NmI0MjA5ZjM1M2Y3YzI5NTFhOTkzNWYzNDlmMmFlMzJiYWU3Li5j
NWE3NzdmZDdkNjA3YmVjMjkyYjM4YTZiZGNmNDYyNGI0MGZiNTEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5oCkBAIC00Myw4ICs0Myw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5NSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCiAg
ICAgdmlydHVhbCBib29sIGlzQXZhaWxhYmxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVy
VHlwZUxpc3QoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUo
Y29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5
cGUgY2FuRGVjb2RlVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIEhhc2hTZXQ8U3Ry
aW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcygpOwogCkBAIC01
NSw2ICs1Myw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+Jik7CiAKIHByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzU3RhdGlj
Q29udGFpbmVyVHlwZShTdHJpbmdWaWV3KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRl
ZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxp
emVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwogICAg
IHZpcnR1YWwgYm9vbCBjYW5EZWNvZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKaW5kZXgg
OTMxNzlmMjhkNDBjNzVjZDg0MjdjYjE0NmE4MjAzNDJiMmI4YzVhNS4uMDA1Mjc1YTVhZjUxMzNj
MDY3YjNmZTRiOWM1MjJmZTA5ZmU4YzZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9B
VkFzc2V0TUlNRVR5cGVDYWNoZS5oCkBAIC00MSw4ICs0MSw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldENhY2hlTUlNRVR5cGVzQ2FsbGJhY2soQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayYmIGNhbGxi
YWNrKSB7IG1fY2FjaGVUeXBlQ2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCiAgICAg
Ym9vbCBpc0F2YWlsYWJsZSgpIGNvbnN0IGZpbmFsOwotICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpIGZp
bmFsOwotICAgIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikg
ZmluYWw7CiAKICAgICB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
Jik7CiAKQEAgLTUwLDYgKzQ4LDggQEAgcHJpdmF0ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95
ZWQ8QVZBc3NldE1JTUVUeXBlQ2FjaGU+OwogICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlKCkgPSBk
ZWZhdWx0OwogCisgICAgYm9vbCBpc1N0YXRpY0NvbnRhaW5lclR5cGUoU3RyaW5nVmlldykgZmlu
YWw7CisgICAgYm9vbCBpc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBm
aW5hbDsKICAgICBib29sIGNhbkRlY29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYp
IGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNh
c2VJbnNlbnNpdGl2ZUhhc2g+JikgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
QVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KaW5kZXggMjIyMzdlZTg5Zjc3ZjM0YjJjZTExMzE5OTE0
ZjE4ODY2YTcwZWQ5Zi4uN2ViZTUxMjVhZjY1MDIyZWEyOGJmYzI1NWM2NjQzOWY0MTcxNTIzMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC0zMCw2ICszMCw4IEBACiAKICNpbXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0ICJTb3Vy
Y2VCdWZmZXJQYXJzZXJXZWJNLmgiCisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KKwog
I2ltcG9ydCA8cGFsL2NmL0NvcmVNZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2Ev
QVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIApAQCAtOTIsNDIgKzk0LDQzIEBAIGJvb2wgQVZBc3Nl
dE1JTUVUeXBlQ2FjaGU6OmlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYg
dHlwZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJ
SUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKQorYm9vbCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNTdGF0aWNDb250YWlu
ZXJUeXBlKFN0cmluZ1ZpZXcgdHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBjYWNoZSA9
IG1ha2VOZXZlckRlc3Ryb3llZChIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVI
YXNoPiB7Ci0gICAgICAgICJhcHBsaWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKLSAgICAg
ICAgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCJfcywKLSAgICAgICAgImF1ZGlvLzNncHAiX3MsCi0g
ICAgICAgICJhdWRpby9hYWMiX3MsCi0gICAgICAgICJhdWRpby9hYWNwIl9zLAotICAgICAgICAi
YXVkaW8vYWlmZiJfcywKLSAgICAgICAgImF1ZGlvL2Jhc2ljIl9zLAotICAgICAgICAiYXVkaW8v
bXAzIl9zLAotICAgICAgICAiYXVkaW8vbXA0Il9zLAotICAgICAgICAiYXVkaW8vbXBlZyJfcywK
LSAgICAgICAgImF1ZGlvL21wZWczIl9zLAotICAgICAgICAiYXVkaW8vbXBlZ3VybCJfcywKLSAg
ICAgICAgImF1ZGlvL21wZyJfcywKLSAgICAgICAgImF1ZGlvL3ZuZC53YXZlIl9zLAotICAgICAg
ICAiYXVkaW8vd2F2Il9zLAotICAgICAgICAiYXVkaW8vd2F2ZSJfcywKLSAgICAgICAgImF1ZGlv
L3gtYWFjIl9zLAotICAgICAgICAiYXVkaW8veC1haWZmIl9zLAotICAgICAgICAiYXVkaW8veC1t
NGEiX3MsCi0gICAgICAgICJhdWRpby94LW1wZWd1cmwiX3MsCi0gICAgICAgICJhdWRpby94LXdh
diJfcywKLSAgICAgICAgInZpZGVvLzNncHAiX3MsCi0gICAgICAgICJ2aWRlby8zZ3BwMiJfcywK
LSAgICAgICAgInZpZGVvL21wNCJfcywKLSAgICAgICAgInZpZGVvL21wZWciX3MsCi0gICAgICAg
ICJ2aWRlby9tcGVnMiJfcywKLSAgICAgICAgInZpZGVvL21wZyJfcywKLSAgICAgICAgInZpZGVv
L3F1aWNrdGltZSJfcywKLSAgICAgICAgInZpZGVvL3gtbTR2Il9zLAotICAgICAgICAidmlkZW8v
eC1tcGVnIl9zLAotICAgICAgICAidmlkZW8veC1tcGciX3MsCi0gICAgfSk7Ci0gICAgcmV0dXJu
IGNhY2hlOworICAgIHN0YXRpYyBjb25zdGV4cHIgQ29tcGFyYWJsZUxldHRlcnNMaXRlcmFsIHN0
YXRpY0NvbnRhaW5lclR5cGVzQXJyYXlbXSA9IHsKKyAgICAgICAgImFwcGxpY2F0aW9uL3ZuZC5h
cHBsZS5tcGVndXJsIiwKKyAgICAgICAgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCIsCisgICAgICAg
ICJhdWRpby8zZ3BwIiwKKyAgICAgICAgImF1ZGlvL2FhYyIsCisgICAgICAgICJhdWRpby9hYWNw
IiwKKyAgICAgICAgImF1ZGlvL2FpZmYiLAorICAgICAgICAiYXVkaW8vYmFzaWMiLAorICAgICAg
ICAiYXVkaW8vbXAzIiwKKyAgICAgICAgImF1ZGlvL21wNCIsCisgICAgICAgICJhdWRpby9tcGVn
IiwKKyAgICAgICAgImF1ZGlvL21wZWczIiwKKyAgICAgICAgImF1ZGlvL21wZWd1cmwiLAorICAg
ICAgICAiYXVkaW8vbXBnIiwKKyAgICAgICAgImF1ZGlvL3ZuZC53YXZlIiwKKyAgICAgICAgImF1
ZGlvL3dhdiIsCisgICAgICAgICJhdWRpby93YXZlIiwKKyAgICAgICAgImF1ZGlvL3gtYWFjIiwK
KyAgICAgICAgImF1ZGlvL3gtYWlmZiIsCisgICAgICAgICJhdWRpby94LW00YSIsCisgICAgICAg
ICJhdWRpby94LW1wZWd1cmwiLAorICAgICAgICAiYXVkaW8veC13YXYiLAorICAgICAgICAidmlk
ZW8vM2dwcCIsCisgICAgICAgICJ2aWRlby8zZ3BwMiIsCisgICAgICAgICJ2aWRlby9tcDQiLAor
ICAgICAgICAidmlkZW8vbXBlZyIsCisgICAgICAgICJ2aWRlby9tcGVnMiIsCisgICAgICAgICJ2
aWRlby9tcGciLAorICAgICAgICAidmlkZW8vcXVpY2t0aW1lIiwKKyAgICAgICAgInZpZGVvL3gt
bTR2IiwKKyAgICAgICAgInZpZGVvL3gtbXBlZyIsCisgICAgICAgICJ2aWRlby94LW1wZyIsCisg
ICAgfTsKKyAgICBzdGF0aWMgY29uc3RleHByIFNvcnRlZEFycmF5U2V0IHN0YXRpY0NvbnRhaW5l
clR5cGVzU2V0IHsgc3RhdGljQ29udGFpbmVyVHlwZXNBcnJheSB9OworICAgIHJldHVybiBzdGF0
aWNDb250YWluZXJUeXBlc1NldC5jb250YWlucyh0eXBlKTsKIH0KIAogdm9pZCBBVkFzc2V0TUlN
RVR5cGVDYWNoZTo6YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVz
KQpAQCAtMTQzLDcgKzE0Niw3IEBAIHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxp
emVDYWNoZShIYXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVICiAgICAgaWYgKCFp
c0F2YWlsYWJsZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKE5TU3RyaW5nKiB0eXBl
IGluIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGF1ZGlvdmlzdWFsTUlNRVR5cGVzXSkKKyAg
ICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGF1ZGlv
dmlzdWFsTUlNRVR5cGVzXSkKICAgICAgICAgY2FjaGUuYWRkKHR5cGUpOwogCiAjaWYgRU5BQkxF
KFdFQk1fRk9STUFUX1JFQURFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IDYxNDY1YTE1
NjdjYzA2ODU1MjcwYTM3YmI3MzYwOTNkOTJmMzRhM2MuLmY5YWIwMjYyZTM2ZDljOTFhNTAyYzZi
NWZiNjk0OGZmMDVlOTNkNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMzAsOSArMzAs
NyBAQAogI2luY2x1ZGUgIkNETUluc3RhbmNlLmgiCiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2VTZXNz
aW9uLmgiCiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIE9CSkNfQ0xBU1MgQVZDb250ZW50S2V5UmVwb3J0R3JvdXA7CiBPQkpDX0NMQVNT
IEFWQ29udGVudEtleVJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb3JlaW1hZ2UvRmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5k
ZXJlckNvcmVJbWFnZS5oCmluZGV4IDhiYzUwZDVlNzlkZDY2Zjc1OGNlMTQzYzVjOGY5YTdkNTlk
YTA2OGYuLjZjOGZjNWQ0NjM0MjU5MmZkZWZmMzIyOWQ0OGRhMmE5YzYwMWE5ZWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZl
Y3RSZW5kZXJlckNvcmVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5oCkBAIC0yOCw3ICsy
OCw2IEBACiAjaWYgVVNFKENPUkVfSU1BR0UpCiAKICNpbXBvcnQgIkZpbHRlckVmZmVjdFJlbmRl
cmVyLmgiCi0jaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgog
CiBPQkpDX0NMQVNTIENJSW1hZ2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzLmNwcAppbmRleCAzZTYxY2FkMzdkMThmMWQ1YWRkZDEwMGU0
OTE4YmNhOGUyZDUwYzk1Li43NzZmNThmOTkxNDM4MDZmMjk5ZGM3ZjUyZjQxNjIzNzNlNDllNGIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cy5jcHAKQEAgLTI4LDEwICsyOCw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5n
Lmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ0hhc2guaD4KLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6
c3VwcG9ydHNDb25zdHJhaW50KE1lZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1
ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oCmlu
ZGV4IDI2MTYwODA0ZjdjNWE3ZmZjNmQ2MTUzNGExM2U4NTNiZTVhNTg4NjYuLjY5Zjg0YmY3ZTVl
ZWM3Zjc5ZDc4ZGMwMDNhMmRkY2NiYTdhNmM0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0FWQXVk
aW9TZXNzaW9uQ2FwdHVyZURldmljZU1hbmFnZXIuaApAQCAtMjksOCArMjksNiBAQAogCiAjaW5j
bHVkZSAiQ2FwdHVyZURldmljZU1hbmFnZXIuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVl
LmgiCi0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
I2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyLmgKaW5kZXggZjBiMjFhNGFiNTFhYTVlNTFhODRjNzA1ODc2YzBhY2Q0OTBjYzI3My4u
NmFhYzE1NDU2YzkwYTZhYmQ5MWE0MzJlODdkOGNjZmMyOTlhMjRhNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNs
dWRlICJDYXB0dXJlRGV2aWNlTWFuYWdlci5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUu
aCIKICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oCmluZGV4IDViODIyZjI5MTRlYzNkMDhjZjliOGZjYzM3MTk5YTc4ZGY4N2VkZjEuLjRiNTU1
ZDRjN2NlMzNhMDUzZDI0MzdjMzZkZWM5OTFmMTZkMjg1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuaApAQCAtMzMsMTAgKzMzLDYgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlh
U291cmNlRmFjdG9yeS5oIgogI2luY2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb1Rvb2xib3guaD4K
ICNpbmNsdWRlIDxDb3JlQXVkaW8vQ29yZUF1ZGlvVHlwZXMuaD4KLSNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CiAKIHR5cGVkZWYgc3RydWN0IE9wYXF1ZUNNQ2xvY2sqIENNQ2xvY2tSZWY7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZO
ZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVh
bUNGTmV0LmNwcAppbmRleCBkN2RkNjNmZWFiZmIwM2MwMTkyZjI0OWY4NjhhMzQxMDAzY2E0NWY2
Li5jY2Q2YWM1NjIyMzFmZjhjMjk4ZmQ2YzQ1MzQxNjA5OWUxZDE4ZDM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1D
Rk5ldC5jcHAKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNs
dWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+Ci0jaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0K
aW5kZXggNzBiNDM5M2M2MzYzNzE5NmY5OGMwNjMyZmFiNjExNWQ3OGE4MWJjYy4uNmQ1ZDVjNTdl
ZTBiY2E1YzYxMGQyZGIwZTgyYzRlNmY0OTFhZmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9tYWMvVVRJVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1VUSVV0aWxpdGllcy5tbQpAQCAtMjgsOCArMjgsOCBA
QAogCiAjaW1wb3J0IDx3dGYvTG9jay5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNp
bXBvcnQgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogI2ltcG9ydCA8d3RmL1RpbnlMUlVDYWNoZS5o
PgotI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtODUsMjQgKzg1LDE2IEBA
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHJldHVybiBlbXB0eVN0cmlu
ZygpOwogfQogCi1zdGF0aWMgQ0ZTdHJpbmdSZWYgVVRJRnJvbVVua25vd25NSU1FVHlwZShjb25z
dCBTdHJpbmcmIG1pbWVUeXBlKQorc3RhdGljIENGU3RyaW5nUmVmIFVUSUZyb21Vbmtub3duTUlN
RVR5cGUoU3RyaW5nVmlldyBtaW1lVHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAg
PSBtYWtlTmV2ZXJEZXN0cm95ZWQoW10gewotICAgICAgICBIYXNoTWFwPFN0cmluZywgQ0ZTdHJp
bmdSZWYsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4gbWFwOwotICAgICAgICBhdXRvIHBpeGFy
TUlNRVR5cGUgPSBDRlNUUigiY29tLnBpeGFyLnVuaXZlcnNhbC1zY2VuZS1kZXNjcmlwdGlvbi1t
b2JpbGUiKTsKLSAgICAgICAgbWFwLmFkZCgibW9kZWwvdm5kLnVzZHoremlwIl9zLCBwaXhhck1J
TUVUeXBlKTsKLSAgICAgICAgbWFwLmFkZCgibW9kZWwvdXNkIl9zLCBwaXhhck1JTUVUeXBlKTsK
LSAgICAgICAgbWFwLmFkZCgibW9kZWwvdm5kLnBpeGFyLnVzZCJfcywgcGl4YXJNSU1FVHlwZSk7
Ci0gICAgICAgIG1hcC5hZGQoIm1vZGVsL3ZuZC51c2R6K3ppcCJfcywgQ0ZTVFIoImNvbS5hcHBs
ZS5yZWFsaXR5IikpOwotICAgICAgICByZXR1cm4gbWFwOwotICAgIH0oKSk7Ci0KLSAgICBzdGF0
aWMgY29uc3QgQ0ZTdHJpbmdSZWYgZW1wdHlDRlN0cmluZyA9IENGU1RSKCIiKTsKLSAgICBhdXRv
IG1hcEVudHJ5ID0gbWFwLmdldCgpLmZpbmQobWltZVR5cGUpOwotICAgIGlmIChtYXBFbnRyeSA9
PSBtYXAuZ2V0KCkuZW5kKCkpCi0gICAgICAgIHJldHVybiBlbXB0eUNGU3RyaW5nOwotCi0gICAg
cmV0dXJuIG1hcEVudHJ5LT52YWx1ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxD
b21wYXJhYmxlTGV0dGVyc0xpdGVyYWwsIE5TU3RyaW5nICo+IHR5cGVzQXJyYXlbXSA9IHsKKyAg
ICAgICAgeyAibW9kZWwvdXNkIiwgQCJjb20ucGl4YXIudW5pdmVyc2FsLXNjZW5lLWRlc2NyaXB0
aW9uLW1vYmlsZSIgfSwKKyAgICAgICAgeyAibW9kZWwvdm5kLnBpeGFyLnVzZCIsIEAiY29tLnBp
eGFyLnVuaXZlcnNhbC1zY2VuZS1kZXNjcmlwdGlvbi1tb2JpbGUiIH0sCisgICAgICAgIHsgIm1v
ZGVsL3ZuZC5yZWFsaXR5IiwgQCJjb20uYXBwbGUucmVhbGl0eSIgfSwKKyAgICAgICAgeyAibW9k
ZWwvdm5kLnVzZHoremlwIiwgQCJjb20ucGl4YXIudW5pdmVyc2FsLXNjZW5lLWRlc2NyaXB0aW9u
LW1vYmlsZSIgfSwKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXAg
dHlwZXNNYXAgeyB0eXBlc0FycmF5IH07CisgICAgcmV0dXJuIChfX2JyaWRnZSBDRlN0cmluZ1Jl
Zil0eXBlc01hcC5nZXQobWltZVR5cGUsIEAiIik7CiB9CiAKIHN0cnVjdCBVVElGcm9tTUlNRVR5
cGVDYWNoZVBvbGljeSA6IFRpbnlMUlVDYWNoZVBvbGljeTxTdHJpbmcsIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4
TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlv
dXQuY3BwCmluZGV4IDhmMDUxN2MzZTg3ODdmOTYzMjcwZmI4Yjk3NzczMzkyZDBhOWRhYjguLmQw
N2MyOGQzMTA3MTE3MjkwNzc4YjgyZjVkMmE0NDFiMGE0ZjU1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0NvbXBsZXhMaW5lTGF5b3V0LmNwcApAQCAtNTIwLDExICs1MjAsOCBA
QCBzdGF0aWMgaW5saW5lIHZvaWQgc2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihSb290SW5saW5l
Qm94KiBsaW5lQm94LCBCaWRpUnVuKiBydQogICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkdGgg
Kz0gd29yZE1lYXN1cmVtZW50LndpZHRoOwogICAgICAgICAgICAgYXRGaXJzdFdvcmRNZWFzdXJl
bWVudCA9IGZhbHNlOwogCi0gICAgICAgICAgICBpZiAoIXdvcmRNZWFzdXJlbWVudC5mYWxsYmFj
a0ZvbnRzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgRm9udCo+
Ojpjb25zdF9pdGVyYXRvciBlbmQgPSB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cy5lbmQo
KTsKLSAgICAgICAgICAgICAgICBmb3IgKEhhc2hTZXQ8Y29uc3QgRm9udCo+Ojpjb25zdF9pdGVy
YXRvciBpdCA9IHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLmJlZ2luKCk7IGl0ICE9IGVu
ZDsgKytpdCkKLSAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tGb250cy5hZGQoKml0KTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGZvciAoYXV0byYgZm9udCA6IHdvcmRNZWFzdXJlbWVu
dC5mYWxsYmFja0ZvbnRzKQorICAgICAgICAgICAgICAgIGZhbGxiYWNrRm9udHMuYWRkKGZvbnQp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChtZWFzdXJlZFdpZHRoICYmIGxhc3RFbmRPZmZzZXQg
IT0gcnVuLT5tX3N0b3ApIHsKICAgICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgZW5vdWdo
IGNhY2hlZCBkYXRhLCB3ZSdsbCBtZWFzdXJlIHRoZSBydW4gYWdhaW4uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCmluZGV4
IDM5NjE1MzdiYmY2OWQ0YTEyN2RiMTgzMTY1ZTEwODhjNWE2NTVkNjIuLmI3ZjBhZGViMTc1YWU4
NTI3MGI0OGUyMmQyZTEzNTdiNmNjNDYyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiU3R5bGVDaGFuZ2UuaCIKICNpbmNsdWRlICJTdHlsZVRyZWVSZXNvbHZlci5o
IgogI2luY2x1ZGUgIlN0eWxlVXBkYXRlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oCmluZGV4IGRlZDYz
MGZjMDYxZmJhZjkzMThmNDVhMDE5NGI1OTgxZTYxYWQyN2YuLjQ0ZGRlNDVjODYyMzdmMzY1Zjg2
ZWU0ZWIwMWFhNDlmYzNiM2ZhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
U3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9T
dG9yYWdlTmFtZXNwYWNlUHJvdmlkZXIuaApAQCAtMjYsOSArMjYsNyBAQAogI3ByYWdtYSBvbmNl
CiAKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkhhc2guaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4K
ICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3BhY2UgUEFMIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKaW5kZXggOWFmMWQ2ZThlZTE2
NTM5Yzg0NTBhMWUxYWI0YzUwN2QyYjI5NGU2MS4uY2U5MzQyMTI0ZmU2MTZlZmZmZTZjYTExZTE1
ZDNjZTFjOWVlMTkzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdl
UXVvdGFNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFN
YW5hZ2VyLmgKQEAgLTI3LDggKzI3LDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFu
ZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2lu
Y2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVVcGRhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5k
ZXggODkwOWIyYmMxOTllNDVlZWIwYTBlOWRiYTc5MTg0NzIxZGY5ODk0MC4uOTljZTEzZjYxN2Iw
ZWY1YTAxZGUxMzRlODQ0MTFiZWVjOTM5ZmJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVVcGRhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0
ZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlN0eWxl
Q2hhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggYTU0MjFkZmNhYzg0NGYzYjUx
ZTQ0NmM1ZDIxMDAwN2M1ZGZiNGRiYy4uYWU4OGNiMDVlYWFlOTRhMTM4ZWU4NGY2YWJmYjFhNGNh
YTM4MDQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtMjcsNyArMjcs
NiBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpby5oIgogI2luY2x1ZGUgIlNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oIgotI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0
cy5jcHAKaW5kZXggYjZiMDk5MmQ4OTFkMGMzNTZjYmFhMTA5YzY1ZjA2NzA4MzMzNDQzNi4uZjA0
YjRmYWYzZTc4MDViNWEzMmNkYzljN2MyMDc2MGY5NjZmOTc1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVz
dHMuY3BwCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwg
MjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdo
dCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodCByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVz
LmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5o
PgotI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRB
cnJheU1hcC5oPgogCiAjaWYgRU5BQkxFKE1BVEhNTCkKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5o
IgpAQCAtMzYsNzUgKzM2LDU3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFt
ZXNwYWNlIFNWR05hbWVzOwotCi1zdGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2Fz
ZUluc2Vuc2l0aXZlSGFzaD4mIHN1cHBvcnRlZFNWR0ZlYXR1cmVzKCkKLXsKLSNkZWZpbmUgUFJF
RklYX1czQyAib3JnLnczYy4iCi0jZGVmaW5lIFBSRUZJWF9TVkcxMSAiaHR0cDovL3d3dy53My5v
cmcvdHIvc3ZnMTEvZmVhdHVyZSMiCi0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8
U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+PiBmZWF0dXJlcyA9IFtdIHsKLSAgICAg
ICAgc3RhdGljIGNvbnN0IEFTQ0lJTGl0ZXJhbCBmZWF0dXJlczEwW10gPSB7Ci0gICAgICAgICAg
ICBQUkVGSVhfVzNDICJkb20iX3MsCi0gICAgICAgICAgICBQUkVGSVhfVzNDICJkb20uc3ZnIl9z
LAotICAgICAgICAgICAgUFJFRklYX1czQyAiZG9tLnN2Zy5zdGF0aWMiX3MsCi0gICAgICAgICAg
ICBQUkVGSVhfVzNDICJzdmciX3MsCi0gICAgICAgICAgICBQUkVGSVhfVzNDICJzdmcuc3RhdGlj
Il9zLAotICAgICAgICB9OwotICAgICAgICBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGZlYXR1
cmVzMTFbXSA9IHsKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYW5pbWF0aW9uIl9zLAotICAg
ICAgICAgICAgUFJFRklYX1NWRzExICJiYXNlZ3JhcGhpY3NhdHRyaWJ1dGUiX3MsCi0gICAgICAg
ICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljY2xpcCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcx
MSAiYmFzaWNmaWx0ZXIiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljcGFpbnRh
dHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljc3RydWN0dXJlIl9z
LAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJiYXNpY3RleHQiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgImNsaXAiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImNvbmRpdGlv
bmFscHJvY2Vzc2luZyJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiY29udGFpbmVyYXR0
cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJjb3JlYXR0cmlidXRlIl9zLAot
ICAgICAgICAgICAgUFJFRklYX1NWRzExICJjdXJzb3IiX3MsCi0gICAgICAgICAgICBQUkVGSVhf
U1ZHMTEgImRvY3VtZW50ZXZlbnRzYXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJleHRlbnNpYmlsaXR5Il9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJleHRlcm5h
bHJlc291cmNlc3JlcXVpcmVkIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJmaWx0ZXIi
X3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImdyYWRpZW50Il9zLAotICAgICAgICAgICAg
UFJFRklYX1NWRzExICJncmFwaGljYWxldmVudHNhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQ
UkVGSVhfU1ZHMTEgImdyYXBoaWNzYXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJoeXBlcmxpbmtpbmciX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImltYWdlIl9z
LAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJtYXJrZXIiX3MsCi0gICAgICAgICAgICBQUkVG
SVhfU1ZHMTEgIm1hc2siX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgIm9wYWNpdHlhdHRy
aWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInBhaW50YXR0cmlidXRlIl9zLAot
ICAgICAgICAgICAgUFJFRklYX1NWRzExICJwYXR0ZXJuIl9zLAotICAgICAgICAgICAgUFJFRklY
X1NWRzExICJzY3JpcHQiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInNoYXBlIl9zLAot
ICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdHJ1Y3R1cmUiX3MsCi0gICAgICAgICAgICBQUkVG
SVhfU1ZHMTEgInN0eWxlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdmctYW5pbWF0
aW9uIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdmdkb20tYW5pbWF0aW9uIl9zLAot
ICAgICAgICAgICAgUFJFRklYX1NWRzExICJ0ZXh0Il9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJ2aWV3Il9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJ2aWV3cG9ydGF0dHJpYnV0
ZSJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAieGxpbmthdHRyaWJ1dGUiX3MsCi0gICAg
ICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljZm9udCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9T
VkcxMSAiZm9udCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAic3ZnIl9zLAotICAgICAg
ICAgICAgUFJFRklYX1NWRzExICJzdmctc3RhdGljIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJzdmdkb20iX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN2Z2RvbS1zdGF0aWMi
X3MsCi0gICAgICAgIH07Ci0gICAgICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+IHNldDsKLSAgICAgICAgZm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVyZXMxMCkK
LSAgICAgICAgICAgIHNldC5hZGQoZmVhdHVyZSk7Ci0gICAgICAgIGZvciAoYXV0byYgZmVhdHVy
ZSA6IGZlYXR1cmVzMTEpCi0gICAgICAgICAgICBzZXQuYWRkKGZlYXR1cmUpOwotICAgICAgICBy
ZXR1cm4gc2V0OwotICAgIH0oKTsKLSN1bmRlZiBQUkVGSVhfVzNDCi0jdW5kZWYgUFJFRklYX1NW
RzExCi0gICAgcmV0dXJuIGZlYXR1cmVzOwotfQorY29uc3RleHByIENvbXBhcmFibGVMZXR0ZXJz
TGl0ZXJhbCBzdXBwb3J0ZWRTVkdGZWF0dXJlQXJyYXlbXSA9IHsKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNhbmltYXRpb24iLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI2Jhc2VncmFwaGljc2F0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjYmFzaWNjbGlwIiwKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNpY2ZpbHRlciIsCisgICAgImh0dHA6Ly93d3cudzMu
b3JnL3RyL3N2ZzExL2ZlYXR1cmUjYmFzaWNmb250IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcv
dHIvc3ZnMTEvZmVhdHVyZSNiYXNpY3BhaW50YXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNpY3N0cnVjdHVyZSIsCisgICAgImh0dHA6Ly93d3cu
dzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjYmFzaWN0ZXh0IiwKKyAgICAiaHR0cDovL3d3dy53My5v
cmcvdHIvc3ZnMTEvZmVhdHVyZSNjbGlwIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3Zn
MTEvZmVhdHVyZSNjb25kaXRpb25hbHByb2Nlc3NpbmciLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI2NvbnRhaW5lcmF0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cu
dzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjY29yZWF0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cu
dzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjY3Vyc29yIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcv
dHIvc3ZnMTEvZmVhdHVyZSNkb2N1bWVudGV2ZW50c2F0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjZXh0ZW5zaWJpbGl0eSIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZCIsCisg
ICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjZmlsdGVyIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNmb250IiwKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNncmFkaWVudCIsCisgICAgImh0dHA6Ly93d3cudzMub3Jn
L3RyL3N2ZzExL2ZlYXR1cmUjZ3JhcGhpY2FsZXZlbnRzYXR0cmlidXRlIiwKKyAgICAiaHR0cDov
L3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNncmFwaGljc2F0dHJpYnV0ZSIsCisgICAgImh0
dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjaHlwZXJsaW5raW5nIiwKKyAgICAiaHR0
cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNpbWFnZSIsCisgICAgImh0dHA6Ly93d3cu
dzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjbWFya2VyIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcv
dHIvc3ZnMTEvZmVhdHVyZSNtYXNrIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEv
ZmVhdHVyZSNvcGFjaXR5YXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3Zn
MTEvZmVhdHVyZSNwYWludGF0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2
ZzExL2ZlYXR1cmUjcGF0dGVybiIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2Zl
YXR1cmUjc2NyaXB0IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNz
aGFwZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc3RydWN0dXJl
IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdHlsZSIsCisgICAg
Imh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc3ZnIiwKKyAgICAiaHR0cDovL3d3
dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdmctYW5pbWF0aW9uIiwKKyAgICAiaHR0cDovL3d3
dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdmctc3RhdGljIiwKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdmdkb20iLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90
ci9zdmcxMS9mZWF0dXJlI3N2Z2RvbS1hbmltYXRpb24iLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI3N2Z2RvbS1zdGF0aWMiLAorICAgICJodHRwOi8vd3d3LnczLm9y
Zy90ci9zdmcxMS9mZWF0dXJlI3RleHQiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcx
MS9mZWF0dXJlI3ZpZXciLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJl
I3ZpZXdwb3J0YXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVh
dHVyZSN4bGlua2F0dHJpYnV0ZSIsCisgICAgIm9yZy53M2MuZG9tIiwKKyAgICAib3JnLnczYy5k
b20uc3ZnIiwKKyAgICAib3JnLnczYy5kb20uc3ZnLnN0YXRpYyIsCisgICAgIm9yZy53M2Muc3Zn
IiwKKyAgICAib3JnLnczYy5zdmcuc3RhdGljIiwKK307CisKK2NvbnN0ZXhwciBTb3J0ZWRBcnJh
eVNldCBzdXBwb3J0ZWRTVkdGZWF0dXJlU2V0IHsgc3VwcG9ydGVkU1ZHRmVhdHVyZUFycmF5IH07
CiAKIFNWR1Rlc3RzOjpTVkdUZXN0cyhTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICA6
IG1fY29udGV4dEVsZW1lbnQoKmNvbnRleHRFbGVtZW50KQpAQCAtMTMzLDcgKzExNSw3IEBAIGJv
b2wgU1ZHVGVzdHM6Omhhc0V4dGVuc2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIGJvb2wg
U1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogewogICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IG1f
cmVxdWlyZWRGZWF0dXJlcy0+aXRlbXMoKSkgewotICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5
KCkgfHwgIXN1cHBvcnRlZFNWR0ZlYXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCisgICAgICAg
IGlmIChmZWF0dXJlLmlzRW1wdHkoKSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZVNldC5jb250YWlu
cyhmZWF0dXJlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgZm9yIChh
dXRvJiBsYW5ndWFnZSA6IG1fc3lzdGVtTGFuZ3VhZ2UtPml0ZW1zKCkpIHsKQEAgLTE0OSwxMSAr
MTMxLDExIEBAIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBjb25zdAogCiB2b2lkIFNWR1Rlc3Rz
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25z
dCBBdG9tU3RyaW5nJiB2YWx1ZSkKIHsKLSAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJl
ZEZlYXR1cmVzQXR0cikKKyAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSBTVkdOYW1lczo6cmVxdWly
ZWRGZWF0dXJlc0F0dHIpCiAgICAgICAgIG1fcmVxdWlyZWRGZWF0dXJlcy0+cmVzZXQodmFsdWUp
OwotICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCisgICAg
aWYgKGF0dHJpYnV0ZU5hbWUgPT0gU1ZHTmFtZXM6OnJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCiAg
ICAgICAgIG1fcmVxdWlyZWRFeHRlbnNpb25zLT5yZXNldCh2YWx1ZSk7Ci0gICAgaWYgKGF0dHJp
YnV0ZU5hbWUgPT0gc3lzdGVtTGFuZ3VhZ2VBdHRyKQorICAgIGlmIChhdHRyaWJ1dGVOYW1lID09
IFNWR05hbWVzOjpzeXN0ZW1MYW5ndWFnZUF0dHIpCiAgICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2Ut
PnJlc2V0KHZhbHVlKTsKIH0KIApAQCAtMTY5LDkgKzE1MSw5IEBAIHZvaWQgU1ZHVGVzdHM6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAKIHZvaWQg
U1ZHVGVzdHM6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlS
b2Jpbkhvb2RIYXNoU2V0PFF1YWxpZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKQogewot
ICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKHJlcXVpcmVkRmVhdHVyZXNBdHRyKTsKLSAgICBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKTsKLSAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChzeXN0ZW1MYW5ndWFnZUF0dHIpOworICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyZXF1aXJlZEZlYXR1cmVzQXR0cik7CisgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpOworICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzeXN0ZW1MYW5ndWFnZUF0dHIpOwog
fQogCiBib29sIFNWR1Rlc3RzOjpoYXNGZWF0dXJlRm9yTGVnYWN5QmluZGluZ3MoY29uc3QgU3Ry
aW5nJiBmZWF0dXJlLCBjb25zdCBTdHJpbmcmIHZlcnNpb24pCkBAIC0xOTAsNyArMTcyLDcgQEAg
Ym9vbCBTVkdUZXN0czo6aGFzRmVhdHVyZUZvckxlZ2FjeUJpbmRpbmdzKGNvbnN0IFN0cmluZyYg
ZmVhdHVyZSwgY29uc3QgU3RyaW5nJgogCiAgICAgLy8gSWYgdGhlIHZlcnNpb24gbnVtYmVyIG1h
dGNoZXMgdGhlIHN0eWxlIG9mIHRoZSBmZWF0dXJlIG5hbWUsIHRoZW4gdXNlIHRoZSBzZXQgdG8g
c2VlIGlmIHRoZSBmZWF0dXJlIGlzIHN1cHBvcnRlZC4KICAgICBpZiAodmVyc2lvbi5pc0VtcHR5
KCkgfHwgKGhhc1NWRzEwRmVhdHVyZVByZWZpeCAmJiB2ZXJzaW9uID09ICIxLjAiKSB8fCAoaGFz
U1ZHMTFGZWF0dXJlUHJlZml4ICYmIHZlcnNpb24gPT0gIjEuMSIpKQotICAgICAgICByZXR1cm4g
c3VwcG9ydGVkU1ZHRmVhdHVyZXMoKS5jb250YWlucyhmZWF0dXJlKTsKKyAgICAgICAgcmV0dXJu
IHN1cHBvcnRlZFNWR0ZlYXR1cmVTZXQuY29udGFpbnMoZmVhdHVyZSk7CiAKICAgICByZXR1cm4g
ZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtMb2FkLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3Bw
CmluZGV4IGM4MjdkN2M1ZGYyMTQ0NjBmNjI4NjMwOWRhOGNlMzljNWFkZDM3YmEuLjNlNzMxMTE3
MWE5NDBiNDQ5M2VkNDZhMWZlZDA2YjY2ZmMwYjYxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAi
V2ViRXJyb3JzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5o
PgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRz
Lmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZE1hcC5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVz
b3VyY2VMb2FkTWFwLmgKaW5kZXggZmJmNTllMjI1MDJjZjhiNWNhNzI2NzdkYTllYWZhYzBlYzY3
NjhiZi4uMGVmMjc4YzM0MDVjZGRlNmE4M2ZiZjBhYjcyZmZjNDdjMTRkMzExNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFw
LmgKQEAgLTI3LDcgKzI3LDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogI2lmIEVOQUJM
RShUQUtFX1VOQk9VTkRFRF9ORVRXT1JLSU5HX0FTU0VSVElPTikKICNpbmNsdWRlICJQcm9jZXNz
QXNzZXJ0aW9uLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJp
bmdIYXNoU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hTdG9y
ZS5oCmluZGV4IDhlZmY5ZTgzYzFhZmY3OTRjZjJhMGIzMzIzYTgxMTA5Y2Q3NzA5NGQuLmFkY2U4
YTNmNmM2NzJjMzdjMjBhMzliNmMxZWIwYTE5OGI1YTdlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hTdG9yZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVk
ZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRTdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlv
bi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgK
aW5kZXggOWU4MzlmNDQ1NzBlNmE4ZjhlMTViODU0ZWZhMmY1NTJkNzkyMzEzNS4uNTY5MmQ2Mjkx
NmNjNTNiYzZlZDIzOWQ5NjI1YWZjZjcwNjkyMWY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNv
cmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJl
Y29yZC5tbQppbmRleCA2YTM2Zjk4ZGM0MTU5OWUwMmU1NjU0ZTU1MDNlZjE0OGIxYzU1ZDAyLi5j
ODI2MTZmNzkwYzZmYzY5MGE2Y2JkNjk3YTBlOGVjZGE1MjI3ZmIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5t
bQpAQCAtMjksNyArMjksNiBAQAogI2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTaXplSW50ZXJuYWwu
aCIKICNpbXBvcnQgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVPYmpDRXh0cmFzLmg+Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogCiBOU1N0
cmluZyAqIGNvbnN0IFdLV2Vic2l0ZURhdGFUeXBlRmV0Y2hDYWNoZSA9IEAiV0tXZWJzaXRlRGF0
YVR5cGVGZXRjaENhY2hlIjsKIE5TU3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNr
Q2FjaGUgPSBAIldLV2Vic2l0ZURhdGFUeXBlRGlza0NhY2hlIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGMxZTZmYTc0NzA2
MzcyZTY5ZjQyODdmNjU5NzBjZWQwYmM4YmU3MDQuLmEzNTNjZTgxM2JhYzg5YTcwYzcwOTEzYzU2
MDc4NDE5MDNiZWFjY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tJbnNwZWN0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS0luc3BlY3Rvci5tbQpAQCAtMzcsOCArMzcsNiBAQAogI2ltcG9ydCAiX1dLSW5zcGVj
dG9yUHJpdmF0ZUZvclRlc3RpbmcuaCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lSWRlbnRpZmllci5oPgotI2ltcG9ydCA8d3RmL0hh
c2hNYXAuaD4KLSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRj
aGVyLmgKaW5kZXggNWZlMzJhYmIyOWEyZGE4YTYyNmY0ZmE5YWMzNDE4NmZiN2M2ZTZlNy4uNjk4
MjIyMmU2YjlmYTI1ZGFiYTM0NDc3MDZkMTBlYmQ5ZjQ4M2E4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlz
cGF0Y2hlci5oCkBAIC0zMSwxMCArMzEsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlv
bkhhbmRsZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZD
b3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25k
cy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAppbmRleCA5NTE5
ZjViM2Q3ZWU3ODVkNzE2NDk0OWEyMGQ0M2JkMDg1NGNlYTQwLi4yYTRiYzhmZjEyZWZiZWQ5ODMy
NmMwYzYwNmE0NDJmMTc5YTdmMmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJUHJveHkuY3BwCkBAIC00OSwxMCArNDks
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0RW5jb2RpbmcuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yVUlQcm94eUNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tCmluZGV4IGU2ZDdkMGE1ZjNiODhh
OWMxMzY0ZGY3Yzc1MTY5ZGY5Yjg5Njk4ZjMuLjI5YjQ1OTVhYjQ4NjYwOWRjYzA2MDc3MWYyZTAy
NWQzMDhlZjM2ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMv
bWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
bHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBv
cnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luQmxvY2tsaXN0
Lmg+CiAjaW1wb3J0IDxwd2QuaD4KLSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgKaW5kZXggNzM3MGNkN2NkZDFhODE5NGI4NjQwYzUy
ZjYyOTRkNWEwZDQwNmNmNy4uNjExOTk4N2I4YThjY2E0ODU1YjI2MGJjNDE1N2NlNjg0NjQyYzgw
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgKQEAgLTI5LDggKzI5LDYg
QEAKICNpbmNsdWRlICJXZWJQYWdlR3JvdXBEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1By
b3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyU3R5bGVTaGVldFR5cGVzLmg+Ci0jaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDc4YjFmMWU3
Y2MxMTBhMDc1ZjVhZWY4ODVmN2E5ZjEwNjA0ODJhMDcuLjI1MTI0YjJmYTc3N2VjMGRiMTBmNmUx
YjEzZWU0YjIwYWE4ZjVkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5oCkBAIC0yOSwxMCArMjksNyBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJ
ZGVudGlmaWVyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KLSNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a0hhc2hTZXQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJl
ZmVyZW5jZXMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgKaW5k
ZXggZWRiZmI5YWU2YjNmOWQxYWZhZTNjNjA5YjgzNTdlZmRjM2RjODZmYS4uOTM3NDNjYjAwZDQz
MGJjM2E4Mzg1OTcwZjViNWEwZTBjZTE4MmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcmVmZXJlbmNlcy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0Lmgi
CiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIgogI2luY2x1ZGUgIldlYlBy
ZWZlcmVuY2VzU3RvcmUuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9u
TWFuYWdlci5oCmluZGV4IDRiNTQzMDI5ZDZlYzBiOWQ5NTk0NTM4ZWIwYTI3NWEyZjQ3NWM3Nzgu
LjQ0ODM1OTYzNTg3ODIxOTdjY2JhNTkyOGVmZTYyNTE1MjZjMTg1MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRp
b25NYW5hZ2VyLmgKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBv
c2l0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3
dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hh
c2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a0hhc2hTZXQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmgKaW5kZXggMTc0NTY5ODNmYTIzMmQzYzJj
YWUxZjk4MTk2MTlhYjBhOGQxZDliNi4uYTYwN2YyMzhkNzVhYjY2YWUzNGY5ZTNlMTExYjY3OGJi
Nzg5ZDU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
QmFja0ZvcndhcmRMaXN0UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0Q291bnRzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9y
d2FyZENsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQmFja0Zv
cndhcmRJdGVtSWRlbnRpZmllcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427469</attachid>
            <date>2021-04-30 16:53:30 -0700</date>
            <delta_ts>2021-05-01 10:20:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225251-20210430165329.patch</filename>
            <type>text/plain</type>
            <size>59508</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2ODYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDlmNDUxNmYyMzQ3OWE0NzNiZTQxMGJh
OTk3ZjYxYWIzMmQwMGE1NjcuLjBmNmEyZjg0NDZkMzUyOTIxYWFiOGQ1MzllMjllNTlhMDdkNjZm
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDQtMzAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1hcCBpbiBhIGZldyBtb3JlIHBs
YWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3
dGYvU29ydGVkQXJyYXlNYXAuaDogQWRkZWQgc3VwcG9ydCBmb3IgdHlwZXMgdGhhdCBkb24ndCBo
YXZlIGEgcGFyc2UgbWVtYmVyIGZ1bmN0aW9uLgorCisgICAgICAgICogd3RmL2NvY29hL01haW5U
aHJlYWRDb2NvYS5tbTogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiB3dGYv
dGV4dC9BdG9tU3RyaW5nSW1wbC5jcHA6IERpdHRvLgorICAgICAgICAqIHd0Zi90ZXh0L0F0b21T
dHJpbmdUYWJsZS5jcHA6IERpdHRvLgorCiAyMDIxLTA0LTMwICBEYXJpbiBBZGxlciAgPGRhcmlu
QGFwcGxlLmNvbT4KIAogICAgICAgICBPcHRpbWl6ZSBTb3J0ZWRBcnJheU1hcCBieSB1c2luZyBs
aW5lYXIgc2VhcmNoIGZvciBzbWFsbCBhcnJheXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlZTIwNGM2OWU0ZTY4
ZTE3ZWQzMjEyOTcyMmY5YWUwZTg3ZjZkN2RmLi45ZDU5YTBmMDhjYmQzZmM2Yjk0ZWZhNzg5YTBl
Yjc3NDljZDdlMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsODAgQEAKKzIwMjEtMDQtMzAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVzZSBTb3J0ZWRBcnJheU1h
cCBpbiBhIGZldyBtb3JlIHBsYWNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1MjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oOiBSZW1vdmVkIHVu
bmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuaDogRGl0dG8uCisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVu
c2lvbkFjdGlvbnMuaDogRGl0dG8uCisgICAgICAgICogY3NzL0NTU1ZhcmlhYmxlRGF0YS5oOiBE
aXR0by4KKyAgICAgICAgKiBkb20vRnVsbHNjcmVlbk1hbmFnZXIuaDogRGl0dG8uCisKKyAgICAg
ICAgKiBkb20vU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0xlZ2FjeVN1
cHBvcnRlZEphdmFTY3JpcHRMYW5ndWFnZSk6IFVzZSBTb3J0ZWRBcnJheVNldC4KKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVDbGFzc2ljU2NyaXB0KTogRml4ZWQgdHlw
by4KKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEVsZW1lbnQ6OmV4ZWN1dGVNb2R1bGVTY3JpcHQp
OiBEaXR0by4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09i
amVjdC5jcHA6IFJlbW92ZWQgdW5uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgICogaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBsb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcDogRGl0dG8uCisgICAgICAgICog
cGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmg6IERpdHRvLgorICAgICAgICAqIHBhZ2UvaW9zL0RP
TVRpbWVySG9sZGluZ1RhbmsuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVOb2RlLmg6IEFkZGVkIGZvcndhcmQgZGVjbGFyYXRpb24KKyAgICAgICAg
dGhhdCB1c2VkIHRvIGJlIGluaGVyaXRlZCBmcm9tIGFub3RoZXIgZmlsZSB3aGVyZSBpdCdzIG5v
dCBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9s
bGVyR2FtZXBhZFByb3ZpZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6R2FtZUNvbnRyb2xsZXJH
YW1lcGFkUHJvdmlkZXI6OndpbGxIYW5kbGVWZW5kb3JBbmRQcm9kdWN0KToKKyAgICAgICAgVXNl
IFNvcnRlZEFycmF5U2V0LgorCisgICAgICAgICogcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2Ft
ZXBhZEVsZW1lbnQuaDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvSEVWQ1V0aWxpdGllcy5jcHA6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmg6IERpdHRvLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTUlNRVR5cGVDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNSU1FVHlwZUNh
Y2hlOjppc1N0YXRpY0NvbnRhaW5lclR5cGUpOiBSZW5hbWVkOyB0aGlzIHJlcGxhY2VzCisgICAg
ICAgIHRoZSBvbGQgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QgZnVuY3Rpb24gYW5kIGp1c3QgcmV0
dXJucyBmYWxzZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUu
aDogUmVwbGFjZWQgdGhlIHN0YXRpY0NvbnRhaW5lclR5cGVMaXN0CisgICAgICAgIGZ1Y250aW9u
IHdpdGggYW4gaXNTdGF0aWNDb250YWluZXJUeXBlIGZ1bmN0aW9uLiBBbHNvIG1hZGUgaXQsIGFu
ZCBvbmUKKyAgICAgICAgb3RoZXIgZnVuY3Rpb24sIHByaXZhdGUuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oOiBV
cGRhdGVkCisgICAgICAgIGZvciB0aGUgY2hhbmdlIHRvIE1JTUVUeXBlQ2FjaGUuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVD
YWNoZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXNzZXRNSU1FVHlwZUNhY2hlOjppc1N0YXRp
Y0NvbnRhaW5lclR5cGUpOiBVc2UgU29ydGVkQXJyYXlTZXQuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQy5oOgorICAgICAgICBSZW1vdmVkIHVubmVlZGVkIGluY2x1ZGVzLgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFn
ZS5oOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlh
U291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9pb3MvQVZBdWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZURldmljZU1hbmFnZXIuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcDogRGl0dG8uCisKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW06CisgICAgICAgIChXZWJDb3JlOjpV
VElGcm9tVW5rbm93bk1JTUVUeXBlKTogVXNlIFNvcnRlZEFycmF5TWFwLiBBbHNvIGZpeGVkIGEg
cmVncmVzc2lvbgorICAgICAgICBmcm9tIHIyNzE1MzMgd2hlcmUgd2UgYWNjaWRlbnRhbGx5IGRl
bGV0ZWQgdGhlIE1JTUUgdHlwZSBtb2RlbC92bmQucmVhbGl0eS4KKworICAgICAgICAqIHJlbmRl
cmluZy9Db21wbGV4TGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXRMb2dpY2Fs
V2lkdGhGb3JUZXh0UnVuKTogVXNlIGEgcmFuZ2UtYmFzZWQgZm9yIGxvb3AuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaDogUmVtb3ZlZCB1bm5lZWRl
ZCBpbmNsdWRlcy4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5o
OiBEaXR0by4KKyAgICAgICAgKiBzdG9yYWdlL1N0b3JhZ2VRdW90YU1hbmFnZXIuaDogRGl0dG8u
CisgICAgICAgICogc3R5bGUvU3R5bGVVcGRhdGUuaDogRGl0dG8uCisgICAgICAgICogc3ZnL1NW
R0ZpdFRvVmlld0JveC5oOiBEaXR0by4KKworICAgICAgICAqIHN2Zy9TVkdUZXN0cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXN0czo6aXNWYWxpZCBjb25zdCk6IFVzZSBTb3J0ZWRBcnJh
eVNldC4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rlc3RzOjpoYXNGZWF0dXJlRm9yTGVnYWN5Qmlu
ZGluZ3MpOiBEaXR0by4KKwogMjAyMS0wNC0zMCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBBZGQgYSBoZXVyaXN0aWMgdG8gZGV0ZXJtaW5l
IHdoZXRoZXIgYSBzeW50aGV0aWMgY2xpY2sgdHJpZ2dlcmVkIGFueSBtZWFuaW5nZnVsIGNoYW5n
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggZWEyYjNlNWE5MTljMDA3ZTcxMmVhZmE0NjA0NzA2MzhiODJlZTZmNC4u
OTE0NzU2ZTNiNWQ2NDAzYWQxYTIzZWMwN2UzZDJmZTBkMzUwNWQyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAyMS0wNC0zMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVXNlIFNvcnRlZEFycmF5TWFwIGluIGEgZmV3IG1vcmUgcGxhY2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjUyNTEKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtMb2FkLmNwcDogUmVtb3ZlZCB1bm5lZWRlZCBpbmNsdWRlcy4KKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmg6IERpdHRvLgorICAgICAgICAq
IFNoYXJlZC9TaGFyZWRTdHJpbmdIYXNoU3RvcmUuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW06IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yLm1tOiBEaXR0by4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaDogRGl0dG8uCisgICAg
ICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcDogRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbTog
RGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VHcm91cC5oOiBEaXR0by4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6IERpdHRvLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dl
b2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuaDogRGl0dG8uCisKIDIwMjEt
MDQtMzAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAg
W0dQVVBdIFBvbGwgdmlkZW9QbGF5YmFja1F1YWxpdHlNZXRyaWNzIGF0IHRoZSBmcmVxdWVuY3kg
aXMgaXQgYWNjZXNzZWQgYnkgc2NyaXB0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9Tb3J0
ZWRBcnJheU1hcC5oIGIvU291cmNlL1dURi93dGYvU29ydGVkQXJyYXlNYXAuaAppbmRleCBiYzll
NGNlZDZlYzdjZDE4NjdjYzE5YWE5NDU2MTQwMGVlOTVkZjdjLi4wM2Q3MGJkNDk0MDI5NmIxYzM3
YjUxZTkxMzUyZTFiOTU2M2VkN2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Tb3J0ZWRB
cnJheU1hcC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1NvcnRlZEFycmF5TWFwLmgKQEAgLTEzNiw5
ICsxMzYsMTggQEAgdGVtcGxhdGU8dHlwZW5hbWUgQXJyYXlUeXBlPiBjb25zdGV4cHIgU29ydGVk
QXJyYXlNYXA8QXJyYXlUeXBlPjo6U29ydGVkQXJyYXlNYXAKICAgICB9KSk7CiB9CiAKK3RlbXBs
YXRlPHR5cGVuYW1lLCB0eXBlbmFtZSA9IHZvaWQ+IGNvbnN0ZXhwciBib29sIEhhc1BhcnNlTWVt
YmVyID0gZmFsc2U7Cit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgYm9vbCBIYXNQYXJz
ZU1lbWJlcjxULCBzdGQ6OnZvaWRfdDxkZWNsdHlwZShzdGQ6OmRlY2x2YWw8VD4oKS5wYXJzZSk+
PiA9IHRydWU7CisKIHRlbXBsYXRlPHR5cGVuYW1lIEFycmF5VHlwZT4gdGVtcGxhdGU8dHlwZW5h
bWUgS2V5QXJndW1lbnQ+IGlubGluZSBhdXRvIFNvcnRlZEFycmF5TWFwPEFycmF5VHlwZT46OnRy
eUdldChjb25zdCBLZXlBcmd1bWVudCYga2V5KSBjb25zdCAtPiBjb25zdCBWYWx1ZVR5cGUqCiB7
Ci0gICAgYXV0byBwYXJzZWRLZXkgPSBFbGVtZW50VHlwZTo6Zmlyc3RfdHlwZTo6cGFyc2Uoa2V5
KTsKKyAgICB1c2luZyBLZXlUeXBlID0gdHlwZW5hbWUgRWxlbWVudFR5cGU6OmZpcnN0X3R5cGU7
CisgICAgYXV0byBwYXJzZWRLZXkgPSBbJmtleV0geworICAgICAgICBpZiBjb25zdGV4cHIgKEhh
c1BhcnNlTWVtYmVyPEtleVR5cGU+KQorICAgICAgICAgICAgcmV0dXJuIEtleVR5cGU6OnBhcnNl
KGtleSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJldHVybiBtYWtlT3B0aW9uYWwoa2V5
KTsKKyAgICB9KCk7CiAgICAgaWYgKCFwYXJzZWRLZXkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIGRlY2x0eXBlKHN0ZDo6YmVnaW4obV9hcnJheSkpIGl0ZXJhdG9yOwpAQCAtMTcyLDgg
KzE4MSwxNSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBBcnJheVR5cGU+IGNvbnN0ZXhwciBTb3J0ZWRB
cnJheVNldDxBcnJheVR5cGU+OjpTb3J0ZWRBcnJheVNldAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBB
cnJheVR5cGU+IHRlbXBsYXRlPHR5cGVuYW1lIEtleUFyZ3VtZW50PiBpbmxpbmUgYm9vbCBTb3J0
ZWRBcnJheVNldDxBcnJheVR5cGU+Ojpjb250YWlucyhjb25zdCBLZXlBcmd1bWVudCYga2V5KSBj
b25zdAogewotICAgIHVzaW5nIEVsZW1lbnRUeXBlID0gdHlwZW5hbWUgc3RkOjpyZW1vdmVfZXh0
ZW50X3Q8QXJyYXlUeXBlPjsKLSAgICBhdXRvIHBhcnNlZEtleSA9IEVsZW1lbnRUeXBlOjpwYXJz
ZShrZXkpOworICAgIHVzaW5nIEtleVR5cGUgPSB0eXBlbmFtZSBzdGQ6OnJlbW92ZV9leHRlbnRf
dDxBcnJheVR5cGU+OworICAgIGF1dG8gcGFyc2VkS2V5ID0gWyZrZXldIHsKKyAgICAgICAgaWYg
Y29uc3RleHByIChIYXNQYXJzZU1lbWJlcjxLZXlUeXBlPikKKyAgICAgICAgICAgIHJldHVybiBL
ZXlUeXBlOjpwYXJzZShrZXkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZXR1cm4gbWFr
ZU9wdGlvbmFsKGtleSk7CisgICAgfSgpOworICAgIGlmICghcGFyc2VkS2V5KQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKHN0ZDo6c2l6ZShtX2FycmF5KSA8IGJpbmFyeVNlYXJjaFRo
cmVzaG9sZCkKICAgICAgICAgcmV0dXJuIHN0ZDo6ZmluZChzdGQ6OmJlZ2luKG1fYXJyYXkpLCBz
dGQ6OmVuZChtX2FycmF5KSwgKnBhcnNlZEtleSkgIT0gc3RkOjplbmQobV9hcnJheSk7CiAgICAg
YXV0byBpdGVyYXRvciA9IHN0ZDo6bG93ZXJfYm91bmQoc3RkOjpiZWdpbihtX2FycmF5KSwgc3Rk
OjplbmQobV9hcnJheSksICpwYXJzZWRLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYv
Y29jb2EvTWFpblRocmVhZENvY29hLm1tIGIvU291cmNlL1dURi93dGYvY29jb2EvTWFpblRocmVh
ZENvY29hLm1tCmluZGV4IDM3MjQ2ZDJhMDM1ZTY4YjRiZjNhNGM3NmU3ZGIwM2U3NTlhM2M4Yzcu
LmZkNjM3ZjdmNDcyMDE2MGY4MzA5ZDU4ZjZiMDk1Y2YzMjMxZmVlMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvd3RmL2NvY29hL01haW5UaHJlYWRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV1RGL3d0
Zi9jb2NvYS9NYWluVGhyZWFkQ29jb2EubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgPHN0
ZGlvLmg+CiAjaW1wb3J0IDx3dGYvQXNzZXJ0aW9ucy5oPgogI2ltcG9ydCA8d3RmL0Jsb2NrUHRy
Lmg+Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgog
I2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KICNpbXBvcnQgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ0ltcGwuY3BwIGIvU291cmNl
L1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKaW5kZXggYTE4YjNjYmQ4ODAwMmQzOWRm
Y2IyZWMxNzQzYTk3NWQ0ZWY0Y2RiNC4uYTAyOGU0MmEzNDY0MTk2ZmRhODc0M2Y3MTI3ZDhiNzNi
M2QxYzI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5j
cHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nSW1wbC5jcHAKQEAgLTI0LDcg
KzI0LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3Ry
aW5nSW1wbC5oPgogCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbVN0cmluZ1RhYmxlLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4
dC9BdG9tU3RyaW5nVGFibGUuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9tU3RyaW5nVGFi
bGUuY3BwCmluZGV4IDg2ZWQyNWYyOGVjMDg2NjhlZjVlNGE1NmEyNDk3NWQyMDFmYThlNDEuLmRk
MjJkNDJjZGRlNDJjZTY4MDM0OGM4MzQyYzI2ZTFmYTg2OWMxYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvQXRvbVN0cmluZ1RhYmxlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90
ZXh0L0F0b21TdHJpbmdUYWJsZS5jcHAKQEAgLTIzLDggKzIzLDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nVGFibGUuaD4KIAotI2luY2x1ZGUg
PHd0Zi9IYXNoU2V0Lmg+Ci0KIG5hbWVzcGFjZSBXVEYgewogCiBBdG9tU3RyaW5nVGFibGU6On5B
dG9tU3RyaW5nVGFibGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNy
eXB0ZWRtZWRpYS9DRE0uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
Q0RNLmgKaW5kZXggYTI2MTcyNmI3Zjg4NmY2ZGQ5MDA0ZmY0ZDgyNDYyOTdkOGUzNWYyOC4uMjIz
MmJmMzk2MGQyY2MxNzg4ZjJlMzJmMzcyNjc2NDliZjBkMDRlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9DRE0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0NETS5oCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVk
ZSAiTWVkaWFLZXlzUmVzdHJpY3Rpb25zLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAj
aW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNs
dWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3
dGYvV2Vha1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDNjNzhmYjE2NjdhMGY2NDkyY2IzZTM5OGFhMTIwZjUw
ZmYxOTk3MzcuLmJjNzIzMGM4MGNmYjY0NmFmZWM4ZGU1OTBjMzAzNTQ2NzBmNGM3ZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmgKQEAgLTM2LDcgKzM2LDYgQEAKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5oCmlu
ZGV4IDVlZmFjMTViOGMyMGJmYTc0ODM1MGMwNzUyMDA2YWEwMjJjYWY1YjAuLjgxYTJlNTIxNDc1
NWM2OThlYmY5MTgyNDExNzk2ZWJkNTQxZDg1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuaApAQCAt
MjcsMTggKzI3LDIwIEBACiAKICNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQogCi0jaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IENv
bnRlbnRSdWxlTGlzdFJlc3VsdHM7CiBjbGFzcyBQYWdlOwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0
OwogCitzdHJ1Y3QgQ29udGVudFJ1bGVMaXN0UmVzdWx0czsKKwogbmFtZXNwYWNlIENvbnRlbnRF
eHRlbnNpb25zIHsKIAogc3RydWN0IEFjdGlvbjsKKwogdXNpbmcgU2VyaWFsaXplZEFjdGlvbkJ5
dGUgPSB1aW50OF90OwogCiBlbnVtIGNsYXNzIEFjdGlvblR5cGUgOiB1aW50OF90IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYXJpYWJsZURhdGEuaAppbmRleCAzOTZlMDY5YjljNDY1MmM4ZTg3ZjdjYWQ4
Mjk5MDM5ZWMwY2VkMTZkLi5mYzE3MGFmMTFiZjU3Nzg4NjRlOGEyZTg3ZGM0NTY3MDMxOGYyNWFm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFyaWFibGVEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhcmlhYmxlRGF0YS5oCkBAIC0zMiw3ICszMiw2IEBACiAj
aW5jbHVkZSAiQ1NTUGFyc2VyVG9rZW4uaCIKICNpbmNsdWRlICJDU1NQYXJzZXJUb2tlblJhbmdl
LmgiCiAjaW5jbHVkZSAiQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5LmgiCi0jaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Z1bGxzY3JlZW5N
YW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA3
YWQ4ZmY4Y2UyNjIxYWE2NzU2N2QwNDkwNGIxMDY0ZTc1ODQ3YWE1Li43MmRhMzQ4NjA1NjJiMzY2
NzRjNTUyYjY1YThiMjZkMGI2ZDE1ODY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRnVsbHNjcmVlbk1h
bmFnZXIuaApAQCAtMzEsOSArMzEsNiBAQAogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIK
ICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+Ci0jaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYv
V2Vha0hhc2hTZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Ny
aXB0RWxlbWVudC5jcHAKaW5kZXggYTU2Yzg4Mzk4YTExNTRhYjE3MDYwMWZhY2Q0N2FkNjEyN2Yw
Yzg2OS4uN2Q0ZTkxODU5MzI3MzQxNzU4NWFiZGNmODRlYWNhNzBiYTA1Y2Q1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFbGVtZW50LmNwcApAQCAtNTMsMTAgKzUzLDkgQEAKICNpbmNsdWRlICJT
Y3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1
ZGUgIlRleHROb2RlVHJhdmVyc2FsLmgiCisjaW5jbHVkZSA8d3RmL1NvcnRlZEFycmF5TWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9TeXN0ZW1UcmFj
aW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgotI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMTAsMjEg
KzEwOSwyMiBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmhhbmRsZUFzeW5jQXR0cmlidXRlKCkKIAog
c3RhdGljIGJvb2wgaXNMZWdhY3lTdXBwb3J0ZWRKYXZhU2NyaXB0TGFuZ3VhZ2UoY29uc3QgU3Ry
aW5nJiBsYW5ndWFnZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBsYW5ndWFnZXMgPSBtYWtl
TmV2ZXJEZXN0cm95ZWQoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4g
ewotICAgICAgICAiamF2YXNjcmlwdCJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjAiX3MsCi0g
ICAgICAgICJqYXZhc2NyaXB0MS4xIl9zLAotICAgICAgICAiamF2YXNjcmlwdDEuMiJfcywKLSAg
ICAgICAgImphdmFzY3JpcHQxLjMiX3MsCi0gICAgICAgICJqYXZhc2NyaXB0MS40Il9zLAotICAg
ICAgICAiamF2YXNjcmlwdDEuNSJfcywKLSAgICAgICAgImphdmFzY3JpcHQxLjYiX3MsCi0gICAg
ICAgICJqYXZhc2NyaXB0MS43Il9zLAotICAgICAgICAibGl2ZXNjcmlwdCJfcywKLSAgICAgICAg
ImVjbWFzY3JpcHQiX3MsCi0gICAgICAgICJqc2NyaXB0Il9zLAotICAgIH0pOwotICAgIHJldHVy
biBsYW5ndWFnZXMuZ2V0KCkuY29udGFpbnMobGFuZ3VhZ2UpOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQ29tcGFyYWJsZUxldHRlcnNMaXRlcmFsIGxhbmd1YWdlQXJyYXlbXSA9IHsKKyAgICAgICAg
ImVjbWFzY3JpcHQiLAorICAgICAgICAiamF2YXNjcmlwdCIsCisgICAgICAgICJqYXZhc2NyaXB0
MS4wIiwKKyAgICAgICAgImphdmFzY3JpcHQxLjEiLAorICAgICAgICAiamF2YXNjcmlwdDEuMiIs
CisgICAgICAgICJqYXZhc2NyaXB0MS4zIiwKKyAgICAgICAgImphdmFzY3JpcHQxLjQiLAorICAg
ICAgICAiamF2YXNjcmlwdDEuNSIsCisgICAgICAgICJqYXZhc2NyaXB0MS42IiwKKyAgICAgICAg
ImphdmFzY3JpcHQxLjciLAorICAgICAgICAianNjcmlwdCIsCisgICAgICAgICJsaXZlc2NyaXB0
IiwKKyAgICB9OworICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlTZXQgbGFuZ3VhZ2VT
ZXQgeyBsYW5ndWFnZUFycmF5IH07CisgICAgcmV0dXJuIGxhbmd1YWdlU2V0LmNvbnRhaW5zKGxh
bmd1YWdlKTsKIH0KIAogdm9pZCBTY3JpcHRFbGVtZW50OjpkaXNwYXRjaEVycm9yRXZlbnQoKQpA
QCAtMzk4LDcgKzM5OCw3IEBAIHZvaWQgU2NyaXB0RWxlbWVudDo6ZXhlY3V0ZUNsYXNzaWNTY3Jp
cHQoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNlQ29kZSkKICAgICBpZiAoIWZyYW1lKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBJZ25vcmVEZXN0cnVjdGl2ZVdyaXRlQ291bnRJbmNyZW1l
bnRlciBpZ25vcmVEZXNjdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIobV9pc0V4dGVybmFs
U2NyaXB0ID8gJmRvY3VtZW50IDogbnVsbHB0cik7CisgICAgSWdub3JlRGVzdHJ1Y3RpdmVXcml0
ZUNvdW50SW5jcmVtZW50ZXIgaWdub3JlRGVzdHJ1Y3RpdmVXcml0ZUNvdW50SW5jcmVtZW50ZXIo
bV9pc0V4dGVybmFsU2NyaXB0ID8gJmRvY3VtZW50IDogbnVsbHB0cik7CiAgICAgQ3VycmVudFNj
cmlwdEluY3JlbWVudGVyIGN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlcihkb2N1bWVudCwgKnRoaXMp
OwogCiAgICAgV1RGQmVnaW5TaWducG9zdCh0aGlzLCAiRXhlY3V0ZSBTY3JpcHQgRWxlbWVudCIs
ICJleGVjdXRpbmcgY2xhc3NpYyBzY3JpcHQgZnJvbSBVUkw6ICV7cHVibGljfXMgYXN5bmM6ICVk
IGRlZmVyOiAlZCIsIG1faXNFeHRlcm5hbFNjcmlwdCA/IHNvdXJjZUNvZGUudXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSA6ICJpbmxpbmUiLCBoYXNBc3luY0F0dHJpYnV0ZSgpLCBoYXNEZWZl
ckF0dHJpYnV0ZSgpKTsKQEAgLTQxNyw3ICs0MTcsNyBAQCB2b2lkIFNjcmlwdEVsZW1lbnQ6OmV4
ZWN1dGVNb2R1bGVTY3JpcHQoTG9hZGFibGVNb2R1bGVTY3JpcHQmIGxvYWRhYmxlTW9kdWxlU2Ny
aQogICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAotICAgIElnbm9yZURlc3RydWN0
aXZlV3JpdGVDb3VudEluY3JlbWVudGVyIGlnbm9yZURlc2N0cnVjdGl2ZVdyaXRlQ291bnRJbmNy
ZW1lbnRlcigmZG9jdW1lbnQpOworICAgIElnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3Jl
bWVudGVyIGlnbm9yZURlc3RydWN0aXZlV3JpdGVDb3VudEluY3JlbWVudGVyKCZkb2N1bWVudCk7
CiAgICAgQ3VycmVudFNjcmlwdEluY3JlbWVudGVyIGN1cnJlbnRTY3JpcHRJbmNyZW1lbnRlcihk
b2N1bWVudCwgKnRoaXMpOwogCiAgICAgV1RGQmVnaW5TaWducG9zdCh0aGlzLCAiRXhlY3V0ZSBT
Y3JpcHQgRWxlbWVudCIsICJleGVjdXRpbmcgbW9kdWxlIHNjcmlwdCIpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBdWRpdFJlc291cmNlc09iamVj
dC5jcHAKaW5kZXggYjdmZjBlMTA0YTU1MDY5MTZjY2ZhOWQyMzBjOGIyYmJiMzYzZGYzYS4uNWU5
NzU1YmVmMDdhNTEyNmNhMDdlN2E4MjdiN2IwMDZkNGVkNTI3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckF1ZGl0UmVzb3VyY2VzT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQXVkaXRSZXNvdXJjZXNPYmplY3Qu
Y3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiQ2FjaGVkU1ZHRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkluc3BlY3RvclBhZ2VBZ2VudC5oIgotI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rvck5ldHdvcmtBZ2VudC5jcHAKaW5kZXggMjkyZDJjMjk0
MGRhNmE0MTBlYzY4ZmI2NjVlM2U5ZDcwZGY3MWI0YS4uNjc4MzEwMzVkOWQzZGQ4NjgwNzgwMmU4
OTQ1NWU5YTA3NzZjMzZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JOZXR3b3JrQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yTmV0d29ya0FnZW50LmNwcApAQCAtODEsOCArODEsNiBAQAog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0lubGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TY3Jp
cHRDYWxsU3RhY2tGYWN0b3J5Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CiAjaW5jbHVkZSA8
d3RmL0xvY2suaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4
IDUzZGY4YzliMThiOTdmYzkwNjMzNjhhMWVlMTA0MTExY2U5YjI5NTguLmYyNjRmMWRkNzEyM2Q2
OTJjNjU3ZjFlY2UxNDk5NGM0MTk2MzM0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBAIC01MCw3ICs1
MCw2IEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJTZXR0aW5ncy5o
IgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFByb3ZpZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJvdmlkZXIuaAppbmRleCAyNGJiMzYy
ZjRlOTk2YWRkYWZhZDBmMThjM2YzYTljMjNhYTcyM2RhLi5mOTJhOThmN2UwMjQyOTk1NGM3NjQ2
YTRmYmMwZDNmNDM4ZTM3Y2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJD
b250ZW50UHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1VzZXJDb250ZW50UHJv
dmlkZXIuaApAQCAtMjYsOSArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDxmdW5j
dGlvbmFsPgotI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9u
Lmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CkBAIC00MywyMSArNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRE9NV3JhcHBl
cldvcmxkOwogY2xhc3MgRG9jdW1lbnRMb2FkZXI7CiBjbGFzcyBQYWdlOwotY2xhc3MgUmVzb3Vy
Y2VSZXF1ZXN0OworY2xhc3MgVXNlckNvbnRlbnRQcm92aWRlcjsKIGNsYXNzIFVzZXJNZXNzYWdl
SGFuZGxlckRlc2NyaXB0b3I7CiBjbGFzcyBVc2VyU2NyaXB0OwogY2xhc3MgVXNlclN0eWxlU2hl
ZXQ7CiAKLSNpZiBFTkFCTEUoQ09OVEVOVF9FWFRFTlNJT05TKQotbmFtZXNwYWNlIENvbnRlbnRF
eHRlbnNpb25zIHsKLWNsYXNzIENvbnRlbnRFeHRlbnNpb25zQmFja2VuZDsKLWVudW0gY2xhc3Mg
UmVzb3VyY2VUeXBlIDogdWludDE2X3Q7Ci1zdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKLX0KLSNl
bmRpZgotCi1jbGFzcyBVc2VyQ29udGVudFByb3ZpZGVyOwotCiBjbGFzcyBVc2VyQ29udGVudFBy
b3ZpZGVySW52YWxpZGF0aW9uQ2xpZW50IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFVzZXJDb250
ZW50UHJvdmlkZXJJbnZhbGlkYXRpb25DbGllbnQ+IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5V
c2VyQ29udGVudFByb3ZpZGVySW52YWxpZGF0aW9uQ2xpZW50KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0RPTVRpbWVySG9sZGluZ1RhbmsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9pb3MvRE9NVGltZXJIb2xkaW5nVGFuay5jcHAKaW5kZXggMzg4M2MzYjA5Njk2YjA3
MmI1MmY1NjcyNjU1NGNjNWI0ZjEyZDc5Yy4uZDFmZGM5YzE1MWE0MzMwOTg3YzM0YjAyNzg0Y2Vk
NzdkYWJlOGJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRE9NVGltZXJI
b2xkaW5nVGFuay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRE9NVGltZXJIb2xk
aW5nVGFuay5jcHAKQEAgLTI4LDggKzI4LDYgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICNp
ZiBQTEFURk9STShJT1NfU0lNVUxBVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggMjgxMTg2ZTk1NDRlNWViZTk4
YTZkNjQ5OWM0YTFhNDBkNDMzY2RjOS4uNTkwOTg0ZjM1NjdjM2M4ZDEyOTAwN2RjNTE3YmY2NWJl
YTA5NjQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdDb29yZGluYXRvci5oCkBAIC0zMywxNSArMzMsMTAgQEAKICNpbmNsdWRlICJTY3JvbGxp
bmdDb29yZGluYXRvclR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+
CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi9WYXJpYW50Lmg+CiAK
LSNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL1RocmVhZFNhZmVSZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVh
ZGluZy5oPgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXVEYgewogY2xhc3MgVGV4dFN0cmVhbTsKIH0K
QEAgLTYwLDEwICs1NSw2IEBAIGNsYXNzIFJlbmRlckxheWVyOwogY2xhc3MgU2Nyb2xsYWJsZUFy
ZWE7CiBjbGFzcyBWaWV3cG9ydENvbnN0cmFpbnRzOwogCi0jaWYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKLWNsYXNzIFNjcm9sbGluZ1RyZWU7Ci0jZW5kaWYKLQogdXNpbmcgRnJhbWVzUGVyU2Vj
b25kID0gdW5zaWduZWQ7CiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApp
bmRleCBjNmIwMzJmZWI4Y2M5NzM5YWU3NWI1NTQ5NjhiODk1ZDkxYTY0ZDM4Li44ZGQzZWZjODkw
MWM3ZDIwNThkZTE4MDAzN2IzNTY4NzBjMmM3YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTM3LDYgKzM3LDcgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU7CitjbGFz
cyBTY3JvbGxpbmdUcmVlOwogY2xhc3MgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZTsK
IGNsYXNzIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250cm9sbGVyR2FtZXBhZFByb3Zp
ZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9jb2NvYS9HYW1lQ29udHJv
bGxlckdhbWVwYWRQcm92aWRlci5tbQppbmRleCBhMjIxMzNjYTU5M2VkNjMyNDc0YTQ3MmRjNGJm
MjFmN2JmMWIwOTFmLi5kYjAzZDQ3MDRkNzM0ZWZjMjk4N2UyMGU0Mjg5YzRmMjc5YTVhZGY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL2NvY29hL0dhbWVDb250
cm9sbGVyR2FtZXBhZFByb3ZpZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dh
bWVwYWQvY29jb2EvR2FtZUNvbnRyb2xsZXJHYW1lcGFkUHJvdmlkZXIubW0KQEAgLTM1LDYgKzM1
LDcgQEAKICNpbXBvcnQgPEdhbWVDb250cm9sbGVyL0dhbWVDb250cm9sbGVyLmg+CiAjaW1wb3J0
IDxwYWwvc3BpL21hYy9JT0tpdFNQSU1hYy5oPgogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KIAogI2ltcG9ydCAiR2FtZUNvbnRy
b2xsZXJTb2Z0TGluay5oIgogCkBAIC00NSwyNyArNDYsMjQgQEAgYm9vbCBHYW1lQ29udHJvbGxl
ckdhbWVwYWRQcm92aWRlcjo6d2lsbEhhbmRsZVZlbmRvckFuZFByb2R1Y3QodWludDE2X3QgdmVu
ZG9ySUQKIHsKICAgICAvLyBDaGVjayB0aGUgdmVuZG9yL3Byb2R1Y3QgSURzIGFnYWlucyBhIGhh
cmQgY29kZWQgbGlzdCBvZiBjb250cm9sbGVycyB3ZSBleHBlY3QgdG8gd29yayB3ZWxsIHdpdGgK
ICAgICAvLyBHYW1lQ29udHJvbGxlci5mcmFtZXdvcmsgb24gMTAuMTUuCi0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEhhc2hTZXQ8dWludDMyX3Q+PiBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVH
YW1lcGFkczsKLQotICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKLSAgICBzdGQ6
OmNhbGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGli
bGVHYW1lcGFkcy0+YWRkKE5pbWJ1czEpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGli
bGVHYW1lcGFkcy0+YWRkKE5pbWJ1czIpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGli
bGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDEpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBh
dGlibGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDIpOwotICAgICAgICBnYW1lQ29udHJvbGxlckNv
bXBhdGlibGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDMpOwotICAgICAgICBnYW1lQ29udHJvbGxl
ckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKFN0cmF0dXNYTDQpOwotICAgICAgICBnYW1lQ29udHJv
bGxlckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKEhvcmlwYWRVbHRpbWF0ZSk7Ci0gICAgICAgIGdh
bWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoR2FtZXNpck0yKTsKLSAgICAgICAg
Z2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmFkZChYYm94T25lMSk7Ci0gICAgICAg
IGdhbWVDb250cm9sbGVyQ29tcGF0aWJsZUdhbWVwYWRzLT5hZGQoWGJveE9uZTIpOwotICAgICAg
ICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKFhib3hPbmUzKTsKLSAgICAg
ICAgZ2FtZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmFkZChEdWFsc2hvY2s0XzEpOwot
ICAgICAgICBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkcy0+YWRkKER1YWxzaG9jazRf
Mik7Ci0gICAgfSk7Ci0KKyAgICBzdGF0aWMgY29uc3RleHByIHVpbnQzMl90IGdhbWVDb250cm9s
bGVyQ29tcGF0aWJsZUdhbWVwYWRzQXJyYXlbXSA9IHsKKyAgICAgICAgU3RyYXR1c1hMMSwKKyAg
ICAgICAgU3RyYXR1c1hMMywKKyAgICAgICAgTmltYnVzMSwKKyAgICAgICAgWGJveE9uZTEsCisg
ICAgICAgIFhib3hPbmUyLAorICAgICAgICBYYm94T25lMywKKyAgICAgICAgRHVhbHNob2NrNF8x
LAorICAgICAgICBEdWFsc2hvY2s0XzIsCisgICAgICAgIEdhbWVzaXJNMiwKKyAgICAgICAgSG9y
aXBhZFVsdGltYXRlLAorICAgICAgICBTdHJhdHVzWEwyLAorICAgICAgICBTdHJhdHVzWEw0LAor
ICAgICAgICBOaW1idXMyLAorICAgIH07CisgICAgc3RhdGljIGNvbnN0ZXhwciBTb3J0ZWRBcnJh
eVNldCBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkc1NldCB7IGdhbWVDb250cm9sbGVy
Q29tcGF0aWJsZUdhbWVwYWRzQXJyYXkgfTsKICAgICB1aW50MzJfdCBmdWxsUHJvZHVjdElEID0g
KCgodWludDMyX3QpdmVuZG9ySUQpIDw8IDE2KSB8IHByb2R1Y3RJRDsKLSAgICByZXR1cm4gZ2Ft
ZUNvbnRyb2xsZXJDb21wYXRpYmxlR2FtZXBhZHMtPmNvbnRhaW5zKGZ1bGxQcm9kdWN0SUQpOwor
ICAgIHJldHVybiBnYW1lQ29udHJvbGxlckNvbXBhdGlibGVHYW1lcGFkc1NldC5jb250YWlucyhm
dWxsUHJvZHVjdElEKTsKIH0KICNlbmRpZiAvLyAhSEFWRShHQ0NPTlRST0xMRVJfSElEX0RFVklD
RV9DSEVDSykKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9t
YWMvSElER2FtZXBhZEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dhbWVwYWQv
bWFjL0hJREdhbWVwYWRFbGVtZW50LmgKaW5kZXggZDc2NzNhNWM0ZjkxNzJmMjEzYjUzZDRjNmIy
ODcxZDFkNzMwNzE5OS4uZDBlOTI4ZTQ2YTNkN2M5MWE2MWQyOWZmOWMzNjdhMzQwN2Y0NjFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2FtZXBhZC9tYWMvSElER2FtZXBh
ZEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nYW1lcGFkL21hYy9ISURH
YW1lcGFkRWxlbWVudC5oCkBAIC0yOSw5ICsyOSw2IEBACiAKICNpbmNsdWRlICJISURFbGVtZW50
LmgiCiAjaW5jbHVkZSAiU2hhcmVkR2FtZXBhZFZhbHVlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1VuaXF1ZVJl
Zi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggNWRkMmY5OTlkZGM4
NDc3ZTE0Y2RhNjI0ZjA5Y2U2NzI2MTlhMzJhNy4uN2I4N2FjOGNlYzU2ODE5YzQxZjU1ZDM5OGUw
YzdiYzk5ZTIyMDcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTIxLDIwICsyMSw2IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogCi0jaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nSGFzaC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi0jaWYg
T1MoREFSV0lOKSAmJiBVU0UoQ0cpCi0jaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCi0jaW5jbHVk
ZSA8Q29yZUdyYXBoaWNzL0NHRm9udC5oPgotI2VuZGlmCi0KLSNpZiBQTEFURk9STShXSU4pICYm
IFVTRShDT1JFX1RFWFQpCi0jaW5jbHVkZSA8cGFsL3NwaS93aW4vQ29yZVRleHRTUElXaW4uaD4K
LSNlbmRpZgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQ
bGF0Zm9ybURhdGEoV1RGOjpIYXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSEVWQ1V0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcAppbmRleCAzMzgy
YjMxZWZkMDI3Yzk0YWJjNDI3MWZlMjQ0MTRiZjIzM2Y0YjhiLi44NTcxM2Y0YmE1MjFkZTVkNWI2
OTFmNjk5M2QzY2JmOWVjM2M1ODE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9IRVZDVXRpbGl0aWVzLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL1JvYmluSG9vZEhhc2hNYXAu
aD4KLSNpbmNsdWRlIDx3dGYvUm9iaW5Ib29kSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0hhc2guaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdUb0ludGVnZXJDb252ZXJz
aW9uLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3RIYXNoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0SGFz
aC5oCmluZGV4IDg3Y2I2OTJhMjhlYjM5NzQ4ODI4NzYzMjlhOWNmZTgwODc4YTZkYzguLjQzMWE3
Mzk4Y2FhMDQwN2MxZDllOTFiOWU0NTk0MDk3M2Y4YTk1ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3RIYXNoLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdEhhc2guaApAQCAtMjMsMTMgKzIzLDExIEBACiAg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KICAKLSNpZm5kZWYgSW50UmVj
dEhhc2hfaAotI2RlZmluZSBJbnRSZWN0SGFzaF9oCisjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkludFBvaW50SGFzaC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKICNpbmNsdWRlICJJbnRTaXpl
SGFzaC5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5hbWVzcGFjZSBXVEYgewogCkBA
IC01Myw1ICs1MSwzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEhhc2hUcmFpdHM8V2ViQ29yZTo6SW50
UmVjdD4gOiBHZW5lcmljSGFzaFRyYWl0czxXZWJDb3JlOjpJbnRSCiB9OwogCiB9Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTUlNRVR5cGVD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hl
LmNwcAppbmRleCBkNGM0NzhiNGZjM2YwZDk5NWY3YjI2OGFhMjE5ZDRhYmIwMmFkZGNjLi5lYjA4
Yjg3MzczY2FmM2I3YzZhMWUyMmJhMWI0ZGEyYTgxMDQ0ZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NSU1FVHlwZUNhY2hlLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00OCwxMCArNDgsNyBA
QCBib29sIE1JTUVUeXBlQ2FjaGU6OnN1cHBvcnRzQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcm
IGNvbnRhaW5lclR5cGUpCiAgICAgaWYgKGlzVW5zdXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnRh
aW5lclR5cGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoc3RhdGljQ29udGFp
bmVyVHlwZUxpc3QoKS5jb250YWlucyhjb250YWluZXJUeXBlKSkKLSAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KLSAgICByZXR1cm4gc3VwcG9ydGVkVHlwZXMoKS5jb250YWlucyhjb250YWluZXJUeXBl
KTsKKyAgICByZXR1cm4gaXNTdGF0aWNDb250YWluZXJUeXBlKGNvbnRhaW5lclR5cGUpIHx8IHN1
cHBvcnRlZFR5cGVzKCkuY29udGFpbnMoY29udGFpbmVyVHlwZSk7CiB9CiAKIE1lZGlhUGxheWVy
RW51bXM6OlN1cHBvcnRzVHlwZSBNSU1FVHlwZUNhY2hlOjpjYW5EZWNvZGVUeXBlKGNvbnN0IFN0
cmluZyYgbWltZVR5cGUpCkBAIC0xMDYsMTAgKzEwMyw5IEBAIHZvaWQgTUlNRVR5cGVDYWNoZTo6
YWRkU3VwcG9ydGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG5ld1R5cGVzKQogICAgICAg
ICBtX3N1cHBvcnRlZFR5cGVzLT5hZGQodHlwZSk7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5n
LCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiBNSU1FVHlwZUNhY2hlOjpzdGF0aWNDb250YWlu
ZXJUeXBlTGlzdCgpCitib29sIE1JTUVUeXBlQ2FjaGU6OmlzU3RhdGljQ29udGFpbmVyVHlwZShT
dHJpbmdWaWV3KQogewotICAgIHN0YXRpYyBjb25zdCBhdXRvIGNhY2hlID0gbWFrZU5ldmVyRGVz
dHJveWVkKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHsgfSk7Ci0g
ICAgcmV0dXJuIGNhY2hlOworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBNSU1FVHlwZUNh
Y2hlOjppc1Vuc3VwcG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKQpAQCAtMTQ0LDEx
ICsxNDAsMTAgQEAgYm9vbCBNSU1FVHlwZUNhY2hlOjpzaG91bGRPdmVycmlkZUV4dGVuZGVkVHlw
ZShjb25zdCBDb250ZW50VHlwZSYgdHlwZSkKICAgICAvLyBpdCBpcyBub3QgUkZDIDMwMDMgY29t
cGxpYW50LgogICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKHR5cGUuY29udGFpbmVyVHlw
ZSgpLCAiYXVkaW8vbXBlZyIpKSB7CiAgICAgICAgIGF1dG8gY29kZWNzID0gdHlwZS5jb2RlY3Mo
KTsKLSAgICAgICAgcmV0dXJuIChjb2RlY3Muc2l6ZSgpID09IDEgJiYgY29kZWNzWzBdID09ICJt
cDMiKTsKKyAgICAgICAgcmV0dXJuIGNvZGVjcy5zaXplKCkgPT0gMSAmJiBjb2RlY3NbMF0gPT0g
Im1wMyI7CiAgICAgfQogCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCiB9Ci0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01JTUVUeXBlQ2FjaGUuaAppbmRleCA2YjE2NmI0
MjA5ZjM1M2Y3YzI5NTFhOTkzNWYzNDlmMmFlMzJiYWU3Li5jNWE3NzdmZDdkNjA3YmVjMjkyYjM4
YTZiZGNmNDYyNGI0MGZiNTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9NSU1FVHlwZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTUlNRVR5cGVDYWNoZS5oCkBAIC00Myw4ICs0Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5NSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVhbCBib29sIGlzQXZh
aWxhYmxlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBjb25zdCBIYXNoU2V0PFN0cmluZywgQVNDSUlD
YXNlSW5zZW5zaXRpdmVIYXNoPiYgc3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJik7CiAgICAg
dmlydHVhbCBNZWRpYVBsYXllckVudW1zOjpTdXBwb3J0c1R5cGUgY2FuRGVjb2RlVHlwZShjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNp
dGl2ZUhhc2g+JiBzdXBwb3J0ZWRUeXBlcygpOwogCkBAIC01NSw2ICs1Myw4IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGFkZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAK
IHByaXZhdGU6CisgICAgdmlydHVhbCBib29sIGlzU3RhdGljQ29udGFpbmVyVHlwZShTdHJpbmdW
aWV3KTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVbnN1cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3Qg
U3RyaW5nJik7CiAgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmlu
ZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYpOwogICAgIHZpcnR1YWwgYm9vbCBjYW5EZWNv
ZGVFeHRlbmRlZFR5cGUoY29uc3QgQ29udGVudFR5cGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVU
eXBlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmgKaW5kZXggOTMxNzlmMjhkNDBjNzVjZDg0Mjdj
YjE0NmE4MjAzNDJiMmI4YzVhNS4uMDA1Mjc1YTVhZjUxMzNjMDY3YjNmZTRiOWM1MjJmZTA5ZmU4
YzZlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9BVkFzc2V0TUlNRVR5cGVDYWNoZS5o
CkBAIC00MSw4ICs0MSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENhY2hlTUlNRVR5cGVzQ2Fs
bGJhY2soQ2FjaGVNSU1FVHlwZXNDYWxsYmFjayYmIGNhbGxiYWNrKSB7IG1fY2FjaGVUeXBlQ2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsgfQogCiAgICAgYm9vbCBpc0F2YWlsYWJsZSgpIGNv
bnN0IGZpbmFsOwotICAgIGNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2
ZUhhc2g+JiBzdGF0aWNDb250YWluZXJUeXBlTGlzdCgpIGZpbmFsOwotICAgIGJvb2wgaXNVbnN1
cHBvcnRlZENvbnRhaW5lclR5cGUoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICB2b2lkIGFk
ZFN1cHBvcnRlZFR5cGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CiAKQEAgLTUwLDYgKzQ4LDgg
QEAgcHJpdmF0ZToKICAgICBmcmllbmQgTmV2ZXJEZXN0cm95ZWQ8QVZBc3NldE1JTUVUeXBlQ2Fj
aGU+OwogICAgIEFWQXNzZXRNSU1FVHlwZUNhY2hlKCkgPSBkZWZhdWx0OwogCisgICAgYm9vbCBp
c1N0YXRpY0NvbnRhaW5lclR5cGUoU3RyaW5nVmlldykgZmluYWw7CisgICAgYm9vbCBpc1Vuc3Vw
cG9ydGVkQ29udGFpbmVyVHlwZShjb25zdCBTdHJpbmcmKSBmaW5hbDsKICAgICBib29sIGNhbkRl
Y29kZUV4dGVuZGVkVHlwZShjb25zdCBDb250ZW50VHlwZSYpIGZpbmFsOwogICAgIHZvaWQgaW5p
dGlhbGl6ZUNhY2hlKEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+Jikg
ZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0FWQXNzZXRNSU1FVHlwZUNhY2hlLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUu
bW0KaW5kZXggMjIyMzdlZTg5Zjc3ZjM0YjJjZTExMzE5OTE0ZjE4ODY2YTcwZWQ5Zi4uN2ViZTUx
MjVhZjY1MDIyZWEyOGJmYzI1NWM2NjQzOWY0MTcxNTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQVZBc3NldE1JTUVUeXBl
Q2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQVZBc3NldE1JTUVUeXBlQ2FjaGUubW0KQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE2LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICszMCw4IEBACiAKICNp
bXBvcnQgIkNvbnRlbnRUeXBlLmgiCiAjaW1wb3J0ICJTb3VyY2VCdWZmZXJQYXJzZXJXZWJNLmgi
CisjaW1wb3J0IDx3dGYvU29ydGVkQXJyYXlNYXAuaD4KKwogI2ltcG9ydCA8cGFsL2NmL0NvcmVN
ZWRpYVNvZnRMaW5rLmg+CiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aD4KIApAQCAtOTIsNDIgKzk0LDQzIEBAIGJvb2wgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmlzVW5z
dXBwb3J0ZWRDb250YWluZXJUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWNvbnN0IEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+
JiBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6c3RhdGljQ29udGFpbmVyVHlwZUxpc3QoKQorYm9vbCBB
VkFzc2V0TUlNRVR5cGVDYWNoZTo6aXNTdGF0aWNDb250YWluZXJUeXBlKFN0cmluZ1ZpZXcgdHlw
ZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBjYWNoZSA9IG1ha2VOZXZlckRlc3Ryb3llZChI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiB7Ci0gICAgICAgICJhcHBs
aWNhdGlvbi92bmQuYXBwbGUubXBlZ3VybCJfcywKLSAgICAgICAgImFwcGxpY2F0aW9uL3gtbXBl
Z3VybCJfcywKLSAgICAgICAgImF1ZGlvLzNncHAiX3MsCi0gICAgICAgICJhdWRpby9hYWMiX3Ms
Ci0gICAgICAgICJhdWRpby9hYWNwIl9zLAotICAgICAgICAiYXVkaW8vYWlmZiJfcywKLSAgICAg
ICAgImF1ZGlvL2Jhc2ljIl9zLAotICAgICAgICAiYXVkaW8vbXAzIl9zLAotICAgICAgICAiYXVk
aW8vbXA0Il9zLAotICAgICAgICAiYXVkaW8vbXBlZyJfcywKLSAgICAgICAgImF1ZGlvL21wZWcz
Il9zLAotICAgICAgICAiYXVkaW8vbXBlZ3VybCJfcywKLSAgICAgICAgImF1ZGlvL21wZyJfcywK
LSAgICAgICAgImF1ZGlvL3ZuZC53YXZlIl9zLAotICAgICAgICAiYXVkaW8vd2F2Il9zLAotICAg
ICAgICAiYXVkaW8vd2F2ZSJfcywKLSAgICAgICAgImF1ZGlvL3gtYWFjIl9zLAotICAgICAgICAi
YXVkaW8veC1haWZmIl9zLAotICAgICAgICAiYXVkaW8veC1tNGEiX3MsCi0gICAgICAgICJhdWRp
by94LW1wZWd1cmwiX3MsCi0gICAgICAgICJhdWRpby94LXdhdiJfcywKLSAgICAgICAgInZpZGVv
LzNncHAiX3MsCi0gICAgICAgICJ2aWRlby8zZ3BwMiJfcywKLSAgICAgICAgInZpZGVvL21wNCJf
cywKLSAgICAgICAgInZpZGVvL21wZWciX3MsCi0gICAgICAgICJ2aWRlby9tcGVnMiJfcywKLSAg
ICAgICAgInZpZGVvL21wZyJfcywKLSAgICAgICAgInZpZGVvL3F1aWNrdGltZSJfcywKLSAgICAg
ICAgInZpZGVvL3gtbTR2Il9zLAotICAgICAgICAidmlkZW8veC1tcGVnIl9zLAotICAgICAgICAi
dmlkZW8veC1tcGciX3MsCi0gICAgfSk7Ci0gICAgcmV0dXJuIGNhY2hlOworICAgIHN0YXRpYyBj
b25zdGV4cHIgQ29tcGFyYWJsZUxldHRlcnNMaXRlcmFsIHN0YXRpY0NvbnRhaW5lclR5cGVzQXJy
YXlbXSA9IHsKKyAgICAgICAgImFwcGxpY2F0aW9uL3ZuZC5hcHBsZS5tcGVndXJsIiwKKyAgICAg
ICAgImFwcGxpY2F0aW9uL3gtbXBlZ3VybCIsCisgICAgICAgICJhdWRpby8zZ3BwIiwKKyAgICAg
ICAgImF1ZGlvL2FhYyIsCisgICAgICAgICJhdWRpby9hYWNwIiwKKyAgICAgICAgImF1ZGlvL2Fp
ZmYiLAorICAgICAgICAiYXVkaW8vYmFzaWMiLAorICAgICAgICAiYXVkaW8vbXAzIiwKKyAgICAg
ICAgImF1ZGlvL21wNCIsCisgICAgICAgICJhdWRpby9tcGVnIiwKKyAgICAgICAgImF1ZGlvL21w
ZWczIiwKKyAgICAgICAgImF1ZGlvL21wZWd1cmwiLAorICAgICAgICAiYXVkaW8vbXBnIiwKKyAg
ICAgICAgImF1ZGlvL3ZuZC53YXZlIiwKKyAgICAgICAgImF1ZGlvL3dhdiIsCisgICAgICAgICJh
dWRpby93YXZlIiwKKyAgICAgICAgImF1ZGlvL3gtYWFjIiwKKyAgICAgICAgImF1ZGlvL3gtYWlm
ZiIsCisgICAgICAgICJhdWRpby94LW00YSIsCisgICAgICAgICJhdWRpby94LW1wZWd1cmwiLAor
ICAgICAgICAiYXVkaW8veC13YXYiLAorICAgICAgICAidmlkZW8vM2dwcCIsCisgICAgICAgICJ2
aWRlby8zZ3BwMiIsCisgICAgICAgICJ2aWRlby9tcDQiLAorICAgICAgICAidmlkZW8vbXBlZyIs
CisgICAgICAgICJ2aWRlby9tcGVnMiIsCisgICAgICAgICJ2aWRlby9tcGciLAorICAgICAgICAi
dmlkZW8vcXVpY2t0aW1lIiwKKyAgICAgICAgInZpZGVvL3gtbTR2IiwKKyAgICAgICAgInZpZGVv
L3gtbXBlZyIsCisgICAgICAgICJ2aWRlby94LW1wZyIsCisgICAgfTsKKyAgICBzdGF0aWMgY29u
c3RleHByIFNvcnRlZEFycmF5U2V0IHN0YXRpY0NvbnRhaW5lclR5cGVzU2V0IHsgc3RhdGljQ29u
dGFpbmVyVHlwZXNBcnJheSB9OworICAgIHJldHVybiBzdGF0aWNDb250YWluZXJUeXBlc1NldC5j
b250YWlucyh0eXBlKTsKIH0KIAogdm9pZCBBVkFzc2V0TUlNRVR5cGVDYWNoZTo6YWRkU3VwcG9y
dGVkVHlwZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQpAQCAtMTQzLDcgKzE0Niw3IEBA
IHZvaWQgQVZBc3NldE1JTUVUeXBlQ2FjaGU6OmluaXRpYWxpemVDYWNoZShIYXNoU2V0PFN0cmlu
ZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVICiAgICAgaWYgKCFpc0F2YWlsYWJsZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBmb3IgKE5TU3RyaW5nKiB0eXBlIGluIFtQQUw6OmdldEFWVVJMQXNz
ZXRDbGFzcygpIGF1ZGlvdmlzdWFsTUlNRVR5cGVzXSkKKyAgICBmb3IgKE5TU3RyaW5nICp0eXBl
IGluIFtQQUw6OmdldEFWVVJMQXNzZXRDbGFzcygpIGF1ZGlvdmlzdWFsTUlNRVR5cGVzXSkKICAg
ICAgICAgY2FjaGUuYWRkKHR5cGUpOwogCiAjaWYgRU5BQkxFKFdFQk1fRk9STUFUX1JFQURFUikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQy5oCmluZGV4IDYxNDY1YTE1NjdjYzA2ODU1MjcwYTM3YmI3MzYw
OTNkOTJmMzRhM2MuLmY5YWIwMjYyZTM2ZDljOTFhNTAyYzZiNWZiNjk0OGZmMDVlOTNkNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWly
UGxheVN0cmVhbWluZ0FWRk9iakMuaApAQCAtMzAsOSArMzAsNyBAQAogI2luY2x1ZGUgIkNETUlu
c3RhbmNlLmgiCiAjaW5jbHVkZSAiQ0RNSW5zdGFuY2VTZXNzaW9uLmgiCiAjaW5jbHVkZSA8d3Rm
L0Z1bmN0aW9uLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIE9CSkNfQ0xBU1Mg
QVZDb250ZW50S2V5UmVwb3J0R3JvdXA7CiBPQkpDX0NMQVNTIEFWQ29udGVudEtleVJlcXVlc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2Uv
RmlsdGVyRWZmZWN0UmVuZGVyZXJDb3JlSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5oCmluZGV4
IDhiYzUwZDVlNzlkZDY2Zjc1OGNlMTQzYzVjOGY5YTdkNTlkYTA2OGYuLjZjOGZjNWQ0NjM0MjU5
MmZkZWZmMzIyOWQ0OGRhMmE5YzYwMWE5ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJFZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GaWx0ZXJF
ZmZlY3RSZW5kZXJlckNvcmVJbWFnZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgVVNFKENPUkVf
SU1BR0UpCiAKICNpbXBvcnQgIkZpbHRlckVmZmVjdFJlbmRlcmVyLmgiCi0jaW1wb3J0IDx3dGYv
SGFzaE1hcC5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgogCiBPQkpDX0NMQVNTIENJSW1hZ2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRz
LmNwcAppbmRleCAzZTYxY2FkMzdkMThmMWQ1YWRkZDEwMGU0OTE4YmNhOGUyZDUwYzk1Li43NzZm
NThmOTkxNDM4MDZmMjk5ZGM3ZjUyZjQxNjIzNzNlNDllNGIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVk
Q29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cy5jcHAKQEAgLTI4LDEwICsy
OCw2IEBACiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCi0jaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9tU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3Rl
eHQvQXRvbVN0cmluZ0hhc2guaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBib29sIFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50czo6c3VwcG9ydHNDb25zdHJhaW50KE1l
ZGlhQ29uc3RyYWludFR5cGUgY29uc3RyYWludCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9pb3MvQVZB
dWRpb1Nlc3Npb25DYXB0dXJlRGV2aWNlTWFuYWdlci5oCmluZGV4IDI2MTYwODA0ZjdjNWE3ZmZj
NmQ2MTUzNGExM2U4NTNiZTVhNTg4NjYuLjY5Zjg0YmY3ZTVlZWM3Zjc5ZDc4ZGMwMDNhMmRkY2Ni
YTdhNmM0ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L2lvcy9BVkF1ZGlvU2Vzc2lvbkNhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vaW9zL0FWQXVkaW9TZXNzaW9uQ2FwdHVyZURldmlj
ZU1hbmFnZXIuaApAQCAtMjksOCArMjksNiBAQAogCiAjaW5jbHVkZSAiQ2FwdHVyZURldmljZU1h
bmFnZXIuaCIKICNpbmNsdWRlICJHZW5lcmljVGFza1F1ZXVlLmgiCi0jaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUuaD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKaW5kZXggZjBiMjFh
NGFiNTFhYTVlNTFhODRjNzA1ODc2YzBhY2Q0OTBjYzI3My4uNmFhYzE1NDU2YzkwYTZhYmQ5MWE0
MzJlODdkOGNjZmMyOTlhMjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyLmgKQEAgLTMxLDggKzMxLDYgQEAKICNpbmNsdWRlICJDYXB0dXJlRGV2aWNlTWFu
YWdlci5oIgogI2luY2x1ZGUgIkdlbmVyaWNUYXNrUXVldWUuaCIKICNpbmNsdWRlIDxDb3JlQXVk
aW8vQ29yZUF1ZGlvLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDViODIyZjI5MTRl
YzNkMDhjZjliOGZjYzM3MTk5YTc4ZGY4N2VkZjEuLjRiNTU1ZDRjN2NlMzNhMDUzZDI0MzdjMzZk
ZWM5OTFmMTZkMjg1NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtMzMs
MTAgKzMzLDYgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlRmFjdG9yeS5oIgogI2lu
Y2x1ZGUgPEF1ZGlvVG9vbGJveC9BdWRpb1Rvb2xib3guaD4KICNpbmNsdWRlIDxDb3JlQXVkaW8v
Q29yZUF1ZGlvVHlwZXMuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0
Zi9Mb2NrLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIHR5cGVkZWYgc3RydWN0
IE9wYXF1ZUNNQ2xvY2sqIENNQ2xvY2tSZWY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jZi9Gb3JtRGF0YVN0cmVhbUNGTmV0LmNwcAppbmRleCBkN2Rk
NjNmZWFiZmIwM2MwMTkyZjI0OWY4NjhhMzQxMDAzY2E0NWY2Li5jY2Q2YWM1NjIyMzFmZjhjMjk4
ZmQ2YzQ1MzQxNjA5OWUxZDE4ZDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL0Zvcm1EYXRhU3RyZWFtQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY2YvRm9ybURhdGFTdHJlYW1DRk5ldC5jcHAKQEAgLTM2LDcgKzM2
LDYgQEAKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4K
ICNpbmNsdWRlIDx3dGYvU2NoZWR1bGVQYWlyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL21hYy9VVElVdGlsaXRpZXMubW0KaW5kZXggNzBiNDM5M2M2MzYzNzE5
NmY5OGMwNjMyZmFiNjExNWQ3OGE4MWJjYy4uNmQ1ZDVjNTdlZTBiY2E1YzYxMGQyZGIwZTgyYzRl
NmY0OTFhZmY5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9t
YWMvVVRJVXRpbGl0aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1VUSVV0aWxpdGllcy5tbQpAQCAtMjgsOCArMjgsOCBAQAogCiAjaW1wb3J0IDx3dGYvTG9j
ay5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBvcnQgPHd0Zi9Tb3J0ZWRBcnJh
eU1hcC5oPgogI2ltcG9ydCA8d3RmL1RpbnlMUlVDYWNoZS5oPgotI2ltcG9ydCA8d3RmL3RleHQv
U3RyaW5nSGFzaC5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQpAQCAtODUsMjQgKzg1LDE2IEBAIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCi1zdGF0aWMgQ0ZT
dHJpbmdSZWYgVVRJRnJvbVVua25vd25NSU1FVHlwZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQor
c3RhdGljIENGU3RyaW5nUmVmIFVUSUZyb21Vbmtub3duTUlNRVR5cGUoU3RyaW5nVmlldyBtaW1l
VHlwZSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYXV0byBtYXAgPSBtYWtlTmV2ZXJEZXN0cm95ZWQo
W10gewotICAgICAgICBIYXNoTWFwPFN0cmluZywgQ0ZTdHJpbmdSZWYsIEFTQ0lJQ2FzZUluc2Vu
c2l0aXZlSGFzaD4gbWFwOwotICAgICAgICBhdXRvIHBpeGFyTUlNRVR5cGUgPSBDRlNUUigiY29t
LnBpeGFyLnVuaXZlcnNhbC1zY2VuZS1kZXNjcmlwdGlvbi1tb2JpbGUiKTsKLSAgICAgICAgbWFw
LmFkZCgibW9kZWwvdm5kLnVzZHoremlwIl9zLCBwaXhhck1JTUVUeXBlKTsKLSAgICAgICAgbWFw
LmFkZCgibW9kZWwvdXNkIl9zLCBwaXhhck1JTUVUeXBlKTsKLSAgICAgICAgbWFwLmFkZCgibW9k
ZWwvdm5kLnBpeGFyLnVzZCJfcywgcGl4YXJNSU1FVHlwZSk7Ci0gICAgICAgIG1hcC5hZGQoIm1v
ZGVsL3ZuZC51c2R6K3ppcCJfcywgQ0ZTVFIoImNvbS5hcHBsZS5yZWFsaXR5IikpOwotICAgICAg
ICByZXR1cm4gbWFwOwotICAgIH0oKSk7Ci0KLSAgICBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYg
ZW1wdHlDRlN0cmluZyA9IENGU1RSKCIiKTsKLSAgICBhdXRvIG1hcEVudHJ5ID0gbWFwLmdldCgp
LmZpbmQobWltZVR5cGUpOwotICAgIGlmIChtYXBFbnRyeSA9PSBtYXAuZ2V0KCkuZW5kKCkpCi0g
ICAgICAgIHJldHVybiBlbXB0eUNGU3RyaW5nOwotCi0gICAgcmV0dXJuIG1hcEVudHJ5LT52YWx1
ZTsKKyAgICBzdGF0aWMgY29uc3RleHByIHN0ZDo6cGFpcjxDb21wYXJhYmxlTGV0dGVyc0xpdGVy
YWwsIE5TU3RyaW5nICo+IHR5cGVzQXJyYXlbXSA9IHsKKyAgICAgICAgeyAibW9kZWwvdXNkIiwg
QCJjb20ucGl4YXIudW5pdmVyc2FsLXNjZW5lLWRlc2NyaXB0aW9uLW1vYmlsZSIgfSwKKyAgICAg
ICAgeyAibW9kZWwvdm5kLnBpeGFyLnVzZCIsIEAiY29tLnBpeGFyLnVuaXZlcnNhbC1zY2VuZS1k
ZXNjcmlwdGlvbi1tb2JpbGUiIH0sCisgICAgICAgIHsgIm1vZGVsL3ZuZC5yZWFsaXR5IiwgQCJj
b20uYXBwbGUucmVhbGl0eSIgfSwKKyAgICAgICAgeyAibW9kZWwvdm5kLnVzZHoremlwIiwgQCJj
b20ucGl4YXIudW5pdmVyc2FsLXNjZW5lLWRlc2NyaXB0aW9uLW1vYmlsZSIgfSwKKyAgICB9Owor
ICAgIHN0YXRpYyBjb25zdGV4cHIgU29ydGVkQXJyYXlNYXAgdHlwZXNNYXAgeyB0eXBlc0FycmF5
IH07CisgICAgcmV0dXJuIChfX2JyaWRnZSBDRlN0cmluZ1JlZil0eXBlc01hcC5nZXQobWltZVR5
cGUsIEAiIik7CiB9CiAKIHN0cnVjdCBVVElGcm9tTUlNRVR5cGVDYWNoZVBvbGljeSA6IFRpbnlM
UlVDYWNoZVBvbGljeTxTdHJpbmcsIFJldGFpblB0cjxDRlN0cmluZ1JlZj4+IHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Db21wbGV4TGluZUxheW91dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvQ29tcGxleExpbmVMYXlvdXQuY3BwCmluZGV4IDhmMDUxN2Mz
ZTg3ODdmOTYzMjcwZmI4Yjk3NzczMzkyZDBhOWRhYjguLmQwN2MyOGQzMTA3MTE3MjkwNzc4Yjgy
ZjVkMmE0NDFiMGE0ZjU1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9D
b21wbGV4TGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NvbXBs
ZXhMaW5lTGF5b3V0LmNwcApAQCAtNTIwLDExICs1MjAsOCBAQCBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0TG9naWNhbFdpZHRoRm9yVGV4dFJ1bihSb290SW5saW5lQm94KiBsaW5lQm94LCBCaWRpUnVu
KiBydQogICAgICAgICAgICAgICAgIG1lYXN1cmVkV2lkdGggKz0gd29yZE1lYXN1cmVtZW50Lndp
ZHRoOwogICAgICAgICAgICAgYXRGaXJzdFdvcmRNZWFzdXJlbWVudCA9IGZhbHNlOwogCi0gICAg
ICAgICAgICBpZiAoIXdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgICAgIEhhc2hTZXQ8Y29uc3QgRm9udCo+Ojpjb25zdF9pdGVyYXRvciBlbmQg
PSB3b3JkTWVhc3VyZW1lbnQuZmFsbGJhY2tGb250cy5lbmQoKTsKLSAgICAgICAgICAgICAgICBm
b3IgKEhhc2hTZXQ8Y29uc3QgRm9udCo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IHdvcmRNZWFzdXJl
bWVudC5mYWxsYmFja0ZvbnRzLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKLSAgICAgICAgICAg
ICAgICAgICAgZmFsbGJhY2tGb250cy5hZGQoKml0KTsKLSAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIGZvciAoYXV0byYgZm9udCA6IHdvcmRNZWFzdXJlbWVudC5mYWxsYmFja0ZvbnRzKQorICAg
ICAgICAgICAgICAgIGZhbGxiYWNrRm9udHMuYWRkKGZvbnQpOwogICAgICAgICB9CiAgICAgICAg
IGlmIChtZWFzdXJlZFdpZHRoICYmIGxhc3RFbmRPZmZzZXQgIT0gcnVuLT5tX3N0b3ApIHsKICAg
ICAgICAgICAgIC8vIElmIHdlIGRvbid0IGhhdmUgZW5vdWdoIGNhY2hlZCBkYXRhLCB3ZSdsbCBt
ZWFzdXJlIHRoZSBydW4gYWdhaW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5oCmluZGV4IDM5NjE1MzdiYmY2OWQ0YTEyN2Ri
MTgzMTY1ZTEwODhjNWE2NTVkNjIuLmI3ZjBhZGViMTc1YWU4NTI3MGI0OGUyMmQyZTEzNTdiNmNj
NDYyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5k
ZXJUcmVlVXBkYXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9S
ZW5kZXJUcmVlVXBkYXRlci5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiU3R5bGVDaGFu
Z2UuaCIKICNpbmNsdWRlICJTdHlsZVRyZWVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlVXBk
YXRlLmgiCi0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvU3RvcmFnZU5hbWVzcGFjZVByb3ZpZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0
b3JhZ2VOYW1lc3BhY2VQcm92aWRlci5oCmluZGV4IGRlZDYzMGZjMDYxZmJhZjkzMThmNDVhMDE5
NGI1OTgxZTYxYWQyN2YuLjQ0ZGRlNDVjODYyMzdmMzY1Zjg2ZWU0ZWIwMWFhNDlmYzNiM2ZhNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFjZVByb3Zp
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlUHJvdmlk
ZXIuaApAQCAtMjYsOSArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbkhhc2guaCIKLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogCiBuYW1lc3BhY2UgUEFMIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0
b3JhZ2UvU3RvcmFnZVF1b3RhTWFuYWdlci5oIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9y
YWdlUXVvdGFNYW5hZ2VyLmgKaW5kZXggOWFmMWQ2ZThlZTE2NTM5Yzg0NTBhMWUxYWI0YzUwN2Qy
YjI5NGU2MS4uY2U5MzQyMTI0ZmU2MTZlZmZmZTZjYTExZTE1ZDNjZTFjOWVlMTkzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlUXVvdGFNYW5hZ2VyLmgKQEAgLTI3LDggKzI3
LDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0
Zi9EZXF1ZS5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogI2luY2x1ZGUgPHd0Zi9Xb3JrUXVldWUu
aD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKaW5kZXggODkwOWIyYmMxOTllNDVlZWIw
YTBlOWRiYTc5MTg0NzIxZGY5ODk0MC4uOTljZTEzZjYxN2IwZWY1YTAxZGUxMzRlODQ0MTFiZWVj
OTM5ZmJkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlN0eWxlQ2hhbmdlLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9M
aXN0SGFzaFNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRml0
VG9WaWV3Qm94LmgKaW5kZXggYTU0MjFkZmNhYzg0NGYzYjUxZTQ0NmM1ZDIxMDAwN2M1ZGZiNGRi
Yy4uYWU4OGNiMDVlYWFlOTRhMTM4ZWU4NGY2YWJmYjFhNGNhYTM4MDQ2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpby5oIgogI2luY2x1ZGUgIlNW
R1Byb3BlcnR5T3duZXJSZWdpc3RyeS5oIgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rl
c3RzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAKaW5kZXggYjZiMDk5MmQ4
OTFkMGMzNTZjYmFhMTA5YzY1ZjA2NzA4MzMzNDQzNi4uZjA0YjRmYWYzZTc4MDViNWEzMmNkYzlj
N2MyMDc2MGY5NjZmOTc1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Rlc3Rz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGVzdHMuY3BwCkBAIC0xLDcgKzEsNyBA
QAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIw
MTggQXBwbGUgSW5jLiBBbGwgcmlnaHQgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodCByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpA
QCAtMjgsNyArMjgsNyBAQAogI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3Ry
aW5nTGlzdC5oIgogI2luY2x1ZGUgPHd0Zi9MYW5ndWFnZS5oPgotI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi9Tb3J0ZWRBcnJheU1hcC5oPgogCiAjaWYgRU5B
QkxFKE1BVEhNTCkKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgpAQCAtMzYsNzUgKzM2LDU3IEBA
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotdXNpbmcgbmFtZXNwYWNlIFNWR05hbWVzOwotCi1z
dGF0aWMgY29uc3QgSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4mIHN1
cHBvcnRlZFNWR0ZlYXR1cmVzKCkKLXsKLSNkZWZpbmUgUFJFRklYX1czQyAib3JnLnczYy4iCi0j
ZGVmaW5lIFBSRUZJWF9TVkcxMSAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSMi
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNl
bnNpdGl2ZUhhc2g+PiBmZWF0dXJlcyA9IFtdIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IEFTQ0lJ
TGl0ZXJhbCBmZWF0dXJlczEwW10gPSB7Ci0gICAgICAgICAgICBQUkVGSVhfVzNDICJkb20iX3Ms
Ci0gICAgICAgICAgICBQUkVGSVhfVzNDICJkb20uc3ZnIl9zLAotICAgICAgICAgICAgUFJFRklY
X1czQyAiZG9tLnN2Zy5zdGF0aWMiX3MsCi0gICAgICAgICAgICBQUkVGSVhfVzNDICJzdmciX3Ms
Ci0gICAgICAgICAgICBQUkVGSVhfVzNDICJzdmcuc3RhdGljIl9zLAotICAgICAgICB9OwotICAg
ICAgICBzdGF0aWMgY29uc3QgQVNDSUlMaXRlcmFsIGZlYXR1cmVzMTFbXSA9IHsKLSAgICAgICAg
ICAgIFBSRUZJWF9TVkcxMSAiYW5pbWF0aW9uIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzEx
ICJiYXNlZ3JhcGhpY3NhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJh
c2ljY2xpcCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiYmFzaWNmaWx0ZXIiX3MsCi0g
ICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljcGFpbnRhdHRyaWJ1dGUiX3MsCi0gICAgICAg
ICAgICBQUkVGSVhfU1ZHMTEgImJhc2ljc3RydWN0dXJlIl9zLAotICAgICAgICAgICAgUFJFRklY
X1NWRzExICJiYXNpY3RleHQiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImNsaXAiX3Ms
Ci0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImNvbmRpdGlvbmFscHJvY2Vzc2luZyJfcywKLSAg
ICAgICAgICAgIFBSRUZJWF9TVkcxMSAiY29udGFpbmVyYXR0cmlidXRlIl9zLAotICAgICAgICAg
ICAgUFJFRklYX1NWRzExICJjb3JlYXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJjdXJzb3IiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImRvY3VtZW50ZXZlbnRz
YXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJleHRlbnNpYmlsaXR5Il9z
LAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJleHRlcm5hbHJlc291cmNlc3JlcXVpcmVkIl9z
LAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJmaWx0ZXIiX3MsCi0gICAgICAgICAgICBQUkVG
SVhfU1ZHMTEgImdyYWRpZW50Il9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJncmFwaGlj
YWxldmVudHNhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImdyYXBoaWNz
YXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJoeXBlcmxpbmtpbmciX3Ms
Ci0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgImltYWdlIl9zLAotICAgICAgICAgICAgUFJFRklY
X1NWRzExICJtYXJrZXIiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgIm1hc2siX3MsCi0g
ICAgICAgICAgICBQUkVGSVhfU1ZHMTEgIm9wYWNpdHlhdHRyaWJ1dGUiX3MsCi0gICAgICAgICAg
ICBQUkVGSVhfU1ZHMTEgInBhaW50YXR0cmlidXRlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJwYXR0ZXJuIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJzY3JpcHQiX3MsCi0g
ICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInNoYXBlIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJzdHJ1Y3R1cmUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEgInN0eWxlIl9zLAot
ICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdmctYW5pbWF0aW9uIl9zLAotICAgICAgICAgICAg
UFJFRklYX1NWRzExICJzdmdkb20tYW5pbWF0aW9uIl9zLAotICAgICAgICAgICAgUFJFRklYX1NW
RzExICJ0ZXh0Il9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJ2aWV3Il9zLAotICAgICAg
ICAgICAgUFJFRklYX1NWRzExICJ2aWV3cG9ydGF0dHJpYnV0ZSJfcywKLSAgICAgICAgICAgIFBS
RUZJWF9TVkcxMSAieGxpbmthdHRyaWJ1dGUiX3MsCi0gICAgICAgICAgICBQUkVGSVhfU1ZHMTEg
ImJhc2ljZm9udCJfcywKLSAgICAgICAgICAgIFBSRUZJWF9TVkcxMSAiZm9udCJfcywKLSAgICAg
ICAgICAgIFBSRUZJWF9TVkcxMSAic3ZnIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJz
dmctc3RhdGljIl9zLAotICAgICAgICAgICAgUFJFRklYX1NWRzExICJzdmdkb20iX3MsCi0gICAg
ICAgICAgICBQUkVGSVhfU1ZHMTEgInN2Z2RvbS1zdGF0aWMiX3MsCi0gICAgICAgIH07Ci0gICAg
ICAgIEhhc2hTZXQ8U3RyaW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+IHNldDsKLSAgICAg
ICAgZm9yIChhdXRvJiBmZWF0dXJlIDogZmVhdHVyZXMxMCkKLSAgICAgICAgICAgIHNldC5hZGQo
ZmVhdHVyZSk7Ci0gICAgICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IGZlYXR1cmVzMTEpCi0gICAg
ICAgICAgICBzZXQuYWRkKGZlYXR1cmUpOwotICAgICAgICByZXR1cm4gc2V0OwotICAgIH0oKTsK
LSN1bmRlZiBQUkVGSVhfVzNDCi0jdW5kZWYgUFJFRklYX1NWRzExCi0gICAgcmV0dXJuIGZlYXR1
cmVzOwotfQorY29uc3RleHByIENvbXBhcmFibGVMZXR0ZXJzTGl0ZXJhbCBzdXBwb3J0ZWRTVkdG
ZWF0dXJlQXJyYXlbXSA9IHsKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVy
ZSNhbmltYXRpb24iLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2Jh
c2VncmFwaGljc2F0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2Zl
YXR1cmUjYmFzaWNjbGlwIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVy
ZSNiYXNpY2ZpbHRlciIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUj
YmFzaWNmb250IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNiYXNp
Y3BhaW50YXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVy
ZSNiYXNpY3N0cnVjdHVyZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1
cmUjYmFzaWN0ZXh0IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNj
bGlwIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNjb25kaXRpb25h
bHByb2Nlc3NpbmciLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI2Nv
bnRhaW5lcmF0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1
cmUjY29yZWF0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1
cmUjY3Vyc29yIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNkb2N1
bWVudGV2ZW50c2F0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2Zl
YXR1cmUjZXh0ZW5zaWJpbGl0eSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2Zl
YXR1cmUjZXh0ZXJuYWxyZXNvdXJjZXNyZXF1aXJlZCIsCisgICAgImh0dHA6Ly93d3cudzMub3Jn
L3RyL3N2ZzExL2ZlYXR1cmUjZmlsdGVyIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3Zn
MTEvZmVhdHVyZSNmb250IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVy
ZSNncmFkaWVudCIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjZ3Jh
cGhpY2FsZXZlbnRzYXR0cmlidXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEv
ZmVhdHVyZSNncmFwaGljc2F0dHJpYnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2
ZzExL2ZlYXR1cmUjaHlwZXJsaW5raW5nIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3Zn
MTEvZmVhdHVyZSNpbWFnZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1
cmUjbWFya2VyIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNtYXNr
IiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNvcGFjaXR5YXR0cmli
dXRlIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNwYWludGF0dHJp
YnV0ZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjcGF0dGVybiIs
CisgICAgImh0dHA6Ly93d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc2NyaXB0IiwKKyAgICAi
aHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzaGFwZSIsCisgICAgImh0dHA6Ly93
d3cudzMub3JnL3RyL3N2ZzExL2ZlYXR1cmUjc3RydWN0dXJlIiwKKyAgICAiaHR0cDovL3d3dy53
My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSNzdHlsZSIsCisgICAgImh0dHA6Ly93d3cudzMub3JnL3Ry
L3N2ZzExL2ZlYXR1cmUjc3ZnIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVh
dHVyZSNzdmctYW5pbWF0aW9uIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVh
dHVyZSNzdmctc3RhdGljIiwKKyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVy
ZSNzdmdkb20iLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N2Z2Rv
bS1hbmltYXRpb24iLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3N2
Z2RvbS1zdGF0aWMiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3Rl
eHQiLAorICAgICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3ZpZXciLAorICAg
ICJodHRwOi8vd3d3LnczLm9yZy90ci9zdmcxMS9mZWF0dXJlI3ZpZXdwb3J0YXR0cmlidXRlIiwK
KyAgICAiaHR0cDovL3d3dy53My5vcmcvdHIvc3ZnMTEvZmVhdHVyZSN4bGlua2F0dHJpYnV0ZSIs
CisgICAgIm9yZy53M2MuZG9tIiwKKyAgICAib3JnLnczYy5kb20uc3ZnIiwKKyAgICAib3JnLncz
Yy5kb20uc3ZnLnN0YXRpYyIsCisgICAgIm9yZy53M2Muc3ZnIiwKKyAgICAib3JnLnczYy5zdmcu
c3RhdGljIiwKK307CisKK2NvbnN0ZXhwciBTb3J0ZWRBcnJheVNldCBzdXBwb3J0ZWRTVkdGZWF0
dXJlU2V0IHsgc3VwcG9ydGVkU1ZHRmVhdHVyZUFycmF5IH07CiAKIFNWR1Rlc3RzOjpTVkdUZXN0
cyhTVkdFbGVtZW50KiBjb250ZXh0RWxlbWVudCkKICAgICA6IG1fY29udGV4dEVsZW1lbnQoKmNv
bnRleHRFbGVtZW50KQpAQCAtMTMzLDcgKzExNSw3IEBAIGJvb2wgU1ZHVGVzdHM6Omhhc0V4dGVu
c2lvbihjb25zdCBTdHJpbmcmIGV4dGVuc2lvbikKIGJvb2wgU1ZHVGVzdHM6OmlzVmFsaWQoKSBj
b25zdAogewogICAgIGZvciAoYXV0byYgZmVhdHVyZSA6IG1fcmVxdWlyZWRGZWF0dXJlcy0+aXRl
bXMoKSkgewotICAgICAgICBpZiAoZmVhdHVyZS5pc0VtcHR5KCkgfHwgIXN1cHBvcnRlZFNWR0Zl
YXR1cmVzKCkuY29udGFpbnMoZmVhdHVyZSkpCisgICAgICAgIGlmIChmZWF0dXJlLmlzRW1wdHko
KSB8fCAhc3VwcG9ydGVkU1ZHRmVhdHVyZVNldC5jb250YWlucyhmZWF0dXJlKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IG1fc3lz
dGVtTGFuZ3VhZ2UtPml0ZW1zKCkpIHsKQEAgLTE0OSwxMSArMTMxLDExIEBAIGJvb2wgU1ZHVGVz
dHM6OmlzVmFsaWQoKSBjb25zdAogCiB2b2lkIFNWR1Rlc3RzOjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyaWJ1dGVOYW1lLCBjb25zdCBBdG9tU3RyaW5nJiB2YWx1ZSkK
IHsKLSAgICBpZiAoYXR0cmlidXRlTmFtZSA9PSByZXF1aXJlZEZlYXR1cmVzQXR0cikKKyAgICBp
ZiAoYXR0cmlidXRlTmFtZSA9PSBTVkdOYW1lczo6cmVxdWlyZWRGZWF0dXJlc0F0dHIpCiAgICAg
ICAgIG1fcmVxdWlyZWRGZWF0dXJlcy0+cmVzZXQodmFsdWUpOwotICAgIGlmIChhdHRyaWJ1dGVO
YW1lID09IHJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCisgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0g
U1ZHTmFtZXM6OnJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpCiAgICAgICAgIG1fcmVxdWlyZWRFeHRl
bnNpb25zLT5yZXNldCh2YWx1ZSk7Ci0gICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT0gc3lzdGVtTGFu
Z3VhZ2VBdHRyKQorICAgIGlmIChhdHRyaWJ1dGVOYW1lID09IFNWR05hbWVzOjpzeXN0ZW1MYW5n
dWFnZUF0dHIpCiAgICAgICAgIG1fc3lzdGVtTGFuZ3VhZ2UtPnJlc2V0KHZhbHVlKTsKIH0KIApA
QCAtMTY5LDkgKzE1MSw5IEBAIHZvaWQgU1ZHVGVzdHM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAKIHZvaWQgU1ZHVGVzdHM6OmFkZFN1cHBvcnRl
ZEF0dHJpYnV0ZXMoTWVtb3J5Q29tcGFjdExvb2t1cE9ubHlSb2Jpbkhvb2RIYXNoU2V0PFF1YWxp
ZmllZE5hbWU+JiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKQogewotICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKHJlcXVpcmVkRmVhdHVyZXNBdHRyKTsKLSAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChyZXF1aXJlZEV4dGVuc2lvbnNBdHRyKTsKLSAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChz
eXN0ZW1MYW5ndWFnZUF0dHIpOworICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpyZXF1aXJlZEZlYXR1cmVzQXR0cik7CisgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnJlcXVpcmVkRXh0ZW5zaW9uc0F0dHIpOworICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpzeXN0ZW1MYW5ndWFnZUF0dHIpOwogfQogCiBib29sIFNWR1Rlc3RzOjpo
YXNGZWF0dXJlRm9yTGVnYWN5QmluZGluZ3MoY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBjb25zdCBT
dHJpbmcmIHZlcnNpb24pCkBAIC0xOTAsNyArMTcyLDcgQEAgYm9vbCBTVkdUZXN0czo6aGFzRmVh
dHVyZUZvckxlZ2FjeUJpbmRpbmdzKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgY29uc3QgU3RyaW5n
JgogCiAgICAgLy8gSWYgdGhlIHZlcnNpb24gbnVtYmVyIG1hdGNoZXMgdGhlIHN0eWxlIG9mIHRo
ZSBmZWF0dXJlIG5hbWUsIHRoZW4gdXNlIHRoZSBzZXQgdG8gc2VlIGlmIHRoZSBmZWF0dXJlIGlz
IHN1cHBvcnRlZC4KICAgICBpZiAodmVyc2lvbi5pc0VtcHR5KCkgfHwgKGhhc1NWRzEwRmVhdHVy
ZVByZWZpeCAmJiB2ZXJzaW9uID09ICIxLjAiKSB8fCAoaGFzU1ZHMTFGZWF0dXJlUHJlZml4ICYm
IHZlcnNpb24gPT0gIjEuMSIpKQotICAgICAgICByZXR1cm4gc3VwcG9ydGVkU1ZHRmVhdHVyZXMo
KS5jb250YWlucyhmZWF0dXJlKTsKKyAgICAgICAgcmV0dXJuIHN1cHBvcnRlZFNWR0ZlYXR1cmVT
ZXQuY29udGFpbnMoZmVhdHVyZSk7CiAKICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xvYWQuY3BwCmluZGV4IGM4MjdkN2M1ZGYyMTQ0
NjBmNjI4NjMwOWRhOGNlMzljNWFkZDM3YmEuLjNlNzMxMTE3MWE5NDBiNDQ5M2VkNDZhMWZlZDA2
YjY2ZmMwYjYxZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWQuY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiV2ViRXJyb3JzLmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1
ZmZlci5oPgotI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9OZXZl
ckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZE1hcC5oIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgKaW5kZXgg
ZmJmNTllMjI1MDJjZjhiNWNhNzI2NzdkYTllYWZhYzBlYzY3NjhiZi4uMGVmMjc4YzM0MDVjZGRl
NmE4M2ZiZjBhYjcyZmZjNDdjMTRkMzExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkTWFwLmgKQEAgLTI3LDcgKzI3LDYgQEAK
IAogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAogI2lmIEVOQUJMRShUQUtFX1VOQk9VTkRFRF9ORVRX
T1JLSU5HX0FTU0VSVElPTikKICNpbmNsdWRlICJQcm9jZXNzQXNzZXJ0aW9uLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TaGFyZWRTdHJpbmdIYXNoU3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hhc2hTdG9yZS5oCmluZGV4IDhlZmY5ZTgzYzFh
ZmY3OTRjZjJhMGIzMzIzYTgxMTA5Y2Q3NzA5NGQuLmFkY2U4YTNmNmM2NzJjMzdjMjBhMzliNmMx
ZWIwYTE5OGI1YTdlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0
cmluZ0hhc2hTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1NoYXJlZFN0cmluZ0hh
c2hTdG9yZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAj
aW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRTdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
UnVuTG9vcC5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5kZXggOWU4MzlmNDQ1NzBlNmE4
ZjhlMTViODU0ZWZhMmY1NTJkNzkyMzEzNS4uNTY5MmQ2MjkxNmNjNTNiYzZlZDIzOWQ5NjI1YWZj
ZjcwNjkyMWY2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlIDx3dGYvRm9yd2Fy
ZC5oPgogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgot
I2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFSZWNvcmQubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQppbmRleCA2YTM2Zjk4
ZGM0MTU5OWUwMmU1NjU0ZTU1MDNlZjE0OGIxYzU1ZDAyLi5jODI2MTZmNzkwYzZmYzY5MGE2Y2Jk
Njk3YTBlOGVjZGE1MjI3ZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVJlY29yZC5tbQpAQCAtMjksNyArMjksNiBAQAog
I2ltcG9ydCAiX1dLV2Vic2l0ZURhdGFTaXplSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUv
U2VjdXJpdHlPcmlnaW5EYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVPYmpDRXh0cmFz
Lmg+Ci0jaW1wb3J0IDx3dGYvSGFzaFNldC5oPgogCiBOU1N0cmluZyAqIGNvbnN0IFdLV2Vic2l0
ZURhdGFUeXBlRmV0Y2hDYWNoZSA9IEAiV0tXZWJzaXRlRGF0YVR5cGVGZXRjaENhY2hlIjsKIE5T
U3RyaW5nICogY29uc3QgV0tXZWJzaXRlRGF0YVR5cGVEaXNrQ2FjaGUgPSBAIldLV2Vic2l0ZURh
dGFUeXBlRGlza0NhY2hlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tJbnNwZWN0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLSW5zcGVjdG9yLm1tCmluZGV4IGMxZTZmYTc0NzA2MzcyZTY5ZjQyODdmNjU5NzBjZWQw
YmM4YmU3MDQuLmEzNTNjZTgxM2JhYzg5YTcwYzcwOTEzYzU2MDc4NDE5MDNiZWFjY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3Rvci5tbQpA
QCAtMzcsOCArMzcsNiBAQAogI2ltcG9ydCAiX1dLSW5zcGVjdG9yUHJpdmF0ZUZvclRlc3Rpbmcu
aCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0ZyYW1lSWRlbnRpZmllci5oPgotI2ltcG9ydCA8d3RmL0hhc2hNYXAuaD4KLSNpbXBvcnQgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1wb3J0IDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vU2ltdWxhdGVkSW5wdXREaXNwYXRjaGVyLmgKaW5kZXggNWZlMzJhYmIy
OWEyZGE4YTYyNmY0ZmE5YWMzNDE4NmZiN2M2ZTZlNy4uNjk4MjIyMmU2YjlmYTI1ZGFiYTM0NDc3
MDZkMTBlYmQ5ZjQ4M2E4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9TaW11bGF0ZWRJbnB1dERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1NpbXVsYXRlZElucHV0RGlzcGF0Y2hlci5oCkBAIC0zMSwxMCAr
MzEsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW50UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ludFNpemUuaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KLSNpbmNsdWRl
IDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9MaXN0SGFzaFNldC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rv
ci9XZWJJbnNwZWN0b3JVSVByb3h5LmNwcAppbmRleCA5NTE5ZjViM2Q3ZWU3ODVkNzE2NDk0OWEy
MGQ0M2JkMDg1NGNlYTQwLi4yYTRiYzhmZjEyZWZiZWQ5ODMyNmMwYzYwNmE0NDJmMTc5YTdmMmFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVj
dG9yVUlQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJUHJveHkuY3BwCkBAIC00OSwxMCArNDksNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0RW5jb2RpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1NldEZvclNjb3BlLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNp
ZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlQcm94eUNsaWVudC5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luSW5m
b1N0b3JlTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2lu
SW5mb1N0b3JlTWFjLm1tCmluZGV4IGU2ZDdkMGE1ZjNiODhhOWMxMzY0ZGY3Yzc1MTY5ZGY5Yjg5
Njk4ZjMuLjI5YjQ1OTVhYjQ4NjYwOWRjYzA2MDc3MWYyZTAyNWQzMDhlZjM2ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZv
U3RvcmVNYWMubW0KQEAgLTMzLDcgKzMzLDYgQEAKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMu
aCIKICNpbXBvcnQgPFdlYkNvcmUvUGx1Z2luQmxvY2tsaXN0Lmg+CiAjaW1wb3J0IDxwd2QuaD4K
LSNpbXBvcnQgPHd0Zi9IYXNoU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VHcm91cC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUdy
b3VwLmgKaW5kZXggNzM3MGNkN2NkZDFhODE5NGI4NjQwYzUyZjYyOTRkNWEwZDQwNmNmNy4uNjEx
OTk4N2I4YThjY2E0ODU1YjI2MGJjNDE1N2NlNjg0NjQyYzgwYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZUdyb3VwLmgKQEAgLTI5LDggKzI5LDYgQEAKICNpbmNsdWRlICJXZWJQYWdl
R3JvdXBEYXRhLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Vc2VyU3R5bGVTaGVldFR5cGVzLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4IDc4YjFmMWU3Y2MxMTBhMDc1ZjVhZWY4ODVmN2E5
ZjEwNjA0ODJhMDcuLjI1MTI0YjJmYTc3N2VjMGRiMTBmNmUxYjEzZWU0YjIwYWE4ZjVkMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCkBAIC0yOSwx
MCArMjksNyBAQAogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFy
ZWRNZW1vcnkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VJZGVudGlmaWVyLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2lu
Y2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRl
IDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5jZXMuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggZWRiZmI5YWU2YjNmOWQxYWZh
ZTNjNjA5YjgzNTdlZmRjM2RjODZmYS4uOTM3NDNjYjAwZDQzMGJjM2E4Mzg1OTcwZjViNWEwZTBj
ZTE4MmRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJlZmVyZW5j
ZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcmVmZXJlbmNlcy5oCkBAIC0z
MCw3ICszMCw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVy
ZW5jZXNEZWZpbml0aW9ucy5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKLSNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha0hhc2hTZXQuaD4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dlb2xvY2F0aW9uL1dlYkdlb2xvY2F0aW9uTWFuYWdlci5oCmluZGV4IDRiNTQz
MDI5ZDZlYzBiOWQ5NTk0NTM4ZWIwYTI3NWEyZjQ3NWM3NzguLjQ0ODM1OTYzNTg3ODIxOTdjY2Jh
NTkyOGVmZTYyNTE1MjZjMTg1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HZW9sb2NhdGlvbi9XZWJHZW9sb2NhdGlvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR2VvbG9jYXRpb24vV2ViR2VvbG9jYXRpb25NYW5hZ2VyLmgKQEAgLTI5LDgg
KzI5LDYgQEAKICNpbmNsdWRlICJXZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1N1cHBsZW1lbnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmgKaW5kZXggMTc0NTY5ODNmYTIzMmQzYzJjYWUxZjk4MTk2MTlhYjBhOGQxZDli
Ni4uYTYwN2YyMzhkNzVhYjY2YWUzNGY5ZTNlMTExYjY3OGJiNzg5ZDU1YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0
Q291bnRzLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9CYWNrRm9yd2FyZENsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQmFja0ZvcndhcmRJdGVtSWRlbnRpZmllcjsK
</data>
<flag name="review"
          id="448075"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>